/* ------------------------------------------------------------------ base
   Remise à zéro, typographie, focus. Rien ici ne dépend d'un composant : ce
   fichier doit rester lisible quand on cherche pourquoi un texte est gris.   */

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

html {
  -webkit-text-size-adjust: 100%;
  /* Le fond du document, pas seulement du body : sur iOS, le rebond du
     défilement découvre la couleur de l'élément racine. */
  background: var(--fond);
}

body {
  font: var(--t-corps);
  color: var(--texte);
  background: var(--fond);
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased;
  overscroll-behavior-y: none;
}

/* Kanit, auto-hébergée. Jamais Google Fonts : la CSP est en 'self', et un
   chantier n'a pas toujours de réseau. Seul le latin est embarqué, il couvre
   le français accentué.

   Deux graisses et pas trois : la 600 n'est appelée par aucun token, et vingt
   kilo-octets de police jamais dessinée, c'est un tiers du budget de la
   coquille dépensé pour rien. */
@font-face {
  font-family: 'Kanit'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('../../fonts/kanit-nkku-go6g5txcr5mobwnvae.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Kanit'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../../fonts/kanit-nkku-go6g5txcr4uphwnvae.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

h1, h2, h3, p, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

/* Tout chiffre s'aligne en colonne : un solde qui saute d'un pixel entre deux
   rafraîchissements donne l'impression que le montant a changé. */
b, strong, .chiffre, table td, table th { font-variant-numeric: tabular-nums; }

a { color: inherit; text-decoration: none; }

button, input, select, textarea {
  font: inherit;
  color: inherit;
  margin: 0;
}

button { background: none; border: 0; padding: 0; cursor: pointer; }

/* Ce qu'on touche se comporte comme un bouton d'app : un appui long ne
   surligne pas, un double appui ne zoome pas. Le pincement, lui, reste. */
button, a, label, .segments, .pastilles, .onglets {
  -webkit-user-select: none; user-select: none;
  touch-action: manipulation;
}
input, textarea { -webkit-user-select: text; user-select: text; }

img, svg { display: block; max-width: 100%; }

/* Le focus ne se voit qu'au clavier : au doigt, un contour persistant après un
   appui ressemble à un défaut d'affichage. */
:focus { outline: none; }
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  border-radius: var(--r-1);
}

::selection { background: var(--accent); color: var(--sur-accent); }

/* Barres de défilement discrètes sur bureau, invisibles sur les rangées de
   pastilles qui défilent latéralement. */
.sans-barre { scrollbar-width: none; -ms-overflow-style: none; }
.sans-barre::-webkit-scrollbar { display: none; }

/* Visible des lecteurs d'écran seulement : sert aux libellés que le dessin
   rend évidents mais que rien n'énonce. */
.pour-lecteur {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
