/* Core palette + light-theme semantic aliases */
:root{
--brand-50:#E6F2F1;--brand-100:#C6E3E1;--brand-200:#9ACFCC;--brand-300:#66B4B0;--brand-400:#2F918D;--brand-500:#0F6E6B;--brand-600:#0C5B58;--brand-700:#094745;--brand-800:#063432;--brand-900:#042220;
--neutral-0:#FFFFFF;--neutral-25:#FBFAF8;--neutral-50:#F6F5F2;--neutral-100:#EDEBE7;--neutral-200:#DEDBD5;--neutral-300:#C6C2BA;--neutral-400:#A5A096;--neutral-500:#827D73;--neutral-600:#635F57;--neutral-700:#4A463F;--neutral-800:#33302B;--neutral-900:#211F1B;--neutral-950:#14130F;

/* brand aliases */
--color-primary:var(--brand-500);--color-primary-hover:var(--brand-600);--color-primary-pressed:var(--brand-700);--color-on-primary:#FFFFFF;--color-primary-subtle:var(--brand-50);--color-primary-border:var(--brand-200);
/* Brand colour as TEXT on a page or card surface. Distinct from --color-primary, which is a fill
   that needs near-black ink on it in dark — the same value cannot do both jobs. */
--color-primary-text:var(--brand-500);
--color-on-primary-subtle:var(--brand-600);

/* surfaces */
--surface-code:var(--neutral-950);--text-on-code:var(--neutral-50);
--surface-bg:var(--neutral-50);--surface-card:var(--neutral-0);--surface-raised:var(--neutral-0);--surface-sunken:var(--neutral-100);--surface-overlay:rgba(33,48,43,0.48);--surface-inverse:var(--neutral-900);

/* text */
--text-primary:var(--neutral-900);--text-secondary:var(--neutral-600);--text-tertiary:#6B665D;--text-disabled:var(--neutral-400);--text-inverse:var(--neutral-0);--text-link:var(--brand-600);--text-link-hover:var(--brand-700);

/* border + focus */
--border-subtle:var(--neutral-100);--border-default:var(--neutral-200);--border-strong:var(--neutral-300);--border-inverse:rgba(255,255,255,0.24);
/* Interactive control edges (fields, selects, toggles, secondary buttons) are a UI component
   boundary, so WCAG 2.2 1.4.11 wants 3:1 — --border-strong is 1.78:1 on a card and fails.
   3.67:1 on --surface-card, 3.37 on --surface-bg, 3.08 on --surface-sunken. Decorative card
   and divider borders keep --border-default/--border-subtle: they carry no information. */
--border-control:#8A857B;
--color-focus:#0B5F8A;--focus-ring-width:3px;--focus-ring-offset:2px;
--scrim:rgba(20,19,15,0.44)
}
