@layer base{
  /* Les champs n'héritent PAS de la typo par défaut : un <textarea> tombait
     sur la police et la taille du navigateur (mesuré à 14 px, hors échelle). */
  input,select,textarea,button{font-family:inherit}
  /* Les champs réagissent tout de suite au survol et au focus, partout dans l'atelier (le proprio, 2026-10-19 : « les inputs,
     transition-duration 0s, pour que le survol soit réactif, et pour tous les inputs de l'app »). !important dans la couche
     base : une déclaration importante d'une couche antérieure l'emporte sur les couches suivantes (components, modules),
     donc sur chaque champ qui posait sa propre transition. */
  input,select,textarea,[contenteditable="true"],[contenteditable=""]{transition-duration:0s !important}
  textarea{font-size:var(--fs-md);line-height:var(--lh-normal)}

  /* ── Resets (U1 - déplacés depuis 01-tokens.css) ── */
  *{box-sizing:border-box}
  /* Plus de gouttière réservée (2026-10-25) : les barres du navigateur sont masquées (couche overrides, plus bas), le fil
     flottant maison (00b-defilement.js) ne prend aucune largeur ; le viewport a donc la même largeur dans toutes les vues, ce
     que la gouttière stable (overflow-y:scroll + scrollbar-gutter:stable, 2026-10-16) obtenait en réservant 10 px. */
  html{scroll-behavior:smooth}
  body{margin:0;font:15px/1.55 var(--font-sans);background:var(--bg);color:var(--txt)}
  html,body{overscroll-behavior-x:none}   /* coupe le geste « page précédente/suivante » du trackpad */

  /* ── Barre de défilement : celle du navigateur est masquée PARTOUT (le proprio, 2026-10-25 : « supprime complètement la
     barre par défaut, elle prend de la largeur dans l'UI »), dans la couche overrides en fin de fichier, pour l'emporter sur
     les barres fines des composants. Le défilement reste celui du navigateur ; le fil flottant est 00b-defilement.js. ── */

  /* ── Accessibilité ── */
  :focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}
  .skip{position:absolute;left:12px;top:-48px;background:var(--accent);color:var(--on-solid);padding:var(--sp-10) var(--sp-14);border-radius:var(--radius);z-index:100}
  .skip:focus{top:12px}

  /* ── Spinner global - CDC_UPDATE.md lot U2 ── */
  @keyframes dh-spin{to{transform:rotate(360deg)}}
  .spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);
    border-radius:50%;animation:dh-spin .7s linear infinite;display:inline-block}


}

/* Les barres du navigateur, masquées partout (voir plus haut) : `scrollbar-width:none` pour Chrome et Firefox (Chrome ignore alors
   les pseudo-éléments), `::-webkit-scrollbar` pour Safari. En overrides : la couche déclarée la dernière gagne sur les
   `scrollbar-width:thin` et les pseudo-éléments posés par les composants. */
@layer overrides{
  *{scrollbar-width:none}
  ::-webkit-scrollbar{display:none;width:0;height:0}
}
