/* Gray — color tokens. Pure-black canvas, grayscale surfaces, white as the primary accent,
   exactly one critical hue (#FF3B30) used once per screen, max.
   Source of truth: theme.ts `C`. Do not reinterpret. */

:root {
  /* ── Canvas & surfaces (the gray ladder = the only elevation system; no shadows) ── */
  --gray-bg: #000000;        /* pure-black canvas, outermost background */
  --gray-surface: #111111;   /* cards, panels, search fields */
  --gray-surface-2: #1a1a1a; /* inputs, pressed fills, secondary rows, avatar tiles */
  --gray-surface-3: #222222; /* modal cards over a scrim */
  --gray-line: #2a2a2a;      /* every 1pt hairline / border — the only structural line */

  /* ── Text (hierarchy by brightness, never color) ── */
  --gray-text: #ffffff;      /* primary text, active glyphs, large numbers */
  --gray-text-dim: #888888;  /* secondary text, inactive labels, the user's own turn */
  --gray-text-faint: #555555;/* meta, eyebrows, placeholders, timestamps */

  /* ── Accent (white is the accent) ── */
  --gray-accent: #ffffff;            /* CTA fill, send button, active states */
  --gray-accent-ink: #000000;        /* ink on a white accent fill */
  --gray-accent-soft: rgba(255,255,255,0.10); /* tinted pill background, soft highlights */

  /* ── Signal hues. Green = operational ACTIVE/LIVE/online; the orb's blue→cyan = voice states. ── */
  --gray-green: #30d158;     /* lively green — active / live / running / connected */
  --gray-blue: #2266ff;      /* cobalt — the thinking orb / voice-state accent */
  --gray-cyan: #4cdcff;      /* cyan — the speaking orb / streaming highlight */

  /* ── The one critical hue — one element per screen, max ── */
  --gray-alert: #ff3b30;     /* record / live pip / error / per-task stop */

  /* ── Status — brightness ladder + green for ACTIVE/LIVE ── */
  --gray-active: var(--gray-green); /* active / live / running — the chromatic status */
  --gray-ok: #ffffff;
  --gray-warn: #888888;
  --gray-down: #555555;
  --gray-idle: #555555;

  /* ── Tag colors — the ONLY chromatic carve-out. Muted ≤45% sat.
       Used ONLY as a small dot for SSH-target grouping in the Console. Never in chrome/text/icons. ── */
  --gray-tag-slate: #5b7a99;
  --gray-tag-sage: #6a8f6e;
  --gray-tag-amber: #b08854;
  --gray-tag-lavender: #8a7aa6;
  --gray-tag-teal: #4a8a8a;

  /* ── The orb (the hero) — the only glow/blur/tint in the system.
       Source of truth: the captured orb-*-onblack.png. Live palette (theme.ts, LOCKED):
       idle = soft white, listening = bright white, thinking = cobalt, speaking = cyan. ── */
  --gray-orb-idle: #eef3ff;        /* soft white */
  --gray-orb-listening: #ffffff;   /* bright white — reacts to your voice */
  --gray-orb-thinking: #2266ff;    /* cobalt blue — rgb(34,102,255) */
  --gray-orb-speaking: #4cdcff;    /* cyan — rgb(76,220,255) */

  /* ── Semantic aliases ── */
  --surface-canvas: var(--gray-bg);
  --surface-card: var(--gray-surface);
  --surface-input: var(--gray-surface-2);
  --surface-modal: var(--gray-surface-3);
  --border-hairline: var(--gray-line);

  --text-primary: var(--gray-text);
  --text-secondary: var(--gray-text-dim);
  --text-meta: var(--gray-text-faint);

  --cta-fill: var(--gray-accent);
  --cta-ink: var(--gray-accent-ink);
  --pill-soft: var(--gray-accent-soft);
  --critical: var(--gray-alert);
}
