/* Design tokens — Ranged Analytics "charcoal terminal" system.
   Neutral near-black planes create the hierarchy; chroma is reserved for
   interaction, status, trust and plotted data. All feature CSS consumes these
   semantic variables so the material system stays consistent across routes. */

/* Self-hosted variable fonts (no external host, works offline).
   Variable axis is REQUIRED, not preferred: the view CSS uses font-weight 550
   and 650, which only render as authored against a continuous wght axis. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-var.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-var.woff2') format('woff2');
}

:root {
  color-scheme: dark;

  /* Surfaces — neutral black/charcoal, separated by measured luminance steps. */
  --bg: #070708;
  --surface: #0e0f10;
  --surface-2: #151617;
  --surface-3: #1c1e20;
  --surface-glass: rgba(14, 15, 16, 0.92);
  --hairline: #292b2e;
  --hairline-strong: #3c4044;

  /* Ink — neutral rather than blue-gray. */
  --ink: #f5f5f4;
  --ink-2: #b4b5b3;
  --ink-3: #818481;
  --ink-bright: #dddedb;

  /* Assurance cyan: actions and system confidence, never a data series. */
  --accent: #63d6e4;
  --accent-strong: #8ce6ef;
  --accent-ink: #04131a;
  --gold: #9b9d99;

  /* Categorical series — fixed order, never cycled past 8.
     UNCHANGED: revalidated against #1f1b14, ALL CHECKS PASS. */
  --series-1: #3987e5;
  --series-2: #d95926;
  --series-3: #199e70;
  --series-4: #c98500;
  --series-5: #d55181;
  --series-6: #008300;
  --series-7: #9085e9;
  --series-8: #e66767;

  /* Diverging (P&L axes): blue <-> red, neutral midpoint */
  --div-pos: #3987e5;
  --div-neg: #e66767;
  --div-mid: #3a3f4d;

  /* Sign (values only; direction x up-is-good) */
  --pos: #4adea8;
  --neg: #ff7f8d;

  /* Status (state only, never a series).
     Only --status-good moves: taking Ranged Pro's #F87171 for critical would
     collapse serious<->critical from deltaE 11.3 to 2.7 (CVD FAIL). */
  --status-good: #4adea8;
  --status-warning: #fab219;
  --status-serious: #ec835a;
  --status-critical: #d03b3b;

  /* Trust grades (their own family — never series colors)
     exact: solid green · event_time_exact: blue · backfilled: amber ·
     estimated: violet-gray (model) · approximate: amber-gray · missing: red-gray */
  --trust-exact: #4adea8;
  --trust-event-time-exact: #5b9dfa;
  --trust-backfilled: #e8b64a;
  --trust-estimated: #a78bdb;
  --trust-approximate: #c9a15a;
  --trust-missing: #f87171;

  /* Type */
  --font: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace;
  --fs-hero: clamp(3rem, 4.5vw, 4rem);
  --fs-xl: 1.5rem;
  --fs-lg: 1.125rem;
  --fs-md: 0.9375rem;
  --fs-sm: 0.8125rem;
  --fs-xs: 0.71875rem;

  /* Space / radius / elevation */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px;
  --radius: 12px;
  --radius-sm: 7px;
  --radius-pill: 999px;
  --shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
  --shadow-pop: 0 24px 64px rgba(0, 0, 0, 0.68);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.035);

  /* Motion — ease-out-expo */
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --t-fast: 120ms;
  --t-med: 200ms;
}
