:root {
  /* Typography */
  --font-body: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-heading: var(--font-body);

  --text-size-0: 0.875rem;
  --text-size-1: 1rem;
  --text-size-2: 1.25rem;
  --text-size-3: 1.5rem;
  --text-size-4: 2rem;

  --line-height: 1.6;

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;

  /* Layout */
  --container-max: 72rem; /* ~1152px */
  --container-pad: var(--space-4);

  /* Colours (neutral baseline; sub-themes override) */
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-text: #111111;
  --color-muted: #444444;
  --color-border: #d0d0d0;

  --color-link: #0645ad;
  --color-link-hover: #0b57d0;

  /* Focus ring */
  --focus-ring: 3px solid #0b57d0;
  --focus-offset: 3px;

  /* Radius */
  --radius-1: 0.25rem;
  --radius-2: 0.5rem;

  /* Motion */
  --duration-1: 120ms;
  --duration-2: 200ms;

  /* Messages */
  --msg-status-bg: #eef7ee;
  --msg-status-border: #2e7d32;
  --msg-status-text: #123b15;

  --msg-warning-bg: #fff4e5;
  --msg-warning-border: #b25e00;
  --msg-warning-text: #4a2a00;

  --msg-error-bg: #fdecea;
  --msg-error-border: #b3261e;
  --msg-error-text: #4a0f0b;

  /* Buttons */
  --btn-radius: var(--radius-1);
  --btn-padding-y: var(--space-3);
  --btn-padding-x: var(--space-4);

  --btn-border: var(--color-border);

  --btn-primary-bg: var(--color-link);
  --btn-primary-text: #ffffff;
  --btn-primary-border: var(--color-link);

  --btn-secondary-bg: var(--color-surface);
  --btn-secondary-text: var(--color-text);
  --btn-secondary-border: var(--color-border);

  --btn-hover-bg: var(--color-link-hover);
  --btn-hover-border: var(--color-link-hover);

  --btn-disabled-bg: #f2f2f2;
  --btn-disabled-text: #666666;
  --btn-disabled-border: #d0d0d0;

  /* Tables */
  --table-border: var(--color-border);
  --table-head-bg: #f5f5f5;
  --table-row-alt-bg: #fafafa;
  --table-cell-pad-y: var(--space-3);
  --table-cell-pad-x: var(--space-4);

  /* Navigation */
  --nav-active-text: var(--color-text);
  --tabs-active-bg: #eeeeee;
  --tabs-hover-bg: #f5f5f5;
}
