/** Jetons Halo, alignés sur les variables canoniques de tcf-app.pen. */
:root {
  --background: #ffffff; --foreground: #101214;
  --card: #ffffff; --card-foreground: #101214;
  --popover: #ffffff; --popover-foreground: #101214;
  --primary: #3160b4; --primary-foreground: #ffffff;
  --secondary: #edf2ff; --secondary-foreground: #343a40;
  --muted: #edf2ff; --muted-foreground: #9aa0a6;
  --accent: #edf2ff; --accent-foreground: #2a4b8c;
  --destructive: #b3261e; --destructive-foreground: #ffffff;
  --border: #cfd8e8; --input: #cfd8e8; --ring: #3160b4;
  --sidebar: #ffffff; --sidebar-foreground: #9aa0a6;
  --sidebar-primary: #edf2ff; --sidebar-primary-foreground: #2a4b8c;
  --sidebar-border: #cfd8e8; --sidebar-accent: #edf2ff;
  --sidebar-accent-foreground: #2a4b8c; --sidebar-ring: #3160b4;
  --white: #ffffff; --black: #000000;
  --brand-gold: #c9a227; --brand-navy: #1a3a6b;
  --brand-navy-deep: #0f2549; --brand-navy-mid: #2d5a9e; --brand-red: #d52b1e;
  --brand-green: #059669; --brand-green-strong: #047857; --surface-alt: #f8f9fb;
  --color-success: #e3f5ec; --color-success-foreground: #343a40; --success-accent: #2e9e68;
  --color-warning: #fdf3e2; --color-warning-foreground: #9a6212;
  --color-error: #fdecec; --color-error-foreground: #b3261e;
  --color-info: #e1f5fc; --color-info-foreground: #1f6b80;
  --font-primary: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-secondary: var(--font-primary);
  --font-size-body: 16px; --line-height-body: 1.5;
  --font-size-secondary: 14px; --line-height-secondary: 1.43;
  --radius-xs: 6px; --radius-m: 24px; --radius-l: 40px; --radius-pill: 999px;
  --space-1: 8px; --space-2: 16px; --space-3: 24px;
  --space-4: 32px; --space-5: 40px; --space-6: 48px;
  --shadow-floating: 0 4px 16px rgba(16, 18, 20, 0.12);

  /* Alias historiques : tous les consommateurs restent reliés au contrat Halo. */
  --surface-page: var(--background); --surface-card: var(--card); --surface-raised: var(--popover);
  --ink-heading: var(--foreground); --ink-body: var(--secondary-foreground); --ink-muted: var(--muted-foreground);
  --action: var(--primary); --action-ink: var(--primary-foreground);
  --action-tint: var(--accent); --action-tint-ink: var(--accent-foreground); --focus-ring: var(--ring);
  --hairline: var(--border);
  --success-fill: var(--color-success); --success-ink: var(--color-success-foreground);
  --warning-fill: var(--color-warning); --warning-ink: var(--color-warning-foreground);
  --error-fill: var(--color-error); --error-ink: var(--color-error-foreground);
  --info-fill: var(--color-info); --info-ink: var(--color-info-foreground);
}

/* Le sombre n'est activé que par un choix explicite. */
:root[data-theme='dark'] {
  --background: #14161a; --foreground: #ecedef;
  --card: #1b1e23; --card-foreground: #ecedef;
  --popover: #1b1e23; --popover-foreground: #ecedef;
  --primary: #6e9be8; --primary-foreground: #101214;
  --secondary: #232830; --secondary-foreground: #c3c7cc;
  --muted: #232830; --muted-foreground: #8a9099;
  --accent: #232830; --accent-foreground: #a9c4f0;
  --border: #2b3038; --input: #2b3038; --ring: #6e9be8;
  --sidebar: #1b1e23; --sidebar-foreground: #8a9099;
  --sidebar-primary: #232830; --sidebar-primary-foreground: #a9c4f0;
  --sidebar-border: #2b3038; --sidebar-accent: #232830;
  --sidebar-accent-foreground: #a9c4f0; --sidebar-ring: #6e9be8;
  --color-success: #16342a; --color-success-foreground: #5fd3a0; --success-accent: #5fd3a0;
  --color-warning: #3a2e12; --color-warning-foreground: #e8b667;
  --color-error: #3a1e1c; --color-error-foreground: #f08a82;
  --color-info: #16323b; --color-info-foreground: #7fd3e8;
  --brand-navy-deep: #0b1a33; --brand-navy-mid: #7aa3e0; --brand-red: #e4584d;
  --brand-green: #35b183; --brand-green-strong: #2a8f6a; --surface-alt: #1b1e23;
  --shadow-floating: 0 4px 16px rgba(0, 0, 0, 0.5);
}
