/*!
 * Copyright 2024 ByOmakase, LLC (https://byomakase.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

$colors: (#fff #ffe500 #00ffd7 #0fe000 #ff00fe #e30013 #002dbc) (#002dbc #353535 #ff00fe #676767 #00ffd7 #353535 #fff) (#006261 #fff #00196b #676767 #8d8d8d #353535 #000);

.omakase-player {
  display: block;

  .d-none {
    display: none;
  }

  .d-block {
    display: block;
  }

  .float-start {
    float: left !important;
  }

  .float-end {
    float: right !important;
  }

  .omakase-player-wrapper {
    display: block;
    position: relative;
    width: 700px;

    .omakase-video {
      display: block;
      width: 100%;
      opacity: 100%;
    }

    .omakase-background-image {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background-color: #000;
      background-image: url(/images/background-omp.svg);
      background-position: bottom;
      background-size: 100%;
      background-repeat: no-repeat;
    }

    .omakase-detached-background {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      //background-color: #0827F5;
      background-color: #000000;
    }

    .omakase-video-controls {
      z-index: 1;
      .omakase-video-safe-zone-wrapper,
      .omakase-watermark-wrapper {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        overflow: hidden;
        margin: auto;

        .omakase-watermark {
          position: absolute;
          left: 2.5%;
          top: 2.5%;
          line-height: var(--timecode-font-size, var(--timecode-font-size-default));
          font-size: var(--timecode-font-size, var(--timecode-font-size-default));
          color: rgba(255, 255, 255, 0.9);
        }

        .omakase-video-safe-zone {
          position: absolute;
          left: 0;
          right: 0;
          top: 0;
          bottom: 0;

          outline: 1px solid rgba(255, 255, 255, 1);

          box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
          -webkit-box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
          -moz-box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
        }
      }
    }

    .omakase-help {
      font-size: 13px;
      position: absolute;
      right: 20px;
      top: 20px;

      .omakase-help-dropdown {
        position: absolute;
        right: 0;
        top: 0;

        .omakase-help-button {
          background-color: transparent;
          background-image: url(/images/help.svg);
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          border: 0;
          padding: 0;

          width: 30px;
          height: 30px;
          margin: 0 0 5px;
        }

        .omakase-help-menu {
          z-index: 100;
          position: absolute;
          right: 0;
          width: 450px;
          overflow-y: auto;
          max-height: 215px;

          .omakase-help-group-title {
            background: rgba(2, 171, 141, 1);
            display: block;
            padding: 5px 10px 5px 10px;
            color: #ffffff;
            font-weight: bold;
            text-align: left;

            span {
              height: 20px;
              line-height: 20px;
            }
          }

          .omakase-help-group {
            display: block;
            background: rgba(2, 171, 141, 0.2);

            .omakase-help-item {
              display: flex;
              justify-content: space-between;
              padding: 5px 10px 5px 10px;
              color: #ffffff;
              //text-align: left;

              span {
                height: 20px;
                line-height: 20px;
              }

              &:hover {
                background-color: #a93232;
              }
            }
          }
        }
      }
    }

    .omakase-section-bottom-right {
      position: absolute;
      right: 20px;
      bottom: 20px;
      width: 30px;
      vertical-align: bottom;

      .omakase-button-attach {
        background-color: transparent;
        background-image: url(/images/attach.svg);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        border: 0;
        padding: 0;

        width: 25px;
        height: 25px;
        margin: 0 0 20px 0;
      }

      .omakase-button-fullscreen {
        background-color: transparent;
        background-image: url(/images/fullscreen.svg);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        border: 0;
        padding: 0;

        width: 25px;
        height: 25px;
        margin: 0 0 0 0;
      }
    }

    .omakase-player-alerts {
      position: absolute;
      top: 26px;
      left: 20px;
      z-index: 100;

      .omakase-alert {
        display: flex;
        width: 400px;
        min-height: 44px;
        background-color: rgba(#3a3d4b, 0.7);
        border: 1px #3a3d4b;
        border-radius: 5px;
        padding: 10px;
        margin-bottom: 10px;
        position: relative;

        .omakase-alert-icon {
          width: 24px;
          height: 24px;
          flex-shrink: 0;
          background-repeat: no-repeat;

          &.icon-close {
            background-image: url(/images/alert-close.svg);
            cursor: pointer;
          }

          &.icon-warning {
            background-image: url(/images/alert-warning.svg);
          }

          &.icon-info {
            background-image: url(/images/alert-info.svg);
          }

          &.icon-error {
            background-image: url(/images/alert-error.svg);
          }
        }

        &.warning {
          color: #fdf5ad;
        }

        &.info {
          color: #cacfea;
        }

        &.error {
          color: #ff0000;
        }

        &.alert-stack {
          position: absolute;

          .icon-close {
            display: none;
          }

          .alert-text,
          .omakase-alert-icon {
            filter: blur(2px);
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
          }
        }

        &.alert-hide {
          display: none;
        }

        .alert-text {
          flex-grow: 1;
          padding: 0 5px;
        }

        .alert-close {
          cursor: pointer;
        }
      }
    }
  }
}

.omakase-timeline-overlay {
  position: absolute;
  z-index: 100;

  .omakase-timeline-timecode {
    position: absolute;
    padding-left: 10px;
    padding-top: 10px;
    overflow: hidden;

    .omakase-timecode-edit {
      input {
        padding: 0 5px;
        width: 100px;
        border-radius: 5px;
        border: 1px solid #5db7e8;

        &:disabled {
          background-color: #ccc;
        }

        &.omakase-timecode-edit-input-invalid {
          border: 1px solid #fa6664;
        }
      }
    }
  }
}

.media-chrome-disabled,
.omakase-player-detached,
:not(.omakase-player-fullscreen) > .media-chrome-fullscreen-only {
  media-controller {
    > *:not(video, .omakase-video-controls, omakase-dropdown) {
      display: none;
    }
  }
}

:not(.omakase-player-detached) > .media-chrome-enabled,
.omakase-player-fullscreen > .media-chrome-fullscreen-only {
  media-controller > *:not(video, .d-none, omakase-dropdown) {
    display: block !important;
    &.lower-control-bar {
      display: grid !important;
    }
  }
  .omakase-video-safe-zone-wrapper {
    pointer-events: none;
  }
}

:not(.omakase-player-detached) > .media-chrome-enabled {
  .omakase-section-bottom-right {
    display: none !important;
  }
}

media-controller {
  width: 100%;
  height: 100%;
  display: flex;

  --media-control-background: transparent;
  --media-control-hover-background: transparent;
  --media-tooltip-display: none;
  --media-background-color: transparent;

  --padding-size-default: 5px;
  --icon-size-default: 28px;
  --bitc-width-default: 34px;
  --bitc-margin-default: -7px;
  --timecode-font-size-default: 24px;
  --timecode-line-height-default: 24px;
  --thumbnail-width-default: 180px;
  --thumbnail-border-default: 2px;
  --thumbnail-shadow-default: 4px;
  --thumbnail-margin-default: 10px;
  --preview-font-size-default: 14px;
  --preview-line-height-default: 18px;
  --time-range-height-default: 22px;
  --controls-height-default: 40px;
  --controls-bottom-padding-default: 10px;
  --controls-left-padding-default: 10px;
  --controls-right-padding-default: 7px;
  --volume-container-width-default: 120px;
  --volume-range-width-default: 70px;
  --center-control-size-default: 128px;

  container: media-chrome / inline-size;

  * {
    box-shadow: none;
  }

  omakase-time-range {
    width: 100%;
  }

  .omakase-overlay-buttons {
    pointer-events: none;

    .omakase-video-overlay-button {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;

      background-repeat: no-repeat;
      width: var(--center-control-size, var(--center-control-size-default));
      height: var(--center-control-size, var(--center-control-size-default));
      margin: auto;
      background-size: contain;
      background-position: center;
    }

    .omakase-button-play {
      background-image: url(/images/play.svg);
    }

    .omakase-button-pause {
      background-image: url(/images/pause.svg);
    }

    .omakase-button-replay {
      background-image: url(/images/replay.svg);
    }

    .omakase-button-loading {
      background-image: url(/images/loading.svg);
      animation: loading 3s linear infinite;
      @keyframes loading {
        0% {
          transform: rotate(0);
        }
        100% {
          transform: rotate(360deg);
        }
      }
    }

    .omakase-button-error {
      background-image: url(/images/error.svg);
    }

    .omakase-overlay-button-attach {
      background-image: url(/images/attach.svg);
    }
  }

  .media-chrome-button {
    padding: 0 var(--padding-size, var(--padding-size-default));

    &:hover {
      media-tooltip {
        opacity: 1;
      }
    }

    media-tooltip {
      opacity: 0;
      transition:
        opacity 0.3s,
        max-width 0s 9s;
    }

    span {
      width: var(--icon-size, var(--icon-size-default));
      height: var(--icon-size, var(--icon-size-default));
      background-size: 100%;

      &.media-chrome-bitc-enabled,
      &.media-chrome-bitc-disabled {
        width: var(--bitc-width, var(--bitc-width-default));
        margin-top: var(--bitc-margin, var(--bitc-margin-default));
        margin-right: var(--padding-size, var(--padding-size-default));
      }
    }
  }

  .timecode-container {
    width: 100%;
    position: absolute;
    top: 6%;
    text-align: center;

    omakase-time-display {
      color: white;
      line-height: var(--timecode-line-height, var(--timecode-line-height-default));
      font-size: var(--timecode-font-size, var(--timecode-font-size-default));
      background-color: rgba(0, 0, 0, 0.5);
    }
  }

  .media-chrome-play {
    background-image: url(/images/media-chrome-play.svg);
  }

  .media-chrome-pause {
    background-image: url(/images/media-chrome-pause.svg);
  }

  .media-chrome-rewind {
    background-image: url(/images/media-chrome-rewind.svg);
  }

  .media-chrome-fast-rewind {
    background-image: url(/images/media-chrome-fast-rewind.svg);
  }

  .media-chrome-forward {
    background-image: url(/images/media-chrome-forward.svg);
  }

  .media-chrome-fast-forward {
    background-image: url(/images/media-chrome-fast-forward.svg);
  }

  .media-chrome-fullscreen-enter {
    background-image: url(/images/media-chrome-fullscreen-enter.svg);
  }

  .media-chrome-fullscreen-exit {
    background-image: url(/images/media-chrome-fullscreen-exit.svg);
  }

  .media-chrome-detach {
    background-image: url(/images/media-chrome-detach.svg);
  }

  .media-chrome-attach {
    background-image: url(/images/media-chrome-attach.svg);
  }

  .media-chrome-audio-mute {
    background-image: url(/images/media-chrome-audio-mute.svg);
  }

  .media-chrome-audio-low {
    background-image: url(/images/media-chrome-audio-low.svg);
  }

  .media-chrome-audio-medium {
    background-image: url(/images/media-chrome-audio-medium.svg);
  }

  .media-chrome-audio-high {
    background-image: url(/images/media-chrome-audio-high.svg);
  }

  .media-chrome-bitc-enabled {
    background-image: url(/images/media-chrome-bitc-enabled.svg);
  }

  .media-chrome-bitc-disabled {
    background-image: url(/images/media-chrome-bitc-disabled.svg);
  }

  media-control-bar {
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.5);
  }

  .upper-control-bar {
    padding: 0 var(--padding-size, var(--padding-size-default));
    position: relative;

    omakase-time-range {
      height: var(--time-range-height, var(--time-range-height-default));

      .media-chrome-preview-wrapper {
        text-align: center;
      }

      .media-chrome-preview-timecode {
        font-size: var(--preview-font-size, var(--preview-font-size-default));
        line-height: var(--preview-line-height, var(--preview-line-height-default));
      }
    }

    omakase-preview-thumbnail {
      img {
        width: var(--thumbnail-width, var(--thumbnail-width-default));
        border: var(--thumbnail-border, var(--thumbnail-border-default)) solid white;
        box-shadow: 0 var(--thumbnail-shadow, var(--thumbnail-shadow-default)) var(--thumbnail-shadow, var(--thumbnail-shadow-default)) 0 rgba(0, 0, 0, 0.45);
        display: inline-block;
        margin-bottom: var(--thumbnail-margin, var(--thumbnail-margin-default));
      }

      img[src=''] {
        display: none;
      }
    }
  }

  .lower-control-bar {
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: var(--controls-height, var(--controls-height-default));
    padding-bottom: var(--controls-bottom-padding, var(--controls-bottom-padding-default));

    .start-container {
      justify-self: start;
      overflow: hidden;
      width: var(--volume-container-width, var(--volume-container-width-default));
      padding-left: var(--controls-left-padding, var(--controls-left-padding-default));
      display: flex;
      white-space: nowrap;
      .volume-container {
        media-volume-range {
          // transition: 200ms ease;
          width: 0;
          overflow: hidden;
          margin-left: -10px;
          height: var(--time-range-height, var(--time-range-height-default));
        }
        &:hover {
          media-volume-range {
            width: var(--volume-range-width, var(--volume-range-width-default));
          }
          ~ omakase-dropdown-toggle {
            opacity: 0;
          }
        }
      }
      omakase-dropdown-toggle {
        margin-left: 10px;
        cursor: pointer;

        .omakase-dropdown-toggle {
          display: inline-block;
          vertical-align: top;
          min-width: 20px;
        }
      }
    }

    .center-container {
      justify-self: center;
    }

    .end-container {
      justify-self: end;
      padding-right: var(--controls-right-padding, var(--controls-right-padding-default));
    }
  }

  omakase-dropdown {
    position: absolute;
    color: white;
    text-align: center;
    font-size: 13px;
    bottom: 25px;

    .omakase-dropdown-title {
      line-height: 20px;
      background-color: black;
      padding: 5px;
      font-size: 11px;
      border-radius: 3px 3px 0 0;
    }

    .omakase-dropdown-container {
      background-color: rgba(0, 0, 0, 0.5);
      border-radius: 0 0 3px 3px;

      omakase-dropdown-option {
        display: block;
        line-height: 25px;
        cursor: pointer;

        &:hover {
          background-color: rgba(0, 0, 0, 0.7);
        }

        &.active {
          background-color: white;
          color: black;
        }
      }
    }
  }

  omakase-dropdown-toggle {
    line-height: var(--icon-size-default);
    font-size: calc(var(--icon-size-default) * 0.75);
  }

  @container (inline-size < 600px) {
    * {
      --padding-size: calc(var(--padding-size-default) * 0.5);
      --icon-size: calc(var(--icon-size-default) * 0.85);
      --bitc-width: calc(var(--bitc-width-default) * 0.85);
      --bitc-margin: calc(var(--bitc-margin-default) * 0.85);
      --timecode-font-size: calc(var(--timecode-font-size-default) * 0.85);
      --timecode-line-height: calc(var(--timecode-line-height-default) * 0.85);
      --thumbnail-width: calc(var(--thumbnail-width-default) * 0.85);
      --thumbnail-border: calc(var(--thumbnail-border-default) * 0.85);
      --thumbnail-shadow: calc(var(--thumbnail-shadow-default) * 0.85);
      --thumbnail-margin: calc(var(--thumbnail-margin-default) * 0.85);
      --preview-font-size: calc(var(--preview-font-size-default) * 0.85);
      --preview-line-height: calc(var(--preview-line-height-default) * 0.85);
      --time-range-height: calc(var(--time-range-height-default) * 0.85);
      --controls-height: calc(var(--controls-height-default) * 0.85);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 0.85);
      --controls-left-padding: 10px;
      --controls-right-padding: 9px;
      --volume-container-width: 120px;
      --volume-range-width: 60px;
      --center-control-size: calc(var(--center-control-size-default) * 0.85);
    }

    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 0.85);
      font-size: calc(var(--icon-size-default) * 0.65);
    }

    omakase-dropdown {
      font-size: 12px;
      bottom: 20px;
      .omakase-dropdown-title {
        font-size: 10px;
      }
      .omakase-dropdown-container omakase-dropdown-option {
        line-height: 20px;
      }
    }
  }

  @container (inline-size < 500px) {
    .omakase-help {
      display: none !important;
    }
  }

  @container (inline-size < 450px) {
    * {
      --time-range-height: calc(var(--time-range-height-default) * 0.75);
      --controls-height: calc(var(--controls-height-default) * 0.7);
      --icon-size: calc(var(--icon-size-default) * 0.75);
      --bitc-width: calc(var(--bitc-width-default) * 0.75);
      --bitc-margin: calc(var(--bitc-margin-default) * 0.75);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 0.75);
      --center-control-size: calc(var(--center-control-size-default) * 0.65);
    }
    .omakase-player-fast-rewind,
    .omakase-player-fast-forward {
      display: none;
    }
    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 0.75);
      font-size: calc(var(--icon-size-default) * 0.6);
    }
    omakase-dropdown {
      font-size: 11px;
      .omakase-dropdown-title {
        font-size: 9px;
      }
      .omakase-dropdown-container omakase-dropdown-option {
        line-height: 15px;
      }
    }
  }

  @container (inline-size < 400px) {
    .start-container {
      width: 50px !important;
      media-volume-range {
        display: none;
      }
    }
    .center-container media-chrome-button {
      display: none;
    }
    .end-container media-chrome-button {
      &:first-child {
        display: none;
      }
    }
  }

  @container (inline-size < 200px) {
    *:not(video) {
      display: none;
    }
    .lower-control-bar {
      height: 0;
      padding: 0;
    }
  }

  @container (inline-size > 1200px) {
    * {
      --padding-size: calc(var(--padding-size-default) * 1.125);
      --icon-size: calc(var(--icon-size-default) * 1.125);
      --bitc-width: calc(var(--bitc-width-default) * 1.125);
      --bitc-margin: calc(var(--bitc-margin-default) * 1.125);
      --timecode-font-size: calc(var(--timecode-font-size-default) * 1.125);
      --timecode-line-height: calc(var(--timecode-line-height-default) * 1.125);
      --time-range-height: calc(var(--time-range-height-default) * 1.125);
      --controls-height: calc(var(--controls-height-default) * 1.125);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 1.125);
      --volume-container-width: calc(var(--volume-container-width-default) * 1.125);
      --volume-range-width: calc(var(--volume-range-width-default) * 1.125);
      --center-control-size: calc(var(--center-control-size-default) * 1.125);
    }
    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 1.125);
      font-size: calc(var(--icon-size-default) * 1.075);
    }
    omakase-dropdown {
      font-size: 14px;
      bottom: 30px;
      .omakase-dropdown-title {
        font-size: 12px;
      }
    }
  }

  @container (inline-size > 1600px) {
    * {
      --media-range-thumb-height: 14px;
      --media-range-thumb-width: 14px;
      --media-range-thumb-border-radius: 14px;
      --media-control-height: 36px;
      --media-range-track-height: 6px;

      --padding-size: calc(var(--padding-size-default) * 1.25);
      --icon-size: calc(var(--icon-size-default) * 1.25);
      --bitc-width: calc(var(--bitc-width-default) * 1.25);
      --bitc-margin: calc(var(--bitc-margin-default) * 1.25);
      --timecode-font-size: calc(var(--timecode-font-size-default) * 1.25);
      --timecode-line-height: calc(var(--timecode-line-height-default) * 1.25);
      --time-range-height: calc(var(--time-range-height-default) * 1.25);
      --controls-height: calc(var(--controls-height-default) * 1.25);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 1.25);
      --volume-container-width: calc(var(--volume-container-width-default) * 1.25);
      --volume-range-width: calc(var(--volume-range-width-default) * 1.25);
      --center-control-size: calc(var(--center-control-size-default) * 1.25);
    }

    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 1.25);
      font-size: calc(var(--icon-size-default) * 1.125);
    }
    omakase-dropdown {
      font-size: 16px;
      .omakase-dropdown-title {
        font-size: 14px;
      }
      .omakase-dropdown-container omakase-dropdown-option {
        line-height: 30px;
      }
    }
  }

  @container (inline-size > 2400px) {
    * {
      --media-range-thumb-height: 16px;
      --media-range-thumb-width: 16px;
      --media-range-thumb-border-radius: 16px;
      --media-control-height: 42px;
      --media-range-track-height: 8px;
      --media-font-size: 18px;

      --padding-size: calc(var(--padding-size-default) * 1.5);
      --icon-size: calc(var(--icon-size-default) * 1.5);
      --bitc-width: calc(var(--bitc-width-default) * 1.5);
      --bitc-margin: calc(var(--bitc-margin-default) * 1.5);
      --timecode-font-size: calc(var(--timecode-font-size-default) * 1.5);
      --timecode-line-height: calc(var(--timecode-line-height-default) * 1.5);
      --thumbnail-width: calc(var(--thumbnail-width-default) * 1.25);
      --thumbnail-border: calc(var(--thumbnail-border-default) * 1.25);
      --thumbnail-shadow: calc(var(--thumbnail-shadow-default) * 1.25);
      --preview-font-size: calc(var(--preview-font-size-default) * 1.25);
      --preview-line-height: calc(var(--preview-line-height-default) * 1.25);
      --time-range-height: calc(var(--time-range-height-default) * 1.5);
      --controls-height: calc(var(--controls-height-default) * 1.5);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 1.5);
      --volume-container-width: calc(var(--volume-container-width-default) * 1.5);
      --volume-range-width: calc(var(--volume-range-width-default) * 1.5);
      --volume-range-margin: calc(var(--volume-range-margin-default) * 1.5);
    }
    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 1.5);
      font-size: calc(var(--icon-size-default) * 1.25);
    }
    omakase-dropdown {
      font-size: 18px;
      .omakase-dropdown-title {
        font-size: 16px;
      }
      .omakase-dropdown-container omakase-dropdown-option {
        line-height: 35px;
      }
    }
  }

  @container (inline-size > 4000px) {
    * {
      --media-range-thumb-height: 24px;
      --media-range-thumb-width: 24px;
      --media-range-thumb-border-radius: 24px;
      --media-control-height: 48px;
      --media-range-track-height: 12px;
      --media-font-size: 24px;

      --padding-size: calc(var(--padding-size-default) * 2);
      --icon-size: calc(var(--icon-size-default) * 2);
      --bitc-width: calc(var(--bitc-width-default) * 2);
      --bitc-margin: calc(var(--bitc-margin-default) * 2);
      --timecode-font-size: calc(var(--timecode-font-size-default) * 2);
      --timecode-line-height: calc(var(--timecode-line-height-default) * 2);
      --thumbnail-width: calc(var(--thumbnail-width-default) * 1.5);
      --thumbnail-border: calc(var(--thumbnail-border-default) * 1.5);
      --thumbnail-shadow: calc(var(--thumbnail-shadow-default) * 1.5);
      --preview-font-size: calc(var(--preview-font-size-default) * 1.5);
      --preview-line-height: calc(var(--preview-line-height-default) * 1.5);
      --time-range-height: calc(var(--time-range-height-default) * 2);
      --controls-height: calc(var(--controls-height-default) * 2);
      --controls-bottom-padding: calc(var(--controls-bottom-padding-default) * 2);
      --volume-container-width: calc(var(--volume-container-width-default) * 2);
      --volume-range-width: calc(var(--volume-range-width-default) * 2);
      --volume-range-margin: calc(var(--volume-range-margin-default) * 2);
      --center-control-size: calc(var(--center-control-size-default) * 1.5);
    }
    omakase-dropdown-toggle {
      line-height: calc(var(--icon-size-default) * 2);
      font-size: calc(var(--icon-size-default) * 1.5);
    }
    omakase-dropdown {
      font-size: 22px;
      .omakase-dropdown-title {
        font-size: 20px;
      }
      .omakase-dropdown-container omakase-dropdown-option {
        line-height: 40px;
      }
    }
  }
}

omakase-audio-router {
  font-size: 12px;
  font-weight: 400;

  .omakase-router-container {
    border: 1px solid #c2e9ff;
    border-radius: 3px;
    display: inline-block;
    background: #e9f7ff;

    &.size-small {
      font-size: 11px;
      .omakase-router-table {
        td {
          padding: 0 5px;
        }
      }
      .omakase-router-toggle {
        width: 14px;
        height: 14px;
        .omakase-router-toggle-inner {
          width: 6px;
          height: 6px;
        }
      }
    }
    &.size-medium {
      font-size: 12px;
      .omakase-router-table {
        td {
          padding: 2px 7px;
        }
      }
      .omakase-router-toggle {
        width: 16px;
        height: 16px;
        .omakase-router-toggle-inner {
          width: 8px;
          height: 8px;
        }
      }
    }
    &.size-large {
      font-size: 13px;
      .omakase-router-table {
        td {
          padding: 5px 9px;
        }
        tbody tr {
          &:first-child td {
            padding-top: 20px;
          }
          &:last-child td {
            padding-bottom: 20px;
          }
        }
        thead th {
          padding-top: 15px;
          padding-bottom: 10px;
        }
      }
      .omakase-router-toggle {
        width: 20px;
        height: 20px;
        .omakase-router-toggle-inner {
          width: 12px;
          height: 12px;
        }
      }
    }
    .omakase-router-table {
      border-collapse: collapse;
      width: 100%;

      tbody {
        border-top: 1px solid #c2e9ff;

        tr {
          &:first-child {
            td {
              padding-top: 10px;
            }
          }
          &:last-child {
            td {
              padding-bottom: 10px;
            }
          }
        }
      }

      th,
      td {
        text-align: center;
        padding: 5px;

        &.align-left {
          text-align: left;
        }

        &.align-right {
          text-align: right;
        }

        &:first-child {
          padding-left: 10px;
          min-width: 80px;
        }
        &:last-child {
          padding-right: 10px;
        }
      }

      th {
        font-weight: normal;

        &:last-child {
          width: 60px;
        }
      }

      td {
        .omakase-router-icon {
          display: none;
        }
      }

      &.omakase-router-multiple {
        td {
          .omakase-router-icon {
            display: inline-block;
          }
        }
      }
    }
    .omakase-router-toggle {
      width: 16px;
      height: 16px;
      border: 1px solid #009ceb;
      border-radius: 50%;
      border: 1px solid #009ceb;
      display: inline-block;
      cursor: pointer;
      position: relative;
      box-sizing: content-box;

      &:not(.active) {
        .omakase-router-toggle-inner {
          display: none;
        }
      }

      .omakase-router-toggle-inner {
        position: absolute;
        left: 4px;
        top: 4px;
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background-color: #009ceb;
      }
    }

    .omakase-router-icon {
      width: 20px;
      height: 20px;
      display: inline-block;
      cursor: pointer;
      background-repeat: no-repeat;
      background-position: center;
      vertical-align: middle;

      &.icon-deselect-all {
        background-image: url(/images/audio-deselect-all.svg);
        background-size: 100%;
        margin-right: 5px;
      }

      &.icon-reset-all {
        background-image: url(/images/audio-reset-all.svg);
        background-size: 100%;
      }

      &.icon-deselect {
        background-image: url(/images/audio-deselect.svg);
        margin-right: 5px;
      }

      &.icon-reset {
        background-image: url(/images/audio-reset.svg);
      }

      &.icon-outputs-few {
        background-image: url(/images/audio-outputs-few.svg);
      }

      &.icon-outputs-many {
        background-image: url(/images/audio-outputs-many.svg);
      }
    }
  }
}
