/* QSport — UX pensée pour un public âgé : gros texte, cibles larges, contrastes nets. */

.rers-qsport { max-width: 720px; margin: 0 auto; font-size: 1.15rem; line-height: 1.6; }
.rers-qsport h2 { font-size: 1.6rem; margin-bottom: .5em; }

.rers-groupe { border: 2px solid #ccc; border-radius: 10px; padding: 1em 1.2em; margin: 1.2em 0; }
.rers-groupe legend { font-weight: bold; font-size: 1.2rem; padding: 0 .4em; }

.rers-question { padding: .8em 0; border-bottom: 1px solid #eee; }
.rers-question:last-child { border-bottom: 0; }
.rers-question__texte { margin: 0 0 .5em; }

.rers-choix { display: flex; gap: 1em; flex-wrap: wrap; }
.rers-choix label {
	display: inline-flex; align-items: center; gap: .5em;
	border: 2px solid #bbb; border-radius: 8px;
	padding: .5em 1.2em; cursor: pointer; min-width: 5em;
}
.rers-choix label:hover { border-color: #666; }
.rers-choix input { width: 1.4em; height: 1.4em; }

.rers-btn {
	display: inline-block; font-size: 1.15rem; padding: .7em 1.4em;
	border-radius: 8px; border: 0; cursor: pointer; text-decoration: none;
}
.rers-btn--submit { background: #2a6f97; color: #fff; }
.rers-btn--print { background: #eee; color: #111; border: 2px solid #bbb; }

.rers-notice { padding: 1em 1.2em; border-radius: 8px; margin: 1em 0; font-size: 1.1rem; }
.rers-notice--ok { background: #e6f4ea; border: 2px solid #2a7d4f; }
.rers-notice--warn { background: #fdf0e6; border: 2px solid #d08a2a; }
.rers-notice--err { background: #fdecea; border: 2px solid #b3261e; }

.rers-statut { background: #f6f6f6; border-radius: 8px; padding: .8em 1.2em; margin: 1em 0; }
.rers-ok { color: #2a7d4f; font-weight: bold; }
.rers-expire { color: #c0392b; font-weight: bold; }

.rers-rgpd, .rers-nb { font-size: .95rem; color: #555; }
.rers-msg { padding: 1em; background: #f6f6f6; border-radius: 8px; }

/* Bloc inscription sur la page d'une activité */
.rers-activite { margin-top: 1.5em; font-size: 1.1rem; }
.rers-activite__meta { list-style: none; margin: 0 0 1em; padding: .8em 1.2em; background: #f6f6f6; border-radius: 8px; }
.rers-activite__meta li { margin: .3em 0; }

/* Liste des activités (calendrier collectif) */
.rers-activites__filtre { margin: 1em 0; font-size: 1.05rem; }
.rers-activites__filtre select { font-size: 1.05rem; padding: .3em .5em; }
.rers-activites__outils { display: flex; flex-wrap: wrap; gap: 1em 1.5em; align-items: center; margin: 0 0 1em; font-size: 1.05rem; }
.rers-activites__outils p { margin: 0; }
.rers-activites__recherche input { font-size: 1.05rem; padding: .3em 2em .3em .5em; min-width: 14em; }
.rers-recherche__champ { position: relative; display: inline-block; }
.rers-recherche__champ input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.rers-recherche__clear { position: absolute; right: .35em; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: #777; font-size: 1.4rem; line-height: 1; cursor: pointer; padding: 0 .15em; }
.rers-recherche__clear:hover { color: #222; }
.rers-activites__mesinscriptions label,
.rers-activites__passees label { cursor: pointer; }
.rers-activites__mesinscriptions input,
.rers-activites__passees input { margin-right: .4em; transform: scale(1.3); vertical-align: middle; }
.rers-activites__table { width: 100%; border-collapse: collapse; font-size: 1.05rem; }
.rers-activites__table th { background: #24803E; color: #fff; text-align: left; padding: .6em .8em; }
.rers-activites__table td { padding: .8em; border-bottom: 1px solid #e5e5e5; vertical-align: top; }
.rers-activite-lien { font-weight: bold; }
.rers-cat { display: inline-block; margin-top: .3em; font-size: .85rem; color: #555; background: #eef3f6; border-radius: 6px; padding: .1em .6em; }
.rers-affiche { margin-top: .6em; }
.rers-affiche img { max-width: 220px; height: auto; border-radius: 6px; }
.rers-activites__table tr.rers-passe td { opacity: .6; }
.rers-activites__table tr.rers-inscrit { background: #e6f4ea; }
.rers-badge { display: inline-block; margin-left: .5em; font-size: .8rem; background: #2a7d4f; color: #fff; border-radius: 6px; padding: .1em .6em; vertical-align: middle; }
.rers-badge--attente { background: #b58900; } /* liste d'attente (ambre) */
.rers-badge--proposant { background: #e8730c; } /* proposant (orange) */
.rers-ancre td { padding: 0; border: 0; }

/* Participants d'une activité (§2.13) et bloc organisateur (§2.13/§2.17) */
.rers-participants__titre { font-size: 1.25rem; margin: 1.4em 0 .3em; }
.rers-participants { list-style: none; margin: 0 0 1em; padding: 0; }
.rers-participants li { padding: .35em 0; border-bottom: 1px solid #eee; }
.rers-participants li:last-child { border-bottom: 0; }
.rers-participants--out li { color: #777; text-decoration: line-through; }
.rers-covoit__info { display: inline-block; margin-left: .6em; font-size: .95rem; color: #1d5b7d; background: #eef3f6; border-radius: 6px; padding: .05em .5em; }

.rers-orga { border: 2px solid #2a6f97; border-radius: 10px; padding: 1em 1.2em; margin: 1.5em 0; }
.rers-orga h3 { margin: 0 0 .5em; font-size: 1.25rem; }
.rers-orga h4 { margin: 1.2em 0 .3em; }
.rers-orga__scroll { overflow-x: auto; }
.rers-orga__table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.rers-orga__table th { text-align: left; background: #eef3f6; padding: .5em .6em; }
.rers-orga__table td { padding: .5em .6em; border-bottom: 1px solid #e5e5e5; vertical-align: top; }
.rers-orga__table select { font-size: 1rem; padding: .25em; }
.rers-orga__table a { word-break: break-word; }
/* Coordonnée masquée par la préférence de partage de l'adhérent (§2.1 / §2.13).
   ⚠️ Ne PAS réutiliser .rers-msg ici : c'est un encadré de notice (padding 1em + fond gris),
   il déborde d'une cellule de tableau. Constaté en recette le 2026-09-10. */
.rers-orga__table .rers-nc { color: #6b6b6b; font-style: italic; white-space: nowrap; }

/* Écrans étroits : le tableau à six colonnes ne tient pas. Plutôt qu'un défilement
   horizontal — que personne ne devine — chaque participant devient une fiche empilée,
   avec l'intitulé de colonne repris devant chaque valeur (attribut data-label). */
@media ( max-width: 780px ) {
	.rers-orga__table thead { display: none; }
	.rers-orga__table, .rers-orga__table tbody, .rers-orga__table tr, .rers-orga__table td { display: block; width: 100%; }
	.rers-orga__table tr { border: 1px solid #d7e2e8; border-radius: 8px; margin: 0 0 .8em; padding: .4em .6em; }
	.rers-orga__table td { border: 0; padding: .25em 0; }
	.rers-orga__table td::before {
		content: attr(data-label) " : ";
		font-weight: bold;
		color: #444;
	}
	.rers-orga__table td[data-label="Participant"]::before { content: none; }
	.rers-orga__nom { font-size: 1.1rem; }
}

/* Montant d'un échange payant : style explicite, car certains thèmes (Astra…) neutralisent
   le gras de <strong>. On ne dépend donc pas de la balise. */
.rers-montant {
	display: inline-block;
	font-weight: 700;
	font-size: 1.15em;
	color: #1d5b7d;
	background: #eef3f6;
	border-radius: 6px;
	padding: .05em .5em;
}

/* Série d'échanges dans la popin d'inscription (§2.10) */
.rers-serie { border: 1px solid #ddd; border-radius: 8px; padding: .6em 1em 1em; margin: 0 0 1em; }
.rers-serie legend { font-weight: bold; padding: 0 .4em; }
.rers-serie__choix { display: block; margin: .4em 0; font-weight: normal; cursor: pointer; }
.rers-serie__choix input { transform: scale(1.3); margin-right: .5em; vertical-align: middle; }
.rers-serie__etat { color: #777; font-size: .95rem; }
.rers-serie__alerte { display: block; margin: .1em 0 0 1.9em; color: #b3261e; font-size: .95rem; font-weight: 600; }
/* Avertissement « déjà inscrit(e) le même jour » (§2.12) : plus voyant que --warn, réservé aux
   messages qui doivent arrêter l'œil avant de valider (demande de Richard, 2026-10-01). */
.rers-notice--alerte { display: flex; gap: .6em; align-items: flex-start; background: #fff1e6; border: 3px solid #e65100; color: #5d2600; font-weight: 600; }
.rers-notice__icone { font-size: 1.6em; line-height: 1; color: #e65100; }
.rers-notice--alerte[hidden] { display: none; }
.rers-serie__total { margin: .6em 0 0; font-weight: 700; color: #1d5b7d; }

/* Covoiturage dans la popin d'inscription (§2.8) */
.rers-covoit { border: 1px solid #ddd; border-radius: 8px; padding: .6em 1em 1em; margin: 0 0 1em; }
.rers-covoit legend { font-weight: bold; padding: 0 .4em; }
.rers-covoit__choix { display: block; margin: .4em 0; font-weight: normal; cursor: pointer; }
.rers-covoit__choix input { transform: scale(1.3); margin-right: .5em; vertical-align: middle; }
.rers-covoit input[type="tel"] { width: 100%; font-size: 1.1rem; padding: .4em; box-sizing: border-box; }

/* Popin de commentaire à l'inscription */
.rers-popin[hidden] { display: none; }
.rers-popin { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.rers-popin__overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,.5); }
.rers-popin__box { position: relative; background: #fff; max-width: 480px; width: 90%; padding: 1.4em 1.5em; border-radius: 10px; box-shadow: 0 4px 24px rgba(0,0,0,.3); }
.rers-popin__box h3 { margin: 0 0 .4em; font-size: 1.3rem; }
.rers-popin__box textarea { width: 100%; font-size: 1.1rem; padding: .5em; box-sizing: border-box; }
.rers-popin__actions { display: flex; gap: .8em; justify-content: flex-end; margin-top: 1em; flex-wrap: wrap; }
/*
 * Fenêtre plus haute que l'écran (recette 2026-09-30 : série de nombreuses dates, écran
 * 1920×1080 avec mise à l'échelle) : elle était centrée sans hauteur maximale, le haut et le bas
 * sortaient de la vue — bouton « Valider » compris — sans aucun moyen de les atteindre. Elle est
 * désormais bornée à la hauteur de l'écran et défile ; les deux boutons restent collés en bas,
 * toujours visibles. `dvh` suit la hauteur réelle sur téléphone (barre d'adresse), `vh` en repli.
 */
.rers-popin { padding: 1em 0; box-sizing: border-box; }
.rers-popin__box { max-height: calc(100vh - 2em); max-height: calc(100dvh - 2em); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 0; }
.rers-popin__actions { position: sticky; bottom: 0; background: #fff; padding: .8em 0 1.2em; margin-top: .6em; border-top: 1px solid #eee; }

/* Page d'une activité : afficher l'affiche en entier, sans recadrage en hauteur */
.single-rers_activite .wp-block-post-featured-image,
.single-rers_activite .wp-block-post-featured-image a { aspect-ratio: auto !important; height: auto !important; }
.single-rers_activite .wp-block-post-featured-image img { aspect-ratio: auto !important; height: auto !important; max-width: 100%; object-fit: contain !important; }

/* Connexion */
.rers-connexion { max-width: 420px; margin: 0 auto; font-size: 1.1rem; }
.rers-connexion h2 { font-size: 1.5rem; margin-bottom: .5em; }
.rers-connexion label { display: block; margin: .6em 0 .2em; }
.rers-connexion input[type="text"],
.rers-connexion input[type="password"] { width: 100%; font-size: 1.2rem; padding: .5em; box-sizing: border-box; }
.rers-connexion .button, .rers-connexion #wp-submit { font-size: 1.15rem; padding: .6em 1.4em; margin-top: .6em; cursor: pointer; }
.rers-connexion__oubli { margin-top: 1em; }
.rers-lien-connexion { font-weight: bold; margin-left: auto; } /* pousse à droite dans un conteneur flex (ex. en-tête) */

/* Indicateur de connexion (remplace la barre d'admin masquée) */
/*
 * Bande pleine largeur **dans le flux**, au-dessus de l'en-tête du thème, à toutes les largeurs.
 * En position fixe, elle recouvrait l'en-tête — le menu burger sur téléphone, mais aussi, sur
 * ordinateur, le haut du logo et la zone de droite (recette 2026-10-01, Richard).
 */
.rers-connecte { position: relative; z-index: 99999; background: #2a6f97; color: #fff; font-size: .95rem; padding: .4em 1.2em; text-align: right; }
.rers-connecte a { color: #fff; text-decoration: underline; }
.rers-connecte__nom { margin-right: .6em; font-weight: bold; }

/* Auto-inscription / profil (public âgé : champs larges et lisibles) */
.rers-inscription, .rers-profil { max-width: 560px; margin: 0 auto; font-size: 1.1rem; }
.rers-inscription h2, .rers-profil h2 { font-size: 1.5rem; margin-bottom: .3em; }
.rers-form__row { margin: 0 0 1em; }
.rers-form__row label { display: block; font-weight: bold; margin-bottom: .2em; }
.rers-form__row input[type="text"],
.rers-form__row input[type="email"],
.rers-form__row input[type="tel"],
.rers-form__row input[type="password"],
.rers-form__row input[type="date"],
.rers-form__row select,
.rers-form__row textarea { width: 100%; font-size: 1.15rem; padding: .5em; box-sizing: border-box; }
.rers-form__check label { font-weight: normal; }
.rers-form__check input { transform: scale(1.3); margin-right: .5em; vertical-align: middle; }
.rers-form__section { border: 1px solid #ddd; border-radius: 8px; padding: 1em 1.2em; margin: 0 0 1.5em; }
.rers-form__section legend { font-weight: bold; padding: 0 .4em; }
.rers-form__actions { margin-top: 1.2em; display: flex; gap: 1em; flex-wrap: wrap; align-items: center; }
.rers-req { color: #b3261e; }
.rers-aide { display: block; font-size: .9rem; color: #555; margin-top: .2em; }
.rers-erreurs { background: #fdecea; border: 1px solid #f5c6cb; color: #7a231d; border-radius: 8px; padding: .8em 1em; margin-bottom: 1em; }
.rers-erreurs ul { margin: .3em 0 0 1.2em; }
.rers-msg--ok { background: #e6f4ea; border: 1px solid #b7dfc4; }
.rers-inscription__deja { margin-top: 1.2em; }

/* Pot de miel anti-robot : invisible pour l'utilisateur, présent dans le DOM. */
.rers-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Onglets du profil (masqués sans JS : les panneaux restent alors tous visibles) */
.rers-tabs__nav { display: none; }
.rers-tabs--js .rers-tabs__nav { display: flex; flex-wrap: wrap; gap: .4em; margin-bottom: 1em; border-bottom: 2px solid #ddd; }
.rers-tab-btn { font-size: 1.05rem; padding: .5em 1.1em; border: 1px solid #ccc; border-bottom: none; background: #f2f2f2; color: #222; cursor: pointer; border-radius: 8px 8px 0 0; }
.rers-tab-btn.is-active { background: #2a6f97; color: #fff; border-color: #2a6f97; }
.rers-tab + .rers-tab { margin-top: 1.5em; } /* espace entre panneaux quand tout est visible (sans JS) */

/* Liste de cases à cocher (ex. « Échanges recherchés » par catégorie) */
.rers-checklist { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .4em 1.2em; margin-top: .3em; }
.rers-checklist__item { display: flex; align-items: center; gap: .5em; font-weight: normal; }
.rers-checklist__item input { transform: scale(1.2); }
.rers-connecte__profil { margin-right: .6em; }

/*
 * Téléphone et tablette (sous 921 px, largeur où Astra bascule sur le menu burger) : centré, le
 * nom sur la première ligne, les liens sur la seconde — lisible, et des cibles assez grandes pour
 * le doigt. « Mes informations » est conservé : c'est le seul accès à la fiche (décision
 * 2026-09-04).
 */
@media (max-width: 921px) {
	.rers-connecte { text-align: center; padding: .5em .9em; line-height: 1.6; }
	.rers-connecte__nom { display: block; margin-right: 0; }
	.rers-connecte a { display: inline-block; padding: .15em .4em; }
}

/* Grille de disponibilités récurrentes (jours × créneaux) */
.rers-dispos { overflow-x: auto; }
.rers-dispos__grid { border-collapse: collapse; margin-top: .3em; }
.rers-dispos__grid th, .rers-dispos__grid td { border: 1px solid #ddd; padding: .35em .6em; text-align: center; }
.rers-dispos__grid thead th { background: #eef3f6; font-size: .95rem; }
.rers-dispos__jour { text-align: left; font-weight: bold; background: #f7f9fa; }
.rers-dispos__grid input { transform: scale(1.2); }

/* « Ma situation » de la page Mon compte : lecture seule (recette 2026-09-30, décision 2026-10-01) */
.rers-situation { background: #f4f8fa; border: 1px solid #c9dbe5; border-radius: 8px; padding: .8em 1.1em; margin: 0 0 1.4em; }
.rers-situation__titre { margin: 0 0 .5em; font-size: 1.25rem; }
.rers-situation__ligne { margin: 0 0 .7em; line-height: 1.5; }
.rers-situation__etat { font-weight: 700; }
.rers-situation__etat--ok { color: #1b6e2f; }
.rers-situation__etat--ko { color: #b3261e; }
