/* ============================================================================
   Cloud Waypoint v2 — WWT theme-token layer (REAL VALUES, ingested 2026-10-10)
   ----------------------------------------------------------------------------
   Source of truth: cairnops/design/brands.json (the engine's WWT brand layer,
   V2-T33 / CO-R148) and WWT Brand Guidelines v1.1 (Feb 2026, 112 pp; colour
   pp. 48-52, typography pp. 58-63, iconography pp. 81-87, 100). This file is a
   derived projection for v2 surfaces; when brands.json changes, regenerate.
   Brand artwork, Roobert font files and the Blue Steel SVGs are WWT property
   and are NOT in this directory (see WWT-BRAND-INGEST.md).
   Public-face rule (settled 2026-08-10): no WWT logo or monogram on the public
   site; Blue Steel glyphs are the icon language and may appear anywhere.
   ========================================================================== */

/* Contrast corrections 2026-10-10 (measured by cairnops-v2/ui/grammar/contrast.mjs): override ink Navy, not white;
   dark-theme proposed fills are Light Blue tints with Dark Blue ink; dark IL5 chip likewise. Every text pairing now
   measures 4.5:1 or better and every chip and border 3:1 or better, in both themes. Brand values unchanged. */

:root {
  /* ---- WWT primary palette (pp. 48-52) ---- */
  --wwt-dark-blue:        #1C0087;  /* Pantone 2735 C · the ink             */
  --wwt-dark-blue-75:     #49339F;
  --wwt-dark-blue-50:     #7766B7;
  --wwt-dark-blue-25:     #A499CF;
  --wwt-light-blue:       #0086EA;  /* Pantone 2193 C · edge and lead; 3.75:1 on white, never body or link text */
  --wwt-light-blue-75:    #339EEE;
  --wwt-light-blue-50:    #66B6F2;
  --wwt-light-blue-25:    #99CFF7;
  --wwt-bright-red:       #EE282A;  /* Pantone 3556 C · accent only, never prominent, never a state colour */
  --wwt-white:            #FFFFFF;  /* generous white space is part of the palette */

  /* ---- WWT secondary palette (charts, diagrams, interface) ---- */
  --wwt-royal:            #162FB4;  /* Pantone 2736 C · text-safe accent (brands.json accentText) */
  --wwt-royal-25:         #C5CBEC;
  --wwt-violet:           #330072;  /* Pantone 2685 C */
  --wwt-navy:             #1D1E48;  /* Pantone 2766 C */
  --wwt-navy-75:          #565676;
  --wwt-navy-25:          #C7C7D1;
  --wwt-orange:           #FB550E;  /* Pantone Orange 021 C · the drawings' attention tone (brands.json tones.gold) */
  --wwt-pink:             #E31C79;  /* Pantone 213 C */
  --wwt-purple:           #8212C4;  /* Pantone 2084 C */
  --wwt-black-85:         #262626;  /* body text (V2-T33: 85% black body) */
  --wwt-black-75:         #404040;
  --wwt-black-50:         #808080;
  --wwt-black-25:         #BFBFBF;
  --wwt-black-5:          #F2F2F2;  /* tile field (brands.json palette.field) */

  /* ---- Surface roles (light) ---- */
  --bg:       var(--wwt-black-5);
  --surface:  var(--wwt-white);
  --ink:      var(--wwt-black-85);
  --heading:  var(--wwt-dark-blue);     /* headings in Dark Blue at small sizes; Light Blue only at display sizes (large-text 3:1) */
  --accent:   var(--wwt-royal);         /* text-safe */
  --edge:     var(--wwt-light-blue);    /* rules, leads, chips on white at large size, icons */
  --muted:    var(--wwt-navy-75);
  --line:     var(--wwt-navy-25);
  --tile:     var(--wwt-black-5);

  /* ---- Scoring lifecycle (product semantics mapped into the WWT palette) ---- */
  --score-proposed:        var(--wwt-light-blue-50);  /* light blue: rule proposal, pending   */
  --score-proposed-ai:     var(--wwt-light-blue-25);  /* lighter blue: AI proposal, pending   */
  --score-proposed-ink:    var(--wwt-dark-blue);
  --score-confirmed:       var(--wwt-dark-blue);      /* solid: consultant confirmed          */
  --score-confirmed-ink:   var(--wwt-white);
  --score-overridden:      var(--wwt-orange);         /* solid attention tone: override + reason */
  --score-overridden-ink:  var(--wwt-navy);        /* white on Orange measures 3.28:1; Navy measures 4.81:1 */
  --score-stale:           var(--wwt-navy-25);        /* evidence changed, re-confirm         */
  --score-stale-ink:       var(--wwt-navy);

  /* ---- Edition leads (owner 2026-10-10: the two editions must read apart) ----
     IL6 led by Dark Blue; IL5 led by Light Blue. Chips: IL6 Dark Blue with white text,
     IL5 Light Blue 25% tint with Dark Blue text, so both pass contrast and differ at a glance. */
  --edition-il6-lead: var(--wwt-dark-blue);
  --edition-il6-chip: var(--wwt-dark-blue);
  --edition-il6-ink:  var(--wwt-white);
  --edition-il5-lead: var(--wwt-light-blue);
  --edition-il5-chip: var(--wwt-light-blue-25);
  --edition-il5-ink:  var(--wwt-dark-blue);

  /* ---- Type (pp. 58-63): Roobert, Arial as the system fallback; 13 pt digital minimum ---- */
  --font-display: "Roobert", Arial, Helvetica, sans-serif;   /* headlines Roobert Light 300, 100% leading */
  --font-body:    "Roobert", Arial, Helvetica, sans-serif;   /* body Regular 400, 135%; subheads Bold 700, 135% */
  --font-mono:    ui-monospace, Menlo, Consolas, monospace;  /* ids and digests; the guide specifies no monospace */
  --text-min:     13px;
  --lh-headline:  1.0;
  --lh-body:      1.35;
  --lh-quote:     1.30;

  /* ---- Blue Steel icons (pp. 81-87, 100): single colour, fill=currentColor, ~25 px, never on L1-L3 titles ---- */
  --icon-size:    24px;
}

/* Roobert faces are supplied by the build only where the licence decision for that
   surface permits (public origin: owner's call 2026-09-11; client leave-behind: open).
   local() first so a machine with Roobert installed never fetches. */





@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: var(--wwt-navy); --surface: #292940; --ink: var(--wwt-black-5); --heading: var(--wwt-light-blue-25);
    --accent: var(--wwt-light-blue-50); --edge: var(--wwt-light-blue-50); --muted: var(--wwt-navy-25); --line: var(--wwt-navy-75); --tile: #292940;
    --score-proposed: var(--wwt-light-blue-75); --score-proposed-ai: var(--wwt-light-blue-50); --score-proposed-ink: var(--wwt-dark-blue);
    --score-confirmed: var(--wwt-light-blue-25); --score-confirmed-ink: var(--wwt-dark-blue);
    --score-overridden: var(--wwt-orange); --score-overridden-ink: var(--wwt-navy);
    --score-stale: var(--wwt-navy-75); --score-stale-ink: var(--wwt-black-5);
    --edition-il6-chip: var(--wwt-light-blue-25); --edition-il6-ink: var(--wwt-dark-blue); --edition-il5-chip: var(--wwt-light-blue-75); --edition-il5-ink: var(--wwt-dark-blue);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: var(--wwt-navy); --surface: #292940; --ink: var(--wwt-black-5); --heading: var(--wwt-light-blue-25);
  --accent: var(--wwt-light-blue-50); --edge: var(--wwt-light-blue-50); --muted: var(--wwt-navy-25); --line: var(--wwt-navy-75); --tile: #292940;
  --score-proposed: var(--wwt-light-blue-75); --score-proposed-ai: var(--wwt-light-blue-50); --score-proposed-ink: var(--wwt-dark-blue);
  --score-confirmed: var(--wwt-light-blue-25); --score-confirmed-ink: var(--wwt-dark-blue);
  --score-overridden: var(--wwt-orange); --score-overridden-ink: var(--wwt-navy);
  --score-stale: var(--wwt-navy-75); --score-stale-ink: var(--wwt-black-5);
  --edition-il6-chip: var(--wwt-light-blue-25); --edition-il6-ink: var(--wwt-dark-blue); --edition-il5-chip: var(--wwt-light-blue-75); --edition-il5-ink: var(--wwt-dark-blue);
  color-scheme: dark;
}

/* Component rules the brand sets (V2-T35, V2-T36): tiles on the Black 5% field, thin rules,
   headings light and airy, icons single-colour beside their text. */
.bs-icon { width: var(--icon-size); height: var(--icon-size); fill: currentColor; vertical-align: middle; }
.tile { background: var(--tile); border: 1px solid var(--line); }
hr, .rule { border: 0; border-top: 1px solid var(--line); }

