/* ═══════════════════════════════════════════════════════════════════════════
   CHARTE ACTUAL — socle repris de la maquette v2, élagué à ce que l'outil
   utilise réellement. Rouge Actual #C01E1E, DM Sans / DM Mono, tuiles,
   tableaux, chips d'écart.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  --red:#C01E1E; --red-deep:#A60100; --red-dark:#8E1014; --red-wash:#FBE9E9; --red-wash-2:#FDF4F4;
  --ink:#1A1A1A; --ink-2:#3A3A3A; --ink-3:#595959; --ink-4:#8C8C8C; --ink-5:#B4B4B4;
  --line:#E6E6E6; --line-2:#D9D9D9; --paper:#FFFFFF; --bg:#F7F7F7; --bg-2:#F0F0EF;
  --prio:#C01E1E; --prio-bg:#FBE9E9; --vig:#B26B00; --vig-bg:#FBF0DC; --ok:#2E6A40; --ok-bg:#E7EFE8;
  --neu:#545352; --neu-bg:#F0F0EF; --info:#1F5673; --info-bg:#E7EFF4;
  --budget:#1F4739; --budget-bg:#E6EFEA;
}
*{box-sizing:border-box;}
html,body{background:var(--bg); color:var(--ink); margin:0; font-size:14px;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;}
a{color:inherit;} button{font-family:inherit;}
h1,h2,h3{margin:0; letter-spacing:-.015em;}
::selection{background:var(--red-wash); color:var(--red-dark);}
.mono,.num{font-family:'DM Mono','SFMono-Regular',Consolas,monospace; font-variant-numeric:tabular-nums;}
.muted{color:var(--ink-4);} .small{font-size:12px;} .grow{flex:1;}
.wrap{max-width:1360px; margin:0 auto; padding:0 28px;}
.eyebrow{font-family:'DM Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-4); font-weight:500;}

/* ───────── barre haute ───────── */
.topbar{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40;}
.topbar-inner{max-width:1360px; margin:0 auto; padding:0 28px; height:62px; display:flex; align-items:center; gap:18px;}
.logo{height:26px; display:block;}
.tb-titre{font-weight:700; font-size:14px; padding-left:18px; border-left:1px solid var(--line); line-height:32px;}
.tb-nav{display:flex; gap:4px; margin-left:10px;}
.tb-lien{text-decoration:none; font-size:13px; font-weight:600; color:var(--ink-3); padding:7px 13px; border-radius:8px;}
.tb-lien:hover{background:var(--bg-2); color:var(--ink);}
.tb-lien.on{background:var(--red-wash-2); color:var(--red);}
.tb-spacer{flex:1;}
.tb-campagne{font-family:'DM Mono',monospace; font-size:11.5px; color:var(--ink-4); background:var(--bg-2); padding:5px 11px; border-radius:999px;}
.who{display:flex; align-items:center; gap:11px;}
.who-txt{text-align:right; line-height:1.25;}
.who-name{font-size:13px; font-weight:600;} .who-role{font-size:11px; color:var(--ink-4);}
.who-av{width:36px; height:36px; border-radius:50%; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12.5px;}
.btn-sortie{font-size:12px; color:var(--ink-4); text-decoration:none; padding:6px 10px; border:1px solid var(--line-2); border-radius:8px;}
.btn-sortie:hover{color:var(--red); border-color:var(--red);}

/* ───────── hero ───────── */
.hero{background:var(--red); color:#fff; position:relative; overflow:hidden;}
.hero-inner{max-width:1360px; margin:0 auto; padding:34px 28px 30px; position:relative; z-index:1;
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap;}
.hero .eyebrow{color:rgba(255,255,255,.7);}
.hero h1{font-size:32px; font-weight:800; letter-spacing:-.025em; margin:8px 0;}
.hero p{margin:0; opacity:.88; max-width:680px; line-height:1.5; font-size:14px;}
.hero-trefle{position:absolute; right:-60px; top:50%; transform:translateY(-50%); height:130%; opacity:.9; pointer-events:none;}
.hero-stats{display:flex; gap:12px;}
.hstat{background:rgba(255,255,255,.14); border-radius:12px; padding:12px 16px; min-width:118px;}
.hstat b{display:block; font-size:26px; font-weight:800; letter-spacing:-.02em; line-height:1;}
.hstat span{font-size:11.5px; opacity:.85;}
.hero.dark{background:var(--ink);} .hero.dark .hero-trefle{opacity:.18;}

/* ───────── composants ───────── */
.chip{display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:600; white-space:nowrap;}
.chip-prio{background:var(--prio-bg); color:var(--prio);} .chip-vig{background:var(--vig-bg); color:var(--vig);}
.chip-ok{background:var(--ok-bg); color:var(--ok);} .chip-neu{background:var(--neu-bg); color:var(--neu);}
.chip-info{background:var(--info-bg); color:var(--info);} .chip-red{background:var(--red); color:#fff;}
.chip-bud{background:var(--budget-bg); color:var(--budget);}
.card{background:var(--paper); border:1px solid var(--line); border-radius:14px;}
.card-pad{padding:22px;}
.btn{display:inline-flex; align-items:center; gap:7px; cursor:pointer; border:0; font-size:13px; font-weight:600;
  padding:9px 16px; border-radius:9px; transition:.15s; white-space:nowrap; line-height:1.2; text-decoration:none;}
.btn-red{background:var(--red); color:#fff;} .btn-red:hover{background:var(--red-deep);}
.btn-ghost{background:var(--paper); color:var(--ink); border:1px solid var(--line-2);} .btn-ghost:hover{border-color:var(--ink-3);}
.btn-dark{background:var(--ink); color:#fff;} .btn-dark:hover{background:var(--red);}
.btn-sm{padding:6px 11px; font-size:12px; border-radius:8px;} .btn-lg{padding:12px 22px; font-size:14px; border-radius:10px;}
.btn[disabled]{opacity:.45; cursor:not-allowed;}
.btn-link{background:none; border:0; color:var(--red); font-weight:600; cursor:pointer; padding:0; font-size:13px; text-decoration:none;}
.sel,.inp,textarea.inp{font-family:inherit; font-size:13px; padding:8px 10px; border:1px solid var(--line-2);
  border-radius:8px; background:var(--paper); color:var(--ink); width:100%;}
.inp:focus,.sel:focus,textarea.inp:focus{outline:2px solid var(--red-wash); border-color:var(--red);}
textarea.inp{min-height:110px; line-height:1.5; resize:vertical;}
.lbl-f{display:block; font-size:11.5px; font-weight:600; color:var(--ink-3); margin-bottom:5px;}
.field{margin-bottom:14px;}
.row{display:flex; gap:12px; align-items:center;} .row.wrap{flex-wrap:wrap;}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.sec{margin:34px 0;}
.sec-title{display:flex; align-items:baseline; gap:12px; margin:0 0 14px;}
.sec-title h2{font-size:20px; font-weight:800;}
.sec-title .n{font-family:'DM Mono',monospace; color:var(--red); font-size:12px;}
.sec-title .r{margin-left:auto; font-size:12.5px; color:var(--ink-4);}
.foot{margin:26px 0 40px; font-size:12px; color:var(--ink-5); line-height:1.6;}

/* ───────── tableaux ───────── */
.tbl{width:100%; border-collapse:collapse; font-size:13px;}
.tbl th{font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); font-weight:600;
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); background:var(--paper);}
.tbl td{padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle;}
.tbl tr:last-child td{border-bottom:0;}
.tbl .r,.tbl th.r{text-align:right;}
.tbl tr.grp td{background:var(--bg-2); font-weight:700; padding:9px 12px; font-size:12.5px;}
.tbl tr.tete td{font-weight:600;}
.tbl tbody tr:hover td{background:var(--red-wash-2);} .tbl tr.grp:hover td{background:var(--bg-2);}
.tbl .sub{display:block; font-size:11px; color:var(--ink-4); font-weight:400;}
.tbl th .sub{text-transform:none; letter-spacing:0;}
.table-cadre{overflow:auto;}

/* ───────── chips d'écart, tuiles ───────── */
.d{display:inline-block; font-family:'DM Mono',monospace; font-size:11.5px; font-weight:500; padding:1px 7px; border-radius:6px;}
.d-ok{background:var(--ok-bg); color:var(--ok);} .d-vig{background:var(--vig-bg); color:var(--vig);}
.d-prio{background:var(--prio-bg); color:var(--prio);} .d-neu{background:var(--neu-bg); color:var(--neu);}
.tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.tile{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:14px 16px;}
.tile .tn{font-size:12px; color:var(--ink-3); font-weight:500;}
.tile .tv{font-size:26px; font-weight:800; letter-spacing:-.02em; margin:6px 0 4px; line-height:1;}
.tile .tm{display:flex; justify-content:space-between; align-items:center; font-size:11px; color:var(--ink-4); gap:8px;}
.tile.prio{border-color:var(--prio); background:var(--red-wash-2);} .tile.ok{border-color:#B7D3BE;}
.verdict{border-left:4px solid var(--red); background:var(--paper); border-radius:0 12px 12px 0; padding:16px 20px; font-size:16px; line-height:1.5; font-weight:500;}
.verdict.ok{border-color:var(--ok);} .verdict.vig{border-color:var(--vig);}
.verdict b{font-weight:800;}
.empty{padding:30px; text-align:center; color:var(--ink-4); font-size:13.5px;}

/* ───────── filtres ───────── */
.pills{display:inline-flex; background:var(--bg-2); border-radius:10px; padding:3px; gap:2px; flex-wrap:wrap;}
.pill{border:0; background:transparent; cursor:pointer; font-size:12.5px; font-weight:600; color:var(--ink-3);
  padding:7px 12px; border-radius:8px; text-decoration:none; display:inline-block;}
.pill.on{background:var(--paper); color:var(--red); box-shadow:0 1px 3px rgba(0,0,0,.09);}
.search{width:260px;}
.barre{display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:18px 0 14px;}

/* ───────── supervision ───────── */
.aff{font-size:12.5px;} .aff b{font-weight:600;}
.aff .e{color:var(--ink-4); font-size:11.5px; display:block;}

/* ───────── messages ───────── */
.avis{border-radius:12px; padding:14px 18px; font-size:13.5px; line-height:1.55; margin:16px 0;}
.avis-ok{background:var(--ok-bg); color:#1F4A2D; border:1px solid #B7D3BE;}
.avis-err{background:var(--prio-bg); color:var(--red-dark); border:1px solid #EDC0C0;}
.avis-vig{background:var(--vig-bg); color:#7A4A00; border:1px solid #E6D3A8;}
.avis-info{background:var(--info-bg); color:#17405A; border:1px solid #BFD6E2;}
.avis b{font-weight:700;}

/* ───────── page nue : connexion, refus ───────── */
body.nu{background:var(--ink); display:flex; align-items:center; justify-content:center; min-height:100vh; padding:24px;}
.nu-carte{background:var(--paper); border-radius:18px; width:min(440px,100%); padding:38px 40px; box-shadow:0 24px 70px rgba(0,0,0,.35);}
.nu-carte .logo{height:28px; margin-bottom:26px;}
.nu-carte h1{font-size:25px; font-weight:800; margin-bottom:8px; letter-spacing:-.025em;}
.nu-carte p{color:var(--ink-3); font-size:13.5px; line-height:1.55; margin:0 0 22px;}
.nu-carte .btn{width:100%; justify-content:center;}
.nu-foot{margin-top:24px; font-size:11.5px; color:var(--ink-5); line-height:1.6;}
.nu-dev{margin-top:20px; padding-top:20px; border-top:1px solid var(--line);}
.nu-dev .lbl-f{margin-bottom:8px;}

/* ═══════════════════════════════════════════════════════════════════════════
   LE DOSSIER DE BUSINESS REVIEW
   ═══════════════════════════════════════════════════════════════════════════ */

/* ───────── en-tête du dossier ───────── */
.bu-head{background:var(--paper); border-bottom:1px solid var(--line); padding:26px 0 0;}
.bu-titre{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap;}
.bu-titre h1{font-size:30px; font-weight:800; letter-spacing:-.028em;}
.bu-titre .meta{font-size:12.5px; color:var(--ink-3); margin-top:7px; line-height:1.6;}
.bu-titre .meta b{font-weight:600; color:var(--ink-2);}

/* ───────── les quatre liens outils ───────── */
.outils{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:20px 0 0;}
.outil{display:flex; align-items:center; gap:11px; padding:11px 13px; border:1px solid var(--line);
  border-radius:11px; text-decoration:none; background:var(--paper); transition:.15s;}
.outil:hover{border-color:var(--red); background:var(--red-wash-2);}
.outil .sigle{font-family:'DM Mono',monospace; font-size:10px; font-weight:500; color:#fff;
  background:var(--ink); border-radius:6px; padding:5px 7px; letter-spacing:.04em; flex:0 0 auto;}
.outil b{display:block; font-size:12.5px; font-weight:600;}
.outil .s{display:block; font-size:10.5px; color:var(--ink-4); margin-top:2px; line-height:1.35;}
.outil .fl{margin-left:auto; color:var(--red); font-size:13px; font-weight:700; flex:0 0 auto;}
.outil.inactif{cursor:help; background:var(--bg-2); border-style:dashed;}
.outil.inactif:hover{border-color:var(--line-2); background:var(--bg-2);}
.outil.inactif .sigle{background:var(--ink-5);}
.outil.inactif .fl{color:var(--ink-4); font-size:10px; font-weight:500; text-align:right; max-width:78px; line-height:1.2;}

/* ───────── sommaire collant ───────── */
.subnav{display:flex; gap:4px; margin-top:20px; border-top:1px solid var(--line); padding-top:4px;}
.subnav a{text-decoration:none; font-size:12.5px; font-weight:600; color:var(--ink-4);
  padding:12px 14px; border-bottom:2px solid transparent;}
.subnav a:hover{color:var(--ink);}
.subnav .k{font-family:'DM Mono',monospace; font-size:10px; color:var(--ink-5); margin-right:7px;}

.sec{scroll-margin-top:80px;}
.bud-note{background:var(--budget-bg); border-radius:11px; padding:13px 17px; font-size:13px;
  color:#1B3A2F; margin-bottom:14px; display:flex; align-items:center; gap:11px; flex-wrap:wrap;}
.tbl td.cell2{line-height:1.35; padding-top:8px; padding-bottom:8px;}
.tbl td.cell2 .b{display:block; font-size:10.5px; color:var(--ink-4); font-weight:400; margin-top:3px;}

/* ───────── engagements ───────── */
.eng-liste{display:flex; flex-direction:column; gap:10px;}
.eng{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:15px 18px;
  display:flex; gap:16px; align-items:flex-start;}
.eng > div:first-child{flex:1; min-width:0;}
.eng.passe{background:var(--bg-2); border-style:dashed;}
.eng .el{font-size:14.5px; font-weight:700; line-height:1.35;}
.eng .es{font-size:12px; color:var(--ink-4); margin-top:3px; line-height:1.45;}
.eng .depuis{font-size:11.5px; color:var(--ink-3); margin-top:8px; line-height:1.5;}
.eng-champs{display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; align-items:flex-end;}
.eng-champs .ch{flex:0 0 132px; margin:0;}
.eng-champs .ch.large{flex:0 0 180px;}
.eng-champs label{display:block; font-size:10.5px; font-weight:600; color:var(--ink-4);
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px;}
.eng-champs input[type=range]{width:100%; accent-color:var(--red);}
.eng.passe .eng-champs{margin-top:0; flex:0 0 auto;}
.eng .ex{background:none; border:1px solid var(--line-2); color:var(--ink-4); border-radius:8px;
  width:28px; height:28px; cursor:pointer; font-size:17px; line-height:1; flex:0 0 auto;}
.eng .ex:hover{border-color:var(--prio); color:var(--prio);}
.garde{background:var(--vig-bg); border-radius:11px; padding:12px 16px; font-size:13px;
  color:#7A4A00; margin-bottom:14px;}

/* ───────── choix d'un axe puis d'un levier ───────── */
.axes{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:14px;}
.axe{text-align:left; background:var(--paper); border:1px solid var(--line); border-radius:12px;
  padding:14px; cursor:pointer; text-decoration:none; display:block; transition:.15s;}
.axe:hover{border-color:var(--red);}
.axe.on{border-color:var(--red); background:var(--red-wash-2);}
.axe .ai{font-family:'DM Mono',monospace; font-size:10px; font-weight:500; color:#fff;
  background:var(--ink); border-radius:6px; padding:4px 6px; display:inline-block; letter-spacing:.04em;}
.axe.on .ai{background:var(--red);}
.axe .an{font-size:13.5px; font-weight:700; margin:9px 0 4px; line-height:1.3;}
.axe .ad{font-size:11.5px; color:var(--ink-4); line-height:1.45;}
.axe .ac{font-size:11px; color:var(--red); font-weight:600; margin-top:9px;}
.leviers{display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:18px;}
.levier{display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer;
  background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:12px 15px;
  font-family:inherit; transition:.15s;}
.levier:hover{border-color:var(--red); background:var(--red-wash-2);}
.levier .ln{display:block; font-size:13px; font-weight:600; line-height:1.35;}
.levier .ls{display:block; font-size:11.5px; color:var(--ink-4); margin-top:3px; line-height:1.4;}
.levier .plus{margin-left:auto; font-size:17px; color:var(--red); font-weight:700; flex:0 0 auto;}
.levier.pris{background:var(--ok-bg); border-color:#B7D3BE; cursor:default;}
.levier.pris .plus{color:var(--ok);}

/* ───────── saisie d'une valeur avec son unité ───────── */
.cible-f{display:flex; align-items:center; gap:7px; margin:0;}
.cible-f .inp{text-align:right; padding:6px 9px;}
.cible-f .u{font-size:11px; color:var(--ink-4); white-space:nowrap; flex:0 0 auto; min-width:32px;}
.tbl tr.cible-posee td{background:var(--red-wash-2);}
.tbl tr.cible-posee:hover td{background:var(--red-wash);}

/* ───────── coche d'activation d'une section facultative ───────── */
.coche{margin:0;}
.coche label{display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-size:13.5px; font-weight:600;}
.coche input[type=checkbox]{width:17px; height:17px; accent-color:var(--red); cursor:pointer;}

/* ───────── hypothèses N+1 : réglages à gauche, résultat à droite ───────── */
.grid-hyp{display:grid; grid-template-columns:minmax(320px,0.85fr) 1.6fr; gap:16px; align-items:start;}

/* ───────── cartes de business review ───────── */
.brcards{display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:14px;}
.brcard{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:18px;
  text-decoration:none; display:block; transition:.15s;}
.brcard:hover{border-color:var(--red); transform:translateY(-1px);}
.brcard .bn{font-size:16px; font-weight:700; margin:8px 0 2px; line-height:1.3;}
.brcard .bs{font-size:12px; color:var(--ink-4);}
.brcard .bk{display:flex; gap:14px; margin-top:14px; flex-wrap:wrap;}
.brcard .bk div{font-size:11px; color:var(--ink-4);}
.brcard .bk b{display:block; font-size:15px; color:var(--ink); font-weight:700; margin-top:2px;}
.brcard .bf{display:flex; justify-content:space-between; align-items:center; margin-top:16px;
  padding-top:12px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-4);}

@media (max-width:1100px){
  .outils,.axes{grid-template-columns:repeat(2,1fr);}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .grid2,.grid3,.leviers,.grid-hyp{grid-template-columns:1fr;}
}

/* ═══════════════════════════════════════════════════════════════════════════
   ADMINISTRATION
   ═══════════════════════════════════════════════════════════════════════════ */
.sousnav{display:flex; gap:4px; border-bottom:1px solid var(--line); margin:0 0 6px; flex-wrap:wrap;}
.sousnav a{text-decoration:none; font-size:13px; font-weight:600; color:var(--ink-4);
  padding:14px 16px; border-bottom:2px solid transparent; margin-bottom:-1px;}
.sousnav a:hover{color:var(--ink);}
.sousnav a.on{color:var(--red); border-bottom-color:var(--red);}

.dests{display:flex; flex-direction:column; gap:9px; padding:4px 0;}
.dests label{display:flex; align-items:center; gap:10px; cursor:pointer; font-size:13px;}
.dests label.inactif{cursor:not-allowed; color:var(--ink-4);}
.dests input[type=checkbox]{width:16px; height:16px; accent-color:var(--red); flex:0 0 auto;}

.synth-apercu{background:var(--bg-2); border-radius:9px; padding:13px 16px; font-size:13px;
  line-height:1.6; white-space:pre-wrap; color:var(--ink-2);}
code{font-family:'DM Mono',monospace; font-size:.92em; background:var(--bg-2);
  padding:1px 5px; border-radius:5px;}

/* ═══════════════════════════════════════════════════════════════════════════
   L'ARBRE DE SUPERVISION — direction opérationnelle › secteur › BU
   ═══════════════════════════════════════════════════════════════════════════ */
.tbl-arbre tr[hidden]{display:none;}

.plier{display:flex; align-items:center; gap:9px; width:100%; background:none; border:0;
  padding:0; cursor:pointer; text-align:left; font-family:inherit; color:inherit;}
.plier .chev{flex:0 0 auto; width:14px; height:14px; position:relative; opacity:.55;}
.plier .chev::before{content:''; position:absolute; left:3px; top:2px;
  width:6px; height:6px; border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor;
  transform:rotate(-45deg); transition:transform .15s;}
.plier[aria-expanded="true"] .chev::before{transform:rotate(45deg); top:1px; left:2px;}
.plier:hover .chev{opacity:1;}
.plier .nom{font-weight:700;}
.plier .n{font-weight:400; color:var(--ink-4); font-size:11.5px; white-space:nowrap;}

/* Niveau 1 · direction opérationnelle
   Un aplat rouge très clair et un filet rouge à gauche, plutôt qu'un aplat
   noir : la hiérarchie se lit à l'indentation et au filet, pas au contraste.
   C'est la même langue que le cartouche de verdict du dossier. */
.tbl-arbre tr.grp-do td{background:var(--red-wash-2); padding:12px; border-bottom:1px solid #F2DDDD;}
.tbl-arbre tr.grp-do:hover td{background:var(--red-wash);}
.tbl-arbre tr.grp-do td:first-child{box-shadow:inset 3px 0 0 var(--red);}
.tbl-arbre tr.grp-do .plier .nom{font-size:14px; letter-spacing:-.01em; color:var(--red-dark);}
.tbl-arbre tr.grp-do .plier .chev{color:var(--red);}

/* Niveau 2 · secteur */
.tbl-arbre tr.grp-secteur td{background:var(--bg-2); padding:9px 12px 9px 24px;}
.tbl-arbre tr.grp-secteur:hover td{background:#E9E9E7;}
.tbl-arbre tr.grp-secteur td:not(:first-child){padding-left:12px;}
.tbl-arbre tr.grp-secteur .plier .nom{font-size:13px;}

/* Niveau 3 · BU */
.tbl-arbre tr.n-bu td.cel-bu{padding-left:48px;}
.tbl-arbre tr.n-bu td.cel-bu::before{content:''; position:absolute; margin-left:-22px; margin-top:4px;
  width:9px; height:9px; border-left:1px solid var(--line-2); border-bottom:1px solid var(--line-2);}
.tbl-arbre tr.n-bu td.cel-bu{position:relative;}

.compteurs{display:flex; gap:5px; flex-wrap:wrap;}
.compteurs .chip{font-size:10.5px; padding:2px 8px;}

.cartes-export{display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:14px;}

/* ═══════════════════════════════════════════════════════════════════════════
   LE FIL D'ARIANE DE PRÉPARATION
   ═══════════════════════════════════════════════════════════════════════════ */
.fil{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin:22px 0 18px;}
.fil-etape{display:block; text-decoration:none; background:var(--paper); border:1px solid var(--line);
  border-radius:13px; padding:15px 16px; position:relative; transition:.15s;}
.fil-etape:hover{border-color:var(--ink-3); transform:translateY(-1px);}
.fil-tete{display:flex; align-items:center; gap:9px; margin-bottom:9px;}
.fil-num{width:22px; height:22px; border-radius:50%; background:var(--bg-2); color:var(--ink-4);
  font-family:'DM Mono',monospace; font-size:11px; font-weight:500;
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.fil-titre{font-size:13.5px; font-weight:700; line-height:1.3; margin-bottom:5px;}
.fil-resume{font-size:12.5px; color:var(--ink-2); font-weight:600; line-height:1.4;}
.fil-detail{font-size:11.5px; color:var(--ink-4); line-height:1.5; margin-top:6px;}
.fil-tete .chip{margin-left:auto;}

.fil-fait{border-color:#B7D3BE; background:linear-gradient(to bottom,#F4F9F5,var(--paper) 60%);}
.fil-fait .fil-num{background:var(--ok); color:#fff;}
.fil-attention{border-color:#E6D3A8; background:linear-gradient(to bottom,#FEFAF1,var(--paper) 60%);}
.fil-attention .fil-num{background:var(--vig); color:#fff;}
.fil-a_faire{border-color:var(--line-2); border-style:dashed;}
.fil-facultatif{opacity:.78;}

/* ───────── jauges de couverture ───────── */
.jauge{background:var(--paper); border:1px solid var(--line); border-radius:13px; padding:16px 18px;}
.jauge-tete{display:flex; justify-content:space-between; align-items:baseline; font-size:12.5px;
  color:var(--ink-3); margin-bottom:9px;}
.jauge-tete b{font-size:15px; color:var(--ink);}
.jauge-barre{height:8px; border-radius:99px; background:var(--bg-2); overflow:hidden;}
.jauge-barre i{display:block; height:100%; border-radius:99px; transition:width .3s;}
.jauge-barre .j-ok{background:var(--ok);} .jauge-barre .j-vig{background:var(--vig);}
.jauge-barre .j-prio{background:var(--prio);}
.jauge-pied{font-size:11.5px; color:var(--ink-4); margin-top:7px;}
.jauge-pied.ok{color:var(--ok);}
.jauge-pied b{color:var(--prio);}

/* ───────── blocs d'anomalie de couverture ───────── */
.anomalies{display:flex; flex-direction:column; gap:10px;}
.anomalie{background:var(--paper); border:1px solid var(--line); border-radius:13px; overflow:hidden;}
.anomalie summary{display:flex; align-items:center; gap:11px; padding:14px 17px; cursor:pointer;
  list-style:none; flex-wrap:wrap;}
.anomalie summary::-webkit-details-marker{display:none;}
.anomalie summary:hover{background:var(--bg);}
.anomalie .an-titre{font-size:13.5px; font-weight:700;}
.anomalie .an-expl{font-size:11.5px; color:var(--ink-4); flex:1 1 100%; line-height:1.5; margin-left:34px;}
.anomalie-prio{border-left:3px solid var(--prio);}
.anomalie-vig{border-left:3px solid var(--vig);}
.anomalie .table-cadre{border-top:1px solid var(--line); max-height:380px;}
.anomalie .num.manque{color:var(--prio); font-weight:700;}
