:root{
  --papier:#F4F6F8; --carte:#FFFFFF; --encre:#16283E; --encre2:#3D4F66;
  --muet:#7A8699; --ligne:#E6E9EE; --ligne2:#F0F2F5;
  --sceau:#0E9B6E; --sceau-d:#0A7C57; --sceau-p:#E7F6F0; --sceau-b:#C7EADD;
  --ambre:#C98A2D; --ambre-p:#FBF1DF;
  --rouge:#C2453A; --rouge-p:#FBEAE8;
  --bleu:#2E6FB7;  --bleu-p:#E9F1FB;
  --plum:#7A4E6D;  --plum-p:#F4EAF1;
  --rose:#C2457E;  --rose-p:#FDECF3;
  --violet:#5B4E9E;
  --nuit:#0F1B2D;
  --r:12px; --r2:16px;
  --ombre:0 1px 2px rgba(16,32,52,.04), 0 8px 24px rgba(16,32,52,.06);
  --ombre-s:0 1px 2px rgba(16,32,52,.05);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body,#root{height:100%}
body{font-family:'Public Sans',system-ui,sans-serif;background:var(--papier);color:var(--encre);
  font-size:14px;-webkit-font-smoothing:antialiased}
.mono{font-family:'IBM Plex Mono',monospace}
button{font-family:inherit;cursor:pointer;border:none}
svg{flex:none}
input,select,textarea{font-family:inherit;font-size:13.5px;padding:9px 11px;border:1px solid var(--ligne);
  border-radius:10px;background:#fff;color:var(--encre);width:100%;transition:border-color .15s, box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sceau);
  box-shadow:0 0 0 3px rgba(14,155,110,.13)}
input::placeholder,textarea::placeholder{color:#A9B2BF}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237A8699' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;padding-right:30px}
label{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--muet);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}
label .req{color:var(--rouge)}
::selection{background:var(--sceau);color:#fff}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#CFD6DF;border-radius:99px}
::-webkit-scrollbar-track{background:transparent}

/* ---------- champs encadrés ---------- */
.champ-box{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);
  padding:10px 13px 9px;transition:border-color .15s, box-shadow .15s}
.champ-box:focus-within{border-color:var(--sceau);box-shadow:0 0 0 3px rgba(14,155,110,.11)}
.champ-box label{margin-bottom:2px}
.champ-box input,.champ-box select,.champ-box textarea{border:none;padding:0;border-radius:0;
  background-color:transparent;font-size:14px}
.champ-box input:focus,.champ-box select:focus,.champ-box textarea:focus{box-shadow:none}
.champ-box select{background-position:right 0 center;padding-right:22px}
.champ-box textarea{resize:vertical;min-height:52px;line-height:1.55}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:11px 20px;
  border-radius:var(--r);font-weight:600;font-size:13px;transition:filter .15s, transform .06s, box-shadow .15s}
.btn:active{transform:translateY(1px)}
.btn-p{background:linear-gradient(135deg,var(--sceau),var(--sceau-d));color:#fff;
  box-shadow:0 2px 10px rgba(14,155,110,.24)}
.btn-p:hover{filter:brightness(1.07)}
.btn-p:disabled{opacity:.6;cursor:default}
.btn-ghost{background:#fff;color:var(--encre2);border:1px solid var(--ligne);box-shadow:var(--ombre-s)}
.btn-ghost:hover{border-color:#CFD6DF;background:#FCFDFE}
.btn-danger{background:var(--rouge-p);color:var(--rouge)}
.btn-danger:hover{filter:brightness(.97)}
.btn-block{width:100%}
.btn-lg{padding:14px 22px;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase}
.err{background:var(--rouge-p);color:var(--rouge);padding:11px 14px;border-radius:10px;
  font-size:13px;margin-bottom:14px;display:flex;gap:8px;align-items:flex-start}

/* ---------- login ---------- */
.login-wrap{height:100%;display:grid;grid-template-columns:1.1fr 1fr}
.login-left{background:var(--nuit);color:#EDF1F6;display:flex;flex-direction:column;
  padding:48px;position:relative;overflow:hidden}
.login-left::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;
  border:1px solid rgba(237,241,246,.1);border-radius:50%}
.login-left::before{content:"";position:absolute;right:-60px;top:-60px;width:300px;height:300px;
  border:1px solid rgba(14,155,110,.45);border-radius:50%}
.brand{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-size:19px;
  font-weight:600;letter-spacing:.01em}
.brand em{color:#3FD09B;font-style:normal}
.brand-badge{width:32px;height:32px;border-radius:9px;flex:none;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,var(--sceau),var(--sceau-d));color:#fff;
  box-shadow:0 2px 8px rgba(14,155,110,.35)}
.login-hero{flex:1;display:flex;flex-direction:column;justify-content:center}
.login-hero h1{font-family:'Fraunces',serif;font-size:clamp(34px,4.2vw,52px);font-weight:600;
  line-height:1.1;margin-bottom:18px}
.login-hero h1 em{font-style:italic;color:#3FD09B}
.login-hero p{color:#9FB0C4;max-width:46ch;line-height:1.65}
.login-foot{font-size:12px;color:#66788F}
.login-right{display:flex;align-items:center;justify-content:center;padding:40px}
.login-card{width:min(470px,100%);background:var(--carte);border:1px solid var(--ligne);
  border-radius:var(--r2);box-shadow:var(--ombre);padding:40px 38px}
.login-card h2{font-family:'Fraunces',serif;font-size:31px;margin-bottom:7px}
.login-card>p{color:var(--muet);margin-bottom:30px;font-size:14.5px}
.login-card .field{margin-bottom:17px}
.login-card .champ-box{padding:13px 16px}
.login-card .champ-box input{font-size:15px;padding:3px 0}
.login-card label{font-size:11px;margin-bottom:5px}
.login-card .btn-lg{padding:15px 24px;font-size:15px;margin-top:10px}
.field{margin-bottom:14px}
.demo-hint{margin-top:22px;font-size:12px;color:var(--muet);line-height:1.8;
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);padding:12px 14px}
.demo-hint b{color:var(--encre2)}

/* ---------- layout ---------- */
.shell{display:grid;grid-template-columns:246px 1fr;height:100%}
.sidebar{background:var(--nuit);color:#B9C6D6;display:flex;flex-direction:column;padding:20px 14px}
.sidebar .brand{padding:2px 8px 22px;color:#EDF1F6}
.nav-btn{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 13px;
  border-radius:10px;background:transparent;color:#AFBCCD;font-size:13.5px;font-weight:500;margin-bottom:4px;
  transition:background .15s,color .15s}
.nav-btn:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-btn.on{background:linear-gradient(135deg,var(--sceau),var(--sceau-d));color:#fff;font-weight:600;
  box-shadow:0 3px 12px rgba(14,155,110,.3)}
.nav-sep{margin:12px 13px 10px;font-size:10px;letter-spacing:.16em;color:#5D7089;text-transform:uppercase;
  font-weight:700}
.side-user{margin-top:auto;padding:14px 8px 4px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}
.side-id{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.avatar{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,var(--sceau),var(--sceau-d));color:#fff;
  font-weight:700;font-size:13px}
.side-user b{display:block;color:#EDF1F6;font-size:13px}
.role-chip{display:inline-block;margin-top:3px;padding:2px 9px;border-radius:99px;
  background:rgba(63,208,155,.15);color:#3FD09B;font-size:10.5px;font-weight:600;letter-spacing:.04em}
.main{overflow-y:auto;padding:24px 30px 60px}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.topbar h1{font-family:'Fraunces',serif;font-size:27px;font-weight:600;letter-spacing:-.01em}
.topbar .sub{color:var(--muet);font-size:13px;margin-top:3px}
.topbar-actions{display:flex;align-items:center;gap:10px}

/* indicateur d'étape */
.etape-badge{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);
  padding:9px 14px;box-shadow:var(--ombre-s);flex:none}
.etape-badge .eb-lab{font-size:11px;font-weight:600;color:var(--encre2);white-space:nowrap}
.eb-barres{display:flex;gap:4px;margin-top:7px}
.eb-b{height:4px;width:22px;border-radius:99px;background:var(--ligne)}
.eb-b.on{background:linear-gradient(90deg,var(--sceau),var(--sceau-d))}

/* ---------- cartes / KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);padding:16px 18px;
  box-shadow:var(--ombre-s);transition:transform .15s, box-shadow .15s}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--ombre)}
.kpi .lab{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.07em;color:var(--muet)}
.kpi .val{font-family:'Fraunces',serif;font-size:31px;font-weight:600;margin-top:8px}
.kpi .val small{font-size:13px;color:var(--muet);font-family:'Public Sans';font-weight:500}
.kpi.alerte .val{color:var(--rouge)}
.card{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);padding:20px 22px;
  margin-bottom:16px;box-shadow:var(--ombre-s)}
.card h3{font-family:'Fraunces',serif;font-size:17px;margin-bottom:14px;display:flex;
  align-items:center;gap:9px;flex-wrap:wrap}

/* graphe barres */
.bars{display:flex;flex-direction:column;gap:10px}
.bar-row{display:grid;grid-template-columns:78px 1fr 34px;align-items:center;gap:10px;font-size:12.5px}
.bar-bg{background:var(--papier);border-radius:99px;height:18px;overflow:hidden}
.bar-fill{height:100%;border-radius:99px;transition:width .7s cubic-bezier(.2,.7,.3,1)}

/* ---------- filtres + tables ---------- */
.filtres{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);padding:15px;
  margin-bottom:16px;box-shadow:var(--ombre-s)}
.table-wrap{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);overflow:auto;
  box-shadow:var(--ombre-s)}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:1080px}
th{position:sticky;top:0;background:var(--encre);color:#fff;text-align:left;padding:11px 13px;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;white-space:nowrap;z-index:1}
td{padding:12px 13px;border-top:1px solid var(--ligne2);white-space:nowrap;vertical-align:middle}
tbody tr{cursor:pointer;transition:background .12s}
tbody tr:hover{background:var(--sceau-p)}
td.num{font-family:'IBM Plex Mono',monospace;text-align:right;font-size:12.5px}
.vide{padding:44px;text-align:center;color:var(--muet)}
.vide svg{color:#C3CBD6;margin-bottom:8px}

.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600}
.b-benin{background:var(--sceau-p);color:var(--sceau-d)}
.b-moyen{background:var(--ambre-p);color:var(--ambre)}
.b-grave{background:var(--rouge-p);color:var(--rouge)}
.b-deces{background:var(--encre);color:#fff}
.b-alerte{background:var(--rouge);color:#fff;font-family:'IBM Plex Mono',monospace}
.tampon{display:inline-block;padding:3px 10px;border:1.6px solid currentColor;border-radius:6px;
  font-size:10.5px;font-weight:700;letter-spacing:.08em}
.t-EN_COURS{color:var(--ambre)} .t-CLOS{color:var(--sceau-d)} .t-CONTENTIEUX{color:var(--rouge)}
.pill-etape{display:inline-block;padding:4px 11px;border-radius:99px;font-size:10.5px;font-weight:700}
.e-SERVICE_AT{background:var(--bleu-p);color:#1C4874}
.e-RESP_LOCAL{background:var(--ambre-p);color:var(--ambre)}
.e-ENQUETEUR{background:var(--rose-p);color:var(--rose)}
.e-COMPLET{background:var(--sceau-p);color:var(--sceau-d)}

/* ---------- fiche dossier ---------- */
.dossier-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);padding:20px 22px;
  margin-bottom:16px;box-shadow:var(--ombre-s);flex-wrap:wrap}
.dossier-head h2{font-family:'Fraunces',serif;font-size:24px}
.dossier-head .refs{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muet);margin-top:6px}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px 20px}
.info .k{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muet)}
.info .v{margin-top:3px;font-size:13.5px}
.info .v.mono{font-size:12.5px}
.soustitre{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--encre2);margin:18px 0 10px;padding-top:14px;border-top:1px dashed var(--ligne)}
.mini-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:0}
.mini-table th{position:static;background:var(--papier);color:var(--encre2);padding:8px 11px;font-size:10px}
.mini-table td{padding:9px 11px}
.mini-table tbody tr{cursor:default}
.mini-table tbody tr:hover{background:transparent}
.oui{color:var(--sceau-d);font-weight:700} .non{color:var(--rouge);font-weight:700}
.alerte-item{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:10px;
  font-size:13px;margin-bottom:8px;line-height:1.5}
.a-ROUGE{background:var(--rouge-p);color:#8C2F27}
.a-ORANGE{background:var(--ambre-p);color:#7C5518}
.a-VERT{background:var(--sceau-p);color:#0B5D4D}
.a-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none}
.a-ROUGE .a-dot{background:var(--rouge)} .a-ORANGE .a-dot{background:var(--ambre)}
.a-VERT .a-dot{background:var(--sceau)}
.synthese{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;
  background:var(--papier);border-radius:12px;padding:15px;margin-top:14px}
.synthese .lab{font-size:10.5px;color:var(--muet);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.synthese .val{font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:600;margin-top:5px}
.ecart-neg{color:var(--rouge)} .ecart-ok{color:var(--sceau-d)}

/* ---------- modales ---------- */
.overlay{position:fixed;inset:0;background:rgba(15,27,45,.5);
  display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}
.modal{background:var(--carte);border-radius:18px;width:min(760px,100%);padding:26px;
  box-shadow:0 20px 60px rgba(15,27,45,.28);animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pop{from{transform:scale(.97);opacity:0}to{transform:scale(1);opacity:1}}
.modal h3{font-family:'Fraunces',serif;font-size:20px;margin-bottom:18px;display:flex;align-items:center;gap:9px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 14px}
.form-grid .full{grid-column:1/-1}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.section-form{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sceau-d);grid-column:1/-1;margin-top:12px;padding-bottom:6px;
  border-bottom:1px solid var(--ligne)}
.retour{background:none;color:var(--sceau-d);font-weight:600;font-size:13px;padding:0;margin-bottom:14px;
  display:inline-flex;gap:6px;align-items:center}
.retour:hover{text-decoration:underline}
.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:24px;right:24px;background:var(--encre);color:#fff;padding:13px 19px;
  border-radius:12px;font-size:13px;z-index:99;display:flex;gap:9px;align-items:center;
  box-shadow:0 12px 32px rgba(15,27,45,.3);animation:pop .2s}

/* ---------- notifications ---------- */
.notifs{margin-bottom:18px;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}
.notif{display:flex;align-items:center;gap:11px;padding:11px 15px;border-radius:11px;
  border-left:4px solid;font-size:13px;cursor:pointer;transition:transform .1s, box-shadow .15s}
.notif:hover{transform:translateX(3px);box-shadow:var(--ombre-s)}
.n-bleu{background:var(--bleu-p);border-color:var(--bleu);color:#1C4874}
.n-rouge{background:var(--rouge-p);border-color:var(--rouge);color:#7C241C}
.n-rose{background:var(--rose-p);border-color:var(--rose);color:#7C1C4A}
.n-vert{background:var(--sceau-p);border-color:var(--sceau);color:#0B5D4D}
.cloche{position:relative;background:var(--carte);border:1px solid var(--ligne);border-radius:11px;
  padding:9px 11px;color:var(--encre2);box-shadow:var(--ombre-s)}
.cloche:hover{border-color:#CFD6DF}
.cloche .pastille{position:absolute;top:-6px;right:-6px;background:var(--rouge);color:#fff;
  border-radius:99px;font-size:10px;font-weight:700;padding:2px 6px;border:2px solid var(--papier)}

/* ---------- stepper workflow ---------- */
.stepper{display:flex;gap:0;margin-bottom:16px;background:var(--carte);
  border:1px solid var(--ligne);border-radius:var(--r2);overflow:hidden;box-shadow:var(--ombre-s);
  flex-wrap:wrap}
.step{flex:1;min-width:170px;padding:13px 15px;border-right:1px solid var(--ligne2);
  display:flex;gap:10px;align-items:flex-start}
.step:last-child{border-right:none}
.step-ico{width:26px;height:26px;border-radius:8px;flex:none;display:flex;align-items:center;
  justify-content:center;background:var(--papier);color:var(--muet)}
.step .st-titre{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.step .st-info{font-size:11.5px;color:var(--muet);margin-top:2px}
.step.fait{background:var(--sceau-p)} .step.fait .st-titre{color:var(--sceau-d)}
.step.fait .step-ico{background:var(--sceau);color:#fff}
.step.actuel{background:var(--ambre-p)} .step.actuel .st-titre{color:var(--ambre)}
.step.actuel .step-ico{background:var(--ambre);color:#fff}
.step.attente .st-titre{color:var(--muet)}

/* ---------- formulaires d'étape ---------- */
.form-etape{background:var(--carte);border:1px solid var(--ligne);border-radius:20px;
  padding:28px 30px 30px;max-width:1020px;margin:0 auto;box-shadow:var(--ombre)}
.form-hero{text-align:center;margin-bottom:24px}
.form-hero-ico{width:60px;height:60px;border-radius:50%;margin:0 auto 14px;display:flex;
  align-items:center;justify-content:center;background:var(--sceau-p);color:var(--sceau-d);
  box-shadow:0 0 0 8px rgba(14,155,110,.06)}
.form-etape h2{font-family:'Fraunces',serif;font-size:23px;margin-bottom:5px}
.form-etape .sous{color:var(--muet);font-size:13px}
.recap-prec{border:1px solid var(--ligne);border-radius:var(--r);margin-bottom:12px;overflow:hidden}
.recap-prec>button{width:100%;text-align:left;padding:12px 15px;background:var(--papier);
  font-weight:600;font-size:13px;color:var(--encre2);display:flex;justify-content:space-between;
  align-items:center;gap:10px}
.recap-prec>button:hover{background:#EDF0F4}
.recap-prec .contenu{padding:15px}
.fichier-zone{display:flex;align-items:center;gap:14px;border:1.5px dashed var(--sceau-b);
  border-radius:var(--r);padding:14px 16px;font-size:13px;background:linear-gradient(135deg,#FBFEFD,#F2FAF7)}
.fichier-ico{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;background:#fff;color:var(--sceau-d);border:1px solid var(--sceau-b)}
.fichier-zone input[type=file]{font-size:12.5px;border:none;padding:0;background:transparent}
.fichier-zone input[type=file]:focus{box-shadow:none}

/* ---------- onglets admin ---------- */
.tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:16px 0 18px}
.tab{display:flex;align-items:center;gap:7px;padding:9px 15px;border:1px solid var(--ligne);
  border-radius:10px;background:#fff;color:var(--encre2);font-size:12px;font-weight:600;
  box-shadow:var(--ombre-s);transition:all .15s}
.tab:hover{border-color:var(--sceau-b);color:var(--sceau-d)}
.tab.on{background:linear-gradient(135deg,var(--sceau),var(--sceau-d));color:#fff;border-color:transparent;
  box-shadow:0 3px 12px rgba(14,155,110,.28)}

/* ---------- mini-cartes par intervenant (backoffice) ---------- */
.mx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px;margin-bottom:16px}
.mx-card{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);overflow:hidden;
  box-shadow:var(--ombre-s);display:flex;flex-direction:column}
.mx-head{display:flex;align-items:center;gap:9px;padding:12px 15px;font-size:13px;font-weight:700}
.mx-head .mx-n{margin-left:auto;font-size:10.5px;font-weight:600;opacity:.75}
.mx-row{display:flex;justify-content:space-between;gap:14px;padding:9px 15px;
  border-bottom:1px solid var(--ligne2);font-size:13px;align-items:flex-start}
.mx-row:last-child{border-bottom:none}
.mx-lab{color:var(--muet);font-size:11.5px;font-weight:600;flex:none;max-width:48%}
.mx-val{font-weight:600;text-align:right;word-break:break-word}
.mx-row.col{flex-direction:column;gap:3px}
.mx-row.col .mx-lab{max-width:100%}
.mx-row.col .mx-val{text-align:left;font-weight:400;font-size:12.5px;line-height:1.55}
.mx-row.diverge{background:var(--ambre-p)}
.mx-row.diverge .mx-lab{color:#7C5518}
.mx-warn{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--ambre);
  background:#fff;border-radius:99px;padding:1px 7px;margin-left:5px;vertical-align:1px}
.mx-empty{padding:26px 15px;text-align:center;color:var(--muet);font-size:12.5px}
.mx-empty svg{color:#C3CBD6;margin-bottom:7px}
.mx-corr{padding:12px 15px;display:flex;flex-direction:column;gap:10px}
.mx-corr .cc-lab{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muet);margin-bottom:4px;display:block}
.mx-corr textarea{min-height:36px;font-size:12.5px;resize:vertical}
.h-medecin{background:var(--plum-p);color:var(--plum)}
.h-serviceat{background:var(--bleu-p);color:#1C4874}
.h-resplocal{background:var(--ambre-p);color:var(--ambre)}
.h-enqueteur{background:var(--rose-p);color:var(--rose)}
.h-backoffice{background:var(--sceau-p);color:var(--sceau-d)}
.mx-legende{display:flex;flex-wrap:wrap;gap:16px;font-size:11.5px;color:var(--muet);margin:0 2px 12px}
.mx-legende span{display:flex;align-items:center;gap:6px}
.mx-pt{width:9px;height:9px;border-radius:50%}

/* ---------- cartes montants ---------- */
.cartes-montants{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:14px;margin-bottom:18px}
.carte-montant{border:1px solid var(--ligne);border-left:4px solid;border-radius:var(--r2);
  padding:16px 18px;background:#fff;box-shadow:var(--ombre-s)}
.carte-montant .cm-lab{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muet)}
.carte-montant .cm-val{font-family:'IBM Plex Mono',monospace;font-size:23px;font-weight:600;margin-top:8px}
.cm-bleu{border-left-color:var(--encre)} .cm-bleu .cm-val{color:var(--encre)}
.cm-vert{border-left-color:var(--sceau)} .cm-vert .cm-val{color:var(--sceau-d)}
.cm-rouge{border-left-color:var(--rouge)} .cm-rouge .cm-val{color:var(--rouge)}

/* ---------- divers ---------- */
.resume-bar{overflow-x:auto;margin-bottom:14px;border:1px solid var(--ligne);border-radius:var(--r2);
  box-shadow:var(--ombre-s)}
.resume-bar table{min-width:1000px}
.autocomplete{position:relative}
.auto-liste{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;
  border:1px solid var(--ligne);border-radius:var(--r);box-shadow:0 10px 28px rgba(16,32,52,.14);
  z-index:20;max-height:240px;overflow-y:auto}
.auto-item{padding:11px 13px;cursor:pointer;font-size:13px;border-top:1px solid var(--ligne2)}
.auto-item:first-child{border-top:none}
.auto-item:hover{background:var(--sceau-p)}
.societe-carte{border:1px solid var(--ligne);border-radius:var(--r);padding:15px;position:relative;
  background:#fff;transition:box-shadow .15s}
.societe-carte:hover{box-shadow:var(--ombre-s)}

/* ---------- analyse IA ---------- */
.btn-ia{background:linear-gradient(135deg,#6C5CC4,#8B5A94);color:#fff;
  box-shadow:0 2px 10px rgba(108,92,196,.28)}
.btn-ia:hover{filter:brightness(1.09)}
.carte-ia{border-left:4px solid var(--violet)}
.carte-ia h3{justify-content:space-between}
.ia-meta{font-family:'Public Sans',sans-serif;font-size:11.5px;font-weight:500;color:var(--muet)}
.ia-corps{display:grid;grid-template-columns:180px 1fr;gap:24px}
.ia-jauge{text-align:center;padding-top:6px}
.ia-score{font-family:'Fraunces',serif;font-size:54px;font-weight:700;line-height:1}
.ia-jauge-bg{background:var(--papier);border-radius:99px;height:10px;margin:12px 0 8px;overflow:hidden}
.ia-jauge-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.2,.7,.3,1)}
.ia-niveau{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}

@media (max-width:980px){.ia-corps{grid-template-columns:1fr}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .sidebar{flex-direction:row;align-items:center;padding:10px;gap:6px;overflow-x:auto}
  .sidebar .brand{padding:0 8px 0 4px;white-space:nowrap}
  .nav-sep,.side-user{display:none}
  .nav-btn{width:auto;white-space:nowrap;margin-bottom:0}
  .login-wrap{grid-template-columns:1fr}
  .login-left{display:none}
  .main{padding:18px 16px 50px}
  .form-etape{padding:20px 16px 24px}
  .topbar{flex-direction:column;gap:10px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ================= v7 : rubriques dynamiques, jauge, consolidation ========= */
.rubrique-bloc{border:1px solid var(--ligne);border-radius:var(--r2);margin-bottom:14px;
  overflow:hidden;background:#fff}
.rubrique-tete{display:flex;align-items:center;gap:9px;padding:11px 16px;background:var(--papier);
  font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--encre2);
  border-bottom:1px solid var(--ligne)}
.rubrique-bloc .form-grid{padding:15px 16px}
.champ-aide{font-size:11px;color:var(--muet);margin-top:3px;font-style:italic}
.champ-prefill{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--sceau-d);
  margin-top:4px;font-weight:600}
.note-form{text-align:center;font-size:12px;color:var(--muet);margin-top:12px}
.bandeau-dossier{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--sceau-p);
  border:1px solid var(--sceau-b);border-radius:var(--r);padding:11px 15px;margin-bottom:14px;
  font-size:13px;color:var(--sceau-d)}
.bandeau-dossier b{font-size:14px;color:var(--encre)}
.bandeau-dossier span{color:var(--encre2)}
.progress-form{margin-bottom:14px}

/* jauge de remplissage */
.jauge{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);padding:12px 15px}
.j-tete{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--muet)}
.j-tete span{display:flex;align-items:center;gap:6px}
.j-tete b{font-family:'IBM Plex Mono',monospace;font-size:16px}
.j-bg{background:var(--papier);border-radius:99px;height:8px;margin:9px 0 6px;overflow:hidden}
.j-fill{height:100%;border-radius:99px;transition:width .7s cubic-bezier(.2,.7,.3,1)}
.j-sous{font-size:11.5px;color:var(--muet)}
.jauge-mini{display:flex;align-items:center;gap:7px;min-width:92px}
.jm-bg{flex:1;background:var(--papier);border-radius:99px;height:6px;overflow:hidden;min-width:44px}
.jm-fill{height:100%;border-radius:99px;transition:width .6s}
.jm-val{font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600}

/* bandeau de synthèse du dossier */
.bandeau-synthese{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:14px;margin-bottom:16px}
.bs-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);padding:14px 16px}
.bs-chiffres .lab{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--muet)}
.bs-chiffres b{font-family:'IBM Plex Mono',monospace;font-size:16px;margin-top:4px;display:block}
@media (max-width:820px){.bandeau-synthese{grid-template-columns:1fr}}

/* consolidation box office */
.non-rens{color:#B2BAC6;font-style:italic;font-weight:400;font-size:12px}
.cc-src{font-size:9.5px;font-weight:600;color:var(--sceau-d);background:var(--sceau-p);
  border-radius:99px;padding:1px 7px;margin-left:6px;text-transform:none;letter-spacing:0}
.cc-val{font-size:13px;font-weight:600;padding:7px 10px;background:var(--papier);
  border-radius:8px;border:1px solid var(--ligne2)}
.chk-valid{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muet);
  margin-top:5px;text-transform:none;letter-spacing:0;font-weight:500}
.chk-valid input{width:auto;margin:0}
.tab-pastille{background:var(--rouge);color:#fff;border-radius:99px;font-size:10px;
  font-weight:700;padding:1px 6px;margin-left:2px}
.tab.on .tab-pastille{background:#fff;color:var(--rouge)}

/* ============ v8 : grille de consolidation alignée ============ */
.cons-grille{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  overflow:hidden;box-shadow:var(--ombre-s);margin-bottom:16px}
.cons-tete{display:grid;grid-template-columns:200px repeat(3,1fr) 1.35fr;
  border-bottom:1px solid var(--ligne)}
.cons-tete::before{content:"";display:block;background:var(--papier)}
.cons-th{display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:12.5px;
  font-weight:700;border-left:1px solid var(--ligne)}
.cons-th .mx-n{margin-left:auto;font-size:10.5px;font-weight:600;opacity:.75}

.cons-ligne{display:grid;grid-template-columns:200px repeat(3,1fr) 1.35fr;
  border-top:1px solid var(--ligne2);align-items:stretch}
.cons-ligne:first-of-type{border-top:none}
.cons-ligne.diverge{background:var(--ambre-p)}
.cons-ligne.diverge .cons-label{color:#7C5518}
.cons-ligne-box{background:var(--sceau-p)}
.cons-label{padding:12px 14px;font-size:12.5px;font-weight:600;color:var(--encre2);
  display:flex;flex-direction:column;gap:5px;justify-content:center;
  background:var(--papier);border-right:1px solid var(--ligne)}
.cons-ligne.diverge .cons-label{background:#F8EBD6}
.cons-ligne-box .cons-label{background:#DDF0E7}
.cons-cell{padding:12px 14px;font-size:13px;border-left:1px solid var(--ligne2);
  display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0}
.cons-val{font-weight:600;word-break:break-word;line-height:1.5}
.cons-hors{background:#FBFCFD}
.cons-vide{color:#C3CBD6;font-size:12px}
.cons-box{background:#FAFDFC;border-left:2px solid var(--sceau-b)}
.cons-retenue{font-weight:700;font-size:13.5px;background:#fff;border:1px solid var(--sceau-b);
  border-radius:8px;padding:8px 11px;display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.cons-box select{font-size:12.5px}
.cons-box textarea{font-size:12.5px;resize:vertical}
.cons-mob-lab{display:none}
.cons-ligne .mx-warn{align-self:flex-start}

@media (max-width:1100px){
  .cons-tete{display:none}
  .cons-ligne{grid-template-columns:1fr;border-top:2px solid var(--ligne)}
  .cons-label{background:var(--encre);color:#fff;border-right:none;font-size:13px}
  .cons-ligne.diverge .cons-label{background:var(--ambre);color:#fff}
  .cons-ligne-box .cons-label{background:var(--sceau-d);color:#fff}
  .cons-cell{border-left:none;border-top:1px solid var(--ligne2);flex-direction:row;
    align-items:center;gap:12px;flex-wrap:wrap}
  .cons-cell[style]{grid-column:auto !important}
  .cons-mob-lab{display:block;font-size:11px;font-weight:700;text-transform:uppercase;
    letter-spacing:.05em;color:var(--muet);min-width:120px}
  .cons-box{border-left:none;border-top:2px solid var(--sceau-b);flex-direction:column;
    align-items:stretch}
}

/* ============ v9 : transmission des documents ============ */
.bandeau-dg{display:flex;align-items:flex-start;gap:13px;padding:14px 17px;border-radius:var(--r2);
  margin-bottom:16px;border:1px solid;box-shadow:var(--ombre-s)}
.bandeau-dg b{font-size:13.5px;display:block}
.dg-sous{font-size:12.5px;margin-top:3px;line-height:1.5;opacity:.85}
.dg-ok{background:var(--sceau-p);border-color:var(--sceau-b);color:var(--sceau-d)}
.dg-attente{background:var(--ambre-p);border-color:#EBD5AC;color:#7C5518}
.bandeau-dg .btn{flex:none;align-self:center}

.tr-legende{display:flex;flex-wrap:wrap;gap:16px;font-size:11.5px;color:var(--muet);margin-bottom:12px}
.tr-legende span{display:flex;align-items:center;gap:6px}
.tr-ligne{border:1px solid var(--ligne);border-radius:var(--r);margin-bottom:10px;overflow:hidden;background:#fff}
.tr-ligne.tr-retard{border-color:#EBD5AC}
.tr-tete{width:100%;display:flex;align-items:center;gap:11px;padding:12px 15px;
  background:var(--papier);font-size:13px;color:var(--encre2);text-align:left}
.tr-ligne.tr-retard .tr-tete{background:var(--ambre-p)}
.tr-tete:hover{filter:brightness(.985)}
.tr-tete b{font-size:13.5px;color:var(--encre)}
.tr-sous{margin-left:10px;font-size:12px;color:var(--muet);font-family:'IBM Plex Mono',monospace}
.tr-compteur{font-size:11px;font-weight:600;color:var(--muet);background:#fff;
  border:1px solid var(--ligne);border-radius:99px;padding:2px 9px;white-space:nowrap}
.tr-corps{padding:16px 15px}
.tr-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.tr-champ{border:1px solid var(--ligne);border-left:3px solid;border-radius:10px;padding:10px 12px}
.tr-champ.tr-rl{border-left-color:var(--ambre)}
.tr-champ.tr-sat{border-left-color:var(--bleu)}
.tr-champ label{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:6px;
  text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:600;color:var(--encre2)}
.tr-pastille{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  border-radius:99px;padding:2px 8px}
.p-rl{background:var(--ambre-p);color:var(--ambre)}
.p-sat{background:var(--bleu-p);color:#1C4874}
.tr-champ input:disabled{background:var(--papier);color:var(--muet);cursor:not-allowed}
.tr-maillons{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}
.tr-maillon{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:9px 12px;border-radius:9px;font-size:12.5px;border:1px solid}
.tm-lib{color:var(--encre2)}
.tm-val{font-family:'IBM Plex Mono',monospace;font-weight:700;white-space:nowrap}
.tm-val small{font-weight:400;opacity:.6}
.m-OK{background:var(--sceau-p);border-color:var(--sceau-b)} .m-OK .tm-val{color:var(--sceau-d)}
.m-RETARD{background:var(--ambre-p);border-color:#EBD5AC} .m-RETARD .tm-val{color:var(--ambre)}
.m-NEGATIF{background:var(--rouge-p);border-color:#F0CFCB} .m-NEGATIF .tm-val{color:var(--rouge)}
.m-MANQUANT{background:var(--papier);border-color:var(--ligne)} .m-MANQUANT .tm-val{color:#B2BAC6}
.tr-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media (max-width:700px){
  .tr-tete{flex-wrap:wrap}
  .tr-sous{margin-left:0;display:block}
}

/* ============ v10 : deux colonnes + choix multiple ============ */
.deux-col{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.col-saisie{min-width:0}
.panneau-prec{position:sticky;top:0;background:var(--carte);border:1px solid var(--ligne);
  border-radius:var(--r2);overflow:hidden;box-shadow:var(--ombre-s);max-height:calc(100vh - 40px);
  display:flex;flex-direction:column}
.panneau-prec.replie{width:52px}
.pp-tete{display:flex;align-items:center;gap:9px;width:100%;padding:12px 14px;background:var(--encre);
  color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.03em}
.pp-tete:hover{filter:brightness(1.12)}
.pp-corps{overflow-y:auto;padding:4px 0}
.pp-bloc{border-bottom:1px solid var(--ligne)}
.pp-bloc:last-child{border-bottom:none}
.pp-role{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:12px;font-weight:700}
.pp-date{margin-left:auto;font-size:10.5px;font-weight:600;opacity:.7;
  font-family:'IBM Plex Mono',monospace}
.pp-rub{padding:8px 14px 3px;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muet)}
.pp-ligne{padding:5px 14px;display:flex;flex-direction:column;gap:1px;
  border-top:1px solid var(--ligne2)}
.pp-lab{font-size:10.5px;color:var(--muet);font-weight:600}
.pp-val{font-size:12.5px;font-weight:600;color:var(--encre);word-break:break-word;line-height:1.4}
.pp-vide{padding:12px 14px;font-size:11.5px;color:var(--muet);font-style:italic}

.multi-choix{display:flex;flex-wrap:wrap;gap:7px;padding-top:3px}
.mc-opt{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:99px;
  border:1px solid var(--ligne);background:#fff;font-size:12.5px;color:var(--encre2);
  transition:all .12s}
.mc-opt:hover{border-color:var(--sceau-b);color:var(--sceau-d)}
.mc-opt.on{background:var(--sceau-p);border-color:var(--sceau);color:var(--sceau-d);font-weight:600}
.mc-opt:disabled{opacity:.45;cursor:not-allowed}
input:disabled,select:disabled,textarea:disabled{background:var(--papier);color:var(--muet);
  cursor:not-allowed}
@media (max-width:1100px){
  .deux-col{grid-template-columns:1fr}
  .panneau-prec{position:static;max-height:none}
}
.side-cab{font-size:10.5px;color:#8FA0B4;margin-top:4px}

/* ============ v12 : courriels et boîte de transmission ============ */
.boite-tr{border:1px dashed var(--sceau-b);border-radius:var(--r);padding:11px 14px;
  margin-bottom:14px;background:linear-gradient(135deg,#FBFEFD,#F4FBF8)}
.bt-tete{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--sceau-d)}
.bt-n{font-weight:600;color:var(--muet);text-transform:none;letter-spacing:0;font-size:11px}
.bt-btn{margin-left:auto;padding:5px 12px;font-size:12px;cursor:pointer}
.bt-vide{font-size:12px;color:var(--muet);font-style:italic;margin-top:8px;line-height:1.5}
.bt-liste{margin-top:9px;display:flex;flex-direction:column;gap:6px}
.bt-item{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--ligne);
  border-radius:8px;padding:7px 11px;font-size:12.5px}
.bt-nom{color:var(--encre);font-weight:600;text-decoration:none;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt-nom:hover{color:var(--sceau-d);text-decoration:underline}
.bt-meta{font-size:11px;color:var(--muet);white-space:nowrap}
.bt-x{background:none;color:var(--muet);padding:2px 4px;border-radius:6px}
.bt-x:hover{background:var(--rouge-p);color:var(--rouge)}
.btn-envoi{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:5px 11px;
  border-radius:99px;background:var(--sceau-p);color:var(--sceau-d);border:1px solid var(--sceau-b);
  font-size:11.5px;font-weight:600}
.btn-envoi:hover{background:var(--sceau);color:#fff;border-color:var(--sceau)}
.tr-auto{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:10.5px;
  font-weight:600;color:var(--sceau-d)}
.brouillon-info{display:flex;gap:9px;align-items:flex-start;background:var(--bleu-p);
  border-left:3px solid var(--bleu);border-radius:0 9px 9px 0;padding:10px 13px;
  font-size:12.5px;color:#1C4874;line-height:1.5;margin-bottom:14px}
.pj-liste{margin-top:14px;border-top:1px solid var(--ligne);padding-top:12px}
.pj-titre{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--muet);margin-bottom:8px}
.pj-item{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:6px 0;
  border-bottom:1px solid var(--ligne2)}
.pj-item:last-child{border-bottom:none}

/* ================= v13 : espaces de direction (lot C) ================= */
.dir-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}
.dir-carte{display:flex;align-items:center;gap:13px;background:var(--carte);
  border:1px solid var(--ligne);border-radius:var(--r2);padding:16px 18px;
  box-shadow:var(--ombre-s);text-align:left;transition:transform .15s,box-shadow .15s}
.dir-carte:hover{transform:translateY(-2px);box-shadow:var(--ombre);border-color:var(--sceau-b)}
.dc-ico{width:42px;height:42px;border-radius:12px;flex:none;display:flex;align-items:center;
  justify-content:center;background:var(--sceau-p);color:var(--sceau-d)}
.dc-txt{flex:1;min-width:0}
.dc-txt b{font-size:14px;display:block}
.dc-desc{font-size:12px;color:var(--muet);margin-top:3px;line-height:1.45}

.dg-liste{display:flex;flex-direction:column;gap:14px}

/* validations */
.val-carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  padding:17px 20px;box-shadow:var(--ombre-s)}
.val-carte.urgent{border-left:4px solid var(--rouge)}
.vc-tete{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.vc-tete b{font-size:15px}
.vc-soc{color:var(--muet);font-size:12.5px}
.vc-anc{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600}
.att-moyen{color:var(--ambre)}
.vc-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;
  color:var(--encre2);align-items:center}
.vc-meta b{font-family:'IBM Plex Mono',monospace}
.vc-rem{background:var(--bleu-p);border-left:3px solid var(--bleu);border-radius:0 9px 9px 0;
  padding:10px 13px;margin-top:12px;font-size:12.5px;color:#1C4874;line-height:1.55}
.vc-rem b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;
  margin-bottom:3px}
.vc-rem.rem-dec{background:var(--rouge-p);border-color:var(--rouge);color:#8C2F27}
.vc-motif{margin-top:12px}
.vc-actions{display:flex;gap:9px;margin-top:11px;flex-wrap:wrap}
.vc-lecture{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:12px;
  color:var(--muet);font-style:italic}

/* remarques */
.msg-carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  padding:15px 18px;box-shadow:var(--ombre-s)}
.msg-carte.nonlu{border-left:4px solid var(--sceau);background:#FBFDFC}
.mc-tete{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.mc-tete b{font-size:13.5px}
.mc-dos{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--sceau-d);
  font-weight:600}
.mc-date{margin-left:auto;font-size:11px;color:var(--muet);font-family:'IBM Plex Mono',monospace}
.mc-corps{font-size:13.5px;line-height:1.6}
.mc-reponse{margin-top:11px;padding-left:14px;border-left:2px solid var(--ligne);
  font-size:13px;line-height:1.55;color:var(--encre2)}
.mc-reponse b{display:block;font-size:11.5px;color:var(--encre);margin-bottom:3px}
.mc-rep-saisie{display:flex;gap:9px;margin-top:11px}
.mc-rep-saisie input{font-size:12.5px}
.niv{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  border-radius:99px;padding:2px 9px}
.n-info{background:var(--bleu-p);color:#1C4874}
.n-vigil{background:var(--ambre-p);color:var(--ambre)}
.n-dec{background:var(--rouge-p);color:var(--rouge)}

/* alertes */
.al-carte{display:flex;align-items:center;gap:14px;background:var(--carte);
  border:1px solid var(--ligne);border-left:4px solid;border-radius:var(--r2);
  padding:15px 18px;box-shadow:var(--ombre-s)}
.al-rouge{border-left-color:var(--rouge)} .al-ambre{border-left-color:var(--ambre)}
.al-ico2{width:38px;height:38px;border-radius:11px;flex:none;display:flex;
  align-items:center;justify-content:center;background:var(--papier);color:var(--encre2)}
.al-rouge .al-ico2{background:var(--rouge-p);color:var(--rouge)}
.al-ambre .al-ico2{background:var(--ambre-p);color:var(--ambre)}
.al-sous{font-size:11.5px;color:var(--muet);margin-top:2px}
.al-det{display:flex;flex-wrap:wrap;gap:12px;margin-top:7px;font-size:11.5px;color:var(--encre2)}
.al-mt2{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:15px;white-space:nowrap}
.al-rouge .al-mt2{color:var(--rouge)} .al-ambre .al-mt2{color:var(--ambre)}

/* journal (frise) */
.tl{position:relative;padding:4px 0}
.tl::before{content:"";position:absolute;left:17px;top:14px;bottom:14px;width:2px;
  background:var(--ligne)}
.tl-item{position:relative;display:flex;gap:16px;padding:11px 0}
.tl-pt{width:36px;height:36px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;z-index:1;border:3px solid var(--papier);color:#fff}
.p-val{background:var(--sceau)} .p-ref{background:var(--rouge)} .p-comp{background:var(--ambre)}
.tl-c{flex:1;min-width:0;background:var(--carte);border:1px solid var(--ligne);
  border-radius:12px;padding:13px 16px;box-shadow:var(--ombre-s)}
.tl-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.tl-h b{font-size:14px}
.tl-soc{font-size:12.5px;color:var(--muet)}
.tl-date{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muet)}
.dec{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  border-radius:99px;padding:2px 9px}
.d-val{background:var(--sceau-p);color:var(--sceau-d)}
.d-ref{background:var(--rouge-p);color:var(--rouge)}
.d-comp{background:var(--ambre-p);color:var(--ambre)}
.tl-motif{font-size:13px;line-height:1.55;color:var(--encre2)}
.tl-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:9px;padding-top:9px;
  border-top:1px solid var(--ligne2);font-size:12px;color:var(--muet)}
.tl-meta b{font-family:'IBM Plex Mono',monospace;color:var(--encre2)}

/* pilotage de la visibilité (box office) */
.vis-grille{border:1px solid var(--ligne);border-radius:var(--r);overflow:hidden}
.vis-tete{display:grid;grid-template-columns:1fr 130px 130px;background:var(--encre);
  color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.vis-tete>span{padding:11px 14px}
.vis-n{text-align:center;border-left:1px solid rgba(255,255,255,.14)}
.vis-n small{display:block;font-size:9.5px;font-weight:500;opacity:.7;
  text-transform:none;letter-spacing:0;margin-top:2px}
.vis-ligne{display:grid;grid-template-columns:1fr 130px 130px;border-top:1px solid var(--ligne2);
  align-items:stretch}
.vis-lab{display:flex;align-items:center;gap:10px;padding:11px 14px}
.vis-lab b{font-size:13px}
.vis-desc{font-size:11.5px;color:var(--muet);margin-top:2px;line-height:1.4}
.vis-case{border-left:1px solid var(--ligne2);background:#fff;display:flex;
  align-items:center;justify-content:center;color:var(--sceau-d);transition:background .12s}
.vis-case:hover{background:var(--papier)}
.vis-case.on{background:var(--sceau-p)}
.vis-case:disabled{opacity:.5;cursor:wait}
@media (max-width:760px){
  .vis-tete,.vis-ligne{grid-template-columns:1fr 78px 78px}
  .vc-anc{margin-left:0;width:100%}
}

/* ============ v14 : page transmission dédiée + facturation (lot D) ============ */
.acces-transmission{display:flex;align-items:center;gap:14px;width:100%;
  background:linear-gradient(135deg,#FBFEFD,#EFF9F5);border:1px solid var(--sceau-b);
  border-radius:var(--r2);padding:15px 18px;margin-bottom:16px;text-align:left;
  transition:transform .15s,box-shadow .15s}
.acces-transmission:hover{transform:translateY(-1px);box-shadow:var(--ombre)}
.at-ico{width:42px;height:42px;border-radius:12px;flex:none;display:flex;align-items:center;
  justify-content:center;background:var(--sceau);color:#fff}
.at-txt{flex:1;min-width:0}
.at-txt b{display:block;font-size:14px;color:var(--encre)}
.at-txt small{font-size:12px;color:var(--muet)}

/* --- page transmission : volontairement sobre --- */
.page-tr{max-width:1050px;margin:0 auto}
.tr-entete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  flex-wrap:wrap;margin-bottom:18px}
.tr-entete h2{font-family:'Fraunces',serif;font-size:24px;margin-bottom:7px}
.tre-victime{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;
  color:var(--encre2)}
.tre-victime b{font-size:14.5px;color:var(--encre)}
.tre-bloque{display:flex;gap:10px;background:var(--ambre-p);border:1px solid #EBD5AC;
  border-radius:var(--r);padding:11px 15px;font-size:12.5px;color:#7C5518;max-width:340px}
.tre-bloque b{display:block;font-size:13px}

.tr-onglets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tro{display:flex;align-items:center;gap:8px;padding:11px 17px;border-radius:var(--r);
  border:1px solid var(--ligne);background:#fff;font-size:13px;font-weight:600;
  color:var(--encre2);box-shadow:var(--ombre-s);transition:all .15s}
.tro:hover{border-color:var(--sceau-b);color:var(--sceau-d)}
.tro.on{background:var(--encre);color:#fff;border-color:var(--encre)}
.tro-n{background:var(--rouge);color:#fff;border-radius:99px;font-size:10.5px;
  font-weight:700;padding:1px 7px}
.tro.on .tro-n{background:#fff;color:var(--rouge)}

.tr-aide{display:flex;gap:10px;align-items:flex-start;background:var(--carte);
  border:1px solid var(--ligne);border-left:3px solid var(--bleu);border-radius:var(--r);
  padding:12px 15px;font-size:12.5px;color:var(--encre2);line-height:1.55;margin-bottom:14px}
.tr-ajout{margin-bottom:14px}

.doc-tr{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  margin-bottom:12px;overflow:hidden;box-shadow:var(--ombre-s)}
.doc-tr.a-faire{border-left:3px solid var(--ambre)}
.dt-tete{display:flex;align-items:center;gap:11px;width:100%;padding:14px 18px;
  background:#fff;text-align:left;font-size:13.5px}
.dt-tete:hover{background:var(--papier)}
.dt-tete b{font-size:14px}
.dt-per{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muet)}
.dt-etat{margin-left:auto;display:flex;align-items:center;gap:10px}
.dt-reste{font-size:11.5px;font-weight:700;color:var(--ambre);background:var(--ambre-p);
  border-radius:99px;padding:3px 11px}
.dt-ok{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;
  color:var(--sceau-d);background:var(--sceau-p);border-radius:99px;padding:3px 11px}
.dt-compte{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muet)}
.dt-corps{padding:16px 18px;border-top:1px solid var(--ligne)}

/* étapes : une ligne claire par date */
.etapes{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.etape{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:10px;
  background:var(--papier)}
.etape.faite{background:var(--sceau-p)}
.etape.autre{opacity:.62}
.et-num{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;background:#fff;border:1px solid var(--ligne);color:var(--sceau-d)}
.etape.faite .et-num{background:var(--sceau);border-color:var(--sceau);color:#fff}
.et-point{width:7px;height:7px;border-radius:50%;background:#C3CBD6}
.et-corps{flex:1;min-width:0}
.et-titre{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.et-titre b{font-size:13.5px}
.et-qui{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  border-radius:99px;padding:2px 8px}
.et-mention{font-size:11.5px;color:var(--muet);font-style:italic;margin-top:2px}
.et-date{flex:none;width:165px}
.et-date input{font-size:13px}
.et-envoi{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 13px;
  border-radius:99px;background:var(--sceau);color:#fff;font-size:12px;font-weight:600}
.et-envoi:hover{filter:brightness(1.08)}
.et-auto{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:11px;
  font-weight:600;color:var(--sceau-d)}
.dt-retards{display:flex;gap:10px;background:var(--ambre-p);border-radius:var(--r);
  padding:12px 15px;margin-top:14px;font-size:12.5px;color:#7C5518;line-height:1.6}
.dt-actions{display:flex;justify-content:flex-end;margin-top:16px}
@media (max-width:700px){
  .etape{flex-wrap:wrap}
  .et-date{width:100%;padding-left:40px}
}

/* --- facturation --- */
.fact-carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  margin-bottom:12px;overflow:hidden;box-shadow:var(--ombre-s)}
.fc-tete{display:flex;align-items:center;gap:12px;width:100%;padding:15px 18px;
  text-align:left;background:#fff}
.fc-tete:hover{background:var(--papier)}
.fc-nom{flex:1;min-width:0}
.fc-nom b{display:block;font-size:14px}
.fc-nom span{font-size:12px;color:var(--muet)}
.fc-impaye{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;
  color:var(--rouge)}
.fc-corps{padding:16px 18px;border-top:1px solid var(--ligne)}
.fc-actions{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.fc-ab{background:var(--papier);border-radius:var(--r);padding:15px;margin-bottom:14px}

/* ============ v15 : sécurité du compte ============ */
.deuxfa{background:var(--papier);border-radius:var(--r);padding:16px 18px}
.deuxfa-etapes{margin:0 0 14px 18px;font-size:13px;line-height:1.8;color:var(--encre2)}
.deuxfa-cle{display:block;margin-top:6px;font-family:'IBM Plex Mono',monospace;
  font-size:15px;letter-spacing:2px;background:#fff;border:1px solid var(--sceau-b);
  border-radius:8px;padding:9px 13px;color:var(--sceau-d);word-break:break-all}

/* ============ v16 : sélecteur de client (rôles transverses) ============ */
.barre-clients{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r2);
  padding:11px 13px;box-shadow:var(--ombre-s)}
.bcl{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;
  border:1px solid var(--ligne);background:#fff;font-size:12.5px;font-weight:600;
  color:var(--encre2);transition:all .15s;max-width:290px}
.bcl:hover{border-color:var(--sceau-b);color:var(--sceau-d)}
.bcl.on{background:var(--encre);color:#fff;border-color:var(--encre)}
.bcl span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bcl-n{background:var(--papier);color:var(--encre2);border-radius:99px;
  font-size:10.5px;font-weight:700;padding:1px 8px;flex:none}
.bcl.on .bcl-n{background:rgba(255,255,255,.2);color:#fff}
.bcl-v{background:var(--rouge);color:#fff;border-radius:99px;font-size:10.5px;
  font-weight:700;padding:1px 8px;flex:none}

/* ============ v17 : création guidée d'un client ============ */
.cc-types{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.cc-type{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px;
  border:1px solid var(--ligne);border-radius:var(--r);background:#fff;text-align:left;
  transition:all .15s;color:var(--encre2)}
.cc-type:hover{border-color:var(--sceau-b)}
.cc-type.on{border-color:var(--sceau);background:var(--sceau-p);color:var(--sceau-d)}
.cc-type b{font-size:13.5px}
.cc-type span{font-size:11px;color:var(--muet);line-height:1.4}
.cc-type.on span{color:var(--sceau-d);opacity:.8}
.cc-case{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--encre2);
  text-transform:none;letter-spacing:0;font-weight:500;margin:10px 0}
.cc-case input{width:auto;margin:0}
.cc-groupe{border:1px solid var(--ligne);border-left:3px solid var(--bleu);
  border-radius:var(--r);padding:13px 15px;margin-bottom:11px;background:#FCFDFE}
.ccg-tete{display:flex;align-items:center;gap:9px}
.ccg-nom{font-weight:600}
.ccg-ville{max-width:150px}
.cc-ent{display:flex;align-items:center;gap:9px;margin-bottom:7px;padding-left:18px}
.cc-ajout{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  color:var(--sceau-d);background:none;padding:5px 0}
.cc-ajout:hover{text-decoration:underline}
.arbre-cl{display:flex;flex-direction:column;gap:3px}
.arbre-cl.sous{margin-left:14px;padding-left:8px;border-left:1px dashed var(--ligne)}
.arbre-n{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;
  border-radius:99px;padding:2px 9px;white-space:nowrap}
.an-grp{background:var(--ambre-p);color:var(--ambre);font-weight:600}
.an-ent{background:var(--papier);color:var(--encre2)}
.arbre-n em{font-style:normal;font-size:9px;font-weight:700;background:var(--bleu);
  color:#fff;border-radius:99px;padding:0 5px;margin-left:2px}

/* ============ v18 : colonne client hiérarchique ============ */
.cel-client{display:flex;flex-direction:column;gap:3px;min-width:190px}
.cc-tete{display:flex;align-items:center;gap:6px}
.cc-type{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;
  border-radius:99px;padding:2px 9px;white-space:nowrap}
.tc-cab{background:var(--bleu-p);color:#1C4874}
.tc-grp{background:var(--ambre-p);color:var(--ambre)}
.tc-ent{background:var(--sceau-p);color:var(--sceau-d)}
.cc-chemin{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11.5px;
  color:var(--muet);padding-left:4px}
.cc-noeud i{font-style:normal;margin:0 3px;opacity:.6}
.cc-chemin b{color:var(--encre);font-size:12px}

/* ============ v19 : ciblage nominatif ============ */
.val-carte.pour-moi{border-left:4px solid var(--sceau);background:#FBFEFD}
.vc-adresse{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--sceau-p);
  border-radius:9px;padding:9px 13px;margin-bottom:12px;font-size:12.5px;color:var(--sceau-d)}
.vc-adresse b{font-size:12.5px}
.vc-adresse span{color:var(--encre2);font-style:italic}

/* ============ v20 : compteur de dossiers en attente ============ */
.notif-bloc{margin-bottom:16px}
.nb-tete{display:flex;align-items:center;gap:13px;width:100%;background:var(--carte);
  border:1px solid var(--ligne);border-radius:var(--r2);padding:13px 17px;
  box-shadow:var(--ombre-s);text-align:left;transition:all .15s}
.nb-tete:hover{border-color:var(--sceau-b)}
.nb-tete.on{border-bottom-left-radius:0;border-bottom-right-radius:0}
.nb-ico{position:relative;width:38px;height:38px;border-radius:11px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--rouge-p);color:var(--rouge)}
.nb-pastille{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;
  border-radius:99px;background:var(--rouge);color:#fff;font-size:10.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
  border:2px solid var(--carte)}
.nb-txt{flex:1;min-width:0}
.nb-txt b{display:block;font-size:13.5px}
.nb-txt em{font-style:normal;font-size:11.5px;color:var(--muet)}
.nb-liste{border:1px solid var(--ligne);border-top:none;border-radius:0 0 var(--r2) var(--r2);
  padding:10px 13px;background:var(--carte);display:flex;flex-direction:column;gap:7px}
.dt-action{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;
  color:#fff;background:var(--ambre);border-radius:99px;padding:4px 12px}
.dt-action em{font-style:normal;font-weight:600;opacity:.85;font-size:10.5px}
.tr-rappel{display:flex;align-items:center;gap:12px;background:var(--ambre-p);
  border:1px solid #EBD5AC;border-radius:var(--r);padding:12px 16px;margin-bottom:12px;
  color:#7C5518}
.tr-rappel b{display:block;font-size:13.5px}
.tr-rappel span{font-size:12px;opacity:.85}
.at-reste{background:var(--ambre);color:#fff;border-radius:99px;font-size:11.5px;
  font-weight:700;padding:4px 12px;white-space:nowrap}

/* ============ v21 : ajout de destinataire + échanges ============ */
.ajout-dest{background:var(--papier);border-radius:var(--r);padding:12px 14px;margin:14px 0}
.ad-tete{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--muet);margin-bottom:9px}
.ad-champs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ad-champs input,.ad-champs select{flex:1;min-width:130px;font-size:12.5px}
.ad-info{display:flex;align-items:flex-start;gap:7px;margin-top:9px;font-size:12px;
  color:var(--sceau-d);line-height:1.5}
.ech-client{font-size:11px;background:var(--bleu-p);color:#1C4874;border-radius:99px;
  padding:2px 9px;font-weight:600}
.ech-reponse{margin-top:12px;background:var(--sceau-p);border-left:3px solid var(--sceau);
  border-radius:0 9px 9px 0;padding:11px 14px;font-size:13px;line-height:1.55;
  color:var(--encre2)}
.er-tete{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;color:var(--sceau-d);margin-bottom:5px}
.er-tete span{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-weight:500;
  text-transform:none;letter-spacing:0;color:var(--muet)}
.ech-etat{display:flex;align-items:center;gap:8px;margin-top:11px;font-size:12px;
  border-radius:9px;padding:8px 12px;font-style:italic}
.ee-lu{background:var(--ambre-p);color:#7C5518}
.ee-nonlu{background:var(--papier);color:var(--muet)}
.dt-itt{font-size:11.5px;font-weight:600;background:var(--bleu-p);color:#1C4874;
  border-radius:99px;padding:2px 9px;white-space:nowrap}
.dt-etab{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muet);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
/* nom du produit sur deux lignes */
.brand{flex-wrap:wrap;align-items:center;row-gap:0;line-height:1.15}
.brand em{flex-basis:100%;padding-left:42px}