/* ═══════════════════════════════════════════════════════════════════════════
   SMQ › DOCUMENTS — « Le Cockpit » (maquette B validée par Selim le 30/07/2026)
   Préfixe unique : sd-*  ·  aucun sélecteur générique, aucune collision possible
   avec nexus.css. Chargé par index.html juste après nexus.css.

   Le référentiel documentaire natif (collection Firestore `smqDocs`) remplace
   l'ancien explorateur de fichiers dans l'onglet Documents. L'explorateur
   historique (`smqItems`) n'est PAS supprimé : il devient le « Drive SMQ »,
   affiché dans un tiroir latéral — d'où les règles .sd-drawer #smq-* en fin
   de fichier, qui le ré-habillent sans toucher à son balisage.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Les jetons sont posés sur :root et non sur #smq-pane-docs : le tiroir, la
   fiche et les modales vivent en fin de <body>, hors de .tab-content.
   Raison : .tab-content.active porte une animation `both` se terminant sur
   transform:translateY(0) — un ancêtre transformé devient le référentiel
   des position:fixed, ce qui décalerait tous les panneaux. */
:root{
  --sd-navy-950:#071a3a; --sd-navy-900:#0a2249; --sd-navy-800:#0d2d5e;
  --sd-navy-700:#143b78; --sd-navy-600:#1a4fa0; --sd-navy-100:#dbeafe; --sd-navy-50:#eff5fc;
  --sd-ink-900:#0f172a; --sd-ink-700:#334155; --sd-ink-500:#64748b;
  --sd-ink-400:#94a3b8; --sd-ink-200:#e2e8f0; --sd-ink-100:#f1f5f9; --sd-ink-50:#f8fafc;
  --sd-coral:#F97316; --sd-coral-600:#EA580C; --sd-coral-50:#fff7ed;
  --sd-green:#16A34A; --sd-red:#DC2626; --sd-sky:#0EA5E9; --sd-violet:#7C3AED;
  --sd-sh-sm:0 1px 3px rgba(15,23,42,.05);
  --sd-sh-md:0 6px 20px rgba(15,23,42,.07);
  --sd-sh-lg:0 24px 60px rgba(10,34,73,.20);
  --sd-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* nexus.css ligne 15 pose `*{box-sizing:border-box;margin:0;padding:0;
   font-family:'Segoe UI',…}` — une règle universelle qui s'applique
   DIRECTEMENT à chaque élément, donc l'héritage ne suffit pas à imposer notre
   police. `.sd-scope *` a une spécificité de (0,1,0) : elle bat le `*` global,
   tout en restant battue par nos propres règles Sora (0,1,1 et plus).
   Les conteneurs portent la classe sd-scope dans index.html. */
.sd-scope, .sd-scope *{
  box-sizing:border-box;
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}

/* ─────────────────────────── Boutons ─────────────────────────── */
.sd-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:11px;
  font-family:inherit;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:.16s;white-space:nowrap}
.sd-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sd-btn-navy{background:var(--sd-navy-800);color:#fff;box-shadow:0 3px 10px rgba(13,45,94,.24)}
.sd-btn-navy:hover{background:var(--sd-navy-700)}
.sd-btn-coral{background:var(--sd-coral);color:#fff;box-shadow:0 3px 10px rgba(249,115,22,.3)}
.sd-btn-coral:hover{background:var(--sd-coral-600)}
.sd-btn-w{background:#fff;color:var(--sd-navy-800);border:1px solid var(--sd-ink-200);box-shadow:var(--sd-sh-sm)}
.sd-btn-w:hover{border-color:var(--sd-navy-600)}
.sd-btn-soft{background:var(--sd-ink-100);color:var(--sd-ink-700)}
.sd-btn-soft:hover{background:var(--sd-ink-200)}
.sd-btn-danger{background:#fff;color:var(--sd-red);border:1px solid #fecaca}
.sd-btn-danger:hover{background:#fef2f2}
.sd-btn-sm{padding:7px 12px;font-size:12px;border-radius:9px}
.sd-btn-sm svg{width:13px;height:13px}
.sd-btn[disabled]{opacity:.5;cursor:not-allowed}
.sd-ib{width:27px;height:27px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--sd-ink-500);background:#fff;border:1px solid var(--sd-ink-200);cursor:pointer;box-shadow:var(--sd-sh-sm)}
.sd-ib:hover{background:var(--sd-navy-800);color:#fff;border-color:var(--sd-navy-800)}
.sd-ib svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.sd-mono{font-family:var(--sd-mono)}

/* ───────────────────── Bandeau santé documentaire ───────────────────── */
.sd-health{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;margin-top:4px}
.sd-hcard{background:linear-gradient(150deg,#0a2249,#1a4fa0 78%);color:#fff;border-radius:18px;padding:22px;
  position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(10,34,73,.24)}
.sd-hcard::after{content:'';position:absolute;right:-42px;top:-42px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.05)}
.sd-hcard .sd-k{font-size:10.5px;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.6);font-weight:700}
.sd-ring{display:flex;align-items:center;gap:16px;margin-top:14px;position:relative;z-index:1}
.sd-ring svg{width:82px;height:82px;flex-shrink:0;transform:rotate(-90deg)}
.sd-ring .sd-pc{font-family:'Sora','Inter',sans-serif;font-size:30px;font-weight:800;line-height:1}
.sd-ring .sd-sub{font-size:12px;color:rgba(255,255,255,.75);margin-top:5px;line-height:1.45}
.sd-hbars{margin-top:16px;display:grid;gap:8px;position:relative;z-index:1}
.sd-hbar{display:flex;align-items:center;gap:9px;font-size:11.5px;background:none;border:none;padding:0;
  width:100%;cursor:pointer;color:inherit;font-family:inherit;text-align:left}
.sd-hbar:hover .sd-l{color:#fff;text-decoration:underline}
.sd-hbar .sd-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.sd-hbar .sd-l{color:rgba(255,255,255,.82);flex:1}
.sd-hbar .sd-v{font-family:var(--sd-mono);font-weight:700}

.sd-alerts{background:#fff;border-radius:18px;padding:18px 20px;box-shadow:var(--sd-sh-sm);border:1px solid #e9edf4;min-width:0}
.sd-alerts-h{display:flex;align-items:center;gap:9px;margin-bottom:13px;flex-wrap:wrap}
.sd-alerts-h h3{font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--sd-navy-800);margin:0}
.sd-alerts-h .sd-b{background:#fef2f2;color:var(--sd-red);font-size:11px;font-weight:800;padding:2px 9px;border-radius:20px}
.sd-alerts-h .sd-sp{flex:1}
.sd-alist{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:9px}
.sd-alert{display:flex;gap:10px;padding:11px 13px;border-radius:12px;background:var(--sd-ink-50);
  border:1px solid var(--sd-ink-100);cursor:pointer;transition:.15s;align-items:flex-start;text-align:left;font-family:inherit}
.sd-alert:hover{border-color:var(--sd-acol);background:#fff;box-shadow:var(--sd-sh-sm)}
.sd-alert .sd-ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;background:var(--sd-acol);color:#fff}
.sd-alert .sd-ic svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2}
.sd-alert .sd-t{font-size:12.5px;font-weight:650;color:var(--sd-ink-900);line-height:1.35}
.sd-alert .sd-s{font-size:11px;color:var(--sd-ink-500);margin-top:3px;line-height:1.4}
.sd-allgood{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:#f0fdf4;border:1px solid #bbf7d0}
.sd-allgood svg{width:20px;height:20px;stroke:var(--sd-green);fill:none;stroke-width:2.4;flex-shrink:0}
.sd-allgood span{font-size:12.5px;color:#15803d;font-weight:600}

/* ───────────────────── Rail des étapes du cycle ───────────────────── */
.sd-flow{display:grid;grid-template-columns:.82fr repeat(6,minmax(0,1fr));gap:9px;margin-top:16px}
.sd-stage{background:#fff;border-radius:16px;padding:14px 13px 12px;border:1.5px solid #e9edf4;cursor:pointer;
  transition:.18s;position:relative;overflow:hidden;text-align:left;font-family:inherit;min-width:0}
.sd-stage::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:var(--sd-scol);opacity:.3;transition:.18s}
.sd-stage:hover{box-shadow:var(--sd-sh-md);border-color:var(--sd-scol)}
.sd-stage.sd-on{border-color:var(--sd-scol);box-shadow:var(--sd-sh-md)}
.sd-stage.sd-on::before{opacity:1;height:5px}
/* Les enfants sont des <span> (le bouton ne peut pas contenir de <div> en
   HTML valide) : on les repasse en block, sinon tout s'écrit à la suite. */
.sd-stage .sd-num{display:block;font-family:'Sora','Inter',sans-serif;font-size:11px;font-weight:800;color:var(--sd-scol);letter-spacing:.08em}
.sd-stage .sd-nm{display:block;font-family:'Sora','Inter',sans-serif;font-size:13.5px;font-weight:750;color:var(--sd-navy-800);
  margin-top:5px;line-height:1.25;letter-spacing:-.012em}
.sd-stage .sd-sb{display:block;font-size:10.5px;color:var(--sd-ink-400);margin-top:4px;line-height:1.35;min-height:42px}
.sd-stage .sd-bot{display:flex;align-items:center;gap:6px;margin-top:11px;padding-top:10px;border-top:1px solid var(--sd-ink-100)}
.sd-stage .sd-cnt{display:block;font-family:'Sora','Inter',sans-serif;font-size:20px;font-weight:800;color:var(--sd-navy-800);line-height:1}
.sd-stage .sd-cl{display:block;font-size:10.5px;color:var(--sd-ink-400);line-height:1.2}
.sd-stage .sd-warn{margin-left:auto;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#fef2f2;
  color:var(--sd-red);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}

/* ───────────────────── Barre de filtres ───────────────────── */
.sd-tb{display:flex;gap:9px;align-items:center;margin-top:18px;flex-wrap:wrap}
.sd-search{position:relative;flex:1;min-width:200px}
.sd-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:15px;height:15px;
  stroke:var(--sd-ink-400);fill:none;stroke-width:2;pointer-events:none}
.sd-search input{width:100%;padding:11px 14px 11px 37px;border:1px solid #e9edf4;border-radius:12px;
  font-family:inherit;font-size:13px;background:#fff;outline:none;box-shadow:var(--sd-sh-sm);transition:.15s}
.sd-search input:focus{border-color:var(--sd-coral);box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.sd-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:20px;font-family:inherit;
  font-size:12.5px;font-weight:600;background:#fff;color:var(--sd-ink-500);border:1px solid #e9edf4;
  box-shadow:var(--sd-sh-sm);cursor:pointer;transition:.15s}
.sd-chip:hover{border-color:var(--sd-navy-600);color:var(--sd-navy-700)}
.sd-chip.sd-on{background:var(--sd-navy-800);color:#fff;border-color:var(--sd-navy-800)}
.sd-chip i{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}

/* ───────────────────── Sections + cartes ───────────────────── */
.sd-sec{margin-top:22px}
.sd-sec-h{display:flex;align-items:center;gap:11px;margin-bottom:12px;flex-wrap:wrap}
.sd-sec-h .sd-bar{width:4px;height:22px;border-radius:4px;background:var(--sd-gcol);flex-shrink:0}
.sd-sec-h h2{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:750;color:var(--sd-navy-800);
  letter-spacing:-.015em;margin:0}
.sd-sec-h .sd-sub{font-size:12.5px;color:var(--sd-ink-400)}
.sd-sec-h .sd-cnt{margin-left:auto;font-size:12px;font-weight:700;color:var(--sd-gcol);background:var(--sd-ink-100);padding:3px 11px;border-radius:20px}
.sd-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:12px}
.sd-card{background:#fff;border-radius:15px;border:1px solid #e9edf4;padding:15px;cursor:pointer;transition:.17s;
  position:relative;overflow:hidden;box-shadow:var(--sd-sh-sm);text-align:left;font-family:inherit;min-width:0}
.sd-card:hover{box-shadow:var(--sd-sh-md);border-color:var(--sd-dcol)}
.sd-card.sd-drop{outline:2.5px dashed var(--sd-coral);outline-offset:-2px;background:var(--sd-coral-50)}
.sd-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sd-dcol)}
.sd-c-top{display:flex;align-items:flex-start;gap:9px}
.sd-c-code{font-family:var(--sd-mono);font-size:10.5px;font-weight:700;color:#fff;background:var(--sd-dcol);
  padding:2px 7px;border-radius:5px;letter-spacing:.03em}
.sd-c-ver{margin-left:auto;font-family:var(--sd-mono);font-size:11.5px;font-weight:700;color:var(--sd-navy-800);
  background:var(--sd-navy-50);padding:2px 8px;border-radius:6px}
.sd-c-nom{font-size:13.5px;font-weight:700;color:var(--sd-ink-900);line-height:1.32;margin-top:10px;
  min-height:53px;letter-spacing:-.005em;overflow-wrap:anywhere}
.sd-c-mid{display:flex;align-items:center;gap:6px;margin-top:9px;flex-wrap:wrap}
.sd-tp{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px}
.sd-tp svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2.4}
.sd-tp-texte{background:#eef2ff;color:#4338ca}
.sd-tp-genere{background:var(--sd-coral-50);color:var(--sd-coral-600)}
.sd-tp-tableur{background:#f0fdf4;color:#15803d}
.sd-tp-depot{background:var(--sd-ink-100);color:var(--sd-ink-500)}
.sd-st{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px}
.sd-st i{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.sd-c-foot{display:flex;align-items:center;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid var(--sd-ink-100)}
.sd-c-foot .sd-dif{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--sd-ink-500);font-weight:500}
.sd-c-foot .sd-dif i{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.sd-c-foot .sd-dt{margin-left:auto;font-family:var(--sd-mono);font-size:10.5px;color:var(--sd-ink-400)}
.sd-c-flag{position:absolute;top:0;right:0;background:#fef3c7;color:#92400e;font-size:9.5px;font-weight:800;
  padding:3px 9px;border-radius:0 0 0 9px;letter-spacing:.04em}
.sd-c-acts{position:absolute;right:11px;bottom:11px;display:flex;gap:3px;opacity:0;transition:.15s}
.sd-card:hover .sd-c-acts{opacity:1}
.sd-empty{padding:50px 20px;text-align:center;grid-column:1/-1}
.sd-empty svg{width:44px;height:44px;stroke:var(--sd-ink-200);fill:none;stroke-width:1.4}
.sd-empty p{color:var(--sd-ink-400);font-size:13px;margin-top:11px}

/* ───────────────────── Tiroir Drive ───────────────────── */
.sd-dov{position:fixed;inset:0;background:rgba(10,34,73,.28);z-index:1400;display:none;opacity:0;transition:.2s}
.sd-dov.sd-show{display:block;opacity:1}
/* Tiroir Drive : 880 px (le double des 430 px d'origine) — l'explorateur de
   fichiers y tient enfin à l'aise, dossiers sur deux colonnes et noms complets. */
.sd-drawer{position:fixed;top:0;right:0;bottom:0;width:880px;max-width:94vw;background:#fff;z-index:1401;
  box-shadow:var(--sd-sh-lg);transform:translateX(100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column}
.sd-drawer.sd-show{transform:none}
.sd-dr-h{background:linear-gradient(150deg,#0a2249,#1a4fa0);color:#fff;padding:20px 22px;flex-shrink:0}
.sd-dr-h .sd-t{display:flex;align-items:center;gap:9px}
.sd-dr-h h3{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:750;margin:0}
.sd-dr-h svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}
.sd-dr-h .sd-x{margin-left:auto;opacity:.72;background:none;border:none;color:#fff;cursor:pointer;padding:4px}
.sd-dr-h .sd-x:hover{opacity:1}
.sd-dr-h p{margin:9px 0 0;font-size:12px;color:rgba(255,255,255,.75);line-height:1.5}
.sd-dr-body{flex:1;overflow-y:auto;min-height:0;padding:0 4px}
.sd-dr-f{padding:12px 20px;border-top:1px solid var(--sd-ink-100);background:var(--sd-ink-50);font-size:11.5px;
  color:var(--sd-ink-500);display:flex;align-items:center;gap:8px;flex-shrink:0}
.sd-dr-f svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}

/* Ré-habillage de l'explorateur historique (smqItems) une fois dans le tiroir.
   On ne touche PAS à son balisage : ses ids smq-* restent intacts, donc toutes
   les fonctions smq*() de nexus-app.js continuent de fonctionner à l'identique. */
.sd-drawer .docs-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 16px 0;margin:0}
.sd-drawer .docs-kpi{padding:10px 12px}
.sd-drawer .docs-kpi .val{font-size:17px}
.sd-drawer .smq-explorer{border:none;border-radius:0;box-shadow:none;margin:0}
.sd-drawer .smq-toolbar{flex-wrap:wrap;gap:8px;padding:12px 16px}
.sd-drawer .smq-toolbar-actions{width:100%}
.sd-drawer .smq-toolbar-actions input{flex:1;min-width:0}
.sd-drawer .smq-content{padding:0 12px 16px}
.sd-drawer .smq-folders{grid-template-columns:repeat(3,minmax(0,1fr))}
.sd-drag-hint{margin:12px 16px 0;padding:10px 12px;border-radius:10px;background:var(--sd-coral-50);
  border:1px solid #fed7aa;font-size:11.5px;color:#9a3412;line-height:1.5;display:flex;gap:8px}
.sd-drag-hint svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;margin-top:1px}

/* ───────────────────── Fiche document (slide-over) ───────────────────── */
.sd-fiche{position:fixed;top:0;right:0;bottom:0;width:min(1040px,96vw);background:#f7f9fc;z-index:1450;
  box-shadow:var(--sd-sh-lg);transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex}
.sd-fiche.sd-show{transform:none}
/* ⚠️ `flex:0 0 74px` et pas seulement `width` : ce rail est un <nav>, et
   nexus.css pose `nav{flex:1 1 0%}` sur TOUS les <nav> de l'application. La
   spécificité de `.sd-frail` gagnait bien sur `width`, mais `flex-basis:0%`
   venait quand même de la règle `nav` — et en contexte flex, flex-basis prime
   sur width. Résultat : le rail se partageait la fiche en deux au lieu de faire
   74 px. On fixe donc les trois composantes d'un coup. */
.sd-frail{width:74px;flex:0 0 74px;background:var(--sd-navy-950);display:flex;flex-direction:column;align-items:center;
  padding:16px 0;gap:5px}
.sd-frail .sd-cl{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.66);background:rgba(255,255,255,.07);margin-bottom:14px;border:none;cursor:pointer}
.sd-frail .sd-cl:hover{background:rgba(255,255,255,.16);color:#fff}
.sd-frail .sd-cl svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2.2}
.sd-frail .sd-t{width:56px;padding:10px 0;border-radius:11px;color:rgba(255,255,255,.55);display:flex;
  flex-direction:column;align-items:center;gap:5px;font-family:inherit;font-size:9.5px;font-weight:700;
  letter-spacing:.02em;transition:.15s;background:none;border:none;cursor:pointer}
.sd-frail .sd-t svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9}
.sd-frail .sd-t:hover{color:#fff;background:rgba(255,255,255,.08)}
.sd-frail .sd-t.sd-on{color:#fff;background:var(--sd-coral)}
.sd-fmain{flex:1;display:flex;flex-direction:column;min-width:0}
.sd-fh{background:#fff;padding:20px 26px 0;border-bottom:1px solid var(--sd-ink-100);flex-shrink:0}
.sd-fh-t{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.sd-fh .sd-code{font-family:var(--sd-mono);font-size:11px;font-weight:700;color:#fff;padding:3px 9px;
  border-radius:6px;letter-spacing:.04em;display:inline-block}
.sd-fh h2{font-family:'Sora','Inter',sans-serif;font-size:20px;font-weight:800;color:var(--sd-navy-800);
  margin:9px 0 0;line-height:1.27;letter-spacing:-.02em;max-width:600px;overflow-wrap:anywhere}
.sd-fh .sd-idl{font-family:var(--sd-mono);font-size:10.5px;color:var(--sd-ink-400);margin-top:6px;overflow-wrap:anywhere}
.sd-fh-a{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.sd-fh-m{display:flex;gap:26px;margin:16px 0 0;padding-bottom:16px;flex-wrap:wrap}
.sd-fh-m .sd-k{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--sd-ink-400);font-weight:750}
.sd-fh-m .sd-v{font-size:13px;font-weight:700;color:var(--sd-ink-900);margin-top:3px}
.sd-fb{flex:1;overflow-y:auto;padding:20px 26px 40px;min-height:0}
.sd-pane{display:none}
.sd-pane.sd-on{display:block}

.sd-revnote{background:#fff;border-radius:13px;border:1px solid var(--sd-ink-200);border-left:4px solid var(--sd-coral);
  padding:14px 16px;margin-bottom:16px;box-shadow:var(--sd-sh-sm)}
.sd-revnote .sd-k{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--sd-coral-600);
  font-weight:800;display:flex;align-items:center;gap:6px}
.sd-revnote .sd-k svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.3}
.sd-revnote p{margin:8px 0 0;font-size:13px;color:var(--sd-ink-700);line-height:1.62}
.sd-revnote .sd-who{margin-top:9px;font-size:11px;color:var(--sd-ink-400);font-family:var(--sd-mono)}

/* Rendu / édition du document textuel */
.sd-sheet{background:#fff;border-radius:13px;border:1px solid var(--sd-ink-200);padding:32px 40px;box-shadow:var(--sd-sh-sm)}
.sd-sheet h1{font-family:'Sora','Inter',sans-serif;font-size:20px;font-weight:800;color:var(--sd-navy-800);
  letter-spacing:-.02em;line-height:1.3;margin:0}
.sd-sheet h2{font-family:'Sora','Inter',sans-serif;font-size:14.5px;font-weight:750;color:var(--sd-navy-700);margin:22px 0 8px}
.sd-sheet h3{font-family:'Sora','Inter',sans-serif;font-size:13px;font-weight:700;color:var(--sd-navy-700);margin:16px 0 6px}
.sd-sheet p{font-size:13.5px;line-height:1.75;color:var(--sd-ink-700);margin:0 0 11px;text-align:justify}
.sd-sheet ul,.sd-sheet ol{margin:0 0 12px;padding-left:19px}
.sd-sheet li{font-size:13.5px;line-height:1.7;color:var(--sd-ink-700);margin-bottom:4px}
.sd-sheet table{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:12.5px}
.sd-sheet th,.sd-sheet td{border:1px solid var(--sd-ink-200);padding:7px 10px;text-align:left}
.sd-sheet th{background:var(--sd-ink-50);font-weight:700;color:var(--sd-navy-800)}
.sd-sheet blockquote{background:var(--sd-coral-50);border-left:3px solid var(--sd-coral);padding:12px 15px;
  border-radius:0 10px 10px 0;font-size:13px;line-height:1.65;color:#7c2d12;margin:14px 0}
.sd-sheet .sd-dmeta{font-family:var(--sd-mono);font-size:10.5px;color:var(--sd-ink-400);margin:9px 0 20px;
  padding-bottom:13px;border-bottom:1px solid var(--sd-ink-100);line-height:1.7}
.sd-sheet[contenteditable="true"]{outline:2px solid var(--sd-coral);outline-offset:5px;background:#fffdf9}
.sd-editbar{position:sticky;top:0;z-index:4;background:var(--sd-navy-800);color:#fff;border-radius:11px;
  padding:9px 13px;display:flex;align-items:center;gap:6px;margin-bottom:14px;box-shadow:var(--sd-sh-md);flex-wrap:wrap}
.sd-editbar .sd-sp{flex:1}
.sd-editbar .sd-msg{font-size:12px;font-weight:600;margin-right:4px}
.sd-eb{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;border:none;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:inherit}
.sd-eb:hover{background:rgba(255,255,255,.24)}
.sd-eb svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

.sd-box{background:#fff;border-radius:13px;border:1px solid var(--sd-ink-200);overflow:hidden;box-shadow:var(--sd-sh-sm)}
.sd-box-h{padding:16px 20px;border-bottom:1px solid var(--sd-ink-100);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sd-box-h .sd-big{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-family:var(--sd-mono);font-size:11px;font-weight:800;color:#fff;flex-shrink:0}
.sd-box-h .sd-t{font-size:14px;font-weight:750;color:var(--sd-navy-800)}
.sd-box-h .sd-s{font-size:12px;color:var(--sd-ink-500);margin-top:3px;line-height:1.45}
.sd-dropzone{margin:18px 20px;border:2px dashed var(--sd-ink-200);border-radius:14px;padding:34px 20px;
  text-align:center;background:var(--sd-ink-50);transition:.16s;cursor:pointer}
.sd-dropzone:hover{border-color:var(--sd-coral);background:var(--sd-coral-50)}
.sd-dropzone svg{width:34px;height:34px;stroke:var(--sd-navy-600);fill:none;stroke-width:1.6}
.sd-dropzone .sd-m{font-size:14px;font-weight:750;color:var(--sd-navy-800);margin-top:10px}
.sd-dropzone .sd-s{font-size:12px;color:var(--sd-ink-500);margin-top:4px}
.sd-info{background:var(--sd-navy-50);border:1px solid var(--sd-navy-100);border-radius:11px;padding:12px 15px;display:flex;gap:10px}
.sd-info svg{width:17px;height:17px;stroke:var(--sd-navy-600);fill:none;stroke-width:2;flex-shrink:0;margin-top:1px}
.sd-info .sd-t{font-size:12.5px;color:var(--sd-navy-800);line-height:1.55}
.sd-soon{display:inline-flex;align-items:center;gap:6px;background:#fef3c7;color:#92400e;font-size:11px;
  font-weight:750;padding:4px 11px;border-radius:20px}
/* ─── Encart des visas (vérification / approbation) ───
   Volontairement HORS de .sd-sheet : la feuille est éditable au clavier, un
   execCommand malheureux ne doit pas pouvoir emporter une signature. */
.sd-visas{background:#fff;border:1px solid var(--sd-ink-200);border-radius:13px;margin-top:16px;
  overflow:hidden;box-shadow:var(--sd-sh-sm)}
.sd-visas-h{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid var(--sd-ink-100);
  font-size:12.5px;font-weight:750;color:var(--sd-navy-800)}
.sd-visas-h svg{width:15px;height:15px;stroke:var(--sd-navy-600);fill:none;stroke-width:2}
.sd-visas table{width:100%;border-collapse:collapse}
.sd-visas th,.sd-visas td{padding:9px 14px;text-align:left;border-bottom:1px solid var(--sd-ink-100);vertical-align:middle}
.sd-visas thead th{font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--sd-ink-400);
  background:var(--sd-ink-50);font-weight:800}
.sd-visas tbody th{font-size:12px;font-weight:750;color:var(--sd-navy-800);width:130px}
.sd-visas tbody td{font-size:13px;color:var(--sd-ink-700)}
.sd-visas tbody tr:last-child th,.sd-visas tbody tr:last-child td{border-bottom:none}
.sd-visas .sd-sig{width:38%}
.sd-visas .sd-sig img{max-width:190px;max-height:46px;display:block}
.sd-visas-h .sd-btn{margin-left:auto}
.sd-visas-vide{padding:16px 18px;font-size:12.5px;color:var(--sd-ink-500);line-height:1.6}

/* ─── Éditeur de visas (modale) ─── */
.sd-visa-row{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--sd-ink-100)}
.sd-visa-row:first-child{padding-top:0}
.sd-visa-n{width:22px;height:22px;border-radius:50%;background:var(--sd-navy-50);color:var(--sd-navy-700);
  font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:16px}
.sd-visa-f{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;min-width:0}
.sd-visa-f label:first-child{grid-column:1/-1}
.sd-visa-f label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;color:var(--sd-ink-400)}
.sd-visa-f input{border:1px solid var(--sd-ink-200);border-radius:9px;padding:8px 10px;font-family:inherit;
  font-size:13px;color:var(--sd-ink-900);background:#fff;width:100%;text-transform:none;letter-spacing:0}
.sd-visa-f input:focus{outline:none;border-color:var(--sd-navy-600);box-shadow:0 0 0 3px rgba(26,79,160,.1)}
.sd-visa-s{width:180px;flex-shrink:0;display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.sd-visa-s img{max-width:170px;max-height:52px;border:1px solid var(--sd-ink-100);border-radius:8px;background:#fff;padding:3px}
.sd-visa-nosig{font-size:11.5px;color:var(--sd-ink-400);font-style:italic;padding:14px 0}
.sd-visa-sa{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sd-visa-del{flex-shrink:0;margin-top:14px}
.sd-visa-pad{margin-top:16px;border:1px solid var(--sd-ink-200);border-radius:13px;padding:14px;background:var(--sd-ink-50)}
.sd-visa-padh{font-size:12px;color:var(--sd-ink-600);margin-bottom:10px}
.sd-visa-pad canvas{width:100%;height:auto;background:#fff;border:1.5px dashed var(--sd-ink-200);border-radius:11px;
  touch-action:none;cursor:crosshair;display:block}
.sd-visa-pada{display:flex;gap:8px;align-items:center;margin-top:11px;flex-wrap:wrap}
#sd-mod-visa .sd-mbox{max-width:760px}

@media (max-width:720px){
  .sd-visa-row{flex-wrap:wrap}
  .sd-visa-f{grid-template-columns:minmax(0,1fr)}
  .sd-visa-s{width:100%}
  .sd-visa-del{margin-top:0}
}

.sd-filelink{display:flex;align-items:center;gap:11px;padding:13px 16px;border-top:1px solid var(--sd-ink-100);flex-wrap:wrap}
/* K9 (01/08) — le pictogramme « fichier » de la carte du dépôt n'avait AUCUNE
   règle de taille : au premier vrai dépôt (KBIS, statuts), le svg s'étirait à
   la taille du conteneur et se remplissait en noir — l'énorme pavé signalé par
   Selim. Règle propre + filet de sécurité sur tout le volet Document. */
.sd-filelink>svg{width:22px;height:22px;flex:0 0 22px;stroke:var(--sd-navy-600);fill:none;stroke-width:1.8}
#sd-pane-doc svg{max-width:44px;max-height:44px}
.sd-filelink .sd-nm{font-size:12.5px;font-weight:650;color:var(--sd-navy-800);overflow-wrap:anywhere}
.sd-filelink .sd-mt{font-size:11px;color:var(--sd-ink-400);font-family:var(--sd-mono);margin-top:2px}

/* ───────────────────── Tableaux structurés (saisie en ligne) ───────────────────── */
.sd-grid-bar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--sd-ink-100);
  background:var(--sd-ink-50);flex-wrap:wrap}
.sd-grid-status{font-size:11.5px;color:var(--sd-ink-500);margin-left:auto;font-family:var(--sd-mono)}
.sd-grid-status.sd-dirty{color:var(--sd-coral-600);font-weight:700}
.sd-grid-wrap{max-height:56vh;overflow:auto;border-bottom:1px solid var(--sd-ink-100)}
table.sd-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}
table.sd-grid th{position:sticky;top:0;z-index:2;background:var(--sd-navy-800);color:#fff;text-align:left;
  padding:8px 11px;font-weight:700;white-space:nowrap;border-right:1px solid rgba(255,255,255,.12);vertical-align:top}
table.sd-grid th .sd-gh{display:block;font-size:11.5px;letter-spacing:.01em}
table.sd-grid th .sd-gt{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.09em;
  color:rgba(255,255,255,.5);font-weight:600;margin-top:2px}
table.sd-grid td{padding:7px 11px;border-bottom:1px solid var(--sd-ink-100);border-right:1px solid var(--sd-ink-100);
  color:var(--sd-ink-700);vertical-align:top;min-width:110px;max-width:340px;overflow-wrap:anywhere}
table.sd-grid td[contenteditable="true"]:focus{outline:2px solid var(--sd-coral);outline-offset:-2px;
  background:#fffdf9;position:relative;z-index:1}
table.sd-grid td.sd-gnb{text-align:right;font-family:var(--sd-mono);font-size:12px;white-space:nowrap}
table.sd-grid tbody tr:nth-child(even) td{background:#fcfdfe}
table.sd-grid tbody tr:hover td{background:var(--sd-navy-50)}
table.sd-grid .sd-gnum{position:sticky;left:0;z-index:1;background:var(--sd-ink-50);color:var(--sd-ink-400);
  font-family:var(--sd-mono);font-size:10.5px;text-align:right;min-width:0;width:44px;padding:7px 9px;user-select:none}
table.sd-grid th.sd-gnum{background:var(--sd-navy-900);z-index:3;color:rgba(255,255,255,.45)}
table.sd-grid .sd-gact{width:70px;min-width:0;white-space:nowrap;text-align:right;padding:5px 8px}
table.sd-grid th.sd-gact{background:var(--sd-navy-800)}
table.sd-grid .sd-gact .sd-ib{width:24px;height:24px;font-size:13px;font-weight:700;line-height:1}
.sd-grid-empty{padding:38px 24px;text-align:center}
.sd-grid-empty svg{width:38px;height:38px;stroke:var(--sd-ink-200);fill:none;stroke-width:1.5}
.sd-grid-empty .sd-m{font-size:14px;font-weight:750;color:var(--sd-navy-800);margin-top:10px}
.sd-grid-empty .sd-s{font-size:12.5px;color:var(--sd-ink-500);margin-top:6px;line-height:1.6;max-width:520px;
  margin-left:auto;margin-right:auto}
.sd-colrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--sd-ink-100)}
.sd-colrow:last-child{border-bottom:none}
.sd-colmove{display:flex;flex-direction:column;gap:2px}
.sd-colmove .sd-ib{width:22px;height:16px;font-size:8px;line-height:1}
.sd-colrow input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--sd-ink-200);border-radius:8px;
  font-family:inherit;font-size:12.5px;outline:none;background:#fff}
.sd-colrow input:focus{border-color:var(--sd-coral)}
.sd-colrow select{padding:7px 9px;border:1px solid var(--sd-ink-200);border-radius:8px;font-family:inherit;
  font-size:12px;background:#fff;outline:none}

/* Historique des versions */
.sd-vtl{position:relative;padding-left:24px}
.sd-vtl::before{content:'';position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:var(--sd-ink-200)}
.sd-vitem{position:relative;background:#fff;border:1px solid var(--sd-ink-200);border-radius:13px;padding:14px 17px;
  margin-bottom:11px;transition:.15s;box-shadow:var(--sd-sh-sm)}
.sd-vitem:hover{border-color:var(--sd-navy-600)}
.sd-vitem::before{content:'';position:absolute;left:-21px;top:19px;width:11px;height:11px;border-radius:50%;
  background:#fff;border:2.5px solid var(--sd-ink-200)}
.sd-vitem.sd-cur::before{border-color:var(--sd-green);background:var(--sd-green);box-shadow:0 0 0 4px #dcfce7}
.sd-vitem.sd-cur{border-color:#bbf7d0;background:linear-gradient(140deg,#f0fdf4,#fff 55%)}
.sd-vitem-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sd-vitem .sd-vv{font-family:var(--sd-mono);font-size:13.5px;font-weight:800;color:var(--sd-navy-800)}
.sd-vitem .sd-vd{font-family:var(--sd-mono);font-size:11px;color:var(--sd-ink-400)}
.sd-vitem .sd-tagcur{font-size:9.5px;font-weight:800;background:var(--sd-green);color:#fff;padding:2px 9px;
  border-radius:20px;letter-spacing:.05em}
.sd-vitem .sd-tagarch{font-size:9.5px;font-weight:750;background:var(--sd-ink-100);color:var(--sd-ink-500);
  padding:2px 9px;border-radius:20px}
.sd-vitem .sd-vn{font-size:12.5px;color:var(--sd-ink-700);margin-top:6px;line-height:1.55}
.sd-vitem .sd-vact{margin-left:auto;display:flex;gap:4px}

/* Diffusion */
.sd-difgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:11px}
.sd-difcard{background:#fff;border:2px solid var(--sd-ink-200);border-radius:14px;padding:15px;cursor:pointer;
  transition:.16s;position:relative;box-shadow:var(--sd-sh-sm);text-align:left;font-family:inherit;width:100%}
.sd-difcard:hover{border-color:var(--sd-dcol2)}
.sd-difcard.sd-on{border-color:var(--sd-dcol2)}
.sd-difcard .sd-ic{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:var(--sd-dcol2);color:#fff}
.sd-difcard .sd-ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.sd-difcard .sd-t{font-size:13.5px;font-weight:750;color:var(--sd-ink-900);margin-top:10px}
.sd-difcard .sd-s{font-size:11.5px;color:var(--sd-ink-500);margin-top:3px;line-height:1.4}
.sd-difcard .sd-chk{position:absolute;top:13px;right:13px;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--sd-ink-200);display:flex;align-items:center;justify-content:center}
.sd-difcard.sd-on .sd-chk{background:var(--sd-dcol2);border-color:var(--sd-dcol2)}
.sd-difcard.sd-on .sd-chk::after{content:'';width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg) translate(-1px,-1px)}

/* Traçabilité */
.sd-trow{display:flex;gap:12px;padding:12px 18px;border-bottom:1px solid #f2f5f9;align-items:flex-start}
.sd-trow:last-child{border-bottom:none}
.sd-trow .sd-tic{width:29px;height:29px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sd-trow .sd-tic svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
.sd-trow .sd-tt{font-size:12.5px;color:var(--sd-ink-900);line-height:1.45}
.sd-trow .sd-td{font-family:var(--sd-mono);font-size:10.5px;color:var(--sd-ink-400);margin-top:2px}
.sd-tcards{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:16px}
.sd-tcard{background:#fff;border:1px solid var(--sd-ink-200);border-radius:12px;padding:14px 16px;box-shadow:var(--sd-sh-sm);min-width:0}
.sd-tcard .sd-k{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--sd-ink-400);font-weight:750}
.sd-tcard .sd-v{font-family:var(--sd-mono);font-size:13px;font-weight:700;color:var(--sd-navy-800);margin-top:5px;overflow-wrap:anywhere}
.sd-tcard .sd-s{font-size:11.5px;color:var(--sd-ink-500);margin-top:4px;line-height:1.45}

/* Accusés de lecture */
.sd-lect-h{font-size:12.5px;color:var(--sd-ink-700);margin-bottom:10px}
.sd-lect-h b{color:var(--sd-navy-800);font-size:14px}
.sd-lect-old{color:var(--sd-coral-600);font-weight:600}
.sd-lect-vide{display:flex;align-items:center;gap:11px;padding:16px;border:1px dashed var(--sd-ink-200);
  border-radius:12px;background:var(--sd-ink-50)}
.sd-lect-vide svg{width:19px;height:19px;stroke:var(--sd-ink-400);fill:none;stroke-width:2;flex-shrink:0}
.sd-lect-vide span{font-size:12.5px;color:var(--sd-ink-500)}

/* Prévenir les destinataires */
.sd-notif-doc{font-family:var(--sd-mono);font-size:12px;font-weight:700;color:var(--sd-navy-800);
  background:var(--sd-navy-50);border:1px solid var(--sd-navy-100);border-radius:9px;padding:10px 13px;margin-bottom:16px}
/* Ces cartes sont des <label> DANS un .sd-fld : `.sd-fld label` (0,1,1) les
   mettrait en display:block + MAJUSCULES + petite taille, et casserait la
   mise en ligne. On préfixe donc par l'id du conteneur (1,1,0) et on remet
   explicitement ce que la règle de formulaire imposait. */
#sd-notif-cibles .sd-cible{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;
  border:1.5px solid var(--sd-ink-200);border-radius:11px;margin:0 0 8px;cursor:pointer;transition:.14s;
  text-transform:none;letter-spacing:normal;font-size:13px;font-weight:400;color:var(--sd-ink-900)}
#sd-notif-cibles .sd-cible:hover{border-color:var(--sd-navy-600)}
#sd-notif-cibles .sd-cible input[type=checkbox]{margin:2px 0 0;width:16px;height:16px;padding:0;border:none;
  border-radius:0;box-shadow:none;background:none;accent-color:var(--sd-coral);flex-shrink:0}
#sd-notif-cibles .sd-cible.sd-vide{opacity:.5;cursor:not-allowed}
#sd-notif-cibles .sd-cible > span{display:block;flex:1;min-width:0;font-size:13px;color:var(--sd-ink-900);
  text-transform:none;letter-spacing:normal}
#sd-notif-cibles .sd-cible span b{font-weight:700}
#sd-notif-cibles .sd-cible input[type=checkbox]:checked ~ span b{color:var(--sd-coral-600)}
#sd-notif-cibles .sd-cible span i{font-style:normal;font-family:var(--sd-mono);font-size:11px;font-weight:700;
  color:var(--sd-ink-500);background:var(--sd-ink-100);padding:1px 7px;border-radius:20px;margin-left:6px}
#sd-notif-cibles .sd-cible span em{display:block;font-style:normal;font-size:11.5px;color:var(--sd-ink-500);
  margin-top:3px;text-transform:none;letter-spacing:normal}
.sd-notif-total{font-size:12.5px;color:var(--sd-ink-700);padding:9px 2px 0}
.sd-notif-total b{font-size:15px;color:var(--sd-navy-800)}
.sd-notif-total.sd-gros{color:var(--sd-coral-600);font-weight:600}
.sd-notif-bar{height:6px;background:var(--sd-ink-100);border-radius:6px;overflow:hidden;margin-top:6px}
.sd-notif-bar i{display:block;height:100%;background:linear-gradient(90deg,#16A34A,#4ade80);
  border-radius:6px;transition:width .2s}
.sd-notif-compteur{font-family:var(--sd-mono);font-size:11.5px;color:var(--sd-ink-500);margin-top:7px}
.sd-notif-journal{max-height:170px;overflow-y:auto;margin-top:10px;border:1px solid var(--sd-ink-100);
  border-radius:9px;background:var(--sd-ink-50)}
.sd-jl{display:flex;align-items:flex-start;gap:8px;padding:6px 10px;font-size:11.5px;border-bottom:1px solid #fff}
.sd-jl:last-child{border-bottom:none}
.sd-jl svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.4;flex-shrink:0;margin-top:1px}
.sd-jl.sd-ok{color:#15803d}
.sd-jl.sd-ko{color:#b91c1c;background:#fef2f2}
.sd-jl span{color:var(--sd-ink-700);overflow-wrap:anywhere}

/* Encart IDA */
.sd-ida{background:linear-gradient(140deg,#f5f3ff,#faf5ff);border:1px solid #ddd6fe;border-radius:14px;
  padding:16px 18px;margin-top:18px}
.sd-ida-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sd-ida-h .sd-av{width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,#7C3AED,#a855f7);
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:12px}
.sd-ida-h .sd-t{font-size:13px;font-weight:750;color:#5b21b6}
.sd-ida-h .sd-b{margin-left:auto;font-size:10px;font-weight:750;background:#ede9fe;color:#6d28d9;padding:2px 9px;border-radius:20px}
.sd-ida p{margin:9px 0 0;font-size:12.5px;color:#4c1d95;line-height:1.62}
.sd-ida .sd-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.sd-ida .sd-facts span{font-family:var(--sd-mono);font-size:10px;background:#fff;border:1px solid #ddd6fe;
  color:#6d28d9;padding:3px 8px;border-radius:6px}

/* ───────────────────── Modales ───────────────────── */
.sd-mod{position:fixed;inset:0;background:rgba(10,34,73,.5);z-index:1500;display:none;
  align-items:center;justify-content:center;padding:22px}
.sd-mod.sd-show{display:flex}
.sd-mbox{background:#fff;border-radius:20px;width:100%;max-width:580px;max-height:88vh;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--sd-sh-lg)}
.sd-mh{padding:20px 24px;border-bottom:1px solid var(--sd-ink-100);display:flex;align-items:center;gap:10px}
.sd-mh h3{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:750;color:var(--sd-navy-800);margin:0}
.sd-mh .sd-x{margin-left:auto;color:var(--sd-ink-400);background:none;border:none;cursor:pointer;font-size:17px;line-height:1}
.sd-mh .sd-x:hover{color:var(--sd-ink-900)}
.sd-mb{padding:22px 24px;overflow-y:auto;flex:1}
.sd-mf{padding:15px 24px;border-top:1px solid var(--sd-ink-100);display:flex;gap:9px;justify-content:flex-end;
  background:var(--sd-ink-50);flex-wrap:wrap}
.sd-fld{margin-bottom:15px}
.sd-fld label{display:block;font-size:11px;font-weight:750;color:var(--sd-ink-700);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.06em}
.sd-fld input,.sd-fld select,.sd-fld textarea{width:100%;padding:10px 13px;border:1px solid var(--sd-ink-200);
  border-radius:11px;font-family:inherit;font-size:13.5px;outline:none;transition:.15s;background:#fff;color:var(--sd-ink-900)}
.sd-fld input:focus,.sd-fld select:focus,.sd-fld textarea:focus{border-color:var(--sd-coral);box-shadow:0 0 0 3px rgba(249,115,22,.1)}
.sd-fld textarea{min-height:88px;resize:vertical;line-height:1.55}
.sd-fld .sd-hint{font-size:11.5px;color:var(--sd-ink-400);margin-top:5px;line-height:1.45}
.sd-fld2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sd-typegrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sd-typeopt{border:2px solid var(--sd-ink-200);border-radius:12px;padding:12px;cursor:pointer;transition:.15s;
  text-align:left;font-family:inherit;background:#fff;width:100%}
.sd-typeopt:hover{border-color:var(--sd-coral)}
.sd-typeopt.sd-on{border-color:var(--sd-coral);background:var(--sd-coral-50)}
.sd-typeopt .sd-t{font-size:12.5px;font-weight:750;color:var(--sd-ink-900)}
.sd-typeopt .sd-s{font-size:11px;color:var(--sd-ink-500);margin-top:3px;line-height:1.4}
.sd-warnbox{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:14px 16px;display:flex;gap:11px}
.sd-warnbox svg{width:19px;height:19px;stroke:var(--sd-red);fill:none;stroke-width:2;flex-shrink:0;margin-top:1px}
.sd-warnbox .sd-t{font-size:13px;font-weight:750;color:#991b1b}
.sd-warnbox .sd-s{font-size:12.5px;color:#7f1d1d;margin-top:4px;line-height:1.55}
.sd-expopt{display:flex;gap:12px;padding:14px;border:2px solid var(--sd-ink-200);border-radius:13px;cursor:pointer;
  margin-bottom:10px;transition:.15s;text-align:left;font-family:inherit;background:#fff;width:100%}
.sd-expopt:hover{border-color:var(--sd-coral);background:var(--sd-coral-50)}
.sd-expopt .sd-ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  color:#fff;flex-shrink:0;font-family:var(--sd-mono);font-size:10px;font-weight:800}
.sd-expopt .sd-t{font-size:13.5px;font-weight:750;color:var(--sd-ink-900)}
.sd-expopt .sd-s{font-size:12px;color:var(--sd-ink-500);margin-top:3px;line-height:1.45}

/* ───────────────────── Toast ───────────────────── */
.sd-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(90px);
  background:var(--sd-navy-800);color:#fff;padding:13px 22px;border-radius:14px;font-size:13px;font-weight:600;
  z-index:1600;box-shadow:var(--sd-sh-lg);display:flex;align-items:center;gap:10px;transition:.26s;opacity:0;max-width:92vw}
.sd-toast.sd-show{transform:translateX(-50%);opacity:1}
.sd-toast svg{width:16px;height:16px;stroke:#4ade80;fill:none;stroke-width:2.4;flex-shrink:0}
.sd-toast.sd-err{background:#7f1d1d}
.sd-toast.sd-err svg{stroke:#fca5a5}

/* ───────────────────── Chargement ───────────────────── */
.sd-loading{padding:60px 20px;text-align:center}
.sd-loading .sd-sp{width:32px;height:32px;border:3px solid var(--sd-ink-200);border-top-color:var(--sd-navy-600);
  border-radius:50%;margin:0 auto;animation:sdSpin .8s linear infinite}
@keyframes sdSpin{to{transform:rotate(360deg)}}
.sd-loading p{margin-top:12px;color:var(--sd-ink-500);font-size:13px;font-weight:500}

/* ═══════════════════ RESPONSIVE — iPad puis iPhone ═══════════════════
   Règle projet : tout ajout front est adapté iPad + iPhone AVANT commit.
   Pièges connus : les grilles en `1fr` doivent passer en `minmax(0,1fr)`
   (sinon débordement horizontal), et les colonnes posées en style inline
   demandent !important. Ici tout est en classes, donc pas de !important. */

@media (max-width:1180px){
  .sd-flow{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sd-fiche{width:100vw}
}

/* iPad portrait */
@media (max-width:1024px){
  .sd-health{grid-template-columns:minmax(0,1fr)}
  .sd-hcard{padding:18px}
  .sd-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sd-stage .sd-sb{min-height:34px}
  .sd-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .sd-fh{padding:16px 18px 0}
  .sd-fb{padding:16px 18px 40px}
  .sd-sheet{padding:24px 24px}
  .sd-tcards{grid-template-columns:minmax(0,1fr)}
  .sd-drawer{width:min(720px,94vw)}
  .sd-drawer .docs-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sd-drawer .smq-folders{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* iPhone / petits écrans */
@media (max-width:720px){
  .sd-health{gap:10px}
  .sd-ring svg{width:66px;height:66px}
  .sd-ring .sd-pc{font-size:25px}
  .sd-alerts{padding:14px 15px}
  .sd-alist{grid-template-columns:minmax(0,1fr)}
  .sd-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sd-stage{padding:12px 11px 10px}
  .sd-stage .sd-nm{font-size:12.5px}
  .sd-stage .sd-sb{display:none}
  .sd-tb{gap:7px}
  .sd-search{min-width:100%}
  .sd-chip{padding:7px 11px;font-size:12px}
  .sd-cards{grid-template-columns:minmax(0,1fr)}
  .sd-card{padding:13px}
  .sd-c-nom{min-height:0}
  .sd-c-acts{position:static;opacity:1;margin-top:10px;justify-content:flex-end}
  .sd-sec-h h2{font-size:15px}
  .sd-sec-h .sd-sub{display:none}

  /* La fiche passe en plein écran, le rail latéral devient une barre basse. */
  .sd-fiche{flex-direction:column;width:100vw}
  .sd-frail{width:100%;flex:0 0 auto;flex-direction:row;justify-content:space-around;padding:8px 6px;order:2;gap:2px}
  /* Le rail passe en bas ; le bouton de fermeture remonte donc sur l'en-tête
     BLANC : il lui faut des couleurs sombres, sinon il est blanc sur blanc. */
  .sd-frail .sd-cl{position:absolute;top:12px;right:12px;margin:0;width:34px;height:34px;z-index:2;
    background:var(--sd-ink-100);color:var(--sd-ink-700);border:1px solid var(--sd-ink-200)}
  .sd-frail .sd-cl:hover{background:var(--sd-ink-200);color:var(--sd-ink-900)}
  .sd-frail .sd-t{width:auto;flex:1;padding:7px 2px;font-size:9px}
  .sd-fmain{order:1;min-height:0}
  .sd-fh{padding:16px 16px 0}
  .sd-fh h2{font-size:17px;max-width:none;padding-right:44px}
  .sd-fh-a{margin-left:0;width:100%;justify-content:flex-start}
  .sd-fh-m{gap:14px}
  .sd-fb{padding:14px 16px 30px}
  .sd-sheet{padding:18px 16px}
  .sd-sheet p,.sd-sheet li{text-align:left}
  .sd-difgrid{grid-template-columns:minmax(0,1fr)}
  .sd-grid-bar{padding:10px 12px}
  .sd-grid-status{margin-left:0;width:100%;order:9}
  .sd-grid-wrap{max-height:none}
  table.sd-grid td{min-width:96px;font-size:12px}
  .sd-colrow{flex-wrap:wrap}
  .sd-colrow input{flex:1 1 100%;order:1}
  .sd-vtl{padding-left:18px}
  .sd-vitem::before{left:-16px}

  .sd-drawer{width:100vw;max-width:100vw}
  .sd-drawer .docs-kpis{grid-template-columns:minmax(0,1fr)}
  .sd-drawer .smq-folders{grid-template-columns:minmax(0,1fr)}

  .sd-mod{padding:12px;align-items:flex-end}
  .sd-mbox{max-height:92vh;border-radius:18px}
  .sd-mb{padding:18px}
  .sd-mh,.sd-mf{padding-left:18px;padding-right:18px}
  .sd-fld2{grid-template-columns:minmax(0,1fr)}
  .sd-typegrid{grid-template-columns:minmax(0,1fr)}
  .sd-toast{left:12px;right:12px;transform:translateY(90px);max-width:none;bottom:14px}
  .sd-toast.sd-show{transform:none}
}

/* Le glisser-déposer n'existe pas au doigt : sur tablette/mobile on remplace
   l'invite par la mention du bouton « Rattacher », qui fait la même chose. */
@media (hover:none){
  .sd-card:hover{box-shadow:var(--sd-sh-sm)}
  .sd-c-acts{opacity:1;position:static;margin-top:10px;justify-content:flex-end}
}

/* Impression : la fiche seule, sans chrome — sert d'export PDF de secours. */
@media print{
  .sd-frail,.sd-fh-a,.sd-editbar,.sd-c-acts,.sd-drawer,.sd-dov,.sd-mod,.sd-toast{display:none}
  .sd-fiche{position:static;width:auto;transform:none;box-shadow:none;background:#fff}
  .sd-fb{overflow:visible;padding:0}
  .sd-sheet{border:none;box-shadow:none;padding:0}
}

/* ═══════════ SAFE-AREA iPad / iPhone (PWA) — 15/08/2026 ═══════════
   La fiche document et le tiroir Drive sont des panneaux plein écran fixés
   à top:0 : la barre d'état iPad (heure / batterie) et la Dynamic Island
   iPhone se superposaient à l'en-tête (captures Selim du 15/08, Manuel
   Qualité collé tout en haut). Les marges dérivent d'env(safe-area-inset-*),
   nulles sur ordinateur : la présentation desktop ne bouge pas.
   Spécificité (0,2,0) : bat les règles média (0,1,0) quel que soit l'ordre. */
.sd-fiche .sd-frail{padding-top:calc(16px + env(safe-area-inset-top,0px))}
.sd-fiche .sd-fh{padding-top:calc(20px + env(safe-area-inset-top,0px))}
.sd-drawer .sd-dr-h{padding-top:calc(20px + env(safe-area-inset-top,0px))}
@media (max-width:1024px){
  .sd-fiche .sd-fh{padding-top:calc(16px + env(safe-area-inset-top,0px))}
}
@media (max-width:720px){
  /* Le rail passe en barre BASSE : marge home-indicator en bas, l'en-tête
     blanc porte seul la marge haute ; la croix de fermeture descend aussi. */
  .sd-fiche .sd-frail{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
  .sd-fiche .sd-frail .sd-cl{top:calc(12px + env(safe-area-inset-top,0px))}
  .sd-fiche .sd-fh{padding-top:calc(16px + env(safe-area-inset-top,0px))}
  .sd-mod{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}

/* ── 26/08 — carte d'un envoi cliquable + aperçu du mail + destinataires ── */
.sd-trow-btn{cursor:pointer;transition:background .12s}
.sd-trow-btn:hover{background:#f7fafd}
.sd-apercu-meta{border:1px solid #e2e8f0;border-bottom:none;border-radius:10px 10px 0 0;background:#f8fafc;padding:12px 16px;font-size:12.5px;color:#475569}
.sd-apercu-meta b{color:#0d2d5e}
.sd-apercu-corps{border:1px solid #e2e8f0;border-radius:0 0 10px 10px;background:#fff;padding:18px 20px;overflow:auto;max-height:52vh}
.sd-envd-meta{font-size:12px;color:#64748b;margin:4px 0 12px;line-height:1.6}
.sd-envd-meta b{color:#0d2d5e}
.sd-envd-liste{border:1px solid #e8edf3;border-radius:10px;max-height:46vh;overflow:auto;background:#fff}
.sd-envd-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid #f2f5f9}
.sd-envd-row:last-child{border-bottom:none}
.sd-envd-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.sd-envd-id b{font-size:12.5px;color:#0d2d5e;font-weight:700}
.sd-envd-id span{font-family:var(--sd-mono);font-size:10.5px;color:#64748b;word-break:break-all}
.sd-envd-b{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;border-radius:7px;padding:3px 9px;flex-shrink:0}
.sd-envd-b svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.4}
.sd-envd-b.sd-eok{color:#1b7a3d;background:#e8f6ee;border:1px solid #c8e6d3}
.sd-envd-b.sd-eko{color:#B91C1C;background:#fef2f2;border:1px solid #fecaca}
.sd-envd-compte{font-size:11px;color:#94a3b8;margin-top:8px;text-align:right}
