// Switch
.switch label {
  cursor: pointer;

  input[type="checkbox"] {
    opacity: 0;
    @include switch-width-height(0, 0);

    &:checked + .lever {
      background-color: map-get($switch-colors, "checked-lever-bg");
    }

    &:checked + .lever:after {
      left: $switch-input-checkbox-checked-lever-after-left;
      background-color: map-get($switch-colors, "bg");
    }

    &:checked:not(:disabled) ~ .lever:active:after {
      @include box-shadows($switch-lever-after-box-shadow-darker, $switch-lever-after-box-shadow-transp);
    }

    &:not(:disabled) ~ .lever:active:after {
      @include box-shadows($switch-lever-after-box-shadow-darker, $switch-lever-after-box-shadow-lighter);
    }

    &:disabled + .lever {
      cursor: default;
    }

    &:disabled + .lever:after,
    &:disabled:checked + .lever:after {
      background-color: $input-disabled-solid-color;
    }
  }

  .lever {
    position: relative;
    display: inline-block;
    margin: $switch-lever-margin;
    margin-right: $switch-lever-mr;
    vertical-align: middle;
    content: "";
    background-color: map-get($switch-colors, "unchecked-lever-bg");
    border-radius: $switch-lever-border-radius-small;
    @include switch-width-height(2.5rem, .9375rem);
    @include transition-main($switch-lever-after-transition-bg);

    &:after {
      position: absolute;
      top: $switch-lever-after-top;
      left: $switch-lever-after-left;
      display: inline-block;
      content: "";
      background-color: map-get($switch-colors, "unchecked-bg");
      border-radius: $switch-lever-after-border-radius-high;
      @include box-shadows($switch-lever-after-box-shadow-darker);
      @include switch-width-height(1.3125rem, 1.3125rem);
      @include transition-main($switch-lever-after-transition-left, $switch-lever-after-transition-bg, $switch-lever-after-transition-box);
    }
  }
}
