/* ============================================================
   Fledge OS — Design Tokens v1.2 ("lit field" + namespace restore)
   v1.1 did the measured luminance lift correctly (+0.011 OKLch-L, hue 261°,
   structural glows at ceiling) but violated the frozen namespace: 87 of the
   109 --od-* names the desktop skin consumes were renamed or dropped.
   v1.2 keeps every v1.1 VALUE correction and restores the complete v1.0
   namespace (aliases point at the lifted primitives; component metrics
   restored verbatim from v1.0; font stacks restored per the type invariant).
   WCAG: v1.1's 57/57 ledger holds — aliases resolve to the same values.
   ============================================================ */

:root {
  /* ---------- Surfaces (v1.1 lift, hue 261°, luminance-only) ---------- */
  --od-bg-deep:    #091220; /* oklch(0.180 0.032 260.3) */
  --od-bg-inset:   #0e1624; /* oklch(0.199 0.032 261.4) */
  --od-bg-field:   #0f1829; /* oklch(0.211 0.036 261.4) — measured cluster midpoint */
  --od-bg-window:  #121c2d; /* oklch(0.225 0.036 261.4) */
  --od-bg-raised:  #161f2f; /* oklch(0.238 0.034 261.4) */
  --od-bg-overlay: #1a2333; /* oklch(0.254 0.033 261.4) */

  /* ---------- Field glow system (structural, v1.1) + restored primitives -- */
  --od-glow-steel: rgba(87, 163, 239, 0.13);
  --od-glow-teal:  rgba(52, 193, 193, 0.09);
  --od-glow-amber: rgba(241, 164, 87, 0.07);
  --od-glow-peak: 0.15;
  --od-field-glows:
    radial-gradient(ellipse 1100px 850px at 14% 4%,
      rgba(87, 163, 239, 0.13), rgba(87, 163, 239, 0.00) 100%),
    radial-gradient(ellipse 900px 700px at 86% 98%,
      rgba(52, 193, 193, 0.09), rgba(52, 193, 193, 0.00) 100%),
    radial-gradient(ellipse 700px 500px at 90% 6%,
      rgba(241, 164, 87, 0.07), rgba(241, 164, 87, 0.00) 100%);

  /* ---------- Text (v1.1 values + restored on-accent) ---------- */
  --od-text-strong: #ffffff;
  --od-text-body:   #d1d8e3;
  --od-text-muted:  #a1a8b5;
  --od-text-faint:  #8f959e;
  --od-text-on-accent: var(--od-ink-on-steel); /* ink on steel — never white */

  /* ---------- Borders (v1.1 values + restored focus/hairline) ---------- */
  --od-border-subtle: #1d273a;
  --od-border:        #263147;
  --od-border-strong: #35425f;
  --od-border-focus:  #8f959e;
  --od-border-hairline: 1px;
  --od-focus-ring:    #8f959e;

  /* ---------- Accent family (hues invariant; canonical + short aliases) --- */
  --od-accent-steel: #57a3ef; /* hue 210 */
  --od-accent-teal:  #34c1c1; /* hue 180 */
  --od-accent-amber: #f1a457; /* hue 30  */
  --od-accent-green: #4ebd87; /* hue 151 */
  --od-accent-red:   #ea6c58; /* hue 8   */
  --od-steel: var(--od-accent-steel);
  --od-teal:  var(--od-accent-teal);
  --od-amber: var(--od-accent-amber);
  --od-green: var(--od-accent-green);
  --od-red:   var(--od-accent-red);
  --od-steel-text: #83c3ff;
  --od-teal-text:  #6cd9d8;
  --od-amber-text: #f6ac63;
  --od-green-text: #77d4a3;
  --od-red-text:   #ff8b77;

  /* ---------- Ink-on-steel interaction rule (invariant) ---------- */
  --od-ink-on-steel:        #091220;
  --od-ink-on-steel-hover:  #091220;
  --od-ink-on-steel-active: #091220;

  /* ---------- Actions (v1.1) ---------- */
  --od-action:        #5daaf5;
  --od-action-hover:  #76b6f7;
  --od-action-active: #509de8;

  /* ---------- Veils & selection (v1.1) ---------- */
  --od-hover-veil:  rgba(255, 255, 255, 0.05);
  --od-active-veil: rgba(255, 255, 255, 0.08);
  --od-accent-veil: rgba(87, 163, 239, 0.12);
  --od-selection:   rgba(87, 163, 239, 0.30);

  /* ---------- Chrome surfaces (v1.1 blends + restored window aliases) ----- */
  --od-menubar-bg: rgba(22, 31, 47, 0.78);
  --od-window-bg: var(--od-bg-window);
  --od-window-border: var(--od-border);
  --od-window-border-active: rgba(87, 163, 239, 0.35);
  --od-window-radius: var(--od-radius-md);
  --od-chat-bubble-user-bg: #1c2f48;
  --od-chat-bubble-agent-bg: #121c2d;
  --od-state-success-bg: #192f38;
  --od-state-working-bg: #16303f;
  --od-state-pending-bg: #2d2c32;
  --od-state-error-bg:   #2c2632;

  /* ---------- Semantic states (dots/text restored from v1.0; bgs v1.1) ---- */
  --od-state-success-dot: #4ebd87;  --od-state-success-text: #77d4a3;
  --od-state-working-dot: #34c1c1;  --od-state-working-text: #6cd9d8;
  --od-state-pending-dot: #f1a457;  --od-state-pending-text: #f6ac63;
  --od-state-error-dot:   #ea6c58;  --od-state-error-text:   #ff8b77;

  /* ---------- Type (v1.0 stacks restored — invariant) ---------- */
  --od-font-display: "Söhne Breit", "Söhne", "Inter", system-ui, sans-serif;
  --od-font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --od-font-mono:    "Berkeley Mono", "Berkeley Mono Variable", ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;
  --od-type-display-xl: 500 34px/1.15 var(--od-font-display);
  --od-type-display-lg: 500 24px/1.25 var(--od-font-display);
  --od-type-display-md: 500 17px/1.4  var(--od-font-display);
  --od-type-body-lg:    400 15px/1.47 var(--od-font-body);
  --od-type-body:       400 14px/1.43 var(--od-font-body);
  --od-type-body-dense: 400 13px/1.38 var(--od-font-body);
  --od-type-label-sm:   500 11px/1.27 var(--od-font-body);
  --od-type-label-xs:   600 10px/1.2  var(--od-font-body);
  --od-type-mono:       400 12.5px/1.44 var(--od-font-mono);
  --od-type-mono-num:   500 22px/1.18 var(--od-font-mono);
  --od-tracking-caps-sm: 0.08em;
  --od-tracking-caps-xs: 0.10em;
  --od-tracking-display: -0.01em;

  /* ---------- Space & shape (metrics restored; radii from v1.1 scale) ----- */
  --od-space-1: 4px;  --od-space-2: 8px;  --od-space-3: 12px; --od-space-4: 16px;
  --od-space-5: 20px; --od-space-6: 24px; --od-space-8: 32px; --od-space-10: 40px;
  --od-space-row-gap: 2px;
  --od-radius-sm: 6px; --od-radius-md: 10px; --od-radius-lg: 14px; --od-radius-xl: 20px;
  --od-radius-chip: 3px;
  --od-radius-control: var(--od-radius-sm);
  --od-radius-inset: var(--od-radius-sm);
  --od-radius-window: var(--od-radius-md);
  --od-radius-pill: 999px;
  --od-focus-ring-width: 2px;
  --od-focus-ring-offset: 2px;

  /* ---------- Elevation & glow accents (restored) ---------- */
  --od-hairline-top: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  --od-active-window-glow: 0 0 24px rgba(87, 163, 239, 0.08);

  /* ---------- Menubar (metrics restored) ---------- */
  --od-menubar-height: 30px;
  --od-menubar-pad-x: 12px;
  --od-menubar-item-pad-x: 8px;
  --od-menubar-item-radius: 4px;
  --od-menubar-item-font: 500 12px/1 var(--od-font-body);
  --od-menubar-meta-font: 400 12px/1 var(--od-font-mono);
  --od-menubar-text: var(--od-text-body);
  --od-brand-tracking: 0.06em;

  /* ---------- Windows (metrics restored) ---------- */
  --od-titlebar-height: 34px;
  --od-titlebar-bg: var(--od-bg-window);
  --od-titlebar-bg-active: var(--od-bg-raised);
  --od-titlebar-text: var(--od-text-muted);
  --od-titlebar-text-active: var(--od-text-strong);
  --od-titlebar-font: 400 12px/1 var(--od-font-mono);
  --od-window-btn-size: 12px;
  --od-window-btn-gap: 8px;
  --od-window-btn-close: var(--od-state-error-dot);
  --od-window-btn-minimize: var(--od-state-pending-dot);
  --od-window-btn-zoom: var(--od-state-success-dot);
  --od-window-btn-resting: var(--od-border-strong);
  --od-window-pad: 16px;
  --od-window-inactive-chrome-dim: 0.72;

  /* ---------- Desktop icons (metrics restored) ---------- */
  --od-icon-size: 52px;
  --od-icon-radius: var(--od-radius-sm);
  --od-icon-tile-hover: var(--od-hover-veil);
  --od-icon-tile-selected: var(--od-selection);
  --od-icon-label-size: 11px;
  --od-icon-label-lh: 1.3;
  --od-icon-label-color: var(--od-text-body);
  --od-icon-label-selected: var(--od-text-strong);
  --od-icon-grid-x: 96px;
  --od-icon-grid-y: 104px;

  /* ---------- Chat (metrics restored) ---------- */
  --od-chat-bubble-user-fg: var(--od-text-body);
  --od-chat-bubble-user-radius: 18px;
  --od-chat-bubble-user-pad: 10px 14px;
  --od-chat-bubble-assistant-bg: transparent;
  --od-chat-bubble-assistant-fg: var(--od-text-body);
  --od-chat-role-label: var(--od-text-faint);
  --od-chat-gap: 16px;
  --od-chat-max-width: 72ch;
  --od-chat-code-bg: var(--od-bg-inset);
  --od-chat-code-border: var(--od-border-subtle);
  --od-chat-timestamp: var(--od-text-faint);
  --od-chat-system-event: var(--od-text-faint);

  /* ---------- Pipeline board (metrics restored) ---------- */
  --od-board-row-height: 44px;
  --od-board-row-bg: transparent;
  --od-board-row-hover: var(--od-hover-veil);
  --od-board-row-selected: var(--od-accent-veil);
  --od-board-row-drag: var(--od-active-veil);
  --od-board-row-separator: var(--od-border-subtle);
  --od-board-column-min: 260px;
  --od-board-stage-numeral: var(--od-text-faint);
  --od-gate-line: rgba(241, 164, 87, 0.55);
  --od-gate-line-passed: rgba(78, 189, 135, 0.55);
  --od-gate-label: var(--od-state-pending-text);
  --od-gate-label-passed: var(--od-state-success-text);
  --od-board-gate-width: 2px;

  /* ---------- Motion (v1.1 values + restored v1.0 names) ---------- */
  --od-motion-fast: 120ms;
  --od-motion-base: 200ms;
  --od-motion-slow: 320ms;
  --od-dur-fast: var(--od-motion-fast);
  --od-dur-base: var(--od-motion-base);
  --od-dur-slow: var(--od-motion-slow);
  --od-ease: cubic-bezier(0.2, 0, 0, 1);
  --od-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --od-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --od-pulse-dot-size: 6px;
  --od-pulse-cycle: 2.4s;
  --od-pulse-opacity-min: 0.4;
  --od-pulse-opacity-max: 1;
  --od-motion-max-travel: 2px;

  /* ---------- Data viz (restored from v1.0) ---------- */
  --od-viz-1: #57a3ef; --od-viz-2: #34c1c1; --od-viz-3: #4ebd87; --od-viz-4: #f1a457;
  --od-viz-5: #e57db1; --od-viz-6: #b093e5; --od-viz-7: #d3bd6c; --od-viz-8: #8799b8;

  /* ---------- Chrome aliases (shell-patch / desk chrome) ---------- */
  --cw-bg: var(--od-bg-field);
  --cw-line-soft: var(--od-border-subtle);
  --cw-line: var(--od-border);
  --cw-blur-menubar: 18px;
  --cw-blur-row: 14px;
  --cw-blur-window: 20px;
  --od-elev-tooltip: 0 8px 24px rgba(0,0,0,.45);
  --od-elev-popover: 0 12px 40px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04);
  --od-elev-window: 0 22px 56px rgba(0,0,0,.55), var(--od-active-window-glow);
}
