.choice {
  display: flex;
  min-block-size: 2.75rem;
  align-items: flex-start;
  gap: var(--space-3);
  cursor: pointer;
}
.choice > input:not(.switchInput) {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  margin-block-start: 0.2rem;
  accent-color: var(--interactive-primary);
}
.content {
  display: grid;
  gap: var(--space-1);
}
.label {
  font-weight: 700;
}
.description {
  color: var(--text-secondary);
  font-size: var(--type-label-size);
}
.invalid .label {
  color: var(--status-error-text);
}
.switchInput {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}
.switchTrack {
  position: relative;
  flex: none;
  inline-size: 2.75rem;
  block-size: 1.5rem;
  margin-block-start: 0.1rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--surface-strong);
  transition: background var(--duration-fast) var(--easing-productive);
}
.switchTrack span {
  position: absolute;
  inset-block-start: 0.18rem;
  inset-inline-start: 0.2rem;
  inline-size: 1rem;
  block-size: 1rem;
  border-radius: 50%;
  background: var(--surface-elevated);
  box-shadow: var(--shadow-subtle);
  transition: transform var(--duration-fast) var(--easing-productive);
}
.switchInput:checked + .switchTrack {
  background: var(--interactive-primary);
}
.switchInput:checked + .switchTrack span {
  transform: translateX(1.2rem);
}
html[dir='rtl'] .switchInput:checked + .switchTrack span {
  transform: translateX(-1.2rem);
}
.switchInput:focus-visible + .switchTrack {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
}
.switchInput:disabled + .switchTrack {
  opacity: var(--opacity-disabled);
}
@media (prefers-reduced-motion: reduce) {
  .switchTrack,
  .switchTrack span {
    transition: none;
  }
}
