/* Shared display preferences, with each demonstration retaining its own identity. */
:root[data-theme="dark"]{color-scheme:dark;--ink:#f5eff9;--muted:#cbc1d3;--line:#62556e;--paper:#19151f;--accent:#d6b8fa;--soft:#342a41}
:root[data-theme="dark"] body[data-tool]{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] :is(.demo-bar,.workspace,.workspace-head,.preview){background:#251f2e;color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] body[data-tool] :is(button,a.button,input:not([type=checkbox]),textarea,select){background:#302735;color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] body[data-tool] button.primary{background:#d6b8fa;color:#23152d;border-color:#d6b8fa}
:root[data-theme="dark"] body[data-tool="mon-francais"]{--accent:#a6dfc5;--soft:#253d34}
:root[data-theme="dark"] body[data-tool="french-grammar"]{--accent:#b4d5fa;--soft:#26374c}
:root[data-theme="dark"] body[data-tool="portfolio"]{--accent:#f7c7a4;--soft:#443026}
:root[data-theme="dark"] .toolbox-return{background:#251f2e;color:#f5eff9;border-color:#62556e}
:root[data-theme="dark"] .toolbox-return a{color:#d6b8fa}
:root[data-readable-font="true"] body{font-family:"Atkinson Hyperlegible",system-ui,sans-serif}
/* Creator calendar: a darker orange makes white button labels readable. */
:root{--c-primary:#a9430d;--c-primary-dark:#84340b;--c-text-3:#68616c}
:root[data-theme="dark"]{--c-bg:#19151f;--c-surface:#251f2e;--c-border:#62556e;--c-text:#f5eff9;--c-text-2:#d9cedf;--c-text-3:#c4b8cf;--c-primary:#ffbd8f;--c-primary-dark:#ffcfad;--c-primary-light:#443024;--c-green:#a6dfb9;--c-green-light:#243c2e;--c-yellow:#ead08b;--c-yellow-light:#443b24;--c-blue:#afcdf7;--c-blue-light:#263a52;--c-purple:#d6b8fa;--c-purple-light:#362a49;--c-red:#ffb1af;--c-red-light:#492d32}
:root[data-theme="dark"] :is(.btn-primary,.nav-fab .nav-icon){color:#2b1a11}
/* Invoice page uses its own existing tokens. */
:root[data-theme="dark"]:has(.wrap .paper){--bg:#15182f;--surface:#1e2244;--sunk:#191c3a;--line:#4b527a;--fg:#ecebfa;--muted:#c4c9e5;--accent:#ffde68;--accent-fg:#1f254a;--yellow:#ffde68;--yellow-soft:#4a4426;--purple:#c0acec;--purple-soft:#33305c;--mint:#bde1d0;--mint-soft:#24443e;--rust:#f1ba85;--rust-soft:#44301f;--chip-fg:#ecebfa}
:root[data-theme="dark"]:has(.wrap .paper) body{background:var(--bg);color:var(--fg)}
:root[data-theme="dark"]:has(.wrap .paper) button.primary{background:var(--accent);color:var(--accent-fg)}
/* The NETO practice bank keeps its pine palette. */
:root[data-theme="dark"]:has(#app .shell){--bg:#0b1412;--surface:#14221d;--surface-2:#1b3028;--fg:#edf6f1;--muted:#bdcec5;--line:#456355;--brand:#8bd4b8;--brand-strong:#b0e5d0;--brand-fg:#0b2b20;--brand-soft:#1b3b2e;--accent:#e6bd68;--accent-soft:#3d3017;--accent-ink:#f7dc9b;--in:#8bd4b8;--in-soft:#1b3b2e;--danger:#ffb0a8;--danger-soft:#452c28;--focus:#a7cfff}
:root[data-theme="dark"] .btn-secondary{background:#352b40;color:#f5eff9;border-color:#756582}:root[data-theme="dark"] .badge-count{color:#2b1a11}
:root[data-theme="light"] .chip-planned{color:#244f83;background:#e7eff9}:root[data-theme="light"] .chip-posted{color:#22643b;background:#e5f3e9}:root[data-theme="light"] .chip-needs{color:#715000;background:#fff2c7}:root[data-theme="light"] .chip-feedback{color:#653986;background:#f2e8fa}
