.Switcher {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin: 0;

  &.disabled {
    pointer-events: none;
    opacity: 0.5;
  }

  &.inactive {
    pointer-events: none;
  }

  body.animation-level-0 &,
  &.no-animation {
    .widget,
    .widget::after {
      transition: none !important;
    }

    .widget:active:after {
      width: 1.125rem;
    }
  }

  input {
    height: 0;
    width: 0;
    visibility: hidden;
    position: absolute;
    z-index: var(--z-below);
    opacity: 0;
  }

  .widget {
    cursor: pointer;
    text-indent: -999px;
    width: 2.125rem;
    height: 0.875rem;
    background: var(--color-gray);
    display: inline-block;
    border-radius: .5rem;
    position: relative;
    transition: background .2s ease-in;
  }

  .widget:after {
    content: '';
    position: absolute;
    top: -.125rem;
    left: 0;
    width: 1.125rem;
    height: 1.125rem;
    background: var(--color-background);
    border-radius: .75rem;
    transition: 0.2s ease-out;
    border: .125rem solid var(--color-gray);
  }

  input:checked + .widget {
    background: var(--color-primary);
  }

  input:checked + .widget:after {
    left: calc(100% - 1.125rem);
    transform: translateX(calc(-100% + 1.125rem));
    border-color: var(--color-primary);
  }

  .widget:active:after {
    width: 1.25rem;
  }
}
