/* Finition graphique : composants sans incidence fonctionnelle. */
.dept-crest{--crest:#0d3d77;display:inline-grid;place-items:center;width:2.45rem;height:2.85rem;padding:.16rem;color:#f7e8bf;background:linear-gradient(145deg,#155594,var(--crest) 62%,#071a31);border:2px solid #d6a64c;clip-path:polygon(50% 0,93% 12%,88% 73%,50% 100%,12% 73%,7% 12%);box-shadow:inset 0 0 0 2px rgba(255,240,185,.18),0 2px 5px rgba(0,0,0,.45);font-family:Georgia,serif;line-height:1;text-align:center;vertical-align:middle}.dept-crest-code{font-size:1.08rem;font-weight:bold;text-shadow:0 1px 2px #000}.dept-crest-name{display:none}.dept-crest-leader{width:3rem;height:3.45rem;margin-right:.45rem}.dept-crest-leader .dept-crest-code{font-size:1.45rem}.dept-crest-mini{width:1.45rem;height:1.7rem;margin-right:.22rem;border-width:1px}.dept-crest-mini .dept-crest-code{font-size:.62rem}.dept-crest-duel{width:2.1rem;height:2.45rem}.dept-crest-duel .dept-crest-code{font-size:.9rem}.duel-team:nth-of-type(2) .dept-crest{--crest:#7c1d22}.tete-nom{display:flex;align-items:center;justify-content:center}.tete-nom .ico,.tete-code{display:none}
#duel-panel .jeu-carte{position:relative;isolation:isolate;background:#06192a;border:1px solid #d6a64c;box-shadow:inset 0 0 0 3px rgba(214,166,76,.12),0 6px 14px rgba(0,0,0,.34)}#duel-panel .jeu-carte::after{content:'✦';position:absolute;z-index:3;top:.18rem;right:.35rem;color:#f5d48d;font-size:.72rem;text-shadow:0 1px 3px #000}#duel-panel .jeu-image{flex-basis:61%;border-bottom:0}#duel-panel .jeu-image::after{background:linear-gradient(0deg,#06192a 0%,rgba(6,25,42,.1) 72%)}#duel-panel .jeu-corps{position:relative;margin-top:-1.25rem;padding:.3rem .55rem .5rem;background:linear-gradient(180deg,transparent,#06192a 23%);z-index:2}#duel-panel .jeu-corps h3{padding:.18rem .25rem .12rem;color:#fff0cb;font-size:.78rem;line-height:1.05;text-shadow:0 1px 3px #000}#duel-panel .jeu-boutons{padding-top:.08rem;border-top:1px solid rgba(214,166,76,.28)}#duel-panel .jeu-boutons .btn{color:#fff0cf;background:linear-gradient(135deg,#a9141d,#6c080f);border-color:#e1ae52;box-shadow:inset 0 0 0 1px rgba(255,225,160,.27)}#duel-panel .jeu-boutons .btn::before{content:'⚔ ';font-size:.65rem}#duel-panel .jeu-boutons .btn-ghost{color:#f4d89c;background:linear-gradient(135deg,#123c76,#061f4b);border-color:#d7a84e}#duel-panel .jeu-boutons .btn-ghost::before{content:'♜ ';font-size:.65rem}
.super-primes .stat-card{overflow:hidden}.super-primes .stat-card::before{content:'TOP\A 5';white-space:pre;display:grid;place-items:center;width:2.05rem;height:2.45rem;padding-top:.05rem;border:2px solid #d6a64c;clip-path:polygon(50% 0,92% 12%,87% 74%,50% 100%,13% 74%,8% 12%);background:linear-gradient(145deg,#155594,#071a31);color:#f7e8bf;font:700 .54rem/1 Georgia,serif;text-align:center}.super-primes .stat-card:nth-child(2)::before{content:'100\A 🏆';background:linear-gradient(145deg,#7d171e,#31080d);font-size:.58rem}.super-primes .jauge{border:1px solid rgba(214,166,76,.55);background:#04111e}.super-primes .jauge span{background:linear-gradient(90deg,#9b1d23,#f0c467)}
.super:not(.super-primes) .stat-card{background:linear-gradient(105deg,rgba(5,22,35,.88),rgba(16,52,72,.54));border-color:rgba(214,166,76,.38)}.super:not(.super-primes) .stat-label .ico{color:#f1c66f}.super-titre::before{content:'⚔';margin-right:.45rem;color:#d6a64c;font-size:.8em}.championship-grid h2::before{content:'✦';margin-right:.3rem;color:#d6a64c;font-size:.7em}.map-panel::after{content:'♜';position:absolute;right:1rem;bottom:.5rem;color:rgba(214,166,76,.13);font-size:4rem;pointer-events:none}.championship-grid #leaderboard-panel::after{content:'♛';position:absolute;right:.6rem;top:.25rem;color:rgba(214,166,76,.14);font-size:2.3rem;pointer-events:none}.records li::before{content:'✦';color:#d6a64c;align-self:center}.records li{grid-template-columns:auto minmax(0,1fr) auto}.record-qui{grid-column:2/-1}.pied{position:relative}.pied::before{content:'⚜';position:absolute;left:50%;top:-.72rem;transform:translateX(-50%);color:#d6a64c;background:#07111a;padding:0 .6rem}
@media(max-width:620px){.dept-crest-leader{width:2.55rem;height:2.9rem}.tete-nom{font-size:1.05rem}#duel-panel .jeu-image{flex-basis:64%}.super-primes .stat-card::before{width:1.8rem;height:2.15rem}.dept-crest-mini{width:1.25rem;height:1.45rem}}

/* Derniers ajustements de densité : ces règles ne concernent que la présentation. */
@media (min-width:1000px){
  #duel-panel{padding:.65rem .75rem}
  #duel-panel .super-sous{margin:.2rem 0 .45rem}
  #duel-panel .apercu-cible{margin:0 0 .55rem}
  #duel-panel .jeux-piste{--ecart:.55rem;padding:.1rem .1rem .35rem}
  #duel-panel .jeu-carte{flex:0 0 calc((100% - 4 * var(--ecart)) / 5)!important;flex-direction:column!important;height:13.4rem!important;min-height:13.4rem!important}
  #duel-panel .jeu-image{flex:0 0 58%!important;width:100%}
  #duel-panel .jeu-corps{display:flex;flex:1;flex-direction:column;margin-top:-.9rem;padding:.24rem .4rem .38rem}
  #duel-panel .jeu-corps h3{font-size:.7rem}
  #duel-panel .jeu-mention{display:none}
  #duel-panel .jeu-boutons{margin-top:auto}
  #duel-panel .jeux-reperes{margin-top:.25rem}
}

/* Le message d'un invité reste visible, mais ne monopolise plus la page. */
#historique-panel:has(.stat-value.empty){padding:.55rem .8rem;min-height:0}
#historique-panel:has(.stat-value.empty) h2{margin:0 0 .25rem;font-size:.9rem}
#historique-panel:has(.stat-value.empty) h2::after{margin-top:.2rem}
#historique-panel .stat-value.empty{margin:.1rem 0;line-height:1.35}
#historique-panel:has(.stat-value.empty) #historique-liste{max-width:58rem;margin:0 auto;text-align:center}

/* État vide du duel : une attente assumée, au centre du tableau. */
.last-duel-panel #last-duel-zone{height:calc(100% - 1.65rem)}
.last-duel-panel .duel-empty{height:100%;min-height:9rem;display:grid;place-content:center;text-align:center;gap:.6rem;background:radial-gradient(circle,rgba(132,35,31,.22),transparent 64%)!important}
.last-duel-panel .duel-empty::before{content:'⚔';display:grid;place-items:center;width:3.1rem;height:3.1rem;margin:auto;color:#f1cf87;border:1px solid rgba(214,166,76,.7);clip-path:polygon(50% 0,93% 12%,88% 73%,50% 100%,12% 73%,7% 12%);background:linear-gradient(145deg,#133f70,#071a31);font-size:1.25rem;box-shadow:inset 0 0 0 2px rgba(255,240,185,.12)}
.last-duel-panel .duel-empty .stat-label{display:none}
.last-duel-panel .duel-empty .stat-value{max-width:12rem;margin:0;color:#d9c9a7}

/* Le champion du mois devient le véritable point d'entrée du championnat. */
.tete-nom{margin:.05rem 0 .15rem}
.dept-crest-leader{width:4.25rem;height:4.85rem;margin:0;filter:drop-shadow(0 4px 7px rgba(0,0,0,.45))}
.dept-crest-leader .dept-crest-code{font-size:2rem}
.dept-crest-premium{display:block;width:auto;height:7.75rem;padding:0;border:0;clip-path:none;background:transparent;box-shadow:none;filter:drop-shadow(0 2px 5px rgba(0,0,0,.42)) drop-shadow(0 0 7px rgba(214,166,76,.2))}
.dept-crest-premium img{display:block;width:auto;height:100%;max-width:100%;object-fit:contain}
.tete-points{margin:.05rem 0;font-size:1.55rem;line-height:1}
.tete-points span{font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}
.tete-meta{margin:.25rem auto 0;max-width:40rem;font-size:.82rem}

/* Les trois marches du podium se distinguent sans alourdir le tableau. */
.championship-grid .leaderboard tbody tr:nth-child(-n+3){background:linear-gradient(90deg,rgba(214,166,76,.17),transparent 82%)}
.championship-grid .leaderboard tbody tr:nth-child(1){box-shadow:inset 3px 0 #e5bd57}
.championship-grid .leaderboard tbody tr:nth-child(2){box-shadow:inset 3px 0 #c9ced5}
.championship-grid .leaderboard tbody tr:nth-child(3){box-shadow:inset 3px 0 #bd7951}
.championship-grid .leaderboard tbody tr:nth-child(1) .dept-crest-mini{--crest:#936619;transform:scale(1.14)}
.championship-grid .leaderboard tbody tr:nth-child(2) .dept-crest-mini{--crest:#667484;transform:scale(1.07)}
.championship-grid .leaderboard tbody tr:nth-child(3) .dept-crest-mini{--crest:#87502d;transform:scale(1.04)}
.championship-grid .leaderboard tbody tr:nth-child(1) .rank,.championship-grid .leaderboard tbody tr:nth-child(1) .pts{color:#f4d77f;font-size:1.1em}
.championship-grid .leaderboard tbody tr:nth-child(2) .rank,.championship-grid .leaderboard tbody tr:nth-child(2) .pts{color:#e0e3e6}
.championship-grid .leaderboard tbody tr:nth-child(3) .rank,.championship-grid .leaderboard tbody tr:nth-child(3) .pts{color:#d79a72}

@media (max-width:620px){
  #duel-panel .jeu-carte{min-height:12rem}
  #historique-panel:has(.stat-value.empty){padding:.5rem .65rem}
  .last-duel-panel .duel-empty{min-height:7.4rem}
  .dept-crest-leader{width:3.4rem;height:3.9rem}
  .dept-crest-leader .dept-crest-code{font-size:1.6rem}
  .dept-crest-premium{width:auto;height:5.625rem}
}

/* Bandeau du champion : plus dense, le blason restant l'élément souverain. */
.tete{padding:.42rem 1rem .5rem}
.tete-label{margin:0 0 .04rem;line-height:1.15}
.tete-nom{margin:0;line-height:0}
.dept-crest-premium{height:9.1rem}
.tete-points{margin:.02rem 0 0;font-size:1.48rem;line-height:1}
.tete-meta{margin:.12rem auto 0;line-height:1.2}

@media (max-width:620px){
  .tete{padding:.38rem .7rem .45rem}
  .tete-label{font-size:.61rem}
  .dept-crest-premium{height:6.75rem}
  .tete-points{font-size:1.34rem}
  .tete-meta{font-size:.72rem}
}

/* Tableau de championnat : trois panneaux d'une seule pièce, sans changer leurs données. */
.championship-grid>.last-duel-panel,.championship-grid>.map-panel,.championship-grid>#leaderboard-panel{align-self:stretch;height:100%;box-sizing:border-box}
.championship-grid>.last-duel-panel,.championship-grid>.map-panel,.championship-grid>#leaderboard-panel{border-color:rgba(214,166,76,.6)}
.championship-grid>.last-duel-panel h2,.championship-grid>.map-panel h2,.championship-grid>#leaderboard-panel h2{margin-top:.05rem;margin-bottom:.35rem}

/* Le vide est une attente de combat, pas un panneau laissé vide. */
.last-duel-panel .duel-empty{gap:.48rem;background:radial-gradient(circle at 50% 47%,rgba(126,32,30,.29),rgba(39,17,25,.16) 38%,transparent 70%)!important}
.last-duel-panel .duel-empty::before{width:3.55rem;height:3.55rem;font-size:1.45rem;box-shadow:inset 0 0 0 2px rgba(255,240,185,.14),0 0 14px rgba(34,89,148,.22)}
.last-duel-panel .duel-empty .stat-value{max-width:14rem;font-size:.89rem;font-weight:600}
.last-duel-panel .duel-empty .stat-value::after{content:'Le prochain combat apparaîtra ici.';display:block;margin-top:.38rem;color:#b9aa91;font-size:.68rem;font-weight:400;letter-spacing:.015em}

/* La carte conserve son SVG et ses interactions ; seule sa présence gagne un peu d'ampleur. */
.championship-grid .map-wrap{justify-content:center}
.championship-grid .france-svg{transform:scale(1.055);transform-origin:center center}

/* Un podium plus lisible, avec une barre de défilement volontairement discrète. */
.championship-grid .leaderboard{scrollbar-width:thin;scrollbar-color:rgba(214,166,76,.55) rgba(4,16,25,.55)}
.championship-grid .leaderboard::-webkit-scrollbar{width:7px}
.championship-grid .leaderboard::-webkit-scrollbar-track{background:rgba(4,16,25,.55);border-left:1px solid rgba(214,166,76,.16)}
.championship-grid .leaderboard::-webkit-scrollbar-thumb{background:linear-gradient(#d6a64c,#8e5c22);border:1px solid #f1cf87;border-radius:8px}
.championship-grid .leaderboard tbody tr:nth-child(1){background:linear-gradient(90deg,rgba(229,189,87,.28),rgba(214,166,76,.08) 67%,transparent);box-shadow:inset 4px 0 #f0ca69,0 1px 0 rgba(240,202,105,.38)}
.championship-grid .leaderboard tbody tr:nth-child(1) .dept-crest-mini{transform:scale(1.22);filter:drop-shadow(0 0 3px rgba(240,202,105,.4))}
.championship-grid .leaderboard tbody tr:nth-child(1) .rank{font-size:1.2em;text-shadow:0 0 6px rgba(240,202,105,.35)}
.championship-grid .leaderboard tbody tr:nth-child(2){background:linear-gradient(90deg,rgba(201,206,213,.13),transparent 75%)}
.championship-grid .leaderboard tbody tr:nth-child(3){background:linear-gradient(90deg,rgba(189,121,81,.14),transparent 75%)}

@media(max-width:620px){
  .last-duel-panel .duel-empty{min-height:8.5rem}
  .last-duel-panel .duel-empty::before{width:3rem;height:3rem;font-size:1.2rem}
  .championship-grid .france-svg{transform:scale(1.025)}
}

/* L'emblème du duel vide doit participer à la grille, jamais flotter à gauche. */
.last-duel-panel .duel-empty{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;place-items:center;place-content:center;gap:.875rem;padding:.35rem .5rem}
.last-duel-panel .duel-empty::before{position:static!important;inset:auto!important;justify-self:center;align-self:center;margin:0}
.last-duel-panel .duel-empty .stat-value{width:100%;max-width:100%;margin:0;text-align:center;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.last-duel-panel .duel-empty .stat-value::after{margin-top:.42rem;line-height:1.2}

@media(min-width:760px){
  .last-duel-panel .duel-empty .stat-value{white-space:nowrap}
}

/* Sélection d'arènes : les vraies captures restent inchangées, leur écrin devient uniforme. */
#duel-panel .jeux-bande{gap:.6rem;align-items:center}
#duel-panel .jeux-piste{padding:.22rem .16rem .5rem}
#duel-panel .jeu-carte{height:14rem;min-height:14rem;flex-direction:column;background:linear-gradient(160deg,#0b2638,#061622 66%,#091d2b);border-color:rgba(181,132,54,.8);border-radius:2px;box-shadow:inset 0 0 0 3px rgba(214,166,76,.08),0 7px 15px rgba(0,0,0,.32);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
#duel-panel .jeu-carte::before{inset:5px;border-color:rgba(224,181,102,.18)}
#duel-panel .jeu-carte::after{top:.3rem;right:.4rem;color:rgba(244,215,143,.86)}
#duel-panel .jeu-carte:hover{transform:translateY(-4px);border-color:#e5bd67;box-shadow:inset 0 0 0 3px rgba(229,189,103,.13),0 12px 22px rgba(0,0,0,.42)}
#duel-panel .jeu-image{position:relative;flex:0 0 58%;width:100%;overflow:hidden;background:#071522}
#duel-panel .jeu-image img,#duel-panel .jeu-image svg{width:100%;height:100%;object-fit:cover;object-position:center}
#duel-panel .jeu-image::after{background:linear-gradient(0deg,#061622 0%,rgba(6,22,34,.72) 15%,rgba(6,22,34,.12) 56%,transparent 78%)}
#duel-panel .jeu-corps{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.15rem;min-height:0;margin-top:-.8rem;padding:.25rem .48rem .45rem;background:linear-gradient(180deg,transparent,#061622 28%);z-index:2}
#duel-panel .jeu-corps h3{margin:0;padding:.12rem .16rem;color:#fff0cb;font-size:.75rem;line-height:1.05;letter-spacing:.055em;text-transform:uppercase;text-shadow:0 1px 3px #000}
#duel-panel .jeu-corps h3::before{content:'ARÈNE';display:block;margin:0 0 .16rem;color:#d9ab54;font:600 .48rem/1 system-ui,sans-serif;letter-spacing:.16em;text-shadow:none}
#duel-panel .jeu-mentions{align-content:start;min-height:0;margin:0;gap:.16rem}
#duel-panel .jeu-mention{font-size:.5rem;line-height:1.2;padding:.05rem .22rem}
#duel-panel .jeu-hors{margin:0;color:#d99a73;font-size:.52rem}
#duel-panel .jeu-boutons{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.28rem;margin:0;padding-top:.32rem;border-top:1px solid rgba(214,166,76,.26)}
#duel-panel .jeu-boutons .btn,#duel-panel .jeu-boutons .btn-ghost{display:flex;align-items:center;justify-content:center;min-width:0;min-height:1.78rem;margin:0;padding:.28rem .22rem;font-size:.59rem;line-height:1;text-align:center;white-space:nowrap}
#duel-panel .jeu-boutons .btn{color:#fff0cf;background:linear-gradient(135deg,#a91520,#650b12);border-color:#e1ae52;box-shadow:inset 0 0 0 1px rgba(255,225,160,.24)}
#duel-panel .jeu-boutons .btn-ghost{color:#f2d79a;background:linear-gradient(135deg,#123b72,#061b41);border-color:rgba(214,166,76,.72)}
#duel-panel .jeux-fleche{display:grid;place-items:center;width:2.15rem;height:2.9rem;padding:0;color:#f1cf87;border:1px solid rgba(214,166,76,.72);border-radius:2px;background:linear-gradient(145deg,#13334a,#06131e);box-shadow:inset 0 0 0 2px rgba(214,166,76,.09),0 3px 8px rgba(0,0,0,.28);font-size:1.05rem;transition:background .16s ease,border-color .16s ease,transform .16s ease}
#duel-panel .jeux-fleche:hover:not(:disabled){background:linear-gradient(145deg,#1d4a69,#0a2030);border-color:#f0cf87;transform:translateY(-1px)}
#duel-panel .jeux-fleche:disabled{opacity:.38;background:#07131c;border-color:rgba(214,166,76,.28)}

@media(min-width:1000px){
  #duel-panel .jeu-carte{height:14rem!important;min-height:14rem!important}
  #duel-panel .jeu-image{flex-basis:58%!important}
}
@media(max-width:700px){
  #duel-panel .jeux-bande{margin-left:-1.05rem;margin-right:-1.05rem;gap:.35rem}
  #duel-panel .jeu-carte{height:14.5rem;min-height:14.5rem}
  #duel-panel .jeu-image{flex-basis:57%}
  #duel-panel .jeux-fleche{width:1.65rem;height:2.6rem;font-size:.9rem}
  #duel-panel .jeu-corps h3{font-size:.8rem}
  #duel-panel .jeu-boutons .btn,#duel-panel .jeu-boutons .btn-ghost{min-height:2rem;font-size:.66rem}
}

/* Dernière densification de la section : l'attention reste sur les arènes. */
#duel-panel{padding-bottom:.58rem}
#duel-panel #duel-setup>.hint:first-child{max-width:42rem;margin:.08rem auto .4rem;color:rgba(244,230,201,.7);font-size:.76rem;line-height:1.35;text-align:center}
#duel-panel .jeux-piste{padding-bottom:.22rem}
#duel-panel .jeux-reperes{margin:.06rem 0 0;font-size:.69rem;line-height:1.2}
#duel-panel #apercu-hint:empty{display:none}
#duel-panel #apercu-hint:not(:empty){margin:.22rem 0 0}

@media(max-width:700px){
  #duel-panel #duel-setup>.hint:first-child{max-width:31rem;margin-bottom:.36rem;font-size:.72rem}
  #duel-panel .jeux-reperes{gap:.35rem;margin-top:.08rem}
}

/* Indicateurs clés : quatre plaques de championnat, compactes et hiérarchisées. */
main>.super:not(.super-primes){padding:.72rem .85rem;background:linear-gradient(150deg,rgba(10,31,43,.98),rgba(5,18,27,.98))}
main>.super:not(.super-primes) .super-corps{gap:.52rem;margin-top:.45rem}
main>.super:not(.super-primes) .stats{gap:.52rem}
main>.super:not(.super-primes) .stat-card{border-color:rgba(214,166,76,.38);border-radius:2px;box-shadow:inset 2px 0 0 rgba(214,166,76,.62),inset 0 0 0 1px rgba(214,166,76,.06);background:linear-gradient(110deg,rgba(5,22,35,.94),rgba(13,47,64,.7));overflow:hidden}
main>.super:not(.super-primes) .stat-card::before{width:0;background:none}
main>.super:not(.super-primes) .stat-label{margin:0 0 .27rem;color:#e4bf75;font-size:.62rem;letter-spacing:.105em}
main>.super:not(.super-primes) .stat-label .ico{width:1rem;height:1rem;margin-right:.32rem;color:#e4bf75}

/* Les deux chiffres du jour deviennent les signaux de lecture immédiate. */
#stats-zone .stat-card{min-height:6.55rem;padding:.6rem .72rem}
#stats-zone .stat-card:first-child{background:linear-gradient(110deg,rgba(25,31,42,.98),rgba(46,27,27,.72) 118%)}
#stats-zone .stat-card:first-child .stat-value{color:#fff0cb;font:700 1.08rem/1.12 Georgia,serif}
#stats-zone .stat-card:first-child .stat-meta{margin:.15rem 0 0;color:#f1c66f;font:700 1.32rem/1 Georgia,serif;font-variant-numeric:tabular-nums}
#stats-zone .stat-card:nth-child(2){background:linear-gradient(110deg,rgba(6,31,47,.98),rgba(18,51,69,.78))}
#stats-zone .stat-card:nth-child(2) .stat-value{color:#f4d486;font:700 2.15rem/.92 Georgia,serif;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(0,0,0,.4)}
#stats-zone .stat-card:nth-child(2) .stat-meta{margin:.25rem 0 0;color:#c4b79b;font-size:.62rem}

/* Palmarès : progression à gauche, podium joueur clairement gradué à droite. */
#stats-listes .stat-card{min-height:9.35rem;padding:.58rem .72rem}
#stats-listes .palmares{margin:.05rem 0 0;gap:.08rem}
#stats-listes .palmares li{min-height:1.42rem;padding:.16rem .08rem;gap:.4rem;border-bottom:1px solid rgba(214,166,76,.14);font-size:.65rem}
#stats-listes .palmares li:last-child{border-bottom:0}
#stats-listes .palmares .valeur{color:#efd18d;font-weight:700;font-variant-numeric:tabular-nums}
#stats-listes .stat-card:first-child .palmares li:first-child{background:linear-gradient(90deg,rgba(132,35,31,.24),transparent 88%)}
#stats-listes .stat-card:has(.stat-value.empty){display:grid;place-content:center;min-height:7.3rem;text-align:center;background:radial-gradient(circle,rgba(72,48,30,.26),transparent 68%)}
#stats-listes .stat-card:has(.stat-value.empty)::before{content:'✦';position:static;width:auto;margin:0 0 .35rem;color:#d6a64c;font-size:1.1rem}
#stats-listes .stat-card:has(.stat-value.empty) .stat-label{display:none}
#stats-listes .stat-card:has(.stat-value.empty) .stat-value{max-width:17rem;margin:0;color:#cfbea0;font-size:.82rem;line-height:1.3}

#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(-n+3){background:linear-gradient(90deg,rgba(214,166,76,.13),transparent 88%)}
#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(1){box-shadow:inset 2px 0 #edc661}
#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(2){box-shadow:inset 2px 0 #cbd0d5}
#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(3){box-shadow:inset 2px 0 #c9865c}
#stats-listes .stat-card:nth-child(2) .palmares .medaille{width:1.38rem;height:1.38rem;font-size:.7rem;box-shadow:inset 0 0 0 1px rgba(255,239,190,.34),0 1px 3px rgba(0,0,0,.3)}
#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(1) .nom,#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(1) .valeur{color:#ffe4a1;font-weight:700}
#stats-listes .stat-card:nth-child(2) .palmares li:nth-child(n+4){opacity:.72}
#stats-listes .palmares .sous{margin-top:.03rem;color:#b9aa91;font-size:.54rem}

@media(max-width:620px){
  main>.super:not(.super-primes){padding:.68rem .65rem}
  #stats-zone .stat-card{min-height:5.9rem}
  #stats-listes .stat-card{min-height:0}
  #stats-listes .stat-card:has(.stat-value.empty){min-height:6.2rem}
  #stats-zone .stat-card:nth-child(2) .stat-value{font-size:1.9rem}
}

/* Les titres des palmarès restent les repères, même quand le classement est vide. */
#stats-listes .stat-card:has(.stat-value.empty){display:grid;grid-template-rows:auto minmax(0,1fr);place-content:stretch;min-height:6.75rem;padding:.58rem .72rem;text-align:left}
#stats-listes .stat-card:has(.stat-value.empty)::before{display:none}
#stats-listes .stat-card:has(.stat-value.empty) .stat-label{display:flex;align-self:start;margin:0;color:#e4bf75}
#stats-listes .stat-card:has(.stat-value.empty) .stat-value{align-self:center;justify-self:center;max-width:17rem;margin:0;text-align:center}

@media(max-width:620px){
  #stats-listes .stat-card:has(.stat-value.empty){min-height:6rem;padding:.52rem .62rem}
}

/* Accélérateurs : deux trophées de championnat, avec la récompense au premier regard. */
#accelerateurs{padding:.72rem .9rem;background:linear-gradient(105deg,rgba(47,20,24,.96),rgba(8,30,42,.99) 42%,rgba(5,18,27,.99))}
#accelerateurs .super-corps{margin-top:.38rem}
#accelerateurs #stats-primes{align-items:stretch;gap:.58rem}
#accelerateurs #stats-primes .prime{display:flex;flex-direction:column;min-height:9.8rem;height:100%;padding:.58rem .72rem .62rem 3.5rem;border:1px solid rgba(214,166,76,.48);border-radius:2px;background:linear-gradient(120deg,rgba(4,19,29,.92),rgba(13,43,57,.72));box-shadow:inset 2px 0 0 rgba(214,166,76,.68),inset 0 0 0 1px rgba(214,166,76,.06)}
#accelerateurs #stats-primes .prime::before{left:.7rem;width:2.25rem;height:2.7rem;border-color:#e2b55d;box-shadow:inset 0 0 0 1px rgba(255,235,177,.17),0 2px 5px rgba(0,0,0,.3)}
#accelerateurs #stats-primes .prime .stat-label{margin:0 0 .22rem;color:#f0ce88;font-size:.63rem;line-height:1.13;letter-spacing:.07em}
#accelerateurs .prime-recompense{display:flex;align-items:baseline;gap:.32rem;margin:0 0 .3rem;color:#ffe0a0;font:700 1.08rem/1 Georgia,serif;text-shadow:0 1px 3px rgba(0,0,0,.45)}
#accelerateurs .prime-recompense span{color:#cbb992;font:600 .5rem/1 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}
#accelerateurs #stats-primes .prime .stat-value{margin:.02rem 0;color:#f7e8bf;font:700 .98rem/1.1 Georgia,serif}
#accelerateurs #stats-primes .prime .stat-meta{margin:.24rem 0 0;color:#efd08b;font-size:.7rem;font-variant-numeric:tabular-nums}
#accelerateurs #stats-primes .prime .jauge{height:.5rem;margin:.28rem 0 .1rem;border:1px solid rgba(226,181,93,.7);border-radius:2px;background:#030e16;box-shadow:inset 0 1px 3px rgba(0,0,0,.6)}
#accelerateurs #stats-primes .prime .jauge span{border-radius:1px;background:linear-gradient(90deg,#8d1e25,#d69d3e 62%,#f4d486);box-shadow:0 0 5px rgba(214,166,76,.25)}
#accelerateurs #stats-primes .prime .regle{margin:auto 0 0;color:#bfb092;font-size:.58rem;line-height:1.25}

/* Le Top 5 indique clairement s'il est en marche ou en attente, sans faux signal. */
#accelerateurs #stats-primes .prime:first-child:has(.jauge){background:linear-gradient(112deg,rgba(11,41,61,.97),rgba(30,38,43,.82));border-color:rgba(230,186,91,.7)}
#accelerateurs #stats-primes .prime:first-child:has(.stat-value.empty){background:linear-gradient(112deg,rgba(7,23,33,.98),rgba(26,30,34,.8));border-color:rgba(214,166,76,.3)}
#accelerateurs #stats-primes .prime:first-child:has(.stat-value.empty)::after{content:'Objectif en attente';align-self:flex-start;margin:.08rem 0 .26rem;color:#b9aa91;font:600 .52rem/1 system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase}
#accelerateurs #stats-primes .prime:first-child:has(.stat-value.empty) .stat-value{color:#d1c2a5;font-size:.76rem;font-weight:500;line-height:1.25}
#accelerateurs #stats-primes .prime:nth-child(2){background:linear-gradient(112deg,rgba(43,16,23,.9),rgba(9,33,47,.94))}

@media(max-width:620px){
  #accelerateurs{padding:.68rem .65rem}
  #accelerateurs #stats-primes .prime{min-height:8.9rem;padding:.56rem .64rem .58rem 3.25rem}
  #accelerateurs #stats-primes .prime::before{left:.58rem;width:2.02rem;height:2.42rem}
  #accelerateurs .prime-recompense{font-size:1rem}
}

/* Dernier réglage : même écrin, sans espace perdu avant la règle de l'exploit. */
#accelerateurs #stats-primes .prime{min-height:8.85rem;justify-content:flex-start}
#accelerateurs #stats-primes .prime .regle{margin:.34rem 0 0}

@media(max-width:620px){
  #accelerateurs #stats-primes .prime{min-height:8.15rem}
  #accelerateurs #stats-primes .prime .regle{margin-top:.3rem}
}

/* Records du mois : chaque performance devient une plaque de palmarès. */
#records-panel{background:linear-gradient(145deg,rgba(10,31,43,.98),rgba(5,18,27,.98));border-color:rgba(214,166,76,.52)}
#records-panel #records-periode{margin:.02rem 0 .42rem;color:#c5b694;font-size:.68rem;text-align:center}
#records-panel .records{gap:.38rem;margin:0}
#records-panel .records li{grid-template-columns:1.55rem minmax(0,1fr) auto;align-items:center;gap:.08rem .48rem;padding:.42rem .55rem;border:1px solid rgba(214,166,76,.43);border-left:3px solid #a23a2e;border-radius:2px;background:linear-gradient(105deg,rgba(68,23,24,.5),rgba(7,25,37,.92) 34%,rgba(5,18,27,.95));box-shadow:inset 0 0 0 1px rgba(214,166,76,.05)}
#records-panel .records li::before{display:grid;place-items:center;align-self:center;width:1.2rem;height:1.2rem;color:#f2ce7e;border:1px solid rgba(214,166,76,.55);border-radius:50%;background:linear-gradient(145deg,#173f5c,#081725);font-size:.58rem;box-shadow:inset 0 0 0 1px rgba(255,238,184,.1)}
#records-panel .record-jeu{min-width:0;color:#fff0cb;font:700 .78rem/1.15 Georgia,serif;overflow-wrap:anywhere}
#records-panel .record-score{align-self:center;color:#f2d08b;font:700 .86rem/1 Georgia,serif;text-align:right;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.42)}
#records-panel .record-qui{grid-column:2/-1;margin-top:.04rem;color:#beb091;font-size:.6rem;line-height:1.15}
#records-panel #records-liste>.stat-value.empty{margin:.1rem auto;max-width:28rem;padding:.75rem;text-align:center;color:#cbbd9f;border:1px solid rgba(214,166,76,.28);background:radial-gradient(circle,rgba(98,49,31,.22),transparent 70%)}

@media(max-width:620px){
  #records-panel .records{gap:.32rem}
  #records-panel .records li{grid-template-columns:1.35rem minmax(0,1fr) auto;gap:.08rem .38rem;padding:.4rem .46rem}
  #records-panel .records li::before{width:1.08rem;height:1.08rem;font-size:.52rem}
  #records-panel .record-jeu{font-size:.72rem}
  #records-panel .record-score{font-size:.76rem}
  #records-panel .record-qui{font-size:.57rem}
}

/* Tableau vierge : une invitation au premier exploit, sans toucher à l'état rempli. */
#records-panel .records-empty-callout{display:grid;justify-items:center;max-width:34rem;margin:.05rem auto 0;padding:.62rem .85rem .72rem;text-align:center;border:1px solid rgba(214,166,76,.42);background:radial-gradient(circle at 50% 26%,rgba(151,109,42,.22),transparent 36%),linear-gradient(145deg,rgba(8,29,42,.96),rgba(5,17,26,.97));box-shadow:inset 0 0 0 1px rgba(214,166,76,.06)}
#records-panel .records-empty-emblem{display:grid;place-items:center;width:2.65rem;height:2.65rem;margin:0 0 .32rem;color:#f4d486;border:1px solid rgba(229,189,103,.72);clip-path:polygon(50% 0,92% 13%,87% 74%,50% 100%,13% 74%,8% 13%);background:linear-gradient(145deg,#17476d,#071a2b);box-shadow:inset 0 0 0 2px rgba(255,235,177,.12),0 0 13px rgba(214,166,76,.19);font-size:1.14rem}
#records-panel .records-empty-title{margin:0;color:#ffe0a0;font:700 .75rem/1.12 Georgia,serif;letter-spacing:.08em;text-transform:uppercase}
#records-panel .records-empty-lead{margin:.28rem 0 0;color:#f0dfbe;font:600 .78rem/1.28 Georgia,serif}
#records-panel .records-empty-copy{max-width:29rem;margin:.25rem 0 .48rem;color:#bdb092;font-size:.64rem;line-height:1.3}
#records-panel .records-empty-cta{display:inline-flex;align-items:center;justify-content:center;min-height:1.85rem;padding:.3rem .72rem;color:#271a09;border:1px solid #f2d18a;background:linear-gradient(135deg,#f0d39b,#b98039);box-shadow:inset 0 0 0 1px rgba(80,47,12,.3),0 2px 6px rgba(0,0,0,.28);font:700 .62rem/1 Georgia,serif;letter-spacing:.07em;text-decoration:none;text-transform:uppercase}
#records-panel .records-empty-cta:hover{filter:brightness(1.08)}

@media(max-width:620px){
  #records-panel .records-empty-callout{padding:.58rem .65rem .65rem}
  #records-panel .records-empty-emblem{width:2.35rem;height:2.35rem;margin-bottom:.28rem;font-size:1rem}
  #records-panel .records-empty-lead{font-size:.73rem}
  #records-panel .records-empty-copy{font-size:.61rem}
}

/* Accélérateurs : règle plus lisible, sans concurrencer l'objectif ni la récompense. */
#accelerateurs #stats-primes .prime .regle{font-size:.62rem;line-height:1.34;color:#c9bda3}

@media(max-width:620px){
  #accelerateurs #stats-primes .prime .regle{font-size:.6rem;line-height:1.32}
}

/* Cohérence de fin de page : un pied de championnat plutôt qu'une barre neutre. */
.pied{max-width:1200px;margin:1.35rem auto 0;padding:.82rem 1.2rem .9rem;gap:.45rem 1rem;color:#bfb092;border-top:1px solid rgba(214,166,76,.58);border-bottom:1px solid rgba(214,166,76,.18);background:linear-gradient(105deg,rgba(5,17,25,.98),rgba(11,35,48,.94),rgba(5,17,25,.98));box-shadow:inset 0 0 0 1px rgba(214,166,76,.05);font-size:.68rem}
.pied::before{background:#07111a}
.pied::after{content:'♜';display:grid;place-items:center;order:-1;width:2rem;height:2.35rem;color:#f0ce88;border:1px solid rgba(214,166,76,.62);clip-path:polygon(50% 0,93% 12%,88% 73%,50% 100%,12% 73%,7% 12%);background:linear-gradient(145deg,#153d59,#071622);box-shadow:inset 0 0 0 1px rgba(255,238,184,.14),0 2px 5px rgba(0,0,0,.32);font-size:.95rem}
.pied>span{color:#e3c98f;font:600 .63rem/1 system-ui,sans-serif;letter-spacing:.07em}
.pied a{padding:.18rem 0;color:#d8bd80;text-decoration:none;transition:color .16s ease,text-shadow .16s ease}
.pied a:hover{color:#fff0cb;text-shadow:0 0 6px rgba(214,166,76,.28)}

/* Micro-règles partagées : même cadence de titres, filets et états de boutons. */
main{gap:.78rem}
.panel h2,.super-titre{line-height:1.12}
.panel h2::after,.super-titre::after{border-bottom-color:#c99a52}
.btn,.btn-ghost,button[type='submit']{transition:filter .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}
.btn:hover,button[type='submit']:hover{filter:brightness(1.07)}

@media(max-width:620px){
  .pied{justify-content:center;margin-top:1rem;padding:.72rem .75rem .8rem;gap:.38rem .8rem;text-align:center}
  .pied::after{flex-basis:2rem;margin:0 calc(50% - 1rem) .05rem}
  .pied>span{flex-basis:100%;margin:.02rem 0 .16rem}
  .pied a{font-size:.65rem}
}

/* Mobile : la page reprend ses propres dimensions, sans conserver les contraintes desktop. */
@media(max-width:700px){
  html,body{width:100%;max-width:100%;min-width:0}
  body{min-width:0}
  .site-header,.hero,.tete,main,.pied{min-width:0;max-width:100%}

  .site-header{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;min-height:0;padding:.55rem .7rem .65rem;gap:.42rem}
  .brand{min-width:0;margin:0;align-items:center}
  .brand-mark{flex:0 0 auto;width:2.35rem;height:2.85rem}
  .brand h1{font-size:1rem;line-height:.92}
  .brand-subtitle{display:none}
  .site-nav{order:2;display:flex;flex-wrap:wrap;justify-content:center;gap:.12rem .5rem;width:100%;min-width:0;margin:0;padding:0;overflow:visible}
  .site-nav a{padding:.3rem .04rem;font-size:.58rem;letter-spacing:.04em;line-height:1.2;white-space:normal}
  .identity{order:3;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.28rem .48rem;width:100%;min-width:0;margin:0;font-size:.68rem;text-align:center}
  .identity span{max-width:100%;overflow-wrap:anywhere}
  .identity .btn-ghost{padding:.27rem .48rem;font-size:.62rem}

  .hero{min-height:0;padding:2.25rem .75rem 2.45rem}
  .hero-inner{width:100%;max-width:100%;min-width:0}
  .hero-kicker{max-width:100%;font-size:.57rem;letter-spacing:.09em;line-height:1.35;overflow-wrap:anywhere}
  .hero-title{max-width:100%;font-size:clamp(2.45rem,11.5vw,3.05rem);line-height:.84;letter-spacing:.01em}
  .hero-ribbon{max-width:100%;margin:.78rem 0 .58rem;padding:.32rem .5rem;font-size:.62rem;line-height:1.28;letter-spacing:.035em;white-space:normal}
  .saison{max-width:100%;margin:.05rem auto .58rem;padding:.31rem .5rem;font-size:.61rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
  .hero-sub{max-width:100%;margin:.58rem auto 0;font-size:.79rem;line-height:1.48}
  .hero-cta{max-width:100%;min-width:0;margin-top:.8rem;padding:.64rem .76rem;font-size:.68rem;line-height:1.25;text-align:center;white-space:normal}

  .tete{box-sizing:border-box;width:calc(100% - 1.2rem);max-width:calc(100% - 1.2rem);min-width:0;margin:-.42rem .6rem 0;padding:.45rem .62rem}
  .tete-label,.tete-meta{max-width:100%;overflow-wrap:anywhere}

  main{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%;min-width:0;margin:0;padding:.72rem .6rem 1.35rem;gap:.7rem}
  main>*{min-width:0;max-width:100%}
  .panel,.super{box-sizing:border-box;min-width:0;max-width:100%}

  .championship-grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:.65rem;width:100%;max-width:100%;min-width:0}
  .championship-grid>.panel{grid-column:auto!important;order:0!important;box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:.65rem .55rem}
  .championship-grid .map-panel{order:0!important}
  .championship-grid .map-wrap{box-sizing:border-box;width:100%;max-width:100%;min-width:0;height:clamp(12.8rem,58vw,15.6rem)!important;max-height:none!important}
  .championship-grid .france-svg{width:auto!important;max-width:100%!important;height:100%!important;max-height:100%!important;transform:scale(1)!important}
  #leaderboard-panel{min-width:0}
  #leaderboard-panel .leaderboard{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
  #leaderboard-panel table{width:100%;max-width:100%;table-layout:fixed}
  #leaderboard-panel th,#leaderboard-panel td{min-width:0;overflow-wrap:anywhere}

  #duel-panel .apercu-cible{min-width:0;max-width:100%}
  #duel-panel .apercu-cible select{min-width:0;max-width:100%}
  #duel-panel .jeux-bande{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0!important}
  #duel-panel .jeux-piste{min-width:0;max-width:100%;width:0;flex:1 1 0}
  #duel-panel .jeu-carte{flex:0 0 92%;max-width:92%;min-width:0}
  #duel-panel .jeux-reperes{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
  #duel-panel .jeux-aller{min-width:0;max-width:100%}
  #duel-panel #jeux-aller{min-width:0;max-width:11rem}

  #stats-zone,#stats-listes{grid-template-columns:minmax(0,1fr)!important}
  #stats-zone>*,#stats-listes>*{min-width:0}
  #accelerateurs #stats-primes{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%;min-width:0}
  #accelerateurs #stats-primes .prime{box-sizing:border-box;width:100%;max-width:100%;min-width:0}

  #records-panel,#records-panel .records-empty-callout{box-sizing:border-box;max-width:100%;min-width:0}
  #records-panel .records-empty-cta{max-width:100%;text-align:center;white-space:normal}

  .pied{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
  .pied::after{flex-basis:100%;margin:0}
}

@media(max-width:400px){
  .site-nav{gap:.1rem .36rem}
  .site-nav a{font-size:.55rem}
  .hero{padding-right:.62rem;padding-left:.62rem}
  .hero-title{font-size:clamp(2.25rem,11.5vw,2.75rem)}
  .hero-sub{font-size:.75rem}
  main{padding-right:.48rem;padding-left:.48rem}
  .tete{width:calc(100% - .96rem);max-width:calc(100% - .96rem);margin-left:.48rem;margin-right:.48rem}
}

/* Emblèmes départementaux : les SVG fictifs utilisent le même gabarit, avec
   un repli local sur l'écusson typographique si un fichier était indisponible. */
.dept-crest-asset{display:inline-grid;place-items:center;padding:0;border:0;clip-path:none;background:transparent;box-shadow:none;overflow:visible}
.dept-crest-asset>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.42))}
.dept-crest-asset .dept-crest-fallback:not([hidden]){display:grid;place-items:center;width:100%;height:100%;padding:.12rem;color:#f7e8bf;background:linear-gradient(145deg,#155594,var(--crest) 62%,#071a31);border:2px solid #d6a64c;clip-path:polygon(50% 0,93% 12%,88% 73%,50% 100%,12% 73%,7% 12%);box-shadow:inset 0 0 0 2px rgba(255,240,185,.18),0 2px 5px rgba(0,0,0,.45)}
.dept-crest-asset.dept-crest-leader{width:5.75rem;height:6.7rem}
@media(max-width:620px){.dept-crest-asset.dept-crest-leader{width:4.75rem;height:5.55rem}}

/* Sceaux des arènes : les captures réelles restent le visuel principal ;
   l'emblème ne sert qu'à signer chaque épreuve dans le langage du championnat. */
#duel-panel .jeu-image .jeu-embleme{position:absolute;z-index:3;top:.42rem;left:.42rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;color:#f6d889;border:1px solid rgba(235,192,102,.88);background:linear-gradient(145deg,rgba(13,51,83,.94),rgba(6,19,31,.95));clip-path:polygon(50% 0,92% 12%,86% 74%,50% 100%,14% 74%,8% 12%);box-shadow:inset 0 0 0 2px rgba(255,240,185,.14),0 3px 8px rgba(0,0,0,.4)}
#duel-panel .jeu-image .jeu-embleme svg{display:block;width:1.43rem;height:1.43rem;object-fit:contain}
#duel-panel .jeu-image .jeu-embleme text{font-family:Georgia,serif;font-size:17px;font-weight:700}
#duel-panel .jeu-titre{position:relative;min-width:0;padding:.05rem .16rem .15rem;border-bottom:1px solid rgba(214,166,76,.28)}
#duel-panel .jeu-titre::after{content:'✦';position:absolute;right:.04rem;bottom:-.4rem;color:rgba(239,201,118,.72);font-size:.5rem;background:#061622;padding-left:.18rem}
#duel-panel .jeu-arene{display:block;margin:0 0 .08rem;color:#d9ad5c;font:700 .48rem/1 Georgia,serif;letter-spacing:.14em;text-transform:uppercase}
#duel-panel .jeu-titre h3{margin:0;padding:.04rem 0 .12rem;font-size:.76rem;letter-spacing:.035em;text-transform:uppercase}
#duel-panel .jeu-carte:hover .jeu-embleme{color:#fff0b7;border-color:#f3cc76;filter:drop-shadow(0 0 4px rgba(235,190,93,.28))}
@media(max-width:700px){#duel-panel .jeu-image .jeu-embleme{width:2rem;height:2rem;top:.35rem;left:.35rem}#duel-panel .jeu-image .jeu-embleme svg{width:1.25rem;height:1.25rem}#duel-panel .jeu-titre h3{font-size:.78rem}#duel-panel .jeu-arene{font-size:.46rem}}
