/* Hallmark · checked: 2026-10-29 · genre: modern-minimal (inferred)
 * floor: 0 FAIL · fixed: 2 (20, F3) · structural: 0 printed
 * built: the project · redesign: polish · v2.0.0 */
/* Hallmark · waive 26b · base.css declares no control, only resets and utilities · the pressed state of every button and tile lives in composants.css */
/*
 * Polices locales, remise à zéro et utilitaires du design system
 * (entete, titre-entete, libelle, valeur, focus-anneau… : refonte main.css).
 */

@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 300; font-display: swap; src: url('../assets/polices/Poppins-Light.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/polices/Poppins-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/polices/Poppins-Italic.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/polices/Poppins-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../assets/polices/Poppins-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/polices/Poppins-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url('../assets/polices/Roboto-Light.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/polices/Roboto-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/polices/Roboto-Italic.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/polices/Roboto-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 600; font-display: swap; src: url('../assets/polices/Roboto-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/polices/Roboto-Bold.woff2') format('woff2'); }

/* --- Remise à zéro (esprit Tailwind preflight) --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; }
html, body { height: 100%; }
body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--color-cepi-gris-fonce);
  background: var(--color-cepi-fond);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; color: inherit; background: transparent; letter-spacing: inherit; }
button { cursor: pointer; }
button:disabled, [aria-disabled='true'] { cursor: not-allowed; }
img, svg { display: block; max-width: 100%; }
table { border-collapse: collapse; }
ul, ol { list-style: none; }
h1, h2, h3, h4 { font-size: inherit; font-weight: inherit; text-wrap: balance; }
kbd { font-family: var(--font-mono); }
input::-webkit-search-cancel-button { appearance: none; }
:focus { outline: none; }
[hidden] { display: none !important; }

/* --- Utilitaires du design system --- */
.focus-anneau:focus-visible,
.focus-anneau-interne:focus-within { outline: 2px solid var(--couleur-focus); outline-offset: 2px; }
/* Filet de sécurité : un lien ou un résumé sans style de focus propre garde un anneau visible au clavier
   (spécificité nulle, chaque composant le remplace par le sien). */
:where(a[href], summary):focus-visible { outline: 2px solid var(--couleur-focus); outline-offset: 2px; border-radius: var(--radius-sm); }

.entete {
  --couleur-focus: var(--color-cepi-jaune);
  background: var(--color-cepi-bleu-cyan);
  font-family: var(--font-poppins);
  color: var(--color-cepi-blanc-pur);
}
.titre-entete { font-family: var(--font-poppins); font-size: var(--text-sm); line-height: var(--text-sm--lh); font-weight: 500; color: inherit; }
.libelle { font-size: var(--text-sm); line-height: var(--text-sm--lh); color: var(--color-cepi-gris-fonce); }
.libelle-erreur { font-size: var(--text-sm); line-height: var(--text-sm--lh); color: var(--color-texte-rouge); }
.texte-aide { font-size: var(--text-xs); line-height: var(--text-xs--lh); color: var(--color-cepi-bleu-cyan); }
.texte-erreur { font-size: var(--text-xs); line-height: var(--text-xs--lh); color: var(--color-texte-rouge); }
.valeur { font-weight: 600; color: var(--color-cepi-bleu-cyan); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;
}
.chiffres { font-variant-numeric: tabular-nums; }

/* Largeurs des champs (w-14, w-20… de la refonte) */
.u-flex-1 { flex: 1 1 0; min-width: 0; }
.u-flex-15 { flex: 1.5 1 0; min-width: 0; }
.u-l-14 { width: 3.5rem; flex: none; }
.u-l-20 { width: 5rem; flex: none; }
.u-l-24 { width: 6rem; flex: none; }
.u-l-28 { width: 7rem; flex: none; }
.u-l-36 { width: 9rem; flex: none; }
.masque { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
