.declenche_profil_public { cursor: pointer; }
.declenche_profil_public:focus-visible { outline: 2px solid #e98a08; outline-offset: 2px; }

#modale_profil_public { position: fixed; z-index: 10003; inset: 0; display: none; overflow-y: auto; background: rgba(14, 28, 12, .72); backdrop-filter: blur(5px); font-family: "Comfortaa", sans-serif; }
#modale_profil_public, #modale_profil_public * { box-sizing: border-box; }
.profil_public_carte { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow-y: auto; border: 1px solid rgba(255, 255, 255, .84); border-radius: 8px; background: #fff; box-shadow: 0 28px 80px rgba(5, 22, 5, .5); color: #273127; }
#fermer_profil_public { position: absolute; z-index: 2; top: 10px; right: 10px; width: 36px; height: 36px; border: 1px solid #d8dfd4; border-radius: 50%; background: #fff; color: #687269; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.profil_public_entete { min-height: 142px; display: grid; grid-template-columns: 82px minmax(0, 1fr) 100px 150px; gap: 16px; align-items: center; padding: 22px 58px 22px 24px; border-bottom: 1px solid #dce3d9; }
.profil_public_avatar { position: relative; width: 76px; height: 76px; overflow: visible; border-radius: 50%; background: #f7f9f5; }
.profil_public_avatar > img { position: relative; z-index: 2; box-sizing: border-box; display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.profil_public_identite { min-width: 0; }
.profil_public_identite > span, .profil_public_niveau span, .profil_public_relations span, .profil_public_indicateurs span, .profil_public_classement_resume span { display: block; color: #687269; font-size: .62rem; font-weight: 700; text-transform: uppercase; }
#profil_public_pseudo { margin: 3px 0 5px; color: #273127; font-family: "Amaranth", sans-serif; font-size: 1.55rem; font-weight: 400; overflow-wrap: anywhere; }
#profil_public_membre_depuis { margin: 0; color: #687269; font-size: .65rem; }
.profil_public_niveau { padding: 10px; border-left: 1px solid #dce3d9; border-right: 1px solid #dce3d9; text-align: center; }
.profil_public_niveau strong { display: block; color: #24561f; font-family: "Amaranth", sans-serif; font-size: 2.5rem; line-height: 1; }
.profil_public_niveau small { color: #687269; font-size: .6rem; }
.profil_public_palier { min-width: 0; text-align: center; }
#profil_public_etoiles { position: absolute; z-index: 3; inset: 0; overflow: visible; pointer-events: none; }
#profil_public_etoiles > .etoiles_joueur { inset: 0; width: 100%; height: 100%; }
#profil_public_etoiles .bordure_palier_img { filter: drop-shadow(0 2px 3px rgba(35, 20, 0, .28)); }
.profil_public_palier > strong { display: block; margin-top: 3px; color: #273127; font-family: "Amaranth", sans-serif; font-size: 1.05rem; }

.profil_public_navigation { display: flex; padding: 0 20px; border-bottom: 1px solid #dce3d9; background: #f5f8f3; }
.profil_public_navigation button { position: relative; display: flex; flex: 1 1 0; min-height: 48px; align-items: center; justify-content: center; gap: 7px; border: 0; background: transparent; color: #667066; font: 700 .72rem "Comfortaa", sans-serif; cursor: pointer; }
.profil_public_navigation button > i { color: #8b958b; font-size: .78rem; }
.profil_public_navigation button::after { content: ""; position: absolute; right: 16px; bottom: 0; left: 16px; height: 3px; background: transparent; }
.profil_public_navigation button.actif { color: #24561f; }
.profil_public_navigation button.actif > i { color: #d86f1f; }
.profil_public_navigation button.actif::after { background: #d86f1f; }
.profil_public_corps { padding: 20px 24px 24px; }
.profil_public_indicateurs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.profil_public_indicateurs > div, .profil_public_classement_resume > div { min-height: 90px; padding: 14px; border: 1px solid #dce3d9; border-radius: 8px; background: #f7f9f5; }
.profil_public_indicateurs strong, .profil_public_classement_resume strong { display: block; margin-top: 8px; color: #24561f; font-family: "Amaranth", sans-serif; font-size: 1.35rem; overflow-wrap: anywhere; }
.profil_public_relations { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.profil_public_relations > div { min-height: 82px; padding: 14px; border: 1px solid #dce3d9; border-radius: 8px; }
.profil_public_relations strong { display: block; margin-top: 8px; font-size: .76rem; overflow-wrap: anywhere; }
/* CPT-74/75 : vitrine publique, avec un seul badge par famille (le plus avance obtenu). */
.profil_public_vitrine { margin-top: 10px; padding: 14px; overflow: hidden; border: 1px solid #dce3d9; border-radius: 8px; background: linear-gradient(135deg, #fbfcfa 0%, #f3f7ef 100%); }
.profil_public_vitrine_entete { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.profil_public_vitrine_icone { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #fff0d7; color: #b76418; font-size: .85rem; }
.profil_public_vitrine_entete > div > span { display: block; color: #8a6a45; font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
#profil_public_titre_succes { margin: 2px 0 0; color: #273127; font: 400 .95rem "Amaranth", sans-serif; }
.profil_public_succes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.profil_public_succes .profil_public_badge { position: relative; display: flex; min-width: 0; align-items: center; gap: 10px; padding: 9px 12px 9px 9px; overflow: hidden; border: 1px solid #dce3d9; border-radius: 8px; background: rgba(255, 255, 255, .9); box-shadow: 0 3px 10px rgba(36, 86, 31, .06); }
.profil_public_succes .profil_public_badge:only-child { grid-column: 1 / -1; }
.profil_public_succes .profil_public_badge::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: #d88a28; }
.profil_public_badge_icone { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: #f7f3e8; color: #b76418; font-size: 1.1rem; }
.profil_public_badge_icone img { display: block; width: 44px; height: 44px; object-fit: contain; }
.profil_public_badge_texte { min-width: 0; }
.profil_public_badge_texte strong { display: block; color: #24561f; font-size: .7rem; line-height: 1.35; overflow-wrap: anywhere; }
.profil_public_badge_texte small { display: block; margin-top: 3px; color: #7b837b; font-size: .55rem; line-height: 1.35; }
.profil_public_succes .etat_vide { grid-column: 1 / -1; width: 100%; margin: 0; padding: 5px 0 2px; color: #7b837b; font-size: .66rem; text-align: left; }
.profil_public_classement_resume { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#profil_public_ranking h3 { margin: 18px 0 8px; color: #273127; font: 400 1rem "Amaranth", sans-serif; }
.profil_public_segments { display: grid; gap: 1px; overflow: hidden; border: 1px solid #dce3d9; border-radius: 8px; background: #dce3d9; }
.profil_public_segment { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding: 10px 12px; background: #fff; }
.profil_public_segment strong { font-size: .68rem; overflow-wrap: anywhere; }
.profil_public_segment span { color: #24561f; font-size: .68rem; font-weight: 700; }
.profil_public_segment small { color: #687269; font-size: .62rem; }
.profil_public_segments > p, .profil_public_parties > p, #profil_public_indisponible { margin: 0; padding: 22px; background: #fff; color: #687269; font-size: .72rem; text-align: center; }

.profil_public_historique_entete { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.profil_public_historique_entete > div > span { display: block; color: #8a6a45; font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
#profil_public_historique_titre { margin: 3px 0 0; color: #273127; font: 400 1rem "Amaranth", sans-serif; }
.profil_public_historique_entete > small { color: #687269; font-size: .58rem; white-space: nowrap; }
.profil_public_parties { display: grid; gap: 8px; }
.profil_public_partie { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 11px; align-items: center; padding: 10px 12px; border: 1px solid #dce3d9; border-left-width: 3px; border-radius: 8px; background: #fff; }
.profil_public_partie.victoire { border-left-color: #4b8b3b; }
.profil_public_partie.defaite { border-left-color: #b65d55; }
.profil_public_partie.abandon { border-left-color: #9a7350; }
.profil_public_partie_resultat { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #f1f5ef; color: #557052; font-size: .76rem; }
.profil_public_partie.victoire .profil_public_partie_resultat { background: #edf7e9; color: #39732d; }
.profil_public_partie.defaite .profil_public_partie_resultat { background: #faeeee; color: #a14a43; }
.profil_public_partie.abandon .profil_public_partie_resultat { background: #f5f0ea; color: #805c3c; }
.profil_public_partie_contenu { min-width: 0; }
.profil_public_partie_entete { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.profil_public_partie_entete strong { color: #273127; font-size: .7rem; }
.profil_public_partie_entete time { color: #687269; font-size: .56rem; white-space: nowrap; }
.profil_public_partie_contenu > p { margin: 3px 0 7px; color: #687269; font-size: .58rem; line-height: 1.4; }
.profil_public_participants { display: flex; flex-wrap: wrap; gap: 5px; }
.profil_public_participant { display: inline-flex; min-width: 0; align-items: center; gap: 5px; padding: 2px 7px 2px 2px; border-radius: 999px; background: #f4f7f2; color: #445044; font-size: .54rem; }
.profil_public_participant_avatar { display: grid; flex: 0 0 22px; width: 22px; height: 22px; overflow: hidden; place-items: center; border-radius: 50%; background: #dce7d8; color: #315c2b; font-size: .55rem; font-weight: 700; }
.profil_public_participant_avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.profil_public_participant.ia .profil_public_participant_avatar { background: #fff0d7; color: #a45a16; }
.profil_public_participant.invite { color: #6f766f; }
.profil_public_pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 12px; }
.profil_public_pagination[hidden] { display: none; }
.profil_public_pagination > span { color: #687269; font-size: .6rem; }
.profil_public_pagination button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid #d5ddd2; border-radius: 7px; background: #f7f9f5; color: #315c2b; font: 700 .58rem "Comfortaa", sans-serif; cursor: pointer; }
.profil_public_pagination button:disabled { opacity: .45; cursor: default; }

@media (max-width: 640px) {
	.profil_public_carte { top: 16px; transform: translateX(-50%); max-height: calc(100vh - 32px); }
	.profil_public_entete { grid-template-columns: 70px minmax(0, 1fr); padding: 20px 52px 20px 18px; }
	.profil_public_avatar { width: 66px; height: 66px; }
	.profil_public_niveau, .profil_public_palier { min-height: 78px; padding: 10px; border: 1px solid #dce3d9; border-radius: 8px; }
	.profil_public_niveau { grid-column: 1; }
	.profil_public_palier { grid-column: 2; }
	.profil_public_indicateurs { grid-template-columns: 1fr 1fr; }
	.profil_public_succes { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
	.profil_public_corps { padding: 16px; }
	.profil_public_navigation { padding: 0 5px; }
	.profil_public_navigation button { gap: 5px; font-size: .58rem; }
	.profil_public_navigation button::after { right: 5px; left: 5px; }
	.profil_public_relations, .profil_public_classement_resume { grid-template-columns: 1fr; }
	.profil_public_segment { grid-template-columns: minmax(0, 1fr) auto; }
	.profil_public_segment small { grid-column: 1 / -1; }
	.profil_public_partie_entete { display: block; }
	.profil_public_partie_entete time { display: block; margin-top: 2px; }
}
