/* Onglet Organisation — secrétariat numérique.
   VOLET = composant arbre STANDARD du portail : .tree-group-header (groupe repliable) +
   .tree-cat (item sélectionnable), définis dans portal.css. Ici = uniquement le LOCAL
   (layout, conteneur de groupe + collapse, enfants d'item, contenu). Thème sombre + vars portail. */

.org-tab { padding:0; height:100%; display:flex; flex-direction:column; }

/* Onglet pleine largeur : annuler le padding 1.25rem du slot (comme access/surveillance/…),
   sinon écart entre la barre d'onglets et le bandeau. organisation.css est un <link> global. */
main > #tab-organisation-slot { padding:0; overflow:hidden; }
main > #tab-organisation-slot section { padding:0; flex:1; min-height:0; display:flex; flex-direction:column; }

/* Toolbar STANDARD (santé) — VIDE en HTML, peuplée par-vue : refresh, filtre
   chronologique (.chrono-bar), actions. min-height fixe pour un chrome constant. */
.org-toolbar { display:flex; gap:.7rem; align-items:center; padding:.55rem .9rem; min-height:3.15rem; box-sizing:border-box; background:rgba(24,24,27,.22); border-bottom:1px solid rgba(255,255,255,.1); backdrop-filter:blur(24px) saturate(180%); }
.org-tb-spacer { flex:1 1 auto; }
.org-live { display:inline-flex; align-items:center; gap:.4rem; font-size:.74rem; color:#fb7185; }
.org-live-dot { width:7px; height:7px; border-radius:50%; background:#fb7185; animation:org-blink 1.4s ease-in-out infinite; }
@keyframes org-blink { 0%,100%{opacity:1} 50%{opacity:.25} }

/* Layout 2 colonnes (standard santé : sidebar 240px — largeur IMMUABLE, ne pas modifier) */
.org-layout { display:grid; grid-template-columns:240px 1fr; flex:1; min-height:0; transition:grid-template-columns .2s; }
.org-layout.sidebar-hidden { grid-template-columns:0 1fr; }
.org-layout.sidebar-hidden #org-sidebar { visibility:hidden; border-right:none; }
#org-sidebar { background:rgba(20,20,23,.25); border-right:1px solid rgba(255,255,255,.1); overflow-y:auto; backdrop-filter:blur(24px) saturate(180%); }
#org-tree { list-style:none; margin:0; padding:.35rem 0; }

/* Groupes repliables — header standard .tree-group-header customisé : casse normale,
   icône à gauche, chevron à DROITE. Conteneur + collapse LOCAUX. */
.org-group { margin-bottom:.15rem; }
.org-group-header { padding:.5rem .85rem .4rem; align-items:center; text-transform:none; letter-spacing:normal; font-size:.78rem; }
.org-group-header .org-gicon { color:var(--p-base); flex-shrink:0; display:inline-flex; align-items:center; }
.org-group-header .g-name { flex:1; }                 /* pousse le chevron à droite */
.org-group-header .g-chevron { margin-left:.4rem; }
/* Section « solo » (sélectionnable directement, sans sous-sections) */
.org-group-header.org-solo { cursor:pointer; }
.org-group-header.org-solo.active { background:rgba(var(--p-glow-rgb),.10); }
.org-group-header.org-solo.active .g-name, .org-group-header.org-solo.active .org-gicon { color:var(--p-base); }
.org-group.collapsed .g-chevron { transform:rotate(-90deg); }
.org-group.collapsed .org-group-items { display:none; }
.org-group-items { list-style:none; margin:0; padding:0; }
/* item = .tree-cat (global) ; enfants LOCAUX */
.org-group-items .tree-cat { padding-left:1.6rem; font-size:.8rem; color:#d4d4d8; text-transform:none; letter-spacing:normal; }
.org-icon { color:var(--p-light); flex-shrink:0; display:inline-flex; align-items:center; }
.tree-cat.active .org-icon { color:var(--p-base); }
.org-label { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Séquenceur intégré : steps Workflow sous l'item « Workflow (live) » */
.wf-sub { list-style:none; }
/* séquenceur aux couleurs du domaine : rail + étapes en accent --p-light */
.wf-sublist { list-style:none; margin:.1rem 0 .25rem 1.95rem; padding:0; border-left:2px solid rgba(var(--p-base-rgb),.22); }
.wf-substep { padding:.32rem .5rem .12rem .6rem; font-size:.64rem; color:var(--p-light); }
.wf-subcat { display:flex; justify-content:space-between; align-items:center; gap:.3rem; padding:.22rem .5rem .22rem .9rem; font-size:.74rem; color:#cbd5e1; cursor:pointer; border-radius:5px; }
.wf-subcat:hover { background:rgba(var(--p-base-rgb),.08); color:var(--p-light); }
.wf-subcat.on { background:rgba(var(--p-glow-rgb),.13); color:var(--p-base); box-shadow:inset 2px 0 0 var(--p-base); }
.wf-subname { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wf-subc { color:#64748b; font-size:.7rem; flex-shrink:0; }
.wf-subcat.on .wf-subc { color:var(--p-base); }

#org-main { display:flex; flex-direction:column; background:transparent; position:relative; overflow:hidden; min-height:0; }
#org-main .sidebar-handle { position:absolute; left:0; top:50%; transform:translateY(-50%); width:12px; height:64px; background:rgba(39,39,42,.55); border:1px solid rgba(255,255,255,.08); border-left:none; border-radius:0 6px 6px 0; color:var(--p-light); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.9rem; z-index:10; backdrop-filter:blur(15px); }
#org-main .sidebar-handle:hover { background:rgba(var(--p-base-rgb),.18); color:var(--p-base); }
#org-content { flex:1; overflow-y:auto; padding:1rem 1.2rem; display:flex; flex-direction:column; gap:.85rem; }
.org-empty { color:#64748b; font-style:italic; padding:1rem; }

/* En-têtes de vue — l'espacement vertical vient du gap .85rem de #org-content */
.org-vh { margin:0; font-size:1.05rem; font-weight:600; color:#e4e4e7; }
.org-vd { margin:-.5rem 0 0; font-size:.82rem; color:#94a3b8; }
.org-todo { margin:0; padding:.9rem 1rem; border:1px dashed rgba(255,255,255,.14); border-radius:8px; color:#94a3b8; font-size:.82rem; background:rgba(255,255,255,.02); }
.org-h3 { font-size:.82rem; font-weight:600; color:var(--p-light); margin:.5rem 0 0; }

/* KPI — cartes .card-pri (ajoutée en JS) */
.org-kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:.7rem; margin:0; }
.org-kpi .k-lab { font-size:.68rem; color:#94a3b8; text-transform:uppercase; letter-spacing:.05em; }
.org-kpi .k-num { font-size:1.5rem; font-weight:600; color:#e4e4e7; margin-top:.25rem; }

/* Poste de revue Workflow : centre (table+détails) 50% · viewer 40% (arbre 10% = sidebar) */
.wf2 { display:grid; grid-template-columns:minmax(0,42fr) minmax(0,48fr); gap:.7rem; align-items:start; }
.wf2-center { display:flex; flex-direction:column; gap:.7rem; min-width:0; }
.wf2-files, .wf2-detail { border:1px solid rgba(255,255,255,.1); border-radius:8px; padding:.6rem .7rem; background:rgba(255,255,255,.02); }
.wf2-fh { display:flex; align-items:center; gap:.6rem; margin-bottom:.45rem; }
.wf2-fh #wf2-ftitle { font-weight:600; color:#e4e4e7; font-size:.85rem; }
.wf2-runi { font-size:.68rem; color:var(--p-base); display:inline-flex; align-items:center; gap:.3rem; }
.wf2-runi .org-live-dot { background:var(--p-base); }
.wf2-filter { margin-left:auto; background:transparent; border:1px solid rgba(255,255,255,.14); border-radius:6px; padding:.2rem .5rem; color:#e4e4e7; font-size:.76rem; width:150px; }
.wf2-tablewrap { max-height:200px; overflow:auto; border:1px solid rgba(255,255,255,.07); border-radius:6px; }
.wf2-tbl { font-size:.76rem; }
.wf2-tbl th { position:sticky; top:0; background:#191a1d; z-index:1; }
.wf2-row { cursor:pointer; }
.wf2-row:hover td { background:rgba(255,255,255,.04); }
.wf2-row.on td { background:rgba(var(--p-glow-rgb),.13); color:#e4e4e7; }
.af-sz { color:#94a3b8; white-space:nowrap; text-align:right; }
.wf2-dgrid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.wf2-dh { font-size:.66rem; color:#64748b; margin-bottom:.3rem; }
.wf2-kv { display:flex; gap:.5rem; font-size:.78rem; padding:.12rem 0; }
.wf2-k { color:#94a3b8; flex:0 0 8rem; }
.wf2-v { color:#e4e4e7; word-break:break-word; min-width:0; }
.wf2-acts { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.7rem; }

/* Viewer (repris de santé / Medical) : header style + iframe / image / non supporté */
.wf2-viewer { position:sticky; top:.2rem; display:flex; flex-direction:column; min-width:0; border:1px solid rgba(255,255,255,.1); border-radius:8px; background:rgba(0,0,0,.2); overflow:hidden; }
.wf2-vw-head { display:flex; flex-direction:column; gap:.25rem; padding:.55rem .75rem; background:rgba(var(--p-base-rgb),.06); border-bottom:1px solid rgba(var(--p-base-rgb),.12); min-height:1.2rem; }
.wf2-vw-headrow { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.wf2-vw-meta { flex:1; min-width:0; }
.wf2-vw-title { font-size:.82rem; font-weight:600; color:#e4e4e7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wf2-vw-top { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin-bottom:.18rem; }
.wf2-vw-date { font-family:'Menlo','Consolas',monospace; font-size:.7rem; font-weight:700; color:#cbd5e1; }
.wf2-vw-pills { display:flex; gap:.3rem; flex-wrap:wrap; }
.wf2-vw-badge { font-size:.6rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding:.08rem .4rem; border-radius:9px; background:rgba(var(--p-base-rgb),.14); color:var(--p-light); border:1px solid rgba(var(--p-base-rgb),.25); }
.wf2-vw-badge-ds { background:rgba(var(--p-base-rgb),.22); color:var(--p-base); border-color:rgba(var(--p-base-rgb),.42); font-weight:700; }
.wf2-vw-path { color:#64748b; font-size:.62rem; font-family:'Menlo','Consolas',monospace; word-break:break-all; margin-top:.18rem; }
.wf2-vw-actions { display:flex; gap:.1rem; flex-shrink:0; align-items:flex-start; }
.wf2-vw-actions .icon-action-btn.danger { color:#fb7185; }
.wf2-vw-actions .icon-action-btn.disabled, .wf2-vw-actions .icon-action-btn:disabled { opacity:.28; cursor:not-allowed; pointer-events:none; }
.wf2-open { display:inline-block; padding:.25rem .6rem; background:rgba(var(--p-base-rgb),.15); border:1px solid rgba(var(--p-base-rgb),.3); border-radius:6px; color:var(--p-light); font-size:.72rem; text-decoration:none; }
.wf2-open:hover { background:rgba(var(--p-base-rgb),.25); color:var(--p-base); }
.wf2-vbody { flex:1; display:flex; align-items:stretch; min-height:78vh; }
.wf2-frame { width:100%; flex:1; min-height:78vh; border:none; background:#fff; }
.wf2-imgwrap { flex:1; display:flex; align-items:center; justify-content:center; padding:1rem; }
.wf2-img { max-width:100%; max-height:78vh; object-fit:contain; border-radius:4px; }
.wf2-unsup { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2rem; gap:.45rem; }
.wf2-unsup-l { font-size:.85rem; color:#d4d4d8; word-break:break-word; }
.wf2-unsup-h { font-size:.74rem; color:#94a3b8; }

/* Boutons d'action */
.af-act { background:rgba(var(--p-base-rgb),.12); color:var(--p-base); border:1px solid rgba(var(--p-base-rgb),.35); border-radius:5px; padding:.22rem .6rem; font-size:.74rem; cursor:pointer; }
.af-act:hover { background:rgba(var(--p-base-rgb),.22); }
.af-act-opus { color:#5eead4; border-color:rgba(45,212,191,.45); background:rgba(45,212,191,.10); }
.af-act-opus:hover { background:rgba(45,212,191,.2); }
.af-act-del { color:#fb7185; border-color:rgba(251,113,133,.4); background:rgba(251,113,133,.08); }
.af-act-del:hover { background:rgba(251,113,133,.18); }

/* Pilotage — paramètres (table settings) */
.set-grid { display:flex; flex-direction:column; gap:.5rem; margin:.2rem 0 .6rem; }
.set-row { display:grid; grid-template-columns:16rem 9rem 1fr; align-items:center; gap:.8rem; }
.set-lab { font-size:.82rem; color:#e4e4e7; }
.set-help { font-size:.72rem; color:#64748b; }
.set-in { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:6px; padding:.28rem .5rem; color:#e4e4e7; font-size:.8rem; }
.set-in:focus { outline:none; border-color:var(--p-base); }
.set-in.set-saving { opacity:.6; }
.set-in.set-ok { border-color:#34d399; box-shadow:0 0 0 1px rgba(52,211,153,.4); }
.set-in.set-err { border-color:#fb7185; box-shadow:0 0 0 1px rgba(251,113,133,.4); }
@media (max-width:760px){ .set-row { grid-template-columns:1fr; gap:.2rem; } }
.nr-tbl td { padding:.3rem .35rem; }
.nr-in { width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:5px; padding:.22rem .4rem; color:#e4e4e7; font-size:.76rem; }
.nr-in:focus { outline:none; border-color:var(--p-base); }
.nr-tpl { font-family:'Menlo','Consolas',monospace; }
.nr-prio { width:3.5rem; }
.nr-acts { white-space:nowrap; text-align:right; }
#nr-add, #ph-add { margin-top:.5rem; }
.ph-key { color:var(--p-base); font-family:'Menlo','Consolas',monospace; font-size:.78rem; }

/* Table */
.org-tbl { width:100%; border-collapse:collapse; font-size:.78rem; }
.org-tbl th { text-align:left; color:#94a3b8; font-weight:600; padding:.45rem .5rem; border-bottom:1px solid rgba(255,255,255,.1); }
.org-tbl td { padding:.45rem .5rem; border-bottom:1px solid rgba(255,255,255,.05); color:#d4d4d8; }


/* === Workflow v2 : 2 colonnes (liste+placeholders / viewer) === */
.wf2-left { display:flex; flex-direction:column; gap:.7rem; min-width:0; }
.wf2-tablewrap { height:10.6rem; max-height:none; outline:none; }
.wf2-fill { pointer-events:none; }
.wf2-fill td { color:transparent; }
.wf2-tablewrap:focus { box-shadow:0 0 0 2px rgba(var(--p-base-rgb),.4) inset; }
.wf2-dt { color:#94a3b8; white-space:nowrap; font-size:.72rem; }
.wf2-ph { border:1px solid rgba(255,255,255,.1); border-radius:8px; padding:.6rem .7rem; background:rgba(255,255,255,.02); }
.wf2-phwrap { max-height:17rem; overflow:auto; margin-top:.3rem; }
.wf2-phtbl { width:100%; font-size:.76rem; border-collapse:collapse; }
.wf2-phtbl td { padding:.2rem .35rem; border-top:1px solid rgba(255,255,255,.05); vertical-align:top; }
.wf2-phk { color:#94a3b8; width:8rem; white-space:nowrap; }
.wf2-phk code { color:var(--p-light); font-size:.72rem; }
.wf2-phv { color:#e4e4e7; word-break:break-word; }
.wf2-phv.off { color:#52525b; font-style:italic; }
.wf2-vw-top { flex-wrap:nowrap; align-items:flex-start; }
.wf2-vw-name { font-size:.82rem; font-weight:600; color:#e4e4e7; word-break:break-word; flex:1; min-width:0; }
.wf2-vw-old { font-size:.66rem; color:#64748b; margin-top:.12rem; }
.wf2-vw-mount { color:#52525b; }
.wf2-vw-scores { display:flex; gap:.3rem; flex-wrap:nowrap; margin-top:.1rem; align-items:center; }
.wf2-score { font-size:.6rem; font-weight:600; padding:.06rem .42rem; border:1px solid; border-radius:5px; text-transform:capitalize; flex:0 0 auto; white-space:nowrap; }


/* === Workflow : incertitude + switch doublon === */
.wf2-suspect td { background:rgba(251,191,36,.10); }
.wf2-vw-unsure { font-size:.63rem; color:#fbbf24; align-self:center; margin-left:.4rem; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wf2-vbody { flex-direction:column; }
.wf2-dupbar { display:flex; align-items:center; gap:.45rem; padding:.3rem .55rem; background:rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.1); }
.wf2-duptab { background:transparent; border:1px solid rgba(255,255,255,.2); border-radius:6px; color:#cbd5e1; font-size:.7rem; padding:.15rem .6rem; cursor:pointer; }
.wf2-duptab.on { background:rgba(var(--p-base-rgb),.22); border-color:rgba(var(--p-base-rgb),.5); color:var(--p-base); }
.wf2-duppath { font-size:.6rem; color:#64748b; font-family:'Menlo','Consolas',monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wf2-dupbody { flex:1; display:flex; min-height:72vh; }


/* Sous-groupe d'arbre repliable (ex: Configuration sous GED) — standard du tree, niveau item */
.org-subgroup { list-style:none; }
.org-subgroup-header { display:flex; align-items:center; gap:.4rem; padding:.45rem .85rem .4rem 1.6rem; font-size:.8rem; color:#d4d4d8; cursor:pointer; }
.org-subgroup-header:hover { color:var(--p-light); }
.org-subgroup-header .org-icon { color:var(--p-light); flex-shrink:0; display:inline-flex; align-items:center; }
.org-subgroup-header .org-label { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.org-subgroup-header .g-chevron { margin-left:.4rem; transition:transform .15s; }
.org-subgroup.collapsed .g-chevron { transform:rotate(-90deg); }
.org-subgroup.collapsed .org-subgroup-items { display:none; }
.org-subgroup-items { list-style:none; margin:0; padding:0; }
.org-subgroup-items .tree-cat { padding-left:2.7rem; }

/* Workflow (live) repliable : chevron sur le noeud, repli des buckets */
.tree-cat.wf-head .wf-chevron { margin-left:.4rem; transition:transform .15s; flex-shrink:0; }
.tree-cat.wf-head.wf-collapsed .wf-chevron { transform:rotate(-90deg); }
.tree-cat.wf-head.wf-collapsed + .wf-sub { display:none; }


/* Tableau de bord GED : en-tete navigable + cartes + heatmap + barres */
.org-group-header.org-navgroup { cursor:pointer; }
.org-group-header.org-navgroup.active { background:rgba(var(--p-glow-rgb),.10); }
.org-group-header.org-navgroup.active .g-name, .org-group-header.org-navgroup.active .org-gicon { color:var(--p-base); }
.org-group-header.org-navgroup .g-chevron { cursor:pointer; padding:0 .2rem; }
.k-sub { font-size:.6rem; color:#64748b; margin-top:.15rem; }
.org-card { margin-top:1rem; border:1px solid rgba(255,255,255,.08); border-radius:8px; background:rgba(0,0,0,.18); padding:.7rem .85rem; }
.org-ch { font-size:.8rem; font-weight:600; color:#d4d4d8; margin:0 0 .55rem; }
.hm-scroll { overflow-x:auto; }
.hm { border-collapse:collapse; font-size:.66rem; }
.hm th, .hm td { border:1px solid rgba(255,255,255,.06); }
.hm .hm-rh { position:sticky; left:0; background:rgba(10,10,12,.92); text-align:left; padding:.2rem .5rem; color:#cbd5e1; font-weight:500; max-width:9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hm .hm-dh { padding:.2rem .4rem; color:#94a3b8; font-weight:500; white-space:nowrap; }
.hm .hm-c { min-width:2.2rem; text-align:center; color:#e4e4e7; padding:.18rem; }
.bar-row { display:flex; align-items:center; gap:.5rem; height:14px; box-sizing:border-box; margin:0 0 3px; font-size:.62rem; line-height:14px; }
.bar-lab { width:9rem; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#cbd5e1; }
.bar-track { flex:1; height:.42rem; background:rgba(255,255,255,.06); border-radius:4px; overflow:hidden; }
.bar-fill { display:block; height:100%; background:var(--p-base); border-radius:4px; }
.bar-val { width:3.5rem; text-align:right; flex-shrink:0; color:#94a3b8; }

.set-sec { margin-top:1.5rem; padding-top:.75rem; border-top:1px solid rgba(255,255,255,.12); }
.set-sec:first-child { margin-top:.2rem; padding-top:0; border-top:none; }

/* Tableau de bord GED : 6 KPI par ligne */
.ged-kpis { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:.45rem; }
.ged-kpis .org-kpi { padding:.5rem .55rem; }
.ged-kpis .k-num { font-size:1.15rem; }


/* Revue & correction (ged.review) */
.rev-wrap { display:grid; grid-template-columns:minmax(0,20rem) minmax(0,1fr); gap:.6rem; }
.rev-left { display:flex; flex-direction:column; min-width:0; }
.rev-filters { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.4rem; }
.rev-f { background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.12); border-radius:5px; color:#d4d4d8; font-size:.68rem; padding:.2rem .35rem; }
.rev-q { flex:1; min-width:6rem; }
.rev-count { font-size:.62rem; color:#64748b; margin-bottom:.3rem; }
.rev-list { overflow-y:auto; max-height:36rem; border:1px solid rgba(255,255,255,.08); border-radius:6px; }
.rev-row { padding:.35rem .5rem; border-bottom:1px solid rgba(255,255,255,.05); cursor:pointer; }
.rev-row:hover { background:rgba(var(--p-base-rgb),.08); }
.rev-row.on { background:rgba(var(--p-glow-rgb),.13); box-shadow:inset 2px 0 0 var(--p-base); }
.rev-row.done { opacity:.55; }
.rev-r1 { display:flex; justify-content:space-between; gap:.4rem; align-items:center; }
.rev-name { font-size:.72rem; color:#e4e4e7; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rev-conf { font-size:.62rem; font-weight:600; flex-shrink:0; }
.rev-r2 { display:flex; justify-content:space-between; gap:.4rem; margin-top:.1rem; }
.rev-ds { font-size:.6rem; color:var(--p-light); }
.rev-dt { font-size:.6rem; color:#64748b; }
.rev-viewer { display:flex; flex-direction:column; min-width:0; border:1px solid rgba(255,255,255,.1); border-radius:8px; background:rgba(0,0,0,.2); overflow:hidden; }
.rev-head { padding:.5rem .7rem; background:rgba(var(--p-base-rgb),.06); border-bottom:1px solid rgba(var(--p-base-rgb),.12); }
.rev-head:empty { display:none; }
.rev-h-name { font-size:.82rem; font-weight:600; color:#e4e4e7; word-break:break-word; }
.rev-h-path { font-size:.6rem; color:#64748b; font-family:'Menlo','Consolas',monospace; margin-top:.1rem; word-break:break-all; }
.rev-h-meta { display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; margin-top:.35rem; }
.rev-pill { font-size:.6rem; padding:.06rem .42rem; border:1px solid rgba(255,255,255,.15); border-radius:5px; color:#cbd5e1; }
.rev-mark { background:rgba(var(--p-base-rgb),.18); border:1px solid rgba(var(--p-base-rgb),.4); color:var(--p-base); font-size:.62rem; padding:.12rem .55rem; border-radius:5px; cursor:pointer; }
.rev-mark.done { background:rgba(52,211,153,.15); border-color:rgba(52,211,153,.4); color:#34d399; cursor:default; }
.rev-open { font-size:.62rem; color:var(--p-light); text-decoration:none; margin-left:auto; }
.rev-body { flex:1; display:flex; min-height:70vh; }


/* Campagne de lots (ged.review Stage B) */
.camp-card { border:1px solid rgba(var(--p-base-rgb),.25); border-radius:8px; background:rgba(var(--p-base-rgb),.05); padding:.6rem .75rem; margin-bottom:.7rem; }
.camp-head { display:flex; justify-content:space-between; align-items:center; }
.camp-title { font-size:.78rem; font-weight:600; color:#e4e4e7; }
.camp-state { font-size:.66rem; color:#64748b; }
.camp-state.on { color:#34d399; }
.camp-stats { display:flex; gap:1.2rem; margin:.4rem 0; font-size:.72rem; color:#cbd5e1; }
.camp-stats b { color:var(--p-base); font-weight:600; }
.camp-ctrl { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.camp-lab { font-size:.68rem; color:#cbd5e1; display:flex; align-items:center; gap:.3rem; }
.camp-lab input { width:5rem; }
.camp-btn { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); border-radius:6px; color:#cbd5e1; font-size:.7rem; padding:.22rem .7rem; cursor:pointer; }
.camp-btn:disabled { opacity:.4; cursor:not-allowed; }
.camp-go { background:rgba(var(--p-base-rgb),.2); border-color:rgba(var(--p-base-rgb),.5); color:var(--p-base); }
.camp-note { font-size:.62rem; color:#64748b; margin-top:.4rem; }


/* Heatmap calendaire (style contributions) */
.cal-scroll { overflow-x:auto; padding-bottom:.2rem; }
.cal-grid { display:inline-flex; gap:3px; }
.cal-col { display:flex; flex-direction:column; gap:3px; }
.cal-c { width:12px; height:12px; border-radius:2px; display:block; background:rgba(255,255,255,.05); }
.cal-l0 { background:rgba(255,255,255,.05); }
.cal-l1 { background:rgba(var(--p-base-rgb),.30); }
.cal-l2 { background:rgba(var(--p-base-rgb),.52); }
.cal-l3 { background:rgba(var(--p-base-rgb),.74); }
.cal-l4 { background:var(--p-base); }
.cal-fut { background:transparent; }
.cal-legend { display:flex; align-items:center; gap:3px; margin-top:.5rem; font-size:.58rem; color:#64748b; text-transform:uppercase; letter-spacing:.06em; }
.cal-legend .cal-c { width:12px; height:12px; }


/* Heatmap contributions : 1 dataset par ligne x jours */
.dh-scroll { overflow-x:auto; overflow-y:hidden; padding-bottom:.2rem; scrollbar-width:none; -ms-overflow-style:none; }
.dh-scroll::-webkit-scrollbar { display:none; height:0; width:0; }
.dh-row { display:flex; align-items:center; gap:3px; height:14px; box-sizing:border-box; margin-bottom:3px; }
.dh-lab { position:sticky; left:0; z-index:1; width:7rem; flex-shrink:0; font-size:.62rem; color:#cbd5e1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-right:.3rem; background:rgba(13,12,16,.96); }
.dh-row .cal-c { flex-shrink:0; }

/* Heatmap + repartition cote a cote 50/50 */
.ged-cards2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:stretch; margin-top:1rem; }
.ged-cards2 .org-card { margin-top:0; min-width:0; }

.bar-total { margin-top:.5rem; font-weight:600; color:#e4e4e7; }
.bar-total .bar-track { background:transparent; }


/* Réconciliation FS<->DB (Tableau de bord GED) */
.rec-card { margin-top:1rem; }
.rec-ctrl { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.rec-state { font-size:.66rem; color:#fbbf24; }
.rec-out { margin-top:.5rem; }
.rec-res { display:flex; flex-wrap:wrap; gap:1rem; font-size:.72rem; color:#cbd5e1; }
.rec-res b { color:var(--p-base); font-weight:600; }
.rec-res .rec-hl b { color:#fbbf24; }
.rec-list { margin:.4rem 0 0; padding-left:1.1rem; font-size:.66rem; color:#94a3b8; max-height:14rem; overflow:auto; }
.rec-list li { margin:.1rem 0; }
.rec-applied { font-size:.7rem; color:#34d399; margin:.4rem 0 0; }
.rec-ok { font-size:.72rem; color:#34d399; margin:.4rem 0 0; }
.rec-abort { font-size:.72rem; color:#fb7185; margin:.2rem 0 0; }


/* Spinner circulaire reconciliation */
.rec-spin { display:inline-block; width:14px; height:14px; border:2px solid rgba(var(--p-base-rgb),.25); border-top-color:var(--p-base); border-radius:50%; animation:rec-spin .7s linear infinite; vertical-align:middle; }
.rec-spin[hidden] { display:none; }
@keyframes rec-spin { to { transform:rotate(360deg); } }


/* Classement manuel d'un incertain (modal) */
.cls-ovl { position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; z-index:9999; }
.cls-modal { background:var(--p-surface,#1b1b1a); border:1px solid var(--p-border,#3a3a38); border-radius:10px; padding:1.1rem 1.2rem; width:min(440px,92vw); box-shadow:0 12px 40px rgba(0,0,0,.5); display:flex; flex-direction:column; gap:.55rem; }
.cls-h { margin:0 0 .2rem; font-size:.95rem; color:var(--p-base,#e0a528); }
.cls-file { font-size:.72rem; color:#cbd5e1; word-break:break-all; background:rgba(var(--p-base-rgb,224,165,40),.10); border-radius:6px; padding:.35rem .5rem; }
.cls-lab { display:flex; flex-direction:column; gap:.2rem; font-size:.68rem; color:#94a3b8; }
.cls-in { background:#0f0f0e; border:1px solid #3a3a38; border-radius:6px; color:#e5e5e3; padding:.4rem .5rem; font-size:.78rem; }
.cls-in:focus { outline:none; border-color:var(--p-base,#e0a528); }
.cls-prev { font-size:.68rem; color:var(--p-base,#e0a528); word-break:break-all; font-family:ui-monospace,Menlo,Consolas,monospace; }
.cls-err { font-size:.7rem; color:#fb7185; min-height:.8rem; }
.cls-btns { display:flex; justify-content:flex-end; gap:.5rem; margin-top:.3rem; }
.cls-tree { max-height:260px; overflow:auto; background:#0f0f0e; border:1px solid #3a3a38; border-radius:6px; padding:.3rem 0; font-size:.74rem; }
.cls-loading, .cls-empty2 { color:#6b7280; font-size:.7rem; padding:.3rem .55rem; }
.cls-row { display:flex; align-items:center; gap:.35rem; padding:.18rem .55rem; cursor:pointer; white-space:nowrap; color:#cbd5e1; }
.cls-row:hover { background:rgba(var(--p-base-rgb,224,165,40),.08); }
.cls-row.sel { background:rgba(var(--p-base-rgb,224,165,40),.18); color:var(--p-base,#e0a528); }
.cls-caret { width:.85rem; text-align:center; color:#6b7280; flex:none; }
.cls-label { overflow:hidden; text-overflow:ellipsis; }
.cls-pickbar { display:flex; align-items:center; gap:.5rem; margin-top:.35rem; }
.cls-sel { font-size:.66rem; color:#94a3b8; word-break:break-all; }
.cls-mk { font-size:.66rem; padding:.2rem .55rem; }
.cls-mk:disabled { opacity:.45; cursor:default; }


/* Vue d'ensemble : graphe horaire 7 jours (flux de traitement) */
.ov-chart-card { margin-top:1rem; }
.ov-legend { display:flex; flex-wrap:wrap; gap:.85rem; font-size:.7rem; color:#cbd5e1; margin:.15rem 0 .55rem; }
.ovl-i { display:inline-flex; align-items:center; gap:.32rem; }
.ovl-c { width:10px; height:10px; border-radius:2px; display:inline-block; }
.ovl-i b { color:#e5e5e3; font-weight:600; }
.ov-svg { width:100%; height:150px; display:block; }
.ov-xaxis { position:relative; height:14px; margin-top:3px; }
.ov-xlab { position:absolute; font-size:.6rem; color:#6b7280; white-space:nowrap; transform:translateX(2px); }
