/* Cutline shared tokens (plan step 5, extracted from c2-app.html on 26 Sep 2026 by L-parts).
   Names follow the code's brand-tokens.css (--cl-*). The one brand blue is #2563EB (founder decision).
   Light is the default. Dark applies through .th-dark (a frame root or a design-page wrapper), through html[data-theme=dark], or through the system preference when the html carries no data-theme.
   --cl-gut is the app shell margin (40px, 16px on a phone). --cl-gut-page is the wider marketing page margin (80px, 16px on a phone), a named context token, not drift.
   --cl-subink is the per-paper text ink at 4.5:1 or better on white and on the tint in light, and on the dark background in dark (step 12 switches paper-coloured text under 18px to it).
   --cl-blue-ink is the default --cl-subink (the deep blue in light, the blue papers' light blue in dark). --cl-blue-2 is the hover and secondary blue only: no one value can carry white text at 4.5:1 and also sit on the dark blue tint at 4.5:1 (contrast ruling, 27 Sep 2026). */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500..700&family=Inter:wght@400;500;600;700&display=swap');
:root{--cl-paper:#FBFAF9;--cl-paper-2:#F4F2EF;--cl-card:#FFFFFF;--cl-ink:#171A21;--cl-body:#575D68;--cl-muted:#666D79;--cl-line:#ECE8E1;--cl-line-2:#DDD8CE;--cl-blue:#2563EB;--cl-blue-2:#1D4ED8;--cl-blue-ink:#1D4ED8;--cl-link:#2563EB;--cl-blue-bg:#EFF6FF;--cl-blue-bd:#DBEAFE;--cl-accent:#F8EDBB;--cl-accent-ink:#5C4E14;--cl-success:#2F9E6E;--cl-success-text:#1E7A52;--cl-success-bg:#EEF8F3;--cl-danger:#D13030;--cl-danger-bg:#FDF0F0;--cl-warning:#B45309;--cl-scrim:rgba(23,26,33,.34);--cl-fig-ink:#171A21;--cl-fig-soft:#4A4F58;--cl-fig-hair:#9a958a;--cl-brick:#8c4a2f;--cl-slate:#3c5a8a;--cl-shadow-1:0 1px 2px rgba(23,26,33,.06),0 2px 6px rgba(23,26,33,.04);--cl-shadow-2:0 2px 4px rgba(23,26,33,.06),0 10px 24px rgba(23,26,33,.08);--cl-shadow-sheet:0 2px 4px rgba(23,26,33,.08),0 24px 48px rgba(10,18,36,.18);
--cl-font-display:'Bricolage Grotesque',system-ui,sans-serif;--cl-font-text:'Inter',system-ui,sans-serif;
--cl-gut:40px;--cl-gut-page:80px;--cl-ease:cubic-bezier(.2,0,0,1);--cl-spring:cubic-bezier(.2,.9,.3,1.18);--cl-spring-2:cubic-bezier(.2,.9,.3,1.4);--cl-code:#F4F2EF}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cl-paper:#121419;--cl-paper-2:#1A1D24;--cl-card:#1E222A;--cl-ink:#F1F2F5;--cl-body:#B4B9C4;--cl-muted:#8A919E;--cl-line:#2B303A;--cl-line-2:#363C48;--cl-blue:#2563EB;--cl-blue-2:#1E6FF5;--cl-blue-ink:#60A5FA;--cl-link:#93C5FD;--cl-blue-bg:rgba(37,99,235,.18);--cl-blue-bd:rgba(37,99,235,.35);--cl-accent:#5C4E14;--cl-accent-ink:#F8EDBB;--cl-success:#4CC18E;--cl-success-text:#4CC18E;--cl-success-bg:#17302A;--cl-danger:#F07070;--cl-danger-bg:#3A1F1F;--cl-warning:#FBBF24;--cl-scrim:rgba(0,0,0,.55);--cl-fig-ink:#F1F2F5;--cl-fig-soft:#B4B9C4;--cl-fig-hair:#6B7280;--cl-brick:#E0946F;--cl-slate:#8FB0E8;--cl-shadow-1:0 1px 2px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.2);--cl-shadow-2:0 2px 4px rgba(0,0,0,.3),0 10px 24px rgba(0,0,0,.35);--cl-shadow-sheet:0 2px 4px rgba(0,0,0,.3),0 24px 48px rgba(0,0,0,.5);--cl-code:#161920}}
:root[data-theme="dark"],.th-dark{--cl-paper:#121419;--cl-paper-2:#1A1D24;--cl-card:#1E222A;--cl-ink:#F1F2F5;--cl-body:#B4B9C4;--cl-muted:#8A919E;--cl-line:#2B303A;--cl-line-2:#363C48;--cl-blue:#2563EB;--cl-blue-2:#1E6FF5;--cl-blue-ink:#60A5FA;--cl-link:#93C5FD;--cl-blue-bg:rgba(37,99,235,.18);--cl-blue-bd:rgba(37,99,235,.35);--cl-accent:#5C4E14;--cl-accent-ink:#F8EDBB;--cl-success:#4CC18E;--cl-success-text:#4CC18E;--cl-success-bg:#17302A;--cl-danger:#F07070;--cl-danger-bg:#3A1F1F;--cl-warning:#FBBF24;--cl-scrim:rgba(0,0,0,.55);--cl-fig-ink:#F1F2F5;--cl-fig-soft:#B4B9C4;--cl-fig-hair:#6B7280;--cl-brick:#E0946F;--cl-slate:#8FB0E8;--cl-shadow-1:0 1px 2px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.2);--cl-shadow-2:0 2px 4px rgba(0,0,0,.3),0 10px 24px rgba(0,0,0,.35);--cl-shadow-sheet:0 2px 4px rgba(0,0,0,.3),0 24px 48px rgba(0,0,0,.5);--cl-code:#161920}
.th-light{--cl-paper:#FBFAF9;--cl-paper-2:#F4F2EF;--cl-card:#FFFFFF;--cl-ink:#171A21;--cl-body:#575D68;--cl-muted:#666D79;--cl-line:#ECE8E1;--cl-line-2:#DDD8CE;--cl-blue:#2563EB;--cl-blue-2:#1D4ED8;--cl-blue-ink:#1D4ED8;--cl-link:#2563EB;--cl-blue-bg:#EFF6FF;--cl-blue-bd:#DBEAFE;--cl-accent:#F8EDBB;--cl-accent-ink:#5C4E14;--cl-success:#2F9E6E;--cl-success-text:#1E7A52;--cl-success-bg:#EEF8F3;--cl-danger:#D13030;--cl-danger-bg:#FDF0F0;--cl-warning:#B45309;--cl-scrim:rgba(23,26,33,.34);--cl-fig-ink:#171A21;--cl-fig-soft:#4A4F58;--cl-fig-hair:#9a958a;--cl-brick:#8c4a2f;--cl-slate:#3c5a8a;--cl-shadow-1:0 1px 2px rgba(23,26,33,.06),0 2px 6px rgba(23,26,33,.04);--cl-shadow-2:0 2px 4px rgba(23,26,33,.06),0 10px 24px rgba(23,26,33,.08);--cl-shadow-sheet:0 2px 4px rgba(23,26,33,.08),0 24px 48px rgba(10,18,36,.18);--cl-code:#F4F2EF}
@media (max-width:759.98px){:root{--cl-gut:16px;--cl-gut-page:16px}}
/* one colour per paper, from the February 2026 SUBJECT_THEMES, extended to every HSFY paper plus mmi, med2 and anki (mmi is Auckland azure and med2 Otago blue from 4 Oct 2026, see Product colours below); dark gets a lighter ink and a translucent tint */
.scr,.sys,.root,[data-sub]{--cl-sub:var(--cl-blue);--cl-subink:var(--cl-blue-ink);--cl-tint:var(--cl-blue-bg)}
[data-sub=hubs192]{--cl-sub:#DC2626;--cl-subink:#B91C1C;--cl-tint:#FEF2F2}[data-sub=poph192]{--cl-sub:#7C3AED;--cl-subink:#6D28D9;--cl-tint:#F5F3FF}[data-sub=bioc192]{--cl-sub:#16A34A;--cl-subink:#15803D;--cl-tint:#F0FDF4}[data-sub=math130]{--cl-sub:#2563EB;--cl-subink:#1D4ED8;--cl-tint:#EFF6FF}[data-sub=stat115]{--cl-sub:#D97706;--cl-subink:#92400E;--cl-tint:#FFFBEB}[data-sub=maor102]{--cl-sub:#EA580C;--cl-subink:#C2410C;--cl-tint:#FFF7ED}[data-sub=cels191]{--cl-sub:#16A34A;--cl-subink:#15803D;--cl-tint:#F0FDF4}[data-sub=chem191]{--cl-sub:#EA580C;--cl-subink:#C2410C;--cl-tint:#FFF7ED}[data-sub=phsi191]{--cl-sub:#2563EB;--cl-subink:#1D4ED8;--cl-tint:#EFF6FF}[data-sub=hubs191]{--cl-sub:#DC2626;--cl-subink:#B91C1C;--cl-tint:#FEF2F2}[data-sub=mmi]{--cl-sub:#1F2BD4;--cl-subink:#1F2BD4;--cl-tint:#EEF0FD}[data-sub=med2]{--cl-sub:#060D87;--cl-subink:#060D87;--cl-tint:#ECEDF8}[data-sub=anki]{--cl-sub:#2563EB;--cl-subink:#1D4ED8;--cl-tint:#EFF6FF}[data-sub=ucat]{--cl-sub:#AB1638;--cl-subink:#AB1638;--cl-tint:#FBEAEE}[data-sub=dent]{--cl-sub:#0B7A6E;--cl-subink:#0B7A6E;--cl-tint:#E3F3F0}
.th-dark [data-sub=hubs192],[data-sub=hubs192].th-dark{--cl-sub:#F87171;--cl-subink:#F87171;--cl-tint:rgba(220,38,38,.2)}.th-dark [data-sub=poph192],[data-sub=poph192].th-dark{--cl-sub:#A78BFA;--cl-subink:#A78BFA;--cl-tint:rgba(124,58,237,.22)}.th-dark [data-sub=bioc192],[data-sub=bioc192].th-dark{--cl-sub:#4ADE80;--cl-subink:#4ADE80;--cl-tint:rgba(22,163,74,.2)}.th-dark [data-sub=math130],[data-sub=math130].th-dark{--cl-sub:#60A5FA;--cl-subink:#60A5FA;--cl-tint:rgba(37,99,235,.2)}.th-dark [data-sub=stat115],[data-sub=stat115].th-dark{--cl-sub:#FBBF24;--cl-subink:#FBBF24;--cl-tint:rgba(217,119,6,.2)}.th-dark [data-sub=maor102],[data-sub=maor102].th-dark{--cl-sub:#FB923C;--cl-subink:#FB923C;--cl-tint:rgba(234,88,12,.2)}.th-dark [data-sub=cels191],[data-sub=cels191].th-dark{--cl-sub:#4ADE80;--cl-subink:#4ADE80;--cl-tint:rgba(22,163,74,.2)}.th-dark [data-sub=chem191],[data-sub=chem191].th-dark{--cl-sub:#FB923C;--cl-subink:#FB923C;--cl-tint:rgba(234,88,12,.2)}.th-dark [data-sub=phsi191],[data-sub=phsi191].th-dark{--cl-sub:#60A5FA;--cl-subink:#60A5FA;--cl-tint:rgba(37,99,235,.2)}.th-dark [data-sub=hubs191],[data-sub=hubs191].th-dark{--cl-sub:#F87171;--cl-subink:#F87171;--cl-tint:rgba(220,38,38,.2)}.th-dark [data-sub=mmi],[data-sub=mmi].th-dark{--cl-sub:#8F96F2;--cl-subink:#8F96F2;--cl-tint:rgba(31,43,212,.24)}.th-dark [data-sub=med2],[data-sub=med2].th-dark{--cl-sub:#9EA3F0;--cl-subink:#9EA3F0;--cl-tint:rgba(59,68,217,.26)}.th-dark [data-sub=anki],[data-sub=anki].th-dark{--cl-sub:#93C5FD;--cl-subink:#93C5FD;--cl-tint:rgba(37,99,235,.2)}.th-dark [data-sub=ucat],[data-sub=ucat].th-dark{--cl-sub:#E0607C;--cl-subink:#E0607C;--cl-tint:rgba(171,22,56,.24)}.th-dark [data-sub=dent],[data-sub=dent].th-dark{--cl-sub:#5CC9B9;--cl-subink:#5CC9B9;--cl-tint:rgba(11,122,110,.26)}
/* MMI domains, from the app's domainColors.ts */
[data-dom=equity]{--cl-sub:#3b5bdb;--cl-subink:#3b5bdb;--cl-tint:#e9edfd}[data-dom=ethical]{--cl-sub:#7048e8;--cl-subink:#7048e8;--cl-tint:#f0ebfe}[data-dom=career]{--cl-sub:#0e7570;--cl-subink:#0e7570;--cl-tint:#e0f1f0}[data-dom=healthcare]{--cl-sub:#c2255c;--cl-subink:#c2255c;--cl-tint:#fdeaf1}[data-dom=insight]{--cl-sub:#b45309;--cl-subink:#B25209;--cl-tint:#faf0da}[data-dom=experience]{--cl-sub:#2f9e6e;--cl-subink:#1E7A52;--cl-tint:#e4f3ec}[data-dom=hauora]{--cl-sub:#9c36b5;--cl-subink:#9c36b5;--cl-tint:#f7ebfa}
.th-dark [data-dom=equity],[data-dom=equity].th-dark{--cl-sub:#93a7f3;--cl-subink:#93a7f3;--cl-tint:rgba(59,91,219,.24)}.th-dark [data-dom=ethical],[data-dom=ethical].th-dark{--cl-sub:#b8a4f6;--cl-subink:#b8a4f6;--cl-tint:rgba(112,72,232,.24)}.th-dark [data-dom=career],[data-dom=career].th-dark{--cl-sub:#5EEAD4;--cl-subink:#5EEAD4;--cl-tint:rgba(14,117,112,.26)}.th-dark [data-dom=healthcare],[data-dom=healthcare].th-dark{--cl-sub:#f07aa8;--cl-subink:#f07aa8;--cl-tint:rgba(194,37,92,.24)}.th-dark [data-dom=insight],[data-dom=insight].th-dark{--cl-sub:#FBBF24;--cl-subink:#FBBF24;--cl-tint:rgba(180,83,9,.24)}.th-dark [data-dom=experience],[data-dom=experience].th-dark{--cl-sub:#4CC18E;--cl-subink:#4CC18E;--cl-tint:rgba(47,158,110,.24)}.th-dark [data-dom=hauora],[data-dom=hauora].th-dark{--cl-sub:#d79ae6;--cl-subink:#d79ae6;--cl-tint:rgba(156,54,181,.24)}
/* Exam replica palettes (UCAT ANZ exam software and the TI-108 calculator; replicas of third-party software, light only). Each token is a fixed colour lifted from the real device or application, not a Cutline brand colour, so neither set gets a dark twin: they sit under :root only, with no entry in the th-dark, data-theme=dark or prefers-color-scheme:dark blocks above. --cl-ti-* is the TI-108 desk calculator (round 48, refs/ucat-real/27.webp; round 64 adds the blue digit labels, the brand line, the solar panel and the two tone keys of the TI-108 in the UCAT ANZ Test Tools picture); --cl-ucat-x-* is the 2026 UCAT ANZ exam software chrome (round 46). */
:root{--cl-ti-bar:#016dab;--cl-ti-body:#517abe;--cl-ti-line:#3a5479;--cl-ti-box:#1d365e;--cl-ti-red:#df1d2a;--cl-ti-key:#ffffff;--cl-ti-ink:#111111;--cl-ti-lcd-highlight:#c6cabd;--cl-ti-shadow:rgba(0,0,0,.35);--cl-ti-digit:#2f6aa8;--cl-ti-brand-ink:#c9d8ee;--cl-ti-solar:#383c35;--cl-ti-solar-cell:#4a4f47;--cl-ti-lower:rgba(0,0,0,.07);--cl-ucat-x-bar:#0a5ba3;--cl-ucat-x-bar-2:#4d7fc3;--cl-ucat-x-bar-ink:#ffffff;--cl-ucat-x-divider:var(--cl-ucat-x-bar);--cl-ucat-x-canvas:var(--cl-ucat-x-bar-ink);--cl-ucat-x-ink:#111111;--cl-ucat-x-soft:#4a4a4a;--cl-ucat-x-hair:#c9d3e2;--cl-ucat-x-tint:#eef3fb;--cl-ucat-x-current:#fff4a3;--cl-ucat-x-alert:#c8102e;--cl-ucat-x-alert-hover:#a80d27;--cl-ucat-x-time-low:#ffe45c;--cl-ucat-x-focus:#ffd54a;--cl-ucat-x-ok:#1e7a52;--cl-ucat-x-ok-bg:#eef8f3;--cl-ucat-x-miss-bg:#fdf0f0;--cl-ucat-x-stripe:#f6f7f9;--cl-ucat-x-btn-border:rgba(255,255,255,.28);--cl-ucat-x-btn-hover:rgba(255,255,255,.08);--cl-ucat-x-btn-pressed:rgba(255,255,255,.18);--cl-ucat-x-btn-primary:rgba(255,255,255,.16);--cl-ucat-x-modal-close-border:rgba(255,255,255,.7)}
/* Round 54 (FR48): fixed colours that read the same in light and dark: the profile banner washes (an owner's pick, never themed) and the vinyl record with its white label print; the highlighter ink sits a touch dimmer in dark so it does not glow. */
:root,.th-light{--cl-banner-blue:linear-gradient(115deg,#1E3A8A,#2563EB 60%,#93C5FD);--cl-banner-dusk:linear-gradient(115deg,#4C1D95,#7C3AED 50%,#F59E0B);--cl-banner-moss:linear-gradient(115deg,#064E3B,#16A34A 60%,#BBF7D0);--cl-record:#1A1A1E;--cl-record-2:#2A2A30;--cl-record-hub:#121419;--cl-record-ink:#FFFFFF;--cl-marker:#F2CC2F}
:root[data-theme="dark"],.th-dark{--cl-marker:#E6C33A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cl-marker:#E6C33A}}
/* Library v3 (Round 54, lane FLIB). --cl-lamp-* is the one warm amber for "studying" (ink at 4.5:1 or better on paper and card in both themes); --cl-heat-1..4 are the four levels of the Insights month, with --cl-heat-ink-3 and -4 the text on the two strong levels. --cl-px-* is the pixel scene palette the desk canvas reads through getComputedStyle: the default avatar look, the eye white, the glasses frame and lens, the sprite outline, the desk wood, the night dim and the lamp glow stops. Pixel art colours are fixed like the exam replicas above and carry no dark twin; the lamp and heat tokens do. */
:root{--cl-lamp:#E9A23B;--cl-lamp-ink:#8A4F0A;--cl-lamp-bg:#FFF6E3;--cl-lamp-bd:#F3D9A4;--cl-heat-1:#FBE7C2;--cl-heat-2:#F5CE86;--cl-heat-3:#E9A23B;--cl-heat-4:#C77E14;--cl-heat-ink-3:#2D1A02;--cl-heat-ink-4:#FFFFFF;--cl-px-skin:#f1c8a0;--cl-px-eyes:#5b3b1a;--cl-px-hair:#5a3a22;--cl-px-top:#d98a4e;--cl-px-pants:#41618c;--cl-px-shoes:#3a2a1c;--cl-px-hat:#c0473b;--cl-px-bag:#b6553f;--cl-px-white:#ffffff;--cl-px-frame:#2b2b2b;--cl-px-lens:#cfe6ff;--cl-px-gold:#c9a24a;--cl-px-band:#2f2f38;--cl-px-outline:rgba(38,22,14,.85);--cl-px-wood:#6b3f24;--cl-px-wood-2:#3a2418;--cl-px-night:#0e0a18;--cl-px-glow-1:rgba(255,214,120,.42);--cl-px-glow-2:rgba(255,190,90,.16);--cl-px-glow-0:rgba(255,170,60,0);--cl-px-glow-desk:rgba(255,214,120,.22);--cl-px-shade:rgba(255,240,190,.62);--cl-px-shade-2:rgba(255,225,150,.35)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cl-lamp:#F2B85A;--cl-lamp-ink:#F2B85A;--cl-lamp-bg:rgba(233,162,59,.14);--cl-lamp-bd:rgba(233,162,59,.4);--cl-heat-1:rgba(233,162,59,.22);--cl-heat-2:rgba(233,162,59,.42);--cl-heat-3:#E9A23B;--cl-heat-4:#C77E14;--cl-heat-ink-3:#2D1A02;--cl-heat-ink-4:#FFFFFF}}
:root[data-theme="dark"],.th-dark{--cl-lamp:#F2B85A;--cl-lamp-ink:#F2B85A;--cl-lamp-bg:rgba(233,162,59,.14);--cl-lamp-bd:rgba(233,162,59,.4);--cl-heat-1:rgba(233,162,59,.22);--cl-heat-2:rgba(233,162,59,.42);--cl-heat-3:#E9A23B;--cl-heat-4:#C77E14;--cl-heat-ink-3:#2D1A02;--cl-heat-ink-4:#FFFFFF}
.th-light{--cl-lamp:#E9A23B;--cl-lamp-ink:#8A4F0A;--cl-lamp-bg:#FFF6E3;--cl-lamp-bd:#F3D9A4;--cl-heat-1:#FBE7C2;--cl-heat-2:#F5CE86;--cl-heat-3:#E9A23B;--cl-heat-4:#C77E14;--cl-heat-ink-3:#2D1A02;--cl-heat-ink-4:#FFFFFF}
/* Buttons (BUTTONS lane, 2 Oct 2026, direction A "Ink", founder pick): the primary is ink with a fine top highlight and no glow (light), paper with ink text (dark); the secondary is paper with a hairline; danger is one red for every destructive confirm (--cl-btn-d-text is the red for a quiet destructive label); x is disabled. --cl-btn-r, -r-lg and -r-sm are the 48, 52 and 36 px button corners, so area pills read the same shape. */
:root{--cl-btn-r:14px;--cl-btn-r-lg:16px;--cl-btn-r-sm:10px;--cl-btn-p:#171A21;--cl-btn-p-ink:#FFFFFF;--cl-btn-p-hover:#262A33;--cl-btn-p-press:#000000;--cl-btn-p-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 2px rgba(23,26,33,.22);--cl-btn-p-press-shadow:inset 0 1px 2px rgba(0,0,0,.45);--cl-btn-s:#FFFFFF;--cl-btn-s-ink:#171A21;--cl-btn-s-hover:#F7F5F2;--cl-btn-s-press:#EFECE7;--cl-btn-s-shadow:inset 0 0 0 1px #DDD8CE,0 1px 2px rgba(23,26,33,.05);--cl-btn-d:#C22F2F;--cl-btn-d-ink:#FFFFFF;--cl-btn-d-hover:#AE2828;--cl-btn-d-press:#9A2222;--cl-btn-d-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(120,20,20,.25);--cl-btn-d-text:#C22F2F;--cl-btn-x:#EFEDE9;--cl-btn-x-ink:#96918A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cl-btn-p:#F1F2F5;--cl-btn-p-ink:#121419;--cl-btn-p-hover:#FFFFFF;--cl-btn-p-press:#D6D9DF;--cl-btn-p-shadow:inset 0 -1px 0 rgba(0,0,0,.14);--cl-btn-p-press-shadow:inset 0 1px 2px rgba(0,0,0,.25);--cl-btn-s:#252932;--cl-btn-s-ink:#F1F2F5;--cl-btn-s-hover:#2C313B;--cl-btn-s-press:#343A45;--cl-btn-s-shadow:inset 0 0 0 1px #363C48;--cl-btn-d:#C93C3C;--cl-btn-d-ink:#FFFFFF;--cl-btn-d-hover:#B83434;--cl-btn-d-press:#A52E2E;--cl-btn-d-shadow:inset 0 1px 0 rgba(255,255,255,.12);--cl-btn-d-text:#F59A9A;--cl-btn-x:#23262E;--cl-btn-x-ink:#5E6470}}
:root[data-theme="dark"],.th-dark{--cl-btn-p:#F1F2F5;--cl-btn-p-ink:#121419;--cl-btn-p-hover:#FFFFFF;--cl-btn-p-press:#D6D9DF;--cl-btn-p-shadow:inset 0 -1px 0 rgba(0,0,0,.14);--cl-btn-p-press-shadow:inset 0 1px 2px rgba(0,0,0,.25);--cl-btn-s:#252932;--cl-btn-s-ink:#F1F2F5;--cl-btn-s-hover:#2C313B;--cl-btn-s-press:#343A45;--cl-btn-s-shadow:inset 0 0 0 1px #363C48;--cl-btn-d:#C93C3C;--cl-btn-d-ink:#FFFFFF;--cl-btn-d-hover:#B83434;--cl-btn-d-press:#A52E2E;--cl-btn-d-shadow:inset 0 1px 0 rgba(255,255,255,.12);--cl-btn-d-text:#F59A9A;--cl-btn-x:#23262E;--cl-btn-x-ink:#5E6470}
.th-light{--cl-btn-p:#171A21;--cl-btn-p-ink:#FFFFFF;--cl-btn-p-hover:#262A33;--cl-btn-p-press:#000000;--cl-btn-p-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 2px rgba(23,26,33,.22);--cl-btn-p-press-shadow:inset 0 1px 2px rgba(0,0,0,.45);--cl-btn-s:#FFFFFF;--cl-btn-s-ink:#171A21;--cl-btn-s-hover:#F7F5F2;--cl-btn-s-press:#EFECE7;--cl-btn-s-shadow:inset 0 0 0 1px #DDD8CE,0 1px 2px rgba(23,26,33,.05);--cl-btn-d:#C22F2F;--cl-btn-d-ink:#FFFFFF;--cl-btn-d-hover:#AE2828;--cl-btn-d-press:#9A2222;--cl-btn-d-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(120,20,20,.25);--cl-btn-d-text:#C22F2F;--cl-btn-x:#EFEDE9;--cl-btn-x-ink:#96918A}
/* Product colours (4 Oct 2026, lane SETTINGS; Edwin: "Otago can be the yellow and HSFY can be the blue"). Colours only, taken from the universities' published palettes; no crest, logo or mark of theirs, and nothing that implies endorsement. Otago: St Andrew's Blue #060D87 and Gold Rush #F4B142, University of Otago Brand Guide (2024 brand, otago.ac.nz/marketing-services/resources/university-of-otago-brand-guide; the page refuses scripted fetches, values as indexed from it on 4 Oct 2026). Auckland: Azure #1F2BD4 and silver #BEC3C4 / #747778 from the live auckland.ac.nz stylesheet (homepage clientlib, .bg-silver-lining and .bg-silver, read 4 Oct 2026); the arms are blazoned Azure with Argent and Or (Te Ara, 1966), and no gold hex is published, so --cl-uoa-gold is a muted heraldic gold. --cl-prod-<key> fills the top bar product chip and the switcher mark with --cl-prod-<key>-ink text (AA: white on every fill is 5.4:1 or better), --cl-prod-<key>-dot is the small accent, --cl-prod-<key>-text is the product colour as text on paper (4.5:1 or better). Med Y2 is a deeper Otago blue. UCAT: crimson #AB1638 and slate #38364D (darker edge #2C2A42), sampled from the official UCAT wordmark on 4 Oct 2026; colours only, never the wordmark. In dark the HSFY fill stays St Andrew's Blue with a Gold Rush ring (--cl-prod-hsfy-edge; a lighter blue no longer read as Otago, ui-audit 4 Oct). In dark the UCAT fill lightens to #D2405F (white text 4.5:1) and UCAT text to #E0607C (5.4:1 on the page, 4.7:1 on a card). Otago Dent interview (Edwin, 6 Oct 2026): dental teal #0B7A6E on Otago blue, so it reads as Otago without copying HSFY: the teal fill (white text 5.2:1, teal text on paper 5.0:1) with a St Andrew's Blue dot, teal as text on paper; in dark the fill stays teal and the text lightens to #5CC9B9. */
:root{--cl-otago-blue:#060D87;--cl-otago-gold:#F4B142;--cl-uoa-azure:#1F2BD4;--cl-uoa-silver:#BEC3C4;--cl-uoa-silver-2:#747778;--cl-uoa-gold:#C9A24A;--cl-ucat-crimson:#AB1638;--cl-ucat-slate:#38364D;--cl-ucat-slate-2:#2C2A42;--cl-prod-ucat-chip-dot:#D9D8E3;--cl-prod-hsfy:#060D87;--cl-prod-hsfy-edge:transparent;--cl-prod-hsfy-ink:#FFFFFF;--cl-prod-hsfy-dot:#F4B142;--cl-prod-hsfy-text:#060D87;--cl-prod-med2:#03054A;--cl-prod-med2-ink:#FFFFFF;--cl-prod-med2-dot:#F4B142;--cl-prod-med2-text:#03054A;--cl-prod-mmi:#1F2BD4;--cl-prod-mmi-ink:#FFFFFF;--cl-prod-mmi-dot:#BEC3C4;--cl-prod-mmi-text:#1F2BD4;--cl-prod-ucat:#AB1638;--cl-prod-ucat-ink:#FFFFFF;--cl-prod-ucat-dot:#38364D;--cl-prod-ucat-text:#AB1638;--cl-prod-ucat-hover:#931230;--cl-prod-ucat-tint:#FBEAEE;--cl-prod-uni-otago:#F4B142;--cl-prod-uni-uoa:#747778;--cl-dent-teal:#0B7A6E;--cl-prod-dent:#0B7A6E;--cl-prod-dent-ink:#FFFFFF;--cl-prod-dent-dot:#060D87;--cl-prod-dent-text:#0B7A6E;--cl-prod-dent-tint:#E3F3F0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cl-prod-hsfy:#060D87;--cl-prod-hsfy-edge:rgba(244,177,66,.8);--cl-prod-hsfy-text:#9EA3F0;--cl-prod-med2:#2A2F7A;--cl-prod-med2-text:#9EA3F0;--cl-prod-mmi:#4752E6;--cl-prod-mmi-text:#8F96F2;--cl-prod-ucat:#D2405F;--cl-prod-ucat-dot:#8E8CA8;--cl-prod-ucat-text:#E0607C;--cl-prod-ucat-hover:#BC3352;--cl-prod-ucat-tint:rgba(171,22,56,.24);--cl-prod-uni-uoa:#BEC3C4;--cl-prod-dent-dot:#9EA3F0;--cl-prod-dent-text:#5CC9B9;--cl-prod-dent-tint:rgba(11,122,110,.26)}}
:root[data-theme="dark"],.th-dark{--cl-prod-hsfy:#060D87;--cl-prod-hsfy-edge:rgba(244,177,66,.8);--cl-prod-hsfy-text:#9EA3F0;--cl-prod-med2:#2A2F7A;--cl-prod-med2-text:#9EA3F0;--cl-prod-mmi:#4752E6;--cl-prod-mmi-text:#8F96F2;--cl-prod-ucat:#D2405F;--cl-prod-ucat-dot:#8E8CA8;--cl-prod-ucat-text:#E0607C;--cl-prod-ucat-hover:#BC3352;--cl-prod-ucat-tint:rgba(171,22,56,.24);--cl-prod-uni-uoa:#BEC3C4;--cl-prod-dent-dot:#9EA3F0;--cl-prod-dent-text:#5CC9B9;--cl-prod-dent-tint:rgba(11,122,110,.26)}
.th-light{--cl-prod-hsfy:#060D87;--cl-prod-hsfy-edge:transparent;--cl-prod-hsfy-text:#060D87;--cl-prod-med2:#03054A;--cl-prod-med2-text:#03054A;--cl-prod-mmi:#1F2BD4;--cl-prod-mmi-text:#1F2BD4;--cl-prod-ucat:#AB1638;--cl-prod-ucat-dot:#38364D;--cl-prod-ucat-text:#AB1638;--cl-prod-ucat-hover:#931230;--cl-prod-ucat-tint:#FBEAEE;--cl-prod-uni-uoa:#747778;--cl-prod-dent-dot:#060D87;--cl-prod-dent-text:#0B7A6E;--cl-prod-dent-tint:#E3F3F0}
