/* Sogoma, jetons v4.0.2 (2026-10-30). Fichier fabrique par kit/tokens/build_tokens.py : ne pas modifier a la main.
   Jour est le theme par defaut. Nuit suit prefers-color-scheme, sauf data-theme="day"; data-theme="night" le force.
   Contraste eleve : data-contrast="more" ou prefers-contrast: more (surcouche du Jour). */

:root, [data-theme="day"], [data-theme="light"] {
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-quiet: #f4f7f5;
  --mist: #d6ebe3;
  --ink: #13242b;
  --ink-muted: #4b5d63;
  --oasis: #0e6a62;
  --on-oasis: #ffffff;
  --oasis-deep: #0a3f3b;
  --on-oasis-deep: #ffffff;
  --dawn: #f0a437;
  --on-dawn: #13242b;
  --dawn-ink: #8a5b1a;
  --dawn-soft: #fef6eb;
  --line: #c9d6d3;
  --border: #7a8e8b;
  --focus: #0e6a62;
  --success: #0e6a62;
  --success-soft: #f1f6f6;
  --error: #a33a2b;
  --error-soft: #f6ebea;
  --locked: #6f8380;
  --locked-soft: #eef2f0;
  --scrim: rgba(19,36,43,0.45);
  --shadow-sheet: 0 12px 32px rgba(10,63,59,.14);
  --chart-watch-1-1: var(--oasis-600);
  --chart-watch-1-1-outline: 0;
  --chart-watch-1-1-pattern: none;
  --chart-watch-1-gap: 0px;
  --chart-watch-2-1: var(--oasis-100);
  --chart-watch-2-1-outline: 1;
  --chart-watch-2-1-pattern: none;
  --chart-watch-2-2: var(--oasis-900);
  --chart-watch-2-2-outline: 0;
  --chart-watch-2-2-pattern: none;
  --chart-watch-2-gap: 0px;
  --chart-watch-3-1: var(--oasis-100);
  --chart-watch-3-1-outline: 1;
  --chart-watch-3-1-pattern: dots;
  --chart-watch-3-2: var(--oasis-500);
  --chart-watch-3-2-outline: 0;
  --chart-watch-3-2-pattern: none;
  --chart-watch-3-3: var(--oasis-900);
  --chart-watch-3-3-outline: 0;
  --chart-watch-3-3-pattern: none;
  --chart-watch-3-gap: 0px;
  --chart-watch-4-1: var(--oasis-200);
  --chart-watch-4-1-outline: 1;
  --chart-watch-4-1-pattern: dots;
  --chart-watch-4-2: var(--oasis-400);
  --chart-watch-4-2-outline: 0;
  --chart-watch-4-2-pattern: hatch;
  --chart-watch-4-3: var(--oasis-600);
  --chart-watch-4-3-outline: 0;
  --chart-watch-4-3-pattern: none;
  --chart-watch-4-4: var(--oasis-900);
  --chart-watch-4-4-outline: 0;
  --chart-watch-4-4-pattern: none;
  --chart-watch-4-gap: 0px;
  --chart-workshop-1-1: var(--oasis-600);
  --chart-workshop-1-1-outline: 0;
  --chart-workshop-1-1-pattern: none;
  --chart-workshop-1-gap: 0px;
  --chart-workshop-2-1: var(--oasis-100);
  --chart-workshop-2-1-outline: 1;
  --chart-workshop-2-1-pattern: none;
  --chart-workshop-2-2: var(--oasis-900);
  --chart-workshop-2-2-outline: 0;
  --chart-workshop-2-2-pattern: none;
  --chart-workshop-2-gap: 0px;
  --chart-workshop-3-1: var(--oasis-100);
  --chart-workshop-3-1-outline: 1;
  --chart-workshop-3-1-pattern: none;
  --chart-workshop-3-2: var(--oasis-500);
  --chart-workshop-3-2-outline: 0;
  --chart-workshop-3-2-pattern: dots;
  --chart-workshop-3-3: var(--oasis-900);
  --chart-workshop-3-3-outline: 0;
  --chart-workshop-3-3-pattern: none;
  --chart-workshop-3-gap: 2px;
  --chart-workshop-4-1: var(--oasis-200);
  --chart-workshop-4-1-outline: 1;
  --chart-workshop-4-1-pattern: dots;
  --chart-workshop-4-2: var(--oasis-400);
  --chart-workshop-4-2-outline: 0;
  --chart-workshop-4-2-pattern: hatch;
  --chart-workshop-4-3: var(--oasis-600);
  --chart-workshop-4-3-outline: 0;
  --chart-workshop-4-3-pattern: cross;
  --chart-workshop-4-4: var(--oasis-900);
  --chart-workshop-4-4-outline: 0;
  --chart-workshop-4-4-pattern: none;
  --chart-workshop-4-gap: 2px;
  --chart-certainty-notdue: var(--oasis-100);
  --chart-certainty-notdue-outline: 1;
  --chart-certainty-notdue-pattern: none;
  --chart-certainty-promised: var(--oasis-400);
  --chart-certainty-promised-outline: 0;
  --chart-certainty-promised-pattern: none;
  --chart-certainty-overdue: var(--oasis-800);
  --chart-certainty-overdue-outline: 0;
  --chart-certainty-overdue-pattern: hatch;
  --chart-div-1: var(--oasis-800);
  --chart-div-2: var(--oasis-400);
  --chart-div-3: var(--mist-100);
  --chart-div-4: var(--dawn-700);
  --chart-div-5: var(--dawn-800);
  --chart-div-3-outline: 1;
  --chart-axis: var(--border);
  --chart-grid: var(--line);
  --chart-label: var(--ink-muted);
  --status-ok: var(--oasis-600);
  --status-ok-pattern: none;
  --status-surveillance: var(--mist-200);
  --status-surveillance-pattern: hatch;
  --status-incident: var(--error);
  --status-incident-pattern: none;
  --status-unknown: var(--mist-100);
  --status-unknown-pattern: dots;
  color-scheme: light;
}

/* Surcouche Contraste (Jour). Alias v3 : data-theme="contrast". Placee avant Nuit : Nuit l'emporte. */
[data-contrast="more"], [data-theme="contrast"] {
  --ink: #0a1418;
  --oasis: #054a44;
  --oasis-deep: #032b28;
  --line: #5a6f6c;
  --border: #27383d;
  --focus: #054a44;
  --on-oasis: #ffffff;
  --on-oasis-deep: #ffffff;
  --on-dawn: #0a1418;
  --shadow-sheet: none;
}

@media (prefers-contrast: more) { :root:not([data-contrast="off"]) {
  --ink: #0a1418;
  --oasis: #054a44;
  --oasis-deep: #032b28;
  --line: #5a6f6c;
  --border: #27383d;
  --focus: #054a44;
  --on-oasis: #ffffff;
  --on-oasis-deep: #ffffff;
  --on-dawn: #0a1418;
  --shadow-sheet: none;
} }

/* Alias v3 : data-theme="dark" vaut Nuit. */
@media (prefers-color-scheme: dark) { :root:not([data-theme="day"]):not([data-theme="light"]):not([data-theme="contrast"]) {
  --surface: #0d191e;
  --surface-raised: #15262d;
  --surface-quiet: #101e23;
  --mist: #1c3a36;
  --ink: #edf4f1;
  --ink-muted: #a6b8b4;
  --oasis: #57c2b4;
  --on-oasis: #06211e;
  --oasis-deep: #2f6e66;
  --on-oasis-deep: #edf4f1;
  --dawn: #f4b557;
  --on-dawn: #13242b;
  --dawn-ink: #f4b557;
  --dawn-soft: #2b2110;
  --line: #26393f;
  --border: #6f8c8a;
  --focus: #57c2b4;
  --success: #57c2b4;
  --success-soft: #12302c;
  --error: #e59a8e;
  --error-soft: #2e1715;
  --locked: #6f8c8a;
  --locked-soft: #101e23;
  --scrim: rgba(0,0,0,0.60);
  --shadow-sheet: none;
  --chart-watch-1-1: var(--oasis-300);
  --chart-watch-1-1-outline: 0;
  --chart-watch-1-1-pattern: none;
  --chart-watch-1-gap: 0px;
  --chart-watch-2-1: var(--oasis-100);
  --chart-watch-2-1-outline: 0;
  --chart-watch-2-1-pattern: none;
  --chart-watch-2-2: var(--oasis-900);
  --chart-watch-2-2-outline: 1;
  --chart-watch-2-2-pattern: none;
  --chart-watch-2-gap: 0px;
  --chart-watch-3-1: var(--oasis-100);
  --chart-watch-3-1-outline: 0;
  --chart-watch-3-1-pattern: dots;
  --chart-watch-3-2: var(--oasis-500);
  --chart-watch-3-2-outline: 0;
  --chart-watch-3-2-pattern: none;
  --chart-watch-3-3: var(--oasis-900);
  --chart-watch-3-3-outline: 1;
  --chart-watch-3-3-pattern: none;
  --chart-watch-3-gap: 0px;
  --chart-watch-4-1: var(--oasis-100);
  --chart-watch-4-1-outline: 0;
  --chart-watch-4-1-pattern: dots;
  --chart-watch-4-2: var(--oasis-300);
  --chart-watch-4-2-outline: 0;
  --chart-watch-4-2-pattern: hatch;
  --chart-watch-4-3: var(--oasis-500);
  --chart-watch-4-3-outline: 0;
  --chart-watch-4-3-pattern: none;
  --chart-watch-4-4: var(--oasis-800);
  --chart-watch-4-4-outline: 1;
  --chart-watch-4-4-pattern: none;
  --chart-watch-4-gap: 0px;
  --chart-workshop-1-1: var(--oasis-300);
  --chart-workshop-1-1-outline: 0;
  --chart-workshop-1-1-pattern: none;
  --chart-workshop-1-gap: 0px;
  --chart-workshop-2-1: var(--oasis-100);
  --chart-workshop-2-1-outline: 0;
  --chart-workshop-2-1-pattern: none;
  --chart-workshop-2-2: var(--oasis-900);
  --chart-workshop-2-2-outline: 1;
  --chart-workshop-2-2-pattern: none;
  --chart-workshop-2-gap: 0px;
  --chart-workshop-3-1: var(--oasis-100);
  --chart-workshop-3-1-outline: 0;
  --chart-workshop-3-1-pattern: none;
  --chart-workshop-3-2: var(--oasis-500);
  --chart-workshop-3-2-outline: 0;
  --chart-workshop-3-2-pattern: dots;
  --chart-workshop-3-3: var(--oasis-900);
  --chart-workshop-3-3-outline: 1;
  --chart-workshop-3-3-pattern: none;
  --chart-workshop-3-gap: 2px;
  --chart-workshop-4-1: var(--oasis-100);
  --chart-workshop-4-1-outline: 0;
  --chart-workshop-4-1-pattern: dots;
  --chart-workshop-4-2: var(--oasis-300);
  --chart-workshop-4-2-outline: 0;
  --chart-workshop-4-2-pattern: hatch;
  --chart-workshop-4-3: var(--oasis-500);
  --chart-workshop-4-3-outline: 0;
  --chart-workshop-4-3-pattern: cross;
  --chart-workshop-4-4: var(--oasis-800);
  --chart-workshop-4-4-outline: 1;
  --chart-workshop-4-4-pattern: none;
  --chart-workshop-4-gap: 2px;
  --chart-certainty-notdue: var(--oasis-800);
  --chart-certainty-notdue-outline: 1;
  --chart-certainty-notdue-pattern: none;
  --chart-certainty-promised: var(--oasis-500);
  --chart-certainty-promised-outline: 0;
  --chart-certainty-promised-pattern: none;
  --chart-certainty-overdue: var(--oasis-200);
  --chart-certainty-overdue-outline: 0;
  --chart-certainty-overdue-pattern: hatch;
  --chart-div-1: var(--oasis-100);
  --chart-div-2: var(--oasis-300);
  --chart-div-3: var(--mist-600);
  --chart-div-4: var(--dawn-400);
  --chart-div-5: var(--dawn-600);
  --chart-div-3-outline: 1;
  --chart-axis: var(--border);
  --chart-grid: var(--line);
  --chart-label: var(--ink-muted);
  --status-ok: var(--oasis);
  --status-ok-pattern: none;
  --status-surveillance: var(--mist);
  --status-surveillance-pattern: hatch;
  --status-incident: var(--error);
  --status-incident-pattern: none;
  --status-unknown: var(--surface-raised);
  --status-unknown-pattern: dots;
  color-scheme: dark;
} }

[data-theme="night"], [data-theme="dark"] {
  --surface: #0d191e;
  --surface-raised: #15262d;
  --surface-quiet: #101e23;
  --mist: #1c3a36;
  --ink: #edf4f1;
  --ink-muted: #a6b8b4;
  --oasis: #57c2b4;
  --on-oasis: #06211e;
  --oasis-deep: #2f6e66;
  --on-oasis-deep: #edf4f1;
  --dawn: #f4b557;
  --on-dawn: #13242b;
  --dawn-ink: #f4b557;
  --dawn-soft: #2b2110;
  --line: #26393f;
  --border: #6f8c8a;
  --focus: #57c2b4;
  --success: #57c2b4;
  --success-soft: #12302c;
  --error: #e59a8e;
  --error-soft: #2e1715;
  --locked: #6f8c8a;
  --locked-soft: #101e23;
  --scrim: rgba(0,0,0,0.60);
  --shadow-sheet: none;
  --chart-watch-1-1: var(--oasis-300);
  --chart-watch-1-1-outline: 0;
  --chart-watch-1-1-pattern: none;
  --chart-watch-1-gap: 0px;
  --chart-watch-2-1: var(--oasis-100);
  --chart-watch-2-1-outline: 0;
  --chart-watch-2-1-pattern: none;
  --chart-watch-2-2: var(--oasis-900);
  --chart-watch-2-2-outline: 1;
  --chart-watch-2-2-pattern: none;
  --chart-watch-2-gap: 0px;
  --chart-watch-3-1: var(--oasis-100);
  --chart-watch-3-1-outline: 0;
  --chart-watch-3-1-pattern: dots;
  --chart-watch-3-2: var(--oasis-500);
  --chart-watch-3-2-outline: 0;
  --chart-watch-3-2-pattern: none;
  --chart-watch-3-3: var(--oasis-900);
  --chart-watch-3-3-outline: 1;
  --chart-watch-3-3-pattern: none;
  --chart-watch-3-gap: 0px;
  --chart-watch-4-1: var(--oasis-100);
  --chart-watch-4-1-outline: 0;
  --chart-watch-4-1-pattern: dots;
  --chart-watch-4-2: var(--oasis-300);
  --chart-watch-4-2-outline: 0;
  --chart-watch-4-2-pattern: hatch;
  --chart-watch-4-3: var(--oasis-500);
  --chart-watch-4-3-outline: 0;
  --chart-watch-4-3-pattern: none;
  --chart-watch-4-4: var(--oasis-800);
  --chart-watch-4-4-outline: 1;
  --chart-watch-4-4-pattern: none;
  --chart-watch-4-gap: 0px;
  --chart-workshop-1-1: var(--oasis-300);
  --chart-workshop-1-1-outline: 0;
  --chart-workshop-1-1-pattern: none;
  --chart-workshop-1-gap: 0px;
  --chart-workshop-2-1: var(--oasis-100);
  --chart-workshop-2-1-outline: 0;
  --chart-workshop-2-1-pattern: none;
  --chart-workshop-2-2: var(--oasis-900);
  --chart-workshop-2-2-outline: 1;
  --chart-workshop-2-2-pattern: none;
  --chart-workshop-2-gap: 0px;
  --chart-workshop-3-1: var(--oasis-100);
  --chart-workshop-3-1-outline: 0;
  --chart-workshop-3-1-pattern: none;
  --chart-workshop-3-2: var(--oasis-500);
  --chart-workshop-3-2-outline: 0;
  --chart-workshop-3-2-pattern: dots;
  --chart-workshop-3-3: var(--oasis-900);
  --chart-workshop-3-3-outline: 1;
  --chart-workshop-3-3-pattern: none;
  --chart-workshop-3-gap: 2px;
  --chart-workshop-4-1: var(--oasis-100);
  --chart-workshop-4-1-outline: 0;
  --chart-workshop-4-1-pattern: dots;
  --chart-workshop-4-2: var(--oasis-300);
  --chart-workshop-4-2-outline: 0;
  --chart-workshop-4-2-pattern: hatch;
  --chart-workshop-4-3: var(--oasis-500);
  --chart-workshop-4-3-outline: 0;
  --chart-workshop-4-3-pattern: cross;
  --chart-workshop-4-4: var(--oasis-800);
  --chart-workshop-4-4-outline: 1;
  --chart-workshop-4-4-pattern: none;
  --chart-workshop-4-gap: 2px;
  --chart-certainty-notdue: var(--oasis-800);
  --chart-certainty-notdue-outline: 1;
  --chart-certainty-notdue-pattern: none;
  --chart-certainty-promised: var(--oasis-500);
  --chart-certainty-promised-outline: 0;
  --chart-certainty-promised-pattern: none;
  --chart-certainty-overdue: var(--oasis-200);
  --chart-certainty-overdue-outline: 0;
  --chart-certainty-overdue-pattern: hatch;
  --chart-div-1: var(--oasis-100);
  --chart-div-2: var(--oasis-300);
  --chart-div-3: var(--mist-600);
  --chart-div-4: var(--dawn-400);
  --chart-div-5: var(--dawn-600);
  --chart-div-3-outline: 1;
  --chart-axis: var(--border);
  --chart-grid: var(--line);
  --chart-label: var(--ink-muted);
  --status-ok: var(--oasis);
  --status-ok-pattern: none;
  --status-surveillance: var(--mist);
  --status-surveillance-pattern: hatch;
  --status-incident: var(--error);
  --status-incident-pattern: none;
  --status-unknown: var(--surface-raised);
  --status-unknown-pattern: dots;
  color-scheme: dark;
}

:root {
  --oasis-50: #f1f6f6;
  --oasis-100: #d6ebe3;
  --oasis-200: #adccca;
  --oasis-300: #82b2ad;
  --oasis-400: #569791;
  --oasis-500: #307f78;
  --oasis-600: #0e6a62;
  --oasis-700: #0b564f;
  --oasis-800: #0a3f3b;
  --oasis-900: #06312e;
  --dawn-50: #fef6eb;
  --dawn-100: #fbe9cf;
  --dawn-200: #f8d7a7;
  --dawn-300: #f5c37b;
  --dawn-400: #f4b557;
  --dawn-500: #f0a437;
  --dawn-600: #cf8d2e;
  --dawn-700: #ab7324;
  --dawn-800: #8a5b1a;
  --dawn-900: #623f0f;
  --mist-50: #f4f7f5;
  --mist-100: #e9efec;
  --mist-200: #c9d6d3;
  --mist-300: #a9b9b5;
  --mist-400: #7a8e8b;
  --mist-500: #5f7275;
  --mist-600: #4b5d63;
  --mist-700: #35474d;
  --mist-800: #22343a;
  --mist-900: #13242b;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  --size-touch: 44px;
  --size-primary: 48px;
  --size-measure: 560px;
  --size-page: 1120px;
  --font-voice: "Newsreader", "Newsreader Fallback Noto", "Newsreader Fallback DejaVu", Georgia, serif;
  --font-voice-display: "Newsreader Display", "Newsreader", "Newsreader Fallback Noto", "Newsreader Fallback DejaVu", Georgia, serif;
  --font-hand: "Inter", "Inter Fallback Noto", "Inter Fallback DejaVu", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "JetBrains Mono Fallback DejaVu", "JetBrains Mono Fallback Noto", ui-monospace, monospace;
  --ref-font-budget-morning: 120KB;
  --ref-font-budget-maison: 121.6KB;
  --ref-font-budget-statement: 149.1KB;
  --ref-font-budget-apk: 834.7KB;
  --ref-font-budget-hidayah: null;
  --type-display-family: var(--font-voice-display);
  --type-display-weight: 500;
  --type-display-size: 44px;
  --type-display-line: 50px;
  --type-display-tracking: -0.01em;
  --type-voice-lg-family: var(--font-voice);
  --type-voice-lg-weight: 500;
  --type-voice-lg-size: 32px;
  --type-voice-lg-line: 38px;
  --type-voice-md-family: var(--font-voice);
  --type-voice-md-weight: 400;
  --type-voice-md-size: 24px;
  --type-voice-md-line: 32px;
  --type-voice-sm-family: var(--font-voice);
  --type-voice-sm-weight: 400;
  --type-voice-sm-size: 18px;
  --type-voice-sm-line: 28px;
  --type-voice-xs-family: var(--font-voice);
  --type-voice-xs-weight: 400;
  --type-voice-xs-size: 16px;
  --type-voice-xs-line: 24px;
  --type-heading-family: var(--font-hand);
  --type-heading-weight: 600;
  --type-heading-size: 20px;
  --type-heading-line: 28px;
  --type-body-family: var(--font-hand);
  --type-body-weight: 400;
  --type-body-size: 16px;
  --type-body-line: 26px;
  --type-small-family: var(--font-hand);
  --type-small-weight: 400;
  --type-small-size: 14px;
  --type-small-line: 22px;
  --type-label-family: var(--font-hand);
  --type-label-weight: 500;
  --type-label-size: 14px;
  --type-label-line: 20px;
  --type-label-tracking: 0.005em;
  --type-amount-family: var(--font-hand);
  --type-amount-weight: 600;
  --type-amount-size: 28px;
  --type-amount-line: 32px;
  --type-amount-numeric: tabular-nums;
  --type-amount-sm-family: var(--font-hand);
  --type-amount-sm-weight: 500;
  --type-amount-sm-size: 18px;
  --type-amount-sm-line: 24px;
  --type-amount-sm-numeric: tabular-nums;
  --type-caption-family: var(--font-hand);
  --type-caption-weight: 400;
  --type-caption-size: 13px;
  --type-caption-line: 18px;
  --type-mono-family: var(--font-mono);
  --type-mono-weight: 400;
  --type-mono-size: 14px;
  --type-mono-line: 22px;
  --type-code-family: var(--font-mono);
  --type-code-weight: 400;
  --type-code-size: 14px;
  --type-code-line: 20px;
  --duration-micro: 120ms;
  --duration-state: 200ms;
  --duration-sheet: 320ms;
  --duration-sun: 800ms;
  --ease-held: cubic-bezier(0, 0.5, 0.25, 0.78);
  --ease-leave: cubic-bezier(0.4, 0, 1, 1);
  --chart-pattern-dots-dot: 2px;
  --chart-pattern-dots-pitch: 6px;
  --chart-pattern-hatch-stroke: 1px;
  --chart-pattern-hatch-angle-angle: 45deg;
  --chart-pattern-hatch-pitch: 4px;
  --chart-pattern-cross-stroke: 1px;
  --chart-pattern-cross-angle-angle: 45deg;
  --chart-pattern-cross-pitch: 6px;
}

@media (min-width: 600px) { :root {
  --type-display-size: 52px;
  --type-display-line: 58px;
  --type-voice-lg-size: 36px;
  --type-voice-lg-line: 42px;
} }

@media (min-width: 1024px) { :root {
  --type-display-size: 64px;
  --type-display-line: 70px;
  --type-voice-lg-size: 40px;
  --type-voice-lg-line: 46px;
  --type-voice-md-size: 28px;
  --type-voice-md-line: 36px;
  --type-voice-sm-size: 20px;
  --type-voice-sm-line: 30px;
  --type-voice-xs-size: 16px;
  --type-voice-xs-line: 24px;
  --type-heading-size: 22px;
  --type-heading-line: 30px;
  --type-body-size: 17px;
  --type-body-line: 28px;
  --type-small-size: 14px;
  --type-small-line: 22px;
  --type-label-size: 14px;
  --type-label-line: 20px;
  --type-amount-size: 32px;
  --type-amount-line: 36px;
  --type-amount-sm-size: 18px;
  --type-amount-sm-line: 24px;
  --type-caption-size: 13px;
  --type-caption-line: 18px;
  --type-mono-size: 14px;
  --type-mono-line: 22px;
  --type-code-size: 14px;
  --type-code-line: 20px;
} }

/* Mouvement reduit : tout devient immediat. */
@media (prefers-reduced-motion: reduce) { :root {
  --duration-micro: 1ms;
  --duration-state: 1ms;
  --duration-sheet: 1ms;
  --duration-sun: 1ms;
} }
