:root{--nuit:#0f1b2d;--nuit-2:#1a2a42;--accent:#0f9f8f;--accent-fonce:#0b7f72;--accent-pale:#e2f5f2;--fond:#f5f6f8;--carte:#fff;--texte:#1b2230;--gris:#6b7385;--gris-clair:#9aa1b0;--ligne:#e6e8ee;--survol:#f3f7f8;--vert:#16a34a;--rouge:#dc2626;--orange:#d97706;--bleu:#2563eb;--rayon:8px;--ombre:0 1px 2px rgba(16,24,40,.06)}
*{box-sizing:border-box}html,body{margin:0;height:100%}[hidden]{display:none!important}
body{font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit}
#app{display:grid;grid-template-columns:232px 1fr;grid-template-rows:48px 1fr;min-height:100vh}
#entete{grid-column:1/3;display:flex;align-items:center;gap:12px;padding:0 14px;background:var(--nuit);color:#fff;position:sticky;top:0;z-index:30}
.marque{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.3px;font-size:15px}
.marque i{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--accent);font-style:normal;font-size:13px}
.espace{flex:1}
#recherche{width:min(420px,40vw);background:var(--nuit-2);border:1px solid #2a3b55;color:#fff;border-radius:6px;padding:6px 10px;font-size:13px}
#recherche::placeholder{color:#8fa0b8}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:700}
#nav{background:var(--carte);border-right:1px solid var(--ligne);padding:10px 8px 30px;overflow-y:auto;position:sticky;top:48px;height:calc(100vh - 48px)}
#nav a{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;color:var(--texte);font-size:13.5px;margin:1px 0}
#nav a:hover{background:var(--survol)}#nav a.actif{background:var(--accent-pale);color:var(--accent-fonce);font-weight:600}
#nav a .ic{width:18px;text-align:center;opacity:.75}
.nav-titre{font-size:12px;color:var(--gris);margin:14px 10px 4px;display:flex;align-items:center;gap:6px}
.nav-titre::before{content:"";width:6px;height:1px;background:var(--gris-clair)}
.nav-retour{font-weight:700;font-size:14px!important;border-bottom:1px solid var(--ligne);border-radius:0!important;margin-bottom:6px!important;padding-bottom:10px!important}
#contenu{padding:0 0 40px;min-width:0}
.barre-page{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--carte);border-bottom:1px solid var(--ligne);position:sticky;top:48px;z-index:20}
.barre-page h1{font-size:16px;margin:0;font-weight:600}.barre-page .fil{color:var(--gris);font-size:13px}
.page{padding:16px 20px}
.bouton{border:1px solid var(--ligne);background:#fff;color:var(--texte);padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500;white-space:nowrap}
.bouton:hover{background:var(--survol)}.bouton.primaire{background:var(--accent);border-color:var(--accent);color:#fff}.bouton.primaire:hover{background:var(--accent-fonce)}
.bouton.petit{padding:3px 8px;font-size:12px}.bouton.danger{color:var(--rouge);border-color:#f3c9c9}.bouton:disabled{opacity:.5;cursor:default}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}
.kpi{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);padding:12px 14px;box-shadow:var(--ombre)}
.kpi .lib{color:var(--gris);font-size:12px}.kpi .val{font-size:18px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .sous{color:var(--gris);font-size:12px;float:right;margin-top:-20px}
.kpi.alerte .val{color:var(--rouge)}.kpi.ok .val{color:var(--vert)}
.carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);box-shadow:var(--ombre);margin-bottom:14px}
.carte>h2{font-size:14px;margin:0;padding:12px 14px;border-bottom:1px solid var(--ligne);display:flex;align-items:center;gap:8px;font-weight:600}
.carte .corps{padding:12px 14px}
.grille2{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}
.outils{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--ligne);flex-wrap:wrap}
.outils input[type=search],.outils select,.outils input[type=date],.outils input[type=number]{border:1px solid var(--ligne);border-radius:6px;padding:5px 8px;font-size:13px;background:#fff}
.outils input[type=search]{flex:1;min-width:180px;background:var(--fond)}
.compte{color:var(--gris);font-size:12px;padding:8px 12px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--ligne);vertical-align:middle;white-space:nowrap}
th{color:var(--gris);font-weight:500;font-size:12px;cursor:pointer;user-select:none;background:#fafbfc}
th.trie::after{content:" ↓";color:var(--accent)}th.trie.inv::after{content:" ↑"}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td.long{white-space:normal;min-width:220px}
tr.cliquable{cursor:pointer}tr.cliquable:hover td{background:var(--survol)}
tfoot td{font-weight:600;background:#fafbfc}
.tableau{overflow-x:auto}
.vide{padding:30px;text-align:center;color:var(--gris)}
.pastille{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11.5px;font-weight:600;background:#eef0f4;color:var(--gris)}
.pastille.vert{background:#dcfce7;color:#15803d}.pastille.rouge{background:#fee2e2;color:#b91c1c}.pastille.orange{background:#fef3c7;color:#b45309}.pastille.bleu{background:#dbeafe;color:#1d4ed8}
.periode{display:inline-block;background:#e0ecff;color:#1e3a8a;border-radius:4px;padding:1px 6px;font-size:12px;font-variant-numeric:tabular-nums}
.muted{color:var(--gris)}.rouge{color:var(--rouge)}.vert{color:var(--vert)}.gras{font-weight:600}
.onglets{display:flex;gap:2px;border-bottom:1px solid var(--ligne);padding:0 12px}
.onglets a,.onglets button{border:0;background:none;padding:9px 12px;color:var(--gris);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:13px}
.onglets .actif{color:var(--accent-fonce);border-color:var(--accent);font-weight:600}
dl.fiche{display:grid;grid-template-columns:180px 1fr;gap:6px 14px;margin:0;font-size:13px}dl.fiche dt{color:var(--gris)}dl.fiche dd{margin:0}
.graphe{position:relative;width:100%}
.graphe svg{display:block;overflow:hidden}
.graphe text{font-size:11px;fill:var(--gris);font-variant-numeric:tabular-nums}
.graphe .grille{stroke:#eef0f3;stroke-width:1}.graphe .axe{stroke:#c9ccd3;stroke-width:1}
.graphe .anneau{stroke:#fff;stroke-width:2}
.graphe .cible{fill:transparent;cursor:crosshair}.graphe .repere{fill:rgba(16,24,40,.045)}
.infobulle{position:absolute;z-index:5;pointer-events:none;background:#fff;border:1px solid var(--ligne);border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.12);padding:8px 10px;font-size:12px;min-width:150px;white-space:nowrap}
.infobulle .titre{color:var(--gris);margin-bottom:4px}
.infobulle .rang{display:flex;align-items:center;gap:8px;line-height:1.7}.infobulle .rang i{width:12px;height:2px;border-radius:1px}
.infobulle .rang b{font-variant-numeric:tabular-nums;color:var(--texte)}.infobulle .rang span{color:var(--gris)}
.infobulle .info{border-top:1px solid var(--ligne);margin-top:5px;padding-top:5px;color:var(--texte)}
.legende{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--gris);padding:0 14px 10px}.legende i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.legende i.cle-ligne{height:2px;width:14px;vertical-align:3px}
.carte-geo{width:100%;height:260px;border:0;display:block;border-radius:0 0 var(--rayon) var(--rayon)}
.fil-actu{list-style:none;margin:0;padding:0}.fil-actu li{padding:8px 14px;border-bottom:1px solid var(--ligne);display:flex;gap:10px}.fil-actu li:last-child{border:0}
.barre{height:6px;background:var(--ligne);border-radius:3px;overflow:hidden;min-width:60px}.barre i{display:block;height:100%;background:var(--accent)}
#voile{position:fixed;inset:0;background:rgba(15,27,45,.45);z-index:40}
#modale{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow-y:auto}
.modale-boite{background:#fff;border-radius:10px;max-width:780px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modale-boite.large{max-width:1100px}
.modale-boite header{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ligne)}.modale-boite header h2{margin:0;font-size:15px;flex:1}
.modale-boite .corps{padding:14px 18px}.modale-boite footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--ligne)}
.modale-boite footer .gauche{margin-right:auto}
.formulaire{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}
.formulaire label{display:block;font-size:12px;color:var(--gris)}.formulaire label.plein{grid-column:1/-1}
.formulaire input,.formulaire select,.formulaire textarea{display:block;width:100%;margin-top:3px;font-size:13.5px;padding:7px 9px;border:1px solid #d5d9e1;border-radius:6px;background:#fff;color:var(--texte)}
.formulaire select[multiple]{height:160px}.formulaire textarea{min-height:70px}
.formulaire label.case{display:flex;align-items:center;gap:8px;margin-top:18px}.formulaire label.case input{width:auto;margin:0}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{outline:2px solid var(--accent-pale);border-color:var(--accent)}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--nuit);color:#fff;padding:10px 16px;border-radius:8px;z-index:60;font-size:13px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.ligne-actions{display:flex;gap:6px;justify-content:flex-end}
@media (max-width:860px){#app{grid-template-columns:1fr}#nav{display:none;position:fixed;top:48px;left:0;width:260px;z-index:35;box-shadow:0 10px 30px rgba(0,0,0,.2)}#nav.ouvert{display:block}#menu{display:inline-block!important}#recherche{display:none}.formulaire{grid-template-columns:1fr}.grille2{grid-template-columns:1fr}dl.fiche{grid-template-columns:1fr}}
#menu{display:none;background:none;border:0;color:#fff;font-size:18px;cursor:pointer}
@media print{#entete,#nav,.outils,.barre-page .bouton{display:none!important}#app{display:block}}
a.lien{color:var(--accent-fonce);font-weight:500}a.lien:hover{text-decoration:underline}
#toast.erreur{background:var(--rouge)}
fieldset.cases{border:1px solid #d5d9e1;border-radius:6px;padding:6px 10px;display:flex;flex-wrap:wrap;gap:4px 16px;grid-column:1/-1;margin:0}
fieldset.cases legend{font-size:12px;color:var(--gris);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:14px}
.ligne-totale td{font-weight:600;background:#fafbfc}
.niveau-1 td:first-child{padding-left:28px;color:var(--gris)}

/* 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:#b8c0cc;stroke-width:1.5}
.za-pct rect{fill:#fff;stroke:#b8c0cc}.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:#dbeafe;stroke:#93c5fd}
.za-noeud.morale rect{fill:var(--accent-pale);stroke:#8fd5cb}
.za-noeud.actif rect{fill:#fef3c7;stroke:#f3c97a}
.za-legende-org i.physique{background:#dbeafe;border:1px solid #93c5fd}.za-legende-org i.morale{background:var(--accent-pale);border:1px solid #8fd5cb}.za-legende-org i.actif{background:#fef3c7;border:1px solid #f3c97a}
.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:#fef3c7;border:1px solid #fde68a;color:#92400e;border-radius:var(--rayon);padding:10px 14px;margin-bottom:14px;font-size:13px}
.b-bandeau.gris{background:#f3f4f6;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:#fafbfc;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:#f1f5f9}
table.b-arbre .b-niv1 td{font-weight:600;background:#fafbfc}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 #d5d9e1;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.occupe{background:var(--accent);color:#fff}.b-bloc.vacant{background:#f7c6a3;color:#7c2d12}.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:#eef0f4;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:#fafbfc;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 #d5d9e1;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:#fff5f5}
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:#fafbfc}
.zd-cf tr.zd-n0{cursor:pointer}.zd-cf .zd-pli{color:var(--gris);font-size:11px}
.zd-etapes{display:flex;gap:6px;padding:12px 18px 0}
.zd-etapes span{padding:4px 12px;border-radius:999px;font-size:12px;color:var(--gris);background:var(--fond)}
.zd-etapes span.actif{background:var(--accent-pale);color:var(--accent-fonce);font-weight:600}
.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 #d5d9e1;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 #cfd6e0;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:#dcfce7;border-color:#bbf7d0;color:#14532d}.bandeau.attention{background:#fef3c7;border-color:#fde68a;color:#78350f}
tr.ligne-erreur td{background:#fef2f2}
.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:var(--nuit);display:grid;place-items:center;padding:16px}
#connexion form{width:min(360px,100%);padding:26px;display:grid;gap:12px}
#connexion label{font-size:12px;color:var(--gris);display:grid;gap:4px}
#connexion input{font-size:15px;padding:9px 10px;border:1px solid #d5d9e1;border-radius:6px}
#connexion .bouton{padding:10px}
.marque-connexion{display:flex;align-items:center;gap:8px;font-weight:700;font-size:20px;margin-bottom:6px}
.marque-connexion i{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:7px;background:var(--accent);color:#fff;font-style:normal}
button.avatar{border:0;color:#fff;cursor:pointer}
/* fin connexion */

/* recette zone C */
.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:#fafbfc}
@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%}
}
/* fin recette zone C */
/* recette zone A */
.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:#eef0f3}
.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}
}
/* fin recette zone A */
/* recette zone D */
.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 .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-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%}
}
/* fin recette zone D */
/* recette zone B */
@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: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}
}
/* fin recette zone B */
/* recette : règles communes à toutes les zones */
.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 */
/* fin recette commune */
