:root {
  --bg-primary: #F6F6F4;      /* neutral paper, no colour cast */
  --bg-secondary: #FFFFFF;    /* cards / chart surface */
  --bg-accent: #FBF1CE;       /* a wash of the brand yellow */

  --text-primary: #17171A;
  --text-secondary: #5C5C5E;
  --text-muted: #8A8A8C;
  --text-accent: #8A6D00;     /* link ink: brand hue, stepped to stay legible */

  --border: rgba(23, 23, 26, 0.10);
  --border-strong: rgba(23, 23, 26, 0.20);

  --brand-primary: #FFD60A;   /* Verto yellow: fills, active states, focus */
  --brand-primary-hover: #E6C000;
  --on-brand: #17171A;        /* dark ink on a yellow fill */

  /* Chart chrome */
  --chart-grid: #E8E8E4;
  --chart-axis: #C8C8C4;
  --chart-neutral: #B0B0AC;   /* non-urgent data ink */
  --chart-accent: #8A6D00;    /* lines/curves, where a yellow stroke would vanish */

  /* Severity ordinal ramp, urgent -> safe. One hue (the brand yellow), with
     lightness carrying the order, so it survives colour-vision deficiency and
     greyscale print. Capped at the light end: pure yellow cannot clear the 2:1
     floor against white, so the ramp stops short of it. */
  --sev-1: #5C4200;
  --sev-2: #7D5A00;
  --sev-3: #9E7300;
  --sev-4: #BF8C00;
  --sev-5: #DFA800;

  /* Categorical slots, for identity (not magnitude). */
  --cat-1: #B58600;
  --cat-2: #4A5A78;

  --shadow-color: rgba(23, 23, 26, 0.07);
}
