/* Design tokens. Defined once here; no other file hard-codes a colour, size or
   radius. Colours come from the logo: navy (--brand) carries buttons, links
   and the map; red (--accent) is the small highlight, like the logo's dots. */

/* Archivo, served from this site (SIL Open Font License 1.1, /fonts/OFL.txt).
   One variable file per script covers every weight we use. */
@font-face{font-family:Archivo; font-style:normal; font-weight:400 700; font-display:swap;
  src:url(/fonts/archivo-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo; font-style:normal; font-weight:400 700; font-display:swap;
  src:url(/fonts/archivo-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#FFFFFF; --paper-raised:#F6F8FA; --paper-sunk:#EEF2F6;
  /* The app: a quiet grey canvas with white cards on it. */
  --canvas:#EBEFF4; --surface:#FFFFFF; --brand-tint:#EAF0F6;
  /* The app's top bar: the brand navy, with light text on it. */
  --bar:#1E3654; --bar-ink:#FFFFFF; --bar-ink-soft:#C9D6E5; --bar-line:rgba(255,255,255,.16);
  --bar-field:rgba(255,255,255,.1);
  /* Board columns: a shade under the canvas, so white cards stand on them. */
  --lane:#DCE3EB;
  --ink:#1A2230; --ink-soft:#3A4757; --slate:#5E6B7B; --rule:#DDE3EA;
  --brand:#234060; --brand-hover:#2F5680;
  --accent:#E01B1E;
  --focus:#234060;
  /* Map fill: needs 3:1 against --uncovered. */
  --covered:#234060; --uncovered:#E4E9EF;
  /* The map's one-hue ramp, fewest to most (--seq-0 is "none"). Validated
     with the dataviz palette check: monotone, one hue, the light end clears
     2:1 on the surface. */
  --seq-0:#E4E9EF; --seq-1:#9AB3D1; --seq-2:#6C8FB8; --seq-3:#44699A; --seq-4:#234060;
  /* Evidence on a contract's timeline, by source. Categorical slots 1-3 of
     the validated reference palette; each also has its own marker shape. */
  --src-paper:#2a78d6; --src-decision:#eb6834; --src-notice:#1baf7a;
  --window:rgba(224,27,30,.09); --window-edge:#E01B1E;
  /* Links and small labels. */
  --accent-text:#234060;
  --ok:#1C6B3A; --ok-bg:#E2EFE6;
  --bad:#A12A22; --bad-bg:#F7E4E2;
  --info:#234060; --info-bg:#E6F2FA;

  /* Type scale, ~1.19 ratio, the display size fluid from 320px up. */
  --step--1:.8125rem; --step-0:1rem; --step-1:1.1875rem; --step-2:1.5rem;
  --step-3:2rem; --step-4:clamp(2.25rem,1.3rem + 4.4vw,4.25rem);

  --space-1:.375rem; --space-2:.75rem; --space-3:1.25rem; --space-4:2rem;
  --space-5:3.25rem; --space-6:5rem;

  --radius:6px; --radius-lg:10px;
  --shadow:0 1px 2px rgba(26,34,48,.06), 0 6px 20px -12px rgba(26,34,48,.22);
  --measure:36rem;

  --font-body:Archivo,system-ui,sans-serif;
  --font-display:Archivo,system-ui,sans-serif;
  color-scheme:light;
}

/* Dark mode follows the device setting; there is no theme switch. */
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0F1620; --paper-raised:#16202C; --paper-sunk:#0B1118;
    --canvas:#0B1118; --surface:#16202C; --brand-tint:#1B2C3D;
    --bar:#101B28; --bar-ink:#E8EEF4; --bar-ink-soft:#A9B8C8; --bar-line:rgba(255,255,255,.1);
    --bar-field:rgba(255,255,255,.07);
    --lane:#111A25;
    --ink:#E8EEF4; --ink-soft:#BAC6D2; --slate:#8D9BAA; --rule:#27323F;
    --brand:#96D2ED; --brand-hover:#B8E1F3;
    --accent:#E0413F;
    --focus:#96D2ED;
    --covered:#96D2ED; --uncovered:#223040;
    --seq-0:#223040; --seq-1:#35597A; --seq-2:#4F82AB; --seq-3:#72ADD4; --seq-4:#A6DCF2;
    --src-paper:#3987e5; --src-decision:#d95926; --src-notice:#199e70;
    --window:rgba(224,65,63,.16); --window-edge:#E0413F;
    --accent-text:#96D2ED;
    --ok:#79D49A; --ok-bg:#17301F;
    --bad:#FF9C99; --bad-bg:#3A1618;
    --info:#96D2ED; --info-bg:#16304A;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 20px -12px rgba(0,0,0,.7);
    color-scheme:dark;
  }
}
