/* ═══════════════════════════════════════════════════════════════════════
   NEXUS — feuille de styles de l'application.
   Extraite d'index.html le 28/07/2026 : 55 des 56 blocs <style>, concatenes
   DANS L'ORDRE DU DOCUMENT. Cet ordre EST la cascade : ne pas reordonner,
   ne pas trier, ne pas fusionner des selecteurs identiques — c'est le
   dernier qui gagne, et plusieurs correctifs d'affichage en dependent.

   Le 56e bloc — <style id="nxLiteCSS">, 968 caracteres — reste EN LIGNE dans
   index.html a dessein : il eteint les animations coûteuses (html.nx-lite) et
   doit s'appliquer des le premier rendu, en tandem avec le script qui pose la
   classe juste au-dessus. L'externaliser ferait clignoter l'ecran de connexion
   sur les appareils lents.
   ═══════════════════════════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;font-family:'Segoe UI',system-ui,sans-serif;}
:root{--blue:#1a4fa0;--dark:#0d2d5e;--light:#e8f0fb;--bg:#f0f2f5;--white:#fff;--border:#e8e8e8;--text:#111;--muted:#888;
/* v2 design tokens (additive, ne pas supprimer les anciens) */
--navy-900:#0a2249;--navy-800:#0d2d5e;--navy-700:#143b78;--navy-600:#1a4fa0;--navy-100:#dbeafe;--navy-50:#eff5fc;
--ink-900:#0f172a;--ink-700:#334155;--ink-500:#64748b;--ink-400:#94a3b8;--ink-200:#e2e8f0;--ink-100:#f1f5f9;--ink-50:#f8fafc;
--coral-500:#F97316;--coral-600:#EA580C;--coral-50:#fff7ed;
--green-600:#16A34A;--green-500:#22C55E;
--sky-600:#0EA5E9;--violet-600:#7C3AED;
--shadow-sm:0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 12px rgba(15,23,42,.07);--shadow-lg:0 12px 32px rgba(15,23,42,.10);
--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:18px;}
body{background:var(--bg);min-height:100vh;}
body.admin-mode{height:100vh;overflow:hidden;}
body.admin-mode #adminView{display:flex;height:100vh;width:100%;}
.sidebar{width:200px;background:var(--dark);display:flex;flex-direction:column;flex-shrink:0;}
.sidebar-logo{padding:16px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,0.1);}
.logo-img{width:34px;height:34px;background:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-img span{font-size:11px;font-weight:700;color:#0d2d5e;}
.brand-name{font-size:12px;font-weight:600;color:#fff;line-height:1.3;}
.brand-sub{font-size:10px;color:rgba(255,255,255,0.5);}
nav{flex:1;padding:10px 0;}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;background:none;border:none;border-left:3px solid transparent;color:rgba(255,255,255,0.55);cursor:pointer;text-align:left;font-size:13px;transition:all 0.15s;}
.nav-item:hover{color:rgba(255,255,255,0.85);background:rgba(255,255,255,0.06);}
.nav-item.active{background:rgba(255,255,255,0.14);border-left-color:#fff;color:#fff;font-weight:500;}
.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,0.08);font-size:10px;color:rgba(255,255,255,0.3);}
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.topbar h1{font-size:16px;font-weight:600;}
.topbar p{font-size:11px;color:var(--muted);margin-top:1px;}
.topbar-right{display:flex;gap:8px;align-items:center;}
.pill{font-size:11px;padding:4px 12px;border-radius:20px;font-weight:500;}
.pill-green{background:#e8f5e9;color:#2e7d32;}
.pill-gray{background:#f5f5f5;color:var(--muted);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.stats-row{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px;flex:1;min-width:110px;}
.stat.accent{background:var(--blue);border-color:var(--blue);}
.stat-label{font-size:11px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.04em;}
.stat.accent .stat-label{color:rgba(255,255,255,0.7);}
.stat-val{font-size:28px;font-weight:600;color:var(--text);}
.stat.accent .stat-val{color:#fff;}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:16px;}
.card-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:14px;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{padding:9px 12px;text-align:left;font-weight:500;color:var(--muted);border-bottom:2px solid var(--border);font-size:12px;}
td{padding:10px 12px;border-bottom:1px solid #f5f5f5;}
tr:hover td{background:#fafbff;}
.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:3px 10px;border-radius:20px;white-space:nowrap;}
.fb{background:#f5f5f5;color:#444;border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:12px;cursor:pointer;}
.fb:hover{background:#eee;}
.fb.active{background:var(--blue);color:#fff;border-color:var(--blue);}
.config-note{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:12px;color:#795548;}
.config-note strong{display:block;margin-bottom:3px;color:#e65100;}
.tree-root{display:flex;flex-direction:column;gap:6px;}
.tree-card{background:#fff;border:1.5px solid #e0e7f3;border-radius:10px;overflow:hidden;}
.tree-card:hover{border-color:#1a4fa0;}
.tree-row{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:default;}
.tree-row.is-root{background:#f5f8ff;padding:13px 16px;}
.tree-row:hover{background:#f0f4ff;}
.tree-btn{background:none;border:none;cursor:pointer;font-size:11px;color:#aaa;width:16px;padding:0;flex-shrink:0;}
.tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:#111;}
.tree-name.b{font-weight:600;font-size:15px;color:#0d2d5e;letter-spacing:0.01em;}
.btn-files{font-size:12px;padding:6px 14px;border-radius:7px;cursor:pointer;background:#1a4fa0;color:#fff;border:none;white-space:nowrap;font-weight:500;transition:background 0.15s;}
.btn-files:hover{background:#0d2d5e;}
.tree-children{background:#fafbff;border-top:1px solid #edf0f7;}
.planning-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}

/* ═══════════════════════════════════════════════════════════
   SMQ EXPLORER — File manager maison NEXUS (Firebase Storage)
   ═══════════════════════════════════════════════════════════ */
.smq-explorer{background:#fff;border:1px solid rgba(13,45,94,.08);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(13,45,94,.04);margin-top:18px}
.smq-toolbar{
  display:flex;align-items:center;gap:12px;padding:14px 18px;
  border-bottom:1px solid rgba(13,45,94,.08);background:#fafbfd;flex-wrap:wrap;
}
.smq-crumbs{display:flex;align-items:center;gap:4px;flex:1;min-width:0;flex-wrap:wrap;font-size:13px;font-family:'Sora','Inter',sans-serif}
.smq-crumb{
  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;
  background:transparent;color:#6b7280;font-weight:600;cursor:pointer;
  border:none;font-size:13px;font-family:inherit;transition:all .14s;
}
.smq-crumb:hover{background:rgba(13,45,94,.06);color:#0d2d5e}
.smq-crumb.active{color:#0d2d5e;background:rgba(13,45,94,.08)}
.smq-crumb-sep{color:#cbd5e1;font-size:14px}
.smq-toolbar-actions{display:flex;align-items:center;gap:8px}
.smq-toolbar-actions input{
  width:240px;padding:8px 12px;border:1px solid rgba(13,45,94,.14);border-radius:8px;
  font-size:13px;outline:none;font-family:inherit;
}
.smq-toolbar-actions input:focus{border-color:#1a4fa0;box-shadow:0 0 0 3px rgba(26,79,160,.14)}
.smq-view-btn{
  width:34px;height:34px;border:1px solid rgba(13,45,94,.14);background:#fff;
  border-radius:8px;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .14s;
}
.smq-view-btn svg{width:15px;height:15px}
.smq-view-btn:hover{background:rgba(13,45,94,.04);color:#0d2d5e}
.smq-view-btn.active{background:#0d2d5e;border-color:#0d2d5e;color:#fff}

.smq-content{position:relative;min-height:380px;padding:18px;background:#fff}
.smq-content.dragover{background:linear-gradient(180deg,rgba(26,79,160,.06),#fff)}
.smq-drop-overlay{
  position:absolute;inset:8px;border:2.5px dashed #1a4fa0;border-radius:12px;
  background:rgba(26,79,160,.06);display:none;align-items:center;justify-content:center;
  flex-direction:column;gap:10px;z-index:5;pointer-events:none;
}
.smq-drop-overlay.visible{display:flex}
.smq-drop-text{font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:#1a4fa0;letter-spacing:.3px}
.smq-loading{padding:40px 0}
.smq-empty{padding:40px 20px}

.smq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.smq-grid.list-view{grid-template-columns:1fr;gap:4px}

/* Cards — vue grille */
.smq-card{
  background:#fff;border:1px solid rgba(13,45,94,.1);border-radius:12px;
  padding:16px 14px;cursor:pointer;transition:all .14s;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  position:relative;text-align:center;min-height:140px;
}
.smq-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(13,45,94,.1);border-color:rgba(13,45,94,.2)}
.smq-card-icon{
  width:54px;height:54px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.smq-card-icon svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.7;fill:none}
.smq-card.folder .smq-card-icon{background:linear-gradient(135deg,#FCD34D,#F59E0B);color:#fff}
.smq-card.file .smq-card-icon{background:linear-gradient(135deg,#3B6FB5,#1c4a8e);color:#fff}
.smq-card.file.pdf .smq-card-icon{background:linear-gradient(135deg,#dc2626,#ef4444)}
.smq-card.file.xlsx .smq-card-icon, .smq-card.file.xls .smq-card-icon{background:linear-gradient(135deg,#16a34a,#22c55e)}
.smq-card.file.docx .smq-card-icon, .smq-card.file.doc .smq-card-icon{background:linear-gradient(135deg,#1d4ed8,#3B6FB5)}
.smq-card.file.png .smq-card-icon, .smq-card.file.jpg .smq-card-icon, .smq-card.file.jpeg .smq-card-icon, .smq-card.file.gif .smq-card-icon{background:linear-gradient(135deg,#7c3aed,#a855f7)}
.smq-card-name{
  font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;color:#1a1a2e;
  line-height:1.35;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.smq-card-meta{font-size:10.5px;color:#9ca3af;display:flex;gap:8px;align-items:center;font-variant-numeric:tabular-nums}
.smq-card-menu{
  position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:7px;
  background:rgba(255,255,255,.85);backdrop-filter:blur(4px);border:none;cursor:pointer;
  color:#6b7280;display:none;align-items:center;justify-content:center;font-size:14px;
  font-weight:700;line-height:1;transition:all .14s;
}
.smq-card:hover .smq-card-menu{display:flex}
.smq-card-menu:hover{background:#0d2d5e;color:#fff}

/* Liste view rows */
.smq-grid.list-view .smq-card{
  flex-direction:row;align-items:center;text-align:left;min-height:auto;padding:10px 14px;gap:14px;
  border-radius:8px;
}
.smq-grid.list-view .smq-card:hover{transform:none}
.smq-grid.list-view .smq-card-icon{width:36px;height:36px;border-radius:9px}
.smq-grid.list-view .smq-card-icon svg{width:18px;height:18px}
.smq-grid.list-view .smq-card-name{font-size:13px;-webkit-line-clamp:1;flex:1;text-align:left;white-space:nowrap}
.smq-grid.list-view .smq-card-meta{flex-shrink:0}
.smq-grid.list-view .smq-card-menu{position:static;display:flex;background:transparent;width:30px;height:30px}

/* Upload progress */
.smq-upload-progress{
  position:fixed;bottom:20px;right:20px;background:#fff;border-radius:12px;
  box-shadow:0 12px 30px rgba(13,45,94,.18);border:1px solid rgba(13,45,94,.08);
  padding:14px 16px;width:320px;z-index:1500;
}
.smq-upload-item{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px solid #f1f5f9}
.smq-upload-item:last-child{border-bottom:none}
.smq-upload-name{font-size:12px;font-weight:600;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.smq-upload-bar{height:5px;background:#f3f4f6;border-radius:99px;overflow:hidden}
.smq-upload-fill{height:100%;background:linear-gradient(90deg,#0d2d5e,#1a4fa0);transition:width .2s}
.smq-upload-pct{font-size:10.5px;color:#6b7280;text-align:right;font-variant-numeric:tabular-nums}

/* ═══════ Documents SMQ — refonte « Cloud Dock » (bleu Qualipro) ═══════ */
.docs-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}
.docs-kpi{background:#fff;border:1px solid rgba(13,45,94,.09);border-radius:14px;padding:15px 16px}
.docs-kpi .ic{width:34px;height:34px;border-radius:10px;background:rgba(26,79,160,.10);color:var(--navy-600);display:flex;align-items:center;justify-content:center;margin-bottom:11px}
.docs-kpi .ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.docs-kpi .lab{font-size:11px;color:#5b6b86;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.docs-kpi .val{font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:800;margin-top:2px;letter-spacing:-.5px;color:var(--navy-800)}
.docs-kpi.accent{background:linear-gradient(135deg,var(--navy-800),var(--navy-600));border-color:transparent}
.docs-kpi.accent .ic{background:rgba(255,255,255,.18);color:#fff}
.docs-kpi.accent .lab{color:rgba(255,255,255,.82)}
.docs-kpi.accent .val{color:#fff}

.docs-sec{display:flex;align-items:center;justify-content:space-between;margin:6px 0 14px}
.docs-sec h3{font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--navy-800);display:flex;align-items:center;gap:9px;margin:0}
.docs-sec h3 .bar{width:4px;height:16px;border-radius:3px;background:linear-gradient(var(--navy-800),var(--navy-600))}
.docs-sec .cnt{font-size:11.5px;color:#93a0b8;font-weight:600}
#smq-files-sec{margin-top:24px}

/* Dossiers — forme « pochette » */
.smq-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:18px;padding-top:6px}
.smq-fold{position:relative;cursor:pointer;margin-top:12px;padding-top:0;filter:drop-shadow(0 8px 18px rgba(13,45,94,.12));transition:transform .18s}
.smq-fold:hover{transform:translateY(-3px)}
.smq-fold .fld-back{position:absolute;inset:0;background:linear-gradient(140deg,var(--navy-800),var(--navy-600));border-radius:4px 16px 16px 16px}
.smq-fold .fld-back::before{content:'';position:absolute;top:-11px;left:0;width:46%;max-width:100px;height:13px;background:var(--navy-800);border-radius:9px 9px 0 0}
/* bandeau bleu : le nom du dossier en blanc (plus de barre décorative) */
.smq-fold .fld-band{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:54px;padding:10px 8px 10px 14px}
.smq-fold .fld-band .fld-name{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.12);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.smq-fold .fld-band .fld-menu{color:rgba(255,255,255,.78)}
.smq-fold .fld-band .fld-menu:hover{background:rgba(255,255,255,.16);color:#fff}
.smq-fold .fld-sheet{position:relative;margin-top:0;background:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 -3px 12px rgba(0,0,0,.13)}
.smq-fold .fld-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.smq-fold .fld-name{font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;color:var(--navy-800);line-height:1.3;word-break:break-word}
.smq-fold .fld-meta{font-size:11.5px;color:#5b6b86;margin-top:0}
.smq-fold .fld-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.smq-fold .fld-menu{color:#93a0b8;font-size:18px;font-weight:700;line-height:.5;padding:2px 5px;cursor:pointer;background:none;border:none;border-radius:6px;flex-shrink:0}
.smq-fold .fld-menu:hover{background:#eef2f9;color:var(--navy-800)}
.smq-fold .fld-av{width:24px;height:24px;border-radius:50%;background:var(--navy-600);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:700}
.smq-fold .fld-tag{font-size:10px;font-weight:700;padding:4px 9px;border-radius:7px;background:rgba(26,79,160,.10);color:var(--navy-600)}

/* Tous les documents — table */
.smq-doctable-wrap{border:1px solid rgba(13,45,94,.09);border-radius:14px;overflow:hidden;overflow-x:auto}
.smq-doctable{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px}
.smq-doctable thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:#93a0b8;font-weight:700;padding:12px 16px;background:#fafbfd;border-bottom:1px solid rgba(13,45,94,.09)}
.smq-doctable tbody td{padding:11px 16px;border-bottom:1px solid rgba(13,45,94,.06);vertical-align:middle}
.smq-doctable tbody tr{cursor:pointer;transition:background .12s}
.smq-doctable tbody tr:hover{background:rgba(26,79,160,.06)}
.smq-doctable tbody tr:last-child td{border-bottom:none}
.smq-dt-name{display:flex;align-items:center;gap:11px;font-weight:600;color:#1a1a2e}
.smq-dt-name span{word-break:break-word}
.smq-dt-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.smq-dt-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.smq-dt-owner{display:flex;align-items:center;gap:8px;color:#5b6b86}
.smq-dt-av{width:24px;height:24px;border-radius:50%;background:var(--navy-600);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:700;flex-shrink:0}
.smq-dt-muted{color:#93a0b8;font-variant-numeric:tabular-nums;white-space:nowrap}
.smq-dt-act{opacity:0;color:#93a0b8;font-size:18px;font-weight:700;background:none;border:none;cursor:pointer;transition:.15s}
.smq-doctable tbody tr:hover .smq-dt-act{opacity:1}
.dtt-pdf{background:linear-gradient(135deg,#ef4444,#dc2626)}
.dtt-doc{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.dtt-xls{background:linear-gradient(135deg,#22c55e,#16a34a)}
.dtt-img{background:linear-gradient(135deg,#a855f7,#7c3aed)}
.dtt-other{background:linear-gradient(135deg,#64748b,#475569)}
@media(max-width:760px){.docs-kpis{grid-template-columns:repeat(2,1fr)}}

/* Modals SMQ */
.smq-modal{
  position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:rgba(13,45,94,.5);backdrop-filter:blur(6px);padding:20px;
}
.smq-modal-card{
  background:#fff;border-radius:14px;width:100%;max-width:440px;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
  animation:smqModalIn .22s cubic-bezier(.2,.9,.25,1.05);
}
@keyframes smqModalIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.smq-modal-head{
  display:flex;align-items:center;gap:10px;padding:16px 20px;
  border-bottom:1px solid #f1f5f9;
}
.smq-modal-head h3{font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:#0d2d5e;margin:0;flex:1}
.smq-modal-close{
  background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;
  width:30px;height:30px;border-radius:7px;line-height:1;
}
.smq-modal-close:hover{background:#f3f4f6;color:#0d2d5e}
.smq-modal-body{padding:18px 20px}
.smq-modal-body input{
  width:100%;padding:10px 12px;border:1px solid rgba(13,45,94,.14);border-radius:9px;
  font-size:14px;outline:none;font-family:inherit;
}
.smq-modal-body input:focus{border-color:#F97316;box-shadow:0 0 0 3px rgba(249,115,22,.14)}
.smq-modal-foot{
  display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;
  border-top:1px solid #f1f5f9;background:#fafbfd;
}
.smq-btn-primary, .smq-btn-secondary{
  padding:8px 18px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;
  font-family:inherit;border:none;transition:all .14s;
}
.smq-btn-primary{background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;box-shadow:0 3px 10px rgba(249,115,22,.32)}
.smq-btn-primary:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(249,115,22,.42)}
.smq-btn-secondary{background:#fff;color:#0d2d5e;border:1px solid rgba(13,45,94,.18)}
.smq-btn-secondary:hover{background:rgba(13,45,94,.04)}

/* ════════════════════════════════════════════════════════════════
   SMQ — affichage des items en PAGE COMPLÈTE (au lieu d'un pop-up)
   Concerne : veille (#vg-modal), archivage (#ar-modal),
   amélioration qualité (#paq-modal), compétences (#pdc-modal) et
   calendrier qualité (#qc-event-modal). Pur CSS : l'ouverture/fermeture
   JS (display flex/none) est inchangée — le pop-up devient une page.
   ════════════════════════════════════════════════════════════════ */
#vg-modal, #ar-modal, #paq-modal, #pdc-modal, #qc-event-modal{
  background:#F8FAFC !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  align-items:flex-start !important; justify-content:flex-start !important;
  padding:0 !important; overflow-y:auto !important;
}
#vg-modal .smq-modal-card, #ar-modal .smq-modal-card, #paq-modal .smq-modal-card,
#pdc-modal .smq-modal-card, #qc-event-modal .smq-modal-card{
  max-width:none !important; width:100% !important;
  border-radius:0 !important; box-shadow:none !important; background:transparent !important;
  overflow:visible !important; animation:none !important; display:flex; flex-direction:column;
}
/* En-tête : barre blanche, façon fiche dossier (retour à gauche + titre) */
#vg-modal .smq-modal-head, #ar-modal .smq-modal-head, #paq-modal .smq-modal-head,
#pdc-modal .smq-modal-head, #qc-event-modal .smq-modal-head{
  position:sticky; top:0; z-index:6; gap:14px !important;
  background:#fff !important; border-bottom:1px solid #e6ecf5 !important; padding:14px 28px !important;
}
#vg-modal .smq-modal-head > svg, #ar-modal .smq-modal-head > svg, #paq-modal .smq-modal-head > svg,
#pdc-modal .smq-modal-head > svg, #qc-event-modal .smq-modal-head > svg{ display:none !important; }
#vg-modal .smq-modal-head h3, #ar-modal .smq-modal-head h3, #paq-modal .smq-modal-head h3,
#pdc-modal .smq-modal-head h3, #qc-event-modal .smq-modal-head h3{ color:#0d2d5e !important; font-size:16px !important; order:2; }
#vg-modal .smq-modal-close, #ar-modal .smq-modal-close, #paq-modal .smq-modal-close,
#pdc-modal .smq-modal-close, #qc-event-modal .smq-modal-close{
  order:1; width:auto !important; height:36px; padding:0 15px !important; font-size:0 !important;
  background:#F1F5F9 !important; border:1px solid #e5e7eb !important; color:#0d2d5e !important;
  border-radius:9px; display:inline-flex; align-items:center; transition:background .15s;
}
#vg-modal .smq-modal-close::before, #ar-modal .smq-modal-close::before, #paq-modal .smq-modal-close::before,
#pdc-modal .smq-modal-close::before, #qc-event-modal .smq-modal-close::before{
  content:"\2190\00a0 Retour"; font-size:13px !important; font-weight:700; line-height:1;
}
#vg-modal .smq-modal-close:hover, #ar-modal .smq-modal-close:hover, #paq-modal .smq-modal-close:hover,
#pdc-modal .smq-modal-close:hover, #qc-event-modal .smq-modal-close:hover{ background:#e7edf6 !important; }
/* Corps : carte blanche centrée sur fond clair (intégrée comme un dossier) */
#vg-modal .smq-modal-body, #ar-modal .smq-modal-body, #paq-modal .smq-modal-body,
#pdc-modal .smq-modal-body, #qc-event-modal .smq-modal-body{
  max-height:none !important; overflow-y:visible !important; flex:0 0 auto;
  margin:22px 24px 0 !important; padding:30px 34px !important;
  background:#fff; border:1px solid #e8edf5; border-bottom:none; border-radius:18px 18px 0 0;
}
/* Pied d'actions : barre blanche sticky en bas, pleine largeur */
#vg-modal .smq-modal-foot, #ar-modal .smq-modal-foot, #paq-modal .smq-modal-foot,
#pdc-modal .smq-modal-foot, #qc-event-modal .smq-modal-foot{
  position:static !important; margin:0 24px 26px !important;
  background:#fff !important; border:1px solid #e8edf5 !important; border-top:1px solid #eef2f8 !important;
  border-radius:0 0 18px 18px !important; padding:16px 34px !important;
}
@media(max-width:680px){
  #vg-modal .smq-modal-body, #ar-modal .smq-modal-body, #paq-modal .smq-modal-body,
  #pdc-modal .smq-modal-body, #qc-event-modal .smq-modal-body{ margin:14px 12px 0 !important; padding:18px 16px !important; }
  #vg-modal .smq-modal-head, #ar-modal .smq-modal-head, #paq-modal .smq-modal-head,
  #pdc-modal .smq-modal-head, #qc-event-modal .smq-modal-head{ padding:12px 16px !important; }
  #vg-modal .smq-modal-foot, #ar-modal .smq-modal-foot, #paq-modal .smq-modal-foot,
  #pdc-modal .smq-modal-foot, #qc-event-modal .smq-modal-foot{ margin:0 12px 16px !important; padding:13px 16px !important; }
}

/* Réclamations et appels — même affichage PAGE COMPLÈTE que les autres modals SMQ */
#rec-modal{
  background:#F8FAFC !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  align-items:flex-start !important; justify-content:flex-start !important;
  padding:0 !important; overflow-y:auto !important;
}
#rec-modal .smq-modal-card{
  max-width:none !important; width:100% !important;
  border-radius:0 !important; box-shadow:none !important; background:transparent !important;
  overflow:visible !important; animation:none !important; display:flex; flex-direction:column;
}
#rec-modal .smq-modal-head{
  position:sticky; top:0; z-index:6; gap:14px !important;
  background:#fff !important; border-bottom:1px solid #e6ecf5 !important; padding:14px 28px !important;
}
#rec-modal .smq-modal-head > svg{ display:none !important; }
#rec-modal .smq-modal-head h3{ color:#0d2d5e !important; font-size:16px !important; order:2; }
#rec-modal .smq-modal-close{
  order:1; width:auto !important; height:36px; padding:0 15px !important; font-size:0 !important;
  background:#F1F5F9 !important; border:1px solid #e5e7eb !important; color:#0d2d5e !important;
  border-radius:9px; display:inline-flex; align-items:center; transition:background .15s;
}
#rec-modal .smq-modal-close::before{ content:"\2190\00a0 Retour"; font-size:13px !important; font-weight:700; line-height:1; }
#rec-modal .smq-modal-close:hover{ background:#e7edf6 !important; }
#rec-modal .smq-modal-body{
  max-height:none !important; overflow-y:visible !important; flex:0 0 auto;
  margin:22px 24px 0 !important; padding:30px 34px !important;
  background:#fff; border:1px solid #e8edf5; border-bottom:none; border-radius:18px 18px 0 0;
}
#rec-modal .smq-modal-foot{
  position:static !important; margin:0 24px 26px !important;
  background:#fff !important; border:1px solid #e8edf5 !important; border-top:1px solid #eef2f8 !important;
  border-radius:0 0 18px 18px !important; padding:16px 34px !important;
}
@media(max-width:680px){
  #rec-modal .smq-modal-body{ margin:14px 12px 0 !important; padding:18px 16px !important; }
  #rec-modal .smq-modal-head{ padding:12px 16px !important; }
  #rec-modal .smq-modal-foot{ margin:0 12px 16px !important; padding:13px 16px !important; }
}

/* ═══════════════════════════════════════════════════════════
   PLANNING & AUDITS — Calendrier refondu + Planning auditeurs
   ═══════════════════════════════════════════════════════════ */
.pla-cal-card{padding:22px 24px}
.pla-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:10px;flex-wrap:wrap}
.pla-cal-nav{display:flex;gap:8px;align-items:center;background:#f9fafb;padding:5px;border-radius:10px;border:1px solid #e5e7eb}
.pla-cal-arrow{
  width:32px;height:32px;border:none;background:#fff;color:#0d2d5e;
  border-radius:7px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(13,45,94,.08);transition:all .14s;
}
.pla-cal-arrow svg{width:14px;height:14px}
.pla-cal-arrow:hover{background:#0d2d5e;color:#fff;transform:translateY(-1px)}
.pla-cal-month{
  font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;
  color:#0d2d5e;min-width:160px;text-align:center;letter-spacing:-.2px;text-transform:capitalize;
}
.pla-cal-grid{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;
  background:transparent;border:none;border-radius:0;overflow:visible;
}
.pla-cal-grid .pla-cal-dow{
  font-family:'Sora','Inter',sans-serif;font-size:10.5px;font-weight:800;
  color:#9ca3af;text-align:center;padding:8px 0;letter-spacing:1.4px;text-transform:uppercase;
}
.pla-cal-grid .pla-cal-day{
  background:#fff;border:1px solid #e5e7eb;border-radius:10px;
  min-height:88px;padding:7px 8px;display:flex;flex-direction:column;gap:3px;
  transition:all .14s;position:relative;cursor:default;min-width:0;
}
/* Calendrier des audits — responsive tablette/mobile (la 7e colonne ne déborde plus) */
@media(max-width:1024px){
  .pla-cal-grid{ gap:5px; }
  .pla-cal-grid .pla-cal-day{ min-height:74px; padding:5px 6px; }
  .pla-cal-grid .pla-cal-event{ font-size:9.5px; padding:2px 5px; }
  .pla-cal-grid .pla-cal-dow{ font-size:9px; letter-spacing:.6px; }
}
@media(max-width:560px){
  .pla-cal-grid{ gap:3px; }
  .pla-cal-grid .pla-cal-day{ min-height:58px; padding:4px 4px; border-radius:8px; }
  .pla-cal-grid .pla-cal-daynum{ width:18px; height:18px; font-size:11px; }
  .pla-cal-grid .pla-cal-event{ font-size:8.5px; padding:2px 4px; }
}
.pla-cal-grid .pla-cal-day:hover{border-color:rgba(13,45,94,.18);background:#fafbfd}
.pla-cal-grid .pla-cal-day.out{background:#fafafa;opacity:.45}
.pla-cal-grid .pla-cal-day.today{
  background:linear-gradient(180deg,rgba(249,115,22,.06),#fff);
  border:2px solid #F97316;
}
.pla-cal-grid .pla-cal-daynum{
  font-family:'Sora','Inter',sans-serif;font-size:12px;font-weight:700;
  color:#0d2d5e;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;
}
.pla-cal-grid .pla-cal-day.today .pla-cal-daynum{background:#F97316;color:#fff}
.pla-cal-grid .pla-cal-day.out .pla-cal-daynum{color:#9ca3af}
.pla-cal-grid .pla-cal-event{
  display:block;font-size:10.5px;font-weight:600;line-height:1.3;
  padding:3px 7px;border-radius:5px;color:#fff;
  cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:transform .12s,filter .12s;
  border:none;text-align:left;
}
.pla-cal-grid .pla-cal-event:hover{transform:translateX(1px);filter:brightness(1.08)}
.pla-cal-grid .pla-cal-event.plan{background:linear-gradient(135deg,#0d2d5e,#1c4a8e)}
.pla-cal-grid .pla-cal-event.done{background:linear-gradient(135deg,#16a34a,#22c55e)}
.pla-cal-grid .pla-cal-more{
  font-size:10px;color:#0d2d5e;font-weight:700;text-align:center;padding:2px 0;
  background:rgba(13,45,94,.06);border-radius:5px;cursor:pointer;letter-spacing:.2px;
}
.pla-cal-grid .pla-cal-more:hover{background:rgba(13,45,94,.12)}
.pla-cal-legend{
  display:flex;gap:18px;padding:14px 0 0;font-size:11.5px;color:#6b7280;
  flex-wrap:wrap;align-items:center;border-top:1px solid #f1f5f9;margin-top:14px;
}
.pla-cal-legend span{display:inline-flex;align-items:center;gap:6px}
.pla-cal-dot{width:9px;height:9px;border-radius:50%}
.pla-cal-dot-plan{background:linear-gradient(135deg,#0d2d5e,#1c4a8e)}
.pla-cal-dot-done{background:linear-gradient(135deg,#16a34a,#22c55e)}

/* Planning auditeurs — cards */
.pla-aud-card{
  background:#fff;border:1px solid rgba(13,45,94,.08);
  border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;
  box-shadow:0 2px 8px rgba(13,45,94,.04);transition:all .18s;
}
.pla-aud-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(13,45,94,.1);border-color:rgba(13,45,94,.16)}
.pla-aud-head{display:flex;align-items:center;gap:11px}
.pla-aud-avatar{
  width:42px;height:42px;border-radius:11px;flex-shrink:0;
  background:linear-gradient(135deg,#0d2d5e,#3B6FB5);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:13px;letter-spacing:.4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
}
.pla-aud-info{flex:1;min-width:0}
.pla-aud-name{
  font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:700;color:#0d2d5e;
  margin:0;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pla-aud-role{font-size:11px;color:#9ca3af;margin-top:2px}
.pla-aud-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  padding:10px 0;border-top:1px solid rgba(13,45,94,.06);border-bottom:1px solid rgba(13,45,94,.06);
}
.pla-aud-stat{text-align:center}
.pla-aud-stat .lbl{font-size:9px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:#9ca3af;margin-bottom:2px}
.pla-aud-stat .val{font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:800;line-height:1}
.pla-aud-next{font-size:11.5px;color:#374151;line-height:1.4}
.pla-aud-next .lbl{font-size:9.5px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:#9ca3af;display:block;margin-bottom:3px}
.pla-aud-load-bar{
  height:6px;background:#f3f4f6;border-radius:99px;overflow:hidden;position:relative;
}
.pla-aud-load-fill{
  height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);
  transition:width .4s cubic-bezier(.2,.9,.25,1.05);
}
.pla-aud-load-fill.warn{background:linear-gradient(90deg,#F59E0B,#FB923C)}
.pla-aud-load-fill.full{background:linear-gradient(90deg,#dc2626,#f97316)}
.aud-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.aud-head{background:var(--dark);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px;}
.aud-av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;}
.audit-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;margin-bottom:5px;}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;z-index:1000;}
.overlay.hidden{display:none;}
.modal{background:#fff;border-radius:12px;width:min(720px,95vw);max-height:87vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,0.2);}
.modal-head{background:var(--dark);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px;border-radius:12px 12px 0 0;flex-shrink:0;}
.modal-close{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;margin-left:auto;}
.modal-search{padding:12px 20px;border-bottom:1px solid var(--border);flex-shrink:0;}
.modal-search input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:7px;font-size:13px;outline:none;}
.modal-search input:focus{border-color:var(--blue);}
.modal-body{flex:1;overflow-y:auto;padding:8px 20px 20px;}
.modal-foot{padding:10px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);flex-shrink:0;}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;padding:8px 0 12px;flex-wrap:wrap;}
.bc-btn{background:none;border:none;color:var(--blue);cursor:pointer;font-size:12px;padding:0;}
.bc-sep{color:#ccc;}
.bc-cur{color:var(--text);font-weight:500;}
.file-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;margin-bottom:4px;background:#fafafa;border:1px solid #f0f0f0;}
.file-item:hover{background:#f0f4ff;}
.file-item.is-folder{cursor:pointer;border-left:3px solid var(--blue);}
.file-ico{font-size:20px;flex-shrink:0;}
.file-info{flex:1;min-width:0;}
.file-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.file-name.folder-name{color:var(--blue);}
.file-meta{font-size:11px;color:var(--muted);margin-top:2px;}
.file-actions{display:flex;gap:6px;flex-shrink:0;}
.btn-open{font-size:12px;color:var(--blue);text-decoration:none;border:1px solid var(--blue);border-radius:6px;padding:4px 11px;background:#fff;white-space:nowrap;}
.btn-repl{font-size:12px;color:#555;background:#f0f0f0;border:1px solid #ddd;border-radius:6px;padding:4px 11px;cursor:pointer;white-space:nowrap;}
.sec-head{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;margin:12px 0 6px;}
.roverlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:2000;}
.roverlay.hidden{display:none;}
.rbox{background:#fff;border-radius:12px;padding:26px 28px;width:480px;max-width:94vw;box-shadow:0 20px 60px rgba(0,0,0,0.2);}
.drop-area{border:2px dashed #ccc;border-radius:10px;padding:32px 20px;text-align:center;cursor:pointer;transition:all 0.15s;}
.drop-area:hover,.drop-area.drag{border-color:var(--blue);background:var(--light);}
.hidden{display:none;}
.tab-content{display:none;}
.tab-content.active{display:block;animation:tabFadeSlideIn 0.3s cubic-bezier(0.4,0,0.2,1) both;}
@keyframes tabFadeSlideIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
#dos-slide-overlay{display:none !important;}
#dos-slide{display:none;position:fixed;top:0;left:260px;right:0;bottom:0;background:var(--ink-50,#F8FAFC);z-index:1500;flex-direction:column;overflow:hidden;}
#aud-slide-overlay{display:none !important;}
#aud-slide{display:none;position:fixed;top:0;left:260px;right:0;bottom:0;background:var(--ink-50,#F8FAFC);z-index:1500;flex-direction:column;overflow:hidden;}
@media(max-width:880px){#dos-slide,#aud-slide{left:0;}}
.doc-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1.5px solid #e0e7f3;border-radius:10px;text-decoration:none;color:#111;transition:all 0.15s;cursor:pointer;}
.doc-card:hover{border-color:#1a4fa0;background:#f5f8ff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(26,79,160,0.1);}
.doc-ico{width:42px;height:42px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.doc-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.doc-label{font-size:11px;color:#888;margin-top:1px;}
.mail-folder{padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;border-left:3px solid transparent;transition:all 0.1s;}
.mail-folder:hover{background:#f5f8ff;color:var(--blue);}
.mail-folder.active{background:#e8f0fb;color:var(--blue);font-weight:500;border-left-color:var(--blue);}
.mail-item{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background 0.1s;}
.mail-item:hover{background:#f5f8ff;}
.mail-item.unread{background:#f8fbff;}
.mail-item.unread .mail-from{font-weight:600;}
.mail-item.unread .mail-subject{font-weight:600;color:var(--text);}
.mail-from{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;}
.mail-subject{font-size:13px;color:#444;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mail-preview{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px;}
.mail-date{font-size:11px;color:var(--muted);white-space:nowrap;flex-shrink:0;}
#mail-slide{display:none;position:fixed;top:0;right:0;width:min(700px,100vw);height:100vh;background:#fff;z-index:3001;flex-direction:column;box-shadow:-8px 0 40px rgba(0,0,0,0.18);overflow:hidden;}
#mail-slide-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:3000;}
#compose-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:4000;align-items:center;justify-content:center;}
.compose-box{background:#fff;border-radius:12px;width:min(620px,95vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,0.2);}
.compose-head{background:var(--dark);color:#fff;padding:14px 20px;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between;}
.compose-body{flex:1;overflow-y:auto;padding:20px;}
.compose-field{margin-bottom:12px;}
.compose-field label{font-size:12px;font-weight:500;color:var(--muted);display:block;margin-bottom:4px;}
.compose-field input,.compose-field textarea{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:7px;font-size:13px;outline:none;font-family:inherit;}
.compose-field input:focus,.compose-field textarea:focus{border-color:var(--blue);}
.compose-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;}
.notif-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#c62828;border-radius:50%;border:1.5px solid #fff;}
@media(max-width:800px){#dashboard-grid{grid-template-columns:1fr!important;}}
.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}

    /* ===== VIEW CONTROL ===== */
    /* Par défaut, AUCUNE vue n'est affichée — un splash neutre couvre la page
       le temps que Firebase Auth confirme la session. Le script `_nxBootViewHint`
       ci-dessous lit localStorage et révèle la bonne vue avant le 1er paint. */
    #loginView { display: none; }
    #adminView { display: none; }
    /* Splash d'amorçage v2 « Lumière » — masqué dès qu'une vraie vue est affichée.
       Partagé par TOUTES les actualisations (admin / client / auditeur / login) :
       Q tracé blanc à pointe corail, viseur géomètre + sceau filigrane sur navy profond. */
    #nxBootSplash{
      position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;overflow:hidden;
      background:radial-gradient(ellipse 120% 90% at 50% 30%, #123669 0%, #0A2348 55%, #061634 100%);
      animation:nxBootFade .35s ease both;
    }
    #nxBootSplash.is-hidden{display:none}
    #nxBootSplash.is-closing{animation:none;opacity:0;transition:opacity .45s ease;pointer-events:none}
    #nxBootSplash .nx-boot-card{text-align:center}

    /* Zone du Q : glow corail + viseur (grille, croix, cercle) + sceau */
    #nxBootSplash .nx-boot-qzone{position:relative;width:92px;height:92px;margin:0 auto 22px}
    #nxBootSplash .nx-boot-glow{
      position:absolute;left:50%;top:50%;width:420px;height:420px;transform:translate(-50%,-50%);pointer-events:none;
      background:radial-gradient(circle, rgba(249,115,22,.13), transparent 60%);
      animation:nxBootGlow 4s ease-in-out infinite;
    }
    @keyframes nxBootGlow{0%,100%{opacity:.7}50%{opacity:1}}
    #nxBootSplash .nx-boot-bp{
      position:absolute;left:50%;top:50%;width:340px;height:340px;transform:translate(-50%,-50%);pointer-events:none;opacity:0;
      background-image:
        repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 20px),
        repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 20px);
      -webkit-mask-image:radial-gradient(circle, #000 35%, transparent 72%);
              mask-image:radial-gradient(circle, #000 35%, transparent 72%);
      animation:nxBootIn 1s .15s ease both;
    }
    @keyframes nxBootIn{to{opacity:1}}
    #nxBootSplash .nx-boot-chx{
      position:absolute;left:-70px;right:-70px;top:50%;height:1px;background:rgba(255,255,255,.13);
      transform:scaleX(0);animation:nxBootChx .7s .25s cubic-bezier(.4,0,.2,1) both;
    }
    @keyframes nxBootChx{to{transform:scaleX(1)}}
    #nxBootSplash .nx-boot-chy{
      position:absolute;top:-70px;bottom:-70px;left:50%;width:1px;background:rgba(255,255,255,.13);
      transform:scaleY(0);animation:nxBootChy .7s .4s cubic-bezier(.4,0,.2,1) both;
    }
    @keyframes nxBootChy{to{transform:scaleY(1)}}
    #nxBootSplash .nx-boot-cc{
      position:absolute;inset:-17px;border-radius:50%;border:1px dashed rgba(255,255,255,.3);opacity:0;
      animation:nxBootIn .6s .5s ease both, nxBootSpin 40s linear 1s infinite, nxBootCcDim .8s 2.3s ease forwards;
    }
    @keyframes nxBootSpin{to{transform:rotate(360deg)}}
    @keyframes nxBootCcDim{to{opacity:.14}}
    #nxBootSplash .nx-boot-seals{
      position:absolute;left:50%;top:50%;width:224px;height:224px;transform:translate(-50%,-50%);
      opacity:0;animation:nxBootIn 1.4s 1s ease both;pointer-events:none;
    }
    #nxBootSplash .nx-boot-seals circle{fill:none;transform-origin:120px 120px}
    #nxBootSplash .nx-boot-seals .s1{stroke:rgba(255,255,255,.14);stroke-width:1;stroke-dasharray:3 7;animation:nxBootSpin 70s linear infinite}
    #nxBootSplash .nx-boot-seals .s2{stroke:rgba(249,115,22,.22);stroke-width:1;stroke-dasharray:2 6;animation:nxBootSpin 90s linear infinite reverse}

    /* Q tracé (blanc) + pointe corail + micro-tampon à l'encrage */
    #nxBootSplash .nx-boot-trace{
      position:relative;width:100%;height:100%;display:block;
      filter:drop-shadow(0 14px 30px rgba(0,0,0,.45));
      transform-origin:50% 50%;animation:nxBootStamp 2.6s cubic-bezier(.34,1.56,.64,1) both;
    }
    @keyframes nxBootStamp{0%,72%{transform:scale(1)}80%{transform:scale(1.045)}90%{transform:scale(.99)}100%{transform:scale(1)}}
    #nxBootSplash .nx-boot-tp{
      fill:#fff;fill-opacity:0;
      stroke:#fff;stroke-width:78;stroke-linecap:round;stroke-linejoin:round;
      stroke-dasharray:1;stroke-dashoffset:1;
      animation:nxBootDraw 2.2s forwards;
    }
    @keyframes nxBootDraw{
      0%  {stroke-dashoffset:1;fill-opacity:0;animation-timing-function:linear}
      55% {stroke-dashoffset:0;fill-opacity:0;animation-timing-function:cubic-bezier(.45,0,.25,1)}
      85% {fill-opacity:1}
      100%{stroke-dashoffset:0;fill-opacity:1}
    }
    #nxBootSplash .nx-boot-tpc{
      fill:none;stroke:#F97316;stroke-width:92;stroke-linecap:round;
      stroke-dasharray:.05 .95;stroke-dashoffset:1.05;opacity:0;
      filter:drop-shadow(0 0 6px rgba(249,115,22,.9));
      animation:nxBootComet 2.2s forwards;
    }
    @keyframes nxBootComet{
      0%  {stroke-dashoffset:1.05;opacity:0;animation-timing-function:linear}
      3%  {opacity:1}
      55% {stroke-dashoffset:.05;opacity:1;animation-timing-function:ease}
      68% {opacity:0}
      100%{stroke-dashoffset:.05;opacity:0}
    }

    /* Wordmark : lettres révélées puis vague Respiration */
    #nxBootSplash .nx-boot-brand{
      display:flex;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:30px;
      letter-spacing:9px;color:#fff;padding-left:9px;
    }
    #nxBootSplash .nx-boot-brand i{
      font-style:normal;opacity:0;
      animation:nxBootLtIn .5s cubic-bezier(.2,.7,.3,1.2) both, nxBootWave 1.8s ease-in-out infinite;
    }
    #nxBootSplash .nx-boot-brand i:nth-child(1){animation-delay:.9s,1.5s}
    #nxBootSplash .nx-boot-brand i:nth-child(2){animation-delay:1.02s,1.62s}
    #nxBootSplash .nx-boot-brand i:nth-child(3){animation-delay:1.14s,1.74s}
    #nxBootSplash .nx-boot-brand i:nth-child(4){animation-delay:1.26s,1.86s}
    #nxBootSplash .nx-boot-brand i:nth-child(5){animation-delay:1.38s,1.98s}
    @keyframes nxBootLtIn{from{opacity:0;transform:translateY(12px)}to{opacity:.35;transform:translateY(0)}}
    @keyframes nxBootWave{0%,100%{opacity:.35}30%{opacity:1}}
    #nxBootSplash .nx-boot-sub{
      margin-top:12px;text-align:center;font-family:'Inter',system-ui,sans-serif;
      font-size:9.5px;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:700;
      opacity:0;letter-spacing:.8px;animation:nxBootSub .8s 1.7s cubic-bezier(.2,.7,.3,1) both;
    }
    @keyframes nxBootSub{from{opacity:0;letter-spacing:.8px}to{opacity:1;letter-spacing:2.2px}}

    /* Liseré : piste qui se trace puis segment corail en boucle */
    #nxBootSplash .nx-boot-line{
      position:relative;margin:26px auto 0;width:180px;height:2px;border-radius:99px;
      background:rgba(255,255,255,.16);overflow:hidden;
      transform:scaleX(0);transform-origin:left center;opacity:0;
      animation:nxBootLine .65s 2s cubic-bezier(.4,0,.2,1) both;
    }
    @keyframes nxBootLine{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
    #nxBootSplash .nx-boot-line .seg{
      position:absolute;top:0;bottom:0;left:-56px;width:56px;border-radius:99px;
      background:linear-gradient(90deg,#3B6FB5,#F97316);
      animation:nxBootSlide 1.4s cubic-bezier(.45,.05,.55,.95) 2.7s infinite;
    }
    @keyframes nxBootSlide{0%{left:-56px}100%{left:180px}}
    #nxBootSplash .nx-boot-cap{
      margin-top:18px;text-align:center;font-family:'Inter',system-ui,sans-serif;
      font-size:9.5px;letter-spacing:2.4px;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:700;
      opacity:0;animation:nxBootCap .8s 2.5s ease both;
    }
    @keyframes nxBootCap{to{opacity:.9}}
    @keyframes nxBootFade{from{opacity:0}to{opacity:1}}

    @media (max-width:640px){
      #nxBootSplash .nx-boot-brand{font-size:26px;letter-spacing:7px;padding-left:7px}
      #nxBootSplash .nx-boot-bp{width:280px;height:280px}
    }
    @media (prefers-reduced-motion: reduce){
      #nxBootSplash *{animation:none!important}
      #nxBootSplash .nx-boot-bp,#nxBootSplash .nx-boot-seals,#nxBootSplash .nx-boot-line,
      #nxBootSplash .nx-boot-sub,#nxBootSplash .nx-boot-cap,#nxBootSplash .nx-boot-brand i{opacity:1!important}
      #nxBootSplash .nx-boot-chx{transform:scaleX(1)!important}
      #nxBootSplash .nx-boot-chy{transform:scaleY(1)!important}
      #nxBootSplash .nx-boot-cc{opacity:.14!important}
      #nxBootSplash .nx-boot-line{transform:scaleX(1)!important}
      #nxBootSplash .nx-boot-tp{stroke-dashoffset:0;fill-opacity:1}
      #nxBootSplash .nx-boot-tpc{display:none}
    }
    /* ══════════════════════════════════════════════════════════
       ESPACE CLIENT v3 — DA Confiance (ivoire + glass + Sora)
       Navy #0d2d5e · Coral #F97316 · Sora/Inter · matches login v9
       All rules scoped under #clientView to avoid CRM side-effects.
       ══════════════════════════════════════════════════════════ */
    #clientView{ display:none; }
    #clientView.is-active{ display:block; }

    /* ── Tokens ── */
    #clientView{
      --clv-bg:#E8E4DB;
      --clv-bg-2:#DCD6CA;
      --clv-paper:rgba(255,255,255,.84);
      --clv-paper-solid:#fff;
      --clv-ink:#1A2742;
      --clv-ink-2:#0f1a2e;
      --clv-muted:#8A8273;
      --clv-navy:#0d2d5e;
      --clv-navy-2:#1C4A8E;
      --clv-navy-soft:#3B6FB5;
      --clv-coral:#F97316;
      --clv-coral-2:#EA580C;
      --clv-green:#6A8F5A;
      --clv-green-2:#16A34A;
      --clv-amber:#C9943E;
      --clv-amber-2:#D97706;
      --clv-red:#C43C3C;
      --clv-line:rgba(13,45,94,.08);
      --clv-shadow-card:0 10px 28px rgba(13,45,94,.08);
      --clv-shadow-hover:0 18px 44px rgba(13,45,94,.14);
      min-height:100vh;
      background:var(--clv-bg);
      color:var(--clv-ink);
      font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
      letter-spacing:.1px;
      position:relative;
      height:100vh;
      overflow:hidden;
    }
    #clientView *{ box-sizing:border-box; }

    /* ── Ambient background : blobs + grain (inherited from login v9) ── */
    #clientView .clv-blob{
      position:fixed;border-radius:50%;filter:blur(90px);
      opacity:.4;pointer-events:none;z-index:0;
      animation:clvBlob 22s ease-in-out infinite;
    }
    #clientView .clv-blob.a{width:540px;height:540px;top:-180px;left:-140px;background:#F5EFE2}
    #clientView .clv-blob.b{width:620px;height:620px;bottom:-220px;right:-170px;background:rgba(13,45,94,.16);animation-delay:-10s}
    #clientView .clv-blob.c{width:300px;height:300px;top:45%;left:60%;background:rgba(249,115,22,.1);animation-delay:-6s}
    @keyframes clvBlob{
      0%,100%{transform:translate(0,0) scale(1)}
      50%    {transform:translate(20px,-20px) scale(1.08)}
    }
    #clientView .clv-grain{
      position:fixed;inset:0;pointer-events:none;z-index:1;
      opacity:.04;mix-blend-mode:multiply;
      background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
      background-size:180px 180px;
    }

    /* ── Shell : sidebar + main ── */
    #clientView .clv-shell{
      position:relative;z-index:2;
      display:grid;grid-template-columns:240px 1fr;
      height:100vh;
      overflow:hidden;
    }

    /* ══════════════ SIDEBAR (static, always visible) ══════════════ */
    #clientView .clv-sidebar{
      position:relative;z-index:5;
      height:100vh;max-height:100vh;
      overflow-y:auto;
      background:var(--clv-navy);
      color:#fff;
      padding:22px 16px 18px;
      display:flex;flex-direction:column;gap:14px;
      border-right:1px solid rgba(255,255,255,.06);
      box-shadow:4px 0 24px rgba(13,45,94,.14);
    }
    /* Sidebar : scrollbar discrète */
    #clientView .clv-sidebar::-webkit-scrollbar{width:4px}
    #clientView .clv-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
    #clientView .clv-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
    #clientView .clv-brand{
      display:flex;align-items:center;gap:12px;padding:6px 8px 16px;
      border-bottom:1px solid rgba(255,255,255,.1);
    }
    #clientView .clv-brand-mark{
      width:44px;height:44px;border-radius:12px;
      background:#fff;display:flex;align-items:center;justify-content:center;
      box-shadow:0 6px 16px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.95);
      overflow:hidden;flex-shrink:0;
    }
    #clientView .clv-brand-mark svg{width:30px;height:30px}
    #clientView .clv-brand-text b{
      font-family:'Sora','Inter',sans-serif;
      display:block;font-size:14px;letter-spacing:4px;font-weight:800;color:#fff;
    }
    #clientView .clv-brand-text span{
      display:block;margin-top:3px;font-size:9.5px;
      color:rgba(255,255,255,.55);letter-spacing:1.4px;text-transform:uppercase;font-weight:600;
    }
    #clientView .clv-nav-label{
      font-size:9.5px;letter-spacing:2px;text-transform:uppercase;
      color:rgba(255,255,255,.42);margin:10px 6px 4px;font-weight:700;
    }
    #clientView .clv-nav{display:flex;flex-direction:column;gap:3px;flex-grow:1}
    #clientView .clv-nav .nav-tab{
      position:relative;display:flex;align-items:center;gap:11px;
      padding:11px 12px;border-radius:10px;cursor:pointer;
      color:rgba(255,255,255,.72);font-size:13px;font-weight:500;letter-spacing:.1px;
      background:transparent;border:none;width:100%;text-align:left;
      font-family:inherit;
      transition:background .18s, color .18s, transform .18s;
    }
    #clientView .clv-nav .nav-tab svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.9;fill:none;flex-shrink:0}
    #clientView .clv-nav .nav-tab span:not(.msg-badge){flex-grow:1}
    #clientView .clv-nav .nav-tab:hover{background:rgba(255,255,255,.07);color:#fff}
    #clientView .clv-nav .nav-tab.active{
      background:rgba(255,255,255,.13);color:#fff;font-weight:600;
    }
    #clientView .clv-nav .nav-tab.active::before{
      content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:3px;
      background:var(--clv-coral);border-radius:3px;box-shadow:0 0 8px rgba(249,115,22,.6);
    }
    #clientView .clv-nav .msg-badge{
      background:var(--clv-coral);color:#fff;font-size:10px;font-weight:700;
      padding:2px 7px;border-radius:999px;margin-left:auto;
      box-shadow:0 2px 6px rgba(249,115,22,.4);
    }
    #clientView .clv-side-foot{
      padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
      display:flex;flex-direction:column;gap:10px;
    }
    #clientView .clv-side-user{
      display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;
      background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);
    }
    #clientView .clv-side-user .user-avatar{
      width:32px;height:32px;border-radius:50%;
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2));
      color:#fff;font-weight:700;font-size:12px;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
    }
    #clientView .clv-side-user .clv-side-name{
      font-size:12.5px;font-weight:600;color:#fff;line-height:1.2;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    #clientView .clv-side-user .clv-side-role{
      font-size:10px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:1px;margin-top:2px;
    }
    #clientView .btn-logout{
      background:rgba(255,255,255,.07);color:rgba(255,255,255,.85);
      border:1px solid rgba(255,255,255,.12);
      padding:9px 14px;border-radius:10px;
      font-size:12.5px;font-weight:600;cursor:pointer;
      display:inline-flex;align-items:center;gap:8px;justify-content:center;
      transition:all .18s;font-family:inherit;
    }
    #clientView .btn-logout:hover{
      background:var(--clv-coral);color:#fff;border-color:var(--clv-coral);
    }

    /* ══════════════ MAIN (scrolls independently) ══════════════ */
    #clientView .clv-main{
      position:relative;min-width:0;
      height:100vh;max-height:100vh;
      overflow-y:auto;overflow-x:hidden;
      padding:28px 36px 48px;
      scroll-behavior:smooth;
    }
    #clientView .clv-main::-webkit-scrollbar{width:10px}
    #clientView .clv-main::-webkit-scrollbar-track{background:transparent}
    #clientView .clv-main::-webkit-scrollbar-thumb{
      background:rgba(13,45,94,.18);border-radius:5px;
      border:2px solid transparent;background-clip:padding-box;
    }
    #clientView .clv-main::-webkit-scrollbar-thumb:hover{background:rgba(13,45,94,.32);background-clip:padding-box;border:2px solid transparent}

    /* Hidden notif badge (JS-compat placeholder) */
    #clientView .notif-count{
      position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;
      border-radius:9px;background:var(--clv-coral);color:#fff;font-size:10px;font-weight:700;
      display:flex;align-items:center;justify-content:center;
      box-shadow:0 2px 6px rgba(249,115,22,.4);
    }
    /* Floating mobile burger (fixed to viewport so it doesn't scroll) */
    #clientView .clv-mobile-burger{
      display:none;position:fixed;top:16px;left:16px;z-index:100;
      width:42px;height:42px;border-radius:12px;
      background:rgba(255,255,255,.9);backdrop-filter:blur(14px);
      border:1px solid rgba(255,255,255,.9);cursor:pointer;
      align-items:center;justify-content:center;color:var(--clv-navy);
      box-shadow:0 6px 14px rgba(13,45,94,.16);
    }
    #clientView .clv-mobile-burger svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.2;fill:none}

    /* Panels */
    #clientView .tab-panel{display:none}
    #clientView .tab-panel.active{display:block;animation:clvFadeIn .4s cubic-bezier(.2,.9,.25,1.05)}
    @keyframes clvFadeIn{
      from{opacity:0;transform:translateY(10px)}
      to  {opacity:1;transform:translateY(0)}
    }

    /* ══════════════ GLASS CARD (base) ══════════════ */
    #clientView .card,
    #clientView .clv-card{
      position:relative;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:20px;padding:22px 24px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      margin-bottom:18px;
    }
    #clientView .card-header{margin-bottom:16px}
    #clientView .card-header h3{
      font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:700;
      color:var(--clv-ink);margin:0 0 4px;letter-spacing:-.3px;
    }
    #clientView .card-header p{font-size:12.5px;color:var(--clv-muted);margin:0;line-height:1.5}

    /* ══════════════ DASHBOARD HERO (wow) ══════════════ */
    #clientView .clv-hero{
      position:relative;overflow:hidden;
      border-radius:24px;padding:36px 40px 32px;margin-bottom:22px;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 55%,#3B6FB5 100%);
      color:#fff;
      box-shadow:0 24px 60px rgba(13,45,94,.28);
      min-height:220px;
      display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;
    }
    #clientView .clv-hero::before{
      content:"";position:absolute;top:-40%;right:-10%;
      width:380px;height:380px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.32) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-hero::after{
      content:"";position:absolute;bottom:-60%;left:-8%;
      width:320px;height:320px;border-radius:50%;
      background:radial-gradient(circle, rgba(59,111,181,.35) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-hero-left{position:relative;z-index:1}
    #clientView .clv-hero-eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:7px 14px;border-radius:999px;
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.18);
      font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;
      color:rgba(255,255,255,.92);margin-bottom:14px;
      backdrop-filter:blur(10px);
    }
    #clientView .clv-hero-eyebrow .dot{
      width:6px;height:6px;border-radius:50%;background:var(--clv-coral);
      box-shadow:0 0 8px var(--clv-coral);
      animation:clvDot 2s ease-in-out infinite;
    }
    @keyframes clvDot{50%{opacity:.6}}
    #clientView .clv-hero h1{
      font-family:'Sora','Inter',sans-serif;
      font-size:34px;font-weight:700;letter-spacing:-.8px;line-height:1.1;
      margin:0 0 8px;color:#fff;
    }
    #clientView .clv-hero h1 span{color:var(--clv-coral);font-weight:600}
    #clientView .clv-hero p{
      font-size:14.5px;color:rgba(255,255,255,.82);
      margin:0 0 18px;max-width:540px;line-height:1.55;
    }
    #clientView .clv-hero-actions{
      display:flex;gap:10px;flex-wrap:wrap;
    }
    #clientView .client-hero-btn,
    #clientView .clv-hero-btn{
      display:inline-flex;align-items:center;gap:8px;
      padding:11px 20px;border-radius:12px;cursor:pointer;
      font-size:13px;font-weight:700;letter-spacing:.2px;font-family:inherit;
      background:rgba(255,255,255,.13);color:#fff;
      border:1px solid rgba(255,255,255,.22);
      text-decoration:none;
      transition:all .18s;
      backdrop-filter:blur(10px);
    }
    #clientView .client-hero-btn svg,#clientView .clv-hero-btn svg{width:16px;height:16px}
    #clientView .client-hero-btn:hover,#clientView .clv-hero-btn:hover{
      background:rgba(255,255,255,.22);transform:translateY(-1px);
    }
    #clientView .client-hero-btn.primary,#clientView .clv-hero-btn.primary{
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2));
      border-color:transparent;
      box-shadow:0 10px 24px rgba(249,115,22,.4);
    }
    #clientView .client-hero-btn.primary:hover,#clientView .clv-hero-btn.primary:hover{
      box-shadow:0 14px 30px rgba(249,115,22,.55);
    }

    /* Hero visual: conic ring + Q logo */
    #clientView .clv-hero-mark{
      position:relative;z-index:1;
      width:170px;height:170px;
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
    #clientView .clv-hero-mark .ring{
      position:absolute;inset:0;border-radius:50%;
      background:conic-gradient(from 0deg,rgba(249,115,22,.9),rgba(255,255,255,.1),rgba(249,115,22,.9));
      -webkit-mask:radial-gradient(circle, transparent 58%, #000 60%);
              mask:radial-gradient(circle, transparent 58%, #000 60%);
      animation:clvRing 6s linear infinite;
    }
    @keyframes clvRing{to{transform:rotate(360deg)}}
    #clientView .clv-hero-mark .disc{
      position:absolute;inset:16px;border-radius:50%;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.22);
      backdrop-filter:blur(14px);
    }
    #clientView .clv-hero-mark svg{
      position:relative;z-index:2;width:80px;height:80px;
      filter:drop-shadow(0 4px 16px rgba(0,0,0,.35));
    }

    /* ══════════════ KPI CARDS ══════════════ */
    #clientView .stats-row{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;
    }
    #clientView .stat-card{
      position:relative;overflow:hidden;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:18px;padding:18px 20px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      display:flex;gap:14px;align-items:flex-start;
      transition:transform .25s cubic-bezier(.2,.9,.25,1.05), box-shadow .25s;
      animation:clvStatIn .55s cubic-bezier(.2,.9,.25,1.2) both;
    }
    #clientView .stats-row .stat-card:nth-child(1){animation-delay:.05s}
    #clientView .stats-row .stat-card:nth-child(2){animation-delay:.12s}
    #clientView .stats-row .stat-card:nth-child(3){animation-delay:.19s}
    #clientView .stats-row .stat-card:nth-child(4){animation-delay:.26s}
    @keyframes clvStatIn{
      from{opacity:0;transform:translateY(14px) scale(.97)}
      to  {opacity:1;transform:none}
    }
    #clientView .stat-card:hover{
      transform:translateY(-2px);
      box-shadow:var(--clv-shadow-hover),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .stat-card::after{
      content:"";position:absolute;top:-30%;right:-10%;
      width:140px;height:140px;border-radius:50%;
      background:radial-gradient(circle, rgba(13,45,94,.06) 0%, transparent 70%);
      pointer-events:none;
    }
    #clientView .stat-icon{
      width:46px;height:46px;border-radius:12px;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      background:rgba(13,45,94,.08);color:var(--clv-navy);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
    }
    #clientView .stat-icon svg{width:22px;height:22px}
    #clientView .stat-info{flex:1;min-width:0;position:relative;z-index:1}
    #clientView .stat-info h4{
      font-size:10.5px;font-weight:700;color:var(--clv-muted);
      margin:0 0 6px;text-transform:uppercase;letter-spacing:1.2px;
    }
    #clientView .stat-value{
      font-family:'Sora','Inter',sans-serif;
      font-size:28px;font-weight:800;color:var(--clv-ink);line-height:1;letter-spacing:-.8px;
    }
    #clientView .stat-sub{font-size:11px;color:var(--clv-muted);margin-top:5px;font-weight:500}

    /* ══════════════ CLIENT INFO CARDS (dashboard) ══════════════ */
    #clientView #clientInfoCards{
      display:grid;grid-template-columns:repeat(auto-fit, minmax(300px,1fr));gap:16px;
      margin-bottom:22px;
    }
    #clientView .client-info-card{
      position:relative;overflow:hidden;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:18px;padding:18px 20px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .client-info-header{
      display:flex;align-items:center;gap:10px;
      font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:700;letter-spacing:.2px;
      padding-bottom:12px;margin-bottom:12px;
      border-bottom:1px dashed rgba(13,45,94,.14);
      color:var(--clv-navy);
    }
    #clientView .client-info-header svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}
    #clientView .info-header-green{color:var(--clv-green)}
    #clientView .info-header-orange{color:var(--clv-coral-2)}
    #clientView .info-header-blue{color:var(--clv-navy)}
    #clientView .info-card-green .client-info-header{border-bottom-color:rgba(106,143,90,.25)}
    #clientView .info-card-orange .client-info-header{border-bottom-color:rgba(249,115,22,.2)}
    #clientView .client-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
    @media(max-width:700px){#clientView .client-info-grid{grid-template-columns:1fr}}
    #clientView .client-info-grid .info-item,
    #clientView .client-info-grid > div{
      display:flex;flex-direction:column;gap:3px;
    }
    #clientView .client-info-grid label,
    #clientView .client-info-grid .info-label{
      font-size:10px;color:var(--clv-muted);font-weight:700;text-transform:uppercase;letter-spacing:1px;
    }
    #clientView .client-info-grid .info-value,
    #clientView .client-info-grid span{font-size:13px;color:var(--clv-ink);font-weight:500}

    /* ══════════════ RECENT ACTIVITY (dashboard) ══════════════ */
    #clientView #recentActivity > div{
      padding:14px 0 !important;border-bottom:1px dashed rgba(13,45,94,.12) !important;
    }
    #clientView #recentActivity > div:last-child{border-bottom:none !important}

    /* ══════════════ DOCUMENTS ══════════════ */
    #clientView .docs-header{
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:18px;padding:18px 22px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
      margin-bottom:16px;
    }
    #clientView .docs-header-icon{
      width:50px;height:50px;border-radius:14px;
      background:linear-gradient(135deg,var(--clv-navy),var(--clv-navy-2));
      color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;
      box-shadow:0 8px 20px rgba(13,45,94,.25);
    }
    #clientView .docs-header-left{display:flex;align-items:center;gap:14px}
    #clientView .docs-header-left h3{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;color:var(--clv-ink);margin:0;letter-spacing:-.2px;
    }
    #clientView .docs-header-left p{font-size:12px;color:var(--clv-muted);margin:2px 0 0}
    #clientView .docs-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    #clientView .docs-search{position:relative;display:inline-flex;align-items:center}
    #clientView .docs-search svg{
      position:absolute;top:50%;left:14px;transform:translateY(-50%);
      color:var(--clv-muted);stroke-width:2;pointer-events:none;
      width:15px;height:15px;z-index:1;
    }
    #clientView .docs-search input{
      padding:10px 14px 10px 40px;border:1px solid rgba(13,45,94,.14);border-radius:12px;
      font-size:13px;outline:none;width:260px;background:rgba(255,255,255,.7);
      font-family:inherit;transition:all .18s;color:var(--clv-ink);line-height:1.3;
    }
    #clientView .docs-search input:focus{
      border-color:rgba(13,45,94,.35);background:#fff;
      box-shadow:0 0 0 3px rgba(13,45,94,.1);
    }
    #clientView .docs-view-toggle{
      display:flex;gap:2px;padding:3px;border-radius:12px;
      background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.08);
    }
    #clientView .docs-view-btn{
      padding:8px 10px;border:none;border-radius:9px;background:transparent;cursor:pointer;
      color:var(--clv-muted);transition:all .15s;display:flex;align-items:center;justify-content:center;
    }
    #clientView .docs-view-btn:hover{color:var(--clv-ink)}
    #clientView .docs-view-btn.active{background:#fff;color:var(--clv-navy);box-shadow:0 2px 6px rgba(13,45,94,.12)}
    #clientView .docs-stats-row{
      display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;
    }
    #clientView .docs-stat-chip{
      display:flex;align-items:center;gap:10px;
      padding:10px 14px;border-radius:14px;min-width:120px;
      background:var(--clv-paper);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.9);
      box-shadow:0 4px 12px rgba(13,45,94,.06),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .docs-stat-chip .chip-icon{
      width:36px;height:36px;border-radius:10px;
      display:flex;align-items:center;justify-content:center;color:#fff;
      font-size:10px;font-weight:800;letter-spacing:.5px;
      box-shadow:0 4px 10px rgba(0,0,0,.12);
    }
    #clientView .docs-stat-chip .chip-count{
      font-family:'Sora','Inter',sans-serif;
      font-size:18px;font-weight:800;color:var(--clv-ink);line-height:1;letter-spacing:-.3px;
    }
    #clientView .docs-stat-chip .chip-label{
      font-size:11px;color:var(--clv-muted);margin-top:2px;font-weight:600;
    }
    #clientView .doc-folder{
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:18px;padding:18px 20px;margin-bottom:14px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .doc-folder-title{
      display:flex;align-items:center;gap:10px;
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:var(--clv-ink);
      margin-bottom:14px;
    }
    #clientView .folder-badge{
      width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
    }
    #clientView .folder-count{
      margin-left:auto;font-size:11px;color:var(--clv-muted);font-weight:600;
      padding:3px 9px;border-radius:999px;background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.08);
    }
    #clientView .doc-grid{
      display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;
    }
    #clientView .doc-grid.list-view{grid-template-columns:1fr}
    #clientView .doc-item{
      display:flex;flex-direction:column;padding:16px;
      background:#fff;border:1px solid rgba(13,45,94,.09);
      border-radius:16px;cursor:pointer;
      transition:transform .18s cubic-bezier(.2,.9,.25,1.05),box-shadow .18s,border-color .18s;
      animation:clvDocIn .4s both;
      box-shadow:0 4px 14px rgba(13,45,94,.06);
    }
    @keyframes clvDocIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
    #clientView .doc-item:hover{
      transform:translateY(-3px);
      box-shadow:0 14px 30px rgba(13,45,94,.14);border-color:rgba(249,115,22,.55);
    }
    #clientView .doc-card-head{display:flex;align-items:flex-start;gap:12px;}
    #clientView .doc-icon{
      width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
      color:#fff;font-weight:800;font-size:11px;letter-spacing:.5px;flex-shrink:0;
      box-shadow:0 5px 12px rgba(13,45,94,.18);
    }
    #clientView .doc-icon.pdf{background:linear-gradient(135deg,#DC2626,#F87171)}
    #clientView .doc-icon.doc{background:linear-gradient(135deg,#2563EB,#60A5FA)}
    #clientView .doc-icon.xls{background:linear-gradient(135deg,#16A34A,#4ADE80)}
    #clientView .doc-icon.img{background:linear-gradient(135deg,#9333EA,#C084FC)}
    #clientView .doc-icon.other{background:linear-gradient(135deg,#6B7280,#9CA3AF)}
    #clientView .doc-info{flex:1;min-width:0}
    #clientView .doc-name{
      font-size:13.5px;font-weight:600;color:var(--clv-ink);line-height:1.35;
      display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    }
    #clientView .doc-chips{margin-top:7px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
    #clientView .doc-type-chip{
      display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.3px;
      padding:3px 9px;border-radius:999px;background:rgba(13,45,94,.07);color:var(--clv-navy);
    }
    #clientView .doc-type-chip.pdf{background:rgba(220,38,38,.09);color:#B91C1C}
    #clientView .doc-type-chip.doc{background:rgba(37,99,235,.09);color:#1D4ED8}
    #clientView .doc-type-chip.xls{background:rgba(22,163,74,.10);color:#15803D}
    #clientView .doc-type-chip.img{background:rgba(147,51,234,.10);color:#7E22CE}
    #clientView .doc-admin-badge{
      display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;
      padding:3px 9px;border-radius:999px;background:#dbeafe;color:#1e40af;
    }
    #clientView .doc-card-foot{
      margin-top:14px;padding-top:12px;border-top:1px solid rgba(13,45,94,.07);
      display:flex;align-items:center;justify-content:space-between;gap:8px;
    }
    #clientView .doc-date{
      font-size:11.5px;color:var(--clv-muted);font-weight:500;display:inline-flex;align-items:center;gap:5px;
    }
    #clientView .doc-open-btn{
      display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
      padding:7px 13px;border-radius:10px;background:var(--clv-navy);color:#fff;flex-shrink:0;
      transition:background .15s;
    }
    #clientView .doc-item:hover .doc-open-btn{background:#F97316}

    /* ══════════════ PARCOURS : CERTIFICAT + TIMELINE ══════════════ */
    #clientView .certif-card{
      position:relative;overflow:hidden;
      padding:28px 30px;border-radius:22px;color:#fff;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 60%,#3B6FB5 100%);
      box-shadow:0 20px 50px rgba(13,45,94,.28);
      margin-bottom:18px;
    }
    #clientView .certif-card::before{
      content:"";position:absolute;top:-40%;right:-10%;
      width:380px;height:380px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.28) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .certif-header{
      display:flex;align-items:center;gap:16px;margin-bottom:18px;position:relative;z-index:1;
    }
    #clientView .certif-seal{
      width:64px;height:64px;border-radius:18px;
      background:rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.25);
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      backdrop-filter:blur(12px);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
    }
    #clientView .certif-seal svg{width:32px;height:32px;stroke:#fff;stroke-width:1.8}
    #clientView .certif-title h3{
      font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:700;margin:0;letter-spacing:-.3px;color:#fff;
    }
    #clientView .certif-title p{font-size:12.5px;color:rgba(255,255,255,.78);margin:3px 0 0}
    #clientView .certif-status{
      padding:6px 14px;border-radius:999px;
      font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:1px;
      backdrop-filter:blur(10px);
    }
    #clientView .certif-status.valid{
      background:rgba(106,143,90,.3);color:#E8F5DF;border:1px solid rgba(106,143,90,.5);
      box-shadow:0 0 20px rgba(106,143,90,.3);
    }
    #clientView .certif-status.expiring{
      background:rgba(201,148,62,.3);color:#FEEFD6;border:1px solid rgba(201,148,62,.5);
    }
    #clientView .certif-status.expired{
      background:rgba(196,60,60,.3);color:#FFE3E3;border:1px solid rgba(196,60,60,.5);
    }
    #clientView .certif-details{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px;
      position:relative;z-index:1;
    }
    #clientView .certif-detail-item{
      display:flex;flex-direction:column;gap:4px;
      padding:12px 14px;border-radius:12px;
      background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
      backdrop-filter:blur(10px);
    }
    #clientView .certif-detail-item label{
      font-size:10px;color:rgba(255,255,255,.65);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;
    }
    #clientView .certif-detail-item span{font-size:13.5px;font-weight:600;color:#fff}

    /* Timeline */
    #clientView .timeline{position:relative;padding-left:28px}
    #clientView .timeline::before{
      content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;
      background:linear-gradient(180deg,rgba(13,45,94,.2),rgba(13,45,94,.05));
      border-radius:2px;
    }
    #clientView .timeline-item{
      position:relative;padding:14px 0 14px 18px;
      border-bottom:1px dashed rgba(13,45,94,.12);
    }
    #clientView .timeline-item:last-child{border-bottom:none}
    #clientView .timeline-dot{
      position:absolute;left:-28px;top:18px;
      width:26px;height:26px;border-radius:50%;
      display:flex;align-items:center;justify-content:center;
      background:#fff;border:2px solid rgba(13,45,94,.16);
      box-shadow:0 4px 10px rgba(13,45,94,.08);
      color:var(--clv-muted);
    }
    #clientView .timeline-dot svg{width:12px;height:12px;stroke:currentColor}
    #clientView .timeline-dot.done{
      background:var(--clv-green);border-color:var(--clv-green);color:#fff;
      box-shadow:0 0 0 4px rgba(106,143,90,.18),0 4px 10px rgba(106,143,90,.25);
    }
    #clientView .timeline-dot.upcoming{
      background:var(--clv-coral);border-color:var(--clv-coral);color:#fff;
      box-shadow:0 0 0 4px rgba(249,115,22,.18),0 4px 10px rgba(249,115,22,.25);
      animation:clvTimelinePulse 2.4s ease-in-out infinite;
    }
    @keyframes clvTimelinePulse{
      0%,100%{box-shadow:0 0 0 4px rgba(249,115,22,.18),0 4px 10px rgba(249,115,22,.25)}
      50%    {box-shadow:0 0 0 8px rgba(249,115,22,.1),0 4px 10px rgba(249,115,22,.25)}
    }
    #clientView .timeline-date{
      font-size:11px;color:var(--clv-muted);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;margin-bottom:5px;
    }
    #clientView .timeline-content h4{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--clv-ink);
      margin:0 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;letter-spacing:-.1px;
    }
    #clientView .timeline-content p{font-size:12.5px;color:var(--clv-muted);margin:0;line-height:1.55}

    /* ══════════════ LIENS UTILES ══════════════ */
    #clientView #panel-liens .card{padding:22px 24px}
    #clientView #panel-liens a[style*="text-decoration:none"]{
      text-decoration:none !important;
      background:rgba(255,255,255,.6) !important;
      border:1px solid rgba(13,45,94,.1) !important;
      border-radius:14px !important;
    }

    /* ══════════════ MESSAGES ══════════════ */
    #clientView #panel-messages .card{padding:0;overflow:hidden}
    #clientView #panel-messages .card-header{padding:20px 24px;margin-bottom:0;border-bottom:1px solid rgba(13,45,94,.1)}
    #clientView .msg-container{display:flex;flex-direction:column;gap:14px;padding:0 24px 20px}
    #clientView .msg-list{
      max-height:520px;overflow-y:auto;padding:20px 0 8px;
      display:flex;flex-direction:column;gap:10px;
    }
    #clientView .msg-list::-webkit-scrollbar{width:6px}
    #clientView .msg-list::-webkit-scrollbar-thumb{background:rgba(13,45,94,.15);border-radius:3px}
    #clientView .msg-bubble{
      max-width:72%;padding:11px 14px;border-radius:16px;
      font-size:13px;line-height:1.5;word-wrap:break-word;
      animation:clvMsgIn .3s cubic-bezier(.2,.9,.25,1.05);
      position:relative;
    }
    @keyframes clvMsgIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
    #clientView .msg-bubble.received{
      align-self:flex-start;
      background:rgba(255,255,255,.8);
      border:1px solid rgba(13,45,94,.08);
      color:var(--clv-ink);border-bottom-left-radius:6px;
      box-shadow:0 2px 6px rgba(13,45,94,.06);
    }
    #clientView .msg-bubble.sent{
      align-self:flex-end;
      background:linear-gradient(135deg,var(--clv-navy),var(--clv-navy-2));
      color:#fff;border-bottom-right-radius:6px;
      box-shadow:0 4px 12px rgba(13,45,94,.25);
    }
    #clientView .msg-sender{
      font-size:10.5px;font-weight:700;color:var(--clv-coral-2);letter-spacing:.8px;text-transform:uppercase;
      margin-bottom:4px;
    }
    #clientView .msg-time{font-size:10px;color:var(--clv-muted);margin-top:4px;font-weight:500}
    #clientView .msg-bubble.sent .msg-time{color:rgba(255,255,255,.7)}
    #clientView .msg-date-separator{
      align-self:center;padding:4px 12px;border-radius:999px;
      background:rgba(13,45,94,.06);color:var(--clv-muted);
      font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
      margin:8px 0 4px;
    }
    #clientView .msg-input-area{
      display:flex;gap:10px;padding-top:14px;border-top:1px solid rgba(13,45,94,.1);
    }
    #clientView .msg-input-area textarea{
      flex:1;padding:12px 14px;border:1px solid rgba(13,45,94,.14);border-radius:12px;
      font-size:13px;outline:none;font-family:inherit;resize:none;
      background:rgba(255,255,255,.7);color:var(--clv-ink);
      transition:all .18s;
    }
    #clientView .msg-input-area textarea:focus{
      border-color:rgba(13,45,94,.35);background:#fff;box-shadow:0 0 0 3px rgba(13,45,94,.1);
    }
    #clientView .msg-input-area .btn-primary{
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2)) !important;
      border:none;color:#fff;border-radius:12px;cursor:pointer;padding:12px 20px;
      display:inline-flex;align-items:center;justify-content:center;
      box-shadow:0 6px 14px rgba(249,115,22,.32);
      transition:all .18s;
    }
    #clientView .msg-input-area .btn-primary:hover{
      transform:translateY(-1px);box-shadow:0 10px 20px rgba(249,115,22,.42);
    }

    /* ══════════════ EMPTY STATE ══════════════ */
    #clientView .empty-state{
      text-align:center;padding:40px 20px;color:var(--clv-muted);
    }
    #clientView .empty-state svg{
      width:56px;height:56px;stroke:var(--clv-muted);stroke-width:1.5;fill:none;
      margin-bottom:14px;opacity:.55;
    }
    #clientView .empty-state h4{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--clv-ink);
      margin:0 0 4px;
    }
    #clientView .empty-state p{font-size:12.5px;color:var(--clv-muted);margin:0;line-height:1.55}

    /* ══════════════ LOADING SPINNER ══════════════ */
    #clientView .loading-spinner{padding:28px;display:flex;justify-content:center}
    #clientView .spinner{
      width:32px;height:32px;border-radius:50%;
      border:3px solid rgba(13,45,94,.08);border-top-color:var(--clv-coral);
      animation:clvSpin .8s linear infinite;
    }
    @keyframes clvSpin{to{transform:rotate(360deg)}}

    /* ══════════════ MODAL (reset password) ══════════════ */
    #clientView .modal-overlay{
      position:fixed;inset:0;background:rgba(13,45,94,.45);backdrop-filter:blur(6px);
      display:none;align-items:center;justify-content:center;z-index:9000;
    }
    #clientView .modal-overlay.show{display:flex}
    #clientView .modal{
      background:#fff;border-radius:18px;padding:26px 28px;max-width:440px;width:calc(100% - 32px);
      box-shadow:0 32px 80px rgba(13,45,94,.35);
    }

    /* ══════════════════════════════════════════════════════════
       ESPACE CLIENT v3.1 — Dashboard premium overhaul
       ══════════════════════════════════════════════════════════ */

    /* Hero layout — left text column + right certif status card */
    #clientView .clv-hero{
      grid-template-columns:1.2fr 1fr;
      min-height:260px;
      padding:32px 36px;
    }

    /* ── CERTIF HERO STATUS CARD (replaces the Q logo) ── */
    #clientView .clv-certif-hero{
      position:relative;z-index:1;
      padding:22px 24px 20px;border-radius:22px;
      background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.22);
      backdrop-filter:blur(24px) saturate(180%);
      -webkit-backdrop-filter:blur(24px) saturate(180%);
      color:#fff;
      box-shadow:0 14px 40px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.2);
      display:flex;flex-direction:column;gap:16px;
      animation:clvFadeIn .6s .15s cubic-bezier(.2,.9,.25,1.05) both;
    }
    #clientView .clv-certif-hero::before{
      content:none;
    }
    #clientView .clv-certif-hero-top{
      display:flex;align-items:center;gap:12px;position:relative;z-index:1;
    }
    #clientView .clv-certif-hero-seal{
      width:44px;height:44px;border-radius:12px;flex-shrink:0;
      background:rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.24);
      display:flex;align-items:center;justify-content:center;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
    }
    #clientView .clv-certif-hero-seal svg{width:24px;height:24px;stroke:#fff;stroke-width:1.8;fill:none}
    #clientView .clv-certif-hero-label{
      font-size:10px;letter-spacing:2px;text-transform:uppercase;
      color:rgba(255,255,255,.65);font-weight:700;
    }
    #clientView .clv-certif-hero-title{
      font-family:'Sora','Inter',sans-serif;font-size:15.5px;font-weight:700;
      margin-top:2px;letter-spacing:.2px;
    }
    #clientView .clv-certif-hero-badge{
      margin-left:auto;padding:8px 14px;border-radius:999px;
      font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
      backdrop-filter:blur(10px);
      display:inline-flex;align-items:center;gap:7px;
      white-space:nowrap;flex-shrink:0;
      box-shadow:0 6px 16px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.18);
    }
    #clientView .clv-certif-hero-badge .ds{
      width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor;
      animation:clvCertPulse 1.6s ease-in-out infinite;
    }
    @keyframes clvCertPulse{50%{opacity:.45;transform:scale(.85)}}
    #clientView .clv-certif-hero-badge.valid{
      background:linear-gradient(135deg,#6A8F5A,#86A978);
      color:#fff;border:1px solid rgba(255,255,255,.35);
      box-shadow:0 6px 18px rgba(106,143,90,.45),inset 0 1px 0 rgba(255,255,255,.25);
    }
    #clientView .clv-certif-hero-badge.expiring{
      background:linear-gradient(135deg,#C9943E,#E0B864);
      color:#fff;border:1px solid rgba(255,255,255,.35);
      box-shadow:0 6px 18px rgba(201,148,62,.45),inset 0 1px 0 rgba(255,255,255,.25);
    }
    #clientView .clv-certif-hero-badge.expired{
      background:linear-gradient(135deg,#C43C3C,#E06A6A);
      color:#fff;border:1px solid rgba(255,255,255,.35);
      box-shadow:0 6px 18px rgba(196,60,60,.45),inset 0 1px 0 rgba(255,255,255,.25);
    }
    #clientView .clv-certif-hero-badge.pending{
      background:linear-gradient(135deg,#F97316,#EA580C);
      color:#fff;border:1px solid rgba(255,255,255,.35);
      box-shadow:0 6px 18px rgba(249,115,22,.45),inset 0 1px 0 rgba(255,255,255,.25);
    }

    /* Circular progress: days remaining */
    #clientView .clv-certif-hero-center{
      display:flex;align-items:center;gap:18px;position:relative;z-index:1;
    }
    #clientView .clv-certif-ring{
      position:relative;width:112px;height:112px;flex-shrink:0;
    }
    #clientView .clv-certif-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
    #clientView .clv-certif-ring .track{
      stroke:rgba(255,255,255,.14);stroke-width:8;fill:none;
    }
    #clientView .clv-certif-ring .bar{
      stroke:url(#clvCertGrad);stroke-width:8;fill:none;
      stroke-linecap:round;
      stroke-dasharray:314;stroke-dashoffset:314;
      animation:clvCertRing 1.4s .3s cubic-bezier(.4,0,.2,1) forwards;
      filter:drop-shadow(0 0 6px rgba(249,115,22,.5));
    }
    @keyframes clvCertRing{to{stroke-dashoffset:var(--clv-cert-dash, 150)}}
    #clientView .clv-certif-ring-inner{
      position:absolute;inset:0;display:flex;flex-direction:column;
      align-items:center;justify-content:center;text-align:center;
    }
    #clientView .clv-certif-ring-inner .big{
      font-family:'Sora','Inter',sans-serif;font-size:28px;font-weight:800;letter-spacing:-.8px;color:#fff;line-height:1;
    }
    #clientView .clv-certif-ring-inner .lbl{
      font-size:9.5px;letter-spacing:1.5px;text-transform:uppercase;
      color:rgba(255,255,255,.65);font-weight:700;margin-top:4px;
    }
    #clientView .clv-certif-hero-meta{
      flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;
    }
    #clientView .clv-certif-hero-meta .row{
      display:flex;flex-direction:column;gap:2px;
    }
    #clientView .clv-certif-hero-meta .k{
      font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;
      color:rgba(255,255,255,.55);font-weight:700;
    }
    #clientView .clv-certif-hero-meta .v{
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;color:#fff;letter-spacing:.1px;
    }

    /* Sliver progress bar — lifetime used */
    #clientView .clv-certif-hero-bar{
      position:relative;z-index:1;
      height:4px;border-radius:999px;background:rgba(255,255,255,.1);
      overflow:hidden;
    }
    #clientView .clv-certif-hero-bar > span{
      display:block;height:100%;border-radius:999px;
      background:linear-gradient(90deg,#F97316,#FDB66F);
      width:0%;transition:width 1.3s .25s cubic-bezier(.4,0,.2,1);
      box-shadow:0 0 10px rgba(249,115,22,.5);
    }
    #clientView .clv-certif-hero-foot{
      display:flex;justify-content:space-between;align-items:baseline;gap:8px;
      font-size:10.5px;color:rgba(255,255,255,.55);letter-spacing:.6px;font-weight:600;
      position:relative;z-index:1;
    }
    #clientView .clv-certif-hero-foot b{color:rgba(255,255,255,.85);font-weight:800;letter-spacing:.2px}

    /* ── KPI CARDS v3.1 : richer with mini-bars/indicators ── */
    #clientView .stat-card .stat-info .stat-detail{
      margin-top:10px;display:flex;align-items:center;gap:8px;
      font-size:10.5px;color:var(--clv-muted);font-weight:600;letter-spacing:.2px;
    }
    #clientView .stat-card .stat-bar{
      height:4px;border-radius:999px;background:rgba(13,45,94,.08);overflow:hidden;
      margin-top:10px;
    }
    #clientView .stat-card .stat-bar > span{
      display:block;height:100%;border-radius:999px;
      background:linear-gradient(90deg,var(--clv-navy),var(--clv-navy-soft));
      transition:width 1.2s cubic-bezier(.4,0,.2,1);
    }
    #clientView .stat-card .stat-bar.green > span{background:linear-gradient(90deg,var(--clv-green),#86A978)}
    #clientView .stat-card .stat-bar.amber > span{background:linear-gradient(90deg,var(--clv-amber),#DEB668)}
    #clientView .stat-card .stat-bar.coral > span{background:linear-gradient(90deg,var(--clv-coral),#FDB66F)}
    #clientView .stat-card .stat-chip{
      display:inline-flex;align-items:center;gap:6px;
      padding:3px 9px;border-radius:999px;
      font-size:10px;font-weight:700;letter-spacing:.5px;
      background:rgba(13,45,94,.08);color:var(--clv-navy);
    }
    #clientView .stat-card .stat-chip.green{background:rgba(106,143,90,.14);color:#4F7043}
    #clientView .stat-card .stat-chip.coral{background:rgba(249,115,22,.12);color:var(--clv-coral-2)}
    #clientView .stat-card .stat-chip.amber{background:rgba(201,148,62,.15);color:#7C5A20}

    /* ── DASHBOARD TWO-COL ROW (next-audit + activity) ── */
    #clientView .clv-dash-row{
      display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-bottom:22px;
    }
    @media(max-width:900px){#clientView .clv-dash-row{grid-template-columns:1fr}}

    /* Next-audit ticket card */
    #clientView .clv-next-audit{
      position:relative;overflow:hidden;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:20px;padding:22px 24px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-next-audit::before{
      content:"";position:absolute;top:-40%;right:-15%;
      width:260px;height:260px;border-radius:50%;
      background:radial-gradient(circle, rgba(13,45,94,.07) 0%, transparent 70%);
      pointer-events:none;
    }
    #clientView .clv-next-audit-head{
      display:flex;align-items:center;gap:10px;margin-bottom:18px;position:relative;
    }
    #clientView .clv-next-audit-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--clv-ink);margin:0;letter-spacing:-.1px;
    }
    #clientView .clv-next-audit-head .chip{
      margin-left:auto;padding:4px 10px;border-radius:999px;
      font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
      background:rgba(249,115,22,.12);color:var(--clv-coral-2);
    }
    #clientView .clv-next-audit-body{
      display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;position:relative;
    }
    #clientView .clv-next-audit-date{
      width:110px;padding:14px 10px;border-radius:16px;text-align:center;flex-shrink:0;
      background:linear-gradient(145deg,var(--clv-navy),var(--clv-navy-2));
      color:#fff;box-shadow:0 10px 26px rgba(13,45,94,.28);
      position:relative;overflow:hidden;
    }
    #clientView .clv-next-audit-date::before{
      content:"";position:absolute;top:0;left:0;right:0;height:18px;
      background:var(--clv-coral);
    }
    #clientView .clv-next-audit-date .day{
      font-family:'Sora','Inter',sans-serif;font-size:36px;font-weight:800;letter-spacing:-1px;line-height:1;
      margin-top:8px;
    }
    #clientView .clv-next-audit-date .month{
      font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-top:6px;
    }
    #clientView .clv-next-audit-date .year{
      font-size:10px;color:rgba(255,255,255,.6);margin-top:2px;letter-spacing:1px;font-weight:600;
    }
    #clientView .clv-next-audit-info h4{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;color:var(--clv-ink);margin:0 0 6px;letter-spacing:-.3px;
    }
    #clientView .clv-next-audit-info .countdown{
      display:inline-block;padding:4px 10px;border-radius:999px;
      background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.1);
      color:var(--clv-navy);font-size:11px;font-weight:700;letter-spacing:.3px;margin-bottom:10px;
    }
    #clientView .clv-next-audit-meta{
      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-top:6px;
    }
    #clientView .clv-next-audit-meta .m{
      display:flex;align-items:center;gap:8px;font-size:12px;color:var(--clv-ink);
    }
    #clientView .clv-next-audit-meta .m svg{width:14px;height:14px;stroke:var(--clv-muted);stroke-width:2;fill:none;flex-shrink:0}
    #clientView .clv-next-audit-meta .m b{color:var(--clv-navy);font-weight:700}
    #clientView .clv-next-audit-empty{
      text-align:center;padding:30px 20px;color:var(--clv-muted);
    }
    #clientView .clv-next-audit-empty svg{width:42px;height:42px;stroke:var(--clv-muted);fill:none;stroke-width:1.6;opacity:.6;margin-bottom:10px}

    /* Activity feed refined */
    #clientView .clv-activity-card h3{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--clv-ink);
      margin:0;letter-spacing:-.1px;display:flex;align-items:center;gap:8px;
    }
    #clientView .clv-activity-card h3::before{
      content:"";width:8px;height:8px;border-radius:50%;background:var(--clv-coral);
      box-shadow:0 0 8px var(--clv-coral);animation:clvCertPulse 2s infinite;
    }
    #clientView .clv-activity-card .card-header{
      display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;
    }
    #clientView .clv-activity-card .card-header p{margin:0}
    #clientView #recentActivity > div{
      padding:12px 0 !important;border-bottom:1px dashed rgba(13,45,94,.1) !important;
    }
    #clientView #recentActivity > div:last-child{border-bottom:none !important}

    /* ── DASHBOARD QUICK ACTIONS (below KPIs) ── */
    #clientView .clv-quick-actions{
      display:grid;grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));gap:10px;
      margin-bottom:22px;
    }
    #clientView .clv-quick-action{
      display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;cursor:pointer;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:0 6px 16px rgba(13,45,94,.06),inset 0 1px 0 rgba(255,255,255,.95);
      transition:all .18s;text-decoration:none;color:var(--clv-ink);
      font-family:inherit;text-align:left;
    }
    #clientView .clv-quick-action:hover{
      transform:translateY(-2px);box-shadow:0 12px 28px rgba(13,45,94,.12);border-color:rgba(13,45,94,.18);
    }
    #clientView .clv-quick-action .ico{
      width:40px;height:40px;border-radius:12px;flex-shrink:0;
      display:flex;align-items:center;justify-content:center;
      color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.1);
    }
    #clientView .clv-quick-action .ico svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}
    #clientView .clv-quick-action > span:nth-child(2){
      flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;overflow:hidden;
    }
    #clientView .clv-quick-action .t{
      display:block;font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;
      color:var(--clv-ink);letter-spacing:-.1px;line-height:1.2;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    #clientView .clv-quick-action .s{
      display:block;font-size:11px;color:var(--clv-muted);margin-top:2px;line-height:1.25;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    #clientView .clv-quick-action .arrow{
      margin-left:auto;color:var(--clv-muted);transition:transform .18s;
    }
    #clientView .clv-quick-action:hover .arrow{color:var(--clv-navy);transform:translateX(2px)}

    /* ══════════════════════════════════════════════════════════
       DOCUMENTS v3.1 — filter chips + type filter
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-doc-filters{
      display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:0 2px;
    }
    #clientView .clv-doc-filter{
      display:inline-flex;align-items:center;gap:7px;
      padding:8px 14px;border-radius:999px;cursor:pointer;
      background:rgba(255,255,255,.6);border:1px solid rgba(13,45,94,.1);
      color:var(--clv-ink);font-size:12.5px;font-weight:600;letter-spacing:.1px;
      font-family:inherit;transition:all .15s;
    }
    #clientView .clv-doc-filter:hover{background:#fff;border-color:rgba(13,45,94,.2)}
    #clientView .clv-doc-filter.active{
      background:linear-gradient(135deg,var(--clv-navy),var(--clv-navy-2));
      color:#fff;border-color:transparent;
      box-shadow:0 6px 14px rgba(13,45,94,.25);
    }
    #clientView .clv-doc-filter .ct{
      display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:999px;
      background:rgba(13,45,94,.08);font-weight:800;
    }
    #clientView .clv-doc-filter.active .ct{background:rgba(255,255,255,.18);color:#fff}

    /* ══════════════════════════════════════════════════════════
       PARCOURS v3.1 — phases bar + richer timeline
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-phases{
      display:grid;grid-template-columns:repeat(4, 1fr);gap:10px;margin-bottom:18px;
      padding:16px 18px;border-radius:18px;
      background:var(--clv-paper);backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      position:relative;
    }
    @media(max-width:800px){#clientView .clv-phases{grid-template-columns:repeat(2,1fr)}}
    #clientView .clv-phase{
      position:relative;padding:14px 10px 14px 52px;border-radius:12px;
      background:rgba(13,45,94,.03);border:1px solid rgba(13,45,94,.05);
    }
    #clientView .clv-phase.done{background:rgba(106,143,90,.08);border-color:rgba(106,143,90,.25)}
    #clientView .clv-phase.active{background:rgba(249,115,22,.08);border-color:rgba(249,115,22,.3)}
    #clientView .clv-phase .pdot{
      position:absolute;left:14px;top:14px;width:28px;height:28px;border-radius:50%;
      display:flex;align-items:center;justify-content:center;
      background:#fff;border:2px solid rgba(13,45,94,.15);color:var(--clv-muted);
    }
    #clientView .clv-phase .pdot svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.5;fill:none}
    #clientView .clv-phase.done .pdot{background:var(--clv-green);border-color:var(--clv-green);color:#fff;box-shadow:0 4px 10px rgba(106,143,90,.3)}
    #clientView .clv-phase.active .pdot{
      background:var(--clv-coral);border-color:var(--clv-coral);color:#fff;
      box-shadow:0 0 0 4px rgba(249,115,22,.18),0 4px 10px rgba(249,115,22,.25);
      animation:clvCertPulse 2.2s ease-in-out infinite;
    }
    #clientView .clv-phase .pt{
      font-size:9.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
      color:var(--clv-muted);
    }
    #clientView .clv-phase.done .pt{color:var(--clv-green)}
    #clientView .clv-phase.active .pt{color:var(--clv-coral-2)}
    #clientView .clv-phase .pn{
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;color:var(--clv-ink);margin-top:3px;letter-spacing:-.1px;
    }
    #clientView .clv-phase .pd{font-size:11px;color:var(--clv-muted);margin-top:2px;font-weight:500}

    /* ══════════════════════════════════════════════════════════
       MESSAGES v3.1 — conversation header + quick replies
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-msg-chat{
      padding:0 !important;overflow:hidden;display:flex;flex-direction:column;
    }
    #clientView .clv-msg-head{
      display:flex;align-items:center;gap:14px;padding:18px 22px;
      background:linear-gradient(135deg, rgba(13,45,94,.06), rgba(249,115,22,.04));
      border-bottom:1px solid rgba(13,45,94,.08);
    }
    #clientView .clv-msg-avatar{
      width:44px;height:44px;border-radius:14px;flex-shrink:0;
      background:linear-gradient(135deg,var(--clv-navy),var(--clv-navy-2));
      display:flex;align-items:center;justify-content:center;color:#fff;
      box-shadow:0 6px 14px rgba(13,45,94,.22);
      position:relative;
    }
    #clientView .clv-msg-avatar svg{width:24px;height:24px}
    #clientView .clv-msg-avatar::after{
      content:"";position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;
      background:var(--clv-green);border:2px solid #fff;
      box-shadow:0 0 0 0 rgba(106,143,90,.5);
      animation:clvCertPulse 2s infinite;
    }
    #clientView .clv-msg-head-info{flex:1;min-width:0}
    #clientView .clv-msg-head-info .nm{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--clv-ink);letter-spacing:-.1px;
    }
    #clientView .clv-msg-head-info .st{
      font-size:11.5px;color:var(--clv-green);margin-top:2px;font-weight:600;
      display:inline-flex;align-items:center;gap:5px;
    }
    #clientView .clv-msg-head-info .st::before{
      content:"";width:6px;height:6px;border-radius:50%;background:currentColor;
    }
    #clientView .clv-msg-head-tag{
      padding:5px 12px;border-radius:999px;
      background:rgba(13,45,94,.08);color:var(--clv-navy);
      font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
    }
    #clientView .clv-msg-list-wrap{
      flex:1;padding:18px 22px 8px;min-height:280px;max-height:440px;overflow-y:auto;
      display:flex;flex-direction:column;gap:8px;
    }
    #clientView .clv-msg-list-wrap::-webkit-scrollbar{width:6px}
    #clientView .clv-msg-list-wrap::-webkit-scrollbar-thumb{background:rgba(13,45,94,.14);border-radius:3px}
    /* Empty state properly centered in the flex thread */
    #clientView .clv-msg-list-wrap .empty-state{
      margin:auto;padding:30px 20px;max-width:340px;
    }
    #clientView .clv-msg-list-wrap .empty-state svg{width:42px;height:42px}
    #clientView .clv-msg-list-wrap .empty-state h4{font-size:14px}
    #clientView .clv-msg-list-wrap .empty-state p{font-size:12.5px}
    #clientView .clv-msg-quick{
      display:flex;gap:6px;flex-wrap:wrap;padding:0 22px 10px;
    }
    #clientView .clv-msg-quick-chip{
      padding:7px 12px;border-radius:999px;cursor:pointer;
      background:rgba(13,45,94,.06);color:var(--clv-navy);
      font-size:11.5px;font-weight:600;letter-spacing:.1px;
      border:1px solid rgba(13,45,94,.08);font-family:inherit;
      transition:all .15s;
    }
    #clientView .clv-msg-quick-chip:hover{
      background:var(--clv-coral);color:#fff;border-color:var(--clv-coral);
    }
    #clientView .clv-msg-input-wrap{
      padding:14px 22px 18px;border-top:1px solid rgba(13,45,94,.08);
      display:flex;gap:10px;align-items:center;
    }
    #clientView .clv-msg-input-wrap textarea{
      flex:1;padding:12px 14px;border:1px solid rgba(13,45,94,.14);border-radius:12px;
      font-size:13px;outline:none;font-family:inherit;resize:none;
      background:rgba(255,255,255,.7);color:var(--clv-ink);
      transition:all .18s;
    }
    #clientView .clv-msg-input-wrap textarea:focus{
      border-color:rgba(13,45,94,.35);background:#fff;box-shadow:0 0 0 3px rgba(13,45,94,.1);
    }
    #clientView .clv-msg-input-wrap .btn-primary{
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2)) !important;
      border:none;color:#fff;border-radius:12px;cursor:pointer;
      padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
      font-size:13px;font-weight:700;font-family:inherit;
      box-shadow:0 6px 14px rgba(249,115,22,.32);
      transition:all .18s;
    }
    #clientView .clv-msg-input-wrap .btn-primary:hover{
      transform:translateY(-1px);box-shadow:0 10px 20px rgba(249,115,22,.42);
    }

    /* ══════════════════════════════════════════════════════════
       LIENS UTILES v3.1 — hero contact + grid ressources
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-contact-hero{
      position:relative;overflow:hidden;padding:26px 30px;border-radius:22px;color:#fff;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 60%,#3B6FB5 100%);
      box-shadow:0 20px 50px rgba(13,45,94,.25);margin-bottom:18px;
      display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;
    }
    #clientView .clv-contact-hero::before{
      content:"";position:absolute;top:-40%;right:-10%;
      width:320px;height:320px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.28) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-contact-hero-left{position:relative;z-index:1}
    #clientView .clv-contact-hero h2{
      font-family:'Sora','Inter',sans-serif;font-size:24px;font-weight:700;color:#fff;
      margin:0 0 6px;letter-spacing:-.3px;
    }
    #clientView .clv-contact-hero p{
      font-size:13.5px;color:rgba(255,255,255,.8);margin:0 0 16px;line-height:1.55;max-width:480px;
    }
    #clientView .clv-contact-hero-btns{display:flex;gap:8px;flex-wrap:wrap;position:relative;z-index:1}
    #clientView .clv-contact-btn{
      display:inline-flex;align-items:center;gap:8px;
      padding:11px 18px;border-radius:12px;cursor:pointer;
      font-size:13px;font-weight:700;letter-spacing:.2px;font-family:inherit;
      background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);
      text-decoration:none;transition:all .18s;backdrop-filter:blur(10px);
    }
    #clientView .clv-contact-btn svg{width:16px;height:16px}
    #clientView .clv-contact-btn:hover{background:rgba(255,255,255,.22);transform:translateY(-1px)}
    #clientView .clv-contact-btn.primary{
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2));
      border-color:transparent;
      box-shadow:0 8px 20px rgba(249,115,22,.35);
    }
    #clientView .clv-contact-hero-avatar{
      position:relative;z-index:1;
      width:90px;height:90px;border-radius:22px;flex-shrink:0;
      background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
      display:flex;align-items:center;justify-content:center;
      backdrop-filter:blur(14px);
    }
    #clientView .clv-contact-hero-avatar svg{width:46px;height:46px}
    @media(max-width:700px){
      #clientView .clv-contact-hero{grid-template-columns:1fr}
      #clientView .clv-contact-hero-avatar{width:64px;height:64px;margin:0 auto}
      #clientView .clv-contact-hero-avatar svg{width:32px;height:32px}
    }

    #clientView .clv-resources{
      display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:14px;
    }
    #clientView .clv-resource{
      position:relative;overflow:hidden;
      padding:20px 22px;border-radius:16px;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:0 6px 16px rgba(13,45,94,.06),inset 0 1px 0 rgba(255,255,255,.95);
      display:flex;flex-direction:column;gap:10px;
      text-decoration:none;color:var(--clv-ink);
      transition:all .18s;
    }
    #clientView .clv-resource:hover{
      transform:translateY(-3px);
      box-shadow:0 16px 34px rgba(13,45,94,.14);
      border-color:rgba(13,45,94,.18);
    }
    #clientView .clv-resource-ico{
      width:48px;height:48px;border-radius:14px;color:#fff;
      display:flex;align-items:center;justify-content:center;
      box-shadow:0 8px 18px rgba(0,0,0,.12);
    }
    #clientView .clv-resource-ico svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none}
    #clientView .clv-resource-ico.navy{background:linear-gradient(135deg,var(--clv-navy),var(--clv-navy-2))}
    #clientView .clv-resource-ico.violet{background:linear-gradient(135deg,#7c3aed,#a78bfa)}
    #clientView .clv-resource-ico.green{background:linear-gradient(135deg,#6A8F5A,#86A978)}
    #clientView .clv-resource-ico.coral{background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2))}
    #clientView .clv-resource-title{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--clv-ink);letter-spacing:-.1px;
    }
    #clientView .clv-resource-sub{font-size:12.5px;color:var(--clv-muted);line-height:1.55}
    #clientView .clv-resource-cta{
      margin-top:auto;display:inline-flex;align-items:center;gap:6px;
      font-size:12px;font-weight:700;color:var(--clv-navy);letter-spacing:.2px;
    }
    #clientView .clv-resource-cta svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.2;fill:none}

    /* Logos officiels QUALIOPI — grid compact */
    #clientView .clv-logos-card{margin-top:14px}
    #clientView .clv-logos-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;
    }
    #clientView .clv-logo-card{
      position:relative;overflow:hidden;
      padding:16px 16px 14px;border-radius:14px;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:0 4px 12px rgba(13,45,94,.06),inset 0 1px 0 rgba(255,255,255,.95);
      display:flex;flex-direction:column;gap:8px;
      text-decoration:none;color:var(--clv-ink);
      transition:all .18s;
    }
    #clientView .clv-logo-card:hover{
      transform:translateY(-2px);
      box-shadow:0 14px 28px rgba(13,45,94,.14);
      border-color:rgba(13,45,94,.18);
    }
    #clientView .clv-logo-vis{
      position:relative;height:78px;border-radius:10px;
      background:linear-gradient(135deg,#F3F0E8,#E8E4DB);
      display:flex;align-items:center;justify-content:center;
      overflow:hidden;
    }
    #clientView .clv-logo-vis::before{
      content:"";position:absolute;inset:0;
      background-image:radial-gradient(circle at 1px 1px,rgba(13,45,94,.08) 1px,transparent 0);
      background-size:10px 10px;opacity:.5;
    }
    #clientView .clv-logo-vis svg{width:40px;height:40px;color:var(--clv-navy);position:relative;z-index:1}
    #clientView .clv-logo-fmt{
      position:absolute;top:8px;right:8px;z-index:2;
      padding:3px 8px;border-radius:999px;
      background:#fff;color:var(--clv-ink);
      font-size:9px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;
      box-shadow:0 2px 6px rgba(0,0,0,.1);
    }
    #clientView .clv-logo-fmt.jpg{background:linear-gradient(135deg,#16A34A,#4ADE80);color:#fff}
    #clientView .clv-logo-fmt.png{background:linear-gradient(135deg,#2563EB,#60A5FA);color:#fff}
    #clientView .clv-logo-fmt.eps{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff}
    #clientView .clv-logo-title{
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;
      color:var(--clv-ink);letter-spacing:-.1px;margin:0;
    }
    #clientView .clv-logo-sub{
      font-size:11.5px;color:var(--clv-muted);line-height:1.45;
      flex:1;
    }
    #clientView .clv-logo-cta{
      display:inline-flex;align-items:center;gap:6px;
      font-size:11.5px;font-weight:700;color:var(--clv-navy);letter-spacing:.2px;
      margin-top:2px;
    }
    #clientView .clv-logo-cta svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.4;fill:none}

    /* ══════════════════════════════════════════════════════════
       DOCUMENTS v3.2 — hero + recent + sort + folder identity
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-docs-hero{
      position:relative;overflow:hidden;
      padding:22px 26px;border-radius:22px;color:#fff;margin-bottom:16px;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 60%,#3B6FB5 100%);
      box-shadow:0 20px 50px rgba(13,45,94,.25);
      display:flex;align-items:center;gap:22px;flex-wrap:wrap;
    }
    #clientView .clv-docs-hero::before{
      content:"";position:absolute;top:-40%;right:-10%;
      width:320px;height:320px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.28) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-docs-hero-left{
      display:flex;align-items:center;gap:16px;flex:1;min-width:240px;position:relative;z-index:1;
    }
    #clientView .clv-docs-hero-ic{
      width:58px;height:58px;border-radius:16px;flex-shrink:0;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      display:flex;align-items:center;justify-content:center;color:#fff;
      backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
    }
    #clientView .clv-docs-hero-ic svg{width:28px;height:28px;stroke:#fff;fill:none}
    #clientView .clv-docs-hero-eyebrow{
      font-size:10px;letter-spacing:2px;text-transform:uppercase;
      color:rgba(255,255,255,.65);font-weight:700;
    }
    #clientView .clv-docs-hero h2{
      font-family:'Sora','Inter',sans-serif;font-size:24px;font-weight:700;color:#fff;
      margin:2px 0 4px;letter-spacing:-.3px;line-height:1.1;
    }
    #clientView .clv-docs-hero p#docsSubtitle{
      font-size:12.5px;color:rgba(255,255,255,.78);margin:0;line-height:1.4;
    }
    #clientView .clv-docs-hero-right{
      display:flex;gap:14px;flex-wrap:wrap;position:relative;z-index:1;
    }
    #clientView .clv-docs-metric{
      padding:10px 16px;border-radius:12px;min-width:96px;
      background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);
      backdrop-filter:blur(12px);
    }
    #clientView .clv-docs-metric .k{
      font-size:10px;letter-spacing:1.2px;text-transform:uppercase;
      color:rgba(255,255,255,.62);font-weight:700;
    }
    #clientView .clv-docs-metric .v{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:800;color:#fff;margin-top:2px;letter-spacing:-.3px;
    }

    /* Récemment ajoutés strip */
    #clientView .clv-docs-recent{
      padding:18px 22px;border-radius:20px;margin-bottom:16px;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-docs-recent-head{
      display:flex;align-items:center;gap:10px;margin-bottom:12px;
    }
    #clientView .clv-docs-recent-head svg{width:18px;height:18px;stroke:var(--clv-coral);stroke-width:2;fill:none}
    #clientView .clv-docs-recent-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--clv-ink);margin:0;letter-spacing:-.1px;
    }
    #clientView .clv-docs-recent-tag{
      margin-left:auto;padding:4px 10px;border-radius:999px;
      font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
      background:rgba(249,115,22,.12);color:var(--clv-coral-2);
    }
    #clientView .clv-docs-recent-strip{
      display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;
    }
    #clientView .clv-docs-recent-item{
      position:relative;display:flex;align-items:center;gap:11px;
      padding:12px 14px;border-radius:14px;cursor:pointer;
      background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.8);
      transition:all .18s cubic-bezier(.2,.9,.25,1.05);
    }
    #clientView .clv-docs-recent-item::before{
      content:"NEW";position:absolute;top:-6px;right:-6px;
      padding:2px 7px;border-radius:999px;
      background:var(--clv-coral);color:#fff;
      font-size:8px;font-weight:800;letter-spacing:.8px;
      box-shadow:0 4px 10px rgba(249,115,22,.35);
    }
    #clientView .clv-docs-recent-item:hover{
      transform:translateY(-2px);background:#fff;
      box-shadow:0 10px 22px rgba(13,45,94,.12);border-color:rgba(13,45,94,.18);
    }
    #clientView .clv-docs-recent-item .icon{
      width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;
      color:#fff;font-weight:800;font-size:9.5px;letter-spacing:.4px;flex-shrink:0;
      box-shadow:0 4px 10px rgba(0,0,0,.1);
    }
    #clientView .clv-docs-recent-item .nm{
      font-size:12.5px;font-weight:600;color:var(--clv-ink);
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    #clientView .clv-docs-recent-item .mt{
      font-size:10.5px;color:var(--clv-muted);margin-top:2px;font-weight:500;
    }

    /* Controls row */
    #clientView .clv-docs-controls{
      display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;
      padding:14px 18px;border-radius:18px;
      background:var(--clv-paper);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-docs-controls .docs-search{flex:1;min-width:200px}
    #clientView .clv-docs-controls .docs-search input{width:100%;min-width:180px}
    #clientView .clv-doc-filters{margin-bottom:0;flex-wrap:wrap}
    #clientView .clv-docs-sort{
      display:inline-flex;align-items:center;gap:6px;
      padding:3px 3px 3px 12px;border-radius:12px;
      background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.08);
    }
    #clientView .clv-docs-sort-lbl{
      font-size:11px;color:var(--clv-muted);font-weight:600;letter-spacing:.4px;text-transform:uppercase;
    }
    #clientView .clv-docs-sort select{
      border:none;background:#fff;padding:7px 10px;border-radius:9px;
      font-size:12.5px;font-weight:600;color:var(--clv-ink);cursor:pointer;
      font-family:inherit;outline:none;
      box-shadow:0 2px 6px rgba(13,45,94,.08);
    }

    /* Folder cards v3.2 — richer */
    #clientView .doc-folder{
      padding:20px 22px;margin-bottom:14px;
    }
    #clientView .doc-folder-title{
      display:flex;align-items:center;gap:12px;margin-bottom:16px;
    }
    #clientView .folder-badge{
      width:42px;height:42px;border-radius:12px;flex-shrink:0;
      box-shadow:0 6px 14px rgba(0,0,0,.08);
    }
    #clientView .folder-badge svg{width:18px;height:18px}
    #clientView .doc-folder-title > span:nth-child(2){
      font-family:'Sora','Inter',sans-serif;font-size:15.5px;font-weight:700;color:var(--clv-ink);letter-spacing:-.15px;line-height:1.2;
      flex:1;min-width:0;
    }
    #clientView .folder-meta{
      display:flex;align-items:center;gap:6px;margin-top:3px;
    }
    #clientView .folder-count{
      font-size:10.5px;color:var(--clv-muted);font-weight:700;letter-spacing:.3px;
      padding:3px 9px;border-radius:999px;background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.08);
    }
    #clientView .folder-size{
      font-size:10.5px;color:var(--clv-coral-2);font-weight:700;letter-spacing:.3px;
      padding:3px 9px;border-radius:999px;background:rgba(249,115,22,.1);border:1px solid rgba(249,115,22,.18);
    }

    /* Enhanced doc-item — cartes v4 (alignées sur le bloc principal) */
    #clientView .doc-item{padding:16px;}
    #clientView .doc-icon{width:48px;height:48px;border-radius:14px;font-size:11px}

    /* Empty states */
    #clientView .clv-docs-empty{
      padding:50px 20px;text-align:center;color:var(--clv-muted);
      border-radius:18px;background:rgba(255,255,255,.5);border:1px dashed rgba(13,45,94,.14);
    }
    #clientView .clv-docs-empty svg{width:48px;height:48px;stroke:var(--clv-muted);stroke-width:1.5;fill:none;opacity:.5;margin-bottom:10px}
    #clientView .clv-docs-empty h4{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--clv-ink);margin:0 0 4px;
    }
    #clientView .clv-docs-empty p{font-size:12.5px;color:var(--clv-muted);margin:0}

    @media(max-width:640px){
      #clientView .clv-docs-hero{flex-direction:column;align-items:flex-start}
      #clientView .clv-docs-hero-right{width:100%}
      #clientView .clv-docs-metric{flex:1;min-width:80px}
      #clientView .clv-docs-controls{flex-direction:column;align-items:stretch}
      #clientView .clv-docs-controls .docs-search,
      #clientView .clv-docs-sort{width:100%}
      #clientView .docs-view-toggle{align-self:flex-end}
    }

    /* ══════════════════════════════════════════════════════════
       PARCOURS v3.2 — journey premium (3 phases centrées)
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-journey{
      position:relative;margin-bottom:22px;
    }
    #clientView .clv-journey-intro{
      text-align:center;padding:10px 12px 18px;
    }
    #clientView .clv-journey-eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:7px 14px;border-radius:999px;
      background:rgba(255,255,255,.6);border:1px solid rgba(13,45,94,.1);
      font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;font-weight:700;
      color:var(--clv-navy);margin-bottom:10px;
      backdrop-filter:blur(10px);
    }
    #clientView .clv-journey-eyebrow .dot{
      width:6px;height:6px;border-radius:50%;background:var(--clv-coral);
      box-shadow:0 0 8px var(--clv-coral);animation:clvCertPulse 2s infinite;
    }
    #clientView .clv-journey-intro h2{
      font-family:'Sora','Inter',sans-serif;font-size:30px;font-weight:700;color:var(--clv-ink-2);
      margin:0 0 6px;letter-spacing:-.6px;
    }
    #clientView .clv-journey-intro p{
      font-size:13.5px;color:var(--clv-muted);margin:0 auto;max-width:560px;line-height:1.55;
    }

    #clientView .clv-journey-phases{
      display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
      position:relative;
    }
    /* Connecting line between phases (desktop only) */
    #clientView .clv-journey-phases::before{
      content:"";position:absolute;top:48px;left:12%;right:12%;height:3px;
      background:linear-gradient(90deg, var(--clv-green) 0%, var(--clv-green) 33%, rgba(13,45,94,.14) 33%, rgba(13,45,94,.14) 100%);
      border-radius:999px;z-index:0;
      transition:background .4s;
    }
    #clientView .clv-journey-phases[data-progress="2"]::before{
      background:linear-gradient(90deg, var(--clv-green) 0%, var(--clv-green) 50%, var(--clv-coral) 50%, var(--clv-coral) 66%, rgba(13,45,94,.14) 66%, rgba(13,45,94,.14) 100%);
    }
    #clientView .clv-journey-phases[data-progress="3"]::before{
      background:linear-gradient(90deg, var(--clv-green) 0%, var(--clv-green) 100%);
    }
    @media(max-width:900px){
      #clientView .clv-journey-phases{grid-template-columns:1fr}
      #clientView .clv-journey-phases::before{display:none}
    }

    #clientView .clv-jphase{
      position:relative;z-index:1;
      padding:30px 22px 20px;border-radius:22px;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      text-align:center;
      transition:all .25s cubic-bezier(.2,.9,.25,1.05);
      overflow:hidden;
    }
    #clientView .clv-jphase::before{
      content:"";position:absolute;top:-30%;left:-30%;
      width:260px;height:260px;border-radius:50%;
      background:radial-gradient(circle, rgba(13,45,94,.04) 0%, transparent 70%);
      pointer-events:none;
    }
    #clientView .clv-jphase:hover{transform:translateY(-3px);box-shadow:var(--clv-shadow-hover),inset 0 1px 0 rgba(255,255,255,.95)}
    #clientView .clv-jphase-num{
      font-family:'Sora','Inter',sans-serif;font-size:11px;font-weight:800;letter-spacing:3px;
      color:var(--clv-muted);margin-bottom:10px;position:relative;
    }
    #clientView .clv-jphase-ic{
      position:relative;z-index:1;
      width:72px;height:72px;border-radius:50%;margin:0 auto 14px;
      background:#fff;border:3px solid rgba(13,45,94,.14);
      display:flex;align-items:center;justify-content:center;
      color:var(--clv-muted);
      box-shadow:0 8px 24px rgba(13,45,94,.1);
    }
    #clientView .clv-jphase-ic svg{width:28px;height:28px;stroke:currentColor;fill:none}
    #clientView .clv-jphase-body{position:relative;z-index:1}
    #clientView .clv-jphase-tag{
      display:inline-block;padding:4px 11px;border-radius:999px;
      font-size:10.5px;font-weight:700;letter-spacing:.6px;
      background:rgba(13,45,94,.06);color:var(--clv-muted);text-transform:uppercase;
      margin-bottom:10px;
    }
    #clientView .clv-jphase h3{
      font-family:'Sora','Inter',sans-serif;font-size:19px;font-weight:700;color:var(--clv-ink-2);
      margin:0 0 8px;letter-spacing:-.3px;
    }
    #clientView .clv-jphase p{
      font-size:12.5px;color:var(--clv-muted);line-height:1.55;margin:0 auto 14px;max-width:260px;
    }
    #clientView .clv-jphase-meta{
      display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;
      padding:12px 14px;border-radius:12px;
      background:rgba(13,45,94,.04);border:1px dashed rgba(13,45,94,.1);
    }
    #clientView .clv-jphase-meta .m{display:flex;flex-direction:column;gap:2px;min-width:0}
    #clientView .clv-jphase-meta .k{
      font-size:9px;color:var(--clv-muted);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;
    }
    #clientView .clv-jphase-meta .v{
      font-size:12px;color:var(--clv-ink);font-weight:700;letter-spacing:-.1px;word-break:break-word;
    }

    /* State modifiers */
    #clientView .clv-jphase.done .clv-jphase-ic{
      background:var(--clv-green);border-color:var(--clv-green);color:#fff;
      box-shadow:0 0 0 6px rgba(106,143,90,.12),0 8px 24px rgba(106,143,90,.3);
    }
    #clientView .clv-jphase.done .clv-jphase-tag{background:rgba(106,143,90,.14);color:#4F7043}
    #clientView .clv-jphase.done{border-color:rgba(106,143,90,.2)}

    #clientView .clv-jphase.active .clv-jphase-ic{
      background:var(--clv-coral);border-color:var(--clv-coral);color:#fff;
      box-shadow:0 0 0 6px rgba(249,115,22,.14),0 10px 28px rgba(249,115,22,.32);
      animation:clvJphasePulse 2.4s ease-in-out infinite;
    }
    @keyframes clvJphasePulse{
      0%,100%{box-shadow:0 0 0 6px rgba(249,115,22,.14),0 10px 28px rgba(249,115,22,.32)}
      50%    {box-shadow:0 0 0 12px rgba(249,115,22,.06),0 10px 28px rgba(249,115,22,.32)}
    }
    #clientView .clv-jphase.active .clv-jphase-tag{background:rgba(249,115,22,.14);color:var(--clv-coral-2)}
    #clientView .clv-jphase.active{
      border-color:rgba(249,115,22,.28);
      box-shadow:0 20px 50px rgba(249,115,22,.15),inset 0 1px 0 rgba(255,255,255,.95);
    }

    /* ══ Échéances redesign ══ */
    #clientView .clv-deadlines{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:22px}
    #clientView .clv-deadline{
      position:relative;overflow:hidden;
      padding:22px 24px;border-radius:20px;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-deadline::before{
      content:"";position:absolute;top:0;left:0;right:0;height:4px;
      background:var(--clv-accent, rgba(13,45,94,.2));
    }
    #clientView .clv-deadline.state-done::before{background:var(--clv-green)}
    #clientView .clv-deadline.state-active::before{background:var(--clv-coral)}
    #clientView .clv-deadline.state-urgent::before{background:var(--clv-red)}
    #clientView .clv-deadline.state-upcoming::before{background:var(--clv-navy-soft)}
    #clientView .clv-deadline-head{
      display:flex;align-items:center;gap:12px;margin-bottom:16px;
    }
    #clientView .clv-deadline-ic{
      width:42px;height:42px;border-radius:12px;flex-shrink:0;
      display:flex;align-items:center;justify-content:center;color:#fff;
    }
    #clientView .clv-deadline.state-done .clv-deadline-ic{background:linear-gradient(135deg,#4F7043,#6A8F5A);box-shadow:0 6px 14px rgba(106,143,90,.3)}
    #clientView .clv-deadline.state-active .clv-deadline-ic{background:linear-gradient(135deg,#EA580C,#F97316);box-shadow:0 6px 14px rgba(249,115,22,.3)}
    #clientView .clv-deadline.state-urgent .clv-deadline-ic{background:linear-gradient(135deg,#B91C1C,#DC2626);box-shadow:0 6px 14px rgba(196,60,60,.3)}
    #clientView .clv-deadline.state-upcoming .clv-deadline-ic{background:linear-gradient(135deg,#1C4A8E,#3B6FB5);box-shadow:0 6px 14px rgba(28,74,142,.3)}
    #clientView .clv-deadline-ic svg{width:20px;height:20px;stroke:#fff;stroke-width:2;fill:none}
    #clientView .clv-deadline h4{
      font-family:'Sora','Inter',sans-serif;font-size:15.5px;font-weight:700;color:var(--clv-ink);
      margin:0 0 2px;letter-spacing:-.2px;
    }
    #clientView .clv-deadline-sub{font-size:11.5px;color:var(--clv-muted);font-weight:500}
    #clientView .clv-deadline-badge{
      margin-left:auto;padding:5px 11px;border-radius:999px;
      font-size:10.5px;font-weight:800;letter-spacing:.6px;
    }
    #clientView .clv-deadline.state-done .clv-deadline-badge{background:rgba(106,143,90,.15);color:#4F7043}
    #clientView .clv-deadline.state-active .clv-deadline-badge{background:rgba(249,115,22,.15);color:var(--clv-coral-2)}
    #clientView .clv-deadline.state-urgent .clv-deadline-badge{background:rgba(196,60,60,.15);color:#B91C1C}
    #clientView .clv-deadline.state-upcoming .clv-deadline-badge{background:rgba(28,74,142,.1);color:var(--clv-navy)}
    #clientView .clv-deadline-body{font-size:13px;color:var(--clv-ink);line-height:1.55}
    #clientView .clv-deadline-body b{color:var(--clv-navy);font-weight:700}
    #clientView .clv-deadline-days{
      display:flex;align-items:baseline;gap:6px;margin:12px 0 10px;
    }
    #clientView .clv-deadline-days .n{
      font-family:'Sora','Inter',sans-serif;font-size:36px;font-weight:800;color:var(--clv-ink-2);letter-spacing:-1.5px;line-height:1;
    }
    #clientView .clv-deadline-days .l{font-size:12px;color:var(--clv-muted);font-weight:600}
    #clientView .clv-deadline-hint{
      font-size:11px;color:var(--clv-muted);margin-top:8px;padding-top:10px;border-top:1px dashed rgba(13,45,94,.1);line-height:1.5;
    }
    #clientView .clv-deadline-progress{
      height:5px;border-radius:999px;background:rgba(13,45,94,.07);overflow:hidden;margin:10px 0 4px;
    }
    #clientView .clv-deadline-progress > span{
      display:block;height:100%;border-radius:999px;
      background:linear-gradient(90deg,var(--clv-coral),#FDB66F);
      transition:width 1.1s cubic-bezier(.4,0,.2,1);
    }

    /* ══ Catégories d'actions certifiées ══ */
    #clientView .clv-cats{
      padding:24px 24px 20px;border-radius:22px;margin-bottom:22px;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-cats-head{
      display:flex;align-items:center;gap:12px;margin-bottom:16px;
    }
    #clientView .clv-cats-head svg{width:22px;height:22px;stroke:var(--clv-navy);stroke-width:2;fill:none}
    #clientView .clv-cats-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:16px;font-weight:700;color:var(--clv-ink);margin:0;letter-spacing:-.15px;
    }
    #clientView .clv-cats-head p{font-size:12px;color:var(--clv-muted);margin:0}
    #clientView .clv-cats-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;
    }
    #clientView .clv-cat{
      position:relative;padding:14px 16px 14px 52px;border-radius:14px;
      background:rgba(13,45,94,.04);border:1px solid rgba(13,45,94,.05);
      transition:all .18s;
    }
    #clientView .clv-cat .cic{
      position:absolute;left:14px;top:50%;transform:translateY(-50%);
      width:28px;height:28px;border-radius:50%;
      background:#fff;border:1px solid rgba(13,45,94,.15);
      display:flex;align-items:center;justify-content:center;color:var(--clv-muted);
    }
    #clientView .clv-cat .cic svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.5;fill:none}
    #clientView .clv-cat .code{
      font-family:'Sora','Inter',sans-serif;font-size:10.5px;font-weight:800;letter-spacing:1.3px;
      text-transform:uppercase;color:var(--clv-muted);
    }
    #clientView .clv-cat .lbl{
      font-size:13px;color:var(--clv-ink);font-weight:600;margin-top:3px;line-height:1.3;
    }
    #clientView .clv-cat.active{
      background:linear-gradient(135deg,rgba(106,143,90,.1),rgba(134,169,120,.08));
      border-color:rgba(106,143,90,.3);
    }
    #clientView .clv-cat.active .cic{
      background:var(--clv-green);border-color:var(--clv-green);color:#fff;
      box-shadow:0 4px 10px rgba(106,143,90,.3);
    }
    #clientView .clv-cat.active .code{color:#4F7043}
    #clientView .clv-cat.active .lbl{color:var(--clv-ink-2);font-weight:700}

    /* ══ Historique audits ══ */
    #clientView .clv-history{
      padding:24px 24px 20px;border-radius:22px;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-history-head{margin-bottom:16px}
    #clientView .clv-history-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:16px;font-weight:700;color:var(--clv-ink);margin:0 0 3px;letter-spacing:-.15px;
    }
    #clientView .clv-history-head p{font-size:12.5px;color:var(--clv-muted);margin:0;line-height:1.5}

    /* Hide old Parcours components we no longer use */
    #clientView .clv-phases{display:none}

    /* ══════════════════════════════════════════════════════════
       MON ORGANISME — premium cards
       ══════════════════════════════════════════════════════════ */
    #clientView .clv-org-hero{
      position:relative;overflow:hidden;
      padding:28px 32px;border-radius:22px;color:#fff;margin-bottom:18px;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 60%,#3B6FB5 100%);
      box-shadow:0 20px 50px rgba(13,45,94,.25);
      display:flex;align-items:center;gap:22px;
    }
    #clientView .clv-org-hero::before{
      content:"";position:absolute;top:-40%;right:-10%;
      width:340px;height:340px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.28) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-org-hero::after{
      content:"";position:absolute;bottom:-60%;left:10%;
      width:260px;height:260px;border-radius:50%;
      background:radial-gradient(circle, rgba(59,111,181,.3) 0%, transparent 65%);
      pointer-events:none;
    }
    #clientView .clv-org-hero-avatar{
      width:92px;height:92px;border-radius:22px;flex-shrink:0;position:relative;z-index:1;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      display:flex;align-items:center;justify-content:center;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 10px 26px rgba(0,0,0,.2);
      backdrop-filter:blur(14px);
    }
    #clientView .clv-org-hero-avatar span{
      font-family:'Sora','Inter',sans-serif;font-size:34px;font-weight:800;color:#fff;letter-spacing:-.5px;
      text-shadow:0 2px 10px rgba(0,0,0,.2);
    }
    #clientView .clv-org-hero-info{flex:1;min-width:0;position:relative;z-index:1}
    #clientView .clv-org-hero-eyebrow{
      font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.65);font-weight:700;
    }
    #clientView .clv-org-hero-info h2{
      font-family:'Sora','Inter',sans-serif;font-size:28px;font-weight:700;color:#fff;
      letter-spacing:-.4px;margin:4px 0 12px;line-height:1.15;
    }
    #clientView .clv-org-hero-meta{
      display:flex;gap:8px;flex-wrap:wrap;
    }
    #clientView .clv-org-hero-meta span{
      display:inline-flex;align-items:center;gap:7px;
      padding:7px 12px;border-radius:999px;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      font-size:12px;color:rgba(255,255,255,.88);font-weight:500;
      backdrop-filter:blur(10px);
    }
    #clientView .clv-org-hero-meta span svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none;opacity:.75}
    #clientView .clv-org-hero-meta span b{color:#fff;font-weight:700;letter-spacing:.2px;margin-left:2px}

    #clientView .clv-org-grid{
      display:grid;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));gap:16px;
    }
    #clientView .clv-org-card{
      position:relative;overflow:hidden;
      background:var(--clv-paper);
      backdrop-filter:blur(26px) saturate(180%);
      -webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      border-radius:20px;
      box-shadow:var(--clv-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #clientView .clv-org-card-head{
      display:flex;align-items:center;gap:12px;padding:18px 22px;
      color:#fff;position:relative;
    }
    #clientView .clv-org-card-head.navy{background:linear-gradient(135deg,#0d2d5e,#1C4A8E)}
    #clientView .clv-org-card-head.green{background:linear-gradient(135deg,#4F7043,#6A8F5A)}
    #clientView .clv-org-card-head.coral{background:linear-gradient(135deg,#EA580C,#F97316)}
    #clientView .clv-org-card-head::after{
      content:"";position:absolute;top:-80%;right:-20%;
      width:180px;height:180px;border-radius:50%;
      background:radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
      pointer-events:none;
    }
    #clientView .clv-org-ic{
      width:38px;height:38px;border-radius:11px;flex-shrink:0;
      background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);
      display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);
    }
    #clientView .clv-org-ic svg{width:20px;height:20px;stroke:#fff;fill:none}
    #clientView .clv-org-card-head .t{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:#fff;letter-spacing:-.1px;
    }
    #clientView .clv-org-card-head .s{
      font-size:11px;color:rgba(255,255,255,.75);margin-top:2px;letter-spacing:.2px;
    }
    #clientView .clv-org-body{
      padding:14px 22px 20px;
    }
    #clientView .clv-org-row{
      display:flex;align-items:baseline;justify-content:space-between;gap:14px;
      padding:9px 0;border-bottom:1px dashed rgba(13,45,94,.1);
    }
    #clientView .clv-org-row:last-child{border-bottom:none}
    #clientView .clv-org-row .k{
      font-size:11.5px;color:var(--clv-muted);font-weight:600;letter-spacing:.15px;text-transform:none;
      flex-shrink:0;max-width:45%;
    }
    #clientView .clv-org-row .v{
      font-size:13px;color:var(--clv-ink);font-weight:600;text-align:right;letter-spacing:.1px;
      word-break:break-word;
    }
    #clientView .clv-org-row.big{
      flex-direction:column;align-items:flex-start;gap:3px;
    }
    #clientView .clv-org-row.big .v{
      text-align:left;font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:var(--clv-ink-2);
    }
    #clientView .clv-org-row.big .k{max-width:100%}
    #clientView .clv-org-pill{
      display:inline-block;padding:4px 11px;border-radius:999px;
      font-size:11.5px;font-weight:700;letter-spacing:.3px;
    }
    #clientView .clv-org-pill.navy{background:rgba(13,45,94,.1);color:var(--clv-navy)}
    #clientView .clv-org-pill.green{background:rgba(106,143,90,.15);color:#4F7043}
    #clientView .clv-org-pill.coral{background:rgba(249,115,22,.12);color:var(--clv-coral-2)}

    /* Contact mini-card inside coral card */
    #clientView .clv-org-contact{
      display:flex;align-items:center;gap:12px;
      padding:12px 14px;border-radius:14px;margin:2px 0 10px;
      background:linear-gradient(135deg,rgba(249,115,22,.08),rgba(234,88,12,.1));
      border:1px solid rgba(249,115,22,.15);
    }
    #clientView .clv-org-contact-av{
      width:42px;height:42px;border-radius:12px;
      background:linear-gradient(135deg,var(--clv-coral),var(--clv-coral-2));
      color:#fff;font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:800;letter-spacing:.5px;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      box-shadow:0 6px 14px rgba(249,115,22,.3);
    }
    #clientView .clv-org-contact .nm{
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:var(--clv-ink);letter-spacing:-.1px;
    }
    #clientView .clv-org-contact .fn{font-size:11.5px;color:var(--clv-muted);margin-top:2px;font-weight:500}
    #clientView .clv-org-actions{
      display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;
    }
    #clientView .clv-org-btn{
      flex:1;min-width:120px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
      padding:9px 12px;border-radius:11px;cursor:pointer;
      font-size:12px;font-weight:700;text-decoration:none;
      background:rgba(13,45,94,.06);color:var(--clv-navy);border:1px solid rgba(13,45,94,.1);
      transition:all .15s;font-family:inherit;
    }
    #clientView .clv-org-btn svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none}
    #clientView .clv-org-btn:hover{background:var(--clv-coral);color:#fff;border-color:var(--clv-coral);transform:translateY(-1px);box-shadow:0 6px 14px rgba(249,115,22,.3)}

    /* ══════════════════════════════════════════════════════════
       POLISH v3.3 — skeletons, toasts, preview modal, shortcuts
       ══════════════════════════════════════════════════════════ */

    /* ── Loading skeletons (shimmer) ── */
    #clientView .clv-skel{
      background:linear-gradient(90deg,rgba(13,45,94,.06) 0%,rgba(13,45,94,.12) 50%,rgba(13,45,94,.06) 100%);
      background-size:200% 100%;
      animation:clvSkelShimmer 1.6s ease-in-out infinite;
      border-radius:8px;
    }
    @keyframes clvSkelShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
    #clientView .clv-skel-line{height:12px;margin:7px 0}
    #clientView .clv-skel-title{height:17px;margin-bottom:10px;max-width:45%}
    #clientView .clv-skel-block{padding:14px 16px;border-radius:14px;margin-bottom:10px;
      background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.8)}
    #clientView .clv-skel-row{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px dashed rgba(13,45,94,.08)}
    #clientView .clv-skel-row:last-child{border-bottom:none}
    #clientView .clv-skel-circle{width:38px;height:38px;border-radius:50%;flex-shrink:0}
    #clientView .clv-skel-square{width:42px;height:42px;border-radius:11px;flex-shrink:0}
    #clientView .clv-skel-stack{flex:1;min-width:0}

    /* ── Toast notifications ── */
    .clv-toast-host{
      position:fixed;bottom:24px;right:24px;z-index:10000;
      display:flex;flex-direction:column;gap:10px;
      pointer-events:none;max-width:380px;
      font-family:'Inter',system-ui,sans-serif;
    }
    .clv-toast{
      display:flex;align-items:center;gap:11px;
      padding:12px 16px 12px 14px;border-radius:14px;
      background:rgba(255,255,255,.92);
      backdrop-filter:blur(22px) saturate(180%);
      -webkit-backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.95);
      box-shadow:0 18px 44px rgba(13,45,94,.22),inset 0 1px 0 rgba(255,255,255,.95);
      font-size:13px;color:#1A2742;font-weight:500;letter-spacing:.1px;line-height:1.4;
      pointer-events:auto;max-width:380px;
      animation:clvToastIn .35s cubic-bezier(.2,.9,.25,1.1) both;
    }
    @keyframes clvToastIn{from{opacity:0;transform:translateX(60px) translateY(0)}to{opacity:1;transform:translateX(0)}}
    .clv-toast.out{animation:clvToastOut .3s ease-in forwards}
    @keyframes clvToastOut{to{opacity:0;transform:translateX(60px)}}
    .clv-toast-ic{
      width:28px;height:28px;border-radius:9px;flex-shrink:0;color:#fff;
      display:flex;align-items:center;justify-content:center;
      box-shadow:0 4px 10px rgba(0,0,0,.12);
    }
    .clv-toast-ic svg{width:15px;height:15px;stroke:currentColor;stroke-width:2.5;fill:none}
    .clv-toast.success .clv-toast-ic{background:linear-gradient(135deg,#6A8F5A,#86A978)}
    .clv-toast.info    .clv-toast-ic{background:linear-gradient(135deg,#0d2d5e,#1C4A8E)}
    .clv-toast.warning .clv-toast-ic{background:linear-gradient(135deg,#C9943E,#E0B864)}
    .clv-toast.error   .clv-toast-ic{background:linear-gradient(135deg,#C43C3C,#E06A6A)}
    .clv-toast-body{flex:1;min-width:0}
    .clv-toast-close{
      width:22px;height:22px;border-radius:7px;border:none;
      background:rgba(13,45,94,.06);color:var(--clv-muted);cursor:pointer;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      transition:all .15s;
    }
    .clv-toast-close:hover{background:rgba(13,45,94,.14);color:var(--clv-ink)}
    .clv-toast-close svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.5;fill:none}

    /* ── PDF Preview modal ── */
    .clv-preview-modal{
      display:none;position:fixed;inset:0;z-index:9500;
      background:rgba(13,45,94,.55);
      backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      align-items:center;justify-content:center;padding:28px;
      font-family:'Inter',system-ui,sans-serif;
    }
    .clv-preview-modal.show{display:flex;animation:clvPreviewFade .25s ease}
    @keyframes clvPreviewFade{from{opacity:0}to{opacity:1}}
    .clv-preview-box{
      width:100%;max-width:1100px;height:90vh;
      background:#fff;border-radius:22px;
      box-shadow:0 40px 100px rgba(13,45,94,.5);
      display:flex;flex-direction:column;overflow:hidden;
      animation:clvPreviewUp .35s cubic-bezier(.2,.9,.25,1.1);
    }
    @keyframes clvPreviewUp{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
    .clv-preview-head{
      display:flex;align-items:center;gap:12px;
      padding:14px 18px;border-bottom:1px solid rgba(13,45,94,.08);
      background:linear-gradient(180deg,#f8f9fc,#ffffff);
    }
    .clv-preview-ic{
      width:38px;height:38px;border-radius:11px;flex-shrink:0;
      color:#fff;font-weight:800;font-size:10px;letter-spacing:.5px;
      display:flex;align-items:center;justify-content:center;
      box-shadow:0 4px 10px rgba(0,0,0,.1);
    }
    .clv-preview-title{
      font-family:'Sora','Inter',sans-serif;
      font-size:14px;font-weight:700;color:#1A2742;letter-spacing:-.1px;
      flex:1;min-width:0;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    .clv-preview-actions{display:flex;gap:6px;flex-shrink:0}
    .clv-preview-btn{
      width:36px;height:36px;border-radius:10px;
      background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.1);
      color:#0d2d5e;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      transition:all .15s;font-family:inherit;
    }
    .clv-preview-btn:hover{background:rgba(13,45,94,.12);transform:translateY(-1px)}
    .clv-preview-btn.primary{background:linear-gradient(135deg,#F97316,#EA580C);border-color:transparent;color:#fff;box-shadow:0 6px 14px rgba(249,115,22,.3)}
    .clv-preview-btn.primary:hover{box-shadow:0 8px 18px rgba(249,115,22,.45)}
    .clv-preview-btn svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none}
    .clv-preview-body{flex:1;overflow:hidden;position:relative;background:#f3f4f6}
    .clv-preview-body iframe{width:100%;height:100%;border:none}
    .clv-preview-loading{
      position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
      color:#8A8273;font-size:13px;
    }
    .clv-preview-loading .spinner{width:32px;height:32px;border:3px solid rgba(13,45,94,.1);border-top-color:#F97316;border-radius:50%;animation:clvSpin .8s linear infinite}

    /* ── Shortcuts cheat sheet ── */
    .clv-shortcuts-modal{
      display:none;position:fixed;inset:0;z-index:9600;
      background:rgba(13,45,94,.55);
      backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      align-items:center;justify-content:center;padding:28px;
      font-family:'Inter',system-ui,sans-serif;
    }
    .clv-shortcuts-modal.show{display:flex;animation:clvPreviewFade .2s ease}
    .clv-shortcuts-box{
      width:100%;max-width:560px;
      background:#fff;border-radius:22px;
      box-shadow:0 40px 100px rgba(13,45,94,.5);
      overflow:hidden;
      animation:clvPreviewUp .3s cubic-bezier(.2,.9,.25,1.1);
    }
    .clv-shortcuts-head{
      padding:18px 22px;border-bottom:1px solid rgba(13,45,94,.08);
      display:flex;align-items:center;justify-content:space-between;
    }
    .clv-shortcuts-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:16px;font-weight:700;color:#1A2742;margin:0;
    }
    .clv-shortcuts-head p{font-size:12px;color:#8A8273;margin:3px 0 0}
    .clv-shortcuts-grid{
      display:grid;grid-template-columns:1fr 1fr;gap:10px;
      padding:20px 22px;
    }
    @media(max-width:640px){.clv-shortcuts-grid{grid-template-columns:1fr}}
    .clv-shortcut-row{
      display:flex;align-items:center;justify-content:space-between;gap:8px;
      padding:10px 12px;border-radius:10px;background:rgba(13,45,94,.04);
    }
    .clv-shortcut-label{font-size:12.5px;color:#1A2742;font-weight:500;flex:1;min-width:0}
    .clv-shortcut-keys{display:flex;gap:4px;flex-shrink:0}
    .clv-kbd{
      display:inline-flex;align-items:center;justify-content:center;
      min-width:26px;height:22px;padding:0 7px;
      background:#fff;border:1px solid rgba(13,45,94,.18);border-bottom-width:2px;
      border-radius:6px;
      font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
      font-size:11px;font-weight:700;color:#0d2d5e;line-height:1;
    }

    /* ── Focus-visible (keyboard navigation) ── */
    #clientView button:focus-visible,
    #clientView a:focus-visible,
    #clientView input:focus-visible,
    #clientView textarea:focus-visible,
    #clientView select:focus-visible,
    .clv-preview-modal button:focus-visible,
    .clv-shortcuts-modal button:focus-visible{
      outline:none;
      box-shadow:0 0 0 3px rgba(249,115,22,.4),0 0 0 5px rgba(255,255,255,.7);
      border-radius:10px;
    }

    /* ── ICS "Ajouter au calendrier" buttons ── */
    .clv-ics-btn{
      display:inline-flex;align-items:center;gap:6px;
      margin-top:12px;padding:8px 13px;border-radius:10px;
      background:rgba(13,45,94,.06);
      border:1px solid rgba(13,45,94,.1);
      color:var(--clv-navy);
      font-size:11.5px;font-weight:700;letter-spacing:.2px;
      font-family:inherit;cursor:pointer;text-decoration:none;
      transition:all .15s;
    }
    .clv-ics-btn:hover{background:var(--clv-coral);color:#fff;border-color:var(--clv-coral);transform:translateY(-1px);box-shadow:0 6px 14px rgba(249,115,22,.28)}
    .clv-ics-btn svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none}
    /* ICS button inside dashboard next-audit ticket (inverted on light bg) */
    #clientView .clv-next-audit .clv-ics-btn{margin-top:10px}
    /* ICS button inside hero cert card (dark bg) */
    #clientView .clv-certif-hero .clv-ics-btn{
      background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25);
    }

    /* ── Last seen meta (Mon organisme) ── */
    #clientView .clv-org-lastseen{
      display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;
    }
    #clientView .clv-org-lastseen .pill{
      display:inline-flex;align-items:center;gap:7px;
      padding:6px 12px;border-radius:999px;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      font-size:11.5px;color:rgba(255,255,255,.9);font-weight:500;
      backdrop-filter:blur(10px);
    }
    #clientView .clv-org-lastseen .pill svg{width:12px;height:12px;stroke:currentColor;stroke-width:2;fill:none;opacity:.78}
    #clientView .clv-org-lastseen .pill b{color:#fff;font-weight:700;margin-left:2px}

    /* ══════════════ RESPONSIVE ══════════════ */
    @media(max-width:980px){
      #clientView .clv-shell{grid-template-columns:1fr}
      #clientView .clv-sidebar{
        position:fixed;top:0;left:0;bottom:0;width:240px;
        transform:translateX(-100%);transition:transform .3s;
      }
      #clientView .clv-sidebar.open{transform:translateX(0)}
      #clientView .clv-main{padding:70px 18px 48px}
      #clientView .clv-mobile-burger{display:flex !important}
      #clientView .clv-hero{grid-template-columns:1fr;padding:24px 22px}
      #clientView .clv-hero-mark{width:120px;height:120px;margin:0 auto}
      #clientView .clv-hero-mark svg{width:58px;height:58px}
      #clientView .clv-hero h1{font-size:26px}
      #clientView .stats-row{grid-template-columns:repeat(2,1fr)}
    }
    @media(max-width:640px){
      #clientView .clv-hero{padding:22px 18px}
      #clientView .clv-hero h1{font-size:22px}
      #clientView .clv-hero p{font-size:13px}
      #clientView .docs-search input{width:100%}
      #clientView .stats-row{grid-template-columns:1fr}
      #clientView .msg-bubble{max-width:86%}
    }

    @media (prefers-reduced-motion: reduce){
      #clientView *,#clientView *::before,#clientView *::after{
        animation-duration:.001ms !important;animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
      }
      #clientView .clv-blob{animation:none !important}
      #clientView .clv-hero-mark .ring{animation:none !important}
    }
  :root {
    --primary: #003D6A;
    --primary-light: #00527D;
    --primary-dark: #002A4A;
    --accent: #E8A838;
    --accent-light: #F0C060;
    --bg: #F5F6FA;
    --card: #FFFFFF;
    --text: #1A2332;
    --text-secondary: #5A6B7F;
    --border: #E2E6ED;
    --success: #16A34A;
    --warning: #F59E0B;
    --danger: #DC2626;
    --radius: 8px;
  }

  * { margin:0; padding:0; box-sizing:border-box; }

  body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
  }

  /* ══════════════════════════════════════════
     LOGIN PAGE v9 "Confiance" — glass neumorphic
     Scoped under #loginView to avoid app-wide side-effects.
     ══════════════════════════════════════════ */
  #loginView{
    /* stone / ivory palette — neumorphic base (scoped) */
    --lg-bg:#E8E4DB;
    --lg-bg-2:#DCD6CA;
    --lg-bg-dark:#C9C1B0;
    --lg-surface:#EEEAE1;
    --lg-ink:#1A2742;
    --lg-muted:#8A8273;
    --lg-navy:#0d2d5e;
    --lg-navy-2:#1C4A8E;
    --lg-navy-soft:#3B6FB5;
    --lg-navy-glow:rgba(13,45,94,.22);
    --lg-green:#6A8F5A;
    --lg-amber:#C9943E;
    --lg-shadow-d:rgba(141,121,90,.34);
    --lg-shadow-l:rgba(255,252,245,.92);
    --lg-paper:#f6f7fb;
    --lg-line:#e5e7eb;
    position:relative;
    min-height:100vh;width:100%;
    overflow:hidden;
    background:var(--lg-bg);
    color:var(--lg-ink);
    font-family:'Sora','Inter',system-ui,sans-serif;
  }
  #loginView *{box-sizing:border-box}

  /* ════════ LAYER 1 : visuel abstrait géométrique ════════ */
  /* R1 : le fond reprend la trame des documents émis (anneaux + lignes fines).
     Le flou de 2 px écrasait ces tracés d'1 px → on le retire (le motif doit
     rester NET, comme sur le certificat). */
  #loginView .bg-app{
    position:absolute;inset:0;z-index:0;
    background:var(--lg-paper);
    opacity:.95;
    animation:lg-bgSlow 48s ease-in-out infinite alternate;
  }
  @keyframes lg-bgSlow{
    0%{transform:scale(1.02) translate(0,0)}
    100%{transform:scale(1.06) translate(-14px,-10px)}
  }
  #loginView .bg-abstract{width:100%;height:100%;display:block}

  /* ════════ LAYER 2 : scrim + blobs + particles + grain ════════ */
  #loginView .scrim{
    position:absolute;inset:0;z-index:1;pointer-events:none;
    background:radial-gradient(ellipse 100% 90% at 50% 50%, rgba(246,247,251,.42) 0%, rgba(232,228,219,.58) 60%, rgba(200,192,176,.78) 100%);
  }
  /* R1 : halos très adoucis — ils servent d'ambiance, plus de « taches » qui
     masquaient la trame. Le halo central bleu est supprimé (il brouillait les
     anneaux au milieu de la page). */
  #loginView .soft-blob{position:absolute;border-radius:50%;filter:blur(110px);opacity:.22;pointer-events:none;z-index:2;animation:lg-floatSlow 22s ease-in-out infinite}
  #loginView .soft-blob.a{width:420px;height:420px;top:-160px;left:-100px;background:#F5EFE2;animation-delay:0s}
  #loginView .soft-blob.b{width:520px;height:520px;bottom:-220px;right:-120px;background:#E6DFCC;animation-delay:-10s}
  #loginView .soft-blob.c{display:none}
  @keyframes lg-floatSlow{0%,100%{transform:translate(0,0) scale(1) rotate(0deg)}50%{transform:translate(20px,-20px) scale(1.08) rotate(12deg)}}
  #loginView .particles{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
  #loginView .particles .p{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(13,45,94,.35);box-shadow:0 0 8px rgba(13,45,94,.3);animation:lg-pFloat var(--d,18s) ease-in-out infinite;opacity:0}
  @keyframes lg-pFloat{0%{transform:translate(0,0) scale(0);opacity:0}10%{opacity:.7}50%{transform:translate(var(--dx,20px),var(--dy,-80px)) scale(1);opacity:.5}90%{opacity:.2}100%{transform:translate(calc(var(--dx,20px)*1.8),calc(var(--dy,-80px)*2)) scale(.6);opacity:0}}
  #loginView .grain{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:180px 180px}

  /* ════════ TOPBAR ════════ */
  #loginView .nx-top{
    position:absolute;top:0;left:0;right:0;z-index:10;
    padding:24px 36px;display:flex;justify-content:space-between;align-items:center;
    animation:lg-fadeDown .7s .1s both;
  }
  #loginView .brand{display:flex;align-items:center;gap:14px}
  #loginView .brand-mark{
    width:58px;height:58px;border-radius:16px;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(22px) saturate(180%);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 12px 28px rgba(13,45,94,.18),inset 0 1px 0 rgba(255,255,255,.95);
    position:relative;overflow:visible;
    animation:lg-brandBreathe 6s ease-in-out infinite;
    transition:transform .5s cubic-bezier(.2,.9,.25,1.05);
  }
  #loginView .brand-mark::after{
    content:"";position:absolute;inset:-2px;border-radius:18px;pointer-events:none;
    background:conic-gradient(from var(--a,0deg), transparent 0deg, rgba(13,45,94,.22) 40deg, transparent 80deg, transparent 360deg);
    -webkit-mask:radial-gradient(circle, transparent 54%, #000 56%);
            mask:radial-gradient(circle, transparent 54%, #000 56%);
    animation:lg-brandRing 8s linear infinite;opacity:.55;
  }
  #loginView .brand-mark:hover{transform:scale(1.05) rotate(-2deg)}
  @property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
  @keyframes lg-brandRing{to{--a:360deg}}
  @keyframes lg-brandBreathe{
    0%,100%{box-shadow:0 12px 28px rgba(13,45,94,.18),inset 0 1px 0 rgba(255,255,255,.95)}
    50%    {box-shadow:0 14px 34px rgba(13,45,94,.26),0 0 0 6px rgba(13,45,94,.04),inset 0 1px 0 rgba(255,255,255,.95)}
  }
  #loginView .brand-mark svg{width:36px;height:36px;display:block;position:relative;z-index:1}
  #loginView .brand-mark svg *{fill:#0d2d5e}
  #loginView .brand-mark .spark{
    position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;
    background:#fff;box-shadow:0 0 8px #fff,0 0 14px rgba(13,45,94,.45);
    pointer-events:none;z-index:2;animation:lg-sparkFly 1.4s ease-out forwards;
  }
  @keyframes lg-sparkFly{
    0%{transform:translate(-50%,-50%) scale(0);opacity:0}
    20%{transform:translate(calc(-50% + var(--sx)*.3),calc(-50% + var(--sy)*.3)) scale(1);opacity:1}
    100%{transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(.2);opacity:0}
  }
  #loginView .brand-text{display:flex;flex-direction:column;line-height:1.1}
  #loginView .brand-text b{font-family:'Sora',sans-serif;font-size:15px;letter-spacing:4px;color:#0f1a2e;font-weight:800;text-shadow:0 1px 2px rgba(255,255,255,.7)}
  #loginView .brand-text span{font-size:10.5px;color:#3a3528;letter-spacing:1.4px;text-transform:uppercase;margin-top:4px;font-weight:700;text-shadow:0 1px 2px rgba(255,255,255,.65)}
  #loginView .top-right{display:flex;gap:10px;align-items:center}
  #loginView .soft-chip{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(18px) saturate(180%);
    -webkit-backdrop-filter:blur(18px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    padding:9px 16px;border-radius:999px;
    font-size:12px;font-weight:600;color:var(--lg-ink);
    box-shadow:0 6px 16px rgba(13,45,94,.12),inset 0 1px 0 rgba(255,255,255,.95);
    transition:all .2s;cursor:pointer;
  }
  #loginView .soft-chip:hover{background:rgba(255,255,255,.94)}
  #loginView .soft-chip .live{width:8px;height:8px;border-radius:50%;background:var(--lg-green);box-shadow:0 0 8px var(--lg-green),inset 0 0 3px rgba(0,0,0,.2)}

  /* ════════ MAIN LAYOUT ════════ */
  #loginView .nx-main{
    position:relative;z-index:5;
    min-height:100vh;padding:96px 32px 72px;
    display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;
    max-width:1240px;margin:0 auto;
  }
  #loginView .hero{
    position:relative;display:block;width:100%;min-width:0;
    animation:lg-fadeUp .9s .2s both;
  }
  /* defensive resets — override app-wide .hero and .hero h1 / .hero p rules */
  #loginView .hero > *{display:block}
  #loginView .hero .eyebrow{display:inline-flex}
  #loginView .hero .cofrac-card{display:inline-flex}
  #loginView .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    padding:9px 18px;border-radius:999px;
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(18px) saturate(180%);
    -webkit-backdrop-filter:blur(18px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    box-shadow:0 6px 18px rgba(13,45,94,.1),inset 0 1px 0 rgba(255,255,255,.95);
    font-size:11.5px;color:var(--lg-navy);letter-spacing:1.5px;text-transform:uppercase;font-weight:700;
    margin-bottom:22px;
  }
  #loginView .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--lg-navy);box-shadow:0 0 8px var(--lg-navy),0 0 0 0 var(--lg-navy);animation:lg-pulseDot 2s infinite}
  @keyframes lg-pulseDot{0%{box-shadow:0 0 8px var(--lg-navy),0 0 0 0 rgba(13,45,94,.5)}70%{box-shadow:0 0 8px var(--lg-navy),0 0 0 10px rgba(13,45,94,0)}100%{box-shadow:0 0 8px var(--lg-navy),0 0 0 0 rgba(13,45,94,0)}}
  /* ══ R1b — LE TITRE TIENT TOUJOURS SUR EXACTEMENT DEUX LIGNES ══════════════
     Avant : un simple <br> + max-width:560px + text-wrap:balance → sur un écran
     large la 1re ligne débordait des 560 px et se recoupait en deux (3 lignes au
     total). Désormais chaque ligne est un bloc en `white-space:nowrap` (aucune
     coupure possible) et `_lgFitTitle()` réduit la taille de police jusqu'à ce
     que la plus longue tienne dans la colonne — quelle que soit la largeur. */
  #loginView h1.hero-title{
    font-family:'Sora',sans-serif;
    font-size:54px;line-height:1.06;font-weight:800;letter-spacing:-1.8px;color:#0f1a2e;
    margin-bottom:20px;max-width:none;
    text-shadow:0 1px 2px rgba(255,255,255,.75),0 2px 12px rgba(255,255,255,.55);
  }
  #loginView h1.hero-title .ln{display:block;white-space:nowrap;width:max-content;max-width:none}
  #loginView h1.hero-title em{
    font-style:normal;font-weight:600;color:#0d2d5e;position:relative;display:inline-block;
    z-index:1;isolation:isolate;padding:0 6px;
  }
  #loginView h1.hero-title em::before{
    content:"";position:absolute;left:0;right:0;bottom:6px;height:18px;
    background:linear-gradient(100deg,rgba(13,45,94,.22) 0%,rgba(13,45,94,.32) 35%,rgba(13,45,94,.26) 70%,rgba(13,45,94,.34) 100%);
    border-radius:4px;z-index:-1;transform-origin:left center;
    animation:lg-markerDraw 1.1s 1.1s cubic-bezier(.65,.05,.35,1) both, lg-markerPulse 4.5s 2.3s ease-in-out infinite;
  }
  @keyframes lg-markerDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes lg-markerPulse{0%,100%{opacity:1}50%{opacity:.82}}
  #loginView .hero-sub{
    font-size:15.5px;color:#3a3528;max-width:500px;line-height:1.6;margin-bottom:28px;font-weight:500;
    text-shadow:0 1px 2px rgba(255,255,255,.7),0 1px 6px rgba(255,255,255,.45);
  }
  #loginView .hero-sub b{color:#0f1a2e;font-weight:700}

  /* COFRAC card */
  #loginView .cofrac-card{
    display:inline-flex;flex-direction:column;gap:4px;
    padding:18px 24px;border-radius:18px;
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(26px) saturate(180%);
    -webkit-backdrop-filter:blur(26px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    box-shadow:0 20px 44px rgba(13,45,94,.14),inset 0 1px 0 rgba(255,255,255,.95);
    animation:lg-fadeUp .8s .55s both;
    position:relative;overflow:hidden;margin-top:8px;
    transition:transform .5s cubic-bezier(.2,.9,.25,1.05), box-shadow .5s;
  }
  #loginView .cofrac-card:hover{transform:translateY(-3px);box-shadow:0 28px 56px rgba(13,45,94,.2),inset 0 1px 0 rgba(255,255,255,.95)}
  #loginView .cofrac-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 15% 0%, rgba(255,255,255,.5), transparent 55%)}
  #loginView .cofrac-card::after{content:"";position:absolute;top:0;left:-40%;width:40%;height:100%;pointer-events:none;background:linear-gradient(110deg, transparent 0%, rgba(255,255,255,.45) 50%, transparent 100%);animation:lg-cofracSweep 9s ease-in-out 3s infinite}
  @keyframes lg-cofracSweep{0%,80%,100%{transform:translateX(0);opacity:0}85%{opacity:1}95%{transform:translateX(350%);opacity:0}}
  #loginView .cofrac-card .lbl{font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--lg-muted);font-weight:700}
  #loginView .cofrac-card .mark{font-family:'Sora',sans-serif;font-size:17px;font-weight:800;color:var(--lg-navy);letter-spacing:.2px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  #loginView .cofrac-card .mark b{letter-spacing:2px}
  #loginView .cofrac-card .note{font-size:11.5px;color:var(--lg-muted);font-weight:500;line-height:1.4;margin-top:2px}
  #loginView .cofrac-card .note a{color:var(--lg-navy);text-decoration:none;font-weight:600;border-bottom:1px dashed rgba(13,45,94,.35)}
  #loginView .cofrac-card .note a:hover{border-bottom-style:solid}

  /* ════════ CARD RIGHT ════════ */
  #loginView .card-shell{position:relative;animation:lg-cardIn 1s .4s cubic-bezier(.2,.9,.25,1.05) both;perspective:1000px}
  @keyframes lg-cardIn{from{opacity:0;transform:translateY(25px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
  #loginView .nx-card{
    position:relative;padding:40px 36px 32px;border-radius:28px;
    background:rgba(255,255,255,.84);
    backdrop-filter:blur(38px) saturate(180%);
    -webkit-backdrop-filter:blur(38px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    box-shadow:0 32px 80px rgba(13,45,94,.2),0 12px 36px rgba(13,45,94,.1),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.1);
    max-width:440px;margin-left:auto;overflow:hidden;
    transform-style:preserve-3d;will-change:transform;
    transition:transform .6s cubic-bezier(.2,.9,.25,1.05);
  }
  #loginView .nx-card::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:28px;background:radial-gradient(ellipse 80% 60% at 20% 0%, rgba(255,255,255,.55), transparent 60%)}
  #loginView .nx-card > *{position:relative;z-index:1}
  #loginView .card-title{
    font-family:'Sora',sans-serif;font-size:30px;font-weight:700;color:var(--lg-ink);
    letter-spacing:-.8px;margin-bottom:6px;
    background:linear-gradient(90deg,var(--lg-ink) 0%,var(--lg-ink) 45%,var(--lg-navy) 55%,var(--lg-navy) 100%);
    background-size:220% 100%;background-position:100% 0;
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    animation:lg-titleWipe 1.2s .9s cubic-bezier(.55,.05,.25,1) both;
  }
  @keyframes lg-titleWipe{from{background-position:100% 0}to{background-position:0 0}}
  #loginView .card-sub{font-size:13.5px;color:var(--lg-muted);margin-bottom:22px}

  /* Login error box (kept ID #loginError for existing JS) */
  #loginView .login-error{
    background:linear-gradient(135deg,#FEF2F2,#FEE2E2);
    color:#B91C1C;border:1px solid #FCA5A5;
    padding:11px 14px;border-radius:12px;
    font-size:13px;margin-bottom:14px;
    display:none;
    animation:lg-shake .5s cubic-bezier(.36,.07,.19,.97);
  }

  /* Inputs */
  #loginView .field{margin-bottom:18px;position:relative}
  #loginView .ipt-wrap{
    position:relative;border-radius:14px;
    background:rgba(255,255,255,.4);
    backdrop-filter:blur(16px) saturate(180%);
    -webkit-backdrop-filter:blur(16px) saturate(180%);
    border:1px solid rgba(255,255,255,.55);
    box-shadow:0 2px 8px rgba(13,45,94,.05),inset 0 1px 0 rgba(255,255,255,.6);
    transition:all .25s;
  }
  #loginView .ipt-wrap:hover{background:rgba(255,255,255,.5);border-color:rgba(13,45,94,.2);transform:translateY(-1px);box-shadow:0 6px 14px rgba(13,45,94,.08),inset 0 1px 0 rgba(255,255,255,.7)}
  #loginView .field:focus-within .ipt-wrap{background:rgba(255,255,255,.58);border-color:rgba(13,45,94,.35);box-shadow:0 0 0 3px rgba(13,45,94,.14),0 4px 12px rgba(13,45,94,.08),inset 0 1px 0 rgba(255,255,255,.7)}
  #loginView .ipt-wrap input{
    width:100%;padding:22px 46px 10px 46px;border:none;background:transparent;outline:none;
    font-family:inherit;font-size:14.5px;color:var(--lg-ink);font-weight:500;letter-spacing:.2px;
  }
  #loginView .ipt-wrap input::placeholder{color:transparent}
  #loginView .ipt-wrap label{
    position:absolute;left:46px;top:50%;transform:translateY(-50%);
    color:rgba(26,39,66,.52);font-weight:500;font-size:14px;pointer-events:none;
    transition:all .22s cubic-bezier(.2,.9,.25,1.05);
    background:transparent;padding:0;letter-spacing:.1px;text-transform:none;display:block;margin:0;
  }
  #loginView .ipt-wrap input:focus ~ label,
  #loginView .ipt-wrap input:not(:placeholder-shown) ~ label{
    top:9px;transform:translateY(0);
    font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--lg-navy);font-weight:700;
  }
  #loginView .ipt-wrap .l-ico{
    position:absolute;left:12px;top:50%;transform:translateY(-50%);
    width:24px;height:24px;border-radius:50%;
    background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.7);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 6px rgba(13,45,94,.08);
    transition:transform .3s cubic-bezier(.2,.9,.25,1.05);
  }
  #loginView .ipt-wrap .l-ico svg{width:12px;height:12px;stroke:var(--lg-muted);stroke-width:2;fill:none;transition:stroke .25s}
  #loginView .field:focus-within .l-ico{transform:translateY(-50%) scale(1.08)}
  #loginView .field:focus-within .l-ico svg{stroke:var(--lg-navy)}
  #loginView .ipt-wrap .r-ico{
    position:absolute;right:12px;top:50%;transform:translateY(-50%);
    width:24px;height:24px;border-radius:50%;cursor:pointer;
    background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.7);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 6px rgba(13,45,94,.08);
    padding:0;font:inherit;color:inherit;
  }
  #loginView .ipt-wrap .r-ico svg{width:12px;height:12px;stroke:var(--lg-muted);stroke-width:2;fill:none}
  #loginView .ipt-wrap .r-ico:active{background:rgba(13,45,94,.12)}
  #loginView .ipt-wrap .r-valid{
    opacity:0;transform:translateY(-50%) scale(.5);pointer-events:none;
    background:linear-gradient(145deg,#1fbf6e,#0f9d5a);border-color:transparent;
    transition:all .3s cubic-bezier(.2,.9,.25,1.05);
  }
  #loginView .ipt-wrap .r-valid svg{stroke:#fff;stroke-width:3;fill:none}
  #loginView .field.valid .r-valid{opacity:1;transform:translateY(-50%) scale(1)}
  #loginView .field.error .ipt-wrap{
    border-color:rgba(196,60,60,.55);
    box-shadow:0 0 0 3px rgba(196,60,60,.14),0 4px 12px rgba(196,60,60,.08),inset 0 1px 0 rgba(255,255,255,.7);
    animation:lg-shake .45s cubic-bezier(.36,.07,.19,.97) both;
  }
  @keyframes lg-shake{
    10%,90%{transform:translateX(-1px)}
    20%,80%{transform:translateX(2px)}
    30%,50%,70%{transform:translateX(-4px)}
    40%,60%{transform:translateX(4px)}
  }
  #loginView .caps-hint{
    display:none;align-items:center;gap:5px;margin-top:6px;padding:4px 10px;
    font-size:11px;font-weight:600;color:#b57a00;
    background:rgba(255,214,124,.28);border:1px solid rgba(181,122,0,.25);
    border-radius:8px;width:fit-content;animation:lg-fadeUp .25s both;
  }
  #loginView .caps-hint.on{display:inline-flex}
  #loginView .caps-hint svg{width:11px;height:11px;stroke:currentColor;stroke-width:2;fill:none}

  /* Row: remember / forgot */
  #loginView .row{display:flex;justify-content:space-between;align-items:center;margin:16px 0 22px;font-size:13px}
  #loginView .check{display:inline-flex;align-items:center;gap:10px;color:var(--lg-muted);cursor:pointer;user-select:none;font-weight:500}
  #loginView .check input{display:none}
  #loginView .check .box{
    width:22px;height:22px;border-radius:7px;
    background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.7);
    display:flex;align-items:center;justify-content:center;transition:all .2s;
    box-shadow:0 2px 4px rgba(13,45,94,.06),inset 0 1px 0 rgba(255,255,255,.8);
  }
  #loginView .check input:checked + .box{
    background:linear-gradient(145deg,var(--lg-navy-2),var(--lg-navy));
    border-color:transparent;
    box-shadow:0 4px 10px rgba(13,45,94,.3),inset 0 1px 0 rgba(255,255,255,.2);
  }
  #loginView .check .box svg{width:11px;height:11px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transform:scale(.5);transition:all .2s}
  #loginView .check input:checked + .box svg{opacity:1;transform:scale(1)}
  #loginView .forgot{color:var(--lg-navy);font-weight:600;text-decoration:none;padding:6px 12px;border-radius:10px;transition:all .2s}
  #loginView .forgot:hover{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.6)}

  /* CTA */
  #loginView .cta{
    width:100%;padding:17px 26px;border:none;border-radius:16px;cursor:pointer;
    background:linear-gradient(145deg,var(--lg-navy-2),var(--lg-navy));
    color:#fff;font-family:inherit;font-size:14.5px;font-weight:700;letter-spacing:.5px;
    display:inline-flex;align-items:center;justify-content:space-between;gap:10px;
    box-shadow:0 14px 32px rgba(13,45,94,.38),0 4px 12px rgba(13,45,94,.18),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -1px 0 rgba(0,0,0,.18);
    transition:all .2s;position:relative;overflow:hidden;
  }
  #loginView .cta::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);transform:translateX(-120%);animation:lg-ctaShine 7s ease-in-out 2s infinite}
  @keyframes lg-ctaShine{0%,70%,100%{transform:translateX(-120%)}85%{transform:translateX(120%)}}
  #loginView .cta:hover{transform:translateY(-1px);box-shadow:0 18px 40px rgba(13,45,94,.45),0 6px 16px rgba(13,45,94,.22),inset 0 1px 0 rgba(255,255,255,.28)}
  #loginView .cta:active{transform:translateY(0);box-shadow:inset 0 4px 10px rgba(0,0,0,.25)}
  #loginView .cta .arrow{
    width:38px;height:38px;border-radius:50%;
    background:rgba(255,255,255,.2);
    display:inline-flex;align-items:center;justify-content:center;
    box-shadow:inset 2px 2px 3px rgba(0,0,0,.18),inset -2px -2px 3px rgba(255,255,255,.2);
    transition:all .3s;animation:lg-arrowNudge 3.2s ease-in-out infinite;
  }
  @keyframes lg-arrowNudge{0%,60%,100%{transform:translateX(0)}75%{transform:translateX(3px)}}
  #loginView .cta:hover .arrow{transform:translateX(4px) rotate(-8deg);background:rgba(255,255,255,.34)}
  #loginView .cta .arrow svg{width:16px;height:16px;stroke:#fff;stroke-width:2.5;fill:none}
  #loginView .cta .ripple{position:absolute;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.55);transform:translate(-50%,-50%) scale(0);animation:lg-rip .65s ease-out forwards;pointer-events:none}
  @keyframes lg-rip{to{transform:translate(-50%,-50%) scale(40);opacity:0}}

  /* Status bar (footer) */
  #loginView .nx-status{
    position:absolute;bottom:14px;left:24px;right:24px;z-index:10;
    padding:12px 22px;border-radius:14px;
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(20px) saturate(180%);
    -webkit-backdrop-filter:blur(20px) saturate(180%);
    border:1px solid rgba(255,255,255,.9);
    box-shadow:0 10px 28px rgba(13,45,94,.12),inset 0 1px 0 rgba(255,255,255,.95);
    display:flex;justify-content:space-between;align-items:center;
    font-size:12px;color:var(--lg-ink);letter-spacing:.4px;font-weight:500;
    animation:lg-fadeUp .8s 1s both;
  }
  #loginView .nx-status b{color:var(--lg-navy);font-weight:700}
  #loginView .nx-status .live{display:inline-block;width:7px;height:7px;border-radius:50%;background:#14b86b;margin-right:6px;vertical-align:middle;box-shadow:0 0 0 0 rgba(20,184,107,.55);animation:lg-livePulse 2.2s infinite}
  @keyframes lg-livePulse{0%{box-shadow:0 0 0 0 rgba(20,184,107,.55)}70%{box-shadow:0 0 0 8px rgba(20,184,107,0)}100%{box-shadow:0 0 0 0 rgba(20,184,107,0)}}
  #loginView .nx-status .cluster{display:flex;gap:22px;align-items:center}
  #loginView .nx-status .clock{
    font-variant-numeric:tabular-nums;
    font-family:'Sora',sans-serif;font-weight:600;color:var(--lg-ink);letter-spacing:.8px;font-size:12px;
    padding:3px 10px;border-radius:7px;background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.1);
  }
  #loginView .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

  /* typing dots during CTA loading */
  #loginView .t-dots{display:inline-block;letter-spacing:2px;vertical-align:baseline}
  #loginView .t-dots i{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin:0 1.5px;opacity:.35;animation:lg-tdots 1.1s ease-in-out infinite}
  #loginView .t-dots i:nth-child(2){animation-delay:.18s}
  #loginView .t-dots i:nth-child(3){animation-delay:.36s}
  @keyframes lg-tdots{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

  @keyframes lg-fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
  @keyframes lg-fadeDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

  @media (prefers-reduced-motion: reduce){
    #loginView *,#loginView *::before,#loginView *::after{
      animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;
    }
    #loginView .bg-app{animation:none!important;filter:blur(6px) saturate(.85)!important}
    #loginView .soft-blob,#loginView .particles .p,#loginView .cta::after,#loginView .cofrac-card::after,#loginView .brand-mark::after{animation:none!important}
    #loginView .nx-card{transform:none!important}
  }

  @media(max-width:980px){
    #loginView .nx-main{grid-template-columns:1fr;gap:32px;padding:96px 24px 100px}
    #loginView h1.hero-title{font-size:40px}
    #loginView .cofrac-card{max-width:420px;width:100%}
    #loginView .nx-status{flex-direction:column;gap:6px}
  }
  @media(max-height:780px){
    #loginView .nx-main{padding:88px 32px 80px}
    #loginView h1.hero-title{font-size:44px;margin-bottom:16px}
    #loginView .hero-sub{margin-bottom:22px;font-size:14.5px}
  }
  @media(max-width:640px){
    #loginView .nx-top{padding:16px 18px}
    #loginView .brand-mark{width:48px;height:48px;border-radius:14px}
    #loginView .brand-mark svg{width:30px;height:30px}
    #loginView .brand-text b{font-size:13px;letter-spacing:3px}
    #loginView .top-right .soft-chip:nth-child(2){display:none}
    #loginView .nx-main{padding:100px 18px 110px}
    #loginView .nx-card{padding:30px 22px 24px;border-radius:22px}
    #loginView .card-title{font-size:24px}
    #loginView h1.hero-title{font-size:32px;letter-spacing:-1px}
  }

  /* ══════════════════════════════════════════
     CLIENT SPLASH SCREEN v3 — « Éclat »
     Minimal lumineux : ivoire, sans carte, lettres animées,
     arc orbital fin, liseré de progression à pointe corail
     ══════════════════════════════════════════ */
  .nx-splash{
    display:none;position:fixed;inset:0;z-index:9999;
    background:#ECE8DF;
    color:#1A2742;
    font-family:'Sora','Inter',system-ui,sans-serif;
    align-items:center;justify-content:center;
    overflow:hidden;
  }
  .nx-splash.is-open{display:flex}
  .nx-splash *{box-sizing:border-box}

  /* Ambiance : lumière + grain + balayage */
  .nx-splash-light{
    position:absolute;inset:0;pointer-events:none;
    background:
      radial-gradient(ellipse 70% 50% at 50% 38%, rgba(255,255,255,.85), transparent 60%),
      radial-gradient(ellipse 120% 100% at 50% 112%, rgba(198,190,174,.6), transparent 62%);
  }
  .nx-splash-grain{
    position:absolute;inset:0;pointer-events:none;
    opacity:.05;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='nn'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23nn)'/></svg>");
    background-size:180px 180px;
  }
  .nx-splash-sweep{
    position:absolute;inset:-20%;pointer-events:none;opacity:0;
    background:linear-gradient(115deg, transparent 42%, rgba(255,255,255,.55) 50%, transparent 58%);
  }
  .nx-splash.is-open .nx-splash-sweep{animation:nxSplashSweep 3s 1.1s ease-in-out 1 both}
  @keyframes nxSplashSweep{
    0%{transform:translateX(-28%);opacity:0}
    18%{opacity:1}
    100%{transform:translateX(28%);opacity:0}
  }

  /* Composition centrale (sans carte) */
  .nx-splash-wrap{position:relative;z-index:2;text-align:center;padding:0 24px;width:100%}

  /* Q + arc orbital fin */
  .nx-splash-mark{position:relative;width:128px;height:128px;margin:0 auto 30px;opacity:0}
  .nx-splash.is-open .nx-splash-mark{animation:nxSplashPop .9s .15s cubic-bezier(.34,1.56,.64,1) both}
  @keyframes nxSplashPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
  .nx-splash-arc{position:absolute;inset:0}
  .nx-splash-arc svg{width:100%;height:100%;display:block;animation:nxSplashSpin 2.8s linear infinite}
  .nx-splash-mark.done .nx-splash-arc svg{animation-play-state:paused}
  .nx-splash-mark.done .nx-splash-arc{opacity:.25;transition:opacity .7s}
  @keyframes nxSplashSpin{to{transform:rotate(360deg)}}
  .nx-splash-q{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
  .nx-splash-q svg{width:74px;height:74px;filter:drop-shadow(0 10px 22px rgba(13,45,94,.25))}

  /* Wordmark — lettres animées une à une */
  .nx-splash-brand{
    display:flex;justify-content:center;
    font-family:'Sora',sans-serif;font-weight:800;font-size:34px;
    letter-spacing:9px;color:#0d2d5e;padding-left:9px;
  }
  .nx-splash-brand i{font-style:normal;opacity:0}
  .nx-splash.is-open .nx-splash-brand i{animation:nxSplashLt .6s cubic-bezier(.2,.9,.3,1.25) both}
  .nx-splash.is-open .nx-splash-brand i:nth-child(1){animation-delay:.35s}
  .nx-splash.is-open .nx-splash-brand i:nth-child(2){animation-delay:.43s}
  .nx-splash.is-open .nx-splash-brand i:nth-child(3){animation-delay:.51s}
  .nx-splash.is-open .nx-splash-brand i:nth-child(4){animation-delay:.59s}
  .nx-splash.is-open .nx-splash-brand i:nth-child(5){animation-delay:.67s}
  @keyframes nxSplashLt{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
  .nx-splash-sub{
    margin-top:10px;font-size:11px;letter-spacing:2.2px;text-transform:uppercase;
    color:#8A8273;font-weight:700;opacity:0;
  }
  .nx-splash.is-open .nx-splash-sub{animation:nxSplashUp .6s .85s both}

  /* Statut dynamique (croisé-fondu) */
  .nx-splash-welcome{
    margin-top:30px;font-family:'Inter',system-ui,sans-serif;
    font-size:15.5px;font-weight:500;color:#1A2742;letter-spacing:-.1px;
    min-height:23px;
    opacity:0;transform:translateY(6px);
    transition:opacity .45s,transform .45s;
  }
  .nx-splash-welcome.show{opacity:1;transform:none}
  .nx-splash-welcome b{color:#0d2d5e;font-weight:700}

  /* Liseré de progression à pointe corail */
  .nx-splash-progress{
    position:relative;margin:18px auto 0;width:280px;max-width:80%;height:2px;
    background:rgba(13,45,94,.12);border-radius:99px;opacity:0;
  }
  .nx-splash.is-open .nx-splash-progress{animation:nxSplashUp .6s 1.05s both}
  .nx-splash-progress-bar{
    position:absolute;left:0;top:0;bottom:0;width:0%;border-radius:99px;
    background:linear-gradient(90deg,#0d2d5e,#1C4A8E);
    transition:width 1s cubic-bezier(.4,0,.2,1);
  }
  .nx-splash-progress-bar::after{
    content:"";position:absolute;right:-3px;top:50%;width:8px;height:8px;border-radius:50%;
    background:#F97316;transform:translateY(-50%);box-shadow:0 0 12px rgba(249,115,22,.8);
  }

  /* Badge sécurité */
  .nx-splash-foot{
    position:absolute;left:0;right:0;bottom:34px;
    display:flex;justify-content:center;align-items:center;gap:8px;
    font-family:'Inter',system-ui,sans-serif;
    font-size:10.5px;color:#8A8273;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;
    opacity:0;
  }
  .nx-splash.is-open .nx-splash-foot{animation:nxSplashUp .7s 1.4s both}
  .nx-splash-foot .shield{width:12px;height:12px;fill:none;stroke:#0d2d5e;stroke-width:2}

  /* Sortie */
  .nx-splash.is-closing{
    opacity:0;transform:scale(1.04);
    transition:opacity .55s ease, transform .55s ease;
    pointer-events:none;
  }

  @keyframes nxSplashUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

  @media(max-width:640px){
    .nx-splash-mark{width:108px;height:108px;margin-bottom:24px}
    .nx-splash-q svg{width:62px;height:62px}
    .nx-splash-brand{font-size:27px;letter-spacing:6px;padding-left:6px}
    .nx-splash-welcome{font-size:14px}
    .nx-splash-progress{width:210px}
  }
  @media (prefers-reduced-motion: reduce){
    .nx-splash-arc svg,.nx-splash-sweep{animation:none!important}
  }



    /* ══════════════════════════════════════════════════════════
       ESPACE AUDITEUR v1 — DA Confiance (ivoire + glass + Sora)
       ══════════════════════════════════════════════════════════ */
    #auditeurView{
      --aud-bg:#E8E4DB;
      --aud-paper:rgba(255,255,255,.84);
      --aud-ink:#1A2742;
      --aud-ink-2:#0f1a2e;
      --aud-muted:#8A8273;
      --aud-navy:#0d2d5e;
      --aud-navy-2:#1C4A8E;
      --aud-navy-soft:#3B6FB5;
      --aud-coral:#F97316;
      --aud-coral-2:#EA580C;
      --aud-green:#6A8F5A;
      --aud-amber:#C9943E;
      --aud-line:rgba(13,45,94,.08);
      --aud-shadow-card:0 10px 28px rgba(13,45,94,.08);
      --aud-shadow-hover:0 18px 44px rgba(13,45,94,.14);
      position:relative;height:100vh;overflow:hidden;
      background:var(--aud-bg);color:var(--aud-ink);
      font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:.1px;
    }
    #auditeurView *{box-sizing:border-box}

    /* Ambient layers */
    #auditeurView .aud-blob{
      position:fixed;border-radius:50%;filter:blur(90px);opacity:.4;pointer-events:none;z-index:0;
      animation:audBlob 22s ease-in-out infinite;
    }
    #auditeurView .aud-blob.a{width:540px;height:540px;top:-180px;left:-140px;background:#F5EFE2}
    #auditeurView .aud-blob.b{width:620px;height:620px;bottom:-220px;right:-170px;background:rgba(13,45,94,.16);animation-delay:-10s}
    #auditeurView .aud-blob.c{width:300px;height:300px;top:45%;left:60%;background:rgba(249,115,22,.1);animation-delay:-6s}
    @keyframes audBlob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,-20px) scale(1.08)}}
    #auditeurView .aud-grain{
      position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.04;mix-blend-mode:multiply;
      background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
      background-size:180px 180px;
    }

    /* Shell */
    #auditeurView .aud-shell{
      position:relative;z-index:2;display:grid;grid-template-columns:240px 1fr;
      height:100vh;overflow:hidden;
    }

    /* Sidebar */
    #auditeurView .aud-sidebar{
      position:relative;z-index:5;height:100vh;max-height:100vh;overflow-y:auto;
      background:var(--aud-navy);color:#fff;padding:22px 16px 18px;
      display:flex;flex-direction:column;gap:14px;
      border-right:1px solid rgba(255,255,255,.06);
      box-shadow:4px 0 24px rgba(13,45,94,.14);
    }
    #auditeurView .aud-sidebar::-webkit-scrollbar{width:4px}
    #auditeurView .aud-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
    #auditeurView .aud-brand{
      display:flex;align-items:center;gap:12px;padding:6px 8px 16px;border-bottom:1px solid rgba(255,255,255,.1);
    }
    #auditeurView .aud-brand-mark{
      width:44px;height:44px;border-radius:12px;background:#fff;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;
      box-shadow:0 6px 16px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #auditeurView .aud-brand-mark svg{width:30px;height:30px}
    #auditeurView .aud-brand-text b{font-family:'Sora','Inter',sans-serif;display:block;font-size:14px;letter-spacing:4px;font-weight:800;color:#fff}
    #auditeurView .aud-brand-text span{display:block;margin-top:3px;font-size:9.5px;color:rgba(255,255,255,.55);letter-spacing:1.4px;text-transform:uppercase;font-weight:600}
    #auditeurView .aud-nav-label{
      font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.42);margin:10px 6px 4px;font-weight:700;
    }
    #auditeurView .aud-nav{display:flex;flex-direction:column;gap:3px;flex-grow:1}
    #auditeurView .aud-nav-tab{
      position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;cursor:pointer;
      color:rgba(255,255,255,.72);font-size:13px;font-weight:500;letter-spacing:.1px;
      background:transparent;border:none;width:100%;text-align:left;font-family:inherit;
      transition:background .18s,color .18s;
    }
    #auditeurView .aud-nav-tab svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.9;fill:none;flex-shrink:0}
    #auditeurView .aud-nav-tab span:not(.aud-msg-badge){flex-grow:1}
    #auditeurView .aud-nav-tab:hover{background:rgba(255,255,255,.07);color:#fff}
    #auditeurView .aud-nav-tab.active{background:rgba(255,255,255,.13);color:#fff;font-weight:600}
    #auditeurView .aud-nav-tab.active::before{
      content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:3px;
      background:var(--aud-coral);border-radius:3px;box-shadow:0 0 8px rgba(249,115,22,.6);
    }
    #auditeurView .aud-msg-badge{
      background:var(--aud-coral);color:#fff;font-size:10px;font-weight:700;
      padding:2px 7px;border-radius:999px;margin-left:auto;box-shadow:0 2px 6px rgba(249,115,22,.4);
    }
    #auditeurView .aud-side-foot{
      padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
      display:flex;flex-direction:column;gap:10px;
    }
    #auditeurView .aud-side-user{
      display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;
      background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);
    }
    #auditeurView .aud-side-user .user-avatar{
      width:32px;height:32px;border-radius:50%;
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));
      color:#fff;font-weight:700;font-size:12px;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
    }
    #auditeurView .aud-side-name{font-size:12.5px;font-weight:600;color:#fff;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    #auditeurView .aud-side-role{font-size:10px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:1px;margin-top:2px}
    #auditeurView .btn-logout{
      background:rgba(255,255,255,.07);color:rgba(255,255,255,.85);
      border:1px solid rgba(255,255,255,.12);padding:9px 14px;border-radius:10px;
      font-size:12.5px;font-weight:600;cursor:pointer;
      display:inline-flex;align-items:center;gap:8px;justify-content:center;font-family:inherit;
      transition:all .18s;
    }
    #auditeurView .btn-logout:hover{background:var(--aud-coral);color:#fff;border-color:var(--aud-coral)}

    /* Main */
    #auditeurView .aud-main{
      position:relative;min-width:0;height:100vh;max-height:100vh;
      overflow-y:auto;overflow-x:hidden;padding:28px 36px 48px;scroll-behavior:smooth;
    }
    #auditeurView .aud-main::-webkit-scrollbar{width:10px}
    #auditeurView .aud-main::-webkit-scrollbar-thumb{background:rgba(13,45,94,.18);border-radius:5px;border:2px solid transparent;background-clip:padding-box}

    /* Mobile burger */
    #auditeurView .aud-mobile-burger{
      display:none;position:fixed;top:16px;left:16px;z-index:100;
      width:42px;height:42px;border-radius:12px;
      background:rgba(255,255,255,.9);backdrop-filter:blur(14px);
      border:1px solid rgba(255,255,255,.9);cursor:pointer;
      align-items:center;justify-content:center;color:var(--aud-navy);
      box-shadow:0 6px 14px rgba(13,45,94,.16);
    }
    #auditeurView .aud-mobile-burger svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.2;fill:none}

    /* Tab panels */
    #auditeurView .aud-tab-panel{display:none}
    #auditeurView .aud-tab-panel.active{display:block;animation:audFadeIn .4s cubic-bezier(.2,.9,.25,1.05)}
    @keyframes audFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

    /* Glass card */
    #auditeurView .aud-card{
      position:relative;background:var(--aud-paper);
      backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);border-radius:20px;padding:22px 24px;
      box-shadow:var(--aud-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      margin-bottom:18px;
    }
    #auditeurView .aud-card-header{margin-bottom:16px}
    #auditeurView .aud-card-header h3{
      font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:700;
      color:var(--aud-ink);margin:0 0 4px;letter-spacing:-.3px;
    }
    #auditeurView .aud-card-header p{font-size:12.5px;color:var(--aud-muted);margin:0;line-height:1.5}

    /* Section head (re-used in every panel) */
    #auditeurView .aud-section-head{
      display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;
      margin-bottom:18px;
    }
    #auditeurView .aud-section-head h2{
      font-family:'Sora','Inter',sans-serif;font-size:24px;font-weight:700;color:var(--aud-ink-2);
      margin:0 0 4px;letter-spacing:-.5px;
    }
    #auditeurView .aud-section-head p{font-size:13px;color:var(--aud-muted);margin:0;line-height:1.5;max-width:560px}
    #auditeurView .aud-btn-primary{
      display:inline-flex;align-items:center;gap:7px;
      padding:10px 18px;border-radius:11px;border:none;cursor:pointer;
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));
      color:#fff;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.2px;
      box-shadow:0 8px 18px rgba(249,115,22,.32);
      transition:all .18s;
    }
    #auditeurView .aud-btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(249,115,22,.45)}

    /* Hero (dashboard) */
    #auditeurView .aud-hero{
      position:relative;overflow:hidden;
      border-radius:24px;padding:32px 36px;margin-bottom:22px;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 55%,#3B6FB5 100%);
      color:#fff;box-shadow:0 24px 60px rgba(13,45,94,.28);
      display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;min-height:240px;
    }
    #auditeurView .aud-hero::before{
      content:"";position:absolute;bottom:-60%;left:-8%;
      width:320px;height:320px;border-radius:50%;
      background:radial-gradient(circle, rgba(59,111,181,.35) 0%, transparent 65%);pointer-events:none;
    }
    #auditeurView .aud-hero-left{position:relative;z-index:1}
    #auditeurView .aud-hero-eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:7px 14px;border-radius:999px;
      background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
      font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;
      color:rgba(255,255,255,.92);margin-bottom:14px;backdrop-filter:blur(10px);
    }
    #auditeurView .aud-hero-eyebrow .dot{
      width:6px;height:6px;border-radius:50%;background:var(--aud-coral);box-shadow:0 0 8px var(--aud-coral);
      animation:audDot 2s ease-in-out infinite;
    }
    @keyframes audDot{50%{opacity:.6}}
    #auditeurView .aud-hero h1{
      font-family:'Sora','Inter',sans-serif;font-size:34px;font-weight:700;letter-spacing:-.8px;
      line-height:1.1;margin:0 0 8px;color:#fff;
    }
    #auditeurView .aud-hero h1 span{color:var(--aud-coral);font-weight:600}
    #auditeurView .aud-hero p{font-size:14.5px;color:rgba(255,255,255,.82);margin:0 0 18px;max-width:540px;line-height:1.55}
    #auditeurView .aud-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
    #auditeurView .aud-hero-btn{
      display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:12px;cursor:pointer;
      font-size:13px;font-weight:700;letter-spacing:.2px;font-family:inherit;
      background:rgba(255,255,255,.13);color:#fff;border:1px solid rgba(255,255,255,.22);
      text-decoration:none;transition:all .18s;backdrop-filter:blur(10px);
    }
    #auditeurView .aud-hero-btn svg{width:16px;height:16px}
    #auditeurView .aud-hero-btn:hover{background:rgba(255,255,255,.22);transform:translateY(-1px)}
    #auditeurView .aud-hero-btn.primary{
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));border-color:transparent;
      box-shadow:0 10px 24px rgba(249,115,22,.4);
    }

    /* Hero stats grid */
    #auditeurView .aud-hero-stats{
      position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:10px;
      padding:18px 22px;border-radius:20px;
      background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
      backdrop-filter:blur(24px) saturate(180%);
      box-shadow:0 14px 40px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.2);
    }
    #auditeurView .aud-hero-stat{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.16)}
    #auditeurView .aud-hero-stat:last-child{border-bottom:none}
    #auditeurView .aud-hero-stat .lbl{font-size:11px;color:rgba(255,255,255,.65);letter-spacing:1.4px;text-transform:uppercase;font-weight:700}
    #auditeurView .aud-hero-stat .val{font-family:'Sora','Inter',sans-serif;font-size:26px;font-weight:800;color:#fff;letter-spacing:-.5px;line-height:1}

    /* KPIs */
    #auditeurView .aud-stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
    @media(max-width:900px){#auditeurView .aud-stats-row{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:560px){#auditeurView .aud-stats-row{grid-template-columns:1fr}}
    #auditeurView .aud-stat-card{
      position:relative;overflow:hidden;background:var(--aud-paper);
      backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);border-radius:18px;padding:18px 20px;
      box-shadow:var(--aud-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      display:flex;gap:14px;align-items:flex-start;
      transition:transform .25s,box-shadow .25s;
    }
    #auditeurView .aud-stat-card:hover{transform:translateY(-2px);box-shadow:var(--aud-shadow-hover)}
    #auditeurView .aud-stat-icon{
      width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
      flex-shrink:0;background:rgba(13,45,94,.08);color:var(--aud-navy);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
    }
    #auditeurView .aud-stat-icon svg{width:22px;height:22px}
    #auditeurView .aud-stat-info{flex:1;min-width:0}
    #auditeurView .aud-stat-info h4{
      font-size:10.5px;font-weight:700;color:var(--aud-muted);
      margin:0 0 6px;text-transform:uppercase;letter-spacing:1.2px;
    }
    #auditeurView .aud-stat-value{
      font-family:'Sora','Inter',sans-serif;font-size:28px;font-weight:800;
      color:var(--aud-ink);line-height:1;letter-spacing:-.8px;
    }
    #auditeurView .aud-stat-sub{font-size:11px;color:var(--aud-muted);margin-top:5px;font-weight:500}

    /* Two-col dashboard row */
    #auditeurView .aud-dash-row{
      display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-bottom:22px;
    }
    @media(max-width:900px){#auditeurView .aud-dash-row{grid-template-columns:1fr}}

    /* Next-mission ticket */
    #auditeurView .aud-next-mission{
      position:relative;overflow:hidden;background:var(--aud-paper);
      backdrop-filter:blur(26px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);border-radius:20px;padding:22px 24px;
      box-shadow:var(--aud-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
    }
    #auditeurView .aud-next-head{display:flex;align-items:center;gap:10px;margin-bottom:16px;position:relative}
    #auditeurView .aud-next-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--aud-ink);margin:0;
    }
    #auditeurView .aud-next-head .chip{
      margin-left:auto;padding:4px 10px;border-radius:999px;
      font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
      background:rgba(249,115,22,.12);color:var(--aud-coral-2);
    }
    #auditeurView .aud-next-body{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;position:relative}
    @media(max-width:520px){#auditeurView .aud-next-body{grid-template-columns:1fr}}
    #auditeurView .aud-next-date{
      width:110px;padding:14px 10px;border-radius:16px;text-align:center;flex-shrink:0;
      background:linear-gradient(145deg,var(--aud-navy),var(--aud-navy-2));
      color:#fff;box-shadow:0 10px 26px rgba(13,45,94,.28);position:relative;overflow:hidden;
    }
    #auditeurView .aud-next-date::before{content:"";position:absolute;top:0;left:0;right:0;height:18px;background:var(--aud-coral)}
    #auditeurView .aud-next-date .day{font-family:'Sora','Inter',sans-serif;font-size:36px;font-weight:800;letter-spacing:-1px;line-height:1;margin-top:8px}
    #auditeurView .aud-next-date .month{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-top:6px}
    #auditeurView .aud-next-date .year{font-size:10px;color:rgba(255,255,255,.6);margin-top:2px;letter-spacing:1px;font-weight:600}
    #auditeurView .aud-next-info h4{font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;color:var(--aud-ink);margin:0 0 6px;letter-spacing:-.3px}
    #auditeurView .aud-next-info .countdown{
      display:inline-block;padding:4px 10px;border-radius:999px;
      background:rgba(13,45,94,.06);border:1px solid rgba(13,45,94,.1);
      color:var(--aud-navy);font-size:11px;font-weight:700;letter-spacing:.3px;margin-bottom:10px;
    }
    #auditeurView .aud-next-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:6px}
    #auditeurView .aud-next-meta .m{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--aud-ink)}
    #auditeurView .aud-next-meta .m svg{width:14px;height:14px;stroke:var(--aud-muted);stroke-width:2;fill:none;flex-shrink:0}
    #auditeurView .aud-next-meta .m b{color:var(--aud-navy);font-weight:700}
    #auditeurView .aud-next-empty{text-align:center;padding:30px 20px;color:var(--aud-muted)}
    #auditeurView .aud-next-empty svg{width:42px;height:42px;stroke:var(--aud-muted);fill:none;stroke-width:1.6;opacity:.6;margin-bottom:10px}

    /* Activity feed */
    #auditeurView .aud-activity-card h3::before{
      content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
      background:var(--aud-coral);margin-right:8px;vertical-align:middle;
      box-shadow:0 0 8px var(--aud-coral);animation:audDot 2s infinite;
    }
    #auditeurView #audRecentActivity > div{
      padding:12px 0;border-bottom:1px dashed rgba(13,45,94,.1);
      display:flex;align-items:flex-start;gap:12px;
    }
    #auditeurView #audRecentActivity > div:last-child{border-bottom:none}
    #auditeurView #audRecentActivity .ic{
      width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;
      flex-shrink:0;color:#fff;font-size:14px;
    }
    #auditeurView #audRecentActivity .ic.done{background:linear-gradient(135deg,#4F7043,#6A8F5A)}
    #auditeurView #audRecentActivity .ic.upcoming{background:linear-gradient(135deg,#1C4A8E,#3B6FB5)}
    #auditeurView #audRecentActivity .ic.pending{background:linear-gradient(135deg,#C9943E,#E0B864)}
    #auditeurView #audRecentActivity .txt{flex:1;min-width:0}
    #auditeurView #audRecentActivity .txt-main{font-size:13px;font-weight:600;color:var(--aud-ink);line-height:1.35}
    #auditeurView #audRecentActivity .txt-sub{font-size:11.5px;color:var(--aud-muted);margin-top:2px}
    #auditeurView #audRecentActivity .txt-time{font-size:11px;color:var(--aud-muted);margin-left:auto;flex-shrink:0;font-weight:500}

    /* Missions list */
    #auditeurView .aud-mission-filters{display:flex;gap:8px;flex-wrap:wrap}
    #auditeurView .aud-mfilter{
      display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;cursor:pointer;
      background:rgba(255,255,255,.6);border:1px solid rgba(13,45,94,.1);
      color:var(--aud-ink);font-size:12.5px;font-weight:600;font-family:inherit;transition:all .15s;
    }
    #auditeurView .aud-mfilter:hover{background:#fff;border-color:rgba(13,45,94,.2)}
    #auditeurView .aud-mfilter.active{
      background:linear-gradient(135deg,var(--aud-navy),var(--aud-navy-2));color:#fff;
      border-color:transparent;box-shadow:0 6px 14px rgba(13,45,94,.25);
    }
    #auditeurView .aud-mfilter .ct{
      display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:999px;
      background:rgba(13,45,94,.08);font-weight:800;
    }
    #auditeurView .aud-mfilter.active .ct{background:rgba(255,255,255,.18);color:#fff}
    #auditeurView .aud-missions-list{display:flex;flex-direction:column;gap:10px}
    #auditeurView .aud-mission-item{
      display:grid;grid-template-columns:auto 1fr auto auto;gap:16px;align-items:center;
      padding:16px 18px;border-radius:14px;background:var(--aud-paper);
      backdrop-filter:blur(22px) saturate(180%);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:var(--aud-shadow-card),inset 0 1px 0 rgba(255,255,255,.95);
      transition:all .18s;cursor:pointer;
    }
    #auditeurView .aud-mission-item:hover{transform:translateY(-2px);box-shadow:var(--aud-shadow-hover)}
    @media(max-width:700px){#auditeurView .aud-mission-item{grid-template-columns:auto 1fr;gap:10px}}
    #auditeurView .aud-mission-date{
      width:64px;padding:8px 6px;border-radius:11px;text-align:center;flex-shrink:0;
      background:linear-gradient(145deg,var(--aud-navy),var(--aud-navy-2));color:#fff;
      box-shadow:0 6px 14px rgba(13,45,94,.22);
    }
    #auditeurView .aud-mission-date .d{font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:800;letter-spacing:-.5px;line-height:1}
    #auditeurView .aud-mission-date .m{font-size:9.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-top:4px;color:rgba(255,255,255,.85)}
    #auditeurView .aud-mission-date.tbd{background:linear-gradient(145deg,#94a3b8,#cbd5e1);color:#1e293b;font-weight:700}
    #auditeurView .aud-mission-info h4{font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--aud-ink);margin:0;letter-spacing:-.1px;line-height:1.3}
    #auditeurView .aud-mission-info .org{font-size:13px;color:var(--aud-muted);margin-top:2px;font-weight:500}
    #auditeurView .aud-mission-info .meta{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;font-size:11px}
    #auditeurView .aud-mission-info .meta span{padding:2px 8px;border-radius:999px;background:rgba(13,45,94,.06);color:var(--aud-muted);font-weight:600}
    #auditeurView .aud-mission-status{
      padding:5px 11px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;
    }
    #auditeurView .aud-mission-status.realise{background:rgba(106,143,90,.15);color:#4F7043}
    #auditeurView .aud-mission-status.programme{background:rgba(13,45,94,.08);color:var(--aud-navy)}
    #auditeurView .aud-mission-status.a_programmer{background:rgba(201,148,62,.15);color:#7C5A20}
    #auditeurView .aud-mission-status.annule{background:rgba(196,60,60,.15);color:#B91C1C}
    #auditeurView .aud-mission-arrow{color:var(--aud-muted);transition:transform .18s}
    #auditeurView .aud-mission-item:hover .aud-mission-arrow{color:var(--aud-navy);transform:translateX(2px)}

    /* Empty state */
    #auditeurView .aud-empty{
      padding:50px 20px;text-align:center;color:var(--aud-muted);
      background:rgba(255,255,255,.5);border-radius:18px;border:1px dashed rgba(13,45,94,.14);
    }
    #auditeurView .aud-empty svg{width:48px;height:48px;stroke:var(--aud-muted);stroke-width:1.5;fill:none;opacity:.5;margin-bottom:10px}
    #auditeurView .aud-empty h4{font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;color:var(--aud-ink);margin:0 0 4px}
    #auditeurView .aud-empty p{font-size:12.5px;color:var(--aud-muted);margin:0}

    /* Calendar */
    #auditeurView .aud-cal-controls{display:flex;align-items:center;gap:6px}
    #auditeurView .aud-cal-btn{
      width:36px;height:36px;border-radius:10px;
      background:rgba(255,255,255,.7);border:1px solid rgba(13,45,94,.1);
      color:var(--aud-navy);cursor:pointer;
      display:flex;align-items:center;justify-content:center;font-family:inherit;
      transition:all .15s;
    }
    #auditeurView .aud-cal-btn:hover{background:#fff}
    #auditeurView .aud-cal-btn svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none}
    #auditeurView .aud-cal-btn.today{
      width:auto;padding:0 14px;font-size:12px;font-weight:700;color:var(--aud-navy);
    }
    #auditeurView .aud-cal-label{
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:var(--aud-ink);
      padding:0 10px;letter-spacing:-.1px;text-transform:capitalize;min-width:140px;text-align:center;
    }
    #auditeurView .aud-cal-wrap{padding:18px 22px}
    #auditeurView .aud-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
    #auditeurView .aud-cal-dow{
      font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
      color:var(--aud-muted);text-align:center;padding:8px 0 4px;
    }
    #auditeurView .aud-cal-cell{
      min-height:78px;border-radius:11px;background:rgba(255,255,255,.55);
      border:1px solid rgba(13,45,94,.06);padding:6px 8px;
      display:flex;flex-direction:column;gap:4px;
      font-size:12px;color:var(--aud-ink);transition:all .12s;
    }
    #auditeurView .aud-cal-cell.muted{background:transparent;color:rgba(13,45,94,.35);border-color:transparent}
    #auditeurView .aud-cal-cell.today{background:linear-gradient(135deg,rgba(249,115,22,.12),rgba(249,115,22,.04));border-color:rgba(249,115,22,.3)}
    #auditeurView .aud-cal-cell .dnum{font-family:'Sora','Inter',sans-serif;font-weight:700;font-size:13px;letter-spacing:-.2px}
    #auditeurView .aud-cal-cell.today .dnum{color:var(--aud-coral-2)}
    #auditeurView .aud-cal-event{
      padding:3px 7px;border-radius:6px;font-size:10.5px;font-weight:700;letter-spacing:.1px;
      background:linear-gradient(135deg,var(--aud-navy),var(--aud-navy-2));color:#fff;
      cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
      box-shadow:0 2px 4px rgba(13,45,94,.18);
    }
    #auditeurView .aud-cal-event.realise{background:linear-gradient(135deg,#4F7043,#6A8F5A)}
    #auditeurView .aud-cal-event.programme{background:linear-gradient(135deg,#1C4A8E,#3B6FB5)}
    #auditeurView .aud-cal-event.a_programmer{background:linear-gradient(135deg,#C9943E,#E0B864)}
    #auditeurView .aud-cal-event.annule{background:linear-gradient(135deg,#9CA3AF,#6B7280)}

    /* Documents — sub headers */
    #auditeurView .aud-docs-subhead{
      display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
      margin:24px 0 14px;padding:0 2px;flex-wrap:wrap;
    }
    #auditeurView .aud-docs-subhead:first-child{margin-top:6px}
    #auditeurView .aud-docs-subhead h3{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;
      color:var(--aud-ink);margin:0 0 4px;letter-spacing:-.3px;
      display:flex;align-items:center;gap:10px;
    }
    #auditeurView .aud-docs-subhead h3::before{
      content:"";width:4px;height:18px;border-radius:3px;
      background:linear-gradient(180deg,var(--aud-coral),var(--aud-coral-2));
    }
    #auditeurView .aud-docs-subhead p{font-size:12.5px;color:var(--aud-muted);margin:0;line-height:1.5}

    /* Documents — Boîte à outils (3 grosses cartes Sheet) */
    #auditeurView .aud-tools-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;
    }
    #auditeurView .aud-tool-card{
      position:relative;background:#fff;border-radius:18px;overflow:hidden;
      border:1px solid rgba(13,45,94,.08);
      box-shadow:0 6px 18px rgba(13,45,94,.08);
      display:flex;flex-direction:column;transition:transform .22s cubic-bezier(.2,.9,.25,1.05),box-shadow .22s;
    }
    #auditeurView .aud-tool-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(13,45,94,.14)}
    #auditeurView .aud-tool-vis{
      position:relative;height:120px;display:flex;align-items:center;justify-content:center;
      overflow:hidden;
    }
    #auditeurView .aud-tool-vis svg{width:54px;height:54px;color:#fff;position:relative;z-index:2;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
    #auditeurView .aud-tool-vis::before{
      content:"";position:absolute;inset:0;
      background:linear-gradient(135deg,var(--g1),var(--g2));z-index:0;
    }
    #auditeurView .aud-tool-vis::after{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 80% 25%,rgba(255,255,255,.28),transparent 50%),
                 radial-gradient(circle at 15% 85%,rgba(255,255,255,.18),transparent 45%);
      z-index:1;
    }
    #auditeurView .aud-tool-card.green   .aud-tool-vis{--g1:#3F8C46;--g2:#6BBF6B}
    #auditeurView .aud-tool-card.red     .aud-tool-vis{--g1:#C03A3A;--g2:#E07070}
    #auditeurView .aud-tool-card.blue    .aud-tool-vis{--g1:#1C4A8E;--g2:#3B6FB5}
    #auditeurView .aud-tool-card .aud-tool-fmt{
      position:absolute;top:14px;right:14px;z-index:3;
      padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.92);
      font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
      color:var(--aud-ink);box-shadow:0 4px 10px rgba(0,0,0,.1);
    }
    #auditeurView .aud-tool-body{padding:18px 20px 16px;flex:1;display:flex;flex-direction:column}
    #auditeurView .aud-tool-body h4{
      font-family:'Sora','Inter',sans-serif;font-size:16px;font-weight:700;
      color:var(--aud-ink);margin:0 0 8px;letter-spacing:-.2px;
    }
    #auditeurView .aud-tool-body p{
      font-size:12.5px;color:var(--aud-muted);line-height:1.55;margin:0 0 16px;
      min-height:36px;
    }
    #auditeurView .aud-tool-actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}
    #auditeurView .aud-tool-btn{
      flex:1;min-width:100px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
      padding:9px 12px;border-radius:10px;font-size:12px;font-weight:700;letter-spacing:.1px;
      text-decoration:none;cursor:pointer;border:1px solid rgba(13,45,94,.12);
      background:rgba(13,45,94,.04);color:var(--aud-navy);transition:all .14s;
    }
    #auditeurView .aud-tool-btn:hover{background:rgba(13,45,94,.09);border-color:rgba(13,45,94,.22)}
    #auditeurView .aud-tool-btn.primary{
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));
      color:#fff;border-color:transparent;
      box-shadow:0 4px 12px rgba(249,115,22,.28);
    }
    #auditeurView .aud-tool-btn.primary:hover{box-shadow:0 8px 20px rgba(249,115,22,.4);transform:translateY(-1px)}
    #auditeurView .aud-tool-btn svg{width:13px;height:13px}

    /* Documents — JotForm card */
    #auditeurView .aud-jf-card{
      position:relative;background:#fff;border-radius:18px;overflow:hidden;
      border:1px solid rgba(13,45,94,.08);
      box-shadow:0 6px 18px rgba(13,45,94,.08);
      display:flex;align-items:stretch;gap:0;
    }
    #auditeurView .aud-jf-vis{
      position:relative;width:200px;flex-shrink:0;
      background:linear-gradient(135deg,#0d2d5e,#1c4a8e 60%,#F97316);
      display:flex;align-items:center;justify-content:center;color:#fff;
    }
    #auditeurView .aud-jf-vis::after{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.22),transparent 55%),
                 radial-gradient(circle at 20% 90%,rgba(249,115,22,.35),transparent 60%);
    }
    #auditeurView .aud-jf-vis-inner{position:relative;z-index:2;text-align:center;padding:18px}
    #auditeurView .aud-jf-vis-inner svg{width:46px;height:46px;margin-bottom:10px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.22))}
    #auditeurView .aud-jf-vis-inner .lbl{
      font-family:'Sora','Inter',sans-serif;font-size:11px;font-weight:800;
      letter-spacing:1.6px;text-transform:uppercase;opacity:.95;
    }
    #auditeurView .aud-jf-body{flex:1;padding:22px 26px;display:flex;flex-direction:column;justify-content:center}
    #auditeurView .aud-jf-tag{
      display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
      background:rgba(13,45,94,.07);color:var(--aud-navy);
      font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
      margin-bottom:10px;align-self:flex-start;
    }
    #auditeurView .aud-jf-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--aud-coral-2)}
    #auditeurView .aud-jf-body h4{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;
      color:var(--aud-ink);margin:0 0 6px;letter-spacing:-.3px;
    }
    #auditeurView .aud-jf-body p{font-size:13px;color:var(--aud-muted);line-height:1.55;margin:0 0 16px;max-width:520px}
    #auditeurView .aud-jf-actions{display:flex;gap:10px;flex-wrap:wrap}
    @media (max-width:640px){
      #auditeurView .aud-jf-card{flex-direction:column}
      #auditeurView .aud-jf-vis{width:100%;height:120px}
    }
    #auditeurView .aud-jf-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;
    }
    #auditeurView .aud-jf-card.docs   .aud-jf-vis{background:linear-gradient(135deg,#0d2d5e,#1c4a8e 55%,#3F8C46)}
    #auditeurView .aud-jf-card.docs   .aud-jf-vis::after{
      background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.22),transparent 55%),
                 radial-gradient(circle at 25% 90%,rgba(63,140,70,.4),transparent 60%);
    }
    #auditeurView .aud-jf-card.satis  .aud-jf-vis{background:linear-gradient(135deg,#0d2d5e,#1c4a8e 50%,#C9943E)}
    #auditeurView .aud-jf-card.satis  .aud-jf-vis::after{
      background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.22),transparent 55%),
                 radial-gradient(circle at 20% 90%,rgba(201,148,62,.4),transparent 60%);
    }
    #auditeurView .aud-jf-card .aud-jf-vis{width:160px}
    #auditeurView .aud-jf-card .aud-jf-body{padding:18px 22px}
    #auditeurView .aud-jf-card .aud-jf-body h4{font-size:16px}
    #auditeurView .aud-jf-card .aud-jf-body p{font-size:12.5px;margin-bottom:14px}
    #auditeurView .aud-jf-card .aud-jf-vis-inner svg{width:38px;height:38px;margin-bottom:8px}
    #auditeurView .aud-jf-card .aud-jf-vis-inner .lbl{font-size:10px;letter-spacing:1.4px}

    /* Liens utiles */
    #auditeurView .aud-links-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;
    }
    #auditeurView .aud-link-card{
      position:relative;display:flex;align-items:center;gap:16px;
      padding:18px 20px;border-radius:16px;text-decoration:none;cursor:pointer;
      background:#fff;border:1px solid rgba(13,45,94,.08);
      box-shadow:0 6px 18px rgba(13,45,94,.08);
      transition:transform .22s cubic-bezier(.2,.9,.25,1.05),box-shadow .22s,border-color .22s;
      overflow:hidden;
    }
    #auditeurView .aud-link-card::before{
      content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
      background:linear-gradient(180deg,var(--lc1),var(--lc2));
    }
    #auditeurView .aud-link-card:hover{
      transform:translateY(-2px);box-shadow:0 18px 32px rgba(13,45,94,.14);
      border-color:rgba(13,45,94,.16);
    }
    #auditeurView .aud-link-card.webmail{--lc1:#1C4A8E;--lc2:#3B6FB5}
    #auditeurView .aud-link-card.tdb    {--lc1:#F97316;--lc2:#FB923C}
    #auditeurView .aud-link-ic{
      width:54px;height:54px;border-radius:14px;flex-shrink:0;
      display:flex;align-items:center;justify-content:center;color:#fff;
      background:linear-gradient(135deg,var(--lc1),var(--lc2));
      box-shadow:0 6px 14px rgba(0,0,0,.12);
    }
    #auditeurView .aud-link-ic svg{width:24px;height:24px}
    #auditeurView .aud-link-info{flex:1;min-width:0}
    #auditeurView .aud-link-eyebrow{
      font-family:'Sora','Inter',sans-serif;font-size:10px;font-weight:800;
      letter-spacing:1.4px;text-transform:uppercase;color:var(--aud-muted);margin-bottom:3px;
    }
    #auditeurView .aud-link-name{
      font-family:'Sora','Inter',sans-serif;font-size:15.5px;font-weight:700;
      color:var(--aud-ink);letter-spacing:-.2px;margin:0 0 3px;
    }
    #auditeurView .aud-link-desc{font-size:12px;color:var(--aud-muted);line-height:1.45;margin:0}
    #auditeurView .aud-link-arrow{
      flex-shrink:0;color:var(--aud-navy);opacity:.4;transition:opacity .18s,transform .18s;
    }
    #auditeurView .aud-link-card:hover .aud-link-arrow{opacity:1;transform:translateX(3px)}
    #auditeurView .aud-link-arrow svg{width:18px;height:18px}

    /* Formation */
    .aud-fm-grid{
      display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;
    }
    .aud-fm-card{
      position:relative;background:#fff;border-radius:18px;overflow:hidden;
      border:1px solid rgba(13,45,94,.08);
      box-shadow:0 6px 18px rgba(13,45,94,.08);
      display:flex;flex-direction:column;cursor:pointer;
      transition:transform .22s cubic-bezier(.2,.9,.25,1.05),box-shadow .22s;
    }
    .aud-fm-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(13,45,94,.14)}
    .aud-fm-vis{
      position:relative;height:140px;display:flex;align-items:center;justify-content:center;
      overflow:hidden;
    }
    .aud-fm-vis svg.fm-mark{width:60px;height:60px;color:#fff;position:relative;z-index:2;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
    .aud-fm-vis::before{
      content:"";position:absolute;inset:0;
      background:linear-gradient(135deg,var(--g1),var(--g2));z-index:0;
    }
    .aud-fm-vis::after{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 80% 25%,rgba(255,255,255,.28),transparent 50%),
                 radial-gradient(circle at 15% 85%,rgba(255,255,255,.18),transparent 45%);
      z-index:1;
    }
    .aud-fm-card.qualiopi  .aud-fm-vis{--g1:#3F8C46;--g2:#6BBF6B}
    .aud-fm-card.smq       .aud-fm-vis{--g1:#0d2d5e;--g2:#3B6FB5}
    .aud-fm-eyebrow{
      position:absolute;top:14px;left:14px;z-index:3;
      padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.92);
      font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
      color:var(--aud-ink);box-shadow:0 4px 10px rgba(0,0,0,.1);
    }
    .aud-fm-status{
      position:absolute;top:14px;right:14px;z-index:3;
      padding:5px 10px 5px 26px;border-radius:999px;
      font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
      background:rgba(255,255,255,.92);color:var(--aud-ink);box-shadow:0 4px 10px rgba(0,0,0,.1);
      display:none;
    }
    .aud-fm-status.visible{display:inline-block}
    .aud-fm-status::before{
      content:"";position:absolute;top:50%;left:10px;transform:translateY(-50%);
      width:10px;height:10px;border-radius:50%;background:var(--aud-amber);
    }
    .aud-fm-status.done::before{background:var(--aud-green)}
    .aud-fm-body{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column}
    .aud-fm-body h4{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;
      color:var(--aud-ink);margin:0 0 4px;letter-spacing:-.3px;
    }
    .aud-fm-body .sub{font-size:11.5px;color:var(--aud-coral-2);font-weight:700;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:10px}
    .aud-fm-body p{font-size:13px;color:var(--aud-muted);line-height:1.55;margin:0 0 18px}
    .aud-fm-progress{
      display:flex;align-items:center;gap:10px;margin-bottom:14px;
      font-size:11px;font-weight:700;color:var(--aud-muted);text-transform:uppercase;letter-spacing:1px;
    }
    .aud-fm-progress-bar{
      flex:1;height:6px;border-radius:3px;background:rgba(13,45,94,.08);overflow:hidden;
    }
    .aud-fm-progress-fill{
      height:100%;border-radius:3px;
      background:linear-gradient(90deg,var(--aud-coral,#F97316),var(--aud-coral-2,#EA580C));
      transition:width .4s cubic-bezier(.2,.9,.25,1.05);
    }
    .aud-fm-card.qualiopi .aud-fm-progress-fill{background:linear-gradient(90deg,#3F8C46,#6BBF6B)}
    .aud-fm-card.smq      .aud-fm-progress-fill{background:linear-gradient(90deg,#0d2d5e,#3B6FB5)}
    .aud-fm-card.complete .aud-fm-progress-fill{background:linear-gradient(90deg,var(--aud-green,#6A8F5A),#9DBE8E)}
    .aud-fm-meta{display:flex;align-items:center;gap:14px;font-size:11.5px;color:var(--aud-muted);font-weight:600;margin-top:auto}
    .aud-fm-meta .dot{width:3px;height:3px;border-radius:50%;background:rgba(13,45,94,.25)}
    .aud-fm-cta{
      margin-top:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
      padding:11px 16px;border-radius:11px;
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));
      color:#fff;font-size:13px;font-weight:700;letter-spacing:.1px;
      box-shadow:0 4px 12px rgba(249,115,22,.28);transition:all .14s;border:none;cursor:pointer;
    }
    .aud-fm-cta:hover{box-shadow:0 8px 20px rgba(249,115,22,.4);transform:translateY(-1px)}
    .aud-fm-cta svg{width:14px;height:14px}

    /* Formation détail */
    .aud-fm-detail{display:none;animation:audFadeIn .3s cubic-bezier(.2,.9,.25,1.05)}
    .aud-fm-detail.active{display:block}
    @keyframes audFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
    .aud-fm-back{
      display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;
      background:rgba(13,45,94,.06);color:var(--aud-navy);font-size:12px;font-weight:700;
      border:1px solid rgba(13,45,94,.1);cursor:pointer;transition:all .14s;margin-bottom:18px;
    }
    .aud-fm-back:hover{background:rgba(13,45,94,.12)}
    .aud-fm-back svg{width:13px;height:13px}
    .aud-fm-hero{
      position:relative;border-radius:18px;overflow:hidden;padding:30px 32px;margin-bottom:20px;
      background:linear-gradient(135deg,var(--gh1),var(--gh2));
      color:#fff;box-shadow:0 12px 32px rgba(13,45,94,.18);
    }
    .aud-fm-hero::after{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 80% 30%,rgba(255,255,255,.18),transparent 60%),
                 radial-gradient(circle at 15% 90%,rgba(255,255,255,.1),transparent 55%);
      pointer-events:none;
    }
    .aud-fm-hero.qualiopi{--gh1:#3F8C46;--gh2:#6BBF6B}
    .aud-fm-hero.smq{--gh1:#0d2d5e;--gh2:#3B6FB5}
    .aud-fm-hero-eyebrow{
      display:inline-block;padding:5px 12px;border-radius:999px;
      background:rgba(255,255,255,.18);backdrop-filter:blur(10px);
      font-size:10.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px;
    }
    .aud-fm-hero h2{
      font-family:'Sora','Inter',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.6px;margin:0 0 6px;
    }
    .aud-fm-hero .desc{font-size:14px;line-height:1.55;opacity:.92;max-width:680px;margin:0 0 20px}
    .aud-fm-hero-bar{
      display:flex;align-items:center;gap:14px;font-size:11.5px;font-weight:700;
      letter-spacing:1px;text-transform:uppercase;position:relative;z-index:1;
    }
    .aud-fm-hero-bar .pb{flex:1;max-width:340px;height:8px;border-radius:4px;background:rgba(255,255,255,.2);overflow:hidden}
    .aud-fm-hero-bar .pf{height:100%;background:#fff;border-radius:4px;transition:width .4s}
    .aud-fm-hero-bar .pct{font-family:'Sora','Inter',sans-serif;font-size:13px}

    /* Modules accordion */
    .aud-fm-modules{display:flex;flex-direction:column;gap:10px}
    .aud-fm-mod{
      background:#fff;border-radius:14px;border:1px solid rgba(13,45,94,.08);
      box-shadow:0 4px 12px rgba(13,45,94,.06);overflow:hidden;
      transition:box-shadow .22s,border-color .22s;
    }
    .aud-fm-mod.open{box-shadow:0 12px 28px rgba(13,45,94,.1);border-color:rgba(13,45,94,.14)}
    .aud-fm-mod-head{
      display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer;
      transition:background .14s;
    }
    .aud-fm-mod-head:hover{background:rgba(13,45,94,.02)}
    .aud-fm-mod-num{
      width:36px;height:36px;flex-shrink:0;border-radius:10px;
      background:rgba(13,45,94,.06);color:var(--aud-navy,#0d2d5e);
      display:flex;align-items:center;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;
    }
    .aud-fm-mod.read .aud-fm-mod-num{
      background:linear-gradient(135deg,var(--aud-green,#6A8F5A),#9DBE8E);color:#fff;
    }
    .aud-fm-mod.read .aud-fm-mod-num::before{
      content:"";display:inline-block;width:14px;height:14px;
      background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center/contain;
    }
    .aud-fm-mod.read .aud-fm-mod-num{font-size:0}
    .aud-fm-mod-info{flex:1;min-width:0}
    .aud-fm-mod-title{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;
      color:var(--aud-ink,#1A2742);margin:0 0 3px;letter-spacing:-.1px;
    }
    .aud-fm-mod-meta{font-size:11.5px;color:var(--aud-muted,#8A8273);font-weight:600}
    .aud-fm-mod-meta .read-tag{
      color:var(--aud-green,#6A8F5A);
    }
    .aud-fm-mod-meta .read-tag::before{content:"✓ "}
    .aud-fm-mod-chevron{
      flex-shrink:0;color:var(--aud-muted,#8A8273);transition:transform .22s;
    }
    .aud-fm-mod-chevron svg{width:18px;height:18px}
    .aud-fm-mod.open .aud-fm-mod-chevron{transform:rotate(180deg)}
    .aud-fm-mod-body{
      max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.2,.9,.25,1.05);
    }
    .aud-fm-mod.open .aud-fm-mod-body{max-height:9999px}
    .aud-fm-mod-content{
      padding:4px 24px 20px 70px;font-size:13.5px;line-height:1.7;color:var(--aud-ink,#1A2742);
    }
    .aud-fm-mod-content h5{
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;
      color:var(--aud-ink,#1A2742);margin:18px 0 8px;letter-spacing:-.1px;
    }
    .aud-fm-mod-content h5:first-child{margin-top:0}
    .aud-fm-mod-content p{margin:0 0 12px}
    .aud-fm-mod-content ul{margin:0 0 12px;padding-left:18px}
    .aud-fm-mod-content li{margin-bottom:6px}
    .aud-fm-mod-content em{color:var(--aud-coral-2,#EA580C);font-style:normal;font-weight:600}
    .aud-fm-mod-actions{
      padding:14px 24px 22px 70px;display:flex;gap:10px;align-items:center;
      border-top:1px dashed rgba(13,45,94,.08);margin-top:8px;flex-wrap:wrap;
    }
    .aud-fm-mod-mark{
      display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:11px;
      background:linear-gradient(135deg,var(--aud-coral,#F97316),var(--aud-coral-2,#EA580C));color:#fff;
      font-size:12.5px;font-weight:700;letter-spacing:.1px;cursor:pointer;border:none;
      box-shadow:0 4px 12px rgba(249,115,22,.28);transition:all .14s;
    }
    .aud-fm-mod-mark:hover{box-shadow:0 8px 18px rgba(249,115,22,.4);transform:translateY(-1px)}
    .aud-fm-mod-mark.read{
      background:rgba(106,143,90,.12);color:var(--aud-green,#6A8F5A);box-shadow:none;cursor:default;
    }
    .aud-fm-mod-mark.read:hover{transform:none;box-shadow:none}
    .aud-fm-mod-mark svg{width:13px;height:13px}
    .aud-fm-mod-readtime{font-size:11.5px;color:var(--aud-muted,#8A8273);font-weight:600;margin-left:auto}
    .aud-fm-cert{
      margin-top:18px;padding:18px 22px;border-radius:14px;
      background:linear-gradient(135deg,rgba(106,143,90,.1),rgba(157,190,142,.06));
      border:1px solid rgba(106,143,90,.22);
      display:flex;align-items:center;gap:14px;
    }
    .aud-fm-cert .ic{
      width:42px;height:42px;border-radius:12px;flex-shrink:0;
      background:linear-gradient(135deg,var(--aud-green),#9DBE8E);color:#fff;
      display:flex;align-items:center;justify-content:center;
    }
    .aud-fm-cert .ic svg{width:22px;height:22px}
    .aud-fm-cert h5{
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;
      color:var(--aud-ink);margin:0 0 3px;
    }
    .aud-fm-cert p{font-size:12px;color:var(--aud-muted);margin:0}
    @media (max-width:680px){
      .aud-fm-mod-content{padding:4px 18px 18px 18px}
      .aud-fm-mod-actions{padding:14px 18px 18px 18px}
      .aud-fm-hero{padding:22px 22px}
      .aud-fm-hero h2{font-size:22px}
    }

    /* ── Accordéon 2 niveaux : Module (conteneur) > Leçons ── */
    .aud-fm-mod-container .aud-fm-mod-head{
      background:rgba(13,45,94,.03);
    }
    .aud-fm-mod-container.read .aud-fm-mod-head{
      background:rgba(34,197,94,.06);
    }
    .aud-fm-mod-container .aud-fm-mod-num{
      background:linear-gradient(135deg,#0d2d5e 0%,#1e3a8a 100%);
    }
    .aud-fm-mod-container.read .aud-fm-mod-num{
      background:linear-gradient(135deg,#16a34a 0%,#22c55e 100%);
    }
    .aud-fm-lecons{
      display:flex;flex-direction:column;gap:8px;
      padding:6px 18px 18px 18px;
    }
    .aud-fm-empty{
      padding:14px;font-size:12px;color:var(--aud-muted,#8A8273);
      font-style:italic;text-align:center;
      background:rgba(13,45,94,.03);border-radius:8px;
    }
    .aud-fm-lec{
      background:#fff;border:1px solid rgba(13,45,94,.1);
      border-radius:10px;overflow:hidden;
      transition:box-shadow .18s ease,border-color .18s ease;
    }
    .aud-fm-lec.open{box-shadow:0 6px 16px rgba(13,45,94,.08);border-color:rgba(13,45,94,.18)}
    .aud-fm-lec-head{
      display:flex;align-items:center;gap:12px;
      padding:12px 14px;cursor:pointer;user-select:none;
      transition:background .18s ease;
    }
    .aud-fm-lec-head:hover{background:rgba(249,115,22,.04)}
    .aud-fm-lec-num{
      flex-shrink:0;width:30px;height:30px;border-radius:8px;
      background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);
      color:#fff;display:flex;align-items:center;justify-content:center;
      font-size:11px;font-weight:800;letter-spacing:.2px;
    }
    .aud-fm-lec.read .aud-fm-lec-num{
      background:linear-gradient(135deg,#16a34a 0%,#22c55e 100%);
      font-size:0;
    }
    .aud-fm-lec.read .aud-fm-lec-num::before{
      content:"✓";font-size:14px;font-weight:800;color:#fff;
    }
    .aud-fm-lec-info{flex:1;min-width:0}
    .aud-fm-lec-title{
      font-size:13.5px;font-weight:700;color:var(--aud-ink,#0d2d5e);
      margin-bottom:2px;
    }
    .aud-fm-lec-meta{font-size:11px;color:var(--aud-muted,#8A8273);font-weight:600}
    .aud-fm-lec-meta .read-tag{
      display:inline-block;margin-left:6px;padding:2px 7px;border-radius:8px;
      background:rgba(34,197,94,.14);color:#15803d;font-size:10.5px;font-weight:700;
    }
    .aud-fm-lec-meta .read-tag::before{content:"✓ "}
    .aud-fm-lec-chevron{
      flex-shrink:0;width:22px;height:22px;color:var(--aud-muted,#8A8273);
      transition:transform .22s ease;
    }
    .aud-fm-lec-chevron svg{width:16px;height:16px}
    .aud-fm-lec.open .aud-fm-lec-chevron{transform:rotate(180deg)}
    .aud-fm-lec-body{
      max-height:0;overflow:hidden;
      transition:max-height .35s cubic-bezier(.2,.9,.25,1.05);
    }
    .aud-fm-lec.open .aud-fm-lec-body{max-height:9999px}
    @media (max-width:680px){
      .aud-fm-lecons{padding:4px 12px 12px 12px}
      .aud-fm-lec-head{padding:10px 12px}
    }

    /* Rapport d'audit — editor full-screen */
    .aud-rep-modal{
      position:fixed;inset:0;z-index:1100;display:none;
      background:rgba(13,45,94,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
      padding:10px;align-items:stretch;justify-content:center;
      animation:audRepFadeIn .22s cubic-bezier(.2,.9,.25,1.05);
    }
    .aud-rep-modal.visible{display:flex}
    @keyframes audRepFadeIn{from{opacity:0}to{opacity:1}}
    .aud-rep-box{
      position:relative;background:#E8E4DB;border-radius:18px;overflow:hidden;
      width:100%;max-width:none;height:100%;max-height:calc(100vh - 20px);
      box-shadow:0 30px 80px rgba(0,0,0,.32);
      display:flex;flex-direction:column;min-height:0;
      animation:audRepSlide .28s cubic-bezier(.2,.9,.25,1.05);
    }
    @keyframes audRepSlide{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
    .aud-rep-hero{
      position:relative;flex-shrink:0;
      padding:14px 24px;color:#fff;overflow:hidden;
      background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 55%,#3B6FB5 100%);
      display:flex;align-items:center;gap:14px;
    }
    .aud-rep-hero::before{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 85% 30%,rgba(249,115,22,.35),transparent 55%);
      pointer-events:none;
    }
    .aud-rep-hero-info{position:relative;z-index:1;flex:1;min-width:0}
    .aud-rep-hero-eyebrow{
      font-family:'Sora','Inter',sans-serif;font-size:10.5px;font-weight:800;
      letter-spacing:1.6px;text-transform:uppercase;opacity:.85;margin-bottom:4px;
    }
    .aud-rep-hero h2{
      font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:700;
      margin:0 0 2px;letter-spacing:-.3px;line-height:1.15;
    }
    .aud-rep-hero .org{font-size:12px;opacity:.9;line-height:1.2}
    .aud-rep-hero-eyebrow{margin-bottom:2px !important;font-size:10px}
    .aud-rep-hero-actions{position:relative;z-index:2;display:flex;gap:8px;align-items:center}
    .aud-rep-save-state{
      font-size:11px;font-weight:600;opacity:.85;padding:5px 10px;border-radius:8px;
      background:rgba(255,255,255,.12);min-width:130px;text-align:center;
    }
    .aud-rep-save-state.saving{color:#FBBF24}
    .aud-rep-save-state.saved{color:#9DBE8E}
    .aud-rep-hero-btn{
      background:rgba(255,255,255,.16);color:#fff;border:none;border-radius:9px;
      width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;
      transition:background .14s,transform .14s;
    }
    .aud-rep-hero-btn:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}
    .aud-rep-hero-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.4;fill:none}
    .aud-rep-body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}
    /* Barre d'onglets horizontale — TRÈS compacte, juste sous le hero */
    .aud-rep-nav{
      flex:0 0 auto;height:auto;background:#fff;
      border-bottom:1px solid rgba(13,45,94,.08);
      padding:4px 12px;margin:0;
      display:flex;flex-direction:row;gap:4px;align-items:center;
      overflow-x:auto;overflow-y:hidden;
      scrollbar-width:thin;line-height:1;
    }
    .aud-rep-nav::-webkit-scrollbar{height:4px}
    .aud-rep-nav::-webkit-scrollbar-thumb{background:rgba(13,45,94,.18);border-radius:2px}
    .aud-rep-nav-label{display:none !important}
    .aud-rep-nav-item{
      position:relative;flex-shrink:0;
      display:inline-flex;align-items:center;gap:6px;
      padding:5px 10px;border-radius:7px;
      background:#fff;border:1px solid rgba(13,45,94,.1);
      color:#1a1a2e;font-family:'Inter',sans-serif;font-size:11.5px;font-weight:600;
      letter-spacing:.1px;cursor:pointer;line-height:1;
      transition:all .14s cubic-bezier(.2,.9,.25,1.05);white-space:nowrap;
      margin:0;min-height:0;height:auto;
    }
    .aud-rep-nav-item:hover{
      background:rgba(13,45,94,.04);border-color:rgba(13,45,94,.2);
    }
    .aud-rep-nav-item.active{
      background:linear-gradient(135deg,#F97316 0%,#FB923C 100%);
      color:#fff;border-color:transparent;
      box-shadow:0 3px 8px rgba(249,115,22,.32);
    }
    .aud-rep-nav-item.active:hover{box-shadow:0 5px 12px rgba(249,115,22,.42)}
    .aud-rep-nav-item.active::before{display:none !important;content:none}
    .aud-rep-nav-item::before{display:none !important;content:none}
    .aud-rep-nav-item .aud-rep-nav-num{
      width:16px;height:16px;font-size:9.5px;border-radius:4px;flex-shrink:0;
      background:rgba(13,45,94,.08);color:#0d2d5e;
      display:flex;align-items:center;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-weight:700;
      transition:all .14s;line-height:1;
    }
    .aud-rep-nav-item.active .aud-rep-nav-num{
      background:rgba(255,255,255,.28);color:#fff;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
    }
    .aud-rep-nav-item span:not(.aud-rep-nav-num){display:inline;line-height:1}
    .aud-rep-nav-foot{display:none !important}
    /* (anciennes règles sidebar verticale supprimées — voir bloc tab horizontal plus haut) */
    .aud-rep-export-btn{
      padding:7px 14px;border-radius:9px;
      background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;
      border:none;font-size:12px;font-weight:700;font-family:inherit;letter-spacing:.1px;
      cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;
      box-shadow:0 4px 12px rgba(249,115,22,.32);transition:all .14s;
    }
    .aud-rep-export-btn:hover{box-shadow:0 8px 20px rgba(249,115,22,.45);transform:translateY(-1px)}
    .aud-rep-export-btn:disabled{opacity:.6;cursor:wait}
    .aud-rep-export-btn svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.4;fill:none}
    /* Bouton export quand placé dans le hero (au-dessus du gradient navy) */
    .aud-rep-export-hero{box-shadow:0 4px 14px rgba(249,115,22,.45),inset 0 1px 0 rgba(255,255,255,.18)}
    .aud-rep-content{flex:1;overflow:auto;padding:24px 28px;min-height:0;min-width:0;-webkit-overflow-scrolling:touch}
    /* ─── Cartes "Mes rapports d'audit" (espace auditeur) v2 ─── */
    #auditeurView .qp-rep-card{
      position:relative;background:#fff;border-radius:16px;
      border:1px solid rgba(13,45,94,.08);overflow:hidden;
      box-shadow:0 2px 12px rgba(13,45,94,.05);
      transition:transform .18s cubic-bezier(.2,.9,.25,1.05), box-shadow .18s, border-color .18s;
      display:flex;flex-direction:column;
    }
    #auditeurView .qp-rep-card:hover{
      transform:translateY(-3px);box-shadow:0 12px 30px rgba(13,45,94,.13);
      border-color:rgba(13,45,94,.18);
    }
    #auditeurView .qp-rep-card-accent{
      height:5px;width:100%;flex-shrink:0;
    }
    #auditeurView .qp-rep-card-inner{padding:18px 20px 16px;display:flex;flex-direction:column;gap:14px;flex:1}
    #auditeurView .qp-rep-card-head{display:flex;align-items:flex-start;gap:12px}
    #auditeurView .qp-rep-card-avatar{
      width:46px;height:46px;border-radius:12px;color:#fff;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:14px;letter-spacing:.5px;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
    }
    #auditeurView .qp-rep-card-id{flex:1;min-width:0}
    #auditeurView .qp-rep-card-id h4{
      margin:0 0 3px;font-family:'Sora','Inter',sans-serif;
      font-size:15px;font-weight:700;color:#0d2d5e;letter-spacing:-.2px;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    #auditeurView .qp-rep-card-sub{
      font-size:12px;color:#6b7280;line-height:1.3;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    #auditeurView .qp-rep-card-status{
      flex-shrink:0;padding:4px 10px;border-radius:999px;
      font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
      align-self:flex-start;
    }
    #auditeurView .qp-rep-card-status.draft{background:rgba(245,158,11,.14);color:#92400e}
    #auditeurView .qp-rep-card-status.final{background:rgba(22,163,74,.14);color:#15803d}

    #auditeurView .qp-rep-card-validation{
      font-size:11.5px;font-weight:700;letter-spacing:.2px;
      padding:7px 11px;border-radius:8px;border:1px solid;
      display:flex;align-items:center;gap:6px;
    }

    #auditeurView .qp-rep-card-meta{
      display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
      padding:12px 4px;border-top:1px solid rgba(13,45,94,.06);border-bottom:1px solid rgba(13,45,94,.06);
    }
    #auditeurView .qp-rep-card-metric{text-align:center}
    #auditeurView .qp-rep-card-metric .lbl{
      font-size:9.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#9ca3af;margin-bottom:3px;
    }
    #auditeurView .qp-rep-card-metric .val{
      font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:800;line-height:1;
    }

    #auditeurView .qp-rep-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
    #auditeurView .qp-rep-card-updated{font-size:11px;color:#6b7280;font-variant-numeric:tabular-nums}
    #auditeurView .qp-rep-card-actions{display:flex;gap:7px}
    #auditeurView .qp-rep-btn-primary, #auditeurView .qp-rep-btn-secondary{
      display:inline-flex;align-items:center;gap:6px;
      padding:8px 13px;border-radius:9px;font-size:12px;font-weight:700;
      font-family:inherit;cursor:pointer;letter-spacing:.1px;
      transition:all .14s;border:none;
    }
    #auditeurView .qp-rep-btn-primary{
      background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;
      box-shadow:0 3px 8px rgba(13,45,94,.25);
    }
    #auditeurView .qp-rep-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(13,45,94,.35)}
    #auditeurView .qp-rep-btn-secondary{
      background:#fff;color:#0d2d5e;border:1.5px solid rgba(13,45,94,.18);
    }
    #auditeurView .qp-rep-btn-secondary:hover{background:rgba(13,45,94,.04);border-color:rgba(13,45,94,.32)}
    #auditeurView .qp-rep-btn-primary svg, #auditeurView .qp-rep-btn-secondary svg{width:13px;height:13px}

    /* ═══════════════════════════════════════════════════════════
       QCM RNQ QUALIOPI — Section dans la formation + modal de passage
       ═══════════════════════════════════════════════════════════ */
    .aud-fm-qcm-section{
      background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 100%);color:#fff;
      border-radius:18px;padding:24px 26px;margin-top:24px;position:relative;overflow:hidden;
    }
    .aud-fm-qcm-section::before{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 85% 20%,rgba(249,115,22,.35),transparent 55%);
      pointer-events:none;
    }
    .aud-fm-qcm-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;position:relative;z-index:1}
    .aud-fm-qcm-icon{
      width:48px;height:48px;border-radius:12px;background:rgba(255,255,255,.16);
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
    }
    .aud-fm-qcm-icon svg{width:24px;height:24px;color:#fff}
    .aud-fm-qcm-header h3{font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;margin:0 0 3px;color:#fff;letter-spacing:-.3px}
    .aud-fm-qcm-header p{font-size:13px;opacity:.86;margin:0;line-height:1.45;color:#fff}
    .aud-fm-qcm-header p strong{color:#FBBF24}
    .aud-fm-qcm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;position:relative;z-index:1}
    .aud-fm-qcm-card{
      background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
      border-radius:12px;padding:16px;cursor:pointer;transition:all .14s;
      display:flex;flex-direction:column;gap:8px;backdrop-filter:blur(8px);
    }
    .aud-fm-qcm-card:hover{background:rgba(255,255,255,.14);transform:translateY(-2px);border-color:rgba(255,255,255,.28)}
    .aud-fm-qcm-card .code{font-size:9.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;opacity:.7;color:#fff}
    .aud-fm-qcm-card h4{font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:#fff;margin:0;line-height:1.3}
    .aud-fm-qcm-card .sub{font-size:11.5px;opacity:.7;color:#fff}
    .aud-fm-qcm-card .result{
      margin-top:6px;font-size:11.5px;font-weight:700;letter-spacing:.2px;
      padding:5px 9px;border-radius:6px;text-align:center;
    }
    .aud-fm-qcm-card .result.pass{background:rgba(34,197,94,.3);color:#a7f3d0}
    .aud-fm-qcm-card .result.fail{background:rgba(220,38,38,.32);color:#fecaca}
    .aud-fm-qcm-card .result.todo{background:rgba(249,115,22,.32);color:#fed7aa}
    .aud-fm-qcm-card .cta{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;opacity:.85;margin-top:4px}

    /* Modal QCM */
    .qcm-modal{
      position:fixed;inset:0;z-index:1200;display:none;
      background:rgba(13,45,94,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
      padding:18px;align-items:stretch;justify-content:center;
    }
    .qcm-modal.visible{display:flex}
    .qcm-box{
      position:relative;background:#fff;border-radius:18px;overflow:hidden;
      width:100%;max-width:780px;height:100%;max-height:calc(100vh - 36px);
      box-shadow:0 30px 80px rgba(0,0,0,.32);
      display:flex;flex-direction:column;min-height:0;
    }
    .qcm-hero{
      flex-shrink:0;padding:18px 26px;color:#fff;
      background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 55%,#3B6FB5 100%);
      display:flex;align-items:flex-start;gap:14px;position:relative;overflow:hidden;
    }
    .qcm-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 30%,rgba(249,115,22,.32),transparent 55%);pointer-events:none}
    .qcm-hero-info{flex:1;min-width:0;position:relative;z-index:1}
    .qcm-hero-eyebrow{font-family:'Sora','Inter',sans-serif;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;opacity:.82;margin-bottom:4px}
    .qcm-hero h2{font-family:'Sora','Inter',sans-serif;font-size:19px;font-weight:700;margin:0 0 10px;letter-spacing:-.3px;line-height:1.15}
    .qcm-hero-progress{font-size:11.5px;opacity:.92}
    .qcm-hero-progress .bar{height:5px;background:rgba(255,255,255,.18);border-radius:99px;overflow:hidden;margin-top:5px}
    .qcm-hero-progress .fill{height:100%;background:linear-gradient(90deg,#F97316,#FB923C);transition:width .3s}
    .qcm-close{
      background:rgba(255,255,255,.16);color:#fff;border:none;border-radius:9px;
      width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;
      transition:all .14s;position:relative;z-index:2;flex-shrink:0;
    }
    .qcm-close svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.4;fill:none}
    .qcm-close:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}

    .qcm-body{flex:1;overflow:auto;padding:24px 28px;background:#F5EFE2}
    .qcm-question{
      font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;color:#0d2d5e;
      margin:0 0 22px;line-height:1.4;letter-spacing:-.2px;
    }
    .qcm-multi-hint{
      display:inline-block;font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;
      color:#15803d;background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.25);
      border-radius:9px;padding:7px 13px;margin:-12px 0 18px;letter-spacing:.1px;
    }
    .qcm-multi-hint::before{content:"☑ ";margin-right:2px}
    .qcm-letter-check{
      background:rgba(13,45,94,.08)!important;color:#0d2d5e!important;
    }
    .qcm-option.selected .qcm-letter-check{
      background:linear-gradient(135deg,#16a34a,#22c55e)!important;color:#fff!important;
    }
    .qcm-options{display:flex;flex-direction:column;gap:10px}
    .qcm-option{
      background:#fff;border:1.5px solid rgba(13,45,94,.12);border-radius:12px;
      padding:14px 16px;cursor:pointer;transition:all .14s;
      display:flex;align-items:center;gap:12px;font-size:14px;color:#1a1a2e;line-height:1.45;
      font-family:'Inter',sans-serif;font-weight:500;
    }
    .qcm-option:hover{border-color:#F97316;background:rgba(249,115,22,.04)}
    .qcm-option.selected{border-color:#0d2d5e;background:rgba(13,45,94,.05);font-weight:600}
    .qcm-option .letter{
      width:30px;height:30px;border-radius:8px;flex-shrink:0;
      background:rgba(13,45,94,.08);color:#0d2d5e;display:flex;align-items:center;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:13px;
    }
    .qcm-option.selected .letter{background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff}
    /* Mode review (après soumission) */
    .qcm-option.correct{border-color:#16a34a;background:rgba(22,163,74,.08)}
    .qcm-option.correct .letter{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}
    .qcm-option.incorrect{border-color:#dc2626;background:rgba(220,38,38,.06)}
    .qcm-option.incorrect .letter{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}

    .qcm-foot{
      flex-shrink:0;padding:14px 24px;background:#fff;border-top:1px solid rgba(13,45,94,.08);
      display:flex;align-items:center;gap:12px;
    }
    .qcm-foot-info{flex:1;font-size:12px;color:#6b7280;text-align:center}
    .qcm-btn-primary,.qcm-btn-secondary{
      padding:9px 18px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;
      font-family:inherit;border:none;transition:all .14s;
    }
    .qcm-btn-primary{background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;box-shadow:0 3px 10px rgba(249,115,22,.32)}
    .qcm-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(249,115,22,.42)}
    .qcm-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
    .qcm-btn-secondary{background:#fff;color:#0d2d5e;border:1px solid rgba(13,45,94,.18)}
    .qcm-btn-secondary:hover{background:rgba(13,45,94,.04)}
    .qcm-btn-secondary:disabled{opacity:.4;cursor:not-allowed}

    /* Écran de résultats */
    .qcm-result-screen{padding:30px 20px;text-align:center}
    .qcm-result-score{
      width:130px;height:130px;border-radius:50%;display:flex;flex-direction:column;
      align-items:center;justify-content:center;margin:0 auto 20px;
      background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;
      box-shadow:0 10px 30px rgba(13,45,94,.3);
    }
    .qcm-result-score.pass{background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 10px 30px rgba(22,163,74,.3)}
    .qcm-result-score.fail{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 10px 30px rgba(220,38,38,.3)}
    .qcm-result-score .big{font-family:'Sora','Inter',sans-serif;font-size:34px;font-weight:800;line-height:1;letter-spacing:-1px}
    .qcm-result-score .lbl{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;opacity:.85;margin-top:4px}
    .qcm-result-title{font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:700;color:#0d2d5e;margin:0 0 6px;letter-spacing:-.4px}
    .qcm-result-sub{font-size:14px;color:#6b7280;max-width:480px;margin:0 auto 22px;line-height:1.55}
    .qcm-result-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

    /* ─── Échanges mail (client manager) ─── */
    .cm-email-filter{
      padding:5px 11px;border-radius:8px;border:1px solid rgba(13,45,94,.14);
      background:#fff;color:#6b7280;font-size:11.5px;font-weight:600;cursor:pointer;
      font-family:inherit;transition:all .14s;
    }
    .cm-email-filter:hover{border-color:rgba(13,45,94,.3);color:#0d2d5e}
    .cm-email-filter.active{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
    .cm-email-row{
      border:1px solid rgba(13,45,94,.1);border-radius:11px;overflow:hidden;
      background:#fff;transition:border-color .14s,box-shadow .14s;
    }
    .cm-email-row:hover{border-color:rgba(13,45,94,.22);box-shadow:0 3px 10px rgba(13,45,94,.06)}
    .cm-email-row.open{border-color:rgba(13,45,94,.28);box-shadow:0 6px 18px rgba(13,45,94,.1)}
    .cm-email-head{
      display:flex;align-items:center;gap:9px;padding:11px 14px;cursor:pointer;
    }
    .cm-email-cat{
      flex-shrink:0;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;
      letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;
    }
    .cm-email-subject{
      flex:1;min-width:0;font-size:13px;font-weight:600;color:#1a1a2e;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    }
    .cm-email-att-count{font-size:11px;color:#6b7280;font-weight:700;flex-shrink:0}
    .cm-email-date{font-size:11px;color:#9ca3af;flex-shrink:0;font-variant-numeric:tabular-nums}
    .cm-email-chevron{width:15px;height:15px;color:#9ca3af;flex-shrink:0;transition:transform .2s}
    .cm-email-row.open .cm-email-chevron{transform:rotate(180deg)}
    .cm-email-body{
      max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.2,.9,.25,1.05);
    }
    .cm-email-row.open .cm-email-body{max-height:1400px}
    .cm-email-meta{
      display:flex;flex-wrap:wrap;gap:6px 20px;padding:10px 14px;
      background:#fafbfd;border-top:1px solid rgba(13,45,94,.06);font-size:12px;
    }
    .cm-email-meta .k{font-weight:800;color:#9ca3af;text-transform:uppercase;letter-spacing:.6px;font-size:9.5px;margin-right:4px}
    .cm-email-meta .v{color:#374151}
    .cm-email-content{
      padding:14px;font-size:13px;line-height:1.6;color:#1a1a2e;
      border-top:1px solid rgba(13,45,94,.06);max-height:420px;overflow-y:auto;
    }
    .cm-email-content img{max-width:100%;height:auto}
    .cm-email-attachments{
      display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;
      border-top:1px solid rgba(13,45,94,.06);background:#fafbfd;
    }
    .cm-email-att{
      display:inline-flex;align-items:center;gap:7px;padding:7px 11px;
      background:#fff;border:1px solid rgba(13,45,94,.14);border-radius:8px;
      font-size:11.5px;color:#0d2d5e;text-decoration:none;font-weight:600;
      transition:all .14s;
      /* C'est un <button> depuis le passage par la callable : sans ces 3 lignes,
         le navigateur applique sa police et son curseur par defaut. */
      font-family:inherit;cursor:pointer;line-height:1.2;
    }
    .cm-email-att:hover{border-color:#0d2d5e;background:rgba(13,45,94,.04)}
    .cm-email-att .name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .cm-email-att .size{color:#9ca3af;font-size:10px;font-variant-numeric:tabular-nums}

    /* Bouton Fiche NC dans la cellule de l'indicateur */
    .aud-rep-nc-btn{
      display:inline-flex;align-items:center;gap:6px;
      margin-top:6px;padding:5px 10px;border-radius:7px;
      font-family:'Inter',sans-serif;font-size:11px;font-weight:700;
      letter-spacing:.2px;cursor:pointer;width:100%;justify-content:center;
      transition:all .14s;
    }
    .aud-rep-nc-btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.08)}

    /* Fiche NC — modal full-screen (réutilise le pattern du report editor) */
    .nc-modal{
      position:fixed;inset:0;z-index:1200;display:none;
      background:rgba(13,45,94,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
      padding:18px;align-items:stretch;justify-content:center;
    }
    .nc-modal.visible{display:flex}
    .nc-box{
      position:relative;background:#E8E4DB;border-radius:18px;overflow:hidden;
      width:100%;max-width:1200px;height:100%;max-height:calc(100vh - 36px);
      box-shadow:0 30px 80px rgba(0,0,0,.32);
      display:flex;flex-direction:column;min-height:0;
    }
    .nc-hero{
      flex-shrink:0;padding:14px 24px;color:#fff;
      background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 55%,#3B6FB5 100%);
      display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;
    }
    .nc-hero::before{
      content:"";position:absolute;inset:0;
      background:radial-gradient(circle at 85% 30%,rgba(220,38,38,.32),transparent 55%);
      pointer-events:none;
    }
    .nc-hero-info{flex:1;min-width:0;position:relative;z-index:1}
    .nc-hero-eyebrow{font-family:'Sora','Inter',sans-serif;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;opacity:.85;margin-bottom:2px}
    .nc-hero h2{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:700;margin:0 0 2px;letter-spacing:-.3px;line-height:1.15}
    .nc-hero .org{font-size:12px;opacity:.9;line-height:1.2}
    .nc-hero-actions{display:flex;gap:8px;align-items:center;position:relative;z-index:2}
    .nc-hero-btn{
      background:rgba(255,255,255,.16);color:#fff;border:none;border-radius:9px;
      width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;
      transition:background .14s,transform .14s;
    }
    .nc-hero-btn:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}
    .nc-hero-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.4;fill:none}
    .nc-export-btn{
      padding:7px 14px;border-radius:9px;
      background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;
      border:none;font-size:12px;font-weight:700;font-family:inherit;
      cursor:pointer;display:inline-flex;align-items:center;gap:6px;
      box-shadow:0 4px 14px rgba(249,115,22,.45);transition:all .14s;
    }
    .nc-export-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(249,115,22,.55)}
    .nc-export-btn:disabled{opacity:.6;cursor:wait}
    .nc-status-pill{
      padding:5px 12px;border-radius:999px;font-size:10.5px;font-weight:700;
      letter-spacing:.6px;text-transform:uppercase;background:rgba(255,255,255,.16);color:#fff;
    }
    .nc-status-pill.draft{background:rgba(245,158,11,.92);color:#fff}
    .nc-status-pill.pending_client{background:rgba(59,130,246,.92);color:#fff}
    .nc-status-pill.pending_auditor{background:rgba(124,45,18,.92);color:#fff}
    .nc-status-pill.validated{background:rgba(22,163,74,.92);color:#fff}
    .nc-status-pill.rejected{background:rgba(220,38,38,.92);color:#fff}

    .nc-body{flex:1;overflow:auto;padding:20px 24px;-webkit-overflow-scrolling:touch}
    .nc-body::-webkit-scrollbar{width:8px}
    .nc-body::-webkit-scrollbar-thumb{background:rgba(13,45,94,.16);border-radius:4px}

    .nc-card{
      background:#fff;border-radius:14px;padding:18px 22px;margin-bottom:14px;
      border:1px solid rgba(13,45,94,.08);box-shadow:0 2px 10px rgba(13,45,94,.04);
    }
    .nc-card.disabled{opacity:.85;background:#f9fafb}
    .nc-card-title{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;
      color:#0d2d5e;margin:0 0 14px;display:flex;align-items:center;gap:8px;
    }
    .nc-card-title::before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(180deg,#dc2626,#F97316)}
    .nc-card-title .who{font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:#9ca3af;margin-left:auto}
    .nc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
    .nc-grid .full{grid-column:1/-1}
    .nc-field{display:flex;flex-direction:column;gap:6px}
    .nc-field .lbl{font-family:'Inter',sans-serif;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#6b7280}
    .nc-input,.nc-select,.nc-textarea{
      width:100%;padding:10px 12px;border:1px solid rgba(13,45,94,.14);
      border-radius:10px;font-size:13px;font-family:inherit;color:#1a1a2e;
      background:#fff;outline:none;box-sizing:border-box;transition:border-color .14s,box-shadow .14s;
    }
    .nc-textarea{resize:vertical;min-height:90px;line-height:1.5}
    .nc-input:focus,.nc-select:focus,.nc-textarea:focus{border-color:#F97316;box-shadow:0 0 0 3px rgba(249,115,22,.14)}
    .nc-input:disabled,.nc-select:disabled,.nc-textarea:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}
    .nc-readonly{
      padding:10px 12px;background:#f9fafb;border:1px solid rgba(13,45,94,.08);
      border-radius:10px;font-size:13px;color:#374151;line-height:1.5;white-space:pre-wrap;min-height:42px;
    }
    .nc-readonly.empty{color:#9ca3af;font-style:italic}

    /* Upload preuves */
    .nc-files-box{
      border:2px dashed rgba(13,45,94,.18);border-radius:10px;padding:14px;background:#fafafa;
      display:flex;flex-direction:column;gap:10px;
    }
    .nc-files-list{display:flex;flex-direction:column;gap:6px;margin:0}
    .nc-file-item{
      display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid rgba(13,45,94,.08);border-radius:8px;font-size:12.5px;
    }
    .nc-file-item .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1a1a2e;font-weight:600}
    .nc-file-item .size{color:#6b7280;font-size:11px;font-variant-numeric:tabular-nums}
    .nc-file-item a.dl{color:#0d2d5e;text-decoration:none;font-size:11.5px;font-weight:700;padding:3px 9px;background:rgba(13,45,94,.08);border-radius:6px}
    .nc-file-item button.rm{background:none;border:none;color:#dc2626;cursor:pointer;font-size:14px;padding:0 4px}
    .nc-files-pick{
      display:inline-flex;align-items:center;justify-content:center;gap:8px;
      padding:9px 14px;background:#0d2d5e;color:#fff;border:none;border-radius:9px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
    }
    .nc-files-pick:hover{background:#1c4a8e}
    .nc-files-empty{color:#9ca3af;font-style:italic;font-size:12px;text-align:center;padding:6px}

    /* Action footer (submit/validate/reject buttons) */
    .nc-foot{
      flex-shrink:0;padding:14px 24px;background:#fff;border-top:1px solid rgba(13,45,94,.08);
      display:flex;gap:10px;justify-content:flex-end;align-items:center;
    }
    .nc-foot .info{flex:1;font-size:12px;color:#6b7280}
    .nc-btn-primary,.nc-btn-secondary,.nc-btn-danger{
      padding:9px 18px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;
      font-family:inherit;border:none;display:inline-flex;align-items:center;gap:7px;transition:all .14s;
    }
    .nc-btn-primary{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;box-shadow:0 4px 12px rgba(22,163,74,.32)}
    .nc-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(22,163,74,.45)}
    .nc-btn-secondary{background:#fff;color:#0d2d5e;border:1.5px solid rgba(13,45,94,.2)}
    .nc-btn-secondary:hover{background:rgba(13,45,94,.04)}
    .nc-btn-danger{background:#fff;color:#dc2626;border:1.5px solid #dc2626}
    .nc-btn-danger:hover{background:rgba(220,38,38,.06)}

    /* Liste des fiches NC (auditeur + client) */
    .nc-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:18px}
    .nc-list-card{
      background:#fff;border-radius:14px;padding:16px 18px;border:1px solid rgba(13,45,94,.08);
      box-shadow:0 2px 8px rgba(13,45,94,.05);cursor:pointer;transition:all .16s;
      display:flex;flex-direction:column;gap:10px;
    }
    .nc-list-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(13,45,94,.1);border-color:rgba(13,45,94,.18)}
    .nc-list-card .top{display:flex;align-items:center;gap:8px}
    .nc-list-card .num{
      width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#dc2626,#f97316);
      color:#fff;display:flex;align-items:center;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:13px;
    }
    .nc-list-card .severity{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:3px 9px;border-radius:999px}
    .nc-list-card .severity.min{background:rgba(245,158,11,.15);color:#92400e}
    .nc-list-card .severity.maj{background:rgba(220,38,38,.15);color:#991b1b}
    .nc-list-card h4{font-family:'Sora','Inter',sans-serif;font-size:14px;color:#0d2d5e;margin:0;line-height:1.3;font-weight:700}
    .nc-list-card .org{font-size:12px;color:#6b7280;line-height:1.4}
    .nc-list-card .meta{display:flex;gap:14px;font-size:11px;color:#9ca3af;margin-top:auto}
    .nc-list-card .meta strong{color:#374151;font-weight:600}

    /* Journal de traçabilité (timeline) */
    .aud-rep-history{list-style:none;padding:0;margin:0;position:relative}
    .aud-rep-history::before{
      content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;
      background:linear-gradient(180deg,rgba(13,45,94,.18),rgba(13,45,94,.05));
    }
    .aud-rep-history li{
      position:relative;padding:0 0 14px 30px;font-size:12.5px;color:#1a1a2e;line-height:1.45;
    }
    .aud-rep-history li:last-child{padding-bottom:0}
    .aud-rep-history li::before{
      content:"";position:absolute;left:4px;top:3px;width:12px;height:12px;border-radius:50%;
      background:#fff;border:2.5px solid #94a3b8;box-shadow:0 0 0 3px #fff;
    }
    .aud-rep-history li.h-final::before{border-color:#0d2d5e;background:#0d2d5e}
    .aud-rep-history li.h-valid::before{border-color:#16a34a;background:#16a34a}
    .aud-rep-history li.h-reject::before{border-color:#dc2626;background:#dc2626}
    .aud-rep-history li.h-create::before{border-color:#F97316;background:#F97316}
    .aud-rep-history .h-action{font-weight:700;color:#0d2d5e;font-family:'Sora','Inter',sans-serif}
    .aud-rep-history .h-when{font-size:11px;color:#6b7280;display:block;margin-top:1px;font-variant-numeric:tabular-nums}
    .aud-rep-history .h-by{font-size:11.5px;color:#374151;margin-left:4px}
    .aud-rep-history .h-comment{font-size:11.5px;color:#4b5563;background:#f9fafb;border-left:2px solid #e5e7eb;padding:5px 9px;margin-top:5px;border-radius:4px;font-style:italic}
    .aud-rep-content::-webkit-scrollbar{width:8px}
    .aud-rep-content::-webkit-scrollbar-thumb{background:rgba(13,45,94,.16);border-radius:4px}
    .aud-rep-pane{display:none;animation:audRepPane .25s cubic-bezier(.2,.9,.25,1.05)}
    .aud-rep-pane.active{display:block}
    @keyframes audRepPane{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
    .aud-rep-pane h3{
      font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:700;
      color:#0d2d5e;margin:0 0 4px;letter-spacing:-.4px;
    }
    .aud-rep-pane > p.lead{font-size:13.5px;color:#6b7280;margin:0 0 22px;line-height:1.55;max-width:660px}
    .aud-rep-card{
      background:#fff;border-radius:14px;padding:18px 22px;margin-bottom:14px;
      border:1px solid rgba(13,45,94,.08);
      box-shadow:0 2px 10px rgba(13,45,94,.04);
    }
    .aud-rep-card-title{
      font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;
      color:#0d2d5e;margin:0 0 14px;letter-spacing:-.1px;
      display:flex;align-items:center;gap:8px;
    }
    .aud-rep-card-title::before{
      content:"";width:4px;height:16px;border-radius:2px;
      background:linear-gradient(180deg,#F97316,#FB923C);
    }
    .aud-rep-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
    @media (max-width:760px){.aud-rep-grid{grid-template-columns:1fr}}
    .aud-rep-field{display:flex;flex-direction:column;gap:6px}
    .aud-rep-field.full{grid-column:1/-1}
    .aud-rep-field > .lbl{
      font-family:'Inter',sans-serif;font-size:10px;font-weight:800;
      letter-spacing:1.4px;text-transform:uppercase;color:#6b7280;
    }
    .aud-rep-input, .aud-rep-select, .aud-rep-textarea{
      width:100%;padding:10px 12px;border:1px solid rgba(13,45,94,.14);
      border-radius:10px;font-size:13px;font-family:inherit;color:#1a1a2e;
      background:#fff;outline:none;box-sizing:border-box;
      transition:border-color .14s,box-shadow .14s;
    }
    .aud-rep-textarea{resize:vertical;min-height:80px;line-height:1.5}
    .aud-rep-input:focus, .aud-rep-select:focus, .aud-rep-textarea:focus{
      border-color:#F97316;box-shadow:0 0 0 3px rgba(249,115,22,.14);
    }
    .aud-rep-qrow{
      display:grid;grid-template-columns:1fr 200px;gap:14px;align-items:start;
      padding:14px 16px;background:#fafafa;border-radius:11px;margin-bottom:8px;
      border:1px solid rgba(13,45,94,.06);
    }
    @media (max-width:760px){.aud-rep-qrow{grid-template-columns:1fr}}
    .aud-rep-q-label{
      font-size:13px;color:#1a1a2e;line-height:1.5;font-weight:500;
    }
    .aud-rep-q-comment{grid-column:1/-1;margin-top:8px}
    .aud-rep-q-comment textarea{
      width:100%;padding:8px 11px;border:1px solid rgba(13,45,94,.12);border-radius:8px;
      font-size:12.5px;font-family:inherit;color:#1a1a2e;background:#fff;outline:none;
      resize:vertical;min-height:150px;line-height:1.5;
    }
    .aud-rep-interloc{
      display:grid;grid-template-columns:30px 1fr 1fr 30px;gap:10px;align-items:center;
      padding:9px 12px;background:#fafafa;border-radius:10px;margin-bottom:6px;
      border:1px solid rgba(13,45,94,.06);
    }
    .aud-rep-interloc-num{
      width:26px;height:26px;border-radius:7px;background:rgba(13,45,94,.08);
      color:#0d2d5e;display:flex;align-items:center;justify-content:center;
      font-family:'Sora','Inter',sans-serif;font-size:11px;font-weight:700;
    }
    .aud-rep-interloc-rm{
      background:rgba(220,38,38,.08);border:none;color:#dc2626;
      border-radius:7px;width:26px;height:26px;cursor:pointer;font-size:14px;
      display:flex;align-items:center;justify-content:center;transition:background .14s;
    }
    .aud-rep-interloc-rm:hover{background:rgba(220,38,38,.18)}
    .aud-rep-add-btn{
      margin-top:8px;padding:8px 14px;border-radius:9px;
      background:rgba(13,45,94,.05);color:#0d2d5e;border:1px dashed rgba(13,45,94,.18);
      font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:6px;transition:all .14s;
    }
    .aud-rep-add-btn:hover{background:rgba(13,45,94,.1)}
    .aud-rep-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px}
    @media (max-width:560px){.aud-rep-cats{grid-template-columns:1fr}}
    .aud-rep-cat{
      display:flex;align-items:center;gap:10px;padding:11px 13px;
      background:#fff;border:1px solid rgba(13,45,94,.12);border-radius:10px;
      cursor:pointer;font-size:12.5px;color:#1a1a2e;font-weight:500;transition:all .14s;
    }
    .aud-rep-cat:hover{border-color:rgba(13,45,94,.22)}
    .aud-rep-cat input[type="checkbox"]{width:16px;height:16px;accent-color:#F97316;flex-shrink:0;cursor:pointer}
    .aud-rep-cat strong{color:#0d2d5e}
    .aud-rep-crit{
      background:#fff;border:1px solid rgba(13,45,94,.08);border-radius:13px;
      margin-bottom:12px;overflow:hidden;
    }
    .aud-rep-crit-head{
      padding:13px 18px;background:linear-gradient(135deg,rgba(13,45,94,.06),rgba(13,45,94,.02));
      border-bottom:1px solid rgba(13,45,94,.08);
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;color:#0d2d5e;
      letter-spacing:-.1px;
    }
    .aud-rep-crit-body{padding:14px 18px;display:grid;grid-template-columns:1fr 200px;gap:12px}
    @media (max-width:760px){.aud-rep-crit-body{grid-template-columns:1fr}}
    .aud-rep-info{
      padding:11px 14px;background:linear-gradient(135deg,rgba(28,74,142,.06),rgba(28,74,142,.02));
      border:1px solid rgba(28,74,142,.18);border-radius:10px;
      font-size:12px;color:#1c4a8e;line-height:1.5;margin-bottom:14px;
    }
    .aud-rep-info strong{color:#0d2d5e}
    .aud-rep-ref-tabs{
      display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;
      background:#fafafa;padding:5px;border-radius:11px;border:1px solid rgba(13,45,94,.06);
    }
    .aud-rep-ref-tab{
      flex:1;min-width:90px;padding:9px 14px;border:none;border-radius:8px;
      background:transparent;color:#6b7280;font-size:12.5px;font-weight:700;
      cursor:pointer;font-family:inherit;transition:all .14s;letter-spacing:.1px;
    }
    /* K5 : les référentiels AUDITABLES ressortent nettement — pill blanche
       bordée navy ; l'actif passe en navy plein ; les non audités restent
       clairement éteints (barrés). */
    .aud-rep-ref-tab:not(:disabled){background:#fff;color:#0d2d5e;border:1.6px solid #b9cbe6;box-shadow:0 2px 7px rgba(13,45,94,.10);font-weight:800}
    .aud-rep-ref-tab:not(:disabled):hover{border-color:#0d2d5e;transform:translateY(-1px)}
    .aud-rep-ref-tab.active{background:#0d2d5e !important;color:#fff !important;border-color:#0d2d5e !important;box-shadow:0 6px 14px -6px rgba(13,45,94,.55)}
    .aud-rep-ref-tab:disabled{opacity:.32;cursor:not-allowed;text-decoration:line-through;border:1px dashed #cbd5e1;background:transparent}
    .aud-rep-ref-pane{display:none}
    .aud-rep-ref-pane.active{display:block}

    /* Phase 2 — Critères repliables + table d'indicateurs */
    .aud-rep-crit{margin-bottom:10px}
    .aud-rep-crit .aud-rep-crit-head.clickable{
      cursor:pointer;user-select:none;
      display:grid;grid-template-columns:18px 1fr auto auto;gap:10px;align-items:center;
    }
    .aud-rep-crit .aud-rep-crit-head .chev{
      display:inline-block;transition:transform .18s;color:#0d2d5e;font-size:14px;
      transform:rotate(-90deg);
    }
    .aud-rep-crit.open .aud-rep-crit-head .chev{transform:rotate(0deg)}
    .aud-rep-crit .aud-rep-crit-head .title{
      font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:700;color:#0d2d5e;
    }
    .aud-rep-crit .aud-rep-crit-head .cnt{
      font-size:10.5px;font-weight:700;color:#6b7280;letter-spacing:.6px;text-transform:uppercase;
      padding:3px 8px;border-radius:999px;background:rgba(13,45,94,.06);
    }
    .aud-rep-crit .aud-rep-crit-head .status-pill{
      font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
      padding:4px 9px;border-radius:999px;
    }
    .aud-rep-crit .aud-rep-crit-head .status-pill.ok{background:rgba(106,143,90,.14);color:#3F8C46}
    .aud-rep-crit .aud-rep-crit-head .status-pill.min{background:rgba(245,158,11,.14);color:#92400e}
    .aud-rep-crit .aud-rep-crit-head .status-pill.maj{background:rgba(220,38,38,.14);color:#991b1b}
    .aud-rep-crit .aud-rep-crit-head .status-pill.na{background:rgba(156,163,175,.18);color:#6b7280}
    .aud-rep-crit .aud-rep-crit-body{display:none;padding:0;border-top:1px solid rgba(13,45,94,.06)}
    .aud-rep-crit.open .aud-rep-crit-body{display:block}

    .aud-rep-ind-table{display:block}
    .aud-rep-ind-thead{
      display:grid;grid-template-columns:60px minmax(180px,1.4fr) minmax(170px,1.3fr) minmax(170px,1.3fr) 140px;gap:0;
      background:rgba(13,45,94,.04);
      font-family:'Sora','Inter',sans-serif;font-size:10.5px;font-weight:800;letter-spacing:1px;
      text-transform:uppercase;color:#6b7280;
    }
    .aud-rep-ind-thead > div{padding:9px 12px;border-right:1px solid rgba(13,45,94,.06)}
    .aud-rep-ind-thead > div:last-child{border-right:none}
    .aud-rep-ind-row{
      display:grid;grid-template-columns:60px minmax(180px,1.4fr) minmax(170px,1.3fr) minmax(170px,1.3fr) 140px;
      gap:0;border-top:1px solid rgba(13,45,94,.06);
    }
    .aud-rep-ind-row:hover{background:rgba(249,115,22,.03)}
    .aud-rep-ind-row.min{background:rgba(245,158,11,.03)}
    .aud-rep-ind-row.maj{background:rgba(220,38,38,.04)}
    .aud-rep-ind-row.na{opacity:.6}
    .aud-rep-ind-num{
      padding:11px 8px;font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:700;
      color:#0d2d5e;text-align:center;border-right:1px solid rgba(13,45,94,.06);
      display:flex;align-items:flex-start;justify-content:center;
    }
    .aud-rep-ind-titre{
      padding:10px 12px;font-size:12.5px;line-height:1.5;color:#1a1a2e;
      border-right:1px solid rgba(13,45,94,.06);
    }
    .aud-rep-ind-cell{padding:8px 8px;border-right:1px solid rgba(13,45,94,.06)}
    .aud-rep-ind-cell:last-child{border-right:none}
    .aud-rep-ind-textarea{
      min-height:165px;padding:9px 11px;font-size:12.5px;line-height:1.5;
      border-radius:7px;
    }
    .aud-rep-ind-select{
      width:100%;padding:8px 10px;font-size:12px;border-radius:7px;
    }
    .aud-rep-ind-empty{
      padding:18px;text-align:center;color:#6b7280;font-size:12.5px;font-style:italic;
    }
    @media (max-width:1000px){
      .aud-rep-ind-thead, .aud-rep-ind-row{grid-template-columns:1fr;}
      .aud-rep-ind-thead > div, .aud-rep-ind-num, .aud-rep-ind-titre, .aud-rep-ind-cell{border-right:none;border-bottom:1px solid rgba(13,45,94,.06)}
      .aud-rep-ind-num{text-align:left;justify-content:flex-start;padding:8px 12px;font-size:11px;color:#F97316}
    }

    /* Phase 2 — Signature + lock finalized */
    .aud-rep-sign-pad{
      width:100%;height:140px;background:#fff;border:2px dashed rgba(13,45,94,.18);
      border-radius:12px;cursor:crosshair;display:block;
    }
    .aud-rep-sign-pad.signed{border-style:solid;border-color:rgba(106,143,90,.4)}
    .aud-rep-sign-actions{display:flex;gap:8px;margin-top:10px}
    .aud-rep-sign-clr{
      padding:8px 14px;border-radius:9px;background:rgba(13,45,94,.05);
      color:#0d2d5e;border:1px solid rgba(13,45,94,.14);font-size:12px;font-weight:700;cursor:pointer;
    }
    .aud-rep-sign-clr:hover{background:rgba(13,45,94,.1)}
    .aud-rep-finalize-btn{
      width:100%;margin-top:14px;padding:14px 18px;border-radius:12px;
      background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;
      font-size:14px;font-weight:700;font-family:inherit;border:none;cursor:pointer;
      box-shadow:0 6px 16px rgba(13,45,94,.24);
      display:flex;align-items:center;justify-content:center;gap:10px;
      transition:all .14s;
    }
    .aud-rep-finalize-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(13,45,94,.32)}
    .aud-rep-finalize-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
    .aud-rep-finalize-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.4;fill:none}
    .aud-rep-locked-banner{
      background:linear-gradient(135deg,rgba(106,143,90,.12),rgba(106,143,90,.04));
      border:1px solid rgba(106,143,90,.3);border-radius:12px;
      padding:14px 18px;display:flex;align-items:center;gap:12px;margin-bottom:18px;
    }
    .aud-rep-locked-banner .ic{
      width:36px;height:36px;border-radius:10px;flex-shrink:0;
      background:linear-gradient(135deg,#6A8F5A,#9DBE8E);color:#fff;
      display:flex;align-items:center;justify-content:center;
    }
    .aud-rep-locked-banner .ic svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.4;fill:none}
    .aud-rep-locked-banner h5{font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:700;margin:0 0 2px;color:#3F8C46}
    .aud-rep-locked-banner p{font-size:11.5px;color:#1a1a2e;margin:0;line-height:1.4}

    /* Documents */
    #auditeurView .aud-docs-search{
      position:relative;display:inline-flex;align-items:center;
    }
    #auditeurView .aud-docs-search svg{
      position:absolute;top:50%;left:14px;transform:translateY(-50%);
      color:var(--aud-muted);pointer-events:none;width:14px;height:14px;
    }
    #auditeurView .aud-docs-search input{
      padding:9px 14px 9px 38px;border:1px solid rgba(13,45,94,.14);border-radius:11px;
      font-size:13px;outline:none;width:240px;background:rgba(255,255,255,.7);
      font-family:inherit;color:var(--aud-ink);
    }
    #auditeurView .aud-docs-search input:focus{border-color:rgba(13,45,94,.35);background:#fff}
    #auditeurView .aud-docs-list{
      display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;
    }
    #auditeurView .aud-doc{
      display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:13px;cursor:pointer;
      background:var(--aud-paper);backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,.9);transition:all .18s;
      box-shadow:0 4px 12px rgba(13,45,94,.06);
    }
    #auditeurView .aud-doc:hover{transform:translateY(-2px);background:#fff;box-shadow:0 12px 24px rgba(13,45,94,.12)}
    #auditeurView .aud-doc-ic{
      width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;
      color:#fff;font-weight:800;font-size:10px;flex-shrink:0;box-shadow:0 4px 10px rgba(0,0,0,.1);
    }
    #auditeurView .aud-doc-ic.pdf{background:linear-gradient(135deg,#DC2626,#F87171)}
    #auditeurView .aud-doc-ic.doc{background:linear-gradient(135deg,#2563EB,#60A5FA)}
    #auditeurView .aud-doc-ic.xls{background:linear-gradient(135deg,#16A34A,#4ADE80)}
    #auditeurView .aud-doc-ic.img{background:linear-gradient(135deg,#9333EA,#C084FC)}
    #auditeurView .aud-doc-ic.other{background:linear-gradient(135deg,#6B7280,#9CA3AF)}
    #auditeurView .aud-doc-info{flex:1;min-width:0}
    #auditeurView .aud-doc-name{font-size:13px;font-weight:600;color:var(--aud-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    #auditeurView .aud-doc-meta{font-size:11px;color:var(--aud-muted);margin-top:3px;font-weight:500}

    /* Messagerie */
    #auditeurView .aud-msg-chat{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
    #auditeurView .aud-msg-head{
      display:flex;align-items:center;gap:14px;padding:18px 22px;
      background:linear-gradient(135deg,rgba(13,45,94,.06),rgba(249,115,22,.04));
      border-bottom:1px solid rgba(13,45,94,.08);
    }
    #auditeurView .aud-msg-avatar{
      width:44px;height:44px;border-radius:14px;flex-shrink:0;position:relative;
      background:linear-gradient(135deg,var(--aud-navy),var(--aud-navy-2));
      display:flex;align-items:center;justify-content:center;color:#fff;
      box-shadow:0 6px 14px rgba(13,45,94,.22);
    }
    #auditeurView .aud-msg-avatar svg{width:24px;height:24px}
    #auditeurView .aud-msg-avatar::after{
      content:"";position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;
      background:var(--aud-green);border:2px solid #fff;
      animation:audDot 2s infinite;
    }
    #auditeurView .aud-msg-head-info{flex:1;min-width:0}
    #auditeurView .aud-msg-head-info .nm{font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--aud-ink);letter-spacing:-.1px}
    #auditeurView .aud-msg-head-info .st{font-size:11.5px;color:var(--aud-green);margin-top:2px;font-weight:600;display:inline-flex;align-items:center;gap:5px}
    #auditeurView .aud-msg-head-info .st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
    #auditeurView .aud-msg-head-tag{padding:5px 12px;border-radius:999px;background:rgba(13,45,94,.08);color:var(--aud-navy);font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}
    #auditeurView .aud-msg-list-wrap{
      flex:1;padding:18px 22px 8px;min-height:280px;max-height:440px;overflow-y:auto;
      display:flex;flex-direction:column;gap:8px;
    }
    #auditeurView .aud-msg-list-wrap::-webkit-scrollbar{width:6px}
    #auditeurView .aud-msg-list-wrap::-webkit-scrollbar-thumb{background:rgba(13,45,94,.14);border-radius:3px}
    #auditeurView .aud-msg-bubble{
      max-width:72%;padding:11px 14px;border-radius:16px;
      font-size:13px;line-height:1.5;word-wrap:break-word;animation:audMsgIn .3s cubic-bezier(.2,.9,.25,1.05);
      position:relative;
    }
    @keyframes audMsgIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
    #auditeurView .aud-msg-bubble.received{
      align-self:flex-start;background:rgba(255,255,255,.8);
      border:1px solid rgba(13,45,94,.08);color:var(--aud-ink);border-bottom-left-radius:6px;
      box-shadow:0 2px 6px rgba(13,45,94,.06);
    }
    #auditeurView .aud-msg-bubble.sent{
      align-self:flex-end;background:linear-gradient(135deg,var(--aud-navy),var(--aud-navy-2));
      color:#fff;border-bottom-right-radius:6px;box-shadow:0 4px 12px rgba(13,45,94,.25);
    }
    #auditeurView .aud-msg-sender{font-size:10.5px;font-weight:700;color:var(--aud-coral-2);letter-spacing:.8px;text-transform:uppercase;margin-bottom:4px}
    #auditeurView .aud-msg-time{font-size:10px;color:var(--aud-muted);margin-top:4px;font-weight:500}
    #auditeurView .aud-msg-bubble.sent .aud-msg-time{color:rgba(255,255,255,.7)}
    #auditeurView .aud-msg-date-separator{
      align-self:center;padding:4px 12px;border-radius:999px;
      background:rgba(13,45,94,.06);color:var(--aud-muted);
      font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin:8px 0 4px;
    }
    #auditeurView .aud-msg-input-wrap{
      padding:14px 22px 18px;border-top:1px solid rgba(13,45,94,.08);
      display:flex;gap:10px;align-items:center;
    }
    #auditeurView .aud-msg-input-wrap textarea{
      flex:1;padding:12px 14px;border:1px solid rgba(13,45,94,.14);border-radius:12px;
      font-size:13px;outline:none;font-family:inherit;resize:none;
      background:rgba(255,255,255,.7);color:var(--aud-ink);
    }
    #auditeurView .aud-msg-input-wrap textarea:focus{border-color:rgba(13,45,94,.35);background:#fff;box-shadow:0 0 0 3px rgba(13,45,94,.1)}
    #auditeurView .aud-msg-send{
      background:linear-gradient(135deg,var(--aud-coral),var(--aud-coral-2));
      border:none;color:#fff;border-radius:12px;cursor:pointer;padding:12px 18px;
      display:inline-flex;align-items:center;justify-content:center;gap:8px;
      font-size:13px;font-weight:700;font-family:inherit;
      box-shadow:0 6px 14px rgba(249,115,22,.32);transition:all .18s;
    }
    #auditeurView .aud-msg-send:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(249,115,22,.42)}

    /* Profile form */
    #auditeurView .aud-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    @media(max-width:880px){#auditeurView .aud-profile-grid{grid-template-columns:1fr}}
    #auditeurView .aud-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    @media(max-width:560px){#auditeurView .aud-form-grid{grid-template-columns:1fr}}
    #auditeurView .aud-field{display:flex;flex-direction:column;gap:5px}
    #auditeurView .aud-field.full{grid-column:span 2}
    @media(max-width:560px){#auditeurView .aud-field.full{grid-column:span 1}}
    #auditeurView .aud-field span{font-size:10.5px;color:var(--aud-muted);font-weight:700;text-transform:uppercase;letter-spacing:1.2px}
    #auditeurView .aud-field input,#auditeurView .aud-field textarea{
      padding:10px 14px;border:1px solid rgba(13,45,94,.14);border-radius:11px;
      font-size:13px;color:var(--aud-ink);background:rgba(255,255,255,.7);
      font-family:inherit;outline:none;transition:all .15s;resize:vertical;
    }
    #auditeurView .aud-field input:focus,#auditeurView .aud-field textarea:focus{
      border-color:rgba(13,45,94,.35);background:#fff;box-shadow:0 0 0 3px rgba(13,45,94,.1);
    }
    #auditeurView .aud-field input:disabled{background:rgba(13,45,94,.04);color:var(--aud-muted);cursor:not-allowed}

    /* Loading spinner */
    #auditeurView .loading-spinner{padding:28px;display:flex;justify-content:center}
    #auditeurView .spinner{
      width:32px;height:32px;border-radius:50%;
      border:3px solid rgba(13,45,94,.08);border-top-color:var(--aud-coral);
      animation:audSpin .8s linear infinite;
    }
    @keyframes audSpin{to{transform:rotate(360deg)}}

    /* Focus visible (accessibility) */
    #auditeurView button:focus-visible,
    #auditeurView a:focus-visible,
    #auditeurView input:focus-visible,
    #auditeurView textarea:focus-visible,
    #auditeurView select:focus-visible{
      outline:none;
      box-shadow:0 0 0 3px rgba(249,115,22,.4),0 0 0 5px rgba(255,255,255,.7);
      border-radius:10px;
    }

    /* Responsive */
    @media(max-width:980px){
      #auditeurView .aud-shell{grid-template-columns:1fr}
      #auditeurView .aud-sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;transform:translateX(-100%);transition:transform .3s;z-index:50}
      #auditeurView .aud-sidebar.open{transform:translateX(0)}
      #auditeurView .aud-main{padding:70px 18px 48px}
      #auditeurView .aud-mobile-burger{display:flex !important}
      #auditeurView .aud-hero{grid-template-columns:1fr;padding:24px 22px}
      #auditeurView .aud-hero h1{font-size:26px}
    }
    @media(max-width:640px){
      #auditeurView .aud-hero{padding:22px 18px}
      #auditeurView .aud-hero h1{font-size:22px}
    }

    /* ══════════ AUDITEUR · Modal détail mission ══════════ */
    .aud-mission-modal{
      display:none;position:fixed;inset:0;z-index:9700;
      background:rgba(13,45,94,.55);
      backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      align-items:center;justify-content:center;padding:28px;
      font-family:'Inter',system-ui,sans-serif;
      animation:audMmFade .25s ease;
    }
    .aud-mission-modal.show{display:flex}
    @keyframes audMmFade{from{opacity:0}to{opacity:1}}
    .aud-mission-box{
      width:100%;max-width:760px;max-height:90vh;overflow:hidden;
      background:#fff;border-radius:24px;
      box-shadow:0 40px 100px rgba(13,45,94,.5);
      display:flex;flex-direction:column;
      animation:audMmUp .35s cubic-bezier(.2,.9,.25,1.1);
    }
    @keyframes audMmUp{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
    .aud-mission-modal-hero{
      position:relative;overflow:hidden;
      padding:30px 32px 24px;color:#fff;
      background:linear-gradient(135deg,#0d2d5e 0%,#1C4A8E 60%,#3B6FB5 100%);
    }
    .aud-mission-modal-hero::before{
      content:"";position:absolute;top:-50%;right:-10%;
      width:300px;height:300px;border-radius:50%;
      background:radial-gradient(circle, rgba(249,115,22,.28) 0%, transparent 65%);
      pointer-events:none;
    }
    .aud-mm-close{
      position:absolute;top:14px;right:14px;z-index:2;
      width:36px;height:36px;border-radius:11px;cursor:pointer;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      color:#fff;display:flex;align-items:center;justify-content:center;
      backdrop-filter:blur(10px);transition:all .15s;
    }
    .aud-mm-close:hover{background:rgba(255,255,255,.26);transform:translateY(-1px)}
    .aud-mm-close svg{width:16px;height:16px}
    .aud-mm-eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:7px 13px;border-radius:999px;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;
      color:rgba(255,255,255,.92);margin-bottom:12px;backdrop-filter:blur(10px);
      position:relative;z-index:1;
    }
    .aud-mm-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#F97316;box-shadow:0 0 8px #F97316}
    .aud-mission-modal-hero h2{
      font-family:'Sora','Inter',sans-serif;
      font-size:26px;font-weight:700;color:#fff;
      margin:0 0 14px;letter-spacing:-.5px;line-height:1.15;
      position:relative;z-index:1;
    }
    .aud-mm-hero-meta{
      display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1;
    }
    .aud-mm-hero-meta .pill{
      display:inline-flex;align-items:center;gap:7px;
      padding:7px 13px;border-radius:999px;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
      font-size:11.5px;color:rgba(255,255,255,.92);font-weight:600;letter-spacing:.2px;
      backdrop-filter:blur(10px);
    }
    .aud-mm-hero-meta .pill.coral{background:rgba(249,115,22,.22);border-color:rgba(249,115,22,.4);color:#fff}
    .aud-mm-hero-meta .pill.green{background:rgba(106,143,90,.3);border-color:rgba(134,177,120,.5);color:#fff}
    .aud-mm-hero-meta .pill.amber{background:rgba(201,148,62,.32);border-color:rgba(219,174,94,.5);color:#fff}
    .aud-mm-hero-meta .pill svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none;opacity:.85}
    .aud-mm-hero-meta .pill b{margin-left:2px}

    .aud-mission-modal-body{
      flex:1;overflow-y:auto;padding:22px 24px 26px;background:#f8f9fc;
    }
    .aud-mission-modal-body::-webkit-scrollbar{width:8px}
    .aud-mission-modal-body::-webkit-scrollbar-thumb{background:rgba(13,45,94,.18);border-radius:4px}
    .aud-mm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
    @media(max-width:640px){.aud-mm-grid{grid-template-columns:1fr}}
    .aud-mm-card{
      background:#fff;border-radius:16px;padding:18px 20px;
      border:1px solid rgba(13,45,94,.08);
      box-shadow:0 6px 16px rgba(13,45,94,.06);
    }
    .aud-mm-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
    .aud-mm-card-head svg{width:18px;height:18px;stroke:#0d2d5e;stroke-width:2;fill:none}
    .aud-mm-card-head h3{
      font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;
      color:#1A2742;margin:0;letter-spacing:-.1px;
    }
    .aud-mm-rows{display:flex;flex-direction:column}
    .aud-mm-row{
      display:flex;align-items:baseline;justify-content:space-between;gap:14px;
      padding:9px 0;border-bottom:1px dashed rgba(13,45,94,.1);
    }
    .aud-mm-row:last-child{border-bottom:none}
    .aud-mm-row .k{
      font-size:11.5px;color:#8A8273;font-weight:600;letter-spacing:.1px;
      flex-shrink:0;max-width:45%;
    }
    .aud-mm-row .v{
      font-size:13px;color:#1A2742;font-weight:600;text-align:right;letter-spacing:.05px;
      word-break:break-word;
    }
    .aud-mm-row .v a{color:#0d2d5e;text-decoration:none;border-bottom:1px dashed rgba(13,45,94,.35)}
    .aud-mm-row .v a:hover{border-bottom-style:solid}
    .aud-mm-row .v.muted{color:#8A8273;font-weight:500;font-style:italic}
    .aud-mm-row .v .pill-status{
      display:inline-block;padding:3px 10px;border-radius:999px;
      font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;
    }
    .aud-mm-row .v .pill-status.realise{background:rgba(106,143,90,.15);color:#4F7043}
    .aud-mm-row .v .pill-status.programme{background:rgba(13,45,94,.08);color:#0d2d5e}
    .aud-mm-row .v .pill-status.a_programmer{background:rgba(201,148,62,.15);color:#7C5A20}
    .aud-mm-row .v .pill-status.annule{background:rgba(196,60,60,.15);color:#B91C1C}

    .aud-mm-actions{
      display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;
    }
    .aud-mm-action{
      display:inline-flex;align-items:center;gap:7px;
      padding:10px 16px;border-radius:11px;cursor:pointer;text-decoration:none;
      background:#fff;border:1px solid rgba(13,45,94,.12);
      color:#0d2d5e;font-size:12.5px;font-weight:700;letter-spacing:.2px;
      font-family:inherit;transition:all .15s;
      box-shadow:0 4px 10px rgba(13,45,94,.06);
    }
    .aud-mm-action:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(13,45,94,.1);border-color:rgba(13,45,94,.25)}
    .aud-mm-action svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}
    .aud-mm-action.primary{
      background:linear-gradient(135deg,#F97316,#EA580C);color:#fff;border-color:transparent;
      box-shadow:0 8px 18px rgba(249,115,22,.32);
    }
    .aud-mm-action.primary:hover{box-shadow:0 12px 24px rgba(249,115,22,.45)}

    /* Make mission items, calendar events and next-mission card clickable */
    #auditeurView .aud-mission-item,
    #auditeurView .aud-cal-event,
    #auditeurView #audNextMissionCard.is-clickable{cursor:pointer}
    #auditeurView #audNextMissionCard.is-clickable:hover{transform:translateY(-2px);box-shadow:var(--aud-shadow-hover)}
    #auditeurView #audNextMissionCard.is-clickable{transition:transform .22s, box-shadow .22s}

  /* ===== APP LAYOUT ===== */
  .app { display: none; min-height: 100vh; }

  .topbar {
    background: var(--primary);
    color: white;
    padding: 0 24px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  }

  .topbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .topbar-left .logo-sm {
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,0.15);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
  }

  .topbar-left h2 {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.3px;
  }

  .topbar-right {
    display: flex;
    align-items: center;
    gap: 16px;
  }

  .user-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255,255,255,0.1);
    padding: 6px 14px 6px 6px;
    border-radius: 20px;
    font-size: 13px;
  }

  .user-avatar {
    width: 28px;
    height: 28px;
    background: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
  }

  .btn-logout {
    background: rgba(255,255,255,0.1);
    border: none;
    color: white;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.2s;
  }

  .btn-logout:hover { background: rgba(255,255,255,0.2); }

  .notification-bell {
    position: relative;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    transition: background 0.2s;
  }

  .notification-bell:hover { background: rgba(255,255,255,0.15); }

  .notification-bell svg { width: 20px; height: 20px; }

  .notif-count {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 16px;
    height: 16px;
    background: var(--danger);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    display: none;
  }

  /* ===== NAV TABS ===== */
  .nav-tabs {
    background: white;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: 0;
    padding: 0 24px;
    overflow-x: auto;
  }

  .nav-tab {
    padding: 14px 20px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .nav-tab:hover { color: var(--primary); }

  .nav-tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    font-weight: 600;
  }

  .nav-tab svg { width: 18px; height: 18px; }

  .msg-badge {
    background: var(--danger);
    color: white;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 10px;
    display: none;
  }

  /* ===== MAIN CONTENT ===== */
  .main-content {
    padding: 24px;
    max-width: 1200px;
    margin: 0 auto;
  }

  .tab-panel { display: none; }
  .tab-panel.active {
    display: block;
    animation: tabFadeSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
  }

  /* ===== CARDS ===== */
  .card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 16px;
  }

  .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
  }

  .card-header h3 {
    font-size: 16px;
    font-weight: 600;
  }

  /* ===== DASHBOARD OVERVIEW ===== */
  .stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
  }

  .stat-card {
    background: white;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
  }

  .stat-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .stat-icon svg { width: 22px; height: 22px; }

  .stat-info h4 {
    font-size: 13px;
    color: var(--text-secondary);
    font-weight: 500;
    margin-bottom: 4px;
  }

  .stat-info .stat-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
  }

  .stat-info .stat-sub {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 2px;
  }

  /* ===== CLIENT INFO CARDS ===== */
  .client-info-card {
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    background: #fff;
  }
  .client-info-header {
    padding: 12px 18px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .info-card-blue { border-color: #d0ddf0; }
  .info-header-blue { background: #edf2fb; color: #0d2d5e; border-bottom: 1px solid #d0ddf0; }
  .info-card-green { border-color: #c8e6c9; }
  .info-header-green { background: #e8f5e9; color: #1b5e20; border-bottom: 1px solid #c8e6c9; }
  .info-card-orange { border-color: #ffe0b2; }
  .info-header-orange { background: #fff3e0; color: #e65100; border-bottom: 1px solid #ffe0b2; }
  .client-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .client-info-item {
    padding: 10px 18px;
    border-bottom: 1px solid #f3f4f6;
    border-right: 1px solid #f3f4f6;
  }
  .client-info-item:nth-child(2n) { border-right: none; }
  .client-info-item:nth-last-child(-n+2) { border-bottom: none; }
  .client-info-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #8b95a5;
    font-weight: 600;
    margin-bottom: 3px;
  }
  .client-info-value {
    font-size: 13px;
    color: #1a1a2e;
    font-weight: 500;
    line-height: 1.4;
    word-break: break-word;
  }
  @media(max-width:640px) {
    .client-info-grid { grid-template-columns: 1fr; }
    .client-info-item { border-right: none; }
    .client-info-item:last-child { border-bottom: none; }
  }

  /* ===== DOCUMENTS ===== */
  /* ===== DOCUMENTS - HEADER ===== */
  .docs-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
  }
  .docs-header-left {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .docs-header-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0,61,106,0.2);
  }
  .docs-header-right {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .docs-search {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 8px 14px;
    transition: all 0.2s;
  }
  .docs-search:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(0,61,106,0.08);
  }
  .docs-search svg { color: var(--text-secondary); flex-shrink: 0; }
  .docs-search input {
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    font-family: inherit;
    color: var(--text);
    width: 180px;
  }
  .docs-view-toggle {
    display: flex;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
  }
  .docs-view-btn {
    padding: 7px 10px;
    background: var(--card);
    border: none;
    cursor: pointer;
    color: var(--text-secondary);
    transition: all 0.15s;
    display: flex;
    align-items: center;
  }
  .docs-view-btn:first-child { border-right: 1px solid var(--border); }
  .docs-view-btn.active {
    background: var(--primary);
    color: #fff;
  }

  /* ===== DOCUMENTS - STATS ===== */
  .docs-stats-row {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
  }
  .docs-stat-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text);
    flex: 1;
    min-width: 120px;
  }
  .docs-stat-chip .chip-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
  }
  .docs-stat-chip .chip-count {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
  }
  .docs-stat-chip .chip-label {
    font-size: 11px;
    color: var(--text-secondary);
    font-weight: 400;
  }

  /* ===== DOCUMENTS - FOLDER ===== */
  .doc-folder {
    margin-bottom: 28px;
  }
  .doc-folder-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }
  .doc-folder-title .folder-badge {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .doc-folder-title .folder-count {
    font-weight: 400;
    color: var(--text-secondary);
    font-size: 12px;
    margin-left: auto;
    text-transform: none;
    letter-spacing: 0;
  }

  /* ===== DOCUMENTS - GRID ===== */
  .doc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
  }
  .doc-grid.list-view {
    grid-template-columns: 1fr;
  }

  /* ===== DOCUMENTS - ITEM CARD ===== */
  .doc-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: var(--card);
    border-radius: 14px;
    border: 1px solid var(--border);
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
  }
  .doc-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: transparent;
    transition: background 0.25s;
    border-radius: 0 3px 3px 0;
  }
  .doc-item:hover {
    border-color: var(--primary);
    box-shadow: 0 4px 16px rgba(0,61,106,0.1);
    transform: translateY(-2px);
  }
  .doc-item:hover::before {
    background: var(--primary);
  }
  .doc-item:active {
    transform: translateY(0);
  }

  .doc-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 800;
    color: white;
    letter-spacing: 0.5px;
    position: relative;
  }
  .doc-icon.pdf { background: linear-gradient(135deg, #DC2626, #F87171); }
  .doc-icon.doc { background: linear-gradient(135deg, #2563EB, #60A5FA); }
  .doc-icon.xls { background: linear-gradient(135deg, #16A34A, #4ADE80); }
  .doc-icon.img { background: linear-gradient(135deg, #9333EA, #C084FC); }
  .doc-icon.other { background: linear-gradient(135deg, #6B7280, #9CA3AF); }

  .doc-info {
    flex: 1;
    min-width: 0;
  }
  .doc-info .doc-name {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--text);
  }
  .doc-info .doc-meta {
    font-size: 11px;
    color: var(--text-secondary);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
  }

  .doc-download {
    padding: 8px;
    border-radius: 10px;
    color: var(--text-secondary);
    transition: all 0.2s;
    flex-shrink: 0;
    background: var(--bg);
  }
  .doc-item:hover .doc-download {
    background: var(--primary);
    color: white;
  }

  .doc-folder-title svg { width: 18px; height: 18px; color: var(--accent); }

  /* ===== AUDIT TIMELINE ===== */
  .timeline {
    position: relative;
    padding-left: 32px;
  }

  .timeline::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--border);
  }

  .timeline-item {
    position: relative;
    padding-bottom: 28px;
  }

  .timeline-item:last-child { padding-bottom: 0; }

  .timeline-dot {
    position: absolute;
    left: -32px;
    top: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid white;
    box-shadow: 0 0 0 2px var(--border);
  }

  .timeline-dot.done { background: var(--success); }
  .timeline-dot.upcoming { background: var(--accent); }
  .timeline-dot.pending { background: var(--border); }

  .timeline-dot svg { width: 12px; height: 12px; color: white; }

  .timeline-content {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
  }

  .timeline-content h4 {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 4px;
  }

  .timeline-content p {
    font-size: 13px;
    color: var(--text-secondary);
  }

  .timeline-date {
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 8px;
    font-weight: 500;
  }

  /* ===== CERTIFICATE ===== */
  .certif-card {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
    color: white;
    border-radius: 12px;
    padding: 32px;
    position: relative;
    overflow: hidden;
  }

  .certif-card::after {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 200px;
    height: 200px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
  }

  .certif-card::before {
    content: '';
    position: absolute;
    bottom: -60px;
    left: -60px;
    width: 250px;
    height: 250px;
    background: rgba(255,255,255,0.03);
    border-radius: 50%;
  }

  .certif-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    position: relative;
    z-index: 1;
  }

  .certif-seal {
    width: 64px;
    height: 64px;
    background: rgba(255,255,255,0.15);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255,255,255,0.3);
  }

  .certif-seal svg { width: 32px; height: 32px; }

  .certif-title h3 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 2px;
  }

  .certif-title p {
    font-size: 14px;
    opacity: 0.8;
  }

  .certif-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    position: relative;
    z-index: 1;
  }

  .certif-detail-item {
    background: rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 14px;
  }

  .certif-detail-item label {
    font-size: 12px;
    opacity: 0.7;
    display: block;
    margin-bottom: 4px;
  }

  .certif-detail-item span {
    font-size: 15px;
    font-weight: 600;
  }

  .certif-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
  }

  .certif-status.valid {
    background: rgba(22,163,74,0.2);
    color: #86EFAC;
  }

  .certif-status.expiring {
    background: rgba(245,158,11,0.2);
    color: #FCD34D;
  }

  .certif-status.expired {
    background: rgba(220,38,38,0.2);
    color: #FCA5A5;
  }

  /* ===== MESSAGERIE ===== */
  .msg-container {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 220px);
    min-height: 400px;
  }

  .msg-list {
    flex: 1;
    overflow-y: auto;
    padding: 16px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .msg-bubble {
    max-width: 75%;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.5;
  }

  .msg-bubble.received {
    align-self: flex-start;
    background: var(--bg);
    border: 1px solid var(--border);
    border-bottom-left-radius: 4px;
  }

  .msg-bubble.sent {
    align-self: flex-end;
    background: var(--primary);
    color: white;
    border-bottom-right-radius: 4px;
  }

  .msg-sender {
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--primary);
  }

  .msg-time {
    font-size: 11px;
    opacity: 0.6;
    margin-top: 4px;
    text-align: right;
  }

  .msg-input-area {
    display: flex;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
  }

  .msg-input-area textarea {
    flex: 1;
    padding: 12px 14px;
    border: 1.5px solid var(--border);
    border-radius: var(--radius);
    font-size: 14px;
    font-family: inherit;
    resize: none;
    outline: none;
    min-height: 44px;
    max-height: 120px;
  }

  .msg-input-area textarea:focus {
    border-color: var(--primary);
  }

  .msg-date-separator {
    text-align: center;
    font-size: 12px;
    color: var(--text-secondary);
    padding: 8px 0;
    position: relative;
  }

  .msg-date-separator::before,
  .msg-date-separator::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 30%;
    height: 1px;
    background: var(--border);
  }

  .msg-date-separator::before { left: 0; }
  .msg-date-separator::after { right: 0; }

  /* ===== EMPTY STATES ===== */
  .empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--text-secondary);
  }

  .empty-state svg {
    width: 56px;
    height: 56px;
    margin-bottom: 16px;
    opacity: 0.4;
  }

  .empty-state h4 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 8px;
  }

  .empty-state p {
    font-size: 14px;
    max-width: 360px;
    margin: 0 auto;
  }

  /* ===== LOADING ===== */
  .loading-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
  }

  .spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
  }

  @keyframes spin { to { transform: rotate(360deg); } }

  /* ===== PASSWORD MODAL ===== */
  .modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 200;
  }

  .modal-overlay.show { display: flex; }

  .modal {
    background: white;
    border-radius: 12px;
    padding: 32px;
    max-width: 440px;
    width: 90%;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  }

  .modal h3 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
  }

  .modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 20px;
  }

  /* ===== MOBILE BOTTOM NAV ===== */
  .mobile-bottom-nav {
    display:none;
    position:fixed;bottom:0;left:0;right:0;z-index:1000;
    background:var(--dark);
    border-top:2px solid rgba(255,255,255,0.1);
    padding:2px 0 env(safe-area-inset-bottom, 4px) 0;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
  .mobile-bottom-nav-inner {
    display:flex;justify-content:space-around;align-items:stretch;min-width:100%;
  }
  .mobile-nav-btn {
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2px;padding:6px 2px;background:none;border:none;color:rgba(255,255,255,0.5);
    font-size:9px;cursor:pointer;min-width:0;white-space:nowrap;transition:all 0.15s;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-nav-btn .nav-icon{font-size:18px;line-height:1;}
  .mobile-nav-btn.active{color:#fff;background:rgba(255,255,255,0.12);}
  .mobile-nav-btn:active{background:rgba(255,255,255,0.18);}

  /* ===== RESPONSIVE ===== */
  @media (max-width: 768px) {
    /* Show mobile bottom nav, hide sidebar */
    body.admin-mode .sidebar { display:none !important; }
    body.admin-mode .mobile-bottom-nav { display:block !important; }
    body.admin-mode #adminView { height:auto; min-height:100vh; }
    body.admin-mode .main { padding-bottom:68px; }
    body.admin-mode { overflow:auto; }

    /* Topbar mobile */
    .topbar {
      padding:8px 12px !important;
      flex-wrap:wrap;gap:6px;
    }
    .topbar h1 { font-size:14px; }
    .topbar p { display:none; }
    .topbar > div:nth-child(2) { /* search */ order:3;flex:1 1 100%;max-width:100% !important;margin:0 !important; }
    .topbar-right { gap:4px; }
    .topbar-right .pill { display:none; }
    .topbar-right button { font-size:11px; padding:4px 8px; }
    .topbar-right img:last-child { display:none; }

    /* Content */
    .content { padding:12px !important; }
    .main-content { padding:12px; }
    .nav-tabs { padding:0 12px; }

    /* Stats */
    .stats-row { grid-template-columns: 1fr 1fr; gap:8px !important; }
    .stat { padding:10px !important; }
    .stat-val { font-size:18px !important; }
    .stat-label { font-size:10px !important; }

    /* Dashboard grid */
    #dashboard-grid { grid-template-columns:1fr !important; }

    /* Cards */
    .card { padding:12px !important; margin-bottom:10px; }
    .card-title { font-size:13px !important; }

    /* Tables responsive */
    table { font-size:12px; }
    table th, table td { padding:6px 8px !important; white-space:nowrap; }
    [id$="-table-wrap"], [id$="-tbody"], .card { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    table { min-width:500px; }

    /* Documents */
    .doc-grid { grid-template-columns: 1fr; }
    .docs-header { flex-direction:column; align-items:stretch; }
    .docs-header-right { justify-content:space-between; }
    .docs-search input { width:120px; }
    .docs-stats-row { gap:8px; }
    .docs-stat-chip { min-width:90px; padding:8px 12px; }
    .certif-details { grid-template-columns: 1fr 1fr; }

    /* Messages */
    .msg-bubble { max-width:85%; }
    .user-badge span { display:none; }

    /* Client info */
    .client-info-grid { grid-template-columns:1fr !important; }

    /* Login */
    .login-card { padding:32px 24px; }

    /* Modals */
    .modal-box, [style*="max-width:700px"], [style*="max-width:600px"], [style*="max-width:500px"] {
      width:95vw !important;max-width:95vw !important;margin:10px auto !important;
      max-height:85vh !important;overflow-y:auto !important;
    }
  }

  @media (max-width: 480px) {
    .stats-row { grid-template-columns: 1fr; }
    .certif-details { grid-template-columns: 1fr; }
    .nav-tab span { display: none; }
    .topbar h1 { font-size:13px; }
    .mobile-nav-btn { font-size:8px; }
    .mobile-nav-btn .nav-icon { font-size:16px; }
  }

  /* ═══════════════════════════════════════════════════════════════
     V2 DESIGN SYSTEM — Sidebar + Topbar + Dashboard
     Inspiré de nexus-app-v2.html (mockup validé par Selim).
     Cascade : ces règles arrivent APRÈS l'ancien CSS prod, donc
     elles écrasent les styles partagés (.sidebar, .topbar, .main,
     .content, .btn) tout en laissant intactes les classes spécifiques
     aux autres onglets (.stat, .stats-row, .card, .fb, .pill, etc.).
     ═══════════════════════════════════════════════════════════════ */

  /* SIDEBAR v2 ---------------------------------------------------- */
  /* ══════════════════════════════════════════
     SIDEBAR v3 — Modern glass + aurora
     ══════════════════════════════════════════ */
  .sidebar {
    width:260px; position:relative; flex-shrink:0; height:100vh;
    color:#fff; display:flex; flex-direction:column; padding:18px 14px 14px;
    background:
      radial-gradient(620px 300px at -10% -10%, rgba(249,115,22,.18), transparent 60%),
      radial-gradient(520px 260px at 110% 85%, rgba(37,99,235,.18), transparent 60%),
      linear-gradient(180deg, #0a2249 0%, #0d2d5e 45%, #0a2249 100%);
    border-right:1px solid rgba(255,255,255,.06);
    overflow:hidden; isolation:isolate;
  }
  /* subtle animated aurora orbs */
  .sidebar::before, .sidebar::after {
    content:""; position:absolute; width:260px; height:260px; border-radius:50%;
    filter:blur(60px); opacity:.35; z-index:-1; pointer-events:none;
    animation:sidebar-orb 18s ease-in-out infinite;
  }
  .sidebar::before { background:radial-gradient(circle, #F97316 0%, transparent 60%); top:-80px; left:-80px; }
  .sidebar::after  { background:radial-gradient(circle, #3B82F6 0%, transparent 60%); bottom:-80px; right:-80px; animation-delay:-9s; }
  @keyframes sidebar-orb {
    0%,100% { transform:translate(0,0) scale(1); }
    50%     { transform:translate(18px,-14px) scale(1.1); }
  }

  .brand {
    display:flex; align-items:center; gap:11px; padding:4px 8px 18px;
    position:relative; margin-bottom:4px;
  }
  .brand::after {
    content:""; position:absolute; left:8px; right:8px; bottom:6px; height:1px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.14) 30%, rgba(255,255,255,.14) 70%, transparent);
  }
  .brand-logo {
    width:48px; height:42px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:transparent; border:none; padding:0;
    cursor:pointer; text-decoration:none;
    transition:transform .35s cubic-bezier(.2,.9,.25,1.2);
  }
  .brand-logo img {
    width:100%; height:100%; object-fit:contain; display:block;
    pointer-events:none;
    filter:drop-shadow(0 2px 6px rgba(249,115,22,.32));
  }
  .brand:hover .brand-logo { transform:scale(1.06); }
  .brand:hover .brand-logo img { filter:drop-shadow(0 4px 14px rgba(249,115,22,.55)); }
  .brand-text { display:flex; flex-direction:column; line-height:1.15; }
  .brand-text .n1 { font-weight:700; font-size:16px; letter-spacing:.02em; color:#fff; }
  .brand-text .n2 { font-size:10.5px; color:rgba(255,255,255,.55); font-weight:500; letter-spacing:.02em; }

  .nav-section-label {
    font-size:9.5px; text-transform:uppercase; letter-spacing:.14em;
    color:rgba(255,255,255,.32); padding:14px 14px 8px; font-weight:700;
    display:flex; align-items:center; gap:8px;
  }
  .nav-section-label::after {
    content:""; flex:1; height:1px;
    background:linear-gradient(90deg, rgba(255,255,255,.08), transparent);
  }

  .sidebar nav, .sidebar .nav { display:flex; flex-direction:column; gap:3px; padding:0; }
  .sidebar .nav.flex-grow { flex:1; overflow-y:auto; overflow-x:hidden; }
  .sidebar .nav.flex-grow::-webkit-scrollbar { width:4px; }
  .sidebar .nav.flex-grow::-webkit-scrollbar-thumb { background:rgba(255,255,255,.1); border-radius:4px; }

  .sidebar .nav-item {
    display:flex; align-items:center; gap:12px; padding:10px 13px; border-radius:11px;
    color:rgba(255,255,255,.72); font-size:13.5px; font-weight:500;
    width:100%; text-align:left; position:relative; overflow:hidden;
    background:transparent; border:none; cursor:pointer;
    transition:color .25s ease, background .25s ease, transform .2s ease, box-shadow .3s ease;
  }
  /* shine sweep on hover */
  .sidebar .nav-item::after {
    content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
    background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,.08) 50%, transparent 70%);
    transform:translateX(-120%); transition:transform .55s ease;
  }
  .sidebar .nav-item:hover {
    color:#fff; background:rgba(255,255,255,.07);
    transform:translateX(2px);
  }
  .sidebar .nav-item:hover::after { transform:translateX(120%); }
  .sidebar .nav-item:hover .ico { transform:scale(1.12); color:var(--coral-500); }

  .sidebar .nav-item.active {
    color:#fff; font-weight:600;
    background:linear-gradient(100deg, rgba(249,115,22,.22) 0%, rgba(249,115,22,.08) 40%, rgba(255,255,255,.06) 100%);
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.07),
      0 6px 18px -8px rgba(249,115,22,.45);
  }
  .sidebar .nav-item.active::before {
    content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:3px; height:60%;
    background:linear-gradient(180deg, #FB923C, #F97316);
    border-radius:0 3px 3px 0;
    box-shadow:0 0 10px rgba(249,115,22,.75);
    animation:activeBarPulse 2.6s ease-in-out infinite;
  }
  @keyframes activeBarPulse {
    0%,100% { box-shadow:0 0 10px rgba(249,115,22,.5); }
    50%     { box-shadow:0 0 16px rgba(249,115,22,.9); }
  }
  .sidebar .nav-item.active .ico { color:var(--coral-500); opacity:1; transform:scale(1.06); }

  .sidebar .nav-item .ico {
    width:20px; height:20px; flex-shrink:0; stroke:currentColor;
    stroke-width:1.8; fill:none; opacity:.85;
    transition:transform .25s cubic-bezier(.2,.9,.25,1.2), color .2s;
  }
  .sidebar .nav-item .count {
    margin-left:auto; background:rgba(255,255,255,.1); color:rgba(255,255,255,.85);
    padding:2px 8px; border-radius:10px; font-size:10.5px; font-weight:700;
    letter-spacing:.02em; transition:all .25s;
  }
  .sidebar .nav-item.active .count {
    background:linear-gradient(135deg, #F97316, #EA580C); color:#fff;
    box-shadow:0 2px 8px rgba(249,115,22,.45);
  }

  /* secondary nav (Paramètres etc.) — same pattern but smaller gap */
  .sidebar .nav-secondary { padding:0 0 6px; display:flex; flex-direction:column; gap:3px; }

  /* User card at bottom of sidebar */
  .sidebar-user {
    margin-top:10px; padding:12px; border-radius:12px;
    background:linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
    border:1px solid rgba(255,255,255,.06);
    display:flex; align-items:center; gap:11px;
    transition:all .25s;
    cursor:default;
  }
  .sidebar-user:hover {
    background:linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
    border-color:rgba(255,255,255,.12);
    transform:translateY(-1px);
  }
  .sidebar-user .mini-av {
    width:36px; height:36px; border-radius:50%; flex-shrink:0; position:relative;
    background:linear-gradient(135deg,#FB923C,#E11D48);
    display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:13px; color:#fff;
    box-shadow:0 3px 10px rgba(251,146,60,.45), inset 0 -2px 0 rgba(0,0,0,.15);
  }
  .sidebar-user .mini-av::after {
    content:""; position:absolute; right:-1px; bottom:-1px;
    width:11px; height:11px; border-radius:50%;
    background:#22c55e; border:2px solid #0d2d5e;
    animation:statusPulse 2.4s ease-in-out infinite;
  }
  @keyframes statusPulse {
    0%,100% { box-shadow:0 0 0 0 rgba(34,197,94,.55); }
    50%     { box-shadow:0 0 0 6px rgba(34,197,94,0); }
  }
  .sidebar-user .who-block { display:flex; flex-direction:column; min-width:0; flex:1; }
  .sidebar-user .who { font-size:13px; font-weight:600; color:#fff; letter-spacing:.01em; }
  .sidebar-user .role { font-size:10.5px; color:rgba(255,255,255,.55); font-weight:500; }
  .sidebar-user .user-caret {
    width:14px; height:14px; stroke:rgba(255,255,255,.4); stroke-width:2; fill:none;
    transition:transform .2s;
  }
  .sidebar-user:hover .user-caret { transform:translateX(2px); stroke:#fff; }

  .sidebar-creds {
    padding:10px 14px 2px; font-size:10px; color:rgba(255,255,255,.35); line-height:1.5;
    text-align:center;
  }
  .sidebar-creds a { color:rgba(255,255,255,.55); text-decoration:none; transition:color .2s; }
  .sidebar-creds a:hover { color:#F97316; }

  /* entrance stagger */
  .sidebar .nav-item { opacity:0; transform:translateX(-6px); animation:navEnter .42s cubic-bezier(.2,.9,.25,1.05) forwards; }
  .sidebar .nav-item:nth-child(1) { animation-delay:.05s; }
  .sidebar .nav-item:nth-child(2) { animation-delay:.10s; }
  .sidebar .nav-item:nth-child(3) { animation-delay:.15s; }
  .sidebar .nav-item:nth-child(4) { animation-delay:.20s; }
  .sidebar .nav-item:nth-child(5) { animation-delay:.25s; }
  .sidebar .nav-item:nth-child(6) { animation-delay:.30s; }
  .sidebar .nav-item:nth-child(7) { animation-delay:.35s; }
  @keyframes navEnter {
    to { opacity:1; transform:translateX(0); }
  }

  /* MAIN + TOPBAR v2 -------------------------------------------- */
  .main { flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }

  .topbar {
    display:flex; align-items:center; gap:16px; padding:14px 28px;
    background:rgba(255,255,255,.85); backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border); flex-shrink:0; flex-wrap:nowrap;
    justify-content:flex-start;
  }
  .topbar .topbar-title { display:flex; flex-direction:column; min-width:0; }
  .topbar .topbar-title h1 { font-size:15px; font-weight:700; color:var(--ink-900); letter-spacing:-0.01em; line-height:1.2; }
  .topbar .topbar-title p { font-size:11px; color:var(--ink-500); margin-top:2px; }

  .search { flex:1; max-width:480px; position:relative; min-width:0; }
  .search input {
    width:100%; padding:10px 14px 10px 40px; border:1px solid var(--border); background:#fff;
    border-radius:12px; font-size:13px; outline:none; transition:all .15s; color:var(--ink-900);
  }
  .search input::placeholder { color:var(--ink-400); }
  .search input:focus { border-color:var(--navy-600); box-shadow:0 0 0 3px rgba(26,79,160,.12); }
  .search .s-ico {
    position:absolute; left:13px; top:50%; transform:translateY(-50%);
    width:16px; height:16px; stroke:var(--ink-400); stroke-width:2; fill:none;
  }
  .search .kbd {
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    font-size:10.5px; color:var(--ink-400); background:var(--ink-100);
    padding:2px 7px; border-radius:5px; font-weight:500;
  }
  #global-search-results {
    background:var(--card,#fff); border:1px solid var(--border);
    border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,0.12);
    max-height:340px; overflow-y:auto; z-index:999; margin-top:6px;
  }

  .topbar-right { display:flex; align-items:center; gap:8px; margin-left:auto; flex-shrink:0; }
  .avatars { display:flex; padding-left:4px; }
  .avatars .av {
    width:32px; height:32px; border-radius:50%; border:2.5px solid #fff; margin-left:-8px;
    display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; color:#fff;
    box-shadow:0 1px 2px rgba(0,0,0,.08);
  }
  .avatars .av:nth-child(1) { background:linear-gradient(135deg,#F97316,#EA580C); }
  .avatars .av:nth-child(2) { background:linear-gradient(135deg,#0EA5E9,#0369A1); }
  .avatars .av:nth-child(3) { background:linear-gradient(135deg,#8B5CF6,#6D28D9); }
  .avatars .av:nth-child(4) { background:linear-gradient(135deg,#10B981,#047857); }
  .avatars .av.more { background:#fff; color:var(--ink-700); font-weight:600; border-color:var(--border); }

  .icon-btn {
    width:38px; height:38px; border-radius:10px; border:1px solid var(--border); background:#fff;
    display:flex; align-items:center; justify-content:center; transition:all .15s;
    position:relative; color:var(--ink-700); cursor:pointer;
  }
  .icon-btn:hover { background:var(--ink-50); border-color:var(--ink-200); }
  .icon-btn .ico { width:17px; height:17px; stroke:currentColor; stroke-width:1.9; fill:none; }
  .icon-btn .dot {
    position:absolute; top:8px; right:9px; width:8px; height:8px;
    background:var(--coral-500); border-radius:50%; border:2px solid #fff;
  }
  .user-btn {
    display:flex; align-items:center; gap:10px; padding:5px 12px 5px 5px;
    border-radius:999px; border:1px solid var(--border); background:#fff;
    transition:all .15s; cursor:pointer; color:var(--ink-900);
  }
  .user-btn:hover { background:var(--ink-50); }
  .user-btn .av {
    width:30px; height:30px; border-radius:50%;
    background:linear-gradient(135deg,var(--navy-700),var(--navy-900));
    color:#fff; font-weight:700; font-size:12px; display:flex; align-items:center; justify-content:center;
  }
  .user-btn .nm { font-size:13px; font-weight:600; }

  /* CONTENT — preserve scroll */
  .content { flex:1; overflow-y:auto; padding:28px 32px 48px; max-width:none; }

  /* DASHBOARD-specific spacing : tab-content normal block, on espace via wrapper */
  #tab-dashboard.v2 .v2-stack { display:flex; flex-direction:column; gap:24px; }

  /* SHARED COMPONENTS v2 ---------------------------------------- */
  .hero { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
  .hero h1 { font-size:30px; font-weight:700; letter-spacing:-0.02em; color:var(--ink-900); }
  .hero h1 .wave { display:inline-block; animation:waveAnim 2s ease-in-out infinite; transform-origin:70% 70%; }
  @keyframes waveAnim { 0%,100%{transform:rotate(0deg);} 20%{transform:rotate(14deg);} 40%{transform:rotate(-8deg);} 60%{transform:rotate(14deg);} 80%{transform:rotate(-4deg);} }
  .hero p { color:var(--ink-500); margin-top:6px; font-size:14px; }
  .hero-actions { display:flex; gap:10px; flex-shrink:0; }

  /* Boutons v2 (override prod btn pour le hero / dashboard) */
  .btn-coral {
    display:inline-flex; align-items:center; gap:8px; padding:10px 16px;
    border-radius:10px; font-weight:600; font-size:13px; transition:all .15s;
    background:linear-gradient(135deg,var(--coral-500) 0%,#EA580C 100%); color:#fff;
    box-shadow:0 4px 12px rgba(249,115,22,.28); border:none; cursor:pointer; white-space:nowrap;
  }
  .btn-coral:hover { filter:brightness(1.05); }
  .btn-coral .ico { width:15px; height:15px; stroke:currentColor; stroke-width:2; fill:none; }
  .btn-navy {
    display:inline-flex; align-items:center; gap:8px; padding:10px 16px;
    border-radius:10px; font-weight:600; font-size:13px; transition:all .15s;
    background:var(--navy-800); color:#fff; border:none; cursor:pointer; white-space:nowrap;
  }
  .btn-navy:hover { background:var(--navy-900); }
  .btn-navy .ico { width:15px; height:15px; stroke:currentColor; stroke-width:2; fill:none; }
  .btn-ghost-v2 {
    display:inline-flex; align-items:center; gap:8px; padding:10px 16px;
    border-radius:10px; font-weight:600; font-size:13px; transition:all .15s;
    background:#fff; color:var(--ink-700); border:1px solid var(--border); cursor:pointer; white-space:nowrap;
  }
  .btn-ghost-v2:hover { background:var(--ink-50); }
  .btn-ghost-v2 .ico { width:15px; height:15px; stroke:currentColor; stroke-width:2; fill:none; }

  /* KPI v2 */
  .kpi-grid { display:grid; gap:14px; }
  .kpi-grid.cols-4 { grid-template-columns:repeat(4,1fr); }
  .kpi-grid.cols-3 { grid-template-columns:repeat(3,1fr); }
  .kpi {
    background:#fff; border:1px solid var(--border); border-radius:var(--r-xl);
    padding:18px 20px; display:flex; flex-direction:column; gap:14px;
    transition:all .2s; position:relative; overflow:hidden;
  }
  .kpi:hover { box-shadow:var(--shadow-md); transform:translateY(-1px); }
  .kpi-top { display:flex; align-items:center; justify-content:space-between; }
  .kpi-ico {
    width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  }
  .kpi-ico .ico { width:19px; height:19px; stroke-width:2; fill:none; }
  .kpi-ico.navy { background:var(--navy-50); color:var(--navy-700); }
  .kpi-ico.amber { background:#FEF3C7; color:#D97706; }
  .kpi-ico.green { background:#DCFCE7; color:#16A34A; }
  .kpi-ico.sky { background:#E0F2FE; color:#0284C7; }
  .kpi-ico.rose { background:#FFE4E6; color:#E11D48; }
  .kpi-ico.violet { background:#EDE9FE; color:#7C3AED; }
  .kpi-ico.coral { background:#FFEDD5; color:#F97316; }
  .kpi-ico.teal { background:#CCFBF1; color:#0D9488; }
  .kpi-menu { color:var(--ink-400); padding:4px; border-radius:6px; background:none; border:none; cursor:pointer; }
  .kpi-menu:hover { background:var(--ink-100); color:var(--ink-700); }
  .kpi-label { font-size:12.5px; color:var(--ink-500); font-weight:500; }
  .kpi-value-row { display:flex; align-items:baseline; gap:8px; }
  .kpi-value { font-size:26px; font-weight:700; letter-spacing:-0.02em; color:var(--ink-900); line-height:1; }
  .kpi-delta { font-size:11.5px; font-weight:600; padding:2px 7px; border-radius:6px; }
  .kpi-delta.up { background:#DCFCE7; color:#16A34A; }
  .kpi-delta.down { background:#FFE4E6; color:#E11D48; }
  .kpi-delta.flat { background:var(--ink-100); color:var(--ink-500); }
  .kpi-sub { font-size:11.5px; color:var(--ink-400); margin-top:2px; }

  /* AI banner */
  .ai-banner {
    background:linear-gradient(135deg,#FFF7ED 0%,#FFEDD5 100%); border:1px solid #FED7AA;
    border-radius:var(--r-xl); padding:16px 20px; display:flex; align-items:center; gap:14px;
  }
  .ai-icon {
    width:42px; height:42px; background:linear-gradient(135deg,var(--coral-500) 0%,#EA580C 100%);
    border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff;
    flex-shrink:0; box-shadow:0 4px 10px rgba(249,115,22,.3);
  }
  .ai-icon .ico { width:20px; height:20px; stroke:currentColor; stroke-width:2; fill:none; }
  .ai-banner-text { flex:1; }
  .ai-banner-text strong { font-weight:700; color:#9A3412; font-size:14px; }
  .ai-banner-text span { color:#C2410C; font-size:13px; margin-left:4px; }
  .ai-banner-btn {
    background:#fff; color:#9A3412; border:1px solid #FDBA74; padding:8px 14px;
    border-radius:9px; font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap;
    display:inline-flex; align-items:center; gap:6px;
  }
  .ai-banner-btn:hover { background:#FFF7ED; }

  /* Action row + tabs */
  .action-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .pill-tabs { display:inline-flex; padding:4px; background:#fff; border:1px solid var(--border); border-radius:12px; gap:2px; }
  .pill-tab {
    display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:8px;
    font-size:13px; font-weight:500; color:var(--ink-500); transition:all .15s;
    background:none; border:none; cursor:pointer;
  }
  .pill-tab .ico { width:14px; height:14px; stroke:currentColor; stroke-width:2; fill:none; }
  .pill-tab:hover { color:var(--ink-900); }
  .pill-tab.active { background:var(--navy-800); color:#fff; box-shadow:0 1px 2px rgba(13,45,94,.2); }

  /* ═══ Refonte navigation SMQ — Proposition A « barre segmentée » · scoped #smq-subtabs UNIQUEMENT
        (ne touche pas les .pill-tab du Kanban qui partagent la classe de base) · 2026-06-07 ═══ */
  /* K3 (30/07) — les 9 sous-onglets réclamaient 1 514 px pour 1 446 px
     disponibles sur un 1512 : « Sauvegardes » était coupé et il fallait faire
     défiler la barre. Le défilement horizontal est proscrit ici. Deux mesures :
     · padding et gap resserrés (−90 px environ) → les 9 tiennent sur une ligne ;
     · flex-wrap au lieu de overflow-x → sur un écran plus étroit la barre passe
       sur deux lignes, ce qui reste entièrement visible, au lieu de cacher la
       fin derrière un défilement. Le masque en dégradé, qui servait à suggérer
       le défilement, n'a donc plus lieu d'être. */
  #smq-subtabs.pill-tabs{
    display:flex; flex-wrap:wrap; row-gap:5px; gap:3px; padding:7px 6px; border-radius:14px;
  }
  #smq-subtabs .pill-tab{
    flex:0 0 auto; gap:7px; padding:9px 10px; border-radius:10px;
    font-size:13px; font-weight:600; color:var(--ink-500); white-space:nowrap;
    transition:background .18s, color .18s, box-shadow .18s, transform .18s;
  }
  #smq-subtabs .pill-tab .ico{ width:15px; height:15px; opacity:.85; transition:opacity .18s; }
  #smq-subtabs .pill-tab:hover{ background:var(--ink-100); color:var(--ink-900); }
  #smq-subtabs .pill-tab.active{
    background:linear-gradient(135deg,var(--navy-700),var(--navy-800)); color:#fff;
    box-shadow:0 4px 12px -3px rgba(13,45,94,.42);
  }
  #smq-subtabs .pill-tab.active .ico{ opacity:1; }
  /* ═══ fin refonte navigation SMQ ═══ */

  .action-row-right { display:flex; align-items:center; gap:8px; }

  /* Kanban */
  .kanban { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  .col { min-width:0; }
  .col-head {
    display:flex; align-items:center; gap:10px; padding:10px 14px;
    background:#fff; border:1px solid var(--border); border-radius:12px; margin-bottom:10px;
  }
  .col-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
  .col-dot.amber { background:#D97706; box-shadow:0 0 0 3px #FEF3C7; }
  .col-dot.sky { background:#0284C7; box-shadow:0 0 0 3px #E0F2FE; }
  .col-dot.violet { background:#7C3AED; box-shadow:0 0 0 3px #EDE9FE; }
  .col-dot.green { background:#16A34A; box-shadow:0 0 0 3px #DCFCE7; }
  .col-title { font-size:13px; font-weight:600; color:var(--ink-900); }
  .col-count { font-size:11px; font-weight:600; background:var(--ink-100); color:var(--ink-500); padding:2px 7px; border-radius:6px; }
  .col-menu { margin-left:auto; color:var(--ink-400); background:none; border:none; cursor:pointer; }
  .cards { display:flex; flex-direction:column; gap:10px; }

  .card-t {
    background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:14px;
    transition:all .2s; cursor:pointer; display:flex; flex-direction:column; gap:10px;
  }
  .card-t:hover { border-color:var(--navy-600); box-shadow:var(--shadow-md); transform:translateY(-1px); }

  /* Badge v2 (renamed pour ne pas casser la prod .badge) */
  .badge-v2 {
    display:inline-flex; align-items:center; gap:5px; padding:2px 8px;
    border-radius:6px; font-size:11px; font-weight:600; white-space:nowrap; width:fit-content;
  }
  .badge-v2.prio-high { background:#FFE4E6; color:#E11D48; }
  .badge-v2.prio-med { background:#FEF3C7; color:#D97706; }
  .badge-v2.prio-low { background:#DCFCE7; color:#16A34A; }
  .badge-v2.norme { background:var(--navy-50); color:var(--navy-700); }
  .badge-v2.status-instr { background:#E0F2FE; color:#0284C7; }
  .badge-v2.status-cert { background:#DCFCE7; color:#16A34A; }
  .badge-v2.status-plan { background:#EDE9FE; color:#7C3AED; }
  .badge-v2.status-dem { background:#FEF3C7; color:#D97706; }
  .badge-v2.status-late { background:#FFE4E6; color:#E11D48; }

  .card-t .title { font-size:14px; font-weight:600; color:var(--ink-900); line-height:1.35; }
  .card-t .sub { font-size:12px; color:var(--ink-500); margin-top:-4px; }

  .progress-v2 { display:flex; flex-direction:column; gap:6px; }
  .progress-top { display:flex; justify-content:space-between; font-size:11.5px; color:var(--ink-500); font-weight:500; }
  .progress-top .label { display:inline-flex; align-items:center; gap:5px; }
  .progress-bar { height:5px; background:var(--ink-100); border-radius:999px; overflow:hidden; }
  .progress-fill { height:100%; border-radius:999px; transition:width .4s ease; }
  .progress-fill.amber { background:linear-gradient(90deg,#D97706,#F59E0B); }
  .progress-fill.sky { background:linear-gradient(90deg,#0284C7,#38BDF8); }
  .progress-fill.violet { background:linear-gradient(90deg,#7C3AED,#A78BFA); }
  .progress-fill.green { background:linear-gradient(90deg,#16A34A,#34D399); }

  .due { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; color:var(--ink-500); font-weight:500; }
  .due.late { color:#E11D48; }

  .card-foot {
    display:flex; align-items:center; justify-content:space-between;
    padding-top:10px; border-top:1px solid var(--ink-100);
  }
  .card-foot .avatars .av { width:24px; height:24px; font-size:9.5px; border-width:2px; margin-left:-6px; }
  .card-foot .meta { display:flex; align-items:center; gap:10px; font-size:11.5px; color:var(--ink-400); font-weight:500; }
  .card-foot .meta .m { display:inline-flex; align-items:center; gap:4px; }

  /* Panels v2 (renommé .panel-v2 pour ne pas conflit avec autre .panel éventuel) */
  .panel-v2 { background:#fff; border:1px solid #eceff5; border-radius:var(--r-xl); padding:22px; box-shadow:0 1px 2px rgba(13,45,94,.04), 0 6px 20px rgba(13,45,94,.05); }
  .panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:13px; border-bottom:1px solid #f2f5f9; }
  .panel-head h3 { font-size:15px; font-weight:700; color:var(--ink-900); letter-spacing:-0.01em; }
  .panel-head .link { font-size:12.5px; color:var(--navy-700); font-weight:600; cursor:pointer; }
  .panel-head .link:hover { color:var(--navy-900); }
  .split { display:grid; grid-template-columns:1.3fr 1fr; gap:14px; align-items:stretch; }

  /* ── Colonne gauche du dashboard : Activité (compacte) empilée au-dessus de la Veille ── */
  .dash-left-stack { display:flex; flex-direction:column; gap:14px; min-width:0; }
  /* Duo : Activité récente | Événements Qualité (2-up, carrés) */
  .dash-duo { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:stretch; min-width:0; }
  .dash-duo > .panel-v2 { min-width:0; }
  .dash-events-compact { display:flex; flex-direction:column; }
  .dash-events-compact #dash-quality-events { max-height:208px; overflow-y:auto; padding-right:2px; }
  @media (max-width:560px){ .dash-duo { grid-template-columns:1fr; } }
  .dash-activity-compact .timeline { max-height:208px; overflow-y:auto; padding-right:2px; }
  .dash-activity-compact .timeline::-webkit-scrollbar { width:6px; }
  .dash-activity-compact .timeline::-webkit-scrollbar-thumb { background:#dbe3f0; border-radius:6px; }
  .veille-panel { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; }

  /* ── Brief du jour (synthèse opérationnelle quotidienne) ── */
  .brief-panel { display:flex; flex-direction:column; }
  .bf-wrap { display:flex; flex-direction:column; gap:10px; }
  .bf-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .bf-chip { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; background:#f1f5f9; color:#475569; }
  .bf-chip.warn { background:#ffedd5; color:#c2410c; }
  .bf-chip.bad  { background:#fee2e2; color:#b91c1c; }
  .bf-chip.ok   { background:#dcfce7; color:#15803d; }
  .bf-sum { font-size:12.8px; line-height:1.5; color:#283449; background:#fcfdff; border:1px solid #eef2f8; border-radius:12px; padding:10px 13px; }
  .bf-items { display:flex; flex-direction:column; gap:7px; }
  .bf-item { display:flex; gap:8px; align-items:flex-start; font-size:12.8px; line-height:1.45; color:#283449; }
  .bf-item .bf-dot { flex:0 0 auto; width:6px; height:6px; border-radius:50%; margin-top:6px; background:#0d2d5e; }
  .bf-item b { font-weight:700; color:#0f1f33; }
  .bf-empty { font-size:12.5px; color:#94a3b8; padding:6px 2px; }

  /* ── Fil d'actualité « Veille du jour » ── */
  .vf-title-ico { font-size:15px; }
  .vf-wrap { display:flex; flex-direction:column; gap:11px; }
  .vf-cat { border:1px solid #eef2f8; border-radius:12px; padding:11px 13px 12px; background:#fcfdff; }
  .vf-cat-head { display:flex; align-items:center; gap:8px; margin-bottom:9px; }
  .vf-chip { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; padding:3px 9px; border-radius:999px; }
  .vf-chip.concu  { background:var(--coral-50,#fff7ed); color:var(--coral-600,#EA580C); }
  .vf-chip.certif { background:#e8f0fb; color:#0d2d5e; }
  .vf-cat-date { font-size:11px; color:#94a3b8; font-weight:600; margin-left:auto; }
  .vf-items { display:flex; flex-direction:column; gap:7px; }
  .vf-item { display:flex; gap:8px; align-items:flex-start; font-size:12.8px; line-height:1.45; color:#283449; }
  .vf-item .vf-dot { flex:0 0 auto; width:6px; height:6px; border-radius:50%; margin-top:6px; background:var(--coral-500,#F97316); }
  .vf-cat.certif .vf-item .vf-dot { background:#3b6fb0; }
  .vf-item b { font-weight:700; color:#0f1f33; }
  .vf-src { margin-top:9px; }
  .vf-src a { font-size:11.5px; font-weight:700; color:var(--navy-700,#1a4fa0); text-decoration:none; cursor:pointer; }
  .vf-src a:hover { text-decoration:underline; }
  /* ── Fiche veille intégrée (note complète + impression PDF) ── */
  .vfiche-overlay { position:fixed; inset:0; z-index:9999; background:rgba(10,20,40,.55); display:none; overflow:auto; }
  .vfiche-overlay.open { display:block; }
  .vfiche-scroll { max-width:880px; margin:0 auto; padding:16px 16px 64px; width:100%; box-sizing:border-box; }
  .vfiche-toolbar { display:flex; justify-content:space-between; gap:10px; position:sticky; top:0; z-index:2; padding:6px 0 12px; }
  .vfiche-btn { background:#0d2d5e; color:#fff; border:none; border-radius:10px; padding:10px 16px; font-size:13px; font-weight:700; cursor:pointer; box-shadow:0 3px 10px rgba(0,0,0,.20); }
  .vfiche-btn.ghost { background:#fff; color:#0d2d5e; }
  .vfiche-btn:hover { filter:brightness(1.07); }
  .vfiche-sheet { background:#fff; border-radius:14px; padding:52px 58px 44px; box-shadow:0 18px 50px rgba(0,0,0,.32); color:#16202b; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .vfiche-eyebrow { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#0f6b6b; font-weight:800; }
  .vfiche-title { font-family:'Fraunces',Georgia,'Times New Roman',serif; font-size:38px; line-height:1.06; margin:9px 0 5px; color:#0d2d5e; font-weight:600; letter-spacing:-.01em; }
  .vfiche-tagline { font-size:13px; color:#64748b; line-height:1.4; }
  .vfiche-meta { margin-top:14px; padding-top:11px; border-top:1px solid #e6ebf2; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:#7a8aa0; font-weight:700; }
  .vfiche-lead { margin:22px 0 6px; background:#eef6f5; border-left:3px solid #0f6b6b; border-radius:0 10px 10px 0; padding:15px 18px; font-size:14.5px; line-height:1.55; color:#1f3340; }
  .vfiche-sec-h { margin:26px 0 12px; font-family:'Fraunces',Georgia,serif; font-size:16px; font-weight:700; color:#0d2d5e; padding-bottom:7px; border-bottom:2px solid #0f6b6b; }
  .vfiche-pts { }
  .vfiche-pt { display:flex; gap:11px; align-items:flex-start; margin-bottom:13px; break-inside:avoid; page-break-inside:avoid; }
  .vfiche-dia { flex:0 0 auto; width:8px; height:8px; margin-top:6px; background:#0f6b6b; transform:rotate(45deg); border-radius:1px; }
  .vfiche-pt-t { font-weight:700; color:#0d2d5e; font-size:14px; line-height:1.4; }
  .vfiche-pt-d { color:#374151; font-size:13.5px; line-height:1.52; margin-top:2px; }
  .vfiche-foot { margin-top:30px; padding-top:13px; border-top:1px solid #e6ebf2; font-size:11px; color:#94a3b8; line-height:1.5; }
  @media (max-width:640px){ .vfiche-sheet { padding:34px 24px 32px; } .vfiche-title { font-size:30px; } }
  @media print {
    body * { visibility:hidden !important; }
    #vfiche-overlay, #vfiche-overlay * { visibility:visible !important; }
    #vfiche-overlay { position:absolute !important; inset:0 !important; background:#fff !important; overflow:visible !important; }
    .vfiche-scroll { max-width:none !important; padding:0 !important; }
    .vfiche-toolbar { display:none !important; }
    .vfiche-sheet { box-shadow:none !important; border-radius:0 !important; padding:0 !important; }
    @page { size:A4; margin:17mm 16mm; }
  }
  .vf-empty { text-align:center; color:#9aa6b8; font-size:12.5px; padding:22px 10px; line-height:1.55; }
  .vf-empty .vf-emoji { font-size:26px; display:block; margin-bottom:7px; opacity:.85; }
  .vf-doc { display:flex; align-items:center; gap:10px; padding:9px 11px; border:1px solid #eef2f8; border-radius:11px; background:#fff; }
  .vf-doc .vf-doc-ico { font-size:17px; }
  .vf-doc .vf-doc-meta { min-width:0; flex:1; }
  .vf-doc .vf-doc-name { font-size:12.8px; font-weight:600; color:#0f1f33; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .vf-doc .vf-doc-sub { font-size:11px; color:#94a3b8; margin-top:1px; }
  .vf-doc a.vf-doc-open { flex:0 0 auto; font-size:11.5px; font-weight:700; color:#1a4fa0; text-decoration:none; white-space:nowrap; }
  .vf-doc a.vf-doc-open:hover { text-decoration:underline; }

  /* ── Colonne droite : Audits (compacts) empilés au-dessus de la Santé système ── */
  .dash-right-stack { display:flex; flex-direction:column; gap:14px; min-width:0; }
  .dash-audits-compact #dashboard-audits { max-height:384px; overflow-y:auto; padding-right:2px; }
  .dash-audits-compact #dashboard-audits::-webkit-scrollbar { width:6px; }
  .dash-audits-compact #dashboard-audits::-webkit-scrollbar-thumb { background:#dbe3f0; border-radius:6px; }
  .hc-panel { display:flex; flex-direction:column; flex:0 0 auto; }
  .dash-right-stack > .panel-v2 { flex:0 0 auto; }
  /* Avis Google : absorbe l'espace restant de la colonne droite */
  .dash-right-stack > .dash-greviews-compact { flex:1 1 auto; display:flex; flex-direction:column; min-height:0; }
  .grv-glogo { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:6px; font-size:13px; font-weight:800; color:#fff; background:conic-gradient(from -45deg,#4285F4 0 25%,#34A853 0 50%,#FBBC05 0 75%,#EA4335 0 100%); margin-right:2px; }
  .grv-hero { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid #eef2f8; border-radius:12px; background:#f8fafc; }
  .grv-note { font-size:30px; font-weight:800; letter-spacing:-0.02em; color:#0d2d5e; line-height:1; }
  .grv-stars { font-size:15px; letter-spacing:2px; color:#F59E0B; line-height:1; }
  .grv-sub { font-size:11.5px; color:#7d8eab; margin-top:4px; }
  .grv-list { flex:1 1 auto; min-height:90px; overflow-y:auto; padding-right:2px; margin-top:10px; display:flex; flex-direction:column; gap:8px; }
  .grv-list::-webkit-scrollbar { width:6px; }
  .grv-list::-webkit-scrollbar-thumb { background:#dbe3f0; border-radius:6px; }
  .grv-item { display:flex; gap:10px; padding:9px 11px; border:1px solid #eef2f8; border-radius:11px; background:#fff; }
  .grv-avatar { width:30px; height:30px; border-radius:50%; flex-shrink:0; object-fit:cover; background:#E0F2FE; color:#0369A1; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; }
  .grv-body { flex:1; min-width:0; }
  .grv-head { display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; }
  .grv-author { font-size:12.5px; font-weight:600; color:#0f172a; }
  .grv-when { font-size:10.5px; color:#94a3b8; }
  .grv-item .grv-stars { font-size:11px; letter-spacing:1px; margin-top:2px; }
  .grv-text { font-size:12px; color:#475569; line-height:1.5; margin-top:4px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  .grv-empty { text-align:center; color:#9aa6b8; font-size:12.5px; padding:16px 6px; line-height:1.5; }
  .grv-perf-cap { display:flex; align-items:baseline; gap:8px; margin:2px 2px 9px; }
  .grv-perf-cap b { font-family:'Sora','Inter',sans-serif; font-size:11px; font-weight:700; color:#143b78; text-transform:uppercase; letter-spacing:.05em; }
  .grv-perf-cap small { font-size:10.5px; color:#94a3b8; margin-left:auto; }
  .grv-perf { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
  .grv-kpi { position:relative; background:#fff; border:1px solid #eef2f8; border-radius:15px; padding:11px 12px; overflow:hidden; }
  .grv-kpi::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; border-radius:4px 0 0 4px; }
  .grv-kpi.k-vues::before { background:linear-gradient(180deg,#1a4fa0,#3B6FB5); }
  .grv-kpi.k-site::before { background:linear-gradient(180deg,#0EA5A4,#22c1c0); }
  .grv-kpi.k-appels::before { background:linear-gradient(180deg,#0F6E56,#16a34a); }
  .grv-kpi.k-itin::before { background:linear-gradient(180deg,#F59E0B,#f97316); }
  .grv-kpi-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:7px; }
  .grv-kpi-ic { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:16px; }
  .k-vues .grv-kpi-ic { background:#eff5fc; }
  .k-site .grv-kpi-ic { background:#E6FBFA; }
  .k-appels .grv-kpi-ic { background:#E7F6F0; }
  .k-itin .grv-kpi-ic { background:#FEF3E2; }
  .grv-evo { font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:999px; display:inline-flex; align-items:center; gap:2px; white-space:nowrap; }
  .grv-evo.up { color:#0F6E56; background:#E7F6F0; }
  .grv-evo.down { color:#BE123C; background:#FCE7EC; }
  .grv-evo.flat, .grv-evo.na { color:#64748b; background:#f1f5f9; }
  .grv-evo.new { color:#1a4fa0; background:#eff5fc; }
  .grv-kpi-num { font-family:'Sora','Inter',sans-serif; font-size:26px; font-weight:800; color:#0d2d5e; letter-spacing:-.02em; line-height:1; }
  .grv-kpi-label { font-size:10.5px; color:#7d8eab; font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-top:5px; }
  .grv-reply { font-size:11px; color:#0F6E56; margin-top:4px; font-weight:600; }
  .hc-title-ico { font-size:15px; }

  /* ── Panneau « Santé système » — style clair, rassurant ── */
  .hc-wrap { display:flex; flex-direction:column; gap:9px; }
  .hc-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .hc-chip { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; color:#475569; background:#f8fafc; border:1px solid #eef2f8; border-radius:999px; padding:4px 10px; cursor:default; }
  .hc-chip i { width:7px; height:7px; border-radius:50%; }
  .hc-chip.ok i { background:#22c55e; } .hc-chip.warn i { background:#f59e0b; } .hc-chip.crit i { background:#fb7185; }
  .hc-chip.warn { background:#fffbeb; border-color:#fde6c0; color:#92400e; }
  .hc-chip.crit { background:#fff5f5; border-color:#fcdcdc; color:#9f1239; }
  .hc-hero { display:flex; align-items:center; gap:11px; padding:12px 13px; border-radius:12px; border:1px solid; }
  .hc-hero.ok   { background:#f0fdf4; border-color:#d6f5e0; }
  .hc-hero.warn { background:#fffbeb; border-color:#fde6c0; }
  .hc-hero.crit { background:#fff5f5; border-color:#fcdcdc; }
  .hc-hero-ic { width:34px; height:34px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:800; color:#fff; }
  .hc-hero.ok   .hc-hero-ic { background:#22c55e; }
  .hc-hero.warn .hc-hero-ic { background:#f59e0b; }
  .hc-hero.crit .hc-hero-ic { background:#fb7185; }
  .hc-hero-t { font-size:13.5px; font-weight:700; color:#0f1f33; line-height:1.25; }
  .hc-hero-s { font-size:11.5px; color:#64748b; margin-top:2px; }
  .hc-list { display:flex; flex-direction:column; }
  .hc-item { display:flex; align-items:center; gap:10px; padding:8px 2px; border-bottom:1px solid #f1f5fb; }
  .hc-item:last-child { border-bottom:none; }
  .hc-ic { width:20px; height:20px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; }
  .hc-ic.ok   { background:#ecfdf3; color:#16a34a; }
  .hc-ic.warn { background:#fff7ed; color:#d97706; }
  .hc-ic.crit { background:#fff1f2; color:#e11d48; }
  .hc-label { flex:1 1 auto; font-size:13px; color:#283449; font-weight:500; min-width:0; }
  .hc-pill { flex:0 0 auto; font-size:11.5px; font-weight:600; color:#64748b; }
  .hc-pill.ok { color:#16a34a; } .hc-pill.warn { color:#b45309; } .hc-pill.crit { color:#be123c; }
  .hc-foot { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:11.5px; color:#94a3b8; padding-top:9px; border-top:1px solid #f1f5fb; }
  .hc-foot b { color:#475569; font-weight:600; }
  .hc-empty { color:#9aa6b8; font-size:12.5px; text-align:center; padding:18px 6px; line-height:1.5; }

  /* Timeline */
  .timeline { display:flex; flex-direction:column; gap:2px; }
  .tl { display:flex; gap:13px; padding:11px 8px; border-radius:12px; align-items:center; transition:background .15s; }
  .tl:hover { background:#f8fafc; }
  .tl-ico { width:38px; height:38px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
  .tl-ico .ico { width:17px; height:17px; stroke-width:2; fill:none; }
  .tl-ico.g { background:#DCFCE7; color:#16A34A; }
  .tl-ico.a { background:#FEF3C7; color:#D97706; }
  .tl-ico.s { background:#E0F2FE; color:#0284C7; }
  .tl-ico.v { background:#EDE9FE; color:#7C3AED; }
  .tl-body { flex:1; min-width:0; }
  .tl-body p { font-size:13px; color:var(--ink-900); line-height:1.5; }
  .tl-body p strong { font-weight:600; }
  .tl-body .t { font-size:11.5px; color:var(--ink-400); margin-top:3px; font-weight:500; }

  /* Audits du jour */
  .audit-item { display:flex; align-items:center; gap:13px; padding:10px; border-radius:12px; transition:background .15s; cursor:pointer; border:1px solid transparent; }
  .audit-item:hover { background:#f8fafc; border-color:#eceff5; }
  .audit-time { flex-shrink:0; width:54px; text-align:center; padding:9px 4px; background:linear-gradient(135deg,#0d2d5e,#1e4e8c); border-radius:12px; box-shadow:0 4px 10px rgba(13,45,94,.18); }
  .audit-time .h { font-size:17px; font-weight:800; color:#fff; line-height:1; font-family:Sora,Inter,sans-serif; }
  .audit-time .d { font-size:10px; color:rgba(255,255,255,.85); font-weight:600; margin-top:3px; text-transform:uppercase; letter-spacing:0.04em; }
  .audit-body { flex:1; min-width:0; }
  .audit-body .t { font-size:13.5px; font-weight:600; color:var(--ink-900); line-height:1.35; }
  .audit-body .s { font-size:12px; color:var(--ink-500); margin-top:3px; display:flex; align-items:center; gap:8px; }
  .audit-body .s .dot { width:3px; height:3px; border-radius:50%; background:var(--ink-300,#CBD5E1); }

  /* ═══════════════════════════════════════
     DETAIL VIEWS (fiche dossier / fiche audit)
     ═══════════════════════════════════════ */
  .crumbs { display:flex; gap:6px; align-items:center; font-size:12.5px; color:var(--ink-400); margin-bottom:12px; flex-wrap:wrap; }
  .crumbs .sep { color:var(--ink-300,#CBD5E1); }
  .crumbs .now { color:var(--ink-700); font-weight:500; }
  .crumbs a { color:var(--ink-400); text-decoration:none; cursor:pointer; }
  .crumbs a:hover { color:var(--navy-700); }

  .detail-head { background:#fff; border:1px solid var(--border); border-radius:var(--r-xl,16px); padding:22px 24px; display:flex; gap:20px; align-items:flex-start; margin-bottom:16px; }
  .big-org { width:72px; height:72px; flex-shrink:0; border-radius:16px; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:22px; letter-spacing:0.04em; background:linear-gradient(135deg,var(--navy-800,#0d2d5e),var(--navy-600,#1e4e8c)); box-shadow:0 6px 18px rgba(13,45,94,.25); }
  .big-org.c1 { background:linear-gradient(135deg,#6366F1,#4338CA); box-shadow:0 6px 18px rgba(99,102,241,.28); }
  .big-org.c2 { background:linear-gradient(135deg,#10B981,#059669); box-shadow:0 6px 18px rgba(16,185,129,.28); }
  .big-org.c3 { background:linear-gradient(135deg,#F97316,#EA580C); box-shadow:0 6px 18px rgba(249,115,22,.28); }
  .big-org.c4 { background:linear-gradient(135deg,#8B5CF6,#6D28D9); box-shadow:0 6px 18px rgba(139,92,246,.28); }
  .big-org.c5 { background:linear-gradient(135deg,#0EA5E9,#0284C7); box-shadow:0 6px 18px rgba(14,165,233,.28); }

  .dh-main { flex:1; min-width:0; }
  .dh-tags { display:flex; gap:6px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
  .dh-tags .badge, .dh-tags .badge-v2 { font-size:11px; padding:3px 10px; border-radius:20px; font-weight:500; }
  .dh-tags .sub-id { font-size:11.5px; color:var(--ink-500); font-weight:500; }
  .dh-main h2 { font-size:20px; font-weight:700; color:var(--ink-900); letter-spacing:-0.01em; line-height:1.2; margin-bottom:6px; }
  .dh-meta { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px 18px; margin-top:12px; }
  .dh-meta .i { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-600,#475569); }
  .dh-meta .i svg { width:14px; height:14px; stroke:var(--navy-700,#1e4e8c); stroke-width:2; fill:none; flex-shrink:0; }
  .dh-meta .i strong { color:var(--ink-900); font-weight:600; }
  .dh-actions { display:flex; gap:8px; flex-shrink:0; }
  .dh-actions button { font-size:12.5px; padding:8px 14px; border-radius:8px; cursor:pointer; border:1px solid var(--border); background:#fff; color:var(--ink-700); font-weight:500; display:inline-flex; align-items:center; gap:6px; transition:all .15s; }
  .dh-actions button:hover { border-color:var(--navy-500,#2b6cb0); color:var(--navy-800,#0d2d5e); }
  .dh-actions button.primary { background:var(--navy-800,#0d2d5e); border-color:var(--navy-800,#0d2d5e); color:#fff; }
  .dh-actions button.primary:hover { background:var(--navy-900,#0b2448); }
  .dh-actions button.coral { background:var(--coral-500,#F97316); border-color:var(--coral-500,#F97316); color:#fff; }
  .dh-actions button.coral:hover { background:#EA580C; }

  /* Stepper */
  .stepper { background:#fff; border:1px solid var(--border); border-radius:var(--r-xl,16px); padding:18px 22px; display:flex; justify-content:space-between; align-items:center; gap:4px; margin-bottom:16px; overflow-x:auto; }
  .step { display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; min-width:80px; position:relative; }
  .step + .step::before { content:""; position:absolute; top:13px; left:calc(-50% + 14px); right:calc(50% + 14px); height:2px; background:var(--ink-200,#E2E8F0); }
  .step.done + .step::before, .step.current + .step::before { background:var(--green-500,#22c55e); }
  .step .dot { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; background:var(--ink-100,#F1F5F9); color:var(--ink-400); border:2px solid #fff; box-shadow:0 0 0 2px var(--ink-200,#E2E8F0); z-index:1; }
  .step.done .dot { background:var(--green-500,#22c55e); color:#fff; box-shadow:0 0 0 2px var(--green-500,#22c55e); }
  .step.current .dot { background:var(--coral-500,#F97316); color:#fff; box-shadow:0 0 0 3px rgba(249,115,22,.18); }
  .step .lbl { font-size:11px; color:var(--ink-500); font-weight:500; text-align:center; line-height:1.25; max-width:100px; }
  .step.done .lbl { color:var(--green-600,#15803d); }
  .step.current .lbl { color:var(--coral-600,#c2410c); font-weight:600; }

  /* Detail split: 1.6fr main / 1fr sidebar */
  .detail-split { display:grid; grid-template-columns:1.6fr 1fr; gap:16px; align-items:flex-start; }
  @media (max-width:980px) { .detail-split { grid-template-columns:1fr; } .stepper { flex-wrap:wrap; } }

  /* Info card (sidebar) */
  .info-card { background:#fff; border:1px solid var(--border); border-radius:var(--r-xl,16px); padding:18px 20px; margin-bottom:12px; }
  .info-card .ic-title { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--ink-400); text-transform:uppercase; letter-spacing:0.06em; font-weight:600; margin-bottom:12px; }
  .info-card .ic-title svg { width:14px; height:14px; stroke:var(--navy-700); stroke-width:2; fill:none; }
  .info-card .ic-row { display:flex; justify-content:space-between; gap:10px; font-size:12.5px; padding:6px 0; border-bottom:1px dashed var(--ink-100,#F1F5F9); }
  .info-card .ic-row:last-child { border-bottom:none; }
  .info-card .ic-row .k { color:var(--ink-500); }
  .info-card .ic-row .v { color:var(--ink-900); font-weight:500; text-align:right; max-width:60%; word-break:break-word; }
  .info-card.alert { background:#FEF3C7; border-color:#FDE68A; }
  .info-card.alert .ic-title { color:#92400E; }
  .info-card.alert p { font-size:12.5px; color:#78350F; line-height:1.5; }

  /* Feed (activity list in detail) */
  .feed { display:flex; flex-direction:column; gap:10px; }
  .feed-item { display:flex; gap:12px; padding:10px 12px; border-radius:10px; border:1px solid var(--ink-100,#F1F5F9); background:#fff; }
  .feed-item:hover { border-color:var(--ink-200,#E2E8F0); }
  .feed-item .fi-ico { width:32px; height:32px; border-radius:8px; background:var(--navy-50,#EFF5FE); color:var(--navy-700); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .feed-item .fi-ico svg { width:15px; height:15px; stroke:currentColor; stroke-width:2; fill:none; }
  .feed-item .fi-ico.g { background:#DCFCE7; color:#16A34A; }
  .feed-item .fi-ico.a { background:#FEF3C7; color:#D97706; }
  .feed-item .fi-ico.v { background:#EDE9FE; color:#7C3AED; }
  .feed-item .fi-ico.s { background:#E0F2FE; color:#0284C7; }
  .feed-item .fi-body { flex:1; min-width:0; }
  .feed-item .fi-title { font-size:13px; font-weight:600; color:var(--ink-900); }
  .feed-item .fi-sub { font-size:11.5px; color:var(--ink-500); margin-top:2px; }
  .feed-item .fi-time { font-size:11px; color:var(--ink-400); margin-top:3px; }

  /* Doc row (document list in detail) */
  .doc-list { display:flex; flex-direction:column; gap:8px; }
  .doc-row { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid var(--ink-100,#F1F5F9); border-radius:12px; background:#fff; text-decoration:none; color:inherit; transition:all .15s; }
  .doc-row:hover { border-color:var(--navy-500,#2b6cb0); background:var(--navy-50,#EFF5FE); }
  .doc-row .doc-ico-sm { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:var(--rose-100,#FEE2E2); color:var(--rose-600,#DC2626); }
  .doc-row .doc-ico-sm.pdf { background:#FEE2E2; color:#DC2626; }
  .doc-row .doc-ico-sm.docx { background:#DBEAFE; color:#2563EB; }
  .doc-row .doc-ico-sm.xlsx { background:#DCFCE7; color:#16A34A; }
  .doc-row .doc-ico-sm.img { background:#FEF3C7; color:#D97706; }
  .doc-row .doc-ico-sm svg { width:16px; height:16px; stroke:currentColor; stroke-width:2; fill:none; }
  .doc-row .dr-body { flex:1; min-width:0; }
  .doc-row .dr-name { font-size:13px; font-weight:600; color:var(--ink-900); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .doc-row .dr-meta { font-size:11.5px; color:var(--ink-500); margin-top:2px; }
  .doc-row .dr-tag { font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:20px; background:var(--ink-100,#F1F5F9); color:var(--ink-600,#475569); flex-shrink:0; white-space:nowrap; }

  /* Agenda (audit programme) */
  .agenda { display:flex; flex-direction:column; gap:14px; }
  .agenda-day { border:1px solid var(--ink-100,#F1F5F9); border-radius:12px; overflow:hidden; }
  .agenda-day .ad-head { background:var(--navy-50,#EFF5FE); padding:10px 14px; font-size:12.5px; font-weight:700; color:var(--navy-800,#0d2d5e); }
  .agenda-slot { display:flex; gap:14px; padding:10px 14px; border-top:1px solid var(--ink-100,#F1F5F9); font-size:12.5px; }
  .agenda-slot:first-of-type { border-top:none; }
  .agenda-slot .as-time { flex-shrink:0; width:96px; font-weight:600; color:var(--navy-700,#1e4e8c); font-variant-numeric:tabular-nums; }
  .agenda-slot .as-body { flex:1; min-width:0; color:var(--ink-800,#1e293b); }
  .agenda-slot .as-body strong { display:block; font-weight:600; color:var(--ink-900); margin-bottom:2px; }

  /* Checklist */
  .checklist { display:flex; flex-direction:column; gap:8px; }
  .chk-row { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--ink-100,#F1F5F9); border-radius:10px; background:#fff; font-size:12.5px; }
  .chk-row .chk-box { width:20px; height:20px; border-radius:6px; border:2px solid var(--ink-300,#CBD5E1); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
  .chk-row.done .chk-box { background:var(--green-500,#22c55e); border-color:var(--green-500,#22c55e); color:#fff; }
  .chk-row.done .chk-box svg { width:12px; height:12px; stroke:#fff; stroke-width:3; fill:none; }
  .chk-row .chk-text { flex:1; color:var(--ink-800,#1e293b); }
  .chk-row.done .chk-text { color:var(--ink-500); text-decoration:line-through; }

  /* Tabs inside detail (fiche dossier) */
  .detail-tabs { display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:14px; overflow-x:auto; }
  .detail-tab { padding:10px 16px; font-size:13px; color:var(--ink-500); cursor:pointer; border-bottom:2px solid transparent; font-weight:500; white-space:nowrap; transition:all .15s; }
  .detail-tab:hover { color:var(--navy-700); }
  .detail-tab.active { color:var(--navy-900); border-bottom-color:var(--coral-500,#F97316); font-weight:600; }

  /* ═══════════════════════════════════════
     FACTURATION (mockup layout)
     ═══════════════════════════════════════ */
  .accounts-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:16px; }
  .account-card { background:linear-gradient(135deg,var(--navy-800,#0d2d5e) 0%,var(--navy-600,#1e4e8c) 100%); color:#fff; border-radius:16px; padding:18px 20px; position:relative; overflow:hidden; box-shadow:0 10px 28px rgba(13,45,94,.22); }
  .account-card.alt { background:linear-gradient(135deg,#8B5CF6 0%,#6D28D9 100%); box-shadow:0 10px 28px rgba(139,92,246,.28); }
  .account-card.coral { background:linear-gradient(135deg,var(--coral-500,#F97316) 0%,#EA580C 100%); box-shadow:0 10px 28px rgba(249,115,22,.28); }
  .account-top { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; }
  .account-name { font-size:13px; font-weight:600; opacity:0.95; }
  .account-q { font-size:11px; opacity:0.7; }
  .account-balance { font-size:22px; font-weight:700; letter-spacing:-0.02em; }
  .account-iban { font-size:10.5px; opacity:0.65; margin-top:6px; font-variant-numeric:tabular-nums; letter-spacing:0.04em; }

  .tx-row { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--ink-100,#F1F5F9); }
  .tx-row:last-child { border-bottom:none; }
  .tx-ico { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .tx-ico.in { background:#DCFCE7; color:#16A34A; }
  .tx-ico.out { background:#FEE2E2; color:#DC2626; }
  .tx-ico svg { width:16px; height:16px; stroke:currentColor; stroke-width:2; fill:none; }
  .tx-body { flex:1; min-width:0; }
  .tx-title { font-size:13px; font-weight:600; color:var(--ink-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .tx-sub { font-size:11.5px; color:var(--ink-500); margin-top:2px; }
  .tx-amount { font-size:13.5px; font-weight:700; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .tx-amount.in { color:#16A34A; }
  .tx-amount.out { color:#DC2626; }


  /* Loading helpers */
  .v2-loading { text-align:center; padding:18px; color:var(--ink-400); font-size:12.5px; }

  /* Responsive */
  @media (max-width:1200px) {
    /* KPI : on garde 4 colonnes jusqu'à 880px (puis 2x2) — évite le 3+1 avec du blanc à droite */
    .kpi-grid.cols-3 { grid-template-columns:repeat(2,1fr); }
    .kanban { grid-template-columns:repeat(2,1fr); }
    .split { grid-template-columns:1fr; }
  }
  @media (max-width:880px) {
    .sidebar { display:none; }
    .kpi-grid.cols-4, .kpi-grid.cols-3 { grid-template-columns:repeat(2,1fr); }
    .kanban { grid-template-columns:1fr; }
    .content { padding:20px; }
    .qk-grid { grid-template-columns:1fr; }
  }

  /* ── Tableau de bord : sécurité anti-débordement + calendrier responsive ── */
  #tab-dashboard, #tab-dashboard .panel-v2 { min-width:0; max-width:100%; }
  #tab-dashboard .panel-head { flex-wrap:wrap; gap:8px; }
  #dash-calendar { min-width:0; max-width:100%; overflow-x:auto; }
  @media (max-width:1024px){
    #dash-calendar .dcal-cell { min-height:64px !important; }
  }
  @media (max-width:600px){
    #dash-calendar .dcal { gap:4px !important; }
    #dash-calendar .dcal-cell { min-height:50px !important; padding:5px 5px !important; }
    #dash-calendar .dcal-ev { font-size:9px !important; padding:2px 5px !important; }
    #dash-calendar .dcal-dow { font-size:9px !important; }
  }

  /* ============================================================
     BRIDGE v2 — upgrade des classes legacy (.card, .stats-row,
     .stat, .fb, table, inputs) au look v2 pour unifier tous les
     onglets sans casser les IDs Firebase / onclick.
     ============================================================ */
  .tab-content { animation:v2FadeIn .25s ease-out; }
  @keyframes v2FadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

  /* Stats row → KPI grid v2 (auto-fit handles 2, 3, 4, N stats gracefully) */
  .stats-row {
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)) !important;
    gap:14px !important;
    margin-bottom:20px !important;
  }

  /* Stat card → KPI card v2 */
  .stat {
    background:#fff !important;
    border:1px solid rgba(13,45,94,0.08) !important;
    border-radius:14px !important;
    padding:16px 18px !important;
    box-shadow:0 1px 2px rgba(13,45,94,0.04) !important;
    transition:transform .15s, box-shadow .15s;
    position:relative;
    overflow:hidden;
  }
  .stat:hover { transform:translateY(-3px) scale(1.01); box-shadow:0 12px 28px rgba(13,45,94,0.12) !important; }
  .stat::before {
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, #0d2d5e, #1a4280);
    opacity:.5;
    transition:height .25s ease, opacity .25s ease;
  }
  .stat:hover::before { height:5px; opacity:1; }
  /* Stagger entrance for dashboard stat cards */
  .tab-content.active .stats-row .stat {
    animation:statEnter .55s cubic-bezier(.2,.9,.25,1.2) both;
  }
  .tab-content.active .stats-row .stat:nth-child(1) { animation-delay:.05s; }
  .tab-content.active .stats-row .stat:nth-child(2) { animation-delay:.12s; }
  .tab-content.active .stats-row .stat:nth-child(3) { animation-delay:.19s; }
  .tab-content.active .stats-row .stat:nth-child(4) { animation-delay:.26s; }
  .tab-content.active .stats-row .stat:nth-child(5) { animation-delay:.33s; }
  @keyframes statEnter {
    from { opacity:0; transform:translateY(14px) scale(.97); }
    to   { opacity:1; transform:none; }
  }
  .stat.accent { background:#fff !important; }
  .stat.accent::before { background:linear-gradient(90deg, #F97316, #EA580C); opacity:1; }
  .stat .stat-label {
    font-size:11px !important;
    font-weight:600 !important;
    color:#64748B !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
    margin-bottom:8px !important;
  }
  .stat .stat-val {
    font-size:22px !important;
    font-weight:700 !important;
    color:#0d2d5e !important;
    line-height:1.1 !important;
  }
  .stat.accent .stat-val { color:#0d2d5e !important; }

  /* Card → Panel v2 */
  .card {
    background:#fff !important;
    border:1px solid rgba(13,45,94,0.08) !important;
    border-radius:14px !important;
    padding:20px !important;
    box-shadow:0 1px 2px rgba(13,45,94,0.04) !important;
    margin-bottom:16px !important;
  }
  .card-title {
    font-size:14px !important;
    font-weight:700 !important;
    color:#0d2d5e !important;
    margin-bottom:14px !important;
    letter-spacing:.1px !important;
  }

  /* Sub-tabs row (dos-tab-*, aud-view-*) */
  .subtabs-row {
    display:inline-flex !important;
    background:#F1F5F9 !important;
    border-radius:12px !important;
    padding:4px !important;
    gap:2px !important;
    margin-bottom:16px !important;
  }
  .subtabs-row .fb {
    background:transparent !important;
    border:none !important;
    padding:8px 14px !important;
    border-radius:8px !important;
    font-size:12px !important;
    font-weight:600 !important;
    color:#64748B !important;
    cursor:pointer !important;
    transition:all .15s !important;
  }
  .subtabs-row .fb:hover { color:#0d2d5e !important; background:rgba(255,255,255,.5) !important; }
  .subtabs-row .fb.active {
    background:#fff !important;
    color:#0d2d5e !important;
    box-shadow:0 2px 6px rgba(13,45,94,0.1) !important;
  }

  /* Buttons .fb → ghost v2 button */
  .fb {
    background:#fff !important;
    border:1px solid rgba(13,45,94,0.12) !important;
    color:#0d2d5e !important;
    padding:8px 14px !important;
    border-radius:10px !important;
    font-size:12px !important;
    font-weight:600 !important;
    cursor:pointer !important;
    transition:all .15s !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
  }
  .fb:hover { background:#F8FAFC !important; border-color:#0d2d5e !important; transform:translateY(-1px); }
  .fb.active {
    background:#0d2d5e !important;
    color:#fff !important;
    border-color:#0d2d5e !important;
  }

  /* Tables */
  .card table {
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    margin-top:8px;
  }
  .card table thead th {
    background:#F8FAFC !important;
    color:#475569 !important;
    font-size:11px !important;
    font-weight:600 !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
    padding:10px 12px !important;
    border-bottom:1px solid rgba(13,45,94,0.1) !important;
    text-align:left !important;
  }
  .card table thead th:first-child { border-top-left-radius:10px; }
  .card table thead th:last-child { border-top-right-radius:10px; }
  .card table tbody td {
    padding:11px 12px !important;
    border-bottom:1px solid rgba(13,45,94,0.06) !important;
    font-size:13px !important;
    color:#0F172A !important;
  }
  .card table tbody tr:hover { background:#FFF7ED !important; }
  .card table tbody tr:last-child td { border-bottom:none !important; }

  /* Inputs text v2 */
  .card input[type="text"],
  .card input[type="email"],
  .card input[type="search"],
  .card select {
    border:1px solid rgba(13,45,94,0.12) !important;
    border-radius:10px !important;
    padding:9px 14px !important;
    font-size:13px !important;
    outline:none !important;
    transition:border-color .15s, box-shadow .15s !important;
    background:#fff !important;
  }
  .card input[type="text"]:focus,
  .card input[type="email"]:focus,
  .card input[type="search"]:focus,
  .card select:focus {
    border-color:#F97316 !important;
    box-shadow:0 0 0 3px rgba(249,115,22,.12) !important;
  }

  /* Tab page hero */
  .tab-hero {
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:20px; flex-wrap:wrap;
    padding:24px 28px;
    background:linear-gradient(135deg, #fff 0%, #F8FAFC 100%);
    border:1px solid rgba(13,45,94,0.08);
    border-radius:16px;
    margin-bottom:20px;
    box-shadow:0 1px 2px rgba(13,45,94,0.04);
  }
  .tab-hero h1 {
    font-size:22px; font-weight:700; color:#0d2d5e;
    margin:0 0 4px; letter-spacing:-.01em;
  }
  .tab-hero p {
    font-size:13px; color:#64748B; margin:0;
  }
  .tab-hero-actions { display:flex; gap:10px; flex-wrap:wrap; }

  /* Mail folders list */
  #mail-folders > div,
  .mail-folder-item {
    padding:10px 14px !important;
    font-size:13px !important;
    cursor:pointer !important;
    border-radius:8px !important;
    margin:2px 8px !important;
    transition:all .15s !important;
  }
  #mail-folders > div:hover,
  .mail-folder-item:hover { background:#F8FAFC !important; }
  #mail-folders > div.active,
  .mail-folder-item.active {
    background:#FFF7ED !important;
    color:#EA580C !important;
    font-weight:600 !important;
  }

  /* Pagination */
  #dem-pagination button,
  #instr-pagination button,
  #cert-pagination button,
  #fact-pagination button,
  #aud-done-pagination button {
    min-width:32px !important;
    height:32px !important;
    border-radius:8px !important;
    border:1px solid rgba(13,45,94,0.12) !important;
    background:#fff !important;
    color:#0d2d5e !important;
    font-size:12px !important;
    font-weight:600 !important;
    cursor:pointer !important;
    transition:all .15s !important;
  }
  #dem-pagination button:hover,
  #instr-pagination button:hover,
  #cert-pagination button:hover,
  #fact-pagination button:hover,
  #aud-done-pagination button:hover {
    background:#F8FAFC !important;
    border-color:#0d2d5e !important;
  }
  #dem-pagination button.active,
  #instr-pagination button.active,
  #cert-pagination button.active,
  #fact-pagination button.active,
  #aud-done-pagination button.active {
    background:#0d2d5e !important;
    color:#fff !important;
    border-color:#0d2d5e !important;
  }

  /* Planning grid — auditeur cards */
  .planning-grid {
    display:grid !important;
    grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important;
    gap:14px !important;
  }

  /* Calendar grid */
  #cal-grid > div {
    background:#fff;
    transition:background .15s;
  }
  #cal-grid > div:hover { background:#FFF7ED; }

  /* Client messaging list items */
  #mc-client-list > div {
    padding:10px 12px !important;
    border-radius:10px !important;
    cursor:pointer !important;
    transition:all .15s !important;
    margin-bottom:4px !important;
  }
  #mc-client-list > div:hover { background:#F8FAFC !important; }
  #mc-client-list > div.active {
    background:#FFF7ED !important;
    border-left:3px solid #F97316 !important;
  }

  /* Mobile adjustments */
  @media (max-width: 880px) {
    .tab-hero { padding:18px 20px; }
    .tab-hero h1 { font-size:18px; }
    .stats-row { grid-template-columns:repeat(2,1fr) !important; }
  }

  /* ══════════════════════════════════════════
     PARAMÈTRES — panels, forms, toggles
     ══════════════════════════════════════════ */
  .params-layout {
    display:grid; grid-template-columns:240px minmax(0,1fr); gap:24px;
    padding:20px 28px 40px;
  }
  .params-side {
    position:sticky; top:16px; align-self:start;
    display:flex; flex-direction:column; gap:4px;
    background:#fff; border:1px solid var(--ink-100,#F1F5F9);
    border-radius:14px; padding:10px;
    box-shadow:0 2px 12px rgba(13,45,94,.04);
  }
  .params-tab {
    display:flex; align-items:center; gap:10px;
    padding:10px 12px; border-radius:10px;
    background:transparent; border:none; cursor:pointer;
    font-size:13px; font-weight:500; color:var(--ink-700);
    text-align:left; transition:all .2s ease;
    position:relative; overflow:hidden;
  }
  .params-tab .ico { width:18px; height:18px; stroke:currentColor; stroke-width:1.8; fill:none; flex-shrink:0; transition:transform .25s; }
  .params-tab:hover { background:var(--ink-50,#F8FAFC); color:var(--navy-800); transform:translateX(2px); }
  .params-tab:hover .ico { transform:scale(1.12); color:var(--coral-500); }
  .params-tab.active {
    background:linear-gradient(100deg, rgba(249,115,22,.12), rgba(249,115,22,.04));
    color:var(--navy-800); font-weight:600;
    box-shadow:inset 0 0 0 1px rgba(249,115,22,.2);
  }
  .params-tab.active .ico { color:var(--coral-500); }
  .params-tab.active::before {
    content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:3px; height:60%; background:var(--coral-500); border-radius:0 3px 3px 0;
  }

  .params-main {
    background:#fff; border:1px solid var(--ink-100,#F1F5F9);
    border-radius:16px; padding:28px 32px;
    box-shadow:0 2px 12px rgba(13,45,94,.04);
    min-height:560px;
  }
  .params-panel { display:none; animation:fadeSlide .35s ease-out; }
  .params-panel.active { display:block; }
  @keyframes fadeSlide {
    from { opacity:0; transform:translateY(8px); }
    to   { opacity:1; transform:translateY(0); }
  }
  .params-h {
    font-size:22px; font-weight:700; letter-spacing:-.01em;
    color:var(--ink-900); margin-bottom:4px;
  }
  .params-sub { font-size:13.5px; color:var(--ink-500); margin-bottom:24px; }
  .params-actions {
    margin-top:22px; padding-top:18px; border-top:1px solid var(--ink-100);
    display:flex; gap:10px;
  }

  /* Profile card */
  .profile-card {
    display:flex; align-items:center; gap:18px;
    padding:18px; border-radius:14px; margin-bottom:24px;
    background:linear-gradient(135deg, #eff5fc, #fff7ed);
    border:1px solid var(--ink-100);
    position:relative; overflow:hidden;
  }
  .profile-card::before {
    content:""; position:absolute; top:-60px; right:-60px;
    width:180px; height:180px; border-radius:50%;
    background:radial-gradient(circle, rgba(249,115,22,.18), transparent 70%);
  }
  .profile-av { position:relative; }
  .profile-av-inner {
    width:72px; height:72px; border-radius:50%;
    background:linear-gradient(135deg, #FB923C, #E11D48);
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-weight:700; font-size:28px;
    box-shadow:0 8px 20px rgba(251,146,60,.35), inset 0 -3px 0 rgba(0,0,0,.15);
  }
  .profile-av-edit {
    position:absolute; bottom:-2px; right:-2px;
    width:26px; height:26px; border-radius:50%;
    background:#fff; border:1px solid var(--ink-200);
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 6px rgba(0,0,0,.1);
    transition:all .2s;
  }
  .profile-av-edit:hover { transform:scale(1.1); border-color:var(--coral-500); }
  .profile-av-edit svg { width:13px; height:13px; stroke:var(--ink-700); stroke-width:2; fill:none; }
  .profile-info .profile-name {
    font-size:18px; font-weight:700; color:var(--ink-900); letter-spacing:-.01em;
  }
  .profile-info .profile-role { font-size:13px; color:var(--ink-500); margin-top:2px; }
  .profile-info .profile-mail { font-size:12.5px; color:var(--navy-600); margin-top:4px; }

  /* Fields */
  .field-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:16px;
  }
  .field { display:flex; flex-direction:column; gap:6px; }
  .field-full { grid-column:1 / -1; }
  .field label {
    font-size:12px; font-weight:600; color:var(--ink-700);
    letter-spacing:.01em;
  }
  .field input, .field textarea, .field select {
    padding:10px 12px; border:1px solid var(--ink-200);
    border-radius:9px; font-size:13.5px; color:var(--ink-900);
    font-family:inherit; outline:none;
    background:#fff; transition:all .2s;
  }
  .field input:focus, .field textarea:focus, .field select:focus {
    border-color:var(--navy-600);
    box-shadow:0 0 0 3px rgba(26,79,160,.12);
  }
  .field textarea { resize:vertical; min-height:80px; }

  /* Buttons */
  .btn-primary-v2 {
    padding:10px 20px; border-radius:10px; border:none; cursor:pointer;
    background:linear-gradient(135deg, #F97316, #EA580C); color:#fff;
    font-size:13px; font-weight:600; letter-spacing:.01em;
    box-shadow:0 4px 12px rgba(249,115,22,.35);
    transition:all .2s;
    position:relative; overflow:hidden;
  }
  .btn-primary-v2::after {
    content:""; position:absolute; inset:0;
    background:linear-gradient(120deg, transparent 35%, rgba(255,255,255,.35) 50%, transparent 65%);
    transform:translateX(-120%);
    transition:transform .65s ease;
    pointer-events:none;
  }
  .btn-primary-v2:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(249,115,22,.5); }
  .btn-primary-v2:hover::after { transform:translateX(120%); }
  .btn-primary-v2:active { transform:translateY(0) scale(.98); }

  .btn-danger-v2 {
    padding:10px 18px; border-radius:10px; cursor:pointer;
    background:#fff; border:1px solid #FCA5A5; color:#DC2626;
    font-size:13px; font-weight:600; transition:all .2s;
  }
  .btn-danger-v2:hover { background:#FEF2F2; border-color:#EF4444; }

  /* Toggle */
  .toggle-list {
    display:flex; flex-direction:column; gap:2px;
    border:1px solid var(--ink-100); border-radius:12px; overflow:hidden;
  }
  .toggle-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 18px; gap:18px;
    background:#fff; border-bottom:1px solid var(--ink-100);
    transition:background .2s;
  }
  .toggle-row:last-child { border-bottom:none; }
  .toggle-row:hover { background:var(--ink-50,#F8FAFC); }
  .toggle-title { font-size:14px; font-weight:600; color:var(--ink-900); }
  .toggle-sub { font-size:12.5px; color:var(--ink-500); margin-top:2px; }

  .switch {
    position:relative; display:inline-block; width:44px; height:24px; flex-shrink:0;
  }
  .switch input { opacity:0; width:0; height:0; }
  .switch .slider {
    position:absolute; cursor:pointer; inset:0;
    background:var(--ink-200); border-radius:24px;
    transition:all .3s;
  }
  .switch .slider::before {
    content:""; position:absolute; left:3px; top:3px;
    width:18px; height:18px; background:#fff; border-radius:50%;
    transition:all .3s cubic-bezier(.2,.9,.25,1.2);
    box-shadow:0 1px 3px rgba(0,0,0,.2);
  }
  .switch input:checked + .slider {
    background:linear-gradient(135deg, #F97316, #EA580C);
  }
  .switch input:checked + .slider::before {
    transform:translateX(20px);
  }

  /* Theme cards */
  .theme-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
  }
  .theme-card {
    position:relative; padding:16px; border-radius:14px;
    border:1.5px solid var(--ink-200); cursor:pointer;
    transition:all .2s; background:#fff;
  }
  .theme-card input { position:absolute; opacity:0; }
  .theme-card:hover { border-color:var(--navy-600); transform:translateY(-2px); }
  .theme-card.active {
    border-color:var(--coral-500);
    box-shadow:0 0 0 3px rgba(249,115,22,.12), 0 4px 12px rgba(249,115,22,.15);
  }
  .theme-preview {
    height:90px; border-radius:10px; margin-bottom:12px;
    border:1px solid var(--ink-100);
  }
  .theme-light { background:linear-gradient(135deg,#fff,#f1f5f9); }
  .theme-dark { background:linear-gradient(135deg,#0d2d5e,#1e293b); }
  .theme-auto { background:linear-gradient(90deg,#fff 50%,#0d2d5e 50%); }
  .theme-name { font-size:14px; font-weight:600; color:var(--ink-900); }
  .theme-desc { font-size:12px; color:var(--ink-500); margin-top:2px; }

  /* Security card */
  .sec-card {
    display:flex; flex-direction:column;
    border:1px solid var(--ink-100); border-radius:12px; overflow:hidden;
  }
  .sec-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 18px; gap:18px; border-bottom:1px solid var(--ink-100);
    background:#fff; transition:background .2s;
  }
  .sec-row:last-child { border-bottom:none; }
  .sec-row:hover { background:var(--ink-50,#F8FAFC); }
  .sec-title { font-size:14px; font-weight:600; color:var(--ink-900); }
  .sec-title.danger { color:#DC2626; }
  .sec-sub { font-size:12.5px; color:var(--ink-500); margin-top:2px; }

  /* Integrations */
  .integ-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px;
  }
  .integ-card {
    display:flex; align-items:center; gap:12px;
    padding:14px; border-radius:12px;
    background:#fff; border:1px solid var(--ink-100);
    transition:all .25s;
  }
  .integ-card:hover {
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(13,45,94,.08);
    border-color:var(--ink-200);
  }
  .integ-logo {
    width:44px; height:44px; border-radius:11px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-weight:800; font-size:18px;
    box-shadow:inset 0 -2px 0 rgba(0,0,0,.1);
  }
  .integ-body { flex:1; min-width:0; }
  .integ-name { font-size:14px; font-weight:600; color:var(--ink-900); }
  .integ-sub { font-size:12px; color:var(--ink-500); margin-top:2px; }
  .integ-status { font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; }
  .integ-status.ok { background:#DCFCE7; color:#15803D; }

  /* About */
  .about-card {
    display:flex; gap:22px; padding:24px;
    background:linear-gradient(135deg, #eff5fc, #fff7ed);
    border-radius:16px; border:1px solid var(--ink-100);
    position:relative; overflow:hidden;
  }
  .about-card::before {
    content:""; position:absolute; bottom:-80px; right:-80px;
    width:220px; height:220px; border-radius:50%;
    background:radial-gradient(circle, rgba(13,45,94,.08), transparent 70%);
  }
  .about-logo {
    width:68px; height:68px; border-radius:16px;
    background:linear-gradient(135deg,#fff,#dbe5f4);
    display:flex; align-items:center; justify-content:center;
    font-weight:800; color:var(--navy-800); font-size:20px;
    box-shadow:0 6px 20px rgba(13,45,94,.15), inset 0 -2px 0 rgba(13,45,94,.1);
    flex-shrink:0;
  }
  .about-body { flex:1; }
  .about-name { font-size:22px; font-weight:700; color:var(--ink-900); }
  .about-tag {
    display:inline-block; font-size:11px; padding:3px 8px;
    background:var(--coral-500); color:#fff; border-radius:999px;
    margin-left:8px; vertical-align:middle; letter-spacing:.02em;
  }
  .about-sub { font-size:13px; color:var(--ink-500); margin-top:2px; }
  .about-desc { font-size:13.5px; color:var(--ink-700); margin:12px 0; line-height:1.55; }
  .about-meta {
    display:flex; flex-wrap:wrap; gap:18px; font-size:11.5px;
    color:var(--ink-500); margin-top:10px;
  }

  @media (max-width: 880px) {
    .params-layout { grid-template-columns:1fr; padding:16px; }
    .params-side { position:static; flex-direction:row; overflow-x:auto; }
    .params-tab { white-space:nowrap; }
    .field-grid, .theme-grid, .integ-grid { grid-template-columns:1fr; }
    .profile-card, .about-card { flex-direction:column; text-align:center; }
  }

  /* ══════════════════════════════════════════
     MICRO-ANIMATIONS globales
     ══════════════════════════════════════════ */
  @keyframes fadeInUp {
    from { opacity:0; transform:translateY(12px); }
    to   { opacity:1; transform:translateY(0); }
  }
  @keyframes shimmer {
    0% { background-position:-400px 0; }
    100% { background-position:400px 0; }
  }
  .v2-loading {
    background:linear-gradient(90deg, transparent, rgba(13,45,94,.04), transparent);
    background-size:400px 100%;
    animation:shimmer 1.6s linear infinite;
  }
  .kpi, .panel-v2, .account-card, .card-t {
    transition:transform .25s ease, box-shadow .3s ease;
  }
  .kpi:hover, .panel-v2:hover {
    transform:translateY(-2px);
    box-shadow:0 10px 26px rgba(13,45,94,.08);
  }
  .card-t:hover {
    transform:translateY(-2px);
    box-shadow:0 8px 22px rgba(13,45,94,.1);
  }
  .account-card:hover {
    transform:translateY(-3px) scale(1.01);
  }
  .nav-item svg, .pill-tab svg, .btn-ghost-v2 svg {
    transition:transform .25s cubic-bezier(.2,.9,.25,1.2);
  }
  /* ripple on button */
  .btn-primary-v2, .btn-danger-v2, .btn-ghost-v2 {
    position:relative; overflow:hidden;
  }
  .btn-primary-v2::after, .btn-danger-v2::after, .btn-ghost-v2::after {
    content:""; position:absolute; inset:0;
    background:radial-gradient(circle at center, rgba(255,255,255,.4), transparent 60%);
    opacity:0; transform:scale(.3); transition:all .5s;
    pointer-events:none;
  }
  .btn-primary-v2:active::after, .btn-danger-v2:active::after, .btn-ghost-v2:active::after {
    opacity:1; transform:scale(1.8); transition:0s;
  }

  /* /BRIDGE v2 */

  /* ══════════ MEMBRES QUALIPRO ══════════ */
  #tab-membres .qp-mb-section{margin-bottom:32px}
  #tab-membres .qp-mb-section-head{margin:14px 0 14px;padding:0 2px}
  #tab-membres .qp-mb-section-head h2{
    font-family:'Sora','Inter',sans-serif;font-size:20px;font-weight:700;
    color:#1a1a2e;margin:0 0 4px;letter-spacing:-.3px;
    display:flex;align-items:center;gap:10px;
  }
  #tab-membres .qp-mb-bar{
    display:inline-block;width:4px;height:20px;border-radius:3px;
    background:linear-gradient(180deg,#0d2d5e,#3B6FB5);
  }
  #tab-membres .qp-mb-bar.coral{background:linear-gradient(180deg,#F97316,#FB923C)}
  #tab-membres .qp-mb-section-head p{font-size:13px;color:#6b7280;margin:0;line-height:1.5}
  #tab-membres .qp-mb-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;
  }
  #tab-membres .qp-mb-card{
    position:relative;background:#fff;border-radius:16px;padding:18px 18px 16px;
    border:1px solid rgba(13,45,94,.08);box-shadow:0 4px 14px rgba(13,45,94,.06);
    cursor:pointer;transition:transform .22s cubic-bezier(.2,.9,.25,1.05),box-shadow .22s,border-color .22s;
    overflow:hidden;
  }
  #tab-membres .qp-mb-card::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
    background:linear-gradient(180deg,var(--c1,#0d2d5e),var(--c2,#3B6FB5));
  }
  #tab-membres .qp-mb-card.externe{--c1:#F97316;--c2:#FB923C}
  #tab-membres .qp-mb-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(13,45,94,.12);border-color:rgba(13,45,94,.16)}
  #tab-membres .qp-mb-card-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
  #tab-membres .qp-mb-avatar{
    width:54px;height:54px;border-radius:14px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;color:#fff;
    font-family:'Sora','Inter',sans-serif;font-size:18px;font-weight:700;
    background:linear-gradient(135deg,var(--c1,#0d2d5e),var(--c2,#3B6FB5));
    box-shadow:0 6px 14px rgba(0,0,0,.12);
  }
  #tab-membres .qp-mb-card-info{flex:1;min-width:0}
  #tab-membres .qp-mb-card-name{
    font-family:'Sora','Inter',sans-serif;font-size:15px;font-weight:700;
    color:#1a1a2e;letter-spacing:-.2px;margin:0 0 3px;line-height:1.25;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  #tab-membres .qp-mb-card-role{font-size:11.5px;color:#6b7280;font-weight:600}
  #tab-membres .qp-mb-card-stat{
    display:flex;justify-content:space-between;align-items:center;
    font-size:11px;color:#6b7280;font-weight:600;
    padding-top:14px;border-top:1px solid rgba(13,45,94,.06);
  }
  #tab-membres .qp-mb-card-pill{
    padding:3px 9px;border-radius:999px;font-size:10px;font-weight:700;
    letter-spacing:1px;text-transform:uppercase;
  }
  #tab-membres .qp-mb-card-pill.fm-done{background:rgba(22,163,74,.12);color:#16a34a}
  #tab-membres .qp-mb-card-pill.fm-progress{background:rgba(245,158,11,.12);color:#b45309}
  #tab-membres .qp-mb-card-pill.fm-none{background:rgba(156,163,175,.16);color:#6b7280}
  #tab-membres .qp-mb-card-arrow{
    color:#9ca3af;transition:transform .18s,color .18s;
  }
  #tab-membres .qp-mb-card:hover .qp-mb-card-arrow{transform:translateX(3px);color:#0d2d5e}

  /* Member detail modal */
  .qp-mb-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:qpFadeIn .2s}
  @keyframes qpFadeIn{from{opacity:0}to{opacity:1}}
  .qp-mb-modal-scrim{position:absolute;inset:0;background:rgba(13,45,94,.55);backdrop-filter:blur(6px);cursor:pointer}
  .qp-mb-modal-box{
    position:relative;width:100%;max-width:780px;max-height:92vh;display:flex;flex-direction:column;
    background:#fff;border-radius:20px;overflow:hidden;
    box-shadow:0 30px 80px rgba(0,0,0,.32);
    animation:qpSlideIn .28s cubic-bezier(.2,.9,.25,1.05);
  }
  @keyframes qpSlideIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
  .qp-mb-modal-close{
    position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:10px;
    background:rgba(255,255,255,.18);border:none;color:#fff;cursor:pointer;z-index:3;
    display:flex;align-items:center;justify-content:center;transition:all .14s;
  }
  .qp-mb-modal-close:hover{background:rgba(255,255,255,.32)}
  .qp-mb-modal-close svg{width:16px;height:16px}
  .qp-mb-modal-hero{
    position:relative;display:flex;align-items:center;gap:18px;
    padding:26px 28px;color:#fff;
    background:linear-gradient(135deg,#0d2d5e,#1c4a8e 60%,#3B6FB5);
  }
  .qp-mb-modal-hero.externe{background:linear-gradient(135deg,#0d2d5e,#1c4a8e 50%,#F97316)}
  .qp-mb-modal-hero::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 80% 30%,rgba(255,255,255,.18),transparent 60%);
    pointer-events:none;
  }
  .qp-mb-hero-avatar{
    position:relative;z-index:2;
    width:64px;height:64px;border-radius:18px;flex-shrink:0;
    background:rgba(255,255,255,.18);backdrop-filter:blur(8px);
    display:flex;align-items:center;justify-content:center;
    font-family:'Sora','Inter',sans-serif;font-size:22px;font-weight:700;color:#fff;
    border:1px solid rgba(255,255,255,.28);
  }
  .qp-mb-hero-info{position:relative;z-index:2;flex:1;min-width:0}
  .qp-mb-hero-eyebrow{
    display:inline-block;font-family:'Sora','Inter',sans-serif;
    font-size:10.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
    opacity:.85;margin-bottom:6px;
  }
  .qp-mb-hero-info h2{
    font-family:'Sora','Inter',sans-serif;font-size:24px;font-weight:700;
    margin:0 0 4px;letter-spacing:-.4px;line-height:1.2;
  }
  .qp-mb-hero-meta{font-size:12.5px;opacity:.92}
  .qp-mb-modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column;background:#fff}
  .qp-mb-tabs{
    display:flex;gap:0;padding:0 20px;border-bottom:1px solid #e5e7eb;
    background:#f9fafb;
  }
  .qp-mb-tab{
    padding:12px 16px;border:none;background:transparent;
    font-size:13px;font-weight:600;color:#6b7280;cursor:pointer;position:relative;
    transition:color .14s;
  }
  .qp-mb-tab:hover{color:#1a1a2e}
  .qp-mb-tab.active{color:#0d2d5e}
  .qp-mb-tab.active::after{
    content:"";position:absolute;bottom:-1px;left:14px;right:14px;height:2px;
    background:linear-gradient(90deg,#F97316,#FB923C);border-radius:2px 2px 0 0;
  }
  .qp-mb-pane{display:none;padding:22px 26px;overflow-y:auto;max-height:55vh}
  .qp-mb-pane.active{display:block}
  .qp-mb-pane::-webkit-scrollbar{width:6px}
  .qp-mb-pane::-webkit-scrollbar-thumb{background:rgba(13,45,94,.18);border-radius:3px}

  /* ── Fiche membre / auditeur en pleine page (plus de modal) ── */
  .qp-mb-back{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #e2e8f4;color:#0d2d5e;font-size:13px;font-weight:700;padding:9px 15px;border-radius:10px;cursor:pointer;margin-bottom:18px;font-family:inherit;transition:background .15s,border-color .15s}
  .qp-mb-back:hover{background:#f1f5fb;border-color:#cbd5e1}
  .qp-mb-back svg{width:15px;height:15px}
  .qp-mb-detail-hero{position:relative;display:flex;align-items:center;gap:18px;padding:26px 28px;color:#fff;border-radius:18px;overflow:hidden;margin-bottom:18px;background:linear-gradient(135deg,#0d2d5e,#1c4a8e 60%,#3B6FB5);box-shadow:0 12px 30px rgba(13,45,94,.2)}
  /* K53 (16/08) — plus de dégradé orange : le bandeau est bleu pour tous. */
  .qp-mb-detail-hero.externe{background:linear-gradient(135deg,#0d2d5e,#1c4a8e 60%,#3B6FB5)}
  .qp-mb-detail-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(255,255,255,.18),transparent 60%);pointer-events:none}
  #qpMb-detail-view .qp-mb-tabs{border-radius:14px 14px 0 0;border:1px solid #eceff5;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}
  #qpMb-detail-view .qp-mb-pane{max-height:none;overflow:visible;background:#fff;border:1px solid #eceff5;border-top:none;border-radius:0 0 14px 14px;padding:24px}
  /* ── Cartes "fiche" façon espace client ── */
  #qpMb-detail-view .qpf-card{background:#fff;border:1px solid #eceff5;border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(13,45,94,.04),0 8px 24px rgba(13,45,94,.06);margin-bottom:16px}
  #qpMb-detail-view .qpf-card:last-child{margin-bottom:0}
  #qpMb-detail-view .qpf-head{display:flex;align-items:center;gap:12px;padding:16px 20px;color:#fff;position:relative}
  #qpMb-detail-view .qpf-head.navy{background:linear-gradient(135deg,#0d2d5e,#1C4A8E)}
  #qpMb-detail-view .qpf-head.coral{background:linear-gradient(135deg,#EA580C,#F97316)}



  /* ══ K56 (16/08/2026) — accueil de l'onglet « Membres » ══ */
  #qpMb-list-view .qpml-hero{position:relative;overflow:hidden;border-radius:20px;padding:26px 30px;color:#fff;margin-bottom:22px;
    background:linear-gradient(135deg,#0b2650,#14407c 55%,#2f63a8);box-shadow:0 14px 34px rgba(13,45,94,.22)}
  #qpMb-list-view .qpml-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 15%,rgba(255,255,255,.16),transparent 55%)}
  #qpMb-list-view .qpml-hero .in{position:relative;z-index:1;display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap}
  #qpMb-list-view .qpml-hero h1{margin:0;font-family:Sora,Inter,sans-serif;font-size:25px;font-weight:800;letter-spacing:-.02em;color:#fff}
  #qpMb-list-view .qpml-hero p{margin:6px 0 0;font-size:13px;opacity:.8;max-width:520px;line-height:1.55;color:#fff}
  #qpMb-list-view .qpml-hero .counts{display:flex;gap:26px;margin-left:auto}
  #qpMb-list-view .qpml-hero .cnt .n{font-family:Sora,Inter,sans-serif;font-size:26px;font-weight:800;line-height:1}
  #qpMb-list-view .qpml-hero .cnt .l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.72;margin-top:5px;font-weight:600}
  #qpMb-list-view .qpml-hero .cnt i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}

  #qpMb-list-view .qpml-sechead{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
  #qpMb-list-view .qpml-sechead .ic{width:36px;height:36px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:#eef3fb}
  #qpMb-list-view .qpml-sechead .ic svg{width:18px;height:18px;stroke:#1c4a8e;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  #qpMb-list-view .qpml-sechead.coral .ic{background:#fff2e8}
  #qpMb-list-view .qpml-sechead.coral .ic svg{stroke:#EA580C}
  #qpMb-list-view .qpml-sechead.violet .ic{background:#f4efff}
  #qpMb-list-view .qpml-sechead.violet .ic svg{stroke:#7C3AED}
  #qpMb-list-view .qpml-sechead h2{margin:0;font-family:Sora,Inter,sans-serif;font-size:15px;font-weight:700;color:#0d2d5e;display:flex;align-items:center;gap:9px}
  #qpMb-list-view .qpml-sechead h2 b{font-size:11px;font-weight:800;color:#7c8798;background:#f1f5f9;border-radius:999px;padding:3px 9px}
  #qpMb-list-view .qpml-sechead p{margin:2px 0 0;font-size:12px;color:#7c8798}
  #qpMb-list-view .qpml-sechead .acts{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
  #qpMb-list-view .qpml-btn{border:1px solid #e8edf5;background:#fff;color:#5b6779;border-radius:9px;padding:7px 12px;font-size:11.5px;font-weight:600;
    cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;transition:.14s;white-space:nowrap}
  #qpMb-list-view .qpml-btn:hover{border-color:#c9d8ef;color:#1c4a8e;background:#f6f9fe}
  #qpMb-list-view .qpml-btn.primary{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
  #qpMb-list-view .qpml-btn.primary:hover{background:#123c7b;color:#fff}
  #qpMb-list-view .qpml-btn.primary.coral{background:#EA580C;border-color:#EA580C}
  #qpMb-list-view .qpml-btn.primary.coral:hover{background:#c2410c}
  #qpMb-list-view .qpml-btn.primary.violet{background:#7C3AED;border-color:#7C3AED}
  #qpMb-list-view .qpml-btn.primary.violet:hover{background:#6d28d9}
  #qpMb-list-view .qpml-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round}

  #qpMb-list-view .qp-mb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:13px}
  #qpMb-list-view .qpml-card{position:relative;background:#fff;border:1px solid #e8edf5;border-radius:16px;overflow:hidden;cursor:pointer;
    transition:border-color .18s,box-shadow .18s,transform .18s}
  #qpMb-list-view .qpml-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#1c4a8e,#3B6FB5);opacity:.85}
  #qpMb-list-view .qpml-card.coral::before{background:linear-gradient(180deg,#EA580C,#FB923C)}
  #qpMb-list-view .qpml-card.violet::before{background:linear-gradient(180deg,#7C3AED,#A78BFA)}
  #qpMb-list-view .qpml-card:hover{border-color:#c9d8ef;box-shadow:0 10px 26px rgba(13,45,94,.10);transform:translateY(-2px)}
  #qpMb-list-view .qpml-card .body{padding:16px 16px 13px 18px}
  #qpMb-list-view .qpml-card .top{display:flex;align-items:center;gap:12px}
  #qpMb-list-view .qpml-av{width:46px;height:46px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;
    font-family:Sora,Inter,sans-serif;font-weight:800;font-size:14.5px;color:#fff;letter-spacing:.02em;
    background:linear-gradient(135deg,#14407c,#2f63a8);box-shadow:0 4px 10px rgba(13,45,94,.18)}
  #qpMb-list-view .qpml-card.coral .qpml-av{background:linear-gradient(135deg,#EA580C,#FB923C);box-shadow:0 4px 10px rgba(234,88,12,.2)}
  #qpMb-list-view .qpml-card.violet .qpml-av{background:linear-gradient(135deg,#7C3AED,#A78BFA);box-shadow:0 4px 10px rgba(124,58,237,.2)}
  #qpMb-list-view .qpml-card .who{flex:1;min-width:0}
  #qpMb-list-view .qpml-card .nm{font-size:13.6px;font-weight:700;color:#0d2d5e;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #qpMb-list-view .qpml-card .rl{font-size:11.5px;color:#7c8798;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #qpMb-list-view .qpml-card .go{flex:none;width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#c3ccda;transition:.16s}
  #qpMb-list-view .qpml-card:hover .go{background:#eef3fb;color:#1c4a8e;transform:translateX(2px)}
  #qpMb-list-view .qpml-card .go svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

  #qpMb-list-view .qpml-prog{margin-top:14px}
  #qpMb-list-view .qpml-prog .lab{display:flex;justify-content:space-between;align-items:baseline;font-size:10.5px;font-weight:700;color:#7c8798;letter-spacing:.02em}
  #qpMb-list-view .qpml-prog .lab em{font-style:normal;color:#0d2d5e;font-size:11px}
  #qpMb-list-view .qpml-prog .bar{height:5px;border-radius:99px;background:#f1f5f9;margin-top:6px;overflow:hidden}
  #qpMb-list-view .qpml-prog .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1c4a8e,#3B6FB5)}
  #qpMb-list-view .qpml-card.coral .qpml-prog .bar i{background:linear-gradient(90deg,#EA580C,#FB923C)}
  #qpMb-list-view .qpml-card.violet .qpml-prog .bar i{background:linear-gradient(90deg,#7C3AED,#A78BFA)}
  #qpMb-list-view .qpml-prog.done .bar i{background:linear-gradient(90deg,#15803d,#4ade80)}

  #qpMb-list-view .qpml-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 16px 12px 18px;border-top:1px solid #f1f5f9;background:#fcfdff;min-height:44px}
  #qpMb-list-view .qpml-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:999px;background:#f1f5f9;color:#5b6779}
  #qpMb-list-view .qpml-tag.ok{background:#f0fdf6;color:#15803d;border:1px solid #c3e7d2}
  #qpMb-list-view .qpml-tag.warn{background:#fffbf2;color:#b45309;border:1px solid #f3ddb4}
  #qpMb-list-view .qpml-tag svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
  #qpMb-list-view .qpml-del{margin-left:auto;border:none;background:transparent;color:#cbd5e1;border-radius:7px;width:24px;height:24px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;opacity:0;transition:.15s;padding:0;flex:none}
  #qpMb-list-view .qpml-card:hover .qpml-del{opacity:1}
  #qpMb-list-view .qpml-del:hover{background:#fdeeee;color:#dc2626}
  #qpMb-list-view .qpml-del svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

  #qpMb-list-view .qpml-card.boite{background:repeating-linear-gradient(135deg,#fbfcfe,#fbfcfe 9px,#f6f8fc 9px,#f6f8fc 18px)}
  #qpMb-list-view .qpml-card.boite .qpml-av{background:linear-gradient(135deg,#94a3b8,#cbd5e1);box-shadow:none}
  #qpMb-list-view .qpml-card.boite::before{background:linear-gradient(180deg,#cbd5e1,#e2e8f0)}
  #qpMb-list-view .qpml-card.boite .qpml-foot{background:transparent}

  @media (max-width:640px){
    #qpMb-list-view .qpml-hero{padding:20px}
    #qpMb-list-view .qpml-hero .counts{gap:18px;margin-left:0;margin-top:14px}
    #qpMb-list-view .qpml-sechead .acts{margin-left:0;width:100%;justify-content:flex-start}
  }


  /* ── K58 (16/08/2026) — anneau en pourcentage, document résilié ── */
  #qpMb-docs .qpd-ring span i{font-style:normal;font-size:9.5px;font-weight:700;margin-left:1px;opacity:.75}
  #qpMb-docs .qpd-ring span{font-size:14px}

  #qpMb-docs .qpd-slot.resilie{border-color:#f0c9c9;
    background:repeating-linear-gradient(135deg,#fffafa,#fffafa 10px,#fdf2f2 10px,#fdf2f2 20px)}
  #qpMb-docs .qpd-slot.resilie .qpd-ic{background:#fdeaea}
  #qpMb-docs .qpd-slot.resilie .qpd-ic .qpd-svg{stroke:#c0392f}
  #qpMb-docs .qpd-slot.resilie .nm{color:#8f2f28;text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:rgba(192,57,47,.55)}
  #qpMb-docs .qpd-slot.resilie .nm .cd{text-decoration:none;color:#c9a3a0}
  #qpMb-docs .qpd-slot.resilie .qpd-file{background:#fff;border-color:#f3dada}
  #qpMb-docs .qpd-slot.resilie .qpd-file .fn{color:#a14a43;text-decoration:line-through;text-decoration-color:rgba(161,74,67,.5)}
  #qpMb-docs .qpd-slot.resilie .qpd-st{color:#c0392f;font-weight:700}
  #qpMb-docs .qpd-slot.resilie .qpd-st i{background:#c0392f}
  #qpMb-docs .qpd-slot.resilie .qpd-dep.sm{border-color:#f3dada;color:#a14a43}
  #qpMb-docs .qpd-slot:hover .qpd-slot.resilie .qpd-dep.sm{opacity:1}

  #qpMb-docs .qpd-resi{margin-top:8px;width:100%;border:none;background:transparent;color:#c3ccda;font-family:inherit;font-size:10.5px;
    font-weight:700;cursor:pointer;padding:3px;border-radius:7px;opacity:0;transition:opacity .15s,color .15s,background .15s}
  #qpMb-docs .qpd-slot:hover .qpd-resi{opacity:1}
  #qpMb-docs .qpd-resi:hover{background:#fdf2f2;color:#c0392f}
  #qpMb-docs .qpd-resform{display:none;gap:6px;align-items:center;margin-top:8px;padding:8px;border:1px solid #f3dada;border-radius:9px;background:#fffafa}
  #qpMb-docs .qpd-resform input[type=date]{flex:1;min-width:0;padding:5px 7px;border:1px solid #eddada;border-radius:7px;font:inherit;font-size:11px;background:#fff;color:#8f2f28}
  #qpMb-docs .qpd-resform .ok{border:none;background:#c0392f;color:#fff;border-radius:7px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;flex:none}
  #qpMb-docs .qpd-resform .ok:hover{background:#a02f26}


  /* ── K59 (16/08/2026) — carte d'un membre dont le contrat est résilié ── */
  #qpMb-list-view .qpml-tag.off{background:#fdf2f2;color:#c0392f;border:1px solid #f3d3d0}
  #qpMb-list-view .qpml-card.resilie::before{background:linear-gradient(180deg,#c0392f,#e88b83)}
  #qpMb-list-view .qpml-card.resilie .qpml-av{background:linear-gradient(135deg,#9aa5b1,#c7ced6);box-shadow:none}
  #qpMb-list-view .qpml-card.resilie .nm{color:#5b6779}
  #qpMb-list-view .qpml-card.resilie .qpml-foot{background:#fffafa}

  /* ══ K55 (16/08/2026) — sélecteur de vue de l'onglet Formation ══ */
  #qpMb-formation .qpfv-toggle{display:inline-flex;gap:3px;padding:3px;background:#f1f5f9;border-radius:11px;margin-bottom:18px}
  #qpMb-formation .qpfv-toggle button{border:none;background:transparent;color:#64748b;font-family:inherit;font-size:12.5px;font-weight:700;
    padding:7px 15px;border-radius:9px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap}
  #qpMb-formation .qpfv-toggle button:hover{color:#0d2d5e}
  #qpMb-formation .qpfv-toggle button.on{background:#fff;color:#0d2d5e;box-shadow:0 1px 3px rgba(13,45,94,.12)}
  #qpMb-formation .qpfv-vide{border:1px dashed #e2e8f0;border-radius:12px;padding:22px;text-align:center;font-size:12.5px;color:#94a3b8;line-height:1.6}
  #qpMb-formation .qpfv-lien{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px;padding:14px 16px;border:1px solid #e8edf5;
    border-radius:12px;background:#fbfcfe}
  #qpMb-formation .qpfv-lien button{border:1px solid #dbe4f0;background:#fff;color:#0d2d5e;border-radius:9px;padding:8px 14px;font-size:12px;
    font-weight:700;cursor:pointer;font-family:inherit;transition:.14s}
  #qpMb-formation .qpfv-lien button:hover{border-color:#c9d8ef;background:#f4f8ff}
  #qpMb-formation .qpfv-lien span{font-size:11.5px;color:#94a3b8}

  /* Les cartes du module « Entretiens & compétences » sont stylées sous
     #smq-pane-fmc : on rejoue ici les règles utilisées par les deux cartes
     reprises (plan de formation, historique d'harmonisation). */
  #qpMb-formation .qpfv-host{--fmc-navy:#0d2d5e;--fmc-ink9:#0f172a;--fmc-ink7:#334155;--fmc-ink5:#64748b;--fmc-ink4:#94a3b8;
    --fmc-ink2:#e2e8f0;--fmc-ink1:#f1f5f9;--fmc-ink50:#f8fafc;--fmc-green:#16A34A;--fmc-greenbg:#ecfdf3;--fmc-amber:#D97706;
    --fmc-amberbg:#fffbeb;--fmc-red:#DC2626;--fmc-redbg:#fef2f2;color:var(--fmc-ink9)}
  #qpMb-formation .qpfv-host *{box-sizing:border-box}
  #qpMb-formation .fmc-card{background:#fff;border:1px solid var(--fmc-ink2);border-radius:12px;padding:15px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:14px}
  #qpMb-formation .fmc-card h3{margin:0 0 12px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}
  #qpMb-formation .fmc-card h3 svg{width:17px;height:17px;flex:0 0 auto;stroke-width:2;fill:none}
  #qpMb-formation .fmc-tag{margin-left:auto;font-size:11px;font-weight:700;color:var(--fmc-ink5);background:var(--fmc-ink1);border-radius:999px;padding:3px 10px}
  #qpMb-formation .fmc-flist{list-style:none;margin:0;padding:0}
  #qpMb-formation .fmc-flist li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--fmc-ink1)}
  #qpMb-formation .fmc-flist li:last-child{border-bottom:0}
  #qpMb-formation .fmc-fi{flex:1;min-width:0}
  #qpMb-formation .fmc-fi b{display:block;font-size:12.8px;font-weight:700;color:var(--fmc-ink9)}
  #qpMb-formation .fmc-fi span{display:block;font-size:11.5px;color:var(--fmc-ink5);margin-top:2px}
  #qpMb-formation .fmc-statpill{font-size:10.5px;font-weight:800;border-radius:999px;padding:3px 10px;white-space:nowrap}
  #qpMb-formation .fmc-statpill.fait{background:var(--fmc-greenbg);color:var(--fmc-green)}
  #qpMb-formation .fmc-statpill.prevu{background:#eff5fc;color:#1a4fa0}
  #qpMb-formation .fmc-statpill.retard{background:var(--fmc-redbg);color:var(--fmc-red)}
  #qpMb-formation .fmc-empty{font-size:12.5px;color:var(--fmc-ink4);text-align:center}
  #qpMb-formation .fmc-btn{border:1px solid var(--fmc-ink2);background:#fff;color:var(--fmc-ink7);border-radius:9px;padding:7px 12px;font-size:12px;
    font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;transition:.14s}
  #qpMb-formation .fmc-btn:hover{border-color:#c9d8ef;color:var(--fmc-navy);background:#f6f9fe}
  #qpMb-formation .fmc-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  #qpMb-formation .fmc-btn.fmc-mini{padding:5px 8px;font-size:11px}
  #qpMb-formation .fmc-btn-navy{background:var(--fmc-navy);border-color:var(--fmc-navy);color:#fff}
  #qpMb-formation .fmc-btn-navy:hover{background:#123c7b;color:#fff}
  #qpMb-formation .fmc-btn-navy svg{stroke:#fff}
  #qpMb-formation .fmc-addrow{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--fmc-ink1)}
  #qpMb-formation .fmc-fld{display:flex;flex-direction:column;gap:4px}
  #qpMb-formation .fmc-fld label{font-size:11px;font-weight:700;color:var(--fmc-ink5)}
  #qpMb-formation .fmc-fld input,#qpMb-formation .fmc-fld select{padding:8px 10px;border:1px solid var(--fmc-ink2);border-radius:9px;font:inherit;font-size:12.5px;background:#fff}
  #qpMb-formation .fmc-elist li{cursor:pointer;border-radius:9px;padding:10px 8px;transition:background .14s}
  #qpMb-formation .fmc-elist li:hover{background:var(--fmc-ink50)}
  #qpMb-formation .fmc-mi{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:#eff5fc}
  #qpMb-formation .fmc-mi svg{width:15px;height:15px;stroke:var(--fmc-navy);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

  /* ══ K54 (16/08/2026) — onglet « Documents » du dossier membre ══ */
  #qpMb-docs .qpd-body{padding:22px 24px}
  #qpMb-docs .qpd-state{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid #f1f5f9;margin-bottom:6px}
  #qpMb-docs .qpd-ring{--p:0;position:relative;width:56px;height:56px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
    background:conic-gradient(#1c4a8e calc(var(--p)*1%),#e9eef7 0)}
  #qpMb-docs .qpd-ring::after{content:"";position:absolute;inset:5px;background:#fff;border-radius:50%}
  #qpMb-docs .qpd-ring span{position:relative;z-index:1;font-family:Sora,Inter,sans-serif;font-weight:800;font-size:13px;color:#0d2d5e}
  #qpMb-docs .qpd-stxt .t{font-family:Sora,Inter,sans-serif;font-size:14.5px;font-weight:700;color:#0d2d5e}
  #qpMb-docs .qpd-stxt .s{font-size:12.5px;color:#7c8798;margin-top:3px}
  #qpMb-docs .qpd-sp{flex:1}
  #qpMb-docs .qpd-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px;background:#eef3fb;color:#1c4a8e}
  #qpMb-docs .qpd-chip.ok{background:#f0fdf6;color:#15803d;border:1px solid #bfe6cf}
  #qpMb-docs .qpd-chip.warn{background:#fffbf2;color:#b45309;border:1px solid #f3ddb4}

  #qpMb-docs .qpd-sec{display:flex;align-items:baseline;gap:10px;margin:26px 0 12px}
  #qpMb-docs .qpd-sec h3{margin:0;font-family:Sora,Inter,sans-serif;font-size:13.5px;font-weight:700;color:#0d2d5e}
  #qpMb-docs .qpd-sec .c{font-size:11.5px;font-weight:700;color:#7c8798}
  #qpMb-docs .qpd-sec i{flex:1;height:1px;background:linear-gradient(90deg,#e8edf5,transparent)}

  #qpMb-docs .qpd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px;align-items:start}
  #qpMb-docs .qpd-slot{position:relative;border:1px solid #e8edf5;border-radius:14px;padding:14px;background:#fff;min-height:118px;
    display:flex;flex-direction:column;transition:border-color .16s,box-shadow .16s,transform .16s}
  #qpMb-docs .qpd-slot:hover{border-color:#c9d8ef;box-shadow:0 6px 18px rgba(13,45,94,.08);transform:translateY(-1px)}
  #qpMb-docs .qpd-slot .hd{display:flex;align-items:flex-start;gap:10px}
  #qpMb-docs .qpd-ic{width:34px;height:34px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;background:#eef3fb}
  #qpMb-docs .qpd-ic .qpd-svg{width:17px;height:17px;stroke:#1c4a8e}
  #qpMb-docs .qpd-slot.done .qpd-ic{background:#f0fdf6}
  #qpMb-docs .qpd-slot.done .qpd-ic .qpd-svg{stroke:#15803d}
  #qpMb-docs .qpd-slot .nm{font-size:12.8px;font-weight:700;color:#0d2d5e;line-height:1.3;min-width:0}
  #qpMb-docs .qpd-slot .nm .cd{display:block;font-size:10.5px;font-weight:600;color:#a9b4c4;margin-top:2px;letter-spacing:.03em}
  #qpMb-docs .qpd-st{margin-top:auto;padding-top:10px;font-size:11px;font-weight:600;color:#7c8798;display:flex;align-items:center;gap:6px}
  #qpMb-docs .qpd-st i{width:6px;height:6px;border-radius:50%;background:#d5dde9;flex:none}
  #qpMb-docs .qpd-slot.done .qpd-st{color:#15803d}
  #qpMb-docs .qpd-slot.done .qpd-st i{background:#15803d}
  #qpMb-docs .qpd-slot.wait .qpd-st i{background:#e0a94a}
  #qpMb-docs .qpd-svg{fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

  #qpMb-docs .qpd-file{display:flex;align-items:center;gap:6px;margin-top:11px;padding:7px 9px;border-radius:9px;background:#f7fafd;border:1px solid #eaf0f8}
  #qpMb-docs .qpd-file .fn{font-size:11.5px;font-weight:600;color:#1c4a8e;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
  #qpMb-docs .qpd-file .fn:hover{text-decoration:underline}
  #qpMb-docs .qpd-mini{border:none;background:transparent;color:#9aa6b6;cursor:pointer;padding:3px;border-radius:6px;line-height:0;flex:none}
  #qpMb-docs .qpd-mini:hover{background:#eef2f8;color:#1c4a8e}
  #qpMb-docs .qpd-mini .qpd-svg{width:13px;height:13px;stroke:currentColor;stroke-width:2}
  #qpMb-docs .qpd-note{margin-top:9px;font-size:11px;color:#92400e;background:#fffbeb;border-radius:8px;padding:6px 9px;line-height:1.45}

  #qpMb-docs .qpd-dep{margin-top:11px;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;border:1.5px dashed #d6dfec;border-radius:10px;
    font-size:11.5px;font-weight:700;color:#1c4a8e;cursor:pointer;background:#fcfdff;font-family:inherit;width:100%;transition:background .15s,border-color .15s}
  #qpMb-docs .qpd-dep:hover{background:#f2f7ff;border-color:#3B6FB5}
  #qpMb-docs .qpd-dep.sm{margin-top:8px;padding:5px;font-size:11px;border-style:solid;border-color:#eaf0f8;background:#fff;color:#7c8798;opacity:0;height:0;padding:0;border:none;overflow:hidden;transition:opacity .15s}
  #qpMb-docs .qpd-slot:hover .qpd-dep.sm{opacity:1;height:auto;padding:5px;border:1px solid #eaf0f8;margin-top:8px}
  #qpMb-docs .qpd-dep .qpd-svg{width:14px;height:14px;stroke:currentColor;stroke-width:2}

  #qpMb-docs .qpd-x{position:absolute;top:8px;right:8px;width:22px;height:22px;border:none;background:transparent;color:#c3ccda;border-radius:7px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s;padding:0}
  #qpMb-docs .qpd-slot:hover .qpd-x{opacity:1}
  #qpMb-docs .qpd-x:hover{background:#fdeeee;color:#dc2626}
  #qpMb-docs .qpd-x .qpd-svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.4}

  #qpMb-docs .qpd-gen{border:1px solid #dce7f8;border-radius:14px;padding:14px;background:linear-gradient(180deg,#f8fbff,#fff);display:flex;flex-direction:column}
  #qpMb-docs .qpd-gen .hd{display:flex;align-items:flex-start;gap:10px}
  #qpMb-docs .qpd-gen .nm{flex:1;min-width:0;font-size:12.8px;font-weight:700;color:#0d2d5e;line-height:1.3}
  #qpMb-docs .qpd-gen .nm em{display:block;font-style:normal;font-weight:600;color:#a9b4c4;font-size:10.5px;letter-spacing:.03em;margin-top:2px}
  #qpMb-docs .qpd-auto{font-size:10px;font-weight:800;letter-spacing:.04em;color:#1c4a8e;background:#e4edfb;border-radius:999px;padding:3px 9px;flex:none}
  #qpMb-docs .qpd-gen p{margin:9px 0 0;font-size:11.5px;color:#7c8798;line-height:1.5;flex:1}
  #qpMb-docs .qpd-btn{margin-top:12px;align-self:flex-start;border:none;background:#0d2d5e;color:#fff;border-radius:10px;padding:8px 14px;
    font-size:11.5px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;transition:background .15s,transform .12s}
  #qpMb-docs .qpd-btn:hover{background:#123c7b;transform:translateY(-1px)}
  #qpMb-docs .qpd-btn .qpd-svg{width:14px;height:14px;stroke:#fff;stroke-width:2}

  #qpMb-docs .qpd-list{border:1px solid #e8edf5;border-radius:14px;overflow:hidden}
  #qpMb-docs .qpd-row{display:flex;align-items:center;gap:13px;padding:12px 14px;border-bottom:1px solid #f1f5f9;transition:background .14s}
  #qpMb-docs .qpd-row:last-child{border-bottom:none}
  #qpMb-docs .qpd-row:hover{background:#fafcff}
  #qpMb-docs .qpd-ftag{width:34px;height:38px;border-radius:7px;flex:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;
    font-size:8.5px;font-weight:800;color:#fff;letter-spacing:.04em;position:relative;background:linear-gradient(160deg,#8a97a8,#69768a)}
  #qpMb-docs .qpd-ftag.pdf{background:linear-gradient(160deg,#e2574c,#c93b30)}
  #qpMb-docs .qpd-ftag.doc{background:linear-gradient(160deg,#3b7fd4,#2560ab)}
  #qpMb-docs .qpd-ftag.xls{background:linear-gradient(160deg,#3f9d63,#2b7a49)}
  #qpMb-docs .qpd-ftag.img{background:linear-gradient(160deg,#a06ed0,#7d47b3)}
  #qpMb-docs .qpd-ftag::before{content:"";position:absolute;top:0;right:0;border-width:0 9px 9px 0;border-style:solid;border-color:rgba(255,255,255,.42) #fff}
  #qpMb-docs .qpd-row.arch .qpd-ftag{filter:grayscale(.5);opacity:.8}
  #qpMb-docs .qpd-row.arch .qpd-rmeta .n{color:#5b6779}
  #qpMb-docs .qpd-rmeta{flex:1;min-width:0}
  #qpMb-docs .qpd-rmeta .n{font-size:12.8px;font-weight:700;color:#0d2d5e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #qpMb-docs .qpd-rmeta .d{font-size:11px;color:#9aa6b6;margin-top:2px}
  #qpMb-docs .qpd-acts{display:flex;gap:5px;opacity:.35;transition:opacity .15s;flex:none}
  #qpMb-docs .qpd-row:hover .qpd-acts{opacity:1}
  #qpMb-docs .qpd-act{border:1px solid #e8edf5;background:#fff;color:#7c8798;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:600;
    cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:inherit;text-decoration:none;transition:.14s}
  #qpMb-docs .qpd-act:hover{border-color:#c9d8ef;color:#1c4a8e;background:#f6f9fe}
  #qpMb-docs .qpd-act.danger:hover{border-color:#f3c9c9;color:#dc2626;background:#fdf5f5}
  #qpMb-docs .qpd-act .qpd-svg{width:13px;height:13px;stroke:currentColor;stroke-width:2}
  #qpMb-docs .qpd-vide{border:1px dashed #e2e8f0;border-radius:12px;padding:16px;text-align:center;font-size:12px;color:#9aa6b6}

  #qpMb-docs .qpd-arch{margin-top:22px;border:1px solid #e8edf5;border-radius:14px;background:#fbfcfe;overflow:hidden}
  #qpMb-docs .qpd-arch summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:#5b6779}
  #qpMb-docs .qpd-arch summary::-webkit-details-marker{display:none}
  #qpMb-docs .qpd-arch summary .caret{display:flex;transition:transform .2s}
  #qpMb-docs .qpd-arch[open] summary .caret{transform:rotate(90deg)}
  #qpMb-docs .qpd-arch summary .qpd-svg{width:14px;height:14px;stroke:currentColor;stroke-width:2}
  #qpMb-docs .qpd-arch summary .n{font-weight:600;color:#a9b4c4}
  #qpMb-docs .qpd-arch .inner{padding:0 14px 14px}
  #qpMb-docs .qpd-arch .qpd-list{background:#fff}

  #qpMb-docs .qpd-drop{margin-top:22px;border:1.5px dashed #d3dded;border-radius:14px;padding:22px;text-align:center;background:#fcfdff;cursor:pointer;transition:.16s}
  #qpMb-docs .qpd-drop:hover{background:#f4f8ff;border-color:#3B6FB5}
  #qpMb-docs .qpd-drop .ico{width:40px;height:40px;border-radius:12px;background:#eef3fb;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
  #qpMb-docs .qpd-drop .ico .qpd-svg{width:19px;height:19px;stroke:#1c4a8e}
  #qpMb-docs .qpd-drop .t{font-size:13px;font-weight:700;color:#0d2d5e}
  #qpMb-docs .qpd-drop .s{font-size:11.5px;color:#7c8798;margin-top:4px}
  #qpMb-docs .qpd-dform{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px;cursor:default}
  #qpMb-docs .qpd-dform input[type=text]{padding:8px 11px;border:1px solid #e2e8f0;border-radius:9px;font:inherit;font-size:12px;background:#fff;max-width:200px}
  #qpMb-docs .qpd-dform .fname{font-size:12px;font-weight:700;color:#0d2d5e;align-self:center;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #qpMb-docs .qpd-dform button{border:none;background:#0d2d5e;color:#fff;border-radius:9px;padding:8px 16px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
  #qpMb-docs .qpd-dform button:hover{background:#123c7b}
  #qpMb-docs .qpd-dstatus{font-size:11.5px;color:#7c8798;margin-top:9px;min-height:14px}

  #qpMb-detail-view .qpf-head.green{background:linear-gradient(135deg,#4F7043,#6A8F5A)}
  #qpMb-detail-view .qpf-head::after{content:"";position:absolute;top:-80%;right:-10%;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);pointer-events:none}
  #qpMb-detail-view .qpf-ic{width:38px;height:38px;border-radius:11px;flex:none;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center}
  #qpMb-detail-view .qpf-ic svg{width:19px;height:19px;stroke:#fff;fill:none}
  #qpMb-detail-view .qpf-head .t{font-family:Sora,Inter,sans-serif;font-size:14.5px;font-weight:700;color:#fff;line-height:1.2}
  #qpMb-detail-view .qpf-head .s{font-size:11px;color:rgba(255,255,255,.78);margin-top:2px}
  #qpMb-detail-view .qpf-body{padding:18px 20px}
  #qpMb-detail-view .qpf-lbl{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:6px;display:block}
  #qpMb-detail-view .qpf-input{width:100%;padding:11px 13px;border:1px solid #e2e8f4;border-radius:10px;font-size:13.5px;font-family:inherit;color:#0d2d5e;box-sizing:border-box;outline:none;transition:border-color .14s,box-shadow .14s}
  #qpMb-detail-view .qpf-input:focus{border-color:#3B6FB5;box-shadow:0 0 0 3px rgba(59,111,181,.12)}
  #qpMb-detail-view .qpf-btn-primary{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;border:none;border-radius:10px;padding:11px 18px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 3px 10px rgba(22,163,74,.25)}
  #qpMb-detail-view .qpf-btn-soft{background:#fff;border:1px solid #e2e8f4;color:#0d2d5e;border-radius:10px;padding:9px 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .14s}
  #qpMb-detail-view .qpf-btn-soft:hover{background:#f1f5fb}
  #qpMb-detail-view .qpf-btn-soft.warn{color:#b45309;border-color:#fcd34d;background:#fffbeb}
  #qpMb-detail-view .qpf-btn-soft.warn:hover{background:#fef3c7}
  #qpMb-detail-view .qpf-cred{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
  #qpMb-detail-view .qpf-cred-box{background:#f8fafc;border:1px solid #eceff5;border-radius:11px;padding:12px 14px}
  #qpMb-detail-view .qpf-cred-box .lbl{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:6px}
  #qpMb-detail-view .qpf-cred-box .val{font-size:13.5px;font-weight:600;color:#0d2d5e;user-select:all;word-break:break-all}
  #qpMb-detail-view .qpf-cred-box .val.mono{font-family:monospace;letter-spacing:.5px}
  #qpMb-detail-view .qpf-mission{display:flex;align-items:center;gap:13px;padding:11px 13px;border:1px solid #eceff5;border-radius:12px;margin-bottom:8px;background:#fff;transition:box-shadow .15s,border-color .15s}
  #qpMb-detail-view .qpf-mission:hover{box-shadow:0 4px 14px rgba(13,45,94,.07);border-color:#dbe4f3}
  #qpMb-detail-view .qpf-mission .d{flex:none;width:50px;text-align:center;background:linear-gradient(135deg,#0d2d5e,#1e4e8c);color:#fff;border-radius:10px;padding:7px 0}
  #qpMb-detail-view .qpf-mission .d .dd{font-size:16px;font-weight:800;line-height:1;font-family:Sora,Inter,sans-serif}
  #qpMb-detail-view .qpf-mission .d .mm{font-size:9px;text-transform:uppercase;letter-spacing:.5px;opacity:.9;margin-top:2px}
  #qpMb-detail-view .qpf-mission .info{flex:1;min-width:0}
  #qpMb-detail-view .qpf-mission .info .org{font-size:14px;font-weight:700;color:#0d2d5e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #qpMb-detail-view .qpf-mission .info .ty{font-size:12px;color:#6b7280;margin-top:2px}
  #qpMb-detail-view .qpf-badge{font-size:11px;font-weight:700;padding:4px 11px;border-radius:20px;white-space:nowrap;flex:none}

  .qp-mb-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
  .qp-mb-field{
    background:#f9fafb;border:1px solid #e5e7eb;border-radius:11px;
    padding:11px 14px;
  }
  .qp-mb-field .lbl{
    display:block;font-size:9.5px;font-weight:800;letter-spacing:1.4px;
    text-transform:uppercase;color:#9ca3af;margin-bottom:4px;
  }
  .qp-mb-field .val{font-size:13px;color:#1a1a2e;font-weight:600;word-break:break-word}
  .qp-mb-field .val a{color:#0d2d5e;text-decoration:none}
  .qp-mb-field .val a:hover{text-decoration:underline}

  .qp-mb-doc{
    display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:11px;
    background:#fff;border:1px solid #e5e7eb;margin-bottom:8px;text-decoration:none;color:inherit;
    transition:all .14s;
  }
  .qp-mb-doc:hover{border-color:#0d2d5e;box-shadow:0 4px 12px rgba(13,45,94,.08)}
  .qp-mb-doc-ic{
    width:38px;height:38px;border-radius:10px;flex-shrink:0;
    background:linear-gradient(135deg,#0d2d5e,#3B6FB5);color:#fff;
    display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10px;
  }
  .qp-mb-doc-ic.pdf{background:linear-gradient(135deg,#DC2626,#F87171)}
  .qp-mb-doc-ic.doc{background:linear-gradient(135deg,#2563EB,#60A5FA)}
  .qp-mb-doc-ic.xls{background:linear-gradient(135deg,#16A34A,#4ADE80)}
  .qp-mb-doc-info{flex:1;min-width:0}
  .qp-mb-doc-name{font-size:13px;font-weight:600;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .qp-mb-doc-meta{font-size:11px;color:#6b7280;margin-top:2px}

  .qp-mb-upload{
    border:1px dashed #d1d5db;border-radius:11px;padding:14px;background:#f9fafb;margin-top:12px;
  }
  .qp-mb-upload p{font-size:12.5px;font-weight:600;margin:0 0 8px;color:#374151}
  .qp-mb-upload input[type="text"], .qp-mb-upload input[type="file"]{
    width:100%;font-size:12px;padding:7px 9px;border:1px solid #d1d5db;border-radius:7px;margin-bottom:7px;box-sizing:border-box;
  }
  .qp-mb-upload button{
    background:#0d2d5e;color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:12px;cursor:pointer;font-weight:600;
  }
  .qp-mb-upload-status{font-size:11px;margin-top:6px;color:#6b7280}

  .qp-mb-empty{
    text-align:center;padding:30px 18px;color:#9ca3af;font-size:13px;
    background:#f9fafb;border-radius:12px;border:1px dashed #e5e7eb;
  }

  .qp-mb-history-item{
    background:#fff;border:1px solid #e5e7eb;border-radius:11px;
    padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;
  }
  .qp-mb-history-status{
    width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#9ca3af;
  }
  .qp-mb-history-status.realise{background:#16a34a}
  .qp-mb-history-status.programme{background:#2563eb}
  .qp-mb-history-status.a_programmer{background:#f59e0b}
  .qp-mb-history-info{flex:1;min-width:0}
  .qp-mb-history-title{font-size:13px;font-weight:600;color:#1a1a2e;margin:0 0 2px}
  .qp-mb-history-meta{font-size:11.5px;color:#6b7280}
  .qp-mb-history-date{font-size:11.5px;color:#6b7280;font-weight:600;text-align:right;flex-shrink:0}

  /* Admin Formation panel — wrap auditor styles in admin context */
  #tab-formation .aud-fm-detail{display:none}
  #tab-formation .aud-fm-detail.active{display:block}

  /* ═══════════════════════════════════════════════════════════
     CLIENT MANAGER MODAL — Refonte DA Confiance
     ═══════════════════════════════════════════════════════════ */
  #clientManagerModal{
    background:rgba(13,45,94,.55) !important;
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    padding:24px;animation:cmxFadeIn .22s cubic-bezier(.2,.9,.25,1.05);
  }

  /* ═════════════════════════════════════════════════════════
     CLIENT MANAGER — Mode "embedded" intégré dans le dossier
     ═════════════════════════════════════════════════════════ */
  #clientManagerModal.cm-embedded{
    position:static !important; inset:auto !important;
    background:transparent !important;
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    padding:0 !important; animation:none !important;
    z-index:auto !important; display:block !important;
  }
  #clientManagerModal.cm-embedded > div:first-child{
    background:transparent !important;
    max-width:none !important; width:100% !important;
    height:auto !important; max-height:none !important;
    border-radius:0 !important; box-shadow:none !important;
    animation:none !important; overflow:visible !important;
    display:block !important;
  }
  /* Hide the navy hero — replaced by our own clean section header */
  #clientManagerModal.cm-embedded > div:first-child > div:first-child{
    display:none !important;
  }
  #clientManagerModal.cm-embedded #clientManagerBody{
    overflow:visible !important; padding:0 !important;
    display:block !important;
  }
  /* Onglets : barre claire, intégrée, pas de fond gris */
  #clientManagerModal.cm-embedded #clientManagerBody > #cm-content > div:first-child{
    background:#fff !important;
    border:1px solid rgba(13,45,94,.1) !important;
    border-radius:12px !important;
    padding:5px !important;
    margin:0 0 18px 0 !important;
    gap:3px !important;
    display:flex !important; flex-wrap:wrap;
    overflow:visible !important;
    box-shadow:0 2px 6px rgba(13,45,94,.04);
  }
  #clientManagerModal.cm-embedded .cm-tab{
    flex:1 1 auto !important;
    padding:9px 14px !important;
    border-radius:9px !important;
    font-size:12.5px !important;
    font-weight:600 !important;
    color:#6b7280 !important;
    background:transparent !important;
    border:none !important;
    text-align:center;
    min-width:0;
    white-space:nowrap;
    transition:all .14s cubic-bezier(.2,.9,.25,1.05) !important;
  }
  #clientManagerModal.cm-embedded .cm-tab:hover{
    background:rgba(13,45,94,.05) !important; color:#0d2d5e !important;
  }
  #clientManagerModal.cm-embedded .cm-tab.active{
    background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 100%) !important;
    color:#fff !important;
    box-shadow:0 3px 10px rgba(13,45,94,.28);
  }
  #clientManagerModal.cm-embedded .cm-tab.active::after{
    display:none !important; content:none !important;
  }
  #clientManagerModal.cm-embedded #cm-content{
    overflow:visible !important; display:block !important; height:auto !important;
  }
  #clientManagerModal.cm-embedded .cm-panel{
    padding:0 !important; overflow:visible !important;
    animation:none !important;
  }
  /* Section header above the embedded CM */
  .cm-inline-section-head{
    margin-top:8px; padding-top:24px;
    border-top:1px solid rgba(13,45,94,.1);
    margin-bottom:18px;
  }
  .cm-inline-section-head h3{
    font-family:'Sora','Inter',sans-serif; font-size:16px; font-weight:700;
    color:#0d2d5e; margin:0 0 4px;
    display:flex; align-items:center; gap:9px; letter-spacing:-.2px;
  }
  .cm-inline-section-head h3 svg{
    width:18px; height:18px;
    color:#F97316; stroke:currentColor; stroke-width:2; fill:none;
  }
  .cm-inline-section-head .sub{
    font-size:12.5px; color:#6b7280; margin:0; line-height:1.5;
  }
  @keyframes cmxFadeIn{from{opacity:0}to{opacity:1}}
  #clientManagerModal > div:first-child{
    position:relative;background:#fff !important;
    width:100% !important;max-width:920px !important;
    height:92vh !important;max-height:92vh !important;
    border-radius:22px !important;overflow:hidden !important;
    box-shadow:0 30px 80px rgba(0,0,0,.32),0 8px 24px rgba(13,45,94,.18) !important;
    display:flex;flex-direction:column;min-height:0;
    animation:cmxSlide .28s cubic-bezier(.2,.9,.25,1.05);
  }
  @keyframes cmxSlide{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}

  /* Hero header */
  #clientManagerModal > div:first-child > div:first-child{
    position:relative !important;padding:24px 28px 22px !important;
    border-bottom:none !important;
    background:linear-gradient(135deg,#0d2d5e 0%,#1c4a8e 55%,#3B6FB5 100%) !important;
    color:#fff !important;
    overflow:hidden;
    flex-shrink:0;
  }
  #clientManagerModal > div:first-child > div:first-child::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 85% 30%,rgba(249,115,22,.4),transparent 55%),
               radial-gradient(circle at 15% 110%,rgba(255,255,255,.18),transparent 50%);
    pointer-events:none;
  }
  #clientManagerModal > div:first-child > div:first-child > div:first-child{position:relative;z-index:1;flex:1;min-width:0}
  #clientManagerModal > div:first-child > div:first-child h3{
    font-family:'Sora','Inter',sans-serif !important;
    font-size:21px !important;font-weight:700 !important;
    color:#fff !important;letter-spacing:-.4px !important;
    margin:0 0 6px !important;
    display:flex;align-items:center;gap:10px;
  }
  #clientManagerSubtitle{
    color:rgba(255,255,255,.82) !important;font-size:13.5px !important;
    font-weight:500 !important;margin:0 !important;
  }
  #clientManagerModal > div:first-child > div:first-child > button{
    position:relative;z-index:2;
    width:36px !important;height:36px !important;border-radius:10px !important;
    background:rgba(255,255,255,.16) !important;color:#fff !important;
    font-size:0 !important;line-height:0 !important;
    display:flex !important;align-items:center;justify-content:center;
    transition:background .14s,transform .14s;
  }
  #clientManagerModal > div:first-child > div:first-child > button::before{
    content:"";display:block;width:14px;height:14px;
    background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>") no-repeat center/contain;
  }
  #clientManagerModal > div:first-child > div:first-child > button:hover{background:rgba(255,255,255,.28) !important;transform:rotate(90deg)}

  /* Body wrapper */
  #clientManagerBody{
    padding:0 !important;flex:1 1 0;overflow:hidden;
    display:flex;flex-direction:column;min-height:0;
  }

  /* Tab strip */
  #clientManagerBody > #cm-content > div:first-child{
    background:#fafafa !important;border-radius:0 !important;padding:0 22px !important;
    margin-bottom:0 !important;gap:0 !important;
    border-bottom:1px solid #e5e7eb;flex-shrink:0;
    overflow-x:auto;
    scrollbar-width:none;
  }
  #clientManagerBody > #cm-content > div:first-child::-webkit-scrollbar{display:none}
  .cm-tab{
    flex:0 0 auto !important;
    padding:14px 18px !important;border:none !important;border-radius:0 !important;
    background:transparent !important;color:#6b7280 !important;
    font-family:'Inter',sans-serif !important;font-size:13px !important;font-weight:600 !important;
    cursor:pointer;position:relative;
    transition:color .14s !important;
    white-space:nowrap;
  }
  .cm-tab:hover{color:#1a1a2e !important;background:transparent !important}
  .cm-tab.active{color:#0d2d5e !important;background:transparent !important}
  .cm-tab.active::after{
    content:"";position:absolute;bottom:-1px;left:14px;right:14px;height:2px;
    background:linear-gradient(90deg,#F97316,#FB923C);border-radius:2px 2px 0 0;
  }

  #cm-content{flex:1 1 0;overflow:hidden;display:flex;flex-direction:column;min-height:0}
  .cm-panel{
    padding:24px 28px !important;overflow-y:auto;
    flex:1 1 0;min-height:0;
    -webkit-overflow-scrolling:touch;
    animation:cmxPaneIn .25s cubic-bezier(.2,.9,.25,1.05);
  }
  .cm-panel::-webkit-scrollbar{width:6px}
  .cm-panel::-webkit-scrollbar-thumb{background:rgba(13,45,94,.18);border-radius:3px}
  @keyframes cmxPaneIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  /* Cards (sections within a tab) */
  .cmx-card{
    background:#fff;border:1px solid rgba(13,45,94,.08);
    border-radius:14px;padding:18px 20px;margin-bottom:14px;
    box-shadow:0 2px 8px rgba(13,45,94,.04);
    transition:box-shadow .18s,border-color .18s;
  }
  .cmx-card:hover{box-shadow:0 6px 18px rgba(13,45,94,.07);border-color:rgba(13,45,94,.12)}
  .cmx-card.tinted-credentials{
    background:linear-gradient(135deg,rgba(106,143,90,.08),rgba(106,143,90,.02));
    border-color:rgba(106,143,90,.22);
  }
  .cmx-card.tinted-info{
    background:linear-gradient(135deg,rgba(28,74,142,.06),rgba(28,74,142,.02));
    border-color:rgba(28,74,142,.18);
  }
  .cmx-card.tinted-amber{
    background:linear-gradient(135deg,rgba(245,158,11,.07),rgba(245,158,11,.02));
    border-color:rgba(245,158,11,.28);
  }
  .cmx-card.tinted-renew{
    background:linear-gradient(135deg,rgba(220,38,38,.06),rgba(220,38,38,.02));
    border-color:rgba(220,38,38,.22);
  }
  .cmx-card.tinted-cyan{
    background:linear-gradient(135deg,rgba(6,182,212,.06),rgba(6,182,212,.02));
    border-color:rgba(6,182,212,.22);
  }
  .cmx-card-head{
    display:flex;align-items:center;gap:12px;margin-bottom:14px;
  }
  .cmx-card-ic{
    width:36px;height:36px;border-radius:11px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;color:#fff;
    background:linear-gradient(135deg,#0d2d5e,#3B6FB5);
    box-shadow:0 4px 10px rgba(13,45,94,.16);
  }
  .cmx-card-ic svg{width:18px;height:18px}
  .cmx-card.tinted-credentials .cmx-card-ic{background:linear-gradient(135deg,#4F7043,#6A8F5A);box-shadow:0 4px 10px rgba(106,143,90,.3)}
  .cmx-card.tinted-amber       .cmx-card-ic{background:linear-gradient(135deg,#C9943E,#E0B864);box-shadow:0 4px 10px rgba(201,148,62,.3)}
  .cmx-card.tinted-renew       .cmx-card-ic{background:linear-gradient(135deg,#DC2626,#F87171);box-shadow:0 4px 10px rgba(220,38,38,.3)}
  .cmx-card.tinted-cyan        .cmx-card-ic{background:linear-gradient(135deg,#0891b2,#22d3ee);box-shadow:0 4px 10px rgba(8,145,178,.3)}
  .cmx-card-title{
    font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;
    color:#1a1a2e;letter-spacing:-.1px;margin:0 0 2px;
  }
  .cmx-card-sub{font-size:12px;color:#6b7280;margin:0;line-height:1.5}

  /* Form grid + fields */
  .cmx-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
  .cmx-grid-2.full-on-mobile{}
  @media (max-width:560px){.cmx-grid-2{grid-template-columns:1fr}}
  .cmx-field{display:flex;flex-direction:column;gap:6px}
  .cmx-field.full{grid-column:1/-1}
  .cmx-field > .lbl{
    font-family:'Inter',sans-serif;font-size:10px;font-weight:800;
    letter-spacing:1.4px;text-transform:uppercase;color:#6b7280;
  }
  .cmx-input, .cmx-select{
    width:100%;padding:11px 13px;border:1px solid rgba(13,45,94,.14);
    border-radius:10px;font-size:13px;font-family:inherit;color:#1a1a2e;
    background:#fff;outline:none;box-sizing:border-box;
    transition:border-color .14s,box-shadow .14s,background .14s;
  }
  .cmx-input:focus, .cmx-select:focus{
    border-color:#F97316;box-shadow:0 0 0 3px rgba(249,115,22,.14);
  }
  .cmx-input:disabled{background:#f9fafb;color:#6b7280}
  .cmx-readout{
    padding:11px 13px;background:#fff;border:1px solid rgba(13,45,94,.14);
    border-radius:10px;font-size:13.5px;color:#1a1a2e;font-weight:600;
    user-select:all;word-break:break-word;
  }
  .cmx-readout.mono{font-family:'JetBrains Mono','SF Mono',Menlo,monospace;letter-spacing:.5px}

  /* Buttons */
  .cmx-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:9px 16px;border-radius:10px;font-size:12.5px;font-weight:700;
    font-family:'Inter',sans-serif;letter-spacing:.1px;border:1px solid transparent;
    cursor:pointer;transition:all .14s;text-decoration:none;
  }
  .cmx-btn svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.4;fill:none}
  .cmx-btn.primary{
    background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;
    box-shadow:0 4px 12px rgba(249,115,22,.28);
  }
  .cmx-btn.primary:hover{box-shadow:0 8px 20px rgba(249,115,22,.4);transform:translateY(-1px)}
  .cmx-btn.navy{
    background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;
    box-shadow:0 4px 12px rgba(13,45,94,.22);
  }
  .cmx-btn.navy:hover{box-shadow:0 8px 18px rgba(13,45,94,.34);transform:translateY(-1px)}
  .cmx-btn.ghost{
    background:rgba(13,45,94,.05);color:#0d2d5e;border-color:rgba(13,45,94,.14);
  }
  .cmx-btn.ghost:hover{background:rgba(13,45,94,.1);border-color:rgba(13,45,94,.22)}
  .cmx-btn.warn{
    background:rgba(245,158,11,.12);color:#92400e;border-color:rgba(245,158,11,.32);
  }
  .cmx-btn.warn:hover{background:rgba(245,158,11,.22);border-color:rgba(245,158,11,.45)}
  .cmx-btn.renew{
    background:rgba(220,38,38,.1);color:#991b1b;border-color:rgba(220,38,38,.32);
  }
  .cmx-btn.renew:hover{background:rgba(220,38,38,.18);border-color:rgba(220,38,38,.45)}
  .cmx-btn.copy{
    background:linear-gradient(135deg,#1c4a8e,#3B6FB5);color:#fff;
    box-shadow:0 3px 10px rgba(28,74,142,.24);padding:9px 14px;
  }
  .cmx-btn.copy:hover{box-shadow:0 6px 14px rgba(28,74,142,.34);transform:translateY(-1px)}
  .cmx-btn.large{padding:11px 22px;font-size:13.5px}

  .cmx-actions-row{
    display:flex;justify-content:flex-end;gap:8px;margin-top:18px;
    padding-top:14px;border-top:1px solid #e5e7eb;
  }

  /* Custom checkbox */
  .cmx-check{
    display:flex;align-items:center;gap:10px;padding:11px 14px;
    background:#fff;border:1px solid rgba(13,45,94,.12);border-radius:10px;
    font-size:13px;color:#1a1a2e;cursor:pointer;
    transition:border-color .14s,background .14s;font-weight:500;
  }
  .cmx-check:hover{border-color:rgba(13,45,94,.22);background:#fafafa}
  .cmx-check input[type="checkbox"]{
    width:17px;height:17px;flex-shrink:0;cursor:pointer;
    accent-color:#F97316;
  }
  .cmx-check strong{color:#0d2d5e;margin-right:4px}

  /* Categories grid */
  .cmx-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  @media (max-width:560px){.cmx-cats{grid-template-columns:1fr}}

  /* Renew accordion section */
  .cmx-renew-section{
    margin-top:14px;padding-top:14px;
    border-top:1px dashed rgba(220,38,38,.22);
  }
  .cmx-renew-fields{
    margin-top:14px;padding:16px;background:#fff;
    border:1px solid rgba(220,38,38,.22);border-radius:11px;
    animation:cmxRenewIn .28s cubic-bezier(.2,.9,.25,1.05);
  }
  @keyframes cmxRenewIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .cmx-renew-title{
    font-family:'Sora','Inter',sans-serif;font-size:11px;font-weight:800;
    letter-spacing:1.4px;text-transform:uppercase;color:#991b1b;margin-bottom:10px;
  }
  .cmx-renew-note{
    font-size:11px;color:#7f1d1d;margin:10px 0 0;line-height:1.55;
    background:rgba(220,38,38,.05);padding:9px 11px;border-radius:7px;
  }

  /* Drop zone */
  .cmx-drop{
    border:2px dashed rgba(13,45,94,.22);border-radius:12px;
    padding:28px 18px;text-align:center;cursor:pointer;
    background:rgba(13,45,94,.02);transition:all .18s;
  }
  .cmx-drop:hover{border-color:rgba(249,115,22,.5);background:rgba(249,115,22,.04)}
  .cmx-drop.drag-over{border-color:#F97316;background:rgba(249,115,22,.08)}
  .cmx-drop svg{width:40px;height:40px;stroke:rgba(13,45,94,.5);stroke-width:1.5;fill:none;margin-bottom:8px}
  .cmx-drop-title{font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:#0d2d5e}
  .cmx-drop-sub{font-size:12px;color:#6b7280;margin-top:4px}

  /* Mode selector */
  .cmx-mode-selector{
    display:flex;gap:0;background:#f3f4f6;border-radius:10px;padding:3px;
    max-width:380px;margin:0 auto 14px;
  }
  .cmx-mode-btn{
    flex:1;padding:8px 14px;border:none;border-radius:7px;font-size:12px;font-weight:600;
    cursor:pointer;background:transparent;color:#6b7280;
    transition:all .14s;font-family:inherit;
  }
  .cmx-mode-btn.active{background:#fff;color:#0d2d5e;box-shadow:0 2px 6px rgba(13,45,94,.08)}

  /* Messagerie */
  .cmx-msg-list{
    background:#fafafa;border:1px solid rgba(13,45,94,.08);border-radius:14px;
    padding:14px;max-height:360px;min-height:200px;overflow-y:auto;
    display:flex;flex-direction:column;gap:8px;
  }
  .cmx-msg-input-row{
    display:flex;gap:8px;margin-top:14px;
  }
  .cmx-msg-input-row input{
    flex:1;padding:11px 14px;border:1px solid rgba(13,45,94,.14);
    border-radius:11px;font-size:13px;outline:none;font-family:inherit;
    transition:border-color .14s,box-shadow .14s;
  }
  .cmx-msg-input-row input:focus{border-color:#F97316;box-shadow:0 0 0 3px rgba(249,115,22,.14)}

  /* Empty section helper text */
  .cmx-help{
    font-size:12.5px;color:#6b7280;line-height:1.55;margin:10px 0 0;
  }

  /* Inline action button group */
  .cmx-inline-actions{
    display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap;
  }
  .cmx-inline-actions .cmx-help{margin:0;flex:1;min-width:200px}
  /* /BRIDGE v2 */
  
/* ══ BOÎTE MAIL — écran reconstruit en natif (MAKE 2/3b, 27/07/2026) ══
   L'onglet avait disparu lors d'une refonte : le JS et le volet de lecture
   étaient restés, mais plus aucun élément d'interface ne les déclenchait.
   Les classes .mail-item / .mail-folder / .mail-from… existaient toujours dans
   cette feuille de style : on ne recrée QUE la coque de l'écran. */
.mailx-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start;}
.mailx-side{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;max-height:70vh;overflow-y:auto;}
.mailx-main{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;min-width:0;}
.mailx-bar{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.mailx-bar h2{font-size:15px;font-weight:700;margin:0;color:var(--dark);flex:1;min-width:0;}
.mailx-search{flex:0 1 240px;min-width:0;padding:7px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px;outline:none;}
.mailx-stats{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px;}
.mailx-stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 16px;min-width:110px;}
.mailx-stat b{display:block;font-size:19px;color:var(--dark);line-height:1.2;}
.mailx-stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.mailx-list{max-height:70vh;overflow-y:auto;}
/* iPad portrait : la colonne des dossiers passe au-dessus, en bandeau déroulant */
@media (max-width:1024px){
  .mailx-wrap{grid-template-columns:minmax(0,1fr);}
  .mailx-side{max-height:190px;}
}
/* iPhone : tout en pleine largeur, la recherche prend la ligne */
@media (max-width:560px){
  .mailx-bar{padding:10px 12px;}
  .mailx-bar h2{flex:1 0 100%;}
  .mailx-search{flex:1 0 100%;}
  .mailx-stat{flex:1 1 calc(50% - 5px);min-width:0;}
  .mailx-list,.mailx-side{max-height:none;}
}

    /* Dossier client (détail mission auditeur) en PLEINE PAGE — 2026-07-09 */
    .aud-mission-modal{ padding:0 !important; align-items:stretch !important; justify-content:stretch !important; background:#F5F7FB !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
    .aud-mission-modal .aud-mission-box{ width:100% !important; max-width:100% !important; height:100vh !important; max-height:100vh !important; border-radius:0 !important; box-shadow:none !important; animation:none !important; }
    .aud-mission-modal .aud-mission-modal-hero{ border-radius:0 !important; }
    /* centre le contenu sur les très grands écrans, laisse respirer sinon */
    .aud-mission-modal .aud-mission-modal-hero > *,
    .aud-mission-modal .aud-mm-body,
    .aud-mission-modal .aud-mission-scroll{ max-width:1100px; margin-left:auto; margin-right:auto; width:100%; }
  
      /* ═══ Bandeau de synchronisation ═══ */
      .dash-sync{ display:flex; align-items:center; gap:14px; margin-top:18px; padding:15px 18px; background:#fff; border:1px solid #eceff5; border-radius:14px; box-shadow:0 1px 2px rgba(13,45,94,.04), 0 6px 20px rgba(13,45,94,.05); }
      .dash-sync-spin{ width:24px; height:24px; border:3px solid #eef1f6; border-top-color:#F97316; border-radius:50%; animation:spin .8s linear infinite; flex:none; }
      .dash-sync-t{ font-size:14px; font-weight:700; color:#0d2d5e; }
      .dash-sync-s{ font-size:12px; color:#6b7280; margin-top:2px; }
      /* ═══ Pipeline compact + priorités (accueil) ═══ */
      .dash-pipeline{ display:flex; align-items:stretch; background:#fff; border:1px solid #eef2f8; border-radius:14px; overflow:hidden; }
      .dash-pl-seg{ flex:1; padding:14px 8px; text-align:center; cursor:pointer; transition:background .15s; background:none; border:none; font:inherit; }
      .dash-pl-seg:hover{ background:#f6f9ff; }
      .dash-pl-seg .n{ font-size:24px; font-weight:800; color:#0d2d5e; font-family:Sora,Inter,sans-serif; line-height:1; }
      .dash-pl-seg .l{ font-size:12px; color:#6b7280; margin-top:6px; display:flex; align-items:center; justify-content:center; gap:6px; }
      .dash-pl-seg .dot{ width:8px; height:8px; border-radius:50%; flex:none; display:inline-block; }
      .dash-pl-sep{ display:flex; align-items:center; color:#cbd5e1; font-size:20px; padding:0 2px; }
      .dash-prio-row{ display:flex; align-items:center; gap:11px; padding:10px 4px; border-bottom:1px solid #f1f5f9; cursor:pointer; transition:background .15s; }
      .dash-prio-row:last-child{ border-bottom:none; }
      .dash-prio-row:hover{ background:#f6f9ff; }
      .dash-prio-dot{ width:9px; height:9px; border-radius:50%; flex:none; }
      .dash-prio-main{ flex:1; min-width:0; }
      .dash-prio-title{ font-size:14px; font-weight:600; color:#0d2d5e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
      .dash-prio-sub{ font-size:12px; color:#6b7280; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
      .dash-prio-due{ font-size:12px; font-weight:600; color:#475569; background:#f1f5f9; padding:4px 10px; border-radius:8px; white-space:nowrap; flex:none; }
      .dash-prio-due.urgent{ color:#dc2626; background:#fef2f2; }
      .dash-prio-empty{ font-size:13px; color:#9ca3af; padding:16px 4px; text-align:center; }
      @media(max-width:720px){ .dash-pl-seg .n{ font-size:20px; } .dash-pl-seg .l{ font-size:11px; } }
    
    /* ═══════════ DECK NAVY ═══════════ */
    #tab-dashboard{padding:0}
    .nxd-deck-outer{background:linear-gradient(148deg,#081d3f 0%,#0d2d5e 46%,#123a73 100%);position:relative;overflow:hidden}
    .nxd-deck-outer::before{content:none}
    .nxd-deck-outer::after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;left:-190px;bottom:-300px;background:radial-gradient(circle,rgba(59,130,246,.16),transparent 68%);pointer-events:none}
    .nxd-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);pointer-events:none}
    html.nx-lite .nxd-deck-outer::before,html.nx-lite .nxd-deck-outer::after,html.nx-lite .nxd-grid-lines{display:none}
    .nxd-deck{position:relative;z-index:1;max-width:none;margin:0 auto;padding:26px clamp(26px,3vw,64px) 92px}
    .nxd-hello{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}
    .nxd-hello h1{color:#fff;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.08;margin:0;font-family:Sora,Inter,sans-serif}
    .nxd-hello .wave{display:inline-block;transform-origin:70% 70%;animation:nxdwave 2.4s ease .6s 1}
    @keyframes nxdwave{0%,100%{transform:rotate(0)}12%{transform:rotate(16deg)}24%{transform:rotate(-7deg)}36%{transform:rotate(12deg)}48%{transform:rotate(-3deg)}60%{transform:rotate(0)}}
    .nxd-hello .sub{margin:7px 0 0;color:#a9bcdf;font-size:13.5px;font-weight:500}
    .nxd-date{color:#8fa6cf;font-size:11.5px;margin-top:5px}
    .nxd-date b{color:#e6eefb;font-weight:700;font-size:13px;text-transform:capitalize;display:block}
    .nxd-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
    .nxd-btn{border-radius:12px;padding:11px 17px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;transition:.16s;cursor:pointer;font-family:inherit}
    .nxd-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
    .nxd-btn.glass{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.22);color:#e8effc}
    .nxd-btn.glass:hover{background:rgba(255,255,255,.17)}
    .nxd-btn.coral{background:linear-gradient(135deg,#F97316,#EA580C);color:#fff;box-shadow:none}
    .nxd-btn.coral:hover{filter:brightness(1.06)}
    .nxd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:26px}
    .nxd-dk{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:13px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .18s,background .18s;cursor:pointer}
    html.nx-lite .nxd-dk{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(255,255,255,.10)}
    .nxd-dk:hover{transform:translateY(-2px);background:rgba(255,255,255,.11)}
    .nxd-dk .ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none}
    .nxd-dk .ic svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}
    .nxd-dk .ic.navy{background:rgba(107,155,216,.18);color:#9cc3f0}
    .nxd-dk .ic.amber{background:rgba(249,115,22,.18);color:#ffb37a}
    .nxd-dk .ic.sky{background:rgba(2,132,199,.22);color:#7dd0ff}
    .nxd-dk .ic.rose{background:rgba(244,63,94,.16);color:#fda4af}
    .nxd-dk .lb{font-size:11.5px;color:#a9bcdf;font-weight:600}
    .nxd-dk .vl{font-family:Sora,Inter,sans-serif;font-size:23px;font-weight:800;color:#fff;line-height:1.1;margin-top:1px;font-variant-numeric:tabular-nums}
    .nxd-dk .sb{font-size:10.5px;color:#8fa6cf;margin-top:1px}
    .nxd-suivi{margin-top:28px}
    .nxd-sh{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
    .nxd-sh .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#ffb37a}
    .nxd-sh h2{color:#fff;font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0;font-family:Sora,Inter,sans-serif}
    .nxd-sh h2 span{color:#8fa6cf;font-weight:600}
    .nxd-deck .dash-chart-toggle{margin-left:auto;display:flex;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:11px;padding:3px}
    .nxd-deck .dash-chart-toggle .dct-btn{border:none;background:none;color:#a9bcdf;font-weight:700;font-size:12px;padding:7px 15px;border-radius:8px;cursor:pointer;font-family:inherit}
    .nxd-deck .dash-chart-toggle .dct-btn.active{background:#fff;color:#0d2d5e;box-shadow:0 4px 12px rgba(0,0,0,.25)}
    .nxd-dsgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}
    .nxd-dscard{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:17px 19px 13px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
    html.nx-lite .nxd-dscard{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(255,255,255,.09)}
    .nxd-dshead{display:flex;align-items:flex-start;gap:12px}
    .nxd-dsic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}
    .nxd-dsic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9}
    .nxd-dsic.blue{background:rgba(107,155,216,.18);color:#9cc3f0}
    .nxd-dsic.coral{background:rgba(249,115,22,.2);color:#ffb37a}
    .nxd-dsmeta{flex:1;min-width:0}
    .nxd-dstitle{color:#fff;font-weight:700;font-size:14.5px}
    .nxd-dssub{color:#8fa6cf;font-size:11.5px;margin-top:1px}
    .nxd-dstotal{text-align:right}
    .nxd-dstotal .t{font-family:Sora,Inter,sans-serif;color:#fff;font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
    .nxd-dstotal .s{font-size:10.5px;color:#8fa6cf;font-weight:600;margin-top:1px}
    .nxd-dscard svg.nxd-chart{width:100%;height:auto;display:block;margin-top:8px}
    /* ═══════════ CORPS ═══════════ */
    .nxd-wrap{max-width:none;margin:-56px auto 0;padding:0 clamp(26px,3vw,64px) 30px;position:relative;z-index:2}
    .nxd-wrap .dash-sync{margin-top:0;margin-bottom:14px}
    .nxd-zone{margin-top:34px}
    .nxd-zh{display:flex;align-items:center;gap:13px;margin-bottom:15px}
    .nxd-zh .no{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;color:#EA580C}
    .nxd-zh h3{font-size:16px;font-weight:800;letter-spacing:-.01em;color:#0d2d5e;margin:0;font-family:Sora,Inter,sans-serif}
    .nxd-zh .rule{flex:1;height:1px;background:linear-gradient(90deg,#e3e9f4,transparent)}
    .nxd-zh .meta{font-size:11.5px;color:#94A3B8}
    .nxd-panel{background:#fff;border:1px solid #e3e9f4;border-radius:18px;box-shadow:0 1px 2px rgba(13,45,94,.04),0 8px 26px rgba(13,45,94,.05);padding:18px 20px;min-width:0}
    .nxd-ph{display:flex;align-items:center;gap:10px;margin-bottom:13px}
    .nxd-ph h4{font-size:14px;font-weight:700;color:#0d2d5e;margin:0;font-family:Sora,Inter,sans-serif}
    .nxd-ph .link{margin-left:auto;font-size:12px;font-weight:700;color:#1a4fa0;cursor:pointer;white-space:nowrap}
    .nxd-ph .link:hover{color:#0d2d5e}
    .nxd-ph .em{font-size:14px}
    .nxd-gday{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}
    .nxd-gqual{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px}
    .nxd-gfin{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}
    .nxd-gag{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}
    .nxd-gflux{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px}
    .nxd-geq{display:grid;grid-template-columns:1fr 1.6fr;gap:14px;align-items:start}
    /* récépissé collecteur (reprend la carte qpc existante) */
    .nxd-wrap #qpc-card{margin-top:0;border-radius:16px;box-shadow:0 1px 2px rgba(13,45,94,.05),0 12px 32px rgba(13,45,94,.07)}
    .nxd-wrap #qpc-card::before{background:linear-gradient(180deg,#F97316,#fb923c);width:4px;top:0;bottom:0;left:0;border-radius:0}
    .nxd-wrap #qpc-card.qpc-done::before{background:#16A34A}
    /* alertes zone 01 */
    .nxd-alerts>div{margin-top:0 !important}
    .nxd-alerts #dash-regl-alert>*,.nxd-alerts #dash-cycle-alert>*{box-shadow:none !important}
    .nxd-alerts #rec-dash-alert{margin-top:10px !important;border-radius:12px}
    .nxd-alerts #dash-overdue-panel{margin-top:10px !important;border-radius:12px;border-left:4px solid #E11D48;padding:12px 14px}
    .nxd-alerts #dash-overdue-panel .panel-head{margin-bottom:6px}
    .nxd-alerts .nxd-al-empty{font-size:12.5px;color:#94A3B8;padding:8px 2px}
    /* priorités du brief */
    #dash-brief .bf-item{padding:10px 0;border-bottom:1px solid #e9eef7}
    #dash-brief .bf-item:last-child{border-bottom:none}
    /* audits — cartes d'embarquement */
    #dashboard-audits{display:flex;flex-direction:column;gap:9px}
    #dashboard-audits .audit-item{display:flex;align-items:center;gap:0;border:1px solid #e3e9f4;border-radius:13px;overflow:hidden;background:#fbfcff;cursor:pointer;transition:transform .15s,box-shadow .15s;padding:0}
    #dashboard-audits .audit-item:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(13,45,94,.08)}
    #dashboard-audits .audit-time{flex:none;width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eef3fb;border-right:1px dashed #c9d6ea;padding:9px 0;margin:0}
    #dashboard-audits .audit-time .h{font-family:Sora,Inter,sans-serif;font-size:18px;font-weight:800;color:#0d2d5e;line-height:1}
    #dashboard-audits .audit-time .d{font-family:'JetBrains Mono',monospace;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94A3B8;margin-top:3px}
    #dashboard-audits .audit-body{flex:1;min-width:0;padding:9px 12px}
    #dashboard-audits .audit-body .t{font-size:12.5px;font-weight:700;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #dashboard-audits .audit-body .s{font-size:11px;color:#475569;display:flex;align-items:center;gap:6px}
    #dashboard-audits .audit-body .s .dot{width:3px;height:3px;border-radius:50%;background:#c3cede;display:inline-block}
    /* qualité — hero + registre */
    .nxd-sat{display:flex;flex-direction:column}
    .nxd-sat .ringbox{position:relative;width:150px;height:150px;margin:6px auto 0}
    .nxd-sat .ringbox svg{width:150px;height:150px;transform:rotate(-90deg)}
    .nxd-sat .ringbox .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
    .nxd-sat .ringbox .val b{font-family:Sora,Inter,sans-serif;font-weight:800;color:#0d2d5e;letter-spacing:-.03em;line-height:1}
    .nxd-sat .ringbox .val b, .nxd-sat .ringbox .val #qk-sat-val{font-size:34px !important}
    .nxd-sat .ringbox .val span{font-size:11px;color:#94A3B8;font-weight:600;margin-top:3px}
    .nxd-sat .qk-dist{display:flex;height:8px;border-radius:6px;overflow:hidden;background:#edf1f8;margin-top:18px}
    .nxd-sat .qk-dist span{display:block;height:100%}
    .nxd-sat .leg{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:#7d8eab;margin-top:8px}
    .nxd-sat .leg i{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:4px;vertical-align:-1px}
    .nxd-sat .leg b{color:#0d2d5e}
    .nxd-sat .foot{font-size:11px;color:#94A3B8;margin-top:12px;text-align:center}
    .nxd-reg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 26px}
    .nxd-rr{display:flex;align-items:center;gap:12px;padding:11.5px 2px;border-bottom:1px solid #e9eef7;min-width:0;transition:background .14s}
    .nxd-rr:hover{background:#fbfcff}
    .nxd-rr.click{cursor:pointer}
    .nxd-rr .lb{flex:1;min-width:0}
    .nxd-rr .lb b{display:block;font-size:12.5px;font-weight:700;color:#0F172A}
    .nxd-rr .lb span{display:block;font-size:10.5px;color:#7d8eab;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .nxd-rr .gauge{flex:none;width:86px;height:5px;border-radius:5px;background:#edf1f8;overflow:hidden}
    .nxd-rr .gauge i{display:block;height:100%;border-radius:5px;width:0;transition:width .9s cubic-bezier(.22,1,.36,1)}
    .nxd-rr .vv{flex:none;font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:700;color:#0d2d5e;min-width:58px;text-align:right;font-variant-numeric:tabular-nums}
    .nxd-rr .vv small{font-size:9.5px;color:#8aa0c4;font-weight:600}
    .nxd-rr .qk-pill{flex:none;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;padding:3px 8px;border-radius:6px;background:#eef2f9;color:#64748b;white-space:nowrap}
    .nxd-rr .qk-pill.ok{background:#e5f6ec;color:#15803D}
    .nxd-rr .qk-pill.warn{background:#fdf1dd;color:#B45309}
    .nxd-rr .qk-pill.bad{background:#fdeaef;color:#BE123C}
    .nxd-sat .qk-pill{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;padding:3px 9px;border-radius:6px;background:#e5f6ec;color:#15803D;margin-left:auto}
    .nxd-rr .go{flex:none;font-size:11px;font-weight:700;color:#C2410C;white-space:nowrap}
    .nxd-hidden{display:none !important}
    /* finances — waterfall */
    .nxd-wf{display:flex;flex-direction:column;gap:13px;margin-top:4px}
    .nxd-wfr{display:grid;grid-template-columns:150px minmax(0,1fr) 100px;gap:12px;align-items:center}
    .nxd-wfr .lb{font-size:12px;font-weight:700;color:#0F172A}
    .nxd-wfr .lb span{display:block;font-size:10px;color:#94A3B8;font-weight:600;margin-top:1px}
    .nxd-track{position:relative;height:26px;border-radius:8px;background:#f2f5fb;overflow:hidden}
    .nxd-bar{position:absolute;top:0;bottom:0;border-radius:8px;width:0;transition:width 1s cubic-bezier(.22,1,.36,1)}
    .nxd-bar.rev{left:0;background:linear-gradient(90deg,#0d2d5e,#1a4fa0)}
    .nxd-bar.cost{background:repeating-linear-gradient(135deg,#F97316 0 7px,#fb923c 7px 14px)}
    .nxd-bar.pro{left:0;background:linear-gradient(90deg,#178A48,#22b45f)}
    .nxd-wfr .vv{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:#0d2d5e;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
    .nxd-wfr .vv.o{color:#C2410C}
    .nxd-wfr .vv.g{color:#178A48}
    .nxd-wfnote{font-size:11px;color:#94A3B8;margin-top:9px}
    .nxd-fintot{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(148deg,#0d2d5e,#123a73);border-radius:14px;color:#fff;padding:18px;position:relative;overflow:hidden}
    .nxd-fintot::before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,rgba(249,115,22,.25),transparent 70%)}
    html.nx-lite .nxd-fintot::before{display:none}
    .nxd-fintot .l{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffb37a;position:relative}
    .nxd-fintot .v{font-family:Sora,Inter,sans-serif;font-size:31px;font-weight:800;letter-spacing:-.02em;margin-top:6px;position:relative;font-variant-numeric:tabular-nums}
    .nxd-fintot .s{font-size:11px;color:#a9bcdf;margin-top:4px;position:relative}
    .nxd-finnotes{display:flex;flex-direction:column;gap:6px;border-top:1px solid #e9eef7;margin-top:13px;padding-top:11px}
    .nxd-finnotes>div{font-size:11px;color:#64748b;display:flex;gap:7px;align-items:baseline}
    .nxd-finnotes b{color:#0d2d5e;font-weight:700;white-space:nowrap}
    /* agenda */
    .nxd-gag .panel-head,.nxd-eventspanel .panel-head{display:none}
    #dash-quality-events{display:flex;flex-direction:column;gap:8px}
    /* veille / avis conservés */
    /* équipe & terrain */
    #dash-fmc-alertes{margin-top:0 !important}
    .nxd-geq .panel-v2{margin-top:0 !important}
    .nxd-wrap .cau-wrap{margin-top:14px !important;border-radius:18px}
    /* santé — panneau */
    .nxd-health .hc-wrap{margin-top:2px}
    /* pied */
    .nxd-foot{margin:26px 0 10px;text-align:center;font-family:'JetBrains Mono',monospace;font-size:10px;color:#94A3B8;letter-spacing:.05em}
    /* discrétion : nouveaux éléments monétaires */
    body.nx-discreet .nxd-wfr .vv,body.nx-discreet .nxd-fintot .v,body.nx-discreet .nxd-finnotes,body.nx-discreet #nxd-wf-bars{filter:blur(7px) !important;user-select:none !important}
    body.nx-discreet #dashboard-activity .act-it .tx span{filter:blur(7px) !important;user-select:none !important}
    /* ═══ Entretiens & compétences (fmc) — style E2 ═══ */
    #dash-fmc-alertes{background:#fff;border:1px solid #e3e9f4;border-radius:18px;box-shadow:0 1px 2px rgba(13,45,94,.04),0 8px 26px rgba(13,45,94,.05);padding:18px 20px;min-width:0}
    #dash-fmc-alertes .panel-head{display:flex;align-items:center;gap:10px;margin-bottom:13px;border:none;padding:0}
    #dash-fmc-alertes .panel-head h3{font-family:Sora,Inter,sans-serif;font-size:14px;font-weight:700;color:#0d2d5e;margin:0}
    #dash-fmc-alertes .dfmc-list{display:flex;flex-direction:column;margin-top:0}
    #dash-fmc-alertes .dfmc-item{display:flex;align-items:center;gap:11px;padding:10px 2px;border:none;border-bottom:1px solid #e9eef7;border-radius:0;background:none;cursor:pointer;transition:background .14s;margin:0}
    #dash-fmc-alertes .dfmc-item:last-child{border-bottom:none}
    #dash-fmc-alertes .dfmc-item:hover{background:#fbfcff;border-color:#e9eef7}
    #dash-fmc-alertes .dfmc-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;margin-top:0;box-shadow:0 0 0 3px rgba(13,45,94,.06)}
    #dash-fmc-alertes .dfmc-tx{flex:1;min-width:0}
    #dash-fmc-alertes .dfmc-tx b{display:block;font-size:12.5px;font-weight:700;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #dash-fmc-alertes .dfmc-tx span{font-size:11px;color:#64748b}
    #dash-fmc-alertes .dfmc-empty{padding:14px 2px;color:#64748b;font-size:12.5px}
    #dash-fmc-alertes .dfmc-more{margin-top:12px;padding:0;text-align:right;color:#1a4fa0;font-weight:700;font-size:12px;cursor:pointer;border-top:none}
    #dash-fmc-alertes .dfmc-more:hover{color:#0d2d5e}
    /* ═══ Veille du jour — lignes E2 ═══ */
    #dash-veille-feed .vf-cat{border:none;border-radius:0;padding:9px 0;background:none;border-bottom:1px solid #e9eef7}
    #dash-veille-feed .vf-cat:last-child{border-bottom:none}
    #dash-veille-feed .vf-cat-head{margin-bottom:7px}
    #dash-veille-feed .vf-chip{font-family:'JetBrains Mono',monospace;font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#eef3fb;color:#1a4fa0;border-radius:6px;padding:3px 7px}
    #dash-veille-feed .vf-cat.certif .vf-chip{background:#fff1e6;color:#c2410c}
    #dash-veille-feed .vf-cat-date{font-family:'JetBrains Mono',monospace;font-size:9.5px}
    #dash-veille-feed .vf-item{font-size:12px;line-height:1.5}
    #dash-veille-feed .vf-item .vf-dot{width:5px;height:5px;margin-top:7px}
    #dash-veille-feed .vf-item b{font-size:12.5px;color:#0F172A}
    #dash-veille-feed .vf-src{margin-top:7px}
    #dash-veille-feed .vf-src a{font-size:11px}
    /* ═══ Activité récente — timeline E2 ═══ */
    #dashboard-activity{display:flex;flex-direction:column}
    #dashboard-activity .act-it{display:flex;gap:13px;position:relative;padding:8px 0;align-items:flex-start}
    #dashboard-activity .act-it .pin{flex:none;width:18px;display:flex;flex-direction:column;align-items:center;align-self:stretch}
    #dashboard-activity .act-it .pin i{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;box-shadow:0 0 0 3px rgba(13,45,94,.06)}
    #dashboard-activity .act-it .pin::after{content:"";flex:1;width:2px;background:#e9eef7;margin-top:3px}
    #dashboard-activity .act-it:last-child .pin::after{display:none}
    #dashboard-activity .act-it .tx{flex:1;min-width:0}
    #dashboard-activity .act-it .tx b{display:block;font-size:12.5px;font-weight:700;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #dashboard-activity .act-it .tx span{font-size:11px;color:#64748b}
    #dashboard-activity .act-it .tg{flex:none;font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:600;color:#475569;background:#f1f5f9;padding:3.5px 8px;border-radius:7px;white-space:nowrap;margin-top:3px}
    /* ═══ Collecteur Qualiopi — récépissé ═══ */
    #qpc-card{display:flex;align-items:center;gap:14px;padding:15px 20px 15px 22px;border-radius:16px;border:1px solid #e3e9f4;background:#fff;box-shadow:0 1px 2px rgba(13,45,94,.05),0 12px 32px rgba(13,45,94,.07);position:relative;overflow:hidden;transition:background .25s,border-color .25s;margin-top:0}
    #qpc-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#F97316,#fb923c);transition:background .25s}
    #qpc-card.qpc-done{background:linear-gradient(135deg,#f1fbf4 0%,#fbfffc 62%);border-color:#cdeed7}
    #qpc-card.qpc-done::before{background:#16A34A}
    #qpc-card.qpc-loading{opacity:.6}
    .qpc-check{flex:0 0 auto;width:32px;height:32px;border-radius:10px;border:2px solid #f3a778;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;padding:0}
    .qpc-check:hover{border-color:#F97316;background:#fff7ed}
    .qpc-check:focus-visible{outline:2px solid #F97316;outline-offset:2px}
    .qpc-check svg{width:17px;height:17px;stroke:#fff;stroke-width:3.4;fill:none;opacity:0;transition:opacity .15s}
    #qpc-card.qpc-done .qpc-check{background:#16A34A;border-color:#16A34A;cursor:default}
    #qpc-card.qpc-done .qpc-check svg{opacity:1}
    .qpc-ico{flex:0 0 auto;font-size:18px;line-height:1}
    .qpc-body{flex:1 1 auto;min-width:0}
    .qpc-title{font-family:Sora,Inter,sans-serif;font-size:14px;font-weight:800;color:#0d2d5e;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .qpc-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:#fff1e6;color:#c2410c;border:1px solid #f6d6bd;white-space:nowrap}
    #qpc-card.qpc-done .qpc-badge{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
    .qpc-sub{font-size:12px;color:#64748b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #qpc-card.qpc-done .qpc-sub{color:#3f7a52}
    .qpc-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}
    .qpc-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#1a4fa0;background:#fff;border:1px solid #dbe4f3;border-radius:9px;padding:7.5px 13px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .15s}
    #qpc-portal{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
    #qpc-portal:hover{background:#123a75;border-color:#123a75;color:#fff}
    .qpc-link:hover{background:#f1f5fb;border-color:#c3d2ea;color:#0d2d5e}
    .qpc-link svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none}
    .qpc-undo{font-size:11.5px;font-weight:600;color:#94a3b8;background:none;border:none;cursor:pointer;padding:4px 6px;white-space:nowrap}
    .qpc-undo:hover{color:#475569;text-decoration:underline}
    .qpc-gear{flex:0 0 auto;background:none;border:none;color:#b6c2d6;cursor:pointer;font-size:14px;padding:4px 5px;line-height:1;border-radius:6px}
    .qpc-gear:hover{color:#64748b;background:#f1f5f9}
    @media(max-width:680px){
      #qpc-card{flex-wrap:wrap;gap:10px}
      .qpc-body{flex:1 1 55%}
      .qpc-sub{white-space:normal}
      .qpc-actions{flex:1 1 100%;justify-content:flex-end}
    }
    /* ═══ responsive ═══ */
    @media(max-width:1180px){
      .nxd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
      /* Satisfaction : carte horizontale compacte (anneau à gauche, détail à droite) */
      .nxd-sat{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 20px;align-items:center}
      .nxd-sat .nxd-ph{grid-column:1/-1;margin-bottom:6px}
      .nxd-sat .ringbox{grid-row:2/6;grid-column:1;width:112px;height:112px;margin:0}
      .nxd-sat .ringbox svg{width:112px;height:112px}
      .nxd-sat .ringbox .val b,.nxd-sat .ringbox .val #qk-sat-val{font-size:26px !important}
      .nxd-sat .ringbox .val span{font-size:10px}
      .nxd-sat .qk-dist{grid-column:2;margin-top:0}
      .nxd-sat .leg{grid-column:2;margin-top:2px;justify-content:flex-start;gap:14px}
      .nxd-sat .foot{grid-column:2;margin-top:2px;text-align:left}
      .nxd-dsgrid{grid-template-columns:1fr}
      .nxd-gday,.nxd-gqual,.nxd-gfin,.nxd-gag,.nxd-gflux,.nxd-geq{grid-template-columns:minmax(0,1fr)}
      .nxd-reg{grid-template-columns:minmax(0,1fr)}
    }
    @media(max-width:768px){
      .nxd-deck{padding:20px 14px 84px}
      .nxd-hello h1{font-size:23px}
      .nxd-actions{margin-left:0}
      .nxd-kpis{gap:10px}
      .nxd-dk .vl{font-size:19px}
      .nxd-wrap{padding:0 14px 24px}
      .nxd-wfr{grid-template-columns:96px minmax(0,1fr) 84px;gap:8px}
      .nxd-wfr .lb span{display:none}
      .nxd-rr .gauge{width:56px}
      .nxd-rr .vv{min-width:50px;font-size:12.5px}
      .nxd-rr .lb span{white-space:normal}
      .nxd-sat{gap:4px 14px}
      .nxd-sat .ringbox{width:96px;height:96px}
      .nxd-sat .ringbox svg{width:96px;height:96px}
      .nxd-sat .ringbox .val b,.nxd-sat .ringbox .val #qk-sat-val{font-size:22px !important}
      .nxd-sat .leg{flex-wrap:wrap;gap:8px}
      .nxd-ph{flex-wrap:wrap}
      .nxd-ph>div[style*="margin-left:auto"]{margin-left:0 !important;width:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}
      .nxd-ph>div[style*="margin-left:auto"] .link{display:none}
      #dash-cal-label{min-width:0 !important}
      #qpc-card{flex-wrap:wrap}
    }
    @media(prefers-reduced-motion:reduce){.nxd-hello .wave{animation:none}}
    
        .cau-wrap{position:relative;overflow:hidden;color:#eaf0fb;background:linear-gradient(140deg,#0d2d5e 0%,#0a2249 52%,#13234d 100%);border:1px solid rgba(255,255,255,.10);}
        .cau-glow{position:absolute;width:520px;height:520px;right:-150px;top:-190px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.26),transparent 70%);filter:blur(8px);pointer-events:none;}
        .cau-wrap .panel-head{border-bottom-color:rgba(255,255,255,.12);position:relative;z-index:1;}
        .cau-wrap .panel-head h3{color:#fff;display:flex;align-items:center;gap:9px;}
        .cau-tag{font-size:10px;font-weight:800;letter-spacing:.04em;background:rgba(249,115,22,.22);color:#ffc89a;padding:3px 9px;border-radius:999px;border:1px solid rgba(249,115,22,.35);}
        .cau-controls{display:flex;align-items:center;gap:12px;position:relative;z-index:1;flex-wrap:wrap;}
        .cau-switch{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:#cdd9f1;cursor:pointer;user-select:none;}
        .cau-switch input{display:none}
        .cau-track{width:38px;height:21px;border-radius:20px;background:rgba(255,255,255,.22);position:relative;transition:.2s;}
        .cau-track::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s}
        .cau-switch input:checked+.cau-track{background:#F97316}
        .cau-switch input:checked+.cau-track::after{transform:translateX(17px)}
        .cau-dateinp{font-family:inherit;border:none;border-radius:8px;padding:7px 9px;font-size:12.5px;background:rgba(255,255,255,.92);color:#1f2a44;}
        .cau-dateinp:disabled{opacity:.45}
        .cau-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:16px 0;position:relative;z-index:1;}
        .cau-kpi{background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:14px 16px;box-shadow:0 8px 30px rgba(0,0,0,.22);transition:transform .18s;}
        .cau-kpi:hover{transform:translateY(-2px)}
        .cau-kpi .row{display:flex;align-items:center;gap:12px}
        .cau-kpi .cic{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}
        .cau-kpi .cic svg{width:20px;height:20px;stroke-width:2;fill:none;stroke:currentColor}
        .cau-kpi .lab{font-size:12px;color:#bdcbe8;font-weight:600}
        .cau-kpi .val{font-size:25px;font-weight:800;color:#fff;line-height:1.05;margin-top:2px}
        .cau-kpi .sub{font-size:11.5px;color:#9fb2d6;margin-top:2px}
        .cau-kpi .bar{height:6px;border-radius:6px;background:rgba(255,255,255,.12);margin-top:10px;overflow:hidden}
        .cau-kpi .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#2f6dbf,#F97316);transition:width .5s}
        .cau-body{display:grid;grid-template-columns:300px 1fr;gap:13px;height:520px;position:relative;z-index:1;}
        .cau-side{background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);border-radius:15px;display:flex;flex-direction:column;overflow:hidden;}
        .cau-side-head{padding:12px;border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:9px;}
        .cau-side-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#bdcbe8;}
        .cau-add{font-family:inherit;font-size:12px;font-weight:600;color:#fff;background:#F97316;border:none;border-radius:8px;padding:6px 10px;cursor:pointer;}
        .cau-add:hover{filter:brightness(1.06)}
        .cau-search{position:relative}
        .cau-search input{width:100%;font-family:inherit;font-size:13px;border:1px solid rgba(255,255,255,.16);border-radius:9px;padding:8px 10px 8px 30px;background:rgba(255,255,255,.10);color:#fff;}
        .cau-search input::placeholder{color:#9fb2d6}
        .cau-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);opacity:.6;stroke:#cdd9f1}
        .cau-list{flex:1;overflow:auto;padding:9px}
        .cau-aud{border:1px solid rgba(255,255,255,.14);border-radius:12px;margin-bottom:8px;overflow:hidden;background:rgba(255,255,255,.05);transition:.15s;}
        .cau-aud:hover{background:rgba(255,255,255,.09)}
        .cau-aud.sel{border-color:#F97316;box-shadow:0 6px 18px rgba(249,115,22,.22)}
        .cau-aud-head{display:flex;align-items:center;gap:10px;padding:10px 11px;cursor:pointer}
        .cau-av{width:36px;height:36px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12.5px}
        .cau-aud-main{flex:1;min-width:0}
        .cau-aud-name{font-weight:600;font-size:13.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .cau-aud-meta{font-size:11px;color:#9fb2d6;margin-top:2px}
        .cau-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;flex:none}
        .cau-badge.ok{background:rgba(52,211,153,.18);color:#5ef0b0}
        .cau-badge.no{background:rgba(255,90,90,.18);color:#ff9b9b}
        .cau-foot{display:flex;align-items:center;gap:7px;padding:0 11px 10px;font-size:11px;color:#9fb2d6}
        .cau-ed{padding:3px 11px 12px;border-top:1px dashed rgba(255,255,255,.14)}
        .cau-ed label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#9fb2d6;margin:12px 0 6px}
        .cau-ed label .sy{font-weight:600;text-transform:none;letter-spacing:0;color:#ffc89a;font-size:10px;margin-left:6px}
        .cau-inp{width:100%;font-family:inherit;font-size:13px;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:7px 9px;background:rgba(255,255,255,.08);color:#fff}
        .cau-blk{border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:8px;background:rgba(255,255,255,.06);margin-bottom:6px}
        .cau-blk.abs{border-left:3px solid #F97316}
        .cau-blk .dts{display:flex;align-items:center;gap:6px;margin-bottom:6px}
        .cau-blk input[type=date]{flex:1;font-family:inherit;font-size:11.5px;border:1px solid rgba(255,255,255,.16);border-radius:7px;padding:5px 6px;background:rgba(255,255,255,.10);color:#fff}
        .cau-blk .rw{display:flex;align-items:center;gap:6px}
        .cau-blk .lib,.cau-blk select.lib{flex:1;font-family:inherit;font-size:12px;border:1px solid rgba(255,255,255,.16);border-radius:7px;padding:6px 7px;background:rgba(255,255,255,.10);color:#fff}
        .cau-blk select.lib option{color:#1f2a44}
        .cau-blk .x{width:28px;height:28px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#cdd9f1;border-radius:6px;cursor:pointer;flex:none}
        .cau-blk .x:hover{background:rgba(255,90,90,.2);color:#ff9b9b}
        .cau-blk .arr{color:#9fb2d6;font-size:12px}
        .cau-btn{font-family:inherit;font-size:11.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 10px;cursor:pointer;margin-top:7px}
        .cau-btn:hover{border-color:#F97316}
        .cau-btn.danger{color:#ff9b9b;border-color:rgba(255,90,90,.4)}
        .cau-hint{font-size:11.5px;color:#9fb2d6;line-height:1.45}
        .cau-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}
        .cau-map{position:relative;border:1px solid rgba(255,255,255,.14);border-radius:15px;overflow:hidden;background:linear-gradient(160deg,rgba(8,20,44,.35),rgba(20,30,70,.30));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
        #cau-map{width:100%;height:100%;display:block}
        .cau-map .dept{stroke:rgba(10,34,73,.5);stroke-width:.6;transition:fill .28s ease}
        .cau-map .dept:hover{stroke:#F97316;stroke-width:1.7;cursor:pointer;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}
        .cau-frame{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.16);stroke-width:1}
        .cau-dlabel{font-size:10px;fill:#9fb2d6;font-weight:600}
        .cau-div{stroke:rgba(255,255,255,.18);stroke-width:1;stroke-dasharray:3 4}
        .cau-legend{position:absolute;left:14px;bottom:14px;background:rgba(11,27,55,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:11px 13px;min-width:190px;max-width:240px;color:#eaf0fb;}
        .cau-legend .lt{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;margin-bottom:6px}
        .cau-legend .lr{font-size:11.5px;color:#bdcbe8;margin-top:3px}
        .cau-legend .lh{font-size:11px;color:#ffc89a;margin-top:7px;font-weight:600}
        .cau-legend .sc{display:flex;align-items:center;gap:7px;margin:5px 0 2px}
        .cau-legend .sc span{font-size:11px;color:#bdcbe8}
        .cau-legend .sc i{flex:1;height:9px;border-radius:6px;background:linear-gradient(90deg,#2f6dbf,#7fe0ff)}
        .cau-dot{width:11px;height:11px;border-radius:50%;flex:none}
        .cau-err{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(11,27,55,.92);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:14px 18px;font-size:12.5px;color:#cdd9f1;text-align:center}
        .cau-tooltip{position:fixed;pointer-events:none;z-index:9999;background:#0b1f3d;color:#fff;border-radius:10px;padding:8px 10px;font-size:12px;max-width:240px;opacity:0;transition:opacity .12s;box-shadow:0 12px 32px rgba(0,0,0,.4)}
        .cau-tooltip .h{font-weight:700;margin-bottom:3px}
        .cau-tooltip .h span{opacity:.6;font-weight:500}
        .cau-tooltip .ln{display:flex;align-items:center;gap:6px;margin-top:3px}
        .cau-tooltip .su{opacity:.75;font-size:11px;margin-top:3px}
        @media(max-width:760px){.cau-kpis{grid-template-columns:1fr}.cau-body{grid-template-columns:1fr;height:auto}.cau-map{height:420px}}
      
        /* Adaptation au liquid-glass CLAIR du tableau de bord NEXUS (#tab-dashboard .panel-v2 impose un verre blanc) */
        .cau-wrap{color:#1f2a44;}
        .cau-glow{background:radial-gradient(circle,rgba(249,115,22,.12),transparent 70%);}
        .cau-wrap .panel-head{border-bottom-color:#eef2f7;}
        .cau-wrap .panel-head h3{color:#0f172a;}
        .cau-tag{background:#fff3ea;color:#EA580C;border-color:#ffd9bf;}
        .cau-switch{color:#475569;}
        .cau-track{background:#cbd5e1;}
        .cau-dateinp{background:#fff;border:1px solid #e2e8f0;}
        .cau-kpi{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(13,45,94,.06);}
        .cau-kpi .lab{color:#64748b;}
        .cau-kpi .val{color:#0f172a;}
        .cau-kpi .sub{color:#94a3b8;}
        .cau-kpi .bar{background:#eef2f7;}
        .cau-side{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85);}
        .cau-side-head{border-bottom:1px solid #eef2f7;}
        .cau-side-title{color:#64748b;}
        .cau-search input{background:#fff;border:1px solid #e2e8f0;color:#1f2a44;}
        .cau-search input::placeholder{color:#94a3b8;}
        .cau-search svg{stroke:#94a3b8;}
        .cau-aud{background:rgba(255,255,255,.7);border:1px solid #e9eef5;}
        .cau-aud:hover{background:#fff;}
        .cau-aud-name{color:#1f2a44;}
        .cau-aud-meta{color:#6b7790;}
        .cau-badge.ok{background:#e6f6ec;color:#16a34a;}
        .cau-badge.no{background:#fdeceb;color:#c0392b;}
        .cau-foot{color:#6b7790;}
        .cau-ed{border-top:1px dashed #e9eef5;}
        .cau-ed label{color:#6b7790;}
        .cau-ed label .sy{color:#EA580C;}
        .cau-inp{background:#fff;border:1px solid #e2e8f0;color:#1f2a44;}
        .cau-blk{background:#f4f7fb;border:1px solid #e9eef5;}
        .cau-blk input[type=date]{background:#fff;border:1px solid #e2e8f0;color:#1f2a44;}
        .cau-blk .lib,.cau-blk select.lib{background:#fff;border:1px solid #e2e8f0;color:#1f2a44;}
        .cau-blk .x{background:#fff;border:1px solid #e2e8f0;color:#6b7790;}
        .cau-blk .arr{color:#94a3b8;}
        .cau-btn{background:#eef3fb;border:1px solid #dbe6f6;color:#143b78;}
        .cau-btn.danger{color:#c0392b;border-color:#f6d6d2;}
        .cau-hint{color:#6b7790;}
        .cau-map{background:radial-gradient(120% 120% at 40% 0%,#fbfcfe 0%,#eef2f8 100%);border:1px solid #e9eef5;-webkit-backdrop-filter:none;backdrop-filter:none;}
        .cau-map .dept{stroke:#cdd6e4;}
        .cau-map .dept:hover{stroke:#F97316;filter:drop-shadow(0 2px 4px rgba(13,45,94,.25));}
        .cau-frame{fill:#fff;stroke:#e9eef5;}
        .cau-dlabel{fill:#6b7790;}
        .cau-div{stroke:#dde4ef;}
        .cau-legend{background:rgba(255,255,255,.92);border:1px solid #e9eef5;color:#1f2a44;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
        .cau-legend .lt{color:#0f172a;}
        .cau-legend .lr{color:#6b7790;}
        .cau-legend .lh{color:#EA580C;}
        .cau-legend .sc span{color:#6b7790;}
        .cau-legend .sc i{background:linear-gradient(90deg,#cfe0ff,#0d2d5e);}
        .cau-err{background:#fff;border:1px solid #e9eef5;color:#6b7790;}
        #tab-dashboard .panel-v2.cau-wrap:hover{transform:none !important;}
      
      /* ═══ Calendrier Qualité ═══ */
      .qc-list{ display:flex; flex-direction:column; gap:10px; padding:4px; }
      .qc-event{ border:1px solid #e8edf5; border-radius:14px; background:#fff; padding:14px 16px; transition:box-shadow .15s, border-color .15s; }
      .qc-event:hover{ box-shadow:0 6px 18px rgba(13,45,94,.08); border-color:#cfe0ff; }
      .qc-event-head{ display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
      .qc-date-badge{ flex:0 0 auto; width:54px; text-align:center; background:linear-gradient(135deg,#0d2d5e,#13407e); color:#fff; border-radius:10px; padding:7px 0; }
      .qc-date-badge .d{ font-size:20px; font-weight:800; line-height:1; font-family:Sora,Inter,sans-serif; }
      .qc-date-badge .m{ font-size:10px; text-transform:uppercase; letter-spacing:1px; opacity:.92; margin-top:3px; }
      .qc-date-badge.past{ background:#94a3b8; }
      .qc-event-main{ flex:1; min-width:0; }
      .qc-event-title{ font-weight:700; color:#0d2d5e; font-size:15px; font-family:Sora,Inter,sans-serif; }
      .qc-event-sub{ font-size:12.5px; color:#6b7280; margin-top:4px; display:flex; flex-wrap:wrap; gap:12px; }
      .qc-event-body{ display:none; margin-top:12px; padding-top:12px; border-top:1px dashed #e5e7eb; }
      .qc-event.open .qc-event-body{ display:block; }
      .qc-event-desc{ font-size:13px; color:#374151; white-space:pre-wrap; line-height:1.55; }
      .qc-docchip{ display:inline-flex; align-items:center; gap:6px; background:#f1f5fb; border:1px solid #e2e8f4; border-radius:8px; padding:5px 9px; font-size:12px; color:#0d2d5e; text-decoration:none; margin:4px 6px 0 0; }
      .qc-docchip:hover{ background:#e7eefb; }
      .qc-event-actions{ margin-top:12px; display:flex; gap:8px; }
      .qc-mini-btn{ font-size:12px; font-weight:600; border:1px solid #e2e8f4; background:#fff; color:#0d2d5e; border-radius:8px; padding:6px 12px; cursor:pointer; }
      .qc-mini-btn:hover{ background:#f1f5fb; }
      .qc-mini-btn.danger{ color:#dc2626; border-color:#fecaca; }
      .qc-mini-btn.danger:hover{ background:#fef2f2; }
      .qc-lbl{ font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:#6b7280; margin-bottom:6px; display:block; }
      .qc-empty{ text-align:center; color:#9ca3af; font-size:13px; padding:40px 20px; }
      .qc-month{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; padding:4px; }
      .qc-month-dow{ text-align:center; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#94a3b8; padding:4px 0; }
      .qc-day{ min-height:86px; border:1px solid #eef2f8; border-radius:10px; padding:6px; background:#fff; display:flex; flex-direction:column; gap:3px; }
      .qc-day.empty{ background:#f8fafc; border-style:dashed; }
      .qc-day.today{ border-color:#F97316; box-shadow:0 0 0 1px #F97316 inset; }
      .qc-day-num{ font-size:12px; font-weight:700; color:#64748b; }
      .qc-day.today .qc-day-num{ color:#F97316; }
      .qc-chip{ font-size:11px; font-weight:600; background:#0d2d5e; color:#fff; border-radius:6px; padding:3px 6px; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
      .qc-chip:hover{ background:#13407e; }
      .qc-upload-item{ font-size:12px; color:#374151; margin-top:6px; }
      @media(max-width:720px){ .qc-day{ min-height:62px; } }
    
        .paq-sec{ font-family:Sora,Inter,sans-serif; font-weight:800; font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:#0d2d5e; border-left:3px solid #F97316; padding-left:9px; margin-top:6px; }
        .paq-badge{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; white-space:nowrap; }
        /* Pièces jointes multiples (modale Amélioration qualité) */
        .paq-dropzone{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1.5px dashed #b9c7e0; border-radius:12px; background:#f8fafc; cursor:pointer; transition:background .15s,border-color .15s; outline:none; }
        .paq-dropzone:hover, .paq-dropzone:focus-visible, .paq-dropzone.over{ background:#eff5fc; border-color:#0d2d5e; }
        .paq-dropzone svg{ width:22px; height:22px; color:#0d2d5e; flex:0 0 auto; }
        .paq-dropzone b{ display:block; font-size:13px; color:#0d2d5e; }
        .paq-dropzone span{ display:block; font-size:11.5px; color:#64748b; margin-top:2px; line-height:1.4; }
        .paq-docs{ display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
        /* Réorganisation par glisser-déposer (tableau Amélioration qualité) */
        .paq-handle{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:24px; margin:-5px 6px -5px -6px; border-radius:6px; color:#a3aec2; cursor:grab; touch-action:none; vertical-align:middle; user-select:none; -webkit-user-select:none; }
        .paq-handle svg{ width:10px; height:16px; fill:currentColor; pointer-events:none; }
        .paq-handle:hover{ background:#eef2f9; color:#0d2d5e; }
        .paq-handle.off{ opacity:.3; cursor:not-allowed; }
        body.paq-drag-on, body.paq-drag-on .paq-handle, body.paq-drag-on .vg-table tbody tr{ cursor:grabbing !important; }
        body.paq-drag-on{ user-select:none; -webkit-user-select:none; }
        #paq-table-wrap tr.paq-dragging{ opacity:.35; }
        #paq-table-wrap tr.paq-drop-before td{ box-shadow:inset 0 3px 0 #F97316; }
        #paq-table-wrap tr.paq-drop-after td{ box-shadow:inset 0 -3px 0 #F97316; }
        .paq-ghost{ position:fixed; z-index:10000; pointer-events:none; background:#fff; color:#0d2d5e; border:1px solid #c7d2e5; border-left:4px solid #F97316; border-radius:10px; padding:9px 12px; font-size:13px; font-weight:600; box-shadow:0 14px 34px rgba(13,45,94,.22); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .paq-order-hint{ color:#94a3b8; }
        @media(pointer:coarse){ .paq-handle{ width:26px; height:30px; margin:-6px 4px -6px -8px; } }
      
        #smq-pane-fmc{--fmc-navy:#0d2d5e;--fmc-navy6:#1a4fa0;--fmc-coral:#F97316;--fmc-coral6:#EA580C;--fmc-ink9:#0f172a;--fmc-ink7:#334155;--fmc-ink5:#64748b;--fmc-ink4:#94a3b8;--fmc-ink2:#e2e8f0;--fmc-ink1:#f1f5f9;--fmc-ink50:#f8fafc;--fmc-navy50:#eff5fc;--fmc-green:#16A34A;--fmc-green5:#22C55E;--fmc-greenbg:#ecfdf3;--fmc-amber:#D97706;--fmc-amber5:#F59E0B;--fmc-amberbg:#fffbeb;--fmc-red:#DC2626;--fmc-red5:#EF4444;--fmc-redbg:#fef2f2;--fmc-sky:#0EA5E9;--fmc-violet:#7C3AED;color:var(--fmc-ink9);}
        #smq-pane-fmc *{box-sizing:border-box;}
        #smq-pane-fmc .fmc-intro{display:flex;align-items:flex-start;gap:14px;margin:4px 0 18px;}
        #smq-pane-fmc .fmc-h1{font-size:19px;font-weight:800;letter-spacing:-.2px;color:var(--fmc-ink9);}
        #smq-pane-fmc .fmc-sub2{font-size:12.5px;color:var(--fmc-ink5);margin-top:3px;max-width:760px;line-height:1.45;}
        #smq-pane-fmc .fmc-loading{padding:14px;color:var(--fmc-ink5);font-size:13px;}
        #smq-pane-fmc .fmc-seclabel{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--fmc-ink4);margin:4px 2px 10px;}
        /* alertes */
        #smq-pane-fmc .fmc-alertes{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:11px;margin-bottom:20px;}
        #smq-pane-fmc .fmc-alert{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1px solid var(--fmc-ink2);border-left-width:4px;border-radius:12px;padding:12px 13px;box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer;transition:.15s;}
        #smq-pane-fmc .fmc-alert:hover{box-shadow:0 4px 12px rgba(15,23,42,.07);transform:translateY(-1px);}
        #smq-pane-fmc .fmc-ai{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
        #smq-pane-fmc .fmc-ai svg{width:16px;height:16px;stroke-width:2;fill:none;}
        #smq-pane-fmc .fmc-alert h4{margin:0 0 2px;font-size:13px;font-weight:700;}
        #smq-pane-fmc .fmc-alert p{margin:0;font-size:12px;color:var(--fmc-ink5);line-height:1.35;}
        #smq-pane-fmc .fmc-alert.red{border-left-color:var(--fmc-red5);} #smq-pane-fmc .fmc-alert.red .fmc-ai{background:var(--fmc-redbg);} #smq-pane-fmc .fmc-alert.red .fmc-ai svg{stroke:var(--fmc-red);}
        #smq-pane-fmc .fmc-alert.amber{border-left-color:var(--fmc-amber5);} #smq-pane-fmc .fmc-alert.amber .fmc-ai{background:var(--fmc-amberbg);} #smq-pane-fmc .fmc-alert.amber .fmc-ai svg{stroke:var(--fmc-amber);}
        #smq-pane-fmc .fmc-alert.info{border-left-color:var(--fmc-sky);} #smq-pane-fmc .fmc-alert.info .fmc-ai{background:#e0f2fe;} #smq-pane-fmc .fmc-alert.info .fmc-ai svg{stroke:var(--fmc-sky);}
        #smq-pane-fmc .fmc-alert.green{border-left-color:var(--fmc-green5);} #smq-pane-fmc .fmc-alert.green .fmc-ai{background:var(--fmc-greenbg);} #smq-pane-fmc .fmc-alert.green .fmc-ai svg{stroke:var(--fmc-green);}
        /* kpis */
        #smq-pane-fmc .fmc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:22px;}
        #smq-pane-fmc .fmc-kpi{background:#fff;border:1px solid var(--fmc-ink2);border-radius:16px;padding:15px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04);}
        #smq-pane-fmc .fmc-kv{font-size:26px;font-weight:800;color:var(--fmc-navy);line-height:1;}
        #smq-pane-fmc .fmc-kl{font-size:12px;color:var(--fmc-ink5);margin-top:7px;font-weight:600;}
        #smq-pane-fmc .fmc-kbar{height:6px;border-radius:99px;background:var(--fmc-ink1);margin-top:10px;overflow:hidden;}
        #smq-pane-fmc .fmc-kbar>i{display:block;height:100%;border-radius:99px;background:var(--fmc-green5);}
        /* toolbar */
        #smq-pane-fmc .fmc-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
        #smq-pane-fmc .fmc-seg{display:inline-flex;background:#fff;border:1px solid var(--fmc-ink2);border-radius:11px;padding:4px;box-shadow:0 1px 2px rgba(15,23,42,.04);}
        #smq-pane-fmc .fmc-seg button{border:0;background:transparent;color:var(--fmc-ink5);font-weight:600;font-size:12.5px;padding:7px 13px;border-radius:8px;transition:.15s;cursor:pointer;font-family:inherit;}
        #smq-pane-fmc .fmc-seg button.on{background:var(--fmc-navy50);color:var(--fmc-navy);}
        #smq-pane-fmc .fmc-seg button .n{font-size:11px;opacity:.7;margin-left:4px;}
        #smq-pane-fmc .fmc-search{flex:1;min-width:180px;position:relative;}
        #smq-pane-fmc .fmc-search input{width:100%;border:1px solid var(--fmc-ink2);border-radius:11px;padding:10px 12px 10px 34px;font-size:13px;background:#fff;font-family:inherit;}
        #smq-pane-fmc .fmc-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--fmc-ink4);fill:none;stroke-width:2;}
        /* buttons */
        #smq-pane-fmc .fmc-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--fmc-ink2);background:#fff;color:var(--fmc-ink7);font-weight:600;font-size:12.5px;padding:9px 13px;border-radius:11px;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:.15s;cursor:pointer;font-family:inherit;white-space:nowrap;}
        #smq-pane-fmc .fmc-btn:hover{background:var(--fmc-ink50);}
        #smq-pane-fmc .fmc-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}
        #smq-pane-fmc .fmc-btn.fmc-mini{padding:5px 8px;}
        #smq-pane-fmc .fmc-btn-primary{background:var(--fmc-coral);border-color:var(--fmc-coral);color:#fff;}
        #smq-pane-fmc .fmc-btn-primary:hover{background:var(--fmc-coral6);}
        #smq-pane-fmc .fmc-btn-navy{background:var(--fmc-navy);border-color:var(--fmc-navy);color:#fff;}
        #smq-pane-fmc .fmc-btn-navy:hover{background:var(--fmc-navy6);}
        /* grid + person card */
        #smq-pane-fmc .fmc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;}
        #smq-pane-fmc .fmc-pcard{background:#fff;border:1px solid var(--fmc-ink2);border-radius:16px;padding:16px;box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer;transition:.16s;}
        #smq-pane-fmc .fmc-pcard:hover{box-shadow:0 4px 12px rgba(15,23,42,.07);transform:translateY(-2px);border-color:#cdd8ea;}
        #smq-pane-fmc .fmc-top{display:flex;align-items:center;gap:12px;}
        #smq-pane-fmc .fmc-avatar{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;flex:0 0 auto;}
        #smq-pane-fmc .fmc-avatar.av-interne{background:linear-gradient(135deg,#143b78,#1a4fa0);}
        #smq-pane-fmc .fmc-avatar.av-auditeur{background:linear-gradient(135deg,#0e7490,#0EA5E9);}
        #smq-pane-fmc .fmc-avatar.av-comite{background:linear-gradient(135deg,#7C3AED,#a855f7);}
        #smq-pane-fmc .fmc-nm{font-weight:700;font-size:15px;line-height:1.15;}
        #smq-pane-fmc .fmc-role{font-size:12px;color:var(--fmc-ink5);margin-top:2px;}
        #smq-pane-fmc .fmc-tbadge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:999px;}
        #smq-pane-fmc .fmc-tbadge.tb-interne{background:var(--fmc-navy50);color:#143b78;}
        #smq-pane-fmc .fmc-tbadge.tb-auditeur{background:#e0f2fe;color:#0369a1;}
        #smq-pane-fmc .fmc-tbadge.tb-comite{background:#f3e8ff;color:#7e22ce;}
        #smq-pane-fmc .fmc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px;}
        #smq-pane-fmc .fmc-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:999px;border:1px solid transparent;}
        #smq-pane-fmc .fmc-chip svg{width:12px;height:12px;stroke-width:2.3;fill:none;}
        #smq-pane-fmc .fmc-chip.ok{background:var(--fmc-greenbg);color:var(--fmc-green);border-color:#bbf7d0;} #smq-pane-fmc .fmc-chip.ok svg{stroke:var(--fmc-green);}
        #smq-pane-fmc .fmc-chip.warn{background:var(--fmc-amberbg);color:var(--fmc-amber);border-color:#fde68a;} #smq-pane-fmc .fmc-chip.warn svg{stroke:var(--fmc-amber);}
        #smq-pane-fmc .fmc-chip.danger{background:var(--fmc-redbg);color:var(--fmc-red);border-color:#fecaca;} #smq-pane-fmc .fmc-chip.danger svg{stroke:var(--fmc-red);}
        #smq-pane-fmc .fmc-chip.muted{background:var(--fmc-ink1);color:var(--fmc-ink5);} #smq-pane-fmc .fmc-chip.muted svg{stroke:var(--fmc-ink5);}
        #smq-pane-fmc .fmc-next{margin-top:13px;padding-top:12px;border-top:1px dashed var(--fmc-ink2);font-size:12px;color:var(--fmc-ink5);display:flex;align-items:center;gap:7px;}
        #smq-pane-fmc .fmc-next svg{width:14px;height:14px;stroke:var(--fmc-ink4);fill:none;stroke-width:2;flex:0 0 auto;}
        #smq-pane-fmc .fmc-next b{color:var(--fmc-ink7);font-weight:600;}
        /* ── K63 (17/08/2026) — personne résiliée : même langage visuel que la liste des membres ── */
        #smq-pane-fmc .fmc-chip.off{background:#fdf2f2;color:#c0392f;border-color:#f3d3d0;} #smq-pane-fmc .fmc-chip.off svg{stroke:#c0392f;}
        #smq-pane-fmc .fmc-tbadge.tb-resilie{background:#fdf2f2;color:#c0392f;border:1px solid #f3d3d0;text-transform:none;letter-spacing:0;font-weight:700;}
        #smq-pane-fmc .fmc-pcard.resilie{border-color:#f3d3d0;background:#fffafa;box-shadow:inset 3px 0 0 #c0392f;}
        #smq-pane-fmc .fmc-pcard.resilie:hover{border-color:#e8b8b3;}
        #smq-pane-fmc .fmc-pcard.resilie .fmc-avatar{background:linear-gradient(135deg,#9aa5b1,#c7ced6);}
        #smq-pane-fmc .fmc-pcard.resilie .fmc-nm{color:#5b6779;}
        #smq-pane-fmc .fmc-pcard.resilie .fmc-next{color:#c0392f;border-top-color:#f3d3d0;}
        #smq-pane-fmc .fmc-pcard.resilie .fmc-next b{color:#c0392f;}
        #smq-pane-fmc .fmc-pcard.resilie .fmc-next svg{stroke:#c0392f;}
        #smq-pane-fmc .fmc-dhead.resilie{border-color:#f3d3d0;box-shadow:inset 3px 0 0 #c0392f;}
        #smq-pane-fmc .fmc-dhead.resilie .fmc-avatar{background:linear-gradient(135deg,#9aa5b1,#c7ced6);}
        #smq-pane-fmc .fmc-resnote{display:flex;flex-direction:column;gap:4px;background:#fdf2f2;border:1px solid #f3d3d0;border-radius:12px;padding:13px 15px;}
        #smq-pane-fmc .fmc-resnote b{font-size:13.5px;color:#c0392f;}
        #smq-pane-fmc .fmc-resnote span{font-size:12.5px;color:#8a4a44;line-height:1.5;}
        /* detail */
        #smq-pane-fmc .fmc-dhead{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--fmc-ink2);border-radius:16px;padding:14px 18px;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:14px;flex-wrap:wrap;}
        #smq-pane-fmc .fmc-back{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--fmc-ink2);background:#fff;color:var(--fmc-ink7);font-weight:600;font-size:12.5px;padding:9px 13px;border-radius:10px;cursor:pointer;font-family:inherit;}
        #smq-pane-fmc .fmc-back:hover{background:var(--fmc-ink50);}
        #smq-pane-fmc .fmc-back svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}
        #smq-pane-fmc .fmc-dhead h2{margin:0;font-size:19px;font-weight:800;}
        #smq-pane-fmc .fmc-dsub{font-size:12.5px;color:var(--fmc-ink5);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
        #smq-pane-fmc .fmc-dtabs{display:flex;gap:4px;overflow-x:auto;background:#fff;border:1px solid var(--fmc-ink2);border-radius:13px;padding:5px;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:16px;}
        #smq-pane-fmc .fmc-dtab{border:0;background:transparent;color:var(--fmc-ink5);font-weight:600;font-size:12.5px;padding:9px 13px;border-radius:9px;white-space:nowrap;transition:.15s;cursor:pointer;font-family:inherit;}
        #smq-pane-fmc .fmc-dtab:hover{background:var(--fmc-ink1);color:var(--fmc-ink7);}
        #smq-pane-fmc .fmc-dtab.on{background:var(--fmc-navy);color:#fff;}
        #smq-pane-fmc .fmc-dbody{max-width:980px;}
        #smq-pane-fmc .fmc-section{display:none;}
        #smq-pane-fmc .fmc-section.on{display:block;}
        /* cards */
        #smq-pane-fmc .fmc-card{background:#fff;border:1px solid var(--fmc-ink2);border-radius:12px;padding:15px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:14px;}
        #smq-pane-fmc .fmc-card h3{margin:0 0 12px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;}
        #smq-pane-fmc .fmc-card h3 svg{width:17px;height:17px;flex:0 0 auto;stroke-width:2;fill:none;}
        #smq-pane-fmc .fmc-tag{margin-left:auto;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--fmc-navy50);color:#143b78;white-space:nowrap;}
        #smq-pane-fmc .fmc-kvg{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;}
        #smq-pane-fmc .fmc-kvi .l{font-size:11px;color:var(--fmc-ink4);font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
        #smq-pane-fmc .fmc-kvi .v{font-size:13.5px;font-weight:600;color:var(--fmc-ink9);margin-top:2px;word-break:break-word;}
        #smq-pane-fmc .fmc-sub{font-size:11px;font-weight:700;color:var(--fmc-ink4);text-transform:uppercase;letter-spacing:.4px;margin:12px 0 6px;}
        #smq-pane-fmc .fmc-fld{margin-bottom:11px;}
        #smq-pane-fmc .fmc-fld>label{display:block;font-size:11.5px;font-weight:700;color:var(--fmc-ink7);margin-bottom:5px;}
        #smq-pane-fmc .fmc-fld input,#smq-pane-fmc .fmc-fld select,#smq-pane-fmc .fmc-fld textarea{width:100%;border:1px solid var(--fmc-ink2);border-radius:9px;padding:9px 10px;font-size:13px;font-family:inherit;background:#fff;color:var(--fmc-ink9);}
        #smq-pane-fmc .fmc-fld textarea{min-height:62px;resize:vertical;line-height:1.4;}
        #smq-pane-fmc .fmc-fld input:focus,#smq-pane-fmc .fmc-fld select:focus,#smq-pane-fmc .fmc-fld textarea:focus{outline:none;border-color:var(--fmc-navy6);box-shadow:0 0 0 3px var(--fmc-navy50);}
        #smq-pane-fmc .fmc-row2{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
        /* ⭐ signatures des entretiens & réunions (26/08/2026) */
        #smq-pane-fmc .fmc-sigbox,.fmc-modal .fmc-sigbox{border:1.5px dashed #c7d2e4;border-radius:10px;background:#fbfdff;padding:8px;}
        #smq-pane-fmc .fmc-sigbox canvas,.fmc-modal .fmc-sigbox canvas{display:block;width:100%;max-width:100%;height:120px;background:#fff;border:1px solid #e4ebf5;border-radius:8px;touch-action:none;cursor:crosshair;}
        #smq-pane-fmc .fmc-sigrow,.fmc-modal .fmc-sigrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;}
        #smq-pane-fmc .fmc-sighint,.fmc-modal .fmc-sighint{font-size:11.5px;color:#8a97ad;}
        #smq-pane-fmc .fmc-savebar{display:flex;justify-content:flex-end;gap:9px;margin-top:4px;}
        #smq-pane-fmc .fmc-evrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-evrow:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-evrow .el{flex:1;font-size:13px;font-weight:600;color:var(--fmc-ink7);}
        #smq-pane-fmc .fmc-evrow select{width:170px;border:1px solid var(--fmc-ink2);border-radius:8px;padding:6px 8px;font-size:12.5px;font-family:inherit;}
        #smq-pane-fmc .fmc-cat{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-cat:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-cat .cn{width:54px;font-weight:700;font-size:13px;}
        #smq-pane-fmc .fmc-cat .cbar{flex:1;height:9px;background:var(--fmc-ink1);border-radius:99px;overflow:hidden;position:relative;}
        #smq-pane-fmc .fmc-cat .cbar>i{display:block;height:100%;border-radius:99px;}
        #smq-pane-fmc .fmc-cat .cbar .thr{position:absolute;left:70%;top:-3px;bottom:-3px;width:2px;background:var(--fmc-ink4);opacity:.6;}
        #smq-pane-fmc .fmc-cat input[type=number]{width:62px;border:1px solid var(--fmc-ink2);border-radius:8px;padding:5px 6px;font-size:12.5px;text-align:center;font-family:inherit;}
        #smq-pane-fmc .fmc-pill{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;}
        #smq-pane-fmc .fmc-pill.ok{background:var(--fmc-greenbg);color:var(--fmc-green);}
        #smq-pane-fmc .fmc-pill.no{background:var(--fmc-redbg);color:var(--fmc-red);}
        #smq-pane-fmc .fmc-pill.wait{background:var(--fmc-ink1);color:var(--fmc-ink5);}
        #smq-pane-fmc .fmc-mrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-mrow:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-mi{width:36px;height:36px;border-radius:10px;background:var(--fmc-navy50);display:flex;align-items:center;justify-content:center;color:#143b78;flex:0 0 auto;}
        #smq-pane-fmc .fmc-mi svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;}
        #smq-pane-fmc .fmc-mt{flex:1;}
        #smq-pane-fmc .fmc-mt b{font-size:13.5px;}
        #smq-pane-fmc .fmc-mt span{display:block;font-size:11.5px;color:var(--fmc-ink5);margin-top:1px;}
        #smq-pane-fmc .fmc-count{font-size:20px;font-weight:800;}
        #smq-pane-fmc .fmc-count.ok{color:var(--fmc-green);} #smq-pane-fmc .fmc-count.no{color:var(--fmc-red);}
        #smq-pane-fmc .fmc-flist{list-style:none;margin:0;padding:0;}
        #smq-pane-fmc .fmc-flist li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-flist li:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-fi{flex:1;min-width:0;}
        #smq-pane-fmc .fmc-fi b{font-size:13px;}
        #smq-pane-fmc .fmc-fi span{display:block;font-size:11.5px;color:var(--fmc-ink5);margin-top:1px;}
        #smq-pane-fmc .fmc-statpill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;}
        #smq-pane-fmc .fmc-statpill.fait{background:var(--fmc-greenbg);color:var(--fmc-green);}
        #smq-pane-fmc .fmc-statpill.prevu{background:#e0f2fe;color:#0369a1;}
        #smq-pane-fmc .fmc-statpill.retard{background:var(--fmc-redbg);color:var(--fmc-red);}
        #smq-pane-fmc .fmc-addrow{display:grid;grid-template-columns:1.7fr 1fr auto auto;gap:8px;margin-top:12px;align-items:end;}
        #smq-pane-fmc .fmc-echlist{list-style:none;margin:0;padding:0;}
        #smq-pane-fmc .fmc-echlist li{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-echlist li:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-ed{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
        #smq-pane-fmc .fmc-et{flex:1;font-size:13px;font-weight:600;}
        #smq-pane-fmc .fmc-ew{font-size:12px;font-weight:700;white-space:nowrap;}
        #smq-pane-fmc .fmc-note{background:var(--fmc-navy50);border:1px solid #cfe0f5;border-radius:12px;padding:12px 14px;font-size:12.5px;color:#143b78;line-height:1.5;margin-bottom:14px;}
        #smq-pane-fmc .fmc-proc{font-size:11px;color:var(--fmc-ink4);margin-top:8px;font-style:italic;}
        #smq-pane-fmc .fmc-empty{text-align:center;color:var(--fmc-ink4);font-size:13px;padding:30px 0;}
        #smq-pane-fmc .fmc-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);background:#0a2249;color:#fff;padding:11px 18px;border-radius:11px;font-size:13px;font-weight:600;box-shadow:0 12px 32px rgba(15,23,42,.2);opacity:0;pointer-events:none;transition:.25s;z-index:9999;}
        #smq-pane-fmc .fmc-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
        #smq-pane-fmc .fmc-cbxs{display:grid;gap:8px;margin:4px 0 10px;}
        #smq-pane-fmc .fmc-cbx{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--fmc-ink7);font-weight:500;line-height:1.35;cursor:pointer;}
        #smq-pane-fmc .fmc-cbx input{margin-top:2px;flex:0 0 auto;}
        #smq-pane-fmc .fmc-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0 2px;font-size:12px;color:var(--fmc-ink5);font-weight:600;}
        #smq-pane-fmc .fmc-btn[disabled]{opacity:.45;cursor:not-allowed;}
        #smq-pane-fmc .fmc-elist li{cursor:pointer;transition:.12s;border-radius:8px;}
        #smq-pane-fmc .fmc-elist li:hover{background:var(--fmc-ink50);}
        #smq-pane-fmc .fmc-modal{position:fixed;inset:0;z-index:9998;display:none;background:rgba(13,45,94,.5);padding:22px;overflow:auto;}
        #smq-pane-fmc .fmc-modal.show{display:flex;align-items:flex-start;justify-content:center;}
        #smq-pane-fmc .fmc-modal-box{background:#fff;border-radius:16px;max-width:720px;width:100%;margin:auto;box-shadow:0 24px 60px rgba(15,23,42,.32);overflow:hidden;}
        #smq-pane-fmc .fmc-modal-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-modal-head h3{margin:0;font-size:16px;font-weight:800;flex:1;}
        #smq-pane-fmc .fmc-modal-head .fmc-back{padding:7px;}
        #smq-pane-fmc .fmc-modal-body{padding:14px 20px;max-height:64vh;overflow:auto;}
        #smq-pane-fmc .fmc-modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid var(--fmc-ink1);background:var(--fmc-ink50);}
        #smq-pane-fmc .fmc-vrow{padding:8px 0;border-bottom:1px solid var(--fmc-ink1);}
        #smq-pane-fmc .fmc-vrow:last-child{border-bottom:0;}
        #smq-pane-fmc .fmc-vrow .vl{font-size:11px;font-weight:700;color:var(--fmc-ink4);text-transform:uppercase;letter-spacing:.3px;}
        #smq-pane-fmc .fmc-vrow .vv{font-size:13.5px;color:var(--fmc-ink9);margin-top:2px;white-space:pre-wrap;line-height:1.4;}
        @media(max-width:620px){#smq-pane-fmc .fmc-kvg,#smq-pane-fmc .fmc-row2{grid-template-columns:1fr;}#smq-pane-fmc .fmc-addrow{grid-template-columns:1fr 1fr;}}
      
        /* Respiration intérieure du pane Réunions qualité (le .smq-explorer n'a pas de padding par défaut) */
        #smq-pane-rq .smq-explorer{padding:20px 24px;}
        #smq-pane-rq .smq-toolbar{border-radius:11px;border:1px solid rgba(13,45,94,.08);margin-bottom:4px;}
        @media (max-width:880px){#smq-pane-rq .smq-explorer{padding:14px 14px;}}
        .rq-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
        .rq-tile{background:#fff;border:1px solid var(--border,#e2e8f4);border-radius:14px;padding:14px 16px;cursor:pointer;transition:box-shadow .15s,border-color .15s;min-width:0;}
        .rq-tile:hover{border-color:#c7d4ea;}
        .rq-tile.active{border-color:#F97316;box-shadow:0 0 0 2px rgba(249,115,22,.15);}
        .rq-tile-head{display:flex;align-items:center;gap:9px;}
        .rq-tile-ico{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
        .rq-tile-ico svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;}
        .rq-tile-name{font-size:13px;font-weight:700;color:var(--ink-900,#0F172A);line-height:1.2;}
        .rq-tile-meta{font-size:11.5px;color:var(--ink-500,#64748b);margin-top:8px;line-height:1.5;}
        .rq-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap;}
        .rq-badge.ok{background:#DCFCE7;color:#15803D;}
        .rq-badge.warn{background:#FEF3C7;color:#B45309;}
        .rq-badge.late{background:#FEE2E2;color:#B91C1C;}
        .rq-badge.plan{background:#E0F2FE;color:#0369A1;}
        .rq-card{background:#fff;border:1px solid var(--border,#e2e8f4);border-radius:14px;padding:16px 18px;margin-bottom:12px;}
        .rq-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
        .rq-year{font-size:15px;font-weight:800;color:var(--ink-900,#0F172A);background:var(--ink-100,#f1f5f9);border-radius:9px;padding:4px 11px;}
        .rq-card-title{font-size:13.5px;font-weight:600;color:var(--ink-900,#0F172A);}
        .rq-card-sub{font-size:12px;color:var(--ink-500,#64748b);}
        .rq-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px;}
        .rq-stat{background:var(--ink-50,#f8fafc);border:1px solid var(--ink-100,#f1f5f9);border-radius:9px;padding:6px 11px;font-size:11.5px;color:var(--ink-500,#64748b);}
        .rq-stat b{color:var(--ink-900,#0F172A);font-size:13px;margin-right:3px;}
        .rq-snapshot{margin-top:11px;border:1px dashed #c7d4ea;border-radius:10px;padding:10px 12px;background:#f8fafc;}
        .rq-snapshot-grid{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;}
        .rq-snap-chip{background:#fff;border:1px solid var(--ink-100,#f1f5f9);border-radius:8px;padding:4px 9px;font-size:11px;color:var(--ink-500,#64748b);}
        .rq-snap-chip b{color:var(--ink-900,#0F172A);}
        .rq-actions{display:flex;gap:8px;margin-left:auto;align-items:center;}
        @media (max-width:880px){.rq-tiles{grid-template-columns:1fr;}}
        /* ── Suivi Revue de direction (indicateurs + clients) ── */
        .rd-sec{margin:4px 0 14px;}
        .rd-sec-t{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin:12px 0 7px;}
        .rd-krow{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid #eef2f8;border-radius:12px;margin-bottom:7px;background:#fff;flex-wrap:wrap;}
        .rd-krow .lbl{flex:1 1 250px;min-width:220px;}
        .rd-krow .lbl b{font-size:12.5px;font-weight:600;display:block;color:#0f172a;}
        .rd-krow .lbl span{font-size:10.5px;color:#94a3b8;}
        .rd-src{font-size:9px;font-weight:800;border-radius:999px;padding:3px 8px;letter-spacing:.03em;white-space:nowrap;}
        .rd-src.auto{background:#E0F2FE;color:#0369A1;}
        .rd-src.man{background:#FFEDD5;color:#C2410C;}
        .rd-src.mix{background:#EDE9FE;color:#6D28D9;}
        .rd-kval{font-size:17px;font-weight:800;min-width:62px;text-align:right;}
        .rd-kbar{flex:0 0 110px;height:6px;border-radius:6px;background:#eef2f8;position:relative;}
        .rd-kbar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;}
        .rd-kbar u{position:absolute;top:-3px;bottom:-3px;width:2px;background:#94a3b8;}
        .rd-kobj{font-size:10px;color:#94a3b8;min-width:74px;}
        .rd-crow{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid #eef2f8;border-radius:12px;margin-bottom:6px;cursor:pointer;background:#fff;flex-wrap:wrap;transition:border-color .12s;}
        .rd-crow:hover{border-color:#F97316;}
        .rd-cav{width:32px;height:32px;border-radius:9px;background:#0d2d5e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;}
        .rd-cmain{flex:1;min-width:200px;}
        .rd-cmain b{font-size:13px;display:block;color:#0f172a;}
        .rd-cmain span{font-size:10.5px;color:#94a3b8;}
        .rd-pbar{flex:0 0 96px;height:6px;border-radius:6px;background:#eef2f8;}
        .rd-pbar i{display:block;height:100%;border-radius:6px;background:#16A34A;}
        .rd-pct{font-size:10px;color:#94a3b8;min-width:74px;}
        .rd-pagin{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:10px;}
        .rd-acc{border:1px solid #eef2f8;border-radius:13px;margin-bottom:10px;background:#fff;overflow:hidden;}
        .rd-acc-head{width:100%;display:flex;align-items:center;gap:9px;padding:12px 14px;background:#f8fafc;border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;color:#0f172a;text-align:left;}
        .rd-acc-head:hover{background:#f1f5fb;}
        .rd-acc-chev{display:inline-block;transition:transform .18s;color:#F97316;font-size:12px;}
        .rd-acc-chev.open{transform:rotate(90deg);}
        .rd-acc-hint{margin-left:auto;font-size:10.5px;font-weight:600;color:#94a3b8;text-transform:none;}
        .rd-acc-body{padding:12px 14px;max-height:540px;overflow-y:auto;border-top:1px solid #eef2f8;}
        .rd-acc-body::-webkit-scrollbar{width:6px;}
        .rd-acc-body::-webkit-scrollbar-thumb{background:#dbe3f0;border-radius:6px;}
        .rd-auto-line{display:flex;gap:13px;flex-wrap:wrap;background:#f4f8fe;border:1px solid #e3edfb;border-radius:11px;padding:9px 12px;font-size:11.5px;color:#64748b;margin:10px 0 4px;}
        .rd-auto-line b{color:#0d2d5e;}
        .rd-msec{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#F97316;margin:15px 0 7px;border-bottom:1px solid #f1f5f9;padding-bottom:5px;}
        .rd-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:11px;}
        .rd-f label{font-size:10.5px;font-weight:700;color:#64748b;display:block;margin-bottom:4px;}
        .rd-f input[type=date]{width:100%;padding:8px 10px;border:1px solid #e2e8f4;border-radius:9px;font:inherit;font-size:13px;box-sizing:border-box;}
        .rd-f .rd-delay{font-size:10px;color:#94a3b8;margin-top:3px;display:block;min-height:13px;}
        .rd-tgl{display:flex;gap:6px;}
        .rd-tgl button{flex:1;border:1px solid #e2e8f4;background:#fff;border-radius:9px;padding:7px 4px;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;color:#64748b;}
        .rd-tgl button.on-oui{background:#DCFCE7;border-color:#86efac;color:#15803D;}
        .rd-tgl button.on-non{background:#FEE2E2;border-color:#fca5a5;color:#B91C1C;}
        .rd-tgl button.on-att{background:#FFEDD5;border-color:#fdba74;color:#C2410C;}
      
        /* ═══ Dossiers B « Tour de contrôle » — bandeau, métriques, file de travail, familles ═══ */
        #tab-dossiers .dosB-deck{background:linear-gradient(168deg,#0b2348,#123361 55%,#174080);border-radius:18px;color:#fff;padding:17px 20px 15px;position:relative;overflow:hidden;margin-bottom:14px;box-shadow:0 16px 34px -20px rgba(13,45,94,.65)}
        #tab-dossiers .dosB-deck::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(700px 300px at 30% 0%,#000,transparent 75%);mask-image:radial-gradient(700px 300px at 30% 0%,#000,transparent 75%);pointer-events:none}
        #tab-dossiers .dosB-deck::after{content:"";position:absolute;inset:0;background:radial-gradient(560px 220px at 92% -30%,rgba(249,115,22,.2),transparent 60%);pointer-events:none}
        #tab-dossiers .dk-r1{display:flex;align-items:center;gap:15px;flex-wrap:wrap;position:relative;z-index:1}
        #tab-dossiers .dk-title h1{font-size:1.28rem;font-weight:800;letter-spacing:-.02em;color:#fff;margin:0}
        #tab-dossiers .dk-title p{color:#9db4dd;font-size:.76rem;font-weight:600;margin:2px 0 0}
        #tab-dossiers .dk-acts{margin-left:auto;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
        #tab-dossiers .dk-btn{border:1px solid rgba(255,255,255,.22);border-radius:11px;background:rgba(255,255,255,.13);color:#fff;font-family:inherit;font-weight:600;font-size:.84rem;display:inline-flex;align-items:center;gap:7px;padding:9px 15px;cursor:pointer;transition:.14s;line-height:1.2}
        #tab-dossiers .dk-btn svg{width:15px;height:15px}
        #tab-dossiers .dk-btn:hover{background:rgba(255,255,255,.24)}
        #tab-dossiers .dk-btn.solid{background:#f97316;border-color:#f97316;box-shadow:0 10px 22px -10px rgba(249,115,22,.7)}
        #tab-dossiers .dk-btn.solid:hover{background:#fb8b3c}
        /* K1 (30/07) — 9 tuiles depuis l'ajout de « Transferts à lancer ». Plutôt
           que de passer sur deux lignes, on resserre gap / padding / typo : le
           bandeau descend même à 81 px contre 86 px avant, donc rien ne pousse le
           reste de la page vers le bas. */
        #tab-dossiers .dk-metrics{display:grid;grid-template-columns:repeat(9,1fr);gap:7px;margin-top:15px;position:relative;z-index:1}
        #tab-dossiers .dk-met{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:9px 9px;cursor:pointer;transition:.15s;position:relative}
        #tab-dossiers .dk-met:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
        #tab-dossiers .dk-met .n{font-size:1.18rem;font-weight:800;line-height:1;color:#fff}
        #tab-dossiers .dk-met .l{font-size:.545rem;color:#9db4dd;font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-top:4px}
        #tab-dossiers .dk-met .s{font-size:.58rem;font-weight:700;margin-top:3px;color:#ffd9bb;line-height:1.3}
        #tab-dossiers .dk-met .s.ok{color:#8ff0c4}
        /* Sous 1360 px une colonne sur 9 devient trop étroite pour le libellé le
           plus long (« Demandes à traiter ») : on repasse à 5 colonnes / 2 lignes
           et on rend aux tuiles leur typo d'origine, la place est revenue. */
        @media(max-width:1360px){
          #tab-dossiers .dk-metrics{grid-template-columns:repeat(5,1fr);gap:9px}
          #tab-dossiers .dk-met{padding:10px 12px}
          #tab-dossiers .dk-met .n{font-size:1.3rem}
          #tab-dossiers .dk-met .l{font-size:.6rem;letter-spacing:.05em}
          #tab-dossiers .dk-met .s{font-size:.63rem}
        }
        /* 9 tuiles = 3×3 pile-poil : plus régulier que 4+4+1. */
        @media(max-width:1080px){#tab-dossiers .dk-metrics{grid-template-columns:repeat(3,1fr)}}
        /* iPhone (le bloc mobile plus bas repasse la grille à 2 colonnes) : à cette
           largeur « TRANSFERTS À LANCER » débordait sur deux lignes. On resserre le
           libellé — et lui seul — pour que les neuf tiennent chacun sur une ligne. */
        @media(max-width:880px){#tab-dossiers .dk-met .l{font-size:.545rem;letter-spacing:.02em}}
        /* Le bloc iPhone plus bas force 2 colonnes dès 880 px et l'emportait sur la
           règle iPad : 9 tuiles = 5 lignes sur un iPad portrait. On récupère le 3×3
           (3 lignes) avec une spécificité supérieure — #adminView en plus — car la
           règle concurrente est en !important. */
        @media (min-width:769px) and (max-width:880px) and (orientation:portrait){
          #adminView #tab-dossiers .dk-metrics{grid-template-columns:repeat(3,1fr) !important}
        }
        #tab-dossiers .dk-met .flag{position:absolute;top:-7px;right:9px;background:#ef4444;color:#fff;font-size:.58rem;font-weight:800;padding:2px 8px;border-radius:20px;border:2px solid #0e2a52}
        /* corps : bandeau file de travail pleine largeur + contenu pleine largeur */
        #tab-dossiers .dosB-main{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;align-items:start}
        #tab-dossiers .dosB-queue{position:sticky;top:10px;background:#fff;border:1px solid #e4ebf7;border-radius:17px;box-shadow:0 2px 10px -4px rgba(13,45,94,.14);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 20px)}
        @media(max-width:1080px){#tab-dossiers .dosB-queue{position:static;max-height:340px}}
        #tab-dossiers .dq-h{padding:13px 15px 11px;border-bottom:1px solid #eef2f9;background:linear-gradient(180deg,#fbfcff,#fff)}
        #tab-dossiers .dq-h b{font-weight:800;color:#0d2d5e;font-size:.96rem;display:flex;align-items:center;gap:9px}
        #tab-dossiers .dq-h b .nb{min-width:21px;height:21px;padding:0 6px;border-radius:11px;background:#f97316;color:#fff;font-size:.7rem;display:inline-flex;align-items:center;justify-content:center}
        #tab-dossiers .dq-h span{display:block;font-size:.68rem;color:#9aa6bd;font-weight:600;margin-top:3px}
        #tab-dossiers .dq-list{overflow-y:auto;padding:6px;flex:1}
        #tab-dossiers .dq-sec{font-size:.58rem;font-weight:800;color:#9aa6bd;text-transform:uppercase;letter-spacing:.08em;padding:9px 10px 4px}
        #tab-dossiers .dq-item{display:flex;gap:10px;padding:9px 10px;border-radius:12px;cursor:pointer;transition:.12s;border:1px solid transparent;align-items:stretch}
        #tab-dossiers .dq-item:hover{background:#f6f9ff;border-color:#e4ebf7}
        #tab-dossiers .dq-item .pr{width:4px;border-radius:3px;flex:none}
        #tab-dossiers .dq-item .pr.p1{background:#ef4444}
        #tab-dossiers .dq-item .pr.p2{background:#f97316}
        #tab-dossiers .dq-item .pr.p3{background:#2563eb}
        #tab-dossiers .dq-item .qt{flex:1;min-width:0}
        #tab-dossiers .dq-item .qt b{font-size:.78rem;color:#0f172a;font-weight:700;display:block;line-height:1.3}
        #tab-dossiers .dq-item .qt span{font-size:.68rem;color:#9aa6bd;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        #tab-dossiers .dq-item .go{align-self:center;width:24px;height:24px;border-radius:8px;border:1px solid #e4ebf7;background:#fff;color:#0d2d5e;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
        #tab-dossiers .dq-item:hover .go{background:#0d2d5e;color:#fff;border-color:#0d2d5e}
        #tab-dossiers .dq-empty{padding:22px 14px;text-align:center;color:#9aa6bd;font-size:.8rem}
        #tab-dossiers .dq-foot{padding:11px 15px;border-top:1px solid #eef2f9;font-size:.68rem;color:#9aa6bd;font-weight:600;background:#fbfcfe}
        /* ── À traiter + Veille clients : bandeau pleine largeur entre le deck et la gestion des clients ── */
        #tab-dossiers .dosB-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;min-width:0;align-items:stretch}
        #tab-dossiers .dosB-side .dosB-queue{position:static;top:auto;min-height:0;max-height:380px}
        #tab-dossiers .dosB-side .dq-list{max-height:none}
        #tab-dossiers #dos-veille:empty{display:none}
        @media(max-width:1080px){#tab-dossiers .dosB-side .dosB-queue{max-height:340px}}
        #tab-dossiers .vw-chips{display:flex;gap:6px;padding:10px 12px 2px;flex-wrap:wrap}
        #tab-dossiers .vw-chip{border:1px solid #e4ebf7;background:#fff;border-radius:20px;font-size:.66rem;font-weight:800;color:#5a6a8a;padding:5px 11px;cursor:pointer;transition:.12s;font-family:inherit}
        #tab-dossiers .vw-chip.on,#tab-dossiers .vw-chip:hover{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
        #tab-dossiers .vw-tico{align-self:center;width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
        #tab-dossiers .vw-tico.t1{background:#fdecec}
        #tab-dossiers .vw-tico.t2{background:#fff3e0}
        #tab-dossiers .vw-tico.t3{background:#eaf1fd}
        /* modale détail veille (appendée au body) — ⭐ 04/09/2026 (Selim) : les
           alertes de la carte « Veille entreprise » du dossier semblaient NON
           cliquables. Elles l'étaient : la modale s'ouvrait bien, mais DERRIÈRE
           le dossier plein écran (#dos-slide.nd3-mode est à z-index 3000, la
           modale était à 1200 — toutes deux fixes, dans le même contexte
           d'empilement) : invisible, donc « rien ne se passe ». Passée à 9950,
           au-dessus du dossier, du volet mail (3001) et du composeur (4000),
           sous les modales de signature / vérification NDA (9960+). Même classe
           pour la modale de la file « À traiter » (nxdq-ov) : inchangée là où
           elle marchait déjà. */
        .nxvw-ov{position:fixed;inset:0;background:rgba(9,20,40,.55);z-index:9950;display:flex;align-items:center;justify-content:center;padding:20px}
        .nxvw-card{background:#fff;border-radius:18px;max-width:720px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 24px 70px -18px rgba(9,20,40,.55)}
        .nxvw-head{padding:18px 22px 15px;background:linear-gradient(168deg,#0b2348,#123361 60%,#16407a);color:#fff;display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-radius:18px 18px 0 0;position:relative}
        .nxvw-head .org b{font-size:1.06rem;font-weight:800;display:block}
        .nxvw-head .org span{font-size:.7rem;color:#9db4dd;font-weight:700}
        .nxvw-badge{margin-left:auto;margin-right:26px;font-size:.66rem;font-weight:800;padding:5px 12px;border-radius:20px;white-space:nowrap}
        .nxvw-badge.b1{background:#fdecec;color:#c0392b}
        .nxvw-badge.b2{background:#fff3e0;color:#e65100}
        .nxvw-badge.b3{background:#eaf1fd;color:#0d4fb2}
        .nxvw-x{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:9px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-weight:800;cursor:pointer;font-family:inherit}
        .nxvw-body{padding:20px 22px}
        .nxvw-sec{font-size:.6rem;font-weight:800;color:#9aa6bd;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}
        .nxvw-diff{display:grid;grid-template-columns:1fr 34px 1fr;gap:10px;margin-bottom:18px}
        @media(max-width:640px){.nxvw-diff{grid-template-columns:1fr}.nxvw-diff .arr{display:none}}
        .nxvw-diff .cell{border:1px solid #e4ebf7;border-radius:13px;padding:12px 14px;background:#fbfcfe}
        .nxvw-diff .cell .lbl{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
        .nxvw-diff .cell.old{background:#fdf6f5;border-color:#f2d5cf}
        .nxvw-diff .cell.old .lbl{color:#c0392b}
        .nxvw-diff .cell.new{background:#f4fbf6;border-color:#c8e6d3}
        .nxvw-diff .cell.new .lbl{color:#1b7a3d}
        .nxvw-diff .cell .v{font-size:.82rem;font-weight:700;color:#0f172a;line-height:1.45;white-space:pre-line;word-break:break-word}
        .nxvw-diff .arr{display:flex;align-items:center;justify-content:center;color:#9aa6bd;font-weight:800;font-size:17px}
        .nxvw-impact{border:1px solid #fed7aa;background:#fff7ed;border-radius:13px;padding:12px 15px;margin-bottom:18px;display:flex;gap:11px}
        .nxvw-impact.crit{border-color:#f5c6c0;background:#fdf3f2}
        .nxvw-impact b{display:block;font-size:.74rem;color:#b45309;margin-bottom:2px}
        .nxvw-impact.crit b{color:#c0392b}
        .nxvw-impact span{font-size:.74rem;color:#5a6a8a;font-weight:600;line-height:1.5}
        .nxvw-src{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
        .nxvw-src a{font-size:.68rem;font-weight:700;color:#0d4fb2;background:#eaf1fd;border:1px solid #c9dbf6;border-radius:8px;padding:5px 11px;text-decoration:none}
        .nxvw-actions{display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid #eef2f9;padding:15px 22px;background:#fbfcfe;border-radius:0 0 18px 18px}
        .nxvw-btn{border:0;border-radius:11px;font-size:.76rem;font-weight:800;padding:10px 16px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;transition:.13s}
        .nxvw-btn.ok{background:#e8f6ee;color:#1b7a3d}
        .nxvw-btn.ok:hover{background:#d4eede}
        .nxvw-btn.pri{background:#0d2d5e;color:#fff}
        .nxvw-btn.pri:hover{background:#123c7c}
        .nxvw-btn.sec{background:#fff;color:#0d2d5e;border:1px solid #e4ebf7}
        .nxvw-btn.sec:hover{border-color:#0d2d5e}
        /* historique veille — carte du dossier client */
        .vwh-list{display:flex;flex-direction:column;gap:2px;max-height:250px;overflow-y:auto}
        .vwh-row{display:flex;gap:9px;align-items:center;padding:7px 8px;border-radius:10px;cursor:pointer;transition:.12s;border:1px solid transparent;min-width:0}
        .vwh-row:hover{background:#f6f9ff;border-color:#e4ebf7}
        .vwh-ico{width:26px;height:26px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
        .vwh-ico.t1{background:#fdecec}
        .vwh-ico.t2{background:#fff3e0}
        .vwh-ico.t3{background:#eaf1fd}
        .vwh-txt{flex:1;min-width:0}
        .vwh-txt b{display:block;font-size:.72rem;color:#0f172a;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .vwh-txt span{display:block;font-size:.64rem;color:#9aa6bd;font-weight:600}
        .vwh-b{font-size:.6rem;font-weight:800;border-radius:20px;padding:3px 8px;white-space:nowrap;flex:none}
        .vwh-b.done{background:#e8f6ee;color:#1b7a3d}
        .vwh-b.open{background:#fff3e0;color:#e65100}
        .vwh-empty{font-size:.72rem;color:#5a6a8a;font-weight:600;line-height:1.5;padding:2px 1px}
        .vwh-foot{margin-top:8px;padding-top:8px;border-top:1px dashed #e4ebf7;font-size:.62rem;color:#9aa6bd;font-weight:600}
        #tab-dossiers .dosB-content{min-width:0}
        /* navigation 4 familles */
        #tab-dossiers .dosB-famnav{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:10px}
        @media(max-width:900px){#tab-dossiers .dosB-famnav{grid-template-columns:repeat(2,1fr)}}
        #tab-dossiers .dosB-fam{background:#fff;border:1.4px solid #e4ebf7;border-radius:14px;padding:10px 12px;cursor:pointer;transition:.15s;position:relative;display:flex;gap:10px;align-items:center;font-family:inherit;text-align:left}
        #tab-dossiers .dosB-fam:hover{border-color:#1c4a8e}
        #tab-dossiers .dosB-fam.on{border-color:#0d2d5e;background:#0d2d5e;color:#fff;box-shadow:0 12px 26px -14px rgba(13,45,94,.65)}
        #tab-dossiers .dosB-fam .fe{width:33px;height:33px;border-radius:10px;background:#f5f8fc;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
        #tab-dossiers .dosB-fam.on .fe{background:rgba(255,255,255,.16)}
        #tab-dossiers .dosB-fam .fl b{font-size:.85rem;font-weight:800;display:block;letter-spacing:-.01em;color:#0d2d5e}
        #tab-dossiers .dosB-fam.on .fl b{color:#fff}
        #tab-dossiers .dosB-fam .fl span{font-size:.62rem;font-weight:600;color:#9aa6bd}
        #tab-dossiers .dosB-fam.on .fl span{color:#b9c9e6}
        #tab-dossiers .dckf-nb{position:absolute;top:-7px;right:9px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.62rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:2px solid #f5f7fb}
        /* badges des sous-onglets (conservés) */
        #tab-dossiers .dck-nb{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#dc2626;color:#fff;font-size:9.5px;font-weight:800;margin-left:5px}
        #tab-dossiers .subtabs-row .fb.active .dck-nb{background:rgba(255,255,255,.3)}
        #tab-dossiers .subtabs-row .fb.dck-hide{ display:none !important; }
        #tab-dossiers .subtabs-row{margin-bottom:12px}
        /* ═══ Dossier client « command center » : colonne résumé + onglets B ═══ */
        .nd3-dsubnav{background:linear-gradient(168deg,#0b2348,#123361 60%,#16407a) !important;border-radius:14px !important;padding:5px !important;gap:3px !important;width:100% !important;max-width:100% !important;overflow-x:auto;box-shadow:0 12px 26px -16px rgba(13,45,94,.6)}
        .nd3-dsubnav button{color:#9db4dd !important;background:transparent !important;border:none;border-bottom:2.5px solid transparent !important;border-radius:9px !important;font-weight:700 !important;white-space:nowrap}
        .nd3-dsubnav button:hover{color:#fff !important;background:rgba(255,255,255,.09) !important}
        .nd3-dsubnav button.on{color:#fff !important;background:rgba(255,255,255,.13) !important;border-bottom-color:#f97316 !important}
        /* Sous-nav du dossier : les 10 onglets (dont Satisfaction) tiennent sur
           UNE SEULE ligne — jamais de retour à la ligne. Les boutons se partagent
           la largeur et rétrécissent (police / padding / icône) selon l'écran. */
        .nd3-cmdtop .nd3-dsubnav{flex-wrap:nowrap !important;overflow-x:hidden !important;overflow-y:hidden !important;scrollbar-width:none !important;-webkit-overflow-scrolling:touch}
        .nd3-cmdtop .nd3-dsubnav::-webkit-scrollbar{display:none !important}
        .nd3-dsubnav button .ndstb{font-size:calc(9.5px*var(--ndsf,1)) !important;padding:calc(2px*var(--ndsf,1)) calc(6px*var(--ndsf,1)) !important;margin-left:calc(4px*var(--ndsf,1)) !important}
        .nd3-bwrap{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:14px;align-items:start}
        @media(max-width:1000px){.nd3-bwrap{grid-template-columns:minmax(0,1fr)}.nd3-bside{min-width:0;max-width:100%}}
        .nd3-bmain{min-width:0}
        .nd3-bside{position:sticky;top:10px;display:flex;flex-direction:column;gap:11px}
        @media(max-width:1000px){.nd3-bside{position:static}}
        .ndside-next{background:#fff7f0;border:1.4px solid #f9c799;border-radius:14px;padding:12px 14px}
        .ndside-next .k{font-size:.58rem;font-weight:800;color:#c2410c;text-transform:uppercase;letter-spacing:.07em}
        .ndside-next b{display:block;font-size:.86rem;color:#0d2d5e;margin-top:4px;line-height:1.35}
        .ndside-next span{font-size:.7rem;color:#64748b;display:block;margin-top:2px}
        .ndside-next .nx-go{margin-top:9px;width:100%;border:none;border-radius:10px;background:#f97316;color:#fff;font-family:inherit;font-weight:700;font-size:.78rem;padding:8px 12px;cursor:pointer}
        .ndside-next .nx-go:hover{background:#fb8b3c}
        .ndside-card{background:#fff;border:1px solid #e4ebf7;border-radius:14px;box-shadow:0 2px 10px -4px rgba(13,45,94,.12);overflow:hidden}
        .ndside-card .sh{padding:10px 13px 8px;font-weight:800;font-size:.78rem;color:#0d2d5e;border-bottom:1px solid #eef2f9;display:flex;align-items:center;gap:7px}
        .ndside-card .sb{padding:10px 13px}
        .ndside-line{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:.75rem;border-bottom:1px dashed #eef2f9}
        .ndside-line:last-child{border-bottom:none}
        .ndside-line .k{color:#64748b;flex:none}
        .ndside-line .v{font-weight:700;color:#0d2d5e;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .ndside-pbar{height:7px;border-radius:6px;background:#e2e9f5;overflow:hidden;margin-bottom:8px}
        .ndside-pbar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#1fa97a,#3ecf8e)}
        .ndside-act{display:flex;gap:8px;padding:5px 0;font-size:.72rem;align-items:flex-start}
        .ndside-act .ad{width:7px;height:7px;border-radius:50%;background:#2563eb;margin-top:4px;flex:none}
        .ndside-act b{color:#0d2d5e;display:block;line-height:1.3}
        .ndside-act span{color:#9aa6bd;font-size:.64rem}
        /* ═══ Onglets modules : chips individuelles à liseré orange (maquette B) ═══ */
        #tab-dossiers #dos-subtabs{background:transparent !important;border:none !important;box-shadow:none !important;padding:0 !important;gap:6px !important;display:flex !important;flex-wrap:wrap !important;border-radius:0 !important;margin-bottom:13px !important}
        #tab-dossiers #dos-subtabs .fb{background:#fff !important;border:1.4px solid #e4ebf7 !important;color:#64748b !important;font-size:12.5px !important;font-weight:700 !important;padding:8px 15px !important;border-radius:100px !important;box-shadow:none !important}
        #tab-dossiers #dos-subtabs .fb:hover{border-color:#1c4a8e !important;color:#0d2d5e !important;background:#fff !important;transform:none !important}
        #tab-dossiers #dos-subtabs .fb.active{background:#fff7f0 !important;border-color:#f97316 !important;color:#c2410c !important;box-shadow:none !important}
        #tab-dossiers #dos-subtabs .fb.active:hover{background:#fff7f0 !important;color:#c2410c !important}
        #tab-dossiers #dos-subtabs .fb .dck-nb{background:#dc2626 !important}
        #tab-dossiers #dos-subtabs .fb.active .dck-nb{background:#f97316 !important;color:#fff !important}
        /* ═══ En-têtes de panneaux (registre / relances) façon maquette ═══ */
        #tab-dossiers .dosB-ph{display:flex;flex-direction:column;gap:2px;min-width:220px}
        #tab-dossiers .dosB-ph b{font-size:1.12rem;font-weight:800;letter-spacing:-.015em;color:#0d2d5e}
        #tab-dossiers .dosB-ph span{font-size:.74rem;color:#64748b;font-weight:500}
        /* ═══ Registre & relances : alignement visuel maquette B ═══ */
        #tab-dossiers #dos-sub-registre .rq-kpi,#tab-dossiers #dos-sub-relances .rc-kpi{background:#fff !important;border:1px solid #e4ebf7 !important;border-radius:12px !important}
        #tab-dossiers #dos-sub-registre .rq-act.cert{background:#efe9ff !important;border:1px solid #ddd2fb !important;color:#6b4bd6 !important;border-radius:8px !important}
        #tab-dossiers #dos-sub-registre .rq-act.cert:hover{background:#e4daff !important;border-color:#6b4bd6 !important}
        #tab-dossiers #dos-sub-registre .rq-act.send{background:#e8f6ee !important;border:1px solid #c8e6d3 !important;color:#1b7a3d !important;border-radius:8px !important}
        #tab-dossiers #dos-sub-registre .rq-act.send:hover{background:#d8efe2 !important;border-color:#1b7a3d !important}
        /* select de filtre (type de demande) — style maquette */
        #tab-dossiers .fsel{border:1px solid #e4ebf7;background:#fff;border-radius:10px;padding:8px 11px;font-size:12.5px;font-weight:600;color:#0f172a;outline:none;cursor:pointer;font-family:inherit}
        #tab-dossiers .fsel:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
        /* ═══ Dossier client natif : PLEINE PAGE « command center » (maquette B) ═══ */
        #dos-slide.nd3-mode{left:0 !important;top:0 !important;z-index:3000 !important}
        body.nx-topnav #dos-slide.nd3-mode{left:0 !important;top:0 !important}
        #dos-slide.nd3-mode > div:first-child{display:none !important}
        #dos-slide.nd3-mode #dos-slide-body{padding:0 !important;background:#f2f5fa}
        /* header sticky : Retour + identité + génération + corbeille + toggle */
        .nd3-cmdtop{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:13px;flex-wrap:wrap;background:linear-gradient(168deg,#0b2348,#123361 60%,#16407a);padding:11px 26px;box-shadow:0 14px 30px -18px rgba(13,45,94,.65)}
        .nd3-back{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);color:#fff;border-radius:10px;padding:8px 14px;font-weight:700;font-size:.8rem;cursor:pointer;font-family:inherit;transition:.14s}
        .nd3-back:hover{background:rgba(255,255,255,.22)}
        .nd3-ctid{min-width:0}
        .nd3-ctname{color:#fff;font-weight:800;font-size:1.02rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
        .nd3-ctid .nd3-pills{margin-top:4px}
        .nd3-ctacts{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
        .nd3-ctacts .fc-gen-btn{background:rgba(255,255,255,.12) !important;border:1px solid rgba(255,255,255,.22) !important;color:#fff !important;box-shadow:none !important;padding:8px 13px !important;font-size:12.5px !important;border-radius:9px !important}
        .nd3-ctacts .fc-gen-btn:hover{background:rgba(255,255,255,.22) !important}
        /* corps paddé du dossier pleine page */
        .nd3-wrap{padding:18px clamp(26px,3vw,64px) 70px;max-width:none;margin:0 auto}
        /* bande sections : rangée 2 DU header (transparente sur le navy, badges de statut) */
        .nd3-cmdtop .nd3-dsubnav{flex-basis:100%;background:transparent !important;box-shadow:none !important;padding:6px 0 0 !important;margin:4px 0 0 !important;border-radius:0 !important}
        .ndstb{display:inline-flex;align-items:center;font-size:.58rem;font-weight:800;padding:2px 7px;border-radius:20px;margin-left:7px;background:rgba(255,255,255,.14);color:#cdd9ef;line-height:1.4}
        .ndstb.ok{background:rgba(31,169,122,.32);color:#8ff0c4}
        .ndstb.warn{background:rgba(249,115,22,.3);color:#ffd9bb}
        .ndstb.red{background:rgba(239,68,68,.32);color:#ffc9c9}
        /* Onglets du dossier (Demande, Revue, Contrat…) = VRAIS boutons encadrés,
           bien lisibles sur le hero navy (desktop + iPad). Actif = pastille blanche pleine. */
        .nd3-cmdtop .nd3-dsubnav{gap:4px !important;padding-top:8px !important}
        /* flex:1 1 auto → chaque bouton prend la largeur de SON contenu (label +
           icône + coche) et se partage l'espace restant, SANS rogner (pas de
           min-width:0, pas d'overflow:hidden sur le bouton). La coche reste
           toujours visible. La police/icône s'adaptent un peu à l'écran. */
        .nd3-cmdtop .nd3-dsubnav button{flex:1 1 auto !important;display:flex !important;align-items:center !important;justify-content:center !important;white-space:nowrap;background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.20) !important;border-radius:11px !important;color:#c7d6f2 !important;padding:calc(7px*var(--ndsf,1)) calc(8px*var(--ndsf,1)) !important;font-weight:700 !important;font-size:calc(clamp(9.5px,0.72vw,12px)*var(--ndsf,1)) !important;gap:calc(5px*var(--ndsf,1)) !important;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
        .nd3-cmdtop .nd3-dsubnav button svg{flex:none;width:calc(clamp(11px,0.7vw,13px)*var(--ndsf,1)) !important;height:calc(clamp(11px,0.7vw,13px)*var(--ndsf,1)) !important}
        /* petits laptops : on efface d'abord les icônes (les labels + coches
           restent) pour garder l'unique ligne sans jamais couper le texte. */
        @media(max-width:1300px){ .nd3-cmdtop .nd3-dsubnav button svg{display:none !important} .nd3-cmdtop .nd3-dsubnav button{gap:calc(2px*var(--ndsf,1)) !important;padding:calc(7px*var(--ndsf,1)) calc(6px*var(--ndsf,1)) !important;font-size:calc(11px*var(--ndsf,1)) !important} }
        .nd3-cmdtop .nd3-dsubnav button:hover{background:rgba(255,255,255,.14) !important;border-color:rgba(255,255,255,.36) !important;color:#fff !important}
        .nd3-cmdtop .nd3-dsubnav button.on{background:#fff !important;border-color:#fff !important;color:#0d2d5e !important;box-shadow:0 6px 16px -7px rgba(3,12,32,.75) !important}
        .nd3-cmdtop .nd3-dsubnav button.on svg{stroke:#0d2d5e !important}
        .nd3-cmdtop .nd3-dsubnav button.on .ndstb{background:#e7eefb !important;color:#1d4ed8 !important}
        .nd3-cmdtop .nd3-dsubnav button.on .ndstb.ok{background:#dcfce7 !important;color:#16a34a !important}
        .nd3-cmdtop .nd3-dsubnav button.on .ndstb.warn{background:#ffedd5 !important;color:#c2410c !important}
        .nd3-cmdtop .nd3-dsubnav button.on .ndstb.red{background:#fee2e2 !important;color:#dc2626 !important}
        @media(max-width:1080px){.nd3-cmdtop{position:static}}
        /* carte « Demandes du dossier » + grille de cartes (maquette B) */
        .ndem-wrap{background:#fff;border:1px solid #e4ebf7;border-radius:16px;box-shadow:0 2px 10px -4px rgba(13,45,94,.14);margin-bottom:14px;overflow:hidden}
        .ndem-ch{display:flex;align-items:center;gap:11px;padding:13px 17px;border-bottom:1px solid #eef2f9;flex-wrap:wrap}
        .ndem-ch .ic{width:31px;height:31px;border-radius:9px;background:#eff4ff;display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}
        .ndem-ch b{color:#0d2d5e;font-size:.95rem;font-weight:800}
        .ndem-ch .sub{font-size:.7rem;color:#9aa6bd;font-weight:600;margin-top:1px}
        .ndem-ch .acts{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}
        .ndem-cb{padding:14px 17px}
        .ndem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:11px;align-items:stretch}
        .ndem-mc{position:relative;display:block;width:100%;text-align:left;border:1.4px solid #e4ebf7;border-radius:14px;padding:13px 14px;background:#fff;transition:.14s}
        .ndem-mc:hover{border-color:#1c4a8e;transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(13,45,94,.4)}
        .ndem-mc.sel{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.14)}
        .ndem-mc.add{border:1.4px dashed #c9d6ea;display:flex;align-items:center;justify-content:center;gap:8px;color:#2563eb;font-weight:700;font-size:.8rem;min-height:74px;cursor:pointer;font-family:inherit;background:#fbfdff}
        .ndem-mc.add:hover{background:#f2f7ff;transform:none;border-color:#2563eb;box-shadow:none}
        /* fiches legacy (JotForm / comité) : barre du slide simplement passée en navy */
        #dos-slide:not(.nd3-mode) > div:first-child{background:linear-gradient(168deg,#0b2348,#123361 60%,#16407a) !important;border-bottom:1px solid rgba(255,255,255,.14) !important}
        #dos-slide:not(.nd3-mode) > div:first-child > button{background:rgba(255,255,255,.12) !important;border:1px solid rgba(255,255,255,.24) !important;color:#fff !important}
        #dos-slide-title{color:#fff !important}
        #dos-slide-sub{color:#9db4dd !important}
        #dos-slide-jot-link{color:#cdd9ef !important}
      
.nx2-scroll{overflow-x:auto;border-radius:10px}
table.nx2-table{border-collapse:separate;border-spacing:0;width:100%;min-width:0;font-size:12.5px}
.nx2-table thead th{background:#f7f9fd;border-bottom:1px solid #e4ebf7;color:#6b7890;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:9px 5px;text-align:left;white-space:nowrap;position:sticky;top:0;z-index:5}
.nx2-table tbody td{border-bottom:1px solid #eef2f9;padding:7px 5px;vertical-align:middle;white-space:nowrap}
.nx2-table tbody tr:hover{background:#fafcff}
.nx2-chk{width:42px;text-align:center;position:sticky;left:0;background:#fff;z-index:4}
.nx2-table thead th.nx2-chk{background:#f7f9fd;z-index:6}
.nx2-table tbody tr:hover td.nx2-chk{background:#fafcff}
.nx2-cfm{width:22px;height:22px;border:1.6px solid #cdd7e8;border-radius:7px;background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.nx2-cfm:hover{border-color:#2563eb}
.nx2-cfm svg{width:14px;height:14px;color:#fff;opacity:0;transform:scale(.5);transition:.15s}
.nx2-cfm.nx2-on{background:linear-gradient(135deg,#1fa97a,#3ecf8e);border-color:transparent}
.nx2-cfm.nx2-on svg{opacity:1;transform:none}
.nx2-dt{border:1px solid transparent;background:transparent;font-family:inherit;font-size:12px;color:#1a2438;padding:4px 4px;border-radius:7px;cursor:pointer;width:96px}
.nx2-dt:hover{background:#eef4ff}
.nx2-dt:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1);cursor:text}
.nx2-org{font-weight:600;color:#0d2d5e;font-family:inherit;font-size:12.5px;border:1px solid transparent;background:transparent;padding:6px 6px;border-radius:7px;width:132px;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:.13s}
.nx2-org:hover{background:#eef4ff}
.nx2-org:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1);cursor:text}
.nx2-resp{border:1px dashed transparent;background:#f3f6fc;color:#0d2d5e;font-weight:600;font-size:12px;padding:4px 8px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.13s;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx2-resp:hover{border-color:#c7d4ea;background:#eef4ff}
.nx2-resp.nx2-empty{color:#9aa6bd;background:#f6f8fc}
.nx2-av{width:22px;height:22px;border-radius:50%;background:#0d2d5e;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.nx2-resp.nx2-empty .nx2-av{background:#c7d0e0}
.nx2-pill{border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:12px;padding:5px 11px;border-radius:100px;display:inline-flex;align-items:center;gap:6px;transition:.13s;line-height:1.3}
.nx2-pill:hover{filter:brightness(.97);box-shadow:0 0 0 3px rgba(13,45,94,.06)}
.nx2-orgtxt{display:none}
.nx2-pill .nxts{display:none}
.nx2-car{opacity:.5;font-size:9px;margin-left:1px}
.nx2-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.nx2-dw{display:flex;justify-content:center}
.nx2-doc{width:31px;height:31px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:.13s;border:1px solid transparent}
.nx2-doc:hover{transform:translateY(-1px);box-shadow:0 6px 14px -6px rgba(13,45,94,.35)}
.nx2-doc.pdf{background:#efe9ff;color:#6b4bd6;border-color:#ddd2fb}
.nx2-doc.img{background:#e6f3ff;color:#2274c7;border-color:#cfe6fb}
.nx2-doc.sig{background:#eafaf2;color:#1b9c68;border-color:#c9efdd}
.nx2-doc svg{width:18px;height:18px}
.nx2-doc.nx2-missing{background:#f7f9fc;border:1.4px dashed #dbe3f0;color:#b3bfd2;font-size:19px;font-weight:400}
.nx2-doc.nx2-missing:hover{border-color:#2563eb;color:#2563eb;background:#f2f7ff}
.nx2-doc.nx2-ok::after{content:"";position:absolute;right:-3px;bottom:-3px;width:12px;height:12px;border-radius:50%;background:#22a06b;border:2px solid #fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.nx2-thadmin{background:#f0f4ff !important}
/* ── Chargement des listes Dossiers (anneau animé) ── */
.nx-ldwrap{display:flex;align-items:center;justify-content:center;gap:12px;padding:34px 10px;color:#5a6b84;font-size:13px;font-weight:600}
.nx-ldspin{width:22px;height:22px;border-radius:50%;border:3px solid #dbe4f2;border-top-color:#F97316;animation:nxldr .8s linear infinite;flex:none}
@keyframes nxldr{to{transform:rotate(360deg)}}
/* ── Organigramme DÉCLARÉ (formulaire natif) : chip table + arbre + visionneuse ── */
.nx2-doc.nxoga{background:#e8f6ee;color:#1b7a3d;border-color:#c8e6d3;font-size:15px}
.nxoga-tree{overflow-x:auto;padding:16px 4px 6px;background:#f6f9fe;border-radius:12px}
.nxoga-tree ul{display:flex;justify-content:center;padding-top:22px;position:relative;margin:0;list-style:none;padding-left:0}
.nxoga-tree li{position:relative;padding:22px 8px 0;text-align:center}
.nxoga-tree li::before,.nxoga-tree li::after{content:'';position:absolute;top:0;height:22px;border-top:2px solid #c9d6ea;width:50%}
.nxoga-tree li::before{left:0;border-right:2px solid #c9d6ea;right:50%;width:50%}
.nxoga-tree li::after{left:50%;border-left:0}
.nxoga-tree li:only-child::before,.nxoga-tree li:only-child::after{display:none}
.nxoga-tree li:only-child{padding-top:0}
.nxoga-tree li:first-child::before{border-top:0}
.nxoga-tree li:last-child::after{border-top:0}
.nxoga-tree li:first-child::after{border-top:2px solid #c9d6ea}
.nxoga-tree li:last-child::before{border-right:2px solid #c9d6ea;border-top:2px solid #c9d6ea}
.nxoga-tree ul ul::before{content:'';position:absolute;top:0;left:50%;border-left:2px solid #c9d6ea;height:22px}
.nxoga-node{display:inline-block;background:#fff;border:1.5px solid #e4ebf5;border-radius:12px;padding:9px 13px;min-width:132px;box-shadow:0 4px 10px rgba(13,45,94,.06)}
.nxoga-node.root{background:linear-gradient(120deg,#0A2249,#123C7B);border-color:transparent}
.nxoga-node .nn{font-size:12.5px;font-weight:800;color:#0d2d5e}
.nxoga-node .nf{font-size:11px;color:#5a6b84;margin-top:2px}
.nxoga-node.root .nn{color:#fff}.nxoga-node.root .nf{color:#a8c4e8}
.nxoga-node .nr{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.nxoga-node .nr span{font-size:9px;font-weight:800;background:#e8efff;color:#2563eb;border-radius:6px;padding:2px 6px}
.nxoga-node.root .nr span{background:rgba(255,255,255,.16);color:#c5d4ff}
.nxoga-kpis{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 4px}
.nxoga-kpis div{font-size:12px;color:#5a6b84}.nxoga-kpis b{display:block;color:#0d2d5e;font-size:14px}
#nxoga-modal{display:none;position:fixed;inset:0;z-index:9958;background:rgba(10,25,50,.55);align-items:center;justify-content:center;padding:16px;overflow-y:auto}
#nxoga-modal.visible{display:flex}
#nxoga-modal .box{background:#fff;border-radius:16px;padding:22px;max-width:760px;width:100%;box-shadow:0 24px 60px rgba(10,30,60,.35);margin:auto}
.nx2-tag{display:inline-block;font-size:9px;font-weight:700;color:#5b6f9c;background:#e3eaff;border-radius:5px;padding:1px 5px;margin-left:4px;text-transform:none;letter-spacing:0}
.nx2-legend{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.nx2-lglbl{font-size:10.5px;font-weight:700;color:#9aa6bd;text-transform:uppercase;letter-spacing:.05em}
.nx2-lchip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:4px 9px;border-radius:100px}
.nx2-lchip i{width:8px;height:8px;border-radius:50%}
.nx2-menu{position:fixed;z-index:9999;background:#fff;border:1px solid #e4ebf7;border-radius:12px;box-shadow:0 16px 40px -12px rgba(13,45,94,.34);padding:6px;min-width:210px}
.nx2-mi{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:13px;font-weight:500;color:#1a2438}
.nx2-mi:hover{background:#f5f7fb}
.nx2-mi.nx2-cur{background:#eff4ff}
.nx2-mi.nx2-danger{color:#c62828}
.nx2-mi svg{width:16px;height:16px;color:#6b7890;flex:none}
.nx2-mi.nx2-danger svg{color:#c62828}
.nx2-mi .nx2-dot{width:9px;height:9px;flex:none}
.nx2-mh{padding:8px 10px 6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd}
.nx2-mfile{display:flex;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #eef2f9;margin-bottom:4px}
.nx2-fth{width:38px;height:38px;border-radius:8px;background:#efe9ff;color:#6b4bd6;display:flex;align-items:center;justify-content:center;flex:none}
.nx2-fth svg{width:19px;height:19px}
.nx2-mfile b{font-size:12.5px;font-weight:600;display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx2-mfile span{font-size:11px;color:#9aa6bd}
.nx2-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);background:#0d2d5e;color:#fff;font-size:13px;font-weight:500;padding:11px 18px;border-radius:12px;box-shadow:0 18px 40px -14px rgba(13,45,94,.6);opacity:0;pointer-events:none;transition:.28s;z-index:10000;max-width:90vw}
.nx2-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* bouton ouvrir (1re colonne de la table) */
/* ── Vue TRANSFERT : 2 colonnes documents en plus → table compactée pour tenir
      à l'écran sans défilement latéral (libellés courts côté ND_DOCS). ── */
table.nx2-table.nx2-tr-compact{table-layout:fixed;width:100%;font-size:12px}
.nx2-tr-compact thead th{padding:8px 5px;font-size:9.5px;white-space:normal;line-height:1.15}
.nx2-tr-compact tbody td{padding:7px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx2-tr-compact thead th:nth-child(1),.nx2-tr-compact tbody td:nth-child(1){width:28px}
.nx2-tr-compact thead th:nth-child(2),.nx2-tr-compact tbody td:nth-child(2){width:84px}
/* Vue Transfert = 13 colonnes. TOUTES sont dimensionnees, et la somme est
   calibree pour tenir des 1180 px (iPad paysage). Deux pieges evites :
   - une colonne laissee libre (RESPONSABLE hier, RAISON SOCIALE ensuite)
     rafle tout l'espace restant → grand vide + colonnes de droite chassees ;
   - une somme trop large → table-layout:fixed ne retrecit pas, on scrolle.
   Ici le navigateur repartit le surplus proportionnellement : chaque colonne
   respire, aucune ne se vide.  Ne PAS augmenter sans remesurer a 1180 px. */
.nx2-tr-compact thead th:nth-child(3),.nx2-tr-compact tbody td:nth-child(3){width:162px}
.nx2-tr-compact thead th:nth-child(4),.nx2-tr-compact tbody td:nth-child(4){width:170px}
.nx2-tr-compact thead th:nth-child(5),.nx2-tr-compact tbody td:nth-child(5){width:96px}
.nx2-tr-compact thead th:nth-child(6),.nx2-tr-compact tbody td:nth-child(6){width:96px}
.nx2-tr-compact thead th:nth-child(n+7),.nx2-tr-compact tbody td:nth-child(n+7){width:44px}
.nx2-tr-compact thead th:nth-child(10),.nx2-tr-compact tbody td:nth-child(10){width:86px}
/* Certificat + rapport de l'ancien certificateur : en-tetes sur 2 mots. */
.nx2-tr-compact thead th:nth-child(12),.nx2-tr-compact tbody td:nth-child(12),
.nx2-tr-compact thead th:nth-child(13),.nx2-tr-compact tbody td:nth-child(13){width:52px}
.nx2-tr-compact .nx2-dt{width:100%;min-width:0;font-size:11px;padding:3px 3px}
.nx2-tr-compact .nx2-org{width:100%;min-width:0;font-size:11.5px;padding:4px 4px}
.nx2-tr-compact .nx2-resp{max-width:100%;font-size:11px;gap:4px;padding:3px 6px}
.nx2-tr-compact .nx2-av{width:17px;height:17px;font-size:8.5px}
.nx2-tr-compact .nx2-pill{font-size:10px;padding:3px 6px;gap:2px;max-width:100%;overflow:hidden}
.nx2-tr-compact .nx2-car{display:none}
.nx2-tr-compact .nx2-doc{width:26px;height:26px}
.nx2-tr-compact .nx2-doc svg{width:14px;height:14px}
.nx2-tr-compact td:nth-child(10)>div{max-width:100%!important;gap:2px!important}
.nx2-open{width:40px;text-align:center}
.nx2-openbtn{width:27px;height:27px;border-radius:8px;border:1px solid #e4ebf7;background:#fff;color:#0d2d5e;font-size:17px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.13s}
.nx2-openbtn:hover{background:#0d2d5e;color:#fff;border-color:#0d2d5e}
/* ===== Dossier client détaillé (nd3-*) ===== */
.nd3{--o:#f97316;--o2:#fb8b3c}
.nd3-hero{border-radius:18px;background:linear-gradient(180deg,#12294f,#0e2246);color:#fff;padding:18px 22px;position:relative;overflow:hidden}
.nd3-hr1{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.nd3-av{width:56px;height:56px;border-radius:14px;background:#fff;color:#0d2d5e;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:800;flex:none}
.nd3-h1{font-size:1.35rem;font-weight:800;margin:0 0 7px;letter-spacing:-.02em;color:#fff}
.nd3-pills{display:flex;gap:7px;flex-wrap:wrap}
.nd3-pill{font-weight:600;font-size:.74rem;padding:4px 10px;border-radius:100px}
.nd3-pill.type{background:rgba(255,255,255,.16);color:#fff}
.nd3-pill.norme{background:rgba(122,160,255,.24);color:#dbe6ff}
.nd3-meta{display:flex;gap:26px;flex-wrap:wrap;margin-left:auto}
.nd3-meta .k{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:#8ea6d4;font-weight:700}
.nd3-meta .v{font-size:.86rem;font-weight:600;margin-top:3px;color:#fff;max-width:210px}
.nd3-hr2{display:flex;align-items:center;gap:9px;margin-top:16px;flex-wrap:wrap}
.nd3-btn{border:none;border-radius:10px;font-family:inherit;font-weight:600;font-size:.84rem;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;transition:.14s}
.nd3-btn svg{width:15px;height:15px}
.nd3-d{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2)}
.nd3-d:hover{background:rgba(255,255,255,.2)}
.nd3-trash{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.2);color:#ffd3db;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.nd3-trash svg{width:16px;height:16px}.nd3-trash:hover{background:#dc3552;border-color:#dc3552;color:#fff}
.nd3-toggle{margin-left:auto;display:inline-flex;background:rgba(255,255,255,.12);border-radius:10px;padding:4px}
.nd3-toggle button{border:none;background:transparent;color:#cdd9ef;font-weight:600;font-size:.83rem;padding:7px 17px;border-radius:8px;cursor:pointer}
.nd3-toggle button.on{background:#fff;color:#0d2d5e}
.nd3-track-card{background:#fff;border:1px solid #e4ebf7;border-radius:14px;padding:16px 22px 18px;margin:14px 0}
.nd3-track-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.nd3-track-head b{color:#0d2d5e}.nd3-track-head .ref{font-size:.8rem;color:#6b7890;font-weight:600}
.nd3-track{display:flex;flex-wrap:wrap}
.nd3-phpill{flex-basis:100%;margin-bottom:6px}
.nd3-phpill+.nd3-step::before{display:none}
.nd3-step{flex:1;text-align:center;position:relative;cursor:pointer;min-width:0}
.nd3-step::before{content:"";position:absolute;top:13px;left:calc(-50% + 14px);width:calc(100% - 28px);height:3px;background:#dbe3ef;z-index:1;border-radius:2px}
.nd3-step:first-child::before{display:none}
.nd3-step.done::before,.nd3-step.cur::before{background:#0d2d5e}
.nd3-dot{width:28px;height:28px;border-radius:50%;background:#fff;border:2.5px solid #dbe3ef;display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative;z-index:2}
.nd3-dot svg{width:14px;height:14px;color:#fff}
.nd3-step.done .nd3-dot{background:#0d2d5e;border-color:#0d2d5e}
.nd3-step.cur .nd3-dot{background:var(--o);border-color:var(--o);box-shadow:0 0 0 5px rgba(249,115,22,.18)}
.nd3-slbl{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#9aa6bd;margin-top:8px;line-height:1.2;padding:0 3px}
.nd3-step.done .nd3-slbl{color:#0d2d5e}.nd3-step.cur .nd3-slbl{color:var(--o)}
/* Étape finale « Retrait de certificat » — ajoutée après « Certifié » quand la
   ligne du registre est au statut « retiré » (ndRenderStepper). */
.nd3-step.ko::before{background:#b91c1c}
.nd3-step.ko .nd3-dot{background:#b91c1c;border-color:#b91c1c;box-shadow:0 0 0 5px rgba(185,28,28,.18)}
.nd3-step.ko .nd3-slbl{color:#b91c1c}
.nd3-view{display:none}.nd3-view.on{display:block}
.nd3-cards{display:grid;grid-template-columns:1fr;gap:15px;align-items:start}
.nd3-card{background:#fff;border:1px solid #e4ebf7;border-radius:16px;overflow:hidden}
.nd3-ch{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;font-weight:700;color:#0d2d5e;font-size:1rem}
.nd3-ch .ic{width:32px;height:32px;border-radius:9px;background:#eff4ff;color:#0d2d5e;display:flex;align-items:center;justify-content:center;flex:none}
.nd3-ch .ic svg{width:17px;height:17px}
.nd3-cb{padding:2px 16px 15px}
.nd3-fg{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
@media(max-width:640px){.nd3-fg{grid-template-columns:1fr}}
.nd3-f{display:flex;flex-direction:column;gap:5px}
.nd3-f.wide{grid-column:1/-1}
.nd3-f .k{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:700}
.nd3-f input,.nd3-f select,.nd3-f textarea{width:100%;border:1px solid transparent;background:#f5f8fc;border-radius:9px;padding:8px 10px;font-family:inherit;font-size:.88rem;font-weight:600;color:#18233b;transition:.13s}
.nd3-f input:hover,.nd3-f select:hover,.nd3-f textarea:hover{background:#eaf1fc}
.nd3-f input:focus,.nd3-f select:focus,.nd3-f textarea:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.nd3-f textarea{min-height:60px;resize:vertical;font-weight:500;line-height:1.45}
.nd3-f select{appearance:none;cursor:pointer}
/* ── Vérif NDA (loupe + modale « liste publique des organismes de formation ») ── */
.nxnda-wrap{display:flex;gap:6px;align-items:center}
.nxnda-wrap input{flex:1;width:auto;min-width:0}
.nxnda-btn{flex-shrink:0;width:34px;height:34px;border:1px solid #d7e0ee;background:#fff;border-radius:9px;cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:.13s;padding:0}
.nxnda-btn:hover{background:#eaf1fc;border-color:#2563eb}
.nxnda-ov{position:fixed;inset:0;background:rgba(13,45,94,.45);z-index:12000;display:none;align-items:center;justify-content:center;padding:18px}
.nxnda-ov.on{display:flex}
.nxnda-box{position:relative;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(13,45,94,.35);width:min(560px,100%);max-height:86vh;overflow:auto;padding:22px}
.nxnda-x{position:absolute;top:12px;right:12px;width:30px;height:30px;border:0;background:#f1f5fb;border-radius:8px;cursor:pointer;color:#0d2d5e;font-weight:700}
.nxnda-x:hover{background:#e2eaf6}
.nxnda-h{display:flex;gap:10px;align-items:center;margin-bottom:14px;padding-right:34px}
.nxnda-h .lens{font-size:22px}
.nxnda-h b{display:block;font-size:15px;color:#0d2d5e}
.nxnda-h span{display:block;font-size:11.5px;color:#8a97ad}
.nxnda-load{display:flex;gap:10px;align-items:center;color:#5a6b7f;font-size:13px;padding:18px 4px}
.nxnda-load .sp{width:16px;height:16px;border:2px solid #d7e0ee;border-top-color:#0d2d5e;border-radius:50%;animation:nxndaspin .7s linear infinite;flex-shrink:0}
@keyframes nxndaspin{to{transform:rotate(360deg)}}
.nxnda-verdict{border-radius:11px;padding:12px 14px;font-weight:800;font-size:13.5px;margin-bottom:12px}
.nxnda-verdict.ok{background:#e8f6ee;color:#0f7a4d}
.nxnda-verdict.warn{background:#fdf3e3;color:#9a6a1b}
.nxnda-verdict.ko{background:#fdecef;color:#c0334c}
.nxnda-org{margin:0 0 12px}
.nxnda-org b{display:block;font-size:13.5px;color:#18233b}
.nxnda-org span{font-size:12px;color:#8a97ad}
.nxnda-row{display:flex;gap:10px;padding:9px 2px;border-top:1px solid #f0f4fa;font-size:12.5px;align-items:flex-start}
.nxnda-row .ic{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;margin-top:1px}
.nxnda-row.ok .ic{background:#e8f6ee;color:#0f7a4d}
.nxnda-row.ko .ic{background:#fdecef;color:#c0334c}
.nxnda-row.nt .ic{background:#eef2f8;color:#8a97ad}
.nxnda-row .lb{font-weight:700;color:#18233b}
.nxnda-row .dt{color:#5a6b7f;margin-top:2px;line-height:1.45}
.nxnda-alert{background:#fdf3e3;color:#9a6a1b;border-radius:11px;padding:12px 14px;font-size:12.5px;line-height:1.5}
.nxnda-alert a{color:inherit;font-weight:700}
.nxnda-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #f0f4fa;margin-top:10px;padding-top:12px;flex-wrap:wrap}
.nxnda-foot a{font-size:12px;font-weight:800;color:#0d2d5e;text-decoration:none}
.nxnda-foot a:hover{text-decoration:underline}
.nxnda-foot span{font-size:10.5px;color:#9aa6bd}
.nxnda-note{background:#f4f7fc;color:#5a6b7f;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5;margin-top:12px}
.nxnda-with{background:#fdecef;border:1px solid #f6c9d2;border-radius:12px;padding:13px 14px;margin-top:14px;display:flex;flex-direction:column;gap:8px}
.nxnda-with b{font-size:13px;color:#c0334c}
.nxnda-with span{font-size:12.5px;color:#7a3242;line-height:1.5}
.nxnda-danger{align-self:flex-start;background:#c0334c;color:#fff;border:0;border-radius:9px;padding:9px 16px;font:inherit;font-weight:800;font-size:12.5px;cursor:pointer;transition:.13s}
.nxnda-danger:hover{background:#a52940}
.nxnda-danger:disabled{opacity:.55;cursor:not-allowed}
.nxnda-cancel{background:#fff;border:1px solid #d7e0ee;color:#0d2d5e;border-radius:9px;padding:9px 14px;font:inherit;font-weight:700;font-size:12.5px;cursor:pointer}
.nxnda-cancel:hover{background:#eaf1fc}
.nxnda-fld{display:flex;flex-direction:column;gap:5px;margin-top:10px}
.nxnda-fld label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:700}
.nxnda-fld input,.nxnda-fld textarea{width:100%;border:1px solid #e0e7f2;background:#f8fafd;border-radius:9px;padding:8px 10px;font-family:inherit;font-size:.88rem;color:#18233b}
.nxnda-fld input:focus,.nxnda-fld textarea:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.nxnda-fld textarea{resize:vertical;line-height:1.5}
.nd3-att{display:flex;gap:9px;align-items:flex-start;font-size:.84rem;padding:5px 0;color:#18233b;cursor:pointer}
.nd3-att input,.nd3-att input[type=checkbox]{width:auto;flex:0 0 auto;margin:2px 0 0}
.nd3-chips{display:flex;gap:6px;flex-wrap:wrap}
.nd3-chip{border:1.4px solid #e4ebf7;background:#fff;color:#6b7890;font-size:.79rem;font-weight:600;padding:5px 11px;border-radius:9px;cursor:pointer}
.nd3-chip.on{border-color:#2563eb;color:#0d2d5e;background:#eff4ff}
.nd3-mt th{font-size:.64rem;text-transform:uppercase;color:#9aa6bd;font-weight:700;text-align:left;padding:4px 6px}
.nd3-mt td{padding:3px 4px}
.nd3-mt input{width:100%;border:1px solid transparent;background:#f5f8fc;border-radius:8px;padding:7px 9px;font-family:inherit;font-size:.85rem;font-weight:600;color:#18233b}
.nd3-mt input:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.nd3-docwrap{margin-top:16px}
.nd3-dsec{font-weight:700;color:#0d2d5e;font-size:.92rem;margin:0 2px 11px;display:flex;gap:8px;align-items:center}
.nd3-dsec .tag{font-size:.62rem;font-weight:700;color:#5b6f9c;background:#e3eaff;border-radius:6px;padding:2px 7px;text-transform:uppercase}
.nd3-dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.nd3-doc{background:#fff;border:1px solid #e4ebf7;border-radius:14px;padding:13px;position:relative}
.nd3-doc.miss{border-style:dashed;background:#fafbfe}
.nd3-doc .top{display:flex;gap:10px;align-items:flex-start}
.nd3-dic{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}
.nd3-dic svg{width:20px;height:20px}
.nd3-dic.pdf{background:#efe9ff;color:#6b4bd6}.nd3-dic.img{background:#e6f3ff;color:#2274c7}.nd3-dic.sig{background:#eafaf2;color:#1b9c68}.nd3-dic.miss{background:#f1f4f9;color:#b3bfd2}
.nd3-dnm{font-weight:700;font-size:.86rem;color:#0d2d5e}
.nd3-dmeta{font-size:.74rem;color:#9aa6bd;margin-top:2px;word-break:break-all}
.nd3-dacts{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}
.nd3-da{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #e4ebf7;background:#fff;border-radius:9px;padding:7px;font-size:.74rem;font-weight:600;color:#6b7890;cursor:pointer}
.nd3-da svg{width:13px;height:13px}
.nd3-da:hover{border-color:#12386f;color:#0d2d5e;background:#f6f9ff}
.nd3-da.danger:hover{border-color:#dc3552;color:#dc3552;background:#fff5f7}
.nd3-da.add{border-style:dashed;color:#2563eb;flex-basis:100%}
.nd3-badge{position:absolute;top:11px;right:11px;font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:100px}
.nd3-badge.ok{background:#e8f6ee;color:#0f7a4d}.nd3-badge.no{background:#f2f4f8;color:#9aa6bd}
/* ===== Espace client embarqué : alignement fin sur le nouveau design (nd3) ===== */
#clientManagerModal.cm-embedded .cmx-card{border-radius:16px !important;border:1px solid #e4ebf7 !important;box-shadow:0 2px 12px -6px rgba(13,45,94,.14) !important}
#clientManagerModal.cm-embedded .cmx-card-ic{border-radius:11px !important}
#clientManagerModal.cm-embedded .cm-tab{border-radius:10px !important;padding:9px 16px !important;font-weight:600 !important;transition:.15s !important}
#clientManagerModal.cm-embedded .cm-tab.active{background:linear-gradient(135deg,#0d2d5e,#1b4a8f) !important;color:#fff !important;box-shadow:0 8px 18px -10px rgba(13,45,94,.6) !important}
#clientManagerModal.cm-embedded .cm-tab.active::after{display:none !important}
/* Mode page unique (embarqué) : masquer la barre d'onglets, empiler les sections */
#clientManagerModal.cm-embedded .cm-tab{display:none !important}
#clientManagerModal.cm-embedded #cm-content > div:has(> .cm-tab){display:none !important}
#clientManagerModal.cm-embedded #cm-content{display:block !important}
#clientManagerModal.cm-embedded .cm-panel{display:block;margin-bottom:16px !important}
#clientManagerModal.cm-embedded .cm-panel::before{display:block;font-weight:800;color:#0d2d5e;font-size:15px;letter-spacing:-.01em;margin:14px 2px 12px;padding-bottom:9px;border-bottom:2px solid #eef2f9}
#clientManagerModal.cm-embedded #cm-identif::before{content:"🔑  Identifiants de connexion"}
#clientManagerModal.cm-embedded #cm-certif::before{content:"🏆  Certificat"}
#clientManagerModal.cm-embedded #cm-audits::before{content:"📅  Audits"}
#clientManagerModal.cm-embedded #cm-docs::before{content:"📁  Documents"}
#clientManagerModal.cm-embedded #cm-rapports::before{content:"📄  Rapports d'audit"}
#clientManagerModal.cm-embedded #cm-ncs::before{content:"🚨  Non-conformités"}
#clientManagerModal.cm-embedded #cm-emails::before{content:"✉️  Échanges mail"}
#clientManagerModal.cm-embedded #cm-msgs::before{content:"💬  Messagerie"}
#clientManagerModal.cm-embedded #cm-factu::before{content:"🧾  Facturation"}

/* ===== ESPACE CLIENT — PAGE UNIQUE façon maquette =====
   #ndesp = bandeau hero (toujours visible). Juste en-dessous : les VRAIS panneaux
   éditables (certificat, audits, documents, facturation Qonto, NC, rapports, mails,
   messagerie) empilés en cartes propres — plus d'onglets, plus de bascule. */
#cm-inline-mount .nde-fullback{display:none !important}
#ndesp{color:#18233b;margin-top:4px}
/* Le module d'origine ne sert QUE de moteur de données (charge cmClientData, docRef,
   messages) : on le masque entièrement. L'UI = uniquement #ndesp (cartes éditables). */
#clientManagerModal.cm-embedded{display:block !important}
#clientManagerModal.cm-embedded #cm-content{display:none !important}
#clientManagerModal.cm-embedded #clientManagerBody{padding:0 !important;min-height:0 !important}
#clientManagerModal.cm-embedded #cm-loading{display:none !important}
#ndesp *{box-sizing:border-box}
#ndesp .nde-strip{display:flex;align-items:center;gap:16px;background:linear-gradient(160deg,#12294f,#1d4a86);color:#fff;border-radius:18px;padding:16px 22px;margin-bottom:16px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16);flex-wrap:wrap}
#ndesp .nde-strip .av{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.15rem;flex:none}
#ndesp .nde-strip .n{font-weight:800;font-size:1.1rem}
#ndesp .nde-strip .e{color:#bcd0f0;font-size:.83rem;margin-top:2px}
#ndesp .nde-strip .bdg{display:inline-flex;align-items:center;gap:6px;background:rgba(31,169,122,.22);color:#8ff0c4;font-weight:700;font-size:.74rem;padding:5px 11px;border-radius:100px;margin-top:6px}
#ndesp .nde-strip .bdg.off{background:rgba(255,255,255,.14);color:#f0dca6}
#ndesp .nde-strip .bdg i{width:7px;height:7px;border-radius:50%;background:#3ecf8e}
#ndesp .nde-strip .bdg.off i{background:#e6b800}
#ndesp .nde-strip .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
#ndesp .nde-sbtn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:10px;padding:9px 13px;font-weight:600;font-size:.82rem;cursor:pointer;display:inline-flex;gap:7px;align-items:center;transition:.14s;font-family:inherit}
#ndesp .nde-sbtn:hover{background:rgba(255,255,255,.24)}
#ndesp .nde-sbtn svg{width:15px;height:15px}
#ndesp .nde-sbtn.solid{background:#fff;color:#0d2d5e}
#ndesp .nde-sbtn.solid:hover{background:#eef4ff}
#ndesp .nde-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}
@media(max-width:920px){#ndesp .nde-grid{grid-template-columns:1fr}}
#ndesp .nde-grid .span2{grid-column:1/-1}
#ndesp .nde-panel{background:#fff;border:1px solid #e4ebf7;border-radius:18px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16);overflow:hidden}
#ndesp .nde-ph{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #eef2f9}
#ndesp .nde-ph b{color:#0d2d5e;font-size:.98rem;display:flex;align-items:center;gap:9px}
#ndesp .nde-ph b svg{width:17px;height:17px;color:#2563eb}
#ndesp .nde-ph .mini{font-size:.78rem;color:#2563eb;font-weight:600;cursor:pointer;background:none;border:none;font-family:inherit;padding:0}
#ndesp .nde-ph .mini:hover{text-decoration:underline}
#ndesp .nde-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid #eef2f9}
#ndesp .nde-row:last-child{border-bottom:none}
#ndesp .nde-row .li{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
#ndesp .nde-row .li svg{width:18px;height:18px}
#ndesp .nde-row .lt{font-weight:600;font-size:.87rem;color:#0d2d5e}
#ndesp .nde-row .ls{font-size:.76rem;color:#9aa6bd;margin-top:1px}
#ndesp .nde-row .lr{margin-left:auto;text-align:right;display:flex;align-items:center;gap:10px}
#ndesp .nde-bdg{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:100px;white-space:nowrap}
#ndesp .nde-bdg.ok{background:#e8f6ee;color:#0f7a4d}
#ndesp .nde-bdg.warn{background:#fff3e0;color:#b45309}
#ndesp .nde-bdg.red{background:#fbeaec;color:#c0334c}
#ndesp .nde-bdg.grey{background:#eef2f9;color:#6b7890}
#ndesp .nde-bdg.blue{background:#e3f2fd;color:#1565c0}
#ndesp .nde-amt{font-weight:800;color:#0d2d5e;font-variant-numeric:tabular-nums;font-size:.9rem}
#ndesp .nde-dl{color:#6b7890;cursor:pointer;padding:6px;border-radius:8px;background:none;border:none}
#ndesp .nde-dl:hover{background:#eef2f9;color:#0d2d5e}
#ndesp .nde-dl svg{width:15px;height:15px}
#ndesp .nde-empty{padding:18px 16px;color:#9aa6bd;font-size:.85rem;text-align:center;line-height:1.5}
#ndesp .nde-cert{display:flex;gap:20px;align-items:center;padding:18px;flex-wrap:wrap}
#ndesp .nde-seal{width:74px;height:74px;border-radius:20px;background:linear-gradient(135deg,#f97316,#fdb66f);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 12px 26px -12px rgba(249,115,22,.6)}
#ndesp .nde-seal svg{width:36px;height:36px;color:#fff}
#ndesp .nde-cert-info{flex:1;min-width:180px}
#ndesp .nde-cert-num{font-weight:800;font-size:1.12rem;color:#0d2d5e}
#ndesp .nde-cert-dates{display:flex;gap:22px;flex-wrap:wrap;margin-top:10px}
#ndesp .nde-cert-dates .k{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:700}
#ndesp .nde-cert-dates .v{font-size:.9rem;font-weight:700;color:#0d2d5e}
#ndesp .nde-cbtn{display:inline-flex;align-items:center;gap:9px;border:1px solid #e4ebf7;background:#fff;border-radius:11px;padding:11px 13px;font-weight:600;font-size:.85rem;color:#0d2d5e;cursor:pointer;transition:.13s;font-family:inherit}
#ndesp .nde-cbtn:hover{border-color:#12386f;background:#f6f9ff}
#ndesp .nde-cbtn svg{width:16px;height:16px;color:#2563eb}
#ndesp .nde-tot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:2px solid #e4ebf7;font-weight:800;color:#0d2d5e}
#ndesp .nde-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid #eef2f9;font-size:.85rem}
#ndesp .nde-line:last-of-type{border-bottom:none}
#ndesp .nde-line .k{color:#6b7890;font-weight:500}
#ndesp .nde-line .v{color:#18233b;font-weight:600;text-align:right}
#ndesp .nde-chat{padding:16px 18px;display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto}
#ndesp .nde-msg{max-width:74%;padding:10px 13px;border-radius:14px;font-size:.86rem;line-height:1.4}
#ndesp .nde-msg .t{font-size:.68rem;font-weight:600;opacity:.6;margin-top:4px}
#ndesp .nde-msg.them{background:#f1f4f9;color:#18233b;border-bottom-left-radius:4px;align-self:flex-start}
#ndesp .nde-msg.me{background:#0d2d5e;color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
#ndesp .nde-compose{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #eef2f9}
#ndesp .nde-compose input{flex:1;border:1px solid #e4ebf7;border-radius:11px;padding:10px 13px;font-family:inherit;font-size:.88rem;outline:none}
#ndesp .nde-compose input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
#ndesp .nde-compose button{border:none;background:#0d2d5e;color:#fff;border-radius:11px;padding:0 16px;cursor:pointer;font-weight:600;font-family:inherit}
#ndesp .nde-shared{padding:8px 10px}
#ndesp .nde-sh{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:11px;transition:.12s}
#ndesp .nde-sh:hover{background:#f6f9ff}
#ndesp .nde-sh .ic{width:38px;height:38px;border-radius:10px;background:#efe9ff;color:#6b4bd6;display:flex;align-items:center;justify-content:center;flex:none}
#ndesp .nde-sh .ic svg{width:18px;height:18px}
#ndesp .nde-sh .nm{font-weight:600;font-size:.87rem;color:#0d2d5e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ndesp .nde-sh .mt{font-size:.75rem;color:#9aa6bd}
#ndesp .nde-sh .shacts{margin-left:auto;display:flex;gap:6px}
/* --- champs éditables dans les cartes --- */
#ndesp .nde-cb{padding:16px 18px}
#ndesp .nde-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
#ndesp .nde-fgrid.one{grid-template-columns:1fr}
@media(max-width:560px){#ndesp .nde-fgrid{grid-template-columns:1fr}}
/* Onglet « Échanges mail » de l'espace client : les classes .cm-email-* viennent
   de l'ancien module (largeur d'une modale) et n'avaient aucune media query. En
   colonne etroite, l'entete d'un mail (sens + categorie + objet + date + chevron)
   deborde. On corrige UNIQUEMENT sous #ndesp pour ne rien changer ailleurs. */
@media(max-width:1024px){
  #ndesp .cm-email-subject{font-size:12.5px}
  #ndesp .cm-email-att .name{max-width:140px}
}
@media(max-width:560px){
  #ndesp #nde-emails-list,#ndesp #nde-emails-filters{padding-left:12px;padding-right:12px}
  #ndesp .cm-email-head{flex-wrap:wrap;gap:6px;padding:10px 12px}
  #ndesp .cm-email-subject{flex:1 1 100%;order:5;white-space:normal;line-height:1.35}
  #ndesp .cm-email-date{margin-left:auto}
  #ndesp .cm-email-meta{gap:4px 12px;padding:9px 12px}
  #ndesp .cm-email-content{padding-left:12px;padding-right:12px}
  #ndesp .cm-email-att .name{max-width:52vw}
}
#ndesp .nde-f{display:flex;flex-direction:column;gap:5px;min-width:0}
#ndesp .nde-f.wide{grid-column:1/-1}
#ndesp .nde-f .fk{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:700}
#ndesp .nde-in,#ndesp .nde-sel,#ndesp .nde-ta{width:100%;border:1px solid transparent;background:#f5f8fc;border-radius:9px;padding:9px 11px;font-family:inherit;font-size:.9rem;font-weight:600;color:#18233b;transition:.13s}
#ndesp .nde-in:hover,#ndesp .nde-sel:hover,#ndesp .nde-ta:hover{background:#eaf1fc}
#ndesp .nde-in:focus,#ndesp .nde-sel:focus,#ndesp .nde-ta:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
#ndesp .nde-ta{min-height:60px;resize:vertical;font-weight:500;line-height:1.45}
#ndesp .nde-sel{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7890' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}
#ndesp .nde-chips{display:flex;gap:6px;flex-wrap:wrap}
#ndesp .nde-chip{border:1.4px solid #e4ebf7;background:#fff;color:#6b7890;font-size:.8rem;font-weight:600;padding:5px 11px;border-radius:9px;cursor:pointer;transition:.13s;font-family:inherit}
#ndesp .nde-chip.on{border-color:#2563eb;color:#0d2d5e;background:#eff4ff}
#ndesp .nde-chip:hover{border-color:#2563eb}
#ndesp .nde-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:10px;font-family:inherit;font-weight:700;font-size:.83rem;cursor:pointer;padding:9px 14px;transition:.14s}
#ndesp .nde-btn svg{width:15px;height:15px}
#ndesp .nde-btn.primary{background:#0d2d5e;color:#fff}
#ndesp .nde-btn.primary:hover{background:#12386f}
#ndesp .nde-btn.gold{background:#b08d57;color:#241a06;box-shadow:0 4px 14px -6px rgba(176,141,87,.5)}
#ndesp .nde-btn.gold:hover{filter:brightness(1.04)}
#ndesp .nde-btn.ghost{background:#fff;color:#0d2d5e;border:1px solid #e4ebf7}
#ndesp .nde-btn.ghost:hover{background:#f6f9ff;border-color:#12386f}
#ndesp .nde-btn.warn{background:#fff3e0;color:#b45309;border:1px solid #f6dcae}
#ndesp .nde-btn.warn:hover{background:#ffe9cc}
#ndesp .nde-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
#ndesp .nde-mini2{display:inline-flex;align-items:center;gap:5px;border:1px solid #e4ebf7;background:#fff;border-radius:8px;padding:6px 9px;font-size:.75rem;font-weight:600;color:#6b7890;cursor:pointer;font-family:inherit;transition:.12s}
#ndesp .nde-mini2:hover{border-color:#12386f;color:#0d2d5e;background:#f6f9ff}
#ndesp .nde-mini2.danger:hover{border-color:#dc3552;color:#dc3552;background:#fff5f7}
#ndesp .nde-mini2 svg{width:13px;height:13px}
#ndesp .nde-add{border-top:1px solid #eef2f9;padding:14px 16px;background:#fafcff}
#ndesp .nde-add-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:800;margin-bottom:10px}
#ndesp .nde-hint{font-size:.75rem;color:#9aa6bd;margin-top:8px;line-height:1.5}
#ndesp .nde-note{background:#eff4ff;border:1px solid #d6e4ff;color:#334e7a;border-radius:12px;padding:12px 14px;font-size:.83rem;line-height:1.5;margin:2px 0}
#ndesp .nde-tot-box{background:#0d2d5e;color:#fff;border-radius:12px;padding:13px 15px;margin-top:2px}
#ndesp .nde-tot-box .r{display:flex;justify-content:space-between;font-size:.82rem;color:#cdd8ea;padding:2px 0}
#ndesp .nde-tot-box .r.big{font-size:1rem;font-weight:800;color:#fff;border-top:1px solid rgba(255,255,255,.16);margin-top:6px;padding-top:8px}
#ndesp .nde-tot-box .r.big b{color:#e7c893}
#ndesp .nde-file{font-size:.8rem;font-family:inherit;color:#6b7890;max-width:100%}
#ndesp .nde-collapse{display:none}
#ndesp .nde-collapse.open{display:block}
/* --- navigation par catégories (remplace le hero) --- */
#ndesp .nde-nav{display:flex;gap:4px;background:#fff;border:1px solid #e4ebf7;border-radius:14px;padding:5px;margin-bottom:16px;overflow-x:auto;box-shadow:0 2px 10px -4px rgba(13,45,94,.14)}
#ndesp .nde-nav::-webkit-scrollbar{height:6px}
#ndesp .nde-nav::-webkit-scrollbar-thumb{background:#dbe3ef;border-radius:3px}
#ndesp .nde-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:600;font-size:.83rem;padding:9px 14px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:.14s}
#ndesp .nde-tab svg{width:15px;height:15px}
#ndesp .nde-tab:hover{background:#f2f6fc;color:#0d2d5e}
#ndesp .nde-tab.on{background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;box-shadow:0 6px 16px -8px rgba(13,45,94,.6)}
#ndesp .nde-tab .cnt{background:#dc2626;color:#fff;font-size:.62rem;font-weight:800;padding:1px 6px;border-radius:100px;margin-left:1px}
#ndesp .nde-tab.on .cnt{background:rgba(255,255,255,.28)}
#ndesp .nde-lookup{display:none;font-size:.78rem;font-weight:600;margin-top:9px}
      
        .ndrev-wrap{overflow-x:auto;border-radius:10px}
        .ndrev-t{width:100%;border-collapse:collapse;font-size:12.6px;min-width:760px}
        .ndrev-t thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#9aa6bd;font-weight:800;padding:10px 9px;background:#f7fafd;border-bottom:1px solid #e4ebf7;white-space:nowrap}
        .ndrev-t td{padding:9px 9px;border-bottom:1px solid #eef2f9;vertical-align:middle;white-space:nowrap}
        .ndrev-t tr:hover td{background:#f9fbfe}
        .ndrev-open{width:30px;height:30px;border-radius:9px;border:1px solid #e4ebf7;background:#fff;color:#0d2d5e;cursor:pointer;font-size:16px;line-height:1}
        .ndrev-open:hover{background:#0d2d5e;color:#fff;border-color:#0d2d5e}
        .ndrev-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:100px;white-space:nowrap}
        .ndrev-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
        .ndrev-pill.green{background:#e8f6ee;color:#0f7a4d}.ndrev-pill.amber{background:#fff3e0;color:#b45309}.ndrev-pill.red{background:#fbeaec;color:#c0334c}.ndrev-pill.grey{background:#eef2f9;color:#6b7890}
        .nd3-dsubnav{display:flex;gap:4px;background:#f2f6fc;border-radius:11px;padding:4px;margin-bottom:14px;width:max-content;max-width:100%}
        .nd3-dsubnav button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:600;font-size:.86rem;padding:9px 16px;border-radius:8px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
        .nd3-dsubnav button svg{width:15px;height:15px}
        .nd3-dsubnav button.on{background:#fff;color:#0d2d5e;box-shadow:0 2px 8px -2px rgba(13,45,94,.25)}
        .ndrev-form{background:#fff;border:1px solid #e4ebf7;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px -4px rgba(13,45,94,.16)}
        .ndrev-h{padding:15px 18px;border-bottom:1px solid #eef2f9;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
        .ndrev-h b{color:#0d2d5e;font-size:1rem;display:flex;align-items:center;gap:9px}
        .ndrev-h b svg{width:18px;height:18px;color:#2563eb}
        .ndrev-badge{font-size:12px;font-weight:700;padding:4px 11px;border-radius:100px;background:#e3f2fd;color:#1565c0}
        .ndrev-badge.green{background:#e8f6ee;color:#0f7a4d}
        .ndrev-b{padding:14px 18px 18px}
        .ndrev-prog{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
        .ndrev-prog .t{font-size:.8rem;font-weight:700;color:#0d2d5e;white-space:nowrap}
        .ndrev-prog .bar{flex:1;height:9px;border-radius:6px;background:#e9eef6;overflow:hidden}
        .ndrev-prog .bar i{display:block;height:100%;background:linear-gradient(90deg,#0d2d5e,#2563eb);width:0;border-radius:6px;transition:width .3s}
        .ndrev-ci{display:flex;gap:13px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid #eef2f9}
        .ndrev-ci:last-of-type{border-bottom:none}
        .ndrev-ci.na{opacity:.55}
        .ndrev-bx{width:22px;height:22px;border-radius:7px;border:1.6px solid #e4ebf7;background:#fff;flex:none;margin-top:1px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.13s}
        .ndrev-bx svg{width:13px;height:13px;color:#fff;opacity:0}
        .ndrev-ci.on .ndrev-bx{background:#1fa97a;border-color:#1fa97a}.ndrev-ci.on .ndrev-bx svg{opacity:1}
        .ndrev-bx.dis{background:#f2f4f8;cursor:not-allowed}
        .ndrev-mid{flex:1;min-width:0}
        .ndrev-lab{font-weight:700;color:#0d2d5e;font-size:.9rem}
        .ndrev-val{font-size:.83rem;color:#6b7890;margin-top:3px;line-height:1.4;word-break:break-word}
        .ndrev-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;align-items:center}
        .ndrev-tag{font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:100px}
        .ndrev-tag.data{background:#eff4ff;color:#0d2d5e}.ndrev-tag.doc{background:#efe9ff;color:#6b4bd6}
        .ndrev-tag.ok{background:#e8f6ee;color:#0f7a4d}.ndrev-tag.miss{background:#fbeaec;color:#c0334c}.ndrev-tag.opt{background:#fff4e0;color:#9a6512}.ndrev-tag.na{background:#eef2f9;color:#6b7890}
        .ndrev-lnk{font-size:.72rem;color:#2563eb;font-weight:600;cursor:pointer}.ndrev-lnk:hover{text-decoration:underline}
        .ndrev-yn{display:flex;align-items:center;gap:10px;padding:13px 4px;border-top:1px solid #e4ebf7;flex-wrap:wrap}
        .ndrev-yn .q{font-weight:700;color:#0d2d5e;font-size:.92rem;flex:1;min-width:180px}
        .ndrev-seg{display:inline-flex;background:#f2f6fc;border-radius:9px;padding:3px}
        .ndrev-seg button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:700;font-size:.8rem;padding:7px 16px;border-radius:7px;cursor:pointer}
        .ndrev-seg button.on.yes{background:#1fa97a;color:#fff}.ndrev-seg button.on.no{background:#dc3552;color:#fff}
        .ndrev-sig{margin-top:16px;display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:end}
        @media(max-width:620px){.ndrev-sig{grid-template-columns:1fr}}
        .ndrev-sig .fk{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:800;display:block;margin-bottom:5px}
        .ndrev-sigside input{width:100%;border:1px solid #e4ebf7;border-radius:9px;padding:9px 11px;font-family:inherit;font-size:.9rem;font-weight:600;color:#18233b;margin-bottom:10px}
        .ndrev-clear{font-size:.75rem;color:#dc3552;cursor:pointer;font-weight:600}
        button.nx-busy{position:relative;pointer-events:none;opacity:.7}
button.nx-busy::after{content:"";display:inline-block;vertical-align:-2px;width:12px;height:12px;margin-left:8px;border:2px solid rgba(120,140,175,.4);border-top-color:currentColor;border-radius:50%;animation:nxbspin .7s linear infinite}
@keyframes nxbspin{to{transform:rotate(360deg)}}
.ndrev-bybtn{border:1.5px solid #d9e1ee;background:#fff;color:#42536e;border-radius:9px;padding:8px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.ndrev-bybtn.on{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.ndrev-sigbox{border:1.6px dashed #e4ebf7;border-radius:14px;background:#fbfcfe;position:relative;overflow:hidden}
        .ndrev-sigbox canvas{display:block;width:100%;height:150px;touch-action:none;cursor:crosshair}
        .ndrev-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9aa6bd;font-style:italic;pointer-events:none}
        .ndrev-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;align-items:center}
        .ndrev-btn{border:none;border-radius:11px;font-family:inherit;font-weight:700;font-size:.9rem;cursor:pointer;padding:12px 20px;display:inline-flex;align-items:center;gap:9px;transition:.15s}
        .ndrev-btn svg{width:17px;height:17px}
        .ndrev-btn.ok{background:#1fa97a;color:#fff;box-shadow:0 8px 20px -8px rgba(31,169,122,.6)}
        .ndrev-btn.ok:hover{filter:brightness(1.05)}
        .ndrev-btn.ok:disabled{background:#c8d3e2;color:#8a97ab;cursor:not-allowed;box-shadow:none}
        .ndrev-hint{font-size:.78rem;color:#9aa6bd}
        .ndrev-done{padding:24px 20px;text-align:center}
        .ndrev-done .ic{width:60px;height:60px;border-radius:50%;background:#e8f6ee;color:#1fa97a;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
        .ndrev-done .ic svg{width:32px;height:32px}
        .ndrev-done h3{color:#0d2d5e;margin:0 0 6px;font-size:1.2rem}
        .ndrev-done p{color:#6b7890;font-size:.9rem;margin:0 0 4px}
        .ndrev-done img{max-height:90px;margin-top:10px;border:1px solid #e4ebf7;border-radius:10px;background:#fff;padding:6px}
        .ndrev-reopen{margin-top:14px;font-size:.8rem;color:#2563eb;cursor:pointer;font-weight:600;display:inline-block}
        
        .ndcon-wrap{overflow-x:auto;border-radius:10px}
        .ndcon-t{width:100%;border-collapse:collapse;font-size:12.6px;min-width:820px}
        .ndcon-t thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#9aa6bd;font-weight:800;padding:10px 9px;background:#f7fafd;border-bottom:1px solid #e4ebf7;white-space:nowrap}
        .ndcon-t td{padding:9px 9px;border-bottom:1px solid #eef2f9;vertical-align:middle;white-space:nowrap}
        .ndcon-t tr:hover td{background:#f9fbfe}
        /* ── V1/V6 · Pièce de l'étape posée sur la ligne (onglets Instruction) ──
           Même vocabulaire visuel que les colonnes documents de l'onglet
           Demandes : pastille cliquable, pastille verte quand le document est
           là (.nx2-ok), croix rouge quand il manque. La cellule est étroite et
           centrée pour ne pas coûter de largeur aux colonnes utiles. */
        .ndinstr-c{width:52px;text-align:center;padding-left:4px !important;padding-right:4px !important}
        .ndinstr-doc{width:27px;height:27px}
        .ndinstr-doc svg{width:15px;height:15px}
        .ndinstr-ko{background:#fdf1f3;border:1.4px solid #f4cdd4;color:#c0334c;font-size:13px;font-weight:800}
        .ndinstr-ko:hover{background:#fbe6ea;border-color:#e3899a}
        /* Cellule à deux lignes : « reçu le / revue le », audit sur deux jours.
           Elle économise une colonne entière sans rien masquer. */
        .nd2l{line-height:1.24}
        .nd2l span{display:block}
        .nd2l span.s{font-size:10.8px;color:#9aa6bd;font-weight:600;margin-top:1px}
        /* Raison sociale : la seule colonne autorisée à se tronquer. Sans borne,
           `white-space:nowrap` empêche la table de se comprimer et ramène la
           barre de défilement horizontal que Selim ne veut pas. */
        .ndcell-org{max-width:186px}
        .ndcell-org .o{font-weight:700;color:#0d2d5e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .ndcell-org .s{font-size:11.5px;color:#9aa6bd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .ndcell-txt{max-width:130px;overflow:hidden;text-overflow:ellipsis}

        .ndcon-open{width:30px;height:30px;border-radius:9px;border:1px solid #e4ebf7;background:#fff;color:#0d2d5e;cursor:pointer;font-size:16px}
        .ndcon-open:hover{background:#0d2d5e;color:#fff}
        .ndcon-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:100px;white-space:nowrap}
        .ndcon-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
        .ndcon-pill.green{background:#e8f6ee;color:#0f7a4d}.ndcon-pill.amber{background:#fff3e0;color:#b45309}.ndcon-pill.red{background:#fbeaec;color:#c0334c}.ndcon-pill.grey{background:#eef2f9;color:#6b7890}.ndcon-pill.blue{background:#e3f2fd;color:#1565c0}
        .ndcon-amt{font-weight:800;color:#0d2d5e;font-variant-numeric:tabular-nums}
        /* éditeur */
        #nd3-dsub-contrat .ndcon-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
        @media(max-width:940px){#nd3-dsub-contrat .ndcon-grid{grid-template-columns:1fr}}
        .ndcon-panel{background:#fff;border:1px solid #e4ebf7;border-radius:16px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16);overflow:hidden}
        .ndcon-ph{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #eef2f9}
        .ndcon-ph b{color:#0d2d5e;font-size:.96rem;display:flex;align-items:center;gap:8px}.ndcon-ph b svg{width:16px;height:16px;color:#2563eb}
        .ndcon-ph small{font-size:.72rem;color:#9aa6bd}
        .ndcon-pb{padding:14px 16px}
        .ndcon-fg{display:grid;grid-template-columns:1fr 1fr;gap:10px 13px}
        .ndcon-f{display:flex;flex-direction:column;gap:5px;min-width:0}.ndcon-f.wide{grid-column:1/-1}
        .ndcon-f .fk{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#9aa6bd;font-weight:700}
        .ndcon-f input,.ndcon-f select{width:100%;border:1px solid transparent;background:#f5f8fc;border-radius:9px;padding:8px 10px;font-family:inherit;font-size:.87rem;font-weight:600;color:#18233b}
        .ndcon-f input:hover,.ndcon-f select:hover{background:#eaf1fc}
        .ndcon-f input:focus,.ndcon-f select:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
        .ndcon-f select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7890' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}
        .ndcon-chips{display:flex;gap:6px;flex-wrap:wrap}
        .ndcon-chip{border:1.4px solid #e4ebf7;background:#fff;color:#6b7890;font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:9px;cursor:pointer;font-family:inherit}
        .ndcon-chip.on{border-color:#2563eb;color:#0d2d5e;background:#eff4ff}
        .ndcon-seg{display:inline-flex;background:#f2f6fc;border-radius:9px;padding:3px}
        .ndcon-seg button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:700;font-size:.78rem;padding:6px 13px;border-radius:7px;cursor:pointer}
        .ndcon-seg button.on{background:#0d2d5e;color:#fff}
        .ndcon-calc{background:linear-gradient(160deg,#12294f,#1d4a86);color:#fff;border-radius:16px;padding:15px 17px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16)}
        .ndcon-calc h3{margin:0 0 11px;font-size:.95rem}
        .ndcon-calc .big{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:11px}
        .ndcon-calc .k{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:#8ea6d4;font-weight:700}
        .ndcon-calc .v{font-size:1.45rem;font-weight:800;margin-top:2px}
        .ndcon-calc .brk{background:rgba(255,255,255,.08);border-radius:11px;padding:10px 12px;font-size:.81rem}
        .ndcon-calc .brk .r{display:flex;justify-content:space-between;padding:3px 0;color:#cdd8ea}
        .ndcon-calc .brk .r.tot{border-top:1px solid rgba(255,255,255,.18);margin-top:5px;padding-top:6px;font-weight:800;color:#fff}
        .ndcon-calc .ovr{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.79rem;color:#cdd8ea;flex-wrap:wrap}
        .ndcon-calc .ovr input{width:78px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;border-radius:8px;padding:6px 8px;font-family:inherit;font-weight:700}
        .ndcon-calc .money{background:#f97316;color:#fff;border-radius:11px;padding:10px 13px;margin-top:11px;display:flex;justify-content:space-between;align-items:center}
        .ndcon-calc .money .ttc{font-size:1.1rem;font-weight:800}
        .ndcon-doc{background:#fff;border:1px solid #e4ebf7;border-radius:14px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16);overflow:hidden}
        .ndcon-doc-page{padding:20px 22px;font-size:12.5px;color:#1a2233;line-height:1.5}
        .ndcon-doc-title{text-align:center;border-bottom:2px solid #0d2d5e;padding-bottom:9px;margin-bottom:14px}
        .ndcon-doc-title .t{font-size:1.05rem;font-weight:800;color:#0d2d5e}
        .ndcon-doc-title .s{font-size:.76rem;color:#6b7890;font-weight:600;margin-top:2px}
        .ndcon-doc-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
        .ndcon-doc-cols h4{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:#9aa6bd;font-weight:800;margin:0 0 7px;border-bottom:1px solid #e4ebf7;padding-bottom:5px}
        .ndcon-r{margin-bottom:8px}.ndcon-r .k{font-size:.62rem;text-transform:uppercase;color:#9aa6bd;font-weight:700}.ndcon-r .v{font-weight:700;color:#0d2d5e;font-size:.88rem}
        .ndcon-hl{background:#fff8ec;border:1px dashed #f0b96f;border-radius:6px;padding:1px 5px}
        .ndcon-badge{display:inline-block;background:#0d2d5e;color:#fff;border-radius:6px;padding:3px 9px;font-weight:700;font-size:.8rem}
        .ndcon-badge.orange{background:#f97316}
        .ndcon-doc-foot{background:#f7fafd;border-top:1px solid #e4ebf7;padding:8px 14px;font-size:.7rem;color:#9aa6bd;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
        .ndcon-actions{display:flex;gap:9px;flex-wrap:wrap}
        .ndcon-btn{border:none;border-radius:11px;font-family:inherit;font-weight:700;font-size:.87rem;cursor:pointer;padding:11px 16px;display:inline-flex;align-items:center;gap:8px;transition:.15s}
        .ndcon-btn svg{width:16px;height:16px}
        .ndcon-btn.send{background:#f97316;color:#fff;box-shadow:0 8px 20px -8px rgba(249,115,22,.6)}.ndcon-btn.send:hover{filter:brightness(1.05)}
        .ndcon-btn.ghost{background:#fff;border:1px solid #e4ebf7;color:#0d2d5e}.ndcon-btn.ghost:hover{background:#f6f9ff;border-color:#12386f}
        .ndcon-btn.test{background:#eef2f9;color:#0d2d5e;border:1px solid #e4ebf7}
        .ndcon-hint{font-size:.77rem;color:#6b7890;margin-top:9px;line-height:1.5}
        .ndcon-trace .tl{display:flex;gap:11px;align-items:flex-start;padding:8px 0}
        .ndcon-trace .dot{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:.8rem}
        .ndcon-trace .dot svg{width:14px;height:14px}
        .ndcon-trace .dot.ok{background:#e8f6ee;color:#1fa97a}.ndcon-trace .dot.wait{background:#fff3e0;color:#b45309}.ndcon-trace .dot.off{background:#eef2f9;color:#9aa6bd}
        .ndcon-trace .tt{font-weight:700;color:#0d2d5e;font-size:.86rem}.ndcon-trace .ts{font-size:.75rem;color:#9aa6bd}
        .ndcon-mini{border:1px solid #e4ebf7;background:#fff;color:#6b7890;border-radius:8px;padding:6px 9px;font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit}
        .ndcon-mini:hover{border-color:#12386f;color:#0d2d5e;background:#f6f9ff}.ndcon-mini.danger:hover{border-color:#dc3552;color:#dc3552;background:#fff5f7}
        #dos-sub-rapport .nx2-table{min-width:0;font-size:12px}#dos-sub-rapport .nx2-table th,#dos-sub-rapport .nx2-table td{padding:7px 6px}#dos-sub-rapport .nx2-table td:nth-child(3){white-space:normal}#dos-sub-revdec .nx2-table{min-width:0;font-size:12px}#dos-sub-revdec .nx2-table th,#dos-sub-revdec .nx2-table td{padding:7px 6px}#dos-sub-revdec .nx2-table td:nth-child(3){white-space:normal}
        #tab-planning .nxpl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
        #tab-planning .nxpl-seg{display:inline-flex;background:#fff;border:1px solid #e4ebf7;border-radius:13px;padding:5px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16);gap:3px}
        #tab-planning .nxpl-seg button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:700;font-size:.86rem;padding:9px 15px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
        #tab-planning .nxpl-seg button svg{width:16px;height:16px}
        #tab-planning .nxpl-seg button.on{background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;box-shadow:0 6px 16px -8px rgba(13,45,94,.6)}
        #tab-planning .nxpl-right{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
        #tab-planning .nxpl-scale{display:inline-flex;background:#f2f6fc;border:1px solid #e4ebf7;border-radius:10px;padding:3px}
        #tab-planning .nxpl-scale button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:700;font-size:.8rem;padding:7px 13px;border-radius:7px;cursor:pointer}
        #tab-planning .nxpl-scale button.on{background:#0d2d5e;color:#fff}
        #tab-planning .nxpl-today{border:1px solid #e4ebf7;background:#fff;border-radius:9px;padding:8px 12px;font-family:inherit;font-weight:700;font-size:.8rem;color:#0d2d5e;cursor:pointer}
        #tab-planning .nxpl-today:hover{background:#f6f9ff}
        #tab-planning .nxpl-nav{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #e4ebf7;border-radius:11px;padding:4px 5px;box-shadow:0 2px 10px -4px rgba(13,45,94,.16)}
        #tab-planning .nxpl-nav button{width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:#0d2d5e;cursor:pointer;font-size:1.05rem;line-height:1}
        #tab-planning .nxpl-nav button:hover{background:#f1f5fb}
        #tab-planning .nxpl-nav .lbl{font-weight:800;color:#0d2d5e;min-width:150px;text-align:center;font-size:.86rem;text-transform:capitalize}
        #tab-planning .nxpl-tb{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #eef2f9}
        #tab-planning .nxpl-search{display:inline-flex;align-items:center;gap:8px;background:#f5f8fc;border:1px solid transparent;border-radius:10px;padding:8px 12px;min-width:220px}
        #tab-planning .nxpl-search:focus-within{background:#fff;border-color:#1c4a8e;box-shadow:0 0 0 3px rgba(28,74,142,.1)}
        #tab-planning .nxpl-search input{border:none;background:transparent;outline:none;font-family:inherit;font-size:.86rem;font-weight:600;color:#18233b;width:100%}
        #tab-planning .nxpl-filters{display:inline-flex;background:#f2f6fc;border-radius:9px;padding:3px}
        #tab-planning .nxpl-filters button{border:none;background:transparent;color:#6b7890;font-family:inherit;font-weight:700;font-size:.78rem;padding:6px 12px;border-radius:7px;cursor:pointer}
        #tab-planning .nxpl-filters button.on{background:#fff;color:#0d2d5e;box-shadow:0 2px 10px -4px rgba(13,45,94,.16)}
        #tab-planning .nxpl-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.74rem;color:#6b7890;font-weight:600}
        #tab-planning .nxpl-legend span{display:inline-flex;align-items:center;gap:6px}
        #tab-planning .nxpl-legend i{width:11px;height:11px;border-radius:4px;display:inline-block}
        #tab-planning .nxpl-legend i.hatch{background:repeating-linear-gradient(45deg,#eef1f6,#eef1f6 3px,#e2e7ef 3px,#e2e7ef 6px)}
        #tab-planning .nxpl-scroll{overflow-x:auto;position:relative}
        #tab-planning .nxpl-grid{min-width:900px}
        #tab-planning .nxpl-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid #e9eef6}
        #tab-planning .nxpl-row:last-child{border-bottom:none}
        #tab-planning .nxpl-row.head{position:sticky;top:0;z-index:5;background:#f7fafd}
        #tab-planning .nxpl-rail{padding:10px 13px;border-right:1px solid #e4ebf7;position:sticky;left:0;background:#fff;z-index:4;display:flex;align-items:center;gap:10px}
        #tab-planning .nxpl-row.head .nxpl-rail{background:#f7fafd;font-size:.64rem;font-weight:800;color:#9aa6bd;text-transform:uppercase;letter-spacing:.05em}
        #tab-planning .nxpl-av{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.75rem;flex:none}
        #tab-planning .nxpl-who{min-width:0}
        #tab-planning .nxpl-who .n{font-weight:700;color:#0d2d5e;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        #tab-planning .nxpl-who .m{font-size:.7rem;color:#9aa6bd;margin-top:1px;display:flex;align-items:center;gap:6px}
        #tab-planning .nxpl-dispo{font-size:.6rem;font-weight:800;padding:2px 7px;border-radius:100px}
        #tab-planning .nxpl-dispo.free{background:#e8f6ee;color:#0f7a4d}
        #tab-planning .nxpl-dispo.busy{background:#fff3e0;color:#b45309}
        #tab-planning .nxpl-track{position:relative;height:50px}
        #tab-planning .nxpl-days{position:absolute;inset:0;display:flex}
        #tab-planning .nxpl-day{flex:1;min-width:24px;border-right:1px solid #e9eef6;position:relative}
        #tab-planning .nxpl-day.we{background:#f7f9fc}
        #tab-planning .nxpl-day.today{background:rgba(249,115,22,.08)}
        #tab-planning .nxpl-row.head .nxpl-track{height:36px}
        #tab-planning .nxpl-daynum{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.58rem;color:#9aa6bd;font-weight:700}
        #tab-planning .nxpl-daynum b{font-size:.76rem;color:#0d2d5e}
        #tab-planning .nxpl-day.today .nxpl-daynum b{color:#f97316}
        #tab-planning .nxpl-block{position:absolute;top:7px;bottom:7px;border-radius:8px;padding:0 8px;display:flex;flex-direction:column;justify-content:center;color:#fff;cursor:pointer;overflow:hidden;box-shadow:0 4px 12px -5px rgba(13,45,94,.5);transition:.12s;z-index:2}
        #tab-planning .nxpl-block:hover{transform:translateY(-1px);filter:brightness(1.06)}
        #tab-planning .nxpl-block .bt{font-size:.72rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
        #tab-planning .nxpl-block .bs{font-size:.6rem;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        #tab-planning .nxpl-abs{position:absolute;top:7px;bottom:7px;border-radius:8px;z-index:1;background:repeating-linear-gradient(45deg,#eef1f6,#eef1f6 6px,#e2e7ef 6px,#e2e7ef 12px);border:1px dashed #c9d2e0;display:flex;align-items:center;justify-content:center;color:#8a97ab;font-size:.64rem;font-weight:700;overflow:hidden}
        #tab-planning .nxpl-ag{padding:6px 2px 10px}
        #tab-planning .nxpl-agday{padding:11px 16px 4px;font-size:.74rem;font-weight:800;color:#0d2d5e;text-transform:capitalize}
        #tab-planning .nxpl-agday .cnt{font-size:.64rem;color:#9aa6bd;font-weight:700}
        #tab-planning .nxpl-agitem{display:flex;align-items:center;gap:13px;padding:12px 16px;border-top:1px solid #eef2f9;cursor:pointer}
        #tab-planning .nxpl-agitem:hover{background:#f9fbfe}
        #tab-planning .nxpl-agdur{width:70px;flex:none;font-weight:800;color:#0d2d5e;font-size:.8rem}
        #tab-planning .nxpl-agbar{width:4px;align-self:stretch;border-radius:100px;flex:none}
        #tab-planning .nxpl-agmain{flex:1;min-width:0}
        #tab-planning .nxpl-agorg{font-weight:700;color:#0d2d5e;font-size:.9rem}
        #tab-planning .nxpl-agmeta{font-size:.76rem;color:#6b7890;margin-top:2px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
        #tab-planning .nxpl-agaud{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#0d2d5e}
        #tab-planning .nxpl-agaud i{width:9px;height:9px;border-radius:50%}
        #tab-planning .nxpl-tag{font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:100px;background:#eef2f9;color:#6b7890}
        #tab-planning .nxpl-empty{padding:34px;text-align:center;color:#9aa6bd;font-size:.9rem}
      
              .nxrga-subnav{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin:6px 0 18px;padding-bottom:7px;scrollbar-width:thin}
              .nxrga-subnav::-webkit-scrollbar{height:6px}
              .nxrga-subnav::-webkit-scrollbar-thumb{background:#cfd7e6;border-radius:6px}
              .nxrga-subnav button{flex:none;white-space:nowrap;border:1px solid #e2e7f0;background:#fff;color:#5b6675;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
              .nxrga-subnav button.on{background:linear-gradient(135deg,#0d2d5e,#1c4385);color:#fff;border-color:#0d2d5e}
              .nxrga-n{display:inline-block;min-width:18px;text-align:center;background:#c43d2f;color:#fff;border-radius:7px;font-size:11px;padding:0 5px;margin-left:4px}
              .nxrga-pane{display:none;max-width:100%}.nxrga-pane.on{display:block;overflow-x:auto}
              .nxrga-tbl{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid #e2e7f0;border-radius:12px;overflow:hidden}
              .nxrga-tbl thead th{background:#f7f9fc;text-align:left;padding:10px 13px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5b6675;font-weight:700;border-bottom:1px solid #e2e7f0}
              .nxrga-tbl td{padding:10px 13px;border-bottom:1px solid #eef1f6;vertical-align:middle}
              .nxrga-tbl tr:last-child td{border-bottom:none}
              .nxrga-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}
              @media(max-width:900px){.nxrga-kpis{grid-template-columns:1fr 1fr}}
              .nxrga-kpi{background:#fff;border:1px solid #e2e7f0;border-radius:13px;padding:15px 17px}
              .nxrga-kpi .l{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5b6675;font-weight:700}
              .nxrga-kpi .v{font-size:24px;font-weight:800;color:#0d2d5e;margin-top:3px}
              .nxrga-card{background:#fff;border:1px solid #e2e7f0;border-radius:13px;padding:16px 18px}
            
      #tab-communication .comm-pane{padding:18px 2px}
      /* ── Bandeau cockpit ── */
      #tab-communication .comm-band{position:relative;overflow:hidden;background:linear-gradient(135deg,#0d2d5e,#0a2249);color:#fff;border-radius:16px;padding:22px 24px;margin:12px 0 14px}
      #tab-communication .comm-band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.26),transparent 70%);pointer-events:none}
      #tab-communication .comm-band .bt{display:flex;align-items:flex-start;gap:14px;position:relative}
      #tab-communication .comm-band .ey{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#ffcfa6}
      #tab-communication .comm-hero{font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:23px;line-height:1.2;margin:8px 0 6px;letter-spacing:-.01em;max-width:30ch;transition:opacity .4s}
      #tab-communication .comm-hero .hl{color:#ffcc9c}
      #tab-communication .comm-bandsub{color:#cbd9ef;font-size:13px;margin:0}
      #tab-communication .comm-bandsub b{color:#fff}
      #tab-communication .comm-band .sp{flex:1}
      #tab-communication .comm-ribbon{display:flex;gap:30px;margin-top:18px;position:relative;flex-wrap:wrap}
      #tab-communication .comm-ribbon .n{font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:22px;line-height:1}
      #tab-communication .comm-ribbon .n .u{color:#ffcc9c}
      #tab-communication .comm-ribbon .l{font-size:10.5px;color:#a9c0e6;text-transform:uppercase;letter-spacing:.1em;margin-top:5px;font-weight:700}
      /* ── Nav segmentée ── */
      #comm-subtabs.pill-tabs{margin:0 0 8px;padding:6px;gap:4px;background:#f1f4f9;border:1px solid var(--border,#e8e8e8);border-radius:14px;overflow-x:auto;overflow-y:hidden}
      #comm-subtabs.pill-tabs::-webkit-scrollbar{display:none}
      #comm-subtabs .pill-tab{padding:9px 14px;font-size:13px;font-weight:600;background:transparent;border:none;color:var(--ink-600,#5b6373);white-space:nowrap;cursor:pointer;flex-shrink:0;display:flex;align-items:center;gap:7px;border-radius:10px}
      #comm-subtabs .pill-tab .ico{width:15px;height:15px;opacity:.85}
      #comm-subtabs .pill-tab:hover{color:var(--navy-800,#0d2d5e)}
      #comm-subtabs .pill-tab.active{background:var(--coral-500,#F97316);color:#fff;font-weight:700;box-shadow:0 5px 14px rgba(249,115,22,.32)}
      #comm-subtabs .pill-tab.active .ico{opacity:1}
      #comm-subtabs .cbadge{font-size:10px;font-weight:800;background:var(--coral-500,#F97316);color:#fff;border-radius:20px;padding:1px 7px}
      #comm-subtabs .pill-tab.active .cbadge{background:#fff;color:var(--coral-600,#EA580C)}
      /* ── En-têtes / grilles / cartes ── */
      #tab-communication .comm-head{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
      #tab-communication .comm-head h2{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:700;color:var(--navy-800,#0d2d5e);margin:0}
      #tab-communication .comm-head .sp{flex:1}
      #tab-communication .comm-grid{display:grid;gap:14px}
      #tab-communication .comm-c2{grid-template-columns:1fr 1fr}
      #tab-communication .comm-c3{grid-template-columns:repeat(3,1fr)}
      #tab-communication .comm-c4{grid-template-columns:repeat(4,1fr)}
      @media(max-width:1100px){#tab-communication .comm-c4{grid-template-columns:repeat(2,1fr)}#tab-communication .comm-c3,#tab-communication .comm-c2{grid-template-columns:1fr}}
      #tab-communication .comm-card{background:#fff;border:1px solid var(--border,#e8e8e8);border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(13,45,94,.05)}
      #tab-communication .comm-card h3{font-family:'Sora','Inter',sans-serif;margin:0 0 12px;font-size:14px;color:var(--navy-800,#0d2d5e);font-weight:700}
      #tab-communication .comm-kpi .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--coral-50,#fff7ed);color:var(--coral-600,#EA580C);font-size:15px;float:right}
      #tab-communication .comm-kpi .v{font-family:'Sora','Inter',sans-serif;font-size:26px;font-weight:800;color:var(--navy-800,#0d2d5e);line-height:1}
      #tab-communication .comm-kpi .l{font-size:11.5px;color:var(--muted,#888);margin-top:6px;font-weight:600}
      #tab-communication .comm-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
      #tab-communication .comm-chip.blog{background:#eef2fb;color:#22408a}
      #tab-communication .comm-chip.li{background:#e9f2fb;color:#0a66c2}
      #tab-communication .comm-chip.ig{background:#fdeef5;color:#c13584}
      #tab-communication .comm-chip.gbp{background:#e9f6ee;color:#157a4b}
      #tab-communication .comm-chip.ads{background:var(--coral-50,#fff7ed);color:var(--coral-600,#EA580C)}
      #tab-communication .comm-st{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px}
      #tab-communication .comm-st.draft{background:#fdf3da;color:#946700}
      #tab-communication .comm-st.val{background:#e9f6ee;color:#157a4b}
      #tab-communication .comm-st.sched{background:#eef2fb;color:#22408a}
      #tab-communication .comm-item{border:1px solid var(--border,#e8e8e8);border-radius:11px;padding:12px;margin-bottom:9px;cursor:pointer;background:#fff}
      #tab-communication .comm-item:hover{border-color:var(--coral-500,#F97316)}
      #tab-communication .comm-item.sel{border-color:var(--coral-500,#F97316);box-shadow:0 0 0 2px var(--coral-50,#fff7ed);background:#fffdfb}
      #tab-communication .comm-item .ti{font-weight:700;font-size:13.5px;color:var(--text,#111);margin:6px 0 3px}
      #tab-communication .comm-empty{padding:28px;text-align:center;color:var(--muted,#888);font-size:13px;border:1px dashed var(--border,#e8e8e8);border-radius:12px}
/* Style de base GLOBAL des boutons .comm-btn : la déclaration d'origine est
   limitée à #tab-communication, donc dans le sous-onglet Satisfaction d'un
   dossier ces boutons s'affichaient sans style (boutons navigateur bruts).
   Ici on les stylise partout ; la règle #tab-communication reste prioritaire. */
.comm-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;line-height:1;border-radius:9px;padding:8px 13px;border:1px solid #e4ebf5;background:#fff;color:#0d2d5e;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;white-space:nowrap}
.comm-btn:hover{border-color:#F97316;background:#fff8f2}
.comm-btn.navy{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.comm-btn.navy:hover{background:#0a2249;border-color:#0a2249}
.comm-btn.sm{font-size:11.5px;padding:6px 10px}
.comm-btn.danger{border-color:#f2c9c9;color:#c0392b;background:#fff7f7}
.comm-btn.danger:hover{background:#fdeaea}
/* Membres — bouton « + Ajouter » d'en-tête de section + « corbeille » sur les cartes */
.qp-mb-add{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,#0d2d5e,#0a2249);border:none;border-radius:9px;padding:8px 13px;cursor:pointer;white-space:nowrap;box-shadow:0 3px 10px rgba(13,45,94,.18);transition:filter .15s,transform .06s}
.qp-mb-add:hover{filter:brightness(1.08)}
.qp-mb-add:active{transform:translateY(1px)}
.qp-mb-add.ci{background:linear-gradient(135deg,#7c3aed,#a855f7);box-shadow:0 3px 10px rgba(124,58,237,.22)}
.qp-mb-add.ghost{background:#fff;color:#0d2d5e;border:1px solid #d7e0ee;box-shadow:none}
.qp-mb-add.ghost:hover{border-color:#F97316;filter:none;background:#fff8f2}
.qp-mb-del{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid #f0d4d4;background:#fff;color:#c0334c;cursor:pointer;margin-right:4px;transition:background .15s,border-color .15s}
.qp-mb-del:hover{background:#fdeaea;border-color:#e6a9a9}
.sat-row{display:grid;grid-template-columns:86px minmax(0,1fr) 74px 64px 76px 26px;gap:10px;align-items:center;padding:9px 10px;border-top:1px solid #eef1f7;cursor:pointer;font-size:13px}
.sat-row:hover{background:#f7f9fd}
.sat-row.sat-h{cursor:default;font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#8a95a8;border-top:none}
.sat-row.sat-h:hover{background:transparent}
.sat-row .sat-o{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.sat-row .sat-d{font-family:monospace;font-size:12px;color:#5a6b84}
.sat-note{display:inline-flex;align-items:baseline;gap:1px;font-weight:800;font-size:14px;border-radius:8px;padding:3px 8px}
.sat-note i{font-style:normal;font-size:10px;font-weight:600;opacity:.7}
.sat-note.ok{background:#e3f6ec;color:#0f8a4b}.sat-note.mid{background:#fff4dd;color:#9a6b00}.sat-note.ko{background:#fdeaea;color:#c0392b}.sat-note.na{background:#f0f3f9;color:#8a97ad}
.sat-non{font-size:11px;font-weight:800;color:#c0392b;background:#fdeaea;border-radius:7px;padding:3px 7px;text-align:center}
.sat-non.zero{color:#0f8a4b;background:#e3f6ec}
.sat-src{font-size:10px;font-weight:800;letter-spacing:.4px;border-radius:7px;padding:3px 7px;text-align:center}
.sat-src.jf{background:#fff1e6;color:#c05621}.sat-src.nx{background:#e8efff;color:#2563eb}
.sat-car{color:#9aa7bd;font-size:11px}
.sat-det{border-top:1px dashed #e4ebf5;background:#fbfcfe;padding:12px 14px;font-size:12.5px}
.sat-det-meta{color:#5a6b84;margin-bottom:8px}
.sat-qi{display:flex;gap:8px;align-items:flex-start;padding:2.5px 0}
.sat-why{margin:0 0 4px 22px;color:#c0392b;font-size:12px;font-style:italic}
.sat-rem{margin-top:9px;background:#fff;border:1px solid #e4ebf5;border-left:3px solid #2563eb;border-radius:8px;padding:8px 11px}
.sat-src.ad{background:#efe6ff;color:#6b21a8}
.ndsat-none{background:#fff;border:1.5px dashed #e4ebf5;border-radius:14px;padding:22px;text-align:center;color:#5a6b84;font-size:13px}
.ndsat-none .b{display:block;font-weight:800;color:#c05621;font-size:14px;margin-bottom:6px}
.ndsat-empty{padding:18px;color:#8a95a8;font-size:13px}
.ndsat-card{background:#fff;border:1px solid #e4ebf5;border-radius:14px;padding:14px 16px;margin-bottom:12px}
.ndsat-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ndsat-top .ok{font-weight:800;color:#0f8a4b;font-size:13px}
.ndsat-aud{font-size:12px;color:#42536e;background:#f0f5ff;border-radius:8px;padding:3px 8px}
.ndsat-meta{font-size:12px;color:#8a95a8;margin-top:6px}
.ndsat-items{margin-top:9px;border-top:1px dashed #e7edf7;padding-top:8px;font-size:12.5px}
.ndsat-form{background:#fff;border:1px solid #e4ebf5;border-radius:14px;padding:16px}
.ndsat-form .fk{display:block;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#66758f;margin-bottom:4px}
.ndsat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ndsat-notes{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;align-items:flex-end}
.ndsat-eqs{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.ndsat-eq .lbl{display:block;font-size:12.5px;font-weight:700;color:#1a2438;margin-bottom:5px}
.ndsat-seg{display:inline-flex;gap:5px}
.ndsat-seg button{border:1.5px solid #d9e1ee;background:#fff;color:#66758f;border-radius:8px;padding:6px 14px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.ndsat-seg button.on{background:#e3f6ec;border-color:#0f8a4b;color:#0f8a4b}
.ndsat-seg button.on-non{background:#fdeaea;border-color:#c0392b;color:#c0392b}
.ndsat-seg button.on-na{background:#f0f3f9;border-color:#c9d4e6;color:#8a97ad}
@media(max-width:768px){.ndsat-grid{grid-template-columns:1fr}}

@media(max-width:768px){.sat-row{grid-template-columns:64px minmax(0,1fr) 58px 50px 20px;gap:6px;font-size:12px}.sat-row .sat-src{display:none}.sat-row.sat-h span:nth-child(5){display:none}.sat-note{font-size:12.5px;padding:2px 6px}}

      #tab-communication .comm-btn{font-size:12.5px;font-weight:600;border-radius:9px;padding:8px 13px;border:1px solid var(--border,#e8e8e8);background:#fff;color:var(--text,#111);cursor:pointer}
      #tab-communication .comm-btn:hover{border-color:var(--coral-500,#F97316)}
      #tab-communication .comm-btn.coral{background:var(--coral-500,#F97316);border-color:var(--coral-600,#EA580C);color:#fff}
      #tab-communication .comm-btn.navy{background:var(--navy-800,#0d2d5e);border-color:var(--navy-800,#0d2d5e);color:#fff}
      #tab-communication .comm-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border,#eee)}
      #tab-communication .comm-row:last-child{border-bottom:0}
      #tab-communication .comm-input{width:100%;padding:9px 11px;border:1px solid var(--border,#e8e8e8);border-radius:9px;font:inherit;font-size:13px;box-sizing:border-box}
      #tab-communication .comm-toggle{width:40px;height:23px;border-radius:20px;background:#cfd6e0;position:relative;cursor:pointer;flex:none}
      #tab-communication .comm-toggle.on{background:#3f9d62}
      #tab-communication .comm-toggle i{position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s}
      #tab-communication .comm-toggle.on i{left:20px}
      /* ── Onglets de relecture (validation) ── */
      #tab-communication .comm-rtabs{display:flex;gap:2px;border-bottom:1px solid var(--border,#e8e8e8);margin:8px 0 14px}
      #tab-communication .comm-rtab{border:0;background:transparent;font:inherit;font-weight:600;font-size:12.5px;color:var(--muted,#888);padding:9px 12px;border-bottom:2px solid transparent;cursor:pointer}
      #tab-communication .comm-rtab.on{color:var(--navy-800,#0d2d5e);border-bottom-color:var(--coral-500,#F97316)}
      #tab-communication .comm-rsub{display:none}
      #tab-communication .comm-rsub.on{display:block}
      #tab-communication .comm-seoline{display:flex;gap:14px;flex-wrap:wrap;background:#eef5fc;border:1px solid var(--border,#e8e8e8);border-radius:10px;padding:10px 13px;margin-bottom:12px;font-size:11.5px;color:var(--muted,#888)}
      #tab-communication .comm-seoline b{color:var(--navy-800,#0d2d5e)}
      #tab-communication .comm-doc h5{font-family:'Sora','Inter',sans-serif;font-size:16px;color:var(--text,#111);margin:0 0 8px}
      #tab-communication .comm-doc p{color:#37424f;line-height:1.6;font-size:13px;margin:0 0 10px}
      #tab-communication .comm-lipost{max-width:460px;border:1px solid var(--border,#e8e8e8);border-radius:12px;overflow:hidden}
      #tab-communication .comm-lipost .h{display:flex;gap:10px;padding:12px 14px;align-items:center}
      #tab-communication .comm-lipost .p{width:40px;height:40px;border-radius:50%;background:var(--navy-800,#0d2d5e);color:#ffcc9c;display:grid;place-items:center;font-family:'Sora','Inter',sans-serif;font-weight:800}
      #tab-communication .comm-lipost .tx{padding:0 14px 12px;font-size:13px;line-height:1.55;white-space:pre-line}
      #tab-communication .comm-actionbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border,#e8e8e8)}
      /* ── Calendrier / studio ── */
      #tab-communication .comm-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
      #tab-communication .comm-cal .dow{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#888);font-weight:700;text-align:center;padding-bottom:2px}
      #tab-communication .comm-cal .cell{min-height:74px;border:1px solid var(--border,#e8e8e8);border-radius:9px;padding:6px;font-size:11px;background:#fff}
      #tab-communication .comm-cal .cell.mut{background:var(--bg,#f0f2f5);opacity:.5}
      #tab-communication .comm-cal .cell.today{border-color:var(--coral-500,#F97316);box-shadow:0 0 0 2px var(--coral-50,#fff7ed)}
      #tab-communication .comm-cal .cell .d{font-weight:700;color:var(--muted,#888);font-size:11px;margin-bottom:4px}
      #tab-communication .comm-cal .cell.today .d{color:var(--coral-600,#EA580C)}
      #tab-communication .comm-ev{display:block;font-size:9.5px;font-weight:600;padding:2px 5px;border-radius:5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#eef2fb;color:#22408a}
      #tab-communication .comm-asset{border:1px solid var(--border,#e8e8e8);border-radius:12px;overflow:hidden;background:#fff}
      #tab-communication .comm-asset .pv{height:104px;display:grid;place-items:center;color:#fff;font-family:'Sora','Inter',sans-serif;font-weight:700;font-size:13px;text-align:center;padding:8px;line-height:1.25}
      #tab-communication .comm-asset .cap{padding:8px 11px;font-size:11.5px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
      /* ── Validation+ : suggestion IA · image · seo · aperçu blog ── */
      #tab-communication .comm-suggest{margin-top:12px;border:1px dashed var(--coral-500,#F97316);background:var(--coral-50,#fff7ed);border-radius:12px;padding:12px}
      #tab-communication .comm-suggest h4{margin:0 0 4px;font-family:'Sora','Inter',sans-serif;font-size:12.5px;color:var(--navy-800,#0d2d5e);display:flex;align-items:center;gap:6px}
      #tab-communication .comm-suggest .hint{font-size:11px;color:var(--muted,#888);margin:0 0 8px;line-height:1.45}
      #tab-communication .comm-suggest textarea{min-height:62px}
      #tab-communication .comm-refine-status{font-size:12px;margin-top:8px;min-height:15px}
      #tab-communication .comm-refine-status.busy{color:var(--coral-600,#EA580C)}
      #tab-communication .comm-refine-status.ok{color:#157a4b}
      #tab-communication .comm-refine-status.err{color:#b4513f}
      #tab-communication .comm-seofields{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
      #tab-communication .comm-seofields .f{flex:1;min-width:180px}
      #tab-communication .comm-seofields label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#888);font-weight:700;margin-bottom:3px}
      #tab-communication .comm-imgwrap{border:1px solid var(--border,#e8e8e8);border-radius:12px;overflow:hidden;width:280px;max-width:100%;background:#eef2fb}
      #tab-communication .comm-imgwrap img{display:block;width:100%;height:auto}
      #tab-communication .comm-imgph{width:280px;max-width:100%;aspect-ratio:16/10;border-radius:12px;border:1px dashed var(--border,#e8e8e8);display:grid;place-items:center;color:var(--muted,#888);font-size:12px;text-align:center;background:linear-gradient(160deg,#eef3fb,#fff);padding:10px}
      #tab-communication .comm-spin{display:inline-block;width:13px;height:13px;border:2px solid var(--coral-500,#F97316);border-right-color:transparent;border-radius:50%;animation:commspin .7s linear infinite;vertical-align:-2px;margin-right:6px}
      @keyframes commspin{to{transform:rotate(360deg)}}
      /* Aperçu « comme sur le site » — modal global (hors scope #tab-communication) */
      .cmodal{position:fixed;inset:0;z-index:99999;background:rgba(10,22,40,.62);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:24px;animation:cmfade .18s ease}
      @keyframes cmfade{from{opacity:0}to{opacity:1}}
      .cmodal-box{background:#fff;max-width:840px;width:100%;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.42);margin:auto}
      .cmodal-bar{position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:11px 16px;background:#0d2d5e;color:#fff;font-family:'Sora','Inter',sans-serif;z-index:2}
      .cmodal-bar .t{font-weight:700;font-size:13px;flex:1}
      .cmodal-bar .u{font-size:11px;opacity:.72;font-weight:400}
      .cmodal-x{border:0;background:rgba(255,255,255,.16);color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1}
      .cart{font-family:'Inter',system-ui,sans-serif;color:#1f2733;line-height:1.7;padding:0 0 26px}
      .cart-hero{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:linear-gradient(160deg,#dfe9fb,#f5f8fe)}
      .cart-pad{padding:26px 40px 0}
      .cart-bc{font-size:12px;color:#8a93a3;margin-bottom:14px}
      .cart-bc b{color:#F97316;font-weight:600}
      .cart-cat{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#F97316;margin-bottom:8px}
      .cart h1{font-family:'Sora','Inter',sans-serif;font-size:30px;line-height:1.22;color:#0d2d5e;margin:0 0 8px}
      .cart .cart-meta{font-size:12px;color:#8a93a3;margin-bottom:18px}
      .cart h2{font-family:'Sora','Inter',sans-serif;font-size:21px;color:#0d2d5e;margin:26px 0 10px;padding-top:14px;border-top:1px solid #eef0f4}
      .cart h3{font-family:'Sora','Inter',sans-serif;font-size:16.5px;color:#13325f;margin:18px 0 6px}
      .cart p{margin:0 0 14px;font-size:15.5px}
      .cart ul{margin:0 0 14px;padding-left:22px}.cart li{margin:4px 0;font-size:15.5px}
      .cart a{color:#EA580C;text-decoration:underline}
      .cart strong{color:#0d2d5e}
      .cart blockquote{margin:16px 0;padding:12px 16px;border-left:3px solid #F97316;background:#fff7ed;color:#5a4633;font-size:14.5px;border-radius:0 8px 8px 0}
      .cart blockquote p{margin:0}
      .cart table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px}
      .cart th,.cart td{border:1px solid #e3e7ee;padding:8px 10px;text-align:left;vertical-align:top}
      .cart th{background:#0d2d5e;color:#fff;font-weight:600}
      .cart tr:nth-child(even) td{background:#f6f8fc}
      .cart-resume{background:#f1f6fe;border:1px solid #dde8fb;border-radius:12px;padding:16px 18px;margin:18px 0}
      .cart-resume .rt{font-family:'Sora','Inter',sans-serif;font-weight:700;color:#0d2d5e;font-size:13px;margin-bottom:6px}
      .cart-cta{margin:24px 40px 0;background:#0d2d5e;border-radius:14px;padding:22px 26px;color:#fff;text-align:center}
      .cart-cta .ct{font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:18px}
      .cart-cta a{display:inline-block;margin-top:10px;background:#F97316;color:#fff;text-decoration:none;font-weight:700;padding:11px 22px;border-radius:9px;font-family:'Sora','Inter',sans-serif}
      .cart-note{font-size:11px;color:#9aa3b2;padding:16px 40px 0}
      @media(max-width:560px){.cart-pad{padding:20px 20px 0}.cart-cta,.cart-note{margin-left:20px;margin-right:20px}.cart h1{font-size:24px}}
    
        /* J2 : 8 onglets (dont Satisfaction) SANS défilement horizontal — boutons
           compactés + retour à la ligne si l'écran est étroit. Scopé Communication. */
        #comm-subtabs{ flex-wrap:wrap; overflow-x:visible; overflow-y:visible;
          -webkit-mask-image:none; mask-image:none; }
        #comm-subtabs .pill-tab{ padding:7px 10px; font-size:12.5px; gap:6px; }
        #comm-subtabs .pill-tab .ico{ width:14px; height:14px; }
        #comm-subtabs .cbadge{ font-size:10px; }
        @media(max-width:1450px){ #comm-subtabs .pill-tab{ padding:7px 8px; font-size:12px; gap:5px; } }
      
        .fme-open-btn{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;background:#fff;color:#0d2d5e;border:1px solid rgba(13,45,94,.18);border-radius:11px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(13,45,94,.08);transition:.15s}
        .fme-open-btn:hover{background:#0d2d5e;color:#fff;border-color:#0d2d5e;transform:translateY(-1px)}
        .fme-open-btn svg{width:16px;height:16px}
        #fmEditorView{margin-top:6px}
        .fme-topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
        .fme-back{display:inline-flex;align-items:center;gap:7px;background:none;border:none;color:#0d2d5e;font-size:13px;font-weight:700;cursor:pointer;padding:6px 4px}
        .fme-back svg{width:16px;height:16px}
        .fme-title{font-family:'Sora','Inter',sans-serif;font-size:19px;font-weight:700;color:#0d2d5e;margin:0;letter-spacing:-.3px}
        .fme-tabs{display:flex;gap:6px;background:#EFE7D6;padding:4px;border-radius:12px}
        .fme-tab{background:none;border:none;padding:8px 16px;border-radius:9px;font-size:13px;font-weight:700;color:#6b7280;cursor:pointer;transition:.15s}
        .fme-tab.active{background:#fff;color:#0d2d5e;box-shadow:0 2px 6px rgba(13,45,94,.1)}
        .fme-save{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;border:none;border-radius:11px;padding:11px 22px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(249,115,22,.32);transition:.15s}
        .fme-save:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(249,115,22,.42)}
        .fme-save:disabled{opacity:.6;cursor:wait;transform:none}
        .fme-pane{display:none}
        .fme-pane.active{display:block}
        /* Documents joints — vues lecture (admin + auditeur) */
        .aud-fm-mod-docs{margin-top:14px;padding-top:14px;border-top:1px dashed rgba(13,45,94,.14)}
        .aud-fm-mod-docs-title{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:#6b7280;margin-bottom:9px}
        .aud-fm-doc{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid rgba(13,45,94,.14);border-radius:10px;padding:8px 13px 8px 11px;margin:0 8px 8px 0;text-decoration:none;transition:.14s;box-shadow:0 2px 6px rgba(13,45,94,.05)}
        .aud-fm-doc:hover{border-color:#F97316;transform:translateY(-1px);box-shadow:0 4px 11px rgba(249,115,22,.16)}
        .aud-fm-doc-ic{display:inline-flex;color:#F97316}
        .aud-fm-doc-ic svg{width:17px;height:17px}
        .aud-fm-doc-name{font-size:13px;font-weight:600;color:#0d2d5e}
        .aud-fm-doc-dl{font-size:11px;font-weight:700;color:#F97316;letter-spacing:.3px}
        .fme-intro{font-size:12.5px;color:#6b7280;background:#FBF7EE;border:1px solid rgba(13,45,94,.08);border-radius:10px;padding:11px 14px;margin-bottom:16px;line-height:1.5}
        .fme-fcard{background:#fff;border:1px solid rgba(13,45,94,.1);border-radius:16px;padding:18px 18px 20px;margin-bottom:18px;box-shadow:0 4px 16px rgba(13,45,94,.06)}
        .fme-fcard-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
        .fme-fbadge{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:5px 10px;border-radius:7px;color:#fff;white-space:nowrap;flex-shrink:0}
        .fme-fbadge.q{background:linear-gradient(135deg,#0d2d5e,#1c4a8e)}
        .fme-fbadge.s{background:linear-gradient(135deg,#F97316,#FB923C)}
        .fme-finput-title{flex:1;font-family:'Sora','Inter',sans-serif;font-size:16px;font-weight:700;color:#0d2d5e;border:none;border-bottom:2px solid transparent;padding:6px 2px;background:transparent}
        .fme-finput-title:focus{outline:none;border-bottom-color:#F97316}
        .fme-fcard-tools{display:flex;gap:5px;flex-shrink:0}
        .fme-ic{width:30px;height:30px;border-radius:8px;border:1px solid rgba(13,45,94,.14);background:#fff;color:#0d2d5e;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.12s}
        .fme-ic:hover{background:#0d2d5e;color:#fff}
        .fme-ic.danger:hover{background:#dc2626;border-color:#dc2626;color:#fff}
        .fme-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:12px}
        .fme-fgrid label,.fme-fdesc,.fme-qcm-meta label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}
        .fme-fgrid input,.fme-fdesc textarea,.fme-qcm-meta input{font-family:inherit;font-size:13px;font-weight:500;color:#0d2d5e;text-transform:none;letter-spacing:0;border:1px solid rgba(13,45,94,.16);border-radius:9px;padding:9px 11px;background:#FBF9F4}
        .fme-fgrid input:focus,.fme-fdesc textarea:focus,.fme-qcm-meta input:focus{outline:none;border-color:#F97316;background:#fff}
        .fme-fdesc{margin-bottom:16px}
        .fme-fdesc textarea{resize:vertical}
        .fme-toggle{align-self:flex-start;border:none;border-radius:8px;padding:9px 14px;font-size:12px;font-weight:700;cursor:pointer;background:#E5E7EB;color:#6b7280;text-transform:none;letter-spacing:0}
        .fme-toggle.on{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}
        .fme-mods{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
        .fme-mod{border:1px solid rgba(13,45,94,.1);border-radius:13px;padding:13px;background:#FBF9F4}
        .fme-mod-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}
        .fme-mod-num{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
        .fme-mod-title{flex:1;font-size:14px;font-weight:600;color:#0d2d5e;border:1px solid rgba(13,45,94,.16);border-radius:8px;padding:8px 10px;background:#fff}
        .fme-mod-title:focus{outline:none;border-color:#F97316}
        .fme-mod-min{width:52px;font-size:13px;color:#0d2d5e;border:1px solid rgba(13,45,94,.16);border-radius:8px;padding:8px 6px;background:#fff;text-align:center}
        .fme-min-lbl{font-size:11px;color:#9ca3af;margin-right:4px}
        .fme-rt-toolbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;background:#fff;border:1px solid rgba(13,45,94,.12);border-bottom:none;border-radius:9px 9px 0 0;padding:6px 8px}
        .fme-rt-toolbar button{min-width:30px;height:28px;padding:0 8px;border:1px solid rgba(13,45,94,.12);background:#FBF9F4;border-radius:6px;font-size:12px;color:#0d2d5e;cursor:pointer}
        .fme-rt-toolbar button:hover{background:#0d2d5e;color:#fff}
        .fme-rt-sep{width:1px;height:18px;background:rgba(13,45,94,.14);margin:0 3px}
        .fme-rt{min-height:120px;border:1px solid rgba(13,45,94,.12);border-radius:0 0 9px 9px;padding:12px 14px;background:#fff;font-size:13.5px;line-height:1.6;color:#1f2937}
        .fme-rt:focus{outline:none;border-color:#F97316}
        .fme-rt h5{font-family:'Sora','Inter',sans-serif;font-size:14px;font-weight:700;color:#0d2d5e;margin:12px 0 6px}
        .fme-rt ul,.fme-rt ol{margin:6px 0;padding-left:22px}
        .fme-rt p{margin:6px 0}
        .fme-docs{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
        .fme-doc{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid rgba(13,45,94,.14);border-radius:8px;padding:5px 6px 5px 10px;font-size:12px}
        .fme-doc a{color:#0d2d5e;text-decoration:none;font-weight:600}
        .fme-doc a:hover{text-decoration:underline}
        .fme-doc-x{width:20px;height:20px;border:none;background:#F3E8E8;color:#dc2626;border-radius:6px;cursor:pointer;font-size:11px}
        .fme-doc-x:hover{background:#dc2626;color:#fff}
        .fme-upload{display:inline-flex;align-items:center;gap:10px;margin-top:11px;position:relative}
        .fme-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
        .fme-upload-btn{display:inline-flex;align-items:center;background:#EEF2FF;color:#0d2d5e;border:1px dashed rgba(13,45,94,.3);border-radius:8px;padding:7px 13px;font-size:12px;font-weight:700;cursor:pointer}
        .fme-up-status{font-size:11.5px;color:#6b7280}
        .fme-add-mod,.fme-add-formation,.fme-add-lec{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px dashed rgba(13,45,94,.28);color:#0d2d5e;border-radius:11px;padding:11px 18px;font-size:13px;font-weight:700;cursor:pointer;transition:.15s}
        .fme-add-mod:hover,.fme-add-formation:hover,.fme-add-lec:hover{border-color:#F97316;color:#F97316;background:#FFF7ED}
        .fme-add-formation{margin-top:4px}
        /* ── Conteneur module dans l'éditeur (regroupe ses leçons) ── */
        .fme-mod-container{background:#fff;border:1.5px solid rgba(13,45,94,.16);border-radius:14px;padding:14px 14px 14px;margin-bottom:14px;box-shadow:0 2px 8px rgba(13,45,94,.04)}
        .fme-mod-container-head{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding-bottom:11px;border-bottom:1.5px dashed rgba(13,45,94,.12)}
        .fme-mod-num-big{width:38px;height:32px;border-radius:8px;background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;font-size:12px;font-weight:800;letter-spacing:.5px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
        .fme-mod-title-big{flex:1;font-size:15px;font-weight:700;color:#0d2d5e;border:1px solid rgba(13,45,94,.18);border-radius:8px;padding:9px 11px;background:#FBF9F4}
        .fme-mod-title-big:focus{outline:none;border-color:#F97316;background:#fff}
        .fme-lecons{display:flex;flex-direction:column;gap:11px;margin-bottom:11px}
        .fme-lecons-empty{padding:13px 14px;font-size:12px;color:#9CA3AF;font-style:italic;text-align:center;background:rgba(13,45,94,.03);border-radius:10px;border:1px dashed rgba(13,45,94,.12)}
        .fme-add-lec{font-size:12px;padding:9px 14px}
        /* ── Section QCMs (un ou plusieurs QCMs par formation) ── */
        .fme-qcms-section{margin-top:18px;padding-top:18px;border-top:1.5px dashed rgba(13,45,94,.12)}
        .fme-qcms-head{font-size:12.5px;font-weight:800;letter-spacing:.5px;color:#0d2d5e;margin-bottom:10px;text-transform:uppercase}
        .fme-qcms-hint{font-size:11px;font-weight:500;color:#6b7280;text-transform:none;letter-spacing:0;margin-left:4px}
        .fme-fqcm{background:#fff;border:1.5px solid rgba(245,158,11,.28);border-radius:13px;padding:13px 13px 13px;margin-bottom:12px;box-shadow:0 2px 8px rgba(13,45,94,.04)}
        .fme-fqcm-head{display:flex;align-items:center;gap:8px;margin-bottom:11px;padding-bottom:10px;border-bottom:1.5px dashed rgba(245,158,11,.2);flex-wrap:wrap}
        .fme-fqcm-sub{flex:0 1 180px;min-width:140px;font-size:12px;color:#6b7280;border:1px solid rgba(13,45,94,.14);border-radius:7px;padding:7px 9px;background:#FAFAFA}
        .fme-fqcm-sub:focus{outline:none;border-color:#F97316;background:#fff}
        .fme-fqs{display:flex;flex-direction:column;gap:10px;margin-bottom:11px}
        .fme-qcm-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
        .fme-qcm-cat{background:#fff;border:1px solid rgba(13,45,94,.14);border-radius:10px;padding:9px 15px;font-size:12.5px;font-weight:700;color:#6b7280;cursor:pointer;transition:.15s}
        .fme-qcm-cat.active{background:linear-gradient(135deg,#0d2d5e,#1c4a8e);color:#fff;border-color:#0d2d5e}
        .fme-qcm-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;background:#fff;border:1px solid rgba(13,45,94,.1);border-radius:13px;padding:14px 16px;margin-bottom:16px}
        .fme-qcm-meta label{flex:1;min-width:160px}
        .fme-qcm-count{font-size:12px;font-weight:700;color:#F97316;padding-bottom:9px}
        .fme-q{background:#fff;border:1px solid rgba(13,45,94,.1);border-radius:14px;padding:15px 16px;margin-bottom:14px;box-shadow:0 3px 12px rgba(13,45,94,.05)}
        .fme-q-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
        .fme-q-num{font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:800;color:#0d2d5e;background:#EEF2FF;border-radius:7px;padding:4px 10px}
        .fme-q-tools{display:flex;gap:5px;margin-left:auto}
        .fme-q-text{width:100%;font-family:inherit;font-size:14px;font-weight:600;color:#0d2d5e;border:1px solid rgba(13,45,94,.16);border-radius:9px;padding:10px 12px;background:#FBF9F4;resize:vertical;margin-bottom:11px;box-sizing:border-box}
        .fme-q-text:focus{outline:none;border-color:#F97316;background:#fff}
        .fme-o{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:4px;border-radius:9px;transition:.12s}
        .fme-o.correct{background:rgba(22,163,74,.08)}
        .fme-o-radio,.fme-o-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer;flex-shrink:0}
        .fme-o-radio input,.fme-o-check input{accent-color:#16a34a;width:17px;height:17px;cursor:pointer}
        .fme-o-letter{width:24px;height:24px;border-radius:7px;background:#E5E7EB;color:#6b7280;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
        .fme-o.correct .fme-o-letter{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}
        .fme-o-text{flex:1;font-size:13.5px;color:#1f2937;border:1px solid rgba(13,45,94,.14);border-radius:8px;padding:8px 11px;background:#fff}
        .fme-o-text:focus{outline:none;border-color:#F97316}
        .fme-o-del{flex-shrink:0;font-size:11px;padding:5px 9px}
        .fme-add-opt{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px dashed rgba(13,45,94,.24);color:#6b7280;border-radius:9px;padding:7px 12px;font-size:11.5px;font-weight:700;cursor:pointer;transition:.15s;margin-top:6px}
        .fme-add-opt:hover{border-color:#F97316;color:#F97316;background:#FFF7ED}
        .fme-q-multi-hint{font-size:11px;color:#16a34a;font-weight:700;letter-spacing:.2px;padding:3px 8px;background:rgba(22,163,74,.1);border-radius:7px}
        .fme-q-multi-hint.subtle{color:#6b7280;background:rgba(13,45,94,.05);font-weight:600}
        @media(max-width:760px){.fme-save{margin-left:0;width:100%;justify-content:center}.fme-topbar{gap:10px}}
      
        #tab-mesdocs .cmd-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(265px,1fr)); gap:14px; margin-top:18px; }
        #tab-mesdocs .cmd-card{ display:flex; align-items:center; gap:13px; background:#fff; border:1px solid #e8edf5; border-radius:14px; padding:14px 16px; transition:box-shadow .15s, border-color .15s; }
        #tab-mesdocs .cmd-card:hover{ box-shadow:0 8px 22px rgba(13,45,94,.09); border-color:#cfe0ff; }
        #tab-mesdocs .cmd-badge{ flex:0 0 auto; width:46px; height:46px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; letter-spacing:.5px; color:#fff; background:#64748b; }
        #tab-mesdocs .cmd-badge.pdf{ background:#dc2626; }
        #tab-mesdocs .cmd-badge.doc{ background:#2563eb; }
        #tab-mesdocs .cmd-badge.xls{ background:#16a34a; }
        #tab-mesdocs .cmd-badge.img{ background:#7c3aed; }
        #tab-mesdocs .cmd-body{ flex:1; min-width:0; }
        #tab-mesdocs .cmd-name{ font-weight:700; color:#0d2d5e; font-size:13.5px; font-family:Sora,Inter,sans-serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        #tab-mesdocs .cmd-meta{ font-size:12px; color:#6b7280; margin-top:3px; }
        #tab-mesdocs .cmd-dl{ flex:0 0 auto; width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:#0d2d5e; background:#f1f5fb; border:1px solid #e2e8f4; text-decoration:none; transition:background .15s, color .15s; }
        #tab-mesdocs .cmd-dl:hover{ background:#e7eefb; color:#F97316; }
      

#clientView{
  --navy-900:#0A2249; --navy-800:#0D2D5E; --navy-700:#143B78; --navy-600:#1C5CC4;
  --navy-100:#E7EFFB; --navy-50:#F2F6FD;
  --or-700:#EA580C; --or-600:#F97316; --or-500:#FB923C; --or-300:#FDBA74; --or-100:#FFEEDD; --or-50:#FFF7EF;
  --ink-900:#0E1726; --ink-700:#33415A; --ink-600:#516080; --ink-500:#6C7A96; --ink-400:#98A4BC; --ink-300:#C6CFDE; --ink-200:#E4E9F2;
  --line:#EAEEF5; --page:#F5F7FB; --card:#FFFFFF;
  --ok-600:#128A5E; --ok-50:#E5F5EE; --warn-600:#B7791F; --warn-50:#FBF2E0; --alert-600:#D14343; --alert-50:#FBECEC;
  --sh-sm:0 1px 2px rgba(13,45,94,.06); --sh-md:0 8px 26px -14px rgba(13,45,94,.28); --sh-lg:0 22px 55px -28px rgba(13,45,94,.42);
  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px;
  --pad:clamp(16px,3.2vw,46px);
  --fd:'Schibsted Grotesk',-apple-system,system-ui,sans-serif;
  --fu:'Inter',-apple-system,system-ui,sans-serif;
  --fm:'JetBrains Mono',ui-monospace,monospace;
}
#clientView *{box-sizing:border-box;margin:0;padding:0}
#clientView{scroll-behavior:smooth}
#clientView{font-family:var(--fu);color:var(--ink-900);background:var(--page);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
#clientView a{color:inherit;text-decoration:none}
#clientView button{font-family:inherit;cursor:pointer}
#clientView .mono{font-family:var(--fm)}#clientView .disp{font-family:var(--fd)}

#clientView /* ===================== TOP NAV (full width) ===================== */
.topbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
#clientView .topin{width:100%;padding:0 var(--pad);height:66px;display:flex;align-items:center;gap:22px}
#clientView .brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
#clientView .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(150deg,var(--navy-800),var(--navy-600));display:grid;place-items:center;position:relative;box-shadow:0 8px 20px -10px rgba(13,45,94,.7)}
#clientView .logo::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--or-600);right:7px;bottom:7px;box-shadow:0 0 0 3px #fff}
#clientView .logo span{font-family:var(--fd);font-weight:800;color:#fff;font-size:18px}
#clientView .brand .bt{display:flex;flex-direction:column;line-height:1.05}
#clientView .brand .bt b{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--navy-800)}
#clientView .brand .bt i{font-style:normal;font-size:11px;font-weight:600;color:var(--ink-400);letter-spacing:.03em}
#clientView .nav{display:flex;align-items:center;gap:2px;margin-left:6px;flex-wrap:nowrap}
#clientView .nav a{position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:550;color:var(--ink-600);white-space:nowrap;transition:.15s}
#clientView .nav a svg{width:16px;height:16px;opacity:.75}
#clientView .nav a:hover{color:var(--navy-800);background:var(--navy-50)}
#clientView .nav a.on{color:var(--or-700);background:var(--or-50)}
#clientView .nav a.on svg{opacity:1;color:var(--or-600)}
#clientView .nav a .nbadge{background:var(--or-600);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:100px}
#clientView .tright{margin-left:auto;display:flex;align-items:center;gap:10px;flex:0 0 auto}
#clientView .iconbtn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink-600);position:relative;transition:.15s}
#clientView .iconbtn:hover{border-color:var(--ink-300);color:var(--navy-800)}
#clientView .iconbtn svg{width:18px;height:18px}
#clientView .iconbtn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--or-600);box-shadow:0 0 0 2.5px #fff}
#clientView .orgchip{display:flex;align-items:center;gap:10px;padding:5px 12px 5px 6px;border:1px solid var(--line);border-radius:100px;background:#fff;transition:.15s}
#clientView .orgchip:hover{border-color:var(--ink-300);box-shadow:var(--sh-sm)}
#clientView .orgav{width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,var(--or-600),var(--or-300));color:#fff;display:grid;place-items:center;font-weight:700;font-size:12.5px;font-family:var(--fd)}
#clientView .orgchip .om{display:flex;flex-direction:column;line-height:1.15}
#clientView .orgchip .om b{font-size:12.5px;font-weight:650;color:var(--navy-800)}
#clientView .orgchip .om i{font-style:normal;font-size:11px;color:var(--ink-400)}
#clientView .orgchip svg{width:15px;height:15px;color:var(--ink-400)}
#clientView .burger{display:none;width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:#fff;place-items:center;color:var(--navy-800)}
#clientView .burger svg{width:20px;height:20px}

#clientView /* ===================== SHELL (full width) ===================== */
.wrap{width:100%;padding:26px var(--pad) 84px;position:relative}
#clientView .bg-aura{position:fixed;inset:0 0 auto 0;height:360px;background:radial-gradient(1200px 360px at 82% -140px,rgba(249,115,22,.10),transparent 60%),radial-gradient(1200px 440px at 4% -170px,rgba(28,92,196,.12),transparent 62%);z-index:-1;pointer-events:none}
#clientView .view{display:none;animation:cvx_fade .3s ease}
#clientView .view.on{display:block}
@keyframes cvx_fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#clientView .pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}
#clientView .pagehead .eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--or-600)}
#clientView .pagehead h1{font-family:var(--fd);font-weight:700;font-size:28px;letter-spacing:-.02em;color:var(--navy-900);margin-top:6px}
#clientView .pagehead p{color:var(--ink-500);font-size:14.5px;margin-top:6px;max-width:60ch}

#clientView .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
#clientView .card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
#clientView .card-h h3{font-family:var(--fd);font-size:15px;font-weight:600;color:var(--navy-800);display:flex;align-items:center;gap:10px}
#clientView .card-h h3 .hi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#clientView .card-h h3 .hi.or{background:var(--or-50);color:var(--or-600)}
#clientView .card-h h3 .hi svg{width:17px;height:17px}
#clientView .card-b{padding:20px}
#clientView .linkmini{font-size:13px;font-weight:600;color:var(--navy-600);display:inline-flex;align-items:center;gap:5px}
#clientView .linkmini:hover{color:var(--or-600)}#clientView .linkmini svg{width:14px;height:14px}

#clientView .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:600;border-radius:11px;padding:11px 17px;border:0;transition:transform .12s,background .15s,box-shadow .15s,color .15s}
#clientView .btn:active{transform:translateY(1px)}#clientView .btn svg{width:16px;height:16px}
#clientView .btn-or{background:var(--or-600);color:#fff;box-shadow:0 10px 22px -12px rgba(249,115,22,.85)}#clientView .btn-or:hover{background:var(--or-700)}
#clientView .btn-navy{background:var(--navy-800);color:#fff}#clientView .btn-navy:hover{background:var(--navy-900)}
#clientView .btn-ghost{background:#fff;color:var(--ink-700);box-shadow:inset 0 0 0 1px var(--line)}#clientView .btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--ink-300);color:var(--navy-800)}
#clientView .btn-sm{padding:8px 13px;font-size:13px;border-radius:9px}
#clientView .btn-lite{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.25)}#clientView .btn-lite:hover{background:rgba(255,255,255,.24)}

#clientView .pill{font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 12px;display:inline-flex;align-items:center;gap:7px}
#clientView .pill .d{width:7px;height:7px;border-radius:999px}
#clientView .pill.ok{background:var(--ok-50);color:var(--ok-600)}#clientView .pill.ok .d{background:var(--ok-600)}
#clientView .pill.or{background:var(--or-50);color:var(--or-700)}#clientView .pill.or .d{background:var(--or-600)}
#clientView .pill.warn{background:var(--warn-50);color:var(--warn-600)}#clientView .pill.warn .d{background:var(--warn-600)}
#clientView .pill.navy{background:var(--navy-50);color:var(--navy-700)}#clientView .pill.navy .d{background:var(--navy-600)}
#clientView .pill.grey{background:#eef1f6;color:var(--ink-500)}#clientView .pill.grey .d{background:var(--ink-400)}
#clientView .tag{font-size:12px;font-weight:600;border-radius:8px;padding:4px 10px;background:var(--navy-50);color:var(--navy-700)}
#clientView .tag.or{background:var(--or-50);color:var(--or-700)}

#clientView /* ===================== VARIANT SWITCHER ===================== */
.vswitch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:var(--sh-sm);margin-bottom:20px}
#clientView .vswitch .vsl{font-size:12.5px;font-weight:700;color:var(--navy-800);font-family:var(--fd)}
#clientView .vsb{border:1px solid var(--line);background:#fff;color:var(--ink-600);font-weight:600;font-size:13px;padding:8px 14px;border-radius:100px;transition:.15s}
#clientView .vsb:hover{border-color:var(--or-300);color:var(--or-700)}
#clientView .vsb.on{background:var(--or-600);color:#fff;border-color:var(--or-600);box-shadow:0 8px 18px -10px rgba(249,115,22,.8)}
#clientView .vswitch .vshint{margin-left:auto;font-size:12px;color:var(--ink-400)}
#clientView .avar{display:none}#clientView .avar.on{display:block}

#clientView /* full-bleed helper */
.bleed{margin-left:calc(-1*var(--pad));margin-right:calc(-1*var(--pad));width:auto}

#clientView /* ===================== HERO (variant A immersive,#clientView full-bleed) ===================== */
.heroA{position:relative;overflow:hidden;background:linear-gradient(120deg,#0A2A57 0%,#123C7B 48%,#1A50A0 100%);color:#fff;padding:34px var(--pad) 40px}
#clientView .heroA::before{content:"";position:absolute;right:6%;top:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(249,115,22,.5),transparent 62%)}
#clientView .heroA::after{content:"";position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(transparent,rgba(6,18,42,.4))}
#clientView .heroA-in{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr .9fr;gap:30px;align-items:center;max-width:100%}
#clientView .heroA .greet{font-size:14px;color:rgba(255,255,255,.72);font-weight:500}
#clientView .heroA h2{font-family:var(--fd);font-weight:700;font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;margin-top:6px;line-height:1.08}
#clientView .heroA .statusline{display:inline-flex;align-items:center;gap:9px;background:rgba(18,138,94,.22);border:1px solid rgba(88,224,168,.35);color:#B7F7D8;font-weight:600;font-size:13px;border-radius:100px;padding:7px 14px;margin-top:16px}
#clientView .heroA .statusline .d{width:8px;height:8px;border-radius:50%;background:#4ADE9A;box-shadow:0 0 0 4px rgba(74,222,154,.25)}
#clientView .heroA .htags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
#clientView .heroA .htag{font-size:12.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:6px 13px}
#clientView .certpanel{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.17);border-radius:var(--r-lg);padding:22px;backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:16px}
#clientView .certtop{display:flex;align-items:center;gap:16px}
#clientView .seal{width:70px;height:70px;flex:none;border-radius:50%;background:conic-gradient(from 210deg,var(--or-500),var(--or-700),var(--or-500));display:grid;place-items:center;position:relative;box-shadow:0 14px 30px -10px rgba(249,115,22,.7)}
#clientView .seal::before{content:"";position:absolute;inset:6px;border-radius:50%;border:2px dashed rgba(255,255,255,.55)}
#clientView .seal svg{width:30px;height:30px;color:#fff;position:relative}
#clientView .certtop .ci b{display:block;font-size:12px;color:rgba(255,255,255,.66);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
#clientView .certtop .ci .num{font-family:var(--fm);font-size:17px;font-weight:600;margin-top:4px}
#clientView .certdates{display:flex;gap:24px}
#clientView .certdates .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.6);font-weight:600}
#clientView .certdates .v{font-size:14px;font-weight:600;margin-top:3px}
#clientView .certpanel .btn{width:100%}
#clientView .heroA-strip{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px;max-width:100%}
#clientView .hstat{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-md);padding:16px 18px;backdrop-filter:blur(6px);display:flex;align-items:center;gap:14px}
#clientView .hstat .hsi{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none}
#clientView .hstat .hsi svg{width:20px;height:20px;color:#fff}
#clientView .hstat .hsi.or{background:var(--or-600)}
#clientView .hstat .k{font-size:12px;color:rgba(255,255,255,.7);font-weight:500}
#clientView .hstat .v{font-family:var(--fd);font-weight:700;font-size:18px;margin-top:2px}
#clientView .hstat .cta{margin-left:auto}
#clientView .hstat .cta a{font-size:12px;font-weight:600;color:#fff;opacity:.85}

#clientView /* generic grids */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
#clientView .g2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-top:20px}
#clientView .g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
#clientView .mini-k{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-400)}
#clientView .big-num{font-family:var(--fd);font-weight:700;font-size:30px;letter-spacing:-.02em;color:var(--navy-800)}
#clientView .countdown{display:inline-flex;align-items:baseline;gap:6px;color:var(--or-700);font-weight:700}
#clientView .due{background:linear-gradient(160deg,#fff,var(--or-50))}

#clientView .rlist{display:flex;flex-direction:column}
#clientView .rrow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
#clientView .rrow:last-child{border-bottom:0;padding-bottom:0}#clientView .rrow:first-child{padding-top:0}
#clientView .fico{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:10px;font-weight:700;font-family:var(--fm);color:#fff}
#clientView .fico.pdf{background:linear-gradient(150deg,#E8543B,#F97316)}
#clientView .fico.doc{background:linear-gradient(150deg,#1C5CC4,#143B78)}
#clientView .fico.xls{background:linear-gradient(150deg,#128A5E,#0f6f4c)}
#clientView .rrow .rn{font-weight:600;font-size:14px;color:var(--navy-800)}
#clientView .rrow .rs{font-size:12.5px;color:var(--ink-400);margin-top:1px}
#clientView .rrow .ra{margin-left:auto;display:flex;align-items:center;gap:8px}
#clientView .dlbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink-500);transition:.15s}
#clientView .dlbtn:hover{border-color:var(--or-300);color:var(--or-600);background:var(--or-50)}#clientView .dlbtn svg{width:16px;height:16px}

#clientView .msgprev{display:flex;gap:14px;align-items:flex-start}
#clientView .msgav{width:44px;height:44px;border-radius:12px;flex:none;background:linear-gradient(140deg,var(--navy-700),var(--navy-600));color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--fd)}
#clientView .msgprev .mb{background:var(--navy-50);border:1px solid var(--line);border-radius:4px 14px 14px 14px;padding:13px 15px;font-size:14px;color:var(--ink-700);line-height:1.55}
#clientView .msgprev .mm{font-size:12px;color:var(--ink-400);margin-top:7px}

#clientView /* KPI cards (variant B cockpit) */
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-sm);position:relative;overflow:hidden}
#clientView .kpi .edge{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--navy-600)}
#clientView .kpi.or .edge{background:var(--or-600)}#clientView .kpi.ok .edge{background:var(--ok-600)}#clientView .kpi.warn .edge{background:var(--warn-600)}
#clientView .kpi .ktop{display:flex;align-items:center;justify-content:space-between}
#clientView .kpi .ki{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#clientView .kpi.or .ki{background:var(--or-50);color:var(--or-600)}#clientView .kpi.ok .ki{background:var(--ok-50);color:var(--ok-600)}#clientView .kpi.warn .ki{background:var(--warn-50);color:var(--warn-600)}
#clientView .kpi .ki svg{width:19px;height:19px}
#clientView .kpi .kv{font-family:var(--fd);font-weight:700;font-size:26px;letter-spacing:-.02em;color:var(--navy-800);margin-top:14px}
#clientView .kpi .kl{font-size:12.5px;color:var(--ink-500);margin-top:3px}
#clientView .actlist .arow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
#clientView .actlist .arow:last-child{border-bottom:0}
#clientView .actlist .ai{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--or-50);color:var(--or-600)}
#clientView .actlist .ai svg{width:18px;height:18px}
#clientView .actlist .an{font-weight:600;font-size:14px;color:var(--navy-800)}
#clientView .actlist .as{font-size:12.5px;color:var(--ink-400);margin-top:1px}
#clientView .actlist .aa{margin-left:auto}

#clientView /* editorial (variant C) */
.editorial{padding:8px 0 0}
#clientView .ed-head{max-width:900px}
#clientView .ed-head .ek{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--or-600)}
#clientView .ed-head h2{font-family:var(--fd);font-weight:700;font-size:clamp(30px,4.4vw,52px);line-height:1.04;letter-spacing:-.025em;color:var(--navy-900);margin-top:12px}
#clientView .ed-head p{font-size:16px;color:var(--ink-500);margin-top:16px;max-width:60ch;line-height:1.6}
#clientView .ed-cert{display:flex;align-items:center;gap:22px;background:linear-gradient(150deg,#fff,var(--or-50));border:1px solid var(--or-100);border-radius:var(--r-xl);padding:26px 28px;margin-top:26px;flex-wrap:wrap}
#clientView .ed-cert .seal2{width:78px;height:78px;flex:none;border-radius:22px;background:conic-gradient(from 210deg,var(--or-500),var(--or-700),var(--or-500));display:grid;place-items:center;box-shadow:0 16px 32px -14px rgba(249,115,22,.7)}
#clientView .ed-cert .seal2 svg{width:34px;height:34px;color:#fff}
#clientView .ed-cert .ecn b{font-size:12px;color:var(--ink-500);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
#clientView .ed-cert .ecn .num{font-family:var(--fm);font-size:20px;font-weight:600;color:var(--navy-800);margin-top:4px}
#clientView .ed-cert .ecn .sub{font-size:13.5px;color:var(--ink-500);margin-top:6px}
#clientView .ed-cert .eca{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
#clientView .ed-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
#clientView .ed-tile{border-top:3px solid var(--navy-600);padding:20px 4px 4px}
#clientView .ed-tile.or{border-top-color:var(--or-600)}
#clientView .ed-tile .etk{font-size:12.5px;color:var(--ink-400);font-weight:600}
#clientView .ed-tile .etv{font-family:var(--fd);font-weight:700;font-size:22px;color:var(--navy-800);margin-top:8px}
#clientView .ed-tile .ets{font-size:13px;color:var(--ink-500);margin-top:8px;line-height:1.5}
#clientView .ed-tile a{color:var(--or-700);font-weight:600;font-size:13px;display:inline-flex;gap:5px;align-items:center;margin-top:12px}
#clientView .ed-tile a svg{width:14px;height:14px}

#clientView /* ===================== PARCOURS — frise 3 ans ===================== */
.frise-wrap{overflow-x:auto;overflow-y:hidden;padding:12px 0 4px}
#clientView .frise{position:relative;min-width:700px;height:250px}
#clientView /* axe + progression */
.fr-axis{position:absolute;top:152px;height:5px;background:var(--ink-200);border-radius:6px}
#clientView .fr-prog{position:absolute;top:152px;height:5px;background:linear-gradient(90deg,var(--navy-700),var(--navy-600));border-radius:6px}
#clientView /* couloir des fenêtres (SOUS l'axe,#clientView zones colorées sans texte) */
.fr-win{position:absolute;top:174px;height:26px;border-radius:9px}
#clientView .fr-win.surv{background:var(--or-50);border:1.5px dashed var(--or-300)}
#clientView .fr-win.renew{background:var(--navy-50);border:1.5px dashed #9db6e0}
#clientView /* années (tout en bas) */
.fr-yr{position:absolute;top:214px;font-size:11px;font-family:var(--fm);color:var(--ink-400);transform:translateX(-50%)}
#clientView .fr-yr::before{content:"";position:absolute;left:50%;top:-20px;width:1px;height:12px;background:var(--ink-200)}
#clientView /* ligne Aujourd'hui (couloir haut → dans la bande) */
.fr-today{position:absolute;top:36px;height:150px;width:2px;background:var(--or-600);border-radius:2px;z-index:1}
#clientView .fr-today::after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:11px;height:11px;border-radius:50%;background:var(--or-600);box-shadow:0 0 0 4px var(--or-100)}
#clientView .fr-today .tb{position:absolute;top:-32px;left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--or-600);color:#fff;font-size:11px;font-weight:700;padding:4px 11px;border-radius:100px;box-shadow:0 8px 18px -8px rgba(249,115,22,.8)}
#clientView /* jalons : pastille sur l'axe + étiquette AU-DESSUS */
.mstone{position:absolute;top:152px;transform:translate(-50%,-50%);z-index:2}
#clientView .mstone .mdot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 0 0 6px #fff,0 5px 12px -5px rgba(13,45,94,.35)}
#clientView .mstone .mdot svg{width:18px;height:18px}
#clientView .mstone.done .mdot{background:var(--navy-700);color:#fff}
#clientView .mstone.next .mdot{background:var(--or-600);color:#fff;box-shadow:0 0 0 6px var(--or-100),0 8px 18px -6px rgba(249,115,22,.75)}
#clientView .mstone.todo .mdot{background:#fff;color:var(--ink-400);box-shadow:inset 0 0 0 2px var(--ink-200),0 0 0 6px #fff}
#clientView .mstone .mlab{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);width:max-content;max-width:150px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px 12px;box-shadow:var(--sh-sm)}
#clientView .mstone .mlab::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%) rotate(45deg);width:9px;height:9px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
#clientView .mstone .mlab .mt{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--navy-800);line-height:1.2}
#clientView .mstone.next .mlab .mt{color:var(--or-700)}
#clientView .mstone.todo .mlab .mt{color:var(--ink-500)}
#clientView .mstone .mlab .md{font-family:var(--fm);font-size:11px;color:var(--ink-400);margin-top:3px}

#clientView .auditcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
#clientView .acard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh-sm);position:relative;overflow:hidden}
#clientView .acard .abar{position:absolute;left:0;top:0;bottom:0;width:4px}
#clientView .acard.done .abar{background:var(--navy-600)}#clientView .acard.next .abar{background:var(--or-600)}#clientView .acard.todo .abar{background:var(--ink-300)}
#clientView .acard .ah{display:flex;align-items:center;gap:12px;margin-bottom:14px}
#clientView .acard .aic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none}
#clientView .acard.done .aic{background:var(--navy-50);color:var(--navy-600)}#clientView .acard.next .aic{background:var(--or-50);color:var(--or-600)}#clientView .acard.todo .aic{background:#eef1f6;color:var(--ink-400)}
#clientView .acard .aic svg{width:20px;height:20px}
#clientView .acard .at{font-family:var(--fd);font-weight:600;font-size:15.5px;color:var(--navy-800)}
#clientView .acard .atx{font-size:12px;color:var(--ink-400)}
#clientView .acard .arow2{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
#clientView .acard .arow2:last-of-type{border-bottom:0}
#clientView .acard .arow2 .k{color:var(--ink-500)}
#clientView .acard .arow2 .v{font-weight:600;color:var(--navy-800);text-align:right}
#clientView .acard .v.fen{color:var(--or-700)}
#clientView .acard .abtn{margin-top:14px}

#clientView .timeline{position:relative;padding-left:6px;margin-top:4px}
#clientView .tl-item{position:relative;display:flex;gap:16px;padding-bottom:18px}
#clientView .tl-item:last-child{padding-bottom:0}
#clientView .tl-rail{flex:none;display:flex;flex-direction:column;align-items:center}
#clientView .tl-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;z-index:1}
#clientView .tl-dot svg{width:14px;height:14px}
#clientView .tl-item.done .tl-dot{background:var(--navy-700);color:#fff}
#clientView .tl-item.curr .tl-dot{background:var(--or-600);color:#fff;box-shadow:0 0 0 5px var(--or-100)}
#clientView .tl-item.todo .tl-dot{background:#fff;color:var(--ink-400);box-shadow:inset 0 0 0 2px var(--ink-200)}
#clientView .tl-line{flex:1;width:3px;background:var(--ink-200);margin-top:2px}
#clientView .tl-item.done .tl-line{background:var(--navy-600)}#clientView .tl-item:last-child .tl-line{display:none}
#clientView .tl-body .tt{font-family:var(--fd);font-weight:600;font-size:14px;color:var(--navy-800);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#clientView .tl-body .td{font-size:12.5px;color:var(--ink-500);margin-top:3px}
#clientView .tl-body .dt{font-family:var(--fm);font-size:11.5px;color:var(--ink-400);margin-top:3px}

#clientView .reassure{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(160deg,#fff,var(--ok-50));border:1px solid #cfeadd;border-radius:var(--r-md)}
#clientView .reassure .ri{width:46px;height:46px;border-radius:13px;background:#fff;display:grid;place-items:center;color:var(--ok-600);box-shadow:var(--sh-sm)}
#clientView .reassure .ri svg{width:24px;height:24px}
#clientView .reassure b{font-family:var(--fd);color:var(--navy-800);font-size:15px}
#clientView .reassure p{font-size:13px;color:var(--ink-500);margin-top:2px}

#clientView /* tables */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
#clientView .tbl thead th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);font-weight:600;padding:11px 14px;background:var(--navy-50);border-bottom:1px solid var(--line)}
#clientView .tbl thead th:last-child{text-align:right}
#clientView .tbl tbody td{padding:14px;border-bottom:1px solid var(--line);color:var(--ink-700)}
#clientView .tbl tbody td:last-child{text-align:right}#clientView .tbl tbody tr:last-child td{border-bottom:0}
#clientView .tbl tbody tr:hover{background:var(--navy-50)}#clientView .tbl b{color:var(--navy-900);font-weight:600}
#clientView .tbl .ref{font-family:var(--fm);font-size:12.5px;color:var(--navy-700)}
#clientView .amt{font-family:var(--fm);font-weight:600;color:var(--navy-900)}

#clientView /* documents */
.searchbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;box-shadow:var(--sh-sm);max-width:340px}
#clientView .searchbar svg{width:17px;height:17px;color:var(--ink-400)}
#clientView .searchbar input{border:0;outline:0;font-family:inherit;font-size:14px;width:100%;background:transparent}
#clientView .doccat{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;margin:24px 0 12px;display:flex;align-items:center;gap:9px}
#clientView .doccat .c{background:var(--navy-50);color:var(--navy-700);font-size:11px;padding:2px 8px;border-radius:100px;font-family:var(--fu);letter-spacing:0}
#clientView .docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
#clientView .doccard{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-sm);transition:.16s;display:flex;flex-direction:column;gap:14px}
#clientView .doccard:hover{box-shadow:var(--sh-md);transform:translateY(-2px);border-color:var(--or-100)}
#clientView .doccard .dtop{display:flex;align-items:center;justify-content:space-between}
#clientView .doccard .dn{font-weight:600;font-size:14.5px;color:var(--navy-800);line-height:1.35}
#clientView .doccard .dm{font-size:12.5px;color:var(--ink-400);margin-top:3px;font-family:var(--fm)}
#clientView .doccard .dfoot{display:flex;align-items:center;justify-content:space-between}

#clientView /* facturation */
.sumrow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
#clientView .sumcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px;box-shadow:var(--sh-sm);position:relative;overflow:hidden}
#clientView .sumcard .k{font-size:12.5px;color:var(--ink-500);font-weight:600}
#clientView .sumcard .v{font-family:var(--fd);font-weight:700;font-size:26px;letter-spacing:-.02em;margin-top:8px;color:var(--navy-800)}
#clientView .sumcard.accent{background:linear-gradient(160deg,#fff,var(--or-50));border-color:var(--or-100)}#clientView .sumcard.accent .v{color:var(--or-700)}
#clientView .sumcard .edge{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--navy-600)}
#clientView .sumcard.accent .edge{background:var(--or-600)}#clientView .sumcard.okc .edge{background:var(--ok-600)}
#clientView .qonto-note{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-500);margin-top:16px;padding:12px 14px;background:var(--navy-50);border-radius:11px}
#clientView .qonto-note svg{width:16px;height:16px;color:var(--navy-600);flex:none}

#clientView /* liens utiles */
.linkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
#clientView .lcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-sm);transition:.16s;display:flex;flex-direction:column;gap:12px}
#clientView .lcard:hover{box-shadow:var(--sh-md);transform:translateY(-2px);border-color:var(--or-100)}
#clientView .lcard .li{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#clientView .lcard.or .li{background:var(--or-50);color:var(--or-600)}
#clientView .lcard .li svg{width:23px;height:23px}
#clientView .lcard h4{font-family:var(--fd);font-size:16px;font-weight:600;color:var(--navy-800)}
#clientView .lcard p{font-size:13.5px;color:var(--ink-500);line-height:1.5;flex:1}
#clientView .lcard .la{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;color:var(--or-700)}
#clientView .lcard .la svg{width:15px;height:15px}

#clientView /* messages */
.chatwrap{display:flex;flex-direction:column;height:min(600px,70vh);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}
#clientView .chat-h{display:flex;align-items:center;gap:13px;padding:16px 20px;border-bottom:1px solid var(--line)}
#clientView .chat-h .ca{width:42px;height:42px;border-radius:12px;background:linear-gradient(140deg,var(--navy-700),var(--navy-600));color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--fd)}
#clientView .chat-h .cn b{font-family:var(--fd);font-size:15px;color:var(--navy-800)}
#clientView .chat-h .cn i{font-style:normal;font-size:12.5px;color:var(--ok-600);font-weight:600;display:flex;align-items:center;gap:6px}
#clientView .chat-h .cn i .d{width:7px;height:7px;border-radius:50%;background:var(--ok-600)}
#clientView .chatbody{flex:1;padding:24px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;background:linear-gradient(180deg,#fff,var(--page))}
#clientView .daysep{align-self:center;font-size:11.5px;color:var(--ink-400);background:#fff;border:1px solid var(--line);padding:3px 12px;border-radius:100px;font-weight:600}
#clientView .bubble{max-width:min(66%,560px);padding:12px 15px;font-size:14px;line-height:1.5;border-radius:16px}
#clientView .bubble .bt{font-size:11px;font-weight:600;margin-top:6px;opacity:.6}
#clientView .bubble.them{background:#fff;border:1px solid var(--line);color:var(--ink-700);align-self:flex-start;border-bottom-left-radius:5px}
#clientView .bubble.me{background:var(--navy-800);color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
#clientView .bubble.me .bt{color:rgba(255,255,255,.7)}
#clientView .composer{display:flex;align-items:center;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:#fff}
#clientView .composer .cin{flex:1;border:1px solid var(--line);background:var(--page);border-radius:12px;padding:12px 15px;font-family:inherit;font-size:14px;outline:none;transition:.15s}
#clientView .composer .cin:focus{border-color:var(--or-300);background:#fff;box-shadow:0 0 0 3px var(--or-50)}
#clientView .composer .send{width:44px;height:44px;border-radius:12px;border:0;background:var(--or-600);color:#fff;display:grid;place-items:center;flex:none}
#clientView .composer .send:hover{background:var(--or-700)}#clientView .composer .send svg{width:18px;height:18px}

#clientView /* drawer Mes données */
.drawer-scrim{position:fixed;inset:0;background:rgba(10,20,40,.42);z-index:60;opacity:0;pointer-events:none;transition:.25s}
#clientView .drawer-scrim.on{opacity:1;pointer-events:auto}
#clientView .drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);background:var(--page);z-index:61;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:var(--sh-lg)}
#clientView .drawer.on{transform:none}
#clientView .drawer-h{display:flex;align-items:center;justify-content:space-between;padding:20px;background:#fff;border-bottom:1px solid var(--line)}
#clientView .drawer-h h3{font-family:var(--fd);font-size:17px;color:var(--navy-800);display:flex;align-items:center;gap:10px}
#clientView .drawer-h h3 svg{width:20px;height:20px;color:var(--or-600)}
#clientView .drawer-b{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:18px}
#clientView .dsec{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:16px;box-shadow:var(--sh-sm)}
#clientView .dsec .dst{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);margin-bottom:12px}
#clientView .drow{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
#clientView .drow:last-child{border-bottom:0}
#clientView .drow .k{color:var(--ink-500)}#clientView .drow .v{font-weight:600;color:var(--navy-800);text-align:right}
#clientView .dtags{display:flex;flex-wrap:wrap;gap:8px}
#clientView .dtags .dt2{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-700);background:var(--navy-50);border-radius:9px;padding:8px 11px;width:100%}
#clientView .dtags .dt2 svg{width:15px;height:15px;color:var(--navy-600);flex:none}
#clientView .rgpd-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#clientView .rgpd-btns .rb{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:13px;font-weight:600;color:var(--ink-700);transition:.15s}
#clientView .rgpd-btns .rb:hover{border-color:var(--or-300);color:var(--or-700);background:var(--or-50)}
#clientView .rgpd-btns .rb svg{width:16px;height:16px;color:var(--or-600)}
#clientView .rgpd-btns .rb.danger:hover{border-color:#f0b4b4;color:var(--alert-600);background:var(--alert-50)}
#clientView .rgpd-btns .rb.danger svg{color:var(--alert-600)}
#clientView .togrow{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
#clientView .togrow:last-child{border-bottom:0}
#clientView .togrow .tl{color:var(--ink-700);font-weight:500}
#clientView .tog{width:42px;height:24px;border-radius:100px;background:var(--ink-200);position:relative;transition:.2s;flex:none;border:0}
#clientView .tog::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:var(--sh-sm)}
#clientView .tog.on{background:var(--or-600)}#clientView .tog.on::after{left:21px}

#clientView /* footer */
.foot{width:100%;padding:24px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--ink-400);font-size:12.5px;border-top:1px solid var(--line);flex-wrap:wrap}
#clientView .foot a{color:var(--ink-500);font-weight:500}#clientView .foot a:hover{color:var(--or-600)}
#clientView .foot .fl{display:flex;gap:18px;flex-wrap:wrap}

#clientView #toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--navy-900);color:#fff;padding:12px 20px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--sh-lg);opacity:0;pointer-events:none;transition:.28s;z-index:80;display:flex;align-items:center;gap:9px}
#clientView #toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
#clientView #toast svg{width:17px;height:17px;color:var(--or-500)}

#clientView .mobscrim{display:none;position:fixed;inset:0;background:rgba(10,20,40,.4);z-index:45}
#clientView .mobmenu{display:none;position:fixed;top:0;right:0;bottom:0;width:82%;max-width:330px;background:#fff;z-index:46;padding:20px;flex-direction:column;gap:5px;box-shadow:var(--sh-lg);animation:cvx_slidein .25s ease}
@keyframes cvx_slidein{from{transform:translateX(100%)}to{transform:none}}
#clientView .mobmenu a{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;font-weight:600;color:var(--ink-700);font-size:15px}
#clientView .mobmenu a svg{width:19px;height:19px;color:var(--ink-400)}
#clientView .mobmenu a.on{background:var(--or-50);color:var(--or-700)}#clientView .mobmenu a.on svg{color:var(--or-600)}
#clientView .mobmenu .mh{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}

@media(max-width:1080px){
  #clientView .nav a span.lbl{display:none}
  #clientView .nav a{padding:9px 11px}
}
@media(max-width:920px){
  #clientView .heroA-in{grid-template-columns:1fr;gap:22px}
  #clientView .g2{grid-template-columns:1fr}
  #clientView .ed-tiles,#clientView .auditcards,#clientView .heroA-strip,#clientView .sumrow{grid-template-columns:1fr 1fr}
  #clientView .g4{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  #clientView .nav,#clientView .orgchip .om{display:none}
  #clientView .burger{display:grid}
  #clientView .topin{gap:12px;height:60px}
  #clientView .g3,#clientView .ed-tiles,#clientView .auditcards,#clientView .heroA-strip,#clientView .sumrow,#clientView .g4{grid-template-columns:1fr}
  #clientView .pagehead h1{font-size:23px}
  #clientView .bubble{max-width:84%}
  #clientView .ed-cert .eca{margin-left:0;width:100%}
}

/* --- round4 : hero certifie + kpi cliquables + logo propre --- */
#clientView .cvx-hero-band{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(120deg,#0A2A57,#123C7B 55%,#1A50A0);color:#fff;border-radius:20px;padding:22px 26px;margin-bottom:20px;box-shadow:0 22px 55px -30px rgba(13,45,94,.6);position:relative;overflow:hidden}
#clientView .cvx-hero-band::before{content:'';position:absolute;right:-60px;top:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.42),transparent 62%);pointer-events:none}
#clientView .cvx-hero-seal{width:60px;height:60px;flex:none;border-radius:50%;background:conic-gradient(from 210deg,#FB923C,#EA580C,#FB923C);display:grid;place-items:center;box-shadow:0 12px 26px -10px rgba(249,115,22,.75);position:relative;z-index:1}
#clientView .cvx-hero-seal svg{width:28px;height:28px;color:#fff}
#clientView .cvx-hero-txt{position:relative;z-index:1}
#clientView .cvx-hero-k{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:600}
#clientView .cvx-hero-t{font-family:var(--fd);font-weight:700;font-size:24px;margin-top:3px;letter-spacing:-.01em}
#clientView .cvx-hero-sub{font-size:13.5px;color:rgba(255,255,255,.82);margin-top:5px}
#clientView .cvx-hero-tags{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;position:relative;z-index:1}
#clientView .cvx-hero-tags .htag2{font-size:12px;font-weight:600;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:6px 12px}
#clientView .g4 .kpi{cursor:pointer;transition:transform .16s,box-shadow .16s}
#clientView .g4 .kpi:hover{transform:translateY(-3px);box-shadow:0 16px 34px -18px rgba(13,45,94,.4)}
#clientView .cvx-logo{text-decoration:none !important;border:0 !important;box-shadow:none !important;background:transparent !important}
#clientView .cvx-logo::after,#clientView .cvx-logo::before,#clientView .logo::after{display:none !important}
#clientView .brand .bt{border:0 !important}

/* --- topnav fond bleu navy QUALIPRO --- */
#clientView .topbar{ background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B) !important; border-bottom:1px solid rgba(255,255,255,.08) !important; }
#clientView .brand .bt b{ color:#fff !important; }
#clientView .brand .bt i{ color:rgba(255,255,255,.6) !important; }
#clientView .cvx-logo img{ filter:drop-shadow(0 2px 10px rgba(249,115,22,.7)) !important; }
#clientView .nav a{ color:rgba(255,255,255,.74) !important; }
#clientView .nav a svg{ color:#fff !important; opacity:.85 }
#clientView .nav a:hover{ background:rgba(255,255,255,.10) !important; color:#fff !important; }
#clientView .nav a.on{ background:var(--or-600) !important; color:#fff !important; }
#clientView .nav a.on svg{ color:#fff !important; opacity:1 }
#clientView .iconbtn{ background:rgba(255,255,255,.08) !important; border-color:rgba(255,255,255,.16) !important; color:#fff !important; }
#clientView .iconbtn:hover{ background:rgba(255,255,255,.18) !important; border-color:rgba(255,255,255,.28) !important; }
#clientView .orgchip{ background:rgba(255,255,255,.10) !important; border-color:rgba(255,255,255,.18) !important; }
#clientView .orgchip .om b{ color:#fff !important; }
#clientView .orgchip .om i{ color:rgba(255,255,255,.6) !important; }
#clientView .orgchip svg{ color:rgba(255,255,255,.7) !important; }
#clientView .burger{ background:rgba(255,255,255,.08) !important; border-color:rgba(255,255,255,.16) !important; color:#fff !important; }

/* --- cablage stage A --- */
#clientView .cvx-logo{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto}
#clientView .cvx-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(249,115,22,.55));transition:filter .3s,transform .3s}
#clientView .cvx-logo:hover img{filter:drop-shadow(0 4px 16px rgba(249,115,22,.8));transform:scale(1.05)}
#clientView #v-documents > .doccat,#clientView #v-documents > .docgrid{display:none !important}

/* --- correctifs UI (2026-07-09) : barre blanche topbar + halo orange bandeau --- */
#clientView .topbar{ border-bottom:0 !important; box-shadow:0 10px 26px -18px rgba(10,34,73,.55) !important; }
#clientView .cvx-hero-band::before{ display:none !important; }
#clientView .brand, #clientView .brand *, #clientView .brand *::before, #clientView .brand *::after{ border:0 !important; text-decoration:none !important; }
/* bouton déconnexion espace client */
#clientView .cvx-logout:hover{ background:rgba(239,68,68,.92) !important; border-color:rgba(239,68,68,.92) !important; color:#fff !important; }
#clientView .cvx-logout-m{ color:#dc2626 !important; font-weight:600; }
#clientView .cvx-logout-m svg{ color:#dc2626; }

/* --- layout app-shell (transplant) --- */
#clientView{height:100vh !important;overflow:hidden !important}
#clientView #app,#clientView #app.app{height:100vh !important;max-height:100vh !important;overflow:hidden !important;background:transparent !important}
#clientView #cv-app{height:100vh;overflow-y:auto;overflow-x:hidden;position:relative;background:var(--page)}


      #v-surveillance .csv-mode{display:inline-flex;background:#f1f5fb;border:1px solid #e6ebf3;border-radius:11px;padding:4px;gap:3px;margin-bottom:16px}
      #v-surveillance .csv-mode button{border:0;background:transparent;font-family:inherit;font-size:12.5px;font-weight:700;color:#64748b;padding:9px 16px;border-radius:8px;cursor:pointer}
      #v-surveillance .csv-mode button.on{background:#0d2d5e;color:#fff}
      #v-surveillance .csv-rb{display:flex;gap:11px;align-items:flex-start;background:#fff3e0;border:1px solid #f6dcae;border-radius:12px;padding:14px 16px;margin-bottom:16px;font-size:12.8px;color:#92400e;line-height:1.55}
      #v-surveillance .csv-steps{display:flex;gap:8px;margin:6px 0 18px;flex-wrap:wrap}
      #v-surveillance .csv-s{flex:1;min-width:150px;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e6ebf3;border-radius:12px;background:#fbfcfe;cursor:pointer}
      #v-surveillance .csv-s.on{border-color:#f97316;background:#fff2e8}
      #v-surveillance .csv-s.done{border-color:#cfe8d8;background:#e9f7ef}
      #v-surveillance .csv-s .n{width:26px;height:26px;border-radius:50%;background:#e6ebf3;color:#64748b;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;flex-shrink:0}
      #v-surveillance .csv-s.on .n{background:#f97316;color:#fff}#v-surveillance .csv-s.done .n{background:#16a34a;color:#fff}
      #v-surveillance .csv-s .t{font-size:12.5px;font-weight:700;color:#0f172a;line-height:1.25}
      #v-surveillance .csv-s .t small{display:block;font-weight:500;color:#64748b;font-size:11px;margin-top:1px}
      #v-surveillance .csv-panel{display:none}#v-surveillance .csv-panel.on{display:block}
      #v-surveillance .csv-ub{border:1px solid #e6ebf3;border-radius:13px;padding:15px 17px;margin-bottom:12px;background:#fff}
      #v-surveillance .csv-ub.changed{border-color:#f97316;background:#fff2e8}
      #v-surveillance .csv-lbl{font-size:13px;font-weight:700;color:#0f172a}
      #v-surveillance .csv-cur{font-size:12.5px;color:#64748b;margin-top:2px}
      #v-surveillance .csv-tg{float:right;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:11.5px;font-weight:600;color:#64748b}
      #v-surveillance .csv-sw{width:38px;height:22px;border-radius:22px;background:#d5deeb;position:relative;transition:.18s;display:inline-block}
      #v-surveillance .csv-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
      #v-surveillance .csv-tg.on .csv-sw{background:#f97316}#v-surveillance .csv-tg.on .csv-sw::after{left:18px}
      #v-surveillance .csv-reveal{display:none;margin-top:13px;padding-top:13px;border-top:1px dashed #e6ebf3}#v-surveillance .csv-reveal.on{display:block}
      #v-surveillance .csv-fg{display:grid;grid-template-columns:1fr 1fr;gap:11px}
      @media(max-width:600px){#v-surveillance .csv-fg{grid-template-columns:1fr}}
      #v-surveillance .csv-f label{display:block;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
      #v-surveillance .csv-f input{width:100%;padding:10px 12px;border:1.4px solid #e6ebf3;border-radius:9px;font-family:inherit;font-size:13px;color:#0f172a;box-sizing:border-box}
      #v-surveillance .csv-ca{display:flex;gap:9px;margin-top:10px;flex-wrap:wrap}
      #v-surveillance .csv-caopt{flex:1;min-width:140px;border:1.6px solid #e6ebf3;border-radius:11px;padding:12px 13px;cursor:pointer;background:#fff}
      #v-surveillance .csv-caopt.on{border-color:#0d2d5e;background:#f2f6fd}
      #v-surveillance .csv-caopt b{font-size:13px;color:#0f172a}#v-surveillance .csv-caopt span{display:block;font-size:11.5px;color:#64748b;margin-top:2px}
      #v-surveillance .csv-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
      #v-surveillance .csv-chip{border:1.5px solid #e6ebf3;background:#fff;color:#64748b;font-size:12px;font-weight:600;padding:8px 13px;border-radius:10px;cursor:pointer}
      #v-surveillance .csv-chip.on{border-color:#0d2d5e;color:#0d2d5e;background:#eef4ff}
      #v-surveillance .csv-yn{display:inline-flex;gap:8px;margin-top:10px}
      #v-surveillance .csv-yn button{border:1.5px solid #e6ebf3;background:#fff;color:#64748b;font-family:inherit;font-size:13px;font-weight:700;padding:9px 22px;border-radius:10px;cursor:pointer}
      #v-surveillance .csv-yn button.on{border-color:#0d2d5e;background:#eef4ff;color:#0d2d5e}
      #v-surveillance .csv-yn button.no.on{border-color:#c0392b;background:#fdecec;color:#c0392b}
      #v-surveillance .csv-warn{font-size:12px;color:#c0392b;background:#fdecec;border:1px solid #f5c6c6;border-radius:9px;padding:10px 13px;margin-top:11px;line-height:1.5}
      #v-surveillance .csv-slot{border:1px solid #e6ebf3;border-radius:13px;padding:14px 16px;margin-bottom:11px;background:#fff}
      #v-surveillance .csv-slot.filled{border-color:#cfe8d8;background:#e9f7ef}
      #v-surveillance .csv-req{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#c0392b;background:#fdecec;padding:2px 7px;border-radius:20px}
      #v-surveillance .csv-slot.filled .csv-req{color:#16a34a;background:#dcf3e6}
      #v-surveillance .csv-reqhint{font-size:12px;color:#d97706;background:#fef3e2;border:1px solid #f6dcae;border-radius:10px;padding:11px 14px;margin:4px 0}
      #v-surveillance .csv-reqhint.ok{color:#16a34a;background:#e9f7ef;border-color:#cfe8d8}
      #v-surveillance .csv-recap{border:1px solid #e6ebf3;border-radius:13px;overflow:hidden;margin-bottom:14px}
      #v-surveillance .csv-rr{display:flex;justify-content:space-between;gap:12px;padding:11px 15px;border-bottom:1px solid #eef2f8;font-size:12.5px}
      #v-surveillance .csv-rr:last-child{border-bottom:0}#v-surveillance .csv-rr .k{color:#64748b;font-weight:600}#v-surveillance .csv-rr .v{font-weight:700;color:#0f172a;text-align:right}
      #v-surveillance .csv-nav{display:flex;justify-content:space-between;gap:12px;margin-top:20px}
      #v-surveillance .csv-btn{border:0;font-family:inherit;font-size:13.5px;font-weight:700;padding:13px 22px;border-radius:11px;cursor:pointer}
      #v-surveillance .csv-btn.ghost{background:#fff;border:1.5px solid #e6ebf3;color:#64748b}
      #v-surveillance .csv-btn.primary{background:#f97316;color:#fff}
      #v-surveillance .csv-btn:disabled{opacity:.5;cursor:not-allowed}
      #v-surveillance .csv-done{text-align:center;padding:30px 20px}
      #v-surveillance .csv-done .ok{width:64px;height:64px;border-radius:50%;background:#e9f7ef;color:#16a34a;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}
    
    #presModal{display:none;position:fixed;inset:0;z-index:9930;background:#f4f6fb;overflow-y:auto;-webkit-overflow-scrolling:touch}
    #presModal.visible{display:block}
    #presModal .prs-hero{background:linear-gradient(120deg,#0A2A57,#123C7B 60%,#1A50A0);color:#fff;padding:18px clamp(16px,3.2vw,44px) 22px}
    #presModal .prs-wrap{max-width:980px;margin:0 auto;padding:22px clamp(14px,3vw,40px) 60px}
    #presModal .prs-card{background:#fff;border:1px solid #e4ebf5;border-radius:14px;padding:18px 20px;margin-top:16px}
    #presModal .prs-h{font-size:13.5px;font-weight:800;color:#0d2d5e;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    #presModal .prs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:12px}
    #presModal .prs-f label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7c8aa5;margin-bottom:4px}
    #presModal .prs-f input{width:100%;border:1px solid #d9e1ee;border-radius:9px;padding:8px 10px;font-size:13px;color:#182a46;background:#fbfcfe}
    #presModal .prs-f input:disabled{background:#f1f4f9;color:#5a6b84}
    #presModal table.prs-t{width:100%;border-collapse:collapse;margin-top:10px}
    #presModal table.prs-t th{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#7c8aa5;text-align:left;padding:6px 8px;border-bottom:1.5px solid #e4ebf5}
    #presModal table.prs-t td{padding:7px 8px;border-bottom:1px solid #eef2f8;vertical-align:middle}
    #presModal table.prs-t input{width:100%;border:1px solid #d9e1ee;border-radius:8px;padding:7px 9px;font-size:12.5px;color:#182a46}
    #presModal table.prs-t input:disabled{background:#f1f4f9;color:#5a6b84}
    #presModal .prs-sigbtn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px dashed #F97316;color:#C2410C;font-weight:800;font-size:11.5px;padding:7px 11px;border-radius:9px;cursor:pointer;white-space:nowrap}
    #presModal .prs-sigimg{display:block;max-width:110px;max-height:40px;border:1px solid #e4ebf5;border-radius:6px;background:#fff}
    #presModal .prs-sigmeta{font-size:10px;color:#7c8aa5;margin-top:2px}
    #presModal .prs-btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:10px;font-weight:800;font-size:13px;padding:11px 18px;cursor:pointer}
    #presModal .prs-btn.or{background:#F97316;color:#fff}
    #presModal .prs-btn.gh{background:#fff;color:#0d2d5e;border:1.5px solid #d9e1ee}
    #presModal .prs-btn:disabled{opacity:.5;cursor:not-allowed}
    #presModal .prs-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;padding:4px 11px;border-radius:999px}
    #presSignModal{display:none;position:fixed;inset:0;z-index:9960;background:rgba(10,25,50,.55);align-items:center;justify-content:center;padding:16px}
    #presSignModal.visible{display:flex}
    #presSignModal .psm-box{background:#fff;border-radius:16px;padding:20px;max-width:540px;width:100%;box-shadow:0 24px 60px rgba(10,30,60,.35)}
    #presSignModal canvas{width:100%;height:180px;border:1.5px dashed #c6d2e4;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}
    @media(max-width:700px){ #presModal .prs-grid{grid-template-columns:1fr} #presModal table.prs-t{display:block;overflow-x:auto} }
  
    #cvxSignModal{display:none;position:fixed;inset:0;z-index:9965;background:rgba(10,25,50,.55);align-items:center;justify-content:center;padding:16px;overflow-y:auto}
    #cvxSignModal.visible{display:flex}
    #cvxSignModal .csm-box{position:relative;background:#fff;border-radius:18px;padding:24px;max-width:580px;width:100%;box-shadow:0 24px 60px rgba(10,30,60,.35);margin:auto}
    #cvxSignBusyOv{display:none;position:absolute;inset:0;z-index:6;background:rgba(255,255,255,.96);border-radius:18px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px}
    #cvxSignModal.busy #cvxSignBusyOv{display:flex}
    #cvxSignBusyOv .cvx-spin{width:48px;height:48px;border:4px solid #eef2f8;border-top-color:#F97316;border-radius:50%;animation:cvxSpin .8s linear infinite}
    @keyframes cvxSpin{to{transform:rotate(360deg)}}
    #cvxSignBusyOv .bt{margin-top:16px;font-size:15px;font-weight:800;color:#0d2d5e}
    #cvxSignBusyOv .bs{margin-top:6px;font-size:12.5px;color:#5a6b84;line-height:1.5;max-width:340px}
    #cvxSignBusyOv .bw{margin-top:14px;font-size:11.5px;font-weight:800;color:#C2410C;background:#FFF1E6;border:1px solid #f6dcae;border-radius:9px;padding:8px 13px}
    #cvxSignModal canvas{width:100%;height:170px;border:1.5px dashed #c6d2e4;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}
    #cvxSignModal .csm-inp{width:100%;border:1.5px solid #d9e1ee;border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;color:#12305e;background:#fff;box-sizing:border-box}
    #cvxSignModal .csm-inp:focus{outline:none;border-color:#F97316}
    #cvxSignModal .csm-lbl{display:block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#5a6b84;margin:0 0 5px}
    #cvxSignModal .csm-btn{border:none;border-radius:10px;font-weight:800;font-size:13px;padding:10px 18px;cursor:pointer;font-family:inherit}
    #cvxSignModal .csm-btn:disabled{opacity:.55;cursor:not-allowed}
    @media(max-width:640px){ #cvxSignModal .csm-box{padding:18px} #cvxSignModal canvas{height:150px} }
  
#auditeurView > *:not(#av-app){display:none !important;}
#auditeurView > #av-app{display:block !important;min-height:100vh;}
#auditeurView{
  --navy-900:#0A2249; --navy-800:#0D2D5E; --navy-700:#143B78; --navy-600:#1C5CC4;
  --navy-100:#E7EFFB; --navy-50:#F2F6FD;
  --or-700:#EA580C; --or-600:#F97316; --or-500:#FB923C; --or-300:#FDBA74; --or-100:#FFEEDD; --or-50:#FFF7EF;
  --ink-900:#0E1726; --ink-700:#33415A; --ink-600:#516080; --ink-500:#6C7A96; --ink-400:#98A4BC; --ink-300:#C6CFDE; --ink-200:#E4E9F2;
  --line:#EAEEF5; --page:#F5F7FB; --card:#FFFFFF;
  --ok-600:#128A5E; --ok-50:#E5F5EE; --warn-600:#B7791F; --warn-50:#FBF2E0; --alert-600:#D14343; --alert-50:#FBECEC;
  --sh-sm:0 1px 2px rgba(13,45,94,.06); --sh-md:0 8px 26px -14px rgba(13,45,94,.28); --sh-lg:0 22px 55px -28px rgba(13,45,94,.42);
  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px;
  --pad:clamp(16px,3.2vw,46px);
  --fd:'Schibsted Grotesk',-apple-system,system-ui,sans-serif;
  --fu:'Inter',-apple-system,system-ui,sans-serif;
  --fm:'JetBrains Mono',ui-monospace,monospace;
}
#auditeurView *{box-sizing:border-box;margin:0;padding:0}
#auditeurView{scroll-behavior:smooth}
#auditeurView{font-family:var(--fu);color:var(--ink-900);background:var(--page);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
#auditeurView a{color:inherit;text-decoration:none}
#auditeurView button{font-family:inherit;cursor:pointer}
#auditeurView .avf-mono{font-family:var(--fm)}
#auditeurView .avf-disp{font-family:var(--fd)}
#auditeurView .avf-topbar{position:sticky;top:0;z-index:40;background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B);box-shadow:0 10px 26px -18px rgba(10,34,73,.55)}
#auditeurView .avf-topin{width:100%;padding:0 var(--pad);height:66px;display:flex;align-items:center;gap:20px}
#auditeurView .avf-brand{display:flex;flex-direction:column;line-height:1.05;flex:0 0 auto}
#auditeurView .avf-brand b{font-family:var(--fd);font-size:17px;font-weight:800;color:#fff;letter-spacing:.02em}
#auditeurView .avf-brand i{font-style:normal;font-size:11px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:.03em}
#auditeurView .avf-nav{display:flex;align-items:center;gap:2px;margin-left:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
#auditeurView .avf-nav::-webkit-scrollbar{display:none}
#auditeurView .avf-nav a{position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:550;color:rgba(255,255,255,.72);white-space:nowrap;transition:.15s}
#auditeurView .avf-nav a svg{width:16px;height:16px;opacity:.8}
#auditeurView .avf-nav a:hover{color:#fff;background:rgba(255,255,255,.10)}
#auditeurView .avf-nav a.avf-on{color:#fff;background:var(--or-600);box-shadow:0 8px 18px -10px rgba(249,115,22,.8)}
#auditeurView .avf-nav a.avf-on svg{opacity:1}
#auditeurView .avf-nav a .avf-nbadge{background:var(--or-600);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:100px}
#auditeurView .avf-nav a.avf-on .avf-nbadge{background:#fff;color:var(--or-700)}
#auditeurView .avf-tright{margin-left:auto;display:flex;align-items:center;gap:10px;flex:0 0 auto}
#auditeurView .avf-iconbtn{width:40px;height:40px;border-radius:11px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;position:relative;transition:.15s}
#auditeurView .avf-iconbtn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28)}
#auditeurView .avf-iconbtn svg{width:18px;height:18px}
#auditeurView .avf-iconbtn .avf-dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--or-600);box-shadow:0 0 0 2.5px var(--navy-800)}
#auditeurView .avf-iconbtn.avf-logout:hover{background:rgba(239,68,68,.92);border-color:rgba(239,68,68,.92)}
#auditeurView .avf-orgchip{display:flex;align-items:center;gap:10px;padding:5px 12px 5px 6px;border:1px solid rgba(255,255,255,.16);border-radius:100px;background:rgba(255,255,255,.08);transition:.15s}
#auditeurView .avf-orgchip:hover{background:rgba(255,255,255,.16)}
#auditeurView .avf-orgav{width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,var(--or-600),var(--or-300));color:#fff;display:grid;place-items:center;font-weight:700;font-size:12.5px;font-family:var(--fd)}
#auditeurView .avf-orgchip .avf-om{display:flex;flex-direction:column;line-height:1.15}
#auditeurView .avf-orgchip .avf-om b{font-size:12.5px;font-weight:650;color:#fff}
#auditeurView .avf-orgchip .avf-om i{font-style:normal;font-size:11px;color:rgba(255,255,255,.6)}
#auditeurView .avf-orgchip svg{width:15px;height:15px;color:rgba(255,255,255,.6)}
#auditeurView .avf-burger{display:none;width:40px;height:40px;border-radius:11px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);place-items:center;color:#fff}
#auditeurView .avf-burger svg{width:20px;height:20px}
#auditeurView .avf-wrap{width:100%;padding:26px var(--pad) 84px;position:relative}
#auditeurView .avf-bg-aura{position:fixed;inset:0 0 auto 0;height:360px;background:radial-gradient(1200px 360px at 82% -140px,rgba(249,115,22,.10),transparent 60%),radial-gradient(1200px 440px at 4% -170px,rgba(28,92,196,.12),transparent 62%);z-index:-1;pointer-events:none}
#auditeurView .avf-view{display:none;animation:avx_fade .3s ease}
#auditeurView .avf-view.avf-on{display:block}
@keyframes avx_fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#auditeurView .avf-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}
#auditeurView .avf-pagehead .avf-eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--or-600)}
#auditeurView .avf-pagehead h1{font-family:var(--fd);font-weight:700;font-size:28px;letter-spacing:-.02em;color:var(--navy-900);margin-top:6px}
#auditeurView .avf-pagehead p{color:var(--ink-500);font-size:14.5px;margin-top:6px;max-width:64ch}
#auditeurView .avf-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
#auditeurView .avf-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
#auditeurView .avf-card-h h3{font-family:var(--fd);font-size:15px;font-weight:600;color:var(--navy-800);display:flex;align-items:center;gap:10px}
#auditeurView .avf-card-h h3 .avf-hi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#auditeurView .avf-card-h h3 .avf-hi.avf-or{background:var(--or-50);color:var(--or-600)}
#auditeurView .avf-card-h h3 .avf-hi svg{width:17px;height:17px}
#auditeurView .avf-card-b{padding:20px}
#auditeurView .avf-linkmini{font-size:13px;font-weight:600;color:var(--navy-600);display:inline-flex;align-items:center;gap:5px}
#auditeurView .avf-linkmini:hover{color:var(--or-600)}
#auditeurView .avf-linkmini svg{width:14px;height:14px}
#auditeurView .avf-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:600;border-radius:11px;padding:11px 17px;border:0;transition:transform .12s,background .15s,box-shadow .15s,color .15s}
#auditeurView .avf-btn:active{transform:translateY(1px)}
#auditeurView .avf-btn svg{width:16px;height:16px}
#auditeurView .avf-btn-or{background:var(--or-600);color:#fff;box-shadow:0 10px 22px -12px rgba(249,115,22,.85)}
#auditeurView .avf-btn-or:hover{background:var(--or-700)}
#auditeurView .avf-btn-navy{background:var(--navy-800);color:#fff}
#auditeurView .avf-btn-navy:hover{background:var(--navy-900)}
#auditeurView .avf-btn-ghost{background:#fff;color:var(--ink-700);box-shadow:inset 0 0 0 1px var(--line)}
#auditeurView .avf-btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--ink-300);color:var(--navy-800)}
#auditeurView .avf-btn-sm{padding:8px 13px;font-size:13px;border-radius:9px}
#auditeurView .avf-btn-lite{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.25)}
#auditeurView .avf-btn-lite:hover{background:rgba(255,255,255,.24)}
#auditeurView .avf-btn-danger{background:var(--alert-50);color:var(--alert-600);box-shadow:inset 0 0 0 1px #f3c9c9}
#auditeurView .avf-btn-danger:hover{background:#f7dede}
#auditeurView .avf-pill{font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 12px;display:inline-flex;align-items:center;gap:7px}
#auditeurView .avf-pill .avf-d{width:7px;height:7px;border-radius:999px}
#auditeurView .avf-pill.avf-ok{background:var(--ok-50);color:var(--ok-600)}
#auditeurView .avf-pill.avf-ok .avf-d{background:var(--ok-600)}
#auditeurView .avf-pill.avf-or{background:var(--or-50);color:var(--or-700)}
#auditeurView .avf-pill.avf-or .avf-d{background:var(--or-600)}
#auditeurView .avf-pill.avf-warn{background:var(--warn-50);color:var(--warn-600)}
#auditeurView .avf-pill.avf-warn .avf-d{background:var(--warn-600)}
#auditeurView .avf-pill.avf-navy{background:var(--navy-50);color:var(--navy-700)}
#auditeurView .avf-pill.avf-navy .avf-d{background:var(--navy-600)}
#auditeurView .avf-pill.avf-red{background:var(--alert-50);color:var(--alert-600)}
#auditeurView .avf-pill.avf-red .avf-d{background:var(--alert-600)}
#auditeurView .avf-pill.avf-grey{background:#eef1f6;color:var(--ink-500)}
#auditeurView .avf-pill.avf-grey .avf-d{background:var(--ink-400)}
#auditeurView .avf-tag{font-size:12px;font-weight:600;border-radius:8px;padding:4px 10px;background:var(--navy-50);color:var(--navy-700)}
#auditeurView .avf-tag.avf-or{background:var(--or-50);color:var(--or-700)}
/* R2 — Hero du tableau de bord auditeur ALIGNÉ SUR L'ADMIN : bandeau bleu
   PLEINE LARGEUR, collé sous le topnav (même dégradé 90°), sans coins arrondis
   ni marge — la barre de navigation et le hero forment un seul bloc.
   `margin:-26px calc(var(--pad)*-1) 24px` annule le padding de .avf-wrap pour
   aller bord à bord ; le padding interne réutilise --pad pour rester aligné sur
   le contenu de la page. */
#auditeurView .avf-hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B);
  border-radius:0;
  margin:-26px calc(var(--pad) * -1) 24px;
  padding:26px var(--pad) 30px;
  box-shadow:0 14px 32px -26px rgba(10,34,73,.75);
}
#auditeurView .avf-hero::before{content:none}
#auditeurView .avf-hero-in{position:relative;z-index:1;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
#auditeurView .avf-hero .avf-greet{font-size:14px;color:rgba(255,255,255,.72);font-weight:500}
#auditeurView .avf-hero h1{font-family:var(--fd);font-weight:700;font-size:clamp(24px,3vw,34px);letter-spacing:-.02em;margin-top:6px;line-height:1.08}
#auditeurView .avf-hero .avf-hsub{font-size:14px;color:rgba(255,255,255,.8);margin-top:8px;max-width:52ch}
#auditeurView .avf-hero .avf-havatar{width:66px;height:66px;flex:none;border-radius:50%;background:linear-gradient(140deg,var(--or-600),var(--or-300));display:grid;place-items:center;font-family:var(--fd);font-weight:800;font-size:24px;box-shadow:0 14px 30px -10px rgba(249,115,22,.7)}
#auditeurView .avf-hero .avf-hactions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
#auditeurView .avf-hero-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}
#auditeurView .avf-hstat{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-md);padding:15px 16px;backdrop-filter:blur(6px)}
#auditeurView .avf-hstat .avf-k{font-size:12px;color:rgba(255,255,255,.72);font-weight:500;display:flex;align-items:center;gap:8px}
#auditeurView .avf-hstat .avf-k svg{width:16px;height:16px}
#auditeurView .avf-hstat .avf-v{font-family:var(--fd);font-weight:700;font-size:24px;margin-top:8px}
#auditeurView .avf-hstat .avf-vs{font-size:12px;color:rgba(255,255,255,.6);margin-top:2px}
#auditeurView .avf-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
#auditeurView .avf-g2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-top:20px}
#auditeurView .avf-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
#auditeurView .avf-kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-sm);position:relative;overflow:hidden;cursor:pointer;transition:.15s}
#auditeurView .avf-kpi:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
#auditeurView .avf-kpi .avf-edge{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--navy-600)}
#auditeurView .avf-kpi.avf-or .avf-edge{background:var(--or-600)}
#auditeurView .avf-kpi.avf-ok .avf-edge{background:var(--ok-600)}
#auditeurView .avf-kpi.avf-warn .avf-edge{background:var(--warn-600)}
#auditeurView .avf-kpi.avf-red .avf-edge{background:var(--alert-600)}
#auditeurView .avf-kpi .avf-ktop{display:flex;align-items:center;justify-content:space-between}
#auditeurView .avf-kpi .avf-ki{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#auditeurView .avf-kpi.avf-or .avf-ki{background:var(--or-50);color:var(--or-600)}
#auditeurView .avf-kpi.avf-ok .avf-ki{background:var(--ok-50);color:var(--ok-600)}
#auditeurView .avf-kpi.avf-warn .avf-ki{background:var(--warn-50);color:var(--warn-600)}
#auditeurView .avf-kpi.avf-red .avf-ki{background:var(--alert-50);color:var(--alert-600)}
#auditeurView .avf-kpi .avf-ki svg{width:19px;height:19px}
#auditeurView .avf-kpi .avf-kv{font-family:var(--fd);font-weight:700;font-size:26px;letter-spacing:-.02em;color:var(--navy-800);margin-top:14px}
#auditeurView .avf-kpi .avf-kl{font-size:12.5px;color:var(--ink-500);margin-top:3px}
#auditeurView .avf-msn{display:flex;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);transition:.15s;cursor:pointer}
#auditeurView .avf-msn+.avf-msn{margin-top:12px}
#auditeurView .avf-msn:hover{box-shadow:var(--sh-md);border-color:var(--navy-100);transform:translateY(-1px)}
#auditeurView .avf-msn-date{width:64px;flex:none;text-align:center;border-radius:12px;padding:10px 6px;background:var(--navy-50);color:var(--navy-700)}
#auditeurView .avf-msn-date .avf-d{font-family:var(--fd);font-weight:800;font-size:22px;line-height:1}
#auditeurView .avf-msn-date .avf-m{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:3px}
#auditeurView .avf-msn-date.avf-tbd{background:#eef1f6;color:var(--ink-500)}
#auditeurView .avf-msn-main{flex:1;min-width:0}
#auditeurView .avf-msn-main .avf-mt{font-family:var(--fd);font-weight:700;font-size:15.5px;color:var(--navy-800)}
#auditeurView .avf-msn-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:7px;font-size:12.5px;color:var(--ink-500)}
#auditeurView .avf-msn-meta span{display:inline-flex;align-items:center;gap:5px}
#auditeurView .avf-msn-meta svg{width:14px;height:14px;opacity:.7}
#auditeurView .avf-msn-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
#auditeurView .avf-msn-open{font-size:12px;font-weight:600;color:var(--navy-600);display:inline-flex;align-items:center;gap:4px}
#auditeurView .avf-msn-open svg{width:14px;height:14px}
#auditeurView .avf-subtabs{display:inline-flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:100px;padding:4px;box-shadow:var(--sh-sm);margin-bottom:18px}
#auditeurView .avf-subtabs button{border:0;background:transparent;color:var(--ink-600);font-weight:600;font-size:13px;padding:7px 15px;border-radius:100px;transition:.15s}
#auditeurView .avf-subtabs button.avf-on{background:var(--navy-800);color:#fff}
#auditeurView .avf-agenda{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
#auditeurView .avf-agh{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-400);text-align:center;padding-bottom:4px}
#auditeurView .avf-agd{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff;font-size:12px;cursor:pointer;transition:.12s;position:relative}
#auditeurView .avf-agd:hover{border-color:var(--or-300);box-shadow:var(--sh-sm)}
#auditeurView .avf-agd .avf-dn{font-weight:700;color:var(--ink-500);font-size:12px}
#auditeurView .avf-agd.avf-out{background:var(--page);color:var(--ink-300);cursor:default}
#auditeurView .avf-agd.avf-out:hover{border-color:var(--line);box-shadow:none}
#auditeurView .avf-agd .avf-ev{margin-top:6px;font-size:11px;font-weight:600;border-radius:6px;padding:3px 6px;line-height:1.25}
#auditeurView .avf-agd .avf-ev.avf-or{background:var(--or-50);color:var(--or-700)}
#auditeurView .avf-agd .avf-ev.avf-navy{background:var(--navy-50);color:var(--navy-700)}
/* Audit sur plusieurs jours : UN bloc qui déborde sur les cases suivantes.
   Le fantôme garde le rythme vertical si un autre audit commence le même jour. */
#auditeurView .avf-agd .avf-ev.avf-span{position:relative;z-index:3;box-shadow:0 1px 4px rgba(234,88,12,.16)}
#auditeurView .avf-agd .avf-ev.avf-ghost{visibility:hidden;pointer-events:none}
#auditeurView .avf-agd .avf-ev.avf-cont{border-top-left-radius:2px;border-bottom-left-radius:2px}
#auditeurView .avf-agd .avf-ev .avf-sui{opacity:.6;margin-right:4px;font-weight:700}
#auditeurView .avf-agd.avf-indispo{background:repeating-linear-gradient(45deg,#FBECEC,#FBECEC 7px,#fff5f5 7px,#fff5f5 14px);border-color:#f3c9c9}
#auditeurView .avf-agd.avf-indispo .avf-dn{color:var(--alert-600)}
#auditeurView .avf-agd .avf-indispo-tag{margin-top:6px;font-size:10.5px;font-weight:700;color:var(--alert-600);display:inline-flex;align-items:center;gap:4px}
#auditeurView .avf-agd .avf-indispo-tag svg{width:11px;height:11px}
#auditeurView .avf-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--ink-500)}
#auditeurView .avf-legend span{display:inline-flex;align-items:center;gap:6px}
#auditeurView .avf-legend .avf-sw{width:12px;height:12px;border-radius:4px}
#auditeurView .avf-sync-note{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,#fff,var(--navy-50));border:1px solid var(--navy-100);border-radius:12px;padding:12px 16px;margin-top:16px;font-size:13px;color:var(--navy-700)}
#auditeurView .avf-sync-note svg{width:20px;height:20px;color:var(--navy-600);flex:none}
#auditeurView .avf-rlist{display:flex;flex-direction:column}
#auditeurView .avf-rrow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-rrow:last-child{border-bottom:0;padding-bottom:0}
#auditeurView .avf-rrow:first-child{padding-top:0}
#auditeurView .avf-fico{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:10px;font-weight:700;font-family:var(--fm);color:#fff}
#auditeurView .avf-fico.avf-pdf{background:linear-gradient(150deg,#E8543B,#F97316)}
#auditeurView .avf-fico.avf-doc{background:linear-gradient(150deg,#1C5CC4,#143B78)}
#auditeurView .avf-fico.avf-xls{background:linear-gradient(150deg,#128A5E,#0f6f4c)}
#auditeurView .avf-rrow .avf-rn{font-weight:600;font-size:14px;color:var(--navy-800)}
#auditeurView .avf-rrow .avf-rs{font-size:12.5px;color:var(--ink-400);margin-top:1px}
#auditeurView .avf-rrow .avf-ra{margin-left:auto;display:flex;align-items:center;gap:8px}
/* 25/08 — bouton « Ouvrir le dossier client » plus long : la ligne de rapport
   replie ses actions sous le nom en mobile/portrait au lieu de déborder. */
@media(max-width:680px){
#auditeurView #avxRapList .avf-rrow{flex-wrap:wrap}
#auditeurView #avxRapList .avf-rrow .avf-ra{margin-left:auto;flex-basis:100%;justify-content:flex-end;flex-wrap:wrap}
}
#auditeurView .avf-dlbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink-500);transition:.15s}
#auditeurView .avf-dlbtn:hover{border-color:var(--or-300);color:var(--or-600);background:var(--or-50)}
#auditeurView .avf-dlbtn svg{width:16px;height:16px}
#auditeurView .avf-subhead{margin:26px 0 14px}
#auditeurView .avf-subhead h3{font-family:var(--fd);font-size:17px;color:var(--navy-800);font-weight:700}
#auditeurView .avf-subhead p{font-size:13px;color:var(--ink-500);margin-top:3px}
#auditeurView .avf-tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
#auditeurView .avf-tool{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);overflow:hidden;display:flex;flex-direction:column}
#auditeurView .avf-tool .avf-vis{height:76px;display:flex;align-items:center;justify-content:center;position:relative;color:#fff}
#auditeurView .avf-tool.avf-green .avf-vis{background:linear-gradient(140deg,#128A5E,#0f6f4c)}
#auditeurView .avf-tool.avf-red .avf-vis{background:linear-gradient(140deg,#D14343,#F97316)}
#auditeurView .avf-tool.avf-blue .avf-vis{background:linear-gradient(140deg,#1C5CC4,#143B78)}
#auditeurView .avf-tool .avf-vis svg{width:30px;height:30px}
#auditeurView .avf-tool .avf-fmt{position:absolute;top:10px;right:12px;font-size:10px;font-weight:700;font-family:var(--fm);background:rgba(255,255,255,.2);padding:2px 7px;border-radius:6px}
#auditeurView .avf-tool .avf-bd{padding:15px 16px;flex:1;display:flex;flex-direction:column}
#auditeurView .avf-tool h4{font-family:var(--fd);font-size:14.5px;color:var(--navy-800);font-weight:700}
#auditeurView .avf-tool p{font-size:12.5px;color:var(--ink-500);margin-top:6px;line-height:1.5;flex:1}
#auditeurView .avf-tool .avf-acts{display:flex;gap:8px;margin-top:14px}
#auditeurView .avf-tool-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;font-weight:600;border-radius:9px;padding:9px 10px;border:1px solid var(--line);background:#fff;color:var(--ink-700);transition:.15s}
#auditeurView .avf-tool-btn.avf-primary{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
#auditeurView .avf-tool-btn.avf-primary:hover{background:var(--navy-900)}
#auditeurView .avf-tool-btn:hover{border-color:var(--ink-300)}
#auditeurView .avf-tool-btn svg{width:14px;height:14px}
#auditeurView .avf-jf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
#auditeurView .avf-jf{display:flex;gap:16px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);padding:16px;align-items:center}
#auditeurView .avf-jf .avf-jfic{width:54px;height:54px;flex:none;border-radius:12px;display:grid;place-items:center;color:#fff}
#auditeurView .avf-jf.avf-docs .avf-jfic{background:linear-gradient(140deg,#1C5CC4,#143B78)}
#auditeurView .avf-jf.avf-satis .avf-jfic{background:linear-gradient(140deg,#F97316,#EA580C)}
#auditeurView .avf-jf .avf-jfic svg{width:24px;height:24px}
#auditeurView .avf-jf h4{font-family:var(--fd);font-size:14.5px;color:var(--navy-800);font-weight:700}
#auditeurView .avf-jf .avf-jtag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--or-600)}
#auditeurView .avf-jf p{font-size:12.5px;color:var(--ink-500);margin-top:4px;line-height:1.5}
#auditeurView .avf-links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
#auditeurView .avf-lcard{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);padding:16px 18px;transition:.15s}
#auditeurView .avf-lcard:hover{box-shadow:var(--sh-md);border-color:var(--navy-100);transform:translateY(-1px)}
#auditeurView .avf-lcard .avf-lic{width:46px;height:46px;flex:none;border-radius:12px;display:grid;place-items:center;color:#fff}
#auditeurView .avf-lcard.avf-webmail .avf-lic{background:linear-gradient(140deg,#1C5CC4,#143B78)}
#auditeurView .avf-lcard.avf-tdb .avf-lic{background:linear-gradient(140deg,#128A5E,#0f6f4c)}
#auditeurView .avf-lcard .avf-lic svg{width:22px;height:22px}
#auditeurView .avf-lcard .avf-leyebrow{font-size:11px;font-weight:600;color:var(--ink-400);text-transform:uppercase;letter-spacing:.04em}
#auditeurView .avf-lcard .avf-lname{font-family:var(--fd);font-size:15px;color:var(--navy-800);font-weight:700;margin-top:2px}
#auditeurView .avf-lcard .avf-ldesc{font-size:12.5px;color:var(--ink-500);margin-top:3px}
#auditeurView .avf-lcard .avf-larrow{margin-left:auto;color:var(--ink-300)}
#auditeurView .avf-lcard .avf-larrow svg{width:20px;height:20px}
#auditeurView .avf-lcard:hover .avf-larrow{color:var(--or-600)}
#auditeurView .avf-tl{position:relative;padding-left:26px}
#auditeurView .avf-tl::before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:var(--line)}
#auditeurView .avf-tlrow{position:relative;padding:0 0 16px}
#auditeurView .avf-tlrow:last-child{padding-bottom:0}
#auditeurView .avf-tlrow::before{content:"";position:absolute;left:-22px;top:3px;width:11px;height:11px;border-radius:50%;background:#fff;border:2.5px solid var(--navy-600)}
#auditeurView .avf-tlrow.avf-or::before{border-color:var(--or-600)}
#auditeurView .avf-tlrow .avf-tt{font-weight:600;font-size:13.5px;color:var(--navy-800)}
#auditeurView .avf-tlrow .avf-td{font-size:12px;color:var(--ink-400);margin-top:2px}
#auditeurView .avf-odm{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-odm:last-child{border-bottom:0}
#auditeurView .avf-odm .avf-oic{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--or-50);color:var(--or-600)}
#auditeurView .avf-odm .avf-oic svg{width:18px;height:18px}
#auditeurView .avf-odm .avf-on2{font-weight:600;font-size:14px;color:var(--navy-800)}
#auditeurView .avf-odm .avf-os{font-size:12.5px;color:var(--ink-400);margin-top:1px}
#auditeurView .avf-odm .avf-oa{margin-left:auto}
#auditeurView .avf-fm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
#auditeurView .avf-fmc{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);overflow:hidden;cursor:pointer;transition:.15s;display:flex;flex-direction:column}
#auditeurView .avf-fmc:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
#auditeurView .avf-fmc .avf-fmtop{height:96px;background:linear-gradient(135deg,var(--navy-800),var(--navy-600));position:relative;display:flex;align-items:flex-end;padding:14px}
#auditeurView .avf-fmc .avf-fmtop.avf-done{background:linear-gradient(135deg,#0f6f4c,#128A5E)}
#auditeurView .avf-fmc .avf-fmtop svg{position:absolute;top:14px;right:14px;width:26px;height:26px;color:rgba(255,255,255,.5)}
#auditeurView .avf-fmc .avf-fmtop .avf-fmcat{font-size:11px;font-weight:700;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.05em}
#auditeurView .avf-fmc .avf-fmbd{padding:15px 16px;flex:1;display:flex;flex-direction:column}
#auditeurView .avf-fmc h4{font-family:var(--fd);font-size:15px;color:var(--navy-800);font-weight:700}
#auditeurView .avf-fmc p{font-size:12.5px;color:var(--ink-500);margin-top:6px;flex:1;line-height:1.5}
#auditeurView .avf-fmc .avf-fmbar{height:8px;border-radius:100px;background:var(--navy-50);overflow:hidden;margin-top:12px}
#auditeurView .avf-fmc .avf-fmbar > i{display:block;height:100%;background:linear-gradient(90deg,var(--ok-600),#3FB98B)}
#auditeurView .avf-fmc .avf-fmmeta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:var(--ink-500)}
#auditeurView .avf-fbar{height:12px;border-radius:100px;background:var(--navy-50);overflow:hidden}
#auditeurView .avf-fbar > i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,var(--ok-600),#3FB98B)}
#auditeurView .avf-fitem{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-fitem:last-child{border-bottom:0}
#auditeurView .avf-fchk{width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center;background:var(--ok-50);color:var(--ok-600)}
#auditeurView .avf-fchk.avf-todo{background:var(--warn-50);color:var(--warn-600)}
#auditeurView .avf-fitem .avf-fn{font-weight:600;font-size:13.5px;color:var(--navy-800)}
#auditeurView .avf-fitem .avf-fs{font-size:12px;color:var(--ink-400)}
#auditeurView .avf-qcm-head{display:flex;align-items:center;gap:14px;background:linear-gradient(120deg,var(--navy-50),#fff);border:1px solid var(--navy-100);border-radius:var(--r-md);padding:16px 18px;margin:22px 0 16px}
#auditeurView .avf-qcm-head .avf-qic{width:44px;height:44px;flex:none;border-radius:12px;background:var(--navy-800);color:#fff;display:grid;place-items:center}
#auditeurView .avf-qcm-head .avf-qic svg{width:22px;height:22px}
#auditeurView .avf-qcm-head h4{font-family:var(--fd);font-size:15.5px;color:var(--navy-800)}
#auditeurView .avf-qcm-head p{font-size:12.5px;color:var(--ink-500);margin-top:3px}
#auditeurView .avf-qcm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
#auditeurView .avf-qcmc{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm);padding:16px}
#auditeurView .avf-qcmc h5{font-family:var(--fd);font-size:14px;color:var(--navy-800)}
#auditeurView .avf-qcmc .avf-qs{font-size:12px;color:var(--ink-400);margin-top:3px}
#auditeurView .avf-qcmc .avf-qb{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
#auditeurView .avf-actlist .avf-arow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-actlist .avf-arow:last-child{border-bottom:0}
#auditeurView .avf-actlist .avf-ai{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--or-50);color:var(--or-600)}
#auditeurView .avf-actlist .avf-ai svg{width:18px;height:18px}
#auditeurView .avf-actlist .avf-an{font-weight:600;font-size:14px;color:var(--navy-800)}
#auditeurView .avf-actlist .avf-as{font-size:12.5px;color:var(--ink-400);margin-top:1px}
#auditeurView .avf-actlist .avf-aa{margin-left:auto}
#auditeurView .avf-chat{display:flex;flex-direction:column;height:460px}
#auditeurView .avf-chat-head{display:flex;align-items:center;gap:13px;padding:15px 18px;border-bottom:1px solid var(--line)}
#auditeurView .avf-chat-logo{width:44px;height:44px;flex:none;border-radius:12px;background:linear-gradient(150deg,var(--navy-800),var(--navy-600));display:grid;place-items:center}
#auditeurView .avf-chat-logo svg{width:26px;height:26px}
#auditeurView .avf-chat-head .avf-nm{font-family:var(--fd);font-weight:700;font-size:15px;color:var(--navy-800)}
#auditeurView .avf-chat-head .avf-st{font-size:12px;color:var(--ok-600);font-weight:500}
#auditeurView .avf-chat-head .avf-tagx{margin-left:auto;font-size:11px;font-weight:700;color:var(--navy-600);background:var(--navy-50);padding:4px 10px;border-radius:100px}
#auditeurView .avf-chatbody{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--navy-50)}
#auditeurView .avf-bubble{max-width:76%;padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.5}
#auditeurView .avf-bubble.avf-them{background:#fff;border:1px solid var(--line);align-self:flex-start;border-top-left-radius:4px}
#auditeurView .avf-bubble.avf-me{background:var(--navy-800);color:#fff;align-self:flex-end;border-top-right-radius:4px}
#auditeurView .avf-bubble .avf-bt{font-size:11px;opacity:.6;margin-top:5px}
#auditeurView .avf-chatin{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line);background:#fff}
#auditeurView .avf-chatin input{flex:1;border:1px solid var(--line);border-radius:11px;padding:11px 14px;font-family:inherit;font-size:14px;outline:none}
#auditeurView .avf-chatin input:focus{border-color:var(--or-300)}
#auditeurView .avf-mscrim{position:fixed;inset:0;background:rgba(6,18,42,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.2s;z-index:70;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
#auditeurView .avf-mscrim.avf-on{opacity:1;pointer-events:auto}
#auditeurView .avf-modal{width:min(760px,100%);background:#fff;border-radius:var(--r-xl);box-shadow:var(--sh-lg);transform:translateY(14px);transition:.25s;overflow:hidden}
#auditeurView .avf-mscrim.avf-on .avf-modal{transform:none}
#auditeurView .avf-modal-hero{background:linear-gradient(120deg,#0A2A57,#123C7B 60%,#1A50A0);color:#fff;padding:22px 26px;position:relative}
#auditeurView .avf-modal-hero .avf-mk{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.66)}
#auditeurView .avf-modal-hero h3{font-family:var(--fd);font-size:21px;font-weight:700;margin-top:6px}
#auditeurView .avf-modal-hero .avf-msub{font-size:13px;color:rgba(255,255,255,.82);margin-top:6px}
#auditeurView .avf-modal-x{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center}
#auditeurView .avf-modal-x svg{width:17px;height:17px}
#auditeurView .avf-modal-b{padding:24px 26px;max-height:min(64vh,620px);overflow-y:auto}
#auditeurView .avf-mgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin-bottom:8px}
#auditeurView .avf-mfield .avf-k{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400)}
#auditeurView .avf-mfield .avf-v{font-size:14px;color:var(--navy-800);font-weight:500;margin-top:3px}
#auditeurView .avf-msec{font-family:var(--fd);font-size:13px;font-weight:700;color:var(--navy-700);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
#auditeurView .avf-finput{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;margin-top:6px}
#auditeurView .avf-finput:focus{outline:none;border-color:var(--or-300)}
#auditeurView textarea.avf-finput{resize:vertical;min-height:80px}
#auditeurView .avf-flabel{font-size:12px;font-weight:600;color:var(--ink-600)}
#auditeurView .avf-modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 26px;border-top:1px solid var(--line);background:var(--page);flex-wrap:wrap}
#auditeurView .avf-ind-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-ind-row:last-child{border-bottom:0}
#auditeurView .avf-mscrim.avf-fullpage{padding:0;align-items:stretch;justify-content:stretch}
#auditeurView .avf-mscrim.avf-fullpage .avf-modal{width:100%;max-width:100%;min-height:100vh;border-radius:0;display:flex;flex-direction:column}
#auditeurView .avf-mscrim.avf-fullpage .avf-modal-hero{padding:22px var(--pad)}
#auditeurView .avf-mscrim.avf-fullpage .avf-modal-b{max-height:none;flex:1;padding:26px var(--pad);width:100%}
#auditeurView .avf-mscrim.avf-fullpage .avf-modal-foot{padding:16px var(--pad)}
#auditeurView .avf-fp-back{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:rgba(255,255,255,.85);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:100px;padding:7px 14px;margin-bottom:12px}
#auditeurView .avf-fp-back svg{width:15px;height:15px}
#auditeurView .avf-fp-wrap{max-width:1100px;margin:0 auto}
#auditeurView .avf-fp-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}
#auditeurView .avf-rep-layout{display:grid;grid-template-columns:230px 1fr;flex:1;min-height:0}
#auditeurView .avf-rep-nav{border-right:1px solid var(--line);padding:18px 14px;background:var(--page);display:flex;flex-direction:column;gap:4px}
#auditeurView .avf-rep-nav-item{text-align:left;border:0;background:transparent;color:var(--ink-600);font-weight:600;font-size:13.5px;padding:11px 13px;border-radius:10px;transition:.15s;display:flex;align-items:center;gap:10px}
#auditeurView .avf-rep-nav-item:hover{background:#fff;color:var(--navy-800)}
#auditeurView .avf-rep-nav-item.avf-on{background:var(--navy-800);color:#fff}
#auditeurView .avf-rep-nav-item .avf-rnum{width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:12px;flex:none}
#auditeurView .avf-rep-nav-item:not(.avf-on) .avf-rnum{background:var(--navy-50);color:var(--navy-600)}
#auditeurView .avf-rep-panes{padding:24px var(--pad);overflow-y:auto}
#auditeurView .avf-rep-pane{display:none;max-width:820px}
#auditeurView .avf-rep-pane.avf-on{display:block;animation:avx_fade .25s}
#auditeurView .avf-rep-badge{margin-left:auto;background:var(--alert-600);color:#fff;font-size:11px;font-weight:700;border-radius:100px;padding:1px 7px}
#auditeurView .avf-rep-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
#auditeurView .avf-dscrim{position:fixed;inset:0;background:rgba(6,18,42,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.25s;z-index:60}
#auditeurView .avf-dscrim.avf-on{opacity:1;pointer-events:auto}
#auditeurView .avf-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,96vw);background:#fff;box-shadow:var(--sh-lg);transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.1,1);z-index:61;display:flex;flex-direction:column}
#auditeurView .avf-drawer.avf-on{transform:none}
#auditeurView .avf-drawer .avf-dh{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
#auditeurView .avf-drawer .avf-dh h3{font-family:var(--fd);font-size:17px;color:var(--navy-800)}
#auditeurView .avf-drawer .avf-db{padding:22px;overflow-y:auto}
#auditeurView .avf-field{margin-bottom:15px}
#auditeurView .avf-field label{font-size:12px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em}
#auditeurView .avf-field .avf-val{font-size:14px;color:var(--navy-800);margin-top:5px;font-weight:500}
#auditeurView .avf-field input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;margin-top:5px}
#auditeurView .avf-rg-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
#auditeurView .avf-rg-row:last-child{border-bottom:0}
#auditeurView .avf-rg-ic{width:38px;height:38px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--navy-50);color:var(--navy-600)}
#auditeurView .avf-rg-ic.avf-red{background:var(--alert-50);color:var(--alert-600)}
#auditeurView .avf-rg-ic.avf-ok{background:var(--ok-50);color:var(--ok-600)}
#auditeurView .avf-rg-ic svg{width:18px;height:18px}
#auditeurView .avf-rg-row .avf-rt{font-weight:600;font-size:13.5px;color:var(--navy-800)}
#auditeurView .avf-rg-row .avf-rd{font-size:12px;color:var(--ink-400);margin-top:1px}
#auditeurView .avf-rg-row .avf-ract{margin-left:auto}
#auditeurView .avf-switch{width:44px;height:26px;border-radius:100px;background:var(--ok-600);position:relative;border:0;cursor:pointer;flex:none}
#auditeurView .avf-switch::after{content:"";position:absolute;top:3px;left:21px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}
#auditeurView .avf-switch.avf-off{background:var(--ink-300)}
#auditeurView .avf-switch.avf-off::after{left:3px}
#auditeurView .avf-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);background:var(--navy-900);color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:500;box-shadow:var(--sh-lg);opacity:0;pointer-events:none;transition:.3s;z-index:90;display:flex;align-items:center;gap:10px}
#auditeurView .avf-toast.avf-on{opacity:1;transform:translateX(-50%)}
#auditeurView .avf-toast svg{width:18px;height:18px;color:var(--or-500)}
@media(max-width:1000px){#auditeurView .avf-nav{display:none}
#auditeurView .avf-burger{display:grid}
#auditeurView .avf-hero-stats{grid-template-columns:repeat(2,1fr)}
#auditeurView .avf-g2, #auditeurView .avf-g3, #auditeurView .avf-g4, #auditeurView .avf-tools-grid, #auditeurView .avf-jf-grid, #auditeurView .avf-links-grid, #auditeurView .avf-fm-grid, #auditeurView .avf-qcm-grid, #auditeurView .avf-mgrid{grid-template-columns:1fr}
#auditeurView .avf-orgchip .avf-om{display:none}

}



/* ===== Fiche client v2 — navigation à onglets + cartes ===== */
.fc-nav{display:flex;gap:5px;margin:20px 0 0;padding:6px;background:#eef1f7;border-radius:16px;flex-wrap:wrap}
.fc-nav .fc-tabbtn{flex:1;min-width:118px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border:none;border-radius:11px;background:transparent;color:#7a869a;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .16s ease;white-space:nowrap}
.fc-nav .fc-tabbtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.fc-nav .fc-tabbtn:hover{color:#0d2d5e}
.fc-nav .fc-tabbtn.active{background:#fff;color:#0d2d5e;box-shadow:0 4px 14px rgba(13,45,94,.12);position:relative}
.fc-nav .fc-tabbtn.active::after{content:"";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:22px;height:3px;border-radius:3px;background:#F97316}
.fc-panels{padding:22px 0 6px}
.fc-panel{display:none;animation:fcFade .25s ease}
.fc-panel.active{display:block}
@keyframes fcFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fc-card{background:#fff;border:1px solid #e9edf3;border-radius:18px;box-shadow:0 1px 2px rgba(13,45,94,.05);overflow:hidden;margin-bottom:16px}
.fc-card:last-child{margin-bottom:0}
.fc-card-h{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid #e9edf3}
.fc-card-h .fc-ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e8f0fb;color:#1a4fa0;flex-shrink:0}
.fc-card-h .fc-ic.coral{background:#fff7ed;color:#EA580C}
.fc-card-h .fc-ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
.fc-card-h .t{font-size:15px;font-weight:800;color:#0d2d5e;font-family:'Sora','Inter',sans-serif}
.fc-card-h .s{font-size:12px;color:#7a869a;margin-top:1px}
.fc-card-b{padding:16px 18px}
.fc-fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#e9edf3;border:1px solid #e9edf3;border-radius:14px;overflow:hidden}
.fc-fitem{background:#fff;padding:13px 16px;display:flex;flex-direction:column;gap:3px}
.fc-fitem .k{display:flex;align-items:center;gap:7px;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:#7a869a;font-weight:700}
.fc-fitem .k svg{width:13px;height:13px;stroke:#1a4fa0;fill:none;stroke-width:2}
.fc-fitem .v{font-size:14px;font-weight:600;color:#0f1b2d;word-break:break-word}
.fc-fitem.full{grid-column:1/-1}
.fc-contact{display:flex;align-items:center;gap:16px;padding:6px 4px}
.fc-contact .av{width:56px;height:56px;border-radius:50%;background:linear-gradient(140deg,#F97316,#fb923c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;font-family:'Sora','Inter',sans-serif;flex-shrink:0}
.fc-contact .n{font-size:16px;font-weight:800;color:#0d2d5e}
.fc-contact .f{font-size:12.5px;color:#7a869a;margin-bottom:8px}
.fc-contact .ln{display:flex;flex-direction:column;gap:5px}
.fc-contact .ln a{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#0f1b2d;text-decoration:none}
.fc-contact .ln svg{width:15px;height:15px;stroke:#1a4fa0;fill:none;stroke-width:2}
.fc-empty{color:#7a869a;font-size:13px;padding:6px 2px}
.fc-note{margin-top:14px;background:#fff7ed;border:1px solid #ffe6cc;border-radius:14px;padding:14px 16px}
.fc-note .h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#EA580C;margin-bottom:5px}
.fc-note .b{font-size:13px;color:#7c3a12;line-height:1.5}
.fc-gen-btn{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 12px rgba(249,115,22,.32)}
.fc-gen-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2}
@media(max-width:780px){.fc-fgrid{grid-template-columns:1fr}.fc-nav .fc-tabbtn{min-width:auto;flex:1 1 30%}}
/* ===== Veille réglementaire — propositions automatiques ===== */
.rsg-box{background:linear-gradient(180deg,#fffdf8,#fff);border:1px solid #f1e3c8;border-radius:16px;padding:14px 16px 16px;margin-bottom:16px;box-shadow:0 1px 2px rgba(13,45,94,.05)}
.rsg-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.rsg-head h4{margin:0;font-size:14px;font-weight:800;color:#0d2d5e;display:flex;align-items:center;gap:8px}
.rsg-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 7px;border-radius:999px;background:#F97316;color:#fff;font-size:11.5px;font-weight:800}
.rsg-sub{font-size:11.5px;color:#94794a;margin-left:auto}
.rsg-list{display:flex;flex-direction:column;gap:10px}
.rsg-card{border:1px solid #eef2f8;border-radius:12px;background:#fff;padding:11px 13px;display:flex;gap:12px;align-items:flex-start}
.rsg-card.maj{border-left:3px solid #d97706}
.rsg-card.nouveau{border-left:3px solid #2563eb}
.rsg-main{flex:1;min-width:0}
.rsg-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:2px 8px;border-radius:999px;margin-bottom:5px}
.rsg-tag.maj{background:#fef3c7;color:#92400e}
.rsg-tag.nouveau{background:#dbeafe;color:#1d4ed8}
.rsg-nom{font-size:13.5px;font-weight:700;color:#0f1f33;line-height:1.3}
.rsg-ver{font-size:12px;color:#475569;margin-top:3px}
.rsg-ver b{color:#b45309}
.rsg-res{font-size:12.3px;color:#42506a;line-height:1.5;margin-top:5px}
.rsg-diff,.rsg-impact{font-size:12.2px;line-height:1.5;margin-top:7px;padding:8px 10px;border-radius:9px}
.rsg-diff{background:#fff7ed;border:1px solid #fde6cf;color:#7c3a12}
.rsg-impact{background:#eef4ff;border:1px solid #dbe6fb;color:#1e3a6b}
.rsg-diff-h,.rsg-impact-h{display:block;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px;opacity:.85}
.rsg-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:7px}
.rsg-lnk{font-size:11.5px;font-weight:700;color:#1a4fa0;text-decoration:none}
.rsg-lnk:hover{text-decoration:underline}
.rsg-file{font-size:11.5px;font-weight:700;color:#15803d;display:inline-flex;align-items:center;gap:4px}
.rsg-file.err{color:#b45309}
.rsg-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
.rsg-btn{border:none;border-radius:8px;padding:7px 13px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.rsg-btn.go{background:#0d2d5e;color:#fff}
.rsg-btn.go:hover{filter:brightness(1.1)}
.rsg-btn.skip{background:#f1f5f9;color:#64748b}
.rsg-btn.skip:hover{background:#e2e8f0}
.smq-subtab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#F97316;color:#fff;font-size:10.5px;font-weight:800;margin-left:5px}
/* Alerte dashboard « Veille réglementaire » (affichée seulement si propositions) */
.dra-card{margin-top:16px;background:linear-gradient(135deg,#fff7ed 0%,#fffdf9 60%);border:1px solid #f5d9b5;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 2px rgba(13,45,94,.05)}
.dra-ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#F97316;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}
.dra-main{flex:1;min-width:0}
.dra-title{font-size:14px;font-weight:800;color:#0d2d5e;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dra-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 7px;border-radius:999px;background:#F97316;color:#fff;font-size:11.5px;font-weight:800}
.dra-sub{font-size:12.5px;color:#7c5a2e;line-height:1.45;margin-top:3px}
.dra-sub b{color:#9a3412;font-weight:700}
.dra-btn{flex:0 0 auto;background:#0d2d5e;color:#fff;border:none;border-radius:10px;padding:9px 16px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.dra-btn:hover{filter:brightness(1.1)}
@media(max-width:640px){.dra-card{flex-wrap:wrap}.dra-btn{width:100%}}
/* Alerte dashboard « Échéances certificats » (relances de cycle) — même forme que la veille, accent rouge */
.dca-card{margin-top:16px;background:linear-gradient(135deg,#fef2f2 0%,#fffaf9 60%);border:1px solid #f4c4c4;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 2px rgba(13,45,94,.05)}
.dca-ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#b91c1c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}
.dca-main{flex:1;min-width:0}
.dca-title{font-size:14px;font-weight:800;color:#0d2d5e;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dca-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 7px;border-radius:999px;background:#b91c1c;color:#fff;font-size:11.5px;font-weight:800}
.dca-sub{font-size:12.5px;color:#7f5539;line-height:1.45;margin-top:3px}
.dca-sub b{color:#991b1b;font-weight:700}
.dca-btn{flex:0 0 auto;background:#0d2d5e;color:#fff;border:none;border-radius:10px;padding:9px 16px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.dca-btn:hover{filter:brightness(1.1)}
@media(max-width:640px){.dca-card{flex-wrap:wrap}.dca-btn{width:100%}}
/* ⭐ 23/08/2026 — lignes « Traiter » de la carte Échéances certificats (accueil) */
.dca-card{align-items:flex-start}   /* la carte porte une LISTE : l'icône et « Voir → » se calent en haut */
.dca-rows{margin-top:9px;display:flex;flex-direction:column;gap:6px}
.dca-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid #f4c4c4;border-radius:10px;padding:6px 8px 6px 11px}
.dca-rn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;color:#0d2d5e}
.dca-rt{flex:0 0 auto;font-size:11px;font-weight:700;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:999px;padding:2px 9px;white-space:nowrap}
.dca-rb{flex:0 0 auto;background:#fff;border:1px solid #cbd5e1;color:#0d2d5e;border-radius:8px;padding:5px 12px;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;white-space:nowrap}
.dca-rb:hover{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.dca-more{font-size:11.5px;color:#7f5539;margin-top:7px}
@media(max-width:640px){.dca-rn{flex:1 1 100%}.dca-rb{margin-left:auto}}
/* ===== Veille réglementaire (table) ===== */
.vg-tablecard{background:#fff;border:1px solid #e9edf3;border-radius:16px;overflow-x:auto;box-shadow:0 1px 2px rgba(13,45,94,.05)}
.vg-table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
.vg-table thead th{background:#f6f8fc;color:#0d2d5e;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:12px 14px;border-bottom:1px solid #e9edf3;white-space:nowrap}
.vg-table tbody td{padding:12px 14px;border-bottom:1px solid #f0f3f8;color:#0f1b2d;vertical-align:middle}
.vg-table tbody tr{cursor:pointer;transition:background .12s}
.vg-table tbody tr:hover{background:#f9fbfe}
.vg-table tbody tr:last-child td{border-bottom:none}
.vg-nom{font-weight:600;color:#0d2d5e;max-width:360px;line-height:1.35}
.vg-center{text-align:center}
.vg-freq{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;background:#fff7ed;color:#EA580C;white-space:nowrap}
.vg-file{display:inline-flex;align-items:center;gap:5px;color:#b91c1c;text-decoration:none;font-weight:700;font-size:11.5px}
.vg-file svg{width:15px;height:15px}
.vg-dash{color:#cbd5e1}
.vg-act{background:none;border:none;cursor:pointer;font-size:14px;padding:3px 5px;border-radius:6px;line-height:1}
.vg-act:hover{background:#eef1f7}
.vg-count{font-size:12px;color:#7a869a;margin-top:10px;text-align:right}
.vg-empty{padding:40px 20px;text-align:center;color:#9ca3af;font-size:13px}

/* ===== Navigation horizontale E2 — barre navy pleine largeur ===== */
body.nx-topnav #adminView .sidebar{ display:none !important; }
body.nx-topnav #adminView .main{ flex:1 1 100%; width:100%; background:#f4f6fb; }
body.nx-topnav #adminView .topbar{
  background:#081d3f;
  border:none; border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:0 6px 24px rgba(8,29,63,.25);
  display:flex; flex-wrap:nowrap; align-items:stretch; gap:14px;
  min-height:56px; padding:0 14px; position:sticky; top:0; z-index:40;
  margin:0 !important; border-radius:0;
}
body.nx-topnav .nx-topnav-left{ display:flex; align-items:stretch; gap:10px; flex:1 1 auto; min-width:0; flex-wrap:nowrap; }
body.nx-topnav .nx-topnav-left .brand{ display:flex; align-items:center; gap:10px; flex-shrink:0; align-self:center; padding:0 !important; margin:0 0 0 14px !important; }
body.nx-topnav .nx-topnav-left .brand::after{ display:none !important; }
body.nx-topnav .nx-topnav-left .brand-logo{ width:auto !important; height:auto !important; display:inline-flex; align-items:center; justify-content:center; background:transparent; padding:0; }
body.nx-topnav .nx-topnav-left .brand-logo img{ height:38px !important; width:auto !important; }
body.nx-topnav .nx-topnav-left .brand-text{ display:none; }
body.nx-topnav .nx-topnav-left .brand-text .n1{ font-size:14.5px; font-weight:800; color:#fff; font-family:Sora,Inter,sans-serif; letter-spacing:.02em; }
body.nx-topnav .nx-topnav-left .brand-text .n2{ font-size:8.5px; color:#8fa6cf; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
body.nx-topnav .nx-topnav-left nav.flex-grow{
  display:flex; flex-direction:row; align-items:center; gap:6px; padding:0; flex:0 1 auto; overflow:visible; height:auto;
  margin-left:auto;
}
body.nx-topnav .nx-topnav-left nav.nav-secondary{ display:contents; }
body.nx-topnav #adminView .topbar .nav-item{
  width:auto; padding:8px 14px; border:1px solid rgba(255,255,255,.16); border-radius:11px; display:flex; align-items:center; align-self:center;
  color:#cfe0f7; font-size:12.5px; font-weight:600; white-space:nowrap; gap:7px;
  background:rgba(255,255,255,.07); box-shadow:none; position:relative;
  transition:background .15s, color .15s, border-color .15s;
}
body.nx-topnav #adminView .topbar .nav-item .ico{ display:none !important; }
body.nx-topnav #adminView .topbar .nav-item:hover{ background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.3); transform:none; box-shadow:none; }
body.nx-topnav #adminView .topbar .nav-item.active{
  background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; border:1px solid transparent; transform:none;
  box-shadow:none; font-weight:700;
}
body.nx-topnav #adminView .topbar .nav-item::before{ display:none !important; content:none !important; }
body.nx-topnav #adminView .topbar .nav-item::after{ display:none !important; content:none !important; }
body.nx-topnav #adminView .topbar .nav-item[data-tab="parametres"]{
  margin-left:auto; padding:0; width:35px; height:35px; justify-content:center; gap:0; align-self:center; flex:none;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); border-radius:11px; color:#cfe0f7;
}
body.nx-topnav #adminView .topbar .nav-item[data-tab="parametres"]:hover{ background:rgba(255,255,255,.14); color:#fff; }
body.nx-topnav #adminView .topbar .nav-item[data-tab="parametres"].active{ background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; box-shadow:0 6px 16px rgba(249,115,22,.35); }
body.nx-topnav #adminView .topbar .nav-item[data-tab="parametres"] span{ display:none !important; }
body.nx-topnav #adminView .topbar .nav-item[data-tab="parametres"] .ico{ display:inline-block !important; width:17px; height:17px; stroke:currentColor !important; fill:none !important; }
/* Recherche : loupe repliée -> champ en surcouche au clic */
body.nx-topnav #adminView .topbar .search{
  flex-shrink:0; width:35px; max-width:35px; height:35px; margin:0; position:relative; align-self:center;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); border-radius:11px;
  box-shadow:none; cursor:pointer; transition:background .15s;
}
body.nx-topnav #adminView .topbar .search:hover{ background:rgba(255,255,255,.14); }
body.nx-topnav #adminView .topbar .search .s-ico{ left:50%; top:50%; transform:translate(-50%,-50%); stroke:#cfe0f7; z-index:3; pointer-events:none; position:absolute; }
body.nx-topnav #adminView .topbar .search .kbd{ display:none !important; }
body.nx-topnav #adminView .topbar .search input{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:0; height:38px; opacity:0; pointer-events:none; padding:0;
  background:#0a244c; border:1px solid rgba(255,255,255,.25); border-radius:10px; color:#fff;
  z-index:2; box-shadow:0 10px 26px rgba(0,0,0,.34); transition:width .22s ease, opacity .12s; outline:none;
}
body.nx-topnav #adminView .topbar .search input:focus{ border-color:rgba(255,255,255,.42); }
body.nx-topnav #adminView .topbar .search.nx-search-open{ background:transparent; border-color:transparent; overflow:visible; }
body.nx-topnav #adminView .topbar .search.nx-search-open .s-ico{ left:auto; right:13px; transform:translateY(-50%); }
body.nx-topnav #adminView .topbar .search.nx-search-open input{ width:320px; opacity:1; pointer-events:auto; padding:0 42px 0 15px; }
body.nx-topnav #adminView .topbar .search.nx-search-open input::placeholder{ color:rgba(255,255,255,.55); }
body.nx-topnav #adminView .topbar .search #global-search-results{ position:absolute; top:46px; right:0; left:auto; width:320px; }
/* Côté droit : boutons verre navy, cloche et profil visibles */
body.nx-topnav #adminView .topbar #notif-btn{ display:none !important; }
body.nx-topnav #adminView .topbar .topbar-right{ flex-shrink:0; gap:8px; margin-left:0; align-self:center; display:flex; align-items:center; }
body.nx-topnav #adminView .topbar .topbar-right .icon-btn{
  color:#cfe0f7; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18);
  border-radius:11px; width:35px; height:35px; display:flex; align-items:center; justify-content:center;
  box-shadow:none; transition:background .15s, color .15s;
}
body.nx-topnav #adminView .topbar .topbar-right .icon-btn:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); color:#fff; transform:none; box-shadow:none; }
body.nx-topnav #adminView .topbar .topbar-right .icon-btn .ico{ width:16px; height:16px; }
body.nx-topnav #adminView .topbar .user-btn{
  display:flex !important; align-items:center; gap:8px; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:4px 10px 4px 5px; cursor:pointer;
}
body.nx-topnav #adminView .topbar .user-btn:hover{ background:rgba(255,255,255,.13); }
body.nx-topnav #adminView .topbar .user-btn .av{ width:26px; height:26px; border-radius:9px; background:linear-gradient(140deg,#F97316,#c2410c); color:#fff; font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; }
body.nx-topnav #adminView .topbar .user-btn .nm{ font-size:12px; font-weight:700; color:#fff; }
body.nx-topnav #adminView .topbar .user-btn svg{ display:none; }
/* Œil discrétion sur navy */
body.nx-discreet #adminView .topbar .nx-discreet-btn{ background:#F97316 !important; border-color:#F97316 !important; color:#fff !important; }
/* Détail dossier/audit : sous la barre */
body.nx-topnav #dos-slide, body.nx-topnav #aud-slide{ left:0 !important; top:56px !important; }
/* Dashboard E2 : contenu bord à bord */
body.nx-topnav.nxd-dash #adminView .content{ padding:0 !important; }
@media(max-width:1560px){
  body.nx-topnav .nx-topnav-left .brand-text .n2{ display:none; }
}
@media(max-width:1460px){
  body.nx-topnav #adminView .topbar .nav-item{ padding:7px 10px; font-size:12px; }
  body.nx-topnav .nx-menu-panel, body.nx-topnav .nx-topnav-left nav.flex-grow{ gap:4px; }
}
/* ── Onglet Rapport (dossier admin) : encart Feuille de présence à droite ── */
.ndrapgrid{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
@media(max-width:1180px){ .ndrapgrid{ grid-template-columns:1fr; } }

/* ── Menu hamburger responsive ── */
body.nx-topnav .nx-burger{ display:none; }
body.nx-topnav .nx-menu-panel{ display:flex; align-items:center; gap:6px; flex:1 1 auto; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -ms-overflow-style:none; }
body.nx-topnav .nx-menu-panel::-webkit-scrollbar{ display:none; }
body.nx-topnav .nx-topnav-left{ overflow:hidden; }
@media(max-width:1280px){
  body.nx-topnav .nx-burger{
    display:flex; flex-direction:column; justify-content:center; gap:4px;
    width:42px; height:35px; flex-shrink:0; margin-left:auto; padding:0 11px; align-self:center;
    border-radius:10px; background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.18); cursor:pointer; transition:background .15s;
  }
  body.nx-topnav .nx-burger:hover{ background:rgba(255,255,255,.15); }
  body.nx-topnav .nx-burger span{ display:block; height:2px; width:20px; background:#fff; border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
  body.nx-topnav.nx-menu-open .nx-burger span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  body.nx-topnav.nx-menu-open .nx-burger span:nth-child(2){ opacity:0; }
  body.nx-topnav.nx-menu-open .nx-burger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
  body.nx-topnav .nx-menu-panel{
    display:none; position:absolute; top:calc(100% + 7px); left:10px; right:10px;
    flex-direction:column; gap:5px; padding:12px;
    background:linear-gradient(160deg,#0d2d5e,#081d3f);
    border:1px solid rgba(255,255,255,.14); border-radius:16px;
    box-shadow:0 24px 50px rgba(8,25,52,.5);
    max-height:calc(100vh - 130px); overflow-y:auto; z-index:60;
  }
  body.nx-topnav.nx-menu-open .nx-menu-panel{ display:flex; }
  body.nx-topnav .nx-menu-panel nav.flex-grow,
  body.nx-topnav .nx-menu-panel nav.nav-secondary{
    display:flex !important; flex-direction:column !important; gap:5px; width:100%;
    border-left:none !important; padding-left:0 !important; margin-left:0 !important;
  }
  body.nx-topnav .nx-menu-panel nav.nav-secondary{ border-top:1px solid rgba(255,255,255,.14); padding-top:9px !important; margin-top:4px; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item{
    width:100% !important; height:auto !important; justify-content:flex-start !important;
    padding:11px 14px !important; gap:12px !important; font-size:14px; border-radius:11px;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item .ico{ display:inline-block !important; stroke:#F97316 !important; fill:none !important; width:17px; height:17px; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item.active{ background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item.active .ico{ stroke:#fff !important; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item::after{ display:none !important; }
  body.nx-topnav .nx-menu-panel nav.nav-secondary{ display:flex !important; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item[data-tab="parametres"]{
    width:100% !important; height:auto !important; margin-left:0 !important; flex:initial; padding:11px 14px !important;
    background:none; border:none; border-radius:11px; color:#a9bcdf; justify-content:flex-start !important; gap:12px !important;
  }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item[data-tab="parametres"].active{ background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; box-shadow:none; }
  body.nx-topnav #adminView .topbar .nx-menu-panel .nav-item[data-tab="parametres"] span{ display:inline !important; }
  body.nx-topnav .mobile-bottom-nav{ display:none !important; }
  body.nx-topnav.admin-mode .main{ padding-bottom:0 !important; }
}
@media(max-width:768px){
  body.nx-topnav #adminView .topbar{ padding:0 10px; min-height:52px; gap:8px; }
  body.nx-topnav .nx-topnav-left .brand-text{ display:none; }
  body.nx-topnav #adminView .content{ padding:14px 12px 26px !important; }
  body.nx-topnav.nxd-dash #adminView .content{ padding:0 !important; }
  body.nx-topnav .nx-menu-panel{ left:8px; right:8px; }
}

/* ============ Page Dossiers — refonte design ============ */
/* Sous-onglets : segmented control net (pastille active navy) */
#tab-dossiers .subtabs-row{ background:#fff !important; border:1px solid #e6ecf5 !important; box-shadow:0 1px 3px rgba(13,45,94,.05) !important; padding:5px !important; gap:3px !important; border-radius:14px !important; }
#tab-dossiers .subtabs-row .fb{ font-size:13px !important; font-weight:600 !important; padding:9px 18px !important; border-radius:10px !important; color:#64748b !important; box-shadow:none !important; }
#tab-dossiers .subtabs-row .fb:hover{ background:#f1f5f9 !important; color:#0d2d5e !important; }
#tab-dossiers .subtabs-row .fb.active{ background:#0d2d5e !important; color:#fff !important; box-shadow:0 3px 10px rgba(13,45,94,.22) !important; }
#tab-dossiers .subtabs-row .fb.active:hover{ background:#13407e !important; color:#fff !important; }

/* Filtres (Tous / Initial / …) : pastilles arrondies */
#tab-dossiers #dem-filters .fb{ border-radius:999px !important; padding:7px 15px !important; font-size:12.5px !important; font-weight:600 !important; }
#tab-dossiers #dem-filters .fb.active{ background:#0d2d5e !important; color:#fff !important; border-color:#0d2d5e !important; box-shadow:0 2px 8px rgba(13,45,94,.2) !important; }

/* Carte conteneur plus douce */
#tab-dossiers .card{ border:1px solid #eef2f8; border-radius:16px; box-shadow:0 4px 18px rgba(13,45,94,.05); }

/* Champ de recherche moderne */
#tab-dossiers .card input[id$="-search"]{
  border:1px solid #e6ecf5 !important; border-radius:11px !important; padding:11px 14px !important;
  background:#f8fafc !important; font-size:13.5px !important; transition:border-color .15s, background .15s, box-shadow .15s !important;
}
#tab-dossiers .card input[id$="-search"]:focus{ outline:none !important; border-color:#0d2d5e !important; background:#fff !important; box-shadow:0 0 0 3px rgba(13,45,94,.10) !important; }

/* Tableau : en-tetes discrets, lignes aerees, survol */
#tab-dossiers .card table{ width:100%; border-collapse:separate !important; border-spacing:0 !important; margin-top:10px; }
#tab-dossiers .card thead th{ text-transform:uppercase; font-size:11px; letter-spacing:.06em; font-weight:700; color:#94a3b8; text-align:left; padding:11px 14px; border-bottom:1px solid #eef2f7; background:transparent; }
#tab-dossiers .card tbody td{ padding:13px 14px; border-bottom:1px solid #f2f5f9; vertical-align:middle; font-size:13.5px; color:#1e293b; }
#tab-dossiers .card tbody tr{ transition:background .12s; }
#tab-dossiers .card tbody tr:hover{ background:#f8fafc; }
#tab-dossiers .card tbody tr:last-child td{ border-bottom:none; }

/* Badges (type / statut) : pastilles pleinement arrondies */
#tab-dossiers .card .badge{ border-radius:999px !important; font-weight:600 !important; padding:4px 12px !important; font-size:11.5px !important; letter-spacing:.01em; }

/* Bouton « Voir dossier » moderne — UNIQUEMENT les tables legacy (JotForm / attente comité).
   NE PAS généraliser à toutes les tables : cela écrasait les pills pastel nx2 (type/statut),
   les boutons › d'ouverture, les chips certificat du registre, etc. (fix Tour de contrôle B) */
#tab-dossiers #dos-sub-dem .card tbody td button, #tab-dossiers #dos-sub-instr .card tbody td button{
  font-size:12px !important; font-weight:600 !important; padding:8px 15px !important;
  background:#0d2d5e !important; color:#fff !important; border:none !important; border-radius:9px !important;
  cursor:pointer !important; box-shadow:0 2px 7px rgba(13,45,94,.18) !important;
  transition:transform .12s, box-shadow .12s, background .12s !important;
}
#tab-dossiers #dos-sub-dem .card tbody td button:hover, #tab-dossiers #dos-sub-instr .card tbody td button:hover{ background:#13407e !important; transform:translateY(-1px); box-shadow:0 5px 14px rgba(13,45,94,.3) !important; }

.dash-chart-toggle{ display:inline-flex; background:#eef2f8; border:1px solid #e3e9f2; border-radius:11px; padding:3px; gap:2px; }
.dash-chart-toggle .dct-btn{ border:none; background:transparent; color:#64748b; font-weight:600; font-size:12.5px; padding:6px 14px; border-radius:8px; cursor:pointer; transition:all .15s; font-family:inherit; }
.dash-chart-toggle .dct-btn:hover{ color:#0d2d5e; }
.dash-chart-toggle .dct-btn.active{ background:#0d2d5e; color:#fff; box-shadow:0 2px 6px rgba(13,45,94,.2); }
.dash-charts-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:14px; margin-top:6px; }
.dash-chart-card{ background:#fff; border:1px solid #eef2f8; border-radius:14px; padding:14px 16px; }
.dash-chart-card .dcc-head{ display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.dash-chart-card .dcc-ico{ width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dash-chart-card .dcc-ico svg{ width:18px; height:18px; }
.dash-chart-card .dcc-ico.navy{ background:#eaf0fb; color:#0d2d5e; }
.dash-chart-card .dcc-ico.amber{ background:#fdece1; color:#b45309; }
.dash-chart-card .dcc-meta{ flex:1; min-width:0; }
.dash-chart-card .dcc-title{ font-size:14px; font-weight:700; color:#0d2d5e; font-family:Sora,Inter,sans-serif; }
.dash-chart-card .dcc-sub{ font-size:11.5px; color:#94a3b8; }
.dash-chart-card .dcc-total{ font-size:19px; font-weight:800; color:#0d2d5e; font-family:Sora,Inter,sans-serif; white-space:nowrap; }
.dash-chart-card svg{ width:100%; height:auto; display:block; margin-top:2px; }

/* ===== Cartes KPI — effet liquid glass ===== */
#tab-dashboard .kpi-grid{ position:relative; z-index:0; }
#tab-dashboard .kpi-grid::before{ content:none !important; }
#tab-dashboard .kpi-grid > .kpi{ z-index:1; }
#tab-dashboard .kpi{
  background:linear-gradient(135deg, rgba(255,255,255,.80), rgba(255,255,255,.45)) !important;
  -webkit-backdrop-filter:blur(16px) saturate(155%); backdrop-filter:blur(16px) saturate(155%);
  border:1px solid rgba(255,255,255,.65) !important;
  border-radius:20px !important;
  box-shadow:0 12px 32px rgba(13,45,94,.12), 0 2px 8px rgba(13,45,94,.06), inset 0 1px 0 rgba(255,255,255,.92) !important;
  transition:transform .28s cubic-bezier(.2,.9,.25,1.05), box-shadow .28s !important;
}
#tab-dashboard .kpi::after{
  content:""; position:absolute; left:0; right:0; top:0; height:52%;
  background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0));
  pointer-events:none; z-index:0;
}
#tab-dashboard .kpi > *{ position:relative; z-index:1; }
#tab-dashboard .kpi:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 26px 52px rgba(13,45,94,.18), 0 8px 16px rgba(13,45,94,.10), inset 0 1px 0 rgba(255,255,255,.96) !important;
}
#tab-dashboard .kpi-ico{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 5px 12px rgba(13,45,94,.12);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}

/* ===== Liquid glass sur tout le tableau de bord ===== */
#tab-dashboard{ position:relative; z-index:0; }
#tab-dashboard::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(780px circle at 96% 8%, rgba(13,45,94,.10), transparent 58%),
    radial-gradient(840px circle at 50% 72%, rgba(59,130,246,.08), transparent 58%),
    radial-gradient(560px circle at 10% 96%, rgba(16,185,129,.06), transparent 58%);
  filter:blur(8px);
}
#tab-dashboard > *{ position:relative; z-index:1; }
#tab-dashboard .panel-v2{
  background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.50)) !important;
  -webkit-backdrop-filter:blur(18px) saturate(150%); backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,.60) !important;
  border-radius:20px !important;
  box-shadow:0 14px 36px rgba(13,45,94,.10), 0 2px 8px rgba(13,45,94,.05), inset 0 1px 0 rgba(255,255,255,.90) !important;
  transition:transform .28s cubic-bezier(.2,.9,.25,1.05), box-shadow .28s !important;
}
#tab-dashboard .panel-v2:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 24px 50px rgba(13,45,94,.15), 0 6px 14px rgba(13,45,94,.08), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
#tab-dashboard .dash-chart-card{
  background:rgba(255,255,255,.55) !important;
  border:1px solid rgba(255,255,255,.70) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 4px 14px rgba(13,45,94,.06) !important;
}

/* Bouton CTA des cartes formation (vue admin/comité) : --aud-coral non défini hors espace auditeur */
#tab-formation .aud-fm-cta{ background:linear-gradient(135deg,#F97316,#EA580C) !important; color:#fff !important; box-shadow:0 4px 12px rgba(249,115,22,.30) !important; }
#tab-formation .aud-fm-cta svg{ stroke:#fff !important; }
#tab-formation .aud-fm-cta:hover{ box-shadow:0 8px 20px rgba(249,115,22,.42) !important; }

/* KPI — intérieur « icône filigrane » (option 3) */
#tab-dashboard .kpi{ overflow:hidden !important; }
#tab-dashboard .kpi-top{ position:absolute !important; inset:0 !important; z-index:0 !important; margin:0 !important; padding:0 !important; display:block !important; pointer-events:none; }
#tab-dashboard .kpi-ico{
  position:absolute; right:-8px; bottom:-18px; width:auto !important; height:auto !important;
  background:transparent !important; box-shadow:none !important; padding:0 !important; border-radius:0 !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
}
#tab-dashboard .kpi-ico .ico{ width:86px !important; height:86px !important; opacity:.12; stroke-width:1.5; }
#tab-dashboard .kpi > div:not(.kpi-top){ position:relative; z-index:1; }
#tab-dashboard .kpi-label{ font-size:12px; }
#tab-dashboard .kpi-value{ font-size:30px; }

/* ===== Liquid glass — tout le CRM (admin) ===== */
#adminView .main{ background:linear-gradient(155deg, #eef2fa 0%, #f3f1f8 55%, #edf3f1 100%) !important; }

/* Cartes / panneaux en verre dépoli */
#adminView .card,
#adminView .panel-v2,
#adminView .qp-mb-card,
#adminView .aud-fm-card,
#adminView .vg-tablecard,
#adminView .qpf-card{
  background:linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.62)) !important;
  -webkit-backdrop-filter:blur(16px) saturate(145%); backdrop-filter:blur(16px) saturate(145%);
  border:1px solid rgba(255,255,255,.65) !important;
  box-shadow:0 12px 30px rgba(13,45,94,.10), 0 2px 8px rgba(13,45,94,.05), inset 0 1px 0 rgba(255,255,255,.9) !important;
  border-radius:18px !important;
  transition:transform .25s cubic-bezier(.2,.9,.25,1.05), box-shadow .25s !important;
}
#adminView .card:hover,
#adminView .qp-mb-card:hover,
#adminView .aud-fm-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 46px rgba(13,45,94,.15), 0 6px 14px rgba(13,45,94,.08), inset 0 1px 0 rgba(255,255,255,.95) !important;
}

/* Cartes de comptes (Comptabilité) : on garde la couleur, on ajoute l'effet flottant */
#adminView .account-card{ transition:transform .25s cubic-bezier(.2,.9,.25,1.05), box-shadow .25s !important; }
#adminView .account-card:hover{ transform:translateY(-4px); box-shadow:0 22px 46px rgba(13,45,94,.24) !important; }

/* Boutons : relief verre + flottement au survol */
#adminView .btn-coral, #adminView .btn-navy, #adminView .btn-ghost-v2, #adminView .fb,
#adminView .smq-btn-primary, #adminView .smq-btn-secondary{
  box-shadow:0 4px 12px rgba(13,45,94,.12), inset 0 1px 0 rgba(255,255,255,.25) !important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
#adminView .btn-coral:hover, #adminView .btn-navy:hover, #adminView .btn-ghost-v2:hover, #adminView .fb:hover,
#adminView .smq-btn-primary:hover, #adminView .smq-btn-secondary:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 8px 20px rgba(13,45,94,.20), inset 0 1px 0 rgba(255,255,255,.35) !important;
}

/* ===== Espace auditeur : barre de menu horizontale (desktop) ===== */
@media(min-width:901px){
  #auditeurView .aud-shell{ display:flex !important; flex-direction:column !important; height:100vh; overflow:hidden; }
  #auditeurView .aud-sidebar{
    height:auto !important; max-height:none !important; width:auto !important; overflow:visible !important;
    flex-direction:row !important; align-items:center; gap:14px; flex-wrap:nowrap;
    padding:0 18px !important; min-height:60px;
    margin:14px 16px 6px 16px; border-radius:18px; border:1px solid rgba(255,255,255,.12) !important;
    background:linear-gradient(135deg, rgba(21,60,122,.96), rgba(13,45,94,.90)) !important;
    -webkit-backdrop-filter:blur(14px) saturate(150%); backdrop-filter:blur(14px) saturate(150%);
    box-shadow:0 18px 40px rgba(13,45,94,.30), 0 6px 16px rgba(13,45,94,.20), inset 0 1px 0 rgba(255,255,255,.18) !important;
  }
  #auditeurView .aud-brand{ padding:0 !important; border-bottom:none !important; flex-shrink:0; gap:9px; }
  #auditeurView .aud-brand-mark{ width:34px !important; height:34px !important; }
  #auditeurView .aud-nav-label{ display:none !important; }
  #auditeurView .aud-nav{ flex-direction:row !important; flex-grow:1; flex-wrap:wrap; gap:4px !important; align-items:center; }
  #auditeurView .aud-nav-tab{
    width:auto !important; padding:8px 12px !important; border-radius:10px; white-space:nowrap;
    border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    transition:background .15s, color .15s, border-color .15s, transform .15s, box-shadow .15s;
  }
  #auditeurView .aud-nav-tab span:not(.aud-msg-badge){ flex-grow:0 !important; }
  #auditeurView .aud-nav-tab svg{ stroke:#F97316 !important; }
  #auditeurView .aud-nav-tab:hover{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.4); transform:translateY(-1px); box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 14px rgba(0,0,0,.22); }
  #auditeurView .aud-nav-tab.active{ background:#fff !important; color:#0d2d5e !important; border-color:#fff; transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.95); }
  #auditeurView .aud-nav-tab.active::before{ display:none !important; }
  #auditeurView .aud-msg-badge{ margin-left:6px !important; }
  #auditeurView .aud-side-foot{ flex-direction:row !important; align-items:center; gap:8px; padding-top:0 !important; border-top:none !important; flex-shrink:0; margin-left:auto; }
  #auditeurView .aud-side-user{ padding:6px 10px !important; }
  #auditeurView .aud-main{ height:auto !important; max-height:none !important; flex:1 1 auto; min-height:0; padding:22px 28px 48px !important; }
}

/* ===== Liquid glass sur les cartes encore opaques + relief boutons (toutes tailles) ===== */
#auditeurView .aud-tool-card, #auditeurView .aud-jf-card, #auditeurView .aud-link-card{
  background:linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.62)) !important;
  -webkit-backdrop-filter:blur(16px) saturate(145%); backdrop-filter:blur(16px) saturate(145%);
  border:1px solid rgba(255,255,255,.7) !important;
  box-shadow:0 12px 30px rgba(13,45,94,.10), inset 0 1px 0 rgba(255,255,255,.9) !important;
}
#auditeurView .aud-card, #auditeurView .aud-stat-card, #auditeurView .aud-next-mission,
#auditeurView .aud-tool-card, #auditeurView .aud-jf-card, #auditeurView .aud-link-card, #auditeurView .aud-fm-card{
  transition:transform .25s cubic-bezier(.2,.9,.25,1.05), box-shadow .25s !important;
}
#auditeurView .aud-card:hover, #auditeurView .aud-stat-card:hover,
#auditeurView .aud-tool-card:hover, #auditeurView .aud-jf-card:hover, #auditeurView .aud-link-card:hover, #auditeurView .aud-fm-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 46px rgba(13,45,94,.16), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
#auditeurView .aud-btn-primary, #auditeurView .aud-hero-btn, #auditeurView .aud-tool-btn, #auditeurView .aud-cal-btn{
  box-shadow:0 4px 12px rgba(13,45,94,.14), inset 0 1px 0 rgba(255,255,255,.25) !important;
  transition:transform .15s ease, box-shadow .15s ease !important;
}
#auditeurView .aud-btn-primary:hover, #auditeurView .aud-hero-btn:hover, #auditeurView .aud-tool-btn:hover, #auditeurView .aud-cal-btn:hover{
  transform:translateY(-2px) !important;
}

/* Alignement accents cockpit (maquette 2026) — CSS only, câblage inchangé */
@media(min-width:901px){
  #auditeurView .aud-nav-tab.active{
    background:linear-gradient(135deg,#F97316,#EA580C) !important;
    color:#fff !important; border-color:transparent !important;
    box-shadow:0 8px 18px -8px rgba(249,115,22,.85), inset 0 1px 0 rgba(255,255,255,.25) !important;
  }
  #auditeurView .aud-nav-tab.active svg{ stroke:#fff !important; }
}
#auditeurView .aud-mfilter.active{
  background:linear-gradient(135deg,#F97316,#EA580C) !important;
  color:#fff !important; border-color:transparent !important;
  box-shadow:0 8px 18px -10px rgba(249,115,22,.85) !important;
}

/* Espace auditeur — boutons utilitaires en icône seule (Messages / Profil / Déconnexion) */
#auditeurView .aud-side-foot .aud-ico-only{
  width:40px !important; min-width:40px; height:40px; padding:0 !important; justify-content:center !important;
  border-radius:10px; gap:0 !important; position:relative; flex:0 0 auto;
}
#auditeurView .aud-side-foot .aud-ico-only span:not(.aud-msg-badge){ display:none !important; }
#auditeurView .aud-side-foot .aud-ico-only svg{ width:18px !important; height:18px !important; }
#auditeurView .aud-side-foot .btn-logout.aud-ico-only{ font-size:0 !important; }
#auditeurView .aud-side-foot .aud-ico-only .aud-msg-badge{
  position:absolute; top:-4px; right:-4px; margin:0 !important; min-width:16px; height:16px;
  padding:0 4px; display:flex; align-items:center; justify-content:center; font-size:9px; line-height:1;
}
/* Carte utilisateur réduite au seul rond d'initiales */
#auditeurView .aud-side-user{ background:transparent !important; border:none !important; padding:0 !important; gap:0 !important; }
#auditeurView .aud-side-user > div:not(.user-avatar){ display:none !important; }

#auditeurView .aud-drawer{ position:fixed; inset:0; z-index:1200; display:none; }
#auditeurView .aud-drawer.open{ display:block; }
#auditeurView .aud-drawer-bg{ position:absolute; inset:0; background:rgba(13,45,94,.34); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); opacity:0; transition:opacity .3s; }
#auditeurView .aud-drawer.open .aud-drawer-bg{ opacity:1; }
#auditeurView .aud-drawer-panel{
  position:absolute; top:0; right:0; height:100%; width:min(460px,92vw);
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.74));
  -webkit-backdrop-filter:blur(22px) saturate(150%); backdrop-filter:blur(22px) saturate(150%);
  box-shadow:-18px 0 50px rgba(13,45,94,.26); border-left:1px solid rgba(255,255,255,.6);
  transform:translateX(100%); transition:transform .32s cubic-bezier(.2,.9,.25,1.05);
  display:flex; flex-direction:column;
}
#auditeurView .aud-drawer.open .aud-drawer-panel{ transform:translateX(0); }
#auditeurView .aud-drawer-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid rgba(13,45,94,.1); flex-shrink:0; }
#auditeurView .aud-drawer-head h3{ margin:0; font-size:16px; font-weight:700; color:#0d2d5e; font-family:Sora,Inter,sans-serif; }
#auditeurView .aud-drawer-close{ width:34px; height:34px; border-radius:9px; border:1px solid rgba(13,45,94,.12); background:#fff; color:#0d2d5e; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
#auditeurView .aud-drawer-close:hover{ background:#f1f5f9; }
#auditeurView .aud-drawer-body{ flex:1; overflow-y:auto; padding:16px 20px 28px; }
#auditeurView .aud-drawer-body .aud-tab-panel{ display:block !important; animation:none !important; }

/* Contenu Messages/Profil adapté à la largeur du tiroir */
#auditeurView .aud-drawer-body .aud-profile-grid{ grid-template-columns:1fr !important; gap:14px !important; }
#auditeurView .aud-drawer-body .aud-form-grid{ grid-template-columns:1fr !important; gap:12px !important; }
#auditeurView .aud-drawer-body input,
#auditeurView .aud-drawer-body textarea,
#auditeurView .aud-drawer-body select{ width:100% !important; max-width:100% !important; box-sizing:border-box !important; }
#auditeurView .aud-drawer-body .aud-card{ width:auto !important; max-width:100% !important; }
/* Le titre est déjà dans l'en-tête du tiroir : on masque le titre interne, on garde le bouton d'action */
#auditeurView .aud-drawer-body .aud-section-head{ justify-content:flex-end !important; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
#auditeurView .aud-drawer-body .aud-section-head > div:first-child{ display:none !important; }

/* ===== Espace client : barre de menu horizontale (desktop) ===== */
@media(min-width:901px){
  #clientView .clv-shell{ display:flex !important; flex-direction:column !important; height:100vh; overflow:hidden; }
  #clientView .clv-sidebar{
    height:auto !important; max-height:none !important; width:auto !important; overflow:visible !important;
    flex-direction:row !important; align-items:center; gap:14px; flex-wrap:nowrap;
    padding:0 18px !important; min-height:60px;
    margin:14px 16px 6px 16px; border-radius:18px; border:1px solid rgba(255,255,255,.12) !important;
    background:linear-gradient(135deg, rgba(21,60,122,.96), rgba(13,45,94,.90)) !important;
    -webkit-backdrop-filter:blur(14px) saturate(150%); backdrop-filter:blur(14px) saturate(150%);
    box-shadow:0 18px 40px rgba(13,45,94,.30), 0 6px 16px rgba(13,45,94,.20), inset 0 1px 0 rgba(255,255,255,.18) !important;
  }
  #clientView .clv-brand{ padding:0 !important; border-bottom:none !important; flex-shrink:0; gap:9px; }
  #clientView .clv-brand-mark{ width:34px !important; height:34px !important; }
  #clientView .clv-nav-label{ display:none !important; }
  #clientView .clv-nav{ flex-direction:row !important; flex-grow:1; flex-wrap:wrap; gap:4px !important; align-items:center; }
  #clientView .clv-nav .nav-tab{
    width:auto !important; padding:8px 12px !important; border-radius:10px; white-space:nowrap;
    border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    transition:background .15s, color .15s, border-color .15s, transform .15s, box-shadow .15s;
  }
  #clientView .clv-nav .nav-tab span:not(.msg-badge){ flex-grow:0 !important; }
  #clientView .clv-nav .nav-tab svg{ stroke:#F97316 !important; }
  #clientView .clv-nav .nav-tab:hover{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.4); transform:translateY(-1px); box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 14px rgba(0,0,0,.22); }
  #clientView .clv-nav .nav-tab.active{ background:#fff !important; color:#0d2d5e !important; border-color:#fff; transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.95); }
  #clientView .clv-nav .nav-tab.active::before{ display:none !important; }
  #clientView .clv-nav .nav-tab.active svg{ stroke:#F97316 !important; }
  #clientView .msg-badge{ margin-left:6px !important; }
  #clientView .clv-side-foot{ flex-direction:row !important; align-items:center; gap:8px; padding-top:0 !important; border-top:none !important; flex-shrink:0; margin-left:auto; }
  #clientView .clv-side-user{ background:transparent !important; border:none !important; padding:0 !important; gap:0 !important; }
  #clientView .clv-side-user .clv-side-name, #clientView .clv-side-user .clv-side-role{ display:none !important; }
  #clientView .clv-side-user > div:not(.user-avatar){ display:none !important; }
  #clientView .clv-side-foot .btn-logout{ width:40px !important; min-width:40px; height:40px; padding:0 !important; justify-content:center !important; font-size:0 !important; border-radius:10px; }
  #clientView .clv-side-foot .btn-logout svg{ width:18px !important; height:18px !important; }
  #clientView .clv-main{ height:auto !important; max-height:none !important; flex:1 1 auto; min-height:0; padding:22px 28px 48px !important; }
}
/* Survol flottant sur les cartes / boutons client (toutes tailles) */
#clientView .clv-card{ transition:transform .25s cubic-bezier(.2,.9,.25,1.05), box-shadow .25s !important; }
#clientView .clv-card:hover{ transform:translateY(-4px); box-shadow:0 22px 46px rgba(13,45,94,.16), inset 0 1px 0 rgba(255,255,255,.95) !important; }
#clientView .clv-hero-btn, #clientView .clv-quick-action{ transition:transform .15s ease, box-shadow .15s ease !important; }
#clientView .clv-hero-btn:hover, #clientView .clv-quick-action:hover{ transform:translateY(-2px) !important; }

#clientView .clv-drawer{ position:fixed; inset:0; z-index:1200; display:none; }
#clientView .clv-drawer.open{ display:block; }
#clientView .clv-drawer-bg{ position:absolute; inset:0; background:rgba(13,45,94,.34); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); opacity:0; transition:opacity .3s; }
#clientView .clv-drawer.open .clv-drawer-bg{ opacity:1; }
#clientView .clv-drawer-panel{
  position:absolute; top:0; right:0; height:100%; width:min(460px,92vw);
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.74));
  -webkit-backdrop-filter:blur(22px) saturate(150%); backdrop-filter:blur(22px) saturate(150%);
  box-shadow:-18px 0 50px rgba(13,45,94,.26); border-left:1px solid rgba(255,255,255,.6);
  transform:translateX(100%); transition:transform .32s cubic-bezier(.2,.9,.25,1.05);
  display:flex; flex-direction:column;
}
#clientView .clv-drawer.open .clv-drawer-panel{ transform:translateX(0); }
#clientView .clv-drawer-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid rgba(13,45,94,.1); flex-shrink:0; }
#clientView .clv-drawer-head h3{ margin:0; font-size:16px; font-weight:700; color:#0d2d5e; font-family:Sora,Inter,sans-serif; }
#clientView .clv-drawer-close{ width:34px; height:34px; border-radius:9px; border:1px solid rgba(13,45,94,.12); background:#fff; color:#0d2d5e; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
#clientView .clv-drawer-close:hover{ background:#f1f5f9; }
#clientView .clv-drawer-body{ flex:1; overflow-y:auto; padding:16px 20px 28px; }
#clientView .clv-drawer-body .tab-panel{ display:block !important; animation:none !important; }
#clientView .clv-drawer-body input, #clientView .clv-drawer-body textarea, #clientView .clv-drawer-body select{ max-width:100%; box-sizing:border-box; }

@media(min-width:901px){
  #clientView .clv-side-foot .clv-ico-only{
    width:40px !important; min-width:40px; height:40px; padding:0 !important; justify-content:center !important; align-items:center;
    border-radius:10px; gap:0 !important; position:relative; flex:0 0 auto; cursor:pointer;
    background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.16) !important; color:rgba(255,255,255,.9) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12); transition:background .15s, transform .15s, box-shadow .15s;
  }
  #clientView .clv-side-foot .clv-ico-only:hover{ background:rgba(255,255,255,.16) !important; transform:translateY(-1px); }
  #clientView .clv-side-foot .clv-ico-only span:not(.msg-badge){ display:none !important; }
  #clientView .clv-side-foot .clv-ico-only svg{ width:18px !important; height:18px !important; fill:none !important; stroke:#F97316 !important; stroke-width:1.9; }
  #clientView .clv-side-foot .clv-ico-only .msg-badge{ position:absolute; top:-4px; right:-4px; margin:0 !important; min-width:16px; height:16px; padding:0 4px; display:flex; align-items:center; justify-content:center; font-size:9px; line-height:1; }
}

/* ══════════════════════════════════════════════════════════════════
   COMPTABILITÉ — COCKPIT (refonte 2026-06-04, variante A)
   Héro navy solde+comptes · KPI · cash-flow SVG · liste tx · donut
   ══════════════════════════════════════════════════════════════════ */
.fc-hero{background:linear-gradient(120deg,var(--navy-900,#0a2249) 0%,var(--navy-800,#0d2d5e) 55%,var(--navy-700,#143b78) 100%);border-radius:var(--r-xl,18px);padding:24px 28px;color:#fff;position:relative;overflow:hidden;box-shadow:0 14px 38px rgba(13,45,94,.28);margin-bottom:16px;}
.fc-hero::after{content:"";position:absolute;right:-80px;top:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.22),transparent 65%);pointer-events:none;}
.fc-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;position:relative;z-index:1;}
.fc-hero h1{font-size:17px;font-weight:700;letter-spacing:-.01em;color:#fff;}
.fc-sync{font-size:11px;color:rgba(255,255,255,.55);margin-top:3px;}
.fc-hero-actions{display:flex;gap:8px;flex-wrap:wrap;}
.fc-hero-actions .btn-ghost-v2{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff;}
.fc-hero-actions .btn-ghost-v2:hover{background:rgba(255,255,255,.18);}
.fc-hero-actions .nx-discreet-btn{color:#fff !important;}
body.nx-discreet .fc-hero-actions .nx-discreet-btn{color:#ffb27a !important;border-color:rgba(249,115,22,.6) !important;background:rgba(249,115,22,.16) !important;}
.fc-hero-balance{display:flex;align-items:flex-end;gap:34px;margin-top:16px;flex-wrap:wrap;position:relative;z-index:1;}
.fc-bal-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55);font-weight:600;}
.fc-bal-value{font-size:38px;font-weight:800;letter-spacing:-.03em;margin-top:4px;font-variant-numeric:tabular-nums;}
.fc-bal-delta{font-size:12px;font-weight:600;margin-top:4px;color:#86efac;}
.fc-bal-delta.neg{color:#fca5a5;}
.fc-spark svg{display:block;opacity:.9;}
.fc-accounts{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;position:relative;z-index:1;}
.fc-acct{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:12px;padding:10px 16px;cursor:pointer;transition:all .15s;min-width:170px;}
.fc-acct:hover{background:rgba(255,255,255,.16);}
.fc-acct.sel{background:rgba(255,255,255,.16);border-color:var(--coral-500,#F97316);box-shadow:0 0 0 1px var(--coral-500,#F97316);}
.fc-acct .n{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.8);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.fc-acct .n .tag{font-size:9px;background:rgba(255,255,255,.18);padding:1px 7px;border-radius:999px;}
.fc-acct .v{font-size:17px;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums;}
.fc-acct .i{font-size:9.5px;color:rgba(255,255,255,.4);margin-top:2px;letter-spacing:.04em;}
.fc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;}
.fc-kpi{background:#fff;border:1px solid var(--ink-100,#f1f5f9);border-radius:var(--r-lg,16px);padding:16px 18px;box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.04));}
.fc-kpi .ico{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.fc-kpi .ico svg{width:15px;height:15px;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.fc-kpi .ico.g{background:#DCFCE7;}.fc-kpi .ico.g svg{stroke:var(--green-600,#16A34A);}
.fc-kpi .ico.r{background:#FEE2E2;}.fc-kpi .ico.r svg{stroke:#DC2626;}
.fc-kpi .ico.n{background:var(--navy-50,#eff5fc);}.fc-kpi .ico.n svg{stroke:var(--navy-700,#143b78);}
.fc-kpi .ico.c{background:var(--coral-50,#fff7ed);}.fc-kpi .ico.c svg{stroke:var(--coral-600,#EA580C);}
.fc-kpi .l{font-size:11px;font-weight:600;color:var(--ink-500,#64748b);text-transform:uppercase;letter-spacing:.06em;}
.fc-kpi .v{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:3px;font-variant-numeric:tabular-nums;color:var(--ink-900,#0f172a);}
.fc-kpi .v.pos{color:var(--green-600,#16A34A);}
.fc-kpi .v.neg{color:#DC2626;}
.fc-kpi .v.warn{color:var(--coral-600,#EA580C);}
.fc-kpi .s{font-size:11px;color:var(--ink-400,#94a3b8);margin-top:3px;}
.fc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;}
.fc-col{display:flex;flex-direction:column;gap:16px;min-width:0;}
.fc-col .card{margin-bottom:0;}
.fc-legend{display:inline-flex;gap:14px;font-size:11px;color:var(--ink-500,#64748b);font-weight:600;text-transform:none;letter-spacing:0;}
.fc-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;}
.fc-cashflow svg{display:block;width:100%;height:auto;}
.fc-count-chip{font-size:10.5px;font-weight:600;background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);padding:3px 9px;border-radius:999px;text-transform:none;letter-spacing:0;}
.fc-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.fc-seg{display:inline-flex;background:var(--ink-100,#f1f5f9);border-radius:10px;padding:3px;gap:2px;}
.fc-seg button{border:none;background:transparent;padding:6px 13px;border-radius:8px;font-size:12px;font-weight:600;color:var(--ink-500,#64748b);cursor:pointer;font-family:inherit;transition:all .15s;}
.fc-seg button.active{background:#fff;color:var(--navy-800,#0d2d5e);box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.08));}
.fc-select{font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-700,#334155);border:1px solid var(--ink-200,#e2e8f0);border-radius:9px;padding:7px 10px;background:#fff;cursor:pointer;outline:none;max-width:200px;}
/* min-width calé sur le texte d'invite le plus long (« Rechercher une transaction… ») :
   a 170px il etait tronque des que la barre d'outils se repliait. min() garde le
   champ dans l'ecran sur telephone. */
.fc-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ink-200,#e2e8f0);border-radius:10px;padding:0 12px;flex:1;min-width:min(250px,100%);}
.fc-search svg{width:14px;height:14px;stroke:var(--ink-400,#94a3b8);stroke-width:2;fill:none;flex-shrink:0;}
.fc-search input{border:none;outline:none;font-family:inherit;font-size:12.5px;padding:8px 0;flex:1;min-width:0;background:transparent;color:var(--ink-900,#0f172a);}
.fc-pill-btn{background:#fff;border:1px solid var(--ink-200,#e2e8f0);border-radius:999px;padding:6px 13px;font-size:11.5px;font-weight:600;color:var(--ink-500,#64748b);cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.fc-pill-btn:hover{border-color:var(--ink-400,#94a3b8);color:var(--ink-900,#0f172a);}
.fc-pill-btn.coral{background:var(--coral-50,#fff7ed);border-color:#fed7aa;color:var(--coral-600,#EA580C);text-transform:none;letter-spacing:0;}
.fc-tx-line{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--ink-50,#f8fafc);}
.fc-tx-line:last-child{border-bottom:none;}
.fc-tx-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fc-tx-ico.in{background:#DCFCE7;color:var(--green-600,#16A34A);}
.fc-tx-ico.out{background:#FEE2E2;color:#DC2626;}
.fc-tx-ico.int{background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);}
.fc-tx-ico svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.fc-tx-body{flex:1;min-width:0;}
.fc-tx-t{font-size:13px;font-weight:600;color:var(--ink-900,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-tx-s{font-size:11px;color:var(--ink-400,#94a3b8);margin-top:2px;}
.fc-tx-amt{text-align:right;font-size:13.5px;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700;}
.fc-tx-amt.in{color:var(--green-600,#16A34A);}
.fc-tx-amt.out{color:var(--ink-900,#0f172a);font-weight:600;}
.fc-tx-st{font-size:10px;margin-top:2px;text-align:right;color:var(--ink-400,#94a3b8);}
.fc-tx-st.warn{color:#e65100;}
.fc-tx-st.bad{color:#c62828;}
.fc-donut-wrap{display:flex;align-items:center;gap:16px;}
.fc-donut-wrap svg{flex-shrink:0;}
.fc-donut-legend{flex:1;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--ink-700,#334155);min-width:0;}
.fc-dl-row{display:flex;align-items:center;gap:8px;}
.fc-dl-row i{width:9px;height:9px;border-radius:3px;flex-shrink:0;}
.fc-dl-row .n{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-dl-row .n span{color:var(--ink-400,#94a3b8);}
.fc-dl-row .v{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;}
.fc-rap{font-size:12px;color:var(--ink-500,#64748b);}
.fc-rap-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px dashed var(--ink-200,#e2e8f0);border-radius:12px;margin-bottom:8px;background:var(--ink-50,#f8fafc);}
.fc-rap-row.ok{border-style:solid;border-color:#d7ecd9;background:#f4faf4;}
.fc-rap-row .b{flex:1;min-width:0;}
.fc-rap-row .t{font-size:12px;font-weight:600;color:var(--ink-900,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-rap-row .s{font-size:10.5px;color:var(--ink-500,#64748b);margin-top:1px;}
.fc-rap-row .amt{font-size:12px;font-weight:700;color:var(--green-600,#16A34A);white-space:nowrap;font-variant-numeric:tabular-nums;}
.fc-rap-sum{font-size:11px;color:var(--ink-400,#94a3b8);margin-top:10px;}
#fact-internal-info{margin-bottom:6px;}
#fact-internal-info .chip-int{display:inline-flex;font-size:10.5px;font-weight:600;background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);padding:3px 9px;border-radius:999px;}
@media (max-width:1100px){.fc-grid{grid-template-columns:1fr;}}
@media (max-width:880px){.fc-kpis{grid-template-columns:repeat(2,1fr);}.fc-hero{padding:20px;}.fc-bal-value{font-size:30px;}.fc-spark{display:none;}.fc-acct{flex:1;min-width:140px;}}
@media (max-width:480px){.fc-kpis{grid-template-columns:repeat(2,1fr);gap:10px;}.fc-kpi{padding:13px 14px;}.fc-kpi .v{font-size:18px;}}
/* ── Rapprochement manuel paiement ↔ dossier ── */
.fc-tx-t{display:flex;align-items:center;gap:8px;min-width:0;}
.fc-tx-t .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.fc-link-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--navy-50,#eff5fc);color:var(--navy-700,#143b78);border:1px solid var(--navy-100,#dbeafe);cursor:pointer;flex-shrink:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all .15s;}
.fc-link-chip:hover{background:#fee2e2;color:#c62828;border-color:#fecaca;}
.fc-link-chip.ignored{background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);border-color:var(--ink-200,#e2e8f0);}
.fc-link-chip.ignored:hover{background:var(--navy-50,#eff5fc);color:var(--navy-700,#143b78);border-color:var(--navy-100,#dbeafe);}
.fc-rap-act.mute{background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);}
.fc-rap-act.mute:hover{background:var(--ink-200,#e2e8f0);color:var(--ink-700,#334155);}
.fc-link-chip svg{width:10px;height:10px;stroke:currentColor;stroke-width:2.4;fill:none;flex-shrink:0;}
.fc-link-add{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--coral-50,#fff7ed);color:var(--coral-600,#EA580C);border:1px dashed #fdba74;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:all .15s;}
.fc-link-add:hover{background:#ffedd5;}
/* ── Catégorisation des transactions (CA / charge / TVA / interne / hors) ── */
.fc-cat-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;cursor:pointer;flex-shrink:0;white-space:nowrap;border:1px solid;transition:filter .15s;}
.fc-cat-chip:hover{filter:brightness(.94);}
.fc-cat-chip.auto{border-style:dashed;}
.fc-cat-chip.auto::after{content:"· auto";font-weight:600;opacity:.65;margin-left:2px;}
@media (max-width:768px){.fc-tx-t{flex-wrap:wrap;}}
#fc-resultat-card .fcr-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--coral-50,#fff7ed);color:var(--coral-600,#EA580C);border:1px dashed #fdba74;cursor:pointer;white-space:nowrap;}
#fc-resultat-card .fcr-chip:hover{background:#ffedd5;}
.fcr-rows{display:flex;flex-direction:column;}
.fcr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px dashed var(--ink-100,#f1f5f9);}
.fcr-row:last-child{border-bottom:none;}
.fcr-row .l{font-size:12.5px;font-weight:600;color:var(--ink-700,#334155);display:flex;flex-direction:column;min-width:0;}
.fcr-row .l span{font-size:10.5px;font-weight:500;color:var(--ink-400,#94a3b8);margin-top:1px;}
.fcr-row .v{font-size:14.5px;font-weight:800;color:var(--ink-900,#0f172a);white-space:nowrap;}
.fcr-row .v.pos{color:#15803d;}
.fcr-row .v.neg{color:#c62828;}
.fcr-row.main{background:#f8fafc;border:1px solid var(--ink-100,#f1f5f9);border-radius:10px;padding:10px 12px;margin:4px 0;}
.fcr-row.main .v{font-size:18px;}
.fcr-note{font-size:11px;color:var(--ink-400,#94a3b8);line-height:1.5;margin-top:10px;}
.fc-cat-note{font-size:12px;color:var(--ink-500,#64748b);background:#f8fafc;border:1px solid #eef2f8;border-radius:9px;padding:9px 11px;line-height:1.55;margin-bottom:12px;}
.fc-cat-opts{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.fc-cat-opt{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--ink-100,#f1f5f9);border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-800,#1e293b);transition:all .12s;}
.fc-cat-opt:hover{border-color:#cbd5e1;background:#f8fafc;}
.fc-cat-opt input{accent-color:var(--coral-500,#F97316);margin:0;flex-shrink:0;}
.fc-cat-opt i{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
.fc-cat-vat{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;}
.fc-cat-vat .t{font-weight:600;color:var(--ink-700,#334155);}
.fc-cat-vat .s{width:100%;font-size:10.5px;color:var(--ink-400,#94a3b8);}
.fc-cat-vopt{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--ink-200,#e2e8f0);border-radius:999px;cursor:pointer;font-weight:600;color:var(--ink-700,#334155);}
.fc-cat-vopt input{accent-color:var(--coral-500,#F97316);margin:0;}
#fc-uncat-btn.active{background:var(--coral-500,#F97316);color:#fff;border-color:var(--coral-500,#F97316);}
.fc-dos-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--ink-100,#f1f5f9);border-radius:11px;margin-bottom:8px;cursor:pointer;transition:all .12s;}
.fc-dos-row:hover{border-color:var(--coral-500,#F97316);background:var(--coral-50,#fff7ed);}
.fc-dos-row .av{width:32px;height:32px;border-radius:9px;background:var(--navy-50,#eff5fc);color:var(--navy-700,#143b78);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;}
.fc-dos-row .b{flex:1;min-width:0;}
.fc-dos-row .t{font-size:12.5px;font-weight:600;color:var(--ink-900,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-dos-row .s{font-size:10.5px;color:var(--ink-400,#94a3b8);margin-top:1px;}
.fc-dos-sug{font-size:9px;font-weight:700;background:#DCFCE7;color:#15803d;padding:2px 8px;border-radius:999px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em;}
.fc-rap-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.fc-rap-chips .chip-s{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:999px;}
.fc-rap-chips .chip-s.ok{background:#DCFCE7;color:#15803d;}
.fc-rap-chips .chip-s.todo{background:var(--coral-50,#fff7ed);color:var(--coral-600,#EA580C);}
.fc-rap-chips .chip-s.tot{background:var(--ink-100,#f1f5f9);color:var(--ink-500,#64748b);}
.fc-rap-act{font-size:10px;font-weight:700;border:none;border-radius:999px;padding:4px 10px;cursor:pointer;font-family:inherit;flex-shrink:0;}
.fc-rap-act.link{background:var(--coral-500,#F97316);color:#fff;}
.fc-rap-act.link:hover{background:var(--coral-600,#EA580C);}
.fc-rap-act.confirm{background:#DCFCE7;color:#15803d;}
.fc-rap-act.confirm:hover{background:#bbf7d0;}
/* ── Honoraires auditeurs ── */
.ap-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--ink-50,#f8fafc);flex-wrap:wrap;}
.ap-row:last-child{border-bottom:none;}
.ap-date{font-size:11px;color:var(--ink-400,#94a3b8);width:72px;flex-shrink:0;font-weight:600;}
.ap-body{flex:1;min-width:180px;}
.ap-org{font-size:13px;font-weight:600;color:var(--ink-900,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ap-sub{font-size:11px;color:var(--ink-400,#94a3b8);margin-top:1px;}
.ap-amt{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.ap-amt input{width:78px;padding:5px 8px;border:1px solid var(--ink-200,#e2e8f0);border-radius:8px;font-size:12px;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;outline:none;color:var(--ink-900,#0f172a);background:#fff;}
.ap-amt input:focus{border-color:var(--coral-500,#F97316);}
.ap-amt .cur{font-size:11px;color:var(--ink-400,#94a3b8);font-weight:600;}
.ap-seg{display:inline-flex;background:var(--ink-100,#f1f5f9);border-radius:9px;padding:2px;gap:2px;flex-shrink:0;}
.ap-seg button{border:none;background:transparent;padding:5px 10px;border-radius:7px;font-size:10.5px;font-weight:700;color:var(--ink-400,#94a3b8);cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.ap-seg button:hover{color:var(--ink-700,#334155);}
.ap-seg button.on-attente{background:#fffbeb;color:#b45309;box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.08));}
.ap-seg button.on-facture{background:var(--navy-50,#eff5fc);color:var(--navy-700,#143b78);box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.08));}
.ap-seg button.on-paye{background:#DCFCE7;color:#15803d;box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.08));}
.ap-chip-aud{font-size:10px;color:var(--ink-500,#64748b);background:var(--ink-50,#f8fafc);border:1px solid var(--ink-100,#f1f5f9);padding:1px 8px;border-radius:999px;font-weight:600;}
.ap-profit{font-size:10.5px;margin-top:2px;font-variant-numeric:tabular-nums;color:var(--ink-500,#64748b);}
.ap-profit b.pos{color:var(--green-600,#16A34A);}
.ap-profit b.neg{color:#DC2626;}
/* ══ Honoraires & factures auditeurs — lignes fusionnées .apx-* (20/08/2026) ══
   Anatomie : tuile de date (multi-jours intégré) + état dessous · dossier ·
   champs À LIBELLÉ alignés (Montant / Facture / Déposée le / Paiement /
   Payée le) · actions empilées. */
#fc-audpay-card .apx-list{margin-top:2px;}
.apx-row{display:flex;align-items:center;gap:22px;padding:16px 8px;border-bottom:1px solid #f1f4f9;border-radius:10px;}
.apx-row:last-child{border-bottom:none;}
.apx-row:hover{background:#fafcff;}
.apx-when{flex:0 0 76px;text-align:center;}
.apx-tile{width:58px;margin:0 auto;border-radius:11px;padding:6px 0 5px;background:linear-gradient(135deg,#0d2d5e,#1e4e8c);color:#fff;box-shadow:0 2px 6px rgba(13,45,94,.18);}
.apx-av .apx-tile{background:#eaf2fe;color:#1e40af;border:1px solid #d5e4fa;box-shadow:none;padding:5px 0 4px;}
.apx-tile .dd{display:block;font-size:15px;font-weight:800;line-height:1.15;letter-spacing:.01em;white-space:nowrap;}
.apx-tile .mm{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;opacity:.85;}
.apx-tile .yy{display:block;font-size:8.5px;font-weight:600;opacity:.6;margin-top:1px;}
.apx-j2{font-size:9.5px;color:#8593ab;font-weight:700;margin-top:3px;}
.apx-st{margin-top:4px;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.apx-st.fait{color:#15803d;}
.apx-st.prog{color:#1e40af;}
.apx-body{flex:1 1 200px;min-width:170px;}
.apx-org{font-size:13.5px;font-weight:700;color:var(--ink-900,#0f172a);}
.apx-org[onclick]{cursor:pointer;}
.apx-org[onclick]:hover{color:#0d2d5e;text-decoration:underline;text-underline-offset:3px;}
.apx-meta{font-size:11.5px;color:var(--ink-400,#94a3b8);margin-top:2px;}
.apx-aud{font-size:10px;color:var(--ink-500,#64748b);background:var(--ink-50,#f8fafc);border:1px solid var(--ink-100,#f1f5f9);padding:1px 8px;border-radius:999px;font-weight:600;white-space:nowrap;}
.apx-tarif{font-size:10px;color:#8593ab;font-weight:700;white-space:nowrap;}
.apx-tag{display:inline-block;margin-top:3px;font-size:9.5px;font-weight:700;color:#9ca3af;background:#f4f6fb;border-radius:999px;padding:1px 8px;}
.apx-fields{display:flex;gap:26px;align-items:flex-start;flex:0 0 auto;}
.apx-f{display:flex;flex-direction:column;}
.apx-f label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9aa5ba;margin:0 0 4px 1px;}
.apx-f .ap-amt input{height:32px;width:92px;box-sizing:border-box;}
.apx-f small{font-size:9.5px;color:#b3bccc;margin-top:3px;font-weight:600;}
.apx-f-fact{min-width:128px;}
.apx-pdf{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:8px;background:#fff4ec;color:#EA580C;font-size:12px;font-weight:700;text-decoration:none;border:1px solid #ffe1cc;width:max-content;box-sizing:border-box;}
.apx-pdf:hover{background:#ffe9d9;}
.apx-pdf svg{width:13px;height:13px;flex:none;}
.apx-join{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;background:#fff;color:#B45309;border:1.5px dashed #FDBA74;border-radius:8px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;width:max-content;box-sizing:border-box;}
.apx-join:hover{background:#fff9f2;}
.apx-join svg{width:13px;height:13px;flex:none;}
.apx-fs{display:block;margin-top:3px;font-size:9.5px;font-weight:800;letter-spacing:.03em;}
.apx-fs.val{color:#EA580C;}
.apx-fs.ok2{color:#143B78;}
.apx-fs.no{color:#D14343;}
.apx-fs.adm{color:#9ca3af;font-weight:600;}
.apx-f-paie{min-width:198px;}
.apx-f-paie .ap-seg{height:32px;align-items:center;box-sizing:border-box;width:max-content;}
.apx-vr{display:flex;gap:6px;margin-top:7px;}
.apx-vr .apx-btn{flex:1 1 0;text-align:center;height:30px;padding:0 10px;}
.apx-btn{border:0;border-radius:8px;padding:7px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s;}
.apx-btn.ok{background:#E5F5EE;color:#128A5E;}
.apx-btn.ok:hover{background:#d3eee0;}
.apx-btn.no{background:#FBECEC;color:#D14343;}
.apx-btn.no:hover{background:#f6dbdb;}
.apx-btn.pay{background:#0d2d5e;color:#fff;}
.apx-btn.pay:hover{background:#143b78;}
@media (max-width:1250px){
  .apx-row{flex-wrap:wrap;row-gap:12px;}
  .apx-body{flex:1 1 calc(100% - 320px);}
  .apx-fields{flex:1 1 100%;order:3;padding-left:98px;flex-wrap:wrap;row-gap:12px;}
}
@media (max-width:680px){
  .apx-row{gap:12px;}
  .apx-fields{padding-left:0;gap:18px;}
  .apx-when{flex-basis:74px;}
  .apx-st{letter-spacing:.02em;}
  .apx-body{flex:1 1 calc(100% - 100px);}
}
.fc-kpi .ico.vi{background:#f5f3ff;}
.fc-kpi .ico.vi svg{stroke:#7C3AED;}
/* ── Prévision de trésorerie (footer cash-flow) ── */
.fc-forecast{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--ink-100,#f1f5f9);}
.fc-forecast:empty{display:none;}
.fc-fct{background:var(--ink-50,#f8fafc);border:1px solid var(--ink-100,#f1f5f9);border-radius:12px;padding:11px 14px;}
.fc-fct .h{font-size:10px;font-weight:700;color:var(--ink-400,#94a3b8);text-transform:uppercase;letter-spacing:.06em;}
.fc-fct .v{font-size:17px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums;color:var(--navy-900,#0a2249);}
.fc-fct .v.neg{color:#DC2626;}
.fc-fct .s{font-size:10px;color:var(--ink-400,#94a3b8);margin-top:2px;font-variant-numeric:tabular-nums;}
.fc-fct-note{grid-column:1/-1;font-size:10px;color:var(--ink-400,#94a3b8);}
body.nx-discreet #fc-forecast{filter:blur(7px) !important;user-select:none !important;}
/* ── Encaissements & relances ── */
.fc-dso-row{display:flex;align-items:baseline;gap:8px;}
.fc-dso-row .v{font-size:22px;font-weight:800;color:var(--navy-900,#0a2249);font-variant-numeric:tabular-nums;}
.fc-dso-row .u{font-size:11px;color:var(--ink-400,#94a3b8);font-weight:600;}
.fc-dso-sub{font-size:10.5px;color:var(--ink-400,#94a3b8);margin-top:2px;}
.fc-late-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--ink-50,#f8fafc);}
.fc-late-row:last-child{border-bottom:none;}
.fc-late-row .b{flex:1;min-width:0;}
.fc-late-row .t{font-size:12px;font-weight:600;color:var(--ink-900,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-late-row .s{font-size:10.5px;color:var(--ink-400,#94a3b8);margin-top:1px;}
.fc-late-row .amt{font-size:12px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;}
.fc-late-row .late{font-size:10px;font-weight:700;color:#DC2626;background:var(--red-50,#fef2f2);padding:2px 8px;border-radius:999px;white-space:nowrap;}
body.nx-discreet #fc-dso,body.nx-discreet #fc-late-list{filter:blur(7px) !important;user-select:none !important;}
/* ── Vue analytique honoraires ── */
.ap-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.ap-tbl th{text-align:right;font-size:10px;font-weight:700;color:var(--ink-400,#94a3b8);text-transform:uppercase;letter-spacing:.06em;padding:7px 10px;border-bottom:1px solid var(--ink-100,#f1f5f9);}
.ap-tbl th:first-child{text-align:left;}
.ap-tbl td{padding:9px 10px;border-bottom:1px solid var(--ink-50,#f8fafc);text-align:right;font-variant-numeric:tabular-nums;}
.ap-tbl td:first-child{text-align:left;font-weight:600;color:var(--ink-900,#0f172a);}
.ap-tbl tr:hover td{background:var(--ink-50,#f8fafc);}
.ap-tbl .pos{color:var(--green-600,#16A34A);font-weight:700;}
.ap-tbl .neg{color:#DC2626;font-weight:700;}
.ap-tbl .mut{color:var(--ink-400,#94a3b8);}
body.nx-discreet #fc-audpay-card .ap-amt,body.nx-discreet #ap-kpis{filter:blur(7px) !important;user-select:none !important;}
body.nx-discreet #fc-audpay-card .apx-tarif,body.nx-discreet #fc-audpay-card .apx-f-mont small{filter:blur(7px) !important;user-select:none !important;}
/* chip paiement côté espace auditeur (lecture seule) */
.aud-pay-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 9px;border-radius:999px;margin-left:6px;white-space:nowrap;}
.aud-pay-chip.attente{background:#fffbeb;color:#b45309;}
.aud-pay-chip.facture{background:#eff5fc;color:#143b78;}
.aud-pay-chip.paye{background:#DCFCE7;color:#15803d;}
@media (max-width:680px){.ap-row{gap:8px;}.ap-date{width:auto;}.ap-seg{margin-left:auto;}}

  /* Mode discrétion : floute les chiffres sensibles (toggle œil) */
  .nx-discreet-btn .nx-eye-off{display:none}
  body.nx-discreet .nx-discreet-btn .nx-eye-on{display:none}
  body.nx-discreet .nx-discreet-btn .nx-eye-off{display:inline-block}
  body.nx-discreet .nx-discreet-btn{ color:#EA580C !important; border-color:#ffd9bf !important; background:#fff3ea !important; }
  body.nx-discreet #dash-ca-total,
  body.nx-discreet #dash-chart-ca,
  body.nx-discreet #dash-dem-total,
  body.nx-discreet #dash-chart-dem,
  body.nx-discreet #kpi-demandes,
  body.nx-discreet #dashboard-activity .tl .t span,
  body.nx-discreet #fact-accounts-row,
  body.nx-discreet #f-sol,
  body.nx-discreet #f-enc,
  body.nx-discreet #f-dep,
  body.nx-discreet #f-net,
  body.nx-discreet #f-impayes,
  body.nx-discreet #fc-sol-delta,
  body.nx-discreet #fc-spark,
  body.nx-discreet #fc-cashflow,
  body.nx-discreet #fc-donut-wrap,
  body.nx-discreet #fact-account-info,
  body.nx-discreet #dash-profit-kpis .fc-kpi .v,
  body.nx-discreet #dash-profit-kpis .fc-kpi .s,
  body.nx-discreet #fc-audpay-card .ap-profit,
  body.nx-discreet #fc-resultat-card .fcr-row .v,
  body.nx-discreet #fc-resultat-card .fcr-row .l span,
  body.nx-discreet #f-enc-sub,
  body.nx-discreet #f-dep-sub,
  body.nx-discreet #f-net-sub,
  body.nx-discreet #dash-brief .bf-items,
  body.nx-discreet #dash-brief .bf-sum{
    filter:blur(7px) !important; -webkit-filter:blur(7px) !important;
    user-select:none !important; transition:filter .18s ease;
  }

/* ══════════════════════════════════════════════════════════════════
   NEXUS — OPTIMISATION MOBILE / "APP" · 2026-06-03
   Bloc additif chargé en dernier (priorité max sur le cascade).
   Cible le téléphone (≤768px) pour un rendu type application installée.
   ══════════════════════════════════════════════════════════════════ */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }

@media (max-width:768px){
  /* — Confort iOS / mode standalone (Ajouter à l'écran d'accueil) — */
  html, body { max-width:100%; }
  body.admin-mode { overflow-x:hidden; }            /* pas de scroll horizontal de page */
  img, video { max-width:100%; height:auto; }

  /* Barre de nav basse : on dégage la zone home-indicator (encoche iPhone) */
  body.admin-mode .main { padding-bottom: calc(60px + env(safe-area-inset-bottom)) !important; }

  /* Inertie de défilement + cibles tactiles plus généreuses */
  .card, .pill-tabs, .params-side, [id$="-list"] { -webkit-overflow-scrolling:touch; }
  .icon-btn, .fb, .btn-ghost-v2, .pill-tab, .params-tab { min-height:38px; }
}

/* ——— 1) Bandes d'onglets horizontales (SMQ : Documents…Archives) ———
   .pill-tabs était inline-flex sans gestion du débordement → dernier onglet coupé. */
@media (max-width:768px){
  .pill-tabs{
    display:flex !important; max-width:100%; flex-wrap:nowrap;
    overflow-x:auto; scroll-snap-type:x proximity; scroll-padding-left:4px;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  .pill-tabs::-webkit-scrollbar{ display:none; }
  .pill-tab{ flex:0 0 auto; scroll-snap-align:start; white-space:nowrap; }
  .pill-tabs::after{ content:""; flex:0 0 6px; }   /* respiration en fin de bande */
}

/* ——— 2) En-tête de fiche (Demande / Dossier) ———
   Avant : les actions (Planifier un audit + Générer) débordaient et se chevauchaient. */
@media (max-width:768px){
  .detail-head{ flex-direction:column; gap:14px; padding:16px !important; }
  .detail-head .big-org{ width:56px; height:56px; font-size:18px; border-radius:14px; }
  .detail-head .dh-main h2{ font-size:18px; }
  .detail-head .dh-meta{ grid-template-columns:1fr; gap:8px; }
  .detail-head .dh-actions{
    width:100%; flex-direction:column; align-items:stretch; gap:8px; flex-shrink:1;
  }
  .detail-head .dh-actions > *{ width:100%; }
  .detail-head .dh-actions button{ width:100%; justify-content:center; }
  /* "Planifier un audit" = <div><select></div> injecté en raw */
  .detail-head .dh-actions > div{ display:block !important; }
  .detail-head .dh-actions select{ width:100% !important; box-sizing:border-box; }
}

/* ——— 3) Messagerie : drill-in type app ———
   Liste plein écran → on tape un client → conversation plein écran + bouton retour. */
@media (max-width:768px){
  .mc-split{ flex-direction:column; height:auto !important; gap:0 !important; }
  .mc-list-col{ width:100% !important; height:auto !important; flex-shrink:1 !important; }
  .mc-list-col > .card{ min-height: calc(100vh - 230px); min-height: calc(100dvh - 230px); }
  .mc-chat-col{ display:none !important; }   /* bat le style inline display:flex */
  #mc-back{ display:flex !important; }
  body.mc-chat-open .mc-list-col{ display:none !important; }
  body.mc-chat-open .mc-chat-col{
    display:flex !important;
    height: calc(100vh - 150px); height: calc(100dvh - 150px);
  }
  body.mc-chat-open .mc-chat-col > .card{ flex:1; }
  #mc-chat-input-area input{ font-size:16px !important; } /* évite le zoom auto iOS */
}

/* ——— 4) Paramètres : onglets latéraux → bande horizontale LISIBLE ———
   Avant : labels tronqués (No, A, S…) à cause de flex-shrink + overflow:hidden. */
@media (max-width:880px){
  .params-side{
    gap:6px; padding:8px; scroll-snap-type:x proximity;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  .params-side::-webkit-scrollbar{ display:none; }
  .params-tab{
    flex:0 0 auto !important; overflow:visible !important;
    scroll-snap-align:start; white-space:nowrap;
  }
  .params-tab.active::before{ display:none; } /* la barre latérale n'a pas de sens en rangée */
  .params-tab.active{ box-shadow: inset 0 0 0 1px rgba(249,115,22,.35); }
  .params-side::after{ content:""; flex:0 0 6px; }
}

/* ——— 5) Tableaux larges (Comptabilité…) : scroll horizontal net ———
   Les .card en mode mobile défilent déjà (overflow-x:auto). On garantit que les
   colonnes Montant/Statut restent atteignables sans casser la lecture. */
@media (max-width:768px){
  .tab-content .card > table{ min-width:560px; }
  table th, table td{ white-space:nowrap; }
}

/* ——— 6) Hero d'onglet + barres d'action : empilage propre en mobile ——— */
@media (max-width:768px){
  .tab-hero{ flex-direction:column; align-items:flex-start; gap:12px; }
  .tab-hero-actions{ width:100%; }
  .tab-hero-actions .btn-ghost-v2{ flex:1; justify-content:center; }
}

/* ——— 7) En-tête navy (nx-topnav) SOUS la Dynamic Island / encoche iPhone ———
   Avant : barre à top:8px → ses boutons (menu, recherche, déconnexion) passaient
   sous l'îlot et étaient inaccessibles. On colle la barre au sommet, pleine largeur,
   et on pousse son CONTENU sous la safe-area ; le navy remplit derrière la barre
   d'état → l'heure/batterie (texte blanc) restent lisibles. */
@media (max-width:768px){
  body.nx-topnav #adminView .topbar{
    margin:0 !important;
    top:0 !important;
    border-radius:0 !important;
    border-top:none !important; border-left:none !important; border-right:none !important;
    padding-top: env(safe-area-inset-top) !important;
    min-height: calc(54px + env(safe-area-inset-top)) !important;
  }
}

/* ——— 8) iPad PORTRAIT (769–1024 px) · 2026-06-04 ———
   Les correctifs mobiles ci-dessus s'arrêtent à 768 px, or un iPad en portrait
   fait 810/820/834 px → rien ne s'appliquait :
   a) la barre de menu restait au niveau de la barre d'état iPadOS
      (heure / batterie) en mode PWA black-translucent → on la pousse sous
      la safe-area, comme sur iPhone ;
   b) les onglets SMQ (.pill-tabs) restaient en inline-flex sans retour à la
      ligne → onglets coupés / page à faire défiler. On passe en grille
      multi-lignes : tout est visible d'un coup, sans défilement. */
@media (min-width:769px) and (max-width:1180px) and (orientation:portrait){
  /* a) Barre de menu sous la barre d'état (heure / batterie)
     (plage élargie à 1180px : iPad Pro/Air 13" = 1032px en portrait) */
  body.nx-topnav #adminView .topbar{
    margin:0 !important;
    top:0 !important;
    border-radius:0 !important;
    border-top:none !important; border-left:none !important; border-right:none !important;
    padding-top: calc(env(safe-area-inset-top, 0px) + 4px) !important;
    padding-bottom:4px !important;
    min-height: calc(60px + env(safe-area-inset-top, 0px)) !important;
  }

  /* b) Onglets SMQ : grille multi-lignes, tout visible sans défilement */
  #smq-subtabs.pill-tabs{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:6px;
    padding:6px;
    width:100%;
    overflow:visible;
  }
  #smq-subtabs .pill-tab{
    justify-content:center;
    white-space:nowrap;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    padding:10px 10px;
    font-size:12.5px;
    border:1px solid var(--border);
    border-radius:10px;
  }
  #smq-subtabs .pill-tab.active{ border-color:var(--navy-800); }
  #smq-subtabs .pill-tab .ico{ flex-shrink:0; }
}

/* ══════════════════════════════════════════════════════════════════
   NEXUS — PASS iPad PORTRAIT COMPLET · 2026-07-17
   Plage : 769–1180px en orientation portrait (iPad 810/820/834/1024).
   Bloc additif chargé en dernier (priorité cascade maximale).
   Règle d'or : AUCUN défilement horizontal — tout tient dans la
   largeur, défilement vertical uniquement. Confort tactile ≥44px.
   ══════════════════════════════════════════════════════════════════ */
@media (min-width:769px) and (max-width:1180px) and (orientation:portrait){

  /* ── 0) Garde-fous globaux : interdiction du scroll horizontal ── */
  html, body{ max-width:100vw; }
  body.admin-mode{ overflow-x:hidden; }
  #adminView .main{ overflow-x:clip; }
  #adminView .tab-content{ max-width:100%; min-width:0; }
  #adminView .card{ max-width:100%; min-width:0; }
  #adminView img, #adminView video, #adminView canvas{ max-width:100%; height:auto; }

  /* ── 1) Confort tactile ── */
  #adminView .fb, #adminView .btn-ghost-v2, #adminView .icon-btn,
  #adminView .pill-tab, #adminView .params-tab, #adminView .link,
  #adminView .fsel{ min-height:44px; }
  #adminView .fb, #adminView .btn-ghost-v2{ padding-top:10px; padding-bottom:10px; }
  #adminView table .fb, #adminView table .icon-btn{ min-height:38px; } /* dans les lignes : compact */
  /* Anti-zoom iOS au focus : police ≥16px sur les champs */
  #adminView input[type="text"], #adminView input[type="search"],
  #adminView input[type="email"], #adminView input[type="number"],
  #adminView input[type="date"], #adminView input[type="tel"],
  #adminView select, #adminView textarea{ font-size:16px; }
  /* Défilement tactile fluide partout */
  #adminView .card, #adminView [id$="-list"], #adminView .nx2-scroll{ -webkit-overflow-scrolling:touch; }
  /* Actions révélées au survol : toujours visibles au doigt */
  #adminView .smq-doctable .smq-dt-act{ opacity:1 !important; }

  /* ── 2) Panneaux détail plein écran sous la barre ── */
  body.nx-topnav #dos-slide, body.nx-topnav #aud-slide{
    left:0 !important; right:0 !important;
    top:calc(60px + env(safe-area-inset-top, 0px) + 8px) !important;
  }

  /* ── 3) En-têtes d'onglets : titre + actions qui s'empilent proprement ── */
  #adminView .tab-hero{ flex-wrap:wrap; gap:12px; }
  #adminView .tab-hero-actions{ flex-wrap:wrap; }

  /* ── 4) TABLES — zéro scroll horizontal ── */
  /* Socle commun nx2 : plus de largeur minimale forcée, cellules qui replient */
  #adminView table.nx2-table{ min-width:0 !important; width:100%; font-size:12.5px; table-layout:auto; }
  #adminView .nx2-table thead th{ white-space:normal; padding:9px 7px; overflow-wrap:break-word; }
  #adminView .nx2-table tbody td{ white-space:normal; padding:8px 7px; overflow-wrap:anywhere; word-break:normal; }
  #adminView .nx2-scroll{ overflow-x:hidden; }
  /* a) Demandes (accueil Dossiers) : Selim veut voir TOUTE la ligne d'un seul coup
        en portrait iPad — donc AUCUNE colonne masquée + table compactée qui tient en
        largeur (table figée, texte tronqué + info-bulle, documents en icônes).
        Zéro scroll horizontal ET vertical caché : les 11 colonnes rentrent. */
  table:has(#ndem-tbody){ table-layout:fixed !important; width:100% !important; font-size:11px !important; }
  #ndem-thead th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; overflow:hidden; font-size:8.7px !important; padding:5px 3px !important; line-height:1.12; text-align:left; }
  #ndem-tbody td{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:9px 4px !important; vertical-align:middle; }
  /* Largeurs par colonne — Responsable (3) + Raison sociale (4) absorbent le reste */
  #ndem-thead th:nth-child(1), #ndem-tbody td:nth-child(1){ width:22px; }
  #ndem-thead th:nth-child(2), #ndem-tbody td:nth-child(2){ width:78px; }
  #ndem-thead th:nth-child(5), #ndem-tbody td:nth-child(5){ width:64px; }
  #ndem-thead th:nth-child(6), #ndem-tbody td:nth-child(6){ width:112px; }
  /* 15/08 : Statut à 112px, pastille multi-ligne (libellés courts côté JS).
     Le Responsable RESTE visible — Selim l'a redemandé après essai sans. */
  #ndem-tbody td:nth-child(6){ white-space:normal; }
  #ndem-thead th:nth-child(7), #ndem-tbody td:nth-child(7),
  #ndem-thead th:nth-child(8), #ndem-tbody td:nth-child(8),
  #ndem-thead th:nth-child(9), #ndem-tbody td:nth-child(9){ width:32px; }
  #ndem-thead th:nth-child(10), #ndem-tbody td:nth-child(10){ width:80px; }
  #ndem-thead th:nth-child(11), #ndem-tbody td:nth-child(11){ width:32px; }
  /* Contenus compactés pour rester lisibles dans les colonnes étroites */
  #ndem-tbody .nx2-dt{ width:100% !important; min-width:0 !important; font-size:10px !important; padding:3px 2px !important; }
  #ndem-tbody .nx2-org{ width:100% !important; min-width:0 !important; font-size:11px !important; padding:3px 4px !important; }
  #ndem-tbody .nx2-resp{ max-width:100%; overflow:hidden; white-space:nowrap; font-size:10px !important; gap:3px; }
  #ndem-tbody .nx2-av{ width:16px !important; height:16px !important; font-size:8px !important; flex:none; }
  /* ⚠️ overflow-wrap:anywhere hérité de la cellule + flex = texte serré au
     minimum, coupé en plein mot (« Conform/e »). Repli par MOTS + césure fr. */
  #ndem-tbody .nx2-pill{ font-size:10px !important; padding:4px 7px !important; gap:3px; max-width:100%; white-space:normal; overflow-wrap:normal; word-break:normal; hyphens:auto; line-height:1.25; text-align:left; }
  #ndem-tbody td:nth-child(5) .nx2-pill .nxtf{ display:none; }
  #ndem-tbody td:nth-child(5) .nx2-pill .nxts{ display:inline; }
  #ndem-tbody .nx2-car{ display:none; }
  #ndem-tbody .nx2-doc{ width:24px !important; height:24px !important; }
  #ndem-tbody .nx2-doc svg{ width:13px !important; height:13px !important; }
  #ndem-tbody .nx2-dw{ justify-content:center; }
  #ndem-tbody td:nth-child(10) > div{ max-width:100% !important; gap:2px !important; }
  /* En-têtes documents SUR UNE SEULE LIGNE (Selim) : nowrap + libellés abrégés
     (Récépissé NDA → NDA, Organigramme → Org.) — uniquement en portrait iPad,
     le libellé complet reste inchangé sur desktop. */
  #ndem-thead th:nth-child(7), #ndem-thead th:nth-child(8), #ndem-thead th:nth-child(9),
  #ndem-thead th:nth-child(10), #ndem-thead th:nth-child(11){ white-space:nowrap !important; overflow-wrap:normal !important; word-break:normal !important; text-align:center; }
  #ndem-thead th:nth-child(8){ font-size:0 !important; }
  #ndem-thead th:nth-child(8)::after{ content:"NDA"; font-size:8.7px; }
  #ndem-thead th:nth-child(11){ font-size:0 !important; }
  #ndem-thead th:nth-child(11)::after{ content:"Org."; font-size:8.7px; }
  /* b) Rapports d'audit : on masque Réception / Type / Date audit */
  #rap-tbody td:nth-child(2), #rap-tbody td:nth-child(6), #rap-tbody td:nth-child(9){ display:none; }
  table:has(#rap-tbody) thead th:nth-child(2),
  table:has(#rap-tbody) thead th:nth-child(6),
  table:has(#rap-tbody) thead th:nth-child(9){ display:none; }
  /* c) Décisions comité — 12/08/2026 : le tableau est passé à 6 colonnes
     (chevron · Date de décision · Organisme · Type · Décision · Décisionnaire)
     après le retrait de « Revue » et « Catégories ». Les index visaient encore
     l'ancienne grille à 10 colonnes (le n°9 ne pointait plus sur rien et le n°2
     masquait la date, devenue colonne de tête). On masque le Décisionnaire, le
     reste tient dans la largeur. */
  #revdec-tbody td:nth-child(6){ display:none; }
  table:has(#revdec-tbody) thead th:nth-child(6){ display:none; }
  /* d) Registre Qualiopi : SIREN masqué, catégories qui replient */
  #dos-sub-registre .rq-table{ font-size:11.5px; }
  #dos-sub-registre .rq-table th, #dos-sub-registre .rq-table td{ padding:7px 6px; white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  #dos-sub-registre .rq-table th:nth-child(3), #dos-sub-registre .rq-table td:nth-child(3){ display:none; }
  /* e) Veille clients + relances + documents SMQ : largeur fluide */
  #adminView .vg-table{ min-width:0 !important; font-size:13px; }
  #adminView .vg-table thead th{ white-space:normal; padding:11px 10px; line-height:1.3; }
  #adminView .vg-table tbody td{ padding:13px 10px; overflow-wrap:anywhere; word-break:normal; line-height:1.5; }
  /* 15/08 (captures iPad Selim) : écritures compactées, trop proches du bord →
     moins de colonnes et plus d'air. Les champs retirés restent dans la fiche
     (un tap sur la ligne). */
  /* Veille réglementaire : date d'enregistrement + fréquence → fiche */
  #vg-table-wrap .vg-table th:nth-child(4), #vg-table-wrap .vg-table td:nth-child(4),
  #vg-table-wrap .vg-table th:nth-child(5), #vg-table-wrap .vg-table td:nth-child(5){ display:none; }
  #vg-table-wrap .vg-table th:nth-child(1), #vg-table-wrap .vg-table td:nth-child(1){ width:44%; }
  #vg-table-wrap .vg-nom{ max-width:none; }
  /* Amélioration qualité : origine + détecté par → fiche, la description respire */
  #paq-table-wrap .vg-table th:nth-child(3), #paq-table-wrap .vg-table td:nth-child(3),
  #paq-table-wrap .vg-table th:nth-child(4), #paq-table-wrap .vg-table td:nth-child(4){ display:none; }
  #paq-table-wrap .vg-table th:nth-child(5), #paq-table-wrap .vg-table td:nth-child(5){ width:52%; }
  #paq-table-wrap .paq-badge{ white-space:nowrap; }
  /* Archivage : le nom du document prend la place, les dates ne se coupent pas */
  #ar-table-wrap .vg-table th:nth-child(1), #ar-table-wrap .vg-table td:nth-child(1){ width:56%; }
  #ar-table-wrap .vg-table td:nth-child(3){ white-space:nowrap; }
  /* Crayon / corbeille : cibles tactiles confortables */
  #adminView .vg-act{ font-size:15px; padding:7px 8px; }
  /* N° de réclamation / dates : jamais coupés verticalement */
  #rec-table-wrap .vg-table td:first-child, #rec-table-wrap .vg-table th:first-child{ white-space:nowrap; }
  /* Réclamations : colonnes Type (redondante avec le n° REC/APP) et Doc masquées
     pour que la table tienne en largeur */
  #rec-table-wrap .vg-table th:nth-child(3), #rec-table-wrap .vg-table td:nth-child(3),
  #rec-table-wrap .vg-table th:nth-child(8), #rec-table-wrap .vg-table td:nth-child(8){ display:none; }
  /* L'objet garde une vraie colonne de lecture (mots entiers) :
     pastilles et n° compactés pour libérer la largeur */
  #rec-table-wrap .vg-table th:nth-child(5), #rec-table-wrap .vg-table td:nth-child(5){ width:32%; }
  #rec-table-wrap .paq-badge{ font-size:10.5px; padding:3px 8px; white-space:nowrap; }
  #rec-table-wrap .vg-table td:first-child{ font-size:12px; }
  #rec-table-wrap .vg-table td{ padding:10px 6px; }
  #adminView .vg-tablecard{ overflow-x:hidden; }
  #adminView .smq-doctable{ min-width:0 !important; }
  #adminView #dos-sub-relances .rc-table td, #adminView #dos-sub-relances .rc-table th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  #adminView #dos-sub-relances .rc-table{ font-size:11.5px; }
  #adminView #dos-sub-relances .rc-table th, #adminView #dos-sub-relances .rc-table td{ padding:7px 6px; }

  /* ── 5) PLANNING : grille fluide sans minimum forcé ── */
  #tab-planning .nxpl-grid{ min-width:0 !important; }
  #tab-planning .nxpl-row{ grid-template-columns:112px minmax(0,1fr); }
  /* 31 jours qui tiennent dans la largeur : les cellules se compriment */
  #tab-planning .nxpl-day{ min-width:0 !important; }
  #tab-planning .nxpl-daynum{ font-size:9.5px; letter-spacing:0; }

  /* ── 5bis) Dossier ouvert : marge haute (le hero était collé tout en haut de
        l'iPad) + rangée d'onglets = vrais boutons encadrés, en 2 lignes ── */
  #dos-slide .nd3-cmdtop{ padding-top: calc(20px + env(safe-area-inset-top, 0px)) !important; }
  #dos-slide .nd3-dsubnav{ flex-wrap:wrap !important; overflow-x:visible !important; }
  #dos-slide .nd3-dsubnav button{ flex:0 1 auto; padding:10px 13px !important; font-size:.82rem; }

  /* ── 6) ÉDITEURS du dossier (cartes) : colonnes empilées ── */
  #nd3-dsub-contrat .ndcon-grid{ grid-template-columns:1fr !important; }
  #nd3-dsub-contrat .ndcon-doc-cols{ grid-template-columns:1fr !important; }
  #adminView .ndcon-t{ min-width:0 !important; }
  #adminView .ndcon-t td, #adminView .ndcon-t th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  #adminView .ndrev-t{ min-width:0 !important; }
  #adminView .ndrev-t td, #adminView .ndrev-t th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  /* La pastille document ne se replie pas : cellule étroite, icône réduite. */
  #adminView .ndinstr-c{ width:38px; padding-left:2px !important; padding-right:2px !important; }
  #adminView .ndinstr-doc{ width:24px; height:24px; }
  #adminView .ndinstr-doc svg{ width:13px; height:13px; }
  #adminView .nd2l, #adminView .nd2l span{ white-space:nowrap !important; }
  #adminView .ndcell-org{ max-width:none; }
  #adminView .ndcell-org .o, #adminView .ndcell-org .s{ white-space:normal; overflow:visible; }
  #nd3-dsub-odm .ndodm-cols{ grid-template-columns:1fr !important; }
  #nd3-dsub-odm .ndodm-top{ grid-template-columns:repeat(2,1fr) !important; }
  #nd3-dsub-rapport .rp-grid{ grid-template-columns:1fr !important; }
  #nd3-dsub-revdec .rdx-grid{ grid-template-columns:1fr !important; }
  /* Modale certificat : formulaire au-dessus, aperçu en dessous */
  #rqCertModal .rqmb{ grid-template-columns:1fr !important; }

  /* ── 7) MESSAGERIE client : liste plus étroite, chat prioritaire ── */
  #tab-msgclient .mc-list-col{ width:236px !important; }

  /* ── 8) Modales : jamais plus larges que l'écran, hauteur confort ── */
  #adminView .modal{ width:min(720px,94vw); max-height:92vh; }

  /* ── 9) Décors qui débordent : blobs clippés dans leur panneau ── */
  #dash-quality-kpis, #cau-section{ overflow:hidden; }

  /* ── 10) Onglets Communication : grille multi-lignes, tout visible
        (même traitement que les onglets SMQ, aucun défilement) ── */
  #comm-subtabs.pill-tabs{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
    gap:6px; padding:6px; width:100%; overflow:visible;
  }
  #comm-subtabs .pill-tab{
    justify-content:center; white-space:nowrap; min-width:0;
    overflow:hidden; text-overflow:ellipsis;
    padding:10px 10px; font-size:12.5px;
    border:1px solid var(--border); border-radius:10px;
  }
  #comm-subtabs .pill-tab.active{ border-color:var(--navy-800); }
  /* Autres bandeaux d'onglets : repli en lignes, jamais de scroll latéral */
  #adminView .pill-tabs{ flex-wrap:wrap; overflow-x:visible; }

  /* ── 11) Paramètres : rail d'onglets qui replie au lieu de défiler ── */
  #adminView .params-side{ flex-wrap:wrap; overflow-x:visible !important; }
  #adminView .params-tab{ flex:0 1 auto; }

  /* ── 12) COMPTA : compte(s) bancaire(s) à droite du solde → cadre bleu plus bas ── */
  #tab-facturation .fc-hero{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(230px,1fr);
    column-gap:20px; align-items:start; padding:18px 20px 16px; }
  #tab-facturation .fc-hero-top{ grid-column:1 / -1; }
  #tab-facturation .fc-hero-balance{ grid-column:1; margin-top:12px; }
  #tab-facturation .fc-accounts{ grid-column:2; grid-row:2; margin-top:12px;
    flex-direction:column; align-items:stretch; gap:8px; }
  #tab-facturation .fc-acct{ min-width:0; }

  /* ── 13) SMQ : boutons de navigation plus aérés (Documents … Entretiens) ── */
  #smq-subtabs.pill-tabs{ gap:10px !important; padding:12px !important; }
  #smq-subtabs .pill-tab{ padding:12px 12px !important; }
  #comm-subtabs.pill-tabs{ gap:10px !important; padding:12px !important; }
  #comm-subtabs .pill-tab{ padding:12px 12px !important; }

  /* ── 14) SMQ : respiration intérieure des panes Réclamations / Archives /
        Amélioration qualité (l'explorer n'a aucun padding par défaut) ── */
  #smq-pane-rec .smq-explorer, #smq-pane-archive .smq-explorer,
  #smq-pane-paq .smq-explorer, #smq-pane-veille .smq-explorer{ padding:20px 22px; }
  /* Barre outils : recherche pleine ligne, actions en dessous — plus rien de
     collé ni tronqué (bouton « Enregistrer une réclamation ») */
  #adminView .smq-toolbar{ row-gap:10px; }
  #adminView .smq-toolbar > input[type="text"]{ flex:1 1 100% !important; min-width:0; max-width:none !important; }
  #adminView .smq-toolbar-actions{ margin-left:auto; flex-wrap:wrap; justify-content:flex-end; row-gap:8px; }
}

/* ── Bande étroite (iPad 810/820/834) : colonnes uniques là où c'est serré ── */
@media (min-width:769px) and (max-width:980px) and (orientation:portrait){
  /* Duo activité/événements du dashboard : empilé */
  #adminView .dash-duo{ grid-template-columns:1fr !important; }
  /* Métriques du deck Dossiers : 3×3 (9 tuiles depuis K1) au lieu de 9 en ligne */
  #tab-dossiers .dk-metrics{ grid-template-columns:repeat(3,1fr) !important; }
  /* Messagerie : liste au-dessus du fil (pleine largeur chacune) */
  #tab-msgclient .mc-split{ flex-direction:column; height:auto !important; }
  #tab-msgclient .mc-list-col{ width:100% !important; height:auto; max-height:300px; }
  #tab-msgclient .mc-chat-col{ min-height:55vh; }
  /* Éditeur demande (espace) : une colonne */
  #ndesp .nde-grid{ grid-template-columns:1fr !important; }
}

/* ══════════════════════════════════════════════════════════════════
   NEXUS — iPad PAYSAGE : marge haute de la top nav · 2026-07-24
   La barre navy était collée à la barre d'état iPadOS (heure / batterie)
   en paysage : la safe-area n'était appliquée qu'en portrait (bloc
   nx-tablet-portrait) et sur iPhone (≤768px). On pousse ici le CONTENU
   de la barre sous la safe-area, comme en portrait.
   ══════════════════════════════════════════════════════════════════ */

/* ── a) FILET UNIVERSEL — sans effet sur ordinateur ──
   Les valeurs dérivent UNIQUEMENT de env(safe-area-inset-top), qui vaut 0
   sur un écran d'ordinateur : la règle ne change donc rien hors iPad/PWA.
   Couvre le cas d'un iPad avec clavier/trackpad (pointer:fine). */
@media (min-width:769px) and (orientation:landscape){
  body.nx-topnav #adminView .topbar{
    padding-top: env(safe-area-inset-top, 0px) !important;
    min-height: calc(56px + env(safe-area-inset-top, 0px)) !important;
  }
  /* Panneaux plein écran (dossier / auditeur) : fixés à top:56px → on les
     redescend d'autant, sinon ils passeraient sous la barre. */
  body.nx-topnav #dos-slide, body.nx-topnav #aud-slide{
    top: calc(56px + env(safe-area-inset-top, 0px)) !important;
  }
}

/* ── b) TABLETTE TACTILE en paysage : confort identique au portrait ──
   (pointer:coarse ⇒ iPad ; les portables à souris/trackpad sont exclus) */
@media (min-width:769px) and (max-width:1400px) and (orientation:landscape) and (pointer:coarse){
  body.nx-topnav #adminView .topbar{
    margin:0 !important;
    top:0 !important;
    border-radius:0 !important;
    border-top:none !important; border-left:none !important; border-right:none !important;
    padding-top: calc(env(safe-area-inset-top, 0px) + 4px) !important;
    padding-bottom:4px !important;
    min-height: calc(60px + env(safe-area-inset-top, 0px)) !important;
  }
  body.nx-topnav #dos-slide, body.nx-topnav #aud-slide{
    left:0 !important; right:0 !important;
    top: calc(60px + env(safe-area-inset-top, 0px) + 8px) !important;
  }
  /* Dossier ouvert : même respiration en haut qu'en portrait */
  #dos-slide .nd3-cmdtop{ padding-top: calc(14px + env(safe-area-inset-top, 0px)) !important; }
  /* Modales / overlays : jamais sous la barre d'état */
  #adminView .overlay{ padding-top: env(safe-area-inset-top, 0px); }
}

/* ══════════════════════════════════════════════════════════════════
   NEXUS — PASS iPhone PORTRAIT (≤768px) · 2026-07-17
   Complète le bloc nx-mobile-app de juin (les refontes récentes —
   Dossiers B, nd3, éditeurs, planning, compta — sont postérieures).
   Même règle d'or que l'iPad : AUCUN défilement horizontal.
   ══════════════════════════════════════════════════════════════════ */
@media (max-width:768px){

  /* ── 0) Garde-fous ── */
  #adminView .main{ overflow-x:clip; }
  #adminView .card{ max-width:100%; min-width:0; }
  #adminView img, #adminView video, #adminView canvas{ max-width:100%; height:auto; }
  #dash-quality-kpis, #cau-section{ overflow:hidden; }
  /* Anti-zoom iOS : champs ≥16px */
  #adminView input[type="text"], #adminView input[type="search"],
  #adminView input[type="email"], #adminView input[type="number"],
  #adminView input[type="date"], #adminView input[type="tel"],
  #adminView select, #adminView textarea{ font-size:16px; }

  /* ── 1) Dashboard : carte Collecteur Qualiopi ── */
  #qpc-card .qpc-actions{ flex:1 1 100%; flex-wrap:wrap; justify-content:flex-start; }
  #adminView .dash-duo{ grid-template-columns:1fr !important; }

  /* ── 2) Sous-onglets SMQ + Communication : grille 2 colonnes, tout visible ── */
  #smq-subtabs.pill-tabs, #comm-subtabs.pill-tabs{
    display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px; padding:8px; width:100%; max-width:100%; overflow:visible;
  }
  #smq-subtabs .pill-tab, #comm-subtabs .pill-tab{
    justify-content:center; white-space:nowrap; min-width:0;
    overflow:hidden; text-overflow:ellipsis;
    padding:11px 8px; font-size:12px;
    border:1px solid var(--border); border-radius:10px;
  }
  #smq-subtabs .pill-tab.active, #comm-subtabs .pill-tab.active{ border-color:var(--navy-800); }

  /* ── 3) Dossiers : deck en 2 colonnes ── */
  #tab-dossiers .dk-metrics{ grid-template-columns:repeat(2,1fr) !important; }

  /* ── 4) Planning : sélecteur qui replie + 31 jours compressés ── */
  #tab-planning .nxpl-seg{ display:flex; flex-wrap:wrap; }
  #tab-planning .nxpl-grid{ min-width:0 !important; }
  #tab-planning .nxpl-row{ grid-template-columns:76px minmax(0,1fr); }
  #tab-planning .nxpl-day{ min-width:0 !important; }
  #tab-planning .nxpl-daynum{ font-size:7.5px; letter-spacing:0; }
  /* Vue mois : un repère de jour sur 5 seulement (sinon illisible sur 31 j) */
  #tab-planning .nxpl-days .nxpl-day:not(:nth-child(5n+1)) .nxpl-daynum{ visibility:hidden; }
  #tab-planning .nxpl-daynum{ overflow:hidden; }
  #tab-planning .nxpl-rail{ font-size:.6rem; }

  /* ── 5) Paramètres ── */
  #adminView .params-side{ flex-wrap:wrap; overflow-x:visible !important; }
  #adminView .params-tab{ flex:0 1 auto; }

  /* ── 6) TABLES : colonnes essentielles uniquement (zéro scroll H) ──
     Neutralise l'ancienne règle mobile de juin (table{min-width:500px} +
     nowrap + scroll horizontal) : désormais tout tient dans la largeur. */
  #adminView table{ min-width:0 !important; max-width:100%; }
  #adminView table th, #adminView table td{ white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  /* Tables de saisie du dossier (sites multi-site…) : colonnes équitables */
  #dos-slide .nd3-mt{ width:100%; table-layout:fixed; }
  #dos-slide .nd3-mt input{ width:100% !important; min-width:0; box-sizing:border-box; }
  #adminView table.nx2-table{ min-width:0 !important; width:100%; font-size:12px; }
  #adminView .nx2-table thead th{ white-space:normal; padding:8px 6px; overflow-wrap:break-word; }
  #adminView .nx2-table tbody td{ white-space:normal; padding:8px 6px; overflow-wrap:anywhere; word-break:normal; }
  #adminView .nx2-scroll{ overflow-x:hidden; }
  /* Demandes — RÉINDEXÉ 15/08 : les index visaient l'ancienne grille et ne
     laissaient à l'écran que Type + KBIS (capture iPhone Selim). Colonnes
     gardées : ouvrir · raison sociale · type · statut. Docs et responsable
     se consultent dans le dossier. */
  table:has(#ndem-tbody){ table-layout:fixed; width:100%; font-size:11.5px; }
  #ndem-thead th:nth-child(n+7), #ndem-tbody td:nth-child(n+7),
  #ndem-thead th:nth-child(2), #ndem-tbody td:nth-child(2),
  #ndem-thead th:nth-child(3), #ndem-tbody td:nth-child(3){ display:none; }
  #ndem-thead th:nth-child(1), #ndem-tbody td:nth-child(1){ width:32px; }
  #ndem-tbody .nx2-openbtn{ width:24px; height:24px; font-size:15px; }
  #ndem-thead th:nth-child(5), #ndem-tbody td:nth-child(5){ width:66px; }
  #ndem-thead th:nth-child(6), #ndem-tbody td:nth-child(6){ width:96px; }
  /* (2,0,1) : bat la règle générale « th anywhere » (1,0,2) du haut du bloc */
  #adminView #ndem-thead th{ font-size:9.5px; padding:6px 3px; overflow-wrap:normal; word-break:normal; }
  #ndem-tbody td{ padding:9px 3px; vertical-align:middle; }
  /* Le nom du client se lit en entier : span multi-ligne, l'input est masqué
     (l'édition du nom reste possible dans le dossier). Tap = ouvrir le dossier. */
  #ndem-tbody .nx2-org{ display:none; }
  #ndem-tbody .nx2-orgtxt{ display:block; font-size:12px; font-weight:700; color:#0d2d5e; line-height:1.3; overflow-wrap:anywhere; word-break:normal; cursor:pointer; padding:2px 2px; }
  /* Pastilles : repli par MOTS + césure française (jamais « Conform/e ») */
  #ndem-tbody .nx2-pill{ white-space:normal; overflow-wrap:normal; word-break:normal; hyphens:auto; text-align:left; line-height:1.25; font-size:10.5px !important; padding:4px 7px !important; max-width:100%; }
  #ndem-tbody td:nth-child(5) .nx2-pill .nxtf{ display:none; }
  #ndem-tbody td:nth-child(5) .nx2-pill .nxts{ display:inline; }
  #ndem-tbody .nx2-car{ display:none; }
  /* Surveillance / renouvellement : organisme + statut + action */
  table:has(#dos-cyc-tbody-surveillance) thead th:nth-child(3),
  table:has(#dos-cyc-tbody-surveillance) thead th:nth-child(5),
  table:has(#dos-cyc-tbody-surveillance) thead th:nth-child(6),
  #dos-cyc-tbody-surveillance td:nth-child(3),
  #dos-cyc-tbody-surveillance td:nth-child(5),
  #dos-cyc-tbody-surveillance td:nth-child(6),
  table:has(#dos-cyc-tbody-renouvellement) thead th:nth-child(3),
  table:has(#dos-cyc-tbody-renouvellement) thead th:nth-child(5),
  table:has(#dos-cyc-tbody-renouvellement) thead th:nth-child(6),
  #dos-cyc-tbody-renouvellement td:nth-child(3),
  #dos-cyc-tbody-renouvellement td:nth-child(5),
  #dos-cyc-tbody-renouvellement td:nth-child(6){ display:none; }
  /* Rapports : organisme + statut + actions */
  table:has(#rap-tbody) thead th:nth-child(2), #rap-tbody td:nth-child(2),
  table:has(#rap-tbody) thead th:nth-child(4), #rap-tbody td:nth-child(4),
  table:has(#rap-tbody) thead th:nth-child(6), #rap-tbody td:nth-child(6),
  table:has(#rap-tbody) thead th:nth-child(7), #rap-tbody td:nth-child(7),
  table:has(#rap-tbody) thead th:nth-child(8), #rap-tbody td:nth-child(8),
  table:has(#rap-tbody) thead th:nth-child(9), #rap-tbody td:nth-child(9),
  table:has(#rap-tbody) thead th:nth-child(10), #rap-tbody td:nth-child(10),
  table:has(#rap-tbody) thead th:nth-child(11), #rap-tbody td:nth-child(11){ display:none; }
  /* Décisions comité : organisme + type + décision ──
     12/08/2026 : réindexé sur la grille à 6 colonnes (voir plus haut). Les index
     visaient l'ancienne grille et masquaient justement le TYPE et la DÉCISION,
     ne laissant que l'organisme. On masque la date et le décisionnaire. */
  table:has(#revdec-tbody) thead th:nth-child(2), #revdec-tbody td:nth-child(2),
  table:has(#revdec-tbody) thead th:nth-child(6), #revdec-tbody td:nth-child(6){ display:none; }
  /* Registre : n° + organisme + statut + certificat/actions */
  #dos-sub-registre .rq-table{ font-size:11px; }
  #dos-sub-registre .rq-table th, #dos-sub-registre .rq-table td{ padding:6px 5px; white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  #dos-sub-registre .rq-table th:nth-child(3), #dos-sub-registre .rq-table td:nth-child(3),
  #dos-sub-registre .rq-table th:nth-child(4), #dos-sub-registre .rq-table td:nth-child(4),
  #dos-sub-registre .rq-table th:nth-child(5), #dos-sub-registre .rq-table td:nth-child(5),
  #dos-sub-registre .rq-table th:nth-child(7), #dos-sub-registre .rq-table td:nth-child(7){ display:none; }
  /* Relances : organisme + relance + statut */
  #adminView #dos-sub-relances .rc-table{ font-size:11.5px; }
  #adminView #dos-sub-relances .rc-table td, #adminView #dos-sub-relances .rc-table th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; padding:7px 5px; }
  #dos-sub-relances .rc-table th:nth-child(1), #dos-sub-relances .rc-table td:nth-child(1),
  #dos-sub-relances .rc-table th:nth-child(4), #dos-sub-relances .rc-table td:nth-child(4){ display:none; }
  /* Veille clients + réclamations (vg) */
  #adminView .vg-table{ min-width:0 !important; font-size:12px; }
  #adminView .vg-table thead th{ white-space:normal; padding:8px 6px; }
  #adminView .vg-table tbody td{ padding:8px 6px; overflow-wrap:anywhere; word-break:normal; }
  #adminView .vg-tablecard{ overflow-x:hidden; }
  #adminView .smq-doctable{ min-width:0 !important; }
  /* Réclamations : objet + statut + actions (le n° se lit en ouvrant la fiche) */
  #rec-table-wrap .vg-table th:nth-child(1), #rec-table-wrap .vg-table td:nth-child(1),
  #rec-table-wrap .vg-table th:nth-child(2), #rec-table-wrap .vg-table td:nth-child(2),
  #rec-table-wrap .vg-table th:nth-child(3), #rec-table-wrap .vg-table td:nth-child(3),
  #rec-table-wrap .vg-table th:nth-child(4), #rec-table-wrap .vg-table td:nth-child(4),
  #rec-table-wrap .vg-table th:nth-child(7), #rec-table-wrap .vg-table td:nth-child(7),
  #rec-table-wrap .vg-table th:nth-child(8), #rec-table-wrap .vg-table td:nth-child(8){ display:none; }
  #rec-table-wrap .vg-table th:nth-child(5), #rec-table-wrap .vg-table td:nth-child(5){ width:52%; }
  #rec-table-wrap .paq-badge{ font-size:10px; padding:3px 7px; white-space:nowrap; }
  /* Amélioration qualité (téléphone) : n° + description + statut + actions */
  #paq-table-wrap .vg-table th:nth-child(2), #paq-table-wrap .vg-table td:nth-child(2),
  #paq-table-wrap .vg-table th:nth-child(3), #paq-table-wrap .vg-table td:nth-child(3),
  #paq-table-wrap .vg-table th:nth-child(4), #paq-table-wrap .vg-table td:nth-child(4),
  #paq-table-wrap .vg-table th:nth-child(7), #paq-table-wrap .vg-table td:nth-child(7){ display:none; }
  #paq-table-wrap .vg-table th:nth-child(5), #paq-table-wrap .vg-table td:nth-child(5){ width:58%; }
  /* Archivage (téléphone) : nom + date + document + actions */
  #ar-table-wrap .vg-table th:nth-child(2), #ar-table-wrap .vg-table td:nth-child(2){ display:none; }
  #ar-table-wrap .vg-table th:nth-child(1), #ar-table-wrap .vg-table td:nth-child(1){ width:52%; }

  /* ── 7) Dossier ouvert (nd3) : barres d'actions qui replient ── */
  /* Stepper « Suivi du dossier » : seule l'étape courante est libellée
     (les 7 libellés se chevauchaient) */
  #dos-slide .nd3-step .nd3-slbl{ display:none; }
  #dos-slide .nd3-step.cur .nd3-slbl{ display:block; font-size:.62rem; }
  #dos-slide .nd3-step.ko .nd3-slbl{ display:block; font-size:.62rem; }
  #dos-slide .nd3-dsubnav{ flex-wrap:wrap !important; overflow-x:visible !important; }
  #dos-slide .nd3-dsubnav button{ flex:1 1 46%; padding:9px 8px; font-size:.78rem; }
  #dos-slide .ndem-ch .acts, #dos-slide .acts{ flex:1 1 100%; margin-left:0; }
  #dos-slide .ndside-card, #dos-slide .nd3-bside > *{ min-width:0; max-width:100%; }

  /* ── 8) Éditeurs ── */
  #nd3-dsub-contrat .ndcon-grid, #nd3-dsub-contrat .ndcon-doc-cols{ grid-template-columns:1fr !important; }
  #adminView .ndcon-t, #adminView .ndrev-t{ min-width:0 !important; }
  #adminView .ndcon-t td, #adminView .ndcon-t th,
  #adminView .ndrev-t td, #adminView .ndrev-t th{ white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  #nd3-dsub-odm .ndodm-cols{ grid-template-columns:1fr !important; }
  #nd3-dsub-odm .ndodm-top{ grid-template-columns:repeat(2,1fr) !important; }
  #nd3-dsub-odm .ndodm-inst{ grid-template-columns:80px 1fr 92px 64px !important; font-size:12px; }
  #nd3-dsub-plan .srow{ grid-template-columns:78px 1fr 70px 70px !important; font-size:11.5px; }
  #nd3-dsub-rapport .rp-grid{ grid-template-columns:1fr !important; }
  #nd3-dsub-revdec .rdx-grid, #nd3-dsub-revdec .rdx-recap{ grid-template-columns:1fr !important; }
  #rqCertModal .rqmb{ grid-template-columns:1fr !important; }

  /* ── 9) Compta : boutons du héro qui replient ── */
  #tab-facturation .fc-hero-actions{ flex-wrap:wrap; }

  /* ── 10) Modales pleine largeur téléphone ── */
  #adminView .modal{ width:96vw; max-height:92vh; }

  /* ── 12) Marge « Dynamic Island » / encoche : respectée PARTOUT ──
     (PWA plein écran : le contenu passe sous l'île dynamique sinon) */
  body.nx-topnav #adminView .topbar{ padding-top: calc(env(safe-area-inset-top, 0px) + 4px) !important; }
  #dos-slide > div:first-child{ padding-top: calc(14px + env(safe-area-inset-top, 0px)) !important; }
  #aud-slide > div:first-child{ padding-top: calc(12px + env(safe-area-inset-top, 0px)) !important; }
  #dos-slide .nd3-cmdtop{ padding-top: calc(10px + env(safe-area-inset-top, 0px)) !important; }
  #adminView .overlay{ padding-top: env(safe-area-inset-top, 0px); padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 8px); }
  .smq-modal{ padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); }
  body.mc-chat-open #mc-chat-header{ padding-top: calc(14px + env(safe-area-inset-top, 0px)) !important; }

  /* ── 13) Dossier client (nd3) : header recomposé, net et compact ── */
  #dos-slide .nd3-cmdtop{ padding-left:14px; padding-right:14px; gap:9px; }
  #dos-slide .nd3-ctname{ font-size:1rem; line-height:1.25; }
  /* Boutons « Générer… » : grille 2 colonnes régulières */
  #dos-slide .nd3-ctacts{ display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; width:100%; margin-left:0 !important; }
  #dos-slide .nd3-ctacts > button, #dos-slide .nd3-ctacts > .fb{
    width:100%; justify-content:center; padding:10px 8px !important;
    font-size:.76rem !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
  }
  #dos-slide .nd3-ctacts .nd3-trash{ grid-column:auto; justify-self:stretch; display:inline-flex; align-items:center; justify-content:center; min-height:40px; }
  /* Bascule Dossier / Espace client : pleine largeur */
  #dos-slide .nd3-toggle{ width:100%; display:flex; margin-left:0 !important; }
  #dos-slide .nd3-toggle button{ flex:1; padding:10px 8px; }
  /* Onglets du dossier : grille 2 colonnes régulières */
  #dos-slide .nd3-dsubnav{ display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  #dos-slide .nd3-dsubnav button{
    width:100%; justify-content:flex-start; padding:10px 10px; font-size:.78rem;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
  }

  /* ── 14) Lignes denses : résumé compact + dépliage au tap ──
     (veille réglementaire & propositions — petit écran uniquement) */
  #rsg-wrap .rsg-card{ flex-wrap:wrap; cursor:pointer; }
  #rsg-wrap .rsg-card:not(.nxo) .rsg-res,
  #rsg-wrap .rsg-card:not(.nxo) .rsg-diff,
  #rsg-wrap .rsg-card:not(.nxo) .rsg-impact,
  #rsg-wrap .rsg-card:not(.nxo) .rsg-meta,
  #rsg-wrap .rsg-card:not(.nxo) .rsg-actions,
  #rsg-wrap .rsg-card:not(.nxo) .rsg-ver{ display:none !important; }
  #rsg-wrap .rsg-card:not(.nxo) .rsg-nom{
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  #rsg-wrap .rsg-main{ position:relative; padding-right:26px; }
  #rsg-wrap .rsg-main::after{
    content:"▾"; position:absolute; right:2px; top:2px;
    font-size:14px; color:#94a3b8; transition:transform .18s;
  }
  #rsg-wrap .rsg-card.nxo .rsg-main::after{ transform:rotate(180deg); }
  /* Veille réglementaire (table) : nom + prochaine vérif. + actions */
  #vg-table-wrap .vg-table th:nth-child(2), #vg-table-wrap .vg-table td:nth-child(2),
  #vg-table-wrap .vg-table th:nth-child(3), #vg-table-wrap .vg-table td:nth-child(3),
  #vg-table-wrap .vg-table th:nth-child(4), #vg-table-wrap .vg-table td:nth-child(4),
  #vg-table-wrap .vg-table th:nth-child(5), #vg-table-wrap .vg-table td:nth-child(5),
  #vg-table-wrap .vg-table th:nth-child(7), #vg-table-wrap .vg-table td:nth-child(7){ display:none; }
  #vg-table-wrap .vg-table th:nth-child(1), #vg-table-wrap .vg-table td:nth-child(1){ width:58%; }

  /* ── 11) Barres outils SMQ : recherche pleine ligne ── */
  #adminView .smq-toolbar{ row-gap:9px; }
  #adminView .smq-toolbar > input[type="text"]{ flex:1 1 100% !important; min-width:0; max-width:none !important; }
  #adminView .smq-toolbar-actions{ margin-left:auto; flex-wrap:wrap; justify-content:flex-end; row-gap:8px; }
  #smq-pane-rec .smq-explorer, #smq-pane-archive .smq-explorer,
  #smq-pane-paq .smq-explorer, #smq-pane-veille .smq-explorer{ padding:14px 14px; }
  #adminView .smq-doctable .smq-dt-act{ opacity:1 !important; }
}

#dos-sub-registre .rq-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
#dos-sub-registre .rq-kpi{background:#f7faff;border:1px solid var(--border,#e4ebf7);border-radius:10px;padding:10px 12px}
#dos-sub-registre .rq-kpi .k{font-size:11px;color:var(--muted,#6b7890);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
#dos-sub-registre .rq-kpi .v{font-size:22px;font-weight:800;color:#0d2d5e;margin-top:3px;font-variant-numeric:tabular-nums}
#dos-sub-registre .rq-kpi.amber .v{color:#b45309}
#dos-sub-registre .rq-kpi.red .v{color:#b91c1c}
#dos-sub-registre .rq-kpi .cats{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
#dos-sub-registre .rq-kpi .cats span{font-size:10.5px;font-weight:600;background:#eaf0fb;color:#22406e;padding:2px 6px;border-radius:5px;font-variant-numeric:tabular-nums}
#dos-sub-registre .rq-rules{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
#dos-sub-registre .rq-rule{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid}
#dos-sub-registre .rq-rule.add{background:#e8f6ee;color:#1b7a3d;border-color:#bfe6cc}
#dos-sub-registre .rq-rule.keep{background:#eef3fb;color:#13386f;border-color:#d3e0f4}
#dos-sub-registre .rq-rule.repl{background:#f7efdd;color:#8a6512;border-color:#ecdcb5}
#dos-sub-registre .rq-form{background:#f8fafc;border:1px solid var(--border,#e4ebf7);border-radius:10px;padding:14px;margin-bottom:12px}
#dos-sub-registre .rq-form-title{font-weight:700;color:#0d2d5e;margin-bottom:10px;font-size:14px}
#dos-sub-registre .rq-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
#dos-sub-registre .rq-fl{display:flex;flex-direction:column;font-size:11px;font-weight:600;color:#475569;gap:4px}
#dos-sub-registre .rq-fl-wide{grid-column:span 4}
#dos-sub-registre .rq-fl input,#dos-sub-registre .rq-fl select{font-family:inherit;font-size:13px;padding:7px 9px;border:1px solid #d8e0ee;border-radius:7px;font-weight:400;color:#1a2438}
#dos-sub-registre .rq-cats{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:#334155}
#dos-sub-registre .rq-cats label{display:flex;align-items:center;gap:6px;cursor:pointer}
#dos-sub-registre .rq-form-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:12px}
#dos-sub-registre .rq-form-hint{margin-right:auto;font-size:11.5px;color:#b45309}
#dos-sub-registre .rq-btn-ok{background:#1b7a3d;color:#fff;border-color:#1b7a3d}
#dos-sub-registre .rq-table{width:100%;border-collapse:collapse;font-size:12.5px}
#dos-sub-registre .rq-table th{background:#f4f8fe;color:#0d2d5e;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:8px 10px;border-bottom:1px solid #e4ebf7;white-space:nowrap}
#dos-sub-registre .rq-table th.rq-c,#dos-sub-registre .rq-table td.rq-c{text-align:center}
#dos-sub-registre .rq-table td{padding:8px 10px;border-bottom:1px solid #f2f6fc;white-space:nowrap}
#dos-sub-registre .rq-mono{font-variant-numeric:tabular-nums;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px}
#dos-sub-registre .rq-chip{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:6px;font-size:11px;font-weight:700}
#dos-sub-registre .rq-chip.y{background:#e8f6ee;color:#1b7a3d}
#dos-sub-registre .rq-chip.n{background:#f1f3f7;color:#c2cad8}
#dos-sub-registre .rq-st{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
#dos-sub-registre .rq-st.ok{background:#e8f6ee;color:#1b7a3d}
#dos-sub-registre .rq-st.soon{background:#fef4e6;color:#b45309}
#dos-sub-registre .rq-st.exp{background:#fdeaea;color:#b91c1c}
#dos-sub-registre .rq-act{background:#fff;border:1px solid #e4ebf7;cursor:pointer;font-size:14px;width:30px;height:30px;border-radius:8px;line-height:1;display:inline-flex;align-items:center;justify-content:center;margin:0 1px;vertical-align:middle;transition:.13s}
#dos-sub-registre .rq-act:hover{background:#f2f6fc;border-color:#0d2d5e}
/* ── Refonte actions du registre : bouton « ⋯ » + menu à libellés ── */
.rq-more{background:#fff;border:1px solid #e4ebf7;color:#0d2d5e;width:32px;height:30px;border-radius:9px;font-size:17px;font-weight:800;line-height:1;cursor:pointer;transition:.13s}
.rq-more:hover{background:#0d2d5e;color:#fff;border-color:#0d2d5e}
#rqRowMenu{position:fixed;z-index:100001;background:#fff;border:1px solid #e4ebf5;border-radius:13px;box-shadow:0 18px 44px rgba(8,29,63,.22);padding:6px;width:266px;max-height:80vh;overflow:auto}
#rqRowMenu .rq-mi{display:block;width:100%;text-align:left;background:#fff;border:0;border-radius:9px;padding:9px 11px;cursor:pointer;font:inherit;transition:.11s}
#rqRowMenu .rq-mi:hover{background:#f2f7ff}
#rqRowMenu .rq-mi .l{display:block;font-size:13px;font-weight:700;color:#0d2d5e}
#rqRowMenu .rq-mi .s{display:block;font-size:11px;color:#8a95a8;margin-top:1px;line-height:1.35}
#rqRowMenu .rq-mi.mini{display:flex;align-items:center;justify-content:space-between;padding:7px 11px}
#rqRowMenu .rq-mi.mini .l{font-size:12.5px;font-weight:600}
#rqRowMenu .rq-mi.mini.on .l{font-weight:800;color:#1b7a3d}
#rqRowMenu .rq-mi.mini .ck{color:#1b7a3d;font-weight:900;font-size:12px}
#rqRowMenu .rq-mi.warn .l{color:#b45309}
#rqRowMenu .rq-mi.warn:hover{background:#fff7ed}
#rqRowMenu .rq-mi.danger .l{color:#b91c1c}
#rqRowMenu .rq-mi.danger:hover{background:#fef2f2}
#rqRowMenu .rq-msep{height:1px;background:#eef2f8;margin:5px 8px}
#rqRowMenu .rq-mlbl{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#9aa6bc;padding:6px 11px 3px}
/* Organisme cliquable = continuité du dossier client */
.rq-orglink{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;color:#0d4fb2}
.rq-orglink:hover{text-decoration:underline}
.rq-golink{font-size:10px;opacity:.6}
.rq-tag-tr{display:inline-block;font-size:8.5px;font-weight:800;letter-spacing:.3px;background:#ede9fe;color:#6d28d9;border:1px solid #ddd2fb;border-radius:5px;padding:1px 4px;margin-left:4px;vertical-align:middle}
.rq-tag-nl{display:inline-block;font-size:8.5px;font-weight:800;letter-spacing:.3px;background:#fff7ed;color:#b45309;border:1px solid #fed7aa;border-radius:5px;padding:1px 4px;margin-left:4px;vertical-align:middle;cursor:pointer}
.rq-tag-nl:hover{background:#fed7aa}
#dos-sub-registre .rq-act.mail:hover{background:#e3f2fd;border-color:#1e88e5}
#dos-sub-registre .rq-act.renew:hover{background:#fff2e8;border-color:#f97316}
#dos-sub-registre .rq-act.del:hover{background:#fdeaea;border-color:#e53935}
#dos-sub-registre .rq-act select,#dos-sub-registre select.rq-act{width:auto}
#dos-sub-registre .rq-num{font-family:"SF Mono",Menlo,Consolas,monospace;font-weight:800;color:#0d2d5e;font-size:12px}
#dos-sub-registre .rq-org2{font-weight:800;color:#0d2d5e}
#dos-sub-registre .rq-cat{display:inline-block;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;background:#fef4e6;color:#b45309;margin:1px 2px 1px 0}
#dos-sub-registre .rq-cat.b{background:#f1ebfb;color:#7c3aed}
#dos-sub-registre .rq-cat.c{background:#e7f0fd;color:#1e66c9}
#dos-sub-registre .rq-cat.d{background:#e6f6f4;color:#0f766e}
#dos-sub-registre .rq-act.cert{background:#fdeaea;border-color:#f3c6c6;color:#c0392b}
#dos-sub-registre .rq-act.cert:hover{background:#fbdcdc;border-color:#e05252}
#dos-sub-registre .rq-act.send{background:#eaf5ee;border-color:#bfe3cc;color:#1b7a3d}
#dos-sub-registre .rq-act.send:hover{background:#d8ecdf;border-color:#1b7a3d}
#dos-sub-registre .rq-newrow{animation:rqflash 1.6s ease}
@keyframes rqflash{0%{background:#fff6e0}100%{background:transparent}}
@media(max-width:760px){#dos-sub-registre .rq-kpis{grid-template-columns:repeat(2,1fr)}#dos-sub-registre .rq-form-grid{grid-template-columns:repeat(2,1fr)}#dos-sub-registre .rq-fl-wide{grid-column:span 2}}

#dos-sub-relances .rc-switch{display:inline-block;width:44px;height:25px;border-radius:999px;background:#cbd5e1;position:relative;cursor:pointer;transition:.2s;vertical-align:middle}
#dos-sub-relances .rc-switch.on{background:#16a34a}
#dos-sub-relances .rc-knob{position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
#dos-sub-relances .rc-switch.on .rc-knob{left:22px}
#dos-sub-relances .rc-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
@media(max-width:760px){#dos-sub-relances .rc-kpis{grid-template-columns:repeat(2,1fr)}}
#dos-sub-relances .rc-kpi{background:#f7faff;border:1px solid var(--border,#e4ebf7);border-radius:10px;padding:10px 12px}
#dos-sub-relances .rc-kpi .k{font-size:10.5px;color:var(--muted,#6b7890);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
#dos-sub-relances .rc-kpi .v{font-size:22px;font-weight:800;color:#0d2d5e;margin-top:3px;font-variant-numeric:tabular-nums}
#dos-sub-relances .rc-kpi.red .v{color:#b91c1c}#dos-sub-relances .rc-kpi.amber .v{color:#b45309}#dos-sub-relances .rc-kpi.green .v{color:#1b7a3d}
#dos-sub-relances .rc-sec{font-size:12px;font-weight:700;color:#0d2d5e;text-transform:uppercase;letter-spacing:.04em;margin:18px 0 9px;padding-bottom:6px;border-bottom:1px solid #eef2f8}
#dos-sub-relances .rc-table{width:100%;border-collapse:collapse;font-size:12.5px}
#dos-sub-relances .rc-table th{position:sticky;top:0;background:#f4f8fe;color:#0d2d5e;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:8px 10px;border-bottom:1px solid #e4ebf7;white-space:nowrap}
#dos-sub-relances .rc-table td{padding:8px 10px;border-bottom:1px solid #f2f6fc;white-space:nowrap}
#dos-sub-relances .rc-mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;font-variant-numeric:tabular-nums}
#dos-sub-relances .rc-type{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
#dos-sub-relances .rc-type.s{background:#e9f1fb;color:#2563aa}#dos-sub-relances .rc-type.r{background:#f7efdd;color:#8a6512}#dos-sub-relances .rc-type.a{background:#fdeaea;color:#b91c1c}
#dos-sub-relances .rc-d{font-size:10px;font-weight:700;padding:2px 6px;border-radius:5px;margin-right:3px}
#dos-sub-relances .rc-d.c{background:#e8f6ee;color:#1b7a3d}#dos-sub-relances .rc-d.i{background:#eef3fb;color:#13386f}#dos-sub-relances .rc-d.n{background:#f3e8ff;color:#7c3aed}
#dos-sub-relances .rc-st{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
#dos-sub-relances .rc-st.now{background:#fdeaea;color:#b91c1c}#dos-sub-relances .rc-st.soon{background:#fef4e6;color:#b45309}#dos-sub-relances .rc-st.sched{background:#e8f6ee;color:#1b7a3d}#dos-sub-relances .rc-st.skip{background:#ede9fe;color:#6d28d9}
#dos-sub-relances .rc-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:linear-gradient(135deg,#fff,#fdf2f2);border:1px solid #f4c4c4;border-left:4px solid #b91c1c;border-radius:11px;padding:11px 14px;margin-bottom:8px;font-size:13px}
#dos-sub-relances .rc-alert-sub{font-size:11.5px;color:#6b7280;margin-top:2px}
#dos-sub-relances .rc-ok{background:#1b7a3d!important;color:#fff!important;border-color:#1b7a3d!important}
#dos-sub-relances .rc-toggle{display:flex;align-items:center;gap:9px;font-size:13px;color:#334155;padding:7px 0;cursor:pointer}
#dos-sub-relances .rc-toggle input{width:17px;height:17px;cursor:pointer}

#nx-asst-fab{position:fixed;right:22px;bottom:22px;z-index:100000;width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(145deg,#0d2d5e,#0a2249);color:#fff;box-shadow:0 10px 28px rgba(13,45,94,.45);display:none;place-items:center;transition:transform .15s}
#nx-asst-fab:hover{transform:translateY(-2px) scale(1.04)}
#nx-asst-fab .sp{position:absolute;right:-1px;top:-1px;width:16px;height:16px;border-radius:50%;background:#F97316;border:2px solid #fff}
#nx-asst-panel{position:fixed;right:22px;bottom:22px;z-index:100001;width:min(420px,calc(100vw - 32px));height:min(620px,calc(100vh - 40px));background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(8,18,40,.42);display:none;flex-direction:column;overflow:hidden;font-family:'Inter',system-ui,sans-serif}
#nx-asst-panel.open{display:flex}
.nxa-head{background:linear-gradient(135deg,#0d2d5e,#0a2249);color:#fff;padding:13px 16px;display:flex;align-items:center;gap:10px}
.nxa-head .av{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:17px}
.nxa-head .ti{font-family:'Sora','Inter',sans-serif;font-weight:700;font-size:14px;line-height:1.15}
.nxa-head .su{font-size:11px;opacity:.72}
.nxa-head .sp{flex:1}
.nxa-ic{border:0;background:rgba(255,255,255,.15);color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:14px;line-height:1}
.nxa-ic:hover{background:rgba(255,255,255,.26)}
.nxa-body{flex:1;overflow:auto;padding:14px;background:#f6f8fc}
.nxa-msg{margin:0 0 12px;display:flex}
.nxa-msg .b{max-width:85%;padding:10px 12px;border-radius:13px;font-size:13.5px;line-height:1.5;word-wrap:break-word;overflow-wrap:anywhere}
.nxa-msg .b p{margin:0 0 8px}.nxa-msg .b p:last-child{margin:0}
.nxa-msg .b ul{margin:4px 0;padding-left:18px}.nxa-msg .b h2,.nxa-msg .b h3{font-size:13.5px;margin:6px 0 4px;color:#0d2d5e}
.nxa-msg .b table{border-collapse:collapse;font-size:12px;margin:6px 0;width:100%}.nxa-msg .b th,.nxa-msg .b td{border:1px solid #e3e7ee;padding:4px 6px;text-align:left}.nxa-msg .b th{background:#eef2fb}
.nxa-msg.u{justify-content:flex-end}
.nxa-msg.u .b{background:#0d2d5e;color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}
.nxa-msg.a .b{background:#fff;border:1px solid #e7ebf3;color:#1f2733;border-bottom-left-radius:4px}
.nxa-msg.a .b a{color:#EA580C}
.nxa-tool{font-size:11.5px;color:#7b8499;margin:0 0 10px;display:flex;align-items:center;gap:6px}
.nxa-tool .d{width:7px;height:7px;border-radius:50%;background:#F97316;flex:none}
.nxa-think{font-size:12px;color:#7b8499;margin-bottom:10px}
.nxa-foot{border-top:1px solid #e7ebf3;padding:10px;background:#fff}
.nxa-foot .row{display:flex;gap:8px;align-items:flex-end}
.nxa-foot textarea{flex:1;border:1px solid #d8deea;border-radius:11px;padding:9px 11px;font:inherit;font-size:13.5px;resize:none;max-height:120px;min-height:40px;outline:none}
.nxa-foot textarea:focus{border-color:#0d2d5e}
.nxa-send{border:0;background:#F97316;color:#fff;width:40px;height:40px;border-radius:11px;cursor:pointer;font-size:15px;flex:none}
.nxa-send:disabled{opacity:.5;cursor:default}
.nxa-mic{border:0;background:#eef2fb;color:#0d2d5e;width:40px;height:40px;border-radius:11px;cursor:pointer;font-size:16px;flex:none}
.nxa-mic.listening{background:#F97316;color:#fff;animation:nxapulse 1.1s infinite}
@keyframes nxapulse{0%,100%{box-shadow:0 0 0 0 rgba(249,115,22,.55)}50%{box-shadow:0 0 0 7px rgba(249,115,22,0)}}
.nxa-vrow{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #e7ebf3;border-radius:10px;margin-bottom:7px}
.nxa-vrow.on{border-color:#F97316;background:#fff7ed}
.nxa-vplay{border:0;background:#0d2d5e;color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;flex:none;font-size:12px}
.nxa-vlbl{flex:1;font-size:13px;color:#1f2733}
.nxa-vid{font-size:10px;color:#9aa3b2;font-family:monospace}
.nxa-vpick{border:1px solid #d8deea;background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;color:#0d2d5e;flex:none}
.nxa-vrow.on .nxa-vpick{background:#F97316;color:#fff;border-color:#F97316}
.nxa-hint{font-size:10px;color:#9aa3b2;margin-top:6px;text-align:center}
.nxa-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.nxa-chip{border:1px solid #d8deea;background:#fff;border-radius:999px;padding:6px 10px;font-size:11.5px;color:#0d2d5e;cursor:pointer}
.nxa-chip:hover{border-color:#0d2d5e;background:#f1f6fe}
.nxa-spin{display:inline-block;width:12px;height:12px;border:2px solid #F97316;border-right-color:transparent;border-radius:50%;animation:nxaspin .7s linear infinite;vertical-align:-1px;margin-right:6px}
@keyframes nxaspin{to{transform:rotate(360deg)}}
@media(max-width:520px){#nx-asst-panel{right:8px;bottom:8px;width:calc(100vw - 16px);height:calc(100vh - 22px)}#nx-asst-fab{right:14px;bottom:14px}}

  #auditeurView > *:not(#av-app){ display:none !important; }
  @media(min-width:901px){ #auditeurView > *:not(#av-app){ display:none !important; } }
  @media(max-width:900px){ #auditeurView > *:not(#av-app){ display:none !important; } }
  /* #av-app = conteneur de défilement (l'ancien scroll .aud-content est masqué) ; topbar sticky à l'intérieur */
  #auditeurView > #av-app{ display:block !important; height:100vh; max-height:100vh; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; }
  /* Menu du haut : toujours visible + scrollable horizontalement sur petit écran (plus de troncature ni de burger factice) */
  #auditeurView .avf-nav{ overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  #auditeurView .avf-nav::-webkit-scrollbar{ display:none; }
  @media(max-width:1000px){ #auditeurView .avf-nav{ display:flex !important; } #auditeurView .avf-burger{ display:none !important; } }
  /* Formation : panneau réel déplacé dans le cockpit — REMPLIT toute la largeur (comme les autres onglets, padding géré par .avf-wrap) */
  #auditeurView #av-app #aud-panel-formation{ display:block !important; max-width:none; margin:0; padding:4px 0 48px; box-sizing:border-box; }
  #auditeurView #av-app #aud-panel-formation h1, #auditeurView #av-app #aud-panel-formation h2, #auditeurView #av-app #aud-panel-formation h3, #auditeurView #av-app #aud-panel-formation h4, #auditeurView #av-app #aud-panel-formation h5, #auditeurView #av-app #aud-panel-formation p, #auditeurView #av-app #aud-panel-formation ul, #auditeurView #av-app #aud-panel-formation ol, #auditeurView #av-app #aud-panel-formation li { margin:revert; padding:revert; }
  /* Formation : intérieurs beaucoup plus aérés (le texte ne touche plus les bords) */
  #auditeurView #av-app .aud-fm-grid{ gap:22px; }
  #auditeurView #av-app .aud-fm-hero{ padding:36px 42px !important; margin-bottom:24px; }
  #auditeurView #av-app .aud-fm-hero-eyebrow{ margin-bottom:16px !important; padding:6px 14px !important; }
  #auditeurView #av-app .aud-fm-body{ padding:26px 30px 30px !important; }
  #auditeurView #av-app .aud-fm-eyebrow{ padding:6px 14px !important; top:16px !important; left:16px !important; }
  #auditeurView #av-app .aud-fm-status{ padding:6px 14px 6px 30px !important; top:16px !important; right:16px !important; }
  #auditeurView #av-app .aud-fm-meta{ margin-bottom:10px; }
  #auditeurView #av-app .aud-fm-modules{ gap:14px; }
  #auditeurView #av-app .aud-fm-mod-head{ padding:20px 26px !important; gap:16px !important; }
  #auditeurView #av-app .aud-fm-lecons{ padding:8px 26px 24px !important; gap:10px !important; }
  #auditeurView #av-app .aud-fm-lec-head{ padding:15px 20px !important; gap:14px !important; }
  #auditeurView #av-app .aud-fm-qcm-section{ padding:32px 36px !important; margin-top:28px; }
  #auditeurView #av-app .aud-fm-qcm-header{ margin-bottom:24px !important; }
  #auditeurView #av-app .aud-fm-qcm-grid{ gap:18px !important; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important; }
  #auditeurView #av-app .aud-fm-qcm-card{ padding:22px 24px !important; gap:10px !important; }
  #auditeurView #av-app .aud-fm-cert{ padding:24px 28px !important; margin-top:22px; }
  #auditeurView #av-app .aud-fm-back{ padding:9px 16px !important; margin-bottom:16px; }
  /* Agenda : bandeau d'aide + légende + affordance des jours libres */
  #auditeurView .avxAgGuide{ display:flex; align-items:center; gap:10px; background:#FFF7EF; border:1px solid #FDBA74; border-radius:12px; padding:12px 16px; margin:0 0 18px; font-size:13px; color:#7c4a12; line-height:1.45; }
  #auditeurView .avxAgGuide svg{ width:20px; height:20px; color:#EA580C; flex:none; }
  #auditeurView .avxAgLegend{ display:flex; gap:20px; flex-wrap:wrap; margin-top:16px; font-size:12.5px; color:#516080; }
  #auditeurView .avxAgLegend span{ display:inline-flex; align-items:center; gap:7px; }
  #auditeurView .avxAgLegend .avxLg{ width:14px; height:14px; border-radius:4px; display:inline-block; }
  #auditeurView .avxAgLegend .avxLgMis{ background:#FFF7EF; border:1px solid #FDBA74; }
  #auditeurView .avxAgLegend .avxLgInd{ background:repeating-linear-gradient(45deg,#FBECEC,#FBECEC 4px,#fff5f5 4px,#fff5f5 8px); border:1px solid #f3c9c9; }
  #auditeurView .avxAgLegend .avxLgFree{ background:#fff; border:1px dashed #C6CFDE; }
  #auditeurView .avf-agd.avxIndCell{ cursor:pointer; }
  #auditeurView .avf-agd.avxIndCell:hover{ border-color:#FDBA74 !important; box-shadow:inset 0 0 0 1px #FDBA74; }
  #auditeurView .avf-agd .avxIndHint{ margin-top:6px; font-size:9.5px; font-weight:700; color:#98A4BC; opacity:0; transition:.12s; line-height:1.1; }
  #auditeurView .avf-agd.avxIndCell:hover .avxIndHint{ opacity:1; color:#EA580C; }
  #auditeurView .avf-agd.avf-indispo .avxIndHint{ opacity:1; color:#D14343; }

/* ═══ E12 (2026-07, v2) — espace client : plus AUCUNE troncature en haut à droite.
   Vraies classes : .topbar > .topin > .brand / .nav / .tright (dans #cv-app).
   Stratégie : compression progressive des onglets (icônes puis police) pour tout
   faire tenir sur une ligne, et PASSAGE À LA LIGNE en dernier recours (au lieu
   de pousser la cloche/le profil hors écran). Organisation longue = ellipsis. ═══ */
/* Règle (Selim) : les topnavs ne passent JAMAIS sur deux lignes — compression
   progressive, puis MENU HAMBURGER si ça ne tient toujours pas. */
#clientView #cv-app{ overflow-x:clip; }
#clientView .topin{ min-width:0; flex-wrap:nowrap; }
#clientView .nav{ flex:1 1 auto; min-width:0; flex-wrap:nowrap; overflow:hidden; }
#clientView .nav a{ flex:0 0 auto; }
#clientView .tright{ flex:0 0 auto; }
/* Brand client = pattern auditeur : texte seul, sans logo (halo blanc supprimé) */
#clientView .brand{ padding:0 !important; margin:0 !important; }
#clientView .brand::before, #clientView .brand::after{ content:none !important; display:none !important; }
#clientView .brand .bt{ line-height:1.05; }
#clientView .brand .bt b{ font-size:17px !important; font-weight:800 !important; letter-spacing:.02em; white-space:nowrap; }
#clientView .brand .bt i{ font-size:11px !important; font-weight:600 !important; letter-spacing:.03em; }

/* Profil compact (même choix que côté auditeur) : cloche supprimée,
   chip organisme = rond d'initiales SEUL, cliquable (nom + chevron masqués). */
#clientView .orgchip .om,#clientView .orgchip > svg{ display:none !important; }
#clientView .orgchip{ padding:3px !important; border-radius:50% !important; gap:0 !important; min-width:0; }
#clientView .orgchip .om b,#clientView .orgchip .om i{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:170px; }
@media(max-width:1680px){ #clientView .nav a{ padding:8px 9px; font-size:12.5px; gap:5px; } }
@media(max-width:1540px){ #clientView .nav a svg{ display:none; } #clientView .nav a{ padding:8px 8px; font-size:12px; } }
/* burger client (≤1440px) : la nav bascule en panneau déroulant sous la barre */
.nx-burger{ display:none; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.12); color:#fff; border-radius:10px; cursor:pointer; flex:0 0 auto; }
.nx-burger svg{ width:19px; height:19px; }
@media(max-width:1440px){
  #clientView .topbar .nav{ display:none; }
  #clientView .topbar.nav-open .nav{ display:flex !important; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; flex-wrap:nowrap; overflow:visible; background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B); padding:10px 16px 14px; gap:3px; box-shadow:0 18px 30px -18px rgba(10,34,73,.7); z-index:80; }
  #clientView .topbar.nav-open .nav a{ width:100%; justify-content:flex-start; font-size:14px; padding:11px 12px; }
  #clientView .topbar.nav-open .nav a svg{ display:inline-block; }
  #clientView .topbar .nx-burger{ display:inline-flex; }
}

/* ═══ E10 — espace auditeur : compression puis hamburger, JAMAIS deux lignes.
   Profil compact (choix Selim) : cloche supprimée, rond d'initiales cliquable. ═══ */
#auditeurView .avf-topin{ min-width:0; flex-wrap:nowrap; }
#auditeurView .avf-nav{ flex:1 1 auto; min-width:0; flex-wrap:nowrap; overflow:hidden; }
#auditeurView .avf-nav a{ flex:0 0 auto; }
#auditeurView .avf-tright{ flex:0 0 auto; }
#auditeurView .avf-orgchip .avf-om,#auditeurView .avf-orgchip > svg{ display:none !important; }
#auditeurView .avf-orgchip{ padding:3px !important; border-radius:50% !important; gap:0 !important; }
@media(max-width:1600px){ #auditeurView .avf-nav a{ padding:8px 9px; font-size:12.5px; gap:5px; } }
@media(max-width:1440px){ #auditeurView .avf-nav a svg{ display:none; } #auditeurView .avf-nav a{ padding:8px 8px; font-size:12px; } }
/* burger auditeur (≤1180px, avant le point où ça coince) */
@media(max-width:1180px){
  #auditeurView .avf-topbar .avf-nav{ display:none; }
  #auditeurView .avf-topbar.nav-open .avf-nav{ display:flex !important; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; flex-wrap:nowrap; overflow:visible; background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B); padding:10px 16px 14px; gap:3px; box-shadow:0 18px 30px -18px rgba(10,34,73,.7); z-index:80; }
  #auditeurView .avf-topbar.nav-open .avf-nav a{ width:100%; justify-content:flex-start; font-size:14px; padding:11px 12px; }
  #auditeurView .avf-topbar.nav-open .avf-nav a svg{ display:inline-block; }
  #auditeurView .avf-topbar .nx-burger{ display:inline-flex; }
}

/* ═══ Dashboard auditeur — encart « Mes actions » : rangées en mini-cartes aérées ═══ */
#auditeurView .avx-act{
  display:flex; align-items:center; gap:13px; padding:13px 16px; margin-bottom:9px;
  background:#F8FAFD; border:1px solid #E7EDF6; border-radius:13px; cursor:pointer;
  transition:background .15s, border-color .15s, box-shadow .15s;
}
#auditeurView .avx-act:hover{ background:#EFF4FB; border-color:#CFDCEE; box-shadow:0 4px 14px -10px rgba(13,45,94,.35); }
#auditeurView .avx-act:last-of-type{ margin-bottom:0; }
#auditeurView .avx-act-ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:11px; font-size:17px; flex:0 0 auto;
}

/* ═══ Topnavs client + auditeur : VRAIS BOUTONS distincts (look topnav admin E2)
   — pill fond translucide + bordure, hover clair, actif dégradé orange. ═══ */
#clientView .topbar .nav{ gap:6px; }
#clientView .topbar .nav a{
  padding:8px 14px; border:1px solid rgba(255,255,255,.16); border-radius:11px;
  background:rgba(255,255,255,.07); color:#cfe0f7; font-size:12.5px; font-weight:600; gap:7px;
  transition:background .15s,color .15s,border-color .15s;
}
#clientView .topbar .nav a svg{ display:none; }
#clientView .topbar .nav a:hover{ background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.3); }
#clientView .topbar .nav a.on{ background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; border-color:transparent; font-weight:700; }
#clientView .topbar .nav a.on::after{ display:none; }
#auditeurView .avf-nav{ gap:6px; }
#auditeurView .avf-nav a{
  padding:8px 14px; border:1px solid rgba(255,255,255,.16); border-radius:11px;
  background:rgba(255,255,255,.07); color:#cfe0f7; font-size:12.5px; font-weight:600; gap:7px;
  transition:background .15s,color .15s,border-color .15s;
}
#auditeurView .avf-nav a svg{ display:none; }
#auditeurView .avf-nav a:hover{ background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.3); }
#auditeurView .avf-nav a.avf-on{ background:linear-gradient(135deg,#F97316,#EA580C); color:#fff; border-color:transparent; font-weight:700; }
#auditeurView .avf-nav a.avf-on::after{ display:none; }
/* compression : on réduit le padding des boutons au lieu de casser la ligne */
@media(max-width:1680px){ #clientView .topbar .nav a,#auditeurView .avf-nav a{ padding:7px 10px; font-size:12px; } }
@media(max-width:1540px){ #clientView .topbar .nav a,#auditeurView .avf-nav a{ padding:7px 8px; font-size:11.5px; } }
/* ═══ Écran laptop (MacBook 1280-1440) : la nav auditeur COMPRESSE encore au
   lieu de passer en hamburger — le burger reste réservé aux tablettes/mobiles
   (≤1180px + garde force-burger si débordement réel). Demande Selim 06/08. ═══ */
@media(max-width:1380px){
  #auditeurView .avf-nav a{ padding:6px 7px; font-size:11px; gap:4px; }
  #auditeurView .avf-nav{ gap:4px; }
  #auditeurView .avf-brand b{ font-size:12.5px; }
  #auditeurView .avf-brand i{ display:none; }
}

/* ═══ Garde anti-débordement : si la nav ne tient pas (quel que soit l'écran),
   la classe .force-burger (posée par nxNavGuard) bascule en hamburger.
   Corrige les onglets invisibles (ex : Non-conformités coupé entre 1440 et ~1700px). ═══ */
#clientView .topbar.force-burger .nav{ display:none; }
#clientView .topbar.force-burger.nav-open .nav{ display:flex !important; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; flex-wrap:nowrap; overflow:visible; background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B); padding:10px 16px 14px; gap:3px; box-shadow:0 18px 30px -18px rgba(10,34,73,.7); z-index:80; }
#clientView .topbar.force-burger.nav-open .nav a{ width:100%; justify-content:flex-start; font-size:14px; padding:11px 12px; }
#clientView .topbar.force-burger.nav-open .nav a svg{ display:inline-block; }
#clientView .topbar.force-burger .nx-burger{ display:inline-flex; }
#auditeurView .avf-topbar.force-burger .avf-nav{ display:none; }
#auditeurView .avf-topbar.force-burger.nav-open .avf-nav{ display:flex !important; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; flex-wrap:nowrap; overflow:visible; background:linear-gradient(90deg,#0A2249,#0d2d5e 60%,#123C7B); padding:10px 16px 14px; gap:3px; box-shadow:0 18px 30px -18px rgba(10,34,73,.7); z-index:80; }
#auditeurView .avf-topbar.force-burger.nav-open .avf-nav a{ width:100%; justify-content:flex-start; font-size:14px; padding:11px 12px; }
#auditeurView .avf-topbar.force-burger.nav-open .avf-nav a svg{ display:inline-block; }
#auditeurView .avf-topbar.force-burger .nx-burger{ display:inline-flex; }

/* ═══════════════ SMQ › Sauvegardes (#smq-pane-sauv) ═══════════════
   Journal de lecture seule des sauvegardes quotidiennes. Palette alignée
   sur la charte navy #0d2d5e. Grilles en minmax(0,1fr) (piège iPhone). */
#smq-pane-sauv{ --sv-navy:#0d2d5e; --sv-ink9:#0f172a; --sv-ink7:#334155; --sv-ink5:#64748b; --sv-ink2:#e2e8f0; --sv-ink1:#f1f5f9; }
#smq-pane-sauv .sv-wrap{ padding-bottom:26px; }

#smq-pane-sauv .sv-intro{ display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
#smq-pane-sauv .sv-intro-txt{ flex:1 1 380px; min-width:0; }
#smq-pane-sauv .sv-h1{ font-size:19px; font-weight:800; letter-spacing:-.2px; color:var(--sv-ink9); }
#smq-pane-sauv .sv-sub{ font-size:12.5px; color:var(--sv-ink5); line-height:1.55; margin-top:6px; max-width:70ch; }
#smq-pane-sauv .sv-intro-act{ display:flex; gap:9px; flex-wrap:wrap; align-items:center; }
#smq-pane-sauv .sv-intro-act button{ display:inline-flex; align-items:center; gap:7px; }
#smq-pane-sauv .sv-intro-act svg{ flex:none; }

#smq-pane-sauv .sv-msg{ border-radius:12px; padding:11px 14px; font-size:12.5px; font-weight:600; line-height:1.5; margin-bottom:14px; }
#smq-pane-sauv .sv-msg-info{ background:rgba(13,45,94,.06); color:var(--sv-navy); border:1px solid rgba(13,45,94,.16); }
#smq-pane-sauv .sv-msg-warn{ background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; }
#smq-pane-sauv .sv-msg-crit{ background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }
#smq-pane-sauv .sv-loading{ font-size:12.5px; color:var(--sv-ink5); padding:8px 0 14px; }

#smq-pane-sauv .sv-tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px; margin-bottom:24px; }
#smq-pane-sauv .sv-tile{ background:#fff; border:1px solid var(--sv-ink2); border-radius:16px; padding:14px 16px; box-shadow:0 1px 2px rgba(15,23,42,.04); min-width:0; }
#smq-pane-sauv .sv-tile-lab{ display:flex; align-items:center; gap:7px; font-size:11.5px; font-weight:700; color:var(--sv-ink5); text-transform:uppercase; letter-spacing:.03em; }
#smq-pane-sauv .sv-tile-val{ font-size:21px; font-weight:800; color:var(--sv-navy); line-height:1.15; margin-top:9px; letter-spacing:-.02em; overflow-wrap:anywhere; }
#smq-pane-sauv .sv-tile-sub{ font-size:12px; color:var(--sv-ink7); margin-top:6px; line-height:1.45; overflow-wrap:anywhere; }

#smq-pane-sauv .sv-led{ width:8px; height:8px; border-radius:50%; flex:none; display:inline-block; }
#smq-pane-sauv .sv-led.ok{ background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.15); }
#smq-pane-sauv .sv-led.warn{ background:#f59e0b; box-shadow:0 0 0 3px rgba(245,158,11,.15); }
#smq-pane-sauv .sv-led.crit{ background:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.15); }
#smq-pane-sauv .sv-led.idle{ background:#94a3b8; box-shadow:0 0 0 3px rgba(148,163,184,.15); }

#smq-pane-sauv .sv-seclabel{ font-size:11.5px; font-weight:800; color:var(--sv-ink5); text-transform:uppercase; letter-spacing:.06em; margin:0 0 11px; }
#smq-pane-sauv .sv-hint{ text-transform:none; letter-spacing:0; font-weight:600; color:var(--sv-ink5); opacity:.8; }

#smq-pane-sauv .sv-log{ display:flex; flex-direction:column; gap:14px; margin-bottom:26px; }
#smq-pane-sauv .sv-day{ background:#fff; border:1px solid var(--sv-ink2); border-radius:16px; overflow:hidden; box-shadow:0 1px 2px rgba(15,23,42,.04); }
#smq-pane-sauv .sv-day-h{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; padding:10px 16px; background:var(--sv-ink1); border-bottom:1px solid var(--sv-ink2); font-size:12.5px; font-weight:800; color:var(--sv-navy); }
#smq-pane-sauv .sv-badge{ font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; background:var(--sv-navy); color:#fff; border-radius:999px; padding:2px 8px; }
#smq-pane-sauv .sv-item{ display:flex; align-items:center; gap:14px; padding:12px 16px; border-top:1px solid var(--sv-ink1); }
#smq-pane-sauv .sv-day .sv-item:first-of-type{ border-top:0; }
#smq-pane-sauv .sv-item-h{ flex:none; width:52px; font-size:13px; font-weight:800; color:var(--sv-navy); font-variant-numeric:tabular-nums; }
#smq-pane-sauv .sv-item-m{ flex:1 1 auto; min-width:0; }
#smq-pane-sauv .sv-item-t{ font-size:13px; font-weight:700; color:var(--sv-ink9); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#smq-pane-sauv .sv-item-d{ font-size:12px; color:var(--sv-ink5); margin-top:3px; line-height:1.45; overflow-wrap:anywhere; }
#smq-pane-sauv .sv-item-s{ flex:none; display:flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--sv-ink7); white-space:nowrap; }
#smq-pane-sauv .sv-empty{ background:#fff; border:1px dashed var(--sv-ink2); border-radius:16px; padding:22px 16px; text-align:center; font-size:12.5px; color:var(--sv-ink5); }

#smq-pane-sauv .sv-tag{ font-size:10.5px; font-weight:700; border-radius:999px; padding:2px 8px; white-space:nowrap; }
#smq-pane-sauv .sv-tag-blue{ background:rgba(13,45,94,.08); color:var(--sv-navy); }
#smq-pane-sauv .sv-tag-red{ background:#fef2f2; color:#991b1b; }

#smq-pane-sauv .sv-cols{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#smq-pane-sauv .sv-card{ background:#fff; border:1px solid var(--sv-ink2); border-radius:16px; overflow:hidden; box-shadow:0 1px 2px rgba(15,23,42,.04); min-width:0; }
#smq-pane-sauv .sv-card-h{ display:flex; align-items:center; gap:9px; padding:12px 16px; background:var(--sv-ink1); border-bottom:1px solid var(--sv-ink2); font-size:12.5px; font-weight:800; color:var(--sv-navy); }
#smq-pane-sauv .sv-card-h svg{ width:16px; height:16px; flex:none; }
#smq-pane-sauv .sv-card-b{ padding:14px 16px; font-size:12.5px; color:var(--sv-ink7); line-height:1.55; }
#smq-pane-sauv .sv-muted{ font-size:12.5px; color:var(--sv-ink5); line-height:1.55; }
#smq-pane-sauv .sv-ret-h{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-weight:700; color:var(--sv-ink9); margin-bottom:9px; }
#smq-pane-sauv .sv-ret-l{ margin:0; padding-left:18px; }
#smq-pane-sauv .sv-ret-l li{ margin:5px 0; }
#smq-pane-sauv .sv-steps{ margin:0; padding-left:19px; }
#smq-pane-sauv .sv-steps li{ margin:0 0 9px; }
#smq-pane-sauv .sv-note{ margin-top:12px; font-size:11.5px; color:var(--sv-ink5); line-height:1.5; }
#smq-pane-sauv .sv-note code, #smq-pane-sauv .sv-muted code{ background:var(--sv-ink1); border-radius:5px; padding:1px 5px; font-size:11px; overflow-wrap:anywhere; }
#smq-pane-sauv .sv-warn{ margin-top:11px; background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; border-radius:10px; padding:9px 12px; font-size:11.5px; line-height:1.5; font-weight:600; }

/* Tablette portrait */
@media (max-width:1024px){
  #smq-pane-sauv .sv-cols{ grid-template-columns:minmax(0,1fr); }
  #smq-pane-sauv .sv-tiles{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* Téléphone portrait */
@media (max-width:640px){
  #smq-pane-sauv .sv-intro-act{ width:100%; }
  #smq-pane-sauv .sv-intro-act button{ flex:1 1 auto; justify-content:center; }
  #smq-pane-sauv .sv-tiles{ grid-template-columns:minmax(0,1fr); }
  #smq-pane-sauv .sv-tile-val{ font-size:19px; }
  #smq-pane-sauv .sv-item{ flex-wrap:wrap; gap:4px 12px; padding:12px 14px; }
  #smq-pane-sauv .sv-item-h{ width:auto; }
  #smq-pane-sauv .sv-item-m{ flex:1 1 100%; order:3; }
  #smq-pane-sauv .sv-item-s{ margin-left:auto; }
  #smq-pane-sauv .sv-day-h{ padding:10px 14px; font-size:12px; }
  #smq-pane-sauv .sv-card-b{ padding:13px 14px; }
}

/* ═══════════ Droits d'accès par onglet (fiche membre + création) ═══════════ */
.nx-acc-box{ border:1px solid #e2e8f0; border-radius:12px; padding:12px 14px; background:#f8fafc; }
.nx-acc-g{ font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#64748b; margin:10px 0 7px; }
.nx-acc-g:first-child{ margin-top:0; }
.nx-acc-l{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:6px 12px; }
.nx-acc-i{ display:flex; align-items:center; gap:8px; font-size:13px; color:#334155; cursor:pointer; padding:5px 7px; border-radius:8px; background:#fff; border:1px solid #e2e8f0; min-width:0; }
.nx-acc-i:hover{ border-color:#c7d2e4; }
.nx-acc-i input{ width:15px; height:15px; accent-color:#0d2d5e; flex:none; cursor:pointer; }
.nx-acc-i span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nx-acc-note{ font-size:12.5px; color:#6b7280; line-height:1.55; margin:0 0 14px; }
@media (max-width:640px){ .nx-acc-l{ grid-template-columns:minmax(0,1fr); } }

/* ═══════ Tableau de bord entièrement flouté (membre interne) ═══════
   Confort de confidentialité à l'écran, PAS une barrière de sécurité :
   pour rendre les données réellement inaccessibles, ne pas accorder l'onglet. */
body.nx-blur-dash #tab-dashboard{ filter:blur(11px) !important; -webkit-filter:blur(11px) !important; pointer-events:none !important; user-select:none !important; -webkit-user-select:none !important; }
#nx-blur-note{ display:none; position:fixed; left:50%; transform:translateX(-50%); bottom:22px; z-index:120; align-items:center; gap:9px; background:#0d2d5e; color:#fff; border-radius:999px; padding:10px 18px; font-size:12.5px; font-weight:700; box-shadow:0 12px 30px -12px rgba(13,45,94,.6); max-width:calc(100vw - 32px); }
#nx-blur-note svg{ width:16px; height:16px; flex:none; }
#nx-blur-note span{ overflow:hidden; text-overflow:ellipsis; }
.nx-acc-blur{ display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:11px 13px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; font-size:13px; color:#334155; cursor:pointer; }
.nx-acc-blur input{ width:15px; height:15px; accent-color:#0d2d5e; flex:none; margin-top:2px; cursor:pointer; }
.nx-acc-blur-s{ display:block; font-weight:400; font-size:12px; color:#64748b; line-height:1.5; margin-top:3px; }
@media (max-width:640px){ #nx-blur-note{ bottom:76px; font-size:12px; padding:9px 14px; } }

/* ══ Onglets Instruction — zéro défilement horizontal sous 1200 px ═════════
   Revue, Contrat, ODM et Plan doivent tenir en entier sur une ligne client,
   sur PC comme sur iPad : Selim ne veut jamais avoir à faire défiler.
   La largeur minimale des tables suffisait sur grand écran mais pas sur un
   portable 13" ni sur iPad. Sous 1200 px on passe donc en largeur FIGÉE
   (`table-layout:fixed` + `width:100%`) : la table ne peut mathématiquement
   plus dépasser son cadre. Les cellules replient, la raison sociale garde la
   part du lion, la pastille document conserve une largeur fixe.
   Ce bloc est volontairement placé en fin de feuille pour passer après les
   règles iPad/iPhone existantes. */
@media (max-width:1200px){
  .ndrev-wrap,.ndcon-wrap{overflow-x:hidden}
  #adminView .ndrev-t,#adminView .ndcon-t{min-width:0 !important;width:100%;table-layout:fixed;font-size:11.4px}
  /* `break-word` et non `anywhere` : les mots ne se coupent qu'en dernier
     recours, sinon on obtient « MONTA / NT HT » ou « Zelma / t ». */
  /* `!important` obligatoire : `.card table thead th` (ligne ~7620) impose
     déjà 11 px / 10-12 px en !important à TOUTES les tables de carte.
     Sans cela nos en-têtes gardaient leur taille desktop et se coupaient
     en plein milieu des mots (« MONTA / NT HT »). */
  #adminView .ndrev-t thead th,#adminView .ndcon-t thead th{padding:7px 4px !important;font-size:9.4px !important;letter-spacing:0 !important;white-space:normal !important;overflow-wrap:break-word;word-break:normal;hyphens:none;line-height:1.2}
  /* `font-size` en !important : plusieurs cellules portent une taille en
     style inline (12,5 px) héritée du desktop — sans cela « 28/07/2026 »
     ou « Complet » se coupaient en deux dans une colonne de 77 px. */
  #adminView .ndrev-t td,#adminView .ndcon-t td{padding:7px 4px !important;font-size:10.6px !important;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:none}
  #adminView .ndcell-org .o{font-size:11.2px !important}
  /* Les jetons colorés (auditeur, type) replient au lieu de déborder sur la
     colonne voisine ; seul le montant reste insécable. */
  #adminView .ndrev-t td span,#adminView .ndcon-t td span{max-width:100%}
  #adminView .ndcon-amt{white-space:nowrap}
  #adminView .ndrev-pill,#adminView .ndcon-pill{display:inline-block;font-size:9.6px;padding:3px 6px;white-space:normal;line-height:1.25;max-width:100%}
  #adminView .ndrev-pill i,#adminView .ndcon-pill i{display:inline-block;vertical-align:middle;margin-right:4px}
  #adminView .ndcell-org{max-width:none}
  #adminView .ndcell-org .o{white-space:normal;overflow:visible;font-size:11.4px;line-height:1.2}
  #adminView .ndcell-org .s{white-space:normal;overflow:visible;font-size:9.6px}
  #adminView .ndcell-txt{max-width:none;overflow:visible}
  #adminView .nd2l,#adminView .nd2l span{white-space:nowrap !important;font-size:10.6px}
  #adminView .nd2l span.s{font-size:9.6px}
  /* Chevron et pastille : largeurs fixes, tout le reste se partage la place. */
  #adminView .ndrev-t th:first-child,#adminView .ndrev-t td:first-child,
  #adminView .ndcon-t th:first-child,#adminView .ndcon-t td:first-child{width:26px;padding-left:3px;padding-right:0}

  /* Largeurs par colonne : chaque table a son propre equilibre. La raison
     sociale prend la plus grosse part, la pastille document reste fixe. */
  #adminView #ndrev-wrap .ndrev-t th:nth-child(2){width:20%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(3){width:12%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(4){width:13%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(5){width:12%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(6){width:10%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(7){width:15%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(2){width:20%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(3){width:13%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(4){width:9%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(5){width:11%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(6){width:14%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(7){width:11%}
  #adminView #ndcon-wrap .ndcon-t th:nth-child(9){width:13%}
  #adminView #ndcon-wrap .ndcon-t td:nth-child(7){white-space:nowrap}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(2){width:20%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(4){width:13%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(5){width:10%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(6){width:11%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(7){width:15%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(8){width:12%}
  #adminView #ndodm-wrap .ndcon-t th:nth-child(9){width:13%}
  /* Plan d'audit : 7 colonnes (Type et « Envoyé le » retirées). */
  #adminView #ndpa-wrap .ndcon-t th:nth-child(2){width:26%}
  #adminView #ndpa-wrap .ndcon-t th:nth-child(3){width:9%}
  #adminView #ndpa-wrap .ndcon-t th:nth-child(4){width:17%}
  #adminView #ndpa-wrap .ndcon-t th:nth-child(5){width:20%}
  #adminView #ndpa-wrap .ndcon-t th:nth-child(6){width:16%}
  #adminView #ndrev-wrap .ndrev-t th:nth-child(8),
  #adminView #ndcon-wrap .ndcon-t th:nth-child(8),
  #adminView #ndodm-wrap .ndcon-t th:nth-child(3),
  #adminView #ndpa-wrap  .ndcon-t th:nth-child(7){width:38px;padding-left:2px !important;padding-right:2px !important;text-align:center}
  #adminView .ndinstr-c{width:34px !important;padding-left:2px !important;padding-right:2px !important}
  #adminView .ndinstr-doc{width:23px;height:23px}
  #adminView .ndinstr-doc svg{width:12px;height:12px}
  #adminView .ndrev-open,#adminView .ndcon-open{width:20px;height:20px;font-size:12px;padding:0}

  /* En-têtes abrégés sous 1200 px : les libellés complets ne tiennent pas dans
     des colonnes de 70 px et se coupaient au milieu des mots. Le libellé long
     reste affiché sur grand écran. */
  #adminView .ndrev-t thead th,#adminView .ndcon-t thead th{overflow:hidden}
  #adminView #ndrev-wrap th:nth-child(5),#adminView #ndrev-wrap th:nth-child(7),
  #adminView #ndrev-wrap th:nth-child(8),
  #adminView #ndcon-wrap th:nth-child(5),#adminView #ndcon-wrap th:nth-child(6),
  #adminView #ndcon-wrap th:nth-child(8),
  #adminView #ndodm-wrap th:nth-child(3),#adminView #ndodm-wrap th:nth-child(6),
  #adminView #ndodm-wrap th:nth-child(8),#adminView #ndodm-wrap th:nth-child(9),
  #adminView #ndpa-wrap th:nth-child(6),#adminView #ndpa-wrap th:nth-child(7){font-size:0 !important}
  #adminView #ndrev-wrap th:nth-child(5)::after{content:"Resp."}
  #adminView #ndrev-wrap th:nth-child(7)::after{content:"Statut"}
  #adminView #ndrev-wrap th:nth-child(8)::after{content:"PDF"}
  #adminView #ndcon-wrap th:nth-child(5)::after{content:"Montant"}
  #adminView #ndcon-wrap th:nth-child(6)::after{content:"Statut"}
  #adminView #ndcon-wrap th:nth-child(8)::after{content:"PDF"}
  #adminView #ndodm-wrap th:nth-child(3)::after{content:"PDF"}
  #adminView #ndodm-wrap th:nth-child(6)::after{content:"Type"}
  #adminView #ndodm-wrap th:nth-child(8)::after{content:"Dates"}
  #adminView #ndodm-wrap th:nth-child(9)::after{content:"Typologie"}
  #adminView #ndpa-wrap th:nth-child(6)::after{content:"Statut"}
  #adminView #ndpa-wrap th:nth-child(7)::after{content:"PDF"}
  #adminView .ndrev-t thead th::after,#adminView .ndcon-t thead th::after{font-size:9.4px;font-weight:800;text-transform:uppercase;color:#9aa6bd}
}

/* ══ MODE AUDIT COFRAC — masquages réversibles ═════════════════════════════
   Tout passe par la classe `nx-cofrac` posée sur <body> : aucun contenu n'est
   supprimé, on ne fait que le cacher. Désactiver l'interrupteur (Paramètres ›
   Profil, visible pour le seul compte administrateur principal) rétablit tout
   à l'identique. Aucun libellé à l'écran ne doit trahir le mode : ce qui est
   retiré a simplement l'air de ne pas exister. */
/* Les dates de traçabilité (.nxd) restent AFFICHÉES : les helpers les rendent
   en texte figé. Filet de sécurité si un champ résiduel s'y glissait encore : */
body.nx-cofrac .nxd input{pointer-events:none;border-color:transparent !important;background:transparent !important;box-shadow:none !important;padding:0;appearance:none;-webkit-appearance:none}
body.nx-cofrac .nxd input::-webkit-calendar-picker-indicator{display:none}
body.nx-cofrac .nxside-activite{display:none !important}        /* panneau « Activité du dossier » */
body.nx-cofrac .ndcon-trace .ts:empty{display:none}
/* Pas de bandeau : le mode doit être invisible à l'écran. Le seul rappel qu'il
   tourne est l'interrupteur lui-même, dans Paramètres › Profil. */

/* ── Navigation ── */
body.nx-cofrac .nav-item[data-tab="mail"]{display:none !important}          /* Boîte mail */
body.nx-cofrac #tab-mail{display:none !important}
body.nx-cofrac .topbar .search{display:none !important}                     /* recherche globale (loupe) */

/* ── Assistante IDA ── */
body.nx-cofrac #nx-asst-fab{display:none !important}
body.nx-cofrac #nx-asst-panel{display:none !important}

/* ── Tableau de bord : Brief du jour, Finances (03), Flux (05),
      Équipe/terrain/système (06) — les zones restantes se renumérotent
      via _nxCofracZones(). ── */
body.nx-cofrac #dash-brief-panel{display:none !important}
body.nx-cofrac #dash-profit-kpis{display:none !important}
body.nx-cofrac #dash-zone-flux{display:none !important}
body.nx-cofrac #dash-zone-equipe{display:none !important}
body.nx-cofrac .nxd-gday{grid-template-columns:1fr 1fr}                     /* la grille « journée » sans le brief */
body.nx-cofrac #dash-overdue-panel{display:none !important}                 /* relances financières (alertes) */
body.nx-cofrac #dash-health-alert{display:none !important}                  /* santé système (alertes) */

/* ── Paramètres : seuls Profil, RGPD et À propos restent ── */
body.nx-cofrac .params-tab[data-psec="apparence"],
body.nx-cofrac .params-tab[data-psec="securite"],
body.nx-cofrac .params-tab[data-psec="integrations"],
body.nx-cofrac .params-tab[data-psec="organisation"],
body.nx-cofrac .params-tab[data-psec="sante"],
body.nx-cofrac .params-panel[data-psec="apparence"],
body.nx-cofrac .params-panel[data-psec="securite"],
body.nx-cofrac .params-panel[data-psec="integrations"],
body.nx-cofrac .params-panel[data-psec="organisation"],
body.nx-cofrac .params-panel[data-psec="sante"]{display:none !important}

/* ── Comptabilité : solde global seul, sans le détail interne ── */
body.nx-cofrac #fact-accounts-row{display:none !important}                  /* cartes des sous-comptes */
body.nx-cofrac #fact-account-select{display:none !important}                /* sélecteur de comptes (avec soldes) */
body.nx-cofrac #fc-resultat-card{display:none !important}                   /* Résultat — année en cours */
body.nx-cofrac #fc-repart-card{display:none !important}                     /* Répartition des flux */
body.nx-cofrac #fc-rap-card{display:none !important}                        /* Rapprochement dossiers */
body.nx-cofrac #fc-enc-card{display:none !important}                        /* Encaissements & relances */
body.nx-cofrac .fc-grid .fc-side{display:none !important}                   /* colonne latérale entière */
body.nx-cofrac .fc-grid{grid-template-columns:minmax(0,1fr)}                /* Transactions pleine largeur */
body.nx-cofrac #ap-dup-btn{display:none !important}                         /* 🧹 nettoyage des audits (honoraires) */
body.nx-cofrac #am-style-block{display:none !important}                     /* 🖋️ Style rédactionnel IA (fiche membre) */

/* ── Dossiers : imports & rattrapages JotForm ── */
body.nx-cofrac [onclick^="ndImportOpen"]{display:none !important}           /* ⇩ Importer JotForm (demandes) */
body.nx-cofrac [onclick^="revImportOpen"]{display:none !important}          /* ⇩ Importer revue JotForm */

/* ── Dossiers : onglet Non-conformités — import natif d'une fiche (22/08/2026).
   Le bouton et les actions Modifier / Supprimer d'une fiche importée ne sont
   déjà pas RENDUS sous cofrac (gardes JS dans ndNcRender) ; ces règles sont le
   filet, comme pour #ap-dup-btn. ── */
body.nx-cofrac #ndnc-imp-btn{display:none !important}                       /* 📥 Importer une non-conformité */
body.nx-cofrac [onclick^="ndNcImpOpen"]{display:none !important}            /* ✎ Modifier une fiche importée */
body.nx-cofrac [onclick^="ndNcImpDelete"]{display:none !important}          /* 🗑 Supprimer une fiche importée */

/* ── Dossiers : onglet Transmission Collecteur ──
   (le rappel quotidien du tableau de bord, lui, RESTE affiché — demande Selim
   14/08 : l'envoi au collecteur est une obligation Qualiopi, il se montre) ── */
body.nx-cofrac #dos-tab-collecteur{display:none !important}
body.nx-cofrac #dos-sub-collecteur{display:none !important}

/* ── Tableau de bord : carte des auditeurs ── */
body.nx-cofrac #cau-section{display:none !important}

/* ── Dossiers : attestations sur l'honneur en consultation seule ── */
body.nx-cofrac .nd3-att{pointer-events:none}

/* ── Dossiers : contrat signé & ODM signé — ni Remplacer, ni Supprimer ── */
body.nx-cofrac [onclick^="ndConSignedRemove"]{display:none !important}
body.nx-cofrac [onclick^="ndOdmSignedRemove"]{display:none !important}
body.nx-cofrac label:has(> input[onchange^="ndConSignedUpload"]){display:none !important}
body.nx-cofrac label:has(> input[onchange^="ndOdmSignedUpload"]){display:none !important}

/* ── Dossiers : revue de la demande signée & revue de décision ── */
body.nx-cofrac [onclick^="ndRevReopen"]{display:none !important}            /* ✎ Modifier la revue (signée) */
body.nx-cofrac [onclick^="rdEditRevue"]{display:none !important}            /* ✎ Modifier (revue de décision) */

/* ── Dossiers : satisfaction — pas de saisie ni de retouche admin ── */
body.nx-cofrac [onclick*="ndSatEditStart"]{display:none !important}

/* ── Rapports d'audit : consultation pure ── */
body.nx-cofrac [onclick^="arOpenAnalyse"]{display:none !important}          /* 🔍 Analyser (IA) */
body.nx-cofrac [onclick^="rapAddReportRow"]{display:none !important}
body.nx-cofrac [onclick^="rapDelReportRow"]{display:none !important}
body.nx-cofrac [onclick*="rapSetAncien"]{display:none !important}
body.nx-cofrac [onclick*="rapFileImpOpen"]{display:none !important}    /* 📥 Remplacer / importer un rapport fichier */
body.nx-cofrac [onclick^="ndPresDel"]{display:none !important}              /* suppression d'une feuille de présence */
body.nx-cofrac [onclick^="ndPresManRemove"]{display:none !important}
body.nx-cofrac div:has(> button[onclick^="prsImpOpen"]){display:none !important} /* import natif d'une feuille */
/* Les champs du rapport gardent leur apparence d'origine : on les fige par
   readOnly (_nxRapReadonly) pour que tout reste lisible — défilement et
   agrandissement des zones de texte compris. Seules les listes déroulantes
   sont neutralisées ici. */
body.nx-cofrac #nd3-dsub-rapport .rp-f select{pointer-events:none}

/* ── SMQ Documents : pas d'édition des documents du SMQ ── */
body.nx-cofrac [onclick^="sdToggleEdit"]{display:none !important}
body.nx-cofrac [onclick^="sdNoteEdit"]{display:none !important}

/* ── SMQ Entretiens & compétences : l'historique se consulte, ne se corrige pas ── */
body.nx-cofrac #fmc-modal .fmc-modal-body input,
body.nx-cofrac #fmc-modal .fmc-modal-body select,
body.nx-cofrac #fmc-modal .fmc-modal-body textarea{pointer-events:none}
body.nx-cofrac #fmc-modal [onclick^="fmcDelEntretien"],
body.nx-cofrac #fmc-modal [onclick^="fmcUpdatePerf"],
body.nx-cofrac #fmc-modal [onclick^="fmcUpdatePro"],
body.nx-cofrac #fmc-modal [onclick^="fmcDelHarmo"],
body.nx-cofrac #fmc-modal [onclick^="fmcUpdateHarmo"]{display:none !important}

/* ── SMQ Réunions : une séance déjà tenue est cristallisée (classe rqx-fige
      posée par rqxRender) — champs figés, seuls Retour et PDF restent. ── */
body.nx-cofrac .rqx-fige input,
body.nx-cofrac .rqx-fige select,
body.nx-cofrac .rqx-fige textarea,
body.nx-cofrac .rqx-fige [contenteditable]{pointer-events:none}
body.nx-cofrac .rqx-fige .rqx-x{display:none !important}
body.nx-cofrac .rqx-fige .rqx-ob{display:none !important}
body.nx-cofrac .rqx-fige .rqx-tb button{pointer-events:none}
body.nx-cofrac .rqx-fige .rqx-b:not([onclick^="rqxClose"]):not([onclick^="rqxPdf"]){display:none !important}
body.nx-cofrac .rqx-fige label:has(> input[type="file"]){display:none !important}

/* ── Communication : bandeau replié, satisfaction sans trace d'import ── */
body.nx-cofrac #tab-communication .comm-band{display:none !important}
body.nx-cofrac #sat-import-btn{display:none !important}
body.nx-cofrac .sat-src{display:none !important}

/* ── Fiche client (moteur cm) : onglet Échanges mail ── */
body.nx-cofrac #cm-tab-emails{display:none !important}
body.nx-cofrac #cm-emails{display:none !important}

/* ── 22/08/2026 (Selim) — complement du mode audit COFRAC ──
   Meme principe : rien n'est supprime, tout revient a la desactivation. */
body.nx-cofrac .dq-mask-link{display:none !important}                    /* « N mises de cote » sous la file A traiter */
body.nx-cofrac .nx-pres-code{display:none !important}                    /* carte « Code de presence (jour d'audit) » */
body.nx-cofrac #fc-kpi-impayes{display:none !important}                  /* carre « Impayes clients » (comptabilite) */
body.nx-cofrac #qpMb-list-view .qpml-card.boite{display:none !important} /* compte superadmin (boite partagee contact@) */
body.nx-cofrac #nxRgpdaSub [data-rgpd-tab="consentements"]{display:none !important}
body.nx-cofrac #nxrga-consentements{display:none !important}             /* RGPD › Consentements */

/* ── Onglet Contrat : blocs depliables (Donnees du contrat, Duree & cout) ──
   Fermes par defaut ; l'etat est retenu par navigateur (ndConFoldToggle). */
.ndcon-fold>.ndcon-ph,.ndcon-fold>h3{cursor:pointer;-webkit-user-select:none;user-select:none}
.ndcon-fold>.ndcon-pb,.ndcon-fold>.ndcon-foldb{display:none}
.ndcon-fold.open>.ndcon-pb,.ndcon-fold.open>.ndcon-foldb{display:block}
.ndcon-fold-x{display:inline-flex;align-items:center;color:#9aa6bd;transition:transform .18s ease}
.ndcon-fold-x svg{width:16px;height:16px}
.ndcon-fold.open .ndcon-fold-x{transform:rotate(180deg)}
.ndcon-calc.ndcon-fold>h3{margin-bottom:0}
.ndcon-calc.ndcon-fold.open>h3{margin-bottom:11px}
.ndcon-calc .ndcon-fold-x{color:#8ea6d4}

/* Champ date posé directement dans une ligne de liste (revue, contrat). */
.nd-inline-date{
  border:1px solid #dbe3f0;background:#f8fafc;border-radius:7px;
  padding:3px 6px;font:inherit;font-size:11.6px;color:#0d2d5e;cursor:pointer;max-width:118px;
}
.nd-inline-date:hover{border-color:#2563eb;background:#f2f7ff}
/* Même emplacement, mais en lecture seule (mode audit COFRAC) : ni cadre, ni
   curseur, ni survol — la date se lit comme du texte et ne se modifie pas. */
.nd-inline-date.lu{
  border:0;background:transparent;cursor:default;padding:0;max-width:none;
  font:inherit;color:inherit;   /* se fond dans la ligne au lieu de former un bloc */
}
.nd-inline-date.lu:hover{border:0;background:transparent}
@media (max-width:1200px){ #adminView .nd-inline-date{font-size:10px;padding:2px 4px;max-width:100%} }

/* Revue réalisée : consulter (lecture seule) vs modifier (rouvre la check-list). */
.ndrev-doneacts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.ndrev-dact{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #d7e2f4;color:#0d2d5e;
  border-radius:10px;padding:9px 16px;font:inherit;font-weight:800;font-size:13px;cursor:pointer;transition:.15s}
.ndrev-dact:hover{border-color:#0d4fb2;box-shadow:0 2px 10px rgba(13,79,178,.12)}
.ndrev-dact.primary{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.ndrev-dact.primary:hover{background:#0d4fb2;border-color:#0d4fb2}
@media (max-width:520px){.ndrev-dact{flex:1 1 100%;justify-content:center}}

/* Liste ODM : champs modifiables directement sur la ligne (date, auditeur,
   paiement). Compacts et en largeur 100 % : la contrainte « zéro scroll
   horizontal » prime, y compris sur iPad. */
.ndodm-ed{font:inherit;font-size:11.5px;font-weight:700;color:#0d2d5e;background:#fff;
  border:1px solid #dbe3ee;border-radius:7px;padding:3px 5px;width:100%;max-width:100%;
  box-sizing:border-box;cursor:pointer;transition:border-color .12s}
.ndodm-ed:hover{border-color:#0d4fb2}
.ndodm-ed:focus{outline:none;border-color:#0d4fb2;box-shadow:0 0 0 2px rgba(13,79,178,.12)}
.ndodm-ed.aud{background:#e3f2fd;border-color:#bcd8f5;color:#1565c0}
.ndodm-ed.pay.ok{background:#e8f6ee;border-color:#c8e6d3;color:#14663a}
.ndodm-ed.pay.part{background:#fff7ed;border-color:#fed7aa;color:#9a4a06}
/* La règle globale `.nd2l{white-space:nowrap!important}` (deux dates empilées)
   empêchait le bouton « + jour 2 » de passer à la ligne : il débordait sur la
   colonne voisine. Dans CETTE cellule, le contenu peut revenir à la ligne. */
td.ndodm-dates{min-width:0;overflow:hidden}
#adminView td.ndodm-dates,#adminView td.ndodm-dates *{white-space:normal!important}
.ndodm-l2{display:flex;align-items:center;gap:3px;margin-top:3px;min-width:0}
/* Le champ prend la place restante APRÈS la croix : en `width:100%` il poussait
   la croix hors de la cellule, sur la colonne voisine. */
.ndodm-l2 .ndodm-ed{flex:1 1 auto;width:auto;min-width:0}
.ndodm-x{border:none;background:transparent;color:#c0392b;font-weight:800;font-size:12px;
  cursor:pointer;padding:0 2px;line-height:1;flex:none}
.ndodm-plus{display:block;width:100%;box-sizing:border-box;text-align:center;
  margin-top:3px;border:1px dashed #cbd7e8;background:#fff;color:#66758f;
  border-radius:7px;padding:2px 4px;font:inherit;font-size:10.5px;font-weight:700;cursor:pointer}
.ndodm-plus:hover{border-color:#0d4fb2;color:#0d4fb2}
@media (max-width:1200px){
  .ndodm-ed{font-size:10.5px!important;padding:2px 3px!important}
  .ndodm-plus{font-size:9.5px!important;padding:1px 4px!important}
}

/* ══ Barre de tri par statut des listes Instruction (contrat / ODM / plan) ══
   Segments compacts avec leur compteur. Le compteur est la moitié de
   l'information : Selim doit voir la répartition sans cliquer. */
.instr-stat{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.instr-stat .instr-seg{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);
  background:#fff;color:#46506a;border-radius:999px;padding:6px 12px;font:inherit;font-size:12.5px;
  font-weight:700;cursor:pointer;line-height:1.1;white-space:nowrap}
.instr-stat .instr-seg:hover{border-color:#0d2d5e;color:#0d2d5e}
.instr-stat .instr-seg b{font-size:11.5px;font-weight:800;background:#eef2f9;color:#5a6b84;
  border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}
.instr-stat .instr-seg.on{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.instr-stat .instr-seg.on b{background:rgba(255,255,255,.22);color:#fff}
.instr-stat .instr-seg.vide{opacity:.5}
.instr-stat .instr-seg.vide.on{opacity:1}
@media (max-width:820px){ .instr-stat .instr-seg{padding:6px 10px;font-size:12px} }
/* Pastilles de notification des onglets : cliquables → onglet + filtre */
.dck-nb{cursor:pointer}
.dck-nb:hover{filter:brightness(1.12)}

/* Statut d'envoi modifiable depuis la ligne (liste Plan d'audit).
   Même gabarit que .nd-inline-date : ça se corrige sans ouvrir le dossier. */
.nd-inline-statut{border:1px solid #cbd5e1;background:#f4f6fa;color:#5a6b84;font:inherit;
  font-size:.78rem;font-weight:800;padding:3px 8px;border-radius:7px;cursor:pointer;max-width:100%}
.nd-inline-statut.ok{background:#eaf7ef;border-color:#bfe3cd;color:#0f7a4d}
.nd-inline-statut:focus{outline:2px solid #0d2d5e;outline-offset:1px}

/* Pastille « doublon ? » sur une ligne de la table Demandes.
   Signalée par le contrôle serveur à la création ; cliquable → écran de fusion. */
.nx2-dblwarn{display:inline-block;margin-left:6px;vertical-align:middle;background:#fff4e6;border:1px solid #fcd9a8;
  color:#b45309;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:800;cursor:pointer;white-space:nowrap;line-height:1.5}
.nx2-dblwarn:hover{background:#ffe8cc;border-color:#f5b969}

/* ══════════════════════════════════════════════════════════════════════════
   ODM › Mission & dates — sélecteur de date d'audit (07/08/2026)
   Un auditeur ne peut pas être à deux endroits le même jour : le calendrier
   montre ses dates prises et refuse le clic dessus.
   Grille en minmax(0,1fr) — avec 1fr les 7 colonnes débordent sur iPhone.
   ══════════════════════════════════════════════════════════════════════════ */
.nddtp-wrap{display:flex;align-items:center;gap:6px}
.nddtp-btn{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dbe4f0;
  border-radius:9px;padding:9px 11px;font:inherit;font-size:.9rem;font-weight:600;color:#95a2b8;
  cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}
.nddtp-btn svg{width:16px;height:16px;flex:none;color:#0d2d5e;opacity:.75}
.nddtp-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nddtp-btn.has{color:#12203a}
.nddtp-btn:hover{border-color:#0d2d5e;box-shadow:0 0 0 3px rgba(13,45,94,.08)}
.nddtp-x{flex:none;width:30px;height:30px;border:1px solid #e6ecf5;background:#f6f8fc;color:#8494ad;
  border-radius:8px;font-size:12px;cursor:pointer;line-height:1}
.nddtp-x:hover{background:#fdecec;border-color:#f6c9c9;color:#c0392b}

#nddtp-modal{display:none;position:fixed;inset:0;z-index:9962;background:rgba(10,25,50,.55);
  align-items:center;justify-content:center;padding:16px;overflow-y:auto}
#nddtp-modal.visible{display:flex}
#nddtp-modal .box{background:#fff;border-radius:16px;padding:20px;max-width:430px;width:100%;
  box-shadow:0 24px 60px rgba(10,30,60,.35);margin:auto}
.nddtp-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.nddtp-hd .k{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#0d2d5e}
.nddtp-hd .v{font-size:15px;font-weight:800;color:#12203a;margin-top:2px;line-height:1.3}
.nddtp-close{border:none;background:#eef2f8;color:#5a6b84;border-radius:9px;width:32px;height:32px;
  font-size:14px;cursor:pointer;flex:none}
.nddtp-aud{background:#f1f5fb;border-left:3px solid #0d2d5e;border-radius:0 8px 8px 0;padding:8px 11px;
  font-size:12.3px;color:#3d4c68;margin-bottom:12px;line-height:1.5}
.nddtp-aud b{color:#0d2d5e}
.nddtp-aud.none{background:#fff8ec;border-left-color:#e0930d;color:#8a5a10}
.nddtp-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.nddtp-nav b{font-size:14.5px;font-weight:800;color:#12203a;text-transform:capitalize}
.nddtp-nav button{border:1px solid #e4ebf5;background:#fff;color:#0d2d5e;border-radius:9px;width:34px;height:34px;
  font-size:18px;font-weight:800;cursor:pointer;line-height:1}
.nddtp-nav button:hover{background:#f1f5fb}
.nddtp-wd,.nddtp-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.nddtp-wd{margin-bottom:4px}
.nddtp-wd span{text-align:center;font-size:10.5px;font-weight:800;color:#9aa6bd;text-transform:uppercase}
.nddtp-d{aspect-ratio:1/1;min-width:0;display:flex;align-items:center;justify-content:center;border:1px solid #edf1f7;
  background:#fff;color:#12203a;border-radius:9px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;
  padding:0;transition:background .12s,border-color .12s}
.nddtp-d:hover{background:#eaf1fd;border-color:#b9cdf0}
.nddtp-d.out{border:none;background:transparent;cursor:default;pointer-events:none}
.nddtp-d.we{background:#fafbfd;color:#8494ad}
.nddtp-d.today{border-color:#0d2d5e;box-shadow:inset 0 0 0 1px #0d2d5e}
.nddtp-d.sel{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.nddtp-d.busy{background:#fdecec;border-color:#f3c4c4;color:#c0392b;cursor:not-allowed;text-decoration:line-through}
.nddtp-d.busy:hover{background:#fbdede}
.nddtp-d.abs{background:#eef0f4;border-color:#d8dde6;color:#8f9bad;cursor:not-allowed;text-decoration:line-through}
.nddtp-d.abs:hover{background:#e6e9ef}
.nddtp-d.warn{background:#fff5e6;border-color:#f7d8a8;color:#b45309}
.nddtp-d.warn:hover{background:#ffedd3}
.nddtp-d.off{background:#fbfcfd;border-color:#f0f3f7;color:#c8cfda;cursor:not-allowed}
.nddtp-d.off:hover{background:#fbfcfd;border-color:#f0f3f7}
.nddtp-lg{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px}
.nddtp-lg span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#6b7890}
.nddtp-lg i{width:10px;height:10px;border-radius:3px;flex:none;border:1px solid}
.nddtp-lg i.busy{background:#fdecec;border-color:#f3c4c4}
.nddtp-lg i.warn{background:#fff5e6;border-color:#f7d8a8}
.nddtp-lg i.abs{background:#eef0f4;border-color:#d8dde6}
.nddtp-ft{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;
  padding-top:12px;border-top:1px solid #eef2f7}
.nddtp-ft .lnk{border:none;background:none;color:#c0392b;font:inherit;font-size:12.5px;font-weight:700;
  cursor:pointer;padding:0;text-decoration:underline}
.nddtp-ft .ok{border:none;background:#0d2d5e;color:#fff;border-radius:9px;padding:9px 18px;font:inherit;
  font-weight:800;font-size:12.5px;cursor:pointer}
@media (max-width:820px){
  #nddtp-modal{padding:10px;align-items:flex-start}
  #nddtp-modal .box{padding:16px;border-radius:14px}
  .nddtp-d{font-size:12.5px;border-radius:8px}
  .nddtp-lg{gap:5px 10px}
  .nddtp-lg span{font-size:10.5px}
}
@media (max-width:430px){
  #nddtp-modal .box{padding:13px}
  .nddtp-hd .v{font-size:13.5px}
  .nddtp-wd,.nddtp-grid{gap:3px}
  .nddtp-d{font-size:11.5px;border-radius:7px}
  .nddtp-ft .ok{padding:9px 14px}
}

/* ══════════════════════════════════════════════════════════════════════════
   Panneau droit du dossier — « Pièces demandées au client » (07/08/2026)
   La date de l'envoi ET la liste des pièces, chacune confrontée au dossier
   d'aujourd'hui : reçue ✓ ou toujours en attente.
   ══════════════════════════════════════════════════════════════════════════ */
.ndpq-pill{display:inline-block;margin-left:6px;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:800;vertical-align:middle;letter-spacing:0;text-transform:none}
.ndpq-pill.wait{background:#fff4e6;border:1px solid #fcd9a8;color:#b45309}
.ndpq-pill.ok{background:#e8f6ee;border:1px solid #bfe3cd;color:#0f7a4d}
.ndpq-env{border-left:3px solid #0d2d5e;padding:2px 0 2px 10px;margin-bottom:12px}
.ndpq-env.old{border-left-color:#dde4ef;opacity:.72}
.ndpq-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.ndpq-h b{font-size:11.5px;font-weight:800;color:#0d2d5e;text-transform:uppercase;letter-spacing:.04em}
.ndpq-h span{font-size:11.5px;font-weight:700;color:#5a6b84;white-space:nowrap}
.ndpq-l{display:flex;align-items:flex-start;gap:7px;font-size:12px;line-height:1.5;padding:2px 0}
.ndpq-l .p{flex:none;width:13px;text-align:center;font-weight:800;color:#b45309}
.ndpq-l.ok .p{color:#0f7a4d}
.ndpq-l .t{flex:1;min-width:0;color:#3d4c68}
.ndpq-l.ok .t{color:#6b7890;text-decoration:line-through;text-decoration-color:#bcd6c6}
.ndpq-l .e{flex:none;font-size:10.5px;font-weight:800;color:#b45309;white-space:nowrap}
.ndpq-l.ok .e{color:#0f7a4d}
.ndpq-n{margin-top:6px;background:#fffbeb;border-left:3px solid #f0b429;border-radius:0 6px 6px 0;padding:6px 9px;font-size:11.5px;color:#78350f;line-height:1.5}
.ndpq-f{margin-top:6px;font-size:10.5px;color:#9aa7bd;line-height:1.4}
.ndpq-b{width:100%;margin-top:2px;border:1px solid #e4ebf5;background:#fff;color:#0d2d5e;border-radius:9px;padding:8px 10px;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer}
.ndpq-b:hover{background:#f1f5fb;border-color:#0d2d5e}
@media (max-width:820px){ .ndpq-l{font-size:12.5px} .ndpq-l .e{font-size:10px} }

/* Organigramme : personnes récupérées faute de rattachement exploitable (07/08/2026) */
.nxoga-warn{margin-top:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:9px;
  padding:8px 12px;font-size:11.5px;font-weight:600;color:#92400e;line-height:1.55}

/* ── Date de réception éditable dans « Rapport d'audit et NC » (09/08/2026) ──
   La cellule reste de la largeur du texte : on ne pose l'<input> qu'au clic,
   sinon la colonne s'élargit et la table redéborde sur iPad (cf. série V). */
td.nxrecu{ color:#64748b; cursor:pointer; }
td.nxrecu .nxrecu-v{ border-bottom:1px dashed #cbd5e1; padding-bottom:1px; }
td.nxrecu:hover .nxrecu-v{ color:#0d2d5e; border-bottom-color:#0d2d5e; }
td.nxrecu .nxrecu-v.vide{ color:#b6c0d0; }
input.nxrecu-i{
  width:130px; max-width:100%; box-sizing:border-box;
  padding:3px 6px; border:1.5px solid #0d2d5e; border-radius:7px;
  font:inherit; font-size:12px; color:#0d2d5e; background:#fff; outline:none;
}
@media (max-width:1024px){ input.nxrecu-i{ width:118px; font-size:11.5px; padding:2px 4px; } }

/* ── Type d'audit modifiable dans « Rapport d'audit et NC » (09/08/2026) ──
   Comme la date : le <select> n'apparaît qu'au clic, pour ne pas élargir la
   colonne (règle iPad, série V). */
td.nxtyp{ cursor:pointer; }
td.nxtyp:hover span{ filter:brightness(.94); box-shadow:0 0 0 1.5px rgba(13,45,94,.25); }
select.nxtyp-i{
  max-width:100%; box-sizing:border-box;
  padding:3px 6px; border:1.5px solid #0d2d5e; border-radius:7px;
  font:inherit; font-size:12px; font-weight:700; color:#0d2d5e; background:#fff; outline:none; cursor:pointer;
}
@media (max-width:1024px){ select.nxtyp-i{ font-size:11.5px; padding:2px 4px; } }


/* ═══ K35 (10/08/2026) — mode audit COFRAC : habillage complémentaire ═══
   La zone de test (purge des données d'audit) et la carte de la boîte
   partagée contact@ disparaissent de l'écran tant que le mode est actif. */
body.nx-cofrac .qpmb-purge{display:none!important}
body.nx-cofrac .qpmb-contact-card{display:none!important}

/* ═══════════════════════════════════════════════════════════════════════
   LMS — module verrouillé jusqu'à sa date d'ouverture (champ `dispoLe`)
   Visible dans le sommaire, non consultable, hors progression.
   Classes partagées par l'espace auditeur ET l'espace membre/admin.
   ═══════════════════════════════════════════════════════════════════════ */
.aud-fm-mod-container.fm-locked .aud-fm-mod-head{
  cursor:default;background:rgba(13,45,94,.045);
}
.aud-fm-mod-container.fm-locked .aud-fm-mod-head:hover{background:rgba(13,45,94,.045)}
.aud-fm-mod-container.fm-locked .aud-fm-mod-num{
  background:linear-gradient(135deg,#8A8273 0%,#B4AC9C 100%);color:#fff;font-size:0;
}
.aud-fm-mod-container.fm-locked .aud-fm-mod-num svg{width:17px;height:17px;flex-shrink:0}
.aud-fm-mod-container.fm-locked .aud-fm-mod-title{color:var(--aud-muted,#8A8273)}
.aud-fm-mod-meta .fm-lock-tag{
  display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;
  background:rgba(249,115,22,.12);color:#C2410C;font-weight:700;font-size:11px;
}
.aud-fm-mod-meta .fm-lock-tag::before{content:"🔒"}
.fm-lock-panel{
  padding:2px 24px 18px 70px;font-size:13px;line-height:1.65;color:var(--aud-muted,#8A8273);
}
.fm-lock-panel p{margin:0 0 10px}
.fm-lock-panel strong{color:var(--aud-ink,#1A2742)}
.fm-lock-list{margin:0;padding-left:16px;list-style:none}
.fm-lock-list li{position:relative;margin-bottom:5px;font-size:12.5px;opacity:.85}
.fm-lock-list li::before{
  content:"";position:absolute;left:-13px;top:7px;width:5px;height:5px;border-radius:50%;
  background:rgba(13,45,94,.25);
}
@media (max-width:680px){ .fm-lock-panel{padding:2px 18px 16px 18px} }

/* Éditeur LMS — date d'ouverture d'un module */
.fme-mod-dispo{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  font-size:11.5px;font-weight:700;color:#64748b;white-space:nowrap;
}
.fme-mod-dispo input[type="date"]{
  border:1.5px solid rgba(13,45,94,.16);border-radius:8px;padding:5px 8px;
  font-family:inherit;font-size:11.5px;color:#0d2d5e;background:#fff;
}

/* ── Registre unique des indicateurs (dashboard + revue) — 17/08/2026 ────── */
.nxd-reg-wait{grid-column:1/-1;text-align:center;color:#94a3b8;font-size:12.5px;padding:18px 0}
#qk-reg{max-height:430px;overflow-y:auto;overflow-x:hidden;align-content:start}
#qk-reg::-webkit-scrollbar{width:6px}
#qk-reg::-webkit-scrollbar-thumb{background:#dbe3f0;border-radius:6px}
.nxd-rr .vv{white-space:nowrap}
/* Modale « Objectifs des indicateurs » */
.nxind-ov{position:fixed;inset:0;z-index:12000;background:rgba(13,45,94,.42);display:flex;align-items:center;justify-content:center;padding:18px}
.nxind-bx{background:#fff;border-radius:16px;width:min(760px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(13,45,94,.3);overflow:hidden}
.nxind-hd{display:flex;align-items:center;gap:10px;padding:16px 18px 10px;font-size:15px;color:#0d2d5e}
.nxind-hd b{flex:1;font-size:15px}
.nxind-x{border:none;background:#f1f5f9;color:#64748b;width:30px;height:30px;border-radius:8px;font-size:18px;line-height:1;cursor:pointer}
.nxind-x:hover{background:#e2e8f0}
.nxind-sub{padding:0 18px 12px;font-size:12px;color:#7d8eab;line-height:1.5}
.nxind-bd{padding:0 18px 8px;overflow-y:auto;flex:1}
.nxind-gt{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8aa0c4;margin:14px 0 4px}
.nxind-r{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid #eef2f8}
.nxind-l{flex:1;min-width:0}
.nxind-l b{display:block;font-size:12.5px;font-weight:700;color:#0F172A}
.nxind-l span{display:block;font-size:10.5px;color:#8aa0c4;margin-top:1px}
.nxind-f{flex:none;display:flex;align-items:center;gap:7px}
.nxind-f input{width:92px;padding:7px 9px;border:1px solid #dbe3f0;border-radius:8px;font-size:13px;font-family:'JetBrains Mono',monospace;text-align:right;color:#0d2d5e}
.nxind-f input:focus{outline:none;border-color:#0284C7;box-shadow:0 0 0 3px rgba(2,132,199,.12)}
.nxind-f span{font-size:11px;color:#8aa0c4;min-width:64px}
.nxind-ft{display:flex;align-items:center;gap:9px;padding:13px 18px;border-top:1px solid #eef2f8;background:#fbfcff}
.nxind-b{border:1px solid #dbe3f0;background:#fff;color:#334155;border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer}
.nxind-b:hover{background:#f5f8fd}
.nxind-b-p{background:#0d2d5e;border-color:#0d2d5e;color:#fff}
.nxind-b-p:hover{background:#123a76}
.nxind-b:disabled{opacity:.6;cursor:default}
@media(max-width:760px){
  .nxind-r{flex-direction:column;align-items:stretch;gap:6px}
  .nxind-f{justify-content:flex-end}
  #qk-reg{max-height:none}
}
.rd-krow.rd-kclick{cursor:pointer}
.rd-krow.rd-kclick:hover{background:#f8fbff}


/* ═══════════════════════════════════════════════════════════════════
   REFONTE VOLET « RÉFÉRENTIELS » DU RAPPORT D'AUDIT — 20/08/2026
   Validée sur maquette (maquette-referentiels-refonte.html).
   1) barre de catégories AF/BDC/VAE/CFA collante au scroll
   2) exemples de preuves du RNQ (guide V.9) sous chaque indicateur
   3) textareas Commentaire/Preuves plus hautes (165 → 220 px)
   4) header 100 % navy, halo orange supprimé
   5) nav des sections intégrée au bandeau (bleu profond)
   6) critères en cartes + en-têtes de colonnes collants
   7) repère « Critère · Indicateur » en direct dans le header
   ═══════════════════════════════════════════════════════════════════ */

/* 1 ─ Barre de catégories collante */
.aud-rep-ref-tabs{
  position:sticky;top:0;z-index:40;
  transition:box-shadow .18s ease, background .18s ease;
}
.aud-rep-ref-tabs.is-stuck{
  background:#fff;border-color:rgba(13,45,94,.2);
  box-shadow:0 12px 26px -14px rgba(13,45,94,.45);
}
/* masque la bande de padding (24 px) au-dessus de la barre collée */
.aud-rep-ref-tabs.is-stuck::before{
  content:"";position:absolute;left:0;right:0;top:-24px;height:24px;
  background:#E8E4DB;
}

/* 2 ─ Exemples de preuves RNQ sous chaque indicateur */
.aud-rep-ev-tgl{
  display:flex;width:max-content;align-items:center;gap:5px;margin-top:8px;
  background:rgba(28,74,142,.07);border:1px solid rgba(28,74,142,.18);
  color:#1c4a8e;font-size:10.5px;font-weight:700;letter-spacing:.2px;
  padding:3px 9px;border-radius:999px;cursor:pointer;font-family:inherit;
  transition:background .14s;
}
.aud-rep-ev-tgl:hover{background:rgba(28,74,142,.13)}
.aud-rep-ev-tgl .chev{display:inline-block;transition:transform .15s;font-size:9px}
.aud-rep-ev-tgl.closed .chev{transform:rotate(-90deg)}
.aud-rep-ev{
  margin:7px 0 0;padding-left:15px;
  font-size:11px;line-height:1.45;color:#5b6472;
}
.aud-rep-ev li{margin:0 0 4px}
.aud-rep-ev li::marker{color:#1c4a8e}
.aud-rep-ev li.nb{font-style:italic;color:#8a8273;list-style:none;margin-left:-15px}

/* 3 ─ Cases Commentaire / Preuves plus hautes */
.aud-rep-ind-textarea{min-height:220px}

/* 4 ─ Header plat 100 % bleu, halo orange supprimé */
.aud-rep-hero{background:#0d2d5e;padding:15px 26px;gap:18px}
.aud-rep-hero::before{content:none}
.aud-rep-hero-eyebrow{color:#8FAEDD;opacity:1;font-size:9.5px;letter-spacing:2.2px}
.aud-rep-hero h2{font-size:19px;letter-spacing:-.2px}
.aud-rep-hero .org{color:#B9CBE6;opacity:1;font-size:12px}
.aud-rep-save-state{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  border-radius:999px;font-size:11px;min-width:0;padding:6px 13px 6px 26px;position:relative;
}
.aud-rep-save-state::before{
  content:"";position:absolute;left:11px;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:#7FB88A;
}
.aud-rep-save-state.saving::before{background:#FBBF24}
.aud-rep-save-state.saved{color:#CFE6D4}
.aud-rep-export-btn.aud-rep-export-hero{
  background:#fff !important;color:#0d2d5e !important;border:none;
  border-radius:10px;font-weight:800;box-shadow:0 6px 16px -8px rgba(0,0,0,.5);
}
.aud-rep-export-btn.aud-rep-export-hero:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(0,0,0,.55)}
.aud-rep-export-btn.aud-rep-export-hero svg{stroke:#0d2d5e}
.aud-rep-hero-btn{background:transparent;border:1px solid rgba(255,255,255,.28)}
.aud-rep-hero-btn:hover{background:rgba(255,255,255,.14)}

/* repère « vous êtes ici » (rempli par nexus-app.js au scroll) */
.aud-rep-critnow{
  display:none;align-items:center;gap:7px;max-width:380px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  color:#DCE6F5;font-size:11px;font-weight:600;padding:6px 13px;border-radius:999px;
}
.aud-rep-critnow .pin{color:#8FAEDD;font-size:10px}
.aud-rep-critnow .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:1100px){ .aud-rep-critnow.on{display:flex} }

/* 5 ─ Nav des sections intégrée au bandeau */
.aud-rep-nav{background:#0A2348;border-bottom:1px solid rgba(255,255,255,.06);padding:7px 18px;gap:6px}
.aud-rep-nav-item{background:transparent;border:1px solid rgba(255,255,255,.13);color:#C9D7EC}
.aud-rep-nav-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3)}
.aud-rep-nav-item.active{background:#fff !important;color:#0d2d5e;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.aud-rep-nav-item.active:hover{box-shadow:0 4px 12px rgba(0,0,0,.3)}
.aud-rep-nav-item .aud-rep-nav-num{background:rgba(255,255,255,.13);color:#E8EEF9}
.aud-rep-nav-item.active .aud-rep-nav-num{background:#0d2d5e;color:#fff;box-shadow:none}
.aud-rep-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}

/* 6 ─ Barre de catégories : segmented control */
.aud-rep-ref-tabs{
  background:#fff;border:1px solid rgba(13,45,94,.12);padding:6px;gap:8px;
  border-radius:14px;box-shadow:0 4px 16px -10px rgba(13,45,94,.25);
}
.aud-rep-ref-tab:not(:disabled){
  border:none;box-shadow:none;background:#F1EEE7;color:#0d2d5e;border-radius:9px;font-weight:800;
}
.aud-rep-ref-tab:not(:disabled):hover{transform:none;background:#E6E1D6}
.aud-rep-ref-tab.active{background:#0d2d5e !important;box-shadow:0 4px 12px -4px rgba(13,45,94,.5) !important}
.aud-rep-ref-tab:disabled{border:none;background:transparent}

/* 7 ─ Critères en cartes — overflow:visible OBLIGATOIRE (la base met
   overflow:hidden sur .aud-rep-crit, ce qui tue le sticky des en-têtes) */
.aud-rep-crit{
  background:#fff;border:1px solid rgba(13,45,94,.09);border-radius:14px;
  box-shadow:0 10px 26px -18px rgba(13,45,94,.3);margin-bottom:14px;
  overflow:visible;
}
.aud-rep-crit .aud-rep-crit-head{
  padding:12px 16px;border-radius:14px 14px 0 0;background:#F8F6F1;
  border-bottom:1px solid rgba(13,45,94,.07);
}
.aud-rep-crit:not(.open) .aud-rep-crit-head{border-radius:14px;border-bottom:none}
.aud-rep-crit .aud-rep-crit-head .title{font-family:'Sora','Inter',sans-serif;font-size:13px;letter-spacing:-.1px}
.aud-rep-crit .aud-rep-crit-head .cnt{
  background:rgba(13,45,94,.07);color:#0d2d5e;padding:3px 10px;border-radius:999px;
  font-size:10.5px;font-weight:700;
}
.aud-rep-crit .status-pill.ok{background:#EAF3EC;color:#2F6B3A;border:1px solid #CFE3D4}
.aud-rep-crit-body{padding:0 6px 6px}
.aud-rep-ind-row:last-child{border-radius:0 0 10px 10px}

/* 8 ─ En-têtes de colonnes collants + zébrage doux */
.aud-rep-ind-thead{
  position:sticky;top:47px;z-index:20;background:#fff;
  box-shadow:0 3px 8px -5px rgba(13,45,94,.35);
}
.aud-rep-ind-row:nth-child(even){background:#FBFAF7}
.aud-rep-ind-row:hover{background:rgba(13,45,94,.03)}
/* écran étroit : la barre peut passer sur 2 lignes → on coupe le sticky des colonnes */
@media (max-width:1000px){ .aud-rep-ind-thead{position:static} }

/* 9 ─ Retouches d'ensemble */
@media (min-width:761px){ .aud-rep-content{padding:22px 32px 46px} }
.aud-rep-info{border-radius:12px}

/* 26/08 — note « détail reconstitué » des modales QCM : jamais visible en mode audit COFRAC */
body.nx-cofrac .nx-qcm-simnote{display:none !important}
