/* ==========================================================
   ACL — réservation en ligne, espace membre, messages
   ========================================================== */

/* Messages après action */
.zone-flash { padding-top: 1.5rem; }
.flash { margin: 0; padding: 1rem 1.3rem; border-left: 2px solid var(--rose); background: var(--porcelaine); font-size: .95rem; }
.flash--erreur { border-color: #9b1c2e; color: #7a1626; }
.flash--info { border-color: var(--champagne); }

/* Lien « Mon compte » dans le menu */
.menu__compte a:not(.bouton) { display: inline-flex; align-items: center; gap: .5em; }
.menu__compte a:not(.bouton)::before {
  content: ""; width: .9em; height: .9em; border: 1px solid currentColor; border-radius: 50%;
  box-shadow: inset 0 -.32em 0 -.18em currentColor;
}

/* Étapes de réservation */
.etapes-resa { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; list-style: none; padding: 0; margin: 0 0 2.5rem; counter-reset: e; }
.etapes-resa li { counter-increment: e; font: 500 .72rem/1.4 var(--corps); letter-spacing: .18em; text-transform: uppercase; color: var(--texte-doux); display: flex; align-items: center; gap: .6rem; }
.etapes-resa li::before { content: counter(e); width: 1.8rem; height: 1.8rem; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font: italic 400 .95rem/1 var(--titre); letter-spacing: 0; }
.etapes-resa li[aria-current="step"] { color: var(--encre); }
.etapes-resa li[aria-current="step"]::before { background: var(--encre); color: var(--ivoire); border-color: var(--encre); }
.etapes-resa li.fait { color: var(--rose-texte); }
.etapes-resa a { color: inherit; }

/* Choix de la prestation */
.categorie-resa { margin-bottom: 2.5rem; }
.categorie-resa h2 { font-size: 1.5rem; margin-bottom: 1rem; }
.choix-prestations { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .8rem; }
.choix {
  position: relative; display: flex; flex-direction: column; gap: .3rem; padding: 1.4rem 1.5rem; background: var(--porcelaine); border: 1px solid var(--trait);
  color: var(--encre); text-decoration: none; transition: background var(--transition);
}
.choix:hover, .choix:focus-visible { background: #fff; color: var(--encre); }
.choix::after { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 0; background: var(--laser); transition: width .6s ease; }
.choix:hover::after { width: 100%; }
.choix__nom { font: 400 1.2rem/1.25 var(--titre); }
.choix__infos { font-size: .85rem; color: var(--texte-doux); display: flex; gap: 1rem; }
.choix__infos span + span::before { content: "·"; margin-right: 1rem; color: var(--rose); }

/* Catégories repliables + cases à cocher */
details.categorie-resa { border-bottom: 1px solid var(--trait); margin: 0; padding: .4rem 0; }
details.categorie-resa > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1rem 2.4rem 1rem 0; position: relative; }
details.categorie-resa > summary::-webkit-details-marker { display: none; }
details.categorie-resa > summary::after { content: "+"; position: absolute; right: .3rem; top: .9rem; font: 300 1.6rem/1 var(--corps); color: var(--rose-texte); transition: transform .3s; }
details.categorie-resa[open] > summary::after { transform: rotate(45deg); }
details.categorie-resa > summary h2 { margin: 0; font-size: 1.4rem; }
details.categorie-resa .choix-prestations { margin-bottom: 1.4rem; }
.choix--case { cursor: pointer; padding-left: 3.2rem; }
.choix--case input { position: absolute; left: 1.2rem; top: 1.55rem; width: 1.2rem; height: 1.2rem; accent-color: var(--encre); margin: 0; }
.choix--case:has(input:checked) { background: #fff; border-color: var(--encre); box-shadow: inset 3px 0 0 var(--laser); }
.choix--case:focus-within { outline: 2px solid var(--rose-texte); outline-offset: 2px; }
.barre-selection {
  position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
  margin: 1.5rem 0 2rem; padding: 1rem 1.3rem; background: var(--encre); color: var(--ivoire);
}
.barre-selection__total { margin: 0; font-size: .95rem; }
.barre-selection__total strong { font: 400 1.2rem/1 var(--titre); color: #fff; }
.barre-selection .bouton { background: var(--ivoire); color: var(--encre); border-color: var(--ivoire); }
.selection-resa__liste { list-style: none; padding: 0; margin: .3rem 0 .5rem; }
.selection-resa__liste li { margin: .2rem 0; }
.selection-resa__liste strong { font: 400 1.15rem/1.3 var(--titre); display: inline; }
@media (max-width: 640px) { .barre-selection { bottom: 58px; } }

/* Résumé de la sélection */
.selection-resa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.5rem; background: var(--porcelaine); border: 1px solid var(--trait); margin-bottom: 2rem; }
.selection-resa p { margin: 0; }
.selection-resa strong { font: 400 1.25rem/1.2 var(--titre); color: var(--encre); display: block; }

/* Calendrier + créneaux */
.reserver { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.calendrier { background: var(--porcelaine); border: 1px solid var(--trait); padding: 1.4rem; }
.calendrier__tete { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.calendrier__tete h2 { font-size: 1.5rem; margin: 0; }
.calendrier__nav { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 1px solid var(--trait); color: var(--encre); text-decoration: none; font-size: 1.1rem; }
.calendrier__nav:hover { border-color: var(--encre); }
.calendrier__nav[aria-disabled="true"] { opacity: .3; pointer-events: none; }
.calendrier__grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; list-style: none; padding: 0; margin: 0; }
.calendrier__jsem { text-align: center; font: 500 .68rem/1 var(--corps); letter-spacing: .14em; text-transform: uppercase; color: var(--texte-doux); padding: .4rem 0 .6rem; }
.cal-jour { aspect-ratio: 1; display: grid; place-items: center; font-size: .95rem; border-radius: 50%; color: rgba(29, 24, 27, .3); }
a.cal-jour { color: var(--encre); text-decoration: none; background: #fff; border: 1px solid var(--poudre-fonce); font-weight: 500; transition: background .3s, color .3s; }
a.cal-jour:hover { background: var(--poudre); }
a.cal-jour[aria-current="date"] { background: var(--encre); color: var(--ivoire); border-color: var(--encre); }
.cal-jour--vide { visibility: hidden; }
.legende-cal { display: flex; flex-wrap: wrap; gap: 1.2rem; margin: 1rem 0 0; font-size: .8rem; color: var(--texte-doux); }
.legende-cal span::before { content: ""; display: inline-block; width: .8rem; height: .8rem; border-radius: 50%; margin-right: .4rem; vertical-align: -1px; background: #fff; border: 1px solid var(--poudre-fonce); }
.legende-cal span + span::before { background: transparent; border-color: rgba(29, 24, 27, .2); }

.creneaux-bloc h2 { font-size: 1.5rem; }
.creneaux-bloc h3 { font: 500 .72rem/1 var(--corps); letter-spacing: .22em; text-transform: uppercase; color: var(--rose-texte); margin: 1.4rem 0 .8rem; }
.creneaux { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.4rem, 1fr)); gap: .5rem; list-style: none; padding: 0; margin: 0; }
.creneau {
  display: block; text-align: center; padding: .8rem .3rem; border: 1px solid rgba(29, 24, 27, .25); background: #fff;
  color: var(--encre); text-decoration: none; font: 500 .95rem/1 var(--corps); transition: background .3s, color .3s, border-color .3s;
}
.creneau:hover { border-color: var(--encre); }
.creneau[aria-current="true"] { background: var(--encre); color: var(--ivoire); border-color: var(--encre); }
.vide-resa { padding: 1.5rem; background: var(--porcelaine); border: 1px dashed rgba(29, 24, 27, .2); color: var(--texte-doux); }

/* Récapitulatif et formulaires de compte */
.recap { background: var(--porcelaine); border: 1px solid var(--trait); padding: clamp(1.5rem, 4vw, 2.5rem); max-width: 40rem; }
.recap dl { display: grid; grid-template-columns: 9rem 1fr; gap: .6rem 1rem; margin: 0 0 1.5rem; }
.recap dt { font: 500 .72rem/1.8 var(--corps); letter-spacing: .16em; text-transform: uppercase; color: var(--texte-doux); }
.recap dd { margin: 0; color: var(--encre); }
.choix-connexion { display: flex; flex-wrap: wrap; gap: .8rem; }

.carte-compte { max-width: 34rem; background: var(--porcelaine); border: 1px solid var(--trait); padding: clamp(1.6rem, 4vw, 2.6rem); }
.carte-compte h2 { font-size: 1.5rem; }
.carte-compte .formulaire > label:first-of-type { margin-top: 0; }
.case { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.3rem; font-size: .9rem; }
.case input { width: auto; margin-top: .3rem; }
.formulaire .case label { margin: 0; font-weight: 400; }
.aide { font-size: .82rem; color: var(--texte-doux); margin: .35rem 0 0; }
.liens-compte { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; margin-top: 1.5rem; font-size: .9rem; }
.duo-formulaires { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }

/* Espace membre : rendez-vous */
.compte-entete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 2rem; }
.compte-entete h2 { margin: 0; }
.rdv-liste { display: grid; gap: 1rem; list-style: none; padding: 0; margin: 0 0 3rem; }
.rdv {
  display: grid; grid-template-columns: 6rem 1fr auto; gap: 1.5rem; align-items: center;
  background: var(--porcelaine); border: 1px solid var(--trait); padding: 1.3rem 1.5rem;
}
.rdv__date { text-align: center; border-right: 1px solid var(--trait); padding-right: 1.2rem; }
.rdv__date strong { display: block; font: 400 2.2rem/1 var(--titre); color: var(--encre); }
.rdv__date span { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-doux); }
.rdv__titre { font: 400 1.25rem/1.25 var(--titre); color: var(--encre); margin: 0 0 .3rem; }
.rdv__infos { margin: 0; font-size: .9rem; color: var(--texte-doux); }
.rdv__actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: flex-end; align-items: center; }
.rdv__actions form { margin: 0; }
.rdv--passe { opacity: .75; }
.statut { display: inline-block; padding: .3em .7em; font: 500 .66rem/1 var(--corps); letter-spacing: .12em; text-transform: uppercase; border: 1px solid currentColor; }
.statut--confirmee { color: #2f6b4f; }
.statut--en_attente { color: #8a5a12; }
.statut--annulee, .statut--absente { color: #8b2a3b; }
.statut--honoree { color: var(--texte-doux); }
.bouton--lien { background: none; border: 0; padding: .6em 0; color: var(--rose-texte); font: 500 .72rem/1 var(--corps); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; text-decoration: underline; text-underline-offset: .3em; }
.bouton--lien:hover { color: var(--encre); }
.zone-danger { margin-top: 3rem; padding: 1.6rem; border: 1px solid rgba(155, 28, 46, .3); background: #fff6f6; }
.zone-danger h2 { font-size: 1.3rem; color: #7a1626; }

/* Lien discret vers l'administration (pied de page) */
.pied__gestion { width: 100%; text-align: right; font-size: .68rem; letter-spacing: .08em; margin-top: .4rem !important; }
.pied .pied__gestion a { color: rgba(35, 32, 31, .4); }
.pied .pied__gestion a:hover, .pied .pied__gestion a:focus-visible { color: var(--encre); }

/* Messagerie */
.pastille { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding: 0 .35rem; border-radius: 999px; background: var(--laser); color: var(--encre); font: 700 .7rem/1 var(--corps); letter-spacing: 0; }
.fil-messages { display: flex; flex-direction: column; gap: .7rem; padding: 1.5rem; background: var(--porcelaine); border: 1px solid var(--trait); max-height: 60vh; overflow-y: auto; margin-bottom: 1.5rem; }
.fil-messages__jour { align-self: center; margin: .6rem 0 .2rem; font: 500 .68rem/1 var(--corps); letter-spacing: .16em; text-transform: uppercase; color: var(--texte-doux); }
.bulle { max-width: 82%; padding: .8rem 1rem .5rem; border: 1px solid var(--trait); background: #fff; }
.bulle p { margin: 0; }
.bulle--moi { align-self: flex-end; background: var(--encre); color: var(--ivoire); border-color: var(--encre); }
.bulle--eux { align-self: flex-start; border-left: 3px solid var(--rose); }
.bulle--nouveau { box-shadow: 0 0 0 2px rgba(194, 164, 115, .55); }
.bulle__auteur { font: 500 .66rem/1 var(--corps) !important; letter-spacing: .14em; text-transform: uppercase; opacity: .7; margin-bottom: .4rem !important; }
.bulle__texte { font-size: .95rem; line-height: 1.55; overflow-wrap: anywhere; }
.bulle__heure { font-size: .7rem; opacity: .6; text-align: right; margin-top: .3rem !important; }
.ecrire-message { background: var(--porcelaine); border: 1px solid var(--trait); padding: 1.4rem; }
.ecrire-message label { margin-top: 0; }

@media (max-width: 960px) {
  .reserver, .duo-formulaires { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .barre-mobile--3 { grid-template-columns: 1.2fr 1fr 1fr; }
  .barre-mobile--3 a:first-child { background: var(--laser); color: var(--encre); }
  .barre-mobile--3 a + a { background: transparent; color: var(--encre); }
  .barre-mobile--3 a:last-child { background: var(--encre); color: var(--blanc); }
}
@media (max-width: 640px) {
  .rdv { grid-template-columns: 4.5rem 1fr; }
  .rdv__actions { grid-column: 1 / -1; justify-content: flex-start; }
  .recap dl { grid-template-columns: 1fr; gap: .1rem; }
  .recap dd { margin-bottom: .6rem; }
  .calendrier { padding: 1rem .7rem; }
}

/* ==========================================================
   Espace client — tableau de bord
   ========================================================== */
.ico { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }
.ico--grand { width: 2.6rem; height: 2.6rem; }

.espace-tete {
  position: relative; padding: clamp(2rem, 5vw, 3.2rem) 0 0; background: var(--pierre);
  background-image: radial-gradient(70% 120% at 100% 0%, rgba(194, 164, 115, .22), transparent 60%);
  border-bottom: 1px solid var(--trait-dore);
}
.espace-tete__haut { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.6rem; padding-bottom: clamp(1.6rem, 4vw, 2.4rem); }
.espace-avatar {
  display: grid; place-items: center; flex: none; width: 4.2rem; height: 4.2rem; border-radius: 50%;
  background: var(--encre); color: var(--dore); font: 400 1.35rem/1 var(--titre); letter-spacing: .04em;
  box-shadow: 0 0 0 4px var(--blanc), 0 0 0 5px var(--trait-dore);
}
.espace-tete__texte { flex: 1; min-width: 16rem; }
.espace-tete__surtitre { margin: 0 0 .3rem; font: 700 .68rem/1 var(--corps); letter-spacing: .22em; text-transform: uppercase; color: var(--dore-texte); }
.espace-tete h1 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); margin: 0; }
.espace-tete__sous { margin: .45rem 0 0; color: var(--texte-doux); max-width: 46rem; }
.espace-tete__cta { border-radius: 999px; letter-spacing: .08em; }
.espace-tete__cta::before { display: none; }

.espace-onglets ul { display: flex; gap: .3rem; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.espace-onglets ul::-webkit-scrollbar { display: none; }
.espace-onglets a {
  display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 1.1rem; white-space: nowrap;
  color: var(--texte-doux); text-decoration: none; font: 500 .9rem/1 var(--corps);
  border-bottom: 2px solid transparent; transition: color .25s, border-color .25s, background .25s;
  border-radius: 12px 12px 0 0;
}
.espace-onglets a:hover { color: var(--encre); background: rgba(255, 255, 255, .5); }
.espace-onglets a[aria-current="page"] { color: var(--encre); border-color: var(--dore); background: var(--blanc); }
.espace-onglets a[aria-current="page"] .ico { color: var(--dore-texte); }
.espace-onglets__sortie { margin-left: auto; }

.espace { padding: clamp(2rem, 5vw, 3.2rem) 0 clamp(3.5rem, 7vw, 5.5rem); }
.espace__grille { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: clamp(1.4rem, 3vw, 2.2rem); align-items: start; }
.espace__principal { display: grid; gap: 1.6rem; min-width: 0; }
.espace__cote { display: grid; gap: 1.2rem; position: sticky; top: 6.5rem; }
.espace-tete ~ .section { padding-top: clamp(2rem, 5vw, 3rem); }
.espace-tete ~ .section .carte-compte, .espace-tete ~ .section .fil-messages, .espace-tete ~ .section .ecrire-message, .espace-tete ~ .section .zone-danger { border-radius: 18px; }
.espace-tete ~ .section .bulle { border-radius: 16px; }

/* Carte du prochain rendez-vous */
.prochain-rdv {
  display: grid; grid-template-columns: 9.5rem 1fr; border-radius: 22px; overflow: hidden; background: var(--blanc);
  border: 1px solid var(--trait); box-shadow: 0 30px 60px -40px rgba(60, 45, 30, .45);
}
.prochain-rdv__date {
  display: grid; align-content: center; justify-items: center; gap: .3rem; padding: 1.5rem 1rem; text-align: center;
  background: var(--encre); color: rgba(255, 255, 255, .7);
  background-image: radial-gradient(120% 70% at 50% 0%, rgba(194, 164, 115, .35), transparent 70%);
}
.prochain-rdv__date span { font: 500 .72rem/1 var(--corps); letter-spacing: .18em; text-transform: uppercase; }
.prochain-rdv__date strong { font: 400 4rem/1 var(--titre); color: #fff; }
.prochain-rdv__date span:last-child { color: var(--dore); }
.prochain-rdv__corps { padding: clamp(1.3rem, 3vw, 2rem); min-width: 0; }
.prochain-rdv__surtitre { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0 0 .6rem; font: 700 .68rem/1 var(--corps); letter-spacing: .2em; text-transform: uppercase; color: var(--dore-texte); }
.prochain-rdv__delai { letter-spacing: .02em; text-transform: none; font-size: .78rem; color: var(--encre); background: var(--pierre); padding: .3rem .7rem; border-radius: 999px; }
.prochain-rdv h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin: 0 0 1rem; }
.prochain-rdv__infos { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .35rem; font-size: .95rem; }
.prochain-rdv__infos li { display: flex; align-items: center; gap: .6rem; }
.prochain-rdv__infos .ico { color: var(--dore-texte); }
.prochain-rdv__ok, .prochain-rdv__attente { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.2rem; padding: .5rem .9rem; border-radius: 12px; font-size: .88rem; }
.prochain-rdv__ok { background: #e5f3ec; color: #24603f; }
.prochain-rdv__attente { background: #fcf1dc; color: #7a5210; }
.prochain-rdv__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.prochain-rdv__actions form { margin: 0; }
.prochain-rdv--vide { grid-template-columns: auto 1fr; gap: 1.4rem; align-items: center; padding: clamp(1.4rem, 3vw, 2.2rem); background: var(--craie); border-style: dashed; box-shadow: none; }
.prochain-rdv--vide .ico { color: var(--dore); }
.prochain-rdv--vide h2 { margin-bottom: .4rem; }
.prochain-rdv--vide .bouton { border-radius: 999px; }
.prochain-rdv--vide .bouton::before { display: none; }

/* Petits boutons arrondis de l'espace */
.bouton-espace {
  display: inline-flex; align-items: center; gap: .45rem; padding: .62rem 1rem; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(35, 32, 31, .14); background: var(--blanc); color: var(--encre); text-decoration: none;
  font: 500 .84rem/1 var(--corps); transition: background .25s, border-color .25s, color .25s, transform .2s;
}
.bouton-espace:hover { border-color: var(--dore); color: var(--encre); background: var(--craie); }
.bouton-espace:active { transform: scale(.97); }
.bouton-espace--plein { background: var(--encre); border-color: var(--encre); color: #fff; }
.bouton-espace--plein:hover { background: #3a3532; border-color: #3a3532; color: #fff; }
.bouton-espace--danger { color: #8b2a3b; border-color: rgba(139, 42, 59, .22); }
.bouton-espace--danger:hover { background: #f8e5e9; border-color: rgba(139, 42, 59, .4); color: #8b2a3b; }

/* Listes de rendez-vous */
.bloc-espace { background: var(--blanc); border: 1px solid var(--trait); border-radius: 20px; padding: clamp(1.1rem, 2.6vw, 1.5rem); }
.bloc-espace__titre { display: flex; align-items: center; gap: .55rem; margin: 0 0 1rem; font: 700 1rem/1.3 var(--corps); color: var(--encre); }
.bloc-espace__titre .ico { color: var(--dore-texte); }
.compteur-espace { display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .45rem; border-radius: 999px; background: var(--pierre); font-size: .76rem; color: var(--texte); }
.bloc-espace--repli > summary { list-style: none; cursor: pointer; position: relative; }
.bloc-espace--repli > summary::-webkit-details-marker { display: none; }
.bloc-espace--repli > summary .bloc-espace__titre { margin: 0; }
.bloc-espace--repli > summary::after { content: ""; position: absolute; right: .3rem; top: 50%; width: .55rem; height: .55rem; border-right: 2px solid var(--texte-doux); border-bottom: 2px solid var(--texte-doux); transform: translateY(-70%) rotate(45deg); transition: transform .3s; }
.bloc-espace--repli[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
.bloc-espace--repli[open] > summary { margin-bottom: 1rem; }
.liste-rdv { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.ligne-rdv { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .8rem; border-radius: 14px; background: var(--craie); border: 1px solid var(--trait); transition: background .25s; }
.ligne-rdv:hover { background: var(--pierre); }
.ligne-rdv__date { display: grid; justify-items: center; width: 3.9rem; margin: 0; padding: .45rem 0; border-radius: 12px; background: var(--blanc); border: 1px solid var(--pierre-fonce); line-height: 1.1; }
.ligne-rdv__date span { font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: var(--texte-doux); }
.ligne-rdv__date strong { font: 400 1.5rem/1.1 var(--titre); color: var(--encre); }
.ligne-rdv__infos { min-width: 0; }
.ligne-rdv__infos h3 { font: 500 1rem/1.35 var(--corps); color: var(--encre); margin: 0 0 .2rem; }
.ligne-rdv__infos p { margin: 0; font-size: .86rem; color: var(--texte-doux); }
.ligne-rdv__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; justify-content: flex-end; }
.ligne-rdv__actions form { margin: 0; }
.ligne-rdv--passe { opacity: .72; }
.ligne-rdv .statut { border-radius: 999px; border: 0; padding: .3em .65em; background: var(--blanc); }

/* Colonne latérale */
.stats-espace { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: 0; }
.stats-espace p { margin: 0; padding: 1rem; border-radius: 16px; background: var(--blanc); border: 1px solid var(--trait); display: grid; gap: .2rem; }
.stats-espace p:last-child:nth-child(odd) { grid-column: 1 / -1; }
.stats-espace strong { font: 400 2.1rem/1 var(--titre); color: var(--encre); }
.stats-espace .stats-espace__mot { font-size: 1.25rem; line-height: 1.2; }
.stats-espace span { font-size: .78rem; color: var(--texte-doux); }
.raccourcis { display: grid; background: var(--blanc); border: 1px solid var(--trait); border-radius: 18px; overflow: hidden; }
.raccourcis a { display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; color: var(--texte); text-decoration: none; transition: background .25s; }
.raccourcis a + a { border-top: 1px solid var(--trait); }
.raccourcis a:hover { background: var(--craie); color: var(--texte); }
.raccourcis a > .ico { color: var(--texte-doux); transition: transform .25s; }
.raccourcis a:hover > .ico { transform: translateX(3px); color: var(--dore-texte); }
.raccourcis__ico { display: grid; place-items: center; flex: none; width: 2.4rem; height: 2.4rem; border-radius: 12px; background: var(--pierre); color: var(--dore-texte); }
.raccourcis__txt { flex: 1; display: grid; line-height: 1.3; min-width: 0; }
.raccourcis__txt strong { font-weight: 500; color: var(--encre); font-size: .95rem; display: flex; align-items: center; gap: .4rem; }
.raccourcis__txt > span { font-size: .8rem; color: var(--texte-doux); }
.cabinet-espace { padding: 1.2rem 1.25rem; border-radius: 18px; background: var(--encre); color: rgba(255, 255, 255, .78); font-size: .9rem; }
.cabinet-espace p { margin: 0 0 .6rem; display: flex; gap: .6rem; align-items: flex-start; }
.cabinet-espace .ico { color: var(--dore); margin-top: .2em; }
.cabinet-espace a { color: #fff; }
.cabinet-espace__titre { font: 400 1.2rem/1.2 var(--titre) !important; color: #fff; margin-bottom: .9rem !important; }
.cabinet-espace__note { display: block !important; font-size: .8rem; color: rgba(255, 255, 255, .6); margin: .9rem 0 0 !important; padding-top: .8rem; border-top: 1px solid rgba(194, 164, 115, .25); }

@media (max-width: 960px) {
  .espace__grille { grid-template-columns: 1fr; }
  .espace__cote { position: static; }
  .stats-espace { grid-template-columns: repeat(3, 1fr); }
  .stats-espace p:last-child:nth-child(odd) { grid-column: auto; }
}
@media (max-width: 640px) {
  .espace-avatar { width: 3.2rem; height: 3.2rem; font-size: 1.05rem; }
  .espace-tete__cta { width: 100%; }
  .espace-onglets ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .espace-onglets__sortie { margin-left: 0; }
  .espace-onglets a { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: .7rem .2rem; white-space: normal; text-align: center; font-size: .7rem; line-height: 1.2; }
  .espace-onglets a .ico { width: 1.3rem; height: 1.3rem; }
  .espace-onglets .pastille { position: absolute; top: .3rem; left: calc(50% + .4rem); }
  .prochain-rdv { grid-template-columns: 1fr; }
  .prochain-rdv__date { grid-auto-flow: column; justify-content: start; align-items: baseline; gap: .8rem; padding: 1rem 1.3rem; }
  .prochain-rdv__date strong { font-size: 2.4rem; }
  .prochain-rdv--vide { grid-template-columns: 1fr; }
  .ligne-rdv { grid-template-columns: auto 1fr; }
  .ligne-rdv__actions { grid-column: 1 / -1; justify-content: flex-start; }
  .stats-espace { grid-template-columns: 1fr 1fr; }
  .stats-espace p:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
