:root {
  color-scheme: light;
  --nl-color-primary: #173f70;
  --nl-color-primary-strong: #102f57;
  --nl-color-secondary: #246da8;
  --nl-color-accent: #c95f52;
  --nl-color-focus: #d99a2b;
  --nl-color-success: #2f855a;
  --nl-color-success-soft: #edf8f1;
  --nl-color-warning: #a86d16;
  --nl-color-warning-soft: #fff7e6;
  --nl-color-danger: #b54d43;
  --nl-color-danger-soft: #fff1ef;
  --nl-color-info: #246da8;
  --nl-color-info-soft: #edf5fb;
  --nl-color-ink: #22364a;
  --nl-color-muted: #64768a;
  --nl-color-subtle: #8190a0;
  --nl-color-line: #d4e0e8;
  --nl-color-line-strong: #bdceda;
  --nl-color-surface: #ffffff;
  --nl-color-surface-soft: #f7fafc;
  --nl-color-background: #edf4f7;
  --nl-color-overlay: rgba(15, 35, 56, .44);
  --nl-family-read: #3f8a66;
  --nl-family-listen: #3d76b5;
  --nl-family-write: #b56e18;
  --nl-family-understand: #76579b;
  --nl-family-notation: #347d68;
  --nl-family-rhythm: #28778a;
  --nl-family-ear: #356fa3;
  --nl-family-harmony: #705494;
  --nl-family-culture: #95603a;
  --nl-family-practice: #2f7566;
  --nl-family-accent: var(--nl-color-secondary);
  --nl-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --nl-font-display: var(--nl-font);
  --nl-text-xs: .75rem;
  --nl-text-sm: .875rem;
  --nl-text-md: 1rem;
  --nl-text-lg: 1.25rem;
  --nl-text-xl: clamp(1.55rem, 3vw, 2.15rem);
  --nl-space-1: 4px;
  --nl-space-2: 8px;
  --nl-space-3: 12px;
  --nl-space-4: 16px;
  --nl-space-5: 20px;
  --nl-space-6: 28px;
  --nl-space-7: 36px;
  --nl-radius-sm: 8px;
  --nl-radius-control: 11px;
  --nl-radius-card: 15px;
  --nl-radius-panel: 19px;
  --nl-radius-pill: 999px;
  --nl-shadow-control: 0 4px 12px rgba(16, 47, 87, .08);
  --nl-shadow-card: 0 7px 20px rgba(16, 47, 87, .07);
  --nl-shadow-panel: 0 14px 36px rgba(16, 47, 87, .10);
  --nl-focus-ring: 0 0 0 4px color-mix(in srgb, var(--nl-color-focus) 28%, transparent);
  --nl-content-max: 1180px;
  --nl-content-wide: 1320px;
  --nl-exercise-max: 1040px;
  --nl-control-min: 44px;
  --nl-transition: 150ms ease;
  --nl-safe-left: max(10px, env(safe-area-inset-left));
  --nl-safe-right: max(10px, env(safe-area-inset-right));

  /* Vocabulaire sémantique du lot 03. Ces alias évitent aux composants de
     connaître le nom technique de chaque nuance. */
  --nl-primary: var(--nl-color-primary);
  --nl-primary-strong: var(--nl-color-primary-strong);
  --nl-secondary: var(--nl-color-secondary);
  --nl-accent: var(--nl-color-accent);
  --nl-text: var(--nl-color-ink);
  --nl-text-muted: var(--nl-color-muted);
  --nl-text-faint: var(--nl-color-subtle);
  --nl-surface-soft: var(--nl-color-surface-soft);
  --nl-surface-muted: #eef3f6;
  --nl-line-strong: var(--nl-color-line-strong);
  --nl-font-sans: var(--nl-font);
  --nl-radius-md: var(--nl-radius-control);
  --nl-radius-lg: var(--nl-radius-card);
  --nl-radius-xl: var(--nl-radius-panel);
  --nl-shadow-sm: var(--nl-shadow-card);
  --nl-shell-max: var(--nl-content-wide);
  --nl-control-min-height: var(--nl-control-min);
  --nl-transition-fast: var(--nl-transition);
  --nl-focus-width: 3px;
  --nl-focus-offset: 3px;

  /* Alias conservés pour les feuilles historiques. */
  --nl-navy: var(--nl-color-primary);
  --nl-blue: var(--nl-color-secondary);
  --nl-coral: var(--nl-color-accent);
  --nl-gold: var(--nl-color-focus);
  --nl-green: var(--nl-color-success);
  --nl-ink: var(--nl-color-ink);
  --nl-muted: var(--nl-color-muted);
  --nl-bg: var(--nl-color-background);
  --nl-surface: var(--nl-color-surface);
  --nl-line: var(--nl-color-line);
  --nl-focus: var(--nl-color-focus);
  --nl-radius: var(--nl-radius-panel);
  --nl-shadow: var(--nl-shadow-panel);
  --notalix-navy: var(--nl-color-primary);
  --notalix-blue: var(--nl-color-secondary);
  --notalix-coral: var(--nl-color-accent);
  --notalix-gold: var(--nl-color-focus);
  --notalix-green: var(--nl-color-success);
  --notalix-ink: var(--nl-color-ink);
  --notalix-muted: var(--nl-color-muted);
  --notalix-bg: var(--nl-color-background);
  --notalix-line: var(--nl-color-line);
  --notalix-surface: var(--nl-color-surface);
  --notalix-shadow: var(--nl-shadow-panel);
}

body[data-notalyr-family="read"] { --nl-family-accent: var(--nl-family-read); }
body[data-notalyr-family="listen"] { --nl-family-accent: var(--nl-family-listen); }
body[data-notalyr-family="write"] { --nl-family-accent: var(--nl-family-write); }
body[data-notalyr-family="understand"] { --nl-family-accent: var(--nl-family-understand); }
body[data-notalyr-family="notation"] { --nl-family-accent: var(--nl-family-notation); }
body[data-notalyr-family="rhythm"] { --nl-family-accent: var(--nl-family-rhythm); }
body[data-notalyr-family="ear"] { --nl-family-accent: var(--nl-family-ear); }
body[data-notalyr-family="harmony"] { --nl-family-accent: var(--nl-family-harmony); }
body[data-notalyr-family="culture"] { --nl-family-accent: var(--nl-family-culture); }
body[data-notalyr-family="practice"] { --nl-family-accent: var(--nl-family-practice); }
