.switch{align-items:flex-start;gap:var(--space-3);display:inline-flex}.switch--disabled{opacity:.4;cursor:not-allowed}.switch__track{border-radius:var(--radius-full);cursor:pointer;background:var(--neutral-800);transition:background var(--dur-base) var(--ease-out-soft), box-shadow var(--dur-base) var(--ease-out-soft);border:none;flex-shrink:0;padding:2px;position:relative}.switch__track--md{width:44px;height:24px}.switch__track--sm{width:32px;height:18px}.switch__track--on.switch__track--neutral{background:var(--violet-600);box-shadow:0 0 0 1px var(--violet-400)}.switch__track--on.switch__track--danger{background:var(--crimson-700);box-shadow:0 0 0 1px var(--crimson-500)}.switch__track--disabled{cursor:not-allowed}.switch__track--loading{cursor:wait}.switch__track:hover:not(.switch__track--disabled):not(.switch__track--loading){box-shadow:0 0 0 4px var(--glow-violet)}.switch__track:focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px}.switch__thumb{border-radius:var(--radius-full);background:var(--neutral-500);transition:transform var(--dur-base) var(--ease-out-soft);box-shadow:var(--shadow-card);justify-content:center;align-items:center;display:flex}.switch__thumb--md{width:20px;height:20px}.switch__thumb--sm{width:14px;height:14px}.switch__track--on .switch__thumb--md{background:#fff;transform:translate(20px)}.switch__track--on .switch__thumb--sm{background:#fff;transform:translate(14px)}.switch__spinner{border-radius:var(--radius-full);border:1.5px solid #ffffff4d;border-top-color:#fff;width:10px;height:10px;animation:.6s linear infinite switch-spin}@keyframes switch-spin{to{transform:rotate(360deg)}}.switch__labels{flex-direction:column;gap:2px;min-width:0;display:flex}.switch__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);cursor:pointer;line-height:var(--lh-normal)}.switch--disabled .switch__label{cursor:not-allowed}.switch__description{font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-normal)}@media (prefers-reduced-motion:reduce){.switch__thumb,.switch__track{transition:none}.switch__spinner{animation-duration:1.5s}}
