/* The button is a 44 px hit box around the 40×24 track; negative margins keep the 40×24 layout footprint. */ .toggle { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin: -10px -2px; padding: 0; border: 0; border-radius: var(--radius-pill); background: transparent; cursor: pointer; } .toggle:disabled { opacity: 0.45; cursor: not-allowed; } .track { position: relative; width: 40px; height: 24px; border-radius: var(--radius-pill); background: var(--color-neutral-300); transition: background-color 150ms var(--ease-out-soft); } .knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: var(--radius-pill); background: var(--color-bg); box-shadow: var(--shadow-sm); transition: transform 180ms var(--ease-spring); } .toggle[aria-checked='true'] .track { background: var(--color-accent-2-600); } .toggle[aria-checked='true'] .knob { transform: translateX(16px); } @media (prefers-reduced-motion: reduce) { .track, .knob { transition: none; } }