/* ROMAXIMMO : feuille de style. Vert encre et citron, cartes sans filet, navigation horizontale, panneaux latéraux. */
@font-face{font-family:"Figtree";src:url(/polices/figtree.woff2) format("woff2");font-weight:300 900;font-display:swap}
@font-face{font-family:"Bricolage";src:url(/polices/bricolage.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{
  /* les anciens noms de variables restent utilisés par les écrans : ils portent la nouvelle échelle */
  --bleu-900:#0A1714;--bleu-800:#10231E;--bleu-700:#1B3A32;--bleu-600:#0B6B57;--bleu-500:#0B8068;--bleu-400:#3FA48E;--bleu-300:#9CC9BD;--bleu-200:#C9E2DB;--bleu-100:#E3F1ED;--bleu-50:#F1F7F4;
  --creme:#F6FBEF;--citron:#D8F45A;--gris-100:#F4F6F3;--gris-200:#E6EAE5;--gris-300:#D3DAD4;--gris-400:#B9C2BC;--gris-500:#8C9992;--gris-600:#5B6B64;
  --terre-700:#8A4F10;--terre-500:#D2771C;--terre-300:#F3D5AE;--positif:#0B8068;--attention:#D2771C;--alerte:#C8324A;
  --police-titre:"Bricolage","Figtree",system-ui,sans-serif;--police-sstitre:"Figtree",system-ui,sans-serif;--police-corps:"Figtree",system-ui,sans-serif;--police-chiffres:"Figtree",system-ui,sans-serif;
  --h-entete:124px;
  --nuit:var(--bleu-800);--nuit-2:var(--bleu-700);--accent:var(--bleu-800);--accent-fonce:var(--bleu-600);--accent-pale:var(--bleu-100);--fond:#EEF2EC;--carte:#FFFFFF;
  --texte:var(--bleu-800);--gris:var(--gris-600);--gris-clair:var(--gris-500);--ligne:#EDF0EC;--survol:var(--bleu-50);--vert:var(--positif);--rouge:var(--alerte);--orange:var(--attention);
  --rayon:18px;--ombre:0 1px 2px rgba(16,35,30,.04),0 8px 28px rgba(16,35,30,.05);--ombre-expliquer:0 1px 4px rgba(11,24,65,.15)}
*{box-sizing:border-box}html,body{margin:0;height:100%}[hidden]{display:none!important}
body{font:14.5px/1.55 var(--police-corps);color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}
h1,h2,h3{font-family:var(--police-titre);letter-spacing:-.015em}
a{color:inherit;text-decoration:none}button{font:inherit}
.kpi .val,td.num,th.num,.periode,tfoot td,.graphe text,.infobulle b{font-variant-numeric:tabular-nums}
#app{min-height:100vh}
/* barre haute : logo, modules en pastilles, recherche */
#entete{display:flex;align-items:center;gap:22px;height:72px;padding:0 28px;position:sticky;top:0;z-index:30;background:rgba(238,242,236,.92);backdrop-filter:blur(10px)}
.logo{display:flex;align-items:center;gap:10px;font:800 19px/1 var(--police-titre);letter-spacing:.02em;color:var(--bleu-800);flex:none}.logo img{width:34px;height:34px;display:block}
#modules{display:flex;gap:2px;margin:0 auto;padding:4px;background:#fff;border-radius:999px;box-shadow:var(--ombre);overflow-x:auto;scrollbar-width:none}
#modules a{padding:8px 16px;border-radius:999px;font-weight:600;font-size:14px;color:var(--gris-600);white-space:nowrap;transition:background .15s,color .15s}
#modules a:hover{color:var(--bleu-800);background:var(--bleu-50)}#modules a.actif{background:var(--bleu-800);color:var(--citron)}
#ouvrir-palette{display:flex;align-items:center;gap:22px;flex:none;background:#fff;border:0;border-radius:999px;padding:9px 10px 9px 16px;color:var(--gris-600);cursor:pointer;box-shadow:var(--ombre)}
kbd{font:600 11px var(--police-corps);background:var(--gris-100);border-radius:6px;padding:2px 6px;color:var(--gris-600)}
.avatar{width:40px;height:40px;flex:none;border-radius:50%;background:var(--citron);color:var(--bleu-800)!important;display:grid;place-items:center;font-size:13px;font-weight:800;border:0;cursor:pointer}
/* écrans du module : onglets soulignés */
#nav{display:flex;align-items:center;gap:6px;height:52px;padding:0 28px;position:sticky;top:72px;z-index:29;background:rgba(238,242,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--gris-200)}
#nav>a,#nav summary{padding:8px 12px;font-weight:500;font-size:14px;color:var(--gris-600);white-space:nowrap;cursor:pointer;border-radius:10px;list-style:none}
#nav summary::-webkit-details-marker{display:none}#nav summary::after{content:" ▾";font-size:10px}
#nav>a:hover,#nav summary:hover{color:var(--bleu-800);background:rgba(255,255,255,.7)}
#nav>a.actif,#nav .deroulant.actif>summary{color:var(--bleu-800);font-weight:700;background:#fff;box-shadow:var(--ombre)}
#nav .nav-retour{font-weight:700;color:var(--bleu-600);margin-right:8px}
.deroulant{position:relative}.deroulant>div{position:absolute;top:calc(100% + 8px);left:0;min-width:230px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 18px 50px rgba(16,35,30,.18);display:grid;z-index:40}
.deroulant>div a{padding:8px 12px;border-radius:9px;font-size:14px;white-space:nowrap}.deroulant>div a:hover{background:var(--bleu-50)}.deroulant>div a.actif{background:var(--bleu-100);font-weight:700}
#contenu{padding:0 0 60px;min-width:0;max-width:1640px;margin:0 auto}
.barre-page{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:26px 28px 6px;background:none;border:0;position:static}
.barre-page h1{font:700 34px/1.1 var(--police-titre);margin:0;color:var(--bleu-800)}.barre-page .fil{color:var(--gris);font-size:14px;padding-bottom:5px}.barre-page .fil+.muted{padding-bottom:5px}
.page{padding:16px 28px}
.espace{flex:1}
/* boutons en pilule */
.bouton{border:0;background:#fff;color:var(--bleu-800);padding:8px 16px;border-radius:999px;font-size:13.5px;cursor:pointer;font-weight:600;box-shadow:inset 0 0 0 1px var(--gris-300);transition:background .15s,transform .05s;display:inline-flex;align-items:center;gap:6px}
.bouton:hover{background:var(--bleu-50)}.bouton:active{transform:translateY(1px)}.bouton.primaire{background:var(--bleu-800);box-shadow:none;color:var(--citron)}.bouton.primaire:hover{background:var(--bleu-700)}
.bouton.petit{padding:4px 11px;font-size:12.5px}.bouton.danger{color:var(--alerte);box-shadow:inset 0 0 0 1px #EFC6CD}.bouton:disabled{opacity:.5;cursor:default}
/* indicateurs : grands chiffres, sans filet */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--carte);border:0;border-radius:var(--rayon);padding:18px 20px;box-shadow:var(--ombre)}
.kpi .lib{color:var(--gris);font-size:13px;font-weight:500}.kpi .val{font:700 27px/1.15 var(--police-titre);margin-top:6px;color:var(--bleu-800);letter-spacing:-.01em}
.kpi .val a{color:inherit}.kpi .sous{color:var(--gris);font-size:12.5px;margin-top:4px;float:none}
.kpi.alerte .val{color:var(--alerte)}.kpi.ok .val{color:var(--positif)}
.carte{background:var(--carte);border:0;border-radius:var(--rayon);box-shadow:var(--ombre);margin-bottom:18px;overflow:clip}
.carte>h2{font:700 17px/1.3 var(--police-titre);margin:0;padding:18px 20px 8px;border:0;display:flex;align-items:center;gap:8px;color:var(--bleu-800)}
.carte .corps{padding:12px 20px 18px}
.grille2{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:18px}
.outils{display:flex;gap:8px;align-items:center;padding:10px 20px;border:0;flex-wrap:wrap}
.outils input[type=search],.outils select,.outils input[type=date],.outils input[type=number]{border:0;background:var(--gris-100);border-radius:999px;padding:8px 14px;font-size:13.5px;color:var(--texte)}
.outils input[type=search]{flex:1;min-width:200px}
.compte{color:var(--gris);font-size:12.5px;padding:10px 20px}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--ligne);vertical-align:middle;white-space:nowrap}
th:first-child,td:first-child{padding-left:20px}th:last-child,td:last-child{padding-right:20px}
th{color:var(--gris-500);font-weight:600;font-size:12px;cursor:pointer;user-select:none;background:none;border-bottom:1px solid var(--gris-200)}
th.trie{color:var(--bleu-800)}th.trie::after{content:" ↓";color:var(--bleu-500)}th.trie.inv::after{content:" ↑"}
td.num,th.num{text-align:right}
td.long{white-space:normal;min-width:220px}
tr.cliquable{cursor:pointer}tr.cliquable:hover td{background:var(--bleu-50)}
tfoot td{font-weight:700;background:none;color:var(--bleu-800);border-top:2px solid var(--bleu-800);border-bottom:0}
.tableau{overflow-x:auto}
.vide{padding:34px;text-align:center;color:var(--gris)}.graphe-vide{height:100%;display:grid;place-items:center;padding:0}
.pastille{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--gris-100);color:var(--gris-600)}
.pastille.vert{background:#DDF3EC;color:#08654F}.pastille.rouge{background:#FBE3E7;color:var(--alerte)}.pastille.orange{background:#FCEBD6;color:var(--terre-700)}
.periode{display:inline-block;background:var(--gris-100);color:var(--gris-600);border-radius:999px;padding:0 8px;font-size:12px}
.muted{color:var(--gris)}.rouge{color:var(--rouge)}.vert{color:var(--vert)}.gras{font-weight:600}
.onglets{display:flex;gap:4px;border:0;padding:4px;background:#E3E8E2;border-radius:999px;width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.onglets a,.onglets button{border:0;background:none;padding:7px 15px;color:var(--gris-600);border-radius:999px;margin:0;cursor:pointer;white-space:nowrap;font-weight:500;font-size:13.5px}
.onglets .actif{background:#fff;color:var(--bleu-800);font-weight:700;box-shadow:0 1px 3px rgba(16,35,30,.12)}
dl.fiche{display:grid;grid-template-columns:190px 1fr;gap:8px 16px;margin:0;font-size:14px}dl.fiche dt{color:var(--gris)}dl.fiche dd{margin:0;font-weight:500}
.graphe{position:relative;width:100%}.graphe svg{display:block;overflow:hidden}
.graphe text{font-size:11.5px;fill:var(--gris-500)}
.graphe .grille{stroke:var(--gris-200);stroke-width:1;stroke-dasharray:2 4}.graphe .axe{stroke:var(--gris-300);stroke-width:1}
.graphe .anneau{stroke:#fff;stroke-width:2}.graphe .cible{fill:transparent;cursor:crosshair}.graphe .repere{fill:rgba(16,35,30,.05)}
.infobulle{position:absolute;z-index:5;pointer-events:none;background:var(--bleu-800);color:#fff;border-radius:12px;box-shadow:0 12px 34px rgba(16,35,30,.3);padding:10px 12px;font-size:12.5px;min-width:150px}
.infobulle .titre{color:var(--bleu-300);margin-bottom:4px}.infobulle .rang{display:flex;align-items:center;gap:8px;line-height:1.7}.infobulle .rang i{width:12px;height:3px;border-radius:2px}
.infobulle .rang b{color:#fff;margin-left:auto}.infobulle .rang span{color:var(--bleu-200)}.infobulle .info{border-top:1px solid var(--bleu-700);margin-top:5px;padding-top:5px;color:#fff}
.legende{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--gris);padding:0 20px 14px}.legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.carte-geo{width:100%;height:280px;border:0;display:block}
.fil-actu{list-style:none;margin:0;padding:0 6px 8px}.fil-actu li{padding:10px 14px;border-bottom:1px solid var(--ligne);display:flex;gap:10px}.fil-actu li:last-child{border:0}
.barre{height:7px;background:var(--gris-200);border-radius:99px;overflow:hidden;min-width:60px}.barre i{display:block;height:100%;background:var(--bleu-500);border-radius:99px}
/* formulaires et fiches : panneau latéral plutôt que fenêtre centrale */
#voile{position:fixed;inset:0;background:rgba(10,23,20,.38);backdrop-filter:blur(3px);z-index:40}
#modale{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;padding:0;pointer-events:none}
.modale-boite{pointer-events:auto;background:#fff;border-radius:24px 0 0 24px;max-width:640px;width:100%;height:100%;display:flex;flex-direction:column;box-shadow:-24px 0 70px rgba(10,23,20,.22);animation:panneau .2s ease-out}
.modale-boite>form,.modale-boite>.corps{flex:1;overflow-y:auto;min-height:0}
@keyframes panneau{from{transform:translateX(40px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.modale-boite{animation:none}}
.modale-boite.large{max-width:1100px}
.modale-boite header{display:flex;align-items:center;padding:22px 26px 12px;border:0}.modale-boite header h2{margin:0;font:700 22px/1.2 var(--police-titre);flex:1}
.modale-boite .corps{padding:10px 26px 22px}.modale-boite footer{display:flex;gap:8px;justify-content:flex-end;padding:14px 26px;border-top:1px solid var(--ligne)}
.modale-boite footer .gauche{margin-right:auto}
.formulaire{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 16px;align-content:start}
.formulaire label{display:block;font-size:12.5px;font-weight:600;color:var(--gris-600)}.formulaire label.plein{grid-column:1/-1}
.formulaire input,.formulaire select,.formulaire textarea{display:block;width:100%;margin-top:5px;font-size:14px;font-family:inherit;padding:10px 12px;border:1.5px solid transparent;background:var(--gris-100);border-radius:12px;color:var(--texte)}
.formulaire select[multiple]{height:160px}.formulaire textarea{min-height:80px}
.formulaire label.case{display:flex;align-items:center;gap:8px;margin-top:20px}.formulaire label.case input{width:auto;margin:0}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{outline:0;border-color:var(--bleu-500);background:#fff}
#toast{position:fixed;bottom:24px;right:24px;background:var(--bleu-800);color:var(--citron);padding:12px 18px;border-radius:14px;font-weight:600;z-index:80;box-shadow:0 12px 34px rgba(16,35,30,.3)}
.ligne-actions{display:flex;gap:6px;justify-content:flex-end}
a.lien{color:var(--bleu-600);font-weight:600}a.lien:hover{text-decoration:underline}
#toast .lien-toast{color:inherit;text-decoration:underline;margin-left:6px;white-space:nowrap}
#toast.erreur{background:var(--alerte);color:#fff}
fieldset.cases{border:0;background:var(--gris-100);border-radius:12px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:4px 16px;grid-column:1/-1;margin:0}
fieldset.cases legend{font-size:12.5px;font-weight:600;color:var(--gris-600);padding:0 4px}fieldset.cases label.case{margin:0}
th.case,td.case{width:28px;padding-right:0}
.boutons{display:flex;gap:8px;flex-wrap:wrap}
.zone-onglet{padding-top:16px}
.ligne-totale td{font-weight:700;background:var(--bleu-50)}
.niveau-1 td:first-child{padding-left:34px;color:var(--gris)}
/* palette de commandes */
#palette{position:fixed;inset:0;z-index:90;background:rgba(10,23,20,.42);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.pl-boite{background:#fff;border-radius:20px;width:min(640px,100%);overflow:hidden;box-shadow:0 30px 90px rgba(10,23,20,.35)}
.pl-boite input{width:100%;border:0;outline:0;padding:20px 24px;font:500 18px var(--police-corps);color:var(--texte);border-bottom:1px solid var(--ligne)}
.pl-liste{max-height:48vh;overflow-y:auto;padding:8px}.pl-liste a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-radius:11px}
.pl-liste a.actif{background:var(--bleu-800);color:#fff}.pl-liste small{color:var(--gris-500);font-size:12px}.pl-liste a.actif small{color:var(--citron)}
.pl-boite footer{padding:10px 18px;color:var(--gris-500);font-size:12px;border-top:1px solid var(--ligne);display:flex;gap:8px;align-items:center}
@media (max-width:1100px){#entete{flex-wrap:wrap;height:auto;padding:10px 16px;gap:10px;position:static}#modules{order:5;width:100%;margin:0}#ouvrir-palette{margin-left:auto}#ouvrir-palette span{display:none}
  #nav{top:0;padding:0 16px;overflow-x:auto;scrollbar-width:none}.barre-page{padding:18px 16px 4px}.barre-page h1{font-size:26px}.page{padding:14px 16px}.grille2{grid-template-columns:1fr}.formulaire{grid-template-columns:1fr}.modale-boite{border-radius:0}
  .deroulant>div{position:fixed;top:auto;left:16px}:root{--h-entete:52px}}
@media print{#entete,#nav,.outils,.barre-page .bouton{display:none!important}}

/* zone A — patrimoine, détentions, paramètres */
.za-graph{padding:12px 14px 2px}
.za-occ{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.za-occ .barre{width:60px}
.za-date{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gris)}
.za-date input{border:1px solid var(--ligne);border-radius:6px;padding:4px 8px;font-size:13px;color:var(--texte)}
.za-kpis-carte{padding:12px 14px 0;margin-bottom:0;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.za-kpis-carte .kpi{box-shadow:none;padding:8px 10px}.za-kpis-carte .kpi .val{font-size:15px}
.fil-actu .za-jdate{width:78px;flex:none;font-variant-numeric:tabular-nums}
.za-petit{font-size:12px;white-space:normal}
.za-entete{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 6px;font-size:14px}
.za-onglets{margin:0 0 14px;padding:0;overflow-x:auto}.za-onglets a{white-space:nowrap}
.za-section{font-size:14px;font-weight:600;margin:18px 0 10px}
.za-sous-titre{font-size:12px;color:var(--gris);padding:10px 14px 0;text-transform:uppercase;letter-spacing:.4px}
tr.za-ancien td{color:var(--gris-clair)}tr.za-ancien td a.lien{color:var(--gris)}
.za-org{overflow-x:auto;padding:14px}
.za-org svg{display:block;margin:0 auto;font-family:inherit}
.za-arete{fill:none;stroke:var(--bleu-300);stroke-width:1.5}
.za-pct rect{fill:#fff;stroke:var(--bleu-300)}.za-pct text{font-size:10.5px;font-weight:600;fill:var(--texte)}
.za-noeud rect{stroke-width:1.2}.za-noeud text.nom{font-size:12px;font-weight:600;fill:var(--texte)}.za-noeud text.type{font-size:10px;fill:var(--gris)}
.za-noeud:hover rect{stroke-width:2.4}
.za-noeud.physique rect{fill:var(--creme);stroke:var(--gris-400)}
.za-noeud.morale rect{fill:var(--bleu-100);stroke:var(--bleu-400)}
.za-noeud.actif rect{fill:#F5EBDD;stroke:var(--terre-300)}
.za-legende-org i.physique{background:var(--creme);border:1px solid var(--gris-400)}.za-legende-org i.morale{background:var(--bleu-100);border:1px solid var(--bleu-400)}.za-legende-org i.actif{background:#F5EBDD;border:1px solid var(--terre-300)}
.za-grille>*{min-width:0}
/* zone B — fiche actif */
.b-entete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 12px;font-size:13px}
.b-entete .b-onglet{font-weight:600;font-size:15px}
.b-barre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;font-size:13px}
.b-barre input[type=date]{border:1px solid var(--ligne);border-radius:6px;padding:5px 8px;font-size:13px;background:#fff;margin-left:6px}
.b-bandeau{background:#F7EFE4;border:1px solid var(--terre-300);color:var(--terre-700);border-radius:var(--rayon);padding:10px 14px;margin-bottom:14px;font-size:13px}
.b-bandeau.gris{background:var(--gris-100);border-color:var(--ligne);color:var(--gris)}
.b-jauge{display:inline-flex;align-items:center;gap:8px}.b-jauge .barre{width:70px}.b-jauge span{font-variant-numeric:tabular-nums;font-size:12px}
.b-mini .compte{display:none}
.b-kpis .kpi .sous{float:none;margin-top:2px}
.b-description{white-space:pre-wrap;font-size:13px}
.b-chevron{display:inline-block;color:var(--gris);transition:transform .15s}tr.b-ouvert .b-chevron{transform:rotate(90deg)}
tr.b-ouvert td{background:var(--survol)}tr.b-detail>td{background:var(--bleu-50);padding:8px 14px 12px 36px;white-space:normal}
.b-deplie>.muted{margin-bottom:6px;font-size:12px}
.b-mini-table{width:auto;min-width:420px;background:#fff;border:1px solid var(--ligne);border-radius:6px}
.b-mini-table th,.b-mini-table td{padding:5px 10px;cursor:default}
.b-codes{display:inline-block;white-space:normal;max-width:360px;font-size:12px;color:var(--gris)}
tr.b-pale td{color:var(--gris)}
.b-liste-numeros{columns:3;padding-left:18px;margin:6px 0}
table.b-arbre td{padding:6px 12px}table.b-arbre .ligne-totale td{background:var(--bleu-100)}
table.b-arbre .b-niv1 td{font-weight:600;background:var(--bleu-50)}table.b-arbre .b-niv1 td:first-child{padding-left:26px}
table.b-arbre .b-niv2 td:first-child{padding-left:44px}
input.b-saisie{width:110px;text-align:right;border:1px solid var(--gris-300);border-radius:5px;padding:3px 6px;font:inherit;font-variant-numeric:tabular-nums;background:#fff}
input.b-saisie:focus{outline:2px solid var(--accent-pale);border-color:var(--accent)}
.b-defile{max-height:55vh;overflow:auto}
.b-phasage{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:13px;border-bottom:1px solid var(--ligne)}
.b-dataroom{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
.b-dataroom>*,.b-grille>*{min-width:0}
.b-arbre-docs{list-style:none;margin:0;padding:6px}
.b-arbre-docs li{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}
.b-arbre-docs li:hover{background:var(--survol)}.b-arbre-docs li.actif{background:var(--accent-pale);color:var(--accent-fonce);font-weight:600}
.b-arbre-docs li.b-sous{padding-left:24px;font-size:12.5px;color:var(--gris)}.b-arbre-docs li b{font-weight:500;color:var(--gris-clair)}
.b-televerser{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.b-televerser select,.b-televerser input{border:1px solid var(--ligne);border-radius:6px;padding:5px 8px;font-size:13px;background:#fff;max-width:260px}
.b-pipeline{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:10px;padding:12px;overflow-x:auto}
.b-colonne{background:var(--fond);border-radius:var(--rayon);padding:8px;min-height:90px}
.b-colonne-titre{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.b-fiche{background:#fff;border:1px solid var(--ligne);border-radius:6px;padding:8px;margin-bottom:6px;display:flex;flex-direction:column;gap:2px;font-size:12.5px;cursor:pointer}
.b-fiche:hover{border-color:var(--accent)}.b-etape{color:var(--accent-fonce)}.b-vide-col{text-align:center;padding:10px}
.b-stack{margin-bottom:14px}.b-stack-titre{font-weight:600;font-size:13px;margin-bottom:6px}
.b-etage{display:flex;gap:8px;align-items:stretch;margin-bottom:4px}
.b-niv{width:46px;flex:none;font-size:12px;color:var(--gris);display:flex;align-items:center;justify-content:flex-end}
.b-blocs{flex:1;display:flex;gap:3px;flex-wrap:wrap}
.b-bloc{min-width:52px;border-radius:4px;padding:4px 6px;font-size:11px;line-height:1.25;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;flex-direction:column}
.b-bloc span{overflow:hidden;text-overflow:ellipsis;opacity:.85}.b-bloc .b-nat{opacity:1}.b-bloc .b-occ{font-size:10.5px}
.b-bloc.occupe{background:var(--bleu-800);color:var(--creme)}.b-bloc.vacant{background:var(--terre-300);color:var(--terre-700)}
.b-bloc.b-dev,.b-dev-pastille{background:repeating-linear-gradient(135deg,var(--bleu-100) 0 6px,var(--bleu-200) 6px 12px);color:var(--bleu-800)}.b-bloc:hover{filter:brightness(.92)}
@media (max-width:860px){.b-dataroom{grid-template-columns:1fr}.b-pipeline{grid-template-columns:repeat(5,170px)}}
/* fin zone B */
/* zone C */
.zc-vues{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);padding:0 8px}
.zc-vues a{display:inline-block}
.zc-entete{display:flex;flex-wrap:wrap;gap:10px 30px;padding:12px 14px;align-items:flex-start}
.zc-entete>div{display:flex;flex-direction:column;gap:3px;font-size:13px;min-width:0}
.zc-entete .lib{font-size:11.5px;color:var(--gris)}
.zc-entete select,.zc-filtres select,.carte>h2 select{border:1px solid var(--ligne);border-radius:6px;padding:3px 6px;font-size:12.5px;background:#fff;font-weight:400}
.zc-filtres{margin-bottom:14px}.zc-filtres .outils{border-bottom:0}
.zc-sep{width:1px;height:22px;background:var(--ligne);margin:0 2px}
.zc-orange{color:var(--orange)}
.zc-etapes{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.zc-etapes span{padding:6px 14px;border-radius:16px;background:var(--gris-200);color:var(--gris);font-size:12.5px;font-weight:600}
.zc-etapes span.actif{background:var(--accent);color:#fff}.zc-etapes span.fait{background:var(--accent-pale);color:var(--accent-fonce)}
.zc-pied{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:12px 14px;border-top:1px solid var(--ligne)}
div.zc-pied{border:0;padding:0 0 14px}
.zc-fleche{width:20px;color:var(--gris)}
tr.zc-detail>td{background:var(--bleu-50);padding:4px 12px 12px}
table.zc-sous{background:#fff;border:1px solid var(--ligne);font-size:12px}table.zc-sous th,table.zc-sous td{padding:4px 10px}
.zc-sec{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:13.5px}
.zc-lettrage{max-height:340px;overflow:auto;border:1px solid var(--ligne);border-radius:6px}
.zc-lettrage td,.zc-lettrage th{padding:6px 10px}
.zc-lettrage input{width:120px;text-align:right;border:1px solid var(--gris-300);border-radius:6px;padding:4px 6px;font-size:13px}
.zc-recap .kpis{margin:12px 0 0}.zc-recap{margin-top:12px}
.zc-imprimable{display:none}
@media print{
  body.zc-imp .barre-page,body.zc-imp .page>*:not(.zc-imprimable){display:none!important}
  body.zc-imp .zc-imprimable{display:block;font-size:12px;color:#000}
  body.zc-imp #contenu{padding:0}body.zc-imp .page{padding:0}
}
.zc-imp-tete{display:flex;justify-content:space-between;gap:40px;margin-bottom:28px}
.zc-imp-dest{border:1px solid #ccc;border-radius:6px;padding:10px 14px;min-width:260px}
.zc-imp-nom{font-weight:700;font-size:14px;margin-bottom:4px}
.zc-imprimable h1{font-size:20px;margin:0 0 14px}
.zc-imprimable dl.fiche{margin-bottom:18px}
.zc-imp-lignes th,.zc-imp-lignes td{border-bottom:1px solid #ddd;padding:6px 8px;background:none;color:#000}
.zc-imp-totaux{width:320px;margin:14px 0 0 auto}.zc-imp-totaux td{padding:4px 8px;border:0}.zc-imp-totaux tr.gras td{border-top:1px solid #000}

/* zone D */
.zd-vues{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);margin-bottom:14px;padding:0 8px}
.zd-filtres .outils{border-bottom:0}
label.zd-f{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gris);white-space:nowrap}
label.zd-f select,label.zd-f input,.zd-filtres select{border:1px solid var(--ligne);border-radius:6px;padding:5px 8px;font-size:13px;background:#fff;color:var(--texte);max-width:240px}
label.zd-f input[type=number]{width:84px}
.zd-barre{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
tr.zd-alerte td{background:#FBF1F2}
tr.zd-passe td{color:var(--gris)}
.zd-cov{display:inline-flex;gap:4px;flex-wrap:wrap}
.zd-statut-crg{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px}
table.zd-calc td{padding:8px 14px}table.zd-calc tr.total td{font-weight:700;background:var(--accent-pale);border-top:2px solid var(--accent);border-bottom:0}
.zd-cf th:first-child,.zd-cf td:first-child{position:sticky;left:0;z-index:1;background:var(--carte);min-width:230px}
.zd-cf thead th:first-child,.zd-cf tr.ligne-totale td:first-child{background:var(--bleu-50)}
.zd-cf tr.zd-n0{cursor:pointer}.zd-cf .zd-pli{color:var(--gris);font-size:11px}
.zd-arbre td.zd-lib{padding-left:calc(12px + var(--n,0)*18px)}
.zd-arbre tr.zd-ar-parent{cursor:pointer}.zd-arbre tr.zd-ar-parent:hover td{background:var(--bleu-50)}
.zd-arbre tr.zd-ar-n0 td{font-weight:600}.zd-arbre tr.zd-ar-n2 td.zd-lib{color:var(--gris)}
.zd-arbre thead tr+tr th:first-child{position:static;min-width:0}
.zd-arbre th.zd-periode{text-align:center;border-left:1px solid var(--ligne)}.zd-arbre th.zd-ind{font-weight:500;font-size:11.5px}
.zd-indic{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 12px}.zd-coche{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:12.5px;color:var(--texte)}
.zd-vues-enreg{border-top:1px solid var(--ligne)}
.zd-avec-bouton{display:flex;gap:6px;align-items:center}.zd-avec-bouton select{flex:1}.zd-avec-bouton .bouton{margin-top:3px}
table.zd-lignes td{padding:4px 5px}
table.zd-lignes input:not([type=checkbox]),table.zd-lignes select{width:100%;min-width:90px;padding:5px 6px;border:1px solid var(--gris-300);border-radius:5px;font-size:12.5px;background:#fff;color:var(--texte)}
table.zd-lignes input[data-k=libelle]{min-width:190px}table.zd-lignes input.num{text-align:right;min-width:100px}
.zd-mandats{margin-top:14px;max-height:380px;overflow:auto;border:1px solid var(--ligne);border-radius:6px}.zd-mandats:empty{display:none}
@media print{.zd-filtres,.zd-vues,.zd-barre .bouton,.ligne-actions{display:none!important}}
.modale-boite footer.zd-pied{flex-wrap:wrap}
/* import de données */
.zone-depot{display:block;border:2px dashed var(--gris-300);border-radius:var(--rayon);padding:22px;text-align:center;cursor:pointer;margin-bottom:12px;background:var(--fond)}
.zone-depot.survol,.zone-depot:hover{border-color:var(--accent);background:var(--accent-pale)}
.bandeau{padding:10px 14px;border-radius:var(--rayon);margin-bottom:14px;border:1px solid var(--ligne);background:#fff}
.bandeau.succes{background:#E2EEE8;border-color:#C3DCCF;color:var(--positif)}.bandeau.attention{background:#F7EFE4;border-color:var(--terre-300);color:var(--terre-700)}
tr.ligne-erreur td{background:#FBF1F2}
.petit-texte{font-size:12px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;align-items:center}
.grille2>*{min-width:0}
/* fin import */
/* connexion */
#connexion{position:fixed;inset:0;z-index:70;background:#fff;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.cx-gauche{background:var(--bleu-800);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.logo-clair{color:#fff}.cx-gauche h1{font:700 clamp(34px,4.2vw,62px)/1.04 var(--police-titre);margin:0;color:var(--citron);max-width:13em}
.cx-gauche ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--bleu-200);font-size:16px}.cx-gauche li::before{content:"→ ";color:var(--citron)}
#connexion form{align-self:center;justify-self:center;width:min(380px,calc(100% - 40px));display:grid;gap:14px}
#connexion h2{font:700 30px var(--police-titre);margin:0 0 6px}
#connexion label{font-size:13px;font-weight:600;color:var(--gris-600);display:grid;gap:5px}
#connexion input{font-size:15px;padding:12px 14px;border:1.5px solid transparent;background:var(--gris-100);border-radius:12px;font-family:inherit}
#connexion input:focus{outline:0;border-color:var(--bleu-500);background:#fff}
#connexion .bouton{padding:13px;justify-content:center;font-size:15px}
@media (max-width:800px){#connexion{grid-template-columns:1fr;grid-template-rows:auto 1fr}.cx-gauche{padding:26px 22px}.cx-gauche ul{display:none}}
/* fin connexion */

.zc-vues,.zc-page .onglets{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.zc-vues a,.zc-page .onglets>*{flex:none;white-space:nowrap}
.zc-k4{grid-template-columns:repeat(4,minmax(0,1fr))}
.zc-mensuel td:first-child,.zc-mensuel th:first-child{position:sticky;left:0;z-index:1;background:var(--carte)}
.zc-mensuel th:first-child,.zc-mensuel tfoot td:first-child{background:var(--bleu-50)}
@media (max-width:860px){
  .zc-barre{flex-wrap:wrap;position:static;padding:10px 14px;row-gap:8px}
  .zc-barre h1{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
  .zc-barre>span[style]{display:none}
  .zc-barre .boutons{flex:1 1 100%;gap:6px}
  .zc-page{padding:12px}
  .zc-page .kpis,.zc-recap .kpis,.zc-k4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .zc-page .kpi,.zc-recap .kpi{padding:10px 12px;min-width:0}
  .zc-page .kpi .val,.zc-recap .kpi .val{font-size:16px;overflow-wrap:anywhere}
  .zc-page .kpi .sous,.zc-recap .kpi .sous{float:none;margin-top:2px}
  .zc-entete{gap:10px 20px}
  .zc-filtres .outils>select,.zc-filtres .outils>input[type=date]{flex:1 1 140px;min-width:0;max-width:100%}
  .zc-filtres .zc-sep{display:none}
  .zc-page .outils>select{flex:1 1 140px;min-width:0;max-width:100%}
}
@media (max-width:640px){
  .zc-lettrage thead{display:none}
  .zc-lettrage table,.zc-lettrage tbody{display:block}
  .zc-lettrage tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--ligne)}
  .zc-lettrage td{border:0;padding:0;white-space:normal}
  .zc-lettrage td.num{text-align:left}
  .zc-lettrage td.long{grid-column:1/-1;min-width:0;color:var(--gris);font-size:12px}
  .zc-lettrage td[data-lib]::before{content:attr(data-lib) " · ";color:var(--gris);font-size:11.5px}
  .zc-lettrage input{width:100%}
}
.za-onglets{overflow-y:hidden}
.za-courbe{display:block;max-width:100%}
.za-courbe text{font-size:11px;fill:var(--gris);font-variant-numeric:tabular-nums}
.za-courbe .grille{stroke:var(--gris-200)}
.barre-page:has(.za-date){flex-wrap:wrap;row-gap:6px}
.za-occ .barre{width:48px;min-width:48px}.za-grille th,.za-grille td{padding-left:9px;padding-right:9px}
.za-nowrap{white-space:nowrap}.za-grille .carte>h2{flex-wrap:wrap;row-gap:4px}
@media (max-width:600px){
  .za-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .za-kpis .kpi{padding:9px 10px;min-width:0}.za-kpis .kpi .val{font-size:16px;overflow-wrap:anywhere}
  .za-kpis .kpi .sous{float:none;margin-top:2px}
}
.zd-onglets,.zd-vues{overflow-x:auto;overflow-y:hidden}.zd-onglets button{white-space:nowrap}
.zd-vues a{white-space:nowrap}
table.zd-calc td:first-child{white-space:normal}
.zd-kpis-crg{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.zd-kpi-texte{font-size:14px;white-space:normal}
.zd-hyp{margin:0;padding:8px 14px;font-size:12.5px;border-bottom:1px solid var(--ligne)}
tr.zd-futur td{color:var(--gris-clair)}
@media (max-width:640px){
  .zd-page .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .zd-page .kpi{padding:10px 12px;min-width:0}.zd-page .kpi .val{font-size:16px;overflow-wrap:anywhere}
  .zd-page .kpi .sous{float:none;margin-top:2px}
  .zd-filtres .outils{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .zd-filtres .outils>span:empty{display:none}
  .zd-filtres label.zd-f{flex-direction:column;align-items:stretch;gap:2px;white-space:normal;min-width:0}
  .zd-filtres label.zd-f select,.zd-filtres label.zd-f input,.zd-filtres .outils>select{max-width:none;width:100%;min-width:0}
  .zd-filtres .zd-multi{display:flex;align-items:flex-end;min-width:0}.zd-filtres .zd-multi details.multi,.zd-filtres .zd-multi summary{width:100%;max-width:none}
  .zd-filtres .outils>.bouton{align-self:end}
  .zd-cf th:first-child,.zd-cf td:first-child{min-width:150px;max-width:170px;white-space:normal}
  .zd-filtres .zd-indic{grid-column:1/-1}.zd-arbre td.zd-lib{padding-left:calc(8px + var(--n,0)*14px)}
  .zd-statut-crg>span[style]{display:none}
  table.zd-lignes thead{display:none}
  table.zd-lignes,table.zd-lignes tbody,table.zd-lignes tfoot{display:block}
  table.zd-lignes tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--ligne)}
  table.zd-lignes td{display:block;border:0;padding:0;white-space:normal;text-align:left}
  table.zd-lignes td[data-l]::before{content:attr(data-l);display:block;font-size:11px;color:var(--gris);margin-bottom:2px}
  table.zd-lignes td:first-child{grid-column:1/-1}
  table.zd-lignes td:empty,table.zd-lignes tfoot td[colspan]{display:none}
  table.zd-lignes input:not([type=checkbox]),table.zd-lignes select,table.zd-lignes input[data-k=libelle],table.zd-lignes input.num{min-width:0}
  .modale-boite footer.zd-pied .gauche{margin-right:0;flex-basis:100%}
}
@media (min-width:1360px){.b-kpis{grid-template-columns:repeat(var(--b-n),minmax(0,1fr))}}
.b-zone .carte>h2{flex-wrap:wrap;row-gap:6px}
table.b-arbre th,table.b-arbre td{padding:6px 8px}
table.b-arbre td:first-child{white-space:normal;min-width:220px}
table.b-arbre input.b-saisie{width:92px}
.b-bloc.b-parking{flex:0 0 62px;min-width:0}
@media (max-width:640px){.b-bloc{min-width:84px}.b-bloc.b-parking{flex:1 1 84px}}
@media (max-width:860px){
  #contenu:has(.b-entete) .barre-page{flex-wrap:wrap;position:static;row-gap:8px}
  .b-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .b-kpis .kpi{padding:10px 12px}.b-kpis .kpi .val{font-size:16px}
  .b-jauge .barre{width:44px;min-width:44px}
  table.b-arbre td:first-child{min-width:180px}
}
.page:empty::before{content:"Chargement…";display:block;padding:48px 0;text-align:center;color:var(--gris)}
.onglets{overflow-x:auto;scrollbar-width:thin}.onglets button,.onglets a{white-space:nowrap}
@media (max-width:860px){
  .barre-page{flex-wrap:wrap;row-gap:8px;position:static}.barre-page h1{flex:1 1 auto;min-width:0}.barre-page .boutons{flex-wrap:wrap}
  .page{padding:12px}
}
@media (max-width:560px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:10px}.kpi .val{font-size:16px}
  .outils{gap:6px}.outils input[type=search]{min-width:0;flex-basis:100%}
}
.kpi .sous{float:none;margin-top:3px}  /* sous-titre sous la valeur : plus de chevauchement sur les tuiles étroites */
.za-attributs [data-attr]{cursor:pointer}.za-attributs dd[data-attr]:hover,.za-attributs dt[data-attr]:hover{color:var(--accent)}
/* comptes utilisateurs */
#moi{font-size:13px;color:var(--creme);white-space:nowrap}#moi .muted{color:var(--bleu-300)}
@media (max-width:860px){#moi{display:none}}
/* lecture seule : les boutons d'ajout, de modification et de suppression ne sont pas proposés (le serveur les refuse de toute façon) */
/* écran en lecture seule (droits) : boutons de création et de modification masqués, fiches en consultation */
body.lecture-seule [data-ajout],body.lecture-seule [data-suppr],body.lecture-seule [data-act="modifier"],body.lecture-seule [data-act="supprimer"],body.lecture-seule [data-act="surfaces"],
body.lecture-seule .barre-page .boutons button,body.lecture-seule [data-ajout-v],body.lecture-seule [data-ajout-val],body.lecture-seule [data-statut-sel],
body.lecture-seule [data-relancer],body.lecture-seule [data-aligner],body.lecture-seule .consultation [data-ok]{display:none!important}
.za-mdp{font-size:18px;padding:8px 12px;background:var(--fond,#f4f6f8);border-radius:6px;user-select:all;display:inline-block;margin:6px 0}
.formulaire p.plein{grid-column:1/-1;margin:0}  /* texte d'introduction de demander() */
/* fin comptes utilisateurs */
.b-surf{display:inline-block;white-space:nowrap;margin:1px 6px 1px 0}.b-surf.annexe{color:var(--muted)}

/* documents texte et Markdown */
.md-corps{max-height:70vh;overflow:auto}.md-brut{white-space:pre-wrap;font:13px/1.5 ui-monospace,Menlo,monospace;margin:0}
.md-rendu{font-size:14px;line-height:1.55}.md-rendu h2,.md-rendu h3,.md-rendu h4{margin:14px 0 6px}.md-rendu h2{font-size:18px}.md-rendu h3{font-size:16px}.md-rendu h4{font-size:14px}
.md-rendu p,.md-rendu ul,.md-rendu ol{margin:6px 0}.md-rendu ul,.md-rendu ol{padding-left:22px}.md-rendu blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--accent);color:var(--muted)}
.md-rendu pre{background:var(--fond,#f4f6f8);padding:10px;border-radius:6px;overflow:auto;font-size:12.5px}.md-rendu code{background:var(--fond,#f4f6f8);padding:1px 4px;border-radius:4px;font-size:12.5px}
.md-rendu .tableau{margin:8px 0}.md-rendu hr{border:0;border-top:1px solid var(--bordure,#e3e7ec);margin:12px 0}
.za-depot{display:flex;flex-direction:column;gap:10px}.za-zone-depot{display:flex;flex-direction:column;gap:4px;align-items:center;padding:22px 12px;border:2px dashed var(--bordure,#cfd6de);border-radius:8px;cursor:pointer;text-align:center}
.za-zone-depot:hover,.za-zone-depot.survol{border-color:var(--accent);background:var(--accent-pale)}.za-depot button{align-self:flex-start}

.md-rendu,.b-description,.corps>p{line-height:1.6}
a.lien{color:var(--bleu-600)}
.legende{color:var(--gris-600)}
.sources{font-size:11.5px;color:var(--gris-600);padding:0 14px 10px}

/* choix multiples à cases à cocher */
details.multi{position:relative;display:inline-block}
details.multi>summary{list-style:none;cursor:pointer;border:1px solid var(--gris-300);border-radius:6px;padding:5px 26px 5px 9px;font-size:13px;background:#fff;color:var(--bleu-800);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis;position:relative}
details.multi>summary::-webkit-details-marker{display:none}
details.multi>summary::after{content:"▾";position:absolute;right:9px;top:5px;color:var(--gris-600)}
details.multi[open]>summary{border-color:var(--bleu-600)}
.multi-liste{position:absolute;z-index:25;top:calc(100% + 4px);left:0;min-width:220px;max-height:340px;overflow:auto;background:#fff;border:1px solid var(--gris-300);border-radius:8px;box-shadow:0 10px 30px rgba(11,24,65,.15);padding:8px;display:flex;flex-direction:column;gap:2px}
.multi-liste label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;font-size:13px;cursor:pointer;white-space:nowrap}
.multi-liste label:hover{background:var(--bleu-50)}
.multi-raccourcis{display:flex;gap:10px;padding:0 6px 6px;border-bottom:1px solid var(--gris-200);margin-bottom:4px}
.multi-raccourcis button{border:0;background:none;color:var(--bleu-600);cursor:pointer;font-size:12px;padding:0}
.multi-liste .bouton{margin-top:6px;align-self:flex-end}
/* tuiles avec répartition par périmètre */
.kpi .rep{display:grid;grid-template-columns:10px auto 1fr auto;gap:2px 6px;align-items:center;margin-top:8px;padding-top:6px;border-top:1px solid var(--gris-200);font-size:11.5px;color:var(--gris-600)}
.kpi .rep b{font-family:var(--police-chiffres);font-variant-numeric:tabular-nums;font-weight:600;color:var(--bleu-800);text-align:right}
.kpi .rep .pt,.pt-per{width:9px;height:9px;border-radius:2px;display:inline-block}
.kpi .rep .part{text-align:right;min-width:42px;font-family:var(--police-chiffres);font-variant-numeric:tabular-nums}
.kpis.za-rep{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))}
.za-pole dl.fiche{grid-template-columns:200px 1fr}

.alerte-texte { color: var(--alerte); font-weight: 600; }
.multi-liste [data-cherche]{border:1px solid var(--gris-300);border-radius:6px;padding:5px 8px;font-size:13px;margin-bottom:6px;font-family:inherit;color:var(--bleu-800)}
.multi-cases{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}
.multi-cases label[hidden]{display:none}
.zd-multi{display:inline-flex;align-items:center}

/* droits par écran : niveaux, écarts d'un compte par rapport à son rôle */
.sel-droit{border:1px solid var(--gris-300);border-radius:6px;padding:3px 6px;font-size:12.5px;font-family:inherit}
.niveau-aucun{background:var(--gris-100);color:var(--gris-600)}
.niveau-lecture{background:var(--bleu-50);color:var(--bleu-700)}
.niveau-ecriture{background:#E4EFEA;color:var(--positif)}
.etiquette-droit{display:inline-block;border-radius:6px;padding:3px 8px;font-size:12.5px}
.table-droits td,.table-droits th{white-space:normal}
.table-droits .groupe-droits td{background:var(--bleu-50);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--gris-600)}
.matrice-droits th{min-width:120px;vertical-align:top}
.matrice-droits td.modifie{box-shadow:inset 0 0 0 2px var(--terre-500)}
tr.droit-ajoute td{background:#E4EFEA}tr.droit-ajoute [data-etat]{color:var(--positif);font-weight:600}
tr.droit-retire td{background:#F3E3E5}tr.droit-retire [data-etat]{color:var(--alerte);font-weight:600}
.droit-ajoute-ex{background:#E4EFEA;color:var(--positif);border-radius:4px;padding:1px 6px;font-weight:600}
.droit-retire-ex{background:#F3E3E5;color:var(--alerte);border-radius:4px;padding:1px 6px;font-weight:600}
.droit-ecart{color:var(--terre-700);font-weight:600}
.zc-avis{margin:6px 0 2px;padding:8px 10px;border-left:3px solid var(--terre-500);background:var(--gris-100);font-size:12.5px}

/* congés : types, calendrier d'équipe (deux demi-journées par case) */
.cg-type{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.cg-type::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c)}
.cg-titre{min-width:170px;text-align:center;text-transform:capitalize}
.cg-mode{display:inline-flex;border:1px solid var(--gris-300);border-radius:6px;overflow:hidden}.cg-mode a{padding:5px 10px;font-size:13px;color:var(--bleu-800)}
.cg-mode a.actif{background:var(--bleu-800);color:var(--creme)}
.cg-grille-boite{overflow:auto;max-height:calc(100vh - 260px)}
table.cg-grille{border-collapse:separate;border-spacing:0;font-size:11.5px;width:auto}
.cg-grille th,.cg-grille td{padding:0;border-bottom:1px solid var(--gris-200);border-right:1px solid var(--gris-200);text-align:center;min-width:22px;height:24px}
.cg-grille thead th{position:sticky;top:0;z-index:2;background:var(--bleu-50);font-weight:600;line-height:1.15;padding:3px 0}
.cg-grille .cg-nom{position:sticky;left:0;z-index:1;background:#fff;text-align:left;padding:0 10px;min-width:170px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cg-grille thead .cg-nom{z-index:3;background:var(--bleu-50)}
.cg-grille td.cg-moi{font-weight:700}
.cg-grille tr.cg-groupe td{position:sticky;left:0;background:var(--bleu-50);text-align:left;padding:3px 10px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--gris-600)}
.cg-grille td[data-j]{position:relative}
.cg-grille td[data-j]>span{position:absolute;top:2px;bottom:2px;width:calc(50% - 1px)}
.cg-grille td[data-j]>span:first-child{left:1px;border-radius:3px 0 0 3px}.cg-grille td[data-j]>span:last-child{right:1px;border-radius:0 3px 3px 0}
.cg-abs{background:var(--c)}
.cg-attente{background:repeating-linear-gradient(135deg,var(--c) 0 3px,transparent 3px 6px);opacity:.9}
.cg-tt{background:var(--bleu-200)}
.cg-grille .cg-we,.cg-grille th.cg-we{background:var(--gris-200)}
.cg-grille .cg-ferie,.cg-grille th.cg-ferie{background:var(--terre-300)}
.cg-grille th.cg-auj{box-shadow:inset 0 -3px 0 var(--terre-500)}
.cg-grille td.cg-clic{cursor:pointer}.cg-grille td.cg-clic:hover{background:var(--bleu-50)}
.cg-legende{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:12.5px}
.cg-l{display:inline-block;width:14px;height:12px;border-radius:3px;vertical-align:middle;margin-right:-8px}
.cg-l.cg-ferie{background:var(--terre-300)}
.cg-jours{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cg-simulation p{margin:4px 0}
.plus-lignes{display:flex;gap:8px;justify-content:center;padding:10px}

.tt-onglets{margin:-4px 0 14px;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon)}
.tt-periode{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--gris)}
.tt-periode input{border:1px solid var(--gris-300);border-radius:6px;padding:4px 6px;font:inherit;color:var(--bleu-800);background:#fff}
.tt-avert{border-left:3px solid var(--attention)}.tt-avert .corps{padding:10px 14px}
.tt-entete-op{display:grid;gap:4px;padding:12px 14px}
.tt-grille-boite{overflow:auto;max-height:calc(100vh - 190px)}
.tt-grille{border-collapse:separate;border-spacing:0;font-size:12.5px;width:max-content;min-width:100%}
.tt-grille th,.tt-grille td{padding:4px 8px;border-bottom:1px solid var(--ligne);white-space:nowrap;text-align:left;vertical-align:middle}
.tt-grille td.num,.tt-grille th.num{text-align:right;font-family:var(--police-chiffres);font-variant-numeric:tabular-nums lining-nums}
.tt-grille thead th{position:sticky;top:0;z-index:3;background:var(--bleu-800);color:var(--creme);font-family:var(--police-sstitre);font-weight:500;border-bottom:0}
.tt-grille thead th.tt-auj{box-shadow:inset 0 -3px 0 var(--terre-500)}
.tt-grille .tt-col-lot,.tt-grille .tt-col-lib{position:sticky;left:0;z-index:2;min-width:200px;max-width:260px;white-space:normal;box-shadow:inset -1px 0 0 var(--ligne)}
.tt-grille thead .tt-col-lot,.tt-grille thead .tt-col-lib{z-index:4;background:var(--bleu-800)}
.tt-grille tbody td,.tt-grille tbody th{background:#fff}
.tt-grille tbody.tt-impair td,.tt-grille tbody.tt-impair th{background:var(--gris-100)}
.tt-lot th.tt-col-lot{cursor:pointer;font-weight:400}.tt-lot th.tt-col-lot:hover b{text-decoration:underline}
.tt-lot tr:first-child td,.tt-lot tr:first-child th{border-bottom:0}
.tt-col-ligne{color:var(--gris);font-size:11.5px}
.tt-dec td{color:var(--gris-600)}
.tt-grille tbody.tt-cat th{background:var(--creme);color:var(--bleu-800);font-family:var(--police-titre);font-size:13px}
.tt-cat-lib{position:sticky;left:8px;display:inline-block}
.tt-grille tr.tt-titre th{background:var(--gris-200);color:var(--bleu-800);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}
.tt-grille tbody.tt-soustotal td,.tt-grille tbody.tt-soustotal th,.tt-grille tr.tt-soustotal td,.tt-grille tr.tt-soustotal th{background:var(--bleu-100);font-weight:600}
.tt-grille tbody.tt-total-op td,.tt-grille tbody.tt-total-op th,.tt-grille tr.tt-total-ligne td,.tt-grille tr.tt-total-ligne th{background:var(--bleu-100);font-weight:700;border-top:2px solid var(--bleu-800)}
.tt-grille td.tt-total{font-weight:600}
.tt-grille td.tt-saisie{padding:2px 3px}
.tt-saisie input{width:84px;border:1px solid transparent;border-radius:4px;background:var(--bleu-50);padding:3px 5px;text-align:right;font:inherit;font-family:var(--police-chiffres);color:var(--bleu-800)}
.tt-saisie input:hover{border-color:var(--bleu-200)}.tt-saisie input:focus{outline:0;border-color:var(--bleu-500);background:#fff}
.tt-saisie input::placeholder{color:var(--gris-400)}
.tt-saisie input.tt-proj::placeholder{color:var(--bleu-300);font-style:italic}
.tt-saisie input.tt-zero,td.tt-zero{font-weight:700}
.tt-saisie-lect{background:var(--bleu-50)!important}
.tt-vide{color:var(--gris-400)}
.tt-a-completer{background:var(--terre-300)!important}
.pastille.tt-budget{background:var(--terre-300);color:var(--terre-700)}
.tt-attention{color:var(--attention);font-weight:700}
.tt-alerte{color:var(--alerte);font-weight:700;background:#F3E2E5!important}
.tt-legende{display:inline-flex;gap:10px;flex-wrap:wrap;font-size:12px}
.tt-legende span{padding:1px 6px;border-radius:4px}
.tt-ex-saisie{background:var(--bleu-50);color:var(--bleu-800)}.tt-ex-zero{background:var(--bleu-50);color:var(--bleu-800);font-weight:700}
.tt-ex-vide{color:var(--gris-400)}.tt-ex-proj{color:var(--bleu-300);font-style:italic}
.tt-synthese td.num{min-width:72px}
.tt-compact .tt-det{display:none}

/* tableau de bord : trois grands chiffres, quatre ratios, cinq indicateurs de suivi */
.kpis.za-rep{grid-template-columns:repeat(60,minmax(0,1fr));gap:14px}
.kpis.za-rep>.kpi{grid-column:span 12}
.kpis.za-rep>.kpi:nth-child(-n+7){grid-column:span 15}
.kpis.za-rep>.kpi:nth-child(-n+3){grid-column:span 20;padding:24px 26px}
.kpis.za-rep>.kpi:nth-child(-n+3) .val{font-size:44px}
.kpis.za-rep>.kpi:first-child{background:var(--bleu-800);color:#fff}
.kpis.za-rep>.kpi:first-child .val{color:var(--citron)}.kpis.za-rep>.kpi:first-child .lib,.kpis.za-rep>.kpi:first-child .sous{color:var(--bleu-300)}
.kpis.za-rep>.kpi:first-child .rep{border-color:var(--bleu-700);color:var(--bleu-200)}.kpis.za-rep>.kpi:first-child .rep b{color:#fff}.kpis.za-rep>.kpi:first-child .rep .part{color:var(--bleu-300)}
.kpi .rep{grid-template-columns:10px minmax(0,1fr) auto auto;gap:5px 8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--ligne);font-size:12.5px}
.kpi .rep>span:not(.pt):not(.part){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi .rep b{white-space:nowrap}
.kpi .rep .pt,.pt-per{width:10px;height:10px;border-radius:50%}
.kpi .rep .part{min-width:34px}
.kpi .val{white-space:nowrap}
.kpis.za-rep>.kpi:nth-child(n+8) .val{font-size:23px}
@media (max-width:1100px){.kpis.za-rep>.kpi,.kpis.za-rep>.kpi:nth-child(-n+7),.kpis.za-rep>.kpi:nth-child(-n+3){grid-column:span 30}.kpis.za-rep>.kpi:nth-child(-n+3) .val{font-size:30px}}
@media (max-width:640px){.kpis.za-rep{grid-template-columns:minmax(0,1fr)}.kpis.za-rep>.kpi,.kpis.za-rep>.kpi:nth-child(-n+7),.kpis.za-rep>.kpi:nth-child(-n+3){grid-column:1/-1}}
/* téléphone : la grille de 60 colonnes du tableau de bord n'a plus lieu d'être ; sans cette ligne, « 1 / -1 » étale la tuile sur 60 colonnes vides et 59 écarts (826 px) */
.za-filtre-per .zd-multi>button,.zd-multi>button,.za-date input{border-radius:999px}
/* calendrier d'équipe : toute la largeur, cases arrondies */
table.cg-grille{width:100%}.cg-grille th,.cg-grille td{border-right:0;border-bottom:1px solid var(--ligne);height:30px}.cg-grille thead th{background:#fff;color:var(--gris-500)}.cg-grille thead .cg-nom{background:#fff}
.cg-grille tr.cg-groupe td{background:var(--gris-100)}.cg-grille .cg-we,.cg-grille th.cg-we{background:var(--gris-100)}.cg-grille .cg-ferie,.cg-grille th.cg-ferie{background:#FBF0DE}
.cg-grille td[data-j]>span{top:4px;bottom:4px}.cg-grille td[data-j]>span:first-child{border-radius:7px 0 0 7px}.cg-grille td[data-j]>span:last-child{border-radius:0 7px 7px 0}
.cg-grille th.cg-auj{box-shadow:inset 0 -3px 0 var(--bleu-500);color:var(--bleu-800)}.cg-mode{border:0;background:#E3E8E2;border-radius:999px;padding:3px}.cg-mode a{border-radius:999px;padding:5px 13px}.cg-mode a.actif{color:var(--citron)}

/* vues satellite */
.carte-geo.carte-sat{height:360px;background:var(--bleu-800)}.carte-parc{height:520px;background:var(--bleu-800)}
.carte-sat .leaflet-control-attribution{background:rgba(16,35,30,.72);color:#E3F1ED;font-size:10.5px;border-radius:8px 0 0 0;padding:2px 8px}.carte-sat .leaflet-control-attribution a{color:inherit}
.carte-sat .leaflet-bar{border:0;box-shadow:0 6px 18px rgba(0,0,0,.3);border-radius:12px;overflow:hidden}.carte-sat .leaflet-bar a{background:var(--bleu-800);color:#fff;border-color:var(--bleu-700)}.carte-sat .leaflet-bar a:hover{background:var(--bleu-700);color:var(--citron)}
.repere-sat i{display:block;width:22px;height:22px;border-radius:50%;background:var(--citron);border:4px solid #fff;box-shadow:0 3px 14px rgba(0,0,0,.55)}
.etiquette-sat{background:var(--bleu-800);color:#fff;border:0;border-radius:9px;padding:5px 11px;font:600 13px var(--police-corps);box-shadow:0 4px 16px rgba(0,0,0,.35)}.etiquette-sat::before{display:none}
.carte-sat .leaflet-popup-content-wrapper{background:var(--bleu-800);color:#fff;border-radius:14px}.carte-sat .leaflet-popup-tip{background:var(--bleu-800)}.carte-sat .leaflet-popup-content{font:13.5px/1.5 var(--police-corps);margin:12px 16px}.carte-sat .leaflet-popup-content span{color:var(--bleu-200)}.carte-sat .leaflet-popup-content a.lien{color:var(--citron)}.carte-sat a.leaflet-popup-close-button{color:#fff}
.carte-sat .leaflet-tile-container img{width:256.6px!important;height:256.6px!important}

/* bulles d'aide au survol */
#bulle{position:fixed;z-index:95;max-width:320px;background:var(--bleu-800);color:#fff;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.42;box-shadow:0 14px 40px rgba(10,23,20,.34);pointer-events:none;animation:bulle .12s ease-out}
#bulle b{display:block;color:var(--citron);font-weight:700;margin-bottom:2px}
@keyframes bulle{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#bulle{animation:none}}

/* import intelligent */
.ia-entete{background:var(--bleu-800);color:#fff;padding:26px 28px}.ia-entete h2{font:700 28px/1.1 var(--police-titre);color:var(--citron);margin:0 0 8px}.ia-entete p{margin:0;max-width:760px;color:var(--bleu-200);font-size:15px}
.ia-depot{display:block;text-align:center;padding:34px 20px;border:2px dashed var(--bleu-300);border-radius:16px;background:var(--bleu-50);cursor:pointer;transition:background .15s,border-color .15s;font-size:16px}.ia-depot:hover,.ia-depot.survol{background:var(--bleu-100);border-color:var(--bleu-500)}.ia-inactif{opacity:.55}
.ia-note{margin:10px 0 0;font-size:13px}
.ia-attente{display:flex;gap:14px;align-items:center;padding:20px;margin-top:14px;background:var(--bleu-50);border-radius:14px}.ia-point{flex:none;width:14px;height:14px;border-radius:50%;background:var(--bleu-500);animation:ia-pouls 1.1s ease-in-out infinite}
@keyframes ia-pouls{50%{opacity:.25;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.ia-point{animation:none}}
.ia-client{display:flex;gap:28px;justify-content:space-between;flex-wrap:wrap;margin-top:16px;padding:18px 20px;background:var(--gris-100);border-radius:14px}.ia-client.ia-nouveau{background:#FCF9DD}
.ia-cible{border:0;margin:0;padding:0;display:grid;gap:7px;font-size:14px}.ia-cible legend{font-weight:700;padding:0;margin-bottom:6px}.ia-cible input[type=text]{border:1.5px solid var(--gris-300);border-radius:9px;padding:5px 9px;font:inherit;min-width:220px}
.ia-bandeau{margin-top:14px;padding:14px 18px;border-radius:14px;color:var(--texte)}.ia-bandeau.orange{background:#FCEBD6}.ia-bandeau.rouge{background:#FBE3E7}.ia-bandeau.vert{background:#DDF3EC}.ia-bandeau ul{margin:6px 0 0;padding-left:18px}
.ia-titre{font:700 17px var(--police-titre);margin:22px 0 8px}.ia-lignes{max-height:420px;overflow:auto}
.ia-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:18px}
.import-manuel{margin:0 0 18px}.import-manuel>summary{cursor:pointer;font-weight:600;padding:10px 4px;color:var(--gris-600)}.import-manuel[open]>summary{margin-bottom:8px}
#choix-client{flex:none;max-width:210px;border:0;background:var(--citron);color:var(--bleu-800);font:600 13.5px var(--police-corps);border-radius:999px;padding:9px 14px;box-shadow:var(--ombre);cursor:pointer}
/* compte rattaché à un client : le nom de sa base, sans choix */
#choix-client:disabled{cursor:default;appearance:none;-webkit-appearance:none;opacity:1;text-align:center}

/* à traiter */
.at-carte{margin-bottom:18px}.at-liste{padding:4px 8px 8px}
.at-ligne{display:grid;grid-template-columns:104px minmax(0,1fr) auto 16px;gap:14px;align-items:center;padding:10px 12px;border-radius:12px}.at-ligne:hover{background:var(--bleu-50)}
.at-niveau{justify-self:start;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.at-niveau.urgent{background:#FBE3E7;color:var(--alerte)}.at-niveau.surveiller{background:#FCEBD6;color:var(--terre-700)}.at-niveau.anticiper{background:var(--bleu-100);color:var(--bleu-600)}
.at-texte{display:block;min-width:0}.at-texte b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.at-texte small{display:block;color:var(--gris);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.at-montant{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.at-fleche{color:var(--gris-400);font-size:18px}.at-plus{padding:0 20px 14px}
@media (max-width:640px){.at-ligne{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.at-niveau{grid-column:1/-1}.at-fleche{display:none}.at-texte b,.at-texte small{white-space:normal;overflow-wrap:anywhere}}

/* dossier du locataire */
.dl-grille{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.dl-fiche{grid-template-columns:90px 1fr;font-size:13.5px}
.dl-baux{display:grid;gap:4px;padding:4px 8px 10px}.dl-bail{display:grid;gap:1px;padding:10px 12px;border-radius:12px}.dl-bail:hover{background:var(--bleu-50)}.dl-bail span{font-size:13.5px}.dl-bail small{color:var(--gris);font-size:12.5px}
@media (max-width:1100px){.dl-grille{grid-template-columns:1fr}}
.fiche.dl-fiche{grid-template-columns:78px minmax(0,1fr)}.fiche.dl-fiche dd{overflow-wrap:anywhere;text-align:left}
/* achat en un seul panneau, carte « À compléter » d'un immeuble, carte « À revoir » des factures */
.zd-ttc{display:block;margin-top:5px;padding:10px 12px;border-radius:12px;background:var(--gris-100);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--texte)}
.zd-reprise{display:block;margin-top:4px;font-size:12px;font-weight:500;font-style:italic;color:var(--gris-500)}
.zd-plus{padding-top:10px;border-top:1px solid var(--gris-200)}.zd-plus summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--bleu-600)}.zd-plus-corps{margin-top:12px}
.ac-carte{margin-bottom:18px}.ac-liste{display:grid;gap:2px;padding:4px 8px 10px}
.ac-ligne{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-radius:12px}.ac-ligne:hover{background:var(--bleu-50)}
.ac-texte{display:grid;gap:1px;min-width:0}.ac-texte small{color:var(--gris);font-size:12.5px}
.ar-carte{margin-bottom:18px}.ar-conforme{display:flex;align-items:center;gap:10px;padding:12px 20px;font-weight:600;color:var(--positif)}.ar-coche{font-weight:800}
.ar-liste{padding:4px 8px 8px}.ar-ligne{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:10px 12px;border-radius:12px}.ar-ligne:hover{background:var(--bleu-50)}
.ar-texte{display:grid;gap:3px;min-width:0}.ar-motif{font-size:12.5px;color:var(--terre-700)}.ar-motif.doublon{color:var(--alerte)}.ar-montant{font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:640px){.ar-ligne{grid-template-columns:minmax(0,1fr) auto}.ar-ligne .bouton{grid-column:1/-1;justify-self:start}.ac-ligne{flex-wrap:wrap}}
/* frise d'un emprunt, capital par année (tableau de valeurs), accueil des réglages, fiche de bail en quatre groupes, création guidée d'un bail */
.frise-svg{display:block;width:100%;height:auto;max-height:84px;margin:4px 0 12px}
.frise-svg .fond{fill:var(--gris-200)}.frise-svg .fait{fill:#0B8068}.frise-svg .debut{fill:#fff;stroke:var(--bleu-800);stroke-width:3}
.frise-svg .fin{fill:var(--bleu-800)}.frise-svg .prochaine{fill:#D2771C;stroke:#fff;stroke-width:2}.frise-svg .aujourdhui{stroke:#6A5AE0;stroke-width:4;stroke-linecap:round}
.frise-jalons{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.jalon{display:grid;gap:2px;align-content:start;padding-left:20px;position:relative;min-width:0}
.jalon .marque{position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;background:var(--bleu-800)}
.jalon .marque.debut{background:#fff;box-shadow:inset 0 0 0 3px var(--bleu-800)}.jalon .marque.aujourdhui{width:5px;height:16px;left:3px;top:2px;border-radius:3px;background:#6A5AE0}
.jalon .marque.prochaine{background:#D2771C;border-radius:2px;transform:rotate(45deg) scale(.8)}
.jalon-nom{font-size:12.5px;color:var(--gris);font-weight:600}.jalon b{font:700 17px/1.25 var(--police-titre)}.jalon-gras{font-weight:700;color:var(--bleu-700)}.jalon small{color:var(--gris);font-size:12.5px}
.valeurs-graphe{margin-top:8px}.valeurs-graphe summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--bleu-600);padding:4px 0}.valeurs-graphe table{width:100%;margin-top:6px}
.rg-recherche{margin-bottom:18px}.rg-recherche input{width:100%;max-width:560px;border:0;background:#fff;border-radius:999px;padding:12px 18px;font:inherit;box-shadow:var(--ombre)}
.rg-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}.rg-carte{margin-bottom:0}
.rg-sert{margin:0;padding:0 20px 6px;font-size:13.5px}.rg-liste{list-style:none;margin:0;padding:4px 8px 10px;display:grid;gap:2px}
.rg-lien{display:grid;gap:2px;padding:10px 12px;border-radius:12px}.rg-lien:hover,.rg-lien:focus-visible{background:var(--bleu-50)}.rg-lien b{color:var(--bleu-800)}.rg-lien span{color:var(--gris);font-size:13px}
.bail-section{margin-bottom:26px}.bail-section-titre{font:700 18px/1.3 var(--police-titre);margin:6px 0 10px;color:var(--bleu-800)}
.bail-sauts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.zc-suivante{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.zc-suivante p{margin:0;flex:1 1 320px}.zc-suivante.alerte p{color:var(--alerte);font-weight:600}
.kpis.zc-k6{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.kpis.zc-k6 .kpi .val{font-size:21px;overflow-wrap:anywhere}
.parcours{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.pc-colonne{min-width:0}
.pc-bloc h2{gap:12px}.pc-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bleu-800);color:var(--citron);font:700 14px var(--police-corps)}
.pc-aide{display:block;margin-top:4px;font-weight:500}.pc-pied{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 20px;background:var(--gris-100)}
.pc-lots .case{margin-top:6px}.pc-lots legend{font-size:12.5px;font-weight:600;color:var(--gris-600)}.pc-lots>div{display:grid;gap:2px}
.invalide>input,.invalide>select,.invalide input,.invalide select{border-color:var(--alerte)!important;background:#FDF1F3!important}
.pc-manques{border-color:var(--terre-300);background:#F7EFE4;color:var(--terre-700)}.pc-manque{border:0;background:#fff;border-radius:999px;padding:3px 11px;font:600 12.5px var(--police-corps);color:var(--alerte);cursor:pointer;box-shadow:inset 0 0 0 1px #EFC6CD;margin:2px}
.pc-honoraire{grid-template-columns:1.4fr 1.2fr 1fr .7fr auto;align-items:end;margin-bottom:12px}.pc-honoraire .bouton{align-self:end}
.pc-resume{position:sticky;top:136px}.pc-ligne{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px solid var(--ligne);font-size:13.5px}
.pc-ligne>span{color:var(--gris)}.pc-ligne b{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pc-ligne b small{display:block;font-weight:500}.pc-ligne.grand b{font:700 20px/1.2 var(--police-titre)}
.pc-reste{margin-top:12px;padding:10px 12px;border-radius:12px;background:#F7EFE4;color:var(--terre-700);font-size:13px}.pc-reste.ok{background:#DDF3EC;color:#08654F}.pc-reste ul{margin:6px 0 0;padding-left:18px}
.pc-erreur{color:var(--alerte);font-size:13px;margin:10px 0 0}.pc-note{color:var(--terre-700);font-size:12.5px;margin:10px 0 0}
@media (max-width:900px){.parcours{grid-template-columns:1fr}.pc-resume{position:static}.frise-jalons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pc-honoraire{grid-template-columns:1fr}.frise-jalons{grid-template-columns:1fr}.pc-pied .bouton{width:100%;justify-content:center}.rg-grille{grid-template-columns:1fr}.zc-suivante .bouton{width:100%;justify-content:center}}
.cr-dates{display:block;font-size:12px;white-space:nowrap}
.bail-section{scroll-margin-top:140px}

/* assistant : panneau « Demander », lecture de bail, relance, dataroom, rapports imprimables */
#ouvrir-assistant{display:flex;align-items:center;gap:8px;flex:none;background:var(--bleu-800);border:0;border-radius:999px;padding:9px 18px;color:var(--citron);font-weight:700;cursor:pointer;box-shadow:var(--ombre)}
#ouvrir-assistant[hidden]{display:none}#ouvrir-assistant:hover{background:var(--bleu-700)}
#assistant{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:70;background:#fff;box-shadow:-12px 0 34px rgba(16,35,30,.22);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .2s,visibility 0s .2s}
#assistant.ouvert{transform:none;visibility:visible;transition:transform .2s}
#assistant>header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--ligne);flex-wrap:wrap}#assistant>header h2{font:700 20px var(--police-titre);margin:0;color:var(--bleu-800)}
.as-corps{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 16px 14px}
.as-corps .as-fil,.as-page .as-fil{flex:1;min-height:120px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 8px}.as-page .as-fil{max-height:55vh}
.as-bulle{max-width:92%;padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.as-bulle p{margin:0 0 8px}.as-bulle p:last-child{margin:0}
.as-bulle.moi{align-self:flex-end;background:var(--bleu-800);color:#fff}.as-bulle.ia{align-self:flex-start;background:var(--bleu-50);border:1px solid var(--bleu-100)}
.as-bulle .ia-attente{margin:0;padding:6px 0;background:none}.as-bulle .ia-bandeau{margin:8px 0 0;padding:10px 12px;font-size:13px}
.as-sources{margin-top:8px;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 10px}
.as-mode{margin:0 0 8px}.as-etapes{margin:6px 0 4px;padding-left:22px}.as-etapes li{margin-bottom:4px}.as-ecrans{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.as-exemples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}.as-exemple{border:1px solid var(--bleu-200);background:#fff;color:var(--bleu-700);border-radius:999px;padding:6px 12px;font:600 13px var(--police-corps);cursor:pointer;text-align:left}.as-exemple:hover{background:var(--bleu-50)}
.as-saisie{display:flex;gap:8px;align-items:flex-end}.as-saisie textarea{flex:1;border:1.5px solid var(--gris-300);border-radius:12px;padding:9px 12px;font:inherit;resize:vertical;min-height:44px}.as-saisie textarea:focus{outline:0;border-color:var(--bleu-500)}
.as-note{font-size:12px;margin:8px 0 0}
@media (pointer:coarse){input,select,textarea{font-size:16px!important}}
body.as-ouvert #contenu{padding-right:min(440px,100vw)}
.as-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px}.as-choix{display:grid;gap:4px;padding:18px 20px;color:var(--texte)}.as-choix:hover{background:var(--bleu-50)}.as-choix b{font:700 17px var(--police-titre);color:var(--bleu-800)}
.as-champ{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--gris-600);margin:12px 0}.as-champ select{border:1.5px solid var(--gris-300);border-radius:10px;padding:8px 10px;font:inherit;color:var(--texte);background:#fff;min-width:240px;max-width:100%}
.as-ligne{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.as-ligne .bouton{margin-bottom:12px}
.as-tons{border:0;margin:10px 0 0;padding:0;display:grid;gap:8px}.as-tons legend{font-weight:700;padding:0;margin-bottom:6px}.as-tons label{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;cursor:pointer}
.as-lettre{background:#fff;border:1px solid var(--bleu-200);border-radius:12px;padding:18px 22px;max-width:760px;line-height:1.6}.as-lettre p{margin:0 0 12px}.as-lettre.non-verifie{border-color:var(--alerte);opacity:.75}
.as-reponse{font-size:15px;line-height:1.6;max-width:820px}
.as-citation{margin:12px 0;padding:10px 16px;border-left:4px solid var(--bleu-400);background:var(--bleu-50);border-radius:0 10px 10px 0;max-width:820px;font-style:italic}.as-citation footer{font-style:normal;font-size:12.5px;color:var(--gris);margin-top:6px}
.as-citation-cellule{font-style:italic;color:var(--gris-600)}
.as-rapport{background:#fff;border-radius:var(--rayon);padding:28px 32px;margin-top:16px;box-shadow:var(--ombre)}.as-rapport header h2{font:700 28px var(--police-titre);margin:4px 0;color:var(--bleu-800)}
.as-rapport section{margin-top:22px}.as-rapport h3{font:700 16px var(--police-titre);margin:0 0 8px;color:var(--bleu-800)}.as-commentaire{border-top:2px solid var(--bleu-800);padding-top:12px}.as-mention{font-size:12px;margin-top:14px}
@media (max-width:900px){body.as-ouvert #contenu{padding-right:0}}
@media (max-width:640px){#assistant>header{flex-wrap:nowrap}#assistant>header a[href="#/assistant"]{display:none}}
@media (max-width:640px){#ouvrir-assistant span{font-size:13px}#ouvrir-assistant{padding:8px 12px}.as-saisie{flex-direction:column;align-items:stretch}.as-bulle{max-width:100%}.as-rapport{padding:18px 14px}.as-champ select{min-width:0;width:100%}.as-ligne .bouton{width:100%;justify-content:center}}
@media print{
  .as-hors-impression{display:none!important}
  body.as-imp .barre-page,body.as-imp #assistant,body.as-imp #ouvrir-assistant,body.as-imp .ia-entete{display:none!important}
  body.as-imp .as-rapport{box-shadow:none;padding:0}body.as-imp #contenu,body.as-imp .page{padding:0}
}
.as-rapport td,.as-rapport th,.as-lettre,.as-citation-cellule{white-space:normal;overflow-wrap:anywhere}.as-rapport td.num,.as-rapport th.num{white-space:nowrap}
@media (max-width:640px){.as-rapport td,.as-rapport th{padding:8px 6px}}
@media (max-width:1100px){.dl-grille{grid-template-columns:minmax(0,1fr)}}.dl-grille>*{min-width:0}

/* décisions : simulateur de crise, plan d'arbitrage, risque locataire, calendrier (lecture seule) */
.dc-scenarios{display:flex;flex-wrap:wrap;gap:10px;padding:6px 20px 18px}
.dc-curseurs,.dc-regles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 22px;padding:6px 20px 18px}
.dc-champ{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--gris-600);min-width:0}
.dc-champ select,.dc-champ input{border:1.5px solid var(--gris-300);border-radius:10px;padding:8px 10px;font:inherit;color:var(--texte);background:#fff;min-width:0;width:100%}
.dc-curseur{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;font-size:13px;font-weight:600;color:var(--gris-600);align-items:baseline;min-width:0}
.dc-curseur input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--bleu-500);margin:0}
.dc-val{font:700 14px var(--police-titre);color:var(--bleu-800);font-variant-numeric:tabular-nums;white-space:nowrap}
.dc-defile{overflow-x:auto;max-width:100%}.dc-defile th{cursor:default}
.dc-comparaison th[scope=row]{color:var(--texte);font-size:13.5px;font-weight:600;text-align:left;white-space:normal}
.dc-comparaison td.vert,.dc-comparaison td.rouge{font-weight:600}
.dc-note{padding:0 20px 14px;margin:0;font-size:12.5px}.dc-treso{padding:0 20px 16px;margin:0;font-size:14px}.dc-treso b{font:700 20px var(--police-titre);margin-left:8px}
.dc-hypotheses{margin:0;padding:6px 20px 16px 38px;display:grid;gap:6px;font-size:13px;color:var(--gris-600)}
.dc-autres{padding:0}.dc-autres>summary{cursor:pointer;padding:14px 20px;font-weight:600;color:var(--bleu-800)}
.dc-arbitrage td.dc-regle{white-space:normal;min-width:200px;font-size:12.5px}
.dc-cible td{background:var(--bleu-50)}
.carte>.bandeau{margin:0 20px 14px}
@media (max-width:640px){
  .dc-scenarios{padding:4px 14px 14px}.dc-scenarios .bouton{width:100%;justify-content:center}
  .dc-curseurs,.dc-regles{grid-template-columns:minmax(0,1fr);padding:4px 14px 14px}
  .dc-note,.dc-treso{padding-left:14px;padding-right:14px}.dc-hypotheses{padding-left:32px;padding-right:14px}
  .dc-comparaison th[scope=row]{min-width:112px}.dc-comparaison th,.dc-comparaison td{padding:10px 8px}.dc-comparaison th:first-child,.dc-comparaison td:first-child{padding-left:14px}
}
.as-tableau{margin-top:14px;padding-top:10px;border-top:1px solid var(--ligne);font-size:13.5px}
@media print{.as-rapport .ia-bandeau{background:#fff!important;border:2px solid #000;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}.as-rapport .pastille{border:1px solid #000;background:#fff;color:#000}}

/* Données publiques (vues-donnees-publiques.js) : blocs sourcés, avertissements, tableaux qui défilent à 390 px */
.dp-corps{padding:0 20px 14px}.dp-corps>.kpis{margin:6px 0 14px}.dp-corps>.bandeau{margin:0 0 14px}.dp-corps .tableau,.dp-corps .dc-defile{max-width:100%;overflow-x:auto}
.dp-outils{padding:6px 0 12px}.dp-fiche{grid-template-columns:minmax(0,260px) minmax(0,1fr);margin:6px 0 10px}.dp-fiche dd{overflow-wrap:anywhere}
.dp-credit{margin:8px 0 0;font-size:12.5px;overflow-wrap:anywhere}.dp-avertissement{margin:8px 0 0;font-size:13px;color:var(--terre-700)}.dp-ok{margin:8px 0}
.dp-decret h3,.dp-titre{font:700 15px var(--police-titre);margin:14px 0 6px}.dp-decret p{margin:6px 0}.dp-reessayer{padding:0 0 8px}
.dp-alerte{border-left:4px solid var(--rouge)}.dp-alerte ul{margin:6px 0 0;padding-left:20px}.dp-annonces{font-size:13px}
@media (max-width:640px){
  .dp-corps{padding-left:14px;padding-right:14px}.dp-fiche{grid-template-columns:minmax(0,1fr);gap:2px}.dp-fiche dd{margin-bottom:8px}
  .dp-outils{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}

/* rapprochement bancaire (vues-rapprochement.js) */
.rp-bandeau{background:var(--creme);border-left:4px solid var(--terre-500);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13.5px}
.rp-import .rp-champs{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.rp-import label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--gris)}
.rp-import input,.rp-import select,.rp-releves select{border:1px solid var(--gris-300);border-radius:8px;padding:6px 8px;font-size:13.5px;background:#fff;max-width:100%}
.rp-colonnes{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0}.rp-colonnes .gras{grid-column:1/-1;margin:0}
.rp-actions{margin-top:12px}.rp-releves{display:flex;gap:12px;align-items:end;margin-bottom:12px;flex-wrap:wrap}.rp-releves label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--gris)}
.rp-statuts{margin:6px 0 12px}.rp-lot{margin:0 0 12px}.rp-prop{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--ligne)}
.rp-prop ul{margin:4px 0 0;padding-left:18px;font-size:12.5px;color:var(--gris)}.rp-erreurs ul{margin:4px 0;padding-left:18px;font-size:13px}
.rp-confirm .fiche{margin-bottom:10px}
@media (max-width:640px){.rp-import .rp-champs{flex-direction:column;align-items:stretch}.rp-prop{flex-direction:column}}

/* visites d'immeuble sur le terrain (vues-visites.js) : grands boutons, une main */
.vs-nouvelle{display:flex;flex-direction:column;gap:12px}.vs-nouvelle label,.vs label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--gris)}
.vs select,.vs textarea,.vs-nouvelle select,.vs-nouvelle input{border:1px solid var(--gris-300);border-radius:12px;padding:12px;font-size:16px;background:#fff;width:100%;font-family:inherit;color:var(--texte)}
.vs-grand{min-height:52px;font-size:16px;justify-content:center;width:100%;padding:12px 18px}
.vs-liste{display:flex;flex-direction:column}.vs-ligne{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--ligne)}
.vs-ligne small{display:block;color:var(--gris)}.vs-ligne:hover{background:var(--survol)}
.vs-etat-envoi{position:sticky;top:0;z-index:5;padding:8px 14px;border-radius:10px;font-size:13px;margin-bottom:12px}
.vs-etat-envoi.ok{background:#DDF3EC;color:#08654F}.vs-etat-envoi.hors{background:#FCEBD6;color:var(--terre-700);font-weight:600}
.vs-entete{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.vs-titre{font:700 18px/1.3 var(--police-titre);margin:18px 0 8px}.vs-zones{display:flex;flex-direction:column;gap:8px}
.vs-zone-bouton{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:10px 16px;border:0;border-radius:14px;background:#fff;box-shadow:var(--ombre);text-align:left;cursor:pointer;color:var(--texte);width:100%}
.vs-zone-bouton small{display:block;color:var(--gris);font-weight:400}.vs-zone-bouton b{font-size:15.5px}.vs-photo-n{font-size:12px;color:var(--gris);margin-right:8px}
.vs-etats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 16px}
.vs-etat{min-height:60px;border:2px solid var(--gris-300);border-radius:14px;background:#fff;font-size:16px;font-weight:700;cursor:pointer;color:var(--texte)}
.vs-etat.vert.choisi{background:#DDF3EC;border-color:var(--positif);color:#08654F}.vs-etat.orange.choisi{background:#FCEBD6;border-color:var(--attention);color:var(--terre-700)}.vs-etat.rouge.choisi{background:#FBE3E7;border-color:var(--alerte);color:var(--alerte)}
.vs-retour{margin-bottom:6px}.vs-dictee{font-size:12.5px;margin:4px 0 12px}
.vs-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:8px 0}.vs-grille figure{margin:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.vs-grille img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.vs-prise{display:flex;flex-direction:column;gap:8px;margin:8px 0 14px}.vs-pied{display:flex;flex-direction:column;gap:10px;margin:22px 0 40px}
.vs-cr{max-width:860px}.vs-cr-entete h2{margin:0 0 4px}.vs-cr section{margin:18px 0}.vs-cr h3{font:700 16px var(--police-titre);margin:0 0 8px}
.vs-cr-point{break-inside:avoid;padding:10px 0;border-top:1px solid var(--gris-200)}.vs-cr-point header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vs-cr-point p{margin:6px 0}
.vs-cr-photos{display:flex;flex-wrap:wrap;gap:8px}.vs-cr-photos img{width:200px;max-width:45%;border-radius:8px}
.vs-redaction textarea{width:100%;border:1px solid var(--gris-300);border-radius:12px;padding:12px;font-size:15px;font-family:inherit}
.vs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.vs-avertissement{background:#FCEBD6;color:var(--terre-700);padding:8px 12px;border-radius:10px;font-size:13px}.vs-texte{white-space:pre-wrap}
.vs-imprime-cr{display:none}
@media print{.vs-hors-impression,.vs-etat-envoi{display:none!important}.vs-imprime-cr{display:block}.vs-cr-point{page-break-inside:avoid}}
@media (min-width:700px){.vs-prise{flex-direction:row}.vs-grand{width:auto}}

/* portail locataire (vues-portail.js) */
.pt-form{display:flex;flex-direction:column;gap:12px;max-width:640px}.pt-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--gris)}
.pt-form textarea,.pt-form input[type=file]{border:1px solid var(--gris-300);border-radius:10px;padding:10px;font-size:16px;font-family:inherit;background:#fff;width:100%}
.pt-avert{background:#FBE3E7;color:var(--alerte);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600}
.pt-gestion{display:flex;flex-direction:column;gap:10px}.pt-acces ul{margin:6px 0;padding-left:18px}.pt-acces li{margin:6px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pt-demande{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--ligne)}.pt-demande p{margin:4px 0}
@media (max-width:640px){.pt-demande{flex-direction:column}.pt-envoyer{width:100%;min-height:48px}}

/* Tuiles cliquables (kpis avec adresse), sélecteur d'immeuble, bandeau de décision et blocs de la fiche immeuble */
a.kpi-lien{display:block;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.kpi-lien:hover,a.kpi-lien:focus-visible{border-color:var(--terre-500);box-shadow:0 2px 10px rgba(11,24,65,.12)}
a.kpi-lien .lib::after{content:" ›";color:var(--terre-500)}
.b-choix{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.b-choix input{min-width:220px;max-width:100%;padding:5px 9px;border:1px solid var(--gris-300);border-radius:6px;font:inherit;background:#fff}
.b-decision{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-bottom:18px}
.b-decision>*{min-width:0;margin:0}
.b-risque td.num,.b-risque th.num{text-align:right}
.b-ecart-grand{font:700 24px/1.2 var(--police-titre);color:var(--bleu-800)}
.pied-preparation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--gris-300);position:sticky;bottom:0;background:#fff}
@media(max-width:700px){.b-choix{margin-left:0;width:100%}.b-choix input{width:100%;min-width:0}.b-decision{grid-template-columns:1fr}}
.detail-dettes{padding:0}.detail-dettes>summary{cursor:pointer;padding:14px 18px;font-weight:600;list-style:none}.detail-dettes>summary::before{content:"▸ ";color:var(--terre-500)}
.detail-dettes[open]>summary::before{content:"▾ "}.detail-dettes>*:not(summary){margin:0 18px 18px}
.puces{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px}
.puce{border:1px solid var(--gris-300);background:#fff;color:var(--texte);border-radius:999px;padding:6px 13px;font:inherit;font-size:13px;cursor:pointer;line-height:1.2}
.puce:hover{border-color:var(--bleu-600)}.puce.actif{background:var(--bleu-800);border-color:var(--bleu-800);color:#fff}.puce.actif .muted{color:var(--bleu-200)}
.puce.effacer{border-style:dashed;color:var(--gris-600)}
.b-action{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.b-action-boutons{display:flex;gap:8px;flex-wrap:wrap}
.zc-imprimable.apercu{display:block;background:#fff;border:1px solid var(--gris-300);border-radius:8px;padding:28px 32px;max-width:900px;margin:0 auto}
@media(max-width:700px){.zc-imprimable.apercu{padding:16px}.zc-imp-tete{flex-direction:column;gap:14px}.zc-imp-totaux{width:100%}}
.zc-combo{display:block;flex:1;min-width:0}.zc-combo input[type=search]{width:100%}
.demander-apercu{margin-top:6px}.demander-apercu table{width:100%}
.pc-lots input[type=search]{width:100%;margin-bottom:8px}
.bouton.discret{background:none;border-color:transparent;color:var(--gris-600);padding-left:6px;padding-right:6px;font-size:12px}.bouton.discret:hover{color:var(--texte);text-decoration:underline}
.b-decision .corps{overflow-x:auto}.b-risque{min-width:0;font-size:12.5px}
.zc-imprimable.apercu{overflow-x:auto;box-sizing:border-box;width:100%}.zc-imprimable.apercu table{max-width:100%}
@media(max-width:700px){.zc-imprimable.apercu .zc-imp-dest{min-width:0;width:100%}.zc-imprimable.apercu dl.fiche{grid-template-columns:1fr}}
/* plan d'étages : le nom du locataire passe sur deux lignes au lieu d'être coupé */
.b-stack .b-bloc{white-space:normal;text-overflow:clip;min-width:64px}.b-stack .b-bloc span{white-space:normal;overflow:visible;overflow-wrap:anywhere;font-size:10.5px;line-height:1.2}
/* parkings : le nom du locataire passe aussi à la ligne, jamais coupé (le nom entier est dans la bulle d'aide) */
.b-bloc.b-parking{white-space:normal;min-width:64px}.b-bloc.b-parking span{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;font-size:10.5px;line-height:1.2}

/* écran Impayés : champ des tranches, aligné sur les autres champs de la barre ; les tuiles ne dépassent plus leur colonne */
.outils input.champ-bornes{border:0;background:var(--gris-100);border-radius:999px;padding:8px 14px;font-size:13.5px;color:var(--texte);width:14ch}
.kpis .kpi{min-width:0}
.kpi .val{max-width:100%}

/* sommaire latéral de la fiche d'un immeuble : rail permanent sur grand écran, sommaire dépliable sur téléphone */
#nav.rail{display:block;height:auto;padding:8px 16px;overflow:visible}
#nav.rail .nav-retour{display:inline-block;padding:6px 4px;margin:0}
.rail-sommaire>summary{list-style:none;cursor:pointer;font-weight:700;color:var(--bleu-800);padding:8px 4px}.rail-sommaire>summary::-webkit-details-marker{display:none}.rail-sommaire>summary::after{content:" ▾";font-size:10px}
.rail-tete,.rail-groupe{display:grid;gap:1px;margin-bottom:6px}
.rail-groupe>summary{list-style:none;cursor:pointer;font:700 11px/1 var(--police-corps);letter-spacing:.06em;text-transform:uppercase;color:var(--gris-600);padding:10px 10px 6px}.rail-groupe>summary::-webkit-details-marker{display:none}
.rail-groupe>summary::after{content:" ▾";font-size:9px}.rail-groupe:not([open])>summary::after{content:" ▸"}
.rail-groupe.vif>summary{color:var(--bleu-800)}.rail-groupe.vif{background:#fff;border-radius:12px;box-shadow:var(--ombre);padding-bottom:4px}
#nav.rail a:not(.nav-retour){padding:7px 10px;border-radius:9px;font-size:14px;color:var(--gris-600);display:block;white-space:normal}
#nav.rail a:not(.nav-retour):hover{background:rgba(255,255,255,.8);color:var(--bleu-800)}#nav.rail a.actif{background:var(--bleu-800);color:var(--citron);font-weight:700;box-shadow:none}
@media (min-width:1101px){
  #nav.rail{position:fixed;top:72px;left:0;bottom:0;width:244px;z-index:29;overflow-y:auto;border-bottom:0;border-right:1px solid var(--gris-200);background:rgba(238,242,236,.96)}
  .rail-sommaire>summary{display:none}
  body.avec-rail #contenu{margin-left:244px;max-width:none}
}
@media (max-width:1100px){#nav.rail{position:static;top:auto;overflow:visible;padding:6px 16px}}

/* Aujourd'hui : la liste de travail, une ligne = un montant et un bouton */
.aj{display:grid;gap:14px;padding:6px 28px 0}.aj .carte{margin:0}
.aj-liste{display:grid}.aj-ligne{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:10px 18px;border-top:1px solid var(--gris-200)}
.aj-ligne:first-child{border-top:0}.aj-texte{display:grid;gap:2px;min-width:0}.aj-texte small{color:var(--gris-600)}.aj-montant{font-weight:700;white-space:nowrap}
.aj-plus{padding:8px 18px 14px}.aj-calme{padding:14px 18px;background:#fff;border-radius:14px;box-shadow:var(--ombre)}
.aj-rien{list-style:none;margin:0;padding:0 4px;color:var(--gris-600);display:grid;gap:4px}.aj-rien li::before{content:"✓ ";color:var(--vert,#2C6D55)}
.aj-suite{margin:26px 28px 0;font:700 20px/1.2 var(--police-titre);color:var(--bleu-800)}.aj-resume{padding:0 28px;margin:8px 0 12px}
.aj-texte-relance{width:100%;font:14px/1.5 var(--police-corps);padding:10px;border:1px solid var(--gris-200);border-radius:10px}.aj-options{margin-top:10px}
@media (max-width:700px){.aj{padding:6px 16px 0}.aj-ligne{grid-template-columns:1fr auto;padding:10px 14px}.aj-montant{grid-column:1}.aj-bouton{grid-column:2;grid-row:1 / span 2}.aj-suite{margin:22px 16px 0}.aj-resume{padding:0 16px}}
.b-bandeau{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
/* Travaux : une barre par programme, Budget → Engagé → Facturé → Payé, sur une seule échelle */
.tv-barre{padding:6px 18px 4px}.tv-piste{position:relative;height:30px;background:var(--gris-100);border-radius:8px;overflow:hidden}.tv-piste i{position:absolute;left:0;top:0;bottom:0;display:block}
.tv-piste .tv-budget{background:rgba(11,128,104,.16);border-right:3px solid #0B8068}.tv-piste .tv-engage{background:#6A5AE0;opacity:.6}.tv-piste .tv-facture{top:22%;bottom:22%;background:#D2771C}.tv-piste .tv-paye{top:40%;bottom:40%;background:#2A86BE}
.tv-piste .tv-reste{background:repeating-linear-gradient(45deg,rgba(106,90,224,.28) 0 4px,transparent 4px 8px)}.tv-piste .tv-depasse{background:#8C2C39}
.tv-legende{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:13px;color:var(--gris-600)}.tv-legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.tv-legende b{color:var(--bleu-800)}

/* Squelette d'ergonomie, lot 0 : second niveau absent d'un verbe à un seul écran, panneau latéral, file, registre replié, confirmation */
#nav[hidden]{display:none}
body.lecture-seule [data-ecrit]{display:none!important}
.modale-boite.panneau{max-width:560px}
.menu-compte-titre{margin:18px 0 6px;font:700 13px/1.2 var(--police-corps);text-transform:uppercase;letter-spacing:.04em;color:var(--gris-600)}
.menu-compte{display:grid;gap:2px}.menu-compte a{padding:10px 12px;border-radius:10px;font-weight:500}.menu-compte a:hover{background:var(--bleu-50)}
.file-vide{margin:6px 28px 14px;padding:0;color:var(--gris-600)}.file-vide::before{content:"✓ ";color:var(--vert,#2C6D55)}
.file-lot{display:flex;align-items:center;gap:10px;padding:8px 18px 10px;border-bottom:1px solid var(--gris-200)}.file-tout{display:flex;align-items:center;gap:8px;color:var(--gris-600);font-size:13px}
.aj-ligne.avec-case{grid-template-columns:auto minmax(0,1fr) auto auto}.file-case{width:18px;height:18px}
.registre>summary{display:flex;align-items:center;gap:12px;padding:14px 20px;cursor:pointer;list-style:none;font-weight:600;color:var(--bleu-800)}.registre>summary::-webkit-details-marker{display:none}
.registre>summary>span:first-child{flex:1}.registre-voir::before{content:"Tout voir ›";color:var(--bleu-600);font-weight:600}.registre[open]>summary .registre-voir::before{content:"Replier"}
.registre-corps{border-top:1px solid var(--gris-200)}.registre-corps>.carte{box-shadow:none;margin-bottom:0}
.confirmation{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px;background:rgba(10,23,20,.45)}
.conf-boite{background:#fff;border-radius:20px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;padding:24px 26px 18px;box-shadow:0 24px 70px rgba(10,23,20,.3)}
.conf-boite h2{margin:0 0 10px;font:700 20px/1.25 var(--police-titre)}.conf-boite p{margin:0 0 10px}.conf-boite ul{margin:0 0 10px;padding-left:20px;display:grid;gap:4px;max-height:40vh;overflow-y:auto}
.conf-boite footer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
@media (max-width:640px){.conf-boite footer .bouton{flex:1 1 100%;justify-content:center}.file-lot{flex-wrap:wrap}.file-lot .bouton{width:100%;justify-content:center}}
/* Appeler : la page est l'aperçu, deux filtres en tête */
.ap-filtres .outils{gap:10px 20px}.ap-filtres label{display:flex;align-items:center;gap:8px;color:var(--gris-600);font-size:14px;flex-wrap:wrap}.ap-contexte a{margin-left:6px}
.ap-retards:empty{display:none}
@media (max-width:640px){.ap-filtres label{width:100%;justify-content:space-between}.ap-filtres label input,.ap-filtres label select{flex:1 1 160px;min-width:0}}
@media (max-width:700px){.aj-ligne.avec-case{grid-template-columns:auto minmax(0,1fr) auto}.aj-ligne.avec-case .file-case{grid-row:1}.aj-ligne.avec-case .aj-texte{grid-column:2 / -1}
  .aj-ligne.avec-case .aj-montant{grid-column:2;grid-row:2}.aj-ligne.avec-case .aj-bouton{grid-column:3;grid-row:2}}
/* Payer et Encaisser (squelette d'ergonomie, lots 3 et 4) : filtres repliés, saisie d'une facture, panneau d'encaissement */
.plus-filtres{flex-basis:100%}.plus-filtres>summary{cursor:pointer;color:var(--bleu-600);font-weight:600;font-size:13px;list-style:none;padding:4px 0}.plus-filtres>summary::-webkit-details-marker{display:none}
.plus-filtres>summary::before{content:"+ "}.plus-filtres[open]>summary::before{content:"− "}.plus-filtres>.outils{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 0 0;border:0}
.modale-boite.panneau.large{max-width:1100px}.formulaire div.plein,.formulaire details.plein{grid-column:1/-1}
.sf-poste{display:grid;gap:8px}.sf-poste[hidden]{display:none}.formulaire .sf-hors.case{margin-top:0}.sf-ht{margin:-4px 0 0;min-height:1.2em}
.aj-effet{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--bleu-50);color:var(--gris-600)}.aj-effet b{color:var(--bleu-800)}
.enc-titre{display:flex;align-items:center;gap:10px;margin:16px 0 6px}
.enc-ligne{display:grid;grid-template-columns:auto minmax(0,1fr) 120px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--gris-200)}
.enc-ligne input[type=checkbox]{width:18px;height:18px}.enc-ligne input[type=number]{width:100%;min-width:0}
.enc-texte{display:grid;gap:2px;min-width:0}.enc-texte small{color:var(--gris-600)}.enc-recap{margin-top:12px}
@media (max-width:640px){.enc-ligne{grid-template-columns:auto minmax(0,1fr) 96px}.plus-filtres>.outils{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
.panneau dl.fiche{margin:6px 0 16px}
.enc-recap-ligne{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--gris-200)}.enc-recap-ligne:first-child{border-top:0}

/* Régulariser et Rendre compte (squelette d'ergonomie, lots 5 et 6) : contexte, alerte chiffrée, table du budget, actions des blocs */
.reg-contexte{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin:0 0 14px}.reg-contexte label{display:flex;align-items:center;gap:8px;color:var(--gris-600);font-size:14px}
.reg-alerte{display:flex;flex-direction:column;gap:6px}.reg-alerte .plus-filtres{flex-basis:auto}.reg-sp{padding:8px 0 0;overflow-x:auto}
.reg-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.reg-resume{margin:0;padding:6px 20px 12px;font-size:13.5px}
.reg-table-boite{overflow-x:auto;padding:0 8px 8px}
table.reg-table{width:100%;border-collapse:collapse;font-size:14px}
.reg-table th{padding:8px 12px;text-align:left;font-size:12px;font-weight:700;color:var(--gris-600);border-bottom:1px solid var(--gris-200);white-space:nowrap}
.reg-table td{padding:7px 12px;border-bottom:1px solid var(--gris-200);vertical-align:middle}
.reg-table th.num,.reg-table td.num{text-align:right}.reg-table td:first-child{white-space:normal;min-width:200px}.reg-table td small{margin-left:4px}
.reg-table tfoot td{font-weight:700;border-top:2px solid var(--gris-300);border-bottom:0;background:var(--gris-100)}
.reg-table input.b-saisie{width:112px}
.carte>.bandeau{margin-top:0}
@media (max-width:640px){
  .reg-bloc>h2{flex-wrap:wrap;gap:8px}.reg-bloc>h2>span[style]{display:none}.reg-actions{flex:1 1 100%}.reg-actions .bouton{flex:1 1 100%;justify-content:center}
  .reg-table thead{display:none}.reg-table,.reg-table tbody,.reg-table tfoot,.reg-table tr{display:block}
  .reg-table tbody tr{padding:8px 4px;border-bottom:1px solid var(--gris-200)}.reg-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:3px 8px;min-width:0}
  .reg-table td:first-child{display:block;min-width:0;padding-bottom:4px}.reg-table td[data-lib]::before{content:attr(data-lib);color:var(--gris-600);font-size:12.5px}
  .reg-table tfoot tr{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px}.reg-table tfoot td{display:block;padding:0;background:none}
  .reg-table input.b-saisie{width:128px}.reg-contexte label{width:100%;justify-content:space-between}
}
.reg-motif{display:grid;gap:6px;font-weight:600;color:var(--bleu-800)}.reg-motif textarea{font-weight:400}
.reg-plus{padding:0 20px 14px}.reg-plus-corps{padding:8px 0 0;display:grid;gap:8px}.reg-att{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 18px}
.reg-att label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px}.reg-table small .bouton{margin-left:2px}

/* Dossiers (lot 7) : la fiche d'un immeuble en sections empilées et repliables, les files du groupe, Comptes */
.b-file{margin:0 0 14px}.b-file:empty{display:none}.b-file .file{margin:0}
.b-sections{display:grid;gap:10px}
.sec-actif{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);overflow:hidden;scroll-margin-top:84px}
.sec-actif>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 20px;font:700 16px/1.2 var(--police-titre);color:var(--bleu-800)}
.sec-actif>summary::-webkit-details-marker{display:none}
.sec-actif>summary::after{content:"";margin-left:auto;width:8px;height:8px;flex:none;border-right:2px solid var(--gris-500);border-bottom:2px solid var(--gris-500);transform:rotate(45deg);transition:transform .15s}
.sec-actif[open]>summary::after{transform:rotate(-135deg)}
.sec-actif>summary:hover{background:var(--bleu-50)}
.sec-barre{display:flex;justify-content:flex-end;padding:10px 20px 0}.sec-barre:has(.sec-boutons:empty){display:none}
.sec-boutons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.sec-corps{padding:14px 20px 18px;min-width:0}
.sec-corps .carte{box-shadow:none;border:1px solid var(--gris-200);border-radius:14px}
.sec-corps .kpi{box-shadow:none;border:1px solid var(--gris-200)}
.sec-corps>.b-zone>.kpis:first-child,.sec-corps>.kpis:first-child{margin-top:0}
body.lecture-seule .sec-boutons button,.section-lecture .sec-boutons button,.section-lecture [data-ajout],.section-lecture [data-suppr],.section-lecture [data-act="modifier"],.section-lecture [data-act="supprimer"],
.section-lecture [data-act="surfaces"],.section-lecture [data-ajout-v],.section-lecture [data-ajout-val],.section-lecture [data-statut-sel],.section-lecture [data-relancer],.section-lecture [data-aligner],.section-lecture [data-ecrit]{display:none!important}
.dossiers-choix{display:block;margin:0 0 14px;width:min(420px,100%)}.dossiers-choix input{width:100%}
.dossiers-autres{margin:12px 0 0}.dossiers-retour{margin:0 0 10px}
.releve .tableau td:nth-child(n+4),.releve .tableau th:nth-child(n+4){text-align:right}

.menu-compte button{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:10px;font-weight:500;color:var(--bleu-800);cursor:pointer}.menu-compte button:hover{background:var(--bleu-50)}
@media (max-width:900px){.sec-corps{padding:10px 12px 14px}.sec-barre{padding:8px 12px 0}.sec-actif>summary{padding:13px 14px}}
.kpis.za-rep>.kpi{min-width:0}
/* iPad : la grille de soixante colonnes de l'accueil, avec ses interstices, dépassait la largeur ; deux colonnes suffisent */
@media (min-width:641px) and (max-width:1100px){.kpis.za-rep{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.za-rep>.kpi,.kpis.za-rep>.kpi:nth-child(-n+7),.kpis.za-rep>.kpi:nth-child(-n+3){grid-column:auto}}
/* Téléphone (lot 8) : barre basse de cinq icônes et « Plus », files en cartes, tableaux en liste à trois informations. iPad (≥ 641 px) : gabarit de bureau. */
#barre-basse{display:none}
@media (max-width:640px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  #modules{display:none}
  #entete{padding:8px 14px;gap:8px;flex-wrap:nowrap}
  #entete .logo span{display:none}#entete .logo{flex:none}
  #ouvrir-palette{margin-left:auto;gap:8px;padding:9px 14px}#ouvrir-palette span{display:inline;font-size:13.5px}#ouvrir-palette kbd{display:none}
  #ouvrir-assistant{flex:none}#entete #choix-client{max-width:110px}
  #barre-basse{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--gris-200);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(16,35,30,.08)}
  #barre-basse[hidden]{display:none}
  #barre-basse a,#barre-basse button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:4px 2px;border:0;background:none;border-radius:12px;font:600 11px/1.1 var(--police-corps);color:var(--gris-600);cursor:pointer}
  #barre-basse svg{width:24px;height:24px;flex:none}
  #barre-basse .actif{color:var(--bleu-800);background:var(--bleu-100)}
  #modale:not([hidden]),#voile:not([hidden]){z-index:60}
  /* les files : une pile de cartes, le bouton sur toute la largeur */
  .file>h2{flex-wrap:wrap;row-gap:2px}.file>h2>.muted{flex:1 1 100%;font-size:13px}
  .aj-liste{gap:10px;padding:10px 12px 12px}
  .aj-liste .aj-ligne,.aj-liste .aj-ligne.avec-case{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 14px;border:1px solid var(--gris-200);border-radius:14px;background:#fff}
  .aj-liste .aj-ligne:first-child{border-top:1px solid var(--gris-200)}
  .aj-liste .aj-ligne.avec-case{grid-template-columns:auto minmax(0,1fr) auto}
  .aj-liste .aj-texte{grid-column:1 / -1}.aj-liste .aj-ligne.avec-case .aj-texte{grid-column:2 / -1}
  .aj-liste .aj-montant{grid-column:1 / -1;grid-row:2;font-size:17px}.aj-liste .aj-ligne.avec-case .aj-montant{grid-column:2 / -1}
  .aj-liste .aj-bouton{grid-column:1 / -1;grid-row:3}.aj-liste .aj-bouton .bouton{width:100%;justify-content:center;min-height:44px}.aj-liste .aj-bouton:empty{display:none}.aj-liste .aj-ligne.avec-case .aj-bouton{grid-column:2 / -1;grid-row:3}.aj-liste .aj-ligne.avec-case .file-case{grid-row:1;align-self:start}
  .file .file-lot .bouton{min-height:44px}
  /* un tableau déplié en liste : titre, montant, statut (app.js, marquerListes) */
  .tableau>table[data-liste],.tableau>table[data-liste] tbody,.tableau>table[data-liste] tfoot{display:block;width:100%;min-width:0}
  .tableau>table[data-liste] thead{display:none}
  .tableau>table[data-liste] tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--gris-200)}
  .tableau>table[data-liste] tbody tr:has(td.case){grid-template-columns:auto minmax(0,1fr) auto}
  .tableau>table[data-liste] td{display:none;border:0;padding:0;white-space:normal;min-width:0}
  .tableau>table[data-liste] td.case{display:block;grid-row:1 / span 2}
  .tableau>table[data-liste] td[data-m]{display:block}
  .tableau>table[data-liste] td[data-m="titre"]{grid-column:1;grid-row:1;font-weight:600;overflow-wrap:anywhere}
  .tableau>table[data-liste] td[data-m="montant"]{grid-column:2;grid-row:1;text-align:right;font-weight:700;white-space:nowrap}
  .tableau>table[data-liste] td[data-m="statut"]{grid-column:1;grid-row:2}
  .tableau>table[data-liste] td[data-m="action"]{grid-column:1 / -1;grid-row:3}
  .tableau>table[data-liste] tr:has(td.case) td[data-m="titre"]{grid-column:2}.tableau>table[data-liste] tr:has(td.case) td[data-m="montant"]{grid-column:3}
  .tableau>table[data-liste] tr:has(td.case) td[data-m="statut"]{grid-column:2}.tableau>table[data-liste] tr:has(td.case) td[data-m="action"]{grid-column:2 / -1}
  .tableau>table[data-liste] td small{display:block}
  .tableau>table[data-liste] tfoot tr{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--gris-100);font-weight:700}
  .tableau>table[data-liste] tfoot td[data-m]{display:block}
  .tableau>table[data-liste] tr.b-detail td{display:block}
  .sec-actif>summary{padding:13px 14px}.sec-corps{padding:10px 12px 14px}.sec-barre{padding:8px 12px 0}
  .sec-boutons .bouton{flex:1 1 auto;justify-content:center}
  .b-entete{gap:8px}
  .b-risque th:last-child,.b-risque td:last-child,.b-risque td small{display:none}
  /* pas de défilement horizontal : les barres d'onglets et le second niveau du menu passent à la ligne */
  .onglets,.zc-vues,.zc-page .onglets,.za-onglets{flex-wrap:wrap;overflow:visible;border-radius:18px;width:auto}
  #nav:not(.rail){flex-wrap:wrap;height:auto;padding:6px 14px;row-gap:2px;overflow:visible}
}

.dossiers-homonymes{display:flex;flex-direction:column;gap:8px}.dossiers-homonymes .bouton{text-align:left;display:flex;flex-direction:column;gap:2px;align-items:flex-start;height:auto;padding:10px 14px}

/* Exercices d'une fiche immeuble : une phrase courte par exercice, avec une barre prévu / constaté */
.b-exercices{display:flex;flex-direction:column}
.b-exercice{display:grid;grid-template-columns:56px minmax(0,1.6fr) minmax(0,1.2fr) 120px minmax(0,1fr);gap:6px 14px;align-items:center;padding:11px 16px;border-top:1px solid var(--ligne);color:inherit;text-decoration:none}
.b-exercice:first-child{border-top:0}.b-exercice:hover{background:var(--survol)}
.b-barre{position:relative;display:block;height:8px;border-radius:4px;background:var(--gris-200);overflow:hidden}
.b-barre i{position:absolute;left:0;top:0;bottom:0;background:var(--positif);border-radius:4px 0 0 4px}.b-barre i.depasse{background:var(--alerte);border-radius:0}
@media (max-width:760px){.b-exercice{grid-template-columns:48px 1fr;grid-template-areas:"an texte" "an ecart" "an barre" "an etat"}.b-exercice>b{grid-area:an}.b-ex-texte{grid-area:texte}.b-ex-ecart{grid-area:ecart}.b-barre{grid-area:barre}.b-ex-etat{grid-area:etat}}

.file-case-vide{display:block;width:18px}.reg-bilan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.reg-bilan li{padding:10px 12px;border:1px solid var(--ligne);border-radius:var(--rayon)}

/* Envoi vers Pennylane (vues-pennylane.js) */
.pl-intro{margin:0 0 4px}.pl-actions{white-space:nowrap;text-align:right}.pl-actions .bouton+.bouton{margin-left:6px}
.pl-form{display:flex;flex-direction:column;gap:12px}.pl-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--gris-600)}
.pl-form label.case{flex-direction:row;align-items:center;gap:8px;font-weight:500}.pl-form label.case input{width:auto;margin:0}
.pl-form fieldset{border:1px solid var(--ligne);border-radius:var(--rayon);padding:10px 12px}.pl-form legend{font-size:12.5px;font-weight:600;color:var(--gris-600);padding:0 4px}
.pl-form input:not([type=checkbox]),.pl-form select{width:100%;font:500 14px/1.3 inherit;font-family:inherit;padding:10px 12px;border:1.5px solid transparent;background:var(--gris-100);border-radius:12px;color:var(--texte)}
.pl-form input:not([type=checkbox]):focus,.pl-form select:focus{outline:0;border-color:var(--bleu-500);background:#fff}
.pl-comptes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width:760px){.pl-comptes{grid-template-columns:1fr 1fr}}

/* mode d'emploi en ligne (vues-manuel.js) */
#ouvrir-manuel{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--bleu-800);font-weight:700;font-size:16px;text-decoration:none;box-shadow:var(--ombre)}
#ouvrir-manuel:hover{background:var(--citron)}#ouvrir-manuel[hidden]{display:none}
.mo-question h2{margin:0 0 6px;font-size:17px}.mo-accueil{margin:0 0 12px;color:var(--gris-600)}.mo-exemples{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mo-saisie{display:flex;gap:8px}.mo-saisie input{flex:1;min-width:0}.mo-note{font-size:12.5px;margin:8px 0 0}
.mo-reponse:not(:empty){margin-top:14px;display:grid;gap:10px}.mo-reponse .as-bulle{max-width:none}.mo-passages{font-size:12.5px;margin-top:10px}
.mo-corps{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:18px;align-items:start}
.mo-sommaire{position:sticky;top:12px}.mo-recherche{width:100%;margin-bottom:10px}
.mo-liste{display:flex;flex-direction:column;max-height:65vh;overflow:auto}.mo-liste a{padding:7px 10px;border-radius:8px;color:inherit;text-decoration:none;font-size:13.5px;line-height:1.35}
.mo-liste a:hover{background:var(--gris-100)}.mo-liste a.actif{background:var(--bleu-800);color:var(--citron);font-weight:600}
.mo-titre{margin:0 0 8px;font-size:20px}.mo-fiche .md-rendu ol li{margin-bottom:5px}
@media (max-width:900px){.mo-corps{grid-template-columns:1fr}.mo-sommaire{position:static}.mo-liste{max-height:40vh}.mo-saisie{flex-direction:column}}
.mo-saisie input,.mo-recherche{border:1px solid transparent;background:var(--gris-100);border-radius:999px;padding:10px 16px;font:inherit;font-size:14px;color:var(--texte);outline:none}
.mo-saisie input:focus,.mo-recherche:focus{border-color:var(--gris-300);background:#fff}
.mo-a-faire{margin:10px 0 2px}
/* aide selon l'écran ouvert (« ? » depuis un écran) et dictée de la question */
.mo-sur-ecran{border-left:4px solid var(--citron)}.mo-sur-ecran-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.mo-sur-ecran-tete h2{margin:0;font-size:17px}.mo-sur-ecran-fiches{display:flex;flex-wrap:wrap;gap:6px}
.mo-joindre{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px}.mo-joindre .muted{font-size:12.5px}
.mo-micro{display:inline-flex;align-items:center;gap:6px}.mo-micro.ecoute{background:var(--alerte);border-color:var(--alerte);color:var(--carte)}
.mo-ecoute{margin:8px 0 0;font-size:13.5px;color:var(--terre-700)}.mo-ecoute.en-cours{color:var(--accent-fonce);font-weight:600}
.mo-ecoute.en-cours::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--alerte);margin-right:8px;vertical-align:middle;animation:mo-pulsation 1.2s ease-in-out infinite}
@keyframes mo-pulsation{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.mo-ecoute.en-cours::before{animation:none}}
/* liste de démarrage : étapes de « Bien démarrer », cochées sur les données du client */
.mo-demarrage summary{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;cursor:pointer;list-style:none}.mo-demarrage summary::-webkit-details-marker{display:none}
.mo-demarrage summary h2{margin:0;font-size:17px}.mo-demarrage summary::after{content:"▾";margin-left:auto;color:var(--gris-500)}.mo-demarrage details:not([open]) summary::after{content:"▸"}
.mo-progres{display:block;width:100%;height:8px;margin:12px 0 8px;border:0;border-radius:999px;background:var(--gris-100);overflow:hidden;appearance:none;-webkit-appearance:none}
.mo-progres::-webkit-progress-bar{background:var(--gris-100);border-radius:999px}.mo-progres::-webkit-progress-value{background:var(--positif);border-radius:999px}.mo-progres::-moz-progress-bar{background:var(--positif);border-radius:999px}
.mo-etapes{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mo-etape{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--ligne);flex-wrap:wrap}.mo-etape:last-child{border-bottom:0}
.mo-coche{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}
.mo-etape.fait .mo-coche{background:var(--bleu-100);color:var(--positif)}.mo-etape.a-faire .mo-coche{background:var(--gris-100);color:var(--alerte)}
.mo-etape-texte{flex:1;min-width:180px}.mo-etape-boutons{display:flex;gap:6px;flex-wrap:wrap}
.menu-applis a{display:flex;align-items:center;gap:10px}.menu-applis a[hidden]{display:none}
.mo-actions-question{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.mo-texte-fiche{display:block;width:100%;margin-top:8px;font:13.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:10px 12px;border:1.5px solid var(--gris-300);border-radius:12px;resize:vertical;background:var(--gris-100);color:var(--texte)}
.mo-texte-fiche:focus{outline:0;border-color:var(--bleu-500)}.mo-defaire:not(:empty){margin-top:10px}
/* « Expliquer ce chiffre » : un seul bouton flottant, « ? » discret au survol d'un montant, ou menu après un clic droit ou un appui long */
[data-expliquer]{-webkit-touch-callout:none}
.expliquer-bouton{position:fixed;z-index:60;min-width:22px;height:22px;padding:0 6px;border-radius:11px;border:1px solid var(--bleu-300);background:var(--carte);color:var(--accent-fonce);font-family:inherit;font-weight:600;font-size:12px;line-height:20px;cursor:pointer;box-shadow:var(--ombre-expliquer);opacity:.85}
.expliquer-bouton:hover,.expliquer-bouton:focus-visible{opacity:1;border-color:var(--accent-fonce)}
.expliquer-bouton.menu{height:auto;white-space:nowrap;padding:8px 14px;border-radius:8px;font-size:14px;line-height:1.3;opacity:1}
/* visite guidée « Montre-moi » (visite.js) : cadre autour de l'élément à cliquer, bulle dessous ou dessus, au centre faute d'élément */
.visite-cadre{position:fixed;z-index:96;pointer-events:none;border-radius:12px;box-shadow:0 0 0 3px var(--citron),0 0 0 6px var(--bleu-800),0 0 0 9999px color-mix(in srgb,var(--bleu-900) 22%,transparent);transition:left .15s,top .15s,width .15s,height .15s}
.visite-bulle{position:fixed;z-index:97;max-width:calc(100vw - 24px);background:var(--bleu-800);color:var(--creme);border-radius:14px;padding:14px 16px 12px;box-shadow:0 18px 50px color-mix(in srgb,var(--bleu-900) 35%,transparent);font-size:14px;line-height:1.45}
.visite-bulle:focus{outline:0}.visite-bulle:focus-visible{outline:3px solid var(--citron);outline-offset:2px}
.visite-bulle h2{margin:0 0 6px;font:700 16px/1.3 var(--police-sstitre);color:var(--citron);letter-spacing:0}
.visite-bulle p{margin:0 0 8px}.visite-bulle .visite-fiche{font-size:12px;color:var(--bleu-200);text-transform:none}
.visite-bulle .visite-note{color:var(--terre-300);font-size:13px}
.visite-boutons{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:4px}
.visite-bulle .bouton{background:var(--carte);color:var(--bleu-800);border-color:var(--carte)}.visite-bulle .bouton.primaire{background:var(--citron);color:var(--bleu-800);border-color:var(--citron)}
.visite-bulle .bouton:disabled{opacity:.45}.visite-bulle .visite-terminer{background:transparent;color:var(--creme);border-color:var(--bleu-400)}
.visite-bulle .bouton:focus-visible{outline:3px solid var(--citron);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.visite-cadre{transition:none}}

/* En-tête : tout tient ou défile visiblement (375, 768, 1280, 1440 px). Loupe quand le mot « Rechercher » est masqué ; sous 1600 px, en-tête
   resserré (logo sans son nom) ; une barre des verbes encore trop étroite défile, avec un fondu du côté des verbes cachés (reperesModules). */
#ouvrir-palette .loupe{display:none;width:16px;height:16px;flex:none}
#modules.deborde{scrollbar-width:thin}
#modules.deborde-droite{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent)}
#modules.deborde-gauche{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 44px),transparent)}
#modules.deborde-gauche.deborde-droite{-webkit-mask-image:linear-gradient(to right,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
@media (min-width:1101px) and (max-width:1600px){
  #entete{gap:10px;padding:0 20px}#entete .logo span{display:none}
  #modules a{padding:8px 10px;font-size:13.5px}
  #choix-client{max-width:160px}#ouvrir-assistant{padding:9px 14px}
  #ouvrir-palette{gap:8px;padding:9px 10px 9px 12px}#ouvrir-palette span{display:none}#ouvrir-palette .loupe{display:block}
}
@media (max-width:1100px){#ouvrir-palette{gap:8px}#ouvrir-palette .loupe{display:block}#entete #choix-client{max-width:180px;min-width:0}#modules a{padding:8px 10px;font-size:13.5px}}
@media (max-width:640px){
  /* le choix de la base passe sur sa propre ligne : il ne repousse plus l'avatar hors de l'écran */
  #entete{flex-wrap:wrap}#entete>*{min-width:0}
  #entete #choix-client{order:10;flex:1 1 100%;max-width:none}
  #ouvrir-palette .loupe{display:none}
}
@media (max-width:400px){#ouvrir-palette span{display:none!important}#ouvrir-palette .loupe{display:block!important}#ouvrir-assistant{padding:8px 10px}}
