/* Orbit v4.0 — colour. Cool only: every hue sits between 198° and 209°.
   Never pure black (ink-100). Never pure white on navy (ice). */
:root {
  /* NAVY — the dark pole */
  --navy-deepest: #030f1a;   /* product ground */
  --navy-deep:    #061728;   /* panels, sidebar */
  --navy-primary: #0c374b;   /* brand navy, document header bands */
  --navy-mid:     #1a5070;   /* primary button */
  --navy-light:   #2a6a8a;
  --navy-accent:  #3d7e9e;   /* focus, active rail, button hover */

  /* ICE — the light pole */
  --ice:       #e0f2fa;
  --ice-dim:   #b8ddef;
  --ice-faint: #8ec8e0;

  /* ICE TEXT TIERS — 0.60 is the floor; below that fails AA */
  --ice-90: rgba(224,242,250,0.90);
  --ice-75: rgba(224,242,250,0.75);
  --ice-60: rgba(224,242,250,0.60);
  --ice-rule:    rgba(224,242,250,0.20);  /* rules — never text */
  --ice-edge:    rgba(224,242,250,0.10);  /* borders */
  --ice-grid:    rgba(224,242,250,0.05);  /* gridlines, hover wash */
  --ice-ambient: rgba(224,242,250,0.02);  /* background grid */

  /* INK — text on light */
  --ink-100: #0c1a26;
  --ink-80:  #2a3f4f;
  --ink-60:  #4a6275;
  --ink-50:  #607388;   /* muted — FLOOR on light */
  --ink-40:  #8a9bad;   /* borders/dividers ONLY, never text */
  --ink-20:  #c5d0d9;
  --ink-10:  #e8edf1;

  /* LIGHT SURFACES — exports, print, board packs */
  --surface-base:   #f4f7f9;
  --surface-raised: #fafbfc;
  --surface-sunken: #e8edf1;
  --surface-rule:   #c5d0d9;
  --paper:          #f6f6f5;   /* editorial / print. Near-hueless by design. */

  /* STATUS — policy state, data contexts only */
  --ok-dark:   #5dba8e;
  --warn-dark: #c8a23a;
  --risk-dark: #e07a6a;
  --ok-text:   #367e5c;
  --warn-text: #876c25;   /* AA on --paper: #896e26 read 4.49 */
  --risk-text: #c43d29;

  /* STATUS WASHES — badge fills */
  --ok-wash-dark:   rgba(93,186,142,0.14);
  --warn-wash-dark: rgba(200,162,58,0.14);
  --risk-wash-dark: rgba(224,122,106,0.14);
  --ok-wash-light:   rgba(54,126,92,0.10);
  --warn-wash-light: rgba(137,110,38,0.10);
  --risk-wash-light: rgba(196,61,41,0.10);

  /* SERIES — categorical charts. Six is the ceiling. */
  --series-1: #8ec8e0;
  --series-2: #387391;   /* AA: --ice text on this fill. #3d7e9e read 3.90 */
  --series-3: #b8ddef;
  --series-4: #2a6a8a;
  --series-5: #9188c4;
  --series-6: #b784a8;

  /* VARIANCE — diverging. Direction, not policy state. */
  --var-pos-strong: #367e5c;
  --var-pos:        #5dba8e;
  --var-neutral:    #8a9bad;
  --var-neg:        #e07a6a;
  --var-neg-strong: #ca3f2b;  /* AA on --paper: #cc402b read 4.48 */

  /* CHART CHROME */
  --chart-axis:     rgba(224,242,250,0.20);
  --chart-grid:     rgba(224,242,250,0.05);
  --chart-baseline: rgba(224,242,250,0.75);  /* heavier than every other rule */
  --chart-label:    rgba(224,242,250,0.60);

  /* WEBSITE — marketing/editorial surface only. Never inside product UI. */
  --web-tint:      #e3eef5;   /* hero plate wash, hue ~203° */
  --web-tint-edge: #c7dbe7;   /* hairline on tint */
  --web-accent-dark:  var(--ice-faint);  /* accent phrase in display heads on navy */
  --web-accent-light: var(--navy-mid);   /* accent phrase on light */

  /* ── SEMANTIC ALIASES ── dark product surface (default) ── */
  --ground:         var(--navy-deepest);
  --surface-panel:  var(--navy-deep);
  --surface-card:   var(--navy-deep);
  --border-default: var(--ice-edge);
  --border-strong:  var(--ice-rule);
  --text-primary:   var(--ice);
  --text-body:      var(--ice-90);
  --text-secondary: var(--ice-75);
  --text-muted:     var(--ice-60);
  --text-numeral:   var(--ice-75);
  --focus-ring:     var(--navy-accent);

  /* ── SEMANTIC ALIASES ── light document surface ── */
  --doc-ground:         var(--surface-base);
  --doc-surface-card:   var(--surface-raised);
  --doc-surface-sunken: var(--surface-sunken);
  --doc-border:         var(--surface-rule);
  --doc-text-primary:   var(--ink-100);
  --doc-text-body:      var(--ink-60);
  --doc-text-strong:    var(--ink-80);
  --doc-text-muted:     var(--ink-50);
  --doc-band:           var(--navy-primary);
}
