/* Ajustements propres a l'application, en complement de la maquette Aurora.
   Regroupes ici pour que aurora.css reste identique a la maquette validee. */

body{background:var(--page);color:var(--ink);margin:0}
a{text-decoration:none;color:inherit}
.app{min-height:100vh}
.main{max-width:1180px}

/* messages */
.alert.success{background:#E4F7EC;color:#18794E}
.alert.error{background:#FDECEC;color:#B4232C}

/* formulaires */
.champ{margin-bottom:14px}
.champ label{display:block;font-size:12px;font-weight:700;color:#6C7186;margin-bottom:6px}
.champ input[type=text],.champ input[type=email],.champ input[type=password],.champ input[type=url],.champ input[type=tel],.champ input[type=date],
.champ input[type=number],.champ select,.champ textarea{
  width:100%;padding:11px 14px;border:1.5px solid #E4E5F0;border-radius:12px;font-size:14px;background:#fff}
.champ input:focus,.champ select:focus{outline:2px solid var(--v1);border-color:var(--v1)}
.champ .aide{font-size:11.5px;color:var(--soft);margin-top:5px}
.champ .erreur{font-size:12px;color:#B4232C;margin-top:5px;font-weight:600}
.champ.case{display:flex;align-items:center;gap:9px}
.champ.case label{margin:0}
.champ.case input{width:auto}
.deux-colonnes{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.actions{display:flex;gap:10px;align-items:center;margin-top:18px}
/* Barre de filtres du dépouillement (lot 9, étape 4, correctif de recette
   du 23/08) : huit contrôles ne tiennent pas sur une ligne, la barre passe
   à la ligne au lieu de déborder de la carte. */
.actions.filtres{flex-wrap:wrap;row-gap:10px}
.actions.filtres .lmin-240{flex:1 1 240px;min-width:0}

/* tableau des associations : le nom est le lien (lot 14b) */
.lien-ligne{color:inherit;text-decoration:none}
.lien-ligne:hover b{color:var(--v1);text-decoration:underline}

/* tableau des comptes */
.actions-compte .row{gap:18px;align-items:center}
.actions-compte .row form{flex:none}
.actions-compte .row:last-child{border-bottom:0}
.tbl .actions-ligne{display:flex;gap:6px;justify-content:flex-end}
.tbl .actions-ligne button{font-size:11.5px;font-weight:600;color:var(--v1);
  border:1.5px solid #E0DEF8;border-radius:999px;padding:5px 11px;background:#fff}
.tbl .actions-ligne button.danger{color:#B4232C;border-color:#F3D2D2}
.badge{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:#EDEBFD;color:var(--v1)}
.badge.gris{background:#F1F1F6;color:var(--soft)}
.badge.vert{background:#E4F7EC;color:#18794E}
.badge.rouge{background:#FDECEC;color:#B4232C}

/* pages de securite (code, QR) */
.encart{max-width:520px;margin:40px auto}
.encart .qr{display:block;margin:14px auto;width:190px;height:190px;border-radius:12px}
.encart .secret{font-family:'IBM Plex Mono',monospace;font-size:12.5px;background:#F6F5FE;
  padding:9px 12px;border-radius:10px;text-align:center;letter-spacing:.08em;word-break:break-all;user-select:all}
.encart .otp-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}
.encart .otp-actions .btn{flex:1 1 160px;justify-content:center}

/* page chantier */
.chantier{text-align:center;padding:38px 22px}
.chantier .ic{font-size:30px}
.chantier h3{font-size:18px;font-weight:800;margin:10px 0 6px}
.chantier p{font-size:13.5px;color:var(--soft);max-width:520px;margin:0 auto}
.chantier .lot{display:inline-block;margin-top:14px;font-size:11px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--v1);background:#EDEBFD;
  padding:6px 13px;border-radius:999px}

/* --- lot 1 : fiche association, reprises des styles internes de la maquette --- */
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
.kv label{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin-bottom:4px}
.kv .v{font-size:13.5px;padding:9px 12px;background:#F7F7FC;border-radius:10px;border:1.5px solid transparent}
.kv .v.ed{background:#fff;border-color:#E4E5F0}
.logobox{width:84px;height:84px;border-radius:20px;background:linear-gradient(140deg,var(--v1),var(--v3));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;flex:none}
.pieces{display:grid;gap:8px}
.piece{display:flex;gap:10px;align-items:center;padding:10px 13px;border-radius:12px;background:#F7F7FC;font-size:12.5px}
.piece.warn{background:#FFF4E5}
.piece .a{margin-left:auto;font-weight:700;color:var(--v1);font-size:12px;white-space:nowrap}
.hero .btns{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}
.hero .cta.sm{padding:10px 16px;font-size:13px}
.ro{display:inline-flex;align-items:center;gap:7px;background:#EEF0F8;color:#5C6076;padding:6px 13px;border-radius:999px;font-size:12px;font-weight:700}
@media(max-width:920px){.kv{grid-template-columns:1fr}}

/* --- lot 2 : preparation du courrier d'appel --- */
.destinataires{display:grid;gap:6px}
.destinataire{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:10px;background:#F7F7FC;font-size:13px;cursor:pointer}
.destinataire input{width:auto}
/* Lot 14c : la relecture obligatoire ne se fait plus dans un cadre de 420 px ;
   le document prend la hauteur restante sous l'en-tête. */
.doc{background:#fff;border-radius:14px;border:1px solid var(--line);padding:18px 20px;line-height:1.6;height:calc(100vh - 280px);min-height:480px;overflow:auto}
@media(max-width:920px){.doc{height:auto;max-height:none}}
textarea{width:100%;padding:12px 14px;border:1.5px solid #E4E5F0;border-radius:12px;font-size:13.5px;font-family:inherit;line-height:1.55}
textarea:focus{outline:2px solid var(--v1);border-color:var(--v1)}

/* --- lot 5 : selection en seance --- */
.opts{display:flex;gap:5px;flex-wrap:wrap}
.opts button{min-width:44px;padding:7px 0;border-radius:999px;border:1.5px solid #E4E5F0;background:#fff;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12.5px}
.opts button.on{background:linear-gradient(90deg,var(--v1),var(--v2));border-color:transparent;color:#fff}
.opts button:disabled{opacity:.45;cursor:not-allowed}
.opts .lbl{font-size:11px;font-weight:700;color:var(--soft);align-self:center;text-transform:uppercase;letter-spacing:.05em;margin-right:3px}
.sej{background:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 4px 20px rgba(23,26,43,.06);margin-bottom:12px}
.sej-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.sej-h h3{font-size:16px;font-weight:800}
.sej-h .m{font-size:12.5px;color:var(--soft)}
.sej-h .tags{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.ladder{display:flex;gap:9px;align-items:flex-end;margin:14px 0 12px}
.rung{flex:1;text-align:center}
.rung .b{background:var(--line);border-radius:8px 8px 3px 3px;margin-bottom:5px;min-height:8px}
.rung .p{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600}
.rung .l{font-size:10px;color:var(--soft);font-weight:700;letter-spacing:.04em}
.selrow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding-top:11px;border-top:1px solid var(--line);margin-top:4px}
.selrow+.selrow{border-top:1px dashed var(--line)}
.pill{display:inline-flex;gap:6px;background:#fff;border-radius:999px;padding:4px;box-shadow:0 2px 8px rgba(23,26,43,.07);flex-wrap:wrap}
.pill button,.pill a{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:999px;font-weight:700;font-size:12.5px;color:var(--soft);text-decoration:none;cursor:pointer}
.pill button.on,.pill a.on{background:linear-gradient(90deg,var(--v1),var(--v2));color:#fff}
.pill a:focus-visible{outline:2px solid var(--v1);outline-offset:2px}

/* --- attente au clic (lot 18) --------------------------------------------
   Un lien ou bouton portant data-attente passe en état chargement dès le
   clic : opacité réduite, curseur d'attente, un petit anneau qui tourne à la
   place de l'icône, et le second clic est neutralisé. Une fine barre en haut
   de page défile jusqu'à l'arrivée de la page suivante (indicateur d'attente
   indéterminé : elle ne connaît pas la durée). */
.attente{opacity:.6;cursor:progress;pointer-events:none}
.attente-anneau{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:attente-tour .7s linear infinite;vertical-align:-1px}
.barre-attente{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;overflow:hidden;background:rgba(91,75,225,.15);pointer-events:none}
.barre-attente::before{content:'';position:absolute;top:0;bottom:0;left:-40%;width:40%;background:linear-gradient(90deg,var(--v1),var(--v3));border-radius:999px;animation:attente-glisse 1.1s ease-in-out infinite}
@keyframes attente-tour{to{transform:rotate(360deg)}}
@keyframes attente-glisse{0%{left:-40%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){
  .attente-anneau{animation:none;border-right-color:currentColor;opacity:.5}
  .barre-attente::before{animation:none;left:0;width:100%;opacity:.6}
}
.tabs2{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabs2 button{padding:8px 14px;border-radius:999px;background:#fff;font-weight:700;font-size:12.5px;color:var(--soft);box-shadow:0 2px 8px rgba(23,26,43,.06)}
.tabs2 button.on{background:linear-gradient(90deg,var(--v1),var(--v2));color:#fff}

/* --- synthese du sejour, lue avant la fiche complete --- */
.synthese{margin-top:10px;background:#F7F7FC;border-radius:14px;padding:11px 14px}
.synthese>summary{cursor:pointer;font-weight:700;font-size:12.5px;color:var(--v1);list-style:none}
.synthese>summary::-webkit-details-marker{display:none}
.synthese>summary::before{content:'▸ ';font-weight:800}
.synthese[open]>summary::before{content:'▾ '}
.synthese .corps{margin-top:10px;font-size:13px;line-height:1.62;white-space:pre-wrap}
.synthese .pied{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);display:flex;
  align-items:center;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--soft)}
.synthese .pied .btn{margin-left:auto}

/* --- pastilles thematiques (lot 8o) ---
   Principale en violet, secondaire en vert : la commission repere la famille
   du sejour avant d'en lire le detail. */
.themes{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 0}
.theme{font-size:11px;font-weight:700;padding:4px 11px;border-radius:999px;
  display:inline-flex;align-items:center;gap:5px;line-height:1.25}
.theme.p{background:#EDEBFD;color:var(--v1)}
.theme.s{background:#E4F7EC;color:#18794E}
.theme .r{font-size:9.5px;font-weight:800;opacity:.65;text-transform:uppercase;letter-spacing:.05em}

/* --- tarifs de la carte de depouillement (lot 8o bis) ---
   Une ligne par hub, les quatre paliers lisibles d'un coup d'oeil. Les
   barres de l'echelle precedente ne disaient rien : a cette echelle de prix,
   elles avaient toutes la meme hauteur. */
.tarifs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}
.tarifs .hub{font-size:12px;font-weight:700;color:var(--soft);min-width:132px}
.tarifs .pal{display:inline-flex;align-items:baseline;gap:6px;background:#F7F7FC;
  border-radius:10px;padding:5px 11px}
.tarifs .pal .n{font-size:10px;font-weight:800;color:var(--soft);letter-spacing:.04em}
.tarifs .pal .e{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600}
.tarifs .pal.vide{background:transparent;border:1px dashed var(--line)}
.tarifs .pal.vide .e{color:var(--soft);font-weight:500}

/* --- carte de depouillement : mention des autres tranches et activites --- */
.aussi{margin-top:8px;font-size:12px;font-weight:700;color:var(--v1)}
.activites{margin-top:6px;font-size:12.5px;color:var(--ink);line-height:1.5}
.opts button.muet{background:repeating-linear-gradient(135deg,#FAFAFD,#FAFAFD 4px,#F1F1F8 4px,#F1F1F8 8px);
  color:#B9BCCB;border-color:#EDEDF7;opacity:1}

/* --- logo de l'association sur la carte de depouillement (lot 8p) ---
   Meme gabarit que la pastille d'initiales, qui reste le repli quand
   l'association n'a pas depose de logo. */
.chip.logo{width:48px;height:48px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:3px}

/* --- capacites et grilles par session (lot 8v) --- */
.sessions{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.session{background:#F7F7FC;border-radius:14px;padding:13px 15px}
.session .k{margin-bottom:10px}
@media(max-width:920px){.sessions{grid-template-columns:1fr}}
.sessions-capacite{margin-top:8px;font-size:12px;font-weight:700;color:#E07B2C;
  background:#FFF4E5;border-radius:8px;padding:5px 10px;display:inline-block}

/* --- nombre exceptionnel de places a la selection (lot 8w) --- */
.opts button.autre{border-style:dashed;color:var(--v1);padding:7px 14px;min-width:0}
.champ-autre{display:inline-flex;align-items:center;gap:6px;background:#F7F7FC;border-radius:12px;padding:4px 6px 4px 10px}
.champ-autre[hidden]{display:none}
.champ-autre input{width:70px;padding:6px 8px;border:1.5px solid #E4E5F0;border-radius:9px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;text-align:center}
.champ-autre .ok{background:linear-gradient(90deg,var(--v1),var(--v2));color:#fff;border:none;border-radius:9px;padding:7px 12px;font-weight:700;font-size:12px;cursor:pointer}
.pal-excep{background:linear-gradient(90deg,var(--v1),var(--v2));color:#fff;border-radius:999px;padding:7px 13px;font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;gap:6px}
.tag-excep{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:#FFF0E6;color:#E07B2C;padding:3px 7px;border-radius:999px}

/* --- refonte « reperes chiffres » des fiches (lot 8x) --- */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:2px 0 14px}
.chiffre{background:#F7F7FC;border-radius:14px;padding:12px 14px;min-width:0}
.chiffre .n{font-size:21px;font-weight:800;font-family:'IBM Plex Mono',monospace;line-height:1.15}
.chiffre .l{font-size:10.5px;color:var(--soft);font-weight:700;margin-top:3px;letter-spacing:.03em}
.ligneinfo{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.ligneinfo:last-of-type{border-bottom:none}
.ligneinfo .lab{color:var(--soft);font-size:12.5px;min-width:150px;flex:none;padding-top:1px}
.ligneinfo .val{font-weight:600;min-width:0}
.prose{font-size:14px;line-height:1.66;color:#2B2F45;margin-top:4px}
/* Étiquettes d'activité (lot 14c, arbitrage du 29/08) : serrées, gris neutre,
   texte encre. La couleur ne porte aucun sens : les activités sont du texte,
   pas un statut. Même style sur la carte de dépouillement et la fiche. */
.etiquettes{display:flex;flex-wrap:wrap;gap:4px 5px;margin-top:2px}
.etiquette{display:inline-flex;align-items:center;background:#F1F1F6;color:var(--ink);border-radius:8px;padding:3px 9px;font-size:11.5px;font-weight:600;line-height:1.35}
@media(max-width:920px){.chiffres{grid-template-columns:1fr 1fr}.ligneinfo{flex-direction:column;gap:2px}}

/* --- anti-debordement des colonnes (lot 8x bis) ---
   Un enfant de grille a par defaut min-width:auto : un contenu insécable
   (nom de fichier a tirets bas, bande de photos) pousse alors la colonne
   au-dela de sa largeur et deborde de la carte. min-width:0 retablit la
   regle : c'est la colonne qui commande, le contenu se plie. */
.grid>*{min-width:0}

/* --- repartition du budget : la colonne des libelles etait trop courte ---
   « Alimentation » debordait sous la barre (retour du 21/08). Aurora fixait
   52px, taille pensee pour les tranches d'age de la couverture du besoin. */
.mini{grid-template-columns:88px 1fr 54px}

/* ==== F8 — classes remplaçant les derniers styles en ligne ==== */
.mt-5{margin-top:5px!important}.mt-26{margin-top:26px!important}.aide-serree{margin:-6px 0 14px!important}
.etroit-560{max-width:560px}.etroit-640{max-width:640px}.etroit-760{max-width:760px}.etroit-820{max-width:820px}.etroit-860{max-width:860px}.centre{margin-left:auto;margin-right:auto}
.lmin-190{min-width:190px}.lmin-220{min-width:220px}.lmin-240{min-width:240px}.min0{min-width:0}
.l-90{width:90px}.l-110{width:110px}.l-120{width:120px}.l-150{width:150px}.l-160{width:160px}.l-170{width:170px}.l-280{width:280px}
.col-4{width:4.5%}.col-6{width:6%}.col-7{width:7%}.col-9{width:9%}.col-10{width:10%}.col-12{width:12%}.col-14{width:14%}.col-34{width:34%}
.cols-3{grid-template-columns:repeat(3,1fr)}
.f1{flex:1}.f0{flex:none}.contenus{display:contents}.bloc{display:block}
.violet{color:var(--v1)}.violet-doux{color:#6B5CB8}.rouge{color:#B4232C}.rouge-sombre{color:#A32D2D}.orange{color:#E07B2C}.ambre-texte{color:#B26A00}.doux{color:var(--soft)}
.fw-400{font-weight:400}.fw-500{font-weight:500}.fs-12{font-size:12px}.fs-13{font-size:13px}.fs-15{font-size:15px}
.centre-h{justify-content:center}.centre-v{align-items:center;gap:10px}.haut{align-items:flex-start}.ligne-haut{display:flex;align-items:flex-start;gap:12px}.ligne-centre{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gap-16{gap:16px}
.k-droite{float:right;text-transform:none;letter-spacing:0}.fw-600{font-weight:600}
.lien-fort{font-weight:700;color:var(--v1)}.lien-discret{color:var(--soft);text-decoration:underline;font-size:12.5px}
.py-8{padding:8px 0}.pl-18{padding-left:18px}.ml-6{margin-left:6px}.estompe{opacity:.55}.nu{background:none;padding:0}
.brut{white-space:pre-wrap;font-family:'IBM Plex Mono',monospace;font-size:12px}
.erreur-champ{color:#B4232C;font-size:12px;margin-top:5px}.aide-champ{font-size:11.5px;color:var(--soft);margin-top:5px}
.bord-ambre{border-left:4px solid #E0A800}
.encart-ambre{background:#FFF6E0;border:1px solid #F5A800;border-radius:8px;padding:8px 12px;font-size:12.5px}
.puce{width:8px;height:8px;border-radius:50%;flex:none}.puce-ok{background:#1D9E75}.puce-facultatif{background:#C9C6E0}.puce-attendu{background:#534AB7}
.logo-64{width:64px;height:64px;border-radius:14px;object-fit:contain;background:#F7F7FC;flex:none;font-size:15px}
.vignette-44{width:44px;height:44px;object-fit:cover;object-position:top;border-radius:8px;border:1px solid #E0DEF8;display:block}

/* ==== F8 — anciens blocs <style> des gabarits, déplacés ici ==== */
/* ---- Connexion (comptes/templates/comptes/connexion.html) ---- */
body.page-connexion{background:var(--page);display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.cadre{width:100%;max-width:1000px;border-radius:20px;overflow:hidden;box-shadow:0 20px 60px rgba(23,26,43,.16)}
.portes{max-width:1000px;margin:14px auto 0;display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.portes a{font-size:12px;font-weight:600;color:var(--soft);background:#fff;padding:7px 13px;border-radius:999px}
.portes a.on{background:var(--v1);color:#fff}
.login .art h2{white-space:pre-line}

/* ---- Cadre de sécurité (2FA, mot de passe) (comptes/templates/comptes/cadre_securite.html) ---- */
body.page-cadre{background:var(--page);padding:30px 18px}

/* ---- Thématiques (propositions/templates/propositions/thematiques.html) ---- */
.page-themes .ajout{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
  .page-themes .themes td{vertical-align:middle}
  .page-themes .themes .renom{display:flex;gap:6px;align-items:center}
  .page-themes .themes .renom .nom{min-width:240px}
  .page-themes .themes tr.inactif td{opacity:.6}
  .page-themes .themes .nowrap{white-space:nowrap}
  .page-themes .themes .ta-r{text-align:right}
  .page-themes .themes .actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
  .page-themes .btn.xs{padding:5px 11px;font-size:11.5px;border-radius:999px;font-weight:700;border:1.5px solid transparent;cursor:pointer}
  .page-themes .btn.out{background:#fff;color:var(--v1);border-color:#DCD9F5}
  .page-themes .btn.ghost{background:transparent;color:#C0392B;border-color:#F0D0D0}
  .page-themes .pastille{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px}
  .page-themes .pastille.ok{background:#E4F7EC;color:#18794E}
  .page-themes .pastille.neutre{background:#EEEFF6;color:#6C7186}

/* ---- Aperçu de convention et d'avenant (conventions/apercu.html, apercu_avenant.html) ---- */
.page-convention .doc{background:#fff;border:1px solid #e5e5f0;border-radius:12px;padding:28px 32px;max-width:820px;margin:0 auto;line-height:1.55;font-size:13.5px}
  .page-convention .doc h2{text-align:center;font-size:17px;letter-spacing:.06em;margin:0 0 2px}
  .page-convention .doc .campagne{text-align:center;color:#6b6b80;margin-bottom:18px}
  .page-convention .doc .art{font-weight:700;margin:16px 0 4px}
  .page-convention .doc table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12.5px}
  .page-convention .doc th,.page-convention .doc td{border:1px solid #d9d9e6;padding:5px 8px;text-align:left}
  .page-convention .doc .annexe{page-break-before:always;border-top:2px solid #d9d9e6;margin-top:26px;padding-top:18px}
  .page-convention .doc .sig{display:flex;gap:24px;margin-top:28px}
  .page-convention .doc .sig div{flex:1;border-top:1px solid #d9d9e6;padding-top:8px;font-size:12px;color:#44445a}

/* ---- Fiche séjour du dépouillement (depouillement/templates/depouillement/sejour.html) ---- */
.pieces-titre{font-size:12px;font-weight:700;margin:12px 0 6px}
      .pieces-titre:first-of-type{margin-top:0}
      .pieces-nb{display:inline-block;background:#EDEBFD;color:var(--v1);border-radius:999px;padding:0 7px;font-size:10px;margin-left:4px;vertical-align:middle}
      .pieces-ligne{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid #F0F0F7}
      .pieces-ligne:last-child{border-bottom:0}
      .pieces-ligne .apercu{flex:none;position:relative;width:46px;aspect-ratio:210/297;border:1px solid #DCDCE8;border-radius:5px;overflow:hidden;background:#F7F7FB;display:block}
      .pieces-ligne .apercu img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
      .pieces .icone{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;font-size:10px;color:var(--v1)}
      .pieces-ligne .txt{min-width:0;flex:1}
      .pieces-ligne .nom{font-size:12px;font-weight:700;white-space:normal;overflow-wrap:anywhere;
        display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
      .pieces-ligne .actions{font-size:12px;margin-top:3px;display:flex;gap:6px}
      .pieces-ligne .actions a{color:var(--v1);font-weight:700}
      .pieces-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:4px}
      .pieces-photos .mini{display:block;position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;background:#EDEBFD}
      .pieces-photos .mini img{width:100%;height:100%;object-fit:cover;display:block}

/* ---- Fiche association (associations/templates/associations/fiche.html) ---- */
.page-fiche .jauge{height:6px;background:#E6E6F2;border-radius:999px;overflow:hidden;margin-top:7px}
  .page-fiche .jauge i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}
  .page-fiche .actions-ic{display:flex;justify-content:flex-end;flex-wrap:wrap}
  /* Dossier administratif en familles (lot 10, etape 2) */
  .famille{border:1px solid var(--line);border-radius:14px;margin-top:12px;background:#fff}
  .famille > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}
  .famille > summary::-webkit-details-marker{display:none}
  .famille > summary h3{margin:0;font-size:14.5px;color:var(--ink)}
  .famille-resume{display:inline-flex;align-items:center;gap:6px;flex:none}
  .famille-chevron{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;color:var(--soft);transition:transform .15s}
  .famille[open] > summary .famille-chevron{transform:rotate(180deg)}
  .famille > .dossier-tbl{margin:0 0 6px}
  /* Lot 14b : un volet replié posé dans une carte (alertes du suivi des conventions). */
  .famille.card{padding:0}
  .famille.card > :not(summary){margin-left:16px;margin-right:16px}
  .famille.card > :last-child{margin-bottom:14px}
  .nom-piece{display:flex;align-items:center;gap:4px}
  .nom-piece .action-ic{width:28px;height:28px;border:none;background:transparent;padding:0;cursor:pointer;color:var(--soft)}
  .nom-piece .action-ic:hover{color:var(--v1);background:var(--page)}
  .nom-piece .action-ic svg{width:17px;height:17px}
  .sous-ligne td{border-top:none;padding-top:2px;padding-bottom:2px}
  .sous-ligne td:first-child{padding-left:34px;font-size:12.5px;color:#3E4156}
  .page-fiche .dossier-tbl td:last-child{min-width:170px}
  .paire-ic{display:inline-flex;gap:2px;flex:none}
  .page-fiche .banque{margin-top:14px;padding:12px 14px;background:#F7F7FC;border:1px solid #ECECF6;border-radius:12px}
  .page-fiche .banque-t{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin-bottom:8px}
  .page-fiche .banque .iban{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;font-weight:600;letter-spacing:.02em}

  .page-fiche .btn.xs{padding:5px 12px;font-size:11.5px;border-radius:999px;font-weight:700;display:inline-flex;align-items:center;text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap}
  .page-fiche .btn.pri{background:var(--v1);color:#fff}
  .page-fiche .btn.out{background:#fff;color:var(--v1);border-color:#DCD9F5}
  .page-fiche .btn.ghost{background:transparent;color:var(--soft);border-color:#E6E6F2}

  .page-fiche .dossier-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
  .page-fiche .dossier-tbl th{text-align:left;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--soft);padding:8px 10px;border-bottom:2px solid #EDEDF5}
  .page-fiche .dossier-tbl td{padding:11px 10px;border-bottom:1px solid #F0F0F7;vertical-align:top}
  .page-fiche .dossier-tbl tr.warn td{background:#FFF7EC}
  .page-fiche .dossier-tbl tr.warn td:first-child{box-shadow:inset 3px 0 0 #E0A800}
  .page-fiche .dossier-tbl .nom{font-weight:700}
  .page-fiche .dossier-tbl .nowrap{white-space:nowrap;color:var(--soft)}
  .page-fiche .dossier-tbl .ta-r{text-align:right}
  .page-fiche .dossier-tbl .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
  .page-fiche .pastille{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
  .page-fiche .pastille.ok{background:#E4F7EC;color:#18794E}
  .page-fiche .pastille.warn{background:#FFF4E5;color:#B26A00}
  .page-fiche .pastille.late{background:#FDE8E8;color:#C0392B}
  .page-fiche .pastille.neutre{background:#EEEFF6;color:#6C7186}
  @media (max-width:720px){
    .page-fiche .dossier-tbl thead{display:none}
    .page-fiche .dossier-tbl,.page-fiche .dossier-tbl tbody,.page-fiche .dossier-tbl tr,.page-fiche .dossier-tbl td{display:block;width:100%}
    .page-fiche .dossier-tbl tr{border:1px solid #F0F0F7;border-radius:12px;margin-bottom:10px;padding:6px}
    .page-fiche .dossier-tbl td{border:0;padding:6px 10px}
    .page-fiche .dossier-tbl .actions{justify-content:flex-start}
  }

/* --- carte de synthese du depouillement en trois zones (lot 10, etape 3) ---
   Photo unique a gauche (210 px), corps au centre, panneau « Places
   retenues » a droite. Sejour sans photo : illustration passe-partout. */
/* Lot 14c : vignette carrée de 96 px à côté du titre, corps sous les deux ;
   la carte perd un tiers de sa hauteur (330 → ~220 px). */
.sej-grille{display:grid;grid-template-columns:96px minmax(0,1fr) 320px;grid-template-rows:auto auto;gap:10px 16px;align-items:start}
.sej-photo{grid-row:1;grid-column:1}
.sej-photo img,.sej-vignette-vide{width:96px;height:96px;object-fit:cover;border-radius:14px;display:block;border:1px solid var(--line)}
.sej-photo img.sej-vignette-logo{object-fit:contain;padding:8px;background:#fff}
.sej-vignette-vide{display:flex;align-items:center;justify-content:center;background:#EDEBFD;color:var(--v1);font-weight:800;font-size:22px;letter-spacing:.04em}
.sej-titre{grid-column:2;grid-row:1;display:flex;align-items:center;gap:10px;min-width:0;min-height:96px}
.sej-titre h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sej-corps{grid-column:1 / span 2;grid-row:2;display:flex;flex-direction:column;gap:8px;justify-content:flex-start;padding:2px 0;min-width:0}
.sej-corps .themes,.sej-corps .aussi,.sej-corps .sej-meta{margin:0}
.sej-lieu{font-size:13.5px;font-weight:600;color:var(--ink)}
.sej-sousmeta{font-size:12px;color:var(--soft);margin-top:-4px}
.sej-sousmeta b{color:#3E4156;font-weight:600}
.sej-places{grid-column:3;grid-row:1 / span 2}
.sej-bas{margin-top:10px}
.sej-places{background:#F7F7FC;border-radius:14px;padding:8px 12px}
.sej-places .k{margin-bottom:2px}
.sej-places-tete{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sej-places-tete .tag{flex:none}
.sej-places .selrow{border-top:none;padding-top:6px;padding-bottom:2px;margin-top:0;gap:6px}
.sej-places .selrow+.selrow{border-top:1px dashed var(--line)}
.sej-places .opts{gap:4px}
.sej-places .opts .lbl{display:none}
.sej-places .opts button{padding:5px 0;min-width:40px}
/* Bandeau des tarifs sous la grille : une ligne par hub, les paliers d'un trait. */
.sej-tarifs{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}
.sej-tarifs .tarifs{flex-wrap:nowrap;overflow-x:auto}
@media(max-width:1260px){
  .sej-grille{grid-template-columns:1fr;grid-template-rows:none}
  .sej-photo{grid-row:auto}
  .sej-titre{grid-column:auto;min-height:0}
  .sej-corps{grid-column:auto;grid-row:auto}
  .sej-places{grid-column:auto;grid-row:auto}
}

/* --- fiche complete reordonnee (lot 10, etape 4) --- */
.galerie{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,115px);gap:10px;margin-bottom:14px}
.galerie.depliee{grid-template-columns:repeat(4,1fr);grid-template-rows:none;grid-auto-rows:115px}
.galerie.depliee .galerie-case.grande{grid-row:auto;grid-column:1 / span 2}
.galerie-plus{cursor:pointer;border:none;font-family:inherit}
.galerie-case{position:relative;border-radius:14px;overflow:hidden;background:#EDEBFD;display:block}
.galerie-case.cache{display:none}
.galerie-case.grande{grid-row:1 / span 2}
.galerie-case img{width:100%;height:100%;object-fit:cover;display:block}
.galerie-plus{position:absolute;inset:0;display:grid;place-items:center;background:rgba(23,26,43,.45);color:#fff;font-weight:800;font-size:20px}
.galerie.seule{grid-template-columns:minmax(0,520px);grid-template-rows:240px}
.galerie.seule .galerie-case.grande{grid-row:auto}
.section-pliable>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:2px}
.section-pliable>summary::-webkit-details-marker{display:none}
.section-pliable>summary::before{content:'\25B8  ';font-weight:800;color:var(--v1)}
.section-pliable[open]>summary::before{content:'\25BE  '}
.section-pliable .k{margin:0}
.fleche-sejour{font-size:16px;padding:10px 14px}
@media(max-width:920px){.galerie{grid-template-rows:repeat(2,100px)}.galerie.depliee{grid-template-columns:1fr 1fr;grid-auto-rows:100px}}

/* Page d'attente du document de seance (lot 10i) */
.attente-doc{text-align:center;padding:38px 28px;max-width:640px;margin:0 auto}
.attente-doc .ic{font-size:34px;margin-bottom:8px}
.attente-doc .mono{font-family:'IBM Plex Mono',monospace;font-size:12px;word-break:break-word}
.attente-doc .btns{justify-content:center;margin-top:14px}

/* ===========================================================
   Parcours de saisie d'une proposition, en sept étapes (lot 10k).
   Maquette validée par Sébastien le 25/08/2026 ; hauteurs calées
   pour qu'une étape tienne dans un écran de 900 px.
   =========================================================== */

.parcours{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
.parcours>*{min-width:0}
@media(max-width:1100px){.parcours{grid-template-columns:1fr}}

/* Bandeau d'étape : numéro, titre, état du brouillon, sortie */
.etape-tete{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.etape-num{width:34px;height:34px;flex:none;border-radius:11px;background:linear-gradient(140deg,var(--v1),var(--v2));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.etape-tete h1{font-size:21px;font-weight:800;color:var(--v1);line-height:1.15}
.etape-tete .fil{margin:0}
.etape-etat{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--soft)}
.etape-etat .brouillon{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#18794E}
.etape-etat .brouillon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.etape-sous{font-size:13px;color:var(--soft);margin:-6px 0 14px}

/* Rail des étapes : les sept pastilles cliquables */
.rail{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.rail a,.rail button,.rail span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;
  background:#fff;border:1.5px solid var(--line);font-size:12.5px;font-weight:700;color:#6C7186}
.rail a i,.rail button i,.rail span i{width:20px;height:20px;border-radius:50%;background:#F0F0F8;color:#6C7186;font-style:normal;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}
.rail a:hover,.rail button:hover{border-color:#DCD9F5;color:var(--v1)}
.rail .on{background:linear-gradient(90deg,var(--v1),var(--v2));border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(91,75,225,.25)}
.rail .on i{background:rgba(255,255,255,.28);color:#fff}
.rail .fait i{background:#E4F7EC;color:#18794E}



/* Colonne de droite : progression */
.progres{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.anneau{width:64px;height:64px;flex:none;position:relative}
.anneau svg{transform:rotate(-90deg)}
.anneau circle{fill:none;stroke-width:7}
.anneau .fond{stroke:#EDEDF7}
.anneau .part{stroke:url(#degrade-anneau);stroke-linecap:round;transition:stroke-dasharray .35s ease}
.anneau b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--v1)}
.progres .pct{font-size:20px;font-weight:800;color:var(--ink);line-height:1}
.progres .pct span{display:block;font-size:11.5px;font-weight:600;color:var(--soft);margin-top:4px}
.sommaire{display:grid;gap:2px}
.sommaire a,.sommaire button,.sommaire span{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border-radius:10px;
  font-size:12.5px;font-weight:600;color:#6C7186}
.sommaire a:hover,.sommaire button:hover{background:#F7F7FC}
.sommaire .on{background:#EDEBFD;color:var(--v1)}
.sommaire a i,.sommaire button i,.sommaire span i{width:18px;height:18px;flex:none;border-radius:50%;background:#F0F0F8;color:#8A8FA6;font-style:normal;
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}
.sommaire .on i{background:var(--v1);color:#fff}
.sommaire .fait i{background:#E4F7EC;color:#18794E}

/* Pied de parcours */
.pas{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.pas .droite{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}

/* Photo d'illustration */
.photo-champ{display:grid;gap:8px}
.photo-cadre{position:relative;border-radius:16px;overflow:hidden;border:1.5px solid var(--line);background:#F7F7FC;
  aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.photo-cadre img{width:100%;height:100%;object-fit:cover;display:block}
.photo-cadre .changer{position:absolute;left:12px;bottom:12px;background:#fff;color:var(--v1);font-weight:700;font-size:12px;
  padding:8px 14px;border-radius:999px;box-shadow:0 4px 14px rgba(23,26,43,.18)}
.photo-vide{color:var(--soft);font-size:12.5px;text-align:center;padding:20px}

/* Activités saisies ligne à ligne */
.lignes{display:grid;gap:6px}
.ligne-activite{display:flex;align-items:center;gap:8px;background:#F7F7FC;border-radius:10px;padding:6px 10px}
.ligne-activite input{flex:1;border:none;background:none;font-size:12.5px;color:var(--ink);padding:1px 0}
.ligne-activite input:focus{outline:none}
.ligne-activite .retirer{width:24px;height:24px;border-radius:50%;color:var(--soft);font-size:15px;line-height:1}
.ligne-activite .retirer:hover{background:#FDECEC;color:#B4232C}
.ajouter-ligne{align-self:start;font-size:12.5px;font-weight:700;color:var(--v1);padding:8px 0}

/* Cases en damier (tranches d'âge, transport, sessions) */
.damier{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.case-carte{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:12px;border:1.5px solid var(--line);
  background:#fff;font-size:13px;font-weight:600;cursor:pointer}
.case-carte:hover{border-color:#DCD9F5}
.case-carte input{width:auto;accent-color:var(--v1)}
.case-carte.cochee{border-color:var(--v1);background:#F6F5FE;color:var(--v1)}
.case-carte .ic-t{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;opacity:.7}

/* Répartition du budget */
.budget-ligne{display:flex;align-items:center;gap:12px;padding:7px 0}
.budget-ligne .nom{width:104px;flex:none;font-size:12.5px;font-weight:600;color:#6C7186}
.budget-ligne .barre{flex:1;height:8px;border-radius:999px;background:#EDEDF7;overflow:hidden}
.budget-ligne .barre i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}
.budget-ligne input{width:66px;flex:none;text-align:right;padding:7px 9px;border:1.5px solid #E4E5F0;border-radius:10px;
  font-family:'IBM Plex Mono',monospace;font-size:12.5px}
.budget-total{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
  font-size:12.5px;font-weight:700}
.budget-total .valeur{margin-left:auto;font-family:'IBM Plex Mono',monospace}
.budget-total.ok{color:#18794E}
.budget-total.ko{color:#B4232C}

/* Récapitulatif en blocs */
.recap{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.recap .card{display:flex;flex-direction:column;gap:8px;padding:14px 15px}
.recap-tete{display:flex;align-items:center;gap:10px}
.recap-tete .rond{width:30px;height:30px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center}
.recap-tete .rond svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.recap-tete .k{margin:0}
.recap-tete .modifier{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--v1);border:1.5px solid #DCD9F5;
  border-radius:999px;padding:5px 12px;background:#fff}
.recap-corps{font-size:13px;color:#4A4E63;display:grid;gap:5px}
.recap-corps b{color:var(--ink)}
.recap-corps .sub{font-size:12px}
.r-violet{background:#EDEBFD;color:var(--v1)}
.r-vert{background:#E4F7EC;color:#18794E}
.r-ambre{background:#FFF0E6;color:#E07B2C}
.r-bleu{background:#E7F0FD;color:#2C5FB8}

/* Validation */
.validation{max-width:620px;margin:0 auto}
.validation .sceau{width:86px;height:86px;margin:6px auto 14px;border-radius:50%;background:#E4F7EC;color:#18794E;
  display:flex;align-items:center;justify-content:center}
.validation .sceau svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.validation h2{font-size:19px;font-weight:800;text-align:center}
.validation .intro{text-align:center;color:var(--soft);font-size:13px;margin:6px 0 18px}
.controles{display:grid;gap:8px;margin-bottom:16px}
.controle{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:12px;background:#F7F7FC;font-size:13px}
.controle svg{width:18px;height:18px;flex:none;fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.controle.ok{color:#18794E;background:#F1FBF5}
.controle.ko{color:#B4232C;background:#FDECEC;font-weight:600}
.controle.tiede{color:#E07B2C;background:#FFF7F0}
.controle .lien{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--v1)}

/* Cartes de la liste d'entrée */
.sejour-carte{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.sejour-carte:first-of-type{border-top:none}
.sejour-carte .anneau{width:52px;height:52px}
.sejour-carte .anneau b{font-size:11.5px}
.sejour-carte .f1{flex:1;min-width:0}
.sejour-carte .etape-en-cours{font-size:11.5px;color:var(--soft);margin-top:3px}

/* Commentaires de l'association sur la fiche de séance (lot 10k) : en tête,
   pas repliés en bas de page — c'est là que se logent les formalités et les
   réserves qui changent une décision. */
.encart-commentaires{background:#FFF7F0;border-left:3px solid #E8A33D;border-radius:12px;
  padding:12px 14px;margin:12px 0;font-size:13px;color:#4A4E63}
.encart-commentaires .k{color:#E07B2C;margin-bottom:6px}

/* Deux colonnes de saisie — l'écran tient sans défilement */
.duo{display:grid;grid-template-columns:1fr 1.08fr;gap:0 22px;align-items:start}
@media(max-width:1100px){.duo{grid-template-columns:1fr}}
.duo>div{min-width:0}
.serre .champ{margin-bottom:9px}
.serre .champ input[type=text],.serre .champ input[type=number],.serre .champ select,.serre .champ textarea{padding:9px 12px;font-size:13.5px;border-radius:10px}
.serre .champ label{font-size:11.5px;margin-bottom:4px}
.serre .champ .aide{margin-top:3px}
.aide{font-size:11.5px;color:var(--soft)}
.duo .k{margin-bottom:8px}
.trait{border-top:1px solid var(--line);margin:12px 0 12px}
.ligne-lecture{font-size:13px;background:#F7F7FC;border-radius:10px;padding:9px 12px}
.photo-cadre.compacte{aspect-ratio:auto;width:100%;height:138px}
.case-mini{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;border:1.5px solid var(--line);background:#fff;font-size:12.5px;font-weight:600;cursor:pointer}
.case-mini:hover{border-color:#DCD9F5}
.case-mini input{width:auto;accent-color:var(--v1)}
.case-mini.cochee{border-color:var(--v1);background:#F6F5FE;color:var(--v1)}
.damier-mini{display:flex;flex-wrap:wrap;gap:6px}

/* Répartition du budget : une seule barre empilée, cinq champs en ligne */
.barre-empilee{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#EDEDF7;margin-bottom:12px}
.barre-empilee i{display:block;height:100%}
.postes{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:8px}
.postes.colonne{grid-template-columns:1fr;gap:5px}
.postes.colonne .poste{padding:4px 8px}
.poste{display:flex;align-items:center;gap:7px;background:#F7F7FC;border-radius:10px;padding:6px 8px}
.poste .pastille{width:9px;height:9px;border-radius:50%;flex:none}
.poste .nom{font-size:11.5px;font-weight:700;color:#6C7186;flex:1;min-width:0}
.poste input{width:48px;flex:none;text-align:right;padding:5px 6px;border:1.5px solid #E4E5F0;border-radius:8px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;background:#fff}
.poste .pc{font-size:11px;color:var(--soft)}

/* Grille de prix compacte */
/* Lot 14a : 82 px coupaient « 14700.00 » ; la case prend la colonne, 108 px au moins. */
.prix-case{width:100%;min-width:108px;box-sizing:border-box;text-align:right;padding:8px 10px;border:1.5px solid #E4E5F0;border-radius:10px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;background:#fff}
.tbl.prix td,.tbl.prix th{padding-top:8px;padding-bottom:8px}
.tbl.prix td.num{min-width:112px;vertical-align:top}
.tbl.prix .calcul{text-align:right;white-space:nowrap;margin-top:3px}
.calcul{font-size:10.5px;color:var(--soft);font-family:'IBM Plex Mono',monospace;white-space:pre-line;line-height:1.3}

.pas{margin-top:10px}
.pied-page{margin-top:10px;padding-top:8px}
.etape-tete{margin-bottom:12px}
.etape-tete .fil-inline{font-size:12px;color:var(--soft);display:flex;align-items:center;gap:7px}
.etape-tete .fil-inline a{color:var(--soft)}
.etape-tete .fil-inline a:hover{color:var(--v1)}
.etape-tete .pour{font-size:10.5px;font-weight:700;background:#FFF0E6;color:#E07B2C;padding:3px 9px;border-radius:999px}
.rail{margin-bottom:12px}
.recap{grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:12px}

[data-hors-parcours][hidden]{display:none!important}
.piece-libre{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.piece-libre:first-of-type{border-top:none}
.piece-libre .type-piece{width:230px;flex:none;padding:8px 11px;border:1.5px solid #E4E5F0;border-radius:10px;font-size:12.5px;background:#fff}
.piece-libre .f1{flex:1;min-width:0;font-size:13px}
.piece-libre .retirer{width:26px;height:26px;border-radius:50%;color:var(--soft);font-size:16px}
.piece-libre .retirer:hover{background:#FDECEC;color:#B4232C}
[data-si-deux-tranches][hidden]{display:none}

.encart-commentaires{background:#FFF7F0;border-left:3px solid #E8A33D;border-radius:12px;padding:12px 14px;font-size:13px;color:#4A4E63}

.groupes{margin-top:4px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;align-items:start}
.groupes>*{min-width:0}
@media(max-width:1100px){.groupes{grid-template-columns:1fr}}
.groupe-doc{margin-top:9px}
.groupe-tete{font-size:11.5px;font-weight:700;color:var(--v1);margin-bottom:6px}
.groupe-doc .case-mini{font-weight:600}
details.section-pliable summary{cursor:pointer;list-style:none}
details.section-pliable summary::-webkit-details-marker{display:none}
details.section-pliable summary::before{content:'▸ ';color:var(--v1)}
details.section-pliable[open] summary::before{content:'▾ '}

/* Utilitaires du parcours (lot 10k). */
.k-note{font-weight:600;text-transform:none;letter-spacing:0;color:var(--soft)}
.cols-tranches{grid-template-columns:repeat(3,1fr)}
.cols-transport{grid-template-columns:repeat(4,1fr)}
.cols-photos{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
.cols-recap{grid-template-columns:1.4fr 1fr}
.duo.cols-2{grid-template-columns:1fr 1fr}
/* Lot 14a puis correctif du 29/08 : la grille de cinq colonnes ne tient pas à
   côté de la répartition du budget dans la carte du parcours (≈ 780 px sur un
   écran de 1440) ; le 14a la faisait déborder sous le budget. La répartition
   passe dessous tant que la fenêtre n'a pas 1600 px, et la grille défile si
   elle déborde encore. */
.duo.duo-prix{grid-template-columns:1fr;gap:16px 22px}
@media(max-width:1599px){.duo.duo-prix>div:last-child{max-width:620px}}
@media(min-width:1600px){.duo.duo-prix{grid-template-columns:2.2fr 1fr}}
.chip.vide{background:#F0F0F8;color:var(--soft)}
.actions.colonne{flex-direction:column;gap:9px}
.ta-c{text-align:center}
.ambre{color:#E07B2C}
.f0{flex:none}
.parcours .champ textarea{min-height:0}
.sceau.attente{background:#FFF0E6;color:#E07B2C}
.controle .f1{flex:1;min-width:0}
.champ.case.conditions{align-items:flex-start;background:#F7F7FC;padding:13px;border-radius:12px}

/* Couleurs des postes du budget (lot 10k) : en feuille de style, jamais en
   attribut style= — la Content-Security-Policy du lot 9 l'exige. */
.poste .pastille.p-salaires{background:#5B4BE1}
.poste .pastille.p-activites{background:#8E63F2}
.poste .pastille.p-structure{background:#B47BF5}
.poste .pastille.p-alimentation{background:#63C0A8}
.poste .pastille.p-transport{background:#E8A33D}

/* Dépôt de la photo d'illustration (lot 10k) : la zone est le champ, le
   champ de fichier natif est masqué — il reste accessible au clavier par le
   label, qui le désigne. */
.depot-photo{display:flex;align-items:center;justify-content:center;position:relative;
  border:1.5px dashed #CFCBF3;border-radius:14px;background:#F8F7FF;cursor:pointer;
  height:132px;overflow:hidden;text-align:center;padding:10px}
.depot-photo:hover,.depot-photo.survol{border-color:var(--v1);background:#F1EFFD}
.depot-photo .depot-texte{font-size:12.5px;color:#6C7186;line-height:1.5}
.depot-photo .lien-faux{color:var(--v1);font-weight:700}
.depot-photo .sub{font-size:11px}
.depot-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.depot-photo.garnie{border-style:solid;padding:0}
.depot-photo .changer{position:absolute;left:10px;bottom:10px;background:#fff;color:var(--v1);
  font-weight:700;font-size:11.5px;padding:6px 12px;border-radius:999px;
  box-shadow:0 4px 14px rgba(23,26,43,.18)}
.parcours input[type=file][name=photo_illustration]{position:absolute;width:1px;height:1px;
  opacity:0;overflow:hidden;clip:rect(0 0 0 0)}

/* Saisie des activités : lignes, ou zone de texte (lot 10k). */
.actions-lignes{display:flex;align-items:center;gap:14px}
.bascule-saisie{font-size:11.5px;font-weight:700;color:var(--soft);text-decoration:underline;padding:8px 0}
.bascule-saisie:hover{color:var(--v1)}

/* Saisie au clavier : pas de flèches sur les champs de nombre du parcours
   (demande du 26/08 — on tape le prix, on ne l'incrémente pas). */
.parcours input[type=number]{-moz-appearance:textfield;appearance:textfield}
.parcours input[type=number]::-webkit-outer-spin-button,
.parcours input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Pièces du séjour : dépôt en place, corbeille par fichier (lot 10k). */
.fichier-cache{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.depot-en-place{display:inline-flex}
.depot-en-place label.btn{cursor:pointer}
.row.piece{gap:9px}
.corbeille{width:30px;height:30px;flex:none;border-radius:9px;border:1.5px solid #F0DCDC;background:#fff;
  color:#B4232C;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.corbeille svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.corbeille:hover{background:#FDECEC}
.photo-vignette{position:relative}
.corbeille.sur-photo{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:8px;
  background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(23,26,43,.18)}
.ajout-libre{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px}
.ajout-libre input[type=text]{flex:1;min-width:240px;padding:9px 12px;border:1.5px solid #E4E5F0;
  border-radius:10px;font-size:13px;background:#fff}
.ajout-libre label.btn{cursor:pointer;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-cadre.ajout{cursor:pointer;border-style:dashed}

/* ============================================================
   Lot 11a — refonte visuelle : barre latérale v2, marque en barre du
   haut, tableau de bord association V2, cartes « Mes propositions ».
   CSS repris de la maquette validée le 27/08/2026
   (maquette-lot-11-complete.html) ; aurora.css reste figée.
   ============================================================ */

/* ---- Barre latérale v2 : flottante, icône au-dessus du libellé ---- */
.side.side-v2{width:118px;margin:14px 0 14px 14px;border-radius:24px;padding:16px 10px;
  position:sticky;top:14px;align-self:flex-start;height:calc(100vh - 28px);
  box-shadow:0 10px 30px rgba(91,75,225,.28)}
.side-v2 .nav{display:flex;flex-direction:column;justify-content:space-evenly;gap:8px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.side-v2 .nav-lien{flex-direction:column;gap:8px;justify-content:center;text-align:center;
  font-size:11.5px;font-weight:700;padding:12px 4px;border-radius:15px;color:rgba(255,255,255,.92);line-height:1.15}
.side-v2 .nav-lien .ic{width:23px;height:23px;opacity:1}
.side-v2 .nav-lien.on{background:rgba(255,255,255,.22);color:#fff}
.side-v2 .trait-side{height:1px;background:rgba(255,255,255,.28);margin:12px 10px;flex:none}
.side-v2 .deconnexion{display:block;flex:none}
.side-v2 .nav-lien.sortir{padding:10px 4px;width:100%}
/* Menus longs (administrateur : onze entrées) : entrées resserrées pour
   tenir dans la hauteur d'un écran de portable. */
.side-v2.dense{padding:12px 8px}
.side-v2.dense .nav{gap:2px}
.side-v2.dense .nav-lien{padding:7px 2px;gap:4px;font-size:10.5px;border-radius:12px}
.side-v2.dense .nav-lien .ic{width:20px;height:20px}
.side-v2.dense .trait-side{margin:8px 10px}

/* ---- Marque dans la barre du haut, utilisateur avec son profil ---- */
.marque-top{display:flex;align-items:center;gap:11px;margin-right:auto}
.marque-top img{height:34px;width:auto;display:block}
.marque-top b{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--v1);display:block;line-height:1.1}
.marque-top small{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#6C7186;font-weight:700}
.user .user-nom{display:flex;flex-direction:column;line-height:1.15}
.user .user-nom small{font-size:10.5px;font-weight:600;color:var(--soft)}

/* ---- Tuiles chiffrées, en tête du tableau de bord ---- */
.tuiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
@media(max-width:1100px){.tuiles{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.tuiles{grid-template-columns:1fr}}
.tuile{background:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 4px 20px rgba(23,26,43,.06);
  display:flex;flex-direction:column;gap:2px;min-width:0}
.tuile .haut{display:flex;align-items:center;gap:8px}
.tuile .ic{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.tuile .ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tuile .nombre{font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.tuile .nombre small{font-size:14px;font-weight:700;color:var(--soft)}
.tuile .legende{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--soft)}
.tuile .lien{font-size:12px;font-weight:700;color:var(--v1);margin-top:6px}
.tuile.alerte .ic{background:#FDECEC;color:#B4232C}
.tuile.violet .ic{background:#EDEBFD;color:var(--v1)}
.tuile.vert .ic{background:#E4F7EC;color:#18794E}
.tuile.ambre .ic{background:#FFF0E6;color:#E07B2C}
.tuile .jauge{height:6px;background:#EDEDF7;border-radius:999px;overflow:hidden;margin-top:8px}
.tuile .jauge i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}

/* ---- Bandeau « Reprendre » ---- */
.reprise{background:linear-gradient(115deg,var(--v1),var(--v2));border-radius:20px;padding:16px 20px;
  color:#fff;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.reprise .ic{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.18);flex:none;
  display:flex;align-items:center;justify-content:center}
.reprise .ic svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.reprise .f1{flex:1;min-width:220px}
.reprise b{font-size:15px}
.reprise .sub{color:rgba(255,255,255,.85);font-size:12.5px;margin-top:2px}
.reprise .btn-blanc{background:#fff;color:var(--v1);font-weight:700;padding:10px 20px;border-radius:999px;
  font-size:13px;text-decoration:none;flex:none}
.reprise .mini-rail{display:flex;gap:4px;margin-top:7px}
.reprise .mini-rail i{width:22px;height:5px;border-radius:999px;background:rgba(255,255,255,.3)}
.reprise .mini-rail i.fait{background:#fff}

/* ---- Liste « à faire » aérée ---- */
.afaire{display:grid;gap:4px}
.afaire-ligne{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px}
.afaire-ligne:hover{background:#F7F7FC}
.afaire-ligne .puce{width:34px;height:34px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center}
.afaire-ligne .puce svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.afaire-ligne.gravite-rouge .puce{background:#FDECEC;color:#B4232C}
.afaire-ligne.gravite-ambre .puce{background:#FFF0E6;color:#E07B2C}
.afaire-ligne.gravite-violette .puce{background:#EDEBFD;color:var(--v1)}
.afaire-ligne.gravite-verte .puce{background:#E4F7EC;color:#18794E}
.afaire-ligne .f1{flex:1;min-width:0}
.afaire-ligne b{font-size:13.5px}
.afaire-ligne .sub{font-size:12px}
.afaire-ligne .btn{flex:none}
.afaire-ligne .btn.xs{padding:5px 12px;font-size:11.5px;white-space:nowrap}
.afaire-repli{margin-top:4px}
.afaire-plus{font-size:12.5px;font-weight:700;color:var(--v1);padding:8px 12px;cursor:pointer;list-style:none}
.afaire-plus::-webkit-details-marker{display:none}
.afaire-repli[open] .afaire-plus{color:var(--soft)}

/* ---- Avancement de la candidature, en frise ---- */
.frise{display:grid;gap:0}
.frise-pas{display:flex;gap:12px;position:relative;padding-bottom:16px}
.frise-pas:last-child{padding-bottom:0}
.frise-pas::before{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:#EDEDF7}
.frise-pas:last-child::before{display:none}
.frise-pas .rond{width:28px;height:28px;border-radius:50%;background:#F0F0F8;color:#8A8FA6;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;position:relative;z-index:1}
.frise-pas.fait .rond{background:#E4F7EC;color:#18794E}
.frise-pas.actif .rond{background:linear-gradient(140deg,var(--v1),var(--v2));color:#fff}
.frise-pas .f1{padding-top:4px;min-width:0}
.frise-pas b{font-size:13px}
.frise-pas.actif b{color:var(--v1)}
.frise-pas .sub{font-size:11.5px}

/* ---- Cartes de séjour avec photo en 4/3 (Mes propositions) ---- */
.cartes-sejours{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.carte-sejour{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px rgba(23,26,43,.06);
  display:flex;flex-direction:column}
.carte-sejour.cache{display:none}
.carte-sejour .visuel{aspect-ratio:4/3;position:relative;display:flex;align-items:flex-end;padding:10px;
  background:linear-gradient(135deg,#8A8FA6,#B9BDCF)}
.carte-sejour .visuel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.carte-sejour .visuel .tag{position:absolute;top:10px;right:10px;z-index:1}
.carte-sejour .visuel .sans-photo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:12px;font-weight:700;opacity:.85;flex-direction:column;gap:6px;text-align:center;padding:12px}
.carte-sejour .corps{padding:14px 16px 12px;display:flex;flex-direction:column;gap:8px;flex:1}
.carte-sejour h3{font-size:15.5px;font-weight:800;line-height:1.25}
.carte-sejour .meta{font-size:12px;color:var(--soft)}
.carte-sejour .badges{display:flex;gap:5px;flex-wrap:wrap}
.carte-sejour .prix-ligne{display:flex;align-items:baseline;gap:6px;margin-top:auto;flex-wrap:wrap}
.carte-sejour .prix-ligne .px{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}
.carte-sejour .prix-ligne .u{font-size:11.5px;color:var(--soft)}
.carte-sejour .pied{display:flex;align-items:center;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--line)}
.carte-sejour .pied .f1{flex:1;min-width:0}
.carte-sejour .pied form{display:contents}
.carte-sejour .btn.xs{padding:5px 12px;font-size:11.5px;white-space:nowrap;flex:none}
.carte-sejour .avancement{height:5px;border-radius:999px;background:#EDEDF7;overflow:hidden;flex:1;min-width:30px}
.carte-sejour .avancement i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}
.carte-sejour .avancement-txt{font-size:11px;color:var(--soft);font-weight:700;flex:none}
.carte-nouvelle{border:1.5px dashed #CFCBF3;border-radius:20px;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:8px;color:var(--v1);font-weight:700;font-size:13.5px;min-height:280px;background:#F8F7FF;text-align:center;padding:16px}
.carte-nouvelle:hover{background:#F1EFFD}
.carte-nouvelle .rond-plus{width:44px;height:44px;border-radius:50%;background:#EDEBFD;display:flex;
  align-items:center;justify-content:center;font-size:22px}
.carte-nouvelle .btn{margin-top:4px}

/* barre d'outils de la liste : filtres, recherche, dépôt */
.outils-sejours{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.filtre-pilule{padding:8px 15px;border-radius:999px;background:#fff;border:1.5px solid var(--line);
  font-size:12.5px;font-weight:700;color:#6C7186;cursor:pointer}
.filtre-pilule.on{background:linear-gradient(90deg,var(--v1),var(--v2));border-color:transparent;color:#fff}
.outils-sejours .recherche{flex:1;min-width:200px;padding:9px 14px;border:1.5px solid var(--line);
  border-radius:999px;font-size:13px;background:#fff}
.outils-sejours .btns{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}
/* menu déroulant natif (lot 14b) */
.deroulant{position:relative}
.deroulant>summary{list-style:none;cursor:pointer}
.deroulant>summary::-webkit-details-marker{display:none}
.deroulant-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(23,26,43,.14);padding:6px;z-index:15;display:grid}
.deroulant-menu a{padding:9px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.deroulant-menu a:hover{background:var(--page);color:var(--v1)}
/* menu des documents (lot 14e) : nom, description, pictogramme, groupes */
.menu-documents{min-width:360px;max-width:400px}
.menu-groupe{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-weight:700;padding:8px 12px 4px}
.menu-groupe+ .menu-groupe,.menu-documents a + .menu-groupe{border-top:1px solid var(--line);margin-top:6px}
.menu-documents a{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;font-weight:600}
.menu-documents a:hover{color:var(--ink)}
.menu-documents a b{display:block;font-size:13px;font-weight:700}
.menu-documents a small{display:block;font-size:11px;color:var(--soft);font-weight:500;line-height:1.35;margin-top:1px}
.menu-ic{width:30px;height:30px;border-radius:8px;background:#EDEBFD;color:var(--v1);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex:none}
.cartes-vide{text-align:center;color:var(--soft);font-size:13px;padding:22px}

/* ============================================================
   Lot 11b — parcours de saisie : rail relié, horodatage vert,
   récapitulatif et validation centrés (écrans 4, 5, 6 de la maquette
   du 27/08/2026). Le sommaire de droite a disparu.
   ============================================================ */

/* ---- Rail relié, en tête d'écran ---- */
.rail-v2{display:flex;align-items:flex-start;margin-bottom:18px;background:#fff;border-radius:16px;
  padding:14px 18px 12px;box-shadow:0 4px 20px rgba(23,26,43,.06)}
.rail-v2 a,.rail-v2 span{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;
  font-size:11px;font-weight:700;color:#8A8FA6;text-decoration:none;text-align:center;min-width:0}
.rail-v2 i{width:26px;height:26px;border-radius:50%;background:#F0F0F8;color:#6C7186;font-style:normal;
  display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;position:relative;z-index:1}
.rail-v2 a::before,.rail-v2 span::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:2px;background:#EDEDF7}
.rail-v2 a:first-child::before,.rail-v2 span:first-child::before{display:none}
.rail-v2 a:hover{color:var(--v1)}
.rail-v2 .fait i{background:#E4F7EC;color:#18794E}
.rail-v2 .fait::before{background:#BFE3CE}
.rail-v2 .on{color:var(--v1)}
.rail-v2 .on i{background:linear-gradient(140deg,var(--v1),var(--v2));color:#fff;box-shadow:0 4px 12px rgba(91,75,225,.3)}
.rail-v2 .on::before{background:#BFE3CE}
@media(max-width:920px){.rail-v2{padding:10px 8px}.rail-v2 a,.rail-v2 span{font-size:0;gap:0}.rail-v2 .on{font-size:10px;gap:4px}}

/* horodatage du brouillon, en vert avec sa coche */
.enregistrement{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#18794E}
.enregistrement svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* étapes 6 et 7 : une seule colonne, boutons alignés sur la colonne centrée */
.parcours.seul{grid-template-columns:1fr}
.parcours.seul .pas{max-width:960px;margin-left:auto;margin-right:auto}
.parcours.etroit .pas{max-width:640px}

/* ---- Récapitulatif (étape 6) ---- */
.recap-v2{max-width:960px;margin:0 auto}
.recap-v2 .titre{text-align:center;margin-bottom:4px;font-size:20px;font-weight:800}
.recap-v2 .sous-titre{text-align:center;color:var(--soft);font-size:13px;margin-bottom:18px}
.recap-grille{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:920px){.recap-grille{grid-template-columns:1fr}}
.recap-carte{background:#fff;border-radius:18px;padding:16px 18px;box-shadow:0 4px 20px rgba(23,26,43,.06)}
.recap-carte .tete{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.recap-carte .tete .k{margin:0;flex:1}
.recap-carte .modifier{font-size:11.5px;font-weight:700;color:var(--v1)}
.recap-carte .modifier.doux{color:var(--soft)}
.recap-carte dl{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:13px;margin:0}
.recap-carte dt{color:var(--soft);font-size:12px;padding-top:1px;white-space:nowrap}
.recap-carte dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.recap-carte .coche{color:#18794E;font-weight:700}
.recap-carte .manque-l{color:#B4232C;font-weight:700}
.recap-carte textarea{width:100%;min-height:120px}
.recap-v2 .pas{max-width:960px}

/* ---- Validation (étape 7) ---- */
.validation-v2{max-width:640px;margin:0 auto}
.validation-v2 h2{font-size:21px;font-weight:800;text-align:center;text-wrap:balance}
.validation-v2 .sous{color:var(--soft);font-size:13px;text-align:center;margin:6px 0 18px}
.controles-v2{display:grid;gap:7px;margin-bottom:16px}
.controle-v2{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:13px;background:#F7F7FC;font-size:13.5px}
.controle-v2 .pt{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center}
.controle-v2 .pt svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.controle-v2.ok{background:#F1FBF5}.controle-v2.ok .pt{background:#DCF3E6;color:#18794E}
.controle-v2.tiede{background:#FFF7F0}.controle-v2.tiede .pt{background:#FFE8D6;color:#E07B2C}
.controle-v2.ko{background:#FDF0F0}.controle-v2.ko .pt{background:#F8DADA;color:#B4232C}
.controle-v2 .f1{flex:1;min-width:0}
.controle-v2 .lien{font-size:12px;font-weight:700;color:var(--v1);flex:none}
.cta-transmettre{width:100%;padding:15px;border-radius:14px;background:linear-gradient(90deg,var(--v1),var(--v2));
  color:#fff;font-weight:700;font-size:15px;box-shadow:0 10px 24px rgba(91,75,225,.3)}
.cta-transmettre:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.note-info{display:flex;gap:10px;background:#F6F5FE;border-radius:13px;padding:12px 14px;font-size:12.5px;color:#5C6076;margin-top:14px}
.note-info svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--v1);stroke-width:1.8;stroke-linecap:round;margin-top:1px}

/* ============================================================
   Lot 11c — fiche séjour V2 (commission et association) : carte-héros,
   encart commentaires, huit onglets pleine largeur, pièces en onglet.
   Écran 7 de la maquette du 27/08/2026.
   ============================================================ */
.entete-fiche{margin-bottom:12px}
.sejour-hero{background:#fff;border-radius:20px;box-shadow:0 4px 20px rgba(23,26,43,.06);
  padding:18px;margin-bottom:14px}
.sejour-hero .haut{display:grid;grid-template-columns:320px 1fr 270px;gap:22px}
@media(max-width:1100px){.sejour-hero .haut{grid-template-columns:1fr}}
.sejour-hero .photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;display:block;
  background:linear-gradient(135deg,#8A8FA6,#B9BDCF)}
.sejour-hero .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sejour-hero .photo.sans{background:#F3F1FC}
.sejour-hero .photo.sans img.passe-partout{object-fit:contain;padding:12%}
.sejour-hero .photo .compte{position:absolute;right:10px;bottom:10px;background:rgba(23,26,43,.65);color:#fff;
  font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px}
.sejour-hero .coeur{min-width:0;padding-top:4px}
.sejour-hero h1{font-size:24px;font-weight:800;line-height:1.15}
.sejour-hero h1 .tag{vertical-align:middle;margin-left:6px}
.sejour-hero .assoc{color:var(--v1);font-weight:700;font-size:13.5px;margin-top:4px}
.sejour-hero .badges{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0 0}
.sejour-hero .lieu{font-size:13.5px;color:#4A4E63;margin-top:12px}
.sejour-hero .statut{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--soft);flex-wrap:wrap}
.sejour-hero .repere-bloc{border-left:1px solid var(--line);padding:4px 0 4px 22px}
@media(max-width:1100px){.sejour-hero .repere-bloc{border-left:none;padding-left:0}}
.sejour-hero .repere-bloc .k{margin-bottom:8px}
.sejour-hero .repere{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:5px 0;border-bottom:1px solid #F5F5FA}
.sejour-hero .repere:last-child{border-bottom:none}
.sejour-hero .repere .val{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.sejour-hero .repere.retenu{background:#E4F7EC;color:#18794E;border-radius:8px;padding:6px 8px;margin:2px -8px}
.sejour-hero .encart-commentaires{margin:16px 0 0}

.onglets-fiche{display:flex;background:#fff;border-radius:16px;padding:0 8px;margin-bottom:14px;
  box-shadow:0 4px 20px rgba(23,26,43,.06);overflow-x:auto}
.onglets-fiche button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;
  font-size:13px;font-weight:700;color:#6C7186;padding:15px 12px 12px;
  border-bottom:3px solid transparent;white-space:nowrap;border-radius:0}
.onglets-fiche button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;flex:none}
.onglets-fiche button b{font-size:11px;background:#EDEBFD;color:var(--v1);border-radius:999px;padding:1px 7px}
.onglets-fiche button:hover{color:var(--v1)}
.onglets-fiche button.on{color:var(--v1);border-bottom-color:var(--v1)}
.onglets-fiche button:focus-visible{outline-offset:-3px;border-radius:8px}
.panneau[hidden]{display:none}
.panneau{margin-bottom:14px}
.lien-onglet{font-size:12.5px;font-weight:700;color:var(--v1)}
.entete-pieces{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.duo-fiche{display:grid;grid-template-columns:1fr 1.15fr;gap:14px;align-items:start}
@media(max-width:1100px){.duo-fiche{grid-template-columns:1fr}}
.pieces-rangee{display:flex;gap:12px;flex-wrap:wrap}
.piece-tuile{display:flex;flex-direction:column;gap:5px;width:86px;color:inherit}
.piece-tuile .apercu{width:86px;aspect-ratio:210/280;border:1px solid var(--line);border-radius:10px;
  overflow:hidden;background:#F7F7FB;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;color:var(--v1)}
.piece-tuile .apercu img{width:100%;height:100%;object-fit:cover}
.piece-tuile:hover .apercu{border-color:var(--v1)}
.piece-tuile .nom{font-size:11px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.piece-tuile .sub{font-size:10.5px}
.panneau .galerie{margin-bottom:0}

/* ============================================================
   Lot 12a — documents demandés aux familles (étape 3) : familles
   repliables avec compteur, cases discrètes sur trois colonnes,
   précision sous le libellé, « Autre » par famille. Décisions du 28/08.
   ============================================================ */
.groupes{display:block}
details.groupe-repli{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:8px}
details.groupe-repli summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;
  padding:10px 14px;font-size:13px;font-weight:700}
details.groupe-repli summary::-webkit-details-marker{display:none}
details.groupe-repli .chevron{color:var(--soft);font-weight:800;transition:transform .15s ease}
details.groupe-repli[open] .chevron{transform:rotate(90deg)}
details.groupe-repli .compteur{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--v1)}
details.groupe-repli .compteur.gris{color:var(--soft)}
.damier-doc{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px;padding:2px 14px 8px}
@media(max-width:920px){.damier-doc{grid-template-columns:1fr}}
.case-doc{display:flex;align-items:flex-start;gap:7px;padding:4px 2px;font-size:12px;font-weight:600;
  line-height:1.3;cursor:pointer;border:none;background:none}
.case-doc input{width:13px;height:13px;margin-top:1px;flex:none;accent-color:var(--v1)}
.case-doc .prec{display:block;font-size:10.5px;font-weight:500;color:var(--soft)}
.champ-precision{grid-column:1 / -1;padding-left:20px;margin-bottom:4px}
.champ-precision input{max-width:520px}
.autre-groupe{border-top:1px dashed var(--line);padding:8px 14px 12px}
.autre-groupe .case-autre{padding-left:0}
.autre-groupe [data-autre-champ] textarea{max-width:640px}

/* ============================================================
   Lot 12b — écrans 1 et 2 du parcours (propositions B du 28/08) :
   question Oui / Non des sessions, tableau des capacités, phrase du
   public, compteur de synthèse à l'état vert.
   ============================================================ */
.choix-oui-non ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.choix-oui-non label{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line);
  border-radius:999px;padding:8px 15px;font-size:12.5px;font-weight:700;cursor:pointer;background:#fff}
.choix-oui-non label:has(input:checked){border-color:var(--v1);background:#EDEBFD;color:var(--v1)}
.choix-oui-non input{accent-color:var(--v1);width:14px;height:14px}
.tbl-capacites input{width:76px;text-align:right;border:1.5px solid var(--line);border-radius:9px;
  padding:7px 9px;font:600 13px "Plus Jakarta Sans";background:#fff}
.tbl-capacites input:focus{border-color:var(--v1);outline:none}
.tbl-capacites td,.tbl-capacites th{vertical-align:middle}
.aide.valide{color:#18794E;font-weight:700}

/* ============================================================
   Lot 12c — étape 4 (total du budget), étape 5 refaite (maquette
   validée le 28/08) et checklist « À compléter dans cette étape ».
   ============================================================ */
.total-budget{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:800;
  border-top:1px solid var(--line);margin-top:8px;padding:8px 2px 0}
.total-budget.valide b{color:#18794E}
.total-budget.alerte b{color:#B8860B}

.duo-pieces{grid-template-columns:1.45fr 1fr}
@media(max-width:1100px){.duo-pieces{grid-template-columns:1fr}}
.ligne-doc{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F0F0F7}
.ligne-doc:last-of-type{border-bottom:none}
.ligne-doc .icone-doc{width:34px;height:42px;border:1px solid var(--line);border-radius:8px;background:#F7F7FB;
  position:relative;flex:none;display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;color:var(--v1);text-transform:uppercase}
.ligne-doc .icone-doc .coche{position:absolute;top:-6px;right:-6px;width:15px;height:15px;border-radius:50%;
  background:#18794E;color:#fff;font-size:9.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ligne-doc.vide .icone-doc{border-style:dashed;color:#8A8FA6;background:#fff}
.ligne-doc .f1{flex:1;min-width:0}
.ligne-doc .nom{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}
a.nom:hover{color:var(--v1)}
.ligne-doc.vide .nom{color:#6C7186}
.ligne-doc .sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge-doc{font-size:10.5px;font-weight:700;border-radius:999px;padding:3px 9px;flex:none}
.badge-doc.obligatoire{background:#E4F7EC;color:#18794E}
.badge-doc.facultatif{background:#F1F1F8;color:#6C7186}
.oeil{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:var(--v1);background:#EDEBFD;flex:none}
.oeil:hover{background:var(--v1);color:#fff}
.oeil svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ligne-doc .btn.xs{padding:5px 12px;font-size:11.5px;white-space:nowrap;flex:none}

.grille-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
@media(max-width:1100px){.grille-photos{grid-template-columns:repeat(4,1fr)}}
.tuile-photo{position:relative;border-radius:11px;overflow:hidden;aspect-ratio:4/3;background:#EDEDF4;display:block}
.tuile-photo .cadre{position:absolute;inset:0;display:block}
.tuile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.tuile-photo .photo-vide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:var(--soft);padding:6px;text-align:center;overflow-wrap:anywhere}
.tuile-photo .principale{position:absolute;left:6px;bottom:6px;background:rgba(23,26,43,.72);color:#fff;
  font-size:9px;font-weight:800;padding:3px 8px;border-radius:999px}
.tuile-photo .etoile{position:absolute;top:5px;right:32px;width:22px;height:22px;border-radius:50%;
  background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
  font-size:12px;color:#D99A2B;cursor:pointer}
.tuile-photo .etoile:hover{background:#D99A2B;color:#fff}
.tuile-photo .corbeille.sur-photo{position:absolute;top:5px;right:5px}
.tuile-ajout{border:1.5px dashed #CFCBF3;border-radius:11px;aspect-ratio:4/3;display:flex;flex-direction:column;
  gap:5px;align-items:center;justify-content:center;color:var(--v1);font-size:11px;font-weight:700;
  background:#F8F7FF;text-align:center;padding:8px;cursor:pointer}
.tuile-ajout:hover{border-color:var(--v1)}
.tuile-ajout .plus{width:24px;height:24px;border-radius:50%;background:#EDEBFD;display:flex;
  align-items:center;justify-content:center;font-size:14px}
.conseil-photos{background:#F6F5FE;border-radius:10px;padding:9px 12px;font-size:11.5px;color:#5C6076;margin-top:10px}
.ajout-piece{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.ajout-piece input[type=text]{flex:1;min-width:240px}

.controle-etape{display:grid;gap:7px}
.controle-item{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;font-weight:600;color:var(--soft)}
.controle-item .rond{width:17px;height:17px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;background:#F0F0F8;font-size:11px;font-weight:800;margin-top:1px}
.controle-item.fait{color:#18794E}
.controle-item.fait .rond{background:#E4F7EC}
.etape-complete{margin-top:5px;font-size:12px;font-weight:800;color:#18794E}

/* Lot 13c — champs figés après sélection (mode complément) */
.page-parcours input:disabled,.page-parcours select:disabled,.page-parcours textarea:disabled{background:#F3F1FC;color:#6B6483;border-style:dashed;cursor:not-allowed}
.page-parcours input[type=checkbox]:disabled,.page-parcours input[type=radio]:disabled{opacity:.5;cursor:not-allowed}
.page-parcours .tbl.prix input:disabled{background:#F8F7FD}
.encart-complement{border-left:4px solid var(--amber,#D99A2B)}
.page-parcours .photo-figee{max-width:100%;border-radius:12px;opacity:.85}

/* --- Lot 14c : dossier administratif en cartes sur téléphone ---------------
   Le tableau des pièces ne se lit pas à 390 px (colonnes empilées, tirets
   orphelins). Sous 920 px, chaque ligne devient une carte : nom et pastille
   sur la première ligne, date et taille dessous, actions en boutons pleine
   largeur qui affichent leur mot. Le bureau ne change pas. */
@media(max-width:920px){
  .page-fiche .dossier-tbl,.page-fiche .dossier-tbl tbody{display:block}
  .page-fiche .dossier-tbl thead{display:none}
  .page-fiche .dossier-tbl tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px 14px;border-bottom:1px solid #F0F0F7}
  .page-fiche .dossier-tbl td{display:block;padding:0;border:none;min-width:0}
  .page-fiche .dossier-tbl td:first-child{grid-column:1}
  .page-fiche .dossier-tbl td.etat{grid-column:2;grid-row:1;justify-self:end}
  .page-fiche .dossier-tbl td.date,.page-fiche .dossier-tbl td.taille{grid-column:1 / span 2;font-size:12px;color:var(--soft);text-align:left;font-family:inherit}
  .page-fiche .dossier-tbl td.date::before{content:"Déposée le "}
  .page-fiche .dossier-tbl td.taille::before{content:"Taille : "}
  .page-fiche .dossier-tbl td.vide{display:none}
  .page-fiche .dossier-tbl td.actions{grid-column:1 / span 2;margin-top:6px}
  .page-fiche .dossier-tbl td.actions:empty,.page-fiche .dossier-tbl td.actions .actions-ic:empty{display:none}
  .page-fiche .dossier-tbl td:last-child{min-width:0}
  .page-fiche .dossier-tbl tr.warn{background:#FFF7EC;box-shadow:inset 3px 0 0 #E0A800}
  .page-fiche .dossier-tbl tr.warn td{background:transparent;box-shadow:none}
  .page-fiche .dossier-tbl .actions-ic{justify-content:flex-start;gap:8px}
  .page-fiche .dossier-tbl .actions-ic .action-ic{width:auto;height:auto;padding:9px 14px;border:1.5px solid #E0DEF8;border-radius:999px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--v1);background:#fff}
  .page-fiche .dossier-tbl .actions-ic .action-ic::after{content:attr(title)}
  .page-fiche .dossier-tbl .actions-ic .action-ic svg{width:16px;height:16px}
  .page-fiche .dossier-tbl .sous-ligne td:first-child{padding-left:12px}
}

/* --- Lot 16 : carte de dépouillement, version B (30/08) --------------------
   Photo 4/3 avec un voile blanc en bas (logo sur plaque, titre, association),
   trois cartes par ligne sur un écran large, deux sinon, une sous 1280 px. */
/* La page de dépouillement s'élargit sur un grand écran (1180 px ailleurs) et
   le nombre de colonnes suit la largeur réelle de la liste, pas celle de la
   fenêtre : trois cartes à partir de 940 px, une sous 600 px. */
.page-depouillement{max-width:1600px}
.liste-sej-cadre{container-type:inline-size}
.liste-sej{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
@container (min-width:940px){.liste-sej{grid-template-columns:1fr 1fr 1fr;gap:14px}}
@container (max-width:600px){.liste-sej{grid-template-columns:1fr}}
.sej.sej-v3{padding:0;overflow:hidden;margin-bottom:0;display:flex;flex-direction:column}
.sej-bandeau{position:relative;display:block;aspect-ratio:4/3;background:linear-gradient(135deg,#EDEBFD,#DCD8FA);color:inherit;text-decoration:none}
.sej-bandeau>img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.sej-bandeau-vide{display:block;position:absolute;inset:0;background:url("../img/illustration-sejour.86c28776f56b.svg") center/cover no-repeat}
.sej-nouveau{position:absolute;right:12px;top:10px}
.sej-voile{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(255,255,255,.78);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.sej-plaque{flex:none;background:#fff;border:1px solid var(--line);border-radius:9px;padding:4px 6px;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:34px;box-sizing:border-box}
.sej-plaque img.sej-logo{height:24px;width:auto;max-width:72px;object-fit:contain;display:block}
.sej-logo.initiales{font-size:11px;font-weight:800;color:var(--v1);letter-spacing:.03em}
.sej-voile-texte{min-width:0;display:flex;flex-direction:column}
.sej-voile-texte h3{font-size:14.5px;font-weight:800;margin:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sej-asso{font-size:11px;font-weight:700;color:var(--v1);margin-top:1px}
.sej-tete{padding:10px 12px 0}
.sej-titre-ligne{display:flex;align-items:flex-start;gap:8px}
.sej-titre-ligne .btn.xs{flex:none}
.sej-v3 .sej-lieu{font-size:12.5px;flex:1;min-width:0}
.sej-v3 .sej-sousmeta{margin-top:2px;font-size:11.5px}
.sej-groupe{font-size:11.5px;margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sej-groupe .k{margin:0}
.sej-v3 .themes{margin-top:6px}
.sej-v3 .aussi,.sej-v3 .sessions-capacite{margin-top:4px;font-size:11.5px}
/* prix : le hub et ses quatre paliers sur une seule ligne, en petit */
.sej-v3 .sej-tarifs{padding:6px 12px 0}
.sej-v3 .tarifs{display:flex;flex-wrap:nowrap;align-items:center;gap:3px;margin-top:4px}
.sej-v3 .tarifs .hub{flex:none;min-width:0;width:auto;font-size:10px;margin-right:2px;white-space:nowrap}
.sej-v3 .tarifs .pal{flex:1 1 0;min-width:0;justify-content:center;white-space:nowrap;gap:3px;padding:3px 4px}
.sej-v3 .tarifs .pal .n{font-size:9px}
.sej-v3 .tarifs .pal .e{font-size:11px}
.sej-volets{display:flex;gap:6px;padding:8px 12px 0;flex-wrap:wrap}
.sej-volets .volet{flex:1 1 45%;min-width:0}
.sej-volets .volet.vide{font-size:11px;color:var(--soft);background:#F7F6FD;border-radius:8px;padding:6px 8px;text-align:center}
.sej-volets details.volet>summary{list-style:none;cursor:pointer;font-size:11.5px;font-weight:700;color:var(--v1);background:#F7F6FD;border-radius:8px;padding:6px 8px;text-align:center}
.sej-volets details.volet>summary::-webkit-details-marker{display:none}
.sej-volets details.volet>summary::before{content:"▸ "}
.sej-volets details.volet[open]>summary::before{content:"▾ "}
.sej-volets details.volet[open]{flex-basis:100%}
.sej-volets details.volet .corps{font-size:12px;line-height:1.5;background:#F7F6FD;border-radius:0 0 10px 10px;padding:8px 10px 10px;margin-top:-8px}
/* paliers resserrés */
.sej-v3 .sej-places{margin:10px 12px 12px;grid-column:auto;grid-row:auto;padding:6px 8px;margin-top:auto}
.sej-v3 .sej-volets{padding-bottom:10px}
.sej-v3 .sej-places .selrow{padding-top:4px;gap:4px}
.sej-v3 .sej-places .lmin-190{min-width:0;flex-basis:100%;font-size:11px}
.sej-v3 .opts{gap:3px;flex-wrap:nowrap}
.sej-v3 .sej-places .opts button{min-width:30px;padding:4px 0;font-size:11px}
.sej-v3 .sej-places .opts .lbl{display:none}
.sej-v3 .opts button.autre{padding:4px 7px;font-size:10.5px}
.sej-v3 .sej-places .price{margin-left:auto;font-size:11.5px}
.sej-v3 .champ-autre{flex-basis:100%;margin-top:4px;padding:5px 8px}
.sej-v3 .champ-autre .ok{white-space:nowrap;padding:6px 12px}

/* --- page relais des PDF (lot 20) -----------------------------------------
   Affichée dans le nouvel onglet pendant que WeasyPrint compose le document.
   Cadre centré comme les écrans de sécurité ; l'anneau reprend le motif
   d'attente du lot 18, en plus grand. Le bloc de secours reste masqué
   (attribut hidden) jusqu'au délai fixé par la vue. */
.relais{text-align:center;padding:44px 52px}
.relais-logo{position:fixed;top:26px;left:32px}
.relais-logo img{height:34px}
.relais-anneau{width:34px;height:34px;border-radius:50%;border:3px solid var(--v1);
  border-right-color:transparent;animation:attente-tour .8s linear infinite;margin:0 auto 22px}
.relais-titre{font-size:22px;margin:0 0 6px}
.relais-nom{color:var(--v1);font-weight:700}
.relais-texte{color:#4b5065;font-size:14.5px;line-height:1.55;margin:10px 0 0}
.relais-sous{color:var(--soft);font-size:12.5px;margin-top:14px}
.relais-secours{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);
  color:var(--soft);font-size:12.5px}
.relais-secours a{color:var(--v1)}
@media (prefers-reduced-motion: reduce){.relais-anneau{animation:none;border-right-color:var(--v1);opacity:.5}}

/* --- retour sur la carte du dépouillement (lot 21) ------------------------
   Le bouton « Retour au dépouillement » de la fiche vise l'ancre
   #sejour-<id> : la grille descend sur la carte, dégagée du bord par
   scroll-margin, et la carte s'allume d'un halo violet qui s'estompe. */
.sej[id]{scroll-margin-top:96px}
.sej:target{animation:sej-retour 2s ease-out}
@keyframes sej-retour{
  0%{box-shadow:0 0 0 3px var(--v1), 0 12px 34px rgba(91,75,225,.28)}
  70%{box-shadow:0 0 0 3px rgba(91,75,225,.35), 0 6px 20px rgba(91,75,225,.12)}
  100%{box-shadow:0 0 0 0 rgba(91,75,225,0)}
}
@media (prefers-reduced-motion: reduce){.sej:target{animation:none;outline:3px solid var(--v1);outline-offset:2px}}

/* --- « à partir de » sur les cartes du dépouillement (lot 22) -------------
   La valeur exacte du tri par prix et du filtre, toujours visible. */
.sej-apartirde{margin-top:6px;font-size:12px;color:var(--v1);font-weight:700}

/* ---- Lot 25 : politique de confidentialité et cookies ---- */
.pied-connexion{max-width:1000px;margin:16px auto 0;text-align:center}
.pied-connexion a{font-size:11.5px;color:var(--soft);text-decoration:none}
.pied-connexion a:hover{text-decoration:underline}
.h-politique{font-size:17px;margin:0 0 10px}
.note-tbl{font-size:12px;color:var(--soft);margin-top:8px}
.note-version{font-size:12px;color:var(--soft);border-top:1px solid var(--line);padding-top:12px}

/* Lot 30 — pastilles de saison (système commun validé le 03/10/2026) :
   été jaune-orange solaire, hiver bleu froid, printemps vert. Contrastes
   vérifiés au niveau AA (texte encre sur l'été, blanc sur l'hiver et le
   printemps). */
.pastille-saison{display:inline-block;vertical-align:middle;font-size:11.5px;font-weight:700;
  letter-spacing:.02em;padding:.18em .7em;border-radius:999px;margin-right:.35em;line-height:1.4}
.saison-ete{background:linear-gradient(90deg,#FF9F1C,#FFC21A);color:#3A2300}
.saison-hiver{background:linear-gradient(90deg,#1E5AA8,#2F6FD0);color:#fff}
.saison-printemps{background:#2E7D4F;color:#fff}
/* En-tête de campagne aux couleurs de sa saison : quatre campagnes peuvent
   vivre en même temps, on doit savoir d'un coup d'œil laquelle on regarde.
   La pastille, dans l'en-tête, passe en blanc translucide. */
.hero.bandeau-saison .pastille-saison{background:rgba(255,255,255,.22);color:inherit;
  border:1px solid rgba(255,255,255,.6)}
.hero.bandeau-saison.saison-ete .pastille-saison{background:rgba(255,255,255,.45);border-color:rgba(58,35,0,.35)}
h1 .pastille-saison{font-size:.6em}
.code-sejour{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:600;white-space:nowrap}
/* Sur le fond solaire de l'été, les boutons secondaires passent en encre :
   le blanc sur jaune ne se lit pas. */
.hero.bandeau-saison.saison-ete .cta.ghost{background:rgba(255,255,255,.5);color:#3A2300}

/* Lot 31 — réglages du service. */
.visuellement-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lien-bouton{background:none;border:0;padding:0;color:var(--v1);font:inherit;font-weight:600;cursor:pointer}
.lien-bouton:hover{text-decoration:underline}
.annuler-retrait{margin-left:8px}
.col-8{width:8%}.col-20{width:20%}.col-24{width:24%}.l-80{width:80px}
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.tuile{display:flex;flex-direction:column;gap:6px;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.tuile:hover{box-shadow:0 8px 24px rgba(91,75,225,.14);transform:translateY(-1px)}
.tuile-haut{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.tuile-ic{width:40px;height:40px;border-radius:12px;background:#F1EFFC;display:grid;place-items:center;flex:none}
.tuile-ic .ic{width:21px;height:21px;fill:none;stroke:var(--v1);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tuile-titre{font-size:15px}
.onglets-lien{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.onglets-lien a{padding:8px 14px;border-radius:999px;background:#fff;border:1.5px solid #E0DEF8;font-weight:700;font-size:12.5px;color:var(--soft);text-decoration:none}
.onglets-lien a.on{background:var(--encre,#241F49);border-color:transparent;color:#fff}
.onglets-lien a.on .pastille-saison{box-shadow:0 0 0 1px rgba(255,255,255,.6)}
.ligne-saisie{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ligne-saisie input[type=text]{flex:1 1 160px;min-width:0}
.ligne-saisie input.l-80,.ligne-saisie input.l-120{flex:0 0 auto}
.ligne-saisie input.l-110{flex:0 0 118px;width:118px}
.grille-champs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.actions-bas{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.champ-repris{background:#F1EFFC}
.pastille-zone{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;font-weight:800;font-size:12px}
/* Zones en teintes de la charte (pas de bleu hors hiver). */
.pastille-zone.zone-a{background:#EDEBFD;color:#3E2FB8}
.pastille-zone.zone-b{background:#5B4BE1;color:#fff}
.pastille-zone.zone-c{background:#241F49;color:#fff}
.zone-reglages input[type=text],.zone-reglages input[type=email],.zone-reglages input[type=time],
.zone-reglages input[type=number],.zone-reglages input[type=tel],.zone-reglages select,.zone-reglages textarea{
  padding:9px 12px;border:1.5px solid #E4E5F0;border-radius:10px;font-size:13.5px;background:#fff;max-width:100%}
.zone-reglages .champ input,.zone-reglages .champ select{width:100%}
.zone-reglages input:focus,.zone-reglages select:focus{outline:2px solid var(--v1);border-color:var(--v1)}
.zone-reglages select.champ-repris{background:#F1EFFC}
.zone-reglages td select{width:100%}
.zone-reglages ul{list-style:none;padding:0;columns:2}

/* Lot 32 — fiche transport. Six statuts identiques partout (système e1) :
   le rouge vif ne dit qu'une chose, « en retard » ; le bordeaux dit « bloqué ». */
.statut{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.statut-a_faire{border:1.5px dashed #9A97B0;color:#5F5A84;background:#fff}
.statut-brouillon{background:#F1F0F6;color:#4E4A66}
.statut-transmise{background:#EEEDF5;color:#5F5A84}
.statut-a_corriger{background:#FFF4E5;color:#8A5A00}
.statut-validee{background:#E4F7EC;color:#18794E}
.statut-en_retard{background:#E3001B;color:#fff}
.statut-bloque{background:#7A1E2E;color:#fff}
.bande-campagne{display:flex;gap:14px;align-items:center;border-radius:16px;padding:12px 18px;margin:18px 0 10px;font-size:14px}
.bande-campagne b{font-size:17px}
.bandeau-fiche{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;border-radius:16px;padding:12px 18px;margin-bottom:14px;font-size:13.5px}
.bandeau-fiche .pastille-saison{background:rgba(255,255,255,.3);color:inherit;border:1px solid rgba(255,255,255,.6)}
.bandeau-fiche.saison-ete .pastille-saison{border-color:rgba(58,35,0,.35)}
.bandeau-fiche .bandeau-droite{margin-left:auto;font-weight:700}
.bandeau-fiche .code-sejour{font-size:12.5px;opacity:.95}
.carte-sejour{margin-bottom:12px}
.titre-sejour{font-size:16px;margin-right:8px}
.pastille-periode{display:inline-block;font-size:11.5px;font-weight:700;border:1.5px solid #E0DEF8;color:var(--v1);border-radius:999px;padding:2px 9px;margin:3px 6px 3px 0;white-space:nowrap}
.row.sans-trait{border:none}
.jalon{border:1px solid #EEEDF5;border-radius:14px;padding:10px 14px}
.ligne-jalon{display:flex;gap:10px;align-items:center}
.vide-centre{text-align:center;padding:34px 18px}
.grille-deux{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.bloc-idf{border:0;padding:0;margin:0;min-width:0}
.bloc-idf legend{font-weight:800;font-size:15px;margin-bottom:8px}
.choix-segment{display:inline-flex;border:1.5px solid #E0DEF8;border-radius:999px;padding:3px;gap:3px;flex-wrap:wrap}
.choix-segment input{position:absolute;opacity:0;width:1px;height:1px}
.choix-segment label{padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--soft);cursor:pointer}
.choix-segment input:checked+label{background:var(--v1);color:#fff}
.choix-segment input:focus-visible+label{outline:2px solid var(--v1);outline-offset:2px}
.si-gare{margin-top:10px}
.bloc-idf[data-mode="HUB"] .si-gare{display:none}
.barre-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;
  background:rgba(255,255,255,.96);border-top:1px solid #EEEDF5;padding:12px 4px;margin-top:16px;z-index:5}
.barre-actions .etat-enregistrement{margin-right:auto;color:#18794E}
.barre-actions .ecarts{flex:1 1 100%;font-size:13px}
.barre-actions .ecarts textarea{width:100%;margin-top:6px}
.g-principal{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}
@media (max-width:900px){.g-principal{grid-template-columns:1fr}}
.resume-fiche .row{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:start}
@media (max-width:600px){.resume-fiche .row{grid-template-columns:1fr}}
.filtres-statut{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.filtres-statut a{text-decoration:none;padding:3px;border-radius:999px;border:2px solid transparent}
.filtres-statut a:first-child{font-weight:700;font-size:12.5px;padding:3px 12px;color:var(--soft)}
.filtres-statut a.on{border-color:var(--v1)}
.apercu-courriel{white-space:pre-wrap;font-family:inherit;font-size:13px;background:#FAFAFD;border:1px solid #EEEDF5;border-radius:12px;padding:14px;max-height:520px;overflow:auto}
.fiche-transport .champ.en-erreur input,.fiche-transport .champ.en-erreur select{border-color:#B4232C}

/* Lot 33 — page publique de la fiche région (lien reçu par courriel). */
.page-lien{background:#F6F5FB}
.lien-cadre{max-width:720px;margin:0 auto;padding:18px 16px 40px}
.lien-marque{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:12.5px;color:var(--soft)}
.lien-marque img{height:30px}
.lien-titre{font-size:22px;font-weight:800;margin:6px 0 4px;color:var(--encre,#241F49)}
.compteur label{font-weight:700}
.pas-a-pas{display:inline-flex;align-items:center;gap:6px}
.pas-a-pas input{width:72px;text-align:center;font-weight:800;font-size:16px}
.pas-a-pas button{width:40px;height:40px;border-radius:12px;border:1.5px solid #E0DEF8;background:#fff;color:var(--v1);font-size:20px;font-weight:700;cursor:pointer}
.carte-astuce{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;background:#F1EFFC}
.grand-ic{width:44px;height:44px;fill:none;stroke:#18794E;stroke-width:1.7}
.onglets-section{margin-bottom:8px}

/* Lot 35 — « À faire », « À traiter », traiter à la suite, recherche. */
.afaire-groupe{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:10px 12px 2px}
.afaire-groupe:first-child{margin-top:0}
.afaire-ligne.gravite-neutre .puce{background:#F1EFFC;color:var(--encre,#241F49)}
.afaire-ligne.gravite-rouge .puce.jours{background:#E3001B;color:#fff}
.afaire-ligne .puce.jours{flex-direction:column;line-height:1;width:44px;height:44px}
.afaire-ligne .puce.jours b{font-size:16px}
.afaire-ligne .puce.jours small{font-size:9.5px;font-weight:700;margin-top:2px}
.afaire-ligne .pastille-saison{font-size:10.5px;margin-left:6px}
.pastille-periode{display:inline-block;vertical-align:middle;font-size:10.5px;font-weight:700;padding:.12em .6em;border-radius:999px;border:1.5px solid #D5D2EE;color:var(--encre,#241F49);margin-right:.35em}
.faits-recents{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:#18794E;background:#EEF9F2;border-radius:12px;padding:10px 12px;margin-top:10px}
.faits-recents .ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;margin-top:1px}
.nav-compteur{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ECEAF6;color:var(--encre,#241F49);font-size:10.5px;font-weight:800;margin-left:6px}
.nav-lien.on .nav-compteur{background:rgba(255,255,255,.25);color:inherit}
.atraiter-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.filtres-pastilles{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}
.filtres-pastilles a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:14px;background:#fff;border:1.5px solid #E0DEF8;text-decoration:none;color:var(--encre,#241F49);font-weight:700;font-size:12.5px}
.filtres-pastilles a b{font-size:17px}
.filtres-pastilles a.on{border-color:var(--v1);box-shadow:0 0 0 2px rgba(91,75,225,.12)}
.filtres-pastilles .suite{color:var(--v1);font-size:11.5px}
.ligne-urgence td{vertical-align:middle}
.urgence-titre td{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);background:#FAFAFE}
.urgence-titre.retard td{color:#E3001B}
.barre-selection{display:flex;gap:8px;align-items:center}
.avancement{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.avancement .bloc-av{border:1.5px solid #ECEAF6;border-radius:12px;padding:10px 12px}
.avancement .jauge{height:6px;background:#EDEDF7;border-radius:999px;overflow:hidden;margin:2px 0 8px}
.avancement .jauge i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}
.avancement .row{padding:4px 0}
.suite-barre{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.suite-progres{height:6px;border-radius:999px;background:#ECEAF6;overflow:hidden;flex:1;max-width:280px}
.suite-progres i{display:block;height:100%;background:linear-gradient(90deg,var(--v1),var(--v2))}
.bandeau-annuler{display:flex;align-items:center;gap:12px;background:#241F49;color:#fff;border-radius:12px;padding:10px 14px;margin-bottom:12px}
.bandeau-annuler .f1{flex:1}
.bandeau-annuler button{background:#fff;color:#241F49;border:0;border-radius:9px;padding:6px 12px;font-weight:800;cursor:pointer}
.bandeau-annuler[hidden]{display:none}
.verifs .row .etat-ok{color:#18794E;font-weight:700}
.verifs .row .etat-ecart{color:#B26A00;font-weight:700}
.verifs .row .etat-manque{color:#7A1E2E;font-weight:700}
.suite-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
.suite-actions kbd,.raccourci{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;border:1px solid currentColor;border-radius:5px;padding:0 5px;margin-left:6px;opacity:.75}
.motif-correction[hidden]{display:none}
.bouton-recherche{display:inline-flex;align-items:center;gap:10px;background:#F7F7FC;border:1.5px solid #ECEAF6;border-radius:12px;padding:8px 12px;color:var(--soft);font:inherit;font-size:13px;cursor:pointer;min-width:260px}
.bouton-recherche .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.bouton-recherche .raccourci{margin-left:auto}
.palette{margin:10vh auto auto;border:0;border-radius:18px;padding:0;width:min(620px,94vw);box-shadow:0 24px 60px rgba(36,31,73,.3)}
.palette::backdrop{background:rgba(36,31,73,.35)}
.palette input{width:100%;border:0;border-bottom:1.5px solid #ECEAF6;padding:16px 18px;font:inherit;font-size:16px;outline:none}
.palette-resultats{max-height:60vh;overflow:auto;padding:6px 0}
.palette-famille{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding:10px 18px 4px}
.palette-resultats a{display:flex;justify-content:space-between;gap:10px;padding:9px 18px;text-decoration:none;color:var(--encre,#241F49)}
.palette-resultats a small{color:var(--soft)}
.palette-resultats a.actif,.palette-resultats a:hover{background:#F1EFFC}
.palette-pied{font-size:11.5px;color:var(--soft);padding:9px 18px;border-top:1px solid #ECEAF6}
@media(max-width:920px){.bouton-recherche{min-width:0}.bouton-recherche .raccourci{display:none}}
/* Lot 36 — plan de transport. */
.numero-navette{display:inline-block;font-family:'IBM Plex Mono',monospace;font-weight:700;background:#241F49;color:#fff;border-radius:8px;padding:3px 8px;font-size:12.5px}
.numero-navette.vehicule-taxi{background:#E07B2C}
.numero-navette.vehicule-autocar{background:#5F5A84}
.tbl-plan td{vertical-align:top}
.ligne-alerte td{background:#FFFBF2}
.ligne-note td{padding-top:0;border-top:0}
details.ajuster summary{list-style:none;cursor:pointer;display:inline-block}
details.ajuster summary::-webkit-details-marker{display:none}
.panneau-ajuster{text-align:left;background:#F7F7FC;border-radius:12px;padding:10px;margin-top:8px;min-width:520px}
.pastille-periode.pastille-claire{border-color:rgba(255,255,255,.6);color:inherit}
.hero.bandeau-saison.saison-ete .pastille-periode.pastille-claire{border-color:rgba(58,35,0,.35)}
@media(max-width:920px){.panneau-ajuster{min-width:0}}
.ok-texte{color:#18794E;font-weight:700}
.statut-depose{background:#EEEDF5;color:#5F5A84}.statut-verifie{background:#E4F7EC;color:#18794E}
.apercu-courriel{white-space:pre-wrap;font-family:inherit;font-size:12.5px;background:#F7F7FC;border-radius:12px;padding:12px;max-height:420px;overflow:auto}
.grand-montant{font-size:28px;font-weight:800;font-family:"IBM Plex Mono",monospace;margin:4px 0 10px}.bloc-apercu{border:2px solid var(--v1)}
