/* APP-EDU — core/ui/base.css
   Couche 2 (après tokens.css + fonts.css) : reset + éléments de base + accessibilité.
   Neutre : aucun composant ici, seulement les balises nues et les défauts globaux.
   Ordre de chargement : fonts.css -> tokens.css -> base.css -> components.css -> (portal|module).css */

/* ---- reset ---- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--edu-font-ui);
  color: var(--edu-text);
  background: var(--edu-bg);
  line-height: 1.55;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---- éléments nus ---- */
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: none; background: none; }
input, textarea, select { font: inherit; color: inherit; }
img, svg, video { max-width: 100%; }
svg { display: block; }
ul, ol { list-style: none; padding: 0; }
table { border-collapse: collapse; }

/* Titres = police display (Fraunces). Les tailles précises sont fixées par les composants. */
h1, h2, h3, h4 {
  font-family: var(--edu-font-display);
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.2;
  text-wrap: balance;
}
code, kbd, pre, samp { font-family: var(--edu-font-mono); }

/* ---- accessibilité ---- */
:focus-visible { outline: 2px solid var(--edu-accent); outline-offset: 2px; border-radius: 4px; }
:focus:not(:focus-visible) { outline: none; }
::selection { background: var(--edu-accent-soft); color: var(--edu-accent-ink); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ---- utilitaires minimes (à n'employer que ponctuellement) ---- */
.u-mono { font-family: var(--edu-font-mono); }
.u-display { font-family: var(--edu-font-display); }
.u-muted { color: var(--edu-muted); }
.u-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
