/* Toggle Component
   ========================================================================== */

.form-toggle .form-check {
  padding-left: 0 !important;
}

.toggle {
  position: absolute;
  transform: scale(0);
}

.toggle + label {
  position: relative;
  display: inline-block;
  padding-left: 40px;
  cursor: pointer;
  user-select: none;
}

.toggle + label::before {
  content: "";
  display: block;
  position: absolute;
  cursor: pointer;
  width: 36px;
  height: 20px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background-color: var(--color-gray);
  border-radius: 50rem;
  transition: background-color 0.2s ease;
}

.toggle:checked + label::before {
  background-color: var(--color-blue-bright, var(--color-red));
}

.toggle + label::after {
  content: "";
  display: block;
  position: absolute;
  cursor: pointer;
  width: 16px;
  height: 16px;
  top: 50%;
  left: 2px;
  transform: translateY(-50%);
  background-color: var(--color-always-white);
  border-radius: 50%;
  transition: left 0.2s ease;
}

.toggle:checked + label::after {
  left: 18px;
}

/* Focus styles */
.toggle:focus-visible + label::before {
  outline: 2px solid var(--color-blue-bright, var(--color-red));
  outline-offset: 2px;
}

/* Disabled state */
.toggle:disabled + label {
  opacity: 0.6;
  cursor: not-allowed;
}

.toggle:disabled + label::before {
  background-color: var(--color-gray-light);
}
