/* Forma palettes. Light "Paper" is the default; dark palettes sit behind the sun/moon toggle and Settings → Appearance. The base accent is subject-neutral; subject accents (Settings → Appearance) tint each subject on top. --accent-2 is the partner colour for gradients. Study sheets keep their own fixed colours. Generated from palette-data.json by the scratch script; regenerate rather than hand-edit. */
html[data-theme=light]{--site-bg:#f7f6f2;--site-surface:#ffffff;--site-soft:#eeece6;--site-ink:#16181c;--site-muted:#5a5e66;--site-accent:#2b4c7e;--site-line:#dcdad3;--site-on-accent:#ffffff;color-scheme:light}
html[data-theme=light] body{--bg:#f7f6f2;--surface:#ffffff;--soft:#eeece6;--ink:#16181c;--muted:#5a5e66;--accent:#2b4c7e;--accent-2:#6a8fd6;--line:#dcdad3;--on-accent:#ffffff;--canvas:#ffffff;--text:var(--ink);--sage:var(--accent);--lilac:#85709c;--peach:#9c725c;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:light}
html[data-theme=mist]{--site-bg:#e9f0f6;--site-surface:#f9fbfd;--site-soft:#d9e5ef;--site-ink:#172230;--site-muted:#526578;--site-accent:#1f6f73;--site-line:#c6d5e2;--site-on-accent:#ffffff;color-scheme:light}
html[data-theme=mist] body{--bg:#e9f0f6;--surface:#f9fbfd;--soft:#d9e5ef;--ink:#172230;--muted:#526578;--accent:#1f6f73;--accent-2:#4db3b8;--line:#c6d5e2;--on-accent:#ffffff;--canvas:#f9fbfd;--text:var(--ink);--sage:var(--accent);--lilac:#85709c;--peach:#9c725c;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:light}
html[data-theme=sage]{--site-bg:#e9f1e6;--site-surface:#f8fbf6;--site-soft:#d8e6d3;--site-ink:#152318;--site-muted:#4f6354;--site-accent:#2f6b3a;--site-line:#c7d8c3;--site-on-accent:#ffffff;color-scheme:light}
html[data-theme=sage] body{--bg:#e9f1e6;--surface:#f8fbf6;--soft:#d8e6d3;--ink:#152318;--muted:#4f6354;--accent:#2f6b3a;--accent-2:#7fbf5a;--line:#c7d8c3;--on-accent:#ffffff;--canvas:#f8fbf6;--text:var(--ink);--sage:var(--accent);--lilac:#85709c;--peach:#9c725c;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:light}
html[data-theme=sand]{--site-bg:#f7eddc;--site-surface:#fffaf0;--site-soft:#f0e2c8;--site-ink:#2b2316;--site-muted:#6a5a44;--site-accent:#8a5a2b;--site-line:#e3d3b4;--site-on-accent:#ffffff;color-scheme:light}
html[data-theme=sand] body{--bg:#f7eddc;--surface:#fffaf0;--soft:#f0e2c8;--ink:#2b2316;--muted:#6a5a44;--accent:#8a5a2b;--accent-2:#e0a04a;--line:#e3d3b4;--on-accent:#ffffff;--canvas:#fffaf0;--text:var(--ink);--sage:var(--accent);--lilac:#85709c;--peach:#9c725c;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:light}
html[data-theme=rose]{--site-bg:#f9e9ec;--site-surface:#fffafb;--site-soft:#f3dade;--site-ink:#2a1a1f;--site-muted:#6d4f57;--site-accent:#a8324f;--site-line:#e7c9d0;--site-on-accent:#ffffff;color-scheme:light}
html[data-theme=rose] body{--bg:#f9e9ec;--surface:#fffafb;--soft:#f3dade;--ink:#2a1a1f;--muted:#6d4f57;--accent:#a8324f;--accent-2:#e07a9a;--line:#e7c9d0;--on-accent:#ffffff;--canvas:#fffafb;--text:var(--ink);--sage:var(--accent);--lilac:#85709c;--peach:#9c725c;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:light}
html[data-theme=dark]{--site-bg:#0c120d;--site-surface:#141c15;--site-soft:#1d281f;--site-ink:#eef3ea;--site-muted:#a9b4a6;--site-accent:#c9f36b;--site-line:#2a382c;--site-on-accent:#0e1a0a;color-scheme:dark}
html[data-theme=dark] body{--bg:#0c120d;--surface:#141c15;--soft:#1d281f;--ink:#eef3ea;--muted:#a9b4a6;--accent:#c9f36b;--accent-2:#3ddc97;--line:#2a382c;--on-accent:#0e1a0a;--canvas:#141c15;--text:var(--ink);--sage:var(--accent);--lilac:#c0b4df;--peach:#d5b4a5;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:dark}
html[data-theme=graphite]{--site-bg:#0b0b0c;--site-surface:#141416;--site-soft:#1e1e21;--site-ink:#f2f2f3;--site-muted:#a5a6ab;--site-accent:#e9e9ec;--site-line:#2a2a2e;--site-on-accent:#111113;color-scheme:dark}
html[data-theme=graphite] body{--bg:#0b0b0c;--surface:#141416;--soft:#1e1e21;--ink:#f2f2f3;--muted:#a5a6ab;--accent:#e9e9ec;--accent-2:#8a8a92;--line:#2a2a2e;--on-accent:#111113;--canvas:#141416;--text:var(--ink);--sage:var(--accent);--lilac:#c0b4df;--peach:#d5b4a5;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:dark}
html[data-theme=lofi]{--site-bg:#16110e;--site-surface:#211913;--site-soft:#2d231b;--site-ink:#f3ebe2;--site-muted:#b5a797;--site-accent:#e9a84b;--site-line:#3a2f26;--site-on-accent:#1d1409;color-scheme:dark}
html[data-theme=lofi] body{--bg:#16110e;--surface:#211913;--soft:#2d231b;--ink:#f3ebe2;--muted:#b5a797;--accent:#e9a84b;--accent-2:#d96a6a;--line:#3a2f26;--on-accent:#1d1409;--canvas:#211913;--text:var(--ink);--sage:var(--accent);--lilac:#c0b4df;--peach:#d5b4a5;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:dark}
html[data-theme=midnight]{--site-bg:#0e1521;--site-surface:#161f2e;--site-soft:#212c3e;--site-ink:#e9f0fa;--site-muted:#a7b6cc;--site-accent:#9ec5ff;--site-line:#2b3850;--site-on-accent:#0d1b33;color-scheme:dark}
html[data-theme=midnight] body{--bg:#0e1521;--surface:#161f2e;--soft:#212c3e;--ink:#e9f0fa;--muted:#a7b6cc;--accent:#9ec5ff;--accent-2:#7c5cff;--line:#2b3850;--on-accent:#0d1b33;--canvas:#161f2e;--text:var(--ink);--sage:var(--accent);--lilac:#c0b4df;--peach:#d5b4a5;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:dark}
html[data-theme=crimson]{--site-bg:#140a0c;--site-surface:#1e1013;--site-soft:#2b171b;--site-ink:#f6e9eb;--site-muted:#c1a3a9;--site-accent:#ff6b81;--site-line:#3d2228;--site-on-accent:#2a0a10;color-scheme:dark}
html[data-theme=crimson] body{--bg:#140a0c;--surface:#1e1013;--soft:#2b171b;--ink:#f6e9eb;--muted:#c1a3a9;--accent:#ff6b81;--accent-2:#ffb347;--line:#3d2228;--on-accent:#2a0a10;--canvas:#1e1013;--text:var(--ink);--sage:var(--accent);--lilac:#c0b4df;--peach:#d5b4a5;--button-bg:var(--accent);--button-ink:var(--on-accent);--cream:var(--bg);--mint:var(--soft);color-scheme:dark}
/* derived tokens */
html[data-theme] body{--accent-soft:color-mix(in srgb,var(--accent) 12%,var(--surface));--accent-glow:color-mix(in srgb,var(--accent) 35%,transparent);--warn:#c98a2b;--danger:#c4584a;--ok:#2e8b57;--physics:#2b5f8e;--physics-2:#5aa9ff;--chemistry:#9a4f1e;--chemistry-2:#e0a04a;--maths:#5b4a9e;--maths-2:#9a7bff;--biology:#2f6b3a;--biology-2:#7fbf5a}
html[data-theme=dark] body,html[data-theme=graphite] body,html[data-theme=lofi] body,html[data-theme=midnight] body,html[data-theme=crimson] body{--warn:#e2b25a;--danger:#ef8a7c;--ok:#5fd38d;--physics:#9ec5ff;--physics-2:#5cc8ff;--chemistry:#f0b57a;--chemistry-2:#ffcf8a;--maths:#c9b8ff;--maths-2:#e0b3ff;--biology:#b7e37c;--biology-2:#3ddc97}
/* subject accents: tint the neutral base per subject when the setting is on */
html[data-theme=light][data-subject-accents=on] body[data-subject=biology],html[data-theme=mist][data-subject-accents=on] body[data-subject=biology],html[data-theme=sage][data-subject-accents=on] body[data-subject=biology],html[data-theme=sand][data-subject-accents=on] body[data-subject=biology],html[data-theme=rose][data-subject-accents=on] body[data-subject=biology]{--accent:#2f6b3a;--on-accent:#ffffff;--accent-2:#7fbf5a;--sage:var(--accent)}
html[data-theme=dark][data-subject-accents=on] body[data-subject=biology],html[data-theme=graphite][data-subject-accents=on] body[data-subject=biology],html[data-theme=lofi][data-subject-accents=on] body[data-subject=biology],html[data-theme=midnight][data-subject-accents=on] body[data-subject=biology],html[data-theme=crimson][data-subject-accents=on] body[data-subject=biology]{--accent:#b7e37c;--on-accent:#0e1a0a;--accent-2:#3ddc97;--sage:var(--accent)}
html[data-theme=light][data-subject-accents=on] body[data-subject=physics],html[data-theme=mist][data-subject-accents=on] body[data-subject=physics],html[data-theme=sage][data-subject-accents=on] body[data-subject=physics],html[data-theme=sand][data-subject-accents=on] body[data-subject=physics],html[data-theme=rose][data-subject-accents=on] body[data-subject=physics]{--accent:#2b5f8e;--on-accent:#ffffff;--accent-2:#5aa9ff;--sage:var(--accent)}
html[data-theme=dark][data-subject-accents=on] body[data-subject=physics],html[data-theme=graphite][data-subject-accents=on] body[data-subject=physics],html[data-theme=lofi][data-subject-accents=on] body[data-subject=physics],html[data-theme=midnight][data-subject-accents=on] body[data-subject=physics],html[data-theme=crimson][data-subject-accents=on] body[data-subject=physics]{--accent:#9ec5ff;--on-accent:#0d1b33;--accent-2:#5cc8ff;--sage:var(--accent)}
html[data-theme=light][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=mist][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=sage][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=sand][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=rose][data-subject-accents=on] body[data-subject=chemistry]{--accent:#9a4f1e;--on-accent:#ffffff;--accent-2:#e0a04a;--sage:var(--accent)}
html[data-theme=dark][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=graphite][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=lofi][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=midnight][data-subject-accents=on] body[data-subject=chemistry],html[data-theme=crimson][data-subject-accents=on] body[data-subject=chemistry]{--accent:#f0b57a;--on-accent:#2a1606;--accent-2:#ffcf8a;--sage:var(--accent)}
html[data-theme=light][data-subject-accents=on] body[data-subject=maths],html[data-theme=mist][data-subject-accents=on] body[data-subject=maths],html[data-theme=sage][data-subject-accents=on] body[data-subject=maths],html[data-theme=sand][data-subject-accents=on] body[data-subject=maths],html[data-theme=rose][data-subject-accents=on] body[data-subject=maths]{--accent:#5b4a9e;--on-accent:#ffffff;--accent-2:#9a7bff;--sage:var(--accent)}
html[data-theme=dark][data-subject-accents=on] body[data-subject=maths],html[data-theme=graphite][data-subject-accents=on] body[data-subject=maths],html[data-theme=lofi][data-subject-accents=on] body[data-subject=maths],html[data-theme=midnight][data-subject-accents=on] body[data-subject=maths],html[data-theme=crimson][data-subject-accents=on] body[data-subject=maths]{--accent:#c9b8ff;--on-accent:#1c1438;--accent-2:#e0b3ff;--sage:var(--accent)}
/* the Lab shows physics inside the biology shell: follow the open workspace */
html[data-theme=light][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=mist][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=sage][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=sand][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=rose][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])){--accent:#2b5f8e;--on-accent:#ffffff;--accent-2:#5aa9ff;--sage:var(--accent)}
html[data-theme=dark][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=graphite][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=lofi][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=midnight][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])),html[data-theme=crimson][data-subject-accents=on] body:has(#physicsWorkspace:not([hidden])){--accent:#9ec5ff;--on-accent:#0d1b33;--accent-2:#5cc8ff;--sage:var(--accent)}
html[data-theme] .hero h1 span{color:var(--accent)}html[data-theme] .appearance-icon{border-color:var(--line);color:var(--muted)}html[data-theme] .appearance-icon:hover{color:var(--ink);background:var(--soft)}html[data-theme] .appearance-palettes button{background:var(--surface);color:var(--ink);border-color:var(--line)}html[data-theme] .appearance-palettes button[aria-pressed=true]{border-color:var(--accent)}html[data-theme] .appearance-palettes button .palette-sample{background:var(--sample)}html[data-theme] #appearanceDialog{background:var(--surface);color:var(--ink)}html[data-theme] .landing-page .white-button{background:var(--accent);color:var(--on-accent)}html[data-theme] .landing-page{--site-on-accent:var(--on-accent)}
html[data-theme] .year-unit-number,html[data-theme] .year-search-label{color:var(--muted)}html[data-theme] .year-representations [aria-pressed=true]{border-color:var(--accent)}html[data-theme] .year-tabs [aria-selected=true]{color:var(--ink);background:var(--soft)}
