// Power Operations SCSS

#power-operations {

  // Power Current status wrapper
  .power__current-status {
    border-bottom: 1px solid $medgrey;
    margin: 1.3em 0 1.2em 0;
  }

  // Power state indicator on/off
  .power__state {
    font-weight: 700;
    margin-top: -.3em;
    span:before {
      content: '';
      position: absolute;
      @extend .icon__off;
      margin-left: -25px;
    }
  }

  // Power bar indicator
  .power__indicator-bar {
    font-weight: bold;
    width: 100%;
    padding: 1em 2em .7em;
    margin-bottom: 3em;
    background-size: 200% 100%;
    background-image: linear-gradient(to right, darken($lightgrey,3%) 50%, $status-ok-light 50%);
    background-position: 0;
    transition: background-position 2s ease;
    overflow: hidden;
    display:flex;
    justify-content: space-between;
    align-items:center;
    p {
      padding: 0;
      margin: 0;
      font-size: 1.2em;
    }
    &.power__state-on {
      background-position: -100%;
      .power__state {
        span:before {
          content: '';
         @extend .icon__good;
        }
      }
    }
    &.power__state-off {
      background-position: 0;
      color: $black;
      .power__state {
        span:before {
          content: '';
          @extend .icon__off;
        }
      }
    }
    &.power__state-indet {
      color: $darkgrey;
      @include indeterminate-bar;
      .power__state {
        span:before {
          color: $status-warn;
          content: '';
          @extend .icon__warning;
        }
      }
    }
    &.power__state-error {
      background-position: 0;
      color: $black;
      .power__state {
        span:before {
          content: '';
          @extend .icon__critical;
        }
      }
    }
  }

  // Power button options
  .power-option {
    padding: 1.8em 0 1em 0;
    position: relative;
    overflow: hidden;
    min-height: 1px;
    min-width: 100%;
    .btn {
      margin-bottom: .5em;
      margin-right: 1em;
      min-width: 240px;
    }
    @include mediaQuery(x-small){
      padding: 1.8em 0 1em 0;
    }
  }

} //end power-operations
