:root{
  /* Ink — near-black through mid grey */
  --ink-900:#0A0B0D; --ink-800:#14161A; --ink-700:#1C1F24; --ink-600:#333941;
  --ink-500:#4A5058; --ink-400:#6B727C; --ink-300:#8A9099; --ink-200:#B4B9C1;

  /* Neutrals — cool grey-white grounds */
  --grey-000:#FFFFFF; --grey-025:#FAFBFC; --grey-050:#F7F8FA; --grey-100:#EFF1F5;
  --grey-150:#E7EAF0; --grey-200:#E4E7EC; --grey-300:#D3D8E0; --grey-400:#B9BFC9;

  /* Accent — electric royal blue */
  --blue-700:#0B3AAE; --blue-600:#0F49D6; --blue-500:#1B5CFF; --blue-400:#5885FF;
  --blue-200:#C9D8FF; --blue-100:#E1E9FF; --blue-050:#EFF3FF;

  /* Semantic hues */
  --green-600:#0E6B4E; --green-500:#12805C; --green-100:#E4F5EE;
  --amber-600:#8F4A06; --amber-500:#B25E09; --amber-100:#FDF0E1;
  --red-600:#A0201A; --red-500:#C1281F; --red-100:#FCEAE8;

  /* ---- Semantic aliases: text ---- */
  --text-strong:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-subtle:var(--ink-300);
  --text-accent:var(--blue-500);
  --text-on-accent:var(--grey-000);
  --text-on-dark:var(--grey-000);
  --text-on-dark-muted:#A8ADB6;
  --text-inverse:var(--grey-000);

  /* ---- Semantic aliases: surface ---- */
  --surface-page:var(--grey-050);
  --surface-card:var(--grey-000);
  --surface-raised:var(--grey-000);
  --surface-sunken:var(--grey-100);
  --surface-subtle:var(--grey-050);
  --surface-inverse:var(--ink-900);
  --surface-accent:var(--blue-500);
  --surface-accent-soft:var(--blue-050);
  --surface-accent-tint:var(--blue-100);
  --surface-hover:var(--grey-100);
  --surface-active:var(--grey-150);
  --surface-disabled:var(--grey-100);

  /* ---- Semantic aliases: line ---- */
  --line-hairline:var(--grey-150);
  --line-default:var(--grey-200);
  --line-strong:var(--grey-300);
  --line-inverse:rgba(255,255,255,.14);
  --line-accent:var(--blue-500);
  --focus-ring:0 0 0 3px var(--blue-200);

  /* ---- Semantic aliases: status ---- */
  --status-success-fg:var(--green-500); --status-success-bg:var(--green-100);
  --status-warning-fg:var(--amber-500); --status-warning-bg:var(--amber-100);
  --status-danger-fg:var(--red-500);    --status-danger-bg:var(--red-100);
  --status-info-fg:var(--blue-600);     --status-info-bg:var(--blue-100);
  --status-neutral-fg:var(--ink-500);   --status-neutral-bg:var(--grey-100);

  /* ---- Interaction ---- */
  --accent-hover:var(--blue-600);
  --accent-press:var(--blue-700);
  --chart-1:var(--blue-500); --chart-2:var(--ink-900); --chart-3:var(--blue-200);
  --chart-4:var(--grey-200); --chart-5:var(--green-500);
}
