/* Fichier généré par scripts/generer.mjs depuis tokens/tokens.json. Ne pas modifier à la main. */

@font-face {
  font-family: 'Geist';
  src: url('fonts/geist-latin-wght-normal.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

/* Polices des ambiances : le navigateur ne les charge que si elles servent. */
@font-face { font-family: 'VT323'; src: url('fonts/vt323-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Orbitron'; src: url('fonts/orbitron-latin-wght-normal.woff2') format('woff2'); font-weight: 400 900; font-display: swap; }
@font-face { font-family: 'Fredoka'; src: url('fonts/fredoka-latin-wght-normal.woff2') format('woff2'); font-weight: 300 700; font-display: swap; }

:root {
  color-scheme: light dark;
  --bg: light-dark(#f3f4f6, #0c0c0e);
  --surface: light-dark(#ffffff, #18181b);
  --surface-2: light-dark(#e9eaee, #242428);
  --line: light-dark(#17181c1a, #ffffff17);
  --line-strong: light-dark(#17181c47, #ffffff3d);
  --text: light-dark(#17181c, #f4f4f5);
  --text-2: light-dark(#5b5e67, #a1a3ac);
  --glass: light-dark(#f3f4f6db, #0c0c0edb);
  --scrim: light-dark(#0000008c, #0000008c);
  --ok: light-dark(#17693b, #4ade80);
  --warn: light-dark(#7d5100, #fbbf24);
  --danger: light-dark(#b01a45, #f87171);
  --accent: light-dark(#17181c, #f4f4f5);
  --on-accent: light-dark(#ffffff, #17181c);
  --accent-text: light-dark(#17181c, #f4f4f5);
  --font: 'Geist', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display: var(--font);
  --fs-k: 1;
  --r-k: 1;
  --track-k: 1;
  --motif: none;
  --motif-size: auto;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --block-gap: 32px;
  --head-gap: 12px;
  --list-gap: 12px;
  --tap: 44px;
  --tap-small: 36px;
  --tap-block: 52px;
  --row-min: 60px;
  --pastille: 36px;
  --fs-caption-n: 0.75rem;
  --fs-small-n: 0.8125rem;
  --fs-body-n: 1rem;
  --fs-h3-n: 1.125rem;
  --fs-h2-n: 1.375rem;
  --fs-h1-n: 1.75rem;
  --fs-num-n: 2.5rem;
  --fs-input-n: 1rem;
  --icon: 22px;
  --icon-md: 20px;
  --icon-sm: 18px;
  --check: 22px;
  --switch-w: 46px;
  --switch-h: 28px;
  --gauge: 8px;
  --tabbar: 64px;
  --r-lg-n: 24px;
  --r-md-n: 16px;
  --r-sm-n: 10px;
  --r-btn-n: 12px;
  --r-pill: 999px;
  --card-edge: 0 solid transparent;
  --gutter: 16px;
  --measure: 720px;
  --shadow-card: 0 1px 2px light-dark(#1118270d, #00000000);
  --shadow-float: 0 10px 30px light-dark(#11182724, #00000080);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
  --ease-press: var(--ease-out);
  --t-press: 120ms;
  --t-fast: 160ms;
  --t-base: 200ms;
  --t-slow: 360ms;
  --press-scale: 0.97;
  --icon-stroke: 2;
}

[data-theme='light'] { color-scheme: light; }
[data-theme='dark'] { color-scheme: dark; }

@media (min-width: 900px) { :root { --gutter: 24px; } }

/* Densité compacte : back-office, tableaux, écrans utilisés à la souris. */
[data-density='compact'] { --block-gap: 20px; --head-gap: 8px; --list-gap: 4px; --tap: 36px; --tap-small: 36px; --tap-block: 52px; --row-min: 60px; --pastille: 36px; --fs-caption-n: 0.75rem; --fs-small-n: 0.8125rem; --fs-body-n: 0.875rem; --fs-h3-n: 1.125rem; --fs-h2-n: 1.125rem; --fs-h1-n: 1.375rem; --fs-num-n: 2.5rem; --fs-input-n: 1rem; --icon: 22px; --icon-md: 20px; --icon-sm: 18px; --check: 22px; --switch-w: 46px; --switch-h: 28px; --gauge: 8px; --tabbar: 64px; --r-lg-n: 14px; --r-md-n: 10px; --r-sm-n: 8px; --r-btn-n: 10px; font-size: var(--fs-body); }

/* Densité grande : pour une mauvaise vue. Plus grand partout, et le texte secondaire plus contrasté. */
[data-density='large'] { --block-gap: 40px; --head-gap: 16px; --list-gap: 16px; --tap: 56px; --tap-small: 48px; --tap-block: 64px; --row-min: 76px; --pastille: 48px; --fs-caption-n: 0.9375rem; --fs-small-n: 1.0625rem; --fs-body-n: 1.25rem; --fs-h3-n: 1.375rem; --fs-h2-n: 1.75rem; --fs-h1-n: 2.125rem; --fs-num-n: 3.25rem; --fs-input-n: 1.25rem; --icon: 28px; --icon-md: 26px; --icon-sm: 22px; --check: 28px; --switch-w: 58px; --switch-h: 34px; --gauge: 12px; --tabbar: 80px; --r-lg-n: 24px; --r-md-n: 18px; --r-sm-n: 12px; --r-btn-n: 14px; --text-2: light-dark(#3f424a, #d0d2d9); --line-strong: light-dark(#17181c80, #ffffff66); font-size: var(--fs-body); }

/* Ambiances : police, couleurs de fond, rayons, motif et pression. Composants et règles restent les mêmes. */
[data-look='epure'] { --bg: light-dark(#f3f4f6, #0c0c0e); --surface: light-dark(#ffffff, #18181b); --surface-2: light-dark(#e9eaee, #242428); --line: light-dark(#17181c1a, #ffffff17); --line-strong: light-dark(#17181c47, #ffffff3d); --text: light-dark(#17181c, #f4f4f5); --text-2: light-dark(#5b5e67, #a1a3ac); --glass: light-dark(#f3f4f6db, #0c0c0edb); --scrim: light-dark(#0000008c, #0000008c); --ok: light-dark(#17693b, #4ade80); --warn: light-dark(#7d5100, #fbbf24); --danger: light-dark(#b01a45, #f87171); --font: 'Geist', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --font-display: var(--font); --fs-k: 1; --r-k: 1; --track-k: 1; --press-scale: 0.97; --ease-press: var(--ease-out); --motif: none; --motif-size: auto; }
[data-look='retro'] { --bg: light-dark(#f5eddc, #130f0b); --surface: light-dark(#fffaf0, #201a13); --surface-2: light-dark(#e8dbc1, #32291d); --line: light-dark(#2a201524, #f0e4cf1f); --line-strong: light-dark(#2a201566, #f0e4cf4d); --text: light-dark(#2a2015, #f0e4cf); --text-2: light-dark(#5e4f3a, #b8a98f); --glass: light-dark(#f5eddcdb, #130f0bdb); --scrim: light-dark(#0000008c, #0000008c); --ok: light-dark(#17693b, #4ade80); --warn: light-dark(#7d5100, #fbbf24); --danger: light-dark(#b01a45, #f87171); --font: 'VT323', ui-monospace, monospace; --font-display: var(--font); --fs-k: 1.2; --r-k: 0.33; --track-k: 0; --press-scale: 0.97; --ease-press: var(--ease-out); --motif: repeating-linear-gradient(0deg, color-mix(in srgb, var(--text) 5%, transparent) 0 1px, transparent 1px 3px); --motif-size: auto; }
[data-look='futuriste'] { --bg: light-dark(#f1f5fa, #04070c); --surface: light-dark(#ffffff, #0c1521); --surface-2: light-dark(#dde6f0, #172436); --line: light-dark(#0b172622, #e6f0fa1f); --line-strong: light-dark(#0b172666, #e6f0fa4d); --text: light-dark(#0b1726, #e6f0fa); --text-2: light-dark(#44566c, #93a7bf); --glass: light-dark(#f1f5fadb, #04070cdb); --scrim: light-dark(#0000008c, #0000008c); --ok: light-dark(#17693b, #4ade80); --warn: light-dark(#7d5100, #fbbf24); --danger: light-dark(#b01a45, #f87171); --font: 'Orbitron', system-ui, sans-serif; --font-display: var(--font); --fs-k: 0.92; --r-k: 0.17; --track-k: 0; --press-scale: 0.97; --ease-press: var(--ease-out); --motif: linear-gradient(color-mix(in srgb, var(--text) 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text) 5%, transparent) 1px, transparent 1px); --motif-size: 32px 32px; }
[data-look='mignon'] { --bg: light-dark(#fff8ee, #0e0c1c); --surface: light-dark(#ffffff, #1b1834); --surface-2: light-dark(#ffe7c8, #2a254b); --line: light-dark(#2b214022, #f3efff1f); --line-strong: light-dark(#2b214066, #f3efff4d); --text: light-dark(#2b2140, #f3efff); --text-2: light-dark(#655a7a, #b3aacf); --glass: light-dark(#fff8eedb, #0e0c1cdb); --scrim: light-dark(#0000008c, #0000008c); --ok: light-dark(#17693b, #4ade80); --warn: light-dark(#7d5100, #fbbf24); --danger: light-dark(#b01a45, #f87171); --font: 'Fredoka', system-ui, sans-serif; --font-display: var(--font); --fs-k: 1; --r-k: 1.33; --track-k: 0; --press-scale: 0.92; --ease-press: var(--ease-spring); --motif: radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1.5px, transparent 1.5px); --motif-size: 20px 20px; }
[data-look='contraste'] { --bg: light-dark(#ffffff, #000000); --surface: light-dark(#f2f2f2, #141414); --surface-2: light-dark(#e0e0e0, #262626); --line: light-dark(#0000004d, #ffffff4d); --line-strong: light-dark(#000000a6, #ffffffa6); --text: light-dark(#000000, #ffffff); --text-2: light-dark(#2e2e2e, #d9d9d9); --glass: light-dark(#ffffffdb, #000000db); --scrim: light-dark(#0000008c, #0000008c); --ok: light-dark(#17693b, #4ade80); --warn: light-dark(#7d5100, #fbbf24); --danger: light-dark(#b01a45, #f87171); --font: 'Geist', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --font-display: var(--font); --fs-k: 1; --r-k: 1; --track-k: 1; --press-scale: 0.97; --ease-press: var(--ease-out); --motif: none; --motif-size: auto; }
[data-look] { font-family: var(--font); color: var(--text); }
[data-look='epure'][data-density='large'], [data-look='epure'] [data-density='large'], [data-density='large'] [data-look='epure'] { --text-2: light-dark(#3f424a, #d0d2d9); --line-strong: light-dark(#17181c80, #ffffff66); }
[data-look='retro'][data-density='large'], [data-look='retro'] [data-density='large'], [data-density='large'] [data-look='retro'] { --text-2: light-dark(#3d3122, #dccfb8); --line-strong: light-dark(#2a201599, #f0e4cf73); }
[data-look='futuriste'][data-density='large'], [data-look='futuriste'] [data-density='large'], [data-density='large'] [data-look='futuriste'] { --text-2: light-dark(#2a3a4e, #c4d3e4); --line-strong: light-dark(#0b172699, #e6f0fa73); }
[data-look='mignon'][data-density='large'], [data-look='mignon'] [data-density='large'], [data-density='large'] [data-look='mignon'] { --text-2: light-dark(#433857, #d6cfeb); --line-strong: light-dark(#2b214099, #f3efff73); }
[data-look='contraste'][data-density='large'], [data-look='contraste'] [data-density='large'], [data-density='large'] [data-look='contraste'] { --text-2: light-dark(#1f1f1f, #e6e6e6); --line-strong: light-dark(#000000bf, #ffffffbf); }

:root, [data-density], [data-look] { --fs-caption: max(calc(var(--fs-caption-n) * var(--fs-k)), 0.75rem); --fs-small: calc(var(--fs-small-n) * var(--fs-k)); --fs-body: calc(var(--fs-body-n) * var(--fs-k)); --fs-h3: calc(var(--fs-h3-n) * var(--fs-k)); --fs-h2: calc(var(--fs-h2-n) * var(--fs-k)); --fs-h1: calc(var(--fs-h1-n) * var(--fs-k)); --fs-num: calc(var(--fs-num-n) * var(--fs-k)); --fs-input: max(calc(var(--fs-input-n) * var(--fs-k)), 1rem); --r-lg: calc(var(--r-lg-n) * var(--r-k)); --r-md: calc(var(--r-md-n) * var(--r-k)); --r-sm: calc(var(--r-sm-n) * var(--r-k)); --r-btn: calc(var(--r-btn-n) * var(--r-k)); --fs-display: calc(clamp(2.5rem, 1.6rem + 4vw, 5rem) * var(--fs-k)); }

/* Accents prêts à l'emploi. Un projet peut aussi redéfinir ces trois jetons après ce fichier. */
.accent-neutre { --accent: light-dark(#17181c, #f4f4f5); --on-accent: light-dark(#ffffff, #17181c); --accent-text: light-dark(#17181c, #f4f4f5); }
.accent-violet { --accent: light-dark(#5a4bd1, #a79cff); --on-accent: light-dark(#ffffff, #15112e); --accent-text: light-dark(#5a4bd1, #a79cff); }
.accent-orange { --accent: light-dark(#f2971e, #f2971e); --on-accent: light-dark(#1d1d1b, #1d1d1b); --accent-text: light-dark(#9c5606, #f2971e); }
.accent-ambre { --accent: light-dark(#e3a04a, #e3a04a); --on-accent: light-dark(#1d1d1b, #1d1d1b); --accent-text: light-dark(#8a5500, #e3a04a); }
.accent-sauge { --accent: light-dark(#a9d3b4, #a9d3b4); --on-accent: light-dark(#17181c, #17181c); --accent-text: light-dark(#2c6b43, #a9d3b4); }
