/*
 * Composants partagés par tous les scénarios : carte de partie, carte
 * d'équipe, badge de statut (templates/_composants/partie/). Rendu repris de
 * maquettes/mes-parties-alternatives.html, proposition B, avec la charte de
 * styles/couleurs.css (bordures neutres, pas de pointillés, vert réservé au
 * statut « En cours »).
 *
 * Jamais de couleur d'accent de scénario ici : statuts, barres et badges
 * restent identiques d'un scénario à l'autre.
 */

.visuellement-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Badge de statut : RÉSERVÉ au statut d'une partie ---------- */
.statut-badge{display:inline-block;border-radius:999px;padding:4px 12px;font-size:.82rem;font-weight:700;line-height:1.4;white-space:nowrap}
.statut-badge--en_attente{background:var(--statut-en-attente-fond);color:var(--statut-en-attente)}
.statut-badge--en_cours{background:var(--statut-en-cours-fond);color:var(--statut-en-cours)}
.statut-badge--terminee{background:var(--statut-terminee-fond);color:var(--statut-terminee)}

/* ---------- Statut d'une équipe : point coloré + texte, sans fond ----------
   Volontairement différent du badge ci-dessus, pour ne jamais confondre le
   statut d'une équipe avec celui de sa partie. Mêmes couleurs par statut. */
.statut-equipe{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;line-height:1.3}
.statut-equipe-point{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:currentColor}
.statut-equipe--en_attente{color:var(--statut-en-attente)}
.statut-equipe--en_cours{color:var(--statut-en-cours)}
.statut-equipe--entre_sessions{color:var(--statut-entre-sessions)}
.statut-equipe--terminee{color:var(--statut-terminee)}

/* ---------- Carte de partie ---------- */
.partie-carte{background:var(--fond-carte);border:1px solid var(--bordure);border-radius:8px;padding:26px;margin-bottom:20px}
.partie-carte-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.partie-carte-titre{font-family:'Fraunces',serif;font-weight:900;font-size:1.45rem;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.partie-carte-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;list-style:none}
.partie-carte-meta li{background:var(--fond-element);border-radius:999px;padding:4px 12px;font-size:.85rem;color:var(--brume)}
.partie-carte-meta b{color:var(--papier);font-weight:700}
.partie-carte-vide{color:var(--brume);font-size:.95rem}

/* Grille des équipes : paliers fixes, 1 par ligne sur téléphone, 2 sur
   tablette, 4 sur grand écran (une formule auto-fill dépend de la largeur de
   la carte et donne 3 colonnes à 768 px). */
.partie-carte-equipes{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;list-style:none}
@media (min-width:600px){.partie-carte-equipes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.partie-carte-equipes{grid-template-columns:repeat(4,minmax(0,1fr))}}

.partie-carte-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid var(--bordure)}
.partie-carte-actions .btn{display:inline-flex;align-items:center;min-height:44px;padding:11px 22px;border-radius:5px;font-size:.95rem}
.partie-carte-suppression{margin:0 0 0 auto}
.btn.btn-supprimer{background:transparent;color:var(--rouge-texte);border-color:var(--tampon-bordure)}
.btn.btn-supprimer:hover,.btn.btn-supprimer:focus-visible{background:var(--tampon);border-color:var(--tampon);color:var(--papier)}

/* ---------- Carte d'équipe ---------- */
.equipe-carte{height:100%;display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--fond-element);border:1px solid var(--bordure);border-radius:8px;padding:18px}
.equipe-carte-haut{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.equipe-carte-identite{flex:1 1 auto;display:flex;align-items:flex-start;gap:10px;min-width:0}
.equipe-carte-statut{margin-top:6px}
.equipe-carte-photo{width:36px;height:36px;flex-shrink:0;border-radius:50%;object-fit:cover}
.equipe-carte-nom{font-weight:700;font-size:1.05rem;line-height:1.3;overflow-wrap:break-word;hyphens:auto}
.equipe-carte-code{font-family:'Special Elite',monospace;color:var(--laiton);font-size:.95rem;letter-spacing:.04em;overflow-wrap:anywhere}
.equipe-carte-session{margin-top:2px;font-size:.82rem;color:var(--brume)}
.equipe-carte-chiffre{font-family:'Fraunces',serif;font-weight:900;font-size:2.4rem;line-height:1}
.equipe-carte-chiffre small{margin-left:4px;font-family:'Karla',sans-serif;font-weight:500;font-size:1rem;color:var(--brume)}
.equipe-carte-barre{height:10px;background:var(--piste-barre);border-radius:999px;overflow:hidden}
.equipe-carte-barre span{display:block;height:100%;background:var(--laiton);border-radius:999px}
.equipe-carte-stats{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:6px 14px;margin-top:auto;padding-top:10px;border-top:1px solid var(--bordure);list-style:none;font-size:.9rem;color:var(--brume)}
.equipe-carte-stats b{color:var(--papier)}

@media (max-width:640px){
    .partie-carte{padding:18px 14px}
    /* « Supprimer » passe sous les autres boutons, aligné à gauche. */
    .partie-carte-suppression{margin-left:0;flex-basis:100%}
}
