/* ════════════════════════════════════════════════════════════
   FootBleu — Competition Detail v4 (modules groupes + phase finale).
   Chargé UNIQUEMENT sur /competition/* (enqueue dans page-competition.php).
   Préfixe fblc- (competition). Mobile-first. Modes sombre + clair.
   Retour arrière : retirer l'enqueue puis supprimer ce fichier.
   ════════════════════════════════════════════════════════════ */

/* ── Accordéon de groupe (un seul ouvert via l'attribut natif name) ── */
.fblc-groups{display:block}
.fblc-group{
	border:1px solid #22314a;border-radius:14px;background:#0f1b2d;
	overflow:hidden;margin:0 0 12px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.fblc-group__sum{
	display:flex;align-items:center;gap:10px;padding:13px 14px;
	cursor:pointer;list-style:none;user-select:none}
.fblc-group__sum::-webkit-details-marker{display:none}
.fblc-group__sum b{
	flex:1;color:#58a6ff;letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}
.fblc-group__sum small{color:#8b9bb4;font-size:.72rem;white-space:nowrap}
.fblc-group__sum i{
	font-style:normal;color:#4c5f7c;font-size:1.2rem;line-height:1;transition:transform .18s}
.fblc-group[open] .fblc-group__sum i{transform:rotate(90deg)}
.fblc-group__body{padding:0 10px 12px}

/* ── Classement : essentielles d'abord (Pos·Équipe·J·+/-·Pts),
      le reste par défilement horizontal sur mobile ── */
.fblc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.fblc-gtable{min-width:560px}
.fblc-gtable.has-form{min-width:640px}
.fblc-gtable__head,.fblc-gtable__row{
	display:grid;gap:6px;align-items:center;padding:8px 8px;
	grid-template-columns:26px minmax(150px,1.6fr) 30px 40px 36px 30px 30px 30px 34px 34px}
.fblc-gtable.has-form .fblc-gtable__head,
.fblc-gtable.has-form .fblc-gtable__row{
	grid-template-columns:26px minmax(150px,1.6fr) 30px 40px 36px 30px 30px 30px 34px 34px 78px}
.fblc-gtable__head{
	color:#637694;font-size:.62rem;font-weight:600;letter-spacing:.06em;
	text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.06)}
.fblc-gtable__row{border-top:1px solid rgba(255,255,255,.04);font-size:.82rem;color:#c6d4e6}
.fblc-gtable__row:first-of-type{border-top:0}
.fblc-gtable__rank{color:#8b9bb4;font-weight:700}
.fblc-gtable__team{min-width:0;display:flex;align-items:center;gap:8px;color:#eaf1fb;font-weight:600}
.fblc-tn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fblc-gtable__pts{color:#eaf1fb;font-weight:800}
/* Zones (mêmes classes que le moteur de zones existant) */
.fblc-gtable__row.is-up{box-shadow:inset 3px 0 0 #2ea065}
.fblc-gtable__row.is-up2{box-shadow:inset 3px 0 0 #2f81f7}
.fblc-gtable__row.is-down{box-shadow:inset 3px 0 0 #dc3545}
/* Forme V/N/D */
.fblc-form{display:inline-flex;gap:3px}
.fblc-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.fblc-dot--w{background:#2ea065}
.fblc-dot--d{background:#8b9bb4}
.fblc-dot--l{background:#dc3545}

/* ── Lien équipe (classements + matchs) ── */
.fblc-tlink{display:inline-flex;align-items:center;gap:8px;min-width:0;color:inherit;text-decoration:none}
.fblc-tlink b,.fblc-tlink .fblc-tn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fblc-tlink:hover,.fblc-tlink:hover b,.fblc-tlink:hover .fblc-tn{color:#58a6ff}

/* ── Ligne de match (groupes + phase finale) ── */
.fblc-h4,.fblc-day{
	margin:14px 2px 6px;font-size:.72rem;color:#8b9bb4;
	text-transform:uppercase;letter-spacing:.06em}
.fblc-mlist{display:block}
.fblc-match{
	display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;
	padding:9px 10px;border-top:1px solid rgba(255,255,255,.05);font-size:.82rem}
.fblc-match:first-of-type,.fblc-day + .fblc-match{border-top:0}
.fblc-match.is-live{background:rgba(220,53,69,.06);border-radius:8px}
.fblc-match__team{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#dfe9f6}
.fblc-match__team b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fblc-match__team--away{justify-content:flex-end;text-align:right}
.fblc-match__team.is-winner b{color:#eaf1fb;font-weight:800}
.fblc-q{font-style:normal;color:#2ea065;font-weight:800;font-size:.85em}
.fblc-match__mid{
	display:flex;flex-direction:column;align-items:center;gap:1px;
	min-width:64px;padding:4px 10px;border-radius:9px;text-decoration:none;
	background:rgba(255,255,255,.04);transition:background .15s}
.fblc-match__mid:hover{background:rgba(47,129,247,.15)}
.fblc-match__mid b{color:#eaf1fb;font-size:.9rem;font-weight:800;line-height:1.1}
.fblc-match__mid small{color:#8b9bb4;font-size:.62rem;white-space:nowrap}
.fblc-match.is-live .fblc-match__mid small{color:#ff6b7a}

/* ── Divers ── */
.fblc-morewrap{margin:10px 0 0;text-align:center}
.fblc-adminwarn{
	margin:12px 0 0;padding:9px 12px;border:1px dashed rgba(232,161,60,.5);
	border-radius:9px;color:#e8b464;font-size:.76rem}
.fblc-ko{background:#0f1b2d;border:1px solid #22314a;border-radius:14px;
	padding:4px 10px 12px;box-shadow:0 2px 8px rgba(0,0,0,.25)}

/* ── Mode clair ── */
[data-theme="light"] .fblc-group,
[data-theme="light"] .fblc-ko{
	background:#fff;border-color:rgba(30,90,180,.16);box-shadow:0 2px 8px rgba(30,60,120,.10)}
[data-theme="light"] .fblc-gtable__head{border-bottom-color:rgba(20,40,80,.10)}
[data-theme="light"] .fblc-gtable__row{border-top-color:rgba(20,40,80,.07);color:#3c4f6b}
[data-theme="light"] .fblc-gtable__team,[data-theme="light"] .fblc-gtable__pts{color:#12233f}
[data-theme="light"] .fblc-match{border-top-color:rgba(20,40,80,.08)}
[data-theme="light"] .fblc-match__team{color:#24344f}
[data-theme="light"] .fblc-match__team.is-winner b{color:#12233f}
[data-theme="light"] .fblc-match__mid{background:rgba(30,90,180,.06)}
[data-theme="light"] .fblc-match__mid b{color:#12233f}
[data-theme="light"] .fblc-tlink:hover,[data-theme="light"] .fblc-tlink:hover b,
[data-theme="light"] .fblc-tlink:hover .fblc-tn{color:#1c5dc4}

/* ── Empty State (Étape 2) : structure conservée, aucun contenu inventé ── */
.fblc-empty__card{
	display:flex;flex-direction:column;align-items:center;gap:8px;
	padding:26px 16px;text-align:center;
	background:#0f1b2d;border:1px dashed #2a3b57;border-radius:14px}
.fblc-empty__ico{
	width:44px;height:44px;border-radius:50%;font-size:20px;
	display:flex;align-items:center;justify-content:center;
	background:rgba(47,129,247,.08);box-shadow:inset 0 0 0 1px rgba(47,129,247,.25);
	filter:grayscale(.35);opacity:.9}
.fblc-empty__card p{margin:0;color:#8b9bb4;font-size:.84rem;line-height:1.5;max-width:340px}
[data-theme="light"] .fblc-empty__card{background:#fff;border-color:rgba(30,90,180,.25)}
[data-theme="light"] .fblc-empty__card p{color:#5b6c85}

/* ── Notice édition future (« la saison n'a pas encore commencé ») ── */
.fblc-notice{
	margin:14px 0 4px;padding:11px 16px;border-radius:12px;
	background:rgba(47,129,247,.10);border:1px solid rgba(47,129,247,.35);
	color:#9ec7ff;font-size:.86rem;font-weight:600;text-align:center}
[data-theme="light"] .fblc-notice{
	background:rgba(30,90,180,.07);border-color:rgba(30,90,180,.25);color:#1c5dc4}

/* ── 🏆 Badge Champion (édition terminée, vainqueur confirmé) ── */
.fblc-champ{margin:14px 0 4px}
.fblc-champ__card{
	display:flex;align-items:center;gap:14px;padding:14px 16px;
	border-radius:14px;text-decoration:none;
	background:linear-gradient(135deg,rgba(212,175,55,.16) 0%,rgba(15,27,45,.9) 55%,rgba(212,175,55,.10) 100%);
	border:1px solid rgba(212,175,55,.45);
	box-shadow:0 4px 18px rgba(212,175,55,.12);
	transition:border-color .15s,transform .15s}
a.fblc-champ__card:hover{border-color:#d4af37;transform:translateY(-1px)}
.fblc-champ__logo{flex:0 0 52px;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(0,0,0,.45))}
.fblc-champ__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fblc-champ__title{
	font-style:normal;font-size:.7rem;font-weight:700;letter-spacing:.08em;
	text-transform:uppercase;
	background-image:linear-gradient(120deg,#f8e08e,#d4af37 60%,#f8e08e);
	-webkit-background-clip:text;background-clip:text;color:transparent}
.fblc-champ__team{color:#eaf1fb;font-size:1.05rem;font-weight:800;line-height:1.2}
.fblc-champ__sub{color:#8b9bb4;font-size:.76rem}
.fblc-champ__go{color:#d4af37;font-size:1.3rem}
[data-theme="light"] .fblc-champ__card{
	background:linear-gradient(135deg,rgba(212,175,55,.14) 0%,#ffffff 55%,rgba(212,175,55,.10) 100%);
	border-color:rgba(180,140,30,.45);box-shadow:0 4px 18px rgba(180,140,30,.14)}
[data-theme="light"] .fblc-champ__team{color:#12233f}

/* ═══════════ MC3-C (19/07/2026, v2) — ARBRE HORIZONTAL organisé (gauche → droite) ═══════════ */
/* Chips de tours (saut rapide, surtout mobile) */
.fblc-bkt__chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:10px;margin-bottom:4px}
.fblc-bkt__chips::-webkit-scrollbar{display:none}
.fblc-bkt__chip{flex:none;padding:6px 14px;border-radius:99px;border:1px solid rgba(139,155,180,.25);background:rgba(139,155,180,.08);font-size:.8rem;font-weight:700;color:#a8b7cf;white-space:nowrap;text-decoration:none;scroll-snap-align:start}
.fblc-bkt__chip:hover{color:#eaf1fb;border-color:rgba(0,212,170,.5)}

/* Arbre : colonnes côte à côte, chaque DORE = une colonne, défilement horizontal fluide */
.fblc-bkt{display:flex;flex-direction:row;gap:clamp(18px,4vw,44px);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;align-items:stretch;padding:4px 2px 16px;scrollbar-width:thin}
.fblc-bkt::-webkit-scrollbar{height:8px}
.fblc-bkt::-webkit-scrollbar-thumb{background:rgba(139,155,180,.3);border-radius:99px}
.fblc-bkt__round{flex:0 0 auto;width:min(250px,80vw);display:flex;flex-direction:column;scroll-snap-align:start;position:relative}
.fblc-bkt__rlabel{font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#8b9bb4;margin:0 0 12px;text-align:center;white-space:nowrap}
/* Matchs d'une colonne : répartis verticalement (entonnoir vers la finale) */
.fblc-bkt__matches{display:flex;flex-direction:column;justify-content:space-around;gap:14px;flex:1}
.fblc-bkt__slot{position:relative;display:flex}
.fblc-bkt__chev{display:none} /* pas de chevron vertical en mode horizontal */

/* Carte de match */
.fblc-bkt__card{flex:1;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:13px;text-decoration:none;
  background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.012));border:1px solid rgba(139,155,180,.18);transition:border-color .15s,transform .15s,box-shadow .15s}
.fblc-bkt__card:hover{border-color:rgba(0,212,170,.45);transform:translateY(-1px);box-shadow:0 8px 22px -16px rgba(0,212,170,.6)}
.fblc-bkt__team{display:grid;grid-template-columns:22px 1fr 14px auto;align-items:center;gap:8px;color:#cdd9ea;font-size:.9rem;min-width:0;padding:3px 5px;border-radius:8px}
.fblc-bkt__team img{width:22px;height:22px;object-fit:contain}
.fblc-bkt__ph{width:22px;height:22px}
.fblc-bkt__team b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fblc-bkt__team.is-q{background:rgba(0,212,170,.12)}
.fblc-bkt__team.is-q b{color:#eaf1fb;font-weight:800}
.fblc-bkt__q{color:#00d4aa;font-style:normal;font-weight:900;text-align:center;line-height:1}
.fblc-bkt__sc{font-variant-numeric:tabular-nums;font-weight:800;color:#eaf1fb;min-width:16px;text-align:right}
.fblc-bkt__team.is-q .fblc-bkt__sc{color:#00d4aa}
.fblc-bkt__meta{font-size:.72rem;color:#8b9bb4;margin-top:3px;border-top:1px solid rgba(139,155,180,.12);padding-top:5px;text-align:center}
.fblc-bkt__card.is-live{border-color:rgba(220,53,69,.5);background:rgba(220,53,69,.06)}

/* Finale : colonne finale mise en valeur */
.fblc-bkt__round:last-child .fblc-bkt__card{border-color:rgba(255,215,0,.4);background:linear-gradient(160deg,rgba(255,215,0,.09),rgba(255,255,255,.015));box-shadow:0 8px 26px -16px rgba(255,215,0,.5)}

/* Connecteurs horizontaux (arbre propre uniquement) : équerres entre colonnes */
@media(min-width:721px){
  .fblc-bkt.is-clean .fblc-bkt__round:not(:last-child) .fblc-bkt__slot::after{content:"";position:absolute;top:50%;left:100%;width:calc(clamp(18px,4vw,44px)/2);height:2px;background:rgba(0,212,170,.35)}
  .fblc-bkt.is-clean .fblc-bkt__round:not(:first-child) .fblc-bkt__slot::before{content:"";position:absolute;top:50%;right:100%;width:calc(clamp(18px,4vw,44px)/2);height:2px;background:rgba(0,212,170,.35)}
}

/* Champion (sous l'arbre) : bloc premium couronné */
.fblc-bkt__champion{display:flex;flex-direction:column;align-items:center;gap:5px;margin:18px auto 4px;max-width:360px;padding:16px 24px;
  background:radial-gradient(120% 120% at 50% 0,rgba(255,215,0,.2),rgba(255,215,0,.03));border:1px solid rgba(255,215,0,.4);border-radius:18px;box-shadow:0 12px 40px -20px rgba(255,215,0,.6)}
.fblc-bkt__crown{font-size:1.7rem;line-height:1}
.fblc-bkt__champlabel{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#ffd76a}
.fblc-bkt__champbody{display:flex;align-items:center;gap:12px}
.fblc-bkt__champbody img{border-radius:8px}
.fblc-bkt__champion strong{font-size:1.4rem;color:#fff}

/* 3e place */
.fblc-bkt__third{margin-top:18px;max-width:280px}
.fblc-bkt__third .fblc-bkt__slot{margin-top:8px}
.fblc-bkt__third .fblc-bkt__rlabel{text-align:left}

/* Mobile : colonnes plus larges, swipe fluide, la barre de chips guide la navigation */
@media(max-width:720px){
  .fblc-bkt{gap:16px;scroll-snap-type:x mandatory}
  .fblc-bkt__round{width:82vw}
}

/* ═══════════ MC3-C.3 (19/07/2026) — cartes compactes + onglets mobile ═══════════ */
/* Cartes plus petites (tiennent mieux l'espace) */
.fblc-bkt__round{width:min(220px,78vw)}
.fblc-bkt__card{padding:8px 10px;gap:2px;border-radius:11px}
.fblc-bkt__team{grid-template-columns:18px 1fr 12px auto;gap:6px;font-size:.82rem;padding:2px 4px}
.fblc-bkt__team img,.fblc-bkt__ph{width:18px;height:18px}
.fblc-bkt__sc{font-size:.86rem;min-width:14px}
.fblc-bkt__meta{font-size:.68rem;padding-top:4px;margin-top:2px}
.fblc-bkt__matches{gap:10px}
/* 3e place = tour SÉPARÉ (jamais mêlé aux autres) : pas de connecteur */
.fblc-bkt__round--third .fblc-bkt__slot::before,.fblc-bkt__round--third .fblc-bkt__slot::after{display:none!important}
.fblc-bkt__round--third .fblc-bkt__matches{justify-content:flex-start}

/* ── MOBILE : un tour à la fois (onglets), l'arbre ne déborde plus ── */
@media(max-width:720px){
	.fblc-bkt{flex-direction:column;overflow:visible;gap:0;padding-bottom:6px}
	.fblc-bkt__round{display:none;width:100%!important;max-width:100%}
	.fblc-bkt__round.is-active{display:flex}
	.fblc-bkt__matches{gap:10px}
	.fblc-bkt__chip.is-active{background:rgba(0,212,170,.16);border-color:#00d4aa;color:#eaf1fb}
	.fblc-bkt__chips{position:sticky;top:56px;z-index:5;background:linear-gradient(180deg,rgba(9,17,30,.96),rgba(9,17,30,.9));padding-top:6px}
}
/* Desktop : tous les tours visibles en colonnes (onglets ignorés) */
@media(min-width:721px){
	.fblc-bkt__round{display:flex!important}
}

/* ═══════════ MC3-D (19/07/2026) — ARBRE CONVERGENT 2 CÔTÉS + LIAISONS (trophée central) ═══════════ */
/* Style Coupe du monde, COMPACT (tient dans une page), avec équerres reliant
 * chaque match à son tour suivant. Les liaisons ne sont tracées que si l'arbre
 * est PROUVÉ (.is-clean) : jamais de connexion fictive. */
.fblc-bkt--tree{--g:clamp(10px,1.4vw,22px);--ln:rgba(0,212,170,.5);
	align-items:stretch;justify-content:center;gap:var(--g);overflow-x:auto;padding:4px 2px 10px}
.fblc-bkt--tree .fblc-bkt__col{flex:0 0 auto;width:clamp(84px,9.5vw,116px);display:flex;flex-direction:column;position:relative}
.fblc-bkt--tree .fblc-bkt__colmatches{display:flex;flex-direction:column;justify-content:center;gap:0;flex:1}
.fblc-bkt--tree .fblc-bkt__slot{position:relative;flex:1 1 0;display:flex;align-items:center;padding:2px 0}
.fblc-bkt--tree .fblc-bkt__rlabel{font-size:.56rem;margin:0 0 5px;letter-spacing:.02em}
/* Cartes compactes */
.fblc-bkt--tree .fblc-bkt__card{padding:4px 6px;gap:1px;border-radius:8px}
.fblc-bkt--tree .fblc-bkt__team{grid-template-columns:13px 1fr 10px auto;gap:4px;font-size:.64rem;padding:1px 2px}
.fblc-bkt--tree .fblc-bkt__team img,.fblc-bkt--tree .fblc-bkt__ph{width:13px;height:13px}
.fblc-bkt--tree .fblc-bkt__sc{font-size:.66rem;min-width:10px}
.fblc-bkt--tree .fblc-bkt__meta{font-size:.53rem;padding-top:2px;margin-top:1px}
/* Colonne finale (centre) : plus large ; carte finale centrée (stubs alignés),
 * trophée plus grand au-dessus, 3e place empilée juste en dessous. */
.fblc-bkt--tree .fblc-bkt__col--final{position:relative;width:clamp(132px,15.5vw,182px)}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__colmatches{justify-content:center}
.fblc-bkt--tree .fblc-bkt__slot--final{flex:0 0 auto}
.fblc-bkt__trophy{position:absolute;left:0;right:0;bottom:calc(50% + 34px);font-size:2.7rem;line-height:1;text-align:center;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(255,215,0,.5))}
/* Carte finale : dorée et un peu plus grande que les autres */
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__card{padding:7px 10px;border-radius:11px;border-color:rgba(255,215,0,.5);background:linear-gradient(160deg,rgba(255,215,0,.16),rgba(255,255,255,.02));box-shadow:0 12px 34px -16px rgba(255,215,0,.7)}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__team{grid-template-columns:17px 1fr 13px auto;gap:6px;font-size:.78rem}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__team img,.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__ph{width:17px;height:17px}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__sc{font-size:.8rem;min-width:13px}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__meta{font-size:.58rem}
/* Petit intitulé au-dessus d'un bloc central */
.fblc-bkt__caption{display:block;font-size:.52rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#9fb0c9;text-align:center;margin-bottom:3px}
/* 3e place : empilée sous la finale, au centre (hors flux → n'affecte pas l'alignement) */
.fblc-bkt__podium3{position:absolute;left:0;right:0;top:calc(50% + 42px);display:flex;flex-direction:column;align-items:stretch}
.fblc-bkt__podium3 .fblc-bkt__slot{padding:0}
.fblc-bkt__podium3 .fblc-bkt__slot::before,.fblc-bkt__podium3 .fblc-bkt__slot::after{display:none!important}
.fblc-bkt__podium3 .fblc-bkt__card{border-color:rgba(205,127,50,.42);background:linear-gradient(160deg,rgba(205,127,50,.12),rgba(255,255,255,.015))}
/* Médailles (🥇🥈🥉) côté drapeau, sur le bord extérieur de la carte.
 * On réserve une gouttière à gauche (has-medals) et on y place la médaille,
 * alignée sur chaque ligne d'équipe (donc à l'extérieur du drapeau, pas à l'intérieur). */
.fblc-bkt__team{position:relative}
.fblc-bkt__card.has-medals{padding-left:24px}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__card.has-medals{padding-left:27px}
.fblc-bkt__medal{position:absolute;top:50%;right:100%;transform:translateY(-50%);margin-right:3px;font-size:.9rem;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__medal{font-size:1rem}
.fblc-bkt--tree .fblc-bkt__champion{margin:12px auto 0}

/* ── LIAISONS (équerres) reliant chaque match à son tour suivant ──
 * Un tour éliminatoire complet alimente TOUJOURS le tour suivant (fait structurel) :
 * les traits sont donc tracés dès que l'arbre est affiché. L'ORDRE (quelle équipe
 * dans quelle case) suit l'identité du vainqueur ; jamais de case dupliquée.
 * Gauche : vainqueur → DROITE. ::after = moignon sortant ; ::before = équerre « ] »
 * de la colonne parente vers ses 2 enfants à gauche. */
.fblc-bkt--tree .fblc-bkt__col[data-side="l"] .fblc-bkt__slot::after{content:"";position:absolute;left:100%;top:50%;width:calc(var(--g)/2);height:2px;background:var(--ln)}
.fblc-bkt--tree .fblc-bkt__col[data-side="l"]:not(.is-outer) .fblc-bkt__slot::before{content:"";position:absolute;right:100%;top:25%;height:50%;width:calc(var(--g)/2);border:2px solid var(--ln);border-left:0}
/* Droite : miroir. Vainqueur → GAUCHE (centre). */
.fblc-bkt--tree .fblc-bkt__col[data-side="r"] .fblc-bkt__slot::before{content:"";position:absolute;right:100%;top:50%;width:calc(var(--g)/2);height:2px;background:var(--ln)}
.fblc-bkt--tree .fblc-bkt__col[data-side="r"]:not(.is-outer) .fblc-bkt__slot::after{content:"";position:absolute;left:100%;top:25%;height:50%;width:calc(var(--g)/2);border:2px solid var(--ln);border-right:0}
/* Finale : moignons vers les deux demi-finales (une de chaque côté). */
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__slot::before{content:"";position:absolute;right:100%;top:50%;width:calc(var(--g)/2);height:2px;background:var(--ln)}
.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__slot::after{content:"";position:absolute;left:100%;top:50%;width:calc(var(--g)/2);height:2px;background:var(--ln)}

/* 3e place = bloc séparé sous l'arbre */
.fblc-bkt__extra{max-width:300px;margin:22px auto 0}
.fblc-bkt__extra .fblc-bkt__matches{justify-content:flex-start}

/* Mobile : un tour à la fois (les 2 moitiés empilées), pas de liaisons ni débordement */
@media(max-width:720px){
	.fblc-bkt--tree{flex-direction:column;overflow:visible;gap:0;align-items:stretch;width:100%;max-width:100%}
	.fblc-bkt--tree .fblc-bkt__col{display:none}
	.fblc-bkt--tree .fblc-bkt__col.is-active{display:flex}
	.fblc-bkt--tree .fblc-bkt__col,
	.fblc-bkt--tree .fblc-bkt__colmatches,
	.fblc-bkt--tree .fblc-bkt__slot,
	.fblc-bkt--tree .fblc-bkt__card{width:100%!important;max-width:100%;min-width:0}
	.fblc-bkt--tree .fblc-bkt__colmatches,
	.fblc-bkt--tree .fblc-bkt__col--final .fblc-bkt__colmatches{justify-content:flex-start;gap:8px}
	.fblc-bkt--tree .fblc-bkt__slot{flex:0 0 auto;padding:0}
	.fblc-bkt--tree .fblc-bkt__card{padding:8px 10px;gap:2px}
	.fblc-bkt--tree .fblc-bkt__team{grid-template-columns:18px 1fr 12px auto;gap:6px;font-size:.82rem}
	.fblc-bkt--tree .fblc-bkt__team img,.fblc-bkt--tree .fblc-bkt__ph{width:18px;height:18px}
	.fblc-bkt--tree .fblc-bkt__sc{font-size:.86rem}
	.fblc-bkt--tree .fblc-bkt__meta{font-size:.68rem}
	.fblc-bkt--tree .fblc-bkt__slot::after,.fblc-bkt--tree .fblc-bkt__slot::before{display:none!important}
	.fblc-bkt--tree .fblc-bkt__col[data-side="r"] .fblc-bkt__rlabel{display:none} /* libellé du tour : une seule fois */
	.fblc-bkt__trophy{position:static;font-size:2.2rem;margin-bottom:6px}
	/* 3e place : sous la finale, en flux normal sur mobile */
	.fblc-bkt__podium3{position:static;margin-top:12px}
	.fblc-bkt__extra{display:none;max-width:100%}
	.fblc-bkt__extra.is-active{display:block}
}
/* Desktop : toutes les colonnes de l'arbre visibles (onglets ignorés) */
@media(min-width:721px){
	.fblc-bkt--tree .fblc-bkt__col{display:flex!important}
	.fblc-bkt__extra{display:block!important}
}

/* ═══════════ MC3-D — PODIUM (Overview d'une phase finale) — 3 badges distincts ═══════════ */
.fbl-podium{margin:6px 0 22px}
.fbl-podium__badge{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:16px;text-decoration:none;border:1px solid rgba(255,255,255,.12);position:relative;transition:transform .15s,box-shadow .15s}
.fbl-podium__badge:hover{transform:translateY(-2px)}
.fbl-podium__medal{font-size:2rem;line-height:1;flex:0 0 auto;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}
.fbl-podium__logo{width:48px;height:48px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}
.fbl-podium__logo--ph{width:48px;height:48px;background:rgba(255,255,255,.06);border-radius:10px}
.fbl-podium__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.fbl-podium__rank{font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.fbl-podium__name{font-size:1.15rem;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Or (1er) : grand, éclat doré */
.fbl-podium__badge--gold{padding:18px 22px;border-color:rgba(255,215,0,.55);
	background:radial-gradient(130% 130% at 12% 0,rgba(255,215,0,.28),rgba(255,215,0,.05) 60%,rgba(255,255,255,.02));
	box-shadow:0 16px 40px -20px rgba(255,215,0,.75),inset 0 0 0 1px rgba(255,215,0,.15)}
.fbl-podium__badge--gold .fbl-podium__medal{font-size:2.6rem}
.fbl-podium__badge--gold .fbl-podium__logo{width:58px;height:58px}
.fbl-podium__badge--gold .fbl-podium__rank{color:#ffd76a}
.fbl-podium__badge--gold .fbl-podium__name{font-size:1.4rem}
/* Rangée 2e + 3e */
.fbl-podium__row{display:flex;gap:12px;margin-top:12px}
.fbl-podium__row .fbl-podium__badge{flex:1 1 0;min-width:0}
/* Argent (2e) */
.fbl-podium__badge--silver{border-color:rgba(200,210,225,.5);
	background:radial-gradient(130% 130% at 12% 0,rgba(200,210,225,.22),rgba(200,210,225,.04) 60%,rgba(255,255,255,.015));
	box-shadow:0 12px 30px -20px rgba(200,210,225,.55)}
.fbl-podium__badge--silver .fbl-podium__rank{color:#cfd8e6}
/* Bronze (3e) */
.fbl-podium__badge--bronze{border-color:rgba(205,127,50,.5);
	background:radial-gradient(130% 130% at 12% 0,rgba(205,127,50,.24),rgba(205,127,50,.05) 60%,rgba(255,255,255,.015));
	box-shadow:0 12px 30px -20px rgba(205,127,50,.55)}
.fbl-podium__badge--bronze .fbl-podium__rank{color:#e0a06a}
[data-theme="light"] .fbl-podium__name{color:#12233f}
@media(max-width:560px){
	.fbl-podium__row{flex-direction:column}
	.fbl-podium__badge--gold .fbl-podium__name{font-size:1.2rem}
}

/* ═══════════ Bloc 2 — JOURNÉES de championnat (une à la fois) ═══════════ */
.fbld{margin:4px 0}
.fbld__nav{display:flex;align-items:center;gap:6px;margin:6px 0 12px}
.fbld__arrow{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid rgba(139,155,180,.3);background:rgba(139,155,180,.08);color:#c6d4e6;font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fbld__arrow:hover{border-color:#2f81f7;color:#fff}
.fbld__chips{flex:1;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}
.fbld__chips::-webkit-scrollbar{display:none}
.fbld__chip{flex:0 0 auto;padding:8px 16px;border-radius:99px;border:1px solid rgba(139,155,180,.25);background:rgba(139,155,180,.06);color:#a8b7cf;font-weight:700;font-size:.9rem;cursor:pointer;white-space:nowrap}
.fbld__chip:hover{color:#eaf1fb;border-color:rgba(47,129,247,.5)}
.fbld__chip.is-active{background:#2f81f7;border-color:#2f81f7;color:#fff;box-shadow:0 6px 16px -8px rgba(47,129,247,.8)}
.fbld__panel{display:none}
.fbld__panel.is-active{display:block}
.fbld__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;color:#8b9bb4;font-size:.82rem;margin:0 0 12px}
.fbld__range{font-weight:600;color:#c6d4e6}
.fbld__pill{padding:2px 10px;border-radius:99px;font-size:.72rem;font-weight:700}
.fbld__pill--live{background:rgba(220,53,69,.15);color:#ff6b7a}
.fbld__pill--done{background:rgba(46,160,101,.15);color:#43c88a}
.fbld__pill--soon{background:rgba(139,155,180,.15);color:#a8b7cf}
.fbld__day{margin:14px 0 8px;padding:8px 14px;border-radius:10px;background:#12233f;color:#dfe9f6;font-weight:700;font-size:.8rem}
.fbld-m{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 8px;border-radius:12px;border:1px solid rgba(139,155,180,.12);background:rgba(255,255,255,.02);margin:0 0 8px}
.fbld-m.is-live{border-color:rgba(220,53,69,.4);background:rgba(220,53,69,.05)}
.fbld-m__time{font-size:.78rem;color:#8b9bb4;font-variant-numeric:tabular-nums;white-space:nowrap}
.fbld-m__side{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#dfe9f6;text-decoration:none;justify-content:flex-end}
.fbld-m__side--away{justify-content:flex-start}
.fbld-m__tn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.fbld-m__side img,.fbld-m__ph{width:26px;height:26px;object-fit:contain;flex:0 0 auto}
.fbld-m__ph{background:rgba(255,255,255,.06);border-radius:6px}
.fbld-m__side:hover .fbld-m__tn{color:#58a6ff}
.fbld-m__c{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:60px;padding:4px 8px;border-radius:8px;text-decoration:none;background:#12233f}
.fbld-m__c b{font-size:.95rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.fbld-m__c small{font-size:.6rem;color:#9fb0c9;white-space:nowrap}
.fbld-m.is-live .fbld-m__c{background:#dc3545}
.fbld-m.is-live .fbld-m__c b,.fbld-m.is-live .fbld-m__c small{color:#fff}
.fbld-m.is-soon .fbld-m__c{background:rgba(139,155,180,.15)}
.fbld-m.is-soon .fbld-m__c b,.fbld-m.is-soon .fbld-m__c small{color:#8b9bb4}
.fbld-m__go{flex:0 0 auto;color:#4c5f7c;font-size:1.2rem;text-decoration:none;padding:0 2px}
.fbld-m__go:hover{color:#2f81f7}
.fbld__legend{display:flex;justify-content:center;gap:16px;margin:16px 0 4px;color:#8b9bb4;font-size:.78rem}
.fbld__legend span{display:inline-flex;align-items:center;gap:6px}
.fbld__dot{width:9px;height:9px;border-radius:50%}
.fbld__dot--done{background:#2ea065}
.fbld__dot--live{background:#dc3545}
.fbld__dot--soon{background:#8b9bb4}
@media(max-width:560px){
	.fbld-m{gap:6px;padding:9px 6px}
	.fbld-m__time{font-size:.72rem}
	.fbld-m__tn{font-size:.86rem}
	.fbld-m__side img,.fbld-m__ph{width:22px;height:22px}
	.fbld-m__c{min-width:54px;padding:3px 6px}
	.fbld__chip{padding:7px 14px;font-size:.86rem}
}
/* Mode clair */
[data-theme="light"] .fbld__chip{background:#fff;border-color:rgba(30,90,180,.2);color:#3c4f6b}
[data-theme="light"] .fbld__chip.is-active{background:#2f6bff;border-color:#2f6bff;color:#fff}
[data-theme="light"] .fbld__arrow{background:#fff;border-color:rgba(30,90,180,.2);color:#24344f}
[data-theme="light"] .fbld__range{color:#24344f}
[data-theme="light"] .fbld-m{background:#fff;border-color:rgba(30,90,180,.12);box-shadow:0 1px 4px rgba(30,60,120,.06)}
[data-theme="light"] .fbld-m__side{color:#24344f}
[data-theme="light"] .fbld-m__ph{background:rgba(30,60,120,.08)}
