/* ======================================================================
   LES TOURNOIS PROGRAMMÉS (public/extra/tournois.js).

   La pastille 🏆 vit dans la ligne du pseudo (à côté de 👥) : aucune rangée
   de plus dans le bandeau. Le panneau se déroule sous la ligne du compteur
   (top et max-height posés en JS, au-dessus du comptoir) ; tout y défile
   verticalement, jamais de côté (360-412 px de large compris). La carte
   « votre match est prêt » surgit en haut au milieu, comme un défi.
   ====================================================================== */

.qui .tournoisBouton{
  position:relative;display:inline-flex;align-items:center;flex:none;align-self:center;
  font:inherit;font-size:12px;line-height:1;cursor:pointer;
  color:var(--creme);background:rgba(232,192,74,.14);border:1px solid rgba(232,192,74,.5);border-radius:999px;padding:3px 7px;
}
.qui .tournoisBouton[hidden]{display:none}
.qui .tournoisBouton:hover{background:rgba(232,192,74,.26)}
.qui .tournoisBouton .toBadge{position:absolute;top:-4px;right:-4px;width:9px;height:9px;border-radius:50%;background:#C9524A}
.qui .tournoisBouton .toBadge[hidden]{display:none}
.qui .tournoisBouton.attention{animation:to-pouls 1.2s ease-in-out infinite}
@keyframes to-pouls{50%{box-shadow:0 0 0 5px rgba(232,192,74,.3)}}

/* les entrées greffées dans les panneaux des joueurs et des salons */
#amisPanneau .am-tete .to-entree{margin-left:auto;margin-right:6px;padding:5px 10px;font-size:11.5px}
#salonPanneau .to-entreeSalon{
  display:block;width:100%;margin:0 0 8px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;
  color:#1A1305;background:linear-gradient(180deg,#F2D774,#C9A227);border:0;border-radius:12px;padding:9px 12px;
}

#tournoisPanneau{
  position:fixed;right:16px;top:120px;z-index:46;width:min(380px,calc(100vw - 16px));
  display:flex;flex-direction:column;gap:8px;overflow:hidden;box-sizing:border-box;
  background:rgba(18,14,8,.95);backdrop-filter:blur(14px);
  border:1px solid rgba(232,192,74,.45);border-radius:16px;padding:10px 10px 8px;color:var(--creme);font-size:13px;
  box-shadow:0 18px 40px rgba(0,0,0,.5);
}
#tournoisPanneau[hidden]{display:none}
#tournoisPanneau *{box-sizing:border-box}
#tournoisPanneau .to-tete{display:flex;align-items:center;gap:8px}
#tournoisPanneau .to-tete b{flex:1;font-family:"Fraunces",serif;font-size:18px;color:var(--laiton-clair,#F2D774)}
#tournoisPanneau button{font:inherit;font-size:12px;font-weight:600;cursor:pointer;border-radius:999px;border:1px solid transparent;padding:6px 11px;background:var(--laiton,#C9A227);color:#1A1305}
#tournoisPanneau button.sec{background:transparent;color:var(--creme);border-color:rgba(241,233,214,.28)}
#tournoisPanneau button:disabled{opacity:.4;cursor:default}
#tournoisPanneau .to-fermer,#tournoisPanneau .to-retour{background:transparent;color:var(--creme);border-color:rgba(241,233,214,.25);width:28px;height:28px;padding:0;font-size:17px;line-height:1;flex:none}
#tournoisPanneau .to-retour[hidden]{display:none}
.to-onglets{display:flex;gap:3px;padding:3px;border-radius:12px;background:rgba(0,0,0,.35)}
.to-onglets[hidden]{display:none}
#tournoisPanneau .to-onglets button{flex:1;background:transparent;color:var(--creme);opacity:.7;border-radius:9px;padding:6px 3px;font-size:11.5px}
#tournoisPanneau .to-onglets button[aria-selected="true"]{background:#8C6A12;color:#fff;opacity:1}
.to-corps{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin}
.to-vide{margin:0;padding:16px 6px;text-align:center;opacity:.6;font-size:12px}
.to-note{font-size:11.5px;opacity:.75}
.to-sous{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#E8C04A;margin-top:4px}

.to-carte{padding:9px 10px;border-radius:12px;background:rgba(241,233,214,.05);border:1px solid rgba(241,233,214,.12);display:flex;flex-direction:column;gap:4px;min-width:0}
.to-carte.en_cours{border-color:rgba(232,192,74,.55);background:rgba(232,192,74,.08)}
.to-carte.inscrit{box-shadow:inset 3px 0 0 #5FBF8A}
.to-carteTete{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.to-carteTete b{font-size:14.5px;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.to-etat{font-size:11px;opacity:.75}
.to-info{font-size:12px;opacity:.85;overflow-wrap:anywhere}
.to-info.to-bon{color:#9BE3B8;opacity:1}
.to-mot{margin:2px 0 0;font-style:italic;font-size:12px;color:#F2D774;overflow-wrap:anywhere}
.to-podium{font-weight:700;color:#F2D774}
.to-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;margin-top:4px}
.to-actions .to-note{margin-right:auto}
#tournoisPanneau .to-go{background:#B3261E;color:#fff}
#tournoisPanneau .to-pulse{animation:to-pouls 1.2s ease-in-out infinite}

.to-noms{display:flex;flex-wrap:wrap;gap:5px}
.to-noms span{background:rgba(241,233,214,.07);border-radius:999px;padding:3px 9px;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* le tableau : un tour sous l'autre */
.to-tour{display:flex;flex-direction:column;gap:5px}
.to-match{border-radius:10px;background:rgba(0,0,0,.28);border:1px solid rgba(241,233,214,.1);overflow:hidden}
.to-match.appel{border-color:rgba(232,192,74,.45)}
.to-match.jeu{border-color:#C9524A;box-shadow:0 0 0 1px rgba(201,82,74,.35)}
.to-match.moi{border-color:#5FBF8A}
.to-joueur{display:flex;align-items:center;gap:6px;padding:6px 9px;min-width:0}
.to-joueur+.to-joueur{border-top:1px solid rgba(241,233,214,.07)}
.to-joueur .to-nom{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-joueur.g{background:rgba(232,192,74,.14);font-weight:700;color:#F2D774}
.to-joueur.p{opacity:.45;text-decoration:line-through}
.to-joueur.moi .to-nom::after{content:" (vous)";font-weight:400;opacity:.7}
.to-joueur i{font-style:normal;font-size:10.5px;opacity:.75;flex:none}
.to-joueur .to-coupe{color:#F2D774;opacity:1}
.to-pied{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 9px;background:rgba(0,0,0,.25);font-size:11px;flex-wrap:wrap}
.to-direct{color:#FF8A80;font-weight:700}
#tournoisPanneau .to-pied button{padding:4px 10px;font-size:11px}

.to-bilan{display:flex;flex-direction:column;gap:4px}
.to-place{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:10px;background:rgba(241,233,214,.05)}
.to-place.p1{background:linear-gradient(90deg,rgba(232,192,74,.3),rgba(232,192,74,.06));border:1px solid rgba(232,192,74,.55)}
.to-place.moi{box-shadow:inset 3px 0 0 #5FBF8A}
.to-place b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-medaille{font-size:16px}

/* le mode spectateur */
.to-camp{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:9px;background:rgba(0,0,0,.25);min-width:0}
.to-camp.trait{background:rgba(232,192,74,.16);box-shadow:inset 0 0 0 1px rgba(232,192,74,.5)}
.to-camp b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-camp-c{font-size:10.5px;opacity:.6}
.to-pendule{font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;min-width:46px;text-align:right}
.to-pastille{flex:none;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.5)}
.to-pastille.echecs.c0{background:#F4EEDD}.to-pastille.echecs.c1{background:#222}
.to-pastille.p4.c0{background:#D8413A}.to-pastille.p4.c1{background:#F2C230}
.to-echiquier{display:grid;grid-template-columns:repeat(8,1fr);width:100%;max-width:320px;aspect-ratio:1;margin:0 auto;border-radius:6px;overflow:hidden;border:2px solid #5a3d1e}
.to-case{position:relative;display:flex;align-items:center;justify-content:center;font-style:normal;aspect-ratio:1}
.to-case.claire{background:#EAD9B0}.to-case.sombre{background:#A87B4F}
.to-case.dernier{box-shadow:inset 0 0 0 100px rgba(232,192,74,.42)}
.to-case.echec{box-shadow:inset 0 0 0 100px rgba(214,48,40,.6)}
.to-case span{font-size:min(7.2vw,30px);line-height:1}
.to-case span.blanc{color:#FFFDF6;text-shadow:0 0 1px #000,0 1px 1px #000,1px 0 1px #000,-1px 0 1px #000}
.to-case span.noir{color:#1B1B1F;text-shadow:0 0 1px rgba(255,255,255,.35)}
.to-p4{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%;max-width:320px;margin:0 auto;padding:6px;border-radius:10px;background:#1F4FB0;box-shadow:inset 0 -3px 0 rgba(0,0,0,.25)}
.to-trou{aspect-ratio:1;border-radius:50%;background:#0D1A36;box-shadow:inset 0 2px 3px rgba(0,0,0,.6)}
.to-trou.rouge{background:radial-gradient(circle at 35% 30%,#FF7A70,#C92F27)}
.to-trou.jaune{background:radial-gradient(circle at 35% 30%,#FFE58A,#E0A91A)}
.to-trou.dernier{outline:2px solid #fff;outline-offset:-2px}
.to-trou.aligne{box-shadow:0 0 0 3px #fff,0 0 10px 3px rgba(255,255,255,.7)}
.to-cartes{display:flex;flex-direction:column;gap:5px}
.to-joueurCarte{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:10px;background:rgba(0,0,0,.25);min-width:0}
.to-joueurCarte b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-joueurCarte span{font-size:11.5px;opacity:.8;flex:none}
.to-joueurCarte.actif{box-shadow:inset 0 0 0 1px rgba(232,192,74,.6);background:rgba(232,192,74,.12)}
.to-joueurCarte.elimine{opacity:.45}
.to-resultat{margin:0;font-weight:700;color:#F2D774;text-align:center}
.to-bulle{margin:0;font-size:11.5px;opacity:.8}

/* la carte « votre match est prêt » */
#tournoiAppel{
  position:fixed;left:50%;top:max(12vh,90px);transform:translateX(-50%);z-index:61;width:min(340px,calc(100vw - 24px));
  display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;box-sizing:border-box;
  background:linear-gradient(180deg,rgba(46,34,8,.97),rgba(16,12,6,.97));border:2px solid #E8C04A;border-radius:20px;padding:16px 16px 14px;
  color:var(--creme);box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 0 6px rgba(232,192,74,.15);
}
#tournoiAppel[hidden]{display:none}
#tournoiAppel.vu{animation:to-arrive .45s cubic-bezier(.2,1.4,.4,1)}
@keyframes to-arrive{from{transform:translateX(-50%) scale(.6);opacity:0}to{transform:translateX(-50%) scale(1);opacity:1}}
#tournoiAppel .ta-coupe{font-size:34px;line-height:1;filter:drop-shadow(0 0 10px rgba(232,192,74,.7))}
#tournoiAppel .ta-titre{font-family:"Fraunces",serif;font-size:21px;color:#F2D774}
#tournoiAppel p{margin:0;font-size:13px;overflow-wrap:anywhere}
#tournoiAppel .ta-temps{font-variant-numeric:tabular-nums;font-weight:700;color:#FF9A8F}
#tournoiAppel .ta-boutons{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;justify-content:center}
#tournoiAppel button{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border-radius:999px;border:1px solid transparent;padding:9px 16px;background:#B3261E;color:#fff}
#tournoiAppel button.sec{background:transparent;color:var(--creme);border-color:rgba(241,233,214,.3)}
#tournoiAppel button:disabled{opacity:.7;cursor:default;background:#5a4a1e}

@media (max-width:900px){
  #tournoisPanneau{right:8px;left:8px;width:auto}
}
