@import '../../../@theme/styles/themes';
@import '~@nebular/theme/components/card/card.component.theme';
@import '~@nebular/theme/styles/global/typography/typography';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import '~@nebular/bootstrap/styles/hero-buttons';

@include nb-install-component() {

  nb-card {
    display: flex;
    flex-direction: row;
  }

  nb-card-body {
    overflow: hidden;
  }

  .consumption-table {
    display: flex;
    flex-direction: column;
    width: 20rem;
    height: 100%;
    z-index: 2;
    box-shadow: nb-theme(card-shadow);

    @include nb-for-theme(corporate) {
      border-right: 1px solid nb-theme(card-border-color);
    }
  }

  .table-header {
    @include nb-card-header();
    font-size: 1.25rem;

    .subtitle {
      color: nb-theme(color-fg);
      font-family: nb-theme(font-main);
      font-size: 1rem;
      font-weight: nb-theme(font-weight-light);
    }
  }

  nb-tabset /deep/ {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;

    ul {
      align-items: center;
      padding: 1rem;
    }

    ul li a {
      font-weight: nb-theme(font-weight-bolder);
      padding: 0.75rem 1rem;
    }

    ul li.active {
      position: relative;
      background-color: nb-theme(layout-bg);
      border-radius: nb-theme(radius) nb-theme(radius) 0 0;

      &::before {
        position: absolute;
        content: '';
        width: 100%;
        height: 5px;
        border-radius: 2.5px;
        bottom: 0;
        left: 0;
        background: nb-theme(color-success);
      }

      a {
        font-size: 1.5rem;
      }
      a::before {
        display: none;
      }
    }

    nb-tab {
      flex: 1;
      overflow-y: auto;
    }
  }

  .stats-month {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: nb-theme(padding);
    color: nb-theme(color-fg);
    position: relative;

    &:not(:first-child) {
      border-top: 1px solid nb-theme(separator);

      @include nb-for-theme(corporate) {
        border-top-color: nb-theme(tabs-separator);
      }
    }

    &:hover {
      background-color: nb-theme(layout-bg);

      &::before {
        position: absolute;
        content: '';
        height: 100%;
        width: 6px;
        left: 0;
        top: 0;
        background-color: nb-theme(color-success);
        border-radius: nb-theme(radius);
      }
    }

    .month {
      display: inline-block;
      width: 2.75rem;
      font-family: nb-theme(font-secondary);
      font-size: 1.25rem;
      font-weight: nb-theme(font-weight-bolder);
      color: nb-theme(color-fg-heading);
    }

    .delta {
      position: relative;
      display: inline-block;
      padding-left: 1rem;
      font-size: 0.75rem;

      color: text-danger();

      &::before {
        position: absolute;
        content: '';
        bottom: 3px;
        left: 2px;

        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-bottom: 8px solid text-danger();
      }

      &.down {
        color: text-success();

        &::before {
          top: 3px;
          border-top: 8px solid text-success();
          border-bottom: none;
        }
      }
    }

    .results {
      font-size: 0.875rem;
      font-weight: nb-theme(font-weight-light);

      b {
        font-family: nb-theme(font-secondary);
        font-size: 1rem;
        font-weight: nb-theme(font-weight-bolder);
        color: nb-theme(color-fg-heading);
      }
    }
  }

  .chart-container {
    flex: 1;
    height: 100%;
    background-image: nb-theme(radial-gradient);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .chart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.75rem 1rem 1rem;
  }

  .header-stats {
    display: flex;
    align-items: center;
  }

  .stats-block {
    display: flex;
    flex-direction: column;
    align-items: normal;
    color: nb-theme(color-fg);
    padding: 0 1.5rem;
    border-right: 1px solid nb-theme(separator);

    .subtitle {
      font-size: 1rem;
      font-weight: nb-theme(font-weight-light);
    }

    .value {
      font-family: nb-theme(font-secondary);
      font-size: 1.5rem;
      font-weight: nb-theme(font-weight-bold);
      color: nb-theme(color-fg-heading);
    }

    .unit {
      font-family: nb-theme(font-secondary);
      font-size: 1.25rem;
      font-weight: nb-theme(font-weight-light);
    }
  }

  .dropdown {
    min-width: 130px;
  }

  @include nb-for-theme(cosmic) {
    nb-tabset /deep/ ul li.active {
      background-color: nb-theme(color-primary);
      border-radius: nb-theme(radius);

      &::before {
        display: none;
      }
    }

    .stats-block .value {
      font-weight: nb-theme(font-weight-bolder);
    }

    .stats-month {
      &:hover {
        &::before {
          $color-top: nb-theme(btn-success-bg);
          $color-bottom: btn-hero-success-left-color();

          background-image: linear-gradient(to top, $color-top, $color-bottom);
          box-shadow: 0 0 16px -2px btn-hero-success-middle-color();
        }
      }
    }
  }

  @include nb-for-theme(corporate) {
    nb-tabset /deep/ ul li.active {
      &::before {
        display: none;
      }
    }

    .stats-block {
      border-right: none;
    }

    .stats-month {
      &:hover {
        &::before {
          background-color: nb-theme(color-primary);
        }
      }

      .delta {
        &.down {
          color: text-primary();

          &::before {
            border-top: 8px solid text-primary();
          }
        }
      }
    }
  }

  @include media-breakpoint-down(xxl) {
    .stats-block {
      border: none;
      padding: 0 1rem;
    }
  }
  @include media-breakpoint-between(md, xl) {
    .consumption-table {
      display: none;
    }
  }
  @include media-breakpoint-down(md) {
    .chart-header {
      padding: 1rem;
    }
    .dropdown {
      min-width: 100px;
      button {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
      }
    }
  }
  @include media-breakpoint-down(sm) {
    .consumption-table {
      display: none;
    }
  }
  @include media-breakpoint-down(xs) {
    .stats-block {
      padding: 0;
      &:first-child {
        padding: 0 0.5rem;
      }

      .subtitle {
        font-size: 1rem;
      }
      .value {
        font-size: 1.5rem;
      }
      .unit {
        display: none;
      }
    }
  }
}
