/* CANAL PROTECT — tokens.css, généré depuis tokens.json */
@font-face{font-family:"Montserrat";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/Montserrat-600.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/Montserrat-700.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-weight:800;font-style:normal;font-display:swap;src:url("../fonts/Montserrat-800.woff2") format("woff2");}
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/Inter-400.woff2") format("woff2");}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/Inter-500.woff2") format("woff2");}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/Inter-600.woff2") format("woff2");}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/JetBrainsMono-500.woff2") format("woff2");}
:root, [data-theme="light"] {
  --navy-950: #021a33;
  --navy-900: #022549;
  --navy-800: #0c3a6b;
  --navy-700: #1c4a7a;
  --navy-100: #e3eaf3;
  --navy-50: #f3f6fa;
  --teal-700: #00786b;
  --teal-500: #00b8a4;
  --teal-300: #2fd3bf;
  --teal-100: #d9f5f1;
  --teal-50: #effbf9;
  --slate-600: #3d4f66;
  --slate-500: #5b6b80;
  --slate-300: #c4cfdb;
  --slate-200: #dde4ec;
  --bg: #ffffff;
  --surface: var(--navy-50);
  --surface-raised: #ffffff;
  --surface-brand: var(--navy-900);
  --ink: var(--navy-900);
  --ink-soft: var(--slate-600);
  --ink-muted: var(--slate-500);
  --ink-inverse: #ffffff;
  --line: var(--slate-200);
  --line-strong: var(--slate-300);
  --primary: var(--navy-900);
  --primary-hover: var(--navy-800);
  --on-primary: #ffffff;
  --accent: var(--teal-500);
  --accent-ink: var(--teal-700);
  --accent-soft: var(--teal-100);
  --focus: var(--teal-700);
  --danger: #b42318;
  --danger-soft: #fef3f2;
  --warning: #9a5b00;
  --warning-soft: #fffaeb;
  --shadow-sm: 0 1px 2px 0 rgba(2, 37, 73, 0.08);
  --shadow-md: 0 8px 24px -4px rgba(2, 37, 73, 0.12);
  --shadow-lg: 0 24px 48px -12px rgba(2, 37, 73, 0.18);
}
[data-theme="dark"] {
  --bg: var(--navy-950);
  --surface: #062849;
  --surface-raised: #0a3462;
  --surface-brand: var(--navy-800);
  --ink: #f1f5f9;
  --ink-soft: #b6c3d4;
  --ink-muted: #8fa3bb;
  --ink-inverse: #ffffff;
  --line: var(--navy-700);
  --line-strong: #2b5a8c;
  --primary: var(--teal-500);
  --primary-hover: var(--teal-300);
  --on-primary: var(--navy-900);
  --accent: var(--teal-500);
  --accent-ink: var(--teal-300);
  --accent-soft: #0b4a4e;
  --focus: var(--teal-300);
  --danger: #f97066;
  --danger-soft: #3a1416;
  --warning: #fdb022;
  --warning-soft: #3a2a08;
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.40);
  --shadow-md: 0 8px 24px -4px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, 0.55);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-mark: 18%;
  --radius-pill: 999px;
  --stroke-hairline: 1px;
  --stroke-icon: 2px;
  --stroke-focus: 2px;
  --font-display: Montserrat, "Helvetica Neue", Arial, sans-serif;
  --font-sans: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
}
.text-display{font-family:var(--font-display);font-size:64px;line-height:1.05;font-weight:800;letter-spacing:-0.025em;}
.text-h1{font-family:var(--font-display);font-size:48px;line-height:1.1;font-weight:800;letter-spacing:-0.02em;}
.text-h2{font-family:var(--font-display);font-size:36px;line-height:1.15;font-weight:700;letter-spacing:-0.015em;}
.text-h3{font-family:var(--font-display);font-size:24px;line-height:1.25;font-weight:700;}
.text-h4{font-family:var(--font-display);font-size:18px;line-height:1.35;font-weight:700;}
.text-overline{font-family:var(--font-display);font-size:12px;line-height:1.4;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;}
.text-button{font-family:var(--font-display);font-size:15px;line-height:1;font-weight:700;letter-spacing:0.01em;}
.text-body-lg{font-family:var(--font-sans);font-size:18px;line-height:1.6;font-weight:400;}
.text-body{font-family:var(--font-sans);font-size:16px;line-height:1.6;font-weight:400;}
.text-body-sm{font-family:var(--font-sans);font-size:14px;line-height:1.55;font-weight:400;}
.text-label{font-family:var(--font-sans);font-size:14px;line-height:1.3;font-weight:600;}
.text-caption{font-family:var(--font-sans);font-size:12px;line-height:1.45;font-weight:500;}
.text-hash{font-family:var(--font-mono);font-size:14px;line-height:1.5;font-weight:500;letter-spacing:0.02em;}
.text-mono-sm{font-family:var(--font-mono);font-size:12px;line-height:1.5;font-weight:500;}
