:root {
  /* ---- Base palette ---- */
  --navy-900: #012a4d;
  --navy-800: #023966; /* Primary Navy — brand core */
  --navy-700: #0a4a7d;
  --navy-600: #1f5f93;
  --navy-100: #dce7ef;
  --navy-50:  #eef3f8;

  --orange-700: #cc5c00;
  --orange-600: #ff7300; /* Accent Orange — brand core */
  --orange-500: #ff8a2e;
  --orange-100: #ffe4cc;
  --orange-50:  #fff3e6;

  --white: #ffffff;
  --gray-900: #1c2733;
  --gray-700: #3d4a58;
  --gray-500: #6b7684;
  --gray-300: #b9c2cc;
  --gray-100: #eef1f4;
  --gray-50:  #f7f9fb;

  /* Semantic reds/greens/purples used sparingly for topic-family color coding
     (seen in "12 Rights" and "Routes of Administration" card sets) */
  --coding-purple: #6b3fa0;
  --coding-purple-tint: #f2ecf9;
  --coding-red: #c8102e;
  --coding-red-tint: #fbe9ec;
  --coding-green: #1e6b3c;
  --coding-green-tint: #e9f5ee;
  --coding-pink: #d81b60;
  --coding-pink-tint: #fbe8ef;

  /* ---- Semantic aliases ---- */
  --brand-primary: var(--navy-800);
  --brand-accent: var(--orange-600);

  --surface-page: var(--white);
  --surface-sidebar: var(--navy-800);
  --surface-muted: var(--gray-50);
  --surface-card: var(--white);
  --surface-card-alt: var(--gray-50);

  --text-heading: var(--navy-800);
  --text-body: var(--gray-900);
  --text-muted: var(--gray-500);
  --text-on-dark: var(--white);
  --text-accent: var(--orange-600);

  --border-default: var(--gray-300);
  --border-subtle: var(--gray-100);
  --border-accent: var(--orange-600);

  --focus-ring: var(--orange-600);
}
