/* ==========================================================================
   Imperium Weekly — design tokens
   --------------------------------------------------------------------------
   Dark-native theme. The neon reads through glow halos, gradient washes and
   accent rails — the *data marks themselves* stay inside the validated
   lightness band so nothing on a chart shouts louder than the numbers.

   Categorical series palette validated with the dataviz palette validator
   against the card surface (#0e1638), dark mode:
     lightness band PASS · chroma floor PASS · normal-vision floor PASS
     contrast PASS · CVD separation PASS (slot 4<->5 sits in the 6-8 warn
     band, which is legal because every multi-series chart here ships a
     legend plus direct end labels and 2px surface gaps).
   ========================================================================== */

:root {
  color-scheme: dark;

  /* Planes -------------------------------------------------------------- */
  --bg-deep: #050919;
  --bg-plane: #070c22;
  --surface-1: #0e1638;
  --surface-2: #131d47;
  --surface-3: #1a2557;
  --surface-hover: #16204d;

  /* Ink ----------------------------------------------------------------- */
  --text-primary: #eef3ff;
  --text-secondary: #a3b3df;
  --text-muted: #6f7ea9;
  --text-faint: #4d5a80;

  /* Chrome -------------------------------------------------------------- */
  --stroke: rgba(125, 170, 255, 0.13);
  --stroke-strong: rgba(125, 170, 255, 0.24);
  --grid: rgba(130, 175, 255, 0.08);
  --axis: rgba(130, 175, 255, 0.18);

  /* Neon accents — decoration and single-series marks --------------------- */
  --accent: #00a2d8;
  --accent-bright: #34d9f5;
  --accent-glow: rgba(0, 208, 255, 0.55);
  --accent-2: #00b400;
  --accent-2-bright: #4ef07a;
  --accent-wash: rgba(0, 162, 216, 0.14);

  /* Categorical series slots (validated set, fixed order, never cycled) --- */
  --series-1: #00a2d8;
  --series-2: #e17200;
  --series-3: #ab00ff;
  --series-4: #00b400;
  --series-5: #ff006f;
  --series-6: #0057ff;
  --series-7: #cf8100;
  --series-8: #f900d2;

  /* Status — reserved, never reused as a series colour -------------------- */
  --status-good: #0ca30c;
  --status-good-ink: #35d63a;
  --status-warning: #fab219;
  --status-serious: #ec835a;
  --status-critical: #d03b3b;
  --status-critical-ink: #ff6b6b;
  --status-neutral: #6f7ea9;

  /* Geometry ------------------------------------------------------------- */
  --radius-sm: 9.2px;
  --radius: 16.1px;
  --radius-lg: 23px;
  --sidebar-w: 303.6px;
  --sidebar-w-collapsed: 78.2px;
  --topbar-h: 73.6px;

  /* Type ----------------------------------------------------------------- */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --shadow-card: 0 1px 0 rgba(255, 255, 255, 0.04) inset,
                 0 20.7px 46px -24px rgba(0, 0, 0, 0.9);
  --shadow-pop: 0 27.6px 69px -20px rgba(0, 0, 0, 0.85);
  --ease: cubic-bezier(0.4, 0.14, 0.3, 1);
}

/* A slightly cooler, higher-contrast variant for anyone who finds the
   default neon wash too soft. Toggled from the sidebar footer. */
:root[data-contrast="high"] {
  --surface-1: #0a1130;
  --text-secondary: #c2cfef;
  --text-muted: #93a2c9;
  --stroke: rgba(140, 185, 255, 0.22);
  --grid: rgba(140, 185, 255, 0.14);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
