.menu-preferences { padding: 3px 0; }
.menu-preference { display: flex; align-items: center; gap: 12px; min-height: 66px; padding: 9px 12px; }
.menu-preference + .menu-preference { border-top: 1px solid var(--line,rgba(135,147,174,.16)); }
.menu-preference-icon { display: grid; place-items: center; width: 28px; color: var(--muted,#8f9ab1); flex: 0 0 28px; }
.menu-preference-icon svg { width: 21px; height: 21px; }
.menu-preference-copy { display: grid; gap: 2px; min-width: 0; flex: 1; font-size: 14px; font-weight: 650; color: var(--text,#edf0f7); }
.menu-preference-status { color: var(--muted,#8f9ab1); font-size: 11px; font-weight: 500; }
.preference-switch { appearance: none; position: relative; display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: transparent; cursor: pointer; }
.preference-switch::before { content: ""; width: 44px; height: 26px; border-radius: 20px; background: var(--muted,#8f9ab1); opacity: .3; transition: background 200ms, opacity 200ms; }
.preference-switch > span { position: absolute; left: 6px; top: 13px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0003; transform: translateX(0); transition: transform 200ms; }
.preference-switch[aria-checked="true"]::before { background: #4479df; opacity: 1; }
.preference-switch[aria-checked="true"] > span { transform: translateX(18px); }
.preference-switch:focus-visible { outline: 2px solid #6f9ff9; outline-offset: 2px; }
.preference-switch:disabled { cursor: default; opacity: .5; }
.preference-switch[aria-busy="true"] > span { border: 2px solid transparent; border-top-color: #4479df; animation: preference-wait 650ms linear infinite; }
.menu-preference-feedback { display: block; padding: 0 12px; font-size: 12px; color: var(--muted,#8f9ab1); }
.menu-preference-feedback:empty { display: none; }
@keyframes preference-wait { to { rotate: 360deg; } }
@media (prefers-reduced-motion: reduce) { .preference-switch::before,.preference-switch > span { transition: none; animation: none !important; } }
