/* ============================================================================
   ConstructorOne — Design Tokens (the design model, runtime layer)
   Source of truth for the UI redesign. Candidate, "teal core / gold gate".
   Drawn from METHODOLOGY/DESIGN_SYSTEM.md and the visual proof
   (EXPLORATIONS/design-system/ConstructorOne_visual_proof.html).

   RULES FOR THE BUILD (read before consuming):
   1. CHROME tokens never encode data. DATA-SEMANTIC tokens never decorate chrome.
   2. Tokens marked  [FROZEN]  are load-bearing meaning. A build may tune the hex
      for contrast/accessibility but MUST NOT reassign what a token means, collapse
      a semantic ramp into brand colour, or reuse a semantic hue for chrome.
   3. This file is the UPSTREAM source for PortView's theme.json and
      bucket_bindings.json — those derive from these tokens; they do not fork them.
   ============================================================================ */
:root{

  /* ---------- CHROME · brand & UI only — NEVER encodes data ---------- */
  --c1-canvas:        #F4F5F7;   /* cool app work surface (replaces parchment for data legibility) */
  --c1-surface:       #FFFFFF;   /* cards */
  --c1-surface-alt:   #FAFBFC;
  --c1-border:        #E2E6EB;
  --c1-border-soft:   #EDEFF2;
  --c1-navy:          #16243A;   /* sidebar, note panels */
  --c1-ink:           #17253F;   /* primary text */
  --c1-ink-2:         #3D4759;   /* secondary text  (>= 7:1 on surface) */
  --c1-ink-3:         #5A6376;
  --c1-muted:         #6B7280;   /* tertiary  (>= 4.6:1 on surface) */
  --c1-muted-2:       #8A93A0;   /* non-text / hairline labels only */
  --c1-accent:        #2E7D74;   /* TEAL = brand + committed, and nothing else */
  --c1-accent-2:      #3E8F85;
  --c1-accent-deep:   #246158;
  --c1-accent-wash:   #E7F1EF;

  /* ---------- GATE · human authorisation (gold) ----------  [FROZEN semantics] */
  /* gold = "a human gate": proposed / awaiting authorisation. Calm, not error.   */
  --c1-gate:          #C99A2E;   /* deepened from brochure #D7B45A for contrast */
  --c1-gate-deep:     #8A5E10;   /* gate text / icon — meets contrast on wash    */
  --c1-gate-wash:     #FBF4DF;
  --c1-gate-border:   #E6CD8B;

  /* ================= DATA SEMANTICS — [FROZEN] (§3) =================
     Disambiguated by SHAPE + CONTEXT, not by hue alone. Do not recolor to brand. */

  /* Confidence ladder — graphite value-ramp; PRIMARY cue is filled-square count. */
  --c1-conf-hunch:     #AEB4C0;  /* 1 of 4 filled */
  --c1-conf-suspicion: #8A92A2;  /* 2 of 4 */
  --c1-conf-working:   #5E6678;  /* 3 of 4 */
  --c1-conf-confirmed: #2A3346;  /* 4 of 4 */

  /* Congruency states — SHAPE-first (broken-bars / dot / target), colour second. */
  --c1-cong-misaligned:  #B4472E; /* glyph: two offset bars */
  --c1-cong-aligned:     #3E8F85; /* glyph: filled dot       */
  --c1-cong-resonance:   #147E8C; /* glyph: concentric target — a distinct state, NOT "more aligned" */

  /* Basis lens — always rendered as a LABELLED chip (context says "lens"). */
  --c1-lens-quant:    #2F61D6;
  --c1-lens-qual:     #6B4FC9;
  --c1-lens-political:#9A6B12;

  /* Friction mode — polarity. */
  --c1-fric-tension:    #C2502F;
  --c1-fric-generative: #2E9E6B;

  /* Risk heat — RiskAssessor domain; warm-red SEQUENTIAL (low → high). */
  --c1-risk-0: #EFEDEA;
  --c1-risk-1: #F2DBD0;
  --c1-risk-2: #E3A98E;
  --c1-risk-3: #D27E5F;
  --c1-risk-4: #C2502F;

  /* Roadmap — lever status. */
  --c1-lever-committed: #2E7D74;
  --c1-lever-planned:   #CDE3DF;
  --c1-lever-retiring:  #B7BDC6;  /* rendered as a 45° hatch over #EAECEF */

  /* Dataviz categorical — CHARTS ONLY, always with a legend. (D-50 contrast order) */
  --c1-dv-1: #3B6FE0;  /* blue   */
  --c1-dv-2: #E0922E;  /* orange */
  --c1-dv-3: #2E7D74;  /* teal   */
  --c1-dv-4: #2E9E6B;  /* green  */
  --c1-dv-5: #D4503C;  /* red — screening / alert */

  /* NOTE: warm-red (#C2502F / #D4503C / #B4472E) is ONE intentional
     "needs-attention" family shared by screening line, mis-aligned,
     friction-tension and risk-heat. Coherent, not a collision. */

  /* ---------- TYPE ---------- */
  --c1-font-display: 'Space Grotesk', system-ui, sans-serif; /* H1/H2/titles */
  --c1-font-ui:      'IBM Plex Sans', system-ui, sans-serif; /* body, controls */
  --c1-font-mono:    'IBM Plex Mono', ui-monospace, monospace; /* eyebrows, axis, labels */
  --c1-fs-eyebrow:  11px;   /* mono eyebrow — never below 11px */
  --c1-fs-label:    12px;   /* tags, captions */
  --c1-fs-body:   14.5px;
  --c1-fs-title:    24px;
  --c1-track-eyebrow: .14em;

  /* ---------- SPACE / RADIUS / ELEVATION ---------- */
  --c1-r-card:  12px;
  --c1-r-panel: 10px;
  --c1-r-ctrl:   8px;
  --c1-r-tag:    6px;
  --c1-sh-card: 0 1px 2px rgba(23,37,63,.06);
  --c1-sh-pop:  0 18px 50px -22px rgba(23,37,63,.42);

  /* ---------- INTERACTION MINIMUMS (accessibility) ---------- */
  --c1-tap-min: 40px;   /* interactive controls >= 40px high (44px on touch) */
}
