/* ============================================================
   Revvyn — OS / Console skin tokens
   Extends tokens.css for dense product screens (dashboards,
   tables, sidebars). Same monochrome system; adds surface
   elevations + the TWO functional decision colors.
   STRICT RULE: green = settled/allow, red = blocked/danger.
   Nothing else is ever coloured. No gold. No accent.
   ============================================================ */

:root {
  /* elevations (ink theme) */
  --os-bg:      #0B0B0C;   /* app background */
  --os-panel:   #111113;   /* cards, panels, table surfaces */
  --os-panel-2: #0E0E10;   /* sidebar, recessed surfaces */

  /* ink ramp */
  --os-fg:    #ECE9E0;     /* primary text */
  --os-muted: #86837A;     /* labels, secondary */
  --os-faint: #56544D;     /* tertiary, placeholders, "—" */

  /* hairlines */
  --os-hair:   rgba(236,233,224,.10);
  --os-hair-2: rgba(236,233,224,.055);

  /* THE ONLY TWO FUNCTIONAL COLORS — decision states only */
  --os-pos: #5FB98C;   /* settled · allow */
  --os-neg: #E2603A;   /* blocked · danger · kill switch */

  /* type */
  --os-disp: 'Space Grotesk', system-ui, sans-serif;
  --os-mono: 'Space Mono', ui-monospace, monospace;

  /* metrics: ALWAYS tabular-nums + mono */
  --os-radius-card: 10px;
  --os-radius-ctrl: 5px;
}

/* paper theme inversion for the console */
[data-theme="paper"] {
  --os-bg:#ECE9E0; --os-panel:#F3F0E8; --os-panel-2:#E6E2D8;
  --os-fg:#0B0B0C; --os-muted:#6E6B62; --os-faint:#A6A399;
  --os-hair:rgba(11,11,11,.12); --os-hair-2:rgba(11,11,11,.06);
}

/* ---- console primitives (class contracts the reference uses) ----
   .panel      → bordered card (--os-hair, --os-radius-card, --os-panel)
   .ph / .pb   → panel header (mono uppercase label) / body
   .kpis/.kpi  → metric strip; value = mono 700 tabular-nums
   .nav.on     → active sidebar row: 2px --os-fg left bar + faint fg wash
   .tag.allow/.block/.esc → decision pills (esc is MONOCHROME, not gold)
   th/td       → mono 9.5px uppercase headers; hairline-2 row borders
   Status semantics:
     settled/allow → --os-pos    blocked/danger → --os-neg
     escalate/review/pending/active → plain --os-fg (NEVER a colour)
*/
