/*  PALETTE CHALEUREUSE SAINT ANDRÃ‰  */
:root {
  --rouge-fonce: #8b1633;
  --rouge: #e43d57;
  --jaune: #ffcf4a;
  --vert: #43a047;
  --beige: #fff3e5;
  --texte: #2b2b2b;
  --blanc: #ffffff;
  --gris-fonce: #1e1f22;
  /* gris anthracite du bloc noir */
  --fond-bloc: #fff8ec;
  /* fond beige des cartes rassembl. */
}


/*  RESET GLOBAL & TYPO  */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: linear-gradient(180deg, #fffaf2 0%, var(--beige) 40%, #ffe7cf 100%);
  color: var(--texte);
  line-height: 1.6;
}

/*  STRUCTURE GÃ‰NÃ‰RALE DU CONTENU (toutes pages)  */
main {
  max-width: 1100px;
  margin: 20px auto 40px;
  padding: 0 16px 40px;
}

.note-tableau-email {
  font-size: 0.9em;
  line-height: 1.4;
}


/* =========================================================
/* =========================================================
   PAGE ORGANISATION â€“ LARGEUR Ã‰TENDUE
   ========================================================= */

#organisation-page {
  max-width: 1300px;
  /* page un peu plus large que le reste */
  margin: 20px auto 40px;
  padding: 0 16px 40px;
}

/* ðŸ’Œ PAGE BOÃŽTE MAIL â€“ LARGEUR 2400 / 95 % */
#boite-mail-page {
  max-width: 2400px;
  width: 95%;
  margin: 20px auto 40px;
  padding: 0 16px 40px;
}

/* =========================================================
   PAGE ORGANISATION â€“ LISTES SAINT ANDRÃ‰ / PARTICIPANTS
   ========================================================= */

/* Variante "large" de la carte blanche */
.bloc-inscriptions.bloc-inscriptions-large {
  max-width: 1200px;
  /* plus large que 600px */
  text-align: left;
  /* texte alignÃ© Ã  gauche */
}

/* Sur la page BoÃ®te mail uniquement, on Ã©tire la carte */
#boite-mail-page .bloc-inscriptions.bloc-inscriptions-large {
  max-width: 2400px;
}


/* Titre interne (sous le H2) */
.orga-stats-titre {
  font-size: 16px;
  font-weight: 600;
  margin: 10px 0 6px;
  color: var(--rouge-fonce);
}

/* Liste des lignes "Saint-André" */
.orga-stats-liste {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ➕ Mise en forme spécifique pour la page Rapports :
   les boutons sont sur une même ligne et passent à la ligne automatiquement */
#rapport-page #liste-rapports {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;       /* écart horizontal / vertical entre les boutons */
}

/* Les <li> deviennent de vrais items "bouton" côte à côte */
#rapport-page #liste-rapports li {
  display: inline-flex;
  /* laisse la taille au contenu (le bouton) */
}

/* On enlève la marge haute des boutons sur cette page
   pour qu'ils soient bien alignés entre eux */
#rapport-page #liste-rapports .btn-secondaire {
  margin-top: 0;
}

/* Une ligne : "Saint-André (85) : …" */
.orga-stats-ligne {
  padding: 6px 8px;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  font-size: 14px;
}



/* Nom du Saint-AndrÃ© + dÃ©partement */
.orga-stats-nom {
  font-weight: 600;
}

/* DÃ©tails (totaux, tranches dâ€™Ã¢ge, logements) alignÃ©s aprÃ¨s le nom */
.orga-stats-details {
  margin-left: 4px;
  font-size: 13px;
  opacity: .9;
}


/*  PIED DE PAGE COMMUN  */
.site-footer {
  background: var(--rouge-fonce);
  color: #fff;
  text-align: center;
  font-size: 13px;
  padding: 10px 6px 16px;
}

.footer-links {
  margin-top: 6px;
}

.footer-links .footer-btn {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .7);
  color: #fff;
  text-decoration: none;
  font-size: 12px;
}

.footer-links .footer-btn:hover {
  background: rgba(255, 255, 255, .15);
}

/* ======== TABLEAU ORGANISATION â€” STYLE FULL GRILLE ======== */

.orga-stats-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  background-color: var(--blanc);
  border: 1px solid rgba(0, 0, 0, 0.20);
  /* contour externe */
}

.orga-stats-table th,
.orga-stats-table td {
  padding: 6px 10px;
  border: 1px solid rgba(0, 0, 0, 0.20);
  /* grille horizontale + verticale */
  text-align: left;
  /* par dÃ©faut : Ã  gauche           */
  white-space: nowrap;
}

.orga-stats-table th {
  background: linear-gradient(90deg, var(--rouge-fonce), #8b1633);
  color: var(--blanc);
  font-weight: 600;
}

/* Colonnes numÃ©riques (Ã  partir de "Total") centrÃ©es */
.orga-stats-table th:nth-child(n+3),
.orga-stats-table td:nth-child(n+3) {
  text-align: center;
}

/* Ligne total gÃ©nÃ©ral mise en avant */
.orga-total-row {
  background-color: rgba(255, 207, 74, 0.18);
  /* plus visible */
  font-weight: 600;
}

/* Curseur cliquable sur les boutons de Saint-AndrÃ© */
.orga-stats-nom-btn {
  cursor: pointer;
  background: none;
  border: none;
  font-size: 15px;
  color: var(--rouge-fonce);
  padding: 0;
}

/*  PAGE PARTICIPANTS â€“ TROMBINOSCOPE PUBLIC  */

#participants-page {
  max-width: 2400px;
  /* mÃªme logique que la popup */
  width: 95%;
  /* quasi pleine largeur dâ€™Ã©cran */
  margin: 20px auto 40px;
  padding: 0 16px 40px;
}

/* Filtre PC (select au-dessus du trombinoscope) */
.participants-filtre-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  /* â–¶ï¸ centrage du label + select */
  gap: 8px;
  margin-bottom: 20px;
  text-align: center;
}


.participants-filtre-pc label {
  font-weight: 600;
}

/* Texte sous le bloc mot de passe (demande de code) */
.part-demande-code {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.4;
}

.part-demande-code .btn-demande-code {
  margin-top: 6px;
}

/* Popup demande de code : largeur un peu rÃ©duite */
.popup-contenu.popup-demande-code {
  max-width: 520px;
}

.popup-demande-texte {
  font-size: 14px;
  margin-bottom: 10px;
}

.popup-demande-note {
  font-size: 13px;
  margin-top: 6px;
  color: #555;
}

.popup-demande-form input[type="text"],
.popup-demande-form input[type="email"],
.popup-demande-form select {
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, .15);
  font-size: 14px;
  font-family: inherit;
  background: #fffaf7;
}

.popup-demande-form textarea {
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, .15);
  font-size: 14px;
  font-family: inherit;
  background: #fffaf7;
  resize: vertical;
}

#filtre-sa-select {
  width: 300px;
  /* mÃªme largeur que dans la popup */
  max-width: 100%;
  padding: 6px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  text-align: center;
}

/* Conteneur global du trombinoscope */
.trombi-liste {
  margin-top: 20px;
}

/* Un bloc par Saint AndrÃ© */
.trombi-sa-bloc {
  margin-bottom: 26px;
}

/* Titre Â« pastille noire Â» : Nom du Saint AndrÃ© (XX) */
.trombi-sa-titre {
  display: inline-block;
  background: #1e1f22;
  color: var(--jaune);
  border-radius: 999px;
  padding: 6px 18px;
  font-size: 15px;
  font-weight: 600;
  text-align: center;
}

/* Ligne du dessous (petit texte gris Ã©ventuel) â€“ facultatif mais prÃªt */
.trombi-sa-sous-titre {
  font-size: 12px;
  text-align: center;
  margin-top: 2px;
  opacity: .8;
}

/* Cartes photo+nom, mÃªme logique que dans la popup : en ligne, retour auto */
.trombi-sa-cartes {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 10px;
}

/* Carte publique : photo + texte, SANS case MasquÃ© / bouton Modifier */
.carte-participant-public {
  width: 220px;
  padding: 10px;
  border-radius: 14px;
  background: #fffaf7;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}

.carte-participant-public img {
  display: block;
  margin: 0 auto;
  width: 200px;
  height: 200px;
  object-fit: contain;
  background-color: #fff;
  border-radius: 10px;
}

.carte-participant-public .nom {
  margin-top: 0px;
  /* â–¶ï¸ rÃ©duit lâ€™espace entre photo & nom */
  text-align: center;
  font-size: 14px;
}


/* Filtre mobile sous le menu hamburger (bouton) */
.participants-mobile-filter {
  margin-left: auto;
  margin-top: 4px;
}

/* On cache par dÃ©faut sur PC, visible sur mobile */
.participants-mobile-filter {
  display: none;
}

/* Panneau dÃ©roulant pour la liste des SA (mobile) */
.participants-mobile-filter-panel {
  position: absolute;
  top: 100%;
  right: 10px;
  margin-top: 4px;
  background: #fffaf7;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  padding: 8px;
  z-index: 999;
  display: none;
  max-height: 60vh;
  overflow-y: auto;
}

.participants-mobile-filter-panel button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 10px;
  border: none;
  background: transparent;
  font-size: 14px;
  cursor: pointer;
  border-radius: 6px;
}

.participants-mobile-filter-panel button:hover {
  background: rgba(0, 0, 0, 0.04);
}

/* Affichage panel ouvert */
.participants-mobile-filter-panel.open {
  display: block;
}

/* Affichage mobile : on masque le select PC, on affiche le bouton */
@media (max-width:768px) {
  .participants-filtre-pc {
    display: none;
  }

  .participants-mobile-filter {
    display: block;
  }

  /* Cartes plus grandes sur tÃ©lÃ©phone (1 par ligne) */
  .trombi-sa-cartes {
    justify-content: center;
  }

  .carte-participant-public {
    width: 100%;
    max-width: 320px;
    margin: 0 auto 16px;
  }
}


/* Overlay pop-up */
.popup-overlay-sta {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(2px);
  display: none;
  justify-content: center;
  align-items: flex-start;
  padding-top: 60px;
  z-index: 999;
}

/* Disposition 2 colonnes dans la pop-up */
.popup-sta-body-top {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.popup-sta-col-gauche .popup-sta-section {
  margin-bottom: 10px;
}

/* Sous-grille DonnÃ©es dÃ©mographiques / Historique dans la colonne gauche */
.popup-sta-demo-histo-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 16px;
  align-items: flex-start;
}

.popup-sta-demo-col,
.popup-sta-histo-col {
  display: flex;
  flex-direction: column;
}

@media (max-width:800px) {
  .popup-sta-demo-histo-grid {
    grid-template-columns: 1fr;
  }
}

.popup-sta-recapitulatif p {
  margin: 4px 0;
}


/* =========================================================
   NAVIGATION / TOPBAR (toutes pages)
   ========================================================= */

.topbar {
  background: linear-gradient(90deg, var(--rouge-fonce), #58113c);
  color: var(--blanc);
  position: sticky;
  top: 0;
  z-index: 50;
}

.topbar-inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.logo-titre {
  display: flex;
  align-items: center;
  gap: 10px;
}

.logo-badge {
  background: var(--jaune);
  color: var(--rouge-fonce);
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 14px;
}

.logo-texte {
  font-weight: 600;
  font-size: 18px;
}

.main-nav {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 14px;
}

.main-nav a {
  color: var(--blanc);
  text-decoration: none;
  padding: 4px 10px;
  border-radius: 999px;
  transition: background .15s, color .15s, transform .1s;
}

.main-nav a:hover,
.main-nav a.active {
  background: var(--jaune);
  color: var(--rouge-fonce);
  transform: translateY(-1px);
}

/*  BOUTON MENU HAMBURGER (mobile)  */
.menu-toggle {
  display: none;
  /* cachÃ© par dÃ©faut (desktop) */
  margin-left: auto;
  cursor: pointer;
  border: none;
  background: transparent;
  padding: 4px;
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #ffffff;
  border-radius: 999px;
  transition: transform .15s ease, opacity .15s ease, background .15s ease;
}

.menu-toggle span+span {
  margin-top: 4px;
}

/*  Animation croix quand le menu est ouvert  */
.menu-toggle.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/*  NAV â€“ Version compacte pour Ã©crans type PC portable  */
/*  Agit UNIQUEMENT entre 801px et 1200px de large (pas mobile)  */
@media (min-width:801px) and (max-width:1200px) {

  .topbar-inner {
    max-width: 1200px;
    /* un peu moins large que 1500px */
    gap: 5px;
    /* on serre le logo et le menu */
    padding: 8px 12px;
  }

  .logo-texte {
    font-size: 14px;
    /* titre un peu plus compact */
  }

  .main-nav {
    gap: 8px;
    /* moins dâ€™espace entre les liens */
  }

  .main-nav a {
    padding: 4px 6px;
    /* moins de marge horizontale */
    font-size: 12px;
    /* texte un peu plus petit */
    white-space: nowrap;
    /* Ã©vite quâ€™un lien casse sur 2 lignes */
  }
}


/* =========================================================
   BOUTONS GÃ‰NÃ‰RIQUES (rÃ©utilisÃ©s partout)
   ========================================================= */


.btn-principal,
.btn-secondaire {
  display: inline-block;
  margin-top: 12px;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-size: 15px;
  text-align: center;
}

.btn-principal {
  background: var(--jaune);
  color: var(--rouge-fonce);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .18);
}

.btn-principal:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 16px rgba(0, 0, 0, .22);
}

.btn-secondaire {
  background: var(--rouge);
  color: #fff;
}

.btn-secondaire:hover {
  opacity: .9;
}

/* =========================================================
   BLOC ACCUEIL / HERO (index.html)
   ========================================================= */

/*  Layout principal dâ€™accueil : 2 colonnes indÃ©pendantes  */
.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 24px;
  margin-bottom: 32px;
  align-items: flex-start;
}

/* Colonnes logiques gauche / droite */
.hero-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Plus besoin de grid-area / margin-top sur les blocs acc-blocX */


/*  Carte gÃ©nÃ©rique dâ€™accueil  */
.hero {
  background: var(--blanc);
  border-radius: 22px;
  box-shadow: 0 16px 35px rgba(0, 0, 0, .15);
  padding: 14px 18px 18px;
}

/*  Pancarte (image)  */
.hero-pancarte {
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-media img {
  width: 100%;
  max-width: 600px;
  /* largeur max de la pancarte */
  border-radius: 18px;
  display: block;
}

/*  Anciennes classes de texte utilisÃ©es / gardÃ©es  */
.hero-texte {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}

.hero-surtitre {
  font-family: "Comic Sans MS", "Segoe Print", cursive;
  font-size: 22px;
  color: var(--rouge-fonce);
}

.hero h1 {
  font-size: 32px;
  color: var(--rouge);
}

.hero-soustitre {
  font-size: 16px;
}

.badge-date {
  display: inline-block;
  margin-top: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--vert);
  color: #fff;
  font-weight: 600;
  font-size: 14px;
}

/* =========================================================
   BLOC 1996â€“2026 & INFOS PRATIQUES (index / intro inscription)
   ========================================================= */

/*  Conteneur gÃ©nÃ©ral 1996â€“2026  */
.bloc-intro {
  margin-bottom: 18px;
}

/*  Carte noire 1996â€“2026 (rÃ©utilisÃ©e sur inscription-intro)  */
.bloc-intro-inner {
  background: #1e1f22;
  /* fond anthracite */
  border-radius: 20px;
  padding: 24px 22px;
  text-align: center;
  color: #fff;
  /* texte par dÃ©faut : blanc */
  box-shadow: 0 10px 24px rgba(0, 0, 0, .15);
  max-width: 600px;
  margin: 0 auto;
}

/*  Titres en jaune dans ce bloc  */
.bloc-intro-inner h1,
.bloc-intro-inner h2 {
  color: var(--jaune);
}

.bloc-intro-date {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 2px;
  margin-bottom: 6px;
}

.bloc-intro h2 {
  font-size: 22px;
  margin-bottom: 10px;
}

/*  Bloc infos pratiques (colonne droite, sous 1996â€“2026)  */
.bloc-infos {
  margin-bottom: 0;
}

.infos-texte {
  background: #ffffff;
  padding: 20px 18px;
  border-radius: 18px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .1);
  font-size: 14px;
  max-width: 600px;
  /* mÃªme largeur que 1996â€“2026 */
  margin: 0 auto;
}

.infos-texte h3 {
  margin-bottom: 8px;
  color: var(--rouge-fonce);
}

.infos-texte p+p {
  margin-top: 8px;
}

/*  Liens : hÃ©ritent de la couleur du texte (rouge, jaune, etc.)  */
.infos-texte a {
  color: inherit;
}

.infos-deadline {
  margin-top: 12px;
  color: var(--rouge-fonce);
}

/*  Bloc "Une question ?" avec encadrÃ©  */
.infos-contact {
  background: #fffdf4;
  padding: 18px 16px;
  border-radius: 18px;
  border: 1px dashed rgba(0, 0, 0, .15);
  font-size: 14px;
}

.infos-contact h4 {
  margin-bottom: 6px;
  color: var(--rouge-fonce);
}

.infos-contact a {
  color: var(--rouge);
}

.signature {
  margin-top: 18px;
  font-style: italic;
}

/*  Bloc question + inscriptions (zone 2 colonnes sous le hero)  */
.question-inscriptions {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 24px;
  margin-bottom: 32px;
  align-items: flex-start;
}

.question-card {
  max-width: 600px;
  /* mÃªme largeur que pancarte / blocs droite */
  margin: 0 auto;
}

/*  Bloc carte "Inscriptions" sur lâ€™accueil  */
.bloc-inscriptions {
  text-align: center;
  background: #ffffff;
  padding: 22px 18px 26px;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 1);
  max-width: 600px;
  margin: 0 auto;
}

.bloc-inscriptions h2 {
  color: var(--rouge-fonce);
  margin-bottom: 8px;
}

/*  Variante large des blocs .bloc-inscriptions (param, boÃ®te mail)  */
.bloc-inscriptions-large {
  max-width: 2400px;
  width: 95%;
  margin: 0 auto;
  text-align: left;
}

/*  Sections vides (ancrages futurs)  */
.section-vide {
  min-height: 40px;
}

.bloc-inscriptions {
  text-align: center;
  background: #ffffff;
  padding: 22px 18px 26px;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 1);
  max-width: 600px;
  margin: 0 auto;
}

.bloc-inscriptions h2 {
  color: var(--rouge-fonce);
  margin-bottom: 8px;
}

/*  Variante large des blocs .bloc-inscriptions (param, boÃ®te mail)  */
.bloc-inscriptions-large {
  max-width: 2400px;
  width: 95%;
  margin: 0 auto;
  text-align: left;
}

/* Sur la page BoÃ®te mail uniquement, on Ã©tire la carte */
#boite-mail-page .bloc-inscriptions.bloc-inscriptions-large {
  max-width: 2400px;
}

/* Page BoÃ®te mail : pas de marge interne entre la carte et les 3 colonnes */
#boite-mail-page .bloc-inscriptions {
  padding: 0;
}

/* =========================================================
/* =========================================================
   PAGES AVEC CARTES (zoom, carte principale, bloc infÃ©rieur)
   ========================================================= */
.bloc-inferieur {
  background: #eacdb8;
  padding: 32px 24px;
  /* âœ… on remet les marges latÃ©rales */
  margin: 40px auto;
  border-radius: 24px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  max-width: 1100px;
  /* âœ… largeur dâ€™origine */
}


/*  Carte principale  */
.carte-principale {
  background: #fff;
  padding: 18px;
  border-radius: 16px;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
  margin-bottom: 30px;
}

.carte-principale img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/*  Grille des zooms rÃ©gionaux  */
.cartes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

/*  Carte individuelle (zoom)  */
.carte-item {
  background: #ffffff;
  padding: 12px;
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  text-align: center;
}

.carte-item img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: transform 0.2s ease;
}

.carte-item img:hover {
  transform: scale(1.03);
}

/* =========================================================
   PAGE CONTACT (contact.html)
   ========================================================= */

#contact-page {
  max-width: 800px;
  margin: 24px auto 40px;
}

.contact-header {
  margin-bottom: 18px;
  text-align: center;
}

.contact-header h1 {
  font-size: 26px;
  color: var(--rouge-fonce);
  margin-bottom: 6px;
}

.contact-header p {
  font-size: 14px;
}

/*  Carte du formulaire de contact  */
.contact-card {
  background: var(--blanc);
  padding: 22px 18px 26px;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}

/*  Fieldsets  */
.contact-card fieldset {
  border: none;
  padding: 0;
  margin: 0 0 16px;
}

.contact-card legend {
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--rouge-fonce);
  font-size: 15px;
}

/*  Lignes de formulaire  */
.form-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 12px;
}

.form-row label {
  font-size: 14px;
  font-weight: 500;
}

.form-row small {
  font-size: 12px;
  color: #666;
}

/*  Champs texte / email / tel / number / select / textarea  */
.contact-card input[type="text"],
.contact-card input[type="email"],
.contact-card input[type="tel"],
.contact-card input[type="number"],
.contact-card select {
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, .15);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  background: #fffaf7;
}

.contact-card textarea {
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(0, 0, 0, .15);
  font-size: 14px;
  font-family: inherit;
  background: #fffaf7;
  resize: vertical;
  min-height: 120px;
}

.contact-card input:focus,
.contact-card select:focus,
.contact-card textarea:focus {
  border-color: var(--rouge);
  box-shadow: 0 0 0 2px rgba(228, 61, 87, 0.18);
}

/*  EncadrÃ© humour + RGPD  */
.contact-infos {
  margin: 8px 0 16px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff8e8;
  border: 1px dashed rgba(0, 0, 0, .1);
}

.contact-note {
  font-size: 13px;
  margin-bottom: 8px;
}

.contact-infos .form-row {
  margin-bottom: 0;
}

.contact-infos label {
  font-size: 13px;
}

/*  Bouton dâ€™envoi (rÃ©utilise .btn-principal)  */
.contact-actions {
  text-align: center;
  margin-top: 10px;
}

.contact-actions .btn-principal {
  min-width: 220px;
}

/*  Liens dans le texte du contact  */
.contact-card a {
  color: var(--rouge);
}

/*  Responsive spÃ©cifique contact  */
@media (max-width:600px) {
  #contact-page {
    margin: 18px auto 32px;
  }

  .contact-card {
    padding: 18px 14px 22px;
  }

  .contact-header h1 {
    font-size: 22px;
  }
}

/* =========================================================
   PAGE INSCRIPTION â€“ STRUCTURE GÃ‰NÃ‰RALE
   ========================================================= */

/*  Main spÃ©cifique Ã  la page dâ€™inscription (identique mais isolÃ©)  */
#inscription-page main {
  max-width: 1100px;
  margin: 20px auto 40px;
  padding: 0 16px 40px;
}

/*  Wrapper global beige autour du formulaire  */
#inscription-wrapper {
  max-width: 1200px;
  margin: 40px auto;
}

/*  Carte dâ€™intro de la page dâ€™inscription (rÃ©utilise bloc-intro-inner)  */
#inscription-intro .bloc-intro-inner {
  max-width: 800px;
  margin: 0 auto;
}

#insc-titre {
  color: var(--jaune);
  margin-bottom: 6px;
  font-size: 24px;
  font-weight: 700;
}

#insc-sous-titre,
#insc-message {
  color: var(--blanc);
}

/*  Note sous le titre : "Inscriptions conseillÃ©es sur ordinateur ou tablette"  */
.insc-note-ordi {
  color: var(--blanc);
  font-size: 20px;
  font-weight: 700;
  /* gras */
  margin: 4px 0 8px;
  text-align: center;
  opacity: .9;
}

/*  Cartes gÃ©nÃ©riques du formulaire dâ€™inscription  */
.insc-card {
  background: #ffffff;
  padding: 20px 18px 24px;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .1);
  margin-bottom: 18px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/*  Texte standard dans les cartes dâ€™inscription  */
.insc-texte {
  font-size: 14px;
  margin-bottom: 10px;
}

/*  Notes en petit  */
.insc-note {
  font-size: 12px;
  color: #555;
  margin-top: 6px;
}

/*  Actions alignÃ©es Ã  gauche (bloc "DÃ©jÃ  inscrit ?")  */
.insc-actions-gauche {
  text-align: left;
  margin-top: 8px;
}

/* =========================================================
   PAGE INSCRIPTION â€“ BLOC 1 "DÃ‰JÃ€ INSCRIT ?"
   ========================================================= */

/*  Grille 2/3 + 1/3 pour email / mot de passe  */
.insc-login-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  column-gap: 24px;
}

.insc-login-grid .login-col-email,
.insc-login-grid .login-col-pass {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* =========================================================
   PAGE INSCRIPTION â€“ BLOC 2 "VOUS â€“ CORRESPONDANT"
   ========================================================= */

/*  BLOC VOUS â€“ IDENTITÃ‰ (desktop : grille 3 colonnes / 2 lignes)  */
.insc-vous-identite {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  grid-template-rows: auto auto;
  column-gap: 16px;
  row-gap: 4px;
  margin-bottom: 10px;
}

/*  Positionnement Nom / PrÃ©nom / CivilitÃ© sur desktop  */
.insc-vous-identite .vous-label-nom {
  grid-column: 2;
  grid-row: 1;
}

.insc-vous-identite .vous-label-prenom {
  grid-column: 3;
  grid-row: 1;
}

.insc-vous-identite .vous-civilite {
  grid-column: 1;
  grid-row: 2;
  align-self: center;
}

.insc-vous-identite .vous-champ-nom {
  grid-column: 2;
  grid-row: 2;
}

.insc-vous-identite .vous-champ-prenom {
  grid-column: 3;
  grid-row: 2;
}

/*  BLOC VOUS â€“ CONTACT (email / tÃ©lÃ©phone)  */
.insc-vous-contact-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  /* email 2/3 â€“ tÃ©lÃ©phone 1/3 */
  column-gap: 24px;
  row-gap: 4px;
}

.insc-vous-contact-grid .col-email,
.insc-vous-contact-grid .col-tel {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/*  BLOC VOUS â€“ Tranche dâ€™Ã¢ge / Logement  */
.insc-vous-age-logement-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
  row-gap: 4px;
}

.insc-vous-age-logement-grid>div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/*  Ancienne grille gÃ©nÃ©rique 2 colonnes (utilisÃ©e ailleurs)  */
.insc-row-2cols-inputs .col-email {
  flex: 2;
}

.insc-row-2cols-inputs .col-pass {
  flex: 1;
}

/*  Ligne de labels Nom/PrÃ©nom (utilisÃ©e si besoin)  */
.insc-vous-labels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 16px;
  margin-bottom: 4px;
}

.insc-vous-labels label {
  font-size: 14px;
  font-weight: 500;
}

/* =========================================================
   PAGE INSCRIPTION â€“ CHAMPS GÃ‰NÃ‰RIQUES / RADIOS / CHECKBOX
   ========================================================= */

/*  Champs texte dans les cartes dâ€™inscription  */
.insc-card input[type="text"],
.insc-card input[type="email"],
.insc-card input[type="tel"],
.insc-card input[type="password"] {
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, .15);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  background: #fffaf7;
}

.insc-card input:focus {
  border-color: var(--rouge);
  box-shadow: 0 0 0 2px rgba(228, 61, 87, 0.18);
}

/*  Radios / cases Ã  cocher organisÃ©es en ligne  */
.insc-radio-row,
.insc-checkbox-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  margin: 6px 0 10px;
  font-size: 14px;
}

.insc-radio-row label,
.insc-checkbox-row label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

/*  Accent pour le dÃ©but de phrase des camping-caristes  */
.insc-camping-important {
  font-weight: 700;
  font-size: 17px;
  /* 3â€“4 px de plus que le texte normal */
}

/*  NOM en majuscules (affichage correspondant + tableau participants)  */
#vous-nom,
.insc-table-participants input[name$="_nom"] {
  text-transform: uppercase;
}

/* =========================================================
   PAGE INSCRIPTION â€“ LISTE TARIFS & LOGEMENTS
   ========================================================= */

/*  Liste des logements (bloc 3)  */
#logements-liste {
  list-style: none;
  padding-left: 0;
  margin: 8px 0 10px;
  font-size: 14px;
}

#logements-liste li {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 6px;
}

#logements-liste strong {
  display: inline-block;
  min-width: 22px;
}

/*  Liste tarifs (bloc 1bis) â€” A B C D sur une seule ligne  */
#liste-tarifs {
  list-style: none;
  padding-left: 0;
  margin: 8px 0 10px;
  font-size: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
}

#liste-tarifs li {
  display: flex;
  align-items: center;
}

#liste-tarifs strong {
  display: inline-block;
  min-width: 22px;
}

#liste-tarifs .tarif-libelle {
  margin: 0 4px;
}

#liste-tarifs .tarif-montant {
  margin-left: 4px;
  font-weight: 600;
  color: var(--rouge-fonce);
}

/* =========================================================
   PAGE INSCRIPTION â€“ TABLEAU PARTICIPANTS + RÃ‰CAP
   ========================================================= */

/*  Wrapper du tableau pour scroll horizontal Ã©ventuel  */
.insc-table-wrapper {
  overflow-x: auto;
}

/*  Tableau des participants  */
.insc-table-participants {
  width: 100%;
  border-collapse: collapse;
}

.insc-table-participants th,
.insc-table-participants td {
  padding: 6px 8px;
  border-bottom: none;
  /* pas de lignes horizontales */
}

.insc-table-participants th {
  font-weight: 600;
}

/*  Cellules centrÃ©es (cases Ã  cocher, radios, actions)  */
.insc-table-participants th.cell-centre,
.insc-table-participants td.cell-centre {
  text-align: center;
}

/*  Colonnes logements un peu plus larges  */
.insc-table-participants th.col-logement,
.insc-table-participants td.col-logement {
  padding-left: 12px;
  padding-right: 12px;
}

/*  Colonne actions (+ / -)  */
.insc-table-participants th.col-actions,
.insc-table-participants td.col-actions {
  text-align: center;
  white-space: nowrap;
}

/*  Ligne verticale sÃ©paratrice entre tranches dâ€™Ã¢ge et logements  */
.insc-table-participants th.col-logement-separateur,
.insc-table-participants td.col-logement-separateur {
  border-left: 2px solid var(--rouge-fonce);
}


/*  Boutons + / - dans le tableau  */
.btn-ligne-plus,
.btn-ligne-moins {
  border: 1px solid var(--rouge-fonce);
  background: var(--blanc);
  color: var(--rouge-fonce);
  border-radius: 999px;
  width: 26px;
  height: 26px;
  font-weight: bold;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 2px;
  cursor: pointer;
  font-size: 16px;
}

.btn-ligne-plus:hover,
.btn-ligne-moins:hover {
  background: var(--rouge-fonce);
  color: var(--blanc);
}

/*  Placeholder participants (si tableau vide)  */
#participants-placeholder {
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff8e8;
  border: 1px dashed rgba(0, 0, 0, .15);
  font-size: 14px;
}

/*  RÃ©capitulatif des totaux  */
#recap-totaux p {
  margin: 4px 0;
  font-size: 14px;
}

/*  Mode de rÃ¨glement (fieldset)  */
#mode-reglement legend {
  font-weight: 600;
  margin-bottom: 6px;
  font-size: 14px;
  color: var(--rouge-fonce);
}

/*  Zone actions â€“ bouton Enregistrer  */
#inscription-actions {
  text-align: center;
  margin-top: 16px;
}

#inscription-actions .btn-principal {
  min-width: 220px;
}

/* Liste dÃ©taillÃ©e dans le bloc rÃ©capitulatif */
#bloc-recap .recap-liste {
  margin: 8px 0 0 1.5rem;
  padding-left: 1.2rem;
  list-style-type: disc;
  /* puce ronde noire pleine */
}

#bloc-recap .recap-liste li {
  margin-bottom: 4px;
}

.email-copie-ligne label {
  white-space: nowrap;
}

/*  Ã‰DITEUR IMAGES â€“ PARAM_RASSEMBLEMENT  */
.bloc-editeur-rassemblement {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 18px;
}

.editeur-toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 6px 0 4px;
}

.editeur-toolbar button {
  padding: 6px 12px;
  border: 1px solid rgba(0, 0, 0, .25);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
}

.editeur-toolbar button:hover {
  background: #f2f2f2;
}

#editeur-images-container {
  position: relative;
  border: 1px dashed rgba(0, 0, 0, .25);
  background: #fffdf8;

  /* ðŸ”¥ largeur identique au bloc public (rassem-card-body) */
  width: 100%;
  max-width: 100%;

  min-height: 320px;
  max-height: 600px;

  /* ðŸ”¥ uniquement scroll vertical, pas horizontal */
  overflow-y: auto;
  overflow-x: hidden;

  border-radius: 14px;
  margin: 0 auto;
  /* centrÃ© dans le bloc blanc */
}

.editeur-image-item {
  position: absolute;
  cursor: move;
  border: 1px solid transparent;
  border-radius: 6px;
}

.editeur-image-item.selected {
  border-color: var(--rouge);
}

.editeur-resize-handle {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--rouge);
  border-radius: 50%;
  cursor: nwse-resize;
}

.editeur-resize-handle.br {
  right: -6px;
  bottom: -6px;
}

#editeur-layout-json {
  width: 100%;
  min-height: 120px;
  padding: 8px;
  border: 1px solid rgba(0, 0, 0, .20);
  border-radius: 10px;
  background: #fffaf7;
  font-family: "Consolas", "Courier New", monospace;
  font-size: 13px;
}

/* =========================================================
   PAGE PARAM_RASSEMBLEMENT & ACCÃˆS ORGANISATION
   ========================================================= */

/*  Champ mot de passe sur organisation.html  */
#orga-code {
  width: 260px;
  /* largeur augmentÃ©e */
  padding: 10px 14px;
  /* hauteur + marge interne */
  font-size: 18px;
  /* police agrandie */
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, .25);
  background: #fffaf7;
  outline: none;
}

#orga-code:focus {
  border-color: var(--rouge);
  box-shadow: 0 0 0 2px rgba(228, 61, 87, 0.25);
}

/*  Bouton Å“il Ã  cÃ´tÃ© du mot de passe  */
.btn-eye {
  border: 1px solid rgba(0, 0, 0, .3);
  background: #ffffff;
  padding: 8px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 18px;
}

/* =========================================================
   PAGE PARAM_RASSEMBLEMENT & ACCÃˆS ORGANISATION
   ========================================================= */

/* Fond du grand bloc identique aux cartes de rassemblement */
#param-rassem-page .contact-card {
  background: var(--fond-bloc);
  /* beige foncÃ© des cartes rassemblements */
}

#param-rassem-page .contact-card fieldset {
  margin-bottom: 24px;
}

#param-rassem-page .contact-card legend {
  background: #1e1f22;
  /* bandeau noir */
  color: var(--jaune);
  /* texte jaune */
  border-radius: 999px;
  padding: 6px 12px;
  text-align: center;
  font-size: 15px;
}

/*  Titres de section â€“ page paramÃ¨tres rassemblements  */
#param-rassem-page .contact-card fieldset {
  margin-bottom: 24px;
}

#param-rassem-page .contact-card legend {
  background: #1e1f22;
  /* bandeau noir */
  color: var(--jaune);
  /* texte jaune */
  border-radius: 999px;
  padding: 6px 12px;
  text-align: center;
  font-size: 15px;
}


/* =========================================================
   PAGE HISTORIQUE (histo-section...)
   ========================================================= */

.histo-section {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  padding: 24px 28px;
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.histo-section.inverse {
  flex-direction: row-reverse;
}

.histo-texte {
  flex: 1 1 260px;
}

.histo-texte h2 {
  margin-top: 0;
  margin-bottom: 8px;
}

.histo-texte p {
  margin-bottom: 10px;
}

.histo-media {
  flex: 1 1 260px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.histo-figure {
  margin: 0;
}

.histo-figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  background: #fff;
}

.histo-figure figcaption {
  font-size: 0.9rem;
  margin-top: 4px;
  color: #555;
}

/* =========================================================
   PAGE RASSEMBLEMENTS â€“ GRAND ENCADRÃ‰ & VIGNETTES
   ========================================================= */

/*  Ancien encadrÃ© gÃ©nÃ©ral (peut servir)  */
.bloc-rassemblement {
  background: #1e1f22;
  border: none;
  border-radius: 18px;
  padding: 32px;
  margin: 40px auto;
  color: #fff;
  max-width: 1200px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

/*  Titre jaune dans cet encadrÃ©  */
.rasso-header h2 {
  margin: 0;
  font-size: 28px;
  color: #F0DB00;
}

.rasso-sous-titre {
  margin: 4px 0 20px;
  font-style: italic;
  color: #ddd;
}

/*  Deux colonnes dans cet encadrÃ©  */
.rasso-content {
  display: flex;
  gap: 30px;
  margin-top: 10px;
}

.rasso-col {
  flex: 1;
}

/*  Listes de texte  */
.rasso-liste ul {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.rasso-liste li {
  margin-bottom: 4px;
}

/*  Photos verticales / pleine largeur dans cet encadrÃ©  */
.rasso-photos-verticales img,
.rasso-photo-full img {
  width: 100%;
  border-radius: 12px;
  margin-bottom: 12px;
}

/*  Nouveau bloc rassemblement avec titre pleine largeur  */
.rassem-bloc {
  margin: 40px auto;
  padding: 0;
  max-width: 1300px;
}

/*  Titre en pleine largeur  */
.rassem-titre {
  background: #1e1f22;
  /* gris profond */
  color: #fff;
  /* texte par dÃ©faut en blanc */
  border: none;
  border-radius: 14px;
  padding: 20px 30px;
  margin-bottom: 25px;
  text-align: center;
}

.rassem-titre h2 {
  margin: 0;
  font-size: 26px;
  color: var(--jaune);
}

.rassem-sous-titre {
  margin-top: 6px;
  opacity: .8;
}

/*  Contenu en 2 colonnes (texte + photos)  */
.rassem-contenu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

/*  Texte  */
.rassem-texte h3 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 20px;
  color: #1e1f22;
}

.rassem-texte ul {
  padding-left: 20px;
}

/*  Grille de vignettes photos  */
.rassem-photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 14px;
}

.rassem-photos img {
  width: 100%;
  display: block;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .15);
  cursor: pointer;
  object-fit: cover;
  aspect-ratio: 4/3;
}

/* =========================================================
   LIGHTBOX PHOTOS RASSEMBLEMENTS
   ========================================================= */

.lightbox-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
  /* blanc avec transparence */
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 200;
}

.lightbox-overlay.is-open {
  display: flex;
}

.lightbox-inner {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
}

.lightbox-inner img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

/*  Bouton de fermeture (croix)  */
.lightbox-close {
  position: absolute;
  top: -14px;
  right: -14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 32px;
  text-align: center;
  background: var(--rouge-fonce);
  color: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
}

/* Nom du participant sous la photo dans la lightbox */
.participant-lightbox-caption {
  margin-top: 8px;
  text-align: center;
  font-weight: 600;
  color: var(--gris-fonce);
}


/* =========================================================
   RESPONSIVE GLOBAL (max-width:800px)
   - Nav / hero / question-inscriptions
   - Formulaire inscription (cartes, bloc VOUS, etc.)
   ========================================================= */

@media (max-width:800px) {

  /*  NAV + HERO : passage en une seule colonne  */
  .hero-layout {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  /* âœ… Sur mobile, les colonnes deviennent transparentes :
     ce sont directement la pancarte + blocs 0â€“4
     qui deviennent les Ã©lÃ©ments flex sur lesquels on applique order.
  */
  .hero-col {
    display: contents;
  }

  /* Ordre dâ€™affichage des blocs sur mobile :
     1) Pancarte
     2) Bloc 0 â€“ PrÃ©sentation du site
     3) Bloc 1 â€“ 1996-2026
     4) Bloc 2 â€“ Infos pratiques
     5) Bloc 3 â€“ Inscriptions
     6) Bloc 4 â€“ Une question ?
  */
  .hero-pancarte {
    order: 1;
  }

  #acc-bloc0 {
    order: 2;
  }

  #acc-bloc1 {
    order: 3;
  }

  #acc-bloc2 {
    order: 4;
  }

  #acc-bloc3 {
    order: 5;
  }

  #acc-bloc4 {
    order: 6;
  }




  .question-inscriptions {
    grid-template-columns: 1fr;
  }

  /*  Topbar compacte  */
  .topbar-inner {
    padding: 10px 16px;
    align-items: center;
    gap: 10px;
  }

  .logo-texte {
    font-size: 16px;
    line-height: 1.2;
  }

  /*  Bouton hamburger affichÃ© uniquement sur mobile  */
  .menu-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
  }

  /*  Menu cachÃ© par dÃ©faut sur mobile  */
  .main-nav {
    display: none;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
  }

  /*  Quand le JS ajoute .nav-open, on affiche le menu  */
  .main-nav.nav-open {
    display: flex;
  }

  .main-nav a {
    padding: 6px 10px;
    font-size: 15px;
  }

  /*  Cartes dâ€™inscription lÃ©gÃ¨rement plus compactes  */
  .insc-card {
    padding: 18px 14px 22px;
  }

  #insc-titre {
    font-size: 22px;
  }

  /*  Bloc 1 "DÃ©jÃ  inscrit ?" â†’ email puis mot de passe lâ€™un sous lâ€™autre  */
  .insc-login-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  /*  Bloc VOUS â€“ IDENTITÃ‰ : on bascule en colonne pour mobile  */
  .insc-vous-identite {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* un peu dâ€™air entre les lignes */
    margin-bottom: 12px;
  }

  /*  On annule les positions de grille (desktop) pour chaque sous-bloc  */
  .insc-vous-identite .vous-label-nom,
  .insc-vous-identite .vous-label-prenom,
  .insc-vous-identite .vous-civilite,
  .insc-vous-identite .vous-champ-nom,
  .insc-vous-identite .vous-champ-prenom {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /*  CivilitÃ© : radios bien alignÃ©es sur une seule ligne  */
  .insc-vous-identite .vous-civilite .insc-radio-row {
    gap: 18px;
    margin: 4px 0 2px;
  }

  /*  VOUS â€“ Contact : Adresse email puis TÃ©lÃ©phone en dessous  */
  .insc-vous-contact-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  /*  VOUS â€“ Tranche dâ€™Ã¢ge / Logement : 2 lignes empilÃ©es  */
  .insc-vous-age-logement-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  /*  Rassemblements : on empile les 2 colonnes si besoin  */
  .rassem-contenu {
    grid-template-columns: 1fr;
  }

  /* ðŸ“± RASSEMBLEMENTS â€“ Layout mobile simplifiÃ© (stack) */
  #rassemblements .rassem-card-body {
    padding: 12px 10px;
    overflow: visible;
    height: auto !important;
    /* on annule la hauteur imposÃ©e en JS */
  }

  #rassemblements .rassem-layout-image,
  #rassemblements .rassem-layout-participants {
    position: static !important;
    /* plus de position absolue */
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    /* pleine largeur du bloc */
    height: auto !important;
    /* hauteur auto */
  }

  #rassemblements .rassem-layout-image {
    display: block;
    margin: 0 0 10px 0;
    /* petite marge dessous */
  }

  #rassemblements .rassem-layout-participants {
    margin: 0 0 10px 0;
    padding: 4px 6px;
    /* un peu dâ€™air pour le texte */
  }

  /* ðŸŒŸ RÃ©ordonnancement des Ã©lÃ©ments du bloc VOUS (mobile) */

  .insc-vous-identite .vous-civilite {
    order: 1;
  }

  .insc-vous-identite .vous-label-nom {
    order: 2;
  }

  .insc-vous-identite .vous-champ-nom {
    order: 3;
  }

  .insc-vous-identite .vous-label-prenom {
    order: 4;
  }

  .insc-vous-identite .vous-champ-prenom {
    order: 5;
  }

  /*  PARTICIPANTS â€“ vue cartes sur mobile  */
  .insc-table-wrapper {
    overflow-x: visible;
    /* plus besoin de scroll horizontal dans ce mode */
  }

  .insc-table-participants {
    border-collapse: separate;
    border-spacing: 0 10px;
    /* petit espace entre les â€œcartesâ€ */
  }

  .insc-table-participants thead {
    display: none;
    /* on cache lâ€™en-tÃªte sur mobile */
  }

  .insc-table-participants,
  .insc-table-participants tbody,
  .insc-table-participants tr,
  .insc-table-participants td {
    display: block;
    width: 100%;
  }

  .insc-table-participants tr {
    background: #fffaf7;
    border-radius: 16px;
    padding: 10px 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
  }

  .insc-table-participants td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0;
    border-left: none !important;
    /* on supprime la sÃ©paration verticale */
  }

  .insc-table-participants td::before {
    content: attr(data-label);
    font-weight: 600;
    font-size: 13px;
    margin-right: 10px;
    flex: 0 0 55%;
    max-width: 55%;
    color: #555;
  }

  .insc-table-participants td input[type="text"] {
    max-width: 45%;
  }

  .insc-table-participants td.col-actions {
    justify-content: flex-end;
  }

  .insc-table-participants td.col-actions::before {
    content: '';
    /* pas de label texte pour la ligne des boutons */
  }

  /* MOBILE â€” NOM & PRÃ‰NOM : label au-dessus */
  .insc-table-participants td[data-label="Nom"],
  .insc-table-participants td[data-label="PrÃ©nom"] {
    flex-direction: column;
    align-items: flex-start;
  }

  .insc-table-participants td[data-label="Nom"]::before,
  .insc-table-participants td[data-label="PrÃ©nom"]::before {
    flex: none;
    max-width: none;
    margin-bottom: 4px;
  }

  .insc-table-participants td[data-label="Nom"] input,
  .insc-table-participants td[data-label="PrÃ©nom"] input {
    width: 100%;
  }

  /* MOBILE â€” CivilitÃ© affichÃ©e sur une seule ligne */
  .insc-table-participants td.civilite-group {
    flex-direction: row;
    justify-content: flex-start;
    gap: 18px;
  }

  .insc-table-participants td.civilite-group::before {
    margin-right: 12px;
    flex: none;
    max-width: none;
  }

}

/* =========================================================
   PAGE PARAM_INSCRIPTION â€“ FORMULAIRE DE PARAMÃˆTRES
   ========================================================= */

/*  Formulaire de paramÃ¨tres inscription  */
.param-form {
  max-width: 900px;
  margin: 24px auto 0;
}

.param-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.param-grid .full {
  grid-column: 1 / 3;
}

.param-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 4px;
}

.param-form input,
.param-form textarea {
  width: 100%;
  padding: 8px;
  border-radius: 4px;
  border: 1px solid #ccc;
  font-family: inherit;
  font-size: 14px;
  box-sizing: border-box;
}

.param-form textarea {
  min-height: 80px;
  resize: vertical;
}

/*  Type de date limite (stricte / souhaitÃ©e)  */
.type-date-limite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.type-date-limite-options {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 4px;
  font-weight: normal;
}

.type-date-limite label {
  font-weight: normal;
  margin-bottom: 0;
}

/*  Tableaux (logements + tarifs)  */
.tarifs-table,
.logements-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
}

.tarifs-table th,
.tarifs-table td,
.logements-table th,
.logements-table td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}

.tarifs-table th,
.logements-table th {
  background: #f7f7f7;
}

/*  Petits boutons X / +  */
.btn-petit {
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 4px;
  border: none;
  cursor: pointer;
}

.btn-ajout {
  margin-top: 8px;
}

/*  Titres de section â€“ mÃªme style que param_rassemblement  */
#param-inscription .bloc-inscriptions fieldset {
  margin-bottom: 24px;
  border: none;
  padding: 0;
}

#param-inscription .bloc-inscriptions legend {
  background: #1e1f22;
  /* bandeau noir */
  color: var(--jaune);
  /* texte jaune */
  border-radius: 999px;
  padding: 6px 12px;
  text-align: center;
  font-size: 15px;
}


/* Bloc email - param inscription */
.email-balises-info {
  background: #fff8e8;
  border: 1px dashed rgba(0, 0, 0, .15);
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  margin-bottom: 10px;
}

.email-copie-ligne {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}

/* Bloc Â« copie email organisation Â» : checkbox + libellÃ© sur une ligne */
.email-copie-ligne {
  display: flex;
  align-items: center;
  gap: 8px;
  /* petit espace entre la case et le texte */
  margin-top: 8px;
}

.email-copie-ligne input[type="checkbox"] {
  margin: 0;
}

/*  POPUP ORGANISATION â€“ DÃ‰TAIL SAINT-ANDRÃ‰  */
.popup-sta {
  width: 75vw;
  max-width: 1200px;
  max-height: 80vh;
  background: var(--beige);
  /* fond beige comme le reste du site */
  border-radius: 14px;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35);
  padding: 18px 22px 20px;
  overflow-y: auto;
}

/* En-tÃªte */
.popup-sta-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.popup-sta-header h2 {
  font-size: 20px;
  color: var(--rouge-fonce);
}

.popup-sta-close {
  border: none;
  background: transparent;
  font-size: 18px;
  cursor: pointer;
}

/* Sections internes */
.popup-sta-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Titre de bloc */
.popup-sta-section h3 {
  font-size: 16px;
  color: var(--rouge-fonce);
  margin-bottom: 6px;
}

/* RÃ¨glement : lignes compactes */
.ligne-reglement,
.ligne-corresp {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 4px;
}

.champ-reglement,
.champ-corresp {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* LibellÃ© au-dessus du champ (popup relance â€“ donnÃ©es dÃ©mographiques) */
.champ-corresp-vertical {
  flex-direction: column;
  align-items: flex-start;
}

.champ-reglement .label,
.champ-corresp .label {
  font-weight: 600;
}

/* Montants */
.ligne-reglement-montants .champ-reglement {
  min-width: 120px;
}

/* Participants : entÃªte + boutons */
.popup-sta-participants-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.popup-sta-participants-actions {
  display: flex;
  gap: 10px;
}

/* Tableau participants dans la pop-up */
.popup-sta-table-wrapper {
  overflow-x: auto;
}

.popup-sta-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.popup-sta-table th,
.popup-sta-table td {
  border: 1px solid rgba(0, 0, 0, 0.18);
  padding: 4px 6px;
  white-space: nowrap;
}

.popup-sta-table th {
  background: linear-gradient(90deg, var(--rouge-fonce), #8b1633);
  color: var(--blanc);
}

.popup-sta-table td:first-child {
  text-align: center;
}

.orga-stats-table .ligne-total-general td {
  background: var(--beige);
  font-weight: 600;
}

.orga-stats-table .ligne-sa-impaye td {
  font-weight: 700;
  /* gras plus marquÃ© */
}

/*  Popup interne â€“ overlay plein Ã©cran centrÃ©  */
.popup-sta-mini-overlay {
  position: fixed;
  inset: 0;
  /* top/right/bottom/left:0 */
  display: none;
  /* sera mis Ã  flex en JS */
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  /* lÃ©ger voile sombre */
  z-index: 3000;
  /* au-dessus de la grande popup */
}

/*  Contenu de la mini-popup  */
.popup-sta-mini {
  background: #ffffff;
  padding: 16px 20px;
  max-width: 480px;
  width: 90%;
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

/*  Boutons en bas de la mini-popup  */
.popup-sta-mini-actions {
  margin-top: 12px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

/* Tableau horaires mairie (popup relance) */
.popup-sta-horaires-table {
  border-collapse: collapse;
  font-size: 12px;
}

.popup-sta-horaires-table th,
.popup-sta-horaires-table td {
  border: 1px solid rgba(0, 0, 0, 0.18);
  padding: 2px 4px;
}

.popup-sta-horaires-table thead th {
  background: var(--beige);
}

.popup-sta-horaires-table th {
  text-align: center;
  font-weight: 600;
}

.popup-sta-horaires-table input[type="time"] {
  width: 80px;
}

.orga-stats-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Centrage des colonnes numÃ©riques du tableau organisation */
.orga-stats-table td:nth-child(n+3),
.orga-stats-table th:nth-child(n+3) {
  text-align: center;
}

/*  BoÃ®te mail de lâ€™organisation â€“ layout principal  */

/* Header spÃ©cifique de la page BoÃ®te mail : titre + bouton sur une ligne */
.boite-mail-header {
  text-align: left;
}

.boite-mail-header .boite-mail-header-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.boite-mail-header h1 {
  margin-bottom: 0;
  /* on supprime le petit espace sous le h1 */
}

.boite-mail-header #btn-refresh-mails {
  margin-top: 0;
  /* le bouton est alignÃ© verticalement au h1 */
}

/* Petit bandeau de notification "Courrier envoyé" */
.boite-mail-notif {
  margin-top: 10px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #e4f7e4;   /* vert très clair, bien lisible, pas beige */
  color: #145c27;
  font-weight: 600;
  font-size: 14px;
  text-align: center;
}

.boite-mail-title-search {
  display: flex;
  align-items: center;
  gap: 10px;
}

#boite-mail-search {
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.25);
  font-size: 14px;
  min-width: 260px;
  max-width: 360px;
  background: #fffaf7;
}

#boite-mail-search:focus {
  outline: none;
  border-color: var(--rouge);
  box-shadow: 0 0 0 2px rgba(228, 61, 87, 0.18);
}

#boite-mail-page {
  max-width: 2400px;
  width: 95%;
  margin: 24px auto 40px;
}

/*  Grille 3 colonnes type Outlook  */
.boite-mail-layout {
  display: flex;
  gap: 16px;
  align-items: stretch;
  margin-top: 16px;
}

/* Version PC : hauteur fixe â‰ˆ zone visible */
@media (min-width:1101px) {
  .boite-mail-layout {
    height: calc(100vh - 320px);
    /* ðŸ”½ un peu moins haut pour laisser voir le pied de page */
  }

  .boite-mail-col {
    max-height: 100%;
    overflow-y: auto;
    /* scroll colonne par dÃ©fautâ€¦ */
  }

  /* â€¦SAUF la colonne Messages : on laisse le scroll Ã  la liste interne */
  .boite-mail-liste-col {
    overflow-y: visible;
  }

  /* â€¦et la colonne DÃ©tail : scroll uniquement dans le bloc blanc */
  .boite-mail-detail-col {
    overflow-y: visible;
  }

  .boite-mail-detail {
    flex: 1;
    /* prend la hauteur dispo dans la colonne */
    overflow-y: auto;
    /* scroll ici, la toolbar reste fixe au-dessus */
  }
}


.boite-mail-col {
  background: #fffdf4;
  border-radius: 14px;
  padding: 12px 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  min-height: 260px;
}

/* Curseur "main" sur les dossiers */
.boite-mail-dossiers li {
  cursor: pointer;
}

/* Dossier sÃ©lectionnÃ© dans la colonne de gauche */
.boite-mail-dossiers li.actif{
  background-color:#ffe9a6;   /* jaune trÃ¨s lÃ©ger dans ta charte */
  font-weight:600;
  border-radius:999px;
}

/* Onglets de filtre (Tous / Non lus) dans la colonne Messages */
.boite-mail-tabs {
  display: flex;
  gap: 8px;
  margin-top: 4px;
  margin-bottom: 4p
}

.boite-mail-tab {
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  padding: 4px 10px;
  font-size: 13px;
  background: #ffffff;
  cursor: pointer;
}

/* Ligne onglets + mÃ©ta + (Ã©ventuellement) bouton "Vider la corbeille" */
.boite-mail-tabs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 4px;
  margin-bottom: 4px;
}

/* Zone de droite : texte mÃ©ta + bouton corbeille groupÃ©s */
.boite-mail-tabs-right {
  display: flex;
  align-items: center;
  gap: 8px;
}


.boite-mail-tab.actif {
  background: var(--jaune);
  border-color: var(--jaune);
  font-weight: 600;
}

/*  Liste des messages (scroll interne uniquement)  */
.boite-mail-liste {
  margin-top: 8px;
  padding: 6px 4px;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  flex: 1;
  overflow-y: auto;
  /* âœ… scroll dans la liste, pas les onglets */
  overflow-x: hidden;
}

/* Ligne contenant les onglets + le petit texte dâ€™info */
.boite-mail-tabs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 4px;
  margin-bottom: 4px;
}

/* Texte â€œX messages â€“ Y non lusâ€ */
.boite-mail-meta {
  font-size: 12px;
  color: #555;
  white-space: nowrap;
}


/*  DÃ©tail du message (scroll pris en charge par la colonne)  */
.boite-mail-detail {
  margin-top: 8px;
  padding: 10px 8px;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  min-height: 180px;
}


/*  Largeurs relatives : 20% / 35% / 45%  */
.boite-mail-dossiers-col {
  flex: 0 0 20%;
  max-width: 20%;
}

.boite-mail-liste-col {
  flex: 0 0 35%;
  max-width: 35%;
}

.boite-mail-detail-col {
  flex: 1 1 45%;
}



/* Messages non lus en gras dans la liste */
.boite-mail-liste li.boite-mail-message-non-lu {
  font-weight: 700;
}

/* Ligne "Ajouter un dossier" sous la liste des dossiers */
.boite-mail-add-folder {
  margin-top: 10px;
}

.boite-mail-add-folder button {
  width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px dashed rgba(0, 0, 0, 0.25);
  background: #fffdf4;
  font-size: 13px;
  cursor: pointer;
  text-align: left;
}

.boite-mail-add-folder button:hover {
  background: #fff5cc;
}

/* Petit bandeau au-dessus du message (organisateur / dossier / poubelle) */
.boite-mail-toolbar {
  margin-top: 4px;
  margin-bottom: 4px;
  padding: 6px 8px;
  border-radius: 999px;
  background: #fffaf7;
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.boite-mail-toolbar label {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.boite-mail-toolbar select {
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  font-size: 13px;
  background: #ffffff;
}

/* Boutons actions mail : RÃ©pondre / RÃ©pondre Ã  tous / TransfÃ©rer */
.btn-mail-action {
  border: none;
  background: #ffffff;
  border-radius: 999px;
  padding: 4px 8px;
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
}

.btn-mail-action+.btn-mail-action {
  margin-left: 4px;
}

.btn-mail-action:hover {
  background: #fff2c0;
  /* lÃ©ger jaune au survol */
}

/* Bouton poubelle compact */
.btn-mail-supprimer {
  margin-left: auto;
  border: none;
  background: #ffe0e0;
  border-radius: 999px;
  padding: 4px 10px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}

.btn-mail-supprimer:hover {
  background: #ffc5c5;
}


/*  Fallback Ã©cran plus Ã©troit : on empile  */
@media (max-width:1100px) {
  .boite-mail-layout {
    flex-direction: column;
  }

  .boite-mail-dossiers-col,
  .boite-mail-liste-col,
  .boite-mail-detail-col {
    flex: 0 0 auto;
    max-width: 100%;
  }
}


/* =========================================================
   POPUP PARTICIPANT â€“ RECADRAGE PHOTO
   ========================================================= */

.carte-participant-image .cropper-container {
  margin-top: 8px;
  display: none;
  /* affichÃ©e en JS quand une image est chargÃ©e */
}

.carte-participant-image canvas {
  max-width: 100%;
  border-radius: 10px;
  background: #000;
  display: block;
  margin: 0 auto;
}

.cropper-controls {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.cropper-controls label {
  font-size: 13px;
}

.cropper-zoom-range {
  flex: 1;
}

.cropper-btn-apply {
  padding: 6px 12px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  background: var(--rouge);
  color: #fff;
}

.cropper-btn-apply:hover {
  opacity: .9;
}

/*  BLOC RASSEMBLEMENTS â€“ CARTES  */

#rassemblements .rassem-list {
  max-width: 1000px;
  /* ðŸ”¥ plus large â†’ moins de beige de chaque cÃ´tÃ© */
  margin: 40px auto 60px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Largeur fixe unifiÃ©e pour le layout */
.rassem-layout-wrapper {
  width: 100%;
  /* EXACTEMENT la largeur de lâ€™Ã©diteur */
  max-width: 100%;
  margin: 0 auto;
  position: relative;
}

/* Carte complÃ¨te d'un rassemblement */
#rassemblements .rassem-card {
  position: relative;
  border: 3px solid var(--gris-fonce);
  border-radius: 24px;
  padding: 0px 0px 00px;
  background: var(--fond-bloc, #fff8ec);
  margin-bottom: 30px;
}

/* Bandeau titre (ligne principale + secondaire) */
#rassemblements .rassem-card-header {
  display: inline-block;
  min-width: 260px;
  padding: 10px 26px 12px;
  border-radius: 999px;
  background: var(--gris-fonce);
  text-align: center;
  margin: -50px auto 18px;
  /* ðŸ”¥ moins nÃ©gatif â†’ bandeau plus bas */
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}


/* Titre principal */
#rassemblements .rassem-card-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--jaune);
}

/* Sous-titre (ligne secondaire) */
#rassemblements .rassem-card-subtitle {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 400;
  color: #f0f0f0;
}

#rassemblements .rassem-card-body {
  margin: 0px;
  /* ðŸ”¥ plus de marge auto gauche/droite */
  position: relative;
  width: 100%;
  /* ðŸ”¥ prend toute la largeur interne */
  max-width: 1000;
  min-height: 260px;
  border-radius: 18px;
  background: #fffdf8;
  overflow: hidden;
  padding: 0;
}


/* Image issue du layout (clic = lightbox) */
#rassemblements .rassem-layout-image {
  position: absolute;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
  cursor: pointer;
}

/* Bloc texte des participants issu du layout â€“ fond transparent comme demandÃ© */
#rassemblements .rassem-layout-participants {
  position: absolute;
  padding: 0px 10px;
  /* un peu plus d'air */
  font-size: 14px;
  line-height: 1.4;
  /* interligne plus lisible */
  color: #1e1f22;
  text-align: left;
  /* pas de background pour rester transparent */
}

/*  PAGE RASSEMBLEMENTS  */
#rassemblements-page .bloc-inferieur {
  max-width: 1100px;
  /* mÃªme base que les autres pages */
  padding-left: 40px;
  /* vraie marge Ã  gauche */
  padding-right: 40px;
  /* vraie marge Ã  droite */
}


/*  PAGE POPUP PARTICIPANTS  */
#popup-participant-page {
  max-width: 2400px;
  width: 95%;
  margin: 24px auto 40px;
}

/*  PAGE PARTICIPANTS â€“ mÃªme largeur que la popup */
#participants-page {
  max-width: 2400px;
  width: 95%;
  margin: 24px auto 40px;
}

/*  On enlÃ¨ve la contrainte Ã©troite du bloc interne sur cette page */
#participants-page .bloc-inscriptions {
  max-width: 2400px;
}

/* Bouton jaune pour demande de code */
.btn-demande-code-jaune {
  margin-top: 10px;
  padding: 8px 16px;
  font-size: 14px;
  border-radius: 999px;
  cursor: pointer;
  border: none;
  background: var(--jaune);
  color: var(--rouge-fonce);
  font-weight: 600;
  transition: 0.2s;
}

.btn-demande-code-jaune:hover {
  background: #ffd86a;
  transform: translateY(-1px);
}

/* Messages non lus en gras */
.boite-mail-message-non-lu {
  font-weight: 700;
  background: #fff7d6;
  /* lÃ©ger jaune pour rappeler Outlook */
}

.boite-mail-detail-col {
  flex: 1 1 45%;
}

/* Petit bandeau au-dessus de la liste de messages (organisateur / dossier / poubelle) */
.boite-mail-toolbar {
  margin-top: 4px;
  margin-bottom: 4px;
  padding: 6px 8px;
  border-radius: 999px;
  background: #fffaf7;
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.boite-mail-toolbar label {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.boite-mail-toolbar select {
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  font-size: 13px;
  background: #ffffff;
}

/* Bouton poubelle compact */
.btn-mail-supprimer {
  margin-left: auto;
  border: none;
  background: #ffe0e0;
  border-radius: 999px;
  padding: 4px 10px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}

.btn-mail-supprimer:hover {
  background: #ffc5c5;
}
/* Message sÃ©lectionnÃ© dans la liste */
.msg-selected {
    background-color: #cfe8ff !important;   /* bleu clair */
    border-left: 4px solid #2e8bff;
}
.topbar {
  background: linear-gradient(90deg, var(--rouge-fonce), #58113c);
  color: var(--blanc);
  position: sticky;
  top: 0;
  z-index: 50;
}


/* =========================================================
   BOÎTE MAIL – VERSION MOBILE (pile tous les éléments)
   ========================================================= */
@media (max-width:800px) {

  /* Le header se met en colonne */
  .boite-mail-header .boite-mail-header-main {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  /* Le groupe titre + recherche + nouveau message devient vertical */
  .boite-mail-title-search {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 8px;
  }

  /* Le bouton Nouveau message prend toute la largeur */
  #btn-nouveau-message {
    width: 100%;
  }

  /* Le bouton Rafraîchir passe en dessous et prend toute la largeur */
  #btn-refresh-mails {
    width: 100%;
  }

  /* La grille 3 colonnes devient 1 seule colonne */
  .boite-mail-layout {
    flex-direction: column;
    gap: 20px;
  }

  /* Chaque bloc occupe 100 % */
  .boite-mail-col {
    max-width: 100% !important;
    width: 100%;
  }

  .boite-mail-dossiers-col,
  .boite-mail-liste-col,
  .boite-mail-detail-col {
    flex: none !important;
  }
}
