:root{
  /* ---- base: canvas + surface ladder (cool near-black) ---- */
  --canvas:#06070a;
  --surface-1:#0b0d12;
  --surface-2:#11141a;
  --surface-3:#171b23;
  --surface-4:#1f242e;
  --surface-inset:#040507;

  /* ---- hairlines ---- */
  --hairline:#1c202a;
  --hairline-strong:#282d39;
  --hairline-tertiary:#343a48;
  --hairline-bright:rgba(244,245,247,.10);

  /* ---- ink ---- */
  --ink:#f4f5f7;
  --ink-muted:#c6cad4;
  --ink-subtle:#878d9b;
  --ink-faint:#5c6270;
  --ink-inverse:#06070a;

  /* ---- accent: AURAXIS lavender-blue ---- */
  --accent-300:#b0b5ff;
  --accent-400:#8e93ff;
  --accent-500:#6b72ee;
  --accent-600:#565cd4;
  --accent-700:#3f45a6;
  --accent-tint:rgba(107,114,238,.14);
  --accent-tint-strong:rgba(107,114,238,.26);
  --accent-ink:#eff0ff;

  /* ---- semantic (data + status only) ---- */
  --positive:#3fa574;
  --positive-tint:rgba(63,165,116,.14);
  --negative:#d06a62;
  --negative-tint:rgba(208,106,98,.14);
  --caution:#c79a4b;
  --caution-tint:rgba(199,154,75,.14);
  --neutral-status:#7e8aa8;

  /* ---- data visualisation series ---- */
  --series-1:#6b72ee;
  --series-2:#5fa8a0;
  --series-3:#a9b0c0;
  --series-4:#c79a4b;
  --series-5:#7e8aa8;
  --series-6:#8e6fb5;
  --grid-line:rgba(244,245,247,.06);

  /* ---- semantic roles ---- */
  --bg-page:var(--canvas);
  --bg-card:var(--surface-1);
  --bg-card-hover:var(--surface-2);
  --bg-raised:var(--surface-3);
  --bg-field:var(--surface-2);
  --bg-field-disabled:var(--surface-1);
  --border-default:var(--hairline);
  --border-hover:var(--hairline-strong);
  --border-focus:var(--accent-500);
  --text-heading:var(--ink);
  --text-body:var(--ink-muted);
  --text-meta:var(--ink-subtle);
  --text-disabled:var(--ink-faint);
  --text-link:var(--accent-400);
  --text-on-accent:#ffffff;
  --scrim:rgba(4,5,7,.72);
  --focus-ring:0 0 0 2px var(--canvas),0 0 0 4px var(--accent-tint-strong);
}
