:root{
  /* Brand — sampled from the supplied logo files */
  --blu-900:#22364f;
  --blu-800:#2a4364;
  --blu-700:#325078; /* primary — logo plate + card ground */
  --blu-600:#3b4a6b; /* logo wordmark ink on cream */
  --blu-500:#4a6a99;
  --blu-300:#8ea4c2;
  --blu-200:#c2cfe0;
  --blu-100:#e4eaf2;
  --blu-050:#f2f5f9;

  /* Cream / paper */
  --cream-000:#fffff4;
  --cream-100:#fdfff4; /* logo lockup ground */
  --cream-200:#f7f6e8;
  --cream-300:#ece9d6;

  /* Neutrals */
  --ink-900:#1b1f26;
  --ink-700:#3c434e;
  --ink-500:#6b7381;
  --ink-300:#a6adb8;
  --ink-200:#d6dae0;
  --ink-100:#eceef1;
  --white:#ffffff;

  /* Semantic status — ledger palette, muted to sit beside navy */
  --green-700:#2f6b4f;
  --green-100:#e3f0e8;
  --amber-700:#8a6114;
  --amber-100:#fbf0d8;
  --red-700:#96342e;
  --red-100:#f8e4e2;
  --teal-700:#1f6470;
  --teal-100:#dff0f2;

  /* Semantic aliases — prefer these in components */
  --brand:var(--blu-700);
  --brand-hover:var(--blu-800);
  --brand-active:var(--blu-900);
  --brand-subtle:var(--blu-050);
  --brand-ink:var(--blu-600);

  --surface-page:var(--cream-100);
  --surface-card:var(--white);
  --surface-raised:var(--white);
  --surface-sunken:var(--cream-200);
  --surface-inverse:var(--blu-700);

  --text-body:var(--ink-700);
  --text-strong:var(--blu-900);
  --text-muted:var(--ink-500);
  --text-inverse:var(--cream-100);
  --text-link:var(--blu-700);
  --text-link-hover:var(--blu-900);

  --border-subtle:var(--ink-200);
  --border-strong:var(--blu-200);
  --border-inverse:rgba(255,255,244,.38);

  --focus-ring:var(--blu-500);

  --success-fg:var(--green-700); --success-bg:var(--green-100);
  --warning-fg:var(--amber-700); --warning-bg:var(--amber-100);
  --danger-fg:var(--red-700);   --danger-bg:var(--red-100);
  --info-fg:var(--teal-700);    --info-bg:var(--teal-100);
}
