/* ==========================================================
   Fiche d'un joueur (PlayerReport.php)
   Tableaux : .tableau--equipe et pastilles (css/equipe2026.css)
   ========================================================== */

.joueur-page { display: grid; gap: 2rem; min-width: 0; }

/* ---------- En-tête : photo d'action LNH en fond, fondue dans la surface ---------- */
.joueur-entete {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--trait);
    border-top: 4px solid var(--ligne);
    border-radius: var(--rayon);
    overflow: hidden;
}
.joueur-entete.a-photo {
    background:
        linear-gradient(90deg, var(--surface) 38%, color-mix(in srgb, var(--surface) 55%, transparent) 70%, color-mix(in srgb, var(--surface) 15%, transparent)),
        var(--photo-action) right center / cover no-repeat,
        var(--surface);
}
.joueur-entete__contenu {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: 1.75rem;
    min-height: 13rem;
}
.joueur-entete__photo {
    width: 140px; height: 140px;
    flex: none;
    border-radius: 50%;
    object-fit: cover;
    background: var(--surface-2);
    border: 3px solid var(--trait);
}
.joueur-entete__texte { display: grid; gap: .35rem; min-width: 0; }
.joueur-entete__equipe {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--texte-2);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .9rem;
}
.joueur-entete__equipe:hover { color: var(--bleu); text-decoration: none; }
.joueur-entete__nom {
    font-size: clamp(2.4rem, 5.5vw, 4rem);
    text-transform: uppercase;
    line-height: .95;
}
.joueur-entete__ligne {
    margin: .2rem 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    color: var(--texte-2);
}
.joueur-entete__numero {
    font-family: var(--police-titre);
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--texte);
}
.joueur-entete__ligne .badge { margin-left: 0; }
/* Outils au-dessus du profil : liste des coéquipiers, puis message de condition.
   Sur ordinateur, dans la colonne de droite (même largeur que « Profil ») ; sur cellulaire, en premier sous le bandeau. */
.joueur-page__outils { display: grid; gap: .6rem; }
/* 1re rangée à la hauteur des outils ; la 2e prend le reste (sinon la colonne principale, qui couvre les deux, étire la 1re) */
.joueur-page__corps--outils { grid-template-rows: auto 1fr; }
.joueur-page__corps--outils > .joueur-page__outils { grid-column: 2; grid-row: 1; margin-bottom: -1rem; }
.joueur-page__corps--outils > .joueur-page__principal { grid-column: 1; grid-row: 1 / span 2; }
.joueur-page__corps--outils > .joueur-page__cote { grid-column: 2; grid-row: 2; }
.joueur-entete__choix select { width: 100%; }
/* Condition à 98 et moins : contour jaune à surveiller, contour rouge à ménager, rouge plein blessé (comme l'accueil de l'équipe) */
.etat-condition {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0;
    padding: .45rem .7rem .45rem .5rem;
    background: var(--surface);
    border: 1px solid var(--trait);
    border-radius: var(--rayon);
    line-height: 1.25;
}
.etat-condition__valeur {
    flex: none;
    min-width: 2.6rem;
    padding: .1rem .4rem;
    border: 2px solid var(--or);
    border-radius: 999px;
    font-family: var(--police-titre);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    color: var(--texte);
    font-variant-numeric: tabular-nums;
}
.etat-condition--menager .etat-condition__valeur { border-color: var(--baisse); }
.etat-condition--blesse .etat-condition__valeur { border-color: var(--baisse); background: var(--baisse); color: var(--surface); }
.etat-condition__texte { display: grid; min-width: 0; font-size: .85rem; }
.etat-condition__texte strong { color: var(--texte); }
.etat-condition--blesse .etat-condition__texte strong { color: var(--baisse); }
.etat-condition__texte span { color: var(--texte-2); }
.joueur-entete__choix select {
    font: inherit;
    font-size: .9rem;
    color: var(--texte);
    background: var(--surface-2);
    border: 1px solid var(--trait);
    border-radius: var(--rayon);
    padding: .45rem .6rem;

}

/* ---------- Corps : colonne principale + profil ---------- */
.joueur-page__corps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 2rem 1.75rem;
    align-items: start;
}
.joueur-page__principal { display: grid; gap: 2rem; min-width: 0; }
.joueur-page__cote { display: grid; gap: 1rem; }

/* ---------- Cette saison ---------- */
.resume-stats { display: grid; gap: .75rem; }
.resume-stats__ligne { display: grid; gap: .6rem; }
.resume-stats__titre {
    font-size: .8rem;
    font-family: var(--police-texte);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--texte-2);
}
.resume-stats__ligne > .discret { margin: 0; }
.resume-stats__chiffres {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: .5rem;
}
.resume-stats__chiffres div { display: grid; justify-items: center; gap: .1rem; }
.resume-stats__chiffres dt { color: var(--texte-2); font-size: .75rem; font-weight: 700; }
.resume-stats__chiffres dd {
    margin: 0;
    font-family: var(--police-titre);
    font-weight: 800;
    font-size: 1.6rem;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.resume-stats__chiffres .est-fort dd { color: var(--bleu); }

/* ---------- Aptitudes ---------- */
.aptitudes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: 1rem;
}
.aptitude { display: grid; gap: .55rem; align-content: start; }
.aptitude__entete { display: flex; justify-content: space-between; align-items: baseline; }
.aptitude__entete h3 { font-size: 1.2rem; }
.aptitude__moyenne {
    font-family: var(--police-titre);
    font-weight: 800;
    font-size: 1.8rem;
    line-height: 1;
}
.aptitude__cote {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: .2rem;
    align-items: baseline;
    font-size: .9rem;
}
.aptitude__abr { color: var(--texte-2); font-size: .7rem; font-weight: 700; text-decoration: none; margin-left: .2rem; }
.aptitude__valeur { font-weight: 800; font-variant-numeric: tabular-nums; }
.aptitude__barre {
    grid-column: 1 / -1;
    height: 5px;
    border-radius: 3px;
    background: var(--surface-2);
    overflow: hidden;
}
.aptitude__barre span { display: block; height: 100%; background: var(--bleu); }
.aptitude__barre span.est-haute { background: var(--monte); }
.aptitude__barre span.est-basse { background: var(--texte-2); }
.cote-haute { color: var(--monte); }
.cote-basse { color: var(--texte-2); }

/* ---------- Carrières ---------- */
.tableau--carriere .col-nom { min-width: 7rem; }
.tableau--carriere .col-texte { text-align: left; color: var(--texte-2); }
.tableau--carriere .col-forte { color: var(--texte); font-weight: 800; }
.tableau--carriere thead th { cursor: default; }
.tableau--carriere tr.est-en-cours > * { background: var(--surface-2); }

/* ---------- Profil, contrat, derniers matchs ---------- */
.fiche-joueur { margin: 0; display: grid; }
.fiche-joueur div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--trait);
}
.fiche-joueur div:last-child { border-bottom: 0; }
.fiche-joueur dt { color: var(--texte-2); font-size: .9rem; }
.fiche-joueur dd { margin: 0; font-weight: 600; text-align: right; }
.est-negatif { color: var(--baisse); }

.contrat-annees { list-style: none; margin: 0; padding: 0; display: grid; }
.contrat-annees li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .45rem 0;
    border-bottom: 1px solid var(--trait);
    font-variant-numeric: tabular-nums;
}
.contrat-annees li:last-child { border-bottom: 0; }
.contrat-annees li > span:first-child { color: var(--texte-2); font-size: .9rem; }

.derniers-matchs { font-size: .85rem; }
.derniers-matchs th, .derniers-matchs td { text-align: center; padding: .35rem .3rem; }
.derniers-matchs th:first-child, .derniers-matchs td:first-child { text-align: left; }
.derniers-matchs .col-forte { font-weight: 800; }

.joueur-liens { margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-weight: 600; font-size: .9rem; }

/* ---------- Adaptation aux écrans ---------- */
@media (max-width: 1100px) {
    .resume-stats__chiffres { grid-template-columns: repeat(5, minmax(0, 1fr)); row-gap: .75rem; }
}
@media (max-width: 960px) {
    .joueur-page__corps { grid-template-columns: minmax(0, 1fr); }
    .joueur-page__corps--outils { grid-template-rows: none; }
    .joueur-page__corps--outils > .joueur-page__outils,
    .joueur-page__corps--outils > .joueur-page__principal,
    .joueur-page__corps--outils > .joueur-page__cote { grid-column: auto; grid-row: auto; margin-bottom: 0; }
    .joueur-page__cote { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); align-items: start; }
}
@media (max-width: 640px) {
    .joueur-entete__contenu { flex-wrap: wrap; gap: 1rem; padding: 1.25rem; }
    .joueur-entete__photo { width: 96px; height: 96px; }
    .joueur-entete.a-photo {
        background:
            linear-gradient(180deg, color-mix(in srgb, var(--surface) 55%, transparent), var(--surface) 70%),
            var(--photo-action) center top / cover no-repeat,
            var(--surface);
    }
    .resume-stats__chiffres dd { font-size: 1.3rem; }
}

/* En-tête ouvert, comme les pages d'équipe et l'accueil : la photo d'action se fond dans le fond de la page */
.joueur-entete { background: var(--fond); border: 0; border-bottom: 1px solid var(--trait); border-radius: 0; }
.joueur-entete.a-photo {
    background:
        linear-gradient(90deg, var(--fond) 38%, color-mix(in srgb, var(--fond) 55%, transparent) 70%, color-mix(in srgb, var(--fond) 15%, transparent)),
        linear-gradient(0deg, var(--fond), transparent 30%),
        var(--photo-action) right center / cover no-repeat,
        var(--fond);
}
.joueur-entete__contenu { padding-left: 0; }
@media (max-width: 640px) { .joueur-entete__contenu { padding-left: 0; padding-right: 0; } }

/* ---------- Style de jeu : cotes de spécialité et archétype (layout/profils.php) ---------- */
.style-jeu { display: grid; gap: .7rem; }
.style-jeu .titre-bloc, .style-jeu p { margin: 0; }
.style-jeu__archetype .archetype { font-size: 1rem; padding: .3rem .75rem; }
.style-jeu__description { margin-top: -.3rem !important; font-size: .9rem; }
.style-jeu__cotes { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.style-jeu__cotes li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "libelle valeur rang" "barre barre barre"; align-items: baseline; gap: .15rem .6rem; }
.style-jeu__libelle { grid-area: libelle; font-weight: 600; }
.style-jeu__libelle abbr { margin-left: .2rem; font-size: .72rem; font-weight: 800; letter-spacing: .04em; color: var(--texte-2); text-decoration: none; }
.style-jeu__valeur { grid-area: valeur; font-family: var(--police-titre); font-size: 1.25rem; line-height: 1; }
.style-jeu__rang { grid-area: rang; min-width: 7.2rem; text-align: right; font-size: .8rem; color: var(--texte-2); white-space: nowrap; }
.style-jeu__rang b { display: inline-block; min-width: 1.7rem; margin-left: .25rem; color: var(--texte); font-weight: 800; }
.style-jeu__rang--haut { color: var(--texte); font-weight: 700; }
.style-jeu__rang--haut b { color: var(--monte); }
.style-jeu__rang--bas b { color: var(--baisse); }
.style-jeu__barre { grid-area: barre; height: 6px; border-radius: 3px; background: var(--surface-2); overflow: hidden; }
.style-jeu__barre span { display: block; height: 100%; border-radius: 3px; background: var(--bleu); }
.style-jeu__note { font-size: .78rem; }

/* Style de jeu dans la colonne principale : portrait (archétype, forces, faiblesses, profil) à gauche, cotes à droite */
.style-jeu__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 1.75rem; align-items: start; }
.style-jeu__portrait, .style-jeu__chiffres { display: grid; gap: .55rem; align-content: start; min-width: 0; }
.style-jeu__archetype { display: flex; flex-wrap: wrap; gap: .4rem; }
.style-jeu__titre { margin: .35rem 0 0; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--texte-2); }
.style-jeu__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.style-jeu__liste li { line-height: 1.35; }
.style-jeu__texte { margin: 0; line-height: 1.5; }
@media (max-width: 760px) { .style-jeu__grille { grid-template-columns: minmax(0, 1fr); } }
