@import "color-themes";

.mdlext-dark-color-theme {
  background-color: $mdlext-dark-content-background-color;
  color: $mdlext-dark-text-color-primary;
  a {
    outline-color: inherit;
  }
}

// mdl/src/palette/_palette.scss
.mdlext-dark-color-theme {

  .mdl-color--primary {
    background-color: $mdlext-dark-color-primary !important;
  }

  .mdl-color--primary-contrast {
    background-color: $mdlext-dark-color-primary-contrast !important;
  }

  .mdl-color--primary-dark {
    background-color: $mdlext-dark-color-primary-dark !important;
  }

  .mdl-color--accent {
    background-color: $mdlext-dark-color-accent !important;
  }

  .mdl-color--accent-contrast {
    background-color: $mdlext-dark-color-accent-contrast !important;
  }

  .mdl-color-text--primary {
    color: $mdlext-dark-color-primary !important;
  }

  .mdl-color-text--primary-contrast {
    color: $mdlext-dark-color-primary-contrast !important;
  }

  .mdl-color-text--primary-dark {
    color: $mdlext-dark-color-primary-dark !important;
  }

  .mdl-color-text--accent {
    color: $mdlext-dark-color-accent !important;
  }

  .mdl-color-text--accent-contrast {
    color: $mdlext-dark-color-accent-contrast !important;
  }

}

// mdl/src/typography/_typography.scss
.mdlext-dark-color-theme {
  a {
    color: $mdlext-dark-text-link-color;
  }
}


// mdl/src/badge/_badge.scss
// ---------------------------
.mdlext-dark-color-theme {
  .mdl-badge {

    &[data-badge]::after {
      background: $mdlext-dark-badge-background;
      color: $mdlext-dark-badge-color;
    }

    &.mdl-badge--no-background {
      &[data-badge]::after {
        color: $mdlext-dark-badge-color-inverse;
        background: $mdlext-dark-badge-background-inverse;
      }
    }
  }
}


// mdl/src/button/_button.scss
// ---------------------------
.mdlext-dark-color-theme {

  .mdl-button {
    background: transparent;
    color: $mdlext-dark-button-secondary-color;

    &:hover {
      background-color: $mdlext-dark-button-hover-color;
    }

    &:focus:not(:active) {
      background-color: $mdlext-dark-button-focus-color;
    }

    &:active {
      background-color: $mdlext-dark-button-active-color;
    }

    &.mdl-button--colored {
      color: $mdlext-dark-button-primary-color-alt;

      &:focus:not(:active) {
        background-color: $mdlext-dark-button-focus-color-alt;
      }
    }
  }

  // Raised buttons
  .mdl-button--raised {
    background: $mdlext-dark-button-primary-color;

    &:active {
      background-color: $mdlext-dark-button-active-color;
    }

    &:focus:not(:active) {
      background-color: $mdlext-dark-button-active-color;
    }

    &.mdl-button--colored {
      background: $mdlext-dark-button-primary-color-alt;
      color: $mdlext-dark-button-secondary-color-alt;

      &:hover {
        background-color: $mdlext-dark-button-hover-color-alt;
      }

      &:active {
        background-color: $mdlext-dark-button-active-color-alt;
      }

      &:focus:not(:active) {
        background-color: $mdlext-dark-button-active-color-alt;
      }

      & .mdl-ripple {
        background: $mdlext-dark-button-ripple-color-alt;
      }
    }
  }


  // FABs
  .mdl-button--fab {
    background: $mdlext-dark-button-primary-color;

    &:active {
      background-color: $mdlext-dark-button-active-color;
    }

    &:focus:not(:active) {
      background-color: $mdlext-dark-button-active-color;
    }

    &.mdl-button--colored {
      background: $mdlext-dark-button-fab-color-alt;
      color: $mdlext-dark-button-fab-text-color-alt;

      &:hover {
        background-color: $mdlext-dark-button-fab-hover-color-alt;
      }

      &:focus:not(:active) {
        background-color: $mdlext-dark-button-fab-active-color-alt;
      }

      &:active {
        background-color: $mdlext-dark-button-fab-active-color-alt;
      }

      & .mdl-ripple {
        background: $mdlext-dark-button-fab-ripple-color-alt;
      }
    }
  }


  // Icon buttons
  .mdl-button--icon {
    color: inherit;
  }

  // Colorized buttons

  .mdl-button--primary.mdl-button--primary {
    color: $mdlext-dark-button-primary-color-alt;

    & .mdl-ripple {
      background: $mdlext-dark-button-secondary-color-alt;
    }
    &.mdl-button--raised,
    &.mdl-button--fab {
      color: $mdlext-dark-button-secondary-color-alt;
      background-color: $mdlext-dark-button-primary-color-alt;
    }
  }

  .mdl-button--accent.mdl-button--accent {
    color: $mdlext-dark-button-fab-color-alt;

    & .mdl-ripple {
      background: $mdlext-dark-button-fab-text-color-alt;
    }
    &.mdl-button--raised,
    &.mdl-button--fab {
      color: $mdlext-dark-button-fab-text-color-alt;
      background-color: $mdlext-dark-button-fab-color-alt;
    }
  }

  // Disabled buttons

  .mdl-button {
    // Bump up specificity by using [disabled] twice.
    &[disabled][disabled],
    &.mdl-button--disabled.mdl-button--disabled {
      color: $mdlext-dark-button-secondary-color-disabled;
      background-color: transparent;
    }

    &--fab {
      // Bump up specificity by using [disabled] twice.
      &[disabled][disabled],
      &.mdl-button--disabled.mdl-button--disabled {
        background-color: $mdlext-dark-button-primary-color-disabled;
        color: $mdlext-dark-button-secondary-color-disabled;
      }
    }

    &--raised {
      // Bump up specificity by using [disabled] twice.
      &[disabled][disabled],
      &.mdl-button--disabled.mdl-button--disabled {
        background-color: $mdlext-dark-button-primary-color-disabled;
        color: $mdlext-dark-button-secondary-color-disabled;
      }
    }
    &--colored {
      // Bump up specificity by using [disabled] twice.
      &[disabled][disabled],
      &.mdl-button--disabled.mdl-button--disabled {
        color: $mdlext-dark-button-secondary-color-disabled;
      }
    }
  }
}


// mdl/src/slider/_slider.scss
// ---------------------------
.mdlext-dark-color-theme {

  .mdl-slider {

    &.is-upgraded {
      background: transparent;
      color: $mdlext-dark-range-color;

      &::-webkit-slider-runnable-track {
        background: transparent;
      }

      &::-moz-range-track {
        background: transparent;
      }

      &::-ms-track {
        background: none;
        color: transparent;
      }

      /* stylelint-disable */
      &::-ms-fill-lower {
        background: linear-gradient(
          to right,
          transparent,
          transparent 16px,
          $mdlext-dark-range-color 16px,
          $mdlext-dark-range-color 0
        );
      }

      &::-ms-fill-upper {
        background: linear-gradient(
          to left,
          transparent,
          transparent 16px,
          $mdlext-dark-range-bg-color 16px,
          $mdlext-dark-range-bg-color 0);
      }
      /* stylelint-enable */

      &::-webkit-slider-thumb {
        background: $mdlext-dark-range-color;
      }

      &::-moz-range-thumb {
        background: $mdlext-dark-range-color;
      }

      &:focus:not(:active)::-webkit-slider-thumb {
        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;
      }

      &:focus:not(:active)::-moz-range-thumb {
        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;
      }

      &:active::-webkit-slider-thumb {
        background: $mdlext-dark-range-color;
      }

      &:active::-moz-range-thumb {
        background: $mdlext-dark-range-color;
      }

      &::-ms-thumb {
        background: $mdlext-dark-range-color;
      }

      /* stylelint-disable */
      &:focus:not(:active)::-ms-thumb {
        background: radial-gradient(circle closest-side,
          $mdlext-dark-range-color 0%,
          $mdlext-dark-range-color 37.5%,
          $mdlext-dark-range-faded-color 37.5%,
          $mdlext-dark-range-faded-color 100%);
      }
      /* stylelint-enable */

      &:active::-ms-thumb {
        background: $mdlext-dark-range-color;
      }


      /**************************** 0-value ****************************/

      &.is-lowest-value::-webkit-slider-thumb {
        border-color: $mdlext-dark-range-color;
        background: transparent;
      }

      &.is-lowest-value::-moz-range-thumb {
        border-color: $mdlext-dark-range-bg-color;
        background: transparent;
      }

      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;
        background: $mdlext-dark-range-bg-focus-color;
      }

      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {
        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;
        background: $mdlext-dark-range-bg-focus-color;
      }

      &.is-lowest-value:active::-webkit-slider-thumb {
        border-color: $mdlext-dark-range-bg-color;
      }

      &.is-lowest-value:active::-moz-range-thumb {
        border-color: $mdlext-dark-range-bg-color;
      }

      /* stylelint-disable */
      &.is-lowest-value::-ms-thumb {
        background: radial-gradient(circle closest-side,
          transparent 0%,
          transparent 66.67%,
          $mdlext-dark-range-bg-color 66.67%,
          $mdlext-dark-range-bg-color 100%);
      }

      &.is-lowest-value:focus:not(:active)::-ms-thumb {
        background: radial-gradient(circle closest-side,
          $mdlext-dark-range-bg-focus-color 0%,
          $mdlext-dark-range-bg-focus-color 25%,
          $mdlext-dark-range-bg-color 25%,
          $mdlext-dark-range-bg-color 37.5%,
          $mdlext-dark-range-bg-focus-color 37.5%,
          $mdlext-dark-range-bg-focus-color 100%);
      }

      &.is-lowest-value:active::-ms-thumb {
        background: radial-gradient(circle closest-side,
          transparent 0%,
          transparent 77.78%,
          $mdlext-dark-range-bg-color 77.78%,
          $mdlext-dark-range-bg-color 100%);
      }
      /* stylelint-enable */

      &.is-lowest-value::-ms-fill-lower {
        background: transparent;
      }

      /**************************** Disabled ****************************/

      &:disabled:focus::-webkit-slider-thumb,
      &:disabled:active::-webkit-slider-thumb,
      &:disabled::-webkit-slider-thumb {
        background: $mdlext-dark-range-bg-color;
      }

      &:disabled:focus::-moz-range-thumb,
      &:disabled:active::-moz-range-thumb,
      &:disabled::-moz-range-thumb {
        background: $mdlext-dark-range-bg-color;
      }

      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
        background-color: $mdlext-dark-range-bg-color;
      }

      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,
      &.is-lowest-value:disabled:active::-webkit-slider-thumb,
      &.is-lowest-value:disabled::-webkit-slider-thumb {
        border-color: $mdlext-dark-range-bg-color;
        background: transparent;
      }

      &.is-lowest-value:disabled:focus::-moz-range-thumb,
      &.is-lowest-value:disabled:active::-moz-range-thumb,
      &.is-lowest-value:disabled::-moz-range-thumb {
        border-color: $mdlext-dark-range-bg-color;
        background: transparent;
      }

      &:disabled:focus::-ms-thumb,
      &:disabled:active::-ms-thumb,
      &:disabled::-ms-thumb {
        background: $mdlext-dark-range-bg-color;
      }

      /* stylelint-disable */
      &.is-lowest-value:disabled:focus::-ms-thumb,
      &.is-lowest-value:disabled:active::-ms-thumb,
      &.is-lowest-value:disabled::-ms-thumb {
        background: radial-gradient(circle closest-side,
          transparent 0%,
          transparent 50%,
          $mdlext-dark-range-bg-color 50%,
          $mdlext-dark-range-bg-color 100%);
      }

      &:disabled::-ms-fill-lower {
        background: linear-gradient(to right,
          transparent,
          transparent 25px,
          $mdlext-dark-range-bg-color 25px,
          $mdlext-dark-range-bg-color 0);
      }
      /* stylelint-enable */

    }
  }

  .mdl-slider__background-flex {
    background: transparent;
  }

  .mdl-slider__background-lower {
    background: $mdlext-dark-range-color;
  }

  // This one styles the upper part of the slider track.
  .mdl-slider__background-upper {
    background: $mdlext-dark-range-bg-color;
  }
}


// mdl/src/textfield/_textfield.scss
// -----------------------------------
.mdlext-dark-color-theme {

  .mdl-textfield__input {
    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;
  }
  .mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: $mdlext-dark-input-text-error-color;
  }
  fieldset[disabled] .mdl-textfield .mdl-textfield__input,
  .mdl-textfield.is-disabled .mdl-textfield__input {
    background-color: transparent;
    border-bottom-color: $mdlext-dark-input-text-disabled-color;
    color: $mdlext-dark-input-text-disabled-text-color;
  }
  .mdl-textfield__label {
    color: $mdlext-dark-input-text-label-color;
  }
  .mdl-textfield__label::after {
    background-color: $mdlext-dark-input-text-highlight-color;
  }
  fieldset[disabled] .mdl-textfield .mdl-textfield__label,
  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
    color: $mdlext-dark-input-text-disabled-text-color;
  }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
    color: $mdlext-dark-input-text-highlight-color;
  }
  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: $mdlext-dark-input-text-error-color;
  }
  .mdl-textfield.is-invalid .mdl-textfield__label::after {
    background-color: $mdlext-dark-input-text-error-color;
  }
  .mdl-textfield__error {
    color: $mdlext-dark-input-text-error-color;
  }
}


// mdl/src/checkbox/_checkbox.scss
// -----------------------------------
.mdlext-dark-color-theme {

  .mdl-checkbox__box-outline {
    border-color: $mdlext-dark-checkbox-off-color;
  }
  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
    border-color: $mdlext-dark-checkbox-color;
  }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
    border-color: $mdlext-dark-checkbox-disabled-color;
  }

  .mdl-checkbox__focus-helper {
    background-color: transparent;
  }
  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-dark-checkbox-focus-color;
    background-color: $mdlext-dark-checkbox-focus-color;
  }

  .mdl-checkbox__tick-outline {
    background: transparent;
  }
  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
    background-color: $mdlext-dark-checkbox-color;
  }
  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background-color: $mdlext-dark-checkbox-disabled-color;
  }

  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
  .mdl-checkbox.is-disabled .mdl-checkbox__label {
    color: $mdlext-dark-checkbox-disabled-color;
  }

  .mdl-checkbox__ripple-container .mdl-ripple {
    background: $mdlext-dark-checkbox-color;
  }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
    background: transparent;
  }

}

// mdl/src/radio/_radio.scss
// -----------------------------------
.mdlext-dark-color-theme {
  .mdl-radio__outer-circle {
    border-color: $mdlext-dark-radio-off-color;
  }
  .mdl-radio.is-checked .mdl-radio__outer-circle {
    border-color: $mdlext-dark-radio-color;
  }
  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
  .mdl-radio.is-disabled .mdl-radio__outer-circle {
    border-color: $mdlext-dark-radio-disabled-color;
  }

  .mdl-radio__inner-circle {
    background: $mdlext-dark-radio-color;
  }
  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
  .mdl-radio.is-disabled .mdl-radio__inner-circle {
    background: $mdlext-dark-radio-disabled-color;
  }

  fieldset[disabled] .mdl-radio .mdl-radio__label,
  .mdl-radio.is-disabled .mdl-radio__label {
    color: $mdlext-dark-radio-disabled-color;
  }

  .mdl-radio__ripple-container .mdl-ripple {
    background: $mdlext-dark-radio-color;
  }
  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
    background: transparent;
  }
}

// mdl/src/icon-togglr/_icon-toggle.scss
// ---------------------------------------
.mdlext-dark-color-theme {
  .mdl-icon-toggle__label {
    color: $mdlext-dark-icon-toggle-color;
  }
  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: $mdlext-dark-icon-toggle-checked-color;
  }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
    color: $mdlext-dark-icon-toggle-disabled-color;
  }
  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
    background-color: $mdlext-dark-icon-toggle-focus-color;
  }
  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
    background-color: $mdlext-dark-icon-toggle-checked-focus-color;
  }
  .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: $mdlext-dark-icon-toggle-color;
  }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: transparent;
  }
}


// mdl/src/switch/_switch.scss
// -----------------------------------
.mdlext-dark-color-theme {

  .mdl-switch__track {
    background: $mdlext-dark-switch-off-track-color;
  }
  .mdl-switch.is-checked .mdl-switch__track {
    background: $mdlext-dark-switch-track-color;
  }
  .mdl-switch__track fieldset[disabled] .mdl-switch,
  .mdl-switch.is-disabled .mdl-switch__track {
    background: $mdlext-dark-switch-disabled-track-color;
  }

  .mdl-switch__thumb {
    background: $mdlext-dark-switch-off-thumb-color;
  }
  .mdl-switch.is-checked .mdl-switch__thumb {
    background: $mdlext-dark-switch-thumb-color;
  }
  .mdl-switch__thumb fieldset[disabled] .mdl-switch,
  .mdl-switch.is-disabled .mdl-switch__thumb {
    background: $mdlext-dark-switch-disabled-thumb-color;
  }

  .mdl-switch__focus-helper {
    background-color: transparent;
  }
  .mdl-switch.is-focused .mdl-switch__focus-helper {
    background-color: rgba(0, 0, 0, 0.1);
  }
  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-dark-switch-faded-color;
    background-color: $mdlext-dark-switch-faded-color;
  }

  .mdl-switch__label fieldset[disabled] .mdl-switch,
  .mdl-switch.is-disabled .mdl-switch__label {
    color: $mdlext-dark-switch-disabled-thumb-color;
  }

  .mdl-switch__ripple-container .mdl-ripple {
    background: $mdlext-dark-switch-color;
  }
  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: transparent;
  }

}


// mdl/src/data-table/_data-table.scss
// -----------------------------------
.mdlext-dark-color-theme {

  .mdl-data-table {
    border-color: $mdlext-dark-data-table-divider-color;
    background-color: $mdlext-dark-data-table-background-color;

    tbody {
      tr {
        &.is-selected {
          background-color: $mdlext-dark-data-table-selection-color;
        }

        &:hover {
          background-color: $mdlext-dark-data-table-hover-color;
        }
      }
    }

    th {
      color: $mdlext-dark-data-table-header-color;

      &.mdl-data-table__header--sorted-ascending,
      &.mdl-data-table__header--sorted-descending {
        color: $mdlext-dark-data-table-header-sorted-color;

        &:hover {
          &::before {
            color: $mdlext-dark-data-table-header-sorted-icon-hover-color;
          }
        }
      }
    }
  }
}

// mdl/src/menu/_menu.scss
// -----------------------------------
.mdlext-dark-color-theme {

  .mdl-menu__outline {
    background: $mdlext-dark-default-dropdown-bg-color;
  }

  .mdl-menu__item {
    color: $mdlext-dark-default-item-text-color;
    background-color: transparent;
    outline-color: $mdlext-dark-default-item-outline-color;

    &--full-bleed-divider {
      border-bottom-color: $mdlext-dark-default-item-divider-color;
    }

    &[disabled],
    &[data-mdl-disabled] {
      color: $mdlext-dark-disabled-item-text-color;
      background-color: transparent;

      &:hover {
        background-color: transparent;
      }

      &:focus {
        background-color: transparent;
      }

      & .mdl-ripple {
        background: transparent;
      }
    }

    &:hover {
      background-color: $mdlext-dark-default-item-hover-bg-color;
    }

    &:focus {
      background-color: $mdlext-dark-default-item-focus-bg-color;
    }

    &:active {
      background-color: $mdlext-dark-default-item-active-bg-color;
    }
  }
}

// mdl/src/card/_card.scss
// ----------------------------------------
.mdlext-dark-color-theme {
  .mdl-card {
    background: $mdlext-dark-card-background-color;
  }

  .mdl-card__media {
    background-color: $mdlext-dark-card-image-placeholder-color;
  }

  .mdl-card__title {
    color: $mdlext-dark-card-text-color;

    &.mdl-card--border {
      border-bottom-color: $mdlext-dark-card-border-color;
    }
  }

  .mdl-card__title-text {
    color: inherit;
  }

  .mdl-card__subtitle-text {
    color: $mdlext-dark-card-subtitle-color;
  }

  .mdl-card__supporting-text {
    color: $mdlext-dark-card-supporting-text-text-color;
  }

  .mdl-card__actions {
    background-color: rgba(255, 255, 255, 0);

    &.mdl-card--border {
      border-top-color: $mdlext-dark-card-border-color;
    }
  }
}


// mdlext/src/selectfield/_selectfield.scss
// ----------------------------------------
.mdlext-dark-color-theme {

  .mdlext-selectfield.is-disabled::after {
    color: $mdlext-dark-input-text-disabled-color;
    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-input-text-disabled-color);
  }

  .mdlext-selectfield__select {
    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;
    color: inherit;

    option {
      background-color: $mdlext-dark-content-background-color;
      color: $mdlext-dark-text-color-primary;
    }
  }
  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
    border-color: $mdlext-dark-input-text-error-color;
  }
  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
    background-color: transparent;
    border-bottom-color: $mdlext-dark-input-text-disabled-color;
    color: $mdlext-dark-input-text-disabled-text-color;
  }

  .mdlext-selectfield__label {
    color: $mdlext-dark-input-text-label-color;
  }
  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
    color: $mdlext-dark-input-text-disabled-text-color;
  }
  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
    color: $mdlext-dark-input-text-highlight-color;
  }
  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
    color: $mdlext-dark-input-text-error-color;
  }
  .mdlext-selectfield__label::after {
    background-color: $mdlext-dark-input-text-highlight-color;
  }
  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
    background-color: $mdlext-dark-input-text-error-color;
  }

  .mdlext-selectfield__error {
    color: $mdlext-dark-input-text-error-color;
  }
}


// mdlext/src/menu-button/_menu-button.scss
// ----------------------------------------
.mdlext-menu.mdlext-dark-color-theme {
  background: $mdlext-dark-default-dropdown-bg-color;
}

.mdlext-dark-color-theme {

  .mdlext-menu {
    background: $mdlext-dark-default-dropdown-bg-color;

    &__item {
      color: $mdlext-dark-default-item-text-color;
      background-color: $mdlext-dark-default-dropdown-bg-color;

      &:active,
      &[aria-selected='true'] {
        background-color: $mdlext-dark-default-item-active-bg-color;
      }
      &:hover:not([disabled]) {
        background-color: $mdlext-dark-default-item-hover-bg-color;
      }
      &:focus {
        outline-color: $mdlext-dark-default-item-outline-color;
        background-color: $mdlext-dark-default-item-focus-bg-color;
      }
      &[disabled] {
        color: $mdlext-dark-disabled-item-text-color;

        > * {
          color: $mdlext-dark-disabled-item-text-color;
        }
      }
    }
    &__item-separator {
      border-bottom: 1px solid $mdlext-dark-default-item-divider-color;
    }
  }
}


// mdlext/src/bordered-fields/_bordered-fields.scss
// -------------------------------------------------
.mdlext-dark-color-theme {

  .mdlext-bordered-fields {

    .mdl-textfield,
    .mdlext-selectfield {

      .mdl-textfield__input,
      .mdlext-selectfield__select {
        background-color: $mdlext-dark-bordered-field-background-color;
        border-color: $mdlext-dark-bordered-field-border-color;
        color: $mdlext-dark-bordered-field-input-text-color;

        &:disabled {
          color: $mdlext-dark-bordered-field-input-text-disabled-text-color;
          background-color: $mdlext-dark-bordered-field-disabled-background-color;
          border-color: $mdlext-dark-bordered-field-disabled-border-color;
        }
        &:focus {
          background-color: $mdlext-dark-bordered-field-focus-background-color;
          border-color: $mdlext-dark-bordered-field-focus-border-color;
        }
      }
      &.is-invalid {
        .mdl-textfield__input,
        .mdlext-selectfield__select {
          color: $mdlext-dark-bordered-field-input-text-error-color;
          border-color: $mdlext-dark-bordered-field-error-border-color;
          background-color: $mdlext-dark-bordered-field-error-background-color;

          &:focus {
            border-color: $mdlext-dark-bordered-field-error-focus-border-color;
            background-color: $mdlext-dark-bordered-field-error-focus-background-color;
          }
        }
      }
    }

    fieldset[disabled] .mdlext-selectfield::after,
    .mdlext-selectfield.is-disabled::after {
      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;
      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-bordered-field-input-text-disabled-text-color);
    }

    fieldset[disabled] .mdl-textfield .mdl-textfield__input,
    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;
      background-color: $mdlext-dark-bordered-field-disabled-background-color;
      border-color: $mdlext-dark-bordered-field-disabled-border-color;
    }

    .mdl-textfield,
    .mdlext-selectfield {

      .mdl-textfield__label,
      .mdlext-selectfield__label {
        color: $mdlext-dark-bordered-field-input-text-label-color;
      }
      &.mdl-textfield--floating-label.is-focused.is-focused,
      &.mdl-textfield--floating-label.is-dirty.is-dirty,
      &.mdl-textfield--floating-label.has-placeholder,
      &.mdlext-selectfield--floating-label.is-focused.is-focused,
      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,
      &.mdlext-selectfield--floating-label.has-placeholder {

        .mdl-textfield__label,
        .mdlext-selectfield__label {
          color: $mdlext-dark-bordered-field-input-text-label-focus-color;
        }
      }
      &.mdl-textfield--floating-label.is-disabled.is-disabled,
      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {

        .mdl-textfield__label,
        .mdlext-selectfield__label {
          color: $mdlext-dark-bordered-field-input-text-label-disabled-color;
        }
      }
      &.mdl-textfield--floating-label.is-invalid.is-invalid,
      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {

        .mdl-textfield__label,
        .mdlext-selectfield__label {
          color: $mdlext-dark-bordered-field-input-text-label-error-color;
        }
      }
    }

    fieldset[disabled] .mdl-textfield .mdl-textfield__label,
    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
      color: $mdlext-dark-bordered-field-input-text-label-disabled-color;
    }

    // Icon(s) and/or button(s) inside textfield
    .mdl-textfield,
    .mdlext-selectfield {
      &.is-disabled i,
      &.is-disabled .mdl-button {
        color: $mdlext-dark-bordered-field-disabled-border-color;
      }
    }
    fieldset[disabled] .mdl-textfield,
    fieldset[disabled] .mdlext-selectfield {
      i,
      .mdl-button {
        color: $mdlext-dark-bordered-field-disabled-border-color;
      }
    }
  }

}


// mdlext/src/accordion/_accordion.scss
// ----------------------------------------
.mdlext-dark-color-theme {

  .mdlext-accordion {

    &__tab {
      color: $mdlext-dark-accordion-header-secondary-color;
      background-color: $mdlext-dark-accordion-header-background-color;

      &:focus {
        outline-color: $mdlext-dark-accordion-header-focus-outline-color;
      }
      &[aria-expanded='true'] {
        background-color: $mdlext-dark-accordion-header-background-open-color;
      }
      &[aria-selected='true'] {
        background-color: $mdlext-dark-accordion-header-background-active-color;
      }
      &[disabled] {
        background-color: $mdlext-dark-accordion-header-disabled-color;
        color: $mdlext-dark-accordion-header-secondary-color-disabled;
        pointer-events: none;

        > * {
          color: $mdlext-dark-accordion-header-secondary-color-disabled;
        }
      }
      &:hover:not([disabled]) {
        background-color: $mdlext-dark-accordion-header-background-hover-color;
      }
      &--ripple {
        &[aria-selected='true']::before {
          background: $mdlext-dark-accordion-ripple-color;
        }
      }
    }

    &__tabpanel {
      color: $mdlext-dark-accordion-content-color;
      background-color: $mdlext-dark-accordion-content-background-color;
    }
  }

  // Vertical layout
  .mdlext-accordion {

    &--vertical {

      .mdlext-accordion__tab {
        border-top: 1px solid $mdlext-dark-accordion-header-border-color;

        &[aria-selected='true']::after {
          background-color: $mdlext-dark-accordion-header-highlight-color;
        }
      }
      .mdlext-accordion__tabpanel {
        border-top: 1px solid $mdlext-dark-accordion-header-border-color;
      }
    }
  }

  // Horizontal layout
  .mdlext-accordion {

    &--horizontal {

      .mdlext-accordion__tab {
        border-left: 1px solid $mdlext-dark-accordion-header-border-color;

        &[aria-selected='true']::after {
          background-color: $mdlext-dark-accordion-header-highlight-color;
        }
      }
      .mdlext-accordion__tabpanel {
        border-left: 1px solid $mdlext-dark-accordion-header-border-color;
      }
    }
  }

  .mdlext-accordion {

    &__panel:first-child > &__tab {
      // Use container to set outer borders
      border-top-color: transparent;
      border-left-color: transparent;
    }
  }

  // Making accordion appear disabled.
  // Note: does not prevent tabbing into a disabled accordion
  .mdlext-accordion[disabled] {
    .mdlext-accordion__tab {
      background-color: $mdlext-dark-accordion-header-disabled-color;
      color: $mdlext-dark-accordion-header-secondary-color-disabled;

      > * {
        color: $mdlext-dark-accordion-header-secondary-color-disabled;
      }
    }
    .mdlext-accordion__tabpanel {
      opacity: 0.8;
      filter: blur(1px) grayscale(80%);
    }
  }
}
