/* shared/slides/signature-base.css : GÉNÉRÉ par tools/build-signature-css.mjs (Signature 0.1.0). Ne pas éditer.

   À charger AVANT ui-primitives.css : les rôles de l'éditeur gardent la priorité, Signature fournit les jetons absents. */

/* Polices Signature auto-hébergées (OFL). La CSP des pages impose font-src 'self'.
   Sous-ensembles latin et latin-ext ; Fraunces et Inter Tight sont des polices variables. */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/fraunces-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-tight-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-tight-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/ibm-plex-mono-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/ibm-plex-mono-latin-ext-600-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Signature, fusion par axe (Signature x Établi).
   Même vocabulaire de jetons que tokens.css : valeurs changées = bg, surface, surface-sunken, line-subtle,
   ok-fond, inactif-fond, ombres, rayons 2/4/6 ; jetons ajoutés = cote, scene-cote (bleu de cote).
   À reporter dans tokens.json si tokens.css est généré depuis lui. */
:root, [data-theme="light"] {
  --bg: #eae6d7;
  --surface: #f6f2e7;
  --surface-sunken: #dbd6c4;
  --surface-wood: #ddc9a0;
  --line: #7a6c58;
  --line-subtle: #cbc3aa;
  --ink: #2a2118;
  --ink-muted: #5a4d3e;
  --accent: #a63d14;
  --accent-strong: #862f0c;
  --on-accent: #fff9ef;
  --accent-fond: #f2d9c6;
  --ok: #14654f;
  --attention: #8a5a00;
  --critique: #a3162b;
  --inactif: #6b6254;
  --ok-fond: #d9e8de;
  --attention-fond: #f3e2b3;
  --critique-fond: #f4d0d0;
  --inactif-fond: #e6e0cf;
  --production: #0b63a5;
  --consommation: #a85f00;
  --stockage: #8e3a78;
  --focus: #2a5a7c;
  --cote: #2a5a7c;
  --scene-bg: #e4dfd3;
  --scene-ground: #d6d0c1;
  --scene-grid: #7a715f;
  --scene-edge: #2a2118;
  --scene-hatch: #2a2118;
  --scene-cote: #2a5a7c;
  --scene-cote-fond: #f6f2e7;
  --fil-noir: #25262a;
  --fil-blanc: #f0eee8;
  --fil-gris: #8d9094;
  --fil-bleu: #2f6fbf;
  --fil-rouge: #c0392b;
  --fil-vert: #3e8e5a;
  --fil-orange: #e07b1e;
  --fil-jaune: #e8c21a;
  --shadow-paper: 0 1px 0 rgba(42,33,24,0.14);
  --shadow-lift: 0 1px 0 rgba(42,33,24,0.14), 0 2px 4px rgba(42,33,24,0.12);
  --shadow-inset: inset 0 1px 1px rgba(42,33,24,0.16);
}
[data-theme="dark"] {
  --bg: #1e1b18;
  --surface: #27231f;
  --surface-sunken: #171512;
  --surface-wood: #332d26;
  --line: #948977;
  --line-subtle: #3e372f;
  --ink: #f3ebdc;
  --ink-muted: #bdb1a0;
  --accent: #e8895a;
  --accent-strong: #f2a27c;
  --on-accent: #1e1b18;
  --accent-fond: #3d2a20;
  --ok: #55c4a8;
  --attention: #e8b93e;
  --critique: #ff8a80;
  --inactif: #9a9080;
  --ok-fond: #1b3a32;
  --attention-fond: #3f3216;
  --critique-fond: #4a2022;
  --inactif-fond: #2e2a25;
  --production: #62b6f0;
  --consommation: #e8a33a;
  --stockage: #e091c2;
  --focus: #7dc3e0;
  --cote: #7dc3e0;
  --scene-bg: #121110;
  --scene-ground: #1b1a17;
  --scene-grid: #7c7568;
  --scene-edge: #f3ebdc;
  --scene-hatch: #f3ebdc;
  --scene-cote: #7dc3e0;
  --scene-cote-fond: #27231f;
  --fil-noir: #25262a;
  --fil-blanc: #f0eee8;
  --fil-gris: #8d9094;
  --fil-bleu: #2f6fbf;
  --fil-rouge: #c0392b;
  --fil-vert: #3e8e5a;
  --fil-orange: #e07b1e;
  --fil-jaune: #e8c21a;
  --shadow-paper: 0 1px 0 rgba(0,0,0,0.5);
  --shadow-lift: 0 1px 0 rgba(0,0,0,0.5), 0 2px 4px rgba(0,0,0,0.45);
  --shadow-inset: inset 0 1px 1px rgba(0,0,0,0.6);
}
[data-theme="contrast"] {
  --bg: #ffffff;
  --surface: #ffffff;
  --surface-sunken: #f0f0f0;
  --surface-wood: #e6e6e6;
  --line: #000000;
  --line-subtle: #767676;
  --ink: #000000;
  --ink-muted: #333333;
  --accent: #8a2800;
  --accent-strong: #5e1a00;
  --on-accent: #ffffff;
  --accent-fond: #ffe4d6;
  --ok: #004d3a;
  --attention: #6b4300;
  --critique: #8a0016;
  --inactif: #4d4d4d;
  --ok-fond: #e3f2ec;
  --attention-fond: #f6e7c2;
  --critique-fond: #f7d9dc;
  --inactif-fond: #eeeeee;
  --production: #004e8c;
  --consommation: #7a3e00;
  --stockage: #6b1f58;
  --focus: #0033cc;
  --cote: #003d7a;
  --scene-bg: #ffffff;
  --scene-ground: #ffffff;
  --scene-grid: #444444;
  --scene-edge: #000000;
  --scene-hatch: #000000;
  --scene-cote: #003d7a;
  --scene-cote-fond: #ffffff;
  --fil-noir: #25262a;
  --fil-blanc: #f0eee8;
  --fil-gris: #8d9094;
  --fil-bleu: #2f6fbf;
  --fil-rouge: #c0392b;
  --fil-vert: #3e8e5a;
  --fil-orange: #e07b1e;
  --fil-jaune: #e8c21a;
  --shadow-paper: none;
  --shadow-lift: 0 0 0 2px #000000;
  --shadow-inset: none;
}
: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;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-pill: 999px;
  --dur-fast: 120ms;
  --dur-base: 240ms;
  --dur-settle: 480ms;
  --dur-flow: 1600ms;
  --ease-settle: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --border-hair: 1px;
  --border-strong: 2px;
  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-ui: "Inter Tight", "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}

/* Extension de jetons du site : ce que vendor/signature/tokens.css ne définit pas (typographie, contrôles, couches,
   dataviz, icônes). Assemblée dans shared/signature.css et shared/slides/signature-base.css par
   tools/build-signature-css.mjs (ne pas lier directement). vendor/signature/ reste une copie fidèle.

   Règles :
   - Aucune couleur en dur : les jetons dataviz renvoient aux jetons de thème, ils suivent donc clair, sombre et contraste.
   - Tailles en rem : elles suivent le réglage de taille de texte du navigateur. Plancher : 12px pour le texte
     informatif (--text-xs), 11px pour un libellé de contrôle ou un compteur (--text-2xs). Rien en dessous. */
:root {
    /* Échelle typographique */
    --text-2xs: 0.6875rem;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.375rem;
    --text-2xl: 1.75rem;
    --leading-tight: 1.25;
    --leading-base: 1.5;
    --leading-prose: 1.7;
    --weight-regular: 400;
    --weight-medium: 500;
    --weight-strong: 600;
    /* Longueur de ligne de la prose : 60 à 75 caractères. */
    --measure: 68ch;

    /* Contrôles : 40px au moins pour une cible tactile (DESIGN.md, accessibilité). */
    --control-h-sm: 32px;
    --control-h-md: 40px;
    --control-h-lg: 48px;
    /* Bordure de champ : --line (porte du sens, 3:1 au moins) et non --line-subtle (filet décoratif, 1,5:1). */
    --control-border: var(--line);
    --focus-ring-width: 2px;
    --focus-ring-offset: 2px;
    --focus-ring: var(--focus-ring-width) solid var(--cote);

    /* Couches */
    --z-base: 1;
    --z-sticky: 10;
    --z-nav: 100;
    --z-dropdown: 500;
    --z-modal: 1000;
    --z-toast: 2000;

    /* Dataviz : huit séries. Elles se distinguent aussi par le trait et le marqueur (DESIGN.md, principe 2). */
    --viz-1: var(--production);
    --viz-2: var(--consommation);
    --viz-3: var(--stockage);
    --viz-4: var(--ok);
    --viz-5: var(--critique);
    --viz-6: var(--accent);
    --viz-7: var(--attention);
    --viz-8: var(--inactif);
    --viz-grid: var(--line-subtle);
    --viz-axis: var(--line);

    /* Points de rupture (documentaires : une media query ne lit pas var()). */
    --bp-sm: 640px;
    --bp-md: 900px;
    --bp-lg: 1200px;
}

/* Éléments natifs (barres de défilement, champs, cases) dans le bon schéma de couleur. */
:root { color-scheme: light; }
[data-theme="dark"] { color-scheme: dark; }
[data-theme="contrast"] { color-scheme: light; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) { color-scheme: dark; }
}

/* Icônes (shared/icons.js) : 1em, couleur du texte voisin. */
.oei-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex: none;
    vertical-align: -0.125em;
    overflow: visible;
}

