/* APMed '33 Reviewers: shared look for the hand-written pages (home, timetable, notifications, discussion, transes, privacy, moderation).
   Colors are tokens: light, dark (system or chosen), and the APMed palette in both. A page's own <style> comes after this file,
   so page-only tokens and tweaks still win. The course pages (reviewer.html) keep their own engine styles. */
:root{--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--serif:"Source Serif 4","Iowan Old Style",Charter,Georgia,serif;--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light;--bg:#f6f4ef;--surface:#fff;--raised:#f3f0e9;--line:#e8e3d9;--line2:#d8d1c4;--text:#1d1b18;--mute:#5f5a51;--faint:#726c62;--accent:#4f46e5;--accent-ink:#fff;--accent-soft:#eeeefd;--accent-line:#c4c3f6;--accent-2:#7c3aed;--good:#1d8657;--bad:#c2410c;--shadow:0 1px 2px #1018280a,0 1px 3px #1018280f;--warn:#a16207}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#0f1117;--surface:#181b25;--raised:#1f2330;--line:#272b38;--line2:#383d4e;--text:#ecebf2;--mute:#a09fb0;--faint:#8a8a98;--accent:#a5a8ff;--accent-ink:#14153a;--accent-soft:#25264a;--accent-line:#4a4c8f;--accent-2:#c4a5ff;--good:#4fd3a1;--bad:#fb923c;--shadow:0 1px 2px #0006;--warn:#facc15}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0f1117;--surface:#181b25;--raised:#1f2330;--line:#272b38;--line2:#383d4e;--text:#ecebf2;--mute:#a09fb0;--faint:#8a8a98;--accent:#a5a8ff;--accent-ink:#14153a;--accent-soft:#25264a;--accent-line:#4a4c8f;--accent-2:#c4a5ff;--good:#4fd3a1;--bad:#fb923c;--shadow:0 1px 2px #0006;--warn:#facc15}
:root[data-palette="apmed"]{--bg:#f5eedb;--surface:#fffdf6;--raised:#f0e6cc;--line:#e6d9b6;--line2:#d6c59a;--text:#1b2a2a;--mute:#566360;--faint:#62695d;--accent:#1d7a80;--accent-ink:#ffffff;--accent-soft:#dcefed;--accent-line:#9fcfcc;--accent-2:#e3a21a}
@media (prefers-color-scheme:dark){:root[data-palette="apmed"]:not([data-theme="light"]){color-scheme:dark;--bg:#0e1a1a;--surface:#162828;--raised:#1c3232;--line:#24403f;--line2:#315552;--text:#f1efe2;--mute:#a9b8b0;--faint:#869992;--accent:#f2c14e;--accent-ink:#22190a;--accent-soft:#33301a;--accent-line:#77652a;--accent-2:#55c4c8}}
:root[data-palette="apmed"][data-theme="dark"]{color-scheme:dark;--bg:#0e1a1a;--surface:#162828;--raised:#1c3232;--line:#24403f;--line2:#315552;--text:#f1efe2;--mute:#a9b8b0;--faint:#869992;--accent:#f2c14e;--accent-ink:#22190a;--accent-soft:#33301a;--accent-line:#77652a;--accent-2:#55c4c8}
/* Popular themes: Catppuccin, Tokyo Night, Rosé Pine (light + dark each) */
:root[data-palette="catppuccin"]{color-scheme:light;--bg:#eff1f5;--surface:#f9fafc;--raised:#e6e9ef;--line:#ccd0da;--line2:#bcc0cc;--text:#4c4f69;--mute:#64677c;--faint:#666876;--accent:#8839ef;--accent-ink:#ffffff;--accent-soft:#e3dbf4;--accent-line:#c19ef2;--accent-2:#1e66f5;--good:#348323;--bad:#d20f39}
@media (prefers-color-scheme:dark){:root[data-palette="catppuccin"]:not([data-theme="light"]){color-scheme:dark;--bg:#1e1e2e;--surface:#24243a;--raised:#313244;--line:#313244;--line2:#45475a;--text:#cdd6f4;--mute:#a6adc8;--faint:#969aae;--accent:#cba6f7;--accent-ink:#1e1e2e;--accent-soft:#3a344e;--accent-line:#6c5b88;--accent-2:#89b4fa;--good:#a6e3a1;--bad:#f38ba8}}
:root[data-palette="catppuccin"][data-theme="dark"]{color-scheme:dark;--bg:#1e1e2e;--surface:#24243a;--raised:#313244;--line:#313244;--line2:#45475a;--text:#cdd6f4;--mute:#a6adc8;--faint:#969aae;--accent:#cba6f7;--accent-ink:#1e1e2e;--accent-soft:#3a344e;--accent-line:#6c5b88;--accent-2:#89b4fa;--good:#a6e3a1;--bad:#f38ba8}
:root[data-palette="tokyo"]{color-scheme:light;--bg:#e1e2e7;--surface:#eceef3;--raised:#d0d5e3;--line:#c4c8da;--line2:#a1a6c5;--text:#343b58;--mute:#4d5a8b;--faint:#565b71;--accent:#2463b8;--accent-ink:#ffffff;--accent-soft:#cad3e1;--accent-line:#8ca9d2;--accent-2:#9854f1;--good:#587539;--bad:#ce2355}
@media (prefers-color-scheme:dark){:root[data-palette="tokyo"]:not([data-theme="light"]){color-scheme:dark;--bg:#1a1b26;--surface:#1f2335;--raised:#24283b;--line:#292e42;--line2:#3b4261;--text:#c0caf5;--mute:#a9b1d6;--faint:#888eb0;--accent:#7aa2f7;--accent-ink:#1a1b26;--accent-soft:#293147;--accent-line:#455884;--accent-2:#bb9af7;--good:#9ece6a;--bad:#f7768e}}
:root[data-palette="tokyo"][data-theme="dark"]{color-scheme:dark;--bg:#1a1b26;--surface:#1f2335;--raised:#24283b;--line:#292e42;--line2:#3b4261;--text:#c0caf5;--mute:#a9b1d6;--faint:#888eb0;--accent:#7aa2f7;--accent-ink:#1a1b26;--accent-soft:#293147;--accent-line:#455884;--accent-2:#bb9af7;--good:#9ece6a;--bad:#f7768e}
:root[data-palette="rosepine"]{color-scheme:light;--bg:#faf4ed;--surface:#fffaf3;--raised:#f2e9e1;--line:#dfdad9;--line2:#cecacd;--text:#464261;--mute:#6a6781;--faint:#6c6875;--accent:#286983;--accent-ink:#ffffff;--accent-soft:#e1e3e0;--accent-line:#9cb5bd;--accent-2:#d7827e;--good:#477b84;--bad:#a75c71}
@media (prefers-color-scheme:dark){:root[data-palette="rosepine"]:not([data-theme="light"]){color-scheme:dark;--bg:#191724;--surface:#1f1d2e;--raised:#26233a;--line:#26233a;--line2:#403d52;--text:#e0def4;--mute:#908caa;--faint:#8e8ba1;--accent:#ebbcba;--accent-ink:#191724;--accent-soft:#3b313c;--accent-line:#786168;--accent-2:#9ccfd8;--good:#9ccfd8;--bad:#eb6f92}}
:root[data-palette="rosepine"][data-theme="dark"]{color-scheme:dark;--bg:#191724;--surface:#1f1d2e;--raised:#26233a;--line:#26233a;--line2:#403d52;--text:#e0def4;--mute:#908caa;--faint:#8e8ba1;--accent:#ebbcba;--accent-ink:#191724;--accent-soft:#3b313c;--accent-line:#786168;--accent-2:#9ccfd8;--good:#9ccfd8;--bad:#eb6f92}
*{box-sizing:border-box}html,body{margin:0}button{font:inherit;color:inherit}
body{background:var(--bg);color:var(--text)}
.i:not([width]){width:1em;height:1em}
/* Lucide icons (lucide.dev, ISC license), inlined as <svg class="i">: 1em by default, line style follows the text color */
.i{flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.125em}
/* Page transitions: a short fade and lift between pages of the site (browsers without support just switch pages) */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
::view-transition-old(root){animation-name:vt-out}::view-transition-new(root){animation-name:vt-in}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
