/* ============================================================================
   styles.css — feuille de style du site de basketball collégial D1 RSEQ
   ----------------------------------------------------------------------------
   Refonte du 1er octobre 2026 (maquette approuvée le jour même, revue
   « impeccable »). Identité inchangée (bleu RSEQ, Bebas Neue, DM Sans, DM Mono,
   en-têtes marine, couleur d'équipe en liseré) ; ce que la refonte a changé :
     1. contrastes : gris de texte foncé, aucun texte sous 12 px (le bleu RSEQ
        n'a pas bougé, bandeau compris : décision d'Alex) ;
     2. téléphone : bandeau court (logo en double retiré), colonne des noms
        figée dans les grands tableaux, cibles tactiles de 44 px ;
     3. calendrier : carte « tableau d'affichage » cliquable en entier ;
     4. feuille de match : points par quart en tableau dans le bandeau,
        comparatif en miroir avec jauges à la couleur des équipes ;
     5. clavier : focus visible partout, en-têtes triables en vrais boutons ;
     6. plus aucun liseré latéral de couleur (cartes, messages, pilules).
   Contraintes inchangées : aucune police externe, aucun attribut style hors
   couleur d'équipe validée (--eqA / --eqB, liserés posés par JS).
   ========================================================================== */

:root{
  --bleu:#0087CB;            /* bleu RSEQ : inchangé (décision d'Alex, 1er octobre 2026) */
  --bleu-texte:#0087CB;      /* liens, états actifs : le même bleu RSEQ, en graisse 500 pour compenser son contraste (3,9:1 sur blanc) */
  --marine:#00293F; --encre:#14202B;
  --gris:#55636F;            /* texte secondaire : 6,2:1 sur blanc, 5,3:1 sur le fond */
  --trait:#D5DEE6; --trait-doux:#E8EEF3;
  --fond:#EDF2F6; --blanc:#fff; --entete:#F4F7FA; --survol:#F1F6FA; --teinte:#E8F2F9;
  --vert:#17734A; --vert-fond:#DDF3E8; --rouge:#B3262F; --rouge-fond:#FBE4E6;
  --titre:'Bebas Neue','Oswald','Arial Narrow',Impact,sans-serif;
  --texte:'DM Sans','Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'DM Mono','Consolas','Menlo',monospace;
  --rayon:6px;
  --ombre:0 6px 18px -8px rgba(0,41,63,.28);
  --eqA:var(--marine);--eqB:var(--marine);--eqA-texte:#fff;--eqB-texte:#fff;
  accent-color:var(--bleu-texte);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--fond);color:var(--encre);font-family:var(--texte);font-size:15px;line-height:1.45;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
img{max-width:100%}
h1,h2,h3{text-wrap:balance}
.int{max-width:1440px;margin:0 auto;padding:0 28px}
.mono{font-family:var(--mono)}
[hidden]{display:none !important}
::selection{background:#BDE2F5;color:var(--marine)}
:focus-visible{outline:3px solid var(--marine);outline-offset:2px}
.heros :focus-visible{outline-color:#fff}

/* Lien d'évitement : invisible jusqu'au premier Tab. */
.saut-contenu{position:absolute;left:12px;top:-60px;z-index:20;background:var(--marine);color:#fff;padding:10px 16px;border-radius:var(--rayon);font-weight:600}
.saut-contenu:focus{top:10px}

/* ---------- Barre haute ---------- */
.haut{background:var(--blanc);border-bottom:1px solid var(--trait-doux)}
.haut .int{display:flex;align-items:center;gap:18px;min-height:68px}
.marque{display:flex;align-items:center;gap:16px;min-width:0}
.marque a{display:block;border-radius:3px}
.marque .logo{display:block;height:30px;width:auto}
.marque .saison{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--gris);text-transform:uppercase;white-space:nowrap}
.droite{margin-left:auto;display:flex;align-items:center;gap:18px}
.pilules{display:inline-flex;border:1px solid var(--trait);border-radius:var(--rayon);padding:2px;background:var(--blanc)}
.pilules button{background:transparent;border:0;border-radius:4px;min-height:34px;padding:0 13px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.pilules button:hover{color:var(--encre);background:var(--entete)}
.pilules button[aria-pressed="true"]{background:var(--bleu-texte);color:#fff;font-weight:500}
.retour{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--bleu-texte);font-weight:500;white-space:nowrap;padding:10px 4px}
.retour:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- Bandeau bleu ---------- */
/* Bleu RSEQ du site en ligne, inchangé. Les petits textes posés dessus passent en graisse 500, sans transparence. */
.heros{color:#fff;background:linear-gradient(90deg,#007FC4 0%,#0090D6 60%,#12A2E6 100%);position:relative;overflow:hidden}
.heros::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 112px,rgba(255,255,255,.16) 112px 113px);pointer-events:none}
.heros .sous,.compteurs span,.heros .faits dt,.heros .forme .etiquette,.quarts-ligne thead th{font-weight:500}
.heros .int{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-top:30px;padding-bottom:28px}
.heros .int > div:first-child{min-width:0}
.heros h1{font-family:var(--titre);font-size:60px;line-height:.95;margin:0 0 8px;letter-spacing:.02em;font-weight:400}
.heros .sous{font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.heros .sous.compact{letter-spacing:.08em;line-height:1.6}
.compteurs{display:flex;align-items:stretch;flex-shrink:0}
.compteurs div{padding:0 28px;border-left:1px solid rgba(255,255,255,.4);text-align:center}
.compteurs div:first-child{border-left:0}
.compteurs div:last-child{padding-right:0}
.compteurs b{display:block;font-family:var(--titre);font-size:40px;line-height:1;font-weight:400;white-space:nowrap}
.compteurs span{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}

/* ---------- Onglets ---------- */
.onglets{background:var(--blanc);border-bottom:1px solid var(--trait);position:sticky;top:0;z-index:6}
.onglets .int{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.onglets .int::-webkit-scrollbar{display:none}
.onglets button{background:transparent;border:0;min-height:52px;padding:0 18px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);white-space:nowrap;border-bottom:3px solid transparent;border-radius:0}
.onglets button:hover{color:var(--encre);border-bottom-color:var(--trait)}
.onglets button[aria-selected="true"]{color:var(--encre);font-weight:700;border-bottom-color:var(--bleu)}
.onglets button:focus-visible{outline-offset:-3px}

main .int{padding-top:36px;padding-bottom:64px}
.titre-section{display:flex;align-items:center;gap:18px;font-family:var(--titre);font-size:28px;letter-spacing:.06em;color:var(--marine);margin:0 0 20px;font-weight:400;line-height:1.1}
.titre-section::after{content:"";flex:1;height:1px;background:var(--trait);order:1}
.titre-section .saut{order:2;background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);min-height:36px;padding:0 14px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--bleu-texte);font-weight:500;white-space:nowrap}
.titre-section .saut:hover{border-color:var(--bleu-texte)}
.series{margin-top:48px}

/* ---------- Calendrier : cartes « tableau d'affichage » ---------- */
.semaine{margin-bottom:30px;scroll-margin-top:72px}
.semaine h3{display:flex;align-items:baseline;gap:12px;font-family:var(--titre);font-size:20px;letter-spacing:.08em;color:var(--marine);margin:0 0 12px;font-weight:400}
.semaine h3 small{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--gris);text-transform:uppercase}
.grille-matchs{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.match{display:block;background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);padding:12px 16px 14px;min-width:0}
a.match{transition:border-color .15s ease-out,box-shadow .15s ease-out}
a.match:hover{border-color:var(--bleu-texte);box-shadow:var(--ombre)}
.match .tete{display:flex;align-items:baseline;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--gris);margin-bottom:8px}
.match .num{color:var(--marine);font-weight:500}
.match .vers{margin-left:auto;color:var(--bleu-texte);font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
a.match:hover .vers{text-decoration:underline;text-underline-offset:3px}
.match .corps{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 16px}
.match .camp{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;font-size:16px;font-weight:600;color:var(--encre)}
.match .camp .eq{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.match .camp .pts{font-family:var(--titre);font-size:26px;font-weight:400;line-height:1;color:var(--marine);font-variant-numeric:tabular-nums}
.match.joue .camp{font-weight:700}
.match .camp.perd{font-weight:400;color:var(--gris)}
.match .camp.perd .pts{color:var(--gris)}
.match .heure{font-family:var(--titre);font-size:24px;line-height:1;color:var(--marine);white-space:nowrap}
.match .statut{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);white-space:nowrap}
.match .lieu{font-size:13px;color:var(--gris);margin-top:8px;padding-top:8px;border-top:1px solid var(--trait-doux);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- Équipes ---------- */
.grille-equipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}   /* neuf équipes en F, douze en M : trois cartes par rangée */
.carte{min-width:0;background:var(--blanc);border:1px solid var(--trait);border-top:6px solid var(--marine);border-radius:0 0 var(--rayon) var(--rayon);padding:18px 20px 18px;display:block;transition:box-shadow .15s ease-out}
a.carte:hover{box-shadow:var(--ombre)}
.carte .univ{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.carte .surnom{font-family:var(--titre);font-size:30px;letter-spacing:.04em;line-height:1;color:var(--marine);margin:6px 0 16px}
.carte .fiche{font-family:var(--titre);font-size:34px;line-height:1;color:var(--marine)}
.carte .fiche small{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--gris);margin-left:8px}
.puces{display:flex;gap:4px;margin:12px 0 16px;min-height:22px;flex-wrap:wrap}
.puces span,.heros .forme span.v,.heros .forme span.d{font-family:var(--mono);font-size:12px;font-weight:500;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}
.puces .v,.heros .forme span.v{background:var(--vert-fond);color:var(--vert)}
.puces .d,.heros .forme span.d{background:var(--rouge-fond);color:var(--rouge)}
.carte hr{border:0;border-top:1px solid var(--trait-doux);margin:0 0 14px}
.carte .stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:8px}
.carte .stats b{display:block;font-family:var(--mono);font-size:17px;font-weight:500;color:var(--encre);white-space:nowrap}
.carte .stats span{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);white-space:nowrap}
.carte .stats b.plus{color:var(--vert)} .carte .stats b.moins{color:var(--rouge)}

/* ---------- Meneurs ---------- */
.recherche{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.recherche label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.recherche input{border:1px solid #9FB0BF;background:var(--blanc);border-radius:var(--rayon);min-height:44px;padding:0 14px;font:inherit;font-size:15px;width:300px;color:var(--encre)}
.recherche input::placeholder{color:var(--gris)}
.recherche input:focus-visible{outline-offset:0;border-color:var(--marine)}
.categories{display:none;gap:8px;overflow-x:auto;margin:0 -16px 16px;padding:2px 16px 6px;scrollbar-width:none}
.categories::-webkit-scrollbar{display:none}
.categories button{flex:none;background:var(--blanc);border:1px solid var(--trait);border-radius:999px;min-height:40px;padding:0 14px;font-size:13px;font-weight:500;color:var(--encre);white-space:nowrap}
.note{font-size:13px;color:var(--gris);margin:0 0 20px;max-width:75ch}
.grille-meneurs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.grille-meneurs .bloc{scroll-margin-top:72px}
/* Compilation : familles de statistiques, puis la note de lecture. */
.compil-outils{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;margin-bottom:20px}
.compil-outils .pilules button{min-height:38px;padding:0 16px}
.compil-outils .note{margin:0;flex:1 1 320px}
@media (max-width:640px){.grille-meneurs.compil .sec{display:none}}   /* colonnes secondaires masquées : la colonne classée reste à l'écran */

/* ---------- Blocs et tableaux ---------- */
.bloc{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);overflow:hidden}
.bloc header{background:var(--marine);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px}
.bloc header h3{font-family:var(--titre);font-size:22px;letter-spacing:.06em;margin:0;font-weight:400;line-height:1.1}
.bloc header h3 a{color:#9BDCF9;margin-left:10px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.bloc header h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.bloc header span{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#9BDCF9;text-align:right}
.table-wrap{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#B4C2CE transparent}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
tr{--ligne:var(--blanc)}
th,td{padding:10px 12px;white-space:nowrap;border-bottom:1px solid var(--trait-doux);text-align:right;background:var(--ligne)}
thead th,thead td{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);background:var(--entete);border-bottom:1px solid var(--trait);user-select:none}
tbody tr:last-child > *{border-bottom:0}
@media (hover:hover){tbody tr:hover{--ligne:var(--survol)}}
/* En-tête triable : le bouton occupe toute la cellule (cible large, atteignable au clavier). */
th[data-tri]{padding:0}
th .tri{display:block;width:100%;background:none;border:0;border-radius:0;margin:0;padding:10px 12px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;text-align:inherit;white-space:nowrap}
th .tri:hover{color:var(--encre)}
th .tri:focus-visible{outline-offset:-3px}
th.actif .tri{color:var(--bleu-texte);font-weight:500;box-shadow:inset 0 -2px 0 var(--bleu-texte)}
th.actif .tri::after{content:" ▾";font-size:11px}
th[aria-sort="ascending"] .tri::after{content:" ▴"}
th.g,td.g{text-align:left}
td.n{font-family:var(--mono)}
td.rang{font-family:var(--mono);color:var(--gris);width:2.5em}
td.eq{font-family:var(--mono);color:var(--gris);font-size:13px}
td.fort{font-weight:700;color:var(--marine)}
td.pct{color:var(--gris);font-size:13px}
td.n.frac{color:var(--gris)}
.grille-meneurs tbody tr:first-child{--ligne:var(--teinte)}
.grille-meneurs tbody tr:first-child td.g:not(.eq){font-weight:700}
tr.hors td{color:var(--gris);font-style:italic}
.bloc footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 18px;min-height:44px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);background:var(--entete);border-top:1px solid var(--trait)}
.bloc footer button{background:none;border:0;padding:8px 0;min-height:40px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--bleu-texte);font-weight:500}
.bloc footer button:hover{text-decoration:underline;text-underline-offset:3px}
tr.total-r{--ligne:var(--teinte)}
tr.total-r td{font-weight:700;color:var(--marine);border-top:2px solid var(--trait)}

/* ---------- Messages, avis et squelette de chargement ---------- */
.message{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);padding:24px 26px;max-width:680px}
.message.erreur{border-color:#E3B4B8}
.message h2,.message h3{font-family:var(--titre);font-size:24px;letter-spacing:.06em;color:var(--marine);margin:0 0 8px;font-weight:400;line-height:1.1}
.message.erreur h2,.message.erreur h3{color:var(--rouge)}
.message p{margin:0;color:var(--gris);font-size:15px;max-width:65ch}
.message p+p{margin-top:12px}
.message button{margin-top:16px;background:var(--bleu-texte);color:#fff;border:0;border-radius:var(--rayon);min-height:44px;padding:0 18px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.message button:hover{background:var(--marine)}
.avis{background:#FFF4E0;color:#6B4200;border-bottom:1px solid #F1D9A6;font-size:14px}
.avis .int{padding:10px 28px}
.squelette{background:var(--blanc);border:1px solid var(--trait-doux);border-radius:var(--rayon);padding:16px 18px;min-height:112px}
.grille-equipes .squelette{border-top:6px solid var(--trait);border-radius:0 0 var(--rayon) var(--rayon);min-height:190px}
.sq-l{height:12px;border-radius:6px;background:var(--fond);margin:10px 0;animation:sq-pulse 1.2s ease-in-out infinite}
.sq-l.c{width:55%} .sq-l.m{width:75%} .sq-l.g{width:40%;height:26px}
.sq-titre{height:20px;width:180px;border-radius:6px;background:var(--trait);margin:0 0 14px;animation:sq-pulse 1.2s ease-in-out infinite}
.sq-titre.clair{display:block;background:rgba(255,255,255,.35);width:320px;max-width:70vw;height:44px;margin:4px 0 12px}
@keyframes sq-pulse{0%,100%{opacity:.55}50%{opacity:1}}

/* ---------- Feuille de match : bandeau ---------- */
.heros.affiche .int{align-items:center;flex-wrap:wrap;gap:22px 48px}
.heros .principal{flex:1 1 420px;min-width:0}
/* Noms et pointage presque à la même taille (demande d'Alex, 1er octobre 2026). */
.heros .score-titre{display:flex;align-items:baseline;gap:8px 22px;flex-wrap:wrap;font-family:var(--titre);font-size:56px;line-height:.95;margin:0 0 10px;letter-spacing:.02em;font-weight:400}
.heros .score-titre .score{font-size:60px;letter-spacing:.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.bloc.deroulement td.g::first-letter{text-transform:uppercase}
.heros .score-titre a{border-radius:3px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:rgba(255,255,255,.45)}
.heros .score-titre a:hover{text-decoration-color:#fff}
.heros .faits{display:flex;flex-wrap:wrap;gap:6px 26px;margin:14px 0 0}
.heros .faits div{display:flex;align-items:baseline;gap:8px}
.heros .faits dt{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.heros .faits dd{margin:0;font-family:var(--mono);font-size:16px;font-weight:500}
/* Points par quart : petit tableau d'affichage, une ligne par équipe. */
.quarts-ligne{flex:0 1 auto;max-width:100%;overflow-x:auto}
.quarts-ligne:empty{display:none}
.quarts-ligne table{width:auto;font-family:var(--mono);font-size:15px}
.quarts-ligne th,.quarts-ligne td{background:none;color:#fff;border-bottom:1px solid rgba(255,255,255,.3);padding:8px 11px;min-width:42px;text-align:right}
.quarts-ligne thead th,.quarts-ligne thead td{font-size:12px;letter-spacing:.1em;border-bottom-color:rgba(255,255,255,.55)}
.quarts-ligne tbody th{font-family:var(--texte);font-size:15px;font-weight:600;text-align:left;padding-left:0;padding-right:22px}
.quarts-ligne td.tot{font-family:var(--titre);font-size:24px;line-height:1;padding-left:18px}
.quarts-ligne tbody tr:hover{--ligne:transparent}

.panneau .bloc{margin-bottom:22px}
/* En-tête à la couleur de l'équipe (--eqA / --eqB posées par match.js depuis une couleur validée). */
.bloc.equipe header{display:block;padding:0;background:none}
.bloc.equipe header .entete-equipe{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;width:100%;padding:12px 18px;color:#fff;text-decoration:none}
.bloc.equipe.a header .entete-equipe{background:var(--eqA);color:var(--eqA-texte)}
.bloc.equipe.b header .entete-equipe{background:var(--eqB);color:var(--eqB-texte)}
a.entete-equipe:hover{filter:brightness(1.1)}
a.entete-equipe:focus-visible{outline-offset:-4px;outline-color:currentColor}
.bloc.equipe header h3{display:flex;flex-direction:column;gap:2px}
.bloc.equipe header .droite{display:flex;align-items:center;gap:18px}
.bloc.equipe header .droite span{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:inherit}
.bloc.equipe header .droite .pts{font-family:var(--titre);font-size:32px;line-height:1;font-weight:400}

/* Grands tableaux (feuille de match, joueurs d'une équipe) : cellules resserrées, numéro et nom figés
   pendant le défilement horizontal — on ne perd plus de vue à qui appartient la ligne. */
.bloc.equipe th,.bloc.equipe td{padding:9px 9px}
.bloc.equipe th[data-tri]{padding:0}
.bloc.equipe th .tri{padding:10px 9px}
.bloc.equipe td.g:nth-child(2){min-width:150px}
.bloc.equipe thead th:nth-child(-n+2),.bloc.equipe tbody td:nth-child(-n+2):not([colspan]){position:sticky;z-index:1}
.bloc.equipe thead th:nth-child(-n+2){z-index:2}
.bloc.equipe thead th:nth-child(1),.bloc.equipe tbody td:nth-child(1):not([colspan]){left:0;width:46px;min-width:46px;max-width:46px}
.bloc.equipe thead th:nth-child(2),.bloc.equipe tbody td:nth-child(2):not([colspan]){left:46px;box-shadow:1px 0 0 var(--trait)}
#bloc-joueurs{border-top:5px solid var(--marine);border-radius:0 0 var(--rayon) var(--rayon)}   /* liseré du tableau des joueurs (borderTopColor posé par equipe.js) */
tr.partant td.g:first-child{font-weight:700}
tr.sep{--ligne:var(--entete)}
tr.sep td{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);text-align:left;padding:5px 12px;position:sticky;left:0}

/* Infobulle des en-têtes (data-titre) : au survol et au focus clavier. */
th[data-titre]{position:relative}
th[data-titre]:focus-within::before{content:attr(data-titre)}
@media (hover:hover){th[data-titre]:hover::before{content:attr(data-titre)}}
th[data-titre]::before{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);background:var(--marine);color:#fff;font-family:var(--texte);font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;padding:6px 10px;border-radius:4px;white-space:nowrap;z-index:5;box-shadow:0 4px 12px -4px rgba(0,41,63,.4);pointer-events:none}
th[data-titre]:nth-child(-n+2)::before{left:0;transform:none}
th[data-titre]:nth-last-child(-n+3)::before{left:auto;right:0;transform:none}

/* Dépliant « Abréviations ». */
.glossaire{padding:0 18px;border-top:1px solid var(--trait)}
.glossaire summary{list-style:none;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--bleu-texte);font-weight:500;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:44px;padding:6px 0}
.glossaire summary::-webkit-details-marker{display:none}
.glossaire summary::before{content:"›";display:inline-block;font-size:15px;line-height:1;transition:transform .15s ease-out}
.glossaire[open] summary::before{transform:rotate(90deg)}
.glossaire summary .tri{color:var(--gris);font-weight:400;margin-left:auto;text-align:right;text-transform:none;letter-spacing:.02em}
.glossaire summary:hover{text-decoration:underline;text-underline-offset:3px}
.glossaire dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 24px;margin:4px 0 16px}
.glossaire dl div{display:flex;gap:10px;align-items:baseline;font-size:13px}
.glossaire dt{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--marine);letter-spacing:.04em;min-width:46px}
.glossaire dd{margin:0;color:var(--gris)}

/* Pointage par quart et cumul : tableaux libellé / valeurs, bornés pour que l'œil ne traverse pas 1 400 px. */
#p-quarts .bloc,.bloc.cumul{max-width:860px}
#p-quarts :is(th,td):first-child,.bloc.cumul :is(th,td):first-child{padding-left:18px}
#p-quarts :is(th,td):last-child,.bloc.cumul :is(th,td):last-child{padding-right:18px}
table.quarts td{font-size:16px}
table.quarts td.n{font-size:18px}
table.quarts td.g{width:40%}

/* ---------- Comparatif en miroir ---------- */
.bloc.comparatif{max-width:980px}
.bloc.comparatif table{table-layout:fixed}
.bloc.comparatif thead th{font-family:var(--titre);font-size:20px;letter-spacing:.06em;text-transform:none;padding:10px 18px}
.bloc.comparatif thead th.a{color:var(--eqA-texte);background:var(--eqA);text-align:right}
.bloc.comparatif thead th.b{color:var(--eqB-texte);background:var(--eqB);text-align:left}
.bloc.comparatif thead td.lib{width:32%;background:var(--entete)}
.bloc.comparatif td.va,.bloc.comparatif td.vb{width:17%;font-family:var(--mono);font-size:15px;font-weight:500;color:var(--encre);padding:11px 18px}
.bloc.comparatif td.va{text-align:right}
.bloc.comparatif td.vb{text-align:left}
.bloc.comparatif td small{display:block;color:var(--gris);font-size:12px;font-weight:400}
.bloc.comparatif td.jauge{width:17%;padding:0 2px}
.bloc.comparatif .jauge svg{display:block;width:100%;height:6px}
.bloc.comparatif .jauge .fond{fill:#E4EAEF}
.bloc.comparatif .jauge.a .val{fill:var(--eqA)}
.bloc.comparatif .jauge.b .val{fill:var(--eqB)}
.bloc.comparatif th.lib{text-align:center;font-family:var(--texte);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--encre);white-space:normal;line-height:1.3;padding:9px 6px}
.bloc.comparatif tr.groupe{--ligne:var(--entete)}
.bloc.comparatif tr.groupe td{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);padding:6px 12px;text-align:center}

/* ---------- Fiche d'équipe ---------- */
.section{margin-bottom:42px}
.heros#heros{border-top:8px solid transparent}
.heros .nom-complet{font-size:17px;font-weight:500;margin-bottom:6px}
.bloc.cumul td.g{width:48%}
.bloc.cumul td.n{font-family:var(--mono);font-size:15px}
.bloc.cumul tr.groupe{--ligne:var(--entete)}
.bloc.cumul tr.groupe td{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);padding:6px 12px;text-align:left}
td.n.moy{background:color-mix(in srgb,var(--ligne) 60%,var(--entete))}
thead th.moy{background:#EAF0F5}
.heros .forme{display:flex;align-items:center;gap:4px;margin-top:12px;flex-wrap:wrap}
.heros .forme .etiquette{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-right:8px}
/* Sélecteur de match : reste sous la main pendant qu'on parcourt le tableau des joueurs. */
.selecteur{background:var(--blanc);border-bottom:1px solid var(--trait);position:sticky;top:0;z-index:6}
.selecteur .int{display:flex;align-items:center;gap:14px;padding-top:10px;padding-bottom:10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#B4C2CE transparent}
.selecteur .etiquette{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);white-space:nowrap}
.pilles{display:flex;gap:8px}
.pille{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);min-height:48px;padding:7px 14px;text-align:left;white-space:nowrap;color:var(--encre);transition:border-color .15s ease-out}
.pille:hover{border-color:var(--bleu-texte)}
.pille .adv{font-family:var(--titre);font-size:19px;letter-spacing:.04em;line-height:1}
.pille .meta{font-family:var(--mono);font-size:12px;color:var(--gris);letter-spacing:.02em}
.pille .meta b{font-weight:500;color:var(--encre)}
.pille.v .meta b{color:var(--vert)}
.pille.d .meta b{color:var(--rouge)}
.pille[aria-pressed="true"]{background:var(--marine);border-color:var(--marine);color:#fff}
.pille[aria-pressed="true"] .meta,.pille[aria-pressed="true"] .meta b{color:#fff}

/* ---------- Jeu par jeu ---------- */
.jpj-outils{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--trait);background:var(--entete)}
.jpj-quarts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jpj-quarts .etiquette{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.jpj-pilules{display:flex;gap:6px;flex-wrap:wrap}
.jpj-pilules button{background:var(--blanc);border:1px solid var(--trait);color:var(--encre);border-radius:999px;min-height:36px;min-width:52px;padding:0 14px;font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.jpj-pilules button:hover{border-color:var(--bleu-texte)}
.jpj-pilules button[aria-pressed="true"]{background:var(--marine);border-color:var(--marine);color:#fff}
.jpj-filtre{display:flex;align-items:center;gap:10px;min-height:40px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);cursor:pointer;user-select:none}
.jpj-filtre input{width:18px;height:18px;margin:0}
.jpj-ligne{display:grid;grid-template-columns:58px 118px 1fr 92px;gap:14px;align-items:baseline;padding:8px 18px;border-bottom:1px solid var(--trait-doux);font-size:14px}
.jpj-temps{font-family:var(--mono);font-size:12px;color:var(--gris);letter-spacing:.04em}
.jpj-equipe{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--marine);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jpj-equipe::before{content:"";flex:none;width:10px;height:10px;border-radius:2px;background:var(--trait)}
.jpj-ligne.a .jpj-equipe::before{background:var(--eqA)}
.jpj-ligne.b .jpj-equipe::before{background:var(--eqB)}
.jpj-texte{color:var(--encre);line-height:1.4;overflow-wrap:anywhere}
.jpj-texte .detail{color:var(--gris);font-weight:400}
.jpj-pointage{font-family:var(--mono);font-size:13px;text-align:right;color:var(--gris);white-space:nowrap}
.jpj-pointage b{font-weight:700;color:var(--encre)}
.jpj-ligne.panier{background:#F0F7FC}
.jpj-ligne.panier .jpj-texte{font-weight:600}
.jpj-ligne.panier.trois .jpj-texte{font-weight:700}
.jpj-ligne.neutre .jpj-texte{color:var(--gris);font-style:italic}
.jpj-ligne.sub .jpj-texte{color:var(--gris);font-size:13px}
.jpj-fin{padding:11px 18px;background:var(--marine);color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.jpj-fin b{font-weight:500}
.jpj-note{padding:10px 18px;font-size:13px;color:var(--gris);border-top:1px solid var(--trait)}

/* ---------- Pied ---------- */
.pied{background:var(--blanc);border-top:1px solid var(--trait)}
.pied .int{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.pied .logo{height:20px;width:auto;display:block}
.pied a{margin-left:auto;color:var(--bleu-texte);font-weight:500;text-transform:none;letter-spacing:.04em;padding:10px 0}
.pied a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  .sq-l,.sq-titre{animation:none}
  *,*::before,*::after{transition:none !important;scroll-behavior:auto !important}
}

/* ---------- Écrans tactiles : cibles de 44 px ---------- */
@media (pointer:coarse){
  .pilules button{min-height:40px}
  .jpj-pilules button{min-height:44px}
  .titre-section .saut{min-height:44px}
  .retour{padding:14px 4px}
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .heros h1{font-size:52px}
  .compteurs div{padding:0 20px}
}
@media (max-width:820px){
  .int{padding:0 16px}
  .haut .int{min-height:60px;gap:10px}
  .marque .logo{height:24px}
  .marque .saison{display:none}
  .heros .int{flex-direction:column;align-items:flex-start;padding-top:18px;padding-bottom:18px;gap:14px}
  .heros h1{font-size:40px;margin-bottom:4px}
  .heros .sous{font-size:12px;letter-spacing:.1em}
  .compteurs div{padding:0 16px;text-align:left}
  .compteurs div:first-child{padding-left:0}
  .compteurs b{font-size:28px}
  .compteurs span{letter-spacing:.08em}
  .heros.affiche .int{gap:14px}
  .heros .principal{flex:none;width:100%}
  .heros .score-titre{font-size:38px;gap:4px 14px}
  .heros .score-titre .score{font-size:41px}
  .heros .faits{margin-top:10px;gap:4px 18px}
  .heros .faits dd{font-size:14px}
  .quarts-ligne{width:100%}
  .quarts-ligne table{width:100%;font-size:14px}
  .quarts-ligne th,.quarts-ligne td{padding:6px 8px;min-width:34px}
  .quarts-ligne td.tot{font-size:20px}
  main .int{padding-top:24px;padding-bottom:48px}
  .titre-section{font-size:24px;margin-bottom:16px;gap:12px}
  .grille-meneurs{grid-template-columns:1fr;gap:16px}
  .categories{display:flex}
  .grille-equipes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .avis .int{padding:10px 16px}
  .onglets .int{gap:0;padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
  .onglets button{min-height:48px;padding:0 13px;font-size:13px}
  /* Téléphone : seul le nom reste figé (le numéro défile), pour laisser de la place aux chiffres. */
  .bloc.equipe thead th:nth-child(1),.bloc.equipe tbody td:nth-child(1):not([colspan]){position:static}
  .bloc.equipe thead th:nth-child(2),.bloc.equipe tbody td:nth-child(2):not([colspan]){left:0}
  .bloc.equipe td.g:nth-child(2){min-width:0;max-width:132px;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:640px){
  .droite{gap:8px}
  .pilules button{padding:0 9px}
  .grille-matchs{grid-template-columns:1fr;gap:10px}
  .carte{padding:14px 14px 16px}
  .carte .surnom{font-size:24px;margin-bottom:12px}
  .carte .fiche{font-size:28px}
  .carte .stats b{font-size:15px}
  .carte .stats span{letter-spacing:.04em}
  .recherche{flex-wrap:wrap;gap:8px}
  .recherche input{width:100%}
  th,td{padding:9px 8px}
  th .tri{padding:11px 8px}
  .bloc header{padding:10px 14px}
  .bloc footer{padding:4px 14px}
  table.quarts td{font-size:14px}
  table.quarts td.n{font-size:16px}
  .bloc.comparatif thead th{font-size:17px;padding:9px 10px}
  .bloc.comparatif td.va,.bloc.comparatif td.vb{font-size:14px;padding:10px 6px;width:24%}
  .bloc.comparatif tr.c-reb td.va,.bloc.comparatif tr.c-reb td.vb{font-size:13px;white-space:normal}
  .bloc.comparatif td small{font-size:12px;letter-spacing:-.03em;white-space:normal;line-height:1.3}   /* le moment de la plus grande avance (« Q4 · 5:57 ») se replie sur deux lignes au lieu d'être coupé (5 octobre 2026) */
  .bloc.comparatif td.jauge{width:9%}
  .bloc.comparatif thead td.lib{width:34%}
  .heros .sous{letter-spacing:.04em}
  .bloc.comparatif th.lib{font-size:13px}
  .bloc.cumul td.g{width:auto;white-space:normal}
  .bloc.cumul td.n{font-size:14px}
  .message{padding:20px 18px}
  .glossaire{padding:0 14px}
  .jpj-ligne{grid-template-columns:52px 1fr auto;grid-template-areas:"temps equipe pointage" "texte texte texte";gap:4px 12px;padding:9px 14px}
  .jpj-temps{grid-area:temps}.jpj-equipe{grid-area:equipe}.jpj-pointage{grid-area:pointage}.jpj-texte{grid-area:texte}
  .jpj-outils{padding:10px 14px}
  .jpj-fin,.jpj-note{padding-left:14px;padding-right:14px}
  .pied a{margin-left:0;width:100%}
}
