/* Temps mort, la ligue entre amis : le tableau de bord « La retransmission » (direction B, 4/11, ligue-tableau.js).
   La ligue comme une émission de sport : l'habillage d'antenne (le bug de la ligue, le bandeau qui défile), le rail du
   menu, des colonnes façon Football Manager, les couleurs des clubs en aplats francs, des chiffres en grand. */
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlow-condensed-700-italic.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}
html.tbxOn,html.tbxOn body{overflow:hidden;overscroll-behavior:none}
.tbx{
  --tf:#05070a;--tp:#0b1016;--tp2:#111922;--tt:#1a2430;--tt2:#2a3644;--blanc:#f3f5f8;--encre:#0a0d12;
  --or:#ffd23f;--orange:#ff7a1a;--rouge:#ff3d55;--vert:#2fd27a;--bleu:#4da3ff;--biais:.6em;
  position:fixed;inset:0;z-index:21;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
  grid-template-areas:"tete tete" "rail ecran";background:var(--tf);color:var(--texte);
  font:clamp(14px,calc(7px + .52vw),20px)/1.35 var(--lecture);padding-top:env(safe-area-inset-top)
}
:where(.tbx) button{font:inherit;color:inherit}
.tbx .pt{display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--rouge);flex:none}
/* ------------------------------------------------------------------ l'habillage d'antenne */
.tbxTete{grid-area:tete;z-index:3;display:flex;align-items:stretch;gap:0;min-height:max(46px,3.1em);background:#000;border-bottom:2px solid var(--orange);padding-right:max(.4em,env(safe-area-inset-right))}
.tbxRond{flex:none;display:grid;place-items:center;width:max(44px,2.85em);padding-left:env(safe-area-inset-left);box-sizing:content-box;border:0;background:#000;color:var(--texte);font-size:1.1em;text-decoration:none}
.tbxRond:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
.tbxBug{flex:none;display:flex;flex-direction:column;justify-content:center;max-width:16em;min-width:0;padding:0 1.6em 0 .7em;background:var(--orange);color:#140800;clip-path:polygon(0 0,100% 0,calc(100% - 1em) 100%,0 100%)}
.tbxBug b{font:800 italic 1.12em/1 var(--titre);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxBug small{font:700 .86em/1.15 var(--titre);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
.tbxBug .code{color:inherit;letter-spacing:.1em}
.tbxLive{flex:none;display:flex;align-items:center;gap:.45em;margin-left:-.6em;padding:0 1.3em 0 1.2em;border:0;background:var(--rouge);color:#fff;clip-path:polygon(.8em 0,100% 0,calc(100% - .8em) 100%,0 100%);font:700 .9em var(--titre);text-transform:uppercase;letter-spacing:.04em}
.tbxLive b{font-weight:800;background:#000;padding:.15em .45em}
.tbxLive .pt{background:#fff;animation:pouls 1.2s infinite}
.tbxTicker{flex:1 1 auto;min-width:0;position:relative;display:flex;align-items:center;overflow:hidden;margin-left:.2em;-webkit-mask-image:linear-gradient(90deg,transparent,#000 1.2em,#000 calc(100% - 1.2em),transparent);mask-image:linear-gradient(90deg,transparent,#000 1.2em,#000 calc(100% - 1.2em),transparent)}
.tbxTickV{width:100%;overflow:hidden}
.tbxPiste{display:flex;width:max-content}
.tbxTkG{display:flex;flex:none}
.tbxTk{flex:none;display:inline-flex;align-items:center;gap:.45em;padding:0 1.4em 0 0;white-space:nowrap;font:600 1em/1 var(--titre);text-transform:uppercase;letter-spacing:.03em;color:var(--texte)}
.tbxTk i{font-style:normal;font-weight:800;font-size:.86em;padding:.22em .45em;background:var(--tt2);color:var(--texte)}
.tbxTk b{font-weight:800;font-variant-numeric:tabular-nums}
.tbxTk small{font-size:.86em;color:var(--texte3)}
.tbxTk.live i{background:var(--rouge);color:#fff}.tbxTk.leader i{background:var(--orange);color:#140800}.tbxTk.avenir i{background:var(--blanc);color:var(--encre)}
.tbxTk.cham i{background:#e91e63;color:#fff}.tbxTk.stat i{background:var(--or);color:#1a1300}.tbxTk.cham b{text-transform:none;font-weight:700}
.tbxTete .etatReseau{flex:none;align-self:center;margin-left:.5em;border-color:var(--tt2)}
/* ------------------------------------------------------------------ le rail du menu */
.tbxRail{grid-area:rail;z-index:2;display:flex;flex-direction:column;gap:.15em;width:4.7em;padding:.4em 0 calc(.4em + env(safe-area-inset-bottom)) env(safe-area-inset-left);box-sizing:content-box;background:#000;border-right:1px solid var(--tt);overflow-y:auto;scrollbar-width:none}
.tbxRail::-webkit-scrollbar{display:none}
.tbxRail button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25em;min-height:3.6em;padding:.3em .1em;border:0;background:transparent;color:var(--texte3);font:700 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.04em;text-align:center}
.tbxRail button span{font-size:1em}
.tbxRail svg{width:1.85em;height:1.85em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tbxRail button[aria-current="page"]{color:var(--blanc);background:linear-gradient(90deg,color-mix(in srgb,var(--orange) 22%,transparent),transparent)}
.tbxRail button[aria-current="page"]::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;background:var(--orange)}
.tbxRail button[aria-current="page"] svg{color:var(--orange)}
.tbxRail .pt{position:absolute;top:.6em;right:.9em;animation:pouls 1.2s infinite}
.tbxRail button:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
@media (hover:hover) and (pointer:fine){.tbxRail button:hover:not([aria-current="page"]){color:var(--texte)}}
/* ------------------------------------------------------------------ l'écran */
.tbxEcran{grid-area:ecran;min-width:0;min-height:0;overflow:hidden;padding-right:env(safe-area-inset-right)}
.tbxEcran.ancien{overflow:auto;overscroll-behavior:contain;padding:1em max(1em,env(safe-area-inset-right)) calc(2em + env(safe-area-inset-bottom)) 1em}
.tbxEcran.ancien .grille.tiers{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
/* (9/11) avant la saison sur un téléphone couché étroit (740 px et moins) : le plan de jeu, dans son tiers de 160 px,
   se lisait en colonne de trois mots et les trois rythmes faisaient 38 px de large. Les deux colonnes se rapprochent
   et les rythmes s'empilent. */
@media (max-width:760px){
  .tbxEcran.ancien .grille.tiers{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:.7rem}
  .tbxEcran.ancien .grille.tiers .plans.trois{grid-template-columns:minmax(0,1fr)}
  .tbxEcran.ancien .grille.tiers .carte{padding:.75rem .8rem}
  /* (aucun texte sous 12 px : les sous-titres des cartes du plan et des chiffres du club étaient à 11,5 px) */
  .tbxEcran.ancien .plan small{font-size:max(12px,.86em)}
  .tbxEcran.ancien .chiffres small{font-size:max(12px,.72rem)}
  /* dans cette colonne étroite, une ligne de l'effectif n'avait plus de place pour le nom du joueur (il disparaissait
     entre la note et le prix) : le poste laisse sa place, le prix passe au-dessus de « Vendre », le nom et le nom
     d'un club peuvent tenir sur deux lignes */
  .tbxEcran.ancien .grille.tiers .jr{grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem;padding:.45rem .55rem}
  .tbxEcran.ancien .grille.tiers .jr .poste{display:none}
  .tbxEcran.ancien .grille.tiers .jr .droite{flex-direction:column;align-items:flex-end;gap:.1rem}
  .tbxEcran.ancien .grille.tiers .jr .droite .prix{font-size:1rem}
  .tbxEcran.ancien .grille.tiers .jr .qui b,.tbxEcran.ancien .grille.tiers .jr b{white-space:normal;overflow-wrap:anywhere}
}
.tbxAvis{margin:0}
.tbxAvis .avis{margin:0;border-radius:0;border-left:0;background:var(--or);color:#1a1300;font-weight:600;padding:.45em 1em}
.tbxAvis .avis.ko{background:var(--rouge);color:#fff}
.tbxAvis .avis .lien{color:inherit;min-height:2.4em}
.tbxEcran:not(.ancien){display:flex;flex-direction:column}
.tbxCols{flex:1 1 auto;min-height:0;display:grid;gap:0}
.tbxClub{grid-template-columns:minmax(0,1.12fr) minmax(0,.98fr) minmax(0,.9fr)}
.tbxClassement{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.tbxCol{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.6em .7em calc(1.2em + env(safe-area-inset-bottom));border-right:1px solid var(--tt);scrollbar-width:thin;scrollbar-color:var(--tt2) transparent}
.tbxCol:last-child{border-right:0}
.tbxColMatch{container:colMatch / inline-size}
.tbxColPlan{container:colPlan / inline-size}
.tbxColClub{container:colClub / inline-size}
.tbxColEff{container:colEff / inline-size}
.tbxColL{container:colL / inline-size}
/* le titre d'une partie : un bandeau d'antenne blanc, coupé en biais, et un filet */
.tbxTitre{display:flex;align-items:center;gap:.6em;margin:1em 0 .5em;font-size:1em}
.tbxTitre:first-child{margin-top:.2em}
/* (6/11, l'épure) plus de bandeau blanc en biais à chaque partie : le titre en petites capitales, un filet fin ; le blanc
   en biais reste aux seuls héros (l'affiche, le leader) */
.tbxTitre>span:first-child{flex:none;padding:0;color:var(--texte2);font:700 .86em/1.1 var(--titre);text-transform:uppercase;letter-spacing:.08em}
.tbxTitre::after{content:"";order:1;flex:1;height:1px;background:var(--tt)}
.tbxTitre>*:not(:first-child){order:2;flex:none}
.tbxTitre i{font:800 italic .95em var(--titre);color:var(--texte2);font-variant-numeric:tabular-nums}
.tbxLien{min-height:max(44px,2.95em);padding:0 .2em;border:0;background:none;color:var(--orange2);font:700 .86em var(--titre);text-transform:uppercase;letter-spacing:.05em;text-decoration:underline;text-underline-offset:3px}
.tbxNote{margin:.4em 0 0;color:var(--texte3);font-size:.86em;line-height:1.35}
.tbxNote b{color:var(--texte2)}
.tbxTexte{margin:.55em 0 0;color:var(--texte2);font-size:.88em}
.tbxTexte b{color:var(--texte)}
.tbxN{font-variant-numeric:tabular-nums}
/* ------------------------------------------------------------------ Mon club : la carte d'identité du club */
.tbxIdent{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7em;padding:.75em .8em;background:linear-gradient(112deg,var(--c1) 0 76%,var(--c2) 76% 80%,var(--c1) 80% 85%,var(--c2) 85% 86.5%,var(--c1) 86.5%);color:var(--t);clip-path:polygon(0 0,100% 0,100% calc(100% - .9em),calc(100% - .9em) 100%,0 100%)}
.tbxIdent .blason.grand{width:3.4em;height:3.4em;font-size:1.15em;box-shadow:0 0 0 2px rgba(0,0,0,.25)}
.tbxIdentT{display:flex;flex-direction:column;min-width:0}
.tbxIdentT small{font:700 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.08em;opacity:.8}
.tbxIdentT b{font:800 italic 1.5em/1 var(--titre);text-transform:uppercase;margin:.12em 0;overflow-wrap:anywhere;text-shadow:0 1px 3px color-mix(in srgb,var(--c1) 70%,transparent)}
.tbxIdentT span{font-size:.86em;opacity:.9}
.tbxIdentG{display:flex;flex-direction:column;align-items:center;padding:.15em .55em;background:#000;color:#fff;clip-path:polygon(.45em 0,100% 0,calc(100% - .45em) 100%,0 100%)}
.tbxIdentG b{font:800 italic 2.3em/1 var(--titre);font-variant-numeric:tabular-nums}
.tbxIdentG small{font:700 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.06em;color:var(--or)}
.tbxSaison{display:grid;grid-template-columns:repeat(4,minmax(0,auto));justify-content:space-between;gap:.3em .8em;margin-top:.5em;padding:.5em .7em;background:var(--tp);border:1px solid var(--tt)}
.tbxSaison>div{display:flex;flex-direction:column;gap:.1em;min-width:0}
.tbxSaison small{font:700 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.06em;color:var(--texte3)}
.tbxSaison b{font:800 italic 1.55em/1 var(--titre);font-variant-numeric:tabular-nums;white-space:nowrap}
.tbxSaison b sup{font-size:.66em;vertical-align:.55em;margin-left:.05em}
.tbxSaison b.mot{font-size:1.15em;text-transform:uppercase;line-height:1.3}
.tbxSaison i{font-style:normal;font-size:.86em;color:var(--texte3)}
.tbxForme{display:inline-flex;gap:.18em;align-items:center}
.tbxForme i{display:inline-grid;place-items:center;width:1.45em;height:1.45em;font:800 .9em/1 var(--titre);font-style:normal;color:#fff}
.tbxForme i.v{background:#169c55}.tbxForme i.d{background:#c42a3d}
/* les cartes de joueurs, façon collection : en ligne dans une colonne étroite, debout quand elle est large */
.tbxCartes{display:flex;flex-direction:column;gap:.3em}
.tbxJ{position:relative;display:grid;grid-template-columns:2.9em minmax(0,1fr) auto;grid-template-areas:"num nom ovr" "num st prix";column-gap:.6em;row-gap:.15em;align-items:center;min-height:3.6em;padding:.3em .55em .3em 0;background:var(--tp);border:1px solid var(--tt)}
.tbxJNum{grid-area:num;align-self:stretch;margin:-.3em 0;display:grid;place-items:center;background:linear-gradient(155deg,var(--c1) 0 62%,var(--c2) 62% 70%,var(--c1) 70%);color:var(--t);clip-path:polygon(0 0,100% 0,calc(100% - .45em) 100%,0 100%)}
.tbxJNum b{font:800 italic 1.5em/1 var(--titre);text-shadow:0 1px 0 rgba(0,0,0,.15)}
.tbxJOvr{grid-area:ovr;display:flex;flex-direction:column;align-items:flex-end;gap:.15em;justify-self:end}
.tbxJOvr b{display:inline-grid;place-items:center;min-width:1.9em;height:1.7em;padding:0 .2em;background:var(--tt2);color:var(--texte);font:800 italic 1.15em/1 var(--titre);clip-path:polygon(.3em 0,100% 0,calc(100% - .3em) 100%,0 100%)}
.tbxJ.n90 .tbxJOvr b{background:#ffd23f;color:#1a1300}.tbxJ.n85 .tbxJOvr b{background:#2fd27a;color:#03140a}.tbxJ.n80 .tbxJOvr b{background:#4da3ff;color:#020c18}
.tbxJOvr small{font:700 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte3)}
.tbxJNom{grid-area:nom;display:flex;flex-direction:column;min-width:0}
.tbxJNom b{font:800 1.02em/1.05 var(--titre);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxJNom small{font-size:.86em;color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxJNom .tbxJTr{color:var(--or)}
.tbxJSt{grid-area:st;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .5em;font-size:.86em;color:var(--texte3)}
.tbxJSt i{display:none}
@container colEff (min-width:27em){.tbxJSt i{display:inline}}
.tbxJSt b{font:800 1.15em var(--titre);color:var(--texte);font-variant-numeric:tabular-nums}
.tbxJSt i{font-style:normal}
.tbxJPrix{grid-area:prix;justify-self:end;font:700 .86em var(--titre);color:var(--texte3);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.tbxJ.star{border-color:color-mix(in srgb,var(--or) 45%,var(--tt))}
@container colEff (min-width:27em){
  .tbxCartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.4em,1fr));gap:.55em}
  .tbxJ{grid-template-columns:minmax(0,1fr);grid-template-areas:"num" "nom" "st" "prix";align-items:start;row-gap:.35em;padding:0 0 .55em;min-height:0}
  .tbxJNum{margin:0;height:5.6em;place-items:center end;padding-right:.35em;clip-path:polygon(0 0,100% 0,100% calc(100% - .8em),calc(100% - .8em) 100%,0 100%)}
  .tbxJNum b{font-size:3.4em;opacity:.95}
  .tbxJOvr{position:absolute;top:.45em;left:.45em;align-items:flex-start;gap:.25em}
  .tbxJOvr small{color:var(--t);opacity:.9}
  .tbxJNom,.tbxJSt,.tbxJPrix{padding:0 .6em}
  .tbxJPrix{justify-self:start}
  .tbxJ.star{grid-column:span 2}
  .tbxJ.star .tbxJNum b{font-size:4.2em}
}
.tbxBloc{margin-top:1em;padding:.6em .7em;background:var(--tp);border:1px solid var(--tt)}
.tbxBloc h4{margin:0;font:800 italic .95em var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte2)}
.tbxRang{display:flex;flex-wrap:wrap;gap:.45em;margin-top:.55em}
.tbx .bt.petit{min-height:max(44px,2.95em);font-size:.95em;padding:.3em .9em;border-radius:0}
.tbx .bt{border-radius:0}
.tbx .qr.qrClub{width:10em;height:10em}
/* le héros : le prochain match en affiche */
.tbxAffiche{position:relative;background:var(--tp);border:1px solid var(--tt);padding-bottom:.6em}
.tbxAffTete{display:flex;align-items:center;justify-content:space-between;gap:.6em;padding:.45em .6em;font:700 .86em/1.1 var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte2)}
.tbxAffTete>span:last-child{text-align:right}
.tbxPastille{flex:none;display:inline-flex;align-items:center;gap:.4em;padding:.3em 1em .3em .55em;background:var(--orange);color:#140800;font:800 italic 1.05em/1 var(--titre);clip-path:polygon(0 0,100% 0,calc(100% - .55em) 100%,0 100%)}
.tbxPastille.rouge{background:var(--rouge);color:#fff}
.tbxPastille.rouge .pt{background:#fff;animation:pouls 1.2s infinite}
.tbxDuel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.tbxCamp{display:flex;align-items:center;gap:.5em;min-width:0;min-height:4.4em;padding:.55em 1.6em .55em .65em;background:var(--c);color:var(--t);clip-path:polygon(0 0,100% 0,calc(100% - 1.1em) 100%,0 100%)}
.tbxCamp.ext{flex-direction:row-reverse;text-align:right;margin-left:-.8em;padding:.55em .65em .55em 1.6em;clip-path:polygon(1.1em 0,100% 0,100% 100%,0 100%)}
.tbxCamp .blason{width:2.3em;height:2.3em;font-size:.86em;box-shadow:0 0 0 2px rgba(0,0,0,.2)}
.tbxCampT{display:flex;flex-direction:column;min-width:0}
.tbxCampT b{font:800 italic 1.12em/1 var(--titre);text-transform:uppercase;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tbxCampT small{font-size:.86em;opacity:.85;margin-top:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxBilans{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5em;padding:.4em .6em 0;font:700 .86em var(--titre);text-transform:uppercase;letter-spacing:.04em;color:var(--texte2)}
.tbxBilans b{font:800 italic 1.25em var(--titre);color:var(--texte);font-variant-numeric:tabular-nums}
.tbxBilans>span:last-child{text-align:right}
.tbxBilans i{font-style:normal;color:var(--texte3);font-size:1em}
.tbxPlus{margin-top:.5em;color:var(--texte3);font-size:.86em}
.tbxPlus summary{min-height:max(44px,2.95em);display:flex;align-items:center;cursor:pointer;color:var(--orange2);font:700 1.05em var(--titre);text-transform:uppercase;letter-spacing:.04em}
.tbxPlus p{margin:.2em 0 0}
.tbxCampSc{margin-left:auto;font:800 italic 2.4em/1 var(--titre);font-variant-numeric:tabular-nums}
.tbxCamp.ext .tbxCampSc{margin-left:0;margin-right:auto}
.tbxVs{position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:2.5em;height:2.5em;padding:0 .4em;background:#000;color:var(--or);font:800 italic 1em/1 var(--titre);clip-path:polygon(.45em 0,100% 0,calc(100% - .45em) 100%,0 100%);pointer-events:none}
.tbxDuel:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.tbxCoup{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.2em .7em;margin:.55em .6em 0}
.tbxCoup small,.tbxCoup span{font:700 .86em var(--titre);text-transform:uppercase;letter-spacing:.06em;color:var(--texte3)}
.tbxCompte{font:800 italic 2.3em/1 var(--titre);font-variant-numeric:tabular-nums;color:var(--or);letter-spacing:.01em}
.tbxCote{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2em .7em;margin:.55em .6em 0;padding:.5em .7em;border:1px dashed var(--tt2);background:repeating-linear-gradient(135deg,transparent 0 .55em,rgba(255,255,255,.035) .55em 1.1em)}
.tbxCote b{font:800 italic .95em var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte2)}
.tbxCote span{font-size:.86em;color:var(--texte3)}
.tbxAffiche>.tbxNote{margin:.55em .6em 0}
.tbxAffiche .tbxGo{margin:.6em .6em 0;width:calc(100% - 1.2em);min-height:3em}
.tbxAffVide{margin:.4em .6em;color:var(--texte2)}
/* tes cartes : attaque, défense, rythme, posées comme trois cartes */
.tbxJeu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45em}
.tbxCarteJeu{--c:var(--orange);display:flex;flex-direction:column;align-items:flex-start;gap:.25em;min-height:4.9em;padding:.45em .55em;border:2px solid var(--c);background:linear-gradient(180deg,color-mix(in srgb,var(--c) 26%,#0b0d12) 0 1.75em,color-mix(in srgb,var(--c) 10%,#0b0d12) 1.75em);text-align:left;cursor:pointer}
.tbxCarteJeu.def{--c:var(--bleu)}.tbxCarteJeu.ryt{--c:var(--or)}
.tbxCarteJeu small{font:800 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.07em;color:color-mix(in srgb,var(--c) 70%,#fff)}
.tbxCarteJeu b{font:800 italic 1.12em/1.05 var(--titre);text-transform:uppercase;color:#fff;overflow-wrap:anywhere}
.tbxCarteJeu i{font-style:normal;font-size:.86em;font-weight:700;color:var(--or)}
.tbxCarteJeu i.bof{color:var(--texte3)}
.tbxCarteJeu:focus-visible{outline:2px solid #fff;outline-offset:2px}
.tbxCarteJeu.tbxPlan{grid-column:1 / -1}
.tbxPrevenir{margin-top:1em}
.tbx .carte{background:var(--tp);border:1px solid var(--tt);border-radius:0;padding:.7em .8em}
.tbx .carte h3{font:800 italic 1.05em var(--titre);text-transform:uppercase;letter-spacing:.04em;color:var(--texte2)}
.tbx .carte .sous{font-size:.86em;color:var(--texte2)}
.tbx .carte .etiq{font-size:.86em}
/* la colonne de la ligue : le classement en bref et les nouvelles */
.tbxBref{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.tbxBref li{display:grid;grid-template-columns:1.7em .5em 2.6em minmax(0,1fr) auto 2.5em;align-items:center;gap:.4em;min-height:2.05em;padding-right:.4em;background:var(--tp);font-size:.92em}
.tbxBref .r{display:grid;place-items:center;align-self:stretch;background:var(--tt);font:800 italic 1.05em/1 var(--titre);color:var(--texte2)}
.tbxBref li.q .r{background:var(--blanc);color:var(--encre)}
.tbxBref .chip{align-self:stretch;margin:.3em 0;background:linear-gradient(180deg,var(--c1) 0 60%,var(--c2) 60%)}
.tbxBref .s{font:800 1.02em/1 var(--titre);letter-spacing:.02em}
.tbxBref .n{font-size:.94em;color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxBref .vd{font:800 1.05em var(--titre);font-variant-numeric:tabular-nums}
.tbxBref .df{font:700 .95em var(--titre);text-align:right;color:var(--texte3);font-variant-numeric:tabular-nums}
.tbxBref .df.plus{color:var(--vert)}.tbxBref .df.moins{color:var(--rouge)}
.tbxBref li.fin{box-shadow:0 2px 0 var(--orange)}
.tbxBref li.moi{background:color-mix(in srgb,var(--orange) 16%,var(--tp))}
.tbxBref li.moi .s{color:var(--orange2)}
.tbxFil{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.tbxFil li>*{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.55em;width:100%;min-height:max(44px,2.95em);padding:.3em .5em .3em 0;border:0;background:var(--tp);text-align:left}
.tbxFil button{cursor:pointer}
.tbxFil .tag{grid-row:span 2;align-self:stretch;display:grid;place-items:center;min-width:4.6em;padding:0 .5em;background:var(--tt2);font:800 .86em/1 var(--titre);font-style:normal;text-transform:uppercase;letter-spacing:.05em;text-align:center}
.tbxFil b{font:800 1em/1.1 var(--titre);text-transform:uppercase;letter-spacing:.02em;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}
.tbxFil small{font-size:.86em;color:var(--texte3)}
.tbxFil .live .tag{background:var(--rouge);color:#fff}.tbxFil .leader .tag{background:var(--orange);color:#140800}.tbxFil .avenir .tag{background:var(--blanc);color:var(--encre)}
.tbxFil .cham .tag{background:#e91e63;color:#fff}.tbxFil .stat .tag{background:var(--or);color:#1a1300}
.tbxFil .cham b{text-transform:none;font-family:var(--lecture);font-weight:600;font-size:.88em}
/* ------------------------------------------------------------------ Classement */
.tbxTete1{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8em;padding:.7em .9em;background:linear-gradient(112deg,var(--c1) 0 70%,var(--c2) 70% 73%,var(--c1) 73% 78%,var(--c2) 78% 79%,var(--c1) 79%);color:var(--t);clip-path:polygon(0 0,100% 0,100% calc(100% - .9em),calc(100% - .9em) 100%,0 100%)}
.tbxTete1 .blason.grand{width:3.4em;height:3.4em;font-size:1.15em}
.tbxTete1T{display:flex;flex-direction:column;min-width:0}
.tbxTete1T small{font:800 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.08em;opacity:.85}
.tbxTete1T b{font:800 italic 1.6em/1 var(--titre);text-transform:uppercase;margin:.1em 0;overflow-wrap:anywhere}
.tbxTete1T span{font-size:.86em;opacity:.9}
.tbxTete1V{display:flex;flex-direction:column;align-items:flex-end;padding:.2em .7em;background:#000;color:#fff;clip-path:polygon(.45em 0,100% 0,calc(100% - .45em) 100%,0 100%)}
.tbxTete1V b{font:800 italic 2.3em/1 var(--titre);font-variant-numeric:tabular-nums}
.tbxTete1V small{font:700 .86em var(--titre);color:var(--or);text-transform:uppercase;letter-spacing:.04em}
.tbxTable{margin-top:.6em;overflow-x:auto}
.tbxClt{width:100%;border-collapse:separate;border-spacing:0 2px;font-size:.95em}
.tbxClt th,.tbxClt td{padding:.25em .45em;border:0;white-space:nowrap}
.tbxClt thead th{font:700 .92em var(--titre);text-transform:uppercase;letter-spacing:.06em;color:var(--texte3);padding-bottom:.1em}
.tbxClt tbody tr{background:var(--tp)}
.tbxClt td.r{padding:0;width:2.1em}
.tbxClt td.r b{display:grid;place-items:center;height:2.35em;background:var(--tt);font:800 italic 1.2em/1 var(--titre);color:var(--texte2)}
.tbxClt tr.q td.r b{background:var(--blanc);color:var(--encre)}
.tbxClt tr.qv td.r b,.tbxBref li.qv .r{background:var(--vert);color:var(--encre)}
.tbxClt tr.qj td.r b,.tbxBref li.qj .r{background:var(--or);color:var(--encre)}
.tbxClt tr.qb td.r b,.tbxBref li.qb .r{background:var(--bleu);color:var(--encre)}
.tbxLegPo{display:flex;flex-wrap:wrap;gap:.4em 1.2em}
.tbxLegPo span{display:inline-flex;align-items:center;gap:.45em}
.tbxLegPo span::before{content:'';width:.85em;height:.85em;flex:none}
.tbxLegPo .qv::before{background:var(--vert)}
.tbxLegPo .qj::before{background:var(--or)}
.tbxLegPo .qb::before{background:var(--bleu)}
.tbxClt tbody th{font:inherit;text-transform:none;letter-spacing:0;color:var(--texte);width:100%;max-width:0}
.tbxClubL{display:flex;align-items:center;gap:.55em;min-width:0}
.tbxClubL .blason{width:2.3em;height:2.3em;font-size:max(12px,.86em)}
.tbxClubL>span{display:flex;flex-direction:column;min-width:0}
.tbxClubL b{font:800 1.02em/1.05 var(--titre);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxClubL small{font-size:.92em;color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxClt td.n{text-align:right;font:700 1.05em var(--titre);font-variant-numeric:tabular-nums;color:var(--texte2)}
.tbxClt td.v b{font-weight:800;font-style:italic;font-size:1.15em;color:var(--texte)}
.tbxClt td.plus{color:var(--vert)}.tbxClt td.moins{color:var(--rouge)}
.tbxClt tr.fin td,.tbxClt tr.fin th{box-shadow:0 2px 0 var(--orange)}
.tbxClt tr.moi{background:color-mix(in srgb,var(--orange) 15%,var(--tp))}
.tbxClt tr.moi .tbxClubL b{color:var(--orange2)}
.tbxClt td.cote,.tbxClt th.cote{width:4.6em;text-align:center}
.tbxClt td.cote span{display:block;height:1.6em;border:1px dashed var(--tt2);background:repeating-linear-gradient(135deg,transparent 0 .4em,rgba(255,255,255,.04) .4em .8em)}
.tbxSi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45em}
.tbxSiDuel{display:flex;align-items:center;gap:.4em;padding:.35em;background:var(--tp);border:1px solid var(--tt)}
.tbxSiDuel span{flex:1 1 0;display:flex;align-items:center;gap:.45em;min-width:0;padding:.35em .5em;background:var(--c1);color:var(--t);font:800 italic 1.05em/1 var(--titre);text-transform:uppercase}
.tbxSiDuel span b{font-size:.86em;padding:.1em .3em;background:#000;color:#fff}
.tbxSiDuel i{font:700 .86em var(--titre);font-style:normal;text-transform:uppercase;color:var(--texte3)}
.tbxEquipes{margin-top:.4em}
.tbxEquipes .titreSection{margin:1em 0 .5em;font-size:1.1em}
.tbx .titreSection{font-family:var(--titre);font-style:italic;color:var(--texte2)}
.tbx .box-m{font-size:.86em}
.tbx .box-m tbody th,.tbx .box-m thead th:first-child{background:var(--tp)}
/* les meilleurs : les catégories, le premier en carte, la suite en liste */
.tbxCats{display:flex;gap:.3em;overflow-x:auto;padding-bottom:.3em;scrollbar-width:thin;scrollbar-color:var(--tt2) transparent}
.tbxCat{flex:none;min-height:max(44px,2.95em);padding:.2em .8em;border:1px solid var(--tt2);background:transparent;color:var(--texte2);font:700 .9em var(--titre);text-transform:uppercase;letter-spacing:.04em}
.tbxCat[aria-pressed="true"]{background:var(--blanc);border-color:var(--blanc);color:var(--encre)}
.tbxLeader{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7em;margin-top:.5em;padding:.65em .8em;background:linear-gradient(112deg,var(--c1) 0 74%,var(--c2) 74% 77%,var(--c1) 77%);color:var(--t);clip-path:polygon(0 0,100% 0,100% calc(100% - .8em),calc(100% - .8em) 100%,0 100%)}
.tbxLeaderR{font:800 italic 2.6em/1 var(--titre);opacity:.9}
.tbxLeaderT{display:flex;flex-direction:column;min-width:0}
.tbxLeaderT small{font:800 .86em/1 var(--titre);text-transform:uppercase;letter-spacing:.07em;opacity:.85}
.tbxLeaderT b{font:800 italic 1.45em/1.05 var(--titre);text-transform:uppercase;overflow-wrap:anywhere}
.tbxLeaderT span{font-size:.82em;opacity:.9}
.tbxLeaderV{padding:.15em .55em;background:#000;color:var(--or);font:800 italic 2em/1 var(--titre);font-variant-numeric:tabular-nums;clip-path:polygon(.4em 0,100% 0,calc(100% - .4em) 100%,0 100%)}
.tbxTop{list-style:none;margin:.45em 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.tbxTop li{display:grid;grid-template-columns:1.8em .45em minmax(0,1fr) auto;align-items:center;gap:.45em;min-height:2.4em;padding-right:.55em;background:var(--tp)}
.tbxTop .r{display:grid;place-items:center;align-self:stretch;background:var(--tt);font:800 italic 1.05em var(--titre);color:var(--texte2)}
.tbxTop .chip{align-self:stretch;margin:.35em 0;background:linear-gradient(180deg,var(--c1) 0 60%,var(--c2) 60%)}
.tbxTop .n{display:flex;flex-direction:column;min-width:0}
.tbxTop .n b{font:800 1em/1.05 var(--titre);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxTop .n small{font-size:.86em;color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxTop .v{font:800 italic 1.3em var(--titre);font-variant-numeric:tabular-nums}
.tbxTop li.moi{background:color-mix(in srgb,var(--orange) 15%,var(--tp))}
.tbxPlayoffs .carte{margin-bottom:.4em}
/* ------------------------------------------------------------------ le téléphone en portrait : tourner, ou rester */
.tbxTourne{display:none}
@media (orientation:portrait) and (max-width:699px){
  .tbxTourne{position:fixed;inset:0;z-index:28;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:2rem;background:rgba(5,7,10,.97);text-align:center}
  .tbxTourne svg{width:5rem;height:5rem;fill:none;stroke:var(--orange);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;animation:tbTourne 2.4s var(--doux) infinite}
  .tbxTourne b{font:800 italic 1.9rem/1 var(--titre);text-transform:uppercase}
  .tbxTourne p{margin:0;color:var(--texte2)}
  .tbx:has(.tb) .tbxTourne{display:none}
}
/* ------------------------------------------------------------------ le téléphone en paysage : tout se resserre */
@media (orientation:landscape) and (max-height:560px){
  /* (9/11) 4,8 em et des lettres moins espacées : « Classement » touchait les deux bords du rail (4,4 em) */
  .tbxRail{width:4.8em}
  .tbxRail button{min-height:3.3em;letter-spacing:.01em}
  .tbxTete .etatReseau span{display:none}
  .tbxTete .etatReseau{padding:.45em}
  .tbxCol{padding:.5em .55em calc(1em + env(safe-area-inset-bottom))}
  .tbxIdent{padding:.6em .65em;gap:.55em}
  .tbxIdent .blason.grand{width:2.8em;height:2.8em;font-size:1em}
  .tbxIdentT b{font-size:1.3em}
  .tbxIdentG b{font-size:1.9em}
  .tbxSaison{padding:.45em .55em;gap:.3em .5em}
  .tbxSaison b{font-size:1.35em}
  .tbxCamp{min-height:3.9em}
  .tbxCompte{font-size:2em}
}
@media (max-width:760px) and (orientation:landscape){
  .tbxBug{max-width:12em}
  .tbxCamp .blason{display:none}
}
/* ------------------------------------------------------------------ grand écran */
@media (min-width:1400px) and (min-height:700px){
  .tbxRail{width:6.4em}
  .tbxRail button{min-height:4.6em;font-size:.85em}
  .tbxTete{min-height:3.1em}
  .tbxBug{max-width:24em}
  .tbxCol{padding:1em 1.2em 1.6em}
  .tbxClub.grand{grid-template-columns:minmax(0,1.02fr) minmax(0,1.02fr) minmax(0,.9fr) minmax(0,1.2fr)}
  .tbxCamp{min-height:6em}
  .tbxCampT b{font-size:1.4em}
  .tbxCompte{font-size:3em}
}
/* ------------------------------------------------------------------ le mouvement : une entrée par écran, le bandeau */
@media (prefers-reduced-motion:no-preference){
  .tbxEcran .tbxE{animation:tbxEntre .55s var(--doux) both}
  .tbxEcran .tbxColClub .tbxE,.tbxEcran .tbxColPlan .tbxE,.tbxEcran .tbxColM .tbxE{animation-delay:.08s}
  .tbxEcran .tbxJ,.tbxEcran .tbxBref li,.tbxEcran .tbxClt tbody tr,.tbxEcran .tbxTop li,.tbxEcran .tbxFil li{animation:tbxBalaye .5s var(--doux) both;animation-delay:calc(.12s + var(--k,0) * 35ms)}
  .tbxPiste{animation:tbxDefile var(--d,40s) linear infinite}
  .tbxTicker:hover .tbxPiste{animation-play-state:paused}
}
@keyframes tbxEntre{from{opacity:0;transform:translateX(-1.2em)}to{opacity:1;transform:none}}
@keyframes tbxBalaye{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes tbxDefile{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .tbxPiste{animation:none!important}
  .tbxTickV{overflow-x:auto;scrollbar-width:none}
  .tbxTkG+.tbxTkG{display:none}
}
/* ------------------------------------------------------------------ le direct (tm-47) à l'antenne : le bug du score en
   biais, les couleurs des clubs en aplats, les titres en bandeaux, la barre du coach comme une régie */
.tb{background:#05070a}
.tbTete{gap:0;padding:0 .6rem 0 0;min-height:2.95rem;background:#000;border-bottom:2px solid var(--orange)}
.tbTete .edRond{align-self:stretch;width:2.95rem;height:auto;border:0;border-radius:0;background:#000}
.tbScore{filter:none;align-items:stretch;margin-left:.2rem}
.tbScore .edEq{border-radius:0;padding:.1rem 1rem .1rem .9rem;clip-path:polygon(.55rem 0,100% 0,100% 100%,0 100%)}
.tbScore .edEq.ext{padding:.1rem .9rem .1rem 1rem;clip-path:polygon(0 0,100% 0,calc(100% - .55rem) 100%,0 100%)}
.tbScore .edEq b{font-style:italic;letter-spacing:.03em}
.tbScore .edEq .edPts{font-style:italic;font-weight:800}
.tbScore .edHeure{background:#0b0e13;border-top:2px solid var(--jaune);padding:.05rem .7rem}
.tbScore .edHeure b{font-style:italic}
.tb .edEtat{align-self:center;margin-left:.6rem;padding:.3rem .9rem .3rem .6rem;border-radius:0;background:var(--rouge);color:#fff;font:800 italic .85rem/1 var(--titre);text-transform:uppercase;letter-spacing:.05em;clip-path:polygon(0 0,100% 0,calc(100% - .45rem) 100%,0 100%)}
.tb .edEtat.chaud{background:var(--orange);color:#140800}
.tbTitre{margin-left:.6rem;color:var(--texte2);font-style:italic}
.tbCol{background:#05070a}
.tbEqT{gap:.55rem;margin:-.4rem -.5rem .1rem;padding:.45rem 1.2rem .45rem .55rem;background:var(--c);color:var(--t);clip-path:polygon(0 0,100% 0,calc(100% - .8rem) 100%,0 100%)}
.tbEqT .edNum{border-radius:0;border:0;background:#000;color:#fff;clip-path:polygon(.25rem 0,100% 0,calc(100% - .25rem) 100%,0 100%)}
.tbEqN b{font-style:italic;font-size:1.05rem}
.tbEqN small{color:inherit;opacity:.85}
.tbJ thead th{font-family:var(--titre);font-weight:700;letter-spacing:.06em;color:var(--texte3)}
.tbJ .edNum{border-radius:2px;border:0;border-left:3px solid var(--c);background:#141b24;font-style:italic}
.tbJ tbody th{font-family:var(--titre);font-weight:700;font-size:.92em;text-transform:uppercase;letter-spacing:.02em}
.tbJ td.n{font-family:var(--titre);font-weight:700;font-size:1.05em}
.tbJ .note b{font-family:var(--titre);font-style:italic;font-weight:800;font-size:1.12em}
.tbJ .tbBancT th{padding-top:.5rem;color:var(--texte2);font-style:italic}
.tbBloc h3{display:inline-block;padding:.28rem 1rem .28rem .5rem;margin-bottom:.4rem;background:var(--blanc,#f3f5f8);color:#0a0d12;clip-path:polygon(0 0,100% 0,calc(100% - .5rem) 100%,0 100%);font-style:italic;letter-spacing:.06em}
.tb .dsCom p{background:#000;border-left-width:4px;font-weight:600}
.tbChiffres{border-top:2px solid #1a2430;background:#000}
.tbCm span{font-family:var(--titre);font-weight:700}
.tbCm>b{font-family:var(--titre);font-weight:800;font-size:.85rem}
.tbBarre{background:#000;border-top:2px solid #1a2430}
.tbBarre .edB{border-radius:0;font-family:var(--titre)}
.tbBarre .edB.on{background:#151c25;box-shadow:inset 0 -3px 0 var(--orange)}
.tbBarre .edB.edTm{clip-path:polygon(.6rem 0,100% 0,calc(100% - .6rem) 100%,0 100%);padding-inline:1rem}
.tb .edFeuille{border-radius:0}
@media (min-width:1400px) and (min-height:700px){
  .tbTete{min-height:3.4rem}
  .tbScore .edEq b{font-size:1.45rem}.tbScore .edEq .edPts{font-size:2.2rem}.tbScore .edHeure b{font-size:1.8rem}
  .tb .edEtat{font-size:1rem}
  .tbJ{font-size:1.02rem}.tbJ th,.tbJ td{padding:.42rem .35rem}.tbJ tbody th{font-size:1.02rem}.tbJ thead th{font-size:.78rem}
  .tbJ .edNum{width:2rem;height:1.9rem;font-size:.85rem}
  .tbEqN b{font-size:1.45rem}.tbEqN small{font-size:.9rem}
  .tbBloc h3{font-size:.9rem}
  .tbEcart{height:8rem}
}
/* les colonnes étroites (un petit téléphone en paysage) : la saison en deux rangées, le nom du club sous le général */
@container colClub (max-width:22em){
  .tbxIdent{grid-template-columns:auto minmax(0,1fr);row-gap:.45em}
  .tbxIdentT b{font-size:1.2em}
  .tbxIdentG{grid-column:1 / -1;justify-self:start;flex-direction:row;align-items:baseline;gap:.45em;padding:.1em .8em .1em .6em}
  .tbxIdentG b{font-size:1.6em}
  .tbxSaison{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container colClub (max-width:17em){
  .tbxBref li{grid-template-columns:1.7em .5em minmax(0,1fr) auto 2.4em}
  .tbxBref .n{display:none}
  .tbxTitre .tbxLien{display:none}
}
@container colMatch (max-width:19em){
  .tbxAffTete{flex-wrap:wrap}
  .tbxCamp,.tbxCamp.ext{padding-top:.45em;padding-bottom:.45em}
  .tbxCampT b{font-size:1em}
  .tbxCote{padding:.4em .55em}
}
/* ce qu'il faut faire maintenant : la phrase d'accueil, en bandeau */
.tbxAFaire{margin:0 0 .5em;padding:.45em .6em;background:var(--tp2);border:1px solid var(--tt);font-size:.92em;line-height:1.35}
.tbxAFaire b{display:inline-block;margin-right:.55em;padding:.25em .9em .25em .5em;background:var(--blanc);color:var(--encre);font:800 italic .95em/1 var(--titre);text-transform:uppercase;letter-spacing:.05em;clip-path:polygon(0 0,100% 0,calc(100% - .5em) 100%,0 100%)}
.tbxCote.rapport{margin-top:.4em}
.tbxSigC{margin-left:.15em;font-size:max(12px,.72em);opacity:.8;letter-spacing:0}
.tbxTourne .bt{min-width:16rem}
.tbxTourne .tbxNote{max-width:22rem;font-size:.9rem}
.tbxVersPaysage{flex:none;min-height:44px;margin-left:.4rem}
/* au téléphone en paysage, le direct (tm-47) : les tailles et la feuille Coaching en colonnes viennent du lot de 18 h
   (ligue.html) ; ici l'en-tête de la régie à 44 px */
@media (orientation:landscape) and (max-height:560px){
  .tbTete{min-height:44px}.tbTete .edRond{width:44px}
  .tb .edEtat{font-size:12px}
  .tb .tbBloc .lien{min-height:44px}
}
/* la feuille du plan de jeu de Mon club, au téléphone en paysage : les cinq cartes d'une sorte sur une rangée */
@media (orientation:landscape) and (max-height:560px){
  .tbxFeuille .plans{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem}
  .tbxFeuille .plans.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tbxFeuille .plan{min-height:44px;padding:.3rem .45rem}
  .tbxFeuille .plan b{font-size:.95rem}
  .tbxFeuille .plan small{font-size:12px;line-height:1.2}
  .tbxFeuille .jeu h4{margin:.4rem 0 .25rem}
  .tbxFeuille .jeu>.sous{font-size:12px}
}
.tb .dsSon{min-height:44px}
@media (min-width:1400px) and (min-height:700px){.tbJ .tbBancT th{font-size:.8rem}.tbxClubL .blason{font-size:.9em}}
.tbxClt .tbxForme i{font-size:.95em}
.tbx .equipes-m .blason{width:2.1em;height:2.1em;font-size:max(12px,.7rem)}
.tbxLeaderT span{font-size:.9em}
.tbx small.tbxSigC{font-size:max(12px,.72em)}
/* le classement dans une colonne étroite (667 de large) : le nom du club sur deux lignes plutôt que coupé, sans blason ni coach */
@container colL (max-width:33em){
  .tbxClubL .blason,.tbxClubL small{display:none}
  .tbxClubL b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.05}
  .tbxClt th,.tbxClt td{padding:.25em .3em}
  .tbxClt td.cote,.tbxClt th.cote{width:3.2em}
  .tbxClt .tbxForme{gap:.12em}
  .tbxClt .tbxForme i{width:1.3em;height:1.3em}
}
/* le direct en affiche : dans une colonne étroite, le sigle et le score en grand */
.tbxCampT .sigL{display:none}
@container colMatch (max-width:24em){
  .tbxDirect .tbxCampT .nomL,.tbxDirect .tbxCampT>small,.tbxDirect .tbxCamp .blason{display:none}
  .tbxDirect .tbxCampT .sigL{display:inline}
  .tbxDirect .tbxCampT b{font-size:1.3em}
}
/* ------------------------------------------------------------------ étape 1 : repris de la direction A, et les cotes */
/* le face-à-face des deux clubs avant le match : la barre de chacun vers le milieu, le meilleur en clair */
.tbxFace{margin-top:.6em;padding:0 .6em .6em;background:var(--tp);border:1px solid var(--tt)}
.tbxFace .tbxTitre{margin-top:.6em}
.tbxFFTete{display:flex;justify-content:space-between;margin-bottom:.15em;font:800 italic 1.05em var(--titre);text-transform:uppercase}
.tbxFFTete span:first-child{color:color-mix(in srgb,var(--ca) 70%,#fff)}.tbxFFTete span:last-child{color:color-mix(in srgb,var(--cb) 70%,#fff)}
.tbxFF{display:grid;grid-template-columns:3.4em minmax(0,1fr) 3.4em;align-items:center;gap:.5em;min-height:2.3em}
.tbxFF>b{font:700 1.1em var(--titre);font-variant-numeric:tabular-nums;color:var(--texte2)}
.tbxFF>b:last-child{text-align:right}
.tbxFF>b.mieux{color:#fff;font-weight:800}
.tbxFFM{display:flex;flex-direction:column;gap:.15em;min-width:0}
.tbxFFM small,.tbxFF>small{font:700 .86em var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte3);text-align:center}
.tbxFFB{display:grid;grid-template-columns:1fr 1fr;gap:3px;height:.5em}
.tbxFFB i{display:block;height:100%;background:var(--tt)}
.tbxFFB i.a{background:linear-gradient(270deg,color-mix(in srgb,var(--ca) 80%,#fff) var(--v),var(--tt) var(--v))}
.tbxFFB i.b{background:linear-gradient(90deg,color-mix(in srgb,var(--cb) 80%,#fff) var(--v),var(--tt) var(--v))}
.tbxFF.etat,.tbxFF.texte{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.tbxFF.etat>:last-child,.tbxFF.texte>span:last-child{justify-self:end;text-align:right}
.tbxFF.texte span{font-size:.88em;color:var(--texte2)}
.tbxFF.texte span.mot{font:800 italic 1.05em var(--titre);text-transform:uppercase;color:var(--texte)}
/* l'effectif au choix : en cartes ou en tableau dense */
.tbxChoix{display:inline-flex;gap:0;border:1px solid var(--tt2)}
.tbxChoixL{display:flex;justify-content:flex-end;margin:-.2em 0 .45em}
.tbxChoix button{min-height:max(44px,2.95em);padding:0 .9em;border:0;background:transparent;color:var(--texte3);font:700 max(12px,.86em) var(--titre);text-transform:uppercase;letter-spacing:.05em}
.tbxChoix button[aria-pressed="true"]{background:var(--blanc);color:var(--encre)}
.tbxDefile{overflow-x:auto;overscroll-behavior-x:contain}
.tbxEff{width:100%;border-collapse:separate;border-spacing:0 2px;font-size:.92em}
.tbxEff th,.tbxEff td{padding:.3em .4em;border:0;white-space:nowrap;background:var(--tp)}
.tbxEff thead th{background:none;font:700 .92em var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte3)}
.tbxEff tbody th{position:sticky;left:2.6em;z-index:1;font:inherit;text-transform:none;letter-spacing:0;color:var(--texte);max-width:9em;overflow:hidden;text-overflow:ellipsis}
.tbxEff tbody th b{font:800 1.02em var(--titre);text-transform:uppercase}
.tbxEff td.note{position:sticky;left:0;z-index:1;width:2.6em;text-align:center}
.tbxEff td.note b{display:inline-grid;place-items:center;min-width:2em;height:1.7em;background:var(--tt2);font:800 italic 1.08em var(--titre)}
.tbxEff td.note.n90 b{background:#ffd23f;color:#1a1300}.tbxEff td.note.n85 b{background:#2fd27a;color:#03140a}.tbxEff td.note.n80 b{background:#4da3ff;color:#020c18}
.tbxEff td.n{text-align:right;font:700 1.02em var(--titre);font-variant-numeric:tabular-nums;color:var(--texte2)}
.tbxEff td.vide{color:var(--texte3)}
.tbxEff td.tx{font-size:.92em;color:var(--texte3)}
.tbxEff .tbxPo{display:inline-block;min-width:1.5em;margin-right:.4em;font:800 .86em var(--titre);color:var(--texte3)}
.tbxBarre{display:block;height:3px;margin-top:2px;background:linear-gradient(90deg,var(--orange) var(--v),var(--tt) var(--v))}
.tbxEff .lg{display:none}
@container colEff (min-width:34em){.tbxEff .lg{display:table-cell}}
/* le plan de jeu posé sur la page (grand écran) */
.tbxPlanPage .carte.jeu{background:var(--tp)}
.tbxPlanPage .plans{grid-template-columns:repeat(auto-fill,minmax(11em,1fr))}
.tbxColPlan .tbxPrevenir{margin-top:0}
/* les cotes CostaBET (ligue-cotes-vue.js) dans l'habillage */
.tbxCotes{margin:.55em .6em 0}
.tbxCotes:empty{display:none}
.tbxCotes .cbLigne{margin:0;padding:.45em .6em;background:#000;border-left:3px solid var(--or);font-size:.92em}
.tbx .cbBloc{margin-top:.6em!important;border-radius:0}
.tbxClt th.cbPo,.tbxClt td.cbPo{width:4.4em;text-align:right;font:700 1.05em var(--titre);font-variant-numeric:tabular-nums}
.tbxClt thead th.cbPo{font:700 .92em var(--titre)}
.tbxClt td.cbPo .etiq{font-size:.86em}
@container colL (max-width:33em){.tbxClt td.cbPo,.tbxClt th.cbPo{width:3.4em}}
/* (9/11) le classement « Essentiel » dans une colonne étroite : sur un téléphone couché de 667 px de large, la colonne
   Playoffs sortait à droite (il fallait faire glisser le tableau). On retire d'abord « dom. » ou « ext. » du prochain
   match (le sigle reste), puis, sur les plus petits téléphones, la colonne du prochain match : elle est dans « Complet ». */
@container colL (max-width:27.5em){.tbxClt:not(.complet) td.tProch small{display:none}.tbxClt:not(.complet) tbody th{min-width:9em}}
@container colL (max-width:25.5em){.tbxClt:not(.complet) .tProch{display:none}.tbxClt:not(.complet) tbody th{min-width:8em}}
/* le bloc des cotes dans une colonne du tableau de bord : en une colonne (ligue-cotes.css le met sur deux au-delà de
   1 100 px de large, pour la page d'un match) */
.tbx .cbBloc:not(.cbCalcul){display:block}
.tbx .cbBloc .cbPourquoi{margin-top:.6rem}
.tbxPlanPage .carte.jeu>h3{display:none}
@media (orientation:landscape) and (max-height:560px){.tb .cbTb{font-size:12px;line-height:1.25}}
/* l'effectif dans une colonne très étroite (667 de large) : la carte sans le grand numéro, le nom sur toute la largeur,
   les chiffres sur une ligne (le tableau garde tout : poste, numéro, âge, club) */
@container colEff (max-width:14em){
  .tbxJ{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nom ovr" "st st" "prix prix";padding:.35em .5em;border-left:4px solid var(--c1)}
  .tbxJNum{display:none}
  .tbxJOvr{flex-direction:row;align-items:center}
  .tbxJOvr small{display:none}
  .tbxJSt{flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
  .tbxJPrix{justify-self:start}
}
/* ------------------------------------------------------------------ étape 2 : Matchs, Ligue, Playoffs */
.tbxMatchs{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.tbxMatchs.grand{grid-template-columns:minmax(0,1.15fr) minmax(0,1.3fr) minmax(0,.9fr)}
.tbxLigue{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.tbxColMoment{container:colMoment / inline-size}
.tbxColSaison{container:colSaison / inline-size}
.tbxPastille.blanc{background:var(--blanc);color:var(--encre)}
/* la journée en héros : une ligne par match, les clubs en aplats, le score au milieu */
.tbxJour{background:var(--tp);border:1px solid var(--tt);padding-bottom:.5em}
.tbxJour .tbxCoup{margin:.1em .6em .4em}
.tbxJour>.tbxNote{margin:.4em .6em 0}
.tbxMs{display:flex;flex-direction:column;gap:3px;padding:0 .5em}
.tbxM{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;width:100%;min-height:max(44px,3.1em);padding:0;border:0;background:#000;color:inherit;text-align:left;cursor:pointer}
.tbxM.moi{outline:2px solid var(--orange);outline-offset:-2px}
.tbxMC{display:flex;align-items:center;gap:.45em;min-width:0;padding:.25em .55em;background:var(--c);color:var(--t)}
.tbxMC.dom{clip-path:polygon(0 0,100% 0,calc(100% - .6em) 100%,0 100%);padding-right:1em}
.tbxMC.ext{justify-content:flex-end;text-align:right;clip-path:polygon(.6em 0,100% 0,100% 100%,0 100%);padding-left:1em}
.tbxMC b{flex:none;font:800 italic 1.12em/1 var(--titre);text-transform:uppercase}
.tbxMC span{min-width:0;font:700 .9em/1.05 var(--titre);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.92}
.tbxMSc{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:4.6em;padding:0 .4em;background:#000}
.tbxMSc b{font:800 italic 1.35em/1 var(--titre);font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap}
.tbxMSc b i{font-style:normal;color:var(--texte3);margin:0 .1em}
.tbxMSc b .p{color:var(--texte3)}
.tbxMSc small{font:700 .86em/1.1 var(--titre);text-transform:uppercase;letter-spacing:.04em;color:var(--texte3)}
.tbxMSc.live b{color:var(--or)}
.tbxMSc.live small{color:var(--rouge)}
.tbxMCotes{grid-column:1 / -1;display:flex;justify-content:center;padding:.15em .4em .25em;background:#000}
.tbxMRecit{grid-column:1 / -1;display:flex;justify-content:center;padding:.2em .4em 0;background:#000}
.tbxMCotes .cbListe{font-size:.92em}
@container colMoment (max-width:26em){.tbxMC span{display:none}.tbxMC.dom,.tbxMC.ext{justify-content:center}}
/* la saison en grille compacte : une case par journée, une ligne par match */
.tbxSaisonG{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.6em,1fr));gap:.4em}
.tbxJCase{display:flex;flex-direction:column;gap:2px;padding:.35em;background:var(--tp);border:1px solid var(--tt)}
.tbxJCase.ici{border-color:var(--orange);box-shadow:inset 0 3px 0 var(--orange)}
.tbxJCase.live{border-color:var(--rouge)}
.tbxJCase header{display:flex;align-items:baseline;justify-content:space-between;gap:.4em;padding:0 .15em .15em}
.tbxJCase header b{font:800 italic 1.1em var(--titre)}
.tbxJCase header span{font:700 .86em var(--titre);text-transform:uppercase;color:var(--texte3)}
.tbxMc{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.3em;min-height:max(44px,2.6em);padding:0 .35em;border:0;background:#0a0e13;color:var(--texte2);font:700 .95em var(--titre);text-transform:uppercase;cursor:pointer}
.tbxMc .b{text-align:right}
.tbxMc b{font:800 1.05em var(--titre);font-variant-numeric:tabular-nums;color:var(--texte);white-space:nowrap}
.tbxMc b .p{color:var(--texte3)}
.tbxMc b.live{color:var(--or)}
.tbxMc i{font-style:normal;color:var(--texte2);white-space:nowrap}
.tbxMc.moi{box-shadow:inset 3px 0 0 var(--orange);color:var(--texte)}
.tbxMc.direct{box-shadow:inset 3px 0 0 var(--rouge)}
.tbxJCase .repos{margin:.15em .15em 0;font-size:.86em;color:var(--texte3)}
.tbxJCase .tbxLien{align-self:flex-start}
/* le cinq de la journée et les MVP */
.tbxCinq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.tbxCinq li{display:grid;grid-template-columns:4.6em minmax(0,1fr) auto;align-items:center;gap:.5em;min-height:2.9em;padding:.2em .5em;background:var(--tp)}
.tbxCinq .p{font:800 .86em var(--titre);text-transform:uppercase;letter-spacing:.04em;color:var(--or)}
.tbxCinq .n{display:flex;flex-direction:column;min-width:0}
.tbxCinq .n b{font:800 1em/1.05 var(--titre);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* (9/11) le nom est dans un bouton (il ouvre la fiche du joueur) : en ligne, il ne se coupait plus par des points, et un
   long nom (« Giannis Antetokounmpo ») sortait de la colonne, qui glissait alors de côté au téléphone */
.tbxCinq .n .tbxFiche b{display:block}
.tbxCinq .n small{font-size:.86em;color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxCinq .v{display:flex;flex-direction:column;align-items:flex-end;font:800 italic 1.35em/1 var(--titre)}
.tbxCinq .v small{font:700 max(12px,.62em) var(--titre);text-transform:uppercase;color:var(--texte3)}
.tbxMvp li{grid-template-columns:minmax(0,6.6em) minmax(0,1fr) auto}
.tbxMvpM{min-height:max(44px,2.9em);padding:0 .3em;border:0;background:#000;color:var(--texte2);font:700 .86em var(--titre);text-transform:uppercase;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* les playoffs : le champion, les séries côte à côte */
.tbxChampion{display:flex;align-items:center;gap:.8em;margin-bottom:.6em;padding:.8em 1em;background:linear-gradient(112deg,var(--c1) 0 72%,var(--c2) 72% 75%,var(--c1) 75%);color:var(--t);border-bottom:4px solid var(--or)}
.tbxChampion>span{display:flex;flex-direction:column}
.tbxChampion small{font:800 .86em var(--titre);text-transform:uppercase;letter-spacing:.08em}
.tbxChampion b{font:800 italic 1.8em/1 var(--titre);text-transform:uppercase}
.tbxBracket{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.6em;align-items:center}
.tbxBracket.seule{grid-template-columns:minmax(0,1fr)}
.tbxDemies{display:flex;flex-direction:column;gap:.6em}
.tbxBarrages{margin-bottom:.8em;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tbxSerie{background:var(--tp);border:1px solid var(--tt);padding:.4em}
.tbxSerieT{font:800 italic .95em var(--titre);text-transform:uppercase;letter-spacing:.05em;color:var(--texte2);margin-bottom:.3em}
.tbxSerieC{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5em;padding:.3em .5em;margin-bottom:2px;background:var(--c1);color:var(--t)}
.tbxSerieC.perd{opacity:.55}
.tbxSerieC.gagne{box-shadow:inset 4px 0 0 var(--or)}
.tbxSerieC .blason{width:2.1em;height:2.1em;font-size:max(12px,.75em)}
.tbxSerieC .n{display:flex;flex-direction:column;min-width:0}
.tbxSerieC .n b{font:800 italic 1.05em/1 var(--titre);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxSerieC .n small{font-size:.86em;opacity:.85}
.tbxSerieC .v{font:800 italic 1.8em/1 var(--titre);padding:0 .25em;background:#000;color:#fff}
.tbxSerieMs{display:flex;flex-direction:column;gap:2px;margin-top:.3em}
.tbxSerieM{display:flex;justify-content:space-between;align-items:center;gap:.5em;min-height:max(44px,2.6em);padding:0 .5em;border:0;background:#0a0e13;color:var(--texte2);font:700 .92em var(--titre);text-transform:uppercase;cursor:pointer}
.tbxSerieM i{font-style:normal;color:var(--texte3)}
.tbxSerieM b{color:var(--texte);font-size:1.1em}
.tbxSerieM small{margin-left:.4em;color:var(--texte3)}
.tbxSerieM small.live{color:var(--rouge)}
@container colL (max-width:30em){.tbxBracket{grid-template-columns:minmax(0,1fr)}}
@container colMoment (max-width:30em){.tbxBracket{grid-template-columns:minmax(0,1fr)}}
/* la ligue : les clubs, le mur, l'invitation */
.tbxClubs th.n,.tbxClubs td.n{width:3.4em}
.tbxMur li>*{grid-template-columns:auto minmax(0,1fr)}
.tbxMur .qui{grid-row:span 2;align-self:stretch;display:grid;place-items:center;min-width:3.6em;padding:0 .4em;background:var(--c1);color:var(--t);font:800 italic .95em/1 var(--titre)}
.tbxMur b{text-transform:none;font-family:var(--lecture);font-weight:600;font-size:.92em}
.tbxInvite{margin-top:1em}
.tbxInvite summary{min-height:max(44px,2.95em);display:flex;align-items:center;cursor:pointer;color:var(--orange2);font:800 italic 1em var(--titre);text-transform:uppercase;letter-spacing:.04em}
.tbxQrRang{align-items:flex-start}
.tbxQrRang .qr{width:8em;height:8em}
.tbxInvB{flex-direction:column;align-items:stretch}
/* un nom qui ouvre sa fiche (tb-fiches.js) */
.tbxFiche{display:inline;min-height:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
.tbxFiche:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
/* au doigt, le nom reste une ligne de texte mais se touche sur environ 44 px de haut (la zone déborde, la page ne bouge pas) */
@media (pointer:coarse){.tbxFiche{position:relative}.tbxFiche::after{content:"";position:absolute;inset:-12px -4px}}
/* (5/11) un bloc entier qui ouvre une fiche (l'en-tête d'une équipe, une ligne de joueur) : le dessin de sa classe, sans
   soulignement ; et la ligne découpée (tbxEtireC) : le bouton étiré dessous ouvre le match, les noms posés dessus leur fiche */
:where(.tbxFicheB){margin:0;border:0;padding:0;background:none;font:inherit;color:inherit;text-align:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tbxFicheB:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
@media (hover:hover) and (pointer:fine){.tbxFicheB:hover{filter:brightness(1.12)}}
.tbxFiche{text-transform:inherit;letter-spacing:inherit}
.tbxEtireC.tbxEtireC{position:relative}
.tbxEtire{position:absolute;inset:0;z-index:1;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tbxEtire:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
.tbxEtireC :is(.tbxFiche,.tbxFicheB){position:relative;z-index:2}
@media (hover:hover) and (pointer:fine){.tbxEtireC:has(>.tbxEtire:hover){filter:brightness(1.12)}}
.tbxMCotes .cbListe{display:inline-flex;align-items:baseline;gap:.6em}
.tbxMCotes:has(.cbVide){background:transparent}
.tbx small.tbxSigC.tbxSigC{font-size:max(12px,.72em)}
/* les pages d'avant dans le cadre (avant le lancement, le marché, l'accueil des ligues) : la même matière */
.tbx.tbxSeul{grid-template-columns:minmax(0,1fr);grid-template-areas:"tete" "ecran"}
.tbxAccueil{max-width:none}
.tbxAccueil>.haut{display:none}
.tbxEcran.ancien h1,.tbxEcran.ancien h2{font-style:italic}
.tbxEcran.ancien .jr{border-radius:0;background:var(--tp);border-color:var(--tt)}
.tbxEcran.ancien .jr.amoi{background:color-mix(in srgb,var(--orange) 12%,var(--tp));border-color:color-mix(in srgb,var(--orange) 55%,transparent)}
.tbxEcran.ancien .note{border-radius:0;clip-path:polygon(.25em 0,100% 0,calc(100% - .25em) 100%,0 100%)}
.tbxEcran.ancien .champ input,.tbxEcran.ancien .champ select,.tbxEcran.ancien .filtres input,.tbxEcran.ancien .filtres select{border-radius:0;background:#000}
.tbxEcran.ancien .puce,.tbxEcran.ancien .segment .puce{border-radius:0}
.tbxEcran.ancien .resume{border-radius:0;background:#000;border-color:var(--tt);border-top:3px solid var(--orange)}
.tbxEcran.ancien .resume b{font-style:italic}
.tbxEcran.ancien .mt{border-radius:0}
.tbxEcran.ancien .plan{border-radius:0}
.tbxEcran.ancien .avis{border-radius:0}
.tbxEcran.ancien .blason.grand{box-shadow:0 0 0 2px rgba(0,0,0,.25)}
.tbxAccueil .grille.deux{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
@media (orientation:landscape) and (max-height:560px){
  .tbxEcran.ancien .resume{padding:.35rem .7rem .45rem;gap:.2rem 1rem}
  .tbxEcran.ancien .resume b{font-size:1.45rem}
  .tbxEcran.ancien .resume .rate{font-size:.82rem;padding:.25rem .5rem}
}
.tbxAvis .avis .lien{min-height:44px}

/* (4/11 au soir) la feuille de match : la stratégie avec le conseil de l'adjoint, le cinq, les minutes (ligue-ui.js, carteFeuille) */
.fm h4.fmT{margin:1rem 0 .4rem;font-size:1rem;letter-spacing:.04em;text-transform:uppercase;color:var(--texte2);display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.fm .fmTot b.ok{color:#5fd38d}
.fm .fmTot b.ko{color:#ff8a7a}
.fm .fmAvis{margin:.2rem 0 .6rem;padding:.6rem .8rem;border-radius:10px;background:rgba(255,255,255,.05);border-left:3px solid var(--orange)}
.fmStrats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.5rem}
.fmStrat{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;min-height:44px;padding:.7rem .8rem;border-radius:12px;border:1px solid var(--trait2);background:transparent;color:var(--texte);font:inherit;cursor:pointer}
.fmStrat b{font-family:var(--titre);font-size:1.15rem;text-transform:uppercase;letter-spacing:.03em}
.fmStrat small{color:var(--orange);font-weight:700}
.fmStrat span{color:var(--texte2);font-size:.92rem}
.fmStrat.choisi{border-color:var(--orange);background:rgba(255,140,0,.1);box-shadow:inset 0 0 0 1px var(--orange)}
.fmConseil{order:-1;font-style:normal;font-size:.75rem;font-weight:700;padding:.1rem .5rem;border-radius:99px;background:var(--orange);color:#160900}
.fmListe{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.15rem}
.fmJ{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;grid-template-areas:"tit nom min" "tit range range";align-items:center;column-gap:.6rem;padding:.35rem 0 .1rem;border-bottom:1px solid var(--trait)}
.fmTit{grid-area:tit;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--trait2);background:transparent;color:var(--texte2);font-family:var(--titre);font-weight:800;font-size:1.1rem;cursor:pointer}
.fmJ.tit .fmTit{background:var(--orange);border-color:var(--orange);color:#160900}
.fmNom{grid-area:nom;min-width:0;display:flex;flex-direction:column}
.fmNom b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fmNom small{color:var(--texte2);font-size:.8rem}
.fmJ input[type=range]{grid-area:range;width:100%;accent-color:var(--orange);min-height:44px;margin:0;touch-action:none}
.fmMin{grid-area:min;font-variant-numeric:tabular-nums;text-align:right;font-weight:700;white-space:nowrap}
.fmBoutons{margin-top:.8rem;flex-wrap:wrap;gap:.5rem}
.fm [aria-disabled=true]{opacity:.55}
.fm #fmRaison[hidden]{display:none}
/* (5/11) les en-têtes d'équipe du direct et les clubs du tableau « Les équipes » ouvrent la fiche du club */
button.tbEqT{display:flex;width:calc(100% + 1rem);text-align:left}
.tbEqT .tbEqN{flex:1}
.eqClub{display:inline-flex;align-items:center;gap:.4em;max-width:100%;min-height:max(44px,2.4em);vertical-align:middle;text-align:left}
button.eqClub .eqSig{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
.eqClub .eqSig{font-weight:800}
.eqClub .eqNom{max-width:13em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--texte2)}
@media (max-width:899px){.eqClub .eqNom{display:none}}
.tbJ th .tbxFiche{text-align:left}
.tbxEtireC>.tbxEtire.tbxEtire{background:transparent;padding:0;min-height:0;border:0}
/* l'affiche de Mon club : chaque camp ouvre la fiche du club (tbxCampF), le VS et le score le match */
.tbxDuel.tbxEtireC>.tbxCamp{position:relative;z-index:2}
.tbxCampF{display:flex;align-items:center;gap:.5em;flex:1;min-width:0;align-self:stretch}
.tbxCamp.ext .tbxCampF{flex-direction:row-reverse;text-align:right}
button.tbxCampSc{margin-top:0;margin-bottom:0;padding:0 .1em;border:0;background:none;color:inherit;cursor:pointer;min-height:44px}
/* la rotation (Composition) : le nom ouvre la fiche du joueur, il garde ses points de suspension */
.tbmNom>.tbxFiche{min-width:0;max-width:100%;text-align:left}
.tbmNom>.tbxFiche>b{display:block}
/* au doigt, un nom dans une phrase ou sous un autre nom : une zone plus serrée, pour ne pas couvrir le nom d'à côté */
@media (pointer:coarse){:is(small,p,span:not([class]),.tbxNote) .tbxFiche{z-index:2}:is(small,p,span:not([class]),.tbxNote) .tbxFiche::after{inset:-5px -2px}}
.tbmNom>.tbxFiche>b{padding-bottom:3px;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
/* le nom d'un club dans une ligne découpée : souligné discrètement, comme les autres noms qui ouvrent une fiche */
.tbxFicheB.svxClub>span,.tbxFicheB.tbfAdv>b,.tbxFicheB.eqClub .eqNom{padding-bottom:2px;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
/* (5/11) le score de chaque quart-temps dans le bandeau du direct (ligue-ui.js, bandeQuarts) */
.tbQs{display:flex;gap:2px;margin:0 .5rem;align-self:center;flex:0 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
.tbQs::-webkit-scrollbar{display:none}
.tbQ{display:grid;place-items:center;flex:none;padding:.12em .45em;background:#111922;line-height:1.05}
.tbQ small{font-size:.6rem;letter-spacing:.04em;color:var(--texte2,#aab4c0)}
.tbQ b{font:700 .85rem var(--titre,inherit);font-variant-numeric:tabular-nums;color:var(--texte2,#aab4c0);white-space:nowrap}
.tbQ i{font-style:normal}
.tbQ i.g{color:#fff}
.tbQ.cours{box-shadow:inset 0 -2px var(--orange,#ff7a1a)}

/* ------------------------------------------------------------------ (6/11) l'épure : les blocs repliés (replie) */
.tbxReplie{margin:.6em 0 0;border-top:1px solid var(--tt)}
.tbxReplie>summary{list-style:none;display:flex;align-items:center;gap:.7em;min-height:44px;padding:.15em .1em;cursor:pointer;color:var(--texte2)}
.tbxReplie>summary::-webkit-details-marker{display:none}
.tbxReplie>summary::before{content:"";flex:none;width:.45em;height:.45em;border-right:2px solid var(--texte3);border-bottom:2px solid var(--texte3);transform:rotate(-45deg);transition:transform .15s}
.tbxReplie[open]>summary::before{transform:rotate(45deg)}
.tbxReplie>summary:hover .tbxRpT,.tbxReplie>summary:focus-visible .tbxRpT{color:var(--blanc)}
.tbxReplie>summary:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
.tbxRpT{flex:none;font:700 max(12px,.86em)/1.1 var(--titre);text-transform:uppercase;letter-spacing:.08em}
.tbxRpR{flex:1 1 auto;min-width:0;text-align:right;font-size:max(12px,.86em);color:var(--texte3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbxRpR b{color:var(--texte2);font-weight:700}
.tbxRpC{padding:.2em 0 .7em}
.tbxReplie:not([open])>.tbxRpC{display:none}
.tbxRpC>:first-child{margin-top:0}
/* (6/11, l'épure) l'effectif : le choix Cartes ou Tableau dans la ligne du titre ; le nom d'un joueur ne disparaît plus
   derrière des points de suspension (il passe à la ligne) */
.tbxTitre .tbxChoix button{min-height:44px;padding:0 .75em}
.tbxEff tbody th{min-width:12.5em;max-width:15em;white-space:normal;line-height:1.15}
.tbxEff tbody th .tbxFiche{text-align:left}
/* (6/11, l'épure) le classement « Essentiel » : domicile, extérieur, points et série dans la vue « Complet » */
.tbxClt:not(.complet) .tSt,.tbxClt:not(.complet) .tSerie{display:none}
.tbxEquipes .titreSection{display:none}

/* ------------------------------------------------------------------ (6/11, la lecture) les bases de tout le tableau de
   bord : une échelle de tailles courte, des gris lisibles sur le fond sombre, des chiffres en colonnes, un seul bouton
   principal (orange plein, .bt) et un seul secondaire (filet, .bt.sec et les liens-boutons), le bloc replié plus net.
   Affichage seulement. Les écrans des autres chantiers en héritent : rien ici ne change une mise en page. */
.tbx{
  /* l'échelle : 1 = le texte courant (14 px au téléphone, 20 px en 2560) ; rien sous 12 px */
  --fs-mini:max(12px,.8em);--fs-petit:max(12px,.86em);--fs-titre:1.12em;--fs-chiffre:1.5em;
  /* le gris des explications : #7a8a9e passait sous 4,5:1 sur les cases (--tt) ; un cran plus clair */
  --texte3:#8e9db1;
  --esp:.6em;
}
.tbx :is(td,th,b,strong,.tbxN,.tbxCompte,.tbxRpR){font-variant-numeric:tabular-nums}
/* les notes d'explication : un cran plus petites que le texte, jamais sous 12 px, interligne aéré */
.tbx :is(.tbxNote,.tbmNote){font-size:var(--fs-petit);line-height:1.4}
/* les titres de partie : un peu plus francs (le texte, pas le gris), le filet discret */
.tbxTitre>span:first-child{color:var(--texte)}
.tbxTitre::after{background:color-mix(in srgb,var(--tt2) 70%,transparent)}
/* les liens-boutons (Changer, La reposer, Voir) : la forme du bouton secondaire, 44 px au doigt partout */
.tbx .tbmLienT{min-height:44px}
.tbx .bt.sec{border-color:var(--tt2)}

/* le bloc replié : on voit qu'une ligne s'ouvre (la flèche dans une case, la ligne qui s'éclaire au survol) et son
   résumé se lit (le texte, pas le gris, et sur deux lignes au besoin plutôt que coupé) */
.tbxReplie{border-top-color:color-mix(in srgb,var(--tt2) 80%,transparent)}
.tbxReplie>summary{gap:.6em;padding:.25em .35em .25em 0;border-radius:2px;transition:background-color .15s}
.tbxReplie>summary::before{content:"+";display:grid;place-items:center;width:1.45em;height:1.45em;border:1px solid var(--tt2);border-right:1px solid var(--tt2);border-bottom:1px solid var(--tt2);border-radius:3px;transform:none;transition:none;color:var(--texte);font:600 1.3em/1 var(--lecture);box-sizing:border-box}
.tbxReplie[open]>summary::before{content:"\2212";transform:none;border-color:var(--orange);color:var(--orange)}
@media (hover:hover) and (pointer:fine){.tbxReplie>summary:hover{background:color-mix(in srgb,var(--tt) 55%,transparent)}}
.tbxReplie>summary:hover::before{border-color:var(--texte3);color:var(--texte)}
.tbxRpT{color:var(--texte)}
.tbxRpR{color:var(--texte2);font-size:var(--fs-petit);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
.tbxRpR b{color:var(--texte)}
.tbxReplie[open]>summary .tbxRpR{color:var(--texte3)}
.tbxRpC{padding:.35em 0 .8em}

/* le face-à-face de Mon club ne s'étire plus sur toute la hauteur de sa colonne (de grands vides entre ses lignes) */
.tbx .tbmDash.vMatch>.tbmPan.pFace{align-self:start}

/* les touches au doigt sous 44 px dans mes écrans : la journée en grand (flèches), une ligne de match, l'en-tête d'une
   équipe et la ligne d'un joueur de la page d'un match, le club d'une ligne de la saison */
.tbx .tbxJNav button{min-height:44px}
.tbx .tbxMC{min-height:44px}
.tbx .tbmEqT{min-height:44px;align-items:center}
.tbx :is(.tbmJs,.tbmNl) button.no{min-height:44px}
.tbx :is(.svxT,.svxL){padding-block:0}
.tbx :is(.svxT,.svxL) .svxClub{min-height:44px}
.tbx .tbxFicheB.mpxC{min-height:44px}
/* les petites étiquettes qui passaient sous 12 px : l'adversaire du prochain match (dom., ext.), les notes d'attaque
   et de défense, les quarts-temps du bandeau du direct */
.tbx .tbxClt td.tProch small{font-size:12px}
.tbx .b3-ad.b3-ad{font-size:max(12px,.66em)}
.tbQ small{font-size:12px}
.tbQ b{font-size:max(12px,.85rem)}
/* au téléphone couché (le texte courant à 14 px) : les petites lignes de la fiche d'un club passaient à 11 px ; 12 px au
   moins. Et le classement : le nom du club sur deux lignes plutôt que coupé net */
@media (orientation:landscape) and (max-height:560px){
  .tbx .tbfClub :is(small,sup,i){font-size:max(12px,.79em)}
  .tbx .tbfClub .tbfCh b sup{font-size:12px}
  .tbxClubL b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.05}
  .tbxClubL small{font-size:12px}
  .tbxClt th,.tbxClt td{padding:.25em .32em}
}
/* deux tuiles qui se suivent dans une colonne de Mon club (les playoffs, ton dernier match, le dernier créneau) : un
   espace entre elles, comme entre les autres blocs */
.tbx .tbmCorps>:is(.trTuile,.ppTuile,.rcTuile)+:is(.trTuile,.ppTuile,.rcTuile){margin-top:.6em}
/* Mon club, Club : le classement en bref ne s'étire plus sur toute la hauteur (en 2560, chaque ligne faisait 115 px) ;
   des lignes serrées comme au classement, le panneau à la hauteur de son contenu */
.tbx .tbmDash.vClub>.tbmPan.pClassement{align-self:start}
.tbx .tbmPan.pClassement .tbxBref{flex:none}
.tbx .tbmPan.pClassement .tbxBref li{flex:none;min-height:2.6em}
/* (7/11) le tableau des playoffs à huit, façon Top 14 (tb-ligue.js, tableauHuit) */
.tbrTableau{margin:0 0 1.2em}
.tbrDefile{overflow-x:auto;padding:.2em 0 .5em;scrollbar-width:thin}
.tbrGrille{--g:1.9em;display:grid;grid-template-columns:repeat(4,minmax(13em,1fr)) minmax(9em,.75fr);column-gap:var(--g);min-width:69em}
.tbrCol{display:flex;flex-direction:column;min-width:0}
.tbrT{display:flex;flex-direction:column;gap:.2em;padding-bottom:.5em;margin-bottom:.2em;border-bottom:1px solid var(--tt)}
.tbrT b{font:800 italic 1.05em/1 var(--titre);text-transform:uppercase;letter-spacing:.03em}
.tbrT small{font-size:.78em;color:var(--texte2)}
.tbrCases{position:relative;flex:1;display:flex;flex-direction:column}
.tbrSlot{position:relative;flex:1 1 0;display:flex;align-items:center;padding:.55em 0}
.tbrM{position:relative;display:flex;flex-direction:column;gap:.28em;width:100%;padding:.5em;background:var(--tp);border:1px solid var(--tt);color:inherit;font:inherit;text-align:left}
button.tbrM{cursor:pointer}
button.tbrM:hover,button.tbrM:focus-visible{border-color:var(--texte2)}
.tbrM.fini{border-color:var(--texte2)}
.tbrM.live{border-color:var(--rouge);box-shadow:0 0 0 1px var(--rouge)}
.projection .tbrM{border-style:dashed}
/* les traits d'un tour au suivant */
.tbrCol:not(.finale):not(.champion):not(.joint) .tbrM::after,.tbrCol.finale .tbrM::after{content:'';position:absolute;left:100%;top:50%;width:var(--g);border-top:2px solid var(--tt)}
.tbrCol.joint .tbrM::after{content:'';position:absolute;left:100%;top:50%;width:calc(var(--g) / 2);border-top:2px solid var(--tt)}
.tbrCol.joint .tbrCases::after{content:'';position:absolute;right:calc(var(--g) / -2);top:25%;bottom:25%;border-right:2px solid var(--tt)}
.tbrCol.finale .tbrM::before{content:'';position:absolute;right:100%;top:50%;width:calc(var(--g) / 2);border-top:2px solid var(--tt)}
.tbrM.fini::after{border-color:var(--texte2)}
.tbrNomS{font:700 .7em/1 var(--titre);letter-spacing:.09em;text-transform:uppercase;color:var(--texte2)}
.tbrL{position:relative;isolation:isolate;display:grid;grid-template-columns:1.7em 2em minmax(0,1fr) auto;align-items:center;gap:.45em;min-height:2.7em;padding:.25em .4em .25em 0;border-left:3px solid var(--c1,var(--tt))}
.tbrL::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--c1,transparent),transparent 78%);opacity:.2}
.tbrL.gagne::before{opacity:.42}
.tbrL.perd{opacity:.42}
.tbrL.attente{border-left-color:var(--tt);color:var(--texte2)}
.tbrSeed{display:grid;place-items:center;align-self:stretch;margin-left:.3em;background:var(--tt);font:800 italic .95em/1 var(--titre);color:var(--texte2)}
.tbrSeed.qv{background:var(--vert);color:var(--encre)}
.tbrSeed.qj{background:var(--or);color:var(--encre)}
.tbrSeed.qb{background:var(--bleu);color:var(--encre)}
.tbrNom{display:flex;flex-direction:column;gap:.1em;min-width:0}
.tbrL .blason{width:2em;height:2em;font-size:.66em}
.tbrNom b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:800 .9em/1.05 var(--titre);text-transform:uppercase;letter-spacing:.01em}
.tbrNom small{font-size:.76em;color:var(--texte2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbrL.attente .tbrNom{grid-column:2 / 4}
.tbrL.attente .tbrNom small{white-space:normal;font-size:.82em}
.tbrSc{min-width:1.3em;text-align:right;font:800 italic 1.55em/1 var(--titre)}
.tbrL.gagne .tbrSc{color:var(--or)}
.tbrStat{font-size:.78em;color:var(--texte2)}
.tbrLive{display:inline-flex;align-items:center;gap:.4em;color:var(--rouge);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.tbrLive::before{content:'';width:.55em;height:.55em;border-radius:50%;background:var(--rouge);animation:tbrPouls 1.4s ease-in-out infinite}
@keyframes tbrPouls{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.tbrLive::before{animation:none}}
.tbrChamp{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:.45em;width:100%;padding:1.2em .7em;border:1px dashed var(--tt);text-align:center;color:var(--texte2)}
.tbrChamp b{font:800 italic 1.25em/1.05 var(--titre);text-transform:uppercase;color:var(--texte)}
.tbrChamp small{font-size:.8em}
.tbrCoupe{color:var(--or);line-height:0}
.tbrChamp.sacre{border:2px solid var(--or)}
.tbrChamp.sacre::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 0,var(--or),transparent 70%);opacity:.22}
