/* ════════════════════════════════════════════════════════════════════
   SOCLE — la palette de Let Eat Free, déclarée UNE fois.

   ⚠ POURQUOI CE FICHIER EXISTE. Le 27/08/2026, la palette était écrite
     six fois : trois blocs de thème (clair, sombre système, sombre
     choisi) dans brand.css, et les trois mêmes dans site.css. Changer
     le bleu de la charte demandait six modifications, et il a suffi
     d'en oublier une pour livrer la couleur dans le vide. Les 22 jetons
     partagés avaient encore la même valeur des deux côtés — mais rien
     ne le garantissait, et rien ne l'aurait signalé.

   ⚠ CE FICHIER SE CHARGE EN PREMIER, TOUJOURS. brand.css et site.css
     n'ont plus de bloc :root : ils consomment ces jetons. Une page qui
     oublie socle.css s'affiche sans couleurs — c'est visible tout de
     suite, et c'est voulu : mieux vaut une page cassée qu'une page
     fausse.

   ⚠ ON N'ÉCRIT PAS UNE COULEUR EN DUR AILLEURS. Toute valeur de couleur
     appartient à ce fichier. Ailleurs, on écrit var(--nom).
   ════════════════════════════════════════════════════════════════════ */

:root{
  /* Couleurs de marque */
  --nuit:#173247;          /* bleu nuit — aplats pleins, boutons */
  --nuit-2:#1F4459;
  --or:#C9A25C;            /* or — titres sur fond nuit, chiffres, accents */
  --or-c:#E4C88F;
  --or-f:#B08A3C;
  --or-texte:#8F6A22;      /* SEUL or autorisé pour du texte sur fond clair */

  /* Encre & neutres (teintés bleu, jamais gris pur) */
  --ink:#17313F;
  --ink-2:#264456;
  --muted:#4E6878;
  --faint:#546C7B;

  --ground:#FFFFFF;
  --surface:#FFFFFF;
  --panel:#F2F5F7;
  --panel-2:#E7EDF1;
  --line:#DDE5EA;
  --line-s:#C3D0D8;

  /* Boutons — jetons dédiés : ne JAMAIS réutiliser une couleur de texte
     comme fond de bouton, elle s'inverse en thème sombre. */
  --btn-bg:#173247; --btn-fg:#FFFFFF; --btn-bg-hover:#1F4459;
  --btn-or-bg:#C9A25C; --btn-or-fg:#173247;

  /* Surfaces sombres — restent sombres dans les DEUX thèmes */
  --fond-nuit:#173247; --sur-nuit:#FFFFFF; --sur-nuit-2:#C9D6DE;

  /* Sémantique (distincte de l'accent de marque) */
  --ok:#2E6244;    --ok-bg:#EAF3EE;
  --warn:#8A6414;  --warn-bg:#FBF3E1;
  --stop:#8E3826;  --stop-bg:#F9E9E5;
  --info:#245268;  --info-bg:#E8F1F6;

  --font:"Poppins",system-ui,-apple-system,sans-serif;
  --font-display:"Adorage","Poppins",serif;
  --font-script:"Amalfi","Poppins",cursive;

  --radius:14px; --radius-sm:10px; --radius-pill:999px;
  --shadow:0 1px 2px rgba(23,50,71,.05),0 12px 32px rgba(23,50,71,.07);
  --shadow-lg:0 8px 22px rgba(23,50,71,.09),0 30px 70px rgba(23,50,71,.13);
  --nav-bg:rgba(255,255,255,.94);
  /* Jetons propres au site public */
  --shadow-xl:0 10px 30px rgba(23,50,71,.22);
}

/* Sombre par réglage du système — un choix explicite « clair » l’emporte. */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#0B1620; --surface:#122430; --panel:#162C3A; --panel-2:#1D3646;
  --ink:#EAF1F5; --ink-2:#CFDDE5; --muted:#A3B7C3; --faint:#93A9B7;
  --line:#22394A; --line-s:#314C60;
  --or:#DFBE81; --or-c:#F0DCB4; --or-f:#D3AE60; --or-texte:#E2C489;
  --btn-bg:#DFBE81; --btn-fg:#0E1D28; --btn-bg-hover:#EBD2A2;
  --btn-or-bg:#DFBE81; --btn-or-fg:#0E1D28;
  --fond-nuit:#1B3547;
  --ok:#7FB08F; --ok-bg:#16281F;
  --warn:#DCB25F; --warn-bg:#2B2415;
  --stop:#D4836E; --stop-bg:#2B1A16;
  --info:#8FBBD6; --info-bg:#152530;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 40px rgba(0,0,0,.5);
  --shadow-lg:0 8px 24px rgba(0,0,0,.55),0 34px 80px rgba(0,0,0,.6);
  --nav-bg:rgba(11,22,32,.94);
  /* Jetons propres au site public */
  --nuit:#0B1620;
  --shadow-xl:0 10px 30px rgba(0,0,0,.5);
}}

/* Sombre choisi explicitement — l’emporte sur le réglage du système. */
:root[data-theme="dark"]{
  --ground:#0B1620; --surface:#122430; --panel:#162C3A; --panel-2:#1D3646;
  --ink:#EAF1F5; --ink-2:#CFDDE5; --muted:#A3B7C3; --faint:#93A9B7;
  --line:#22394A; --line-s:#314C60;
  --or:#DFBE81; --or-c:#F0DCB4; --or-f:#D3AE60; --or-texte:#E2C489;
  --btn-bg:#DFBE81; --btn-fg:#0E1D28; --btn-bg-hover:#EBD2A2;
  --btn-or-bg:#DFBE81; --btn-or-fg:#0E1D28;
  --fond-nuit:#1B3547;
  --ok:#7FB08F; --ok-bg:#16281F;
  --warn:#DCB25F; --warn-bg:#2B2415;
  --stop:#D4836E; --stop-bg:#2B1A16;
  --info:#8FBBD6; --info-bg:#152530;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 40px rgba(0,0,0,.5);
  --shadow-lg:0 8px 24px rgba(0,0,0,.55),0 34px 80px rgba(0,0,0,.6);
  --nav-bg:rgba(11,22,32,.94);
  /* Jetons propres au site public */
  --nuit:#0B1620;
  --shadow-xl:0 10px 30px rgba(0,0,0,.5);
}

/* ── Ce qui n'est plus ────────────────────────────────────────────────
   ⚠ QUINZE JETONS DE L'ANCIENNE CHARTE ONT ÉTÉ RETIRÉS LE 30/08/2026 :
     --vert, --sauge, --brun, --fond-chaud et leurs déclinaisons. Ils
     dataient de l'époque verte et brune et portaient tous, depuis
     l'éclaircissement du bleu, des valeurs bleu nuit et or.

     Un jeton nommé « vert » qui contient du bleu est un piège : on croit
     lire une couleur, on en lit une autre. Onze ne servaient plus du tout ;
     les quatre derniers emplois ont pris leur vrai nom — --ink, --sur-nuit-2
     et --shadow-xl, ce dernier renommé parce qu'il s'appelait --shadow-or
     tout en portant une ombre bleue.

     La charte est bleu nuit, or et blanc. Ni vert, ni brun. */

/* ── PAGINATION ──────────────────────────────────────────────────────────
   ⚠ POSÉE LE 25/09/2026, APRÈS UN DÉGÂT VISIBLE DE LOIN. Laravel sert sa
     propre vue de pagination, écrite en Tailwind : les chevrons y sont des
     SVG dont la taille tient dans des classes « w-5 h-5 ». Ce projet n'a pas
     Tailwind. Rien ne contraignait donc ces SVG : sur les DIX écrans qui
     paginent, ils s'étalaient sur toute la largeur de la page, en bleu vif
     hors charte, sous un texte anglais « Showing 1 to 30 of 8310 results ».

     Le gabarit maison n'emploie aucun SVG — les flèches sont « ‹ » et « › »,
     deux caractères, qui prennent la taille du texte quoi qu'il arrive au
     CSS. Ces règles-ci embellissent ; elles ne sont plus ce qui empêche la
     page d'être défigurée. */
.pg{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:18px 0 4px;
  font-size:12.5px;}
.pg-l,.pg-p{display:inline-block;text-decoration:none;color:var(--muted);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);
  padding:5px 12px;line-height:1.35;white-space:nowrap;}
.pg-l:hover,.pg-p:hover{border-color:var(--or);color:var(--or-texte);}
.pg-off{opacity:.42;}
.pg-off:hover{border-color:var(--line);color:var(--muted);}
.pg-n{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.pg-p{min-width:30px;text-align:center;padding:5px 9px;font-variant-numeric:tabular-nums;}
.pg-ici{background:var(--nuit);color:#fff;border-color:var(--nuit);font-weight:600;}
.pg-ici:hover{background:var(--nuit);color:#fff;border-color:var(--nuit);}
.pg-gap{color:var(--faint);padding:0 3px;}
.pg-compte{margin-left:auto;color:var(--faint);font-variant-numeric:tabular-nums;}
.pg-seule{margin-left:0;}
