/* Shared accessibility palettes. Red hearts retain fill/outline state cues. */
html:root[data-theme="contrast"]{--bg:#000000;--bar:#121212;--ink:#FFFFFF;--muted:#FFFFFF;--line:#A6A6A6;--sel:#FFFFFF;--sel-ink:#000000;--accent:#FFFFFF;--hover:#242424;--ok:#FFFFFF;--heart:#FF6666;--bg-2:#000000;--bg-3:#121212;--bg-4:#242424;--line-2:#A6A6A6;--text:#FFFFFF;--text-2:#FFFFFF;--text-3:#FFFFFF;--accent-hover:#FFFFFF;--accent-ink:#000000;--accent-2:#FFFFFF;--good:#FFFFFF;--warn:#FFFFFF;--green:#FFFFFF;--lime:#FFFFFF;--paper:#000000;--white:#000000;--x-in:#000000;--bg-canvas:#000000;--bg-card:#000000;--bg-elevated:#121212;--bg-subtle:#121212;--bg-muted:#242424;--bg-accent:#FFFFFF;--text-main:#FFFFFF;--text-muted:#FFFFFF;--text-faint:#FFFFFF;--border-subtle:#A6A6A6;--border-strong:#A6A6A6;--border-focus:#FFFFFF;--primary:#FFFFFF;--primary-hover:#FFFFFF;--primary-subtle:#FFFFFF;--primary-text:#000000;--text-inverse:#000000;--success:#FFFFFF;--success-subtle:#121212;--success-text:#FFFFFF;--warning:#FFFFFF;--warning-subtle:#121212;--warning-text:#FFFFFF;--danger:#FFFFFF;--danger-subtle:#121212;--danger-text:#FFFFFF;--e-bg:#000000;--e-in:#000000;--e-ink:#FFFFFF;--e-muted:#FFFFFF;--e-line:#A6A6A6;--e-line2:#A6A6A6;--e-acc:#FFFFFF;--e-acc-ink:#000000;color-scheme:dark}
html:root[data-theme="mono"]{--bg:#FFFFFF;--bar:#F2F2F2;--ink:#000000;--muted:#333333;--line:#666666;--sel:#000000;--sel-ink:#FFFFFF;--accent:#000000;--hover:#E6E6E6;--ok:#000000;--heart:#C00020;--bg-2:#FFFFFF;--bg-3:#F2F2F2;--bg-4:#E6E6E6;--line-2:#666666;--text:#000000;--text-2:#333333;--text-3:#333333;--accent-hover:#000000;--accent-ink:#FFFFFF;--accent-2:#000000;--good:#000000;--warn:#000000;--green:#000000;--lime:#000000;--paper:#FFFFFF;--white:#FFFFFF;--x-in:#FFFFFF;--bg-canvas:#FFFFFF;--bg-card:#FFFFFF;--bg-elevated:#F2F2F2;--bg-subtle:#F2F2F2;--bg-muted:#E6E6E6;--bg-accent:#000000;--text-main:#000000;--text-muted:#333333;--text-faint:#333333;--border-subtle:#666666;--border-strong:#666666;--border-focus:#000000;--primary:#000000;--primary-hover:#000000;--primary-subtle:#000000;--primary-text:#FFFFFF;--text-inverse:#FFFFFF;--success:#000000;--success-subtle:#F2F2F2;--success-text:#000000;--warning:#000000;--warning-subtle:#F2F2F2;--warning-text:#000000;--danger:#000000;--danger-subtle:#F2F2F2;--danger-text:#000000;--e-bg:#FFFFFF;--e-in:#FFFFFF;--e-ink:#000000;--e-muted:#333333;--e-line:#666666;--e-line2:#666666;--e-acc:#000000;--e-acc-ink:#FFFFFF;color-scheme:light}
html:root[data-theme="colorblind"]{--bg:#FFFFFF;--bar:#F0F4F7;--ink:#17232D;--muted:#44515C;--line:#78838D;--sel:#DCEAF5;--sel-ink:#123B56;--accent:#005A85;--hover:#E7EFF5;--ok:#005A85;--heart:#C00020;--bg-2:#FFFFFF;--bg-3:#F0F4F7;--bg-4:#E7EFF5;--line-2:#78838D;--text:#17232D;--text-2:#44515C;--text-3:#44515C;--accent-hover:#005A85;--accent-ink:#FFFFFF;--accent-2:#005A85;--good:#005A85;--warn:#17232D;--green:#005A85;--lime:#DCEAF5;--paper:#FFFFFF;--white:#FFFFFF;--x-in:#FFFFFF;--bg-canvas:#FFFFFF;--bg-card:#FFFFFF;--bg-elevated:#F0F4F7;--bg-subtle:#F0F4F7;--bg-muted:#E7EFF5;--bg-accent:#DCEAF5;--text-main:#17232D;--text-muted:#44515C;--text-faint:#44515C;--border-subtle:#78838D;--border-strong:#78838D;--border-focus:#005A85;--primary:#005A85;--primary-hover:#005A85;--primary-subtle:#DCEAF5;--primary-text:#FFFFFF;--text-inverse:#FFFFFF;--success:#005A85;--success-subtle:#F0F4F7;--success-text:#17232D;--warning:#17232D;--warning-subtle:#F0F4F7;--warning-text:#17232D;--danger:#17232D;--danger-subtle:#F0F4F7;--danger-text:#17232D;--e-bg:#FFFFFF;--e-in:#FFFFFF;--e-ink:#17232D;--e-muted:#44515C;--e-line:#78838D;--e-line2:#78838D;--e-acc:#005A85;--e-acc-ink:#FFFFFF;color-scheme:light}
html[data-theme=contrast] .brand{color:#fff}html[data-theme=contrast] :is(.row.cur,.b.give,.seg button[aria-pressed=true]){color:#000}html[data-theme=mono] .brand{color:#000}
html[data-theme=contrast] :focus-visible{outline:3px solid var(--accent,#FFFFFF)!important;outline-offset:2px}html[data-theme=mono] :focus-visible{outline:3px solid #000!important;outline-offset:2px}
@media screen{html[data-theme=contrast] a,html[data-theme=mono] a,html[data-theme=colorblind] a{text-decoration:underline}}

/* Primary actions must remain readable on the yellow high-contrast accent. */
html[data-theme=contrast] :is(.btn-primary,.btn-primary:hover){color:var(--accent-ink,#000)!important}

/* Personal accent controls remain compact and native-keyboard accessible. */
.accent-controls{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.accent-controls label{font-size:12px;display:inline-flex;align-items:center;gap:4px;margin:0}.accent-controls input[type=color]{width:28px;height:24px;padding:1px;border:1px solid var(--line);background:var(--bar);cursor:pointer}.accent-controls button{font:inherit;padding:2px 5px;border:1px solid var(--line);background:var(--bar);color:var(--ink);border-radius:3px;cursor:pointer}html[data-custom-accent] .b.give{background:var(--accent);color:var(--accent-ink)}html[data-custom-accent] :is(.row.cur,.seg button[aria-pressed=true]){color:var(--sel-ink)}
@media(max-width:600px){.accent-controls label span{display:none}.accent-controls button{font-size:11px;padding:2px 3px}.accent-controls{gap:2px}}
