/* =====================================================================================================
   NYBA Tontine — une seule feuille de style, même langage visuel que NYBA Edu
   (barre latérale bleu nuit, barre du haut claire, bandeaux en dégradé, cartes blanches, Poppins + Inter)
   ===================================================================================================== */


:root{
  --nuit:#0b1a33;--bleu-fonce:#0b2a5b;--bleu:#1d4fa3;--bleu-vif:#1570ef;--vert-nyba:#2fb457;--ciel:#8fb4ff;
  --texte:#16233d;--texte-doux:#3c4a63;--gris:#6b7a93;--gris-clair:#94a3b8;
  --bordure:#e3e9f2;--bordure-forte:#cdd8ea;--fond:#f3f6fb;--fond-2:#eef2f8;--blanc:#fff;
  --vert:#059669;--vert-fond:#e7f8f0;--rouge:#d63c3c;--rouge-fond:#fdecec;--ambre:#b7791f;--ambre-fond:#fff5e1;
  --violet:#7c3aed;--violet-fond:#f1ebfe;--bleu-fond:#eaf0fc;
  --ombre:0 1px 2px rgba(16,33,66,.04),0 4px 14px rgba(16,33,66,.05);
  --ombre-forte:0 12px 30px rgba(16,33,66,.12);
  --rayon:16px;--rayon-petit:11px;--largeur-menu:268px;
  --titres:'Poppins','Segoe UI',Arial,sans-serif;--corps:'Inter','Segoe UI',Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  /* anciens noms encore utilisés par quelques gabarits */
  --carte:#fff;--bord:var(--bordure);--bord-fort:var(--bordure-forte);--accent:var(--bleu-vif);--accent-pale:var(--bleu-fond);
  --vert-pale:var(--vert-fond);--rouge-pale:var(--rouge-fond);--orange:var(--ambre);--orange-pale:var(--ambre-fond);
}

/* Navigation fluide : fondu entre deux pages, la barre latérale reste en place */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}
.barre-laterale{view-transition-name:barre-laterale}
.barre-haut{view-transition-name:barre-haut}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--corps);background:var(--fond);color:var(--texte);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--bleu-vif)}
p{margin:0 0 .8rem}
::selection{background:rgba(21,112,239,.18)}
svg.ic,.ic{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3{font-family:var(--titres);color:var(--texte);letter-spacing:-.2px;line-height:1.25}
h1{font-size:24px;font-weight:700;margin:0 0 18px}
h2{font-size:17px;font-weight:700;margin:0 0 14px}
h3{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--gris);margin:18px 0 10px}
.petit{font-size:12.5px;color:var(--gris)}
.mono{font-family:var(--corps);font-variant-numeric:tabular-nums;font-weight:500}
td,th,.mono,.grand,.cartes b{font-variant-numeric:tabular-nums}
.erreur{color:var(--rouge)}
.vide{text-align:center;color:var(--gris);padding:24px 0}
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Barre latérale ---------- */
.menu-toggle{position:absolute;opacity:0;pointer-events:none}
.barre-laterale{position:fixed;inset:0 auto 0 0;width:var(--largeur-menu);z-index:40;display:flex;flex-direction:column;color:#c5d3ee;
  background:radial-gradient(500px 300px at 0% 0%,#1f3f7a 0%,transparent 70%),linear-gradient(180deg,var(--nuit) 0%,var(--bleu-fonce) 100%);
  box-shadow:4px 0 24px rgba(3,10,30,.12);transition:transform .25s ease}
.barre-laterale .marque{display:flex;align-items:center;gap:12px;padding:22px 22px 0;text-decoration:none;color:#fff}
.barre-laterale .embleme{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;background:#fff;
  border:1px solid rgba(255,255,255,.4);box-shadow:0 4px 14px rgba(3,10,30,.25)}
.barre-laterale .embleme img{width:30px;height:auto}
.barre-laterale .nom-app{display:block;font-family:var(--titres);font-weight:700;font-size:16px;line-height:1.2;letter-spacing:.6px}
.barre-laterale .nom-app em{font-style:normal;font-weight:600;color:#8fe24a}
.barre-laterale .sous-titre{display:block;font-size:11.5px;color:var(--ciel);line-height:1.3;margin-top:2px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barre-laterale .lisere{display:flex;width:44px;height:3px;border-radius:3px;overflow:hidden;margin:14px 22px 0}
.barre-laterale .lisere span{flex:1}
.barre-laterale .portail{margin:18px 16px 6px;padding:8px 12px;border-radius:10px;font-size:12px;font-weight:600;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);color:#dbe6ff;display:flex;align-items:center;gap:8px}
.barre-laterale .portail .point{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 4px rgba(52,211,153,.18);flex-shrink:0}
.barre-laterale .portail b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu{flex:1;overflow-y:auto;padding:8px 12px 16px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.menu .menu-titre{font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#6f86b3;padding:16px 12px 6px;margin:0}
.menu a{position:relative;display:flex;align-items:center;gap:12px;padding:9px 12px;margin:2px 0;border-radius:10px;text-decoration:none;
  font-size:13.5px;font-weight:500;color:#c5d3ee;transition:background .15s,color .15s}
.menu a .ic{color:#8ea3c9;transition:color .15s}
.menu a:hover{background:rgba(255,255,255,.06);color:#fff}
.menu a:hover .ic{color:var(--ciel)}
.menu a.actif{background:linear-gradient(90deg,rgba(61,111,209,.35),rgba(61,111,209,.12));color:#fff;font-weight:600}
.menu a.actif .ic{color:#fff}
.menu a.actif::before{content:'';position:absolute;left:-12px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--vert-nyba),#05a4ff)}
.menu a .compteur{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#2fb457;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.menu.menu-aide{flex:none;overflow:visible;padding:6px 12px 8px;border-top:1px solid rgba(255,255,255,.08)}
.utilisateur{display:flex;align-items:center;gap:10px;margin:0 12px 14px;padding:12px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--titres);font-weight:700;font-size:13.5px;color:#fff;
  background:linear-gradient(135deg,var(--bleu-vif),#6ee7b7);text-transform:uppercase}
.utilisateur .qui{min-width:0;flex:1}
.utilisateur .qui strong{display:block;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utilisateur .qui span{font-size:11.5px;color:#8ea3c9}
.utilisateur .sortir{color:#8ea3c9;padding:8px;border-radius:9px;display:flex;text-decoration:none;background:none;border:0;cursor:pointer;font:inherit}
.utilisateur form{display:flex;margin:0}
.utilisateur .sortir:hover{color:#fff;background:rgba(214,60,60,.35)}
.utilisateur .sortir.cle:hover{background:rgba(255,255,255,.12)}

/* ---------- Zone principale ---------- */
.principal{margin-left:var(--largeur-menu);min-height:100vh;display:flex;flex-direction:column}
.barre-haut{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:14px 36px;background:rgba(243,246,251,.88);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(227,233,242,.8)}
.bouton-menu{display:none;background:#fff;border:1px solid var(--bordure);border-radius:10px;padding:8px;cursor:pointer;color:var(--texte)}
.salut{min-width:0}
.salut strong{font-family:var(--titres);font-size:17px;font-weight:700;display:block;line-height:1.25}
.salut span{font-size:12.5px;color:var(--gris)}
.barre-haut .droite{margin-left:auto;display:flex;align-items:center;gap:10px}
.badge-tontine{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--bordure);
  font-size:12.5px;font-weight:600;color:var(--texte-doux);box-shadow:var(--ombre);white-space:nowrap}
.badge-tontine .point{width:7px;height:7px;border-radius:50%;background:var(--vert)}
.badge-tontine.preparation .point{background:var(--ambre)}.badge-tontine.termine .point{background:var(--gris-clair)}
main.contenu{padding:28px 36px 56px;flex:1;animation:apparaitre .3s ease both;min-width:0}
@keyframes apparaitre{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Sélecteur de langue FR | EN */
form.langue{display:inline-flex;border:1px solid var(--bordure);border-radius:999px;overflow:hidden;background:#fff;margin:0}
form.langue button{font-family:inherit;font-size:11.5px;font-weight:700;letter-spacing:.3px;padding:6px 10px;border:none;background:transparent;color:var(--gris);cursor:pointer}
form.langue button.actif{background:var(--bleu-fonce);color:#fff}

/* ---------- Bandeau d'accueil ---------- */
.bandeau{position:relative;overflow:hidden;border-radius:20px;padding:26px 30px;margin-bottom:24px;color:#fff;
  background:radial-gradient(600px 300px at 100% 0%,rgba(110,231,183,.22),transparent 60%),linear-gradient(135deg,var(--bleu-fonce) 0%,var(--bleu) 60%,var(--bleu-vif) 100%);
  box-shadow:0 16px 36px rgba(19,40,79,.25);display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.bandeau::before{content:'';position:absolute;inset:0;opacity:.08;pointer-events:none;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:36px 36px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);mask-image:linear-gradient(90deg,transparent,#000 70%)}
.bandeau>*{position:relative}
.bandeau .texte{flex:1;min-width:240px}
.bandeau h1{color:#fff;font-size:24px;font-weight:800;letter-spacing:-.5px;margin:0}
.bandeau p{color:#d3e0fa;margin:6px 0 0;font-size:14px;max-width:620px}
.bandeau .actions{display:flex;gap:10px;flex-wrap:wrap}
.bandeau .actions a,.bandeau .actions button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;text-decoration:none;font:600 13px var(--corps);
  color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);transition:background .15s;cursor:pointer}
.bandeau .actions a:hover,.bandeau .actions button:hover{background:rgba(255,255,255,.22)}
.bandeau .actions .principal-action{background:#fff;color:var(--bleu-fonce);border-color:#fff}
.bandeau .actions .principal-action:hover{background:#eef4ff}
.bandeau form{margin:0}

/* ---------- En-tête de page ---------- */
.entete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:6px;flex-wrap:wrap}
.entete h1{margin-bottom:4px}
.entete .petit{margin:0 0 18px}
nav.onglets{display:none}

/* ---------- Cartes ---------- */
.carte{position:relative;background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);padding:20px 22px;margin-bottom:18px;box-shadow:var(--ombre)}
.carte>h2:first-child{margin-top:0}
.carte p:last-child{margin-bottom:0}
.carte h3:first-child{margin-top:0}
a.carte{display:block;color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
a.carte:hover{transform:translateY(-2px);box-shadow:var(--ombre-forte);border-color:#c9d6ee}
a.carte.archivee{opacity:.7}
.cartes,.cartes-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.cartes .carte,.cartes-chiffres .carte{margin:0;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:20px 22px;transition:transform .2s,box-shadow .2s}
.cartes .carte{flex-direction:column-reverse;justify-content:flex-end}
.cartes .carte:hover,.cartes-chiffres .carte:hover{transform:translateY(-2px);box-shadow:var(--ombre-forte)}
.cartes .carte::after,.cartes-chiffres .carte::after{content:'';position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(21,112,239,.09),transparent 70%);pointer-events:none}
.cartes .carte::before,.cartes-chiffres .carte::before{content:'';position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--bleu-vif),#6ee7b7)}
.cartes .carte:nth-child(4n+2)::before{background:linear-gradient(90deg,var(--vert),#6ee7b7)}
.cartes .carte:nth-child(4n+3)::before{background:linear-gradient(90deg,#f59e0b,#fcd34d)}
.cartes .carte:nth-child(4n+4)::before{background:linear-gradient(90deg,var(--violet),#c4b5fd)}
.cartes span,.cartes-chiffres .petit:first-child{font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--gris)}
.cartes b{font-family:var(--titres);font-size:24px;font-weight:800;color:var(--texte);letter-spacing:-.5px;line-height:1.15}
.grand{font-family:var(--titres);font-size:22px;font-weight:800;letter-spacing:-.4px;margin:2px 0 6px;color:var(--texte)}
.deux{display:grid;grid-template-columns:minmax(300px,1fr) minmax(0,1.6fr);gap:18px;align-items:start}
.colonne .carte:last-child{margin-bottom:0}
.colonne .carte:first-child:has(.progression){border-color:#c9d8f6;background:linear-gradient(160deg,#f4f8ff 0,#fff 65%)}
.colonne .carte:first-child .grand{font-size:28px}

/* Liste des tontines */
.liste-tontines{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:22px}
.liste-tontines a.carte{margin:0}
.tontine-carte{display:flex!important;flex-direction:column;gap:14px;padding:20px 22px}
.tontine-carte::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;border-radius:var(--rayon) var(--rayon) 0 0;background:linear-gradient(90deg,var(--bleu-vif),#6ee7b7)}
.tc-tete{display:flex;align-items:center;gap:14px}
.tc-initiale{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-family:var(--titres);font-weight:800;font-size:19px;color:var(--bleu-vif);background:var(--bleu-fond)}
.tc-titre{display:flex;flex-direction:column;min-width:0;flex:1}
.tc-titre b{font-family:var(--titres);font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-fleche{color:var(--gris-clair);transition:transform .15s,color .15s}
a.tontine-carte:hover .tc-fleche{transform:translateX(3px);color:var(--bleu-vif)}
.tc-pied{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:var(--rayon-petit);border:1.5px solid var(--bordure);
  background:#fff;color:var(--texte-doux);text-decoration:none;font:600 13.5px/1.2 var(--corps);cursor:pointer;
  transition:transform .15s,box-shadow .15s,border-color .15s,color .15s,background .15s}
.btn:hover{border-color:#c9d6ee;color:var(--bleu-vif)}
.btn:active{transform:translateY(1px)}
.btn.plein{border:none;color:#fff;font-family:var(--titres);font-weight:700;padding:10.5px 18px;
  background:linear-gradient(135deg,var(--bleu) 0%,var(--bleu-vif) 100%);box-shadow:0 6px 16px rgba(29,79,163,.25)}
.btn.plein:hover{color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px rgba(29,79,163,.32)}
.btn.danger{color:var(--rouge);border-color:#f3c4c4}
.btn.danger:hover{background:var(--rouge-fond);border-color:var(--rouge);color:var(--rouge)}
.btn.large{width:100%;padding:12px 18px;font-size:14.5px;margin-top:6px}
.btn.whatsapp{border-color:#9ddbb6;color:#13804a;background:#f1fbf5}
.btn.whatsapp:hover{border-color:#25a05a;background:#e3f7eb;color:#0f6e3e}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--bleu-vif);outline-offset:2px}
.actions-carte,.actions-ordre,.actions-compte,.actions-entete{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.actions-ordre form,.actions-compte form,.actions-carte form{margin:0}
.actions-ligne{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.actions-ligne form{display:inline-flex;margin:0}
.actions-ligne .btn{padding:6px 11px;font-size:12.5px}
td.actions-cellule{text-align:right;min-width:14rem}

/* ---------- Pastilles d'état ---------- */
.pastille{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.5;
  background:var(--fond-2);color:var(--gris)}
.pastille::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.payee,.verse{background:var(--vert-fond);color:#05603f}
.partielle{background:var(--ambre-fond);color:#8a5a12}
.retard{background:var(--rouge-fond);color:#a3231b}
.attendue,.a_venir{background:var(--fond-2);color:var(--gris)}
.en_cours{background:var(--bleu-fond);color:var(--bleu)}

/* ---------- Tableaux ---------- */
table{width:100%;border-collapse:separate;border-spacing:0}
th,td{text-align:left;padding:12px 14px;font-size:13.5px;vertical-align:middle}
th{background:#f7f9fc;color:#64748b;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--bordure)}
td{border-top:1px solid #eef2f7;color:var(--texte-doux)}
tbody tr:first-child td,thead+tbody tr:first-child td{border-top:none}
tr:hover td{background:#f8fbff}
.carte>table,.carte>.table{border:1px solid var(--bordure);border-radius:12px;overflow:hidden}
.carte>table th:first-child,.carte>.table th:first-child{border-top-left-radius:12px}
th.d,td.d,td.num{text-align:right}
td.petit{color:var(--gris)}
td.tel{white-space:nowrap}
tr.ligne-alerte td{background:#fff4f4}
td form{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0}
td form input,td form select{width:auto;max-width:9.5rem;padding:6px 9px;font-size:13px}
.annuler{display:inline-block;margin-left:8px}
.annuler summary{cursor:pointer;color:var(--rouge);font-size:12.5px;list-style:none}
.annuler summary::-webkit-details-marker{display:none}
.annuler[open]{display:block;margin:6px 0 0}

/* ---------- Formulaires ---------- */
input,select,textarea{width:100%;font-family:inherit;font-size:13.5px;color:var(--texte);background:#fff;padding:9px 12px;border:1.5px solid #dbe3ef;border-radius:10px;
  transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:#c3d1ea}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--bleu-vif);box-shadow:0 0 0 4px rgba(21,112,239,.13)}
input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--bleu-vif);vertical-align:middle;padding:0}
input[type=file]{font-size:13px;color:var(--texte-doux);padding:10px;border:1.5px dashed #c3d1ea;border-radius:12px;background:#f8fbff;cursor:pointer}
input[type=file]::file-selector-button{font:700 12.5px var(--titres);color:#fff;background:linear-gradient(135deg,var(--bleu),var(--bleu-vif));border:none;border-radius:9px;padding:8px 14px;margin-right:12px;cursor:pointer}
textarea{min-height:100px;resize:vertical}
form.formulaire{max-width:720px}
.carte form.formulaire{max-width:680px}
.champ{margin:0 0 16px}
.champ label,form.formulaire label{display:block;font-size:13px;font-weight:600;color:var(--texte-doux);margin-bottom:6px}
.champ small,.helptext{display:block;margin-top:5px;font-size:12px;color:var(--gris);line-height:1.45}
.champ small.erreur{color:var(--rouge);font-weight:500}
form.formulaire p{margin:0 0 14px}
form.formulaire ul.errorlist{list-style:none;margin:4px 0;padding:0;color:var(--rouge);font-size:12.5px}
label.case{display:flex;gap:8px;align-items:center;margin:6px 0 10px;font-size:13.5px;font-weight:500;cursor:pointer}
.carte form.formulaire.deux-colonnes{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.deux-colonnes .pleine-largeur{grid-column:1/-1}
.champ-assoc{display:flex;flex-direction:column;gap:2px;margin:0}
.aide-assoc{margin:4px 0 10px;padding:9px 12px;background:var(--fond-2);border-radius:10px}
.lien-invitation{font:12px var(--mono);min-width:12rem;max-width:20rem}
form.renvoi{display:flex;flex-direction:column;gap:8px;margin-top:16px}
td form.quota{display:flex;gap:6px;align-items:center}

/* Encaissement d'une cotisation */
form.encaisser{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
form.encaisser>*{flex:1 1 9.5rem;width:auto;max-width:none;margin:0}
form.encaisser>button,form.encaisser>.btn{flex:0 0 auto}
form.encaisser input[name=montant]{flex-basis:8rem}
td form.encaisser{margin:0}

/* ---------- Messages ---------- */
.messages p{padding:11px 14px;border-radius:12px;margin:0 0 14px;font-size:13.5px;border:1px solid transparent}
.messages .success{background:var(--vert-fond);color:#05603f;border-color:#a7e3c8}
.messages .error{background:var(--rouge-fond);color:#8f1f1f;border-color:#f3b9b9}
.messages .info,.messages .warning{background:#eef3fc;color:var(--bleu);border-color:#c9d8f6}
.bandeau-archive{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 16px;margin-bottom:16px;border-radius:12px;
  background:var(--ambre-fond);color:#7a4b00;border:1px solid #f0c36d;font-weight:600;font-size:13.5px}
.bandeau-archive form{margin:0}
.bandeau-info{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:#f4f8ff;border-color:#c9d8f6}
.bandeau-info p{margin:0}.bandeau-info form{margin:0}
.zone-sensible{border-color:#f3c4c4}
.relance{margin:8px 0 0}

/* ---------- Progression ---------- */
.progression{height:10px;border-radius:999px;background:#edf1f7;overflow:hidden;margin:10px 0 6px}
.progression>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bleu-vif),#34d399);transition:width .4s}
.progression.complet>i{background:linear-gradient(90deg,#34d399,var(--vert))}
.legende{display:flex;justify-content:space-between;font-size:12px;color:var(--gris)}

/* ---------- Tour, séance, cotisations ---------- */
.liste-cotisations{padding:4px 22px}
.cotis{padding:14px 0;border-bottom:1px solid #eef2f7}.cotis:last-child{border-bottom:0}
.cotis-tete{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cotis-chiffres{display:flex;gap:22px;flex-wrap:wrap;margin:6px 0;font-size:12.5px;color:var(--gris)}
.cotis-chiffres b{display:block;color:var(--texte);font-size:14.5px}
.paiement{padding:3px 0}
.empreinte{font:11px/1.3 var(--mono);color:var(--gris);margin-top:3px;word-break:break-all}
.seance-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.operation{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid #eef2f7;font-size:13.5px}
.operation:last-of-type{border-bottom:0}.operation .mono{flex:none;width:6.4rem;color:var(--gris)}

/* Ordre des tours */
table.ordre td form{margin:0}
td.fleches{white-space:nowrap}td.fleches form{display:inline-flex}
td.fleches .btn{padding:5px 10px}
table.ordre tr.verse-ligne td{color:var(--gris)}
table.ordre tr.modifie td{background:var(--bleu-fond)}
form.enregistrer-ordre{max-width:480px;margin-top:16px}

/* Parts, associations, cagnottes */
.part-bloc{border:1px solid var(--bordure);border-radius:12px;padding:12px 14px;margin:12px 0}
.part-bloc.incomplete{border-color:#f3c4c4;background:#fff8f8}
.part-tete{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
form.association{display:grid;grid-template-columns:minmax(8rem,1.2fr) 7rem minmax(7rem,.9fr) minmax(8rem,1fr) auto;gap:6px;align-items:center;padding:6px 0;border-top:1px dashed var(--bordure)}
form.association input,form.association select{padding:6px 9px;font-size:13px}
.nom-assoc{font-weight:600}
form.cagnotte-ligne{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.cagnotte-ligne input{width:auto;min-width:9rem}
ul.repartition{margin:4px 0 0;padding-left:18px}

/* ---------- Démarrage d'une tontine ---------- */
.progression-d{background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);box-shadow:var(--ombre);padding:18px 22px;margin-bottom:20px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.progression-d .pct{font-family:var(--titres);font-size:34px;font-weight:800;color:var(--bleu);min-width:90px}
.progression-d .barre{flex:1;min-width:200px}
.progression-d .jauge{height:12px;border-radius:999px;background:#edf1f7;overflow:hidden}
.progression-d .jauge>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bleu-vif),#34d399);transition:width .4s}
.progression-d .legende-d{font-size:13px;color:var(--texte-doux);margin-top:8px}
.etapes-d{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.etape-d{background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);padding:14px 18px;display:flex;gap:16px;align-items:center;box-shadow:var(--ombre);transition:box-shadow .2s}
.etape-d:hover{box-shadow:var(--ombre-forte)}
.etape-d .num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0;background:#eef1f6;color:var(--gris)}
.etape-d.fait .num{background:var(--vert);color:#fff;box-shadow:0 0 0 4px var(--vert-fond)}
.etape-d.partiel .num{background:var(--ambre-fond);color:var(--ambre);border:2px solid var(--ambre)}
.etape-d.ignore{opacity:.6}
.etape-d.prochaine{border-color:var(--bleu-vif);box-shadow:0 0 0 3px rgba(21,112,239,.12)}
.etape-d .corps{flex:1;min-width:0}
.etape-d .titre{font-weight:700;font-size:14.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--texte)}
.etape-d .pourquoi{font-size:12.5px;color:var(--gris);margin-top:2px}
.etape-d .detail{font-size:12.5px;margin-top:4px;color:var(--texte-doux)}
.etape-d .actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}
.etape-d .actions form{margin:0}
.etiquette-d{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:999px;background:#eef1f6;color:var(--gris)}
.etiquette-d.oblig{background:var(--bleu-fond);color:var(--bleu)}
.lien-discret{background:none;border:none;padding:0;font-family:inherit;font-size:11.5px;color:var(--gris);cursor:pointer;text-decoration:underline}
a.bandeau-demarrage{display:flex;align-items:center;gap:16px;padding:14px 18px;margin-bottom:20px;border-radius:var(--rayon);text-decoration:none;color:var(--texte);
  background:linear-gradient(135deg,#f4f8ff,#fff);border:1px solid #c9d8f6;box-shadow:var(--ombre)}
a.bandeau-demarrage .pct{font-family:var(--titres);font-weight:800;font-size:22px;color:var(--bleu)}
a.bandeau-demarrage .jauge{height:8px;border-radius:999px;background:#e3eaf6;overflow:hidden;margin-top:6px}
a.bandeau-demarrage .jauge>div{height:100%;background:linear-gradient(90deg,var(--bleu-vif),#34d399)}
a.bandeau-demarrage>div:nth-child(2){flex:1;min-width:0}

/* ---------- Guide d'utilisation ---------- */
.guide-roles{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}
.guide-roles a{padding:8px 16px;border-radius:999px;background:#fff;border:1.5px solid var(--bordure);color:var(--texte-doux);text-decoration:none;font-size:13px;font-weight:600;transition:all .15s}
.guide-roles a:hover:not(.actif){border-color:var(--bleu-vif);color:var(--bleu-vif)}
.guide-roles a.actif{background:linear-gradient(135deg,var(--bleu),var(--bleu-vif));color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(29,79,163,.25)}
.guide-sommaire{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.guide-sommaire a{font-size:12.5px;font-weight:600;color:var(--bleu-vif);text-decoration:none;padding:5px 11px;border-radius:999px;background:var(--bleu-fond)}
.guide-section{scroll-margin-top:90px}
.guide-section h2{display:flex;align-items:center;gap:12px}
.guide-section h2 .n{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--bleu),var(--bleu-vif));flex-shrink:0}
ol.guide-etapes{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--texte-doux)}
ol.guide-etapes li::marker{color:var(--bleu-vif);font-weight:700}
.guide-conseil{margin-top:12px;padding:10px 14px;border-radius:12px;background:var(--vert-fond);color:#05603f;font-size:13px}

/* ---------- Double authentification, appareils ---------- */
.code-saisie{font:600 22px/1 var(--mono)!important;letter-spacing:.35em;text-align:center}
.qr img{width:200px;height:200px;border:1px solid var(--bordure);border-radius:14px;padding:8px;background:#fff;margin:10px 0}
.etapes{padding-left:20px;display:grid;gap:18px}
.codes-secours{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:8px;margin:16px 0}
.codes-secours span{font-family:var(--mono);padding:8px 11px;border:1px dashed var(--bordure-forte);border-radius:10px;text-align:center;font-size:14px}

/* Champ de mot de passe avec œil */
.champ-mdp{position:relative;display:block}
.champ-mdp>input{padding-right:46px}
.oeil-mdp{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--gris);cursor:pointer;padding:0}
.oeil-mdp:hover{color:var(--texte);background:var(--fond-2)}
.oeil-mdp .ic{width:20px;height:20px}

/* ---------- Documents imprimables (toujours clairs) ---------- */
.papier{background:#fff;color:#1f1f1f;max-width:210mm;margin:0 auto 32px;padding:16mm 16mm 12mm;border:1px solid var(--bordure);border-radius:10px;box-shadow:var(--ombre);font-size:13.5px;line-height:1.4}
.papier-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:12px;border-bottom:2px solid var(--bleu-fonce)}
.papier-marque{display:flex;align-items:center;gap:12px}
.papier-logo{max-height:64px;max-width:140px;object-fit:contain}
.papier-groupe{font-family:var(--titres);font-size:19px;font-weight:700;margin:0;color:var(--bleu-fonce)}.papier-sous{margin:2px 0 0;color:#666}
.papier-titre{text-align:right}.papier-titre h1{font-size:15px;letter-spacing:.12em;margin:0;font-weight:700;color:var(--bleu-fonce)}.papier-titre p{margin:2px 0 0;color:#555}
.papier-infos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 16px;margin:16px 0;padding:0}
.papier-infos dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#777}.papier-infos dd{margin:2px 0 0;font-weight:600;color:#1f1f1f}
.papier-benef{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#f4f8ff;border-left:4px solid var(--bleu-vif);margin:0 0 16px}
.papier-benef span{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#777}.papier-benef b{font-size:18px;color:#1f1f1f}.papier-benef small{color:#555}
.papier-table{width:100%;border-collapse:collapse;font-size:13px;color:#1f1f1f}
.papier-table th{background:var(--bleu-fonce);color:#fff;text-align:left;padding:7px 9px;font-size:10.5px;letter-spacing:.06em}
.papier-table td{padding:6px 9px;border-top:0;border-bottom:1px solid #e3e6ec;vertical-align:top;background:#fff;color:#1f1f1f}
.papier-table tr:hover td{background:#fff}
.papier-table tr.debut td{border-top:1px solid #cfd6e2}
.papier-table .c{width:2.2rem;text-align:center;color:#666}.papier-table .d{text-align:right;white-space:nowrap}
.papier-table small{color:#777}.papier-table .reste{color:#b3402a}
.papier-totaux{display:flex;justify-content:flex-end;margin:12px 0 0}
.papier-totaux.gauche{justify-content:flex-start}.papier-totaux.gauche table{min-width:70%}
.papier-totaux table{min-width:55%;border-collapse:collapse;color:#1f1f1f}
.papier-totaux td{padding:5px 9px;border-top:0;border-bottom:1px solid #e3e6ec;background:#fff;color:#1f1f1f}.papier-totaux td:last-child{text-align:right}
.papier-totaux tr.fort td{font-weight:700;font-size:15px;border-top:2px solid var(--bleu-fonce);border-bottom:0}
.papier-note{margin:10px 0 0;color:#555;font-size:12.5px}
.papier-h2{font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:22px 0 8px;color:var(--bleu-fonce)}
.papier-signatures,.signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:40px 0 18px;color:#1f1f1f}
.papier-signatures div,.signatures div{display:flex;flex-direction:column;gap:4px}.papier-signatures span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#666}
.papier-signatures i,.signatures i{display:block;height:48px;border-bottom:1px solid #555}
.papier-pied{margin-top:16px;padding-top:8px;border-top:1px solid #dde3ec;font-size:11px;color:#888;text-align:center}

/* ---------- Barre du bas (téléphone) ---------- */
.barre-bas{display:none}
.voile{display:none}

/* ---------- Écrans moyens et petits ---------- */
@media(max-width:1000px){
  .barre-laterale{transform:translateX(-100%)}
  .menu-toggle:checked~.barre-laterale{transform:none}
  .menu-toggle:checked~.voile{display:block;position:fixed;inset:0;z-index:35;background:rgba(11,26,51,.45)}
  .principal{margin-left:0}
  .bouton-menu{display:flex}
  .barre-haut{padding:12px 18px}
  main.contenu{padding:20px 18px 40px}
  .deux{grid-template-columns:1fr}
}
@media(max-width:860px){
  html{scroll-padding-bottom:5rem}
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  .barre-bas{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;justify-content:space-around;align-items:stretch;
    padding:5px 6px calc(5px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
    border-top:1px solid var(--bordure);box-shadow:0 -6px 20px -10px rgba(16,33,66,.25)}
  .barre-bas a,.barre-bas label{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 3px;border-radius:12px;
    color:var(--gris);text-decoration:none;font-size:10.5px;font-weight:600;min-width:0;cursor:pointer}
  .barre-bas span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .barre-bas .ic{width:21px;height:21px}
  .barre-bas a.actif{color:var(--bleu-vif);background:var(--bleu-fond)}
  .badge-tontine{display:none}
  .salut strong{font-size:15px}
  h1{font-size:21px}
  .bandeau{padding:20px;border-radius:18px}.bandeau h1{font-size:20px}
  .bandeau .actions{width:100%}.bandeau .actions a,.bandeau .actions button{flex:1 1 auto;justify-content:center}
  .carte{padding:16px}
  .cartes,.cartes-chiffres{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
  .cartes .carte,.cartes-chiffres .carte{padding:14px}
  .cartes b{font-size:19px}.colonne .carte:first-child .grand{font-size:23px}
  .liste-tontines{grid-template-columns:1fr}
  .actions-carte,.actions-ordre{flex-direction:column;align-items:stretch}
  .actions-carte .btn,.actions-ordre .btn,.actions-ordre form,.actions-compte form,.actions-compte .btn{width:100%}
  input,select,textarea{font-size:16px;min-height:44px}
  input[type=checkbox],input[type=radio]{min-height:0;width:20px;height:20px}
  .btn{min-height:42px}
  .actions-ligne{justify-content:stretch}.actions-ligne form{flex:1 1 auto}.actions-ligne .btn{width:100%}
  form.encaisser>*,form.encaisser>button,form.encaisser>.btn{flex:1 1 100%}
  form.association{grid-template-columns:1fr}
  .carte form.formulaire.deux-colonnes{grid-template-columns:1fr}
  .seance-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .seance-nav h2{grid-column:1/-1;order:-1;text-align:center;margin:0 0 4px}
  .seance-nav .btn{width:100%}
  .bandeau-archive,.bandeau-info{flex-direction:column;align-items:flex-start}
  .etape-d{flex-wrap:wrap}.etape-d .actions{align-items:flex-start;width:100%}
  a.bandeau-demarrage{flex-wrap:wrap}
  /* tableaux -> cartes (mobile.js) */
  table.en-cartes,table.en-cartes tbody{display:block}
  table.en-cartes thead,table.en-cartes tr.ligne-entete{display:none}
  .carte>table.en-cartes{border:0;border-radius:0;overflow:visible}
  .carte:has(>table.en-cartes){background:transparent;border:0;box-shadow:none;padding:0}
  .carte:has(>table.en-cartes)>h2{padding:0 4px}
  table.en-cartes tr{display:block;background:#fff;border:1px solid var(--bordure);border-radius:14px;box-shadow:var(--ombre);padding:8px 14px;margin-bottom:10px}
  table.en-cartes tr:hover td{background:transparent}
  table.en-cartes td{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:7px 0;border:0;text-align:right}
  table.en-cartes td+td{border-top:1px dashed #eef2f7}
  table.en-cartes td::before{content:attr(data-label);flex:none;max-width:46%;text-align:left;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#8a97ad}
  table.en-cartes td:first-child{text-align:left;font-size:14.5px;font-weight:700;color:var(--texte);padding-top:4px}
  table.en-cartes td:first-child::before,table.en-cartes td.sans-titre::before,table.en-cartes td[data-label=""]::before{display:none}
  table.en-cartes td.titre-court:first-child{justify-content:flex-start;gap:10px}
  table.en-cartes td.titre-court:first-child::before{display:inline;max-width:none}
  table.en-cartes td.sans-titre,table.en-cartes td.actions-cellule{display:block;text-align:left;padding-top:10px}
  table.en-cartes td.pleine{display:block;text-align:center;color:var(--gris)}
  table.en-cartes td form{display:flex;gap:8px;flex-wrap:wrap}
  table.en-cartes td form input,table.en-cartes td form select{max-width:none;flex:1 1 7rem}
  td.actions-cellule{min-width:0}td.tel{white-space:normal}
  table.ordre,table.garder-tableau,.carte>table:not(.en-cartes):not(.papier-table){display:block;overflow-x:auto}
  .papier{padding:16px}.papier-infos{grid-template-columns:1fr 1fr}.papier-tete{flex-direction:column;align-items:flex-start}.papier-titre{text-align:left}
}
@media(max-width:330px){.cartes,.cartes-chiffres{grid-template-columns:1fr}}

/* ---------- Impression ---------- */
@media print{
  .barre-laterale,.barre-haut,.barre-bas,.voile,.no-print,.messages,.bandeau .actions{display:none!important}
  .principal{margin-left:0}main.contenu{padding:0;animation:none}
  .carte{box-shadow:none}
  .papier{border:0;box-shadow:none;padding:0;max-width:none;margin:0}
  .papier-table th,.papier-benef{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{size:A4;margin:14mm}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* =====================================================================================================
   Pages de connexion et d'inscription (deux volets)
   ===================================================================================================== */
.logo-sym,.logo-mot{display:block}
img.logo-sym{width:auto;height:auto;object-fit:contain}
body.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:100vh;background:#fff}
.auth-gauche{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:48px 48px 36px;color:#0f2347;
  background:radial-gradient(600px 380px at 20% 0%,#e8f1fd 0,transparent 70%),linear-gradient(180deg,#f8fbff 0,#eef5fd 100%);overflow:hidden}
.auth-marque{margin:auto 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.logo-grand img.logo-sym{width:clamp(150px,18vw,250px);height:auto}
.logo-grand-mot{margin-top:18px}.logo-grand-mot img.logo-mot{height:clamp(46px,5.4vw,70px);width:auto}
.auth-slogan{margin:18px 0 3px;font-size:clamp(17px,1.5vw,21px);letter-spacing:.04em;color:#41557a}
.auth-activite{margin:3px 0 0;font-size:12px;letter-spacing:.34em;text-transform:uppercase;font-weight:700;color:var(--bleu-vif)}
.auth-bas{width:100%;display:flex;flex-direction:column;align-items:center;gap:26px}
.tuiles{display:flex;gap:18px}
.tuile{width:78px;height:78px;border-radius:21px;display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(11,42,91,.45)}
.tuile img.logo-sym{width:48px;height:auto}
.t-claire{background:#fff;border:1px solid #e3ecf7}
.t-nuit{background:linear-gradient(160deg,#123a78,var(--bleu-fonce))}
.t-verte{background:linear-gradient(160deg,#4ccb6c,#2da552)}
.t-nuit img.logo-sym,.t-verte img.logo-sym{filter:brightness(0) invert(1)}
.valeurs{display:flex;align-items:center;gap:22px;color:#51638a}
.points{display:flex;gap:9px}.points i{width:30px;height:30px;border-radius:50%;display:block}
.p1{background:var(--bleu-fonce)}.p2{background:var(--bleu-vif)}.p3{background:var(--vert-nyba)}
.valeurs ul{list-style:none;margin:0;padding:0 0 0 22px;border-left:1px solid #c9d6ea;display:grid;gap:2px;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.auth-droite{position:relative;display:flex;align-items:center;justify-content:center;padding:38px 32px;overflow:hidden;
  background:radial-gradient(520px 420px at 105% -5%,#0b2a5b 0,transparent 70%),radial-gradient(700px 520px at 110% 105%,#3dbe5c 0,transparent 60%),
  linear-gradient(135deg,#1570ef 0%,#1b8fcf 55%,#2fb457 100%)}
.bulle{position:absolute;border-radius:50%;background:rgba(255,255,255,.1);pointer-events:none}
.b1{width:340px;height:340px;left:-130px;top:-90px;animation:flotte 16s ease-in-out infinite}
.b2{width:190px;height:190px;right:6%;bottom:8%;background:rgba(255,255,255,.09);animation:flotte 12s ease-in-out -4s infinite}
.b3{width:90px;height:90px;left:12%;bottom:14%;background:rgba(255,255,255,.14);animation:flotte 10s ease-in-out -2s infinite}
.b4{width:60px;height:60px;right:14%;top:12%;background:rgba(255,255,255,.16);animation:flotte 9s ease-in-out -6s infinite}
@keyframes flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-22px)}}
.auth-boite{position:relative;width:100%;max-width:430px;padding:26px 32px 28px;border-radius:22px;background:#fff;color:#0f2347;
  box-shadow:0 30px 70px -24px rgba(5,25,70,.6);animation:monte .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.auth-langue{position:absolute;top:18px;right:20px;margin:0}
.auth-logo{display:flex;flex-direction:column;align-items:center;margin:4px 0 18px}
.al-sym img.logo-sym{width:66px;height:auto;animation:tete .8s cubic-bezier(.3,1.5,.5,1) .2s both}
@keyframes tete{from{transform:scale(0)}to{transform:scale(1)}}
.al-mot{margin-top:8px}.al-mot img.logo-mot{height:21px;width:auto}
.auth-logo small{margin-top:7px;font-size:12px;color:var(--gris);letter-spacing:.03em}
.auth-boite h1{font-size:26px;margin:4px 0 4px;color:var(--bleu-fonce)}
.auth-boite input,.auth-boite select{background:#fbfdff}
.auth-boite .btn.plein{width:100%;padding:13px 16px;font-size:15px;margin-top:8px}
.auth-boite .btn.plein::after{content:"\2192";font-size:1.15em;line-height:1;margin-left:4px}
.auth-lien{margin-top:14px;text-align:center}
@media(prefers-reduced-motion:reduce){.bulle,.auth-boite,.al-sym img{animation:none}}
@media(max-width:900px){
  body.auth{grid-template-columns:1fr;background:linear-gradient(135deg,#1570ef,#2fb457);padding-bottom:0}
  .auth-gauche{display:none}
  .auth-droite{min-height:100vh;padding:22px 16px 32px}
  .auth-boite{padding:22px 18px 24px}
}
.champ[hidden]{display:none!important}
/* Aperçu du calendrier (avant le lancement) */
.apercu-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:6px 0 12px}
.apercu-chiffres>div{background:var(--fond);border:1px solid var(--bordure);border-radius:12px;padding:12px 14px}
.apercu-chiffres span{display:block;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--gris)}
.apercu-chiffres b{display:block;font-family:var(--titres);font-size:20px;font-weight:800;color:var(--texte);margin-top:2px}
.apercu-chiffres small{color:var(--gris);font-size:12px}
.apercu-ligne+.apercu-ligne{border-top:1px dashed var(--bordure);padding-top:12px;margin-top:4px}
/* Récapitulatifs */
tr.ligne-total td{background:#f4f8ff;border-top:2px solid var(--bleu-fonce)}
form.seance-choix{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
form.seance-choix input[type=date]{width:auto}
.liste-reports{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px;margin:8px 0 12px}
@media print{.signatures.papier-signatures{display:grid}}
.dates-prevues summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--bleu-vif);margin:4px 0 8px}
.dates-prevues p{display:flex;flex-wrap:wrap;gap:6px}
.dates-prevues span{font-size:12px;padding:4px 9px;border-radius:999px;background:var(--fond-2);color:var(--texte-doux)}
.reglages-repris{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0 0 10px}
.reglages-repris div{background:var(--fond);border:1px solid var(--bordure);border-radius:10px;padding:8px 12px}
.reglages-repris dt{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--gris)}
.reglages-repris dd{margin:2px 0 0;font-weight:600;color:var(--texte)}
/* Pages publiques : conditions, confidentialité, tarifs */
.page-publique{background:var(--fond)}
.entete-publique{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 28px;background:#fff;border-bottom:1px solid var(--bordure)}
.marque-publique{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--bleu-fonce);font-family:var(--titres);font-weight:700;font-size:17px;letter-spacing:.5px}
.marque-publique img.logo-sym{width:34px;height:auto}.marque-publique em{font-style:normal;color:var(--vert-nyba)}
.entete-publique nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.entete-publique nav a{padding:7px 12px;border-radius:999px;text-decoration:none;color:var(--texte-doux);font-weight:600;font-size:13px}
.entete-publique nav a.actif{background:var(--bleu-fond);color:var(--bleu)}
.contenu-public{max-width:900px;margin:0 auto;padding:28px 18px 60px}
.texte-legal{padding:28px 32px;line-height:1.65}
.texte-legal h1{font-size:26px;margin-bottom:6px}.texte-legal h2{font-size:16px;margin:26px 0 8px}
.texte-legal p,.texte-legal li{color:var(--texte-doux)}.texte-legal ul{padding-left:20px;margin:0 0 10px}
.texte-legal li{margin:4px 0}
.texte-legal.defilant{max-height:55vh;overflow-y:auto}
.retour{text-align:center}
.liens-legaux{margin:16px 0 0;font-size:11.5px;text-align:center;color:var(--gris)}
.liens-legaux a{color:var(--gris)}
.menu .liens-legaux{margin:8px 0 0;text-align:left;padding:0 12px}.menu .liens-legaux a{color:#8ea3c9;display:inline;padding:0;margin:0}
.formules{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:18px 0}
.formule{position:relative;border:1px solid var(--bordure);border-radius:16px;padding:18px;background:#fff}
.formule.en-avant{border-color:var(--bleu-vif);box-shadow:0 0 0 3px rgba(21,112,239,.12)}
.formule h2{margin:6px 0 4px}.formule .prix{font-family:var(--titres);font-size:24px;font-weight:800;color:var(--bleu-fonce);margin:0}
.formule .prix small{font-size:13px;color:var(--gris);font-weight:600}
.formule ul{padding-left:18px;margin:10px 0 0}.formule li{font-size:13px;margin:4px 0}
@media(max-width:700px){.texte-legal{padding:18px}.entete-publique{padding:12px 16px}}
/* lien vers l'association, en tête du menu d'une tontine */
.menu a.lien-association{margin-top:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.asso-sigle{font-size:12px;color:var(--gris,#667085);font-weight:500}
details.retrait summary{list-style:none;cursor:pointer;display:inline-block}
details.retrait summary::-webkit-details-marker{display:none}
details.retrait[open] form{margin-top:8px;display:grid;gap:6px;min-width:180px}
/* barre d'avancement d'un projet (collecte / objectif) */
.carte .jauge{height:10px;border-radius:999px;background:#edf1f7;overflow:hidden;margin:8px 0 4px}
.carte .jauge>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bleu-vif),#34d399)}
/* élu dans les résultats d'une élection */
tr.ligne-ok td{background:#ecfdf3}
/* rubriques repliables du menu (balise details : marche sans JavaScript) */
.menu .menu-groupe{margin:2px 0}
.menu .menu-groupe>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:9px 12px;margin:2px 0;border-radius:10px;
  cursor:pointer;color:#c9d6ef;font-size:13.5px;font-weight:600;user-select:none}
.menu .menu-groupe>summary::-webkit-details-marker{display:none}
.menu .menu-groupe>summary:hover{background:rgba(255,255,255,.06);color:#fff}
.menu .menu-groupe>summary .ic{color:#8ea3c9}
.menu .menu-groupe>summary .chevron{margin-left:auto;width:16px;height:16px;transition:transform .2s}
.menu .menu-groupe[open]>summary .chevron{transform:rotate(90deg)}
.menu .menu-groupe>a{margin-left:14px;padding-left:12px;font-size:13.5px}
.menu .menu-groupe:has(a.actif)>summary{color:#fff}
.menu .menu-groupe:has(a.actif)>summary .ic{color:var(--ciel)}
/* phases du démarrage de l'association (A, B, C…) */
h2.phase-d{margin:1.6rem 0 .6rem;font-size:15px;letter-spacing:.3px;color:var(--bleu-fonce)}
/* aperçu des dates d'une série de réunions */
.dates-prevues-reunions{background:#f4f8ff;border:1px solid #d9e6ff;border-radius:12px;padding:10px 14px;margin:6px 0 12px}
.dates-prevues-reunions ol{margin:6px 0 6px 18px;padding:0;columns:2;column-gap:28px;font-size:13.5px}
@media (max-width:700px){.dates-prevues-reunions ol{columns:1}}

/* ---------- Tenue de la réunion ---------- */
.tenue-etapes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.tenue-etapes a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--bordure);font-size:13px;font-weight:600;color:var(--texte-doux);text-decoration:none}
.tenue-etapes .num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;background:#eef1f6;color:var(--gris)}
.tenue-etapes a.fait .num{background:var(--vert);color:#fff}
.tenue-etapes a.actif{border-color:var(--bleu-vif);color:var(--bleu);box-shadow:0 0 0 3px rgba(21,112,239,.12)}
.boutons{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
@media (max-width:700px){.tenue-etapes{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.tenue-etapes a{flex:none}}
.deux-champs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width:700px){.deux-champs{grid-template-columns:1fr}}

/* ---------- Fil d'Ariane ---------- */
.fil{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12.5px;color:var(--gris);margin:-6px 0 14px}
.fil a{color:var(--texte-doux);text-decoration:none;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fil a:hover{color:var(--bleu);text-decoration:underline}
.fil [aria-current]{color:var(--texte);font-weight:600}
.fil .sep{color:var(--bordure-forte,#b8c2d3)}
@media (max-width:700px){.fil{margin:12px 16px 0;font-size:12px}.fil a{max-width:140px}}
@media (max-width:700px){.fil>a:first-child,.fil>a:first-child+.sep{display:none}}

/* ---------- À faire (tableau de bord de l'association) ---------- */
.a-faire h2{margin-bottom:10px}
.tache{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;text-decoration:none;color:var(--texte);border:1px solid var(--bordure);margin-top:8px;background:#fff;transition:box-shadow .15s}
.tache:hover{box-shadow:var(--ombre)}
.tache-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--fond-2)}
.tache.urgent .tache-ic{background:var(--rouge-fond);color:#a3231b}
.tache.jour .tache-ic{background:var(--bleu-fond);color:var(--bleu)}
.tache.bientot .tache-ic{background:var(--ambre-fond);color:#8a5a12}
.tache-texte{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tache-texte b{font-size:14px}
.tache-bouton{flex:none;font-size:12.5px;font-weight:700;color:var(--bleu);white-space:nowrap}
.tout-va-bien{display:flex;align-items:center;gap:8px;color:#05603f;margin:4px 0}
.journal-liste{list-style:none;margin:0 0 12px;padding:0}
.journal-liste li{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--bordure)}
.journal-liste li:last-child{border-bottom:0}
@media (max-width:700px){.tache{padding:10px}.tache-bouton{display:none}}

/* ---------- Actions repliées d'une ligne (liste des membres d'une tontine) ---------- */
details.menu-actions>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
details.menu-actions>summary::-webkit-details-marker{display:none}
details.menu-actions[open]>summary{background:var(--bleu-fond);color:var(--bleu)}
details.menu-actions .actions-ligne{margin-top:8px}
/* ---------- Bandeau compact sur téléphone ---------- */
@media (max-width:700px){
  .bandeau{padding:16px 18px;border-radius:16px;margin-bottom:16px}
  .bandeau p{display:none}
  .bandeau h1{font-size:19px}
  .bandeau .actions{gap:8px;margin-top:10px}
  .bandeau .actions a,.bandeau .actions button{padding:8px 10px;font-size:12.5px;flex:1 1 40%}
  details.menu-actions>summary{width:100%;justify-content:center}
}

/* =====================================================================================================
   Nouvelle mise en page (étape 1 : tenue de la réunion) — en-tête de page, résumé, appel, onglets.
   Une seule page pour tous les écrans : deux colonnes sur ordinateur, une colonne sur téléphone.
   ===================================================================================================== */
.tete-page{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:0 0 18px}
.tete-retour{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--bordure);background:#fff;color:var(--texte);flex:none;margin-top:2px}
.tete-retour .ic{transform:rotate(180deg)}
.tete-retour:hover{border-color:var(--bleu-vif);color:var(--bleu-vif)}
.tete-texte{flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px}
.tete-titre{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tete-titre h1{margin:0;font-size:26px;letter-spacing:-.4px}
.tete-infos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--texte-doux);font-size:14px}
.tete-infos li{display:inline-flex;align-items:center;gap:7px}
.tete-infos .ic{width:17px;height:17px;color:var(--gris)}
.tete-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
details.plus-actions{position:relative}
details.plus-actions>summary{list-style:none;cursor:pointer}
details.plus-actions>summary::-webkit-details-marker{display:none}
.menu-deroulant{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:240px;background:#fff;border:1px solid var(--bordure);border-radius:14px;box-shadow:var(--ombre-forte);padding:6px;display:flex;flex-direction:column}
.menu-deroulant a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--texte);text-decoration:none;font-size:14px}
.menu-deroulant a:hover{background:var(--fond-2);color:var(--bleu-vif)}
.menu-deroulant .ic{width:17px;height:17px;color:var(--gris)}

/* étapes : une barre de pastilles numérotées, cochées quand c'est fait */
.tenue-etapes{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin-bottom:18px;padding:6px;background:#fff;border:1px solid var(--bordure);border-radius:16px;scrollbar-width:thin}
.tenue-etapes a{flex:1 0 auto;justify-content:center;display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:12px;border:0;background:none;font-size:13.5px;font-weight:600;color:var(--texte-doux);text-decoration:none;white-space:nowrap}
.tenue-etapes a:hover{background:var(--fond-2)}
.tenue-etapes .num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--fond-2);color:var(--gris);flex:none}
.tenue-etapes .num .ic{width:15px;height:15px}
.tenue-etapes a.fait .num{background:var(--vert-fond);color:var(--vert)}
.tenue-etapes a.actif{background:var(--bleu-fond);color:var(--bleu);box-shadow:none}
.tenue-etapes a.actif .num{background:var(--bleu-vif);color:#fff}

/* deux colonnes sur ordinateur : l'étape à gauche, le résumé et l'ordre du jour à droite */
.tenue-grille{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:auto 1fr;grid-template-areas:"principal resume" "principal odj";gap:0 20px;align-items:start}
.tenue-principal{grid-area:principal;min-width:0}
.tenue-resume{grid-area:resume}
.tenue-odj{grid-area:odj}
.tenue-resume>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:default}
.tenue-resume>summary::-webkit-details-marker{display:none}
.tenue-resume h2,.tenue-odj h2{display:flex;align-items:center;gap:9px;font-size:17px;margin:0}
.tenue-resume h2 .ic,.tenue-odj h2 .ic{color:var(--bleu-vif)}
.resume-court{display:none;font-size:13px;color:var(--texte-doux)}
.resume-liste{margin:12px 0 0;display:flex;flex-direction:column}
.resume-liste>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--bordure)}
.resume-liste>div:last-child{border-bottom:0}
.resume-liste dt{color:var(--texte-doux);font-size:14px}
.resume-liste dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.resume-liste .bloc{display:block}
b.vert{color:var(--vert)}b.rouge{color:var(--rouge)}b.bleu{color:var(--bleu)}
.odj-tete{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.odj-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.odj-liste li{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px}
.odj-liste .num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--fond-2);color:var(--gris);flex:none}
.odj-liste li.fait .num{background:var(--vert-fond);color:var(--vert)}
.odj-liste .num .ic{width:15px;height:15px}

/* appel : progression, filtres, recherche, une ligne par membre avec quatre gros boutons */
.appel-tete{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:flex-start}
.appel-tete h2{margin:0 0 4px}
.appel-progression{min-width:180px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.appel-progression b{font:700 20px var(--titres);font-variant-numeric:tabular-nums}
.appel-progression .jauge{width:180px;height:8px;border-radius:999px;background:var(--fond-2);overflow:hidden}
.appel-progression .jauge>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--vert),#34d399);transition:width .25s}
.appel-outils{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:16px 0 8px}
.puces{display:flex;gap:6px;flex-wrap:wrap}
.puce{border:1.5px solid var(--bordure);background:#fff;border-radius:999px;padding:6px 12px;font:600 13px var(--corps);color:var(--texte-doux);cursor:pointer}
.puce.actif{background:var(--bleu-vif);border-color:var(--bleu-vif);color:#fff}
.appel-recherche{flex:1;min-width:200px;max-width:280px;border:1.5px solid var(--bordure);border-radius:12px;padding:8px 12px;font:inherit}
.appel-liste{list-style:none;margin:0;padding:0}
.appel-liste li{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--bordure)}
.appel-liste li:last-child{border-bottom:0}
.appel-liste li[hidden]{display:none}
.avatar-initiales{width:38px;height:38px;border-radius:50%;display:inline-grid;place-items:center;flex:none;background:var(--bleu-fond);color:var(--bleu);font:700 13px var(--titres)}
.avatar-initiales.petit-avatar{width:28px;height:28px;font-size:11px;vertical-align:middle}
.appel-nom{flex:1;min-width:0;display:flex;flex-direction:column}
.appel-nom b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.segments,.choix-segments{display:inline-flex;gap:4px;flex-wrap:wrap}
.seg{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;justify-content:center;min-width:74px;min-height:38px;padding:6px 12px;border-radius:10px;border:1.5px solid var(--bordure);background:#fff;font:600 13px var(--corps);color:var(--texte-doux)}
.seg input:focus-visible+span{outline:3px solid rgba(21,112,239,.35);outline-offset:1px}
.seg input:checked+span{background:var(--bleu-fond);border-color:var(--bleu-vif);color:var(--bleu)}
.seg-present input:checked+span{background:var(--vert-fond);border-color:var(--vert);color:#05603f}
.seg-retard input:checked+span{background:var(--ambre-fond);border-color:var(--ambre);color:#8a5a12}
.seg-excuse input:checked+span{background:var(--fond-2);border-color:var(--gris);color:var(--texte)}
.seg-absent input:checked+span{background:var(--rouge-fond);border-color:var(--rouge);color:#a3231b}
.seg input:disabled+span{opacity:.6;cursor:default}
.choix-segments{margin:6px 0 12px}
.barre-enregistrer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}

/* onglets de l'étape Finances, listes simples, points de l'ordre du jour */
.onglets-tenue{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--bordure);overflow-x:auto}
.onglets-tenue a{padding:10px 14px;font-weight:600;font-size:14px;color:var(--texte-doux);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.onglets-tenue a.actif{color:var(--bleu);border-bottom-color:var(--bleu-vif)}
.liste-lignes{list-style:none;margin:0 0 10px;padding:0}
.liste-lignes li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--bordure);flex-wrap:wrap}
.liste-lignes li:last-child{border-bottom:0}
.ligne-texte{flex:1;min-width:160px;display:flex;flex-direction:column}
.ligne-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ligne-actions form{margin:0}
details.point-odj>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}
details.point-odj>summary::-webkit-details-marker{display:none}
details.point-odj .num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--fond-2);color:var(--gris);flex:none}
details.point-odj .num .ic{width:15px;height:15px;color:var(--vert)}
details.point-odj[open]>summary{margin-bottom:12px}
.compte-rendu{white-space:pre-wrap;font:inherit;margin:12px 0 0}
form.separe{margin-top:14px}

/* écran moyen ou téléphone : une colonne ; le résumé en haut (replié d'office), l'étape, l'ordre du jour */
@media (max-width:1200px){
  .tenue-grille{grid-template-columns:minmax(0,1fr);grid-template-areas:"resume" "principal" "odj"}
  .tenue-resume>summary{cursor:pointer}
  .tenue-resume:not([open]) .resume-court{display:inline}
  .tenue-resume>summary h2::after{content:"\25BE";font-size:13px;color:var(--gris);margin-left:4px}
}
@media (max-width:700px){
  .tete-page{margin:12px 16px 14px}
  .tete-titre h1{font-size:21px}
  .tete-actions{width:100%}
  .tete-actions>*{flex:1}
  .tete-actions .btn,details.plus-actions>summary{width:100%}
  .menu-deroulant{left:0;right:0}
  .tenue-etapes{margin:0 16px 14px}
  .tenue-etapes a{flex:none}
  .appel-progression{align-items:flex-start;width:100%}
  .appel-progression .jauge{width:100%}
  .appel-recherche{max-width:none}
  .appel-liste li{flex-wrap:wrap}
  .segments{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
  .seg span{min-width:0;width:100%;padding:6px 4px;font-size:12.5px;min-height:44px}
  .barre-enregistrer{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#fff 30%);padding-top:14px;margin:0 -4px}
  .barre-enregistrer .btn{flex:1}
}

/* ---------- Barre du haut : recherche globale et cloche de notifications (étape 2) ---------- */
.recherche-globale{position:relative;flex:1;max-width:520px;display:flex;align-items:center;margin-left:12px}
.recherche-globale>.ic{position:absolute;left:12px;width:18px;height:18px;color:var(--gris);pointer-events:none}
.recherche-globale input{width:100%;border:1.5px solid var(--bordure);background:#fff;border-radius:12px;padding:9px 12px 9px 38px;font:inherit;font-size:14px}
.recherche-globale input:focus{outline:none;border-color:var(--bleu-vif);box-shadow:0 0 0 3px rgba(21,112,239,.15)}
.suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:#fff;border:1px solid var(--bordure);border-radius:14px;box-shadow:var(--ombre-forte);padding:6px;max-height:70vh;overflow-y:auto}
.suggestion-groupe{margin:8px 10px 4px;font:700 11px var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.suggestion{display:flex;flex-direction:column;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--texte)}
.suggestion:hover,.suggestion:focus{background:var(--fond-2)}
.suggestion b{font-size:14px;font-weight:600}
.suggestion span{font-size:12.5px;color:var(--gris)}
.suggestion-vide{margin:8px 10px}
.suggestion-tout{display:block;width:100%;margin-top:4px;border:0;border-top:1px solid var(--bordure);background:none;padding:10px;font:600 13px var(--corps);color:var(--bleu-vif);cursor:pointer;text-align:left}
.bouton-rond{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--bordure);background:#fff;color:var(--texte);position:relative;cursor:pointer;list-style:none}
.bouton-rond::-webkit-details-marker{display:none}
.bouton-rond .ic{width:20px;height:20px}
.recherche-mobile{display:none}
details.cloche{position:relative}
.cloche-nombre{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--rouge);color:#fff;font:700 11px/19px var(--corps);text-align:center}
.cloche-liste{width:340px;max-height:70vh;overflow-y:auto}
.cloche-titre{margin:6px 10px 4px;font:700 11px var(--corps);letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.cloche-element{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--texte)}
.cloche-element:hover{background:var(--fond-2)}
.cloche-element>span:last-child{display:flex;flex-direction:column;min-width:0}
.cloche-element b{font-size:13.5px;font-weight:600}
.cloche-vide{margin:8px 10px}
.point-niveau{width:9px;height:9px;border-radius:50%;flex:none;margin-top:6px;background:var(--gris-clair)}
.point-niveau.urgent{background:var(--rouge)}.point-niveau.jour{background:var(--bleu-vif)}
.recherche-page{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.recherche-page input{flex:1;min-width:220px;border:1.5px solid var(--bordure);border-radius:12px;padding:10px 12px;font:inherit}
a.lien-ligne{text-decoration:none;color:var(--texte)}
a.lien-ligne:hover b{color:var(--bleu-vif)}
@media (max-width:1000px){
  .recherche-globale{display:none}
  .recherche-mobile{display:grid}
}
@media (max-width:700px){
  .cloche-liste{position:fixed;left:12px;right:12px;top:64px;width:auto}
  .bouton-rond{width:36px;height:36px}
  .barre-haut .salut{flex:1;min-width:0}
  .barre-haut .salut strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .barre-haut .salut span{display:none}
  .barre-haut .droite{gap:6px}
}

/* =====================================================================================================
   Bandeau bleu de chaque page (gardé à la demande de l'utilisateur), avec les ajouts de l'étape 3 adaptés à ses
   couleurs : « Plus d'actions » au-delà de trois actions (static/tontines/entete.js), flèche de retour et pastille
   d'état sur les fiches.
   ===================================================================================================== */
.bandeau{overflow:visible}  /* le menu « Plus d'actions » déborde du bandeau */
.bandeau h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bandeau .actions summary{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;font:600 13px var(--corps);
  color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);cursor:pointer;list-style:none}
.bandeau .actions summary::-webkit-details-marker{display:none}
.bandeau .actions summary:hover{background:rgba(255,255,255,.22)}
.bandeau .menu-deroulant a,.bandeau .menu-deroulant button{display:flex;align-items:center;gap:10px;width:100%;color:var(--texte);background:none;border:0;
  padding:9px 12px;border-radius:10px;font:500 14px var(--corps);justify-content:flex-start;box-shadow:none}
.bandeau .menu-deroulant a:hover,.bandeau .menu-deroulant button:hover{background:var(--fond-2);color:var(--bleu-vif)}
.bandeau .menu-deroulant .ic{color:var(--gris)}
.bandeau .menu-deroulant form{margin:0;width:100%}
.bandeau .tete-retour{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff;margin-top:2px}
.bandeau .tete-retour:hover{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.5)}
@media (max-width:700px){
  .bandeau .actions>details{flex:1 1 40%}
  .bandeau .actions>details>summary{width:100%;justify-content:center}
}

/* ---------- Formulaires en sections repliables (paramètres et création d'une tontine) ---------- */
details.section-formulaire{border:1px solid var(--bordure);border-radius:14px;margin:0 0 12px;background:#fff}
details.section-formulaire>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:14px 16px;font:700 15px var(--titres);color:var(--texte)}
details.section-formulaire>summary::-webkit-details-marker{display:none}
details.section-formulaire>summary::before{content:"\25B8";color:var(--gris);transition:transform .15s;display:inline-block}
details.section-formulaire[open]>summary::before{transform:rotate(90deg)}
details.section-formulaire>summary .petit{font:400 13px var(--corps);color:var(--gris)}
details.section-formulaire[open]>summary{border-bottom:1px solid var(--bordure)}
.section-champs{padding:14px 16px 4px}

/* ---------- Double validation (trésorerie) ---------- */
.liste-decisions{margin:0;padding-left:18px}
.liste-decisions li{margin:4px 0}

/* ---------- Réclamations : fil des échanges ---------- */
.fil-reclamation{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.message-reclamation{border:1px solid var(--bordure);border-radius:12px;padding:10px 12px;background:#fff;max-width:92%}
.message-reclamation.du-bureau{align-self:flex-end;background:var(--fond-2);border-color:transparent}
.message-reclamation p{margin:0}
.message-reclamation p+p{margin-top:4px}

/* ---------- Suivi des décisions ---------- */
.suivi-decision{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 0}
.suivi-decision select{max-width:150px}
.suivi-decision input{flex:1 1 180px;min-width:0}
.decision-precedente{border-top:1px solid var(--bordure);padding:10px 0}
.decision-precedente:first-of-type{border-top:0}
.decision-precedente p{margin:0 0 2px}
.decision-precedente.en-retard{border-left:3px solid var(--rouge,#d64545);padding-left:10px}

/* Texte mis en forme (editeur.js, filtre |riche) et rubriques libres (rubriques.js) */
.texte-riche p{margin:0 0 .7em}
.texte-riche ul,.texte-riche ol{margin:0 0 .7em;padding-left:1.6em}
.texte-riche li{margin-bottom:.25em}
.texte-riche ol[type="a"]{list-style-type:lower-alpha}
.texte-riche li>ul,.texte-riche li>ol{margin:.25em 0 .25em}
.texte-riche h3{font-size:15px;margin:.9em 0 .4em}
.texte-riche>:last-child{margin-bottom:0}
.editeur{border:1.5px solid var(--bordure);border-radius:var(--rayon-petit);background:#fff;overflow:hidden}
.editeur:focus-within{border-color:var(--bleu-vif);box-shadow:0 0 0 3px var(--bleu-fond)}
.editeur-barre{display:flex;flex-wrap:wrap;gap:2px;padding:5px;border-bottom:1px solid var(--bordure);background:#f7f9fc;position:sticky;top:0}
.editeur-barre button{min-width:34px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:none;cursor:pointer;font:600 14px/1 var(--corps);color:var(--texte)}
.editeur-barre button:hover{background:#fff;border-color:var(--bordure)}
.editeur-barre button.actif{background:var(--bleu-fond);border-color:var(--bordure-forte);color:var(--bleu)}
.editeur-barre button:focus-visible{outline:2px solid var(--bleu-vif);outline-offset:1px}
.editeur-zone{position:relative;padding:12px 14px;outline:none;line-height:1.55;font-size:14.5px;max-height:60vh;overflow:auto}
.editeur-zone.vide::before{content:attr(data-vide);color:var(--gris);pointer-events:none;position:absolute}
.rubriques-liste{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
.rubrique{border:1px solid var(--bordure);border-radius:12px;padding:14px 16px;background:var(--fond)}
.rubrique .champ:last-of-type{margin-bottom:10px}
.rubrique-repere{background:var(--bleu-fond);border-style:dashed;border-color:var(--bordure-forte)}
.rubrique-repere-texte{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.rubrique-repere-texte>span{display:flex;flex-direction:column;gap:2px}
.rubrique-actions{display:flex;flex-wrap:wrap;gap:6px}
.rubrique-actions .btn{padding:5px 10px;font-size:13px}
.rubrique-actions .btn:disabled{opacity:.4;cursor:default}
.rubriques-ajout{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-bottom:18px}
.rubriques-suggestions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.btn.suggestion{padding:4px 10px;font-size:12.5px;border-radius:999px}
fieldset.champ{border:1px solid var(--bordure);border-radius:12px;padding:10px 14px}
fieldset.champ legend{font-size:13px;font-weight:600;color:var(--texte-doux);padding:0 6px}
.entete-logo{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.entete-logo img{max-height:64px;max-width:160px;border:1px solid var(--bordure);border-radius:8px;padding:4px;background:#fff}
.envoi-confirmer>summary{list-style:none;display:inline-flex;cursor:pointer}
.envoi-confirmer>summary::-webkit-details-marker{display:none}
.envoi-confirmer form{margin-top:12px}
.envoi-historique{margin-top:12px;border-top:1px solid var(--bordure);padding-top:10px}
.envoi-historique>summary{cursor:pointer;font-weight:600;font-size:14px}

/* Nom du produit à côté du logo NYBA, bouton « Installer », page « Pas de connexion » (tontines/installation.py) */
.logo-mot-ligne{display:inline-flex;align-items:flex-end;gap:.28em}
.mot-produit{font-family:var(--titres);font-weight:600;color:var(--vert-nyba);line-height:.86}
.logo-grand-mot .mot-produit{font-size:clamp(34px,4vw,52px)}
.al-mot .mot-produit{font-size:18px}
.menu-aide .installer{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;margin:2px 0;border:1px dashed rgba(255,255,255,.35);border-radius:10px;background:none;color:inherit;font:inherit;font-size:13.5px;cursor:pointer}
.menu-aide .installer:hover{background:rgba(255,255,255,.08)}
.menu-aide .installer-ios{font-size:12.5px;line-height:1.45;padding:6px 12px;color:var(--ciel)}
.menu-aide .installer-ios ol{margin:4px 0 0;padding-left:18px}
.installer-connexion{margin:16px 0 0;text-align:center}
.installer-connexion .installer{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1.5px solid var(--bordure);border-radius:999px;background:#fff;color:var(--bleu);font:600 13.5px var(--corps);cursor:pointer}
.installer-connexion .installer-ios{font-size:13px;color:var(--texte-doux);text-align:left;margin-top:10px}
.installer-connexion .installer-ios ol{margin:4px 0 0;padding-left:18px}
.installer .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.hors-ligne{min-height:100vh;display:grid;place-items:center;background:var(--fond);padding:24px 16px;margin:0}
.hors-ligne-boite{max-width:460px;text-align:center;background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);padding:36px 28px;box-shadow:var(--ombre)}
.hors-ligne-boite img{margin:0 auto 6px}
.hors-ligne-marque{font-family:var(--titres);font-weight:700;color:var(--nuit);margin:0 0 14px}
.hors-ligne-marque em{font-style:normal;font-weight:600;color:var(--vert-nyba)}
.hors-ligne-boite h1{font-family:var(--titres);color:var(--nuit);font-size:24px;margin:0 0 10px}
.hors-ligne-boite p{color:var(--texte-doux);margin:0 0 12px}
