.a11y-panel-enter-active {
  animation: slideInFromTop 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.a11y-panel-leave-active {
  animation: slideOutToTop 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.ios-toggle {
  position: relative;
  width: 42px;
  height: 24px;
  background: #e5e5e5;
  border-radius: 12px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  pointer-events: auto;
}

.ios-toggle input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}

.ios-toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: white;
  border-radius: 50%;
  transition:
    transform 0.3s ease,
    background-color 0.3s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  z-index: 0;
}

.ios-toggle input:checked + .toggle-track::after {
  transform: translateX(18px);
}

.ios-toggle input:checked + .toggle-track {
  background: rgba(var(--color-primary-500), 1);
}

.ios-toggle input:checked ~ .ios-toggle-ball {
  transform: translateX(18px);
}

.ios-toggle.is-checked {
  background: rgba(var(--color-primary-500), 1);
}

.ios-toggle:has(input:checked) {
  background: rgba(var(--color-primary-500), 1);
}

.ios-toggle:has(input:checked)::after {
  transform: translateX(18px);
}

.dark .ios-toggle {
  background: #404040;
}

.dark .ios-toggle::after {
  background: #f5f5f5;
}
