:root{
--bg:#f6f7f9;--surface:#ffffff;--sidebar:#fbfbfc;
--text:#1f2430;--text2:#4b5563;--text3:#6b7280;
--border:#e7e9ee;--border2:#d8dce3;
--accent:#2563eb;--accent-bg:#e9f1fe;
--ok:#15803d;--ok-bg:#eaf7ef;--danger:#dc2626;--danger-bg:#fdecec;--warn:#b45309;--warn-bg:#fbf3e6;
--r:8px;--r2:12px;--sh:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
/* Thème SOMBRE — appliqué via data-theme sur <html>, résolu en JS (choix manuel Light/Dark/Système). */
:root[data-theme="dark"]{
--bg:#0d1117;--surface:#161b22;--sidebar:#0f141a;
--text:#e6edf3;--text2:#a3adba;--text3:#8b95a3;
--border:#222b36;--border2:#2d3742;
--accent:#5b9df7;--accent-bg:#14233d;
--ok:#4ade80;--ok-bg:#0f261a;--danger:#f87171;--danger-bg:#2a1414;--warn:#fbbf24;--warn-bg:#2a1f0a;
--sh:none;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px;}
.app{display:flex;height:100vh;}
/* Sidebar */
.side{width:248px;flex:none;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:14px 12px;overflow:hidden;}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 13px;flex:none;border-bottom:1px solid var(--border);}
.navscroll{flex:1;overflow-y:auto;min-height:0;padding-top:8px;}
.brand .logo{width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.brand b{font-weight:600;font-size:15px;letter-spacing:-0.01em;}
.navsec{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:14px 10px 6px;}
.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);color:var(--text2);font-size:13.5px;font-weight:500;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:inherit;}
.nav i{font-size:18px;}
.nav:hover{background:var(--bg);color:var(--text);}
.nav.active{background:var(--accent-bg);color:var(--accent);}
.sidelogout{margin-top:auto;border-top:1px solid var(--border);padding-top:8px;margin-bottom:2px;}
.sidelogout .nav:hover{color:var(--danger);background:var(--danger-bg);}
.sideuser{display:flex;align-items:center;gap:9px;padding:4px 10px 9px;}
.sideuser .ini{flex:none;min-width:26px;height:26px;font-size:11px;border-radius:13px;}
.sideuser .su-txt{min-width:0;display:flex;flex-direction:column;line-height:1.25;}
.sideuser .su-name{font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sideuser .su-mail{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.side-collapsed .sideuser{justify-content:center;padding:4px 0 9px;}
.side-collapsed .sideuser .su-txt{display:none;}
.sidefoot{margin-top:auto;padding:10px 8px 4px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text3);line-height:1.5;}
/* Main */
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
/* Menu latéral repliable : cercle </> dans la marque ; replié = icône + texte dessous, rail étroit */
.side{transition:width .18s ease;}
.sidetoggle{width:26px;height:26px;border-radius:50%;border:1px solid var(--border2);background:var(--surface);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0;margin-left:auto;transition:background .15s,color .15s,border-color .15s;}
.sidetoggle:hover{background:var(--bg);color:var(--accent);border-color:var(--accent);}
.sidetoggle i{font-size:15px;}
.side-collapsed .side{width:78px;padding:14px 6px;}
.side-collapsed .brand{flex-direction:column;gap:10px;padding:6px 0 12px;}
.side-collapsed .brand b{display:none;}
.side-collapsed .sidetoggle{margin-left:0;}
.side-collapsed .navsec{font-size:0;height:1px;padding:0;margin:9px 12px;background:var(--border);letter-spacing:0;}
.side-collapsed .nav{flex-direction:column;gap:4px;padding:9px 2px;text-align:center;justify-content:center;align-items:center;}
.side-collapsed .nav i{font-size:20px;}
.side-collapsed .nav span{font-size:9.5px;line-height:1.15;font-weight:500;width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.side-collapsed .sidefoot{display:none;}
.topbar{height:56px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface);}
.topbar h2{font-size:15px;font-weight:600;margin:0;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.status{font-size:12px;color:var(--text2);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex:none;}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex:none;}
#pad{flex:1;overflow:auto;padding:24px 16px;}
#frame{flex:1;border:0;width:100%;background:var(--surface);display:none;}
#societe,#gagnes,#concurrents,#settings,#admin,#kb,#superadmin,#ancienao{width:min(100%,1720px);margin:0 auto;} /* largeur « large » UNIFIÉE (demande Gael : moins de marges latérales) — INTELLIGENCE + Paramètres, A.I, Clients Mgt, Base de connaissance, Importer un ancien AO */
#societe .card,#settings .card,#admin .card,#gagnes .card,#concurrents .card,#kb .card,#superadmin .card{max-width:none!important;margin-left:auto;margin-right:auto;}
#societe .section{width:100%;}
/* Components */
h1{font-size:19px;font-weight:600;margin:0 0 4px;letter-spacing:-0.01em;}
.sub{color:var(--text2);font-size:13.5px;margin:0 0 20px;}
.satab{background:none;border:none;border-bottom:2px solid transparent;padding:9px 14px;font:inherit;font-size:13px;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-bottom:-1px;}
.satab i{font-size:16px;}
.satab:hover{color:var(--text);}
.satab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:18px 20px;box-shadow:var(--sh);margin-bottom:16px;}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;}
.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:18px 20px;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);box-shadow:var(--sh);}
.tile:hover{border-color:var(--accent);}
.tile .ic{font-size:22px;color:var(--accent);}
.tile .t{font-weight:600;margin:10px 0 3px;font-size:14px;}
.muted{color:var(--text3);font-size:12.5px;}
.btn{font-family:inherit;font-size:13px;font-weight:500;border:1px solid var(--border2);background:var(--surface);color:var(--text);border-radius:var(--r);padding:7px 13px;cursor:pointer;white-space:nowrap;}
.btn:hover{background:var(--bg);}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn.primary:hover{filter:brightness(1.07);}
/* Modale de confirmation MAISON (remplace le confirm() natif du navigateur, incohérent avec l'app) */
.ui-confirm{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.42);backdrop-filter:blur(2px);}
.ui-confirm-box{width:440px;max-width:100%;padding:20px;border:1px solid var(--border2);border-radius:14px;background:var(--surface);box-shadow:0 26px 80px rgba(15,23,42,.3);animation:uiConfirmIn .12s ease-out;}
@keyframes uiConfirmIn{from{opacity:0;transform:translateY(6px) scale(.985);}to{opacity:1;transform:none;}}
.ui-confirm-head{display:flex;align-items:flex-start;gap:13px;}
.ui-confirm-ic{flex:none;display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-bg);color:var(--accent);font-size:20px;}
.ui-confirm-ic.danger{background:var(--danger-bg);color:var(--danger);}
.ui-confirm-title{font-size:15.5px;font-weight:650;line-height:1.3;}
.ui-confirm-msg{margin-top:6px;color:var(--text3);font-size:12.5px;line-height:1.5;}
.ui-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;}
.ui-confirm .btn.danger{background:var(--danger);border-color:var(--danger);color:#fff;}
.ui-confirm .btn.danger:hover{filter:brightness(1.07);}
.btn.small{font-size:12px;padding:4px 10px;}
.btn:disabled{opacity:.55;cursor:default;}
.spin{display:inline-block;animation:aospin .8s linear infinite;}
@keyframes aospin{to{transform:rotate(360deg);}}
.ini{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;}
.resp{width:100%;min-height:90px;font-family:inherit;font-size:13px;line-height:1.5;padding:8px 10px;border:1px solid var(--border2);border-radius:8px;background:var(--surface);color:var(--text);resize:vertical;box-sizing:border-box;}
.respbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;}
.revs{margin-top:8px;border-top:1px dashed var(--border2);padding-top:6px;}
.revitem{font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--border2);}
.revitem:last-child{border-bottom:none;}
/* Dropdown @mention (discussion AO) */
.ao-mention-it{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;cursor:pointer;color:var(--text);}
.ao-mention-it.on,.ao-mention-it:hover{background:var(--accent-bg);color:var(--accent);}
.ao-mention-it .ini{min-width:22px;height:22px;font-size:10px;flex:none;}
textarea{width:100%;height:180px;font-family:inherit;font-size:13px;line-height:1.55;border:1px solid var(--border2);border-radius:var(--r);padding:11px 12px;background:var(--surface);color:var(--text);resize:vertical;}
input[type=password],input[type=text],input[type=email],input[type=url],input[type=search]{width:100%;font-family:inherit;font-size:13px;border:1px solid var(--border2);border-radius:var(--r);padding:9px 11px;background:var(--surface);color:var(--text);}
.flbl{display:block;font-size:12px;color:var(--text2);font-weight:500;margin-bottom:5px;}
textarea:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.chip{font-size:10.5px;font-weight:500;border-radius:6px;padding:2px 8px;white-space:nowrap;flex:none;}
.exrow{padding:12px 4px;border-bottom:1px solid var(--border);}
.exhead{display:flex;align-items:flex-start;gap:12px;}
.exref{flex:none;color:var(--text3);min-width:74px;font-size:12px;line-height:1.5;}
.extext{flex:1;min-width:0;line-height:1.5;}
.draft{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;font-size:13px;line-height:1.6;white-space:pre-wrap;}
.ctx{font-size:12px;color:var(--text2);display:inline-flex;align-items:center;gap:6px;}
select{font-family:inherit;font-size:12.5px;border:1px solid var(--border2);border-radius:var(--r);padding:5px 8px;background:var(--surface);color:var(--text);cursor:pointer;}
.verdict{display:inline-flex;align-items:center;font-weight:700;font-size:14px;letter-spacing:.02em;border-radius:999px;padding:6px 15px;flex:none;}
.gauge{height:8px;border-radius:999px;background:var(--bg);overflow:hidden;}
.gauge>i{display:block;height:100%;border-radius:999px;}
.sig{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--border);font-size:13px;line-height:1.5;}
.dashhead{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:16px;}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:14px 16px;box-shadow:var(--sh);}
.kpi .l{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:6px;}
.kpi .l i{font-size:15px;}
.kpi .v{font-size:26px;font-weight:600;letter-spacing:-0.02em;margin:7px 0 3px;font-variant-numeric:tabular-nums;}
.kpi .s{font-size:11.5px;color:var(--text3);}
.dash{display:grid;grid-template-columns:1.9fr 1fr;gap:16px;align-items:start;}
@media (max-width:1280px){.dash{grid-template-columns:1fr;}}
/* Tableau de bord : la table « AO en cours » prend toute la largeur, les blocs secondaires flottent
   dans une grille responsive EN DESSOUS (auto-fit) → plus de grand vide à côté d'une table courte. */
.dashgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:stretch;}
.cardhead{font-weight:600;font-size:14px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
#societe .cardhead{justify-content:flex-start;} /* titres de section alignés à gauche (icône + titre côte à côte), pas poussés à droite */
.wl{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;min-width:730px;}
.wl th{text-align:left;font-size:11px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;padding:0 8px 8px;position:relative;}
.wl td{padding:10px 8px;border-top:1px solid var(--border);vertical-align:middle;overflow:hidden;}
.wl th.wl-center,.wl td.wl-center{text-align:center;}
.wl th.wl-client,.wl td.wl-client{text-align:left;}
.wl td.wl-center .avts{justify-content:center;}
.wl tr:hover td{background:var(--bg);}
.due{font-size:11.5px;font-weight:600;border-radius:6px;padding:2px 8px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.stage{font-size:11px;font-weight:500;color:var(--text2);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 8px;white-space:nowrap;}
.avts{display:flex;}
.avt{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;border:2px solid var(--surface);margin-left:-7px;}
.avt:first-child{margin-left:0;}
.minirow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border);font-size:13px;}
.minirow:first-child{border-top:0;padding-top:0;}
/* Détail d'un AO clôturé : lecture seule (champs non éditables, actions masquées). */
#repPanels.ro input,#repPanels.ro textarea,#repPanels.ro select,#repPanels.ro .statpill{pointer-events:none;opacity:.8;}
#repPanels.ro .btn{display:none!important;}
@media (max-width:900px){ .arc-grid{ grid-template-columns:1fr !important; } }
.arc-tab{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:9px 2px;margin-right:22px;font-size:14px;color:var(--text2);cursor:pointer;font-family:inherit;}
.arc-tab.on{color:var(--text);border-bottom-color:var(--text);font-weight:600;}
.acc-h{width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:10px 8px;display:flex;align-items:center;gap:10px;cursor:pointer;margin-top:6px;font-family:inherit;color:var(--text);}
.acc-h:hover{background:var(--bg);}
.acc-chev{font-size:16px;color:var(--text3);transition:transform .15s;flex:none;}
.acc-b{padding:0 0 4px 6px;}
.dcrow{display:flex;align-items:center;gap:11px;padding:9px 8px;border-top:1px solid var(--border2);}
.dcic{width:30px;height:30px;border-radius:8px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex:none;}
.arcmet{background:var(--bg);border-radius:8px;padding:.6rem .8rem;}
.clt{width:100%;border-collapse:collapse;font-size:13px;}
.clt th{text-align:left;font-weight:500;color:var(--text3);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:1px solid var(--border2);white-space:nowrap;}
.clt td{padding:11px 12px;border-bottom:1px solid var(--border2);vertical-align:middle;color:var(--text);}
.clt tbody tr{cursor:pointer;}
.clt tbody tr:hover{background:var(--bg);}
.clt-obj{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600;line-height:1.3;}
.clt-grip{font-size:14px;color:var(--text3);opacity:.5;flex:none;cursor:grab;}
.clt th:hover{background:var(--bg);}
.clt th:hover .clt-grip{opacity:1;color:var(--accent);}
.barrow{display:grid;grid-template-columns:minmax(120px,1.5fr) 1fr 42px;align-items:center;gap:10px;font-size:12.5px;line-height:1.35;color:var(--text2);padding:5px 0;}
.drop{border:1.5px dashed var(--border2);border-radius:var(--r2);padding:26px;text-align:center;color:var(--text2);cursor:pointer;transition:border-color .12s,background .12s;}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-bg);}
.drop i{font-size:26px;color:var(--accent);}
.drop b{color:var(--text);font-weight:600;}
.link{color:var(--accent);cursor:pointer;text-decoration:underline;}
.frow{display:flex;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid var(--border);font-size:13px;}
.frow:first-child{border-top:0;margin-top:6px;}
.lotcard{border:1px solid var(--border);border-radius:var(--r2);padding:16px 18px;margin-top:16px;background:var(--surface);box-shadow:var(--sh);}
.lothead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.lottag{font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-bg);border-radius:6px;padding:2px 8px;white-space:nowrap;}
.ptag{font-size:11px;color:var(--text2);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 8px;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;}
.ptag b{color:var(--accent);}
.ptag.off{opacity:.55;}
/* Puces des documents propres à un lot (listées sous chaque lot) */
.lotdocs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;}
.lotdocs>.ti-paperclip{color:var(--text3);font-size:14px;flex:none;}
/* Pastilles d'un lot (avis équipe + docs) : les DEUX résumés côte à côte sur une ligne,
   le corps déplié en PLEINE LARGEUR en dessous (flex-wrap + flex-basis:100% sur .pill-body).
   Résumés = boutons — plus de <details> (il couplait résumé et corps, ce qui poussait la
   pastille docs sous le corps déplié au lieu de la garder à droite de l'avis). */
.lot-pills{display:flex;flex-wrap:wrap;gap:13px 8px;align-items:flex-start;margin-top:9px;}
.avis-sum,.lotdocs-sum{cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--text2);background:var(--bg);border:1px solid var(--border2);border-radius:20px;padding:3px 11px;width:max-content;}
.avis-sum:hover{border-color:var(--accent);}
.lotdocs-sum:hover{background:var(--surface);border-color:var(--accent);color:var(--accent);}
.avis-sum.go{background:var(--ok-bg);border-color:transparent;color:var(--ok);}
.avis-sum.no{background:var(--danger-bg);border-color:transparent;color:var(--danger);}
.avis-sum .chev,.lotdocs-sum .chev{font-size:14px;opacity:.55;transition:transform .15s ease;}
.avis-sum.open .chev,.lotdocs-sum.open .chev{transform:rotate(90deg);}
.pill-body{flex-basis:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.pill-body[hidden]{display:none;}
.lotdoc{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 9px;border:1px solid var(--border2);border-radius:8px;background:var(--surface);cursor:pointer;font-family:inherit;font-size:12px;color:var(--text);transition:border-color .12s,background .12s;}
.lotdoc:hover:not(.off){border-color:var(--accent);background:var(--accent-bg);}
.lotdoc.off{opacity:.6;cursor:default;}
.lotdoc-ty{flex:none;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--text2);background:var(--bg);border:1px solid var(--border2);border-radius:5px;padding:1px 5px;}
.lotdoc-nm{overflow-wrap:anywhere;}
.lotdoc .ti-eye{flex:none;color:var(--accent);font-size:15px;}
.lotdoc-x{flex:none;color:var(--text3);font-size:11px;}
/* Multi-lot LISTE : TOUT le bloc identité de l'AO (boutons retour/Supprimer + carte nom/acheteur/
   échéance/montant/critères) reste épinglé en haut pendant qu'on scrolle les lots. Enfant direct de
   #gngDetail → sticky valable sur toute la liste. Fond page opaque (les lots passent dessous) + ombre
   portée sur la carte pour marquer la superposition (visible aussi en dark). */
/* top:0 → le bloc s'épingle PILE à sa position naturelle (mesuré : position épinglée = top + padding-top
   de #pad) : il ne bouge pas d'un pixel au scroll (exigence UX de Gael), ni au repos. La bande de padding
   au-dessus (24px) est couverte par le ::before (même fond) — c'est LUI qui empêche le contenu défilant
   d'y transparaître, pas un décalage du bloc. (Si le padding de #pad change, ajuster height/left/right.) */
.gng-ao-sticky{position:sticky;top:0;z-index:25;background:var(--bg);padding-bottom:2px;}
.gng-ao-sticky::before{content:"";position:absolute;left:-16px;right:-16px;bottom:100%;height:24px;background:var(--bg);}
/* (pas d'ombre portée renforcée : la carte garde l'ombre standard var(--sh) — retour Gael « surélevée ») */
/* Liste des lots (Go/No-Go) : une CARTE par lot — aérée, liseré gauche quand décidé. */
.lot-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin-top:14px;transition:box-shadow .15s;}
/* Pastilles = pied de carte DÉTACHÉ (liseré pointillé), séparé de la rangée DÉCIDER. */
.lot-card>.lot-pills{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border);}
.lot-card:hover{box-shadow:0 2px 10px rgba(20,30,60,.06);}
:root[data-theme="dark"] .lot-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.45);}
.lot-card.go{border-left:3px solid var(--ok);}
.lot-card.no{border-left:3px solid var(--danger);}
/* ---- Cockpit Go/No-Go condensé (analyse approfondie) ----
   En-tête STICKY combiné identité + décision (reste visible pendant le scroll des blocages),
   « point qui décide », strip de stats, 1 liste de blocages, accordéons secondaires. */
/* top:0 → épinglée PILE à la ligne de contenu (position épinglée = top + padding-top de #pad, mesuré).
   La bande de padding au-dessus n'est couverte (::before, fond page) que quand la barre est ÉPINGLÉE
   (.stuck, posé par un IntersectionObserver dans renderCockpit) — sinon le ::before baverait sur le
   bloc qui précède la barre au repos (bandeau questions en mono-lot). */
.gng-sticky{position:sticky;top:0;z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh);padding:10px 16px;margin-bottom:14px;} /* ombre standard des cartes — pas d'élévation renforcée (retour Gael) */
.gng-sticky.stuck::before{content:"";position:absolute;left:-17px;right:-17px;bottom:100%;height:24px;background:var(--bg);}
/* Variante MONO-LOT : la barre décision vit DANS le bloc identité déjà épinglé (sous la carte AO) →
   statique (un sticky imbriqué glisserait sur la carte), sans ombre, remontée sous la carte. */
.gng-sticky.gng-inwrap{position:static;box-shadow:none;margin:-6px 0 8px;} /* 8 + padding-bottom 2 du bloc = 10px sous la barre — IDENTIQUE à l'espace carte AO → barre (16 − 6) */
.gng-sh-row1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.gng-sh-title{font-weight:700;font-size:14.5px;flex:1;min-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gng-sh-meta{font-size:12px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%;}
.gng-sh-row2{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:9px;padding-top:9px;border-top:1px solid var(--border);}
.gng-sb-score{font-size:22px;font-weight:900;line-height:1;white-space:nowrap;}
.gng-sb-score span{font-size:12px;color:var(--text3);font-weight:700;}
.gng-ctx-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:20px;padding:3px 11px;background:var(--accent-bg);color:var(--accent);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis;}
.gng-bottomline{border-radius:10px;padding:11px 14px;font-size:13.5px;line-height:1.55;background:var(--warn-bg);}
.gng-bottomline.ok{background:var(--ok-bg);} .gng-bottomline.danger{background:var(--danger-bg);}
.gng-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.gng-stat{font-size:12px;font-weight:600;border-radius:9px;padding:6px 11px;background:var(--bg);border:1px solid var(--border);color:var(--text2);display:inline-flex;gap:6px;align-items:center;white-space:nowrap;}
.gng-stat b{font-size:13.5px;} .gng-stat.red b{color:var(--danger);} .gng-stat.amber b{color:var(--warn);} .gng-stat.ok b{color:var(--ok);}
.gng-blk{border:1px solid var(--border2);border-left:3px solid var(--border2);border-radius:9px;padding:12px 14px;margin-bottom:9px;background:var(--surface);}
.gng-blk.covered{opacity:.62;}
.gng-blk .act{font-size:12.5px;color:var(--text);margin-top:7px;background:var(--bg);border-radius:8px;padding:7px 11px;display:flex;gap:7px;align-items:flex-start;line-height:1.5;}
.gng-blk .act .k{color:var(--accent);font-weight:700;flex:none;}
.gng-acc{border:1px solid var(--border);border-radius:11px;margin-top:10px;background:var(--surface);}
.gng-acc>summary{list-style:none;cursor:pointer;padding:12px 15px;display:flex;align-items:center;gap:9px;font-weight:600;font-size:13.5px;flex-wrap:wrap;}
.gng-acc>summary::-webkit-details-marker{display:none;}
.gng-acc>summary .caret{color:var(--text3);transition:transform .15s;font-size:15px;flex:none;}
.gng-acc[open]>summary .caret{transform:rotate(90deg);}
.gng-acc>summary .cnt{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--text2);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:2px 10px;white-space:nowrap;}
.gng-acc-body{padding:2px 16px 14px;font-size:12.5px;color:var(--text2);line-height:1.55;}
.gng-acc-body ul{margin:0;padding-left:18px;}
.gng-acc-body li{margin:6px 0;}
/* Écran « Pièces à remettre » (groupé par action) */
.par-prog{display:flex;align-items:center;gap:10px;margin:12px 0 4px;}
.par-bar{flex:1;height:8px;background:var(--bg);border-radius:6px;overflow:hidden;}
.par-bar-fill{height:100%;background:var(--accent);border-radius:6px;transition:width .35s ease;}
.par-pills{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 2px;}
.par-pill{font-size:12px;font-weight:600;border:1px solid var(--border2);background:var(--surface);color:var(--text2);border-radius:999px;padding:5px 12px;cursor:pointer;}
.par-pill.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.par-sec{margin-top:16px;}
.par-sec-h{display:flex;align-items:center;gap:9px;margin-bottom:2px;}
.par-ic{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:15px;}
.par-sec-t{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);}
.par-sec-n{font-size:11px;font-weight:700;color:var(--text3);background:var(--bg);border-radius:6px;padding:1px 7px;}
.par-card{background:var(--surface);border:1px solid var(--border2);border-radius:12px;margin-top:7px;overflow:hidden;}
.par-row{display:flex;align-items:center;gap:11px;padding:11px 13px;border-top:1px solid var(--border2);}
.par-row:first-child{border-top:0;}
.par-row.done .par-nm-t{color:var(--text2);}
.par-check{width:21px;height:21px;border-radius:50%;border:1.8px solid var(--border2);flex:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:var(--surface);font-size:13px;}
.par-row.done .par-check{background:var(--ok);border-color:var(--ok);}
.par-badge{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--text2);background:var(--bg);border:1px solid var(--border2);border-radius:5px;padding:2px 6px;flex:none;}
.par-nm{flex:1;min-width:0;}
.par-nm-t{font-size:13px;font-weight:600;line-height:1.3;}
.par-nm-s{font-size:11px;color:var(--text3);margin-top:1px;}
.par-note{font-size:11.5px;color:var(--text2);background:var(--accent-bg);border-radius:9px;padding:9px 12px;margin-top:14px;display:flex;gap:8px;align-items:flex-start;line-height:1.5;}
/* Onglets de la page « Répondre à un AO » */
.reptabs{display:flex;gap:2px;flex-wrap:wrap;margin:6px 0 14px;border-bottom:1px solid var(--border2);}
.reptab{font-size:13px;font-weight:600;border:0;background:transparent;color:var(--text2);padding:9px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px;}
.reptab.on{color:var(--accent);border-bottom-color:var(--accent);}
.reptab:hover:not(.on){color:var(--text);}
.reptab .chip{font-size:10px;padding:1px 6px;}
/* Parcours de préparation et vue documentaire par lot */
.prep-loading,.prep-start{display:flex;align-items:center;gap:14px;padding:22px;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface);box-shadow:var(--sh);}
.prep-loading>i,.prep-start>i{font-size:24px;color:var(--accent);flex:none;}
.prep-loading>span,.prep-start>div>span{display:block;color:var(--text3);font-size:12.5px;margin-top:3px;}
.prep-start>div{flex:1;min-width:0;}.prep-start>div>b{font-size:15px;}
.prep-signals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;}
.prep-signal{min-width:0;padding:12px 14px;border:1px solid var(--border);border-top:3px solid var(--border2);border-radius:var(--r);background:var(--surface);}
.prep-signal.ok{border-top-color:var(--ok);}.prep-signal.warn{border-top-color:var(--warn);}.prep-signal.bad{border-top-color:var(--danger);}
.prep-signal small{display:block;font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.05em;}
.prep-signal b{display:block;font-size:17px;margin:5px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.prep-signal span{display:block;font-size:11.5px;color:var(--text3);}
.prep-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;align-items:start;}
.prep-rail{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden;position:sticky;top:0;}
.prep-rail button{width:100%;height:48px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 10px;border:0;border-top:1px solid var(--border);background:transparent;color:var(--text2);font-family:inherit;text-align:left;cursor:pointer;}
.prep-rail button:first-child{border-top:0;}.prep-rail button:hover{background:var(--bg);}.prep-rail button.on{background:var(--accent-bg);color:var(--accent);}
.prep-rail button>span:nth-child(2){font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.prep-rail button small{font-size:10px;color:var(--text3);white-space:nowrap;}
.prep-stepnum{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border2);border-radius:50%;font-size:10px;background:var(--surface);}.prep-stepdone{font-size:19px;color:var(--ok);}
.prep-work{min-width:0;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden;}
.prep-work>header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);}.prep-work>header small{display:block;color:var(--text3);font-size:10.5px;margin-bottom:2px;}.prep-work>header h2{font-size:15px;margin:0;font-weight:600;letter-spacing:0;}
.prep-workicon{width:32px;height:32px;border-radius:7px;background:var(--accent-bg);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.prep-modesw{margin-left:auto;display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg);flex:none;}
.prep-modesw button{border:0;background:transparent;padding:6px 11px;font-size:11.5px;font-weight:600;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1;}
.prep-modesw button+button{border-left:1px solid var(--border);}
.prep-modesw button.on{background:var(--accent);color:#fff;}
.prep-modesw button:not(.on):not([disabled]):hover{background:var(--border);}
.prep-modesw.ro{opacity:.6;}.prep-modesw.ro button{cursor:default;}
.prep-stepnav{display:flex;justify-content:space-between;gap:8px;padding:12px 16px;border-top:1px solid var(--border);}
.prep-scopehead,.prep-scopefoot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;}.prep-scopehead>div>span{display:block;color:var(--text3);font-size:11.5px;margin-top:3px;}
.prep-lotgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 16px 4px;}.prep-lotchoice{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--border2);border-radius:var(--r);cursor:pointer;background:var(--surface);}.prep-lotchoice.on{border-color:var(--accent);background:var(--accent-bg);}.prep-lotchoice.locked{cursor:default;}.prep-lotchoice.locked input{cursor:default;}.prep-lotchoice input{margin:2px 0 0;accent-color:var(--accent);}.prep-lotchoice span{min-width:0;}.prep-lotchoice b{display:block;font-size:12.5px;}.prep-lotchoice small{display:block;color:var(--text3);font-size:11px;margin-top:2px;line-height:1.35;}
.prep-tabletools,.prep-doctools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);}.prep-tabletools label,.prep-doctools label,.prep-controlfilters label{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:11.5px;white-space:nowrap;}.prep-doctools{padding:12px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);}.prep-doctools>div>b{display:block;font-size:14px;}.prep-doctools>div>span{display:block;color:var(--text3);font-size:11.5px;margin-top:3px;}
.prep-worklist{min-width:0;overflow-x:auto;}.prep-workhead,.prep-workrow{display:grid;grid-template-columns:40px minmax(0,1fr) 130px 118px 110px 150px 90px 36px;align-items:center;gap:10px;padding-left:12px;padding-right:12px;min-width:936px;}.prep-workhead{min-height:34px;border-bottom:1px solid var(--border);background:var(--bg);color:var(--text3);font-size:10px;font-weight:700;text-transform:uppercase;}.prep-workhead>*:nth-child(4){justify-content:flex-end;text-align:right;}.prep-workhead>*:nth-child(4) .prep-sort{justify-content:flex-end;}.prep-workhead>*:nth-child(6),.prep-workhead>*:nth-child(7){justify-content:center;text-align:center;}.prep-workhead>*:nth-child(6) .prep-sort{justify-content:center;}.prep-rowauto{display:flex;align-items:center;justify-content:center;min-width:0;}.prep-workhead>*:nth-child(2),.prep-rowmain{padding-left:9px;}.prep-rowvalid{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;}.prep-rowvalid .prep-iconbtn:only-child{margin-inline:auto;}.prep-workhead>*:nth-child(4){padding-right:7px;}.prep-sort{display:flex;align-items:center;gap:5px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;cursor:pointer;}.prep-sort:hover,.prep-sort.active{color:var(--accent);}.prep-sort i{font-size:13px;}.prep-workrow{padding-top:10px;padding-bottom:10px;border-top:1px solid var(--border);}.prep-workhead+.prep-workrow{border-top:0;}.prep-workrow:hover{background:var(--bg);}.prep-workrow.prep-rowna>*{opacity:.45;}.prep-workrow.prep-rowna .prep-rowvalid{opacity:1;}
/* Éditeur de CHAMPS des formulaires acheteur (Auto → Vérifier) : inputs à gauche, document à droite */
.af-split{display:flex;gap:14px;align-items:stretch;min-height:60vh;}
.af-fields{width:340px;flex:none;overflow:auto;max-height:74vh;display:flex;flex-direction:column;gap:8px;padding-right:4px;}
.af-fhead{font-size:12px;color:var(--text2);line-height:1.5;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;}
.af-field{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);}
.af-lbl{font-size:11.5px;font-weight:600;color:var(--text);}
.af-ctx{font-size:10.5px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.af-input{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border2);border-radius:6px;background:var(--bg);color:var(--text);min-width:0;}
.af-input:focus{outline:none;border-color:var(--accent);}
.af-input:disabled{opacity:.6;}
/* En-tête de champ : libellé + case « facultatif » (à droite). Un champ facultatif est estompé et NON signalé
   « à compléter » à la validation (réversible en décochant). */
.af-top{display:flex;align-items:center;gap:8px;}
.af-top .af-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.af-opt{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text3);cursor:pointer;user-select:none;white-space:nowrap;flex:none;}
.af-opt input{margin:0;cursor:pointer;accent-color:var(--accent);}
.af-field.af-optional{background:var(--bg);border-style:dashed;}
.af-field.af-optional .af-lbl,.af-field.af-optional .af-ctx,.af-field.af-optional .af-input{opacity:.5;}
.af-field.af-optional .af-opt{color:var(--accent);opacity:1;}
.af-preview{flex:1;min-width:0;}
.af-preview iframe{height:74vh !important;}
@media (max-width:900px){.af-split{flex-direction:column;}.af-fields{width:auto;max-height:38vh;}}
/* Colonne 📎 (col5) : en-tête + cellule (nom du fichier joint) CENTRÉS. Colonne rétrécie (110px) → Document élargi + reste décalé à droite. */
.prep-workhead>*:nth-child(5){justify-content:center;text-align:center;}
/* Étape sans pièce jointe (Prix, Mémoires) → colonne 📎 retirée : grille 6 colonnes. Actions redevient col5 (recentrée), Valider col6 (déjà centré). */
.prep-workhead.prep-noattach,.prep-workrow.prep-noattach{grid-template-columns:40px minmax(0,1fr) 130px 118px 150px 90px 36px;min-width:796px;}
.prep-rowannul{display:flex;align-items:center;justify-content:center;min-width:0;}
.prep-workhead.prep-noattach>*:nth-child(5){justify-content:center;text-align:center;padding-right:0;}.prep-workhead.prep-noattach>*:nth-child(5) .prep-sort{justify-content:center;}
/* Colonne Document ÉLASTIQUE (minmax(0,1fr)) à TOUTES les largeurs → la grille s'ajuste toujours à son conteneur.
   L'ancien override ≥1420px figeait Document à 360px + space-between : il se basait sur le VIEWPORT alors que le
   conteneur réel est bien plus étroit (sidebar + rail ~535px), d'où un débordement à droite (Actions/Valider coupés,
   car .prep-work{overflow:hidden}). Filet de sécurité : .prep-worklist{overflow-x:auto} + min-width sur les lignes. */
.prep-lotnumber{font-size:12px;font-weight:700;color:var(--text2);font-variant-numeric:tabular-nums;}.prep-rowmain{min-width:0;}
/* Colonne « Pièce jointe » (justificatifs) : nom du doc joint, cliquable = Voir. Vert = documents Société, bleu = ajouté pour cet AO. */
.prep-attach{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-width:0;font-size:11.5px;color:var(--ok);cursor:pointer;}.prep-attach i{font-size:13px;flex:none;opacity:.85;}.prep-attach .prep-attachname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.prep-attach:hover .prep-attachname{text-decoration:underline;}.prep-attach.ao{color:var(--accent);}
/* ===== Étape 7 « Aperçu d'envoi » (maquette #5) ===== */
.prep-frhero{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--border2);border-radius:12px;background:var(--surface);margin-bottom:14px;flex-wrap:wrap;}
.prep-frhero.ok{border-color:var(--ok);background:linear-gradient(105deg,var(--ok-bg),var(--surface) 65%);}
.prep-frhero h3{margin:0 0 3px;font-size:16px;}
.prep-frhero p{margin:0;color:var(--text2);font-size:12.5px;}
.prep-frhero>div:nth-child(2){flex:1;min-width:220px;}
.prep-frring{width:54px;height:54px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;border:5px solid var(--warn);color:var(--warn);}
.prep-frring.ok{border-color:var(--ok);color:var(--ok);font-size:22px;}
.prep-frheroact{display:flex;gap:8px;flex-wrap:wrap;}
.prep-frgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start;margin-bottom:14px;}
.prep-fracc{border:1px solid var(--border2);border-radius:11px;background:var(--surface);margin-bottom:10px;overflow:hidden;}
.prep-fracc summary{list-style:none;display:flex;align-items:center;gap:10px;padding:12px 15px;cursor:pointer;font-size:13.5px;}
.prep-fracc summary::-webkit-details-marker{display:none;}
.prep-fracc summary>i{color:var(--accent);font-size:18px;}
.prep-fracc summary b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prep-fracc summary small{color:var(--text3);font-size:11px;white-space:nowrap;}
.prep-fracc[open] summary{border-bottom:1px solid var(--border);background:var(--bg);}
.prep-fraccbody{padding:4px 15px 8px;}
.prep-frfile{display:grid;grid-template-columns:18px minmax(0,1fr) 32px 108px;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border);}
.prep-frfile:first-child{border-top:0;}
.prep-frfile>i{color:var(--text3);font-size:16px;}
.prep-frfile>div{min-width:0;}
.prep-frfile .prep-iconbtn{justify-self:center;}
.prep-frfile .prep-status{justify-self:start;}
.prep-frfile b{display:block;font-size:12.5px;}
.prep-frfile span{display:block;color:var(--text3);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prep-fraside{display:flex;flex-direction:column;gap:12px;position:sticky;top:14px;}
.prep-frcard{background:var(--surface);border:1px solid var(--border2);border-radius:11px;padding:13px 15px;}
.prep-frcardtitle{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:8px;}
.prep-frcardtitle i{color:var(--accent);}
.prep-frkv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:4px 0;border-top:1px solid var(--border);}
.prep-frkv:nth-of-type(1){border-top:0;}
.prep-frkv span{color:var(--text2);}
.prep-frgate{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text3);padding:5px 0;}
.prep-frgate i{font-size:16px;}
.prep-frgate.done{color:var(--ok);}
.prep-frgate span{margin-left:auto;font-weight:400;font-size:11px;color:var(--text3);text-align:right;}
.prep-frdetail{border:1px dashed var(--border2);border-radius:11px;padding:12px 15px;background:var(--surface);}
.prep-frdetail summary{list-style:none;cursor:pointer;font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;}
.prep-frdetail summary::-webkit-details-marker{display:none;}
.prep-frdetail summary i{color:var(--accent);}
@media (max-width:940px){.prep-frgrid{grid-template-columns:1fr;}.prep-fraside{position:static;}}
.prep-attwrap{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;max-width:100%;}
.prep-attplus{flex:none;border:1px solid var(--border2);background:var(--bg);color:var(--text2);border-radius:999px;font:inherit;font-size:10.5px;font-weight:700;padding:1px 7px;cursor:pointer;line-height:1.5;}
.prep-attplus:hover{color:var(--accent);border-color:var(--accent);}
.prep-attmore{flex-basis:100%;display:flex;flex-direction:column;gap:4px;min-width:0;}
.prep-rowname{min-width:0;}.prep-rowname>b{display:block;font-size:12.5px;line-height:1.35;}.prep-rowname>span{display:block;color:var(--text3);font-size:10.8px;line-height:1.35;margin-top:2px;overflow-wrap:anywhere;}.prep-doclink{cursor:pointer;}.prep-doclink:hover{color:var(--accent);}.prep-docic{font-size:12px;opacity:.55;vertical-align:-1px;margin-left:2px;}.prep-doclink:hover .prep-docic{opacity:1;color:var(--accent);}.prep-rowreq{min-width:0;}.prep-reqbadge{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--danger);background:var(--danger-bg);border-radius:5px;padding:2px 7px;white-space:nowrap;}.prep-reqno{color:var(--text3);font-size:11px;}.prep-reqline{display:block;margin-top:4px;}.prep-validdone{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--ok);white-space:nowrap;}.prep-validdone i{font-size:14px;}
.prep-rowmeta{min-width:0;font-size:11px;color:var(--text3);align-self:center;}.prep-owner{width:100%;max-width:140px;font-size:10.5px;padding:3px 5px;}.prep-rowstatus{min-width:0;justify-self:end;}.prep-rowactions{display:flex;min-width:0;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;}.prep-iconbtn{padding-left:7px!important;padding-right:7px!important;}.prep-tofill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:4px 10px;border:1px dashed var(--border2);border-radius:var(--r);background:transparent;color:var(--text3);white-space:nowrap;cursor:default;}.prep-tofill i{font-size:13px;}
.prep-status{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:6px;font-size:10.5px;font-weight:600;white-space:nowrap;background:var(--bg);color:var(--text3);}.prep-status.valid{background:var(--ok-bg);color:var(--ok);}.prep-status.in_progress{background:var(--accent-bg);color:var(--accent);}.prep-status.manual_check,.prep-status.review{background:var(--warn-bg);color:var(--warn);}.prep-status.missing{background:var(--danger-bg);color:var(--danger);}
.bpu-tabs{display:flex;align-items:center;gap:3px;margin:0 0 10px;border-bottom:1px solid var(--border);overflow:auto;}.bpu-tabs button{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text2);font:600 11px var(--font);white-space:nowrap;cursor:pointer;}.bpu-tabs button.on{border-bottom-color:var(--accent);color:var(--accent);}.bpu-tabs button span{color:var(--text3);font-size:9.5px;font-weight:500;}.bpu-progress{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 11px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg);}.bpu-progress>i{font-size:19px;}.bpu-progress>div{flex:1;min-width:180px;}.bpu-progress>div>b,.bpu-progress>div>span{display:block;}.bpu-progress>div>b{font-size:12px;}.bpu-progress>div>span{margin-top:2px;color:var(--text3);font-size:10.5px;}.bpu-progress.ok>i{color:var(--ok);}.bpu-progress.accent>i{color:var(--accent);}.bpu-progress.warn>i{color:var(--warn);}.bpu-price-required{font-variant-numeric:tabular-nums;}.bpu-price-missing{background:var(--warn-bg)!important;box-shadow:inset 0 0 0 1px var(--warn);}.bpu-price-zero{background:var(--warn-bg)!important;color:var(--text)!important;box-shadow:inset 0 0 0 1px var(--warn);}.bpu-price-ok{background:var(--ok-bg)!important;color:var(--text)!important;}.bpu-fillfield{background:var(--ok-bg)!important;box-shadow:inset 0 0 0 1px var(--border2);}
/* Grille de prix en PLEIN ÉCRAN (comme l'éditeur Univer) — appliqué à #sourceModal seulement pour le bordereau.
   !important : la modale porte des styles INLINE (padding:24px, max-width:95vw, max-height:96vh) qui priment sinon. */
#sourceModal.src-full{padding:0!important;}
#sourceModal.src-full>div{width:100vw!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;}
/* Aperçu du cadre de mémoire rempli : grand carré lisible, sans agrandir l'éditeur de sections normal. */
#memoModal.memo-preview-mode{padding:18px!important;}
#memoModal.memo-preview-mode>div{
  width:min(1260px,calc(100vw - 36px),calc(100vh - 36px))!important;
  height:min(1260px,calc(100vw - 36px),calc(100vh - 36px))!important;
  max-width:calc(100vw - 36px)!important;
  max-height:calc(100vh - 36px)!important;
}
#memoModal.memo-preview-mode #memoModalBody{padding:18px!important;}
#memoModal.memo-preview-mode #cadreApercuFrame iframe{
  height:calc(min(1260px,calc(100vw - 36px),calc(100vh - 36px)) - 168px)!important;
  min-height:520px;
}
.cadre-preview-loading{display:flex;min-height:calc(min(1260px,calc(100vw - 36px),calc(100vh - 36px)) - 98px);flex-direction:column;}.cadre-preview-top{flex:none;padding:16px 18px;border:1px solid var(--border2);border-radius:12px;background:var(--surface);box-shadow:var(--sh);}.cadre-preview-stage{display:grid;flex:1;min-height:0;place-items:center;padding:28px 18px 34px;}.cadre-preview-card{display:grid;width:min(720px,100%);grid-template-columns:minmax(0,1fr) 170px;gap:24px;align-items:center;padding:26px;border:1px solid var(--border2);border-radius:20px;background:linear-gradient(135deg,var(--surface),var(--bg));box-shadow:0 24px 70px rgba(15,23,42,.18);}.cadre-preview-main{min-width:0;}.cadre-preview-icon{display:inline-flex;width:46px;height:46px;align-items:center;justify-content:center;margin-bottom:14px;border-radius:16px;background:var(--accent-bg);color:var(--accent);font-size:22px;}.cadre-preview-card h3{margin:0;color:var(--text);font-size:18px;font-weight:750;letter-spacing:-.02em;}.cadre-preview-card p{max-width:450px;margin:8px 0 0;color:var(--text3);font-size:13px;line-height:1.55;}.cadre-preview-steps{display:grid;gap:8px;margin-top:18px;color:var(--text2);font-size:12.5px;}.cadre-preview-steps span{display:flex;align-items:center;gap:8px;}.cadre-preview-steps span:not(:first-child){padding-left:22px;color:var(--text3);}.cadre-preview-steps i{color:var(--accent);font-size:15px;}.cadre-preview-progress{height:6px;margin-top:18px;overflow:hidden;border-radius:999px;background:var(--border2);}.cadre-preview-progress i{display:block;width:44%;height:100%;border-radius:inherit;background:var(--accent);animation:cadrePreviewSlide 1.35s ease-in-out infinite alternate;}.cadre-preview-doc{display:flex;min-height:214px;flex-direction:column;gap:10px;padding:20px 18px;border:1px solid var(--border2);border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);}.cadre-preview-doc div{width:46%;height:12px;border-radius:999px;background:var(--accent-bg);}.cadre-preview-doc span,.cadre-preview-doc em{display:block;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--border),var(--bg),var(--border));background-size:220% 100%;animation:cadrePreviewShimmer 1.45s linear infinite;}.cadre-preview-doc span.short{width:68%;}.cadre-preview-doc em{height:54px;margin:6px 0;border-radius:10px;}@keyframes cadrePreviewSlide{from{transform:translateX(0);width:34%;}to{transform:translateX(160%);width:48%;}}@keyframes cadrePreviewShimmer{from{background-position:220% 0;}to{background-position:-220% 0;}}
@media (max-width:720px){
  #memoModal.memo-preview-mode{padding:10px!important;}
  #memoModal.memo-preview-mode>div{width:calc(100vw - 20px)!important;height:calc(100vh - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)!important;}
  #memoModal.memo-preview-mode #cadreApercuFrame iframe{height:calc(100vh - 190px)!important;min-height:360px;}
  .cadre-preview-loading{min-height:calc(100vh - 110px);}.cadre-preview-stage{padding:18px 0 24px;}.cadre-preview-card{grid-template-columns:1fr;padding:22px;}.cadre-preview-doc{display:none;}
}
.prep-empty{padding:18px;color:var(--text3);font-size:12.5px;text-align:center;}.prep-reference{margin-top:12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);}.prep-reference>summary{padding:11px 14px;cursor:pointer;font-weight:600;font-size:12.5px;}.prep-reference>div{padding:0 12px 12px;}.prep-reference .card{box-shadow:none;margin:8px 0 0;}
.prep-company{padding:0;}
.prep-infohead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);}.prep-infohead>div:first-child{min-width:0;}.prep-infohead b{display:block;font-size:13.5px;}.prep-infohead b i{margin-right:5px;}.prep-infohead>div:first-child>span{display:block;color:var(--text3);font-size:11.5px;line-height:1.45;margin-top:3px;}.prep-infocounts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.prep-infolist{min-width:0;}.prep-inforow{display:grid;grid-template-columns:22px minmax(240px,1fr) minmax(180px,270px) 92px minmax(108px,max-content);align-items:center;gap:10px;padding:11px 16px;border-top:1px solid var(--border);}.prep-inforow:first-child{border-top:0;}.prep-inforow:hover{background:var(--bg);}.prep-infoicon{font-size:18px;color:var(--text3);}.prep-infoicon.ok{color:var(--ok);}.prep-infoicon.missing{color:var(--warn);}
.prep-infoname{min-width:0;}.prep-infoname b{display:block;font-size:12.5px;line-height:1.35;overflow-wrap:anywhere;}.prep-infoname span{display:block;color:var(--text3);font-size:10.8px;margin-top:3px;}.prep-infovalue{min-width:0;width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.prep-infovalue i{color:var(--ok);}.prep-infoinput{width:100%;min-width:0;height:32px!important;padding:6px 9px!important;border-color:var(--warn)!important;background:var(--surface)!important;}.prep-infoactions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap;}.prep-infofoot{display:flex;align-items:flex-start;gap:7px;padding:10px 16px;border-top:1px solid var(--border);color:var(--text3);font-size:11px;line-height:1.45;}.prep-infofoot>i{color:var(--accent);font-size:15px;flex:none;}.prep-infofoot.ok>i{color:var(--ok);}
.prep-common{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;margin-bottom:10px;border:1px solid var(--danger);border-left-width:3px;border-radius:var(--r);background:var(--surface);}.prep-common.ok{border-color:var(--ok);}.prep-common>i{font-size:20px;color:var(--text3);}.prep-common>div>b{display:block;font-size:12.5px;}.prep-common>div>span{display:block;color:var(--text3);font-size:11px;margin-top:2px;}.prep-common>strong{font-size:11.5px;color:var(--text2);white-space:nowrap;}
.prep-docsection{margin-bottom:10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden;}.prep-docsection>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);}.prep-docsection h3{font-size:13.5px;margin:0;letter-spacing:0;}.prep-docsection header span{display:block;color:var(--text3);font-size:11px;margin-top:2px;}.prep-docsection header>b{font-size:11.5px;color:var(--text2);white-space:nowrap;}.prep-docsection header em{color:var(--danger);font-style:normal;}
.prep-controlactions{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);}.prep-controlactions>div{flex:1;min-width:0;}.prep-controlactions>div>b,.prep-controlactions>div>span{display:block;}.prep-controlactions>div>span{color:var(--text3);font-size:11px;margin-top:2px;}
.prep-controlfilters{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border);}.prep-controlfilters>div{display:flex;gap:2px;flex:1;}.prep-controlfilters>div button{border:0;background:transparent;color:var(--text2);font:500 11.5px var(--font);padding:5px 7px;border-radius:6px;cursor:pointer;}.prep-controlfilters>div button.on{background:var(--accent-bg);color:var(--accent);}
.prep-resulthead{display:grid;grid-template-columns:22px minmax(180px,1fr) 56px 120px 92px 124px 82px;gap:10px 12px;padding:9px 12px;border-bottom:1px solid var(--border);color:var(--text3);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;}
.prep-result{display:grid;grid-template-columns:22px minmax(180px,1fr) 56px 120px 92px 124px 82px;align-items:start;gap:10px 12px;padding:11px 12px;border-top:1px solid var(--border);}.prep-resulthead+.prep-result{border-top:0;}.prep-result>i{font-size:18px;margin-top:1px;}.prep-result>i.ok{color:var(--ok);}.prep-result>i.warn{color:var(--warn);}.prep-result>i.danger{color:var(--danger);}.prep-result>div>b{display:block;font-size:12.5px;line-height:1.35;}.prep-result>div>span{display:block;color:var(--text3);font-size:10.8px;margin-top:2px;}.prep-result>.prep-rl{color:var(--text2);font-size:11px;line-height:1.4;}.prep-result>.prep-status{align-self:start;justify-self:start;}.prep-rowact{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}.prep-resulthead>*:nth-child(6){text-align:center;}.prep-resulthead>*:nth-child(5){padding-left:7px;}.prep-ctrlannul{display:flex;align-items:start;justify-content:flex-start;}.prep-ctrlannul .prep-iconbtn:only-child{margin-inline:auto;}.prep-verifybtn{min-width:92px;text-align:center;}
.prep-approved{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--ok);background:var(--ok-bg);}.prep-approved>i{font-size:21px;color:var(--ok);}.prep-approved>div{flex:1;}.prep-approved>div>b,.prep-approved>div>span{display:block;}.prep-approved>div>span{font-size:11px;color:var(--text2);margin-top:2px;}
.entry-modal{position:fixed;inset:0;z-index:260;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.52);}.entry-dialog{width:520px;max-width:100%;padding:18px;border:1px solid var(--border2);border-radius:8px;background:var(--surface);box-shadow:var(--sh);}.entry-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;}.entry-head>div:first-child{flex:1;min-width:0;}.entry-title{font-size:15px;font-weight:650;}.entry-help{margin-top:4px;color:var(--text3);font-size:12px;line-height:1.45;}.entry-dialog textarea{display:block;width:100%;min-height:108px;margin-top:5px;padding:9px 10px;resize:vertical;border:1px solid var(--border2);border-radius:7px;background:var(--bg);color:var(--text);font:13px/1.45 var(--font);}.entry-dialog textarea:focus{border-color:var(--accent);outline:2px solid var(--accent-bg);}.entry-error{min-height:18px;margin-top:7px;color:var(--danger);font-size:11.5px;}.entry-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;}
.centered-confirm{z-index:420;text-align:center;}.centered-confirm-dialog{width:min(560px,calc(100vw - 40px));padding:26px 28px 22px;border-radius:14px;}.centered-confirm-icon{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;margin-bottom:14px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:19px;}.centered-confirm-icon.danger{background:var(--danger-bg);color:var(--danger);}.centered-confirm-message{max-width:470px;margin:0 auto;color:var(--text);font-size:16px;font-weight:650;line-height:1.55;text-align:center;}.centered-confirm-sub{max-width:470px;margin:8px auto 0;color:var(--text3);font-size:13.5px;font-weight:500;line-height:1.5;text-align:center;}.centered-confirm-warn{max-width:470px;margin:16px auto 0;padding:10px 13px;border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:13px;font-weight:600;line-height:1.45;text-align:left;display:flex;gap:9px;align-items:flex-start;}.centered-confirm-warn .ti{flex:none;font-size:16px;margin-top:1px;}.centered-confirm-actions{justify-content:center;margin-top:22px;}
.centered-confirm-timeline{text-align:left;}.centered-confirm-timeline-dialog{width:min(540px,calc(100vw - 40px));padding:22px 24px;border-radius:18px;}.centered-confirm-timeline-head{display:flex;align-items:flex-start;gap:14px;}.centered-confirm-timeline .centered-confirm-icon{flex:none;margin:0;width:42px;height:42px;border-radius:14px;font-size:20px;}.centered-confirm-title{font-size:18px;font-weight:750;line-height:1.25;letter-spacing:-.025em;color:var(--text);}.centered-confirm-copy{margin-top:7px;color:var(--text3);font-size:13px;line-height:1.55;}.centered-confirm-steps{position:relative;margin:18px 0 2px;padding-left:22px;}.centered-confirm-steps:before{content:"";position:absolute;left:6px;top:7px;bottom:7px;width:2px;border-radius:999px;background:var(--accent-bg);}.centered-confirm-steps>div{position:relative;margin:0 0 11px;}.centered-confirm-steps>div:last-child{margin-bottom:0;}.centered-confirm-steps span{position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px var(--accent-bg);}.centered-confirm-steps p{margin:0;color:var(--text2);font-size:12.8px;line-height:1.45;}.centered-confirm-timeline .centered-confirm-actions{justify-content:flex-end;margin-top:20px;}
.prep-audit{margin:12px 14px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);}.prep-audit>summary{padding:10px 12px;cursor:pointer;font-size:12px;font-weight:600;}.prep-auditlist{border-top:1px solid var(--border);}.prep-auditrow{display:grid;grid-template-columns:145px minmax(180px,1fr) minmax(120px,180px);gap:10px;padding:9px 12px;border-top:1px solid var(--border);font-size:11px;}.prep-auditrow:first-child{border-top:0;}.prep-auditrow>time,.prep-auditrow>span:last-child{color:var(--text3);}.prep-auditrow>b{font-weight:600;overflow-wrap:anywhere;}
@media (max-width:1100px){.prep-layout{grid-template-columns:1fr;}.prep-rail{position:static;display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));overflow:auto;}.prep-rail button{border-top:0;border-left:1px solid var(--border);}.prep-rail button:first-child{border-left:0;}.prep-inforow{grid-template-columns:22px minmax(220px,1fr) minmax(180px,250px) 90px;}.prep-infoactions{grid-column:2/-1;justify-content:flex-end;}.prep-result,.prep-resulthead{grid-template-columns:20px minmax(130px,1fr) 46px 90px 78px 124px 80px;gap:8px 10px;}}
.stats-oa{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:12px;margin-bottom:18px;}
.stat-oa{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;text-align:center;}
.stat-oa .n{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;}
.stat-oa .l{color:var(--text3);font-size:11.5px;margin-top:2px;}
.oa-table{border:1px solid var(--border2);border-radius:8px;overflow:hidden;}
.oa-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 112px 132px 70px;gap:10px;align-items:center;padding:9px 12px;border-top:1px solid var(--border);}
.oa-row.oa-head{border-top:0;background:var(--bg);color:var(--text3);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
@media (max-width:820px){.oa-row{grid-template-columns:minmax(0,1fr) 130px 64px;}.oa-row>*:nth-child(3),.oa-row>*:nth-child(4){display:none;}}
/* Délégation de validation (prix / dépôt) */
.oa-dtable{border:1px solid var(--border2);border-radius:8px;overflow:hidden;}
.oa-drow{display:grid;grid-template-columns:minmax(0,1fr) 140px 150px;gap:10px;align-items:center;padding:9px 12px;border-top:1px solid var(--border);}
.oa-drow.oa-head{border-top:0;background:var(--bg);color:var(--text3);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
.oa-tog{width:38px;height:22px;border-radius:999px;background:var(--border2);border:none;position:relative;cursor:pointer;flex:none;padding:0;vertical-align:middle;transition:background .15s;}
.oa-tog::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.25);}
.oa-tog.on{background:var(--accent);}
.oa-tog.on::after{left:18px;}
/* Client SaaS hébergé : masque les réglages réservés au mode local/desktop (clé API, URL API, moteurs de conversion…). */
.saas-hosted .local-only{display:none !important;}
.audit-oa{max-height:340px;overflow-y:auto;}
.audit-oa-row{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-top:1px solid var(--border);font-size:12.5px;line-height:1.4;}
.audit-oa-row:first-child{border-top:0;}
@media (max-width:760px){.prep-signals{grid-template-columns:1fr;}.prep-lotgrid{grid-template-columns:1fr;}.prep-workhead,.prep-workrow,.prep-inforow{grid-template-columns:44px minmax(0,1fr);}.prep-workhead>*:nth-child(n+3){display:none;}.prep-rowmeta,.prep-rowstatus,.prep-rowauto,.prep-rowactions,.prep-rowvalid,.prep-rowannul,.prep-inforow>.prep-infovalue,.prep-inforow>.prep-infoinput,.prep-infostatus,.prep-infoactions{grid-column:2;}.prep-rowmeta,.prep-rowstatus{padding-left:0;justify-self:start;}.prep-infohead{flex-direction:column;}.prep-infocounts{justify-content:flex-start;}.prep-infoactions{justify-content:flex-start;}.prep-common{grid-template-columns:28px minmax(0,1fr);}.prep-common>strong,.prep-common>button{grid-column:2;justify-self:start;}.prep-doctools,.prep-tabletools,.prep-controlactions,.prep-controlfilters{align-items:flex-start;flex-direction:column;}.prep-controlfilters>div{flex-wrap:wrap;}.prep-resulthead{display:none;}.prep-result{grid-template-columns:22px minmax(0,1fr);}.prep-result>.prep-rl,.prep-result>.prep-status,.prep-result>.prep-rowact,.prep-result>.prep-ctrlannul{grid-column:2;justify-self:start;}.prep-rowact{justify-content:flex-start;}}
@media (max-width:760px){.prep-auditrow{grid-template-columns:1fr;gap:4px;}.entry-modal{padding:12px;}.entry-dialog{padding:15px;}}
/* Sélecteur de thème (Paramètres) : Système / Clair / Sombre */
.themeseg{display:inline-flex;gap:2px;background:var(--bg);border:1px solid var(--border2);border-radius:10px;padding:3px;}
.themeseg button{font-family:inherit;font-size:13px;font-weight:600;border:0;background:transparent;color:var(--text2);padding:8px 16px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;}
.themeseg button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh);}
.themeseg button:hover:not(.on){color:var(--text);}
.aocard{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;cursor:pointer;background:var(--surface);}
.aocard:hover{border-color:var(--accent);background:var(--bg);}
.statpill{font-size:10.5px;font-weight:500;border-radius:6px;padding:2px 8px;white-space:nowrap;flex:none;cursor:pointer;background:var(--bg);color:var(--text3);border:1px solid var(--border);}
.statpill.on{background:var(--ok-bg);color:var(--ok);border-color:transparent;}
.matrice{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0 6px;padding-top:12px;border-top:1px solid var(--border);}
code{font-family:var(--mono);font-size:12px;}

/* ===== Page Société : santé du profil + onglets ===== */
.sochealth{max-width:1720px;padding:15px 18px;}
.sochealth .top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.sochealth .pct{font-size:30px;font-weight:600;line-height:1;color:var(--text);}
.sochealth .pctlab{font-size:12px;color:var(--text3);line-height:1.25;}
.socbar{flex:1;min-width:160px;height:8px;border-radius:999px;background:var(--bg);overflow:hidden;border:1px solid var(--border);}
.socbar>i{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .4s;}
.socpills{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px;}
.socpill{font-size:12px;padding:6px 12px;border-radius:999px;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;line-height:1.2;}
.socpill.bad{background:var(--danger-bg);color:var(--danger);} .socpill.warn{background:var(--warn-bg);color:var(--warn);}
.socpill.ok{background:var(--ok-bg);color:var(--ok);cursor:default;}
.socpill:not(.ok):hover{filter:brightness(.97);}
.soctabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin:16px 0 15px;flex-wrap:wrap;max-width:900px;}
.soctab{padding:9px 15px;font-size:13.5px;color:var(--text2);cursor:pointer;border:0;background:transparent;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:7px;font-family:inherit;}
.soctab:hover{color:var(--text);}
.soctab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.soctab .tb{font-size:10.5px;background:var(--danger);color:#fff;border-radius:999px;padding:1px 6px;font-weight:600;}
.socflash{animation:socflash 1.5s ease;}
@keyframes socflash{0%,100%{background:var(--surface);}20%{background:var(--accent-bg);}}
.dchipnm{cursor:pointer;border-bottom:1px solid transparent;}
.dchipnm:hover{border-bottom-color:currentColor;}
/* Entrées « Capacités » (références clients, équipe) : titre + description empilés, plus lisibles */
.socitem{border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-bottom:10px;background:var(--surface);}
.socitem-head{display:flex;gap:8px;align-items:center;}
.socitem-title{flex:1;min-width:0;height:34px;padding:6px 10px;border:1px solid var(--border2);border-radius:7px;background:var(--bg);color:var(--text);font-family:inherit;font-size:13.5px;font-weight:500;}
.socitem-del{flex:none;color:var(--text3);border-color:transparent;padding:5px 8px;}
.socitem-del:hover{color:var(--danger);background:var(--danger-bg);}
.socitem-desc{width:100%;box-sizing:border-box;margin-top:8px;height:auto;min-height:46px;padding:8px 10px;border:1px solid var(--border2);border-radius:7px;background:var(--bg);color:var(--text2);font-family:inherit;font-size:12.5px;line-height:1.45;resize:vertical;}
.socitem-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;}
/* Documents Société en tableau compact (une ligne par pièce) — cf. mockup societe-mix-3-4 */
.socgrid{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(0,1.45fr) minmax(0,0.82fr) 124px 62px 86px 150px;align-items:start;gap:12px;padding:11px 2px;border-top:1px solid var(--border);}
.socgrid>i{margin-top:2px;}
.socgrid.hd{border-top:0;padding:2px 2px 7px;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);}
.socgrid.hd .r{text-align:right;} .socgrid.hd .c{text-align:center;}
.socstat{display:flex;justify-content:center;min-width:0;padding-top:2px;}
.socdelai{display:flex;justify-content:center;align-items:flex-start;min-width:0;padding-top:4px;}
.socdesc{min-width:0;}
.socdesc>.soc-desc:first-child,.socdesc>.soc-noteadd:first-child{margin-top:0;}
.socfile{align-self:center;min-width:0;font-size:12.5px;line-height:1.5;word-break:break-word;padding-top:0;}
.socfile.empty{display:flex;align-items:center;justify-content:center;width:100%;}
.socfile .muted{color:var(--text3);font-size:12px;}
.socmeta-fields{display:flex;align-items:flex-end;gap:8px 12px;flex-wrap:wrap;margin-top:8px;}
.socmeta-field{display:flex;flex:1 1 105px;min-width:105px;max-width:240px;flex-direction:column;gap:3px;}
.socmeta-field>span:first-child{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text3);}
.socmeta-field>input,.socmeta-field .socmontant{width:100%;height:30px;box-sizing:border-box;border:1px solid var(--border2);border-radius:6px;background:var(--bg);color:var(--text);font-family:inherit;font-size:12.5px;padding:0 8px;}
.socmeta-dynamic>span:first-child{display:flex;align-items:center;gap:4px;min-width:0;color:var(--accent);}
.socmeta-dynamic>span:first-child>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.socmeta-dynamic>span:first-child button{flex:none;border:0;background:transparent;color:var(--text3);padding:0;cursor:pointer;line-height:1;}
.socmeta-dynamic>span:first-child button:hover{color:var(--danger);}
.socmeta-dynamic>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;color:var(--text3);text-transform:none;}
.socamount{display:flex;align-items:center;gap:6px;min-width:0;}
.socamount .socmontant{flex:1;min-width:0;}
.socamount-currency{flex:none;font-size:12px;font-weight:600;color:var(--text3);}
.socai-box{margin-top:9px;border:1px solid var(--border2);border-radius:8px;background:var(--accent-bg);overflow:hidden;}
.socai-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 9px;border-bottom:1px solid var(--border);color:var(--accent);font-size:11px;font-weight:700;}
.socai-head span{display:inline-flex;align-items:center;gap:5px;}
.socai-head small{margin-left:auto;color:var(--text3);font-size:10px;font-weight:500;}
.socai-suggestion{display:flex;align-items:center;gap:8px;padding:8px 9px;border-top:1px solid var(--border);}
.socai-suggestion:first-of-type{border-top:0;}
.socai-suggestion[data-confidence="high"]{box-shadow:inset 3px 0 0 var(--ok);}
.socai-suggestion[data-confidence="medium"]{box-shadow:inset 3px 0 0 var(--warn);}
.socai-value{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;font-size:11px;}
.socai-value b{font-size:10px;text-transform:uppercase;letter-spacing:.02em;color:var(--text2);}
.socai-value span{color:var(--text);overflow-wrap:anywhere;}
.socai-value small{color:var(--text3);font-size:9.5px;}
.socai-suggestion[data-confidence="high"] .socai-value small i{color:var(--ok);}
.socai-suggestion[data-confidence="medium"] .socai-value small i{color:var(--warn);}
.socai-actions{display:flex;gap:5px;flex:none;}
.socai-actions .btn.small{font-size:10px;padding:4px 7px;}
.soc-trash{color:var(--text3)!important;border-color:transparent!important;padding:5px 7px!important;}
.soc-trash:hover{color:var(--danger)!important;}
.socgrid>.lab{min-width:0;font-size:13.5px;font-weight:600;line-height:1.25;padding-top:1px;}
.socgrid>.lab small{display:block;font-weight:400;font-size:11.5px;color:var(--text3);margin-top:1px;}
.socfin{align-self:center;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;flex-wrap:wrap;padding-top:0;}
.socfin.muted{color:var(--text3);font-size:12px;}
.socvalidity{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;padding-top:1px;}
.socdate{height:30px;border:1px solid var(--border2);border-radius:7px;background:var(--bg);color:var(--text);padding:0 6px;font-family:inherit;font-size:12px;width:114px;}
.socact{display:flex;justify-content:flex-start;gap:6px;flex-wrap:wrap;padding-top:1px;}
.socdel{display:flex;justify-content:center;align-items:center;}
.socdel .btn.small{padding:5px 7px;color:var(--text3);border-color:transparent;}
.socdel .btn.small:hover{color:var(--danger);}
.socgrid .btn.small{font-size:11.5px;padding:5px 9px;white-space:nowrap;flex:none;}
/* champs éditables « en place » (certifs) : ressemblent à du texte, se révèlent au survol/focus */
.socinp{display:block;width:100%;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-family:inherit;font-size:13.5px;font-weight:600;padding:2px 5px;}
.socinp:hover,.socinp:focus{border-color:var(--border2);background:var(--bg);outline:none;}
.socinp.sm{display:inline-block;width:auto;min-width:120px;max-width:190px;font-size:11.5px;font-weight:400;color:var(--text3);vertical-align:middle;}

/* Bandeau fin de parcours (onglet Documents par lot) : portes + ZIP/déposé, mêmes verrous que l'étape 7 */
.prep-finalstrip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:13px 16px;}
.prep-fsgates{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;}
.prep-fsgate{display:inline-flex;align-items:center;gap:5px;color:var(--text3);font-weight:600;white-space:nowrap;}
.prep-fsgate.done{color:var(--ok);}
.prep-fsgate small{font-weight:400;color:var(--text3);font-size:11px;}

/* Preuves v2 : registre pleine largeur fidèle à la piste 1 */
.soc-desc{width:100%;box-sizing:border-box;margin-top:6px;height:auto;min-height:26px;font-family:inherit;font-size:12.5px;color:var(--text2);line-height:1.45;border:1px dashed transparent;border-radius:7px;padding:4px 7px;background:transparent;resize:none;overflow:hidden;}
.soc-desc::placeholder{color:var(--text3);font-style:italic;}
.soc-desc:hover{border-color:var(--border2);background:var(--bg);}
.soc-desc:focus{outline:none;border:1px solid var(--accent);background:var(--surface);color:var(--text);}
.soc-echstrip{display:flex;flex-direction:column;gap:10px;}
.soc-echhead{font-size:12px;font-weight:600;color:var(--text2);display:flex;align-items:center;gap:7px;}
.soc-echips{display:flex;gap:8px;flex-wrap:wrap;}
.soc-echip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border2);border-radius:999px;background:var(--surface);font-family:inherit;font-size:12px;font-weight:600;padding:5px 11px;cursor:pointer;color:var(--text2);}
.soc-echip.soon{border-color:var(--border2);color:var(--text2);}
.soc-echip.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-bg);}
.soc-echip.danger{border-color:var(--danger);color:var(--danger);background:var(--danger-bg);}
.soc-echip:hover{filter:brightness(.97);}
.soc-prooffilter{display:flex;align-items:center;gap:8px;border:1px solid var(--border2);border-radius:9px;padding:0 10px;background:var(--bg);}
.soc-prooffilter i{color:var(--text3);font-size:15px;}
.soc-prooffilter input{flex:1;border:none;background:transparent;font-family:inherit;font-size:13px;color:var(--text);padding:8px 0;outline:none;}
.soc-proof-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.soc-proof-tools .soc-prooffilter{flex:1;min-width:260px;background:var(--surface);}
.soc-proof-count{background:var(--bg);color:var(--text3);border:1px solid var(--border);font-weight:600;}
.soc-country{height:36px;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border2);background:var(--surface);color:var(--text);border-radius:9px;padding:0 10px;font-size:12px;font-weight:600;white-space:nowrap;}
.soc-country>i{color:var(--text3);font-size:14px;}
.soc-country select{max-width:155px;border:0;background:transparent;color:inherit;font:inherit;outline:none;padding:0;}
.soc-country-custom{height:36px;border:1px solid var(--border2);border-radius:9px;background:var(--surface);color:var(--text);font-family:inherit;font-size:12.5px;padding:0 10px;width:170px;}
.soc-proof-register{width:100%;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;}
.soc-proof-register .socgrid{grid-template-columns:24px minmax(140px,1fr) minmax(200px,1.35fr) minmax(110px,.7fr) 120px 58px 76px 104px 32px;min-width:968px;gap:10px;padding:11px 12px;border-top:0;border-bottom:1px solid var(--border);}
.soc-proof-register .socgrid.hd{align-items:center;padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--border);}
.soc-proof-register .socgrid.hd .r{text-align:right;}
.soc-proof-register .socgrid:not(.hd):hover{background:var(--bg);}
.soc-proof-register .socgrid-grp{--socgrp:var(--text3);--socgrp-bg:var(--surface);display:flex;align-items:center;gap:8px;min-width:968px;margin:0;padding:8px 12px;background:var(--bg);border-top:6px solid var(--surface);border-bottom:1px solid var(--border);box-shadow:inset 3px 0 0 var(--socgrp);font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text);}
.soc-proof-register .socgrid.hd+.socgrid-grp{border-top:0;}
.soc-proof-register .socgrp-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:7px;background:var(--socgrp-bg);color:var(--socgrp);}
.soc-proof-register .socgrp-icon i{font-size:15px;}
.socgrp-legal{--socgrp:#2563eb!important;--socgrp-bg:#e8effd!important;}
.socgrp-insurance{--socgrp:#7c3aed!important;--socgrp-bg:#f1eafe!important;}
.socgrp-declarations{--socgrp:#b06a00!important;--socgrp-bg:#fdf3e2!important;}
.socgrp-capacity{--socgrp:#087f8c!important;--socgrp-bg:#e4f5f5!important;}
.socgrp-banking{--socgrp:#4f46e5!important;--socgrp-bg:#ecebff!important;}
.socgrp-other{--socgrp:#64748b!important;--socgrp-bg:#edf1f5!important;}
.socgrp-certifications{--socgrp:#177a4c!important;--socgrp-bg:#e6f5ec!important;}
.soc-proof-register .socact{justify-content:flex-end;}
.soc-proof-register .socdel{justify-content:flex-end;}
.soc-proof-register .soc-desc{display:block;margin-top:0;}
.soc-proof-register .soc-noteadd{display:none;}
.soc-proof-addrow{min-width:968px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface);}
.soc-proof-empty{min-width:968px;padding:12px;font-size:12.5px;border-bottom:1px solid var(--border);}
.soc-proof-note{display:flex;align-items:flex-start;gap:7px;margin-top:14px;padding:10px 14px;background:var(--accent-bg);border-radius:10px;color:var(--accent);font-size:12.5px;line-height:1.5;}
.soc-proof-note>i{margin-top:2px;flex:none;}
@media (max-width:900px){.soc-proof-count{order:2}.soc-country{order:3}.soc-proof-tools .soc-prooffilter{flex-basis:100%;}}

/* Catalogue hybride : registre dense pour balayer / éditer + fiche latérale au clic. */
.soccat-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;max-width:1720px;transition:grid-template-columns .2s ease;}
.soccat-layout.open{grid-template-columns:minmax(0,1fr) minmax(350px,420px);}
.soccat-main{min-width:0;}
.soccat-card,.soccat-general{max-width:none;margin-bottom:14px;}
.soccat-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:11px;}
.soccat-toolbar .soc-prooffilter{flex:1;min-width:220px;}
.soccat-count{font-size:12px;flex:none;}
.soccat-register{width:100%;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;}
.soccat-row{display:grid;grid-template-columns:24px minmax(150px,1.05fr) minmax(190px,1.45fr) minmax(120px,.7fr) 76px 24px;align-items:start;gap:10px;min-width:730px;padding:11px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s ease;}
.soccat-row:last-child{border-bottom:0;}
.soccat-row:not(.hd):hover{background:var(--bg);}
.soccat-row.on{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent);}
.soccat-row>i{font-size:17px;color:var(--accent);margin-top:3px;}
.soccat-row.hd{align-items:center;padding-top:9px;padding-bottom:9px;background:var(--bg);color:var(--text3);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:default;}
.soccat-row .lab{min-width:0;padding-top:1px;line-height:1.25;}
.soccat-row .lab b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;white-space:nowrap;}
.soccat-row .lab small{display:block;margin-top:2px;color:var(--text3);font-size:11px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.soccat-group{display:flex;align-items:center;gap:7px;min-width:730px;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--border);color:var(--text2);font-size:12px;font-weight:700;}
.soccat-group i{color:var(--accent);font-size:15px;}
.soccat-inline-desc{display:block;width:100%;height:31px;box-sizing:border-box;padding:5px 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text2);font-family:inherit;font-size:12.5px;line-height:1.45;resize:none;overflow:hidden;}
.soccat-inline-desc::placeholder{color:var(--text3);font-style:italic;}
.soccat-inline-desc:hover,.soccat-inline-desc:focus{outline:none;border-color:var(--border2);background:var(--surface);}
.soccat-inline-desc:focus{border-color:var(--accent);color:var(--text);}
.soccat-refcell{padding-top:0;}
.soccat-ref{width:100%;height:31px;box-sizing:border-box;padding:0 8px;border:1px solid var(--border2);border-radius:7px;background:var(--bg);color:var(--text);font-family:inherit;font-size:12.5px;}
.soccat-ref:focus{outline:none;border-color:var(--accent);background:var(--surface);}
.soccat-ready{display:flex;justify-content:center;padding-top:3px;}
.soccat-ready .chip{font-size:10.5px;white-space:nowrap;}
.soccat-open,.soccat-close{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text3);cursor:pointer;font-size:16px;}
.soccat-open{width:24px;height:30px;padding:0;}
.soccat-open:hover,.soccat-close:hover{color:var(--accent);}
.soccat-empty{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;min-height:94px;padding:18px;border:1px dashed var(--border2);border-radius:10px;color:var(--text3);font-size:12.5px;text-align:center;}
.soccat-empty>i{font-size:22px;color:var(--accent);}
.soccat-general textarea{width:100%;box-sizing:border-box;min-height:76px;padding:10px 12px;border:1px solid var(--border2);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit;font-size:13.5px;line-height:1.5;resize:vertical;}
.soccat-general textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);}
.soccat-drawer{position:sticky;top:16px;max-height:calc(100vh - 50px);box-sizing:border-box;padding:17px 18px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh);}
.soccat-drawer-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto 24px;align-items:start;gap:9px;margin-bottom:13px;}
.soccat-drawer-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--accent-bg);color:var(--accent);font-size:20px;}
.soccat-drawer-head h2{margin:1px 0 2px;font-size:15px;line-height:1.25;overflow-wrap:anywhere;}
.soccat-drawer-head div>span{display:block;color:var(--text3);font-size:11.5px;line-height:1.35;}
.soccat-drawer-head>.chip{margin-top:3px;font-size:10.5px;white-space:nowrap;}
.soccat-close{width:24px;height:28px;padding:0;}
.soccat-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:100%;height:150px;margin-bottom:14px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text3);font-family:inherit;cursor:pointer;}
.soccat-preview>i{font-size:30px;color:var(--accent);}
.soccat-preview>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);font-size:12.5px;}
.soccat-preview>small{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--border2);border-radius:7px;background:var(--surface);color:var(--text2);font-size:11.5px;}
.soccat-preview:hover{border-color:var(--accent);}
.soccat-field{margin-bottom:13px;}
.soccat-field>label{display:block;margin-bottom:5px;color:var(--text3);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.soccat-field .soc-desc{display:block;min-height:84px;margin:0;padding:8px 9px;border:1px solid var(--border2);background:var(--bg);resize:vertical;overflow:auto;}
.soccat-history{margin-top:14px;padding-top:11px;border-top:1px dashed var(--border2);}
.soccat-history>b{display:block;margin-bottom:5px;color:var(--text2);font-size:11.5px;}
.soccat-history>div{display:flex;gap:8px;padding:4px 0;color:var(--text3);font-size:11.5px;line-height:1.35;}
.soccat-history strong{flex:none;color:var(--text2);}
.soccat-history span{min-width:0;overflow-wrap:anywhere;}
.soccat-drawer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.soccat-drawer-actions .soc-trash{padding:5px 9px!important;}
@media (max-width:1100px){
  .soccat-layout.open{grid-template-columns:minmax(0,1fr);}
  .soccat-drawer{position:fixed;z-index:220;top:62px;right:14px;width:min(420px,calc(100vw - 28px));max-height:calc(100vh - 76px);box-shadow:0 18px 50px rgba(15,23,42,.24);}
}
@media (max-width:760px){
  .soccat-toolbar{align-items:stretch;}.soccat-toolbar .soc-prooffilter{flex-basis:100%;}
  .soccat-drawer{top:10px;right:10px;width:calc(100vw - 20px);max-height:calc(100vh - 20px);}
}

/* Registre v2 : description compacte (repliée par défaut) + séparateurs de famille */
.soc-desc:not(.on){display:none;}
.soc-noteadd{margin-top:6px;display:inline-flex;align-items:center;gap:4px;border:1px dashed var(--border2);background:transparent;color:var(--text3);font-family:inherit;font-size:11.5px;border-radius:7px;padding:3px 9px;cursor:pointer;}
.soc-noteadd:hover{border-color:var(--accent);color:var(--accent);background:var(--bg);}
.soc-noteadd i{font-size:13px;}
.socgrid-grp{padding:13px 2px 5px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);border-top:1px solid var(--border);margin-top:6px;}
.socgrid-grp:first-of-type{border-top:0;margin-top:2px;}
.oa-drive-card{display:flex;flex-direction:column;min-height:360px;padding:12px 13px;border:1px solid var(--border2);border-radius:10px;background:var(--surface)}
.oa-drive-head{display:flex;align-items:flex-start;gap:11px}
#oaGdriveStatus,#oaSlackStatus,#oaSpStatus,#oaNotionStatus,#oaBoxStatus{display:flex;flex-direction:column;flex:1;min-height:0}.oa-drive-logo{width:40px;height:40px;border-radius:9px;background:#fff;border:1px solid #e6e6e9;display:inline-flex;align-items:center;justify-content:center;flex:none}.oa-drive-title{min-width:0;flex:1;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-top:2px}.oa-drive-title>b{font-size:14px}
.oa-drive-divider{height:1px;background:var(--border2);margin:15px 0}.oa-drive-kicker{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;color:var(--text3);margin-bottom:7px}
.oa-drive-folders{display:flex;align-content:flex-start;gap:5px;max-height:82px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;flex-wrap:wrap;padding-right:3px}.oa-drive-folder{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px;border-radius:7px;background:var(--bg);color:var(--text2);font-size:11px;font-weight:600;overflow-wrap:anywhere}
.oa-drive-account{display:flex;align-items:flex-start;gap:8px;margin-top:14px;color:var(--text2)}.oa-drive-account>i{color:var(--ok);font-size:16px;margin-top:1px}.oa-drive-account div{min-width:0}.oa-drive-account b,.oa-drive-account span{display:block;overflow-wrap:anywhere}.oa-drive-account b{font-size:12px;color:var(--text)}.oa-drive-account span{margin-top:2px;font-size:11px;line-height:1.35;color:var(--text3)}
.oa-drive-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.oa-drive-stat{min-width:0;padding:9px 3px;border:1px solid var(--border2);border-radius:8px;background:var(--bg);text-align:center}.oa-drive-stat strong{display:block;font-size:16px;line-height:1;color:var(--text)}.oa-drive-stat span{display:block;margin-top:5px;color:var(--text3);font-size:9px;line-height:1.15;overflow-wrap:anywhere}
.oa-drive-error{margin-top:9px;color:var(--danger);font-size:11px;line-height:1.35}.oa-drive-actions{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 36px;gap:7px;align-items:stretch;margin-top:auto;padding-top:16px}.oa-drive-actions>.btn{justify-content:center;white-space:nowrap}.oa-drive-more{position:relative}.oa-drive-more>summary{display:flex;width:36px;height:100%;min-height:32px;padding:0;align-items:center;justify-content:center;list-style:none;cursor:pointer}.oa-drive-more>summary::-webkit-details-marker{display:none}.oa-drive-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:30;width:190px;padding:5px;border:1px solid var(--border2);border-radius:9px;background:var(--surface);box-shadow:0 12px 30px rgba(15,23,42,.16)}.oa-drive-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:var(--text2);text-align:left;font-size:11.5px;cursor:pointer}.oa-drive-menu button:hover{background:var(--bg);color:var(--text)}.oa-drive-menu button.danger{color:var(--danger)}
@media(max-width:430px){.oa-drive-actions{grid-template-columns:1fr 1fr 34px}.oa-drive-actions>.btn{padding-left:7px;padding-right:7px}.oa-drive-stats{gap:4px}.oa-drive-stat span{font-size:8px}}
.oa-docs-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:32px;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}.oa-docs-dialog{display:flex;flex-direction:column;width:min(980px,calc(100vw - 64px));height:min(820px,calc(100vh - 64px));overflow:hidden;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 26px 80px rgba(15,23,42,.3)}.oa-docs-loading{width:min(680px,calc(100vw - 64px));height:auto;min-height:130px;align-items:center;justify-content:center;gap:8px;color:var(--text3)}.oa-docs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex:none}.oa-docs-title{font-size:18px;font-weight:650}.oa-docs-head p{max-width:720px;margin:6px 0 18px;color:var(--text3);font-size:12px;line-height:1.5}.oa-docs-table{min-height:0;flex:1;overflow:auto;border:1px solid var(--border2);border-radius:11px;background:var(--surface)}.oa-docs-grid{display:grid;grid-template-columns:minmax(270px,1fr) minmax(190px,220px) 90px 130px;gap:12px;align-items:center;padding:12px 16px}.oa-docs-columns{position:sticky;top:0;z-index:2;background:var(--bg);border-bottom:1px solid var(--border2);color:var(--text3);font-size:10px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.oa-docs-columns span:nth-child(n+2){text-align:center}.oa-docs-row{min-height:64px;border-top:1px solid var(--border)}.oa-docs-row:nth-child(2){border-top:0}.oa-docs-row>div:nth-child(n+2){display:flex;justify-content:center}.oa-docs-name{display:flex;align-items:flex-start;gap:10px;min-width:0}.oa-docs-name>i{flex:none;margin-top:1px;color:var(--text3);font-size:18px}.oa-docs-name span{font-size:13px;font-weight:550;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}.oa-docs-status{background:var(--bg);color:var(--text2);text-align:center}.oa-docs-status-cell{flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center}.oa-docs-error-detail{display:block;max-width:100%;color:var(--danger);font-size:10.5px;font-weight:550;line-height:1.35;overflow-wrap:anywhere}.oa-docs-error-detail i{margin-right:4px}.oa-docs-eye{display:inline-flex;width:36px;height:34px;padding:0;align-items:center;justify-content:center;color:var(--accent)}.oa-docs-eye i{font-size:17px}.oa-docs-remove{color:var(--danger)}.oa-docs-empty{display:grid;place-items:center;min-height:240px;color:var(--text3);font-size:12px}@media(max-width:760px){.oa-docs-overlay{padding:16px}.oa-docs-dialog{width:calc(100vw - 32px);height:calc(100vh - 32px);padding:16px}.oa-docs-grid{grid-template-columns:minmax(180px,1fr) 150px 62px 108px;gap:7px;padding:10px}.oa-docs-columns{font-size:9px}.oa-docs-row .btn{padding-left:7px;padding-right:7px}.oa-docs-name span{font-size:12px}}
.source-loading-state{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:100%;min-height:360px;color:var(--text3);font-size:13px}.source-loading-state i{font-size:17px}

/* ===== Tableau de bord — pipeline des AO ouverts (3 vues : Table / Échéances / Kanban) ===== */
.dpl-s-qualif{--c:var(--warn);--cbg:var(--warn-bg)}
.dpl-s-reponse{--c:var(--accent);--cbg:var(--accent-bg)}
.dpl-s-depose{--c:#6d5ef0;--cbg:#eeecfe}
.dpl-s-finale{--c:var(--ok);--cbg:var(--ok-bg)}
.dpl-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 6px}
.dpl-pcell{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--c);border-radius:12px;padding:12px 15px;box-shadow:var(--sh)}
.dpl-pcell .l{font-size:12.5px;font-weight:700;color:var(--c);display:flex;align-items:center;gap:7px}
.dpl-pcell .l .d{width:8px;height:8px;border-radius:50%;background:var(--c)}
.dpl-pcell .n{font-size:24px;font-weight:750;margin-top:4px;letter-spacing:-.02em}
.dpl-pcell .s{font-size:11px;color:var(--text3);margin-top:1px}
.dpl-bar{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;margin:24px 0 2px;flex-wrap:wrap}
.dpl-note{font-size:12px;color:var(--text3)}.dpl-note b{color:var(--text2)}
.dpl-switch{display:inline-flex;height:35px;box-sizing:border-box;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:3px;gap:2px}
.dpl-switch button{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--text2);font:inherit;font-size:12.5px;font-weight:650;padding:5px 12px;border-radius:8px;cursor:pointer}
.dpl-switch button i{font-size:15px}
.dpl-switch button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh)}
.dpl-pill{display:inline-flex;align-items:center;gap:7px;background:var(--cbg);color:var(--c);font-size:12px;font-weight:650;padding:4px 10px 4px 8px;border-radius:999px;white-space:nowrap}
.dpl-pill .d{width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}
.dpl-empty{color:var(--text3);font-size:13px;padding:20px;text-align:center;border:1px dashed var(--border);border-radius:12px;background:var(--surface)}
/* Table */
.dpl-tbl{width:100%;border-collapse:collapse;background:var(--surface)}
.dpl-tbl th{text-align:left;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--text3);font-weight:700;padding:11px 15px;background:var(--bg);box-shadow:inset 0 -1px 0 var(--border);white-space:nowrap;position:sticky;top:0;z-index:2}
.dpl-tbl td{padding:11px 15px;border-top:1px solid var(--border2);font-size:13px;vertical-align:middle}
.dpl-tbl tr:hover td{background:var(--bg)}
.dpl-tbl .o{font-weight:600}.dpl-tbl .c{color:var(--text3);font-size:11.5px;margin-top:1px}
/* Vue Table : barre de filtre + en-têtes triables */
.dpl-filterbar{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;margin-right:auto}
.dpl-field{display:flex;flex-direction:column;gap:4px}
.dpl-field span{font-size:11px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.dpl-field input,.dpl-field select{height:35px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;padding:0 10px;outline:none}
.dpl-field input{width:230px}
.dpl-field select{min-width:150px;cursor:pointer}
.dpl-field input:focus,.dpl-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.dpl-tblwrap{overflow:auto;max-height:60vh;border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh);background:var(--surface)}
.dpl-reset{height:35px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}
.dpl-reset:hover{background:var(--bg)}
.dpl-hcount{color:var(--text3);font-weight:650;text-transform:none;letter-spacing:0}
.dpl-tbl th .dpl-sort{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer}
.dpl-tbl th .dpl-sort:hover{color:var(--text)}
.dpl-tbl tr.is-hidden{display:none}
.dpl-tblempty{margin-top:12px;border:1px dashed var(--border);border-radius:10px;padding:16px;text-align:center;color:var(--text3);font-size:13px}
.dpl-tblempty[hidden]{display:none}
/* Chip responsable (avatar + nom), survol = nom complet (title) — vues Table / Kanban / Échéances */
.dpl-resp{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;border:0;background:transparent;font:inherit;padding:0;text-align:left;color:inherit}
.dpl-resp.can{cursor:pointer}
.dpl-resp.can:hover .nm{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.dpl-resp.can:hover .av{background:var(--accent);color:#fff}
.dpl-resp .av{width:22px;height:22px;flex:none;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}
.dpl-resp .av i{font-size:13px}
.dpl-resp .nm{font-size:12.5px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.dpl-resp.none .av{background:var(--bg);color:var(--text3)}
.dpl-resp.none .nm{color:var(--text3)}
.dpl-cardresp{margin-top:6px}
.dpl-erresp{margin-top:5px}
/* Card « agrandir » + modale des échéances administratives */
.card-expand{border:0;background:transparent;color:var(--text3);cursor:pointer;padding:3px 5px;border-radius:7px;line-height:1;font-size:16px;display:inline-flex;align-items:center}
.card-expand:hover{background:var(--bg);color:var(--accent)}
.admech-dialog{width:min(660px,92vw);height:min(660px,86vh);max-width:100%;display:flex;flex-direction:column}
.admech-close{border:0;background:transparent;color:var(--text3);cursor:pointer;padding:4px;border-radius:7px;line-height:1;font-size:18px;display:inline-flex;flex:none}
.admech-close:hover{background:var(--bg);color:var(--text)}
.admech-list{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow:auto;margin-top:2px}
.admech-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:9px;border:1px solid var(--border2)}
.admech-row.clickable{cursor:pointer}
.admech-row.clickable:hover{background:var(--bg);border-color:var(--border)}
.admech-name{font-size:14px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:7px;min-width:0}
.admech-name .ti{color:var(--accent);font-size:15px;flex:none}
.dpl-act{color:var(--accent);font-weight:650;font-size:12.5px;cursor:pointer;white-space:nowrap}
.dpl-amt{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}
/* Échéances */
.dpl-ech{display:flex;flex-direction:column;gap:8px}
.dpl-ehead{display:flex;align-items:center;gap:9px;margin:14px 2px 3px;color:var(--c)}
.dpl-ehead:first-child{margin-top:0}
.dpl-ehead .d{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.dpl-ehead .t{font-size:12.5px;font-weight:750}
.dpl-ehead .k{font-size:12px;color:var(--text3);font-weight:600}
.dpl-erow{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--c);border-radius:10px;padding:11px 15px;box-shadow:var(--sh);cursor:pointer}
.dpl-erow:hover{border-color:var(--accent)}
.dpl-edue{flex:0 0 74px}
.dpl-edue .j{font-size:15px;font-weight:750;color:var(--c);line-height:1.1}
.dpl-edue .u{font-size:10.5px;color:var(--text3);font-weight:650;margin-top:1px}
.dpl-erow .m{flex:1 1 auto;min-width:0}
.dpl-erow .m .o{font-weight:650;font-size:13px}
.dpl-erow .m .c{font-size:11.5px;color:var(--text3);margin-top:1px}
.dpl-erow .a{flex:0 0 176px;color:var(--accent);font-weight:700;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dpl-erow .a.none{color:var(--text3);font-weight:600}
.dpl-erow .am{flex:0 0 84px;text-align:right}
/* Kanban */
.dpl-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dpl-col .h{display:flex;align-items:center;gap:7px;padding:2px 4px 10px;font-size:12.5px;font-weight:700;color:var(--c)}
.dpl-col .h .d{width:8px;height:8px;border-radius:50%;background:var(--c)}
.dpl-col .h .k{margin-left:auto;font-size:11px;color:var(--text3);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-weight:600}
.dpl-cards{display:flex;flex-direction:column;gap:9px;background:var(--bg);border-radius:10px;padding:9px;min-height:46px}
.dpl-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--c);border-radius:9px;padding:11px 12px;box-shadow:var(--sh);cursor:pointer}
.dpl-card:hover{border-color:var(--accent)}
.dpl-card .o{font-weight:640;font-size:12.5px;line-height:1.3}
.dpl-card .c{color:var(--text3);font-size:11px;margin-top:2px}
.dpl-card .f{display:flex;align-items:center;gap:7px;margin-top:9px;flex-wrap:wrap}
.dpl-card .act{margin-top:9px;padding-top:8px;border-top:1px solid var(--border2);color:var(--accent);font-weight:700;font-size:12px}
@media(max-width:1080px){.dpl-strip,.dpl-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.dpl-strip,.dpl-board{grid-template-columns:1fr}.dpl-erow{flex-wrap:wrap;gap:10px}.dpl-erow .a,.dpl-erow .am{flex:0 0 auto}}

/* ============================================================================
   CLIENTS MGT — console super-admin refondue (3 vues : Pilotage / Onboarding / Finance)
   Mockup mappé sur les variables de l'app (→ dark mode gratuit). Tout préfixé .sa- (anti-collision).
   ============================================================================ */
#superadmin{--sa-violet:#7455d8;--sa-violet-bg:#f1edff;--sa-radius:14px}
:root[data-theme="dark"] #superadmin{--sa-violet:#a894f0;--sa-violet-bg:#211a3a}
.sa-console{max-width:1500px}
.sa-head{display:flex;align-items:flex-start;gap:18px;margin:0 0 20px}
.sa-head>div:first-child{flex:1;min-width:0}
.sa-eyebrow{display:block;margin-bottom:6px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.sa-head h1{margin:0;font-size:24px;line-height:1.15;letter-spacing:-.03em}
.sa-head p{max-width:820px;margin:7px 0 0;color:var(--text3);font-size:13px;line-height:1.5}
.sa-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.sa-switch{display:inline-flex;gap:3px;padding:4px;border-radius:11px;background:var(--bg);border:1px solid var(--border);margin:0 0 18px}
.sa-switch button{height:31px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--text3);font-size:12px;font-weight:700;cursor:pointer}
.sa-switch button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(15,23,42,.12)}
.sa-btn{height:37px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border:1px solid var(--border2);border-radius:10px;background:var(--surface);color:var(--text);font-size:12px;font-weight:650;white-space:nowrap;cursor:pointer}
.sa-btn:hover{border-color:var(--text3);box-shadow:0 3px 11px rgba(15,23,42,.06)}
.sa-btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.sa-btn.primary:hover{filter:brightness(.94)}
.sa-btn.small{height:31px;padding:0 11px;font-size:11px}
.sa-iconbtn{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text3);cursor:pointer}.sa-iconbtn:hover{border-color:var(--text3);color:var(--text)}
.sa-quiet{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--text3);cursor:pointer}.sa-quiet:hover{background:var(--bg)}

.sa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.sa-kpi{min-width:0;padding:16px 18px;border:1px solid var(--border);border-radius:var(--sa-radius);background:var(--surface)}
.sa-kpi-label{display:flex;align-items:center;gap:7px;color:var(--text3);font-size:11.5px}.sa-kpi-label i{font-size:15px}
.sa-kpi strong{display:block;margin:9px 0 5px;font-size:24px;line-height:1;letter-spacing:-.035em}.sa-kpi strong em{margin-left:3px;color:var(--text3);font-size:12px;font-style:normal;font-weight:500}
.sa-kpi small{display:block;color:var(--text3);font-size:10px}
.sa-pos{color:var(--ok)!important}.sa-neg{color:var(--danger)!important}.sa-warn{color:var(--warn)!important}
.sa-bar{display:block;width:100%;height:6px;overflow:hidden;border-radius:99px;background:var(--bg)}.sa-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.sa-bar.ok i{background:var(--ok)}.sa-bar.amber i{background:var(--warn)}

.sa-panel{border:1px solid var(--border);border-radius:var(--sa-radius);background:var(--surface);overflow:hidden}
.sa-phead{min-height:60px;display:flex;align-items:center;gap:13px;padding:12px 16px;border-bottom:1px solid var(--border)}
.sa-phead>div:first-child{flex:1;min-width:0}.sa-phead h2{margin:0;font-size:14px}.sa-phead p{margin:3px 0 0;color:var(--text3);font-size:10.5px}
.sa-pfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;color:var(--text3);font-size:10.5px}.sa-pfoot>div{display:flex;gap:7px}
.sa-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.sa-tools{display:flex;align-items:center;gap:8px}
.sa-search{position:relative;display:block;width:230px}.sa-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text3)}
.sa-search input{width:100%;height:37px;padding:0 11px 0 33px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);outline:none;font-size:12px}
.sa-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.sa-scroll{overflow:auto}
.sa-table{width:100%;border-collapse:collapse;font-size:12px}
.sa-table th{padding:10px 15px;background:var(--bg);color:var(--text3);font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.sa-table td{padding:12px 15px;border-top:1px solid var(--border);vertical-align:middle}
.sa-table tbody tr{cursor:pointer}.sa-table tbody tr:hover,.sa-table tbody tr.on{background:var(--accent-bg)}
.sa-orgcell{display:flex;align-items:center;gap:10px}.sa-orgcell>span:last-child{min-width:0}.sa-orgcell b{display:block;white-space:nowrap}.sa-orgcell small{display:block;margin-top:2px;color:var(--text3);font-size:9.5px;white-space:nowrap}
.sa-logo{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:10px;font-weight:800;background:var(--accent-bg);color:var(--accent)}
.sa-logo.g{background:var(--ok-bg);color:var(--ok)}.sa-logo.a{background:var(--warn-bg);color:var(--warn)}.sa-logo.v{background:var(--sa-violet-bg);color:var(--sa-violet)}
.sa-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:9.5px;font-weight:800;white-space:nowrap;background:var(--accent-bg);color:var(--accent)}
.sa-pill.g{background:var(--ok-bg);color:var(--ok)}.sa-pill.a{background:var(--warn-bg);color:var(--warn)}.sa-pill.r{background:var(--danger-bg);color:var(--danger)}.sa-pill.v{background:var(--sa-violet-bg);color:var(--sa-violet)}.sa-pill.gray{background:var(--bg);color:var(--text3)}
.sa-creditcell{display:grid;gap:5px;min-width:120px}.sa-creditcell>span:first-child{display:flex;justify-content:space-between;align-items:center}.sa-creditcell small{color:var(--text3);font-size:9px}.sa-creditcell .sa-bar{height:5px}
.sa-stack{display:grid;gap:18px}
.sa-badge{display:grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn);font-size:10px;font-weight:800}
.sa-attn{padding:4px 16px}.sa-attn article{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.sa-attn article:last-child{border-bottom:0}.sa-attn b{display:block;font-size:11px;line-height:1.3}.sa-attn small{display:block;margin-top:2px;color:var(--text3);font-size:9.5px;line-height:1.35}
.sa-attn-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent-bg);color:var(--accent)}.sa-attn-ic.amber{background:var(--warn-bg);color:var(--warn)}
.sa-quick{display:grid;gap:8px;padding:14px}.sa-quick .sa-btn{width:100%;justify-content:flex-start}
.sa-empty{padding:30px 16px;text-align:center;color:var(--text3);font-size:12.5px}.sa-empty i{display:block;margin:0 auto 8px;font-size:26px;opacity:.5}
.sa-na{color:var(--text3);font-style:italic;font-size:11px}

/* Onboarding wizard */
.sa-ob{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.sa-steps{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;min-height:70px;padding:0 22px;border-bottom:1px solid var(--border)}
.sa-steps>em{height:1px;margin:0 12px;background:var(--border)}
.sa-steps button{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:var(--text3);font-size:10.5px;font-weight:700;cursor:pointer}
.sa-steps button>i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--bg);font-size:10px;font-style:normal}
.sa-steps button.on{color:var(--accent)}.sa-steps button.on>i{background:var(--accent);color:#fff}.sa-steps button.done{color:var(--ok)}.sa-steps button.done>i{background:var(--ok-bg);color:var(--ok)}
.sa-stepwrap{min-height:400px;padding:26px}.sa-step{display:none}.sa-step.on{display:block}.sa-step h2{margin:0;font-size:18px}.sa-step-lead{margin:6px 0 20px;color:var(--text3);font-size:11.5px}
.sa-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sa-field{display:grid;gap:6px}.sa-field.full{grid-column:1/-1}.sa-field>span{color:var(--text3);font-size:10.5px;font-weight:650}
.sa-field input,.sa-field select{width:100%;height:39px;padding:0 12px;border:1px solid var(--border2);border-radius:10px;background:var(--surface);color:var(--text);outline:none;font-size:12px}
.sa-field input:focus,.sa-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.sa-callout{display:flex;align-items:flex-start;gap:10px;margin-top:15px;padding:12px 14px;border-radius:11px;background:var(--accent-bg);color:var(--accent);font-size:10.5px;line-height:1.45}.sa-callout>i{font-size:15px;flex:none}.sa-callout.ok{background:var(--ok-bg);color:var(--ok)}
.sa-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.sa-plan{position:relative;min-width:0;padding:16px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:left;cursor:pointer}
.sa-plan:hover,.sa-plan.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.sa-plan>i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-bg);color:var(--accent);font-size:17px}
.sa-plan h3{margin:11px 0 7px;font-size:13px}.sa-plan>b{display:block;font-size:11px}.sa-plan>span:not(.sa-plan-check){display:block;margin-top:5px;color:var(--text3);font-size:9.5px}
.sa-plan-check{position:absolute;right:10px;top:10px;display:none;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff}.sa-plan.on .sa-plan-check{display:grid}
.sa-check{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:10px}.sa-check input{margin-top:2px;accent-color:var(--accent)}.sa-check b,.sa-check small{display:block}.sa-check b{font-size:11px}.sa-check small{margin-top:2px;color:var(--text3);font-size:9.5px}
.sa-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sa-review>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.sa-review span,.sa-review b{display:block}.sa-review span{color:var(--text3);font-size:9.5px}.sa-review b{margin-top:5px;font-size:11px}
.sa-obfoot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border);background:var(--bg)}.sa-obfoot .back{margin-right:auto}
.sa-obside{display:grid;gap:16px}.sa-summary{padding:20px}.sa-summary h2{margin:0 0 16px;font-size:16px}.sa-summary dl{margin:0}.sa-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:10.5px}.sa-summary dt{color:var(--text3)}.sa-summary dd{margin:0;font-weight:700;text-align:right}

/* Finance */
.sa-fhero{display:grid;grid-template-columns:1.4fr .95fr;gap:16px;margin-bottom:18px}
.sa-margin{min-height:210px;padding:22px;border-radius:16px;background:linear-gradient(135deg,#173a9d,var(--accent));color:#fff;box-shadow:0 12px 34px rgba(37,99,235,.18)}.sa-margin>span{color:#dbe5ff;font-size:11px}.sa-margin strong{display:block;margin:12px 0 10px;font-size:38px;line-height:1;letter-spacing:-.045em}.sa-margin p{margin:0;color:#e4eaff;font-size:10.5px}
.sa-spark{display:flex;align-items:flex-end;gap:5px;height:64px;margin-top:20px}.sa-spark i{flex:1;min-width:7px;border-radius:4px 4px 1px 1px;background:rgba(255,255,255,.28)}.sa-spark i.hi{background:#9fb2ff}
.sa-fkpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sa-fkpis .sa-kpi{display:flex;flex-direction:column;justify-content:center}
.sa-cost{padding:16px}.sa-stacked{display:flex;height:13px;overflow:hidden;border-radius:99px;background:var(--bg)}.sa-stacked i.b{background:var(--accent)}.sa-stacked i.v{background:var(--sa-violet)}.sa-stacked i.g{background:var(--ok)}.sa-stacked i.a{background:var(--warn)}
.sa-cost ul{margin:14px 0 0;padding:0;list-style:none}.sa-cost li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.sa-cost li:last-child{border-bottom:0}.sa-cost li>span{position:relative;flex:1;padding-left:13px}.sa-cost li>span>i{position:absolute;left:0;top:4px;width:7px;height:7px;border-radius:50%}.sa-cost i.b{background:var(--accent)}.sa-cost i.v{background:var(--sa-violet)}.sa-cost i.g{background:var(--ok)}.sa-cost i.a{background:var(--warn)}.sa-cost b,.sa-cost small{display:block}.sa-cost b{font-size:10.5px}.sa-cost small{margin-top:2px;color:var(--text3);font-size:9px}.sa-cost li>strong{font-size:13px}
.sa-cat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.sa-cat article{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:14px 16px;border-right:1px solid var(--border)}.sa-cat article:last-child{border-right:0}.sa-cat-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-bg);color:var(--accent)}.sa-cat b,.sa-cat small{display:block}.sa-cat b{font-size:10.5px}.sa-cat small{margin-top:2px;color:var(--text3);font-size:9px}.sa-cat article>strong{font-size:10.5px}

/* Drawer (fiche organisation) */
.sa-drawer{position:fixed;inset:0;z-index:80;display:none}.sa-drawer.open{display:block}.sa-drawer-bg{position:absolute;inset:0;background:rgba(15,23,42,.4)}
.sa-drawer-panel{position:absolute;right:0;top:0;width:min(430px,94vw);height:100%;overflow:auto;background:var(--surface);box-shadow:-16px 0 55px rgba(15,23,42,.2);animation:saDrawerIn .2s ease}.sa-drawer.fin .sa-drawer-panel{width:min(680px,96vw)}
.sa-drawer-panel>header{display:flex;align-items:center;gap:12px;min-height:88px;padding:20px 22px;border-bottom:1px solid var(--border)}.sa-drawer-panel>header>.sa-logo{width:44px;height:44px;border-radius:12px;font-size:11px}.sa-drawer-panel>header>div{flex:1}.sa-drawer-panel h2{margin:0;font-size:17px}.sa-drawer-panel header p{margin:4px 0 0;color:var(--text3);font-size:10px}
.sa-marginpill{display:inline-flex;margin-top:5px;padding:4px 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:10px;font-weight:800}
.sa-drawer-body{padding:20px 22px}.sa-drawer-body dl{margin:0}.sa-drawer-body dl>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:10.5px}.sa-drawer-body dt{color:var(--text3)}.sa-drawer-body dd{margin:0;font-weight:700;text-align:right}
.sa-drawer-actions{display:grid;gap:8px;margin-top:18px}.sa-drawer-actions .sa-btn{width:100%}
@keyframes saDrawerIn{from{transform:translateX(22px);opacity:.5}to{transform:none;opacity:1}}

@media(max-width:1180px){.sa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sa-cols{grid-template-columns:minmax(0,1fr) 300px}.sa-ob{grid-template-columns:minmax(0,1fr) 260px}.sa-fhero{grid-template-columns:1fr}.sa-cat{grid-template-columns:1fr}.sa-cat article{border-right:0;border-bottom:1px solid var(--border)}.sa-cat article:last-child{border-bottom:0}}
@media(max-width:820px){.sa-cols,.sa-ob{grid-template-columns:1fr}.sa-fhero,.sa-kpis{grid-template-columns:1fr}.sa-plans,.sa-form,.sa-review,.sa-fkpis{grid-template-columns:1fr}.sa-steps{grid-template-columns:repeat(4,1fr);padding:0 12px}.sa-steps>em{display:none}.sa-steps button{display:grid;place-items:center;text-align:center}.sa-steps button span{margin-top:4px;font-size:8px}.sa-head{display:block}.sa-head-actions{margin-top:12px}}

/* ===== Assistant d'onboarding admin (12-onboarding.js) — approche A « pas-à-pas ».
   Le corps de chaque étape est la VRAIE page adoptée (#obBody > section) : on ne stylise ici que le
   CADRE (stepper, pourquoi, pied) ; les pages gardent leurs styles propres, inchangés. */
.ob-wrap{max-width:1080px;margin:0 auto;}
.ob-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.ob-top .tt{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--text2);}
.ob-top .tt i{color:var(--accent);}
.ob-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;}
.ob-steps .st{display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12.5px;color:var(--text2);cursor:pointer;user-select:none;}
.ob-steps .st .dot{width:20px;height:20px;border-radius:50%;background:var(--bg);border:1px solid var(--border2);display:grid;place-items:center;font-size:11px;font-weight:600;flex:none;}
.ob-steps .st.cur{border-color:var(--accent);color:var(--text);box-shadow:var(--sh);}
.ob-steps .st.cur .dot{background:var(--accent);border-color:var(--accent);color:#fff;}
.ob-steps .st.done .dot{background:var(--ok-bg);border-color:var(--ok);color:var(--ok);}
.ob-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:2px 2px 10px;}
#obBody>section{display:block;}
.ob-why{display:block;margin-top:18px;padding:14px 16px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r);background:var(--accent-bg);}
.ob-why h4{margin:0 0 4px;font-size:12.5px;display:flex;align-items:center;gap:6px;}
.ob-why p{margin:0;font-size:12.5px;line-height:1.55;color:var(--text2);}
.ob-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--border);}
.ob-foot .r{display:flex;gap:8px;}
.ob-note{font-size:12px;color:var(--text3);}
.ob-card{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.ob-card>i{font-size:20px;color:var(--accent);flex:none;}
.ob-card .m{flex:1;min-width:0;font-size:13px;}
