/* One colour system (scope C, 2026-10-16): the lab board's palette, defined once and loaded before every other sheet.
   Dark is the default; light follows the system setting unless html[data-theme] says otherwise. Every other sheet
   names these tokens and never writes a colour code (test/colour-tokens.test.mjs). */
@font-face{font-family:Newsreader;src:url('/_assets/e1ca86c324d837cd857e807bf2a480d295797944472f401ac25922f0f4749fa3/Newsreader-Variable-400-600.woff2') format('woff2');font-weight:400 600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/_assets/78a07554c310aae9fb83e9d1752dcbebbd228ffada5e3c75f1e293eeec01950f/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:optional}
:root,:root[data-theme=dark]{color-scheme:dark;
  --bg:#0e0e10;--surface:#151518;--tile2:#1b1b1f;--raised:var(--tile2);--hover:#202024;--line:#2a2a2f;
  --fg:#f1efe9;--soft:#c9c6bd;--muted:#8d8b85;--dim:#5f5e5a;--accent:var(--fg);--on-fill:#0e0e10;
  --red:#e4573f;--amber:#e0b85a;--green:#5fd3a6;--mint:var(--green);--solved:#7aa37a;--orange:#ec8a5c;--violet:#c9a0ff;--blue:#8ebcff;
  --tier-hybrid:#8dc8bb;--tier-elite:#b5b5e5;--tier-legendary:#edb979;--reward:#9dccb0;
  --error-bg:var(--surface);--error-line:#5a2a22;--backdrop:#000b;--tint:#f1efe90a;--logo-filter:none;--on-red:#fff;
  /* Workspace pop-ups keep their release-10 paint (founder: the workspace look is the reference). */
  --popup-shadow:#0009;--popup-shadow-deep:#0008;--hint-code-bg:#10130f;--hint-code:#e8e6dd;--hint-error:#ffb4a8;
  --reward-tint:#f2e3b306;--reward-glow:#f2e3b333;--reward-rule:#625b43;
  --unlock-line:#75694c;--unlock-bg:#181b17;--unlock-fg:#ece8dc;--unlock-backdrop:#090b09ce;--unlock-glow:#f2e3b323;--unlock-label:#f2e3b3;--unlock-text:#c1c3b9;--unlock-proof:#a4a79d;--unlock-rule:#343a31;
  /* The preparation scene's figures keep their own paint in both themes. */
  --art-floor:#51594b;--art-skin:#cba987;--art-hair:#645f51;--art-eyes:#252820;--art-shirt:#7d8970;--art-shirt2:#788394;
  --art-case:#50584c;--art-screen:#262d24;--art-lines:#65725e;--art-cup:#e2d6b5;--art-flame:#f2ce7d}
:root{font-family:var(--sans);--serif:Newsreader,Georgia,serif;--mono:'IBM Plex Mono',ui-monospace,monospace;--sans:-apple-system,"Helvetica Neue",Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--fg)}
/* Page-title role: identical metrics across platform routes and page states.
   Explicit targets exclude customer content, section/dialog headings and the
   workspace's compact incident-toolbar label, even where it uses an h1.
   :is() includes the saved-review selector to outrank its route-specific font
   shorthand; spacing belongs to the same explicit role. */
:root{--page-title-size:34px;--page-title-weight:500;--page-title-leading:1.1;--page-title-space-after:12px;--page-title-space-before:0px;--page-title-tracking:-.01em;--action-target-width:44px;--ladder-row-min:40px}
@media(max-width:600px){:root{--page-title-size:28px}}
:root :is(.board-mast>h1,.r-page-heading>h1,.ladder-title>h1,#welcome-title,#intro-title,#waiting-title,#failure-title,#review-title,#signin-title,#name-title,#profile-name,#codex-title,#pricing-title,.account-page #saved-review .ribbon h1,.about-page>h1,.legal>h1,.owner-page h1,.library h1,.guide h1,.not-found>h1){
  font-size:var(--page-title-size);font-weight:var(--page-title-weight);line-height:var(--page-title-leading);margin-bottom:var(--page-title-space-after);margin-top:var(--page-title-space-before);letter-spacing:var(--page-title-tracking)}
/* The profile title is inline beside its edit control. Its row owns the line
   box and following space; keep both on the same role without changing display. */
:root .account-page .profile-name-row{font-size:var(--page-title-size);font-weight:var(--page-title-weight);line-height:var(--page-title-leading);margin-bottom:var(--page-title-space-after)}
/* Platform action roles. Customer controls keep their own design; workspace
   actions use a compact target without changing palette or interaction states. */
:root{--action-size:13px;--action-weight:500;--action-leading:1.4;--action-radius:3px;--action-gap:8px;--action-height:48px;--action-pad-block:12px;--action-pad-inline:20px;--action-compact-height:44px;--action-compact-pad-block:8px;--action-compact-pad-inline:12px}
:root #workspace{--action-height:var(--action-compact-height);--action-pad-block:var(--action-compact-pad-block);--action-pad-inline:var(--action-compact-pad-inline)}
@media(max-width:600px){:root{--action-compact-pad-inline:6px}}
:root :is(#saved-review .btn,#tool-options>summary,.primary,.secondary,.btn-p,.btn-g,.danger-button,.provider-button):not(.csite *):not(#customer-view *){font-family:var(--mono);font-size:var(--action-size);font-weight:var(--action-weight);line-height:var(--action-leading);min-width:var(--action-target-width);min-height:var(--action-height);padding:var(--action-pad-block) var(--action-pad-inline);border-radius:var(--action-radius);gap:var(--action-gap)}
/* Worded quiet actions share one target in and outside the workspace. Icon-only
   bio/notes/hints controls retain their existing affordances and geometry. */
:root{--action-quiet-size:13px;--action-quiet-weight:400;--action-quiet-leading:1.4;--action-quiet-height:44px;--action-quiet-pad-block:8px;--action-quiet-pad-inline:12px;--action-quiet-radius:3px;--action-quiet-gap:8px;--action-quiet-compact-height:28px;--action-quiet-compact-pad-block:2px;--action-quiet-compact-pad-inline:6px}
:root :is(#vim-toggle,.key-help-head .text-button){--action-quiet-height:var(--action-quiet-compact-height);--action-quiet-pad-block:var(--action-quiet-compact-pad-block);--action-quiet-pad-inline:var(--action-quiet-compact-pad-inline)}
:root .text-button:not(.name-edit):not(.notes-close):not([popovertargetaction="hide"]):not(.csite *):not(#customer-view *){font-family:var(--mono);font-size:var(--action-quiet-size);font-weight:var(--action-quiet-weight);line-height:var(--action-quiet-leading);min-width:var(--action-target-width);min-height:var(--action-quiet-height);padding:var(--action-quiet-pad-block) var(--action-quiet-pad-inline);border-radius:var(--action-quiet-radius);gap:var(--action-quiet-gap)}
/* Shell roles: full navigation outside a session; one-row chrome during active work. */
:root{--dialog-inset:24px;--shell-header-height:64px;--shell-compact-height:64px;--shell-inset:24px;--shell-header-top:0px;--shell-nav-size:12.5px;--shell-nav-gap:24px;--shell-divider:1px;--shell-footer-pad:24px;--shell-footer-row-gap:8px;--shell-footer-column-gap:20px}
@media(max-width:600px){:root{--shell-header-height:92px;--shell-compact-height:52px;--shell-inset:16px;--shell-header-top:6px;--shell-nav-gap:16px}}
/* Customer scenes v2: fixed state colours for the customer sites, the same in both page themes (each site brings its own palette). */
:root{--cs-chrome-bg:#e8eaed;--cs-chrome-fg:#3c4043;--cs-chrome-dot:#9aa0a6;--cs-white:#fff;--cs-stale-fg:#6b4600;--cs-stale-bg:#fff3d6;--cs-stale-line:#ecd28c;--cs-error-bg:#fdecea;--cs-error-fg:#8c1d18;--cs-error-line:#f0b4ae;--cs-ok-bg:#e7f6ec;--cs-ok-fg:#14532d;--cs-ok-line:#a6d9b5;--cs-ok-mark:#1f7a3f;--cs-sheet-ink:#1f2a37;--cs-sheet-grid:#e6ebf1;--cs-page-line:#dadce0;--cs-page-icon:#5f6368;--cs-page-head:#202124;--cs-amber-line:#b7791f;--cs-amber-dot:#f6c453;--cs-shadow:rgb(0 0 0/.16)}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;
  --bg:#f4f2ec;--surface:#faf9f5;--tile2:#ebe8e0;--hover:#e2ded4;--line:#d8d5cc;
  --fg:#17171a;--soft:#3b3a36;--muted:#5f5d57;--dim:#6f6c65;--on-fill:#faf9f5;
  --red:#b23a22;--amber:#8a6510;--green:#1d7550;--solved:#3f6b3f;--orange:#a3461c;--violet:#6a3fae;--blue:#2457a8;
  --tier-hybrid:#2f6d62;--tier-elite:#4c4c9a;--tier-legendary:#8a5a14;--reward:#1d7550;
  --error-bg:#fbeee9;--error-line:#e2b8ac;--backdrop:#17171a55;--tint:#17171a0a;--logo-filter:invert(1) hue-rotate(180deg);
  --popup-shadow:#17171a33;--popup-shadow-deep:#17171a33;--hint-code-bg:#ebe8e0;--hint-code:#17171a;--hint-error:#b23a22;
  --reward-tint:#17171a06;--reward-glow:#17171a22;--reward-rule:#d8d5cc;
  --unlock-line:#d8d5cc;--unlock-bg:#faf9f5;--unlock-fg:#17171a;--unlock-backdrop:#17171a55;--unlock-glow:#17171a0a;--unlock-label:#8a6510;--unlock-text:#3b3a36;--unlock-proof:#5f5d57;--unlock-rule:#d8d5cc}}
:root[data-theme=light]{color-scheme:light;
  --bg:#f4f2ec;--surface:#faf9f5;--tile2:#ebe8e0;--hover:#e2ded4;--line:#d8d5cc;
  --fg:#17171a;--soft:#3b3a36;--muted:#5f5d57;--dim:#6f6c65;--on-fill:#faf9f5;
  --red:#b23a22;--amber:#8a6510;--green:#1d7550;--solved:#3f6b3f;--orange:#a3461c;--violet:#6a3fae;--blue:#2457a8;
  --tier-hybrid:#2f6d62;--tier-elite:#4c4c9a;--tier-legendary:#8a5a14;--reward:#1d7550;
  --error-bg:#fbeee9;--error-line:#e2b8ac;--backdrop:#17171a55;--tint:#17171a0a;--logo-filter:invert(1) hue-rotate(180deg);
  --popup-shadow:#17171a33;--popup-shadow-deep:#17171a33;--hint-code-bg:#ebe8e0;--hint-code:#17171a;--hint-error:#b23a22;
  --reward-tint:#17171a06;--reward-glow:#17171a22;--reward-rule:#d8d5cc;
  --unlock-line:#d8d5cc;--unlock-bg:#faf9f5;--unlock-fg:#17171a;--unlock-backdrop:#17171a55;--unlock-glow:#17171a0a;--unlock-label:#8a6510;--unlock-text:#3b3a36;--unlock-proof:#5f5d57;--unlock-rule:#d8d5cc}
/* Log search page palette (style.css .logs-view; founder 2026-10-19). Fixed per pane theme, not per page scheme. */
:root{--search-page:#171d21;--search-panel:#212527;--search-rule:#2b3033;--search-text:#e6e6e6;--search-go:#65a637;--search-go-ink:#fff;
  --search-bar:#5cc05c;--search-link:#1e93c6;--search-s1:#1e93c6;--search-s2:#f2b827;--search-s3:#d6563c;--search-s4:#31a35f;
  --search-light-page:#f2f4f5;--search-light-panel:#fff;--search-light-rule:#c3cbd4;--search-light-text:#333;--search-light-bar:#006d9c;
  --search-light-link:#006d9c;--search-light-s2:#6a5c9e;
  --search-note:#f1735b;--search-light-note:#b23a22;--search-light-muted:#5c6773}
body{background:var(--bg);color:var(--fg);font-family:var(--sans)}

/* Approved unique customer-site family palettes (coordinator 2026-10-19). */
:root{--bsd-ink:light-dark(#376963,#86b8b1);--bsd-coral:light-dark(#a65044,#e89a8c);--bsd-accent:light-dark(#267b69,#71d1bb);--oak-ink:light-dark(#434850,#999da4);--oak-blue:light-dark(#446c95,#6b94bd);--oak-ochre:light-dark(#8b642b,#dab777);--crumb-ink:light-dark(#765032,#bc926b);--crumb-brick:light-dark(#a74b2b,#f19b73);--crumb-crust:light-dark(#8d6429,#eac58a);--ash-ink:light-dark(#69503d,#b29884);--ash-binding:light-dark(#622337,#c27888);--ash-accent:light-dark(#8a2f45,#b95270);--iron-ink:light-dark(#46545e,#a2adb4);--iron-steel:light-dark(#536f76,#758c94);--iron-lime:light-dark(#5c7726,#c5e878)}

/* Approved unique networking sites 6–10. */
:root{--blue-ink:light-dark(#3b577b,#93aed5);--blue-cobalt:light-dark(#4369ad,#7b9ce1);--blue-coral:light-dark(#a74645,#f6a19b);--way-ink:light-dark(#3c6d65,#81b4ae);--way-teal:light-dark(#326f7d,#65aab6);--way-orange:light-dark(#a55a23,#f2b06f);--hal-ink:light-dark(#515d66,#adb6bd);--hal-petrol:light-dark(#1f5f6a,#2f7f8a);--hal-cherry:light-dark(#ac393e,#fa8584);--loft-ink:light-dark(#805b43,#c49b83);--loft-lavender:light-dark(#75618e,#a494bf);--loft-accent:light-dark(#6e4b92,#bca0df);--elm-ginger:light-dark(#875b39,#c5a084);--elm-sage:light-dark(#496f59,#81a592);--elm-rose:light-dark(#9b4766,#e4a4ba)}

/* Approved unique networking sites 11–15. */
:root{--wq-timber:light-dark(#785837,#bb9b76);--wq-blue:light-dark(#3b6c85,#709fb5);--wq-yellow:light-dark(#877021,#ecd06b);--nw-ink:light-dark(#565d7a,#a7acc7);--nw-violet:light-dark(#735893,#a28bc5);--nw-coral:light-dark(#ad4935,#ff9684);--riv-ink:light-dark(#776849,#c4b493);--riv-teal:light-dark(#386d68,#72aaa7);--riv-bronze:light-dark(#88622b,#c7a46f);--ag-aqua:light-dark(#376d70,#83b8b8);--ag-plum:light-dark(#7c537c,#ad8fae);--ag-accent:light-dark(#287780,#8bced1);--gf-concrete:light-dark(#555e5c,#a8acaa);--gf-orange:light-dark(#995b33,#d59a74);--gf-yellow:light-dark(#857020,#e9d276)}

/* Approved unique Kubernetes sites 1–5. */
:root{--hr-green:light-dark(#436b4c,#88ad92);--hr-bottle:light-dark(#3f715a,#6e9b87);--hr-apricot:light-dark(#905840,#f8c0a8);--sb-teal:light-dark(#3e6c70,#83b3b2);--sb-lilac:light-dark(#735f88,#aa95bd);--sb-mint:light-dark(#205040,#b8f8e8);--arc-pink:light-dark(#80516a,#bd92a8);--arc-purple:light-dark(#6d4f8c,#9c83bd);--arc-gold:light-dark(#706840,#c09040);--nf-ink:light-dark(#4d607d,#a1b0c9);--nf-blue:light-dark(#4c6091,#7b8db8);--nf-coral:light-dark(#784040,#c09080);--cr-ink:light-dark(#575e6e,#a9acb5);--cr-denim:light-dark(#4c6c91,#829ebd);--cr-orange:light-dark(#603810,#e89048)}

/* Approved unique customer sites, batches 2 and 3. */
:root{--ashgrove-academy-spine:light-dark(#601838,#b090a0);--ashgrove-academy-edge:light-dark(#3c7170,#73aaa8);--citycentre-edge:light-dark(#416b78,#779da8);--citycentre-stripe:light-dark(#685040,#f8e8a8);--coastal-blue:light-dark(#3d6a88,#85b0ce);--coastal-ochre:light-dark(#484000,#b8a840);--county-election-rule:light-dark(#655a7d,#aaa1c3);--county-election-band:light-dark(#546f51,#8caa8b);--eastgate-rule:light-dark(#73558c,#a38bba);--eastgate-accent:light-dark(#285818,#a0a060);--harbour-museum-edge:light-dark(#496c81,#8caabd);--harbour-museum-rule:light-dark(#875634,#c29172);--harbour-museum-aqua:light-dark(#607068,#38d0d8);--harbour-museum-ring:light-dark(#17171a,#0e0e10);--herald-rule:light-dark(#496e55,#789b83);--herald-ink:light-dark(#515f55,#9da69e);--lingua-rule:light-dark(#465f93,#8da7d0);--lingua-rail:light-dark(#7d5395,#ac90c6);--lingua-accent:light-dark(#606880,#c0d0d0);--meridian-navy:light-dark(#425e82,#8da5c1);--meridian-teal:light-dark(#506c72,#8ea7ac);--meridian-mint:light-dark(#405028,#90e8b0);--quickfork-frame:light-dark(#3e7062,#88b3a6);--quickfork-accent:light-dark(#800000,#d86838)}
