/* Rewire. — shared foundations.
   One source for colour, measure and the browser surfaces. Every page loads
   this before its own styles; a page may add tokens of its own but must not
   restate these. Before this file the three pages each carried their own
   :root, kept in step only because the 2026 palette swap was done by hand
   three times — see docs/AUDIT_TABS_2026-08-11.md. */

:root{--g:#2c6663;--g2:#3e807c;--g3:#57938e;--gs:#dceae7;--gbg:#e5ece9;--bg:#f6f5f1;--tx:#141518;--sub:#41444a;--mu:#686c74;--lt:#a5a9b0;--ft:#c6c9c4;--bd:#dddbd2;--wm:#f0eee9;--col:1040px;--card:#ffffff;--paper3:#e9e7e0;--seg:#d5d3c9;--lc:#486da3;--up:#23786c;--down:#bb4529;--amber:#7d6600;--ch1:#1d4e4b;--ch2:#2f7c74;--ch3:#6fb3aa;--chneg:#9d5748;
  /* Type roles, per docs/design/DESIGN_SPEC_v4.md §5: a display serif for
     editorial voice, a geometric sans for interface copy, and a monospace
     for every number that is a measurement. All three are served from
     /fonts — no third party sees a reader's IP for the sake of a face. */
  --f-display:'Fraunces',Georgia,'Times New Roman',serif;
  --f-ui:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --f-data:'Geist Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace}
html[data-theme="dark"]{--g:#5fb3ab;--g2:#74c4bc;--g3:#5fb3ab;--gs:#1c3532;--gbg:#232529;--bg:#17181c;--tx:#eaebee;--sub:#b6b9bf;--mu:#8f939a;--lt:#5f6369;--ft:#45484d;--bd:#2b2d32;--wm:#131417;--card:#1b1d21;--paper3:#232529;--seg:#383b41;--lc:#82a4d6;--up:#5fb3ab;--down:#e0795a;--amber:#c4a437;--ch1:#3f8f86;--ch2:#5fa89f;--ch3:#83c4bb;--chneg:#b06a5a;color-scheme:dark}

/* The measure. Briefing and Markets sat at 1040px, Politics at three widths
   and the simulator at 860 — so navigating changed the width of the page
   while the wordmark stayed put, and the product read as several products.
   One token now, everywhere. */
.wrap{max-width:var(--col);margin:0 auto;padding:0 24px}

/* --lt is a NON-TEXT colour. On the page ground it measures 2.03:1, which no
   text may stand on; it is for hairlines, dividers, disabled chart ink and
   scrollbars, where the 3:1 rule for non-text applies. Every label that used
   to be set in it now stands in --mu (4.54:1). Raising --lt itself to 4.5
   would have produced #686c72 — indistinguishable from --mu — and collapsed
   the quietest tier of the scale into the second-quietest. */

/* Browser surfaces belong to the brand too. */
::selection{background:var(--g);color:var(--wm)}
:focus-visible{outline:2px solid var(--g);outline-offset:2px}
html{scrollbar-color:var(--bd) transparent}

/* §5, non-negotiable: tabular lining figures on every measured number, so a
   column cannot wobble as values refresh. */
/* Namespaced deliberately: the pages already use .num for the accent word in
   a headline, which is type colour, not a measurement. */
.f-data,[data-figure]{font-family:var(--f-data);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}

/* §7: motion denotes a state change or it does not run at all. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
}
