

@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/a22cb26e48.ttf) format("truetype");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/444f85bf1c.ttf) format("truetype");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/f249453651.ttf) format("truetype");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/6654b93d21.ttf) format("truetype");}
:root{
  --ink:#001129; --ink-2:#0A2038; --ink-3:#0F3560;
  --paper:#ECEFF1; --card:#FFFFFF; --line:#DEE4E7; --line-2:#E9EDEF;
  --text:#16242D; --text-2:#4E5F6C; --text-3:#738692;
  --brass:#EFA125; --brass-2:#F5B347; --brass-soft:#FCE9CB;
  --emerald:#2F7D5B; --emerald-soft:#DCEDE4;
  --red:#BE463A; --red-soft:#F6DEDA;
  --blue:#004B93; --slate:#68797F; --sky:#D0E3F4;
  --amber:#C56A2A;
  --shadow:0 1px 2px rgba(18,32,41,.06), 0 8px 24px -12px rgba(18,32,41,.14);
  --shadow-lg:0 24px 60px -20px rgba(18,32,41,.35);
  --r:8px; --r-sm:6px;
  --sans:"Instrument Sans",system-ui,sans-serif;
  --disp:"Outfit","Space Grotesk",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans); background:var(--paper); color:var(--text);
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased;
  display:block; min-height:100vh; font-weight:400; letter-spacing:-.01em;
}
body:not(.auth-ready):not(.logged-out) .side,
body:not(.auth-ready):not(.logged-out) .main {
  display:none !important;
}
body.auth-ready .side,
body.auth-ready .main {
  display:flex;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-weight:600}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);font-weight:400}
/* Ensure regular text elements render at normal weight; bold remains explicit via b/strong */
p, li, span { font-weight:400 }
::selection{background:var(--brass-soft)}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:4px}
.tnum{font-variant-numeric:tabular-nums}
.disp{font-family:var(--disp)}
body, .main, .view, .side { min-width:0; }

/* ---------- SIDEBAR ---------- */
:root{
  --sidebar-w:236px;
  --sidebar-collapsed:64px;
}
.side{
  width:var(--sidebar-w); flex:0 0 var(--sidebar-w); flex-shrink:0; background:linear-gradient(180deg,#0A1830 0%, #071224 100%); color:#C9D3D8;
  display:flex; flex-direction:column; position:fixed; left:0; top:0; bottom:0; height:100vh;
  padding:0; z-index:40; transition:width .18s ease, flex-basis .18s ease; box-shadow:18px 0 35px -22px rgba(0,0,0,.45);
  overflow:hidden;
}
.side::before{content:'';position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:340px;height:260px;
  background:radial-gradient(closest-side,rgba(28,93,196,.35),transparent 70%);pointer-events:none;
  animation:pa-glow 5s ease-in-out infinite}
@keyframes pa-glow{0%,100%{opacity:.6}50%{opacity:1}}
.brand{padding:22px 20px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,255,255,.06);position:relative;z-index:1}
.brand-mark{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;position:relative;
  background:radial-gradient(circle at 30% 30%,#123a6b,#071224);
  border:1px solid rgba(239,161,37,.45);box-shadow:0 0 0 3px rgba(28,93,196,.15),0 4px 14px -4px rgba(0,0,0,.5);
}
.brand-mark img{width:64%;height:64%;object-fit:contain;display:block}
.brand-txt b{font-family:var(--disp);color:#fff;font-size:15px;font-weight:700;letter-spacing:.01em;display:block;line-height:1.1}
.brand-txt small{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:700}

.nav{padding:14px 12px;flex:1;overflow-y:auto;position:relative;z-index:1}

/* En-tête de groupe = bouton dépliant (dropdown) : plus net, plus lisible,
 * chevron qui pivote selon l'état. Ne concerne que les libellés de section
 * de la sidebar (.nav-lbl), aucune autre classe de page n'est touchée. */
.nav-group{margin-bottom:5px;border-radius:7px;transition:background .22s ease,box-shadow .22s ease}
.nav-group:not(.is-closed){background:linear-gradient(90deg,rgba(181,132,44,.1),rgba(255,255,255,.045) 55%);box-shadow:inset 2px 0 0 var(--brass)}
.nav-lbl{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-family:var(--disp);font-size:11.5px;letter-spacing:.17em;text-transform:uppercase;
  color:var(--brass-2);padding:14px 12px;font-weight:800;opacity:.98;
  background:none;border:none;cursor:pointer;text-align:left;border-radius:7px;
  transition:color .16s,background .16s;
}
.nav-group:not(.is-closed) .nav-lbl{color:#fff;text-shadow:0 1px 8px rgba(181,132,44,.35)}
.nav-lbl:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav-lbl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-chev{flex-shrink:0;color:rgba(255,255,255,.5);transition:transform .26s cubic-bezier(.4,0,.2,1),color .16s}
.nav-lbl:hover .nav-chev{color:#fff}
.nav-group:not(.is-closed) .nav-chev{color:var(--brass)}
.nav-group.is-closed .nav-chev{transform:rotate(-90deg)}

.nav-list{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}
.nav-list-inner{overflow:hidden;min-height:0;padding:2px 4px 7px}
.nav-group:not(.is-closed) .nav-list{grid-template-rows:1fr}
.nav-group.is-closed .nav-list{grid-template-rows:0fr}

.nav a{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:7px;
  color:#B7C4CB;font-weight:700;font-size:13.5px;letter-spacing:.005em;margin-bottom:2px;position:relative;
  transition:background .18s,color .18s,transform .18s;
  cursor: pointer;
}
.nav a span{font-weight:700}
.nav a svg{width:18px;height:18px;flex-shrink:0;stroke-width:1.85}
.nav a:hover{background:rgba(255,255,255,.06);color:#FFFFFF;transform:translateX(2px)}
.nav a.on{background:linear-gradient(90deg,#1C63C7,#0A4A96);color:#fff;
  box-shadow:0 6px 18px -6px rgba(10,74,150,.65),inset 0 1px 0 rgba(255,255,255,.12)}
.nav a.on svg{color:#fff}
.nav a.on::after{content:'›';margin-left:auto;font-size:16px;font-weight:700;color:rgba(255,255,255,.75)}
.nav a .badge{margin-left:auto;background:var(--brass);color:var(--ink);font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:20px;font-family:var(--disp)}
.nav a.on .badge{margin-left:8px}
.side-foot{padding:14px;border-top:1px solid rgba(255,255,255,.06);position:relative;z-index:1}
.usr{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07)}
.usr .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1C63C7,#0A2F63);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:13px;box-shadow:0 0 0 3px rgba(28,99,199,.18)}
.usr b{color:var(--brass);font-size:12.5px;display:block;font-weight:700}
.usr small{color:#7C8D94;font-size:11px}
.usr>div:nth-child(2){flex:1;min-width:0;overflow:hidden}
.usr>div:nth-child(2) b,.usr>div:nth-child(2) small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-logout{
  flex-shrink:0;margin-left:auto;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:7px;border:1px solid rgba(224,90,90,.35);
  background:rgba(224,90,90,.1);color:#F2A0A0;
  transition:background .15s,border-color .15s,color .15s,transform .1s;
}
.side-logout svg{flex-shrink:0}
.side-logout:hover{background:var(--red);border-color:var(--red);color:#fff}
.side-logout:active{transform:scale(.97)}
.side.collapsed .usr .side-logout{display:none}

/* ---------- MAIN ---------- */
.main{flex:1;min-width:0;min-height:calc(100vh - 64px);display:flex;flex-direction:column;margin-left:var(--sidebar-w);width:calc(100% - var(--sidebar-w));background:linear-gradient(180deg,#FDFEFE 0%, #FAFBFC 100%);position:relative;overflow:visible;padding-top:64px}
.top{
  height:64px;background:rgba(236,239,241,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;
  padding:0 26px;position:fixed;top:0;left:var(--sidebar-w);right:0;z-index:60;box-shadow:0 6px 24px -16px rgba(12,24,34,.18);
  backdrop-filter:saturate(1.1) blur(10px);-webkit-backdrop-filter:saturate(1.1) blur(10px);
}
.top h1{font-family:var(--disp);font-size:clamp(15.5px,3.6vw,19px);font-weight:800;letter-spacing:-.02em;color:var(--ink-2)}
.top .sub{color:var(--text-2);font-size:12.5px;margin-top:1px;font-weight:700}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 12px;width:220px;color:var(--text-3)}
.search input{border:none;outline:none;width:100%;background:none;font-size:13px}
.search svg{width:15px;height:15px;flex-shrink:0}
.role-sel{display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border-radius:7px;padding:8px 12px;font-size:12.5px;font-weight:500}
.role-sel select{background:none;border:none;color:#fff;font-weight:600;outline:none;cursor:pointer}
.role-sel select option{color:var(--text)}
.icon-btn{width:38px;height:38px;border-radius:7px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--text-2);position:relative}
.icon-btn:hover{color:var(--text)}
.icon-btn svg{width:18px;height:18px}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid #fff}

.view{padding:26px;flex:1;display:none;animation:fade .3s ease;max-width:1500px;width:100%;margin:0 auto;position:relative;z-index:1}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.page-title,
.sec-h h2,
.panel-h h3,
.rail-head h3,
.kpi .num,
.card h3,
.card .title,
.title,
.panel .title{
  color:var(--ink-2);
}

/* eyebrow / section titles */
.eyebrow{font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--brass);font-weight:700;margin-bottom:4px}
.sec-h{display:flex;align-items:baseline;gap:12px;margin:26px 0 14px}
.sec-h h2{font-family:var(--disp);font-size:16px;font-weight:700;color:var(--ink-2)}
.sec-h .ln{flex:1;height:1px;background:var(--line)}
.sec-h a{font-size:12.5px;color:var(--text-2);font-weight:500}
.sec-h a:hover{color:var(--brass)}

/* ---------- KPI INSTRUMENTS ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.kpi{background:linear-gradient(180deg,#ffffff 0%, #fbfcfd 100%);border:1px solid rgba(15,53,96,0.12);border-radius:var(--r);padding:14px 16px;box-shadow:0 6px 18px rgba(16,31,46,0.06);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.kpi:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(16,31,46,0.08)}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brass);opacity:.85}
.kpi.g::before{background:var(--emerald)} .kpi.b::before{background:var(--blue)} .kpi.a::before{background:var(--amber)}
.kpi .lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);font-weight:700;display:flex;align-items:center;gap:7px}
.kpi .lbl svg{width:14px;height:14px;color:var(--text-3)}
.kpi .num{font-family:var(--disp);font-size:clamp(21px,2.3vw,28px);font-weight:600;letter-spacing:-.02em;margin-top:8px;line-height:1}
.kpi .num small{font-size:15px;color:var(--text-2);font-weight:500}
.kpi .delta{font-size:11.5px;margin-top:7px;font-weight:600;display:flex;align-items:center;gap:4px}
.kpi .delta.up{color:var(--emerald)} .kpi .delta.dn{color:var(--red)}
.kpi .delta span{color:var(--text-3);font-weight:400}

/* ---------- PARCOURS RAIL (signature) ---------- */
.rail-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px 22px;margin-top:14px}
.rail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.rail-head h3{font-family:var(--disp);font-size:14.5px;font-weight:600}
.rail-head .legend{display:flex;gap:16px;font-size:11.5px;color:var(--text-2)}
.rail-head .legend b{color:var(--text);font-family:var(--disp)}
.rail{display:flex;align-items:stretch;gap:3px;overflow-x:auto;padding-bottom:6px}
.seg{flex:1;min-width:76px;text-align:center;position:relative}
.seg .bar{height:8px;border-radius:2px;background:var(--stage);opacity:.85;position:relative}
.seg:first-child .bar{border-radius:5px 2px 2px 5px}
.seg:last-child .bar{border-radius:2px 5px 5px 2px}
.seg .cnt{font-family:var(--disp);font-size:17px;font-weight:600;margin-top:9px;color:var(--text)}
.seg .nm{font-size:10.5px;color:var(--text-2);margin-top:2px;line-height:1.25;font-weight:500}
.seg .val{font-size:10px;color:var(--text-3);margin-top:3px;font-family:var(--disp)}
.seg.dim .bar{opacity:.28} .seg.dim .cnt{color:var(--text-3)}

/* ---------- GRID LAYOUTS ---------- */
.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.panel{background:linear-gradient(180deg,#ffffff 0%, #fbfcfd 100%);border:1px solid rgba(15,53,96,.08);border-radius:var(--r);box-shadow:0 18px 30px -22px rgba(17,30,41,.24);overflow:hidden}
.panel-h{padding:15px 18px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg, rgba(245,247,248,.7), rgba(255,255,255,0));}
.panel-h h3{font-family:var(--disp);font-size:14px;font-weight:700}
.panel-h .tag{font-size:11px;color:var(--text-2);background:var(--paper);padding:3px 9px;border-radius:20px;font-weight:600;border:1px solid rgba(15,53,96,.06)}
.panel-b{padding:16px 18px}

/* Modern admin tables: tighter, professional look */
.admin-table{width:100%;border-collapse:collapse;margin-top:8px;background:var(--card);border:1px solid var(--line);box-shadow:0 2px 6px rgba(2,10,20,0.04);font-size:13px}
.admin-table thead th{background:linear-gradient(180deg,#FBFCFE,#F1F7FB);color:var(--blue);padding:10px 12px;text-align:left;font-weight:700;border-bottom:1px solid rgba(4,75,147,0.08);text-transform:uppercase;letter-spacing:0.04em}
.admin-table tbody tr{background:transparent}
.admin-table tbody tr:nth-child(even){background:rgba(0,75,147,0.03)}
.admin-table tbody tr:hover{background:rgba(0,75,147,0.06)}
.admin-table td{padding:8px 12px;border-bottom:1px solid rgba(0,0,0,0.05);vertical-align:middle}
.admin-table td.actions{width:140px;text-align:right}
.admin-table .muted{color:var(--text-3);font-weight:500}
.admin-table .status{padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}
.admin-table .status.ok{background:var(--emerald-soft);color:var(--emerald)}
.admin-table .status.warn{background:#FFF7E6;color:var(--amber)}
.admin-table .status.err{background:var(--red-soft);color:var(--red)}

/* Title color for admin sections */
.h{color:var(--blue);font-weight:700}

/* bar chart */
.bars{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:8px}
.bcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%;justify-content:flex-end}
.bcol .stack{width:60%;max-width:34px;border-radius:4px 4px 0 0;display:flex;flex-direction:column;justify-content:flex-end;position:relative;transition:height .6s cubic-bezier(.2,.7,.2,1)}
.bcol .fill{background:linear-gradient(180deg,var(--brass-2),var(--brass));border-radius:4px 4px 0 0}
.bcol .prev{background:var(--line);border-radius:4px 4px 0 0}
.bcol .mo{font-size:10.5px;color:var(--text-2);font-weight:500}
.bcol:hover .fill{filter:brightness(1.05)}

/* donut */
.donut-wrap{display:flex;align-items:center;gap:18px}
.donut{width:130px;height:130px;flex-shrink:0}
.dlegend{flex:1;display:flex;flex-direction:column;gap:9px}
.dlegend .row{display:flex;align-items:center;gap:9px;font-size:12.5px}
.dlegend .sw{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.dlegend .row b{margin-left:auto;font-family:var(--disp);font-weight:600}

/* top commerciaux */
.rank{display:flex;flex-direction:column;gap:2px}
.rank .r{display:flex;align-items:center;gap:12px;padding:9px 4px}
.rank .r+.r{border-top:1px solid var(--line-2)}
.rank .pos{width:22px;font-family:var(--disp);font-weight:600;color:var(--text-3);font-size:13px}
.rank .r.top1 .pos{color:var(--brass)}
.rank .av{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:600;font-size:12px;flex-shrink:0}
.rank .info{flex:1;min-width:0}
.rank .info b{font-size:13px;font-weight:600;display:block}
.rank .info .track{height:5px;background:var(--line-2);border-radius:3px;margin-top:5px;overflow:hidden}
.rank .info .track i{display:block;height:100%;background:var(--brass);border-radius:3px}
.rank .ca{font-family:var(--disp);font-weight:600;font-size:13px;text-align:right}
.rank .ca small{display:block;color:var(--text-3);font-size:10.5px;font-weight:400}

/* activity / alerts feed */
.feed{display:flex;flex-direction:column}
.feed .it{display:flex;gap:12px;padding:11px 4px}
.feed .it+.it{border-top:1px solid var(--line-2)}
.feed .ic{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:grid;place-items:center}
.feed .ic svg{width:16px;height:16px;stroke-width:1.8}
.ic.red{background:var(--red-soft);color:var(--red)} .ic.green{background:var(--emerald-soft);color:var(--emerald)}
.ic.brass{background:var(--brass-soft);color:var(--brass)} .ic.blue{background:var(--sky);color:var(--blue)}
.feed .bd{flex:1;min-width:0}
.feed .bd b{font-size:13px;font-weight:600}
.feed .bd p{font-size:12px;color:var(--text-2);margin-top:1px}
.feed .tm{font-size:11px;color:var(--text-3);white-space:nowrap;font-family:var(--disp)}

/* ---------- PIPELINE KANBAN ---------- */
.kanban{display:flex;gap:13px;overflow-x:auto;padding-bottom:10px;margin-top:16px}
.col{width:262px;flex-shrink:0;background:#E4E9EB;border-radius:8px;padding:10px;display:flex;flex-direction:column;max-height:calc(100vh - 260px)}
.col-h{display:flex;align-items:center;gap:8px;padding:4px 6px 10px}
.col-h .pin{width:9px;height:9px;border-radius:3px;background:var(--stage)}
.col-h b{font-size:12.5px;font-weight:600}
.col-h .n{margin-left:auto;font-family:var(--disp);font-weight:600;font-size:12px;color:var(--text-2);background:#fff;padding:1px 8px;border-radius:20px}
.col-h .sum{font-size:10.5px;color:var(--text-2);font-family:var(--disp)}
.cards{display:flex;flex-direction:column;gap:9px;overflow-y:auto;padding:2px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 1px 2px rgba(18,32,41,.05);cursor:grab;transition:box-shadow .15s,transform .15s;border-left:3px solid var(--stage)}
.card:hover{box-shadow:0 6px 18px -8px rgba(18,32,41,.28);transform:translateY(-1px)}
.card.new{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.9);opacity:0;box-shadow:0 0 0 4px var(--brass-soft)}100%{transform:scale(1);opacity:1}}
.card .co{font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px}
.card .prio{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.prio.h{background:var(--red)} .prio.m{background:var(--amber)} .prio.l{background:var(--slate)}
.card .meta{font-size:11.5px;color:var(--text-2);margin-top:3px}
.card .chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.chip{font-size:10px;padding:2px 7px;border-radius:6px;background:var(--paper);color:var(--text-2);font-weight:500}
.chip.brand{background:var(--brass-soft);color:#7A5A17}
.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid var(--line-2)}
.card .val{font-family:var(--disp);font-weight:600;font-size:13px}
.card .who{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2)}
.card .who .mini{width:20px;height:20px;border-radius:6px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:9px;font-family:var(--disp);font-weight:600}
.card .prob{font-size:10.5px;color:var(--text-3);font-family:var(--disp)}

/* ---------- TABLES ---------- */
.tbl-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;margin-top:16px}
.tbl-tools{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.tbl-tools .filt{display:flex;align-items:center;gap:7px;background:var(--paper);border:1px solid var(--line);padding:7px 11px;border-radius:9px;font-size:12.5px;color:var(--text-2);font-weight:500}
.tbl-tools .filt svg{width:14px;height:14px}
.tbl-tools .sp{flex:1}
.tbl-tools .cnt{font-size:12px;color:var(--text-2)}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#fff;font-weight:700;padding:13px 16px;background:var(--blue);border-bottom:2px solid var(--ink)}
td{padding:10px 16px;font-size:13px;color:var(--text);border-bottom:1px solid var(--line-2)}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .12s}
tbody tr:nth-child(even){background:#E7EAEE}
tbody tr:hover{background:#D9E4EE}
tr.new-row{animation:rowin .6s ease}
@keyframes rowin{0%{background:var(--brass-soft)}100%{background:transparent}}
.co-cell{display:flex;align-items:center;gap:10px}
.co-cell .lg{width:32px;height:32px;border-radius:8px;background:var(--ink-3);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:600;font-size:12px;flex-shrink:0}
.co-cell b{font-weight:600}.co-cell small{display:block;color:var(--text-3);font-size:11px}
.pill{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;display:inline-flex;align-items:center;gap:5px}
.pill.st{background:var(--paper);color:var(--text-2)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.won{background:var(--emerald-soft);color:var(--emerald)}
.pill.hot{background:var(--red-soft);color:var(--red)}
.pill.warm{background:var(--brass-soft);color:#8A6413}
.pill.cool{background:#DCE8EF;color:var(--blue)}
.money{font-family:var(--disp);font-weight:600;text-align:right}

/* ---------- FICHE FORM ---------- */
.fiche{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.form-card{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}
.form-hd{padding:18px 22px;border-bottom:2px solid var(--blue);background:linear-gradient(180deg,#F7FAFC,#EFF4F8)}
.form-hd .eyebrow{margin-bottom:2px;color:var(--blue)}
.form-hd h3{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--ink)}
.form-hd p{font-size:12.5px;color:var(--text-2);margin-top:3px}
.fset{padding:20px 22px}
.fset+.fset{border-top:1px solid var(--line-2)}
.fset .leg{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.fset .leg .no{width:24px;height:24px;border-radius:6px;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:11.5px;box-shadow:0 3px 8px -3px rgba(0,75,147,.5)}
.fset .leg b{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:.01em}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.frow.f3{grid-template-columns:1fr 1fr 1fr}
.frow.f1{grid-template-columns:1fr}
.fg{display:flex;flex-direction:column;gap:5px}
.fg label{font-size:11.5px;font-weight:700;color:var(--text-2);letter-spacing:.01em}
.fg label .req{color:var(--brass)}
.fg input,.fg select,.fg textarea{
  border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:#fff;
  transition:border .15s,box-shadow .15s;width:100%;
}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,75,147,.14)}
.fg textarea{resize:vertical;min-height:60px}
.form-ft{padding:16px 22px;border-top:1px solid var(--line-2);display:flex;align-items:center;gap:12px;background:#FAFBFC}
.form-ft .hint{font-size:12px;color:var(--text-2);flex:1}
.btn{padding:10px 18px;border-radius:8px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;transition:transform .1s,filter .15s}
.btn svg{width:16px;height:16px}
.btn:active{transform:translateY(1px)}
.btn-p{background:var(--ink);color:#fff}.btn-p:hover{background:var(--ink-2)}
.btn-g{background:var(--brass);color:var(--ink)}.btn-g:hover{filter:brightness(1.06)}
.btn-o{background:#fff;border:1px solid var(--line);color:var(--text)}

/* fiche side: cascade preview */
.cascade{background:var(--ink);border-radius:8px;padding:20px;color:#C9D3D8;position:sticky;top:82px}
.cascade .eyebrow{color:var(--brass-2)}
.cascade h4{font-family:var(--disp);color:#fff;font-size:14px;font-weight:600;margin:2px 0 4px}
.cascade>p{font-size:12px;color:#9AAAB1;margin-bottom:16px;line-height:1.5}
.casc-list{display:flex;flex-direction:column;gap:2px}
.casc-list .c{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:6px;transition:background .3s}
.casc-list .c .cd{width:24px;height:24px;border-radius:6px;background:var(--ink-3);display:grid;place-items:center;flex-shrink:0;color:#8CA0A8}
.casc-list .c .cd svg{width:13px;height:13px}
.casc-list .c span{font-size:12.5px;font-weight:500;color:#C9D3D8}
.casc-list .c .chk{margin-left:auto;width:18px;height:18px;border-radius:50%;border:1.5px solid #3B5262;flex-shrink:0;display:grid;place-items:center}
.casc-list .c .chk svg{width:11px;height:11px;stroke:var(--ink);opacity:0}
.casc-list .c.done{background:rgba(47,125,91,.14)}
.casc-list .c.done .cd{background:var(--emerald);color:#fff}
.casc-list .c.done .chk{background:var(--emerald);border-color:var(--emerald)}
.casc-list .c.done .chk svg{opacity:1;stroke-width:3}

/* ---------- AGENDA ---------- */
.agenda{display:flex;flex-direction:column;gap:0;margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.ag-day{display:flex;gap:0;border-bottom:1px solid var(--line-2)}
.ag-day:last-child{border-bottom:none}
.ag-date{width:96px;flex-shrink:0;padding:16px;background:#F6F8F9;border-right:1px solid var(--line-2);text-align:center}
.ag-date .d{font-family:var(--disp);font-size:24px;font-weight:600;line-height:1}
.ag-date .m{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.ag-date .wd{font-size:11px;color:var(--brass);font-weight:600;margin-top:4px}
.ag-items{flex:1;padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.ag-it{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;background:var(--paper);border-left:3px solid var(--stage)}
.ag-it .t{font-family:var(--disp);font-size:12px;font-weight:600;color:var(--text-2);width:52px;flex-shrink:0}
.ag-it .lbl{flex:1}
.ag-it .lbl b{font-size:13px;font-weight:600;display:block}
.ag-it .lbl small{font-size:11.5px;color:var(--text-2)}
.ag-it .ty{font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:20px;background:#fff;color:var(--text-2)}

/* ---------- REPORTING ---------- */
.rep-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px}
.rep-tabs{display:flex;gap:4px;background:#E4E9EB;padding:4px;border-radius:8px}
.rep-tabs button{padding:7px 15px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.rep-tabs button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.exp{margin-left:auto;display:flex;gap:8px}
.line-chart{margin-top:6px}

/* discipline meters */
.disc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:16px}
.gauge{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;text-align:center}
.gauge svg{width:104px;height:104px}
.gauge .gv{font-family:var(--disp);font-size:22px;font-weight:600}
.gauge .gl{font-size:12px;color:var(--text-2);font-weight:600;margin-top:6px}
.gauge .gs{font-size:11px;color:var(--text-3);margin-top:2px}

/* ---------- TOAST ---------- */
.toast-wrap{position:fixed;bottom:26px;right:26px;z-index:100;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--ink);color:#fff;border-radius:9px;padding:14px 16px;box-shadow:var(--shadow-lg);display:flex;gap:12px;align-items:flex-start;width:340px;animation:tin .35s cubic-bezier(.2,.8,.2,1);border-left:3px solid var(--emerald)}
@keyframes tin{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.toast .ti{width:32px;height:32px;border-radius:9px;background:var(--emerald);display:grid;place-items:center;flex-shrink:0}
.toast .ti svg{width:18px;height:18px;stroke:#fff;stroke-width:2.2}
.toast b{font-size:13.5px;display:block}
.toast p{font-size:12px;color:#AEBBC1;margin-top:2px;line-height:1.4}

.hint-note{font-size:12px;color:var(--text-2);background:var(--brass-soft);border-radius:8px;padding:11px 14px;margin-bottom:6px;display:flex;gap:9px;align-items:flex-start}
.hint-note svg{width:16px;height:16px;color:var(--brass);flex-shrink:0;margin-top:1px}

/* admin profiles */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px}
.prof{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;border-top:3px solid var(--pc)}
.prof .ph{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.prof .pi{width:34px;height:34px;border-radius:9px;background:var(--pc);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:600;font-size:13px;flex-shrink:0}
.prof .ph b{font-size:13.5px;font-weight:600;display:block;line-height:1.2}
.prof .ph small{font-size:11px;color:var(--text-2);font-family:var(--disp)}
.prof ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.prof li{font-size:12px;color:var(--text-2);display:flex;align-items:flex-start;gap:8px}
.prof li svg{width:13px;height:13px;color:var(--pc);flex-shrink:0;margin-top:2px;stroke-width:2.5}
.toggle-list{display:flex;flex-direction:column}
.toggle-list .tr{display:flex;align-items:center;gap:12px;padding:11px 2px}
.toggle-list .tr+.tr{border-top:1px solid var(--line-2)}
.toggle-list .tr b{font-size:13px;font-weight:600;flex:1}
.toggle-list .tr small{display:block;color:var(--text-3);font-size:11px;font-weight:400;margin-top:1px}
.sw-tog{width:38px;height:22px;border-radius:20px;background:var(--emerald);position:relative;flex-shrink:0;cursor:pointer;transition:background .2s}
.sw-tog.off{background:#C4CCD0}
.sw-tog::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sw-tog.off::after{left:18px}
.doc-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.doc-cat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:13px 12px;text-align:center;cursor:pointer;transition:transform .12s,border-color .12s}
.doc-cat:hover{transform:translateY(-2px);border-color:var(--brass)}
.doc-cat .di{width:34px;height:34px;border-radius:9px;margin:0 auto 8px;display:grid;place-items:center}
.doc-cat .di svg{width:17px;height:17px}
.doc-cat b{font-size:12px;font-weight:600;display:block}
.doc-cat .n{font-family:var(--disp);font-size:16px;font-weight:600;color:var(--text);margin-top:2px}
.doc-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}
.doc-ic svg{width:15px;height:15px}
@media(max-width:1080px){.doc-cats{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}}
@media(max-width:760px){.doc-cats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
@media(max-width:1080px){.prof-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.prof-grid{grid-template-columns:1fr}}
.mobile-only{display:none}
@media(max-width:1080px){
  .kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .grid-2,.fiche{grid-template-columns:1fr}
  .disc-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
  .cascade{position:static}
}
/* Tablette / petit écran de bureau : le menu latéral se resserre tout seul
   pour rendre de la place au contenu, sans attendre un clic sur le bouton
   de réduction. */
@media(max-width:1180px) and (min-width:761px){
  :root{--sidebar-w:196px}
  .brand-txt small{display:none}
  .nav a{padding:9px 14px;gap:9px}
}
@media(max-width:760px){
  .side{position:fixed;left:-240px;transition:left .25s;box-shadow:var(--shadow-lg)}
  .side.open{left:0}
  .mobile-only{display:grid}
  .search{display:none}
  .grid-2b{grid-template-columns:1fr}
  .top{padding:0 16px} .view{padding:16px}
  /* Ensure main content uses full width when sidebar is hidden on small screens */
  .main{margin-left:0;width:100%;padding-top:64px}
  .top{left:0;right:0}
  /* When sidebar opens, keep it above content */
  .side{z-index:80}
  .main,.view{z-index:1}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){.dash-load::before,.pa-boot-ring{animation-duration:1.4s!important;animation-name:pa-spin!important;animation-iteration-count:infinite!important;animation-timing-function:linear!important}}

/* ---------- Appels d'offres (AO) & Offres ---------- */
.ao-tiles{display:grid;gap:11px;margin-bottom:6px}
.ao-tile{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:13px 14px;border-top:3px solid var(--ac)}
.ao-tile .n{font-family:var(--disp);font-size:25px;font-weight:600;line-height:1;color:var(--text)}
.ao-tile .l{font-size:10.5px;color:var(--text-2);font-weight:600;margin-top:6px;text-transform:uppercase;letter-spacing:.03em;line-height:1.25}
.ao-sub{font-size:11px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin:16px 0 10px}
.funnel{display:flex;flex-direction:column;gap:8px}
.funnel .fr{display:flex;align-items:center;gap:12px}
.funnel .fr .fl{width:150px;font-size:12.5px;color:var(--text-2);font-weight:500;flex-shrink:0}
.funnel .fr .fbar{flex:1;height:24px;border-radius:6px;background:var(--line-2);overflow:hidden}
.funnel .fr .fbar i{display:block;height:100%;border-radius:6px;transition:width .5s cubic-bezier(.2,.7,.2,1)}
.funnel .fr .fv{width:34px;text-align:right;font-family:var(--disp);font-weight:600;font-size:14px}
@media(max-width:1080px){.ao-tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}}
@media(max-width:600px){.ao-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important}.funnel .fr .fl{width:110px;font-size:11.5px}}

/* ---------- Écran de connexion ---------- */
#auth{display:none}
body.logged-out .side, body.logged-out .main{display:none}
body.logged-out #auth{display:block}
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 0% 0%, #0A2038 0%, var(--ink) 60%);padding:24px}
.auth-card{background:var(--card);border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:900px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden}
.auth-left{padding:40px 42px}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:32px}
.auth-left h2{font-family:var(--disp);font-size:26px;font-weight:600;color:var(--ink)}
.auth-sub{color:var(--text-2);font-size:13.5px;margin:4px 0 24px}
.auth-left .fg label{font-size:12px;font-weight:600;color:var(--text-2)}
.auth-left .fg input{border:1px solid var(--line);border-radius:10px;padding:11px 13px;width:100%;font-size:14px;transition:border .15s,box-shadow .15s}
.auth-left .fg input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.auth-err{display:flex;align-items:center;gap:7px;color:var(--red);font-size:12.5px;font-weight:600;margin-top:12px}
.auth-submit{width:100%;justify-content:center;margin-top:20px;padding:12px}
.auth-note{font-size:11.5px;color:var(--text-3);text-align:center;margin-top:14px}
.auth-right{background:var(--paper);border-left:1px solid var(--line);padding:28px 26px;display:flex;flex-direction:column}
.auth-right-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.auth-right-h span{color:var(--brass);font-weight:600;letter-spacing:.02em;text-transform:none;font-size:11px}
.auth-accounts{display:flex;flex-direction:column;gap:8px;flex:1}
.acc{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px;transition:border-color .12s,transform .12s}
.acc:hover{border-color:var(--brass);transform:translateX(2px)}
.acc-av{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:600;font-size:12px;flex-shrink:0}
.acc-info{flex:1;min-width:0}
.acc-info b{font-size:12.5px;font-weight:600;display:block;color:var(--text)}
.acc-info small{font-size:11px;color:var(--text-3);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc code{font-family:var(--disp);font-size:11px;color:var(--brass);background:var(--brass-soft);padding:2px 7px;border-radius:6px;font-weight:600;white-space:nowrap}
.auth-tip{font-size:11px;color:var(--text-3);margin-top:14px;display:flex;align-items:center;gap:6px}
@media(max-width:720px){.auth-card{grid-template-columns:1fr;max-width:440px}.auth-right{border-left:none;border-top:1px solid var(--line)}}

/* ---------- Actions CRUD ---------- */
.card{position:relative}
.card-del{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--text-3);font-size:15px;line-height:1;opacity:1;transition:opacity .12s,color .12s,background .12s}
.card:hover .card-del{opacity:1}
.card-del:hover{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}
.row-edit{width:28px;height:28px;border-radius:8px;display:inline-grid;place-items:center;background:var(--sky);border:1px solid rgba(0,75,147,0.18);color:var(--blue);margin-right:6px;vertical-align:middle;transition:background .15s,color .15s,border-color .15s}
.row-edit:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.row-edit svg{width:15px;height:15px}
.row-del{width:28px;height:28px;border-radius:8px;display:inline-grid;place-items:center;background:var(--red-soft);border:1px solid rgba(190,70,58,0.22);color:var(--red);vertical-align:middle;transition:background .15s,color .15s,border-color .15s}
.row-del:hover{background:var(--red);color:#fff;border-color:var(--red)}
.row-del svg{width:15px;height:15px}
.data-tools{display:flex;gap:12px;flex-wrap:wrap}
.data-tools .btn svg{width:16px;height:16px}
.btn-danger{background:#fff;border:1px solid var(--red-soft);color:var(--red)}
.btn-danger:hover{background:var(--red-soft)}

.card-win{position:absolute;top:8px;right:34px;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--emerald);opacity:1;transition:opacity .12s,color .12s,background .12s}
.card-win svg{width:13px;height:13px;stroke-width:2.4}
.card:hover .card-win{opacity:1}
.card-win:hover{background:var(--emerald-soft);color:var(--emerald);border-color:var(--emerald-soft)}

/* boutons d'action toujours visibles : on réserve la place à droite du nom */
.card .co{padding-right:50px}
.card-win{box-shadow:0 1px 2px rgba(18,32,41,.06)}
.card-del{box-shadow:0 1px 2px rgba(18,32,41,.06)}
.card-win:hover{background:var(--emerald-soft);border-color:var(--emerald-soft)}

/* ---------- Déplacement des cartes (flèches + glisser-déposer) ---------- */
.card{cursor:grab}
.card.dragging{opacity:.45}
.col.drag-over{background:#DCE3E6}
.col.drag-over .cards{outline:2px dashed var(--brass);outline-offset:2px;border-radius:8px}
.move{display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding-top:8px;border-top:1px solid var(--line-2)}
.move span{font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.mv{width:26px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--text-2);font-size:15px;line-height:1;font-weight:700;display:grid;place-items:center}
.mv:hover:not([disabled]){background:var(--ink);color:#fff;border-color:var(--ink)}
.mv[disabled]{opacity:.3;cursor:not-allowed}

/* ---------- Grille d'habilitation ---------- */
.matrix-wrap{overflow-x:auto}
.matrix{width:100%;border-collapse:collapse;min-width:520px}
.matrix th{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:#fff;font-weight:700;padding:12px 8px;background:var(--blue);border-bottom:2px solid var(--ink)}
.matrix td{padding:9px 8px;border-bottom:1px solid var(--line-2);font-size:12.5px}
.matrix tr:last-child td{border-bottom:none}
.matrix td.modname{font-weight:600;color:var(--ink)}
.matrix tbody tr:nth-child(even){background:#E7EAEE}
.matrix tbody tr:hover{background:#D9E4EE}
.perm{width:16px;height:16px;accent-color:var(--brass);cursor:pointer}
.perm:disabled{cursor:not-allowed;opacity:.55}

/* ---------- Formulaire nouvel utilisateur ---------- */
.usr-form{padding:16px 18px;border-bottom:1px solid var(--line-2);background:#FBFAF6}
.usr-form .frow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.usr-form .fg{display:flex;flex-direction:column;gap:5px}
.usr-form label{font-size:11.5px;font-weight:600;color:var(--text-2)}
.usr-form input,.usr-form select{border:1px solid var(--line);border-radius:9px;padding:9px 11px;width:100%;font-size:13px;background:#fff}
.usr-form input:focus,.usr-form select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.usr-form .actions{display:flex;gap:10px;justify-content:flex-end;align-items:flex-end;height:100%}
@media(max-width:760px){.usr-form .frow{grid-template-columns:1fr}.usr-form .actions{justify-content:flex-start}}

/* ---------- Listes AO / Offres ---------- */
.tlist{display:flex;flex-direction:column;gap:8px}
.titem{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;border-left:3px solid var(--stage)}
.ti-main{flex:1;min-width:0}
.ti-main b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.ti-main small{font-size:11.5px;color:var(--text-3)}
.ti-actions{display:flex;gap:6px;align-items:center}
.tmv,.tdel{width:26px;height:24px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:15px;font-weight:700;display:grid;place-items:center}
.tmv:hover:not([disabled]){background:var(--ink);color:#fff;border-color:var(--ink)}
.tmv[disabled]{opacity:.3;cursor:not-allowed}
.tdel{color:var(--text-3);font-weight:400}
.tdel:hover{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}

/* ---------- Objectifs éditables ---------- */
.obj-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.obj-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.obj-row b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.obj-row small{font-size:11.5px;color:var(--text-3)}
.obj-set{display:flex;align-items:center;gap:7px}
.obj-set label{font-size:11px;color:var(--text-2);font-weight:600}
.obj-set input{width:74px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:13px;font-family:var(--disp);font-weight:600;text-align:right;background:#fff}
.obj-set input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.obj-set span{font-size:12px;color:var(--text-2);min-width:14px}
@media(max-width:760px){.obj-grid{grid-template-columns:1fr}}

/* ---------- Fenêtre modale (détail prospect) ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(18,32,41,.55);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;animation:fadein .15s ease}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.modal-card{background:var(--card);border-radius:16px;box-shadow:0 24px 60px rgba(18,32,41,.3);width:100%;max-width:440px;max-height:88vh;overflow:auto}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line-2)}
.modal-h b{font-size:14px;font-weight:600;color:var(--ink)}
.modal-x{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--text-2);font-size:17px;line-height:1;display:grid;place-items:center}
.modal-x:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.modal-b{padding:16px 18px}
.dl{display:flex;flex-direction:column;gap:1px}
.dl-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 0}
.dl-row span{font-size:12.5px;color:var(--text-2)}
.dl-row b{font-size:13px;font-weight:600;color:var(--ink);text-align:right}
.dl-sep{height:1px;background:var(--line-2);margin:6px 0}
.chip.blk{background:var(--red-soft);color:var(--red);font-weight:600}
.card{cursor:pointer}

/* ---------- Prédiction IA ---------- */
.ai-panel{border:1px solid #F0DDB8;box-shadow:0 2px 10px rgba(181,132,44,.08)}
.ai-panel .panel-h h3{display:flex;align-items:center;gap:8px;color:var(--brassd,#8A6413)}
.ai-panel .panel-h h3 svg{color:var(--brass)}
.ins-list{display:flex;flex-direction:column;gap:2px}
.ins-row{display:flex;align-items:flex-start;gap:9px;padding:9px 2px;font-size:13px;color:var(--text);line-height:1.4}
.ins-row+.ins-row{border-top:1px solid var(--line-2)}
.ins-row svg{color:var(--brass);flex-shrink:0;margin-top:2px}
.risk-list{display:flex;flex-direction:column;gap:8px}
.risk-item{display:flex;align-items:center;gap:14px;padding:11px 13px;background:var(--red-soft);border:1px solid #F0D5D0;border-radius:10px}
.risk-item .ri-main{flex:1;min-width:0}
.risk-item .ri-main b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.risk-item .ri-main small{font-size:11.5px;color:var(--red)}

/* ---------- Importance des variables (modèle) ---------- */
.imp-list{display:flex;flex-direction:column;gap:9px}
.imp-row{display:flex;align-items:center;gap:10px}
.imp-n{width:92px;font-size:12px;color:var(--text-2);flex-shrink:0}
.imp-bar{flex:1;height:16px;background:var(--line-2);border-radius:4px;position:relative;overflow:hidden}
.imp-bar::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--text-3);opacity:.4}
.imp-bar i{position:absolute;top:0;bottom:0;border-radius:3px}
.imp-w{width:44px;text-align:right;font-size:12px;font-weight:600;font-family:var(--disp)}

/* ---------- Bouton email sur alertes + file d'attente ---------- */
.mail-btn{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--brassd,#8A6413);background:var(--brass-soft);border:1px solid #F0DDB8;border-radius:8px;padding:5px 9px;flex-shrink:0;text-decoration:none}
.mail-btn:hover{background:#E9DBBB}
.mail-btn svg{width:13px;height:13px}
.mailq{display:flex;flex-direction:column;gap:8px}
.mailq-it{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:9px}
.mailq-it .mq-main{flex:1;min-width:0}
.mailq-it b{font-size:12.5px;color:var(--ink);display:block}
.mailq-it small{font-size:11px;color:var(--text-3)}
.mailq-it .mq-to{font-size:11.5px;color:var(--text-2)}
.mq-status{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:20px;background:#E7EDF0;color:var(--text-2)}
.mq-status.sent{background:var(--emerald-soft);color:var(--emerald)}

.mail-cfg{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}
@media(max-width:700px){.mail-cfg{flex-direction:column;align-items:stretch}}

/* ---------- Bouton ouvrir document + input fichier ---------- */
.doc-open{width:26px;height:24px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--brassd,#8A6413);display:inline-grid;place-items:center;margin-right:6px;vertical-align:middle}
.doc-open:hover{background:var(--brass-soft);border-color:#F0DDB8}
.doc-open svg{width:13px;height:13px}
.usr-form input[type=file]{border:1px dashed var(--line);border-radius:9px;padding:9px 11px;width:100%;font-size:12.5px;background:#fff;cursor:pointer}

/* ---------- Commercial en évidence sur la carte pipeline ---------- */
.card-owner{display:flex;align-items:center;gap:5px;margin:8px 0 2px;font-size:12px;color:var(--brassd,#8A6413);font-weight:700}
.card-owner svg{width:12px;height:12px;color:var(--brass);flex-shrink:0}
.card .foot{display:flex;align-items:center;justify-content:space-between}

/* ================= Menu latéral réductible ================= */
.side{transition:width .18s ease}
.side-toggle{
  margin-left:auto;width:29px;height:29px;border-radius:9px;flex-shrink:0;
  border:1.5px solid rgba(181,132,44,.85);background:rgba(181,132,44,.32);color:var(--brass-2);
  display:grid;place-items:center;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s;
  box-shadow:0 2px 8px rgba(181,132,44,.15);
}
.side-toggle:hover{background:var(--brass);border-color:var(--brass);color:var(--ink);box-shadow:0 3px 12px rgba(181,132,44,.35);transform:translateY(-1px)}
.side-toggle:active{transform:translateY(0) scale(.94)}
.side-toggle svg{width:16px;height:16px;stroke-width:3}

/* --- État réduit : icônes seules --- */
.side.collapsed{width:var(--sidebar-collapsed);flex-basis:var(--sidebar-collapsed)}
.side.collapsed + .main{margin-left:var(--sidebar-collapsed);width:calc(100% - var(--sidebar-collapsed))}
.side.collapsed + .main .top{left:var(--sidebar-collapsed)}
.side.collapsed .brand{padding:22px 0 18px;justify-content:center;gap:0;position:relative}
.side.collapsed .brand-txt{display:none}
.side.collapsed .side-toggle{
  position:absolute;bottom:-11px;right:8px;margin:0;
  background:var(--ink-3);border-color:rgba(255,255,255,.18);z-index:2;
}
.side.collapsed .side-toggle svg{transform:rotate(180deg)}
.side.collapsed .nav{padding:14px 8px}
.side.collapsed .nav-lbl{
  font-size:0;padding:12px 0 6px;margin:0 6px;
  border-top:1px solid rgba(255,255,255,.07);letter-spacing:0;
  pointer-events:none;cursor:default;
}
.side.collapsed .nav-chev{display:none}
.side.collapsed .nav-group.is-closed .nav-list{grid-template-rows:1fr}
.side.collapsed .nav a{justify-content:center;padding:10px 0;gap:0}
.side.collapsed .nav a span:not(.badge){display:none}
.side.collapsed .nav a .badge{
  position:absolute;top:3px;right:5px;margin:0;padding:0 4px;min-width:15px;
  font-size:9.5px;line-height:15px;text-align:center;
}
.side.collapsed .nav a.on::before{left:-8px}
.side.collapsed .side-foot{padding:10px 8px}
.side.collapsed .usr{justify-content:center;padding:4px 0}
.side.collapsed .usr div:not(.av){display:none}

/* --- Infobulle au survol quand le menu est réduit --- */
.side.collapsed .nav a::after{
  content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;
  transform:translateY(-50%);background:var(--ink-3);color:#fff;font-size:12px;font-weight:500;
  padding:5px 10px;border-radius:7px;white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity .12s;z-index:60;box-shadow:0 4px 14px rgba(0,0,0,.3);
}
.side.collapsed .nav a:hover::after{opacity:1}
@media(max-width:760px){.side.collapsed{width:236px}.side .side-toggle{display:none}}

/* ---------- Rendez-vous (agenda) ---------- */
.rdv-list{display:flex;flex-direction:column;gap:8px}
.rdv-it{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;border-left:3px solid var(--stage)}
.rdv-ty{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:20px;flex-shrink:0;min-width:58px;text-align:center}
.rdv-main{flex:1;min-width:0}
.rdv-main b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.rdv-main small{font-size:11.5px;color:var(--text-3)}
.rdv-act{display:flex;gap:6px;align-items:center;flex-shrink:0}
.btn-mini{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2)}
.btn-mini:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-mini.done{color:var(--emerald);border-color:#CFE5D9}
.btn-mini.done:hover{background:var(--emerald);color:#fff;border-color:var(--emerald)}
.btn-mini.plan{color:var(--brassd,#8A6413);border-color:#F0DDB8}
.btn-mini.plan:hover{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.btn-mini.del{color:var(--text-3);padding:5px 7px}
.btn-mini.del:hover{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}
.modal-b textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;font-family:inherit;resize:vertical;background:#fff}
.modal-b textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.modal-b label{font-size:11.5px;font-weight:600;color:var(--text-2);display:block;margin-bottom:5px}
.modal-b input[type=date],.modal-b input[type=time]{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px;background:#fff}
.mois-sel{border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:12px;font-weight:600;color:var(--ink);background:#fff;font-family:inherit}
.mois-sel:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}

/* ============================ Cotation (devis + évaluation) ============================ */
.cot-card{max-width:600px}
.cot-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.cot-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px}
.cot-tab svg{width:15px;height:15px}
.cot-tab.active{color:var(--ink);border-bottom-color:var(--brass)}
.cot-help{font-size:12px;color:var(--text-2);margin-bottom:10px}

/* Lignes de devis */
.cot-line{display:grid;grid-template-columns:1fr 62px 116px 118px 30px;gap:8px;align-items:center;margin-bottom:7px}
.cot-line input{border:1px solid var(--line);border-radius:8px;padding:8px 9px;font-size:13px;background:#fff;width:100%}
.cot-line input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.cot-line .cl-qte,.cot-line .cl-pu{text-align:right}
.cot-line .cl-sub{font-size:12px;font-weight:600;color:var(--ink);text-align:right;white-space:nowrap}
.cot-add{margin:4px 0 12px}
.cot-total{display:flex;justify-content:space-between;align-items:center;background:var(--paper);border-radius:10px;padding:11px 14px;margin-bottom:14px}
.cot-total span{font-size:12.5px;color:var(--text-2)}
.cot-total b{font-size:16px;color:var(--ink)}
.cot-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cot-notes{border:1px solid var(--line);border-radius:9px;padding:9px 11px;width:100%;font-size:13px;resize:vertical}
.cot-notes:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}

/* Évaluation BANT */
.cot-crit{padding:10px 0;border-bottom:1px solid var(--line)}
.cot-crit-h{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.cot-crit-h b{font-size:13.5px;color:var(--ink)}
.cot-crit-h small{font-size:11.5px;color:var(--text-2)}
.cot-crit-lv{display:flex;gap:6px}
.cot-crit-lv .lv{flex:1;padding:7px 0;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:600;color:var(--text-2)}
.cot-crit-lv .lv.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cot-score{display:flex;align-items:center;gap:16px;margin-top:16px}
.cot-score-ring{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--paper) 0deg,var(--paper) 0)}
.cot-score-ring b{width:56px;height:56px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--ink)}
.cot-score-txt{display:flex;flex-direction:column}
.cot-score-lbl{font-size:15px;font-weight:700}
.cot-score-txt small{font-size:11.5px;color:var(--text-2)}

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

/* Badge de score sur la carte pipeline */
.chip.cot-badge{font-weight:600}
.chip.cot-badge.hot{background:#DCEFE4;color:#1F7A4D}
.chip.cot-badge.warm{background:var(--brass-soft);color:#7A5A17}
.chip.cot-badge.cold{background:var(--paper);color:var(--text-2)}

/* ============================ Apporteurs d'affaires ============================ */
.dl-btns{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.dl-btns .btn{width:100%;justify-content:center}

.appo .cards-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
.appo .stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.appo .stat-card span{font-size:12px;color:var(--text-2);font-weight:500}
.appo .stat-card b{font-size:22px;font-family:var(--disp,inherit);color:var(--ink)}
.appo .panel{margin-bottom:16px}
.appo .panel-h small{font-size:11.5px;color:var(--text-2);font-weight:500}
.appo table td:first-child,.appo table th:first-child{padding-left:18px}
.appo tfoot td{background:#F6F8F9;font-weight:700}

.appo-empty{color:var(--text-3,#9AA6AC);font-size:12.5px;text-align:center;padding:14px}
.appo-status{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer}
.appo-status.paid{color:var(--emerald);border-color:#CFE5D9;background:#F1F8F4}
.appo-status.due{color:#8A6413;border-color:#F0DDB8;background:var(--brass-soft)}
.appo-status:hover{filter:brightness(.98)}

.appo-chips{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px}
.appo-chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:5px 6px 5px 12px;font-size:12.5px;font-weight:500;color:var(--text)}
.appo-del{width:18px;height:18px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--text-3);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.appo-del:hover{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}
.appo-add{display:flex;gap:8px;padding:0 18px 16px}
.appo-input{flex:1;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff}
.appo-input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}

.appo-edit .fg{margin-bottom:12px}

/* ============================ Multi-marques, formulaire affaire, listes ============================ */
.multi-brands{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.multi-brands .mb{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--line);border-radius:7px;padding:5px 11px 5px 8px;font-size:12px;line-height:1.2;background:#fff;cursor:pointer;user-select:none;transition:background .15s,border-color .15s}
.multi-brands .mb:hover{border-color:var(--brass);background:#FFFDF8}
.multi-brands .mb input{accent-color:var(--blue);cursor:pointer;margin:0;width:13px;height:13px;flex:none}
.multi-brands .mb span{white-space:nowrap}
.multi-brands .mb:has(input:checked){background:var(--sky);border-color:var(--blue);color:var(--ink);font-weight:600}

.with-add{display:flex;gap:6px;align-items:stretch}
.with-add select{flex:1}
.btn-add{width:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:17px;line-height:1;color:var(--blue);font-weight:600;cursor:pointer}
.btn-add:hover{background:var(--sky);border-color:var(--blue)}

/* Modale élargie (formulaire affaire) */
.modal-card.modal-wide{max-width:600px}
.oppform .fg{margin-bottom:12px}
.oppform .frow{display:flex;gap:12px;flex-wrap:wrap}
.oppform .frow .fg{flex:1;min-width:150px}
.oppform .frow.f3 .fg{min-width:120px}
.oppform-ft{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}

/* Barre du pipeline */
.pipe-bar{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.pipe-bar .btn{white-space:nowrap}

/* Panneau de gestion des listes (Administration) */
.lists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.list-box{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--card)}
.list-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.list-h b{font-size:13.5px;color:var(--ink)}
.list-n{font-size:11px;color:var(--text-2);background:var(--paper);border-radius:10px;padding:2px 8px}
.list-vals{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:11px}
.lv{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;background:var(--paper);color:var(--text-2);border-radius:14px;padding:4px 10px}
.lv.custom{background:var(--sky);color:var(--blue);font-weight:600;padding-right:5px}
.lv-del{width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--text-3);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.lv-del:hover{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}
.list-add{display:flex;gap:7px}
.list-input{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;background:#fff}
.list-input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}

/* Fenêtre « Planifier le rendez-vous » — mêmes champs que l'ajout */
.planform .frow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.planform .fg label{display:block;font-size:12px;color:var(--text-2);font-weight:600;margin-bottom:5px}
.planform .fg input,.planform .fg select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff}
.planform .fg input:focus,.planform .fg select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}

/* Note d'habilitation dans la fiche d'une affaire */
.dl-note{margin-top:10px;font-size:11.5px;color:var(--text-3,#9AA6AC);text-align:center;font-style:italic;line-height:1.5}

/* ============================ Pôle apporteurs : dépôt & examen ============================ */
.depot .cards-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:14px 0 16px}
.depot .stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.depot .stat-card span{font-size:12px;color:var(--text-2);font-weight:500}
.depot .stat-card b{font-size:22px;color:var(--ink)}
.depot .panel{margin-bottom:16px}
.depot-form{padding:16px 18px}
.depot-form .frow{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.depot-form .frow.f1{grid-template-columns:1fr}
.depot-form label{display:block;font-size:12px;color:var(--text-2);font-weight:600;margin-bottom:5px}
.depot-form input,.depot-form select,.depot-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff;font-family:inherit}
.depot-form input:focus,.depot-form select:focus,.depot-form textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.depot-form .req{color:var(--brass)}
.depot-form input:disabled{background:var(--paper);color:var(--text-2)}
.dep-sec{font-size:13px;font-weight:700;color:var(--ink);margin:22px 0 13px;padding-top:16px;border-top:1px solid var(--line-2)}
.dep-sec:first-child{margin-top:0;padding-top:0;border-top:none}
.dep-engag{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.dep-chk{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--text-2);cursor:pointer;line-height:1.5}
.dep-chk input{width:auto;flex-shrink:0;margin-top:2px;accent-color:var(--brass)}
.depot-ft{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:4px}
.depot-ft .hint{font-size:12px;color:var(--text-2)}
.d-err{color:var(--red);font-size:12.5px;font-weight:600;margin-bottom:10px}

.sub-list{padding:6px 0}
.sub-it{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line-2)}
.sub-it:last-child{border-bottom:none}
.sub-main{flex:1;display:flex;flex-direction:column;gap:2px}
.sub-main b{font-size:13.5px;color:var(--ink)}
.sub-main small{font-size:11.5px;color:var(--text-2)}
.sub-motif{color:var(--red)!important}
.sub-empty{padding:20px;text-align:center;color:var(--text-3,#9AA6AC);font-size:12.5px}

.sub-row{display:flex;align-items:flex-start;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line-2)}
.sub-row:last-child{border-bottom:none}
.sub-row.conflit{background:#FFF8F7}
.sub-row.done{opacity:.75}
.sub-info{flex:1;display:flex;flex-direction:column;gap:3px}
.sub-info b{font-size:13.5px;color:var(--ink)}
.sub-info small{font-size:11.5px;color:var(--text-2)}
.sub-besoin{font-style:italic}
.sub-acts{display:flex;gap:8px;flex-shrink:0}
.elig{display:inline-flex;align-items:center;font-size:11px;font-weight:600;border-radius:12px;padding:3px 9px;margin-top:4px;width:fit-content}
.elig.ok{background:var(--emerald-soft);color:var(--emerald)}
.elig.ko{background:var(--red-soft);color:var(--red)}
.appo-subs .panel-h small{font-size:11.5px;color:var(--text-2);font-weight:500}

/* ============================ Pipeline : cartes compactes ============================ */
.card{padding:10px 11px}
.card .co{font-size:12.5px}
.card .meta{font-size:11px;margin-top:2px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .chips{margin-top:7px;gap:4px}
.card .chip{font-size:9.5px;padding:2px 6px}
.card .chip.brand.more{background:var(--sky);color:var(--blue);font-weight:600}
.card .foot{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid var(--line-2)}
.card .foot .val{flex:1;font-size:12.5px}
.card .foot .prob{font-size:10.5px}
.card .foot .mv{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.card .foot .mv:hover:not([disabled]){background:var(--sky);border-color:var(--blue);color:var(--blue)}
.card .foot .mv[disabled]{opacity:.3;cursor:default}
.card-owner{display:none}
.col{width:250px}

/* Cartes de types cliquables (gestion documentaire) */
.doc-cat{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s}
.doc-cat:hover{border-color:var(--blue);transform:translateY(-1px)}
.doc-cat:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.doc-cat.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--sky)}
.doc-cat.on b{color:var(--blue)}
#doc-filt{cursor:pointer}
#doc-filt:hover{border-color:var(--blue);color:var(--blue)}
/* Champ fichier dans la fenêtre de modification */
.planform .hint-sm{font-weight:400;color:var(--text-3,#9AA6AC);font-size:11px}
.e-fileinfo{font-size:11.5px;color:var(--text-3,#9AA6AC);margin-top:5px}
.planform input[type=file]{padding:7px 9px}

/* ============================ Fenêtre d'examen d'une affaire déposée ============================ */
.valform .frow{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.valform .frow.f1{grid-template-columns:1fr}
.valform label{display:block;font-size:12px;color:var(--text-2);font-weight:600;margin-bottom:5px}
.valform input,.valform select,.valform textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff;font-family:inherit}
.valform input:focus,.valform select:focus,.valform textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.valform .hint-sm{font-weight:400;color:var(--brass);font-size:11px}

.val-rec{background:var(--paper);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.val-rec-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.val-rec-h b{font-size:14.5px;color:var(--ink)}
.val-rec-ap{font-size:11.5px;color:var(--text-2)}
.val-rec-l{font-size:11.5px;color:var(--text-2);margin-top:3px}
.val-rec-b{font-size:11.5px;color:var(--text-2);font-style:italic;margin-top:5px}

.val-elig{border-radius:10px;padding:10px 13px;margin-bottom:14px;font-size:12px;font-weight:600}
.val-elig.ok{background:var(--emerald-soft);color:var(--emerald)}
.val-elig.ko{background:var(--red-soft);color:var(--red);display:flex;flex-direction:column;gap:6px}
.val-elig.ko span{font-weight:500;line-height:1.5}
.val-derog{display:flex!important;align-items:center;gap:8px;margin:2px 0 0!important;font-size:12px!important;color:var(--red)!important;cursor:pointer}
.val-derog input{width:auto!important;accent-color:var(--red);margin:0}

.val-preview{display:flex;align-items:center;justify-content:space-between;background:var(--sky);border-radius:10px;padding:11px 14px;margin-top:2px}
.val-preview span{font-size:12.5px;color:var(--blue);font-weight:600}
.val-preview b{font-size:16px;color:var(--ink)}
.val-note{font-size:11px;color:var(--text-3,#9AA6AC);font-style:italic;margin-top:7px;line-height:1.5}
.val-ft{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.appo-fix{margin-left:7px}

/* Champ combiné : liste déroulante avec saisie libre possible */
.combo{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff;font-family:inherit}
.combo:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.depot-form .combo,.f-form .combo{width:100%}

/* ============================ Suivi des cotations ============================ */
.cot-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:14px}
.cot-stats .stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.cot-stats .stat-card span{font-size:12px;color:var(--text-2);font-weight:500}
.cot-stats .stat-card b{font-size:21px;color:var(--ink)}

.cot-co{display:flex;flex-direction:column;gap:2px}
.cot-co b{font-size:13px;color:var(--ink)}
.cot-co small{font-size:11px;color:var(--text-2)}
.cot-l{display:block;font-size:10.5px;color:var(--text-3,#9AA6AC);font-weight:400}
.cot-noscore{color:var(--text-3,#9AA6AC)}
.cot-urgent{color:var(--red);font-weight:600}

.cot-st{display:inline-flex;align-items:center;font-size:11px;font-weight:600;border-radius:12px;padding:3px 10px;white-space:nowrap}
.st-etablie{background:var(--paper);color:var(--text-2)}
.st-envoyee{background:var(--brass-soft);color:#8A6413}
.st-acceptee{background:var(--emerald-soft);color:var(--emerald)}
.st-refusee{background:var(--red-soft);color:var(--red)}
.st-expiree{background:#EEE3E1;color:#8A4B42}

.cot-filt{cursor:pointer}
.cot-filt:hover{border-color:var(--blue);color:var(--blue)}
.cot-filt.on{background:var(--sky);border-color:var(--blue);color:var(--blue);font-weight:600}

.cot-choices{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.cot-choice{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 13px;cursor:pointer;transition:.15s}
.cot-choice:hover{border-color:var(--brass)}
.cot-choice.on{background:var(--sky);border-color:var(--blue)}
.cot-choice input{accent-color:var(--blue);margin-top:2px;flex:none}
.cot-choice span{display:flex;flex-direction:column;gap:2px}
.cot-choice b{font-size:13px;color:var(--ink)}
.cot-choice small{font-size:11.5px;color:var(--text-2)}

/* ============================ Analyses (reporting) ============================ */
.fn-head,.fn-row{display:grid;grid-template-columns:130px 1fr 76px 66px;gap:12px;align-items:center;padding:7px 18px}
.fn-head{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);font-weight:700;border-bottom:1px solid var(--line-2);padding-bottom:9px}
.fn-row{border-bottom:1px solid var(--line-2)}
.fn-row:last-of-type{border-bottom:none}
.fn-k{font-size:12.5px;font-weight:600;color:var(--ink)}
.fn-bar{position:relative;background:var(--paper);border-radius:6px;height:24px;display:flex;align-items:center}
.fn-bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--blue),#3A78C0);border-radius:6px}
.fn-bar span{position:relative;padding-left:9px;font-size:11.5px;font-weight:700;color:#fff;mix-blend-mode:difference}
.fn-p,.fn-l{font-size:12px;text-align:right;color:var(--text-2)}
.fn-warn{color:var(--red)}
.fn-ok{color:var(--emerald)}
.fn-note{display:flex;align-items:flex-start;gap:7px;margin:12px 18px 4px;padding:9px 12px;background:var(--sky);border-radius:9px;font-size:11.5px;color:var(--blue);line-height:1.55}
.fn-note svg{flex:none;margin-top:1px}

.kpi-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 18px;border-bottom:1px solid var(--line-2)}
.kpi-line:last-child{border-bottom:none}
.kpi-line span{font-size:12.5px;color:var(--text-2)}
.kpi-line b{font-size:13.5px;color:var(--ink);white-space:nowrap}

.pv-chart{display:flex;align-items:flex-end;gap:18px;padding:18px 18px 6px;height:180px}
.pv-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%}
.pv-bars{flex:1;display:flex;align-items:flex-end;gap:5px;width:100%;justify-content:center}
.pv-b{width:26px;border-radius:5px 5px 0 0;min-height:2px}
.pv-b.brut{background:var(--sky)}
.pv-b.pond{background:var(--blue)}
.pv-lbl{font-size:11px;color:var(--text-2);font-weight:600}
.pv-val{font-size:11.5px;color:var(--ink);font-weight:700}
.pv-leg{display:flex;align-items:center;gap:6px;padding:4px 18px 14px;font-size:11px;color:var(--text-2)}
.pv-leg i{display:inline-block;width:13px;height:9px;border-radius:3px}

/* ============================ Tableau de bord décisionnel ============================ */
.dash-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin:14px 0 16px}
.da{display:flex;align-items:flex-start;gap:11px;background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:12px;padding:12px 14px;box-shadow:var(--shadow)}
.da[data-go]{cursor:pointer;transition:.15s}
.da[data-go]:hover{border-color:var(--blue);transform:translateY(-1px)}
.da.critique{border-left-color:var(--red)}
.da.attention{border-left-color:var(--brass)}
.da.ok{border-left-color:var(--emerald)}
.da-ic{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none}
.da.critique .da-ic{background:var(--red-soft);color:var(--red)}
.da.attention .da-ic{background:var(--brass-soft);color:#8A6413}
.da.ok .da-ic{background:var(--emerald-soft);color:var(--emerald)}
.da-bd{flex:1;min-width:0}
.da-bd b{display:block;font-size:12.5px;color:var(--ink);margin-bottom:2px}
.da-bd p{font-size:11.5px;color:var(--text-2);line-height:1.5}
.da-go{color:var(--text-3,#9AA6AC);font-size:16px;flex:none}

.dash-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.dash-bar .sp{flex:1}
.dash-tabs{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:4px;gap:2px;box-shadow:inset 0 1px 2px rgba(12,24,34,.04)}
/* Direction générale : un seul chapitre affiché à la fois. Les sept blocs
 * restent dans le document — bascule instantanée, sans rechargement de données,
 * et l'impression de la note continue de tout produire. */
/* Point de situation vocal à la connexion */
#pa-brief{position:fixed;right:18px;bottom:18px;z-index:900;max-width:min(92vw,430px);
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass);
  border-radius:12px;box-shadow:0 12px 34px rgba(18,32,41,.18);
  padding:14px 14px 12px;display:flex;gap:12px;align-items:flex-start;
  animation:fade .3s ease;transition:opacity .5s ease}
#pa-brief.discret{opacity:.55}
#pa-brief:hover{opacity:1}
.pa-brief-txt{font-size:13.5px;line-height:1.5;color:var(--ink);flex:1}
.pa-brief-act{display:flex;flex-direction:column;gap:5px}
.pa-brief-act button{width:26px;height:26px;border:0;background:var(--paper);border-radius:7px;
  cursor:pointer;font-size:13px;line-height:1}
.pa-brief-act button:hover{background:var(--brass-soft)}
@media(max-width:640px){#pa-brief{left:12px;right:12px;max-width:none;
  bottom:calc(12px + env(safe-area-inset-bottom))}}
.ao-sec{display:none}
.ao-sec.on{display:block;animation:fade .25s ease}
.ag-sec{display:none}
.ag-sec.on{display:block;animation:fade .25s ease}
.adm-sec{display:none}
.adm-sec.on{display:block;animation:fade .25s ease}
@media print{.adm-sec{display:block!important}}
.dg-sec{display:none}
.dg-sec.on{display:block;animation:fade .25s ease}
@media print{.dg-sec{display:block!important}}
.dash-tabs button{padding:9px 18px;border-radius:9px;font-size:12.5px;font-weight:700;letter-spacing:.01em;color:var(--text-2);background:transparent;border:none;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap}
.dash-tabs button:hover:not(.on){color:var(--blue);background:rgba(0,75,147,.06)}
.dash-tabs button.on{background:var(--blue);color:#fff;box-shadow:0 4px 12px -4px rgba(0,75,147,.55)}
/* Onglets de la page Administration : each tab gets its own outline and adapts to small screens */
.adm-som{position:sticky;top:64px;z-index:40;display:flex;width:100%;flex-wrap:wrap;overflow-x:auto;scrollbar-width:none;container-type:inline-size;container-name:admtabs;
  background:transparent;border:none;border-radius:12px;padding:6px 0;gap:8px}
.adm-som::-webkit-scrollbar{display:none}
.adm-som button{padding:8px 14px;font-size:12.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--text-2);transition:all .15s}
.adm-som button:hover:not(.on){color:var(--blue);background:rgba(0,75,147,.06);border-color:rgba(0,75,147,.08)}
.adm-som button.on{background:var(--blue);color:#fff;box-shadow:0 4px 12px -4px rgba(0,75,147,.35);border-color:var(--blue)}
@container admtabs (max-width:760px){.adm-som button{padding:7px 10px;font-size:11.5px}.adm-som{gap:6px}}
@container admtabs (max-width:600px){.adm-som button{padding:6px 9px;font-size:10.5px}.adm-som{padding:4px;gap:5px}}
@container admtabs (max-width:460px){.adm-som button{padding:5px 8px;font-size:9.5px;letter-spacing:0}}
@media(max-width:640px){.adm-som{top:64px;margin-bottom:10px!important}}
.dash-load{padding:40px;text-align:center;color:var(--text-3,#9AA6AC);font-size:13px}
.dash-vide{padding:18px;text-align:center;color:var(--text-3,#9AA6AC);font-size:12.5px}

.kpis-5{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media(max-width:1280px){.kpis-5{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.kpi .track{margin-top:9px}

.bars-obj{position:relative;padding-top:6px}
.obj-line{position:absolute;left:18px;right:18px;border-top:2px dashed var(--brass);z-index:2;pointer-events:none}
.obj-line span{position:absolute;right:0;top:-16px;font-size:10px;font-weight:700;color:var(--brass);background:var(--card);padding:0 5px}
.bval{font-size:10.5px;color:var(--text-2);font-weight:700;margin-top:4px}
.bars .fill.ok{background:var(--emerald)}

.rk-pos{width:22px;height:22px;border-radius:50%;background:var(--paper);color:var(--text-2);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
tr:first-child .rk-pos{background:var(--brass-soft);color:#8A6413}
.ev-up{color:var(--emerald);font-weight:600}
.ev-dn{color:var(--red);font-weight:600}
tr.goulot{background:#FFF8F7}

.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
@media(max-width:1100px){.grid-3{grid-template-columns:1fr}}
.pv-big{font-size:30px;font-weight:700;color:var(--ink);padding:14px 18px 6px}
.pv-big small{font-size:13px;color:var(--text-2);font-weight:500}
.conf-b{display:flex;align-items:center;gap:20px;padding:18px}
.conf-ring{width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.conf-ring b{width:70px;height:70px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--ink)}
.conf-txt b{display:block;font-size:14.5px;color:var(--ink);margin-bottom:4px}
.conf-txt p{font-size:12px;color:var(--text-2);line-height:1.6;max-width:640px}

@media print{
  .sidebar,.topbar,.dash-bar,.da-go{display:none!important}
  .dash-body{page-break-inside:auto}
  .panel{break-inside:avoid;box-shadow:none;border:1px solid #ccc}
}
.tgt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px}
.tgt-warn{margin-top:10px;padding:9px 12px;background:var(--brass-soft);color:#8A6413;border-radius:9px;font-size:12px;line-height:1.5}

/* ============================ Espace Responsable Reporting ============================ */
.rep-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.flt-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:16px;box-shadow:var(--shadow)}
.flt-bar .sp{flex:1}
.flt-lbl{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--text-3,#9AA6AC);text-transform:uppercase;letter-spacing:.5px}
.flt{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;background:#fff;color:var(--ink);max-width:210px}
.flt:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.flt-act{font-size:11.5px;color:var(--blue);font-weight:600}

/* Qualité des données */
.qa-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}
.qa-dot.critique{background:var(--red)}
.qa-dot.attention{background:var(--brass)}
.qa-dot.mineur{background:var(--text-3,#9AA6AC)}
.qa-aide{font-size:12px;color:var(--text-2);line-height:1.6;padding:0 4px}
.qa-det{color:var(--text-2);font-size:12px}
.qa-grp table{margin-top:4px}

/* Faits marquants */
.fait{display:flex;gap:11px;padding:11px 4px;border-bottom:1px solid var(--line-2)}
.fait:last-child{border-bottom:none}
.fait-p{width:4px;border-radius:3px;flex:none}
.fait.ok .fait-p{background:var(--emerald)}
.fait.ko .fait-p{background:var(--red)}
.fait.nt .fait-p{background:var(--brass)}
.fait b{display:block;font-size:13px;color:var(--ink);margin-bottom:2px}
.fait p{font-size:12px;color:var(--text-2);line-height:1.55}

/* Rapport */
.rpt-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;padding:4px}
.rpt-k{background:var(--paper);border-radius:10px;padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.rpt-k span{font-size:11.5px;color:var(--text-2);font-weight:500}
.rpt-k b{font-size:22px;color:var(--ink)}
.rpt-k small{font-size:11px;color:var(--text-3,#9AA6AC)}
.rpt-com{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;font-family:inherit;line-height:1.65;resize:vertical;background:#fff}
.rpt-com:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.rpt-ft{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:11px;flex-wrap:wrap}
.rpt-ft .hint,.rpt-exp .hint{font-size:11.5px;color:var(--text-3,#9AA6AC)}
.rpt-exp{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:4px}
.fn-note.alerte{background:var(--red-soft);color:var(--red)}

/* ============================ Synthèse exécutive ============================ */
.sx{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}
.sx-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.sx-h b{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink)}
.sx-h span{font-size:11px;color:var(--text-3,#9AA6AC)}
.sx-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line-2)}
@media(max-width:1240px){.sx-g{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
@media(max-width:820px){.sx-g{grid-template-columns:1fr}}
.sx-c{background:var(--card);padding:13px 15px;display:flex;flex-direction:column;gap:5px;border-top:3px solid transparent}
.sx-c.ok{border-top-color:var(--emerald)}
.sx-c.nt{border-top-color:var(--brass)}
.sx-c.ko{border-top-color:var(--red)}
.sx-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);font-weight:700}
.sx-v{font-size:16px;font-weight:700;color:var(--ink);line-height:1.25}
.sx-t{font-size:11.5px;color:var(--text-2);line-height:1.5}

/* ============================ Recommandations ============================ */
.reco{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;margin-top:14px}
.reco-c{background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.reco-c.p3{border-left-color:var(--red)}
.reco-c.p2{border-left-color:var(--brass)}
.reco-c.p1{border-left-color:var(--text-3,#9AA6AC)}
.reco-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.reco-p{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.reco-c.p3 .reco-p{color:var(--red)}
.reco-c.p2 .reco-p{color:#8A6413}
.reco-c.p1 .reco-p{color:var(--text-3,#9AA6AC)}
.reco-c b{display:block;font-size:14px;color:var(--ink);margin-bottom:5px}
.reco-c p{font-size:12px;color:var(--text-2);line-height:1.6}
.reco-d{margin:9px 0 0;padding-left:16px}
.reco-d li{font-size:11.5px;color:var(--text-2);line-height:1.7}

/* ============================ Priorisation des anomalies ============================ */
.qa-rang{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;font-size:11px;font-weight:700;margin-right:9px;color:#fff}
.qa-rang.haut{background:var(--red)}
.qa-rang.moyen{background:var(--brass)}
.qa-rang.bas{background:var(--text-3,#9AA6AC)}
.qa-imp{display:flex;align-items:center;gap:11px;padding:0 4px 9px;flex-wrap:wrap}
.qa-imp .track{flex:1;min-width:110px}
.qa-niv{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.qa-niv.haut{color:var(--red)}
.qa-niv.moyen{color:#8A6413}
.qa-niv.bas{color:var(--text-3,#9AA6AC)}
.qa-score{font-size:11px;color:var(--text-3,#9AA6AC);white-space:nowrap}

/* ============================ Historique des rapports ============================ */
.rpt-ex{font-size:11.5px;color:var(--text-2);max-width:280px}
.arc-com{margin-top:14px;background:var(--paper);border-radius:10px;padding:12px 14px}
.arc-com b{display:block;font-size:12px;color:var(--ink);margin-bottom:5px}
.arc-com p{font-size:12px;color:var(--text-2);line-height:1.65;white-space:pre-wrap}

/* ============================ Cockpit de pilotage ============================ */
.cp-situ{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--line-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);margin-top:10px}
@media(max-width:1280px){.cp-situ{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
@media(max-width:760px){.cp-situ{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
.cp-k{background:var(--card);padding:16px 15px 12px;display:flex;flex-direction:column;gap:4px;position:relative;transition:background .15s}
.cp-k::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--kc,var(--line))}
.cp-k:hover{background:var(--paper)}
.cp-kl{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);font-weight:700}
.cp-kv{font-family:var(--disp);font-size:27px;font-weight:800;color:var(--ink);line-height:1.1;margin-top:2px}
.cp-kv small{font-size:12px;color:var(--text-2);font-weight:500}
.cp-ks{font-size:11px;color:var(--text-2);line-height:1.45}
.cp-k .track{margin-top:6px}
.cp-k.ok .cp-kv{color:var(--emerald)}
.cp-k.ko .cp-kv{color:var(--red)}
.cp-k.nt .cp-kv{color:#8A6413}

/* Décisions prioritaires */
.cp-dec .panel-b{padding:6px 0}
.cp-d{display:flex;align-items:flex-start;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line-2);border-left:3px solid transparent}
.cp-d:last-child{border-bottom:none}
.cp-d.u3{border-left-color:var(--red);background:#FFFBFA}
.cp-d.u2{border-left-color:var(--brass)}
.cp-d.u1{border-left-color:var(--line)}
.cp-di{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--paper);color:var(--text-2)}
.cp-d.u3 .cp-di{background:var(--red-soft);color:var(--red)}
.cp-d.u2 .cp-di{background:var(--brass-soft);color:#8A6413}
.cp-db{flex:1;min-width:0}
.cp-dh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:3px}
.cp-dh b{font-size:13.5px;color:var(--ink)}
.cp-dimp{font-size:11px;font-weight:700;color:var(--blue);background:var(--sky);border-radius:10px;padding:2px 9px;white-space:nowrap}
.cp-db p{font-size:12px;color:var(--text-2);line-height:1.55}
.cp-da{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--emerald)}

/* Équipe */
.cp-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.cp-flag{font-size:9.5px;font-weight:700;border-radius:9px;padding:2px 7px;white-space:nowrap}
.cp-flag.ok{background:var(--emerald-soft);color:var(--emerald)}
.cp-flag.ko{background:var(--red-soft);color:var(--red)}
.cp-st{display:inline-flex;font-size:10.5px;font-weight:700;border-radius:11px;padding:3px 9px;white-space:nowrap}
.cp-st.ok{background:var(--emerald-soft);color:var(--emerald)}
.cp-st.nt{background:var(--brass-soft);color:#8A6413}
.cp-st.ko{background:var(--red-soft);color:var(--red)}
.cp-act{font-size:11.5px;color:var(--text-2);max-width:230px;line-height:1.5}
tr.cp-alerte{background:#FFFBFA}
tr.cp-moteur{background:#F7FCF9}
tr.cp-risque{background:#FFFBFA}
.cp-msg{margin:10px 18px 4px;padding:9px 12px;border-radius:9px;font-size:11.5px;line-height:1.55}
.cp-msg.ok{background:var(--emerald-soft);color:var(--emerald)}
.cp-msg.nt{background:var(--brass-soft);color:#8A6413}
.cp-msg.ko{background:var(--red-soft);color:var(--red)}

/* ============================ Cockpit — agenda, actions, risques, tendances, journal ============================ */
.ag-it{display:flex;align-items:flex-start;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-2)}
.ag-it:last-child{border-bottom:none}
.ag-it.proche{background:#FFFCF6}
.ag-ic{width:28px;height:28px;border-radius:8px;background:var(--paper);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex:none}
.ag-it.proche .ag-ic{background:var(--brass-soft);color:#8A6413}
.ag-bd{flex:1;min-width:0}
.ag-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.ag-h b{font-size:13px;color:var(--ink)}
.ag-bd p{font-size:11.5px;color:var(--text-2);line-height:1.55}
.ag-bd small{font-size:11px;color:var(--text-3,#9AA6AC)}
.ag-j{font-size:10.5px;font-weight:700;border-radius:10px;padding:2px 9px;background:var(--paper);color:var(--text-2);white-space:nowrap}
.ag-j.urgent{background:var(--brass-soft);color:#8A6413}
.ag-j.retard{background:var(--red-soft);color:var(--red)}

tr.pa-fini{opacity:.6}
.rk-dots{display:inline-flex;gap:3px}
.rk-dots i{width:9px;height:9px;border-radius:2px;background:var(--line);display:block}
.rk-dots i.on{background:var(--brass)}
tr.cp-risque .rk-dots i.on{background:var(--red)}

.spark{display:flex;align-items:flex-end;gap:3px;height:34px;min-width:110px}
.spark i{flex:1;background:var(--sky);border-radius:2px 2px 0 0;min-height:4px;display:block}
.spark i:last-child{background:var(--blue)}

.dj-t{display:inline-flex;font-size:10.5px;font-weight:700;border-radius:10px;padding:2px 9px;background:var(--sky);color:var(--blue);white-space:nowrap}
.valform input[type=range]{width:100%;accent-color:var(--blue);padding:0}

/* ============================ Espace Direction générale ============================
 * Volontairement sobre : l'écran est une note, pas un cockpit. Aucun élément
 * graphique n'est présent s'il ne porte pas une information de décision. */
.dg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:6px}
.dg-sub{font-size:12.5px;color:var(--text-2);margin-top:2px}
.dg-head-a{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dg-som button{padding:7px 12px;font-size:12px}
.dg-head h2,.view section .sec-h h2{font-family:var(--disp)}

.dg-cluster{background:linear-gradient(180deg,#fff,#f9fafb);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:var(--shadow)}
.dg-cluster + .dg-cluster{margin-top:12px}
.dg-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
@media(max-width:1280px){.dg-band{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(max-width:760px){.dg-band{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.dg-k{background:var(--kbg,var(--card));border:1px solid var(--line-2);border-radius:10px;padding:14px 12px 11px;display:flex;flex-direction:column;gap:3px;min-height:0;position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.dg-k::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--kc,var(--blue))}
.dg-k:hover{transform:translateY(-1px);box-shadow:0 8px 18px -12px rgba(12,24,34,.25)}
.dg-kl{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);font-weight:700}
.dg-kv{font-size:22px;font-weight:700;color:var(--ink);line-height:1.1;font-family:var(--disp)}
.dg-kv small{font-size:11px;color:var(--text-2);font-weight:500}
.dg-ks{font-size:10.5px;color:var(--text-2);line-height:1.35}
.dg-k .track{margin-top:4px}
.dg-band + .cp-msg{margin-top:8px}

/* Indice global de performance */
.dg-igp{display:grid;grid-template-columns:320px 1fr;gap:14px;align-items:start}
@media(max-width:1000px){.dg-igp{grid-template-columns:1fr}}
.dg-igp-l{background:linear-gradient(180deg,#072033 0%, #0c2b44 100%);padding:18px 18px;color:#E6F0F6;border:1px solid rgba(255,255,255,0.06);border-radius:12px;box-shadow:0 10px 30px rgba(2,12,24,0.25);position:relative;overflow:hidden}
.dg-igp-l .dg-kl{color:var(--brass-2);letter-spacing:0.06em}
.dg-igp-v{font-family:var(--disp);font-size:40px;font-weight:800;color:#fff;line-height:1;margin:8px 0}
.dg-igp-v small{font-size:13px;color:rgba(255,255,255,0.75);font-weight:600}
.dg-igp-l p{font-size:12px;color:rgba(255,255,255,0.7);line-height:1.45;margin-top:8px}

/* small circular ring to visualise the IGP */
.igp-ring{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;margin-right:12px;flex:none;background:conic-gradient(var(--brass) 0deg, var(--brass) 180deg, rgba(255,255,255,0.06) 180deg 360deg);box-shadow:inset 0 -6px 12px rgba(0,0,0,0.12)}
.igp-ring .val{font-family:var(--disp);font-size:22px;font-weight:800;color:#fff}
.dg-igp-l .lg{display:flex;align-items:center;gap:10px}
  
  <!-- IGP controls: sources modal trigger + tooltip -->
  <div class="igp-controls" style="margin-top:10px">
    <button class="igp-btn" id="igp-sources-btn">Voir les sources</button>
    <div class="tooltip-igp" aria-hidden="true">
      <button class="igp-btn">Comment ça calcule ?</button>
      <div class="tip">
        <strong>Comment c'est calculé</strong>
        <p style="margin-top:6px">L'IGP agrège les KPIs pondérés par périmètre. Les opportunités utilisent date & probabilité ; si date manquante, on applique un +60j par défaut selon le type. Les scénarios montrent bornes optimistes / conservatrices.</p>
      </div>
    </div>
    <button class="igp-btn" id="igp-snapshot-btn">Sauvegarder snapshot</button>
  </div>

/* IGP controls: sources modal, tooltip and snapshot */
.igp-controls{display:flex;align-items:center;gap:8px;margin-top:8px}
.igp-btn{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.06);color:var(--E6F0F6);padding:6px 9px;border-radius:8px;font-size:12px;cursor:pointer}
.igp-btn:hover{background:rgba(255,255,255,0.09)}
.tooltip-igp{display:inline-block;position:relative}
.tooltip-igp .tip{display:none;position:absolute;right:0;top:120%;width:320px;background:#fff;color:var(--ink);padding:10px;border-radius:8px;box-shadow:0 8px 24px rgba(10,20,30,0.12);font-size:13px;z-index:60}
.tooltip-igp:hover .tip{display:block}

.dg-axes{background:transparent;padding:6px 6px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;border-radius:10px}
.dg-axe{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:linear-gradient(180deg,#ffffff,#fbfdff);border:1px solid rgba(12,30,48,0.05);box-shadow:0 6px 18px rgba(10,20,30,0.03)}
.dg-axe.off{opacity:.6}
.dg-axe-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.dg-axe-h b{font-size:13px;color:var(--ink);letter-spacing:0.01em}
.dg-axe-h span{font-family:var(--disp);font-size:16px;font-weight:800;color:var(--blue)}
.dg-axe small{font-size:11px;color:var(--text-3);line-height:1.35}

/* Décisions stratégiques */
.dg-decs{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.dg-dec{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:13px;padding:15px 17px;box-shadow:var(--shadow)}
.dg-dec.u3{border-left-color:var(--red)}
.dg-dec.u2{border-left-color:var(--brass)}
.dg-dec.u1{border-left-color:var(--slate)}
.dg-dec-n{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--disp);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:none}
.dg-dec-b{flex:1;min-width:0}
.dg-dec-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.dg-dec-h b{font-size:14.5px;color:var(--ink);font-family:var(--disp)}
.dg-dec-t{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.dg-dec-j{font-size:12.5px;color:var(--text-2);line-height:1.6}
.dg-dec-q,.dg-dec-r{display:flex;align-items:flex-start;gap:7px;margin-top:8px;font-size:12.5px;line-height:1.55}
.dg-dec-q{color:var(--ink);font-weight:600}
.dg-dec-q svg{color:var(--blue);flex:none;margin-top:2px}
.dg-dec-r{color:var(--emerald);font-size:12px}
.dg-dec-r svg{flex:none;margin-top:2px}
.dg-dec-a{display:flex;flex-direction:column;gap:6px;flex:none}
.dg-autres{margin-top:10px;font-size:11.5px;color:var(--text-3,#9AA6AC);line-height:1.6;padding:0 2px}

/* Moteurs de croissance */
.dg-or{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:12px 0 4px}
.dg-or-c{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow)}
.dg-or-c b{display:block;font-family:var(--disp);font-size:15px;color:var(--ink);margin:5px 0 4px}
.dg-or-c p{font-size:11.5px;color:var(--text-2);line-height:1.55}
.dg-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media(max-width:1100px){.dg-grid2{grid-template-columns:1fr}}

/* Arbitrages */
.dg-arb{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line-2);border-left:3px solid transparent}
.dg-arb:last-child{border-bottom:none}
.dg-arb.en_attente{border-left-color:var(--brass)}
.dg-arb.en_attente.retard{border-left-color:var(--red);background:#FFFBFA}
.dg-arb.approuve{border-left-color:var(--emerald)}
.dg-arb.refuse,.dg-arb.reporte{opacity:.7}
.dg-arb-b{flex:1;min-width:0}
.dg-arb-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.dg-arb-h b{font-size:13.5px;color:var(--ink)}
.dg-arb-b p{font-size:12px;color:var(--text-2);line-height:1.55}
.dg-arb-m{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:7px;font-size:11.5px;color:var(--text-3,#9AA6AC)}
.dg-arb-m span{display:inline-flex;align-items:center;gap:5px}
.dg-arb-m svg{flex:none}
.dg-arb-att{color:var(--ink);font-weight:600}
.dg-arb-d{margin-top:8px;padding:7px 11px;background:var(--paper);border-radius:8px;font-size:11.5px;color:var(--text-2);line-height:1.5}
.dg-arb-a{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}

/* Objectifs */
.dg-ob{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:760px){.dg-ob{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.dg-ob-c{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;border-left:3px solid var(--line)}
.dg-ob-c.ok{border-left-color:var(--emerald)}
.dg-ob-c.nt{border-left-color:var(--brass)}
.dg-ob-c.ko{border-left-color:var(--red)}
.dg-ob-n{font-family:var(--disp);font-size:30px;font-weight:700;color:var(--ink);line-height:1}
.dg-ob-l{font-size:11.5px;color:var(--text-2);font-weight:600;margin-top:6px}

/* Note au directeur général */
.dg-note{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--slate);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.dg-note.ok{border-top-color:var(--emerald)}
.dg-note.nt{border-top-color:var(--brass)}
.dg-note.ko{border-top-color:var(--red)}
.dg-note-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:15px 20px;border-bottom:1px solid var(--line-2)}
.dg-note-h b{font-family:var(--disp);font-size:15px;color:var(--ink);display:block}
.dg-note-h small{font-size:11.5px;color:var(--text-3,#9AA6AC)}
.dg-note-b{padding:6px 20px 14px}
.dg-p{padding:12px 0;border-bottom:1px solid var(--line-2)}
.dg-p:last-child{border-bottom:none}
.dg-p b{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--brass);font-weight:700;margin-bottom:5px}
.dg-p p{font-size:13.5px;color:var(--text);line-height:1.75}
.dg-note-f{padding:11px 20px;background:var(--paper);font-size:11px;color:var(--text-3,#9AA6AC);line-height:1.55}

@media print{
  .dg-head-a,.dg-dec-a,.dg-arb-a,.side,.top{display:none!important}
  .dg-band,.dg-igp,.panel,.dg-note,.dg-dec{break-inside:avoid;box-shadow:none}
  .dg-igp-l{background:#fff;color:var(--text)}
  .dg-igp-v,.dg-igp-l p{color:var(--ink)}
}
.cp-dact{display:flex;flex-direction:column;gap:6px;flex:none}
.chip.pays{background:var(--sky);color:var(--blue);font-weight:600}
.titem .ag-j{flex:none}
.ag-j.vide{background:transparent;border:1px dashed var(--line);color:var(--text-3,#9AA6AC);font-weight:600}
.tedit{width:26px;height:24px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:12px;display:grid;place-items:center}
.tedit:hover{background:var(--sky);border-color:var(--blue);color:var(--blue)}
.of-sep{margin:16px 0 10px;padding-top:12px;border-top:1px solid var(--line-2);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-3,#9AA6AC);font-weight:700}
.dl-txt{padding:8px 0}
.dl-txt span{font-size:12.5px;color:var(--text-2);display:block;margin-bottom:3px}
.dl-txt p{font-size:12.5px;color:var(--ink);line-height:1.6;background:var(--paper);border-radius:8px;padding:9px 11px;white-space:pre-wrap}
.dg-hyp{margin-top:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.dg-hyp summary{padding:12px 16px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.dg-hyp summary::-webkit-details-marker{display:none}
.dg-hyp summary::after{content:"▾";margin-left:auto;color:var(--text-3,#9AA6AC)}
.dg-hyp[open] summary{border-bottom:1px solid var(--line-2)}
.dg-hyp[open] summary::after{content:"▴"}
.dg-hyp summary svg{color:var(--blue);flex:none}
.dg-hyp ul{margin:0;padding:12px 18px 8px 34px}
.dg-hyp li{font-size:12px;color:var(--text-2);line-height:1.65;margin-bottom:5px}
.dg-hyp-t{width:100%;border-collapse:collapse}
.dg-hyp-n{font-size:11.5px;color:var(--text-2);line-height:1.6;padding:10px 18px;background:var(--paper)}

/* ============================ Actions commerciales ============================ */
.act-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:760px){.act-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.act-filtres{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.act-chip{padding:6px 11px;border-radius:20px;border:1px solid var(--line);background:#fff;font-size:11.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.act-chip:hover{border-color:var(--brass)}
.act-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.act-sep{width:1px;height:20px;background:var(--line-2);margin:0 4px}
.act-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.act{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.act.p3{border-left-color:var(--red)}
.act.p2{border-left-color:var(--brass)}
.act.p1{border-left-color:var(--slate)}
.act-clos{opacity:.62}
.act-b{flex:1;min-width:0}
.act-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:5px}
.act-h b{font-size:13.5px;color:var(--ink)}
.act-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);background:var(--paper);border-radius:6px;padding:2px 7px}
.act-p{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:10px;margin-left:auto}
.act-p.p3{background:var(--red-soft);color:var(--red)}
.act-p.p2{background:var(--brass-soft);color:#8A6413}
.act-p.p1{background:var(--paper);color:var(--text-2)}
.act-b p{font-size:12px;color:var(--text-2);line-height:1.55}
.act-m{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;color:var(--text-3,#9AA6AC)}
.act-m span{display:inline-flex;align-items:center;gap:5px}
.act-m svg{flex:none}
.act-geste{color:var(--emerald)!important;font-weight:600}
.act-note{margin-top:8px;padding:7px 11px;background:var(--paper);border-radius:8px;font-size:11.5px;color:var(--text-2)}
.act-a{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.evt{display:flex;gap:12px;padding:11px 4px}
.evt+.evt{border-top:1px solid var(--line-2)}
.evt .ic{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:grid;place-items:center}
.evt-b{flex:1;min-width:0}
.evt-b b{font-size:13px;font-weight:600}
.evt-b p{font-size:12px;color:var(--text-2);margin-top:1px}
.evt-t{font-size:11px;color:var(--text-3,#9AA6AC);white-space:nowrap;font-family:var(--disp)}
.ind-ecart{font-size:12px;padding:9px 12px;border-radius:9px;line-height:1.5}
.ind-ecart.ok{background:var(--emerald-soft);color:var(--emerald)}
.ind-ecart.sur{background:var(--brass-soft);color:#8A6413}
.ind-ecart.sous{background:var(--red-soft);color:var(--red)}
.obj-set .ind-reset{margin-left:6px}
.lost-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto}
.lost-it{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:9px}
.lost-b{flex:1;min-width:0}
.lost-b b{font-size:13px;color:var(--ink);display:block}
.lost-b small{font-size:11.5px;color:var(--text-2)}

/* ═══════════════════ Espace Chef de Département ═══════════════════ */
.dp-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:820px){.dp-band{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.dp-tile{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:var(--shadow);cursor:pointer;border-top:3px solid var(--line-2);transition:transform .12s,box-shadow .12s}
.dp-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg,0 8px 24px rgba(18,32,41,.1))}
.dp-tile.warn{border-top-color:var(--brass)}
.dp-tile.act{border-top-color:var(--blue)}
.dp-tile.ok{border-top-color:var(--emerald)}
.dp-t-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.dp-t-v{font-size:30px;font-weight:700;font-family:var(--disp);color:var(--ink);line-height:1.1;margin:5px 0 2px}
.dp-t-s{font-size:11.5px;color:var(--text-2)}
.dp-intro{font-size:12.5px;color:var(--text-2);line-height:1.6;max-width:70ch;margin:2px 0 14px}
/* charge */
.dp-charge{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.dp-cc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 15px;box-shadow:var(--shadow);border-left:3px solid var(--line-2)}
.dp-cc.sur{border-left-color:var(--brass)}
.dp-cc.sous{border-left-color:var(--slate,#7C8B93)}
.dp-cc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.dp-cc-h b{font-size:13.5px;color:var(--ink)}
.dp-flag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:10px}
.dp-flag.sur{background:var(--brass-soft);color:#8A6413}
.dp-flag.sous{background:var(--paper);color:var(--text-2)}
.dp-bar{height:7px;background:var(--paper);border-radius:5px;overflow:hidden;margin-bottom:10px}
.dp-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--brass),#c99a3e);border-radius:5px}
.dp-cc.sous .dp-bar span{background:var(--slate,#7C8B93)}
.dp-cc-m{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-2)}
.dp-cc-m b{color:var(--ink);font-family:var(--disp)}
/* validation */
.dp-valid{display:flex;flex-direction:column;gap:9px}
.dp-vi{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 15px;box-shadow:var(--shadow)}
.dp-vi-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none}
.dp-vi-ic.cot{background:var(--brass-soft);color:#8A6413}
.dp-vi-ic.sub{background:var(--sky,#E6EEF3);color:var(--blue)}
.dp-vi-b{flex:1;min-width:0}
.dp-vi-b b{font-size:13px;color:var(--ink);display:block}
.dp-vi-b small{font-size:11.5px;color:var(--text-2)}
.dp-vi-a{display:flex;gap:6px;flex:none}
/* coaching */
.dp-coach{display:flex;flex-direction:column;gap:9px}
.coach{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.coach.urgent{border-left:3px solid var(--red)}
.coach-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;cursor:pointer}
.coach-hd:hover{background:var(--paper)}
.coach-id{display:flex;align-items:center;gap:11px}
.coach-av{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:700;font-family:var(--disp)}
.coach-id b{font-size:13.5px;color:var(--ink)}
.coach-id small{font-size:11.5px;color:var(--text-2);display:block}
.coach-r{display:flex;align-items:center;gap:9px}
.coach-n{background:var(--brass);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px}
.coach-chev{color:var(--text-3,#9AA6AC);transition:transform .15s}
.coach.open .coach-chev{transform:rotate(180deg)}
.coach-bd{display:none;padding:0 15px 14px;border-top:1px solid var(--line-2)}
.coach.open .coach-bd{display:block}
.coach-act{display:flex;align-items:flex-start;gap:8px;background:var(--emerald-soft);color:var(--emerald);border-radius:9px;padding:9px 12px;font-size:12px;line-height:1.5;margin:12px 0}
.coach-act svg{flex:none;margin-top:2px}
.coach-sub{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);margin:12px 0 6px}
.coach-it{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:12.5px;color:var(--ink);border-top:1px solid var(--line-2)}
.coach-it>span:nth-child(2){flex:1;min-width:0}
.coach-cat{font-size:10.5px;font-weight:600;color:var(--text-2);background:var(--paper);border-radius:6px;padding:2px 8px;white-space:nowrap}
.coach-empty{font-size:12px;color:var(--text-3,#9AA6AC);padding:12px 0 2px;font-style:italic}
.rp-list{display:flex;flex-direction:column;gap:5px;max-height:40vh;overflow:auto}
.rp-it{display:flex;align-items:center;gap:9px;padding:8px 10px;background:var(--paper);border-radius:8px;font-size:12.5px;cursor:pointer}

/* ═══════════ Espace Chef de Département — onglets enrichis ═══════════ */
.dp-tabs{margin-bottom:18px}
.dp-body{min-height:200px}
.dash-load{color:var(--text-3,#9AA6AC);font-size:13px;padding:40px 0;text-align:center}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:900px){.grid-2b{grid-template-columns:1fr}}
/* synthèse */
.dp-synth{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:820px){.dp-synth{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.dp-syn{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:var(--shadow);border-top:3px solid var(--brass)}
.dp-syn.ok{border-top-color:var(--emerald)}
.dp-syn.warn{border-top-color:var(--red)}
.dp-syn-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.dp-syn-v{font-size:28px;font-weight:700;font-family:var(--disp);color:var(--ink);line-height:1.1;margin:5px 0 2px}
.dp-syn-s{font-size:11.5px;color:var(--text-2)}
.dp-intro{font-size:12.5px;color:var(--text-2);line-height:1.6;max-width:74ch;margin:2px 0 14px}
/* objectifs du jour */
.dp-obj{display:flex;flex-direction:column;gap:7px}
.dp-obj-r{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:11px;padding:11px 15px;box-shadow:var(--shadow)}
.dp-obj-r.avance{border-left-color:var(--emerald)}
.dp-obj-r.limite{border-left-color:var(--brass)}
.dp-obj-r.retard{border-left-color:var(--red)}
.dp-obj-av{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:700;font-family:var(--disp);flex:none}
.dp-obj-n{flex:1;min-width:0}
.dp-obj-n b{font-size:13.5px;color:var(--ink)}
.dp-obj-n small{display:block;font-size:11.5px;color:var(--text-2)}
.dp-obj-e{display:flex;align-items:center;gap:10px;flex:none}
.dp-obj-ecart{font-family:var(--disp);font-weight:700;font-size:14px}
.dp-obj-ecart.avance{color:var(--emerald)}
.dp-obj-ecart.limite{color:#8A6413}
.dp-obj-ecart.retard{color:var(--red)}
/* sans suivi */
.dp-idle{display:flex;flex-direction:column;gap:7px}
.dp-idle-reps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.dp-idle-rep{font-size:11px;font-weight:600;color:#8A6413;background:var(--brass-soft);border-radius:14px;padding:3px 10px}
.dp-idle-it{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;box-shadow:var(--shadow)}
.dp-idle-it>div{flex:1;min-width:0}
.dp-idle-it b{font-size:12.5px;color:var(--ink)}
.dp-idle-it small{display:block;font-size:11px;color:var(--text-2)}
.dp-idle-j{font-size:12px;font-weight:700;font-family:var(--disp);color:var(--red);white-space:nowrap}
/* discipline */
.dp-disc{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.dp-disc table{width:100%;border-collapse:collapse}
.dp-disc th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3,#9AA6AC);text-align:right;padding:11px 14px;border-bottom:1px solid var(--line)}
.dp-disc th:first-child{text-align:left}
.dp-disc td{padding:10px 14px;border-bottom:1px solid var(--line-2);font-size:13px;text-align:right}
.dp-disc tr:last-child td{border-bottom:none}
.dp-disc .co-cell{display:flex;align-items:center;gap:9px;text-align:left}
.dp-jauge{display:inline-block;min-width:44px;padding:2px 8px;border-radius:8px;font-size:12px;font-weight:600;font-family:var(--disp)}
.dp-jauge.ok{background:var(--emerald-soft);color:var(--emerald)}
.dp-jauge.mid{background:var(--brass-soft);color:#8A6413}
.dp-jauge.low{background:var(--red-soft);color:var(--red)}
/* accompagnement */
.dp-acc{display:flex;flex-direction:column;gap:12px}
.acc-rep{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow)}
.acc-rep-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.acc-rep-h b{font-size:13.5px;color:var(--ink)}
.acc-rep-h .tag{margin-left:auto}
.acc-rep-h .coach-av{width:28px;height:28px}
.acc-empty{font-size:12px;color:var(--text-3,#9AA6AC);font-style:italic;padding:8px 0 2px}
.acc-plans{display:flex;flex-direction:column;gap:8px;margin-top:9px}
.plan{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;padding:11px 13px}
.plan.clos{opacity:.62}
.plan-h{display:flex;align-items:center;gap:9px}
.plan-h b{font-size:13px;color:var(--ink);flex:1;min-width:0}
.plan-typ{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:8px}
.plan-typ.coaching{background:var(--sky,#E6EEF3);color:var(--blue)}
.plan-typ.formation{background:var(--emerald-soft);color:var(--emerald)}
.plan-typ.corrective{background:var(--brass-soft);color:#8A6413}
.plan-ctx{font-size:12px;color:var(--text-2);line-height:1.5;margin:7px 0}
.plan-f{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:var(--text-3,#9AA6AC)}
.plan-a{display:flex;gap:6px;flex:none}
.plan-bar{height:6px;background:var(--line-2);border-radius:4px;overflow:hidden;margin-top:9px}
.plan-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--brass),#c99a3e);border-radius:4px}
.acc-hist{display:flex;flex-direction:column;gap:2px}
.acc-hi{display:flex;gap:14px;padding:9px 2px;border-top:1px solid var(--line-2)}
.acc-hi:first-child{border-top:none}
.acc-hi-d{font-size:11px;font-family:var(--disp);color:var(--text-3,#9AA6AC);white-space:nowrap;padding-top:2px;min-width:70px}
.acc-hi b{font-size:12.5px;color:var(--ink)}
.acc-hi small{display:block;font-size:11.5px;color:var(--text-2);margin-top:1px}
/* réunions */
.mtg-list{display:flex;flex-direction:column;gap:9px}
.mtg{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow)}
.mtg.avenir{border-left:3px solid var(--emerald)}
.mtg-h{display:flex;align-items:center;gap:11px}
.mtg-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:3px 9px;border-radius:8px;background:var(--paper);color:var(--text-2);white-space:nowrap}
.mtg-type.briefing{background:var(--sky,#E6EEF3);color:var(--blue)}
.mtg-type.hebdo{background:var(--brass-soft);color:#8A6413}
.mtg-id{flex:1;min-width:0}
.mtg-id b{font-size:13.5px;color:var(--ink)}
.mtg-id small{display:block;font-size:11.5px;color:var(--text-2)}
.mtg-odj{font-size:12px;color:var(--text-2);line-height:1.5;margin:9px 0 0;padding-top:9px;border-top:1px solid var(--line-2)}
.mtg-badge{font-size:11px;color:var(--text-3,#9AA6AC);margin-top:7px}
.mtg-acts{display:flex;flex-direction:column;gap:6px}
.mtg-act{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;box-shadow:var(--shadow)}
.mtg-act.fait{opacity:.6}
.mtg-act.retard{border-left:3px solid var(--red)}
.mtg-act-b{flex:1;min-width:0}
.mtg-act-b span{font-size:12.5px;color:var(--ink)}
.mtg-act-b small{display:block;font-size:11px;color:var(--text-2)}
.mtg-chk{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);background:#fff;cursor:pointer;flex:none;display:grid;place-items:center;color:#fff}
.mtg-chk.on{background:var(--emerald);border-color:var(--emerald)}
.mtg-late{font-size:10px;font-weight:700;color:var(--red);background:var(--red-soft);border-radius:8px;padding:2px 8px}
.rm-form .multi-brands{display:flex;flex-wrap:wrap;gap:7px}
.rm-form .mb{display:flex;align-items:center;gap:6px;font-size:12px;background:var(--paper);border-radius:8px;padding:5px 10px;cursor:pointer}
.rm-acts{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.rm-act{display:flex;align-items:center;gap:9px;background:var(--paper);border-radius:8px;padding:7px 10px;font-size:12px}
.rm-act.fait{opacity:.6}
.rm-act>span{flex:1;min-width:0}
.rm-chk{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:#fff;cursor:pointer;flex:none;color:var(--emerald);font-weight:700}
.rm-chk.on{background:var(--emerald-soft)}
.rm-del{background:none;border:none;color:var(--red);cursor:pointer;font-size:16px;flex:none}
.rm-add{display:grid;grid-template-columns:1fr auto auto auto;gap:7px;align-items:center}
.rm-add input,.rm-add select{padding:7px 9px;font-size:12px}

/* ═══════════ Chef de Département — onglets & contenus enrichis ═══════════ */
.dp-tabs{margin-bottom:18px}
.dash-load{padding:64px 20px;text-align:center;color:var(--text-2);font-size:12.5px;font-weight:700;letter-spacing:.02em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.dash-load::before{content:'';width:58px;height:58px;border-radius:50%;
  border:6px solid rgba(0,75,147,.12);border-top-color:var(--blue);border-right-color:var(--brass);
  animation:pa-spin .75s cubic-bezier(.55,0,.45,1) infinite;
  box-shadow:0 6px 18px -8px rgba(0,75,147,.35)}
@keyframes pa-spin{to{transform:rotate(360deg)}}
.pa-boot{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#FDFEFE 0%,#FAFBFC 100%);
  transition:opacity .3s ease,visibility .3s ease}
.pa-boot.hidden{opacity:0;visibility:hidden;pointer-events:none}
.pa-boot-inner{display:flex;flex-direction:column;align-items:center;gap:16px}
.pa-boot-ring{width:76px;height:76px;border-radius:50%;
  border:7px solid rgba(0,75,147,.12);border-top-color:var(--blue);border-right-color:var(--brass);
  animation:pa-spin .75s cubic-bezier(.55,0,.45,1) infinite;
  box-shadow:0 8px 20px -8px rgba(0,75,147,.4)}
.pa-boot-txt{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:900px){.grid-2b{grid-template-columns:1fr}}
/* synthèse */
.dp-synth{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:820px){.dp-synth{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.dp-syn{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:var(--shadow);border-top:3px solid var(--slate,#7C8B93)}
.dp-syn.ok{border-top-color:var(--emerald)}
.dp-syn.warn{border-top-color:var(--brass)}
.dp-syn-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.dp-syn-v{font-size:26px;font-weight:700;font-family:var(--disp);color:var(--ink);line-height:1.1;margin:5px 0 2px}
.dp-syn-s{font-size:11.5px;color:var(--text-2)}
/* objectifs du jour */
.dp-obj{display:flex;flex-direction:column;gap:7px}
.dp-obj-r{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:10px 14px;box-shadow:var(--shadow);border-left:3px solid var(--line-2)}
.dp-obj-r.avance{border-left-color:var(--emerald)}
.dp-obj-r.retard{border-left-color:var(--red)}
.dp-obj-r.limite{border-left-color:var(--brass)}
.dp-obj-av{width:30px;height:30px;border-radius:8px;background:var(--paper);color:var(--ink);display:grid;place-items:center;font-size:11px;font-weight:700;font-family:var(--disp);flex:none}
.dp-obj-n{flex:1;min-width:0}
.dp-obj-n b{font-size:13px;color:var(--ink)}
.dp-obj-n small{display:block;font-size:11.5px;color:var(--text-2)}
.dp-obj-e{display:flex;align-items:center;gap:10px;flex:none}
.dp-obj-ecart{font-family:var(--disp);font-weight:700;font-size:14px}
.dp-obj-ecart.avance{color:var(--emerald)}
.dp-obj-ecart.retard{color:var(--red)}
.dp-obj-ecart.limite{color:#8A6413}
/* sans suivi */
.dp-idle{display:flex;flex-direction:column;gap:7px}
.dp-idle-reps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.dp-idle-rep{font-size:11px;font-weight:600;color:#8A6413;background:var(--brass-soft);border-radius:8px;padding:4px 9px}
.dp-idle-it{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;box-shadow:var(--shadow)}
.dp-idle-it>div{flex:1;min-width:0}
.dp-idle-it b{font-size:12.5px;color:var(--ink)}
.dp-idle-it small{display:block;font-size:11px;color:var(--text-2)}
.dp-idle-j{font-size:12px;font-weight:700;font-family:var(--disp);color:var(--red);white-space:nowrap}
/* discipline */
.dp-disc{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.dp-disc table{width:100%;border-collapse:collapse;font-size:12.5px}
.dp-disc th{text-align:right;padding:11px 14px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3,#9AA6AC);background:var(--paper);border-bottom:1px solid var(--line)}
.dp-disc th:first-child{text-align:left}
.dp-disc td{padding:10px 14px;text-align:right;border-bottom:1px solid var(--line-2)}
.dp-disc td:first-child{text-align:left}
.dp-disc tr:last-child td{border-bottom:none}
.co-cell{display:flex;align-items:center;gap:9px}
.co-cell b{font-size:12.5px;color:var(--ink)}
.dp-jauge{display:inline-block;min-width:44px;padding:2px 8px;border-radius:9px;font-weight:600;font-family:var(--disp)}
.dp-jauge.ok{background:var(--emerald-soft);color:var(--emerald)}
.dp-jauge.mid{background:var(--brass-soft);color:#8A6413}
.dp-jauge.low{background:var(--red-soft);color:var(--red)}
/* accompagnement */
.dp-acc{display:flex;flex-direction:column;gap:12px}
.acc-rep{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.acc-rep-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.acc-rep-h b{font-size:13.5px;color:var(--ink)}
.acc-rep-h .tag{margin-left:2px}
.acc-rep-h .acc-add{margin-left:auto}
.acc-plans{display:flex;flex-direction:column;gap:9px}
.acc-empty{font-size:12px;color:var(--text-3,#9AA6AC);font-style:italic;padding:4px 0}
.plan{border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;background:var(--paper)}
.plan.clos{opacity:.66}
.plan-h{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.plan-h b{font-size:12.5px;color:var(--ink);flex:1;min-width:0}
.plan-typ{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:9px}
.plan-typ.coaching{background:var(--sky,#E6EEF3);color:var(--blue)}
.plan-typ.formation{background:var(--emerald-soft);color:var(--emerald)}
.plan-typ.corrective{background:var(--brass-soft);color:#8A6413}
.plan-ctx{font-size:12px;color:var(--text-2);line-height:1.5;margin:3px 0 7px}
.plan-f{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--text-3,#9AA6AC)}
.plan-a{display:flex;gap:5px;flex:none}
.plan-bar{height:5px;background:var(--line-2);border-radius:4px;overflow:hidden;margin-top:8px}
.plan-bar span{display:block;height:100%;background:var(--emerald);border-radius:4px}
.acc-hist{display:flex;flex-direction:column}
.acc-hi{display:flex;gap:13px;padding:9px 2px;border-top:1px solid var(--line-2)}
.acc-hi:first-child{border-top:none}
.acc-hi-d{font-size:11px;color:var(--text-3,#9AA6AC);font-family:var(--disp);white-space:nowrap;min-width:74px}
.acc-hi b{font-size:12.5px;color:var(--ink)}
.acc-hi small{display:block;font-size:11.5px;color:var(--text-2);margin-top:1px}
/* réunions */
.mtg-list{display:flex;flex-direction:column;gap:10px}
.mtg{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow)}
.mtg.avenir{border-left:3px solid var(--blue)}
.mtg-h{display:flex;align-items:center;gap:11px}
.mtg-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:3px 9px;border-radius:9px;background:var(--paper);color:var(--text-2);white-space:nowrap}
.mtg-type.briefing{background:var(--sky,#E6EEF3);color:var(--blue)}
.mtg-type.hebdo{background:var(--brass-soft);color:#8A6413}
.mtg-id{flex:1;min-width:0}
.mtg-id b{font-size:13.5px;color:var(--ink)}
.mtg-id small{display:block;font-size:11.5px;color:var(--text-2)}
.mtg-odj{font-size:12px;color:var(--text-2);line-height:1.5;margin:9px 0 0;padding-top:9px;border-top:1px solid var(--line-2)}
.mtg-badge{font-size:11px;color:var(--text-3,#9AA6AC);margin-top:8px}
.mtg-acts{display:flex;flex-direction:column;gap:6px}
.mtg-act{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;box-shadow:var(--shadow)}
.mtg-act.fait{opacity:.6}
.mtg-act.retard{border-left:3px solid var(--red)}
.mtg-chk{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:#fff;flex:none}
.mtg-chk.on{background:var(--emerald);border-color:var(--emerald)}
.mtg-act-b{flex:1;min-width:0}
.mtg-act-b span{font-size:12.5px;color:var(--ink)}
.mtg-act.fait .mtg-act-b span{text-decoration:line-through}
.mtg-act-b small{display:block;font-size:11px;color:var(--text-2)}
.mtg-late{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--red);background:var(--red-soft);padding:2px 7px;border-radius:8px}
/* modale réunion */
.rm-acts{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.rm-act{display:flex;align-items:center;gap:9px;font-size:12px;background:var(--paper);border-radius:8px;padding:6px 10px}
.rm-act.fait span{text-decoration:line-through;color:var(--text-3,#9AA6AC)}
.rm-chk{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--line);background:#fff;cursor:pointer;flex:none;font-size:11px;color:var(--emerald)}
.rm-chk.on{background:var(--emerald-soft);border-color:var(--emerald)}
.rm-act span{flex:1;min-width:0}
.rm-del{border:none;background:none;color:var(--red);cursor:pointer;font-size:16px;line-height:1;flex:none}
.rm-add{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center}
.rm-add input,.rm-add select{padding:7px 9px;font-size:12px}
.mb{display:flex;align-items:center;gap:6px;font-size:12px;padding:4px 0}

/* ═══════════════════ Poste de travail du Commercial ═══════════════════ */
.me-hero{display:flex;align-items:stretch;gap:18px;background:linear-gradient(120deg,var(--ink) 0%,#1b2f3a 100%);border-radius:16px;padding:22px 24px;color:#fff;box-shadow:var(--shadow-lg,0 10px 30px rgba(18,32,41,.18))}
@media(max-width:760px){.me-hero{flex-direction:column}}
.me-hero-l{flex:1;display:flex;flex-direction:column;justify-content:center}
.me-hi{font-family:var(--disp);font-size:23px;font-weight:700;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.me-hi .cp-st{font-size:11px}
.me-sub{font-size:13px;color:rgba(255,255,255,.72);margin-top:6px;line-height:1.5}
.me-obj{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:15px 18px;min-width:230px}
.me-obj-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:rgba(255,255,255,.6)}
.me-obj-v{display:flex;align-items:baseline;gap:6px;margin:5px 0 9px}
.me-obj-v b{font-size:30px;font-family:var(--disp)}
.me-obj-v span{font-size:13px;color:rgba(255,255,255,.66)}
.me-jauge{height:7px;background:rgba(255,255,255,.16);border-radius:5px;overflow:hidden}
.me-jauge span{display:block;height:100%;border-radius:5px}
.me-jauge span.ok{background:var(--emerald)}
.me-jauge span.warn{background:var(--brass)}
.me-obj-f{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:11.5px;color:rgba(255,255,255,.72)}
.me-obj-f .up{color:#7BD8A0}
.me-obj-f .dn{color:#F0B27A}
.me-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:16px}
@media(max-width:820px){.me-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.me-stat{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px 16px;box-shadow:var(--shadow)}
.me-stat.cl{cursor:pointer;transition:transform .12s}
.me-stat.cl:hover{transform:translateY(-2px)}
.me-stat-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.me-stat-v{font-size:24px;font-weight:700;font-family:var(--disp);color:var(--ink);margin:4px 0 1px}
.me-stat-s{font-size:11.5px;color:var(--text-2)}
.me-intro{font-size:12.5px;color:var(--text-2);line-height:1.6;max-width:74ch;margin:2px 0 12px}
/* actions du jour */
.me-acts{display:flex;flex-direction:column;gap:8px}
.me-act{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:11px;padding:11px 14px;box-shadow:var(--shadow)}
.me-act.p3{border-left-color:var(--red)}
.me-act.p2{border-left-color:var(--brass)}
.me-act-b{flex:1;min-width:0}
.me-act-b b{font-size:12.5px;color:var(--ink);display:block}
.me-act-b small{font-size:11.5px;color:var(--emerald);display:flex;align-items:center;gap:5px;margin-top:2px}
.me-act-a{display:flex;gap:5px;flex:none}
/* rendez-vous */
.me-rdvs{display:flex;flex-direction:column;gap:7px}
.me-rdv-grp{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);margin:8px 0 2px}
.me-rdv-grp:first-child{margin-top:0}
.me-rdv{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;box-shadow:var(--shadow)}
.me-rdv.cr{border-left:3px solid var(--brass)}
.me-rdv-ic{width:30px;height:30px;border-radius:8px;background:var(--paper);display:grid;place-items:center;color:var(--text-2);flex:none}
.me-rdv-b{flex:1;min-width:0}
.me-rdv-b b{font-size:12.5px;color:var(--ink)}
.me-rdv-b small{display:block;font-size:11px;color:var(--text-2)}
/* distribution étapes */
.me-distrib{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.me-di{display:flex;flex-direction:column;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:7px 12px;min-width:64px}
.me-di-n{font-size:16px;font-weight:700;font-family:var(--disp);color:var(--ink)}
.me-di-k{font-size:9.5px;color:var(--text-3,#9AA6AC);text-transform:uppercase;letter-spacing:.3px}
.me-di-sep{color:var(--line-2);font-size:13px}
/* worklist */
.me-work{display:flex;flex-direction:column;gap:9px}
.me-w{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:11px;padding:12px 15px;box-shadow:var(--shadow)}
.me-w.bloc{border-left-color:var(--red)}
.me-w.idle{border-left-color:var(--brass)}
.me-w.warn{border-left-color:#C9A227}
.me-w-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.me-w-h b{font-size:13.5px;color:var(--ink)}
.me-w-stage{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-2);background:var(--paper);border-radius:7px;padding:2px 8px}
.me-w-val{margin-left:auto;font-size:14px;font-weight:700;font-family:var(--disp);color:var(--ink)}
.me-w-b{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px}
.me-w-etat{font-weight:600}
.me-w-etat.bloc{color:var(--red)}
.me-w-etat.idle{color:#8A6413}
.me-w-etat.warn{color:#8A6413}
.me-w-etat.ok{color:var(--text-2)}
.me-w-next{display:inline-flex;align-items:center;gap:6px;color:var(--emerald);font-weight:600}
.me-w-a{display:flex;gap:6px;margin-top:10px}
/* clients */
.me-clients{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.me-cli{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 14px;box-shadow:var(--shadow)}
.me-cli-av{width:34px;height:34px;border-radius:9px;background:var(--brass-soft);color:#8A6413;display:grid;place-items:center;font-size:12px;font-weight:700;font-family:var(--disp);flex:none}
.me-cli-b b{font-size:12.5px;color:var(--ink)}
.me-cli-b small{display:block;font-size:11px;color:var(--text-2)}

/* ═══════════ Commercial — console à onglets ═══════════ */
.me-topline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.me-hi2{font-family:var(--disp);font-size:20px;font-weight:700;color:var(--ink)}
.me-topline .dp-tabs{margin-bottom:0}
.me-body{min-height:200px}
.me-objline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:linear-gradient(120deg,var(--ink),#1b2f3a);color:#fff;border-radius:13px;padding:13px 18px;margin-bottom:16px}
.me-objline-l{font-size:13.5px}
.me-objline-l b{font-family:var(--disp);font-size:17px}
.me-objline-r{font-size:12.5px;font-weight:600}
.me-objline-r.up{color:#7BD8A0}
.me-objline-r.dn{color:#F0B27A}
/* priorités */
.pri-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
@media(max-width:820px){.pri-grid{grid-template-columns:1fr}}
.pri-col{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px 16px;box-shadow:var(--shadow)}
.pri-h{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-2);margin-bottom:10px}
.pri-n{background:var(--paper);color:var(--text-2);font-family:var(--disp);font-size:12px;min-width:22px;height:22px;border-radius:11px;display:grid;place-items:center;padding:0 6px}
.pri-it{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line-2)}
.pri-it:first-of-type{border-top:none}
.pri-it.urgent .pri-it-b b{color:var(--ink)}
.pri-it.late .pri-it-b small{color:var(--brass)}
.pri-it-b{flex:1;min-width:0}
.pri-it-b b{font-size:12.5px;color:var(--ink);display:block}
.pri-it-b small{font-size:11px;color:var(--text-2)}
.pri-vide{font-size:12px;color:var(--text-3,#9AA6AC);font-style:italic;padding:6px 0}
.pri-note{margin-top:14px;font-size:12.5px;color:var(--text-2);background:var(--paper);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:8px}
.lnk{background:none;border:none;color:var(--brass);font-weight:600;cursor:pointer;font-size:12.5px;padding:0}
/* cotations */
.cot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
@media(max-width:900px){.cot-cols{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.cot-col{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cot-col-h{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;font-size:11.5px;font-weight:700;color:#fff}
.cot-col-h.etablie{background:var(--slate,#7C8B93)}
.cot-col-h.envoyee{background:var(--blue)}
.cot-col-h.acceptee{background:var(--emerald)}
.cot-col-h.refusee{background:var(--red)}
.cot-col-n{background:rgba(255,255,255,.25);border-radius:9px;min-width:20px;text-align:center;padding:1px 6px}
.cot-col-b{padding:10px;display:flex;flex-direction:column;gap:9px}
.cot-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 13px;box-shadow:var(--shadow)}
.cot-card b{font-size:12.5px;color:var(--ink)}
.cot-card-v{font-family:var(--disp);font-size:16px;font-weight:700;color:var(--ink);margin:3px 0}
.cot-card small{font-size:11px;color:var(--text-2)}
/* dossier */
.modal-xwide{max-width:900px!important;width:94vw!important}
.dossier{display:flex;flex-direction:column}
.dos-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line-2);margin-bottom:14px}
.dos-head b{font-family:var(--disp)}
.dos-stage{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;background:var(--paper);border-radius:7px;padding:2px 8px;color:var(--text-2)}
.dos-gestes{display:flex;gap:6px}
.dos-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
@media(max-width:760px){.dos-grid{grid-template-columns:1fr}}
.dos-sub{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC);margin-bottom:9px}
.dos-tl{max-height:52vh;overflow:auto}
.dos-evt{display:flex;gap:11px;padding:9px 0;border-top:1px solid var(--line-2)}
.dos-evt:first-child{border-top:none}
.dos-evt-ic{width:26px;height:26px;border-radius:7px;background:var(--paper);display:grid;place-items:center;color:var(--text-2);flex:none}
.dos-evt-b{flex:1;min-width:0}
.dos-evt-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.dos-evt-h b{font-size:12.5px;color:var(--ink)}
.dos-evt-tag{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3,#9AA6AC);background:var(--paper);border-radius:6px;padding:1px 6px}
.dos-evt-d{font-size:11px;color:var(--text-3,#9AA6AC);margin-left:auto;font-family:var(--disp)}
.dos-evt-b p{font-size:12px;color:var(--text-2);line-height:1.5;margin-top:3px}
.dos-side{border-left:1px solid var(--line-2);padding-left:18px}
@media(max-width:760px){.dos-side{border-left:none;padding-left:0}}
.dos-docs{display:flex;flex-direction:column;gap:7px}
.dos-doc{display:flex;gap:9px;align-items:center;background:var(--paper);border-radius:9px;padding:8px 11px}
.dos-doc-ic{color:var(--text-2);flex:none}
.dos-doc-b b{font-size:12px;color:var(--ink);word-break:break-word}
.dos-doc-b small{display:block;font-size:10.5px;color:var(--text-2)}
.dos-cot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--paper);border-radius:9px;padding:10px 13px}
.dos-cot b{font-family:var(--disp)}
.cot-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:9px;color:#fff}
.cot-badge.etablie{background:var(--slate,#7C8B93)}
.cot-badge.envoyee{background:var(--blue)}
.cot-badge.acceptee{background:var(--emerald)}
.cot-badge.refusee{background:var(--red)}
/* performance */
.perf-obj{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
@media(max-width:700px){.perf-obj{grid-template-columns:1fr}}
.perf-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px 18px;box-shadow:var(--shadow)}
.perf-card-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.perf-card-v{display:flex;align-items:baseline;gap:6px;margin:6px 0 10px}
.perf-card-v b{font-size:28px;font-family:var(--disp);color:var(--ink)}
.perf-card-v span{font-size:13px;color:var(--text-2)}
.perf-jauge{height:8px;background:var(--paper);border-radius:5px;overflow:hidden}
.perf-jauge span{display:block;height:100%;background:var(--brass);border-radius:5px}
.perf-jauge span.full{background:var(--emerald)}
.perf-card-f{display:flex;justify-content:space-between;margin-top:9px;font-size:12px;color:var(--text-2)}
.perf-card-f b{font-family:var(--disp);color:var(--ink)}
.perf-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
@media(max-width:760px){.perf-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}
.perf-s{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow)}
.perf-s-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3,#9AA6AC)}
.perf-s-v{font-size:22px;font-family:var(--disp);font-weight:700;color:var(--ink);margin:3px 0 1px}
.perf-s-s{font-size:11px;color:var(--text-2)}
.perf-disc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
@media(max-width:760px){.perf-disc{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.perf-d{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow);text-align:center}
.perf-d-l{font-size:11px;font-weight:600;color:var(--text-2)}
.perf-d-v{font-size:23px;font-family:var(--disp);font-weight:700;margin:4px 0;color:var(--ink)}
.perf-d-v.ok{color:var(--emerald)}
.perf-d-v.mid{color:#8A6413}
.perf-d-v.low{color:var(--red)}
.perf-d-s{font-size:10.5px;color:var(--text-3,#9AA6AC)}

/* ═══════════════════ Espace apporteur — enrichi ═══════════════════ */
.ap-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:16px 0}
@media(max-width:820px){.ap-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.ap-kpi{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px 17px;box-shadow:var(--shadow)}
.ap-kpi.due{border-color:var(--brass)}
.ap-kpi>span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3,#9AA6AC)}
.ap-kpi>b{display:block;font-size:30px;font-family:var(--disp);color:var(--ink);line-height:1.1;margin:4px 0 2px}
.ap-kpi>small{font-size:11.5px;color:var(--text-2)}
.ap-list{display:flex;flex-direction:column;gap:9px}
.ap-aff{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:12px 15px}
.ap-aff-main{flex:1;min-width:200px}
.ap-aff-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ap-aff-h b{font-size:13.5px;color:var(--ink)}
.ap-aff-main small{display:block;font-size:11.5px;color:var(--text-2);margin-top:2px}
.ap-motif{color:var(--red)!important}
.ap-comm{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 13px;flex:none}
.ap-comm.paid{border-color:var(--emerald)}
.ap-comm.due{border-color:var(--brass)}
.ap-comm-l{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3,#9AA6AC)}
.ap-comm b{font-size:13px;font-family:var(--disp);color:var(--ink)}

/* ══════════════ Facturation (proforma / facture / encaissement) ══════════════ */
.fac-kpis{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.fac-kpi{flex:1;min-width:180px;background:var(--surface,#fff);border:1px solid var(--line,#e6ebf1);border-radius:12px;padding:14px 16px}
.fac-kpi span{display:block;color:var(--text-3,#6b7683);font-size:12px;margin-bottom:4px}
.fac-kpi b{font-size:22px;color:var(--brand-ink,#1B2A44);font-variant-numeric:tabular-nums}
.fac-kpi b.pos{color:#1a7f4b}.fac-kpi b.due{color:#b23a3a}
.fac-card{padding:0;overflow:hidden}
.fac-table{width:100%;border-collapse:collapse;font-size:13.5px}
.fac-table th{text-align:left;padding:11px 14px;background:#f2f5f9;color:#5b6470;font-size:11.5px;letter-spacing:.4px;text-transform:uppercase;border-bottom:1px solid var(--line,#e6ebf1)}
.fac-table td{padding:11px 14px;border-bottom:1px solid #eef2f6;vertical-align:middle}
.fac-table td .sub{display:block;color:var(--text-3,#8a93a0);font-size:11.5px;margin-top:2px}
.fac-table td.tnum{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.fac-table td.due{color:#b23a3a;font-weight:600}
.fac-table .empty{text-align:center;color:var(--text-3,#8a93a0);padding:30px}
.fac-acts{white-space:nowrap;text-align:right}
.fac-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}
.fac-badge.st-todo{background:#eef2f6;color:#5b6470}
.fac-badge.st-pro{background:#fdeecb;color:#8a5a00}
.fac-badge.st-fact{background:#dbe7f5;color:#1B2A44}
.fac-badge.st-enc{background:#d9f2e3;color:#1a7f4b}
.btn-mini.bo{background:#F4A326;color:#1B2A44;border-color:#F4A326;font-weight:600}



/* ---- Listes déroulantes à saisie libre ----
 * L'élément <datalist> natif n'ouvre la liste complète que si le champ est vide :
 * un champ prérempli n'affichait donc qu'une seule entrée, la sienne. Ce menu
 * maison affiche toujours tout au clic, filtre à la frappe, et laisse saisir
 * une valeur absente de la liste. */
.combo-w{position:relative;display:block}
.combo-w .combo{width:100%;box-sizing:border-box;padding-right:32px}
.combo-w.combo-plus .combo{padding-right:60px}
.combo-w.combo-plus .combo-arw{right:32px}
.combo-add{position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:25px;height:25px;display:grid;place-items:center;border:1px solid var(--line);
  background:var(--paper);color:var(--text-2);cursor:pointer;border-radius:6px;
  font-size:16px;font-weight:600;line-height:1;padding:0}
.combo-add:hover{background:var(--brass-soft);color:var(--brass);border-color:var(--brass-soft)}
.combo-add:disabled{opacity:.4;cursor:default}
.combo-arw{position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;display:grid;place-items:center;border:0;background:none;
  color:var(--text-3);cursor:pointer;border-radius:6px}
.combo-arw:hover{color:var(--ink);background:var(--paper)}
.combo-w.open .combo-arw{transform:translateY(-50%) rotate(180deg)}
.combo-list{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);
  margin:0;padding:5px;list-style:none;max-height:250px;overflow-y:auto;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 10px 30px rgba(18,32,41,.16)}
.combo-list li{padding:8px 11px;border-radius:7px;font-size:13.5px;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combo-list li:hover,.combo-list li.hi{background:var(--paper);color:var(--ink)}
.combo-list li.sel{color:var(--blue);font-weight:600}
.combo-list li.neuf{color:var(--brass);font-weight:600;border-bottom:1px solid var(--line-2);
  border-radius:7px 7px 0 0;margin-bottom:3px}
.combo-list li.neuf:hover{background:var(--brass-soft)}
@media (pointer:coarse){.combo-list li{padding:11px 12px;font-size:15px}}

/* ===== COUCHE MOBILE ===== */
/* =============================================================================
 * mobile.css — Couche responsive du CRM Palladium
 * -----------------------------------------------------------------------------
 * À COLLER À LA FIN du bloc de style principal, ligne 1875 (ou en <link>).
 * Ce fichier ne fait qu'AJOUTER : aucune règle existante n'est réécrite, tout
 * passe par les points de rupture. Le rendu desktop est inchangé.
 *
 * Points de rupture retenus, alignés sur ceux déjà présents dans le fichier :
 *   1080px  tablette paysage   (déjà traité pour l'essentiel)
 *    760px  tablette portrait  → tiroir latéral, barre haute compacte
 *    640px  téléphone          → tableaux en fiches, modales en feuille
 *    380px  petit téléphone    → densité maximale
 * ========================================================================== */

/* ══════════════════ 1. Réflexes tactiles et débordements ══════════════════ */

* { -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; }

/* Rien ne doit pouvoir pousser la page horizontalement. La cause n°1 sur mobile
 * est une largeur fixe oubliée dans un tableau ou un graphique. */
html, body { max-width: 100%; overflow-x: hidden; }
.main, .view { min-width: 0; }
.view img, .view svg { max-width: 100%; }

/* Cibles tactiles : 44 px est le minimum confortable au pouce. */
@media (pointer: coarse) {
  .icon-btn { width: 42px; height: 42px; }
  .btn { padding: 12px 18px; min-height: 44px; }
  .nav a { padding-top: 12px; padding-bottom: 12px; }
  .modal-x { width: 36px; height: 36px; font-size: 19px; }
}

/* iOS zoome sur tout champ dont la police est inférieure à 16 px. Un zoom
 * involontaire au milieu d'une saisie est la nuisance la plus signalée sur
 * mobile — d'où cette règle, restreinte au tactile pour ne pas alourdir le
 * desktop. */
@media (pointer: coarse) {
  input, select, textarea,
  .modal-b input, .modal-b select, .modal-b textarea,
  .fld input, .fld select, .fld textarea { font-size: 16px; }
}

/* ══════════════════ 2. Tiroir de navigation (≤ 760px) ══════════════════ */

#pa-scrim {
  position: fixed; inset: 0; z-index: 35;
  background: rgba(18, 32, 41, .5);
  opacity: 0; pointer-events: none; transition: opacity .22s ease;
  backdrop-filter: blur(2px);
}
body.nav-open #pa-scrim { opacity: 1; pointer-events: auto; }

@media (max-width: 760px) {
  .side {
    position: fixed; top: 0; bottom: 0; height: 100dvh;
    width: min(80vw, 286px);
    left: calc(-1 * min(80vw, 286px));
    padding-bottom: env(safe-area-inset-bottom);
    transition: left .24s cubic-bezier(.4, 0, .2, 1);
    overscroll-behavior: contain;
  }
  .side.open { left: 0; }

  .main { width: 100%; }
  .view { padding: 16px 14px 20px; }

  /* Le mode « replié » du desktop n'a pas de sens dans un tiroir : on l'annule
   * pour éviter un tiroir de 64 px de large, illisible. */
  .side.collapsed { width: min(80vw, 286px); }
  .side.collapsed .brand-txt,
  .side.collapsed .nav a span:not(.badge) { display: block; }
  .side.collapsed .brand { padding: 22px 20px 18px; justify-content: flex-start; gap: 11px; }
  .side.collapsed .nav { padding: 14px 12px; }
  .side.collapsed .nav a { justify-content: flex-start; padding: 12px 12px; gap: 11px; }
  .side.collapsed .nav-lbl { font-size: 11px; padding: 13px 10px 8px; pointer-events: auto; cursor: pointer; }
  .side.collapsed .nav-chev { display: block; }
  .side.collapsed .nav-group.is-closed .nav-list { grid-template-rows: 0fr; }

  /* La page ne défile plus derrière le tiroir ouvert. */
  body.nav-open { overflow: hidden; }
}

/* ══════════════════ 3. Barre haute ══════════════════ */

@media (max-width: 760px) {
  .top {
    height: 58px; padding: 0 12px; gap: 9px;
    padding-top: env(safe-area-inset-top);
    height: calc(58px + env(safe-area-inset-top));
  }
  .top h1 { font-size: 16.5px; }
  /* La recherche portait le margin-left:auto qui repoussait les actions à
   * droite ; masquée, il faut le rendre au bloc du titre. */
  .top > div:not(.search):not(.role-sel) { min-width: 0; margin-right: auto; }
  .top h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .top .sub { display: none; }
  .role-sel { padding: 7px 10px; font-size: 12px; max-width: 132px; }
  .role-sel span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .view { padding: 14px 12px calc(24px + env(safe-area-inset-bottom)); }
}

@media (max-width: 480px) {
  /* Sur petit écran, le rôle est déjà rappelé dans le tiroir : on garde les
   * actions (alertes, déconnexion) qui, elles, ne sont accessibles qu'ici. */
  .role-sel { display: none; }
  .top h1 { font-size: 15.5px; }
}

/* ══════════════════ 4. Tableaux → fiches empilées (≤ 640px) ══════════════════
 * Un tableau de huit colonnes ne se lit pas sur un téléphone, et le défilement
 * horizontal fait perdre la colonne d'identité. Chaque ligne devient une fiche ;
 * l'intitulé de colonne est ajouté automatiquement par le module mobile intégré. */

@media (max-width: 640px) {
  .tbl-wrap { border: none; background: none; box-shadow: none; overflow: visible; }

  .tbl-tools {
    padding: 0 0 12px; border-bottom: none;
    gap: 8px; overflow-x: auto; flex-wrap: nowrap;
    scrollbar-width: none;
  }
  .tbl-tools::-webkit-scrollbar { display: none; }
  .tbl-tools .filt { flex-shrink: 0; }
  .tbl-tools .sp { display: none; }
  .tbl-tools .cnt { flex-shrink: 0; }

  .tbl-wrap table,
  .tbl-wrap tbody,
  .tbl-wrap tr,
  .tbl-wrap td { display: block; width: auto; }

  .tbl-wrap thead { display: none; }

  .tbl-wrap tr {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
    margin-bottom: 10px;
    padding: 4px 0;
    overflow: hidden;
  }
  .tbl-wrap tbody tr:hover { background: var(--card); }

  .tbl-wrap td {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; text-align: right;
    padding: 9px 14px; border-bottom: 1px solid var(--line-2);
    font-size: 13.5px;
  }
  .tbl-wrap tr td:last-child { border-bottom: none; }

  .tbl-wrap td::before {
    content: attr(data-l);
    flex: 0 0 40%; text-align: left;
    font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase;
    color: var(--text-2); font-weight: 600; line-height: 1.3;
  }
  /* Cellule sans intitulé (actions, cases à cocher) : pas de colonne fantôme. */
  .tbl-wrap td[data-l=""]::before,
  .tbl-wrap td:not([data-l])::before { display: none; }

  /* La première cellule fait office d'en-tête de fiche. */
  .tbl-wrap tr td:first-child {
    background: #F6F8F9; text-align: left;
    padding: 11px 14px; font-weight: 600;
  }
  .tbl-wrap tr td:first-child::before { display: none; }
  .tbl-wrap .co-cell { justify-content: flex-start; }
  .tbl-wrap .money { text-align: right; }

  /* Les boutons d'action d'une ligne s'alignent et respirent. */
  .tbl-wrap td .btn { padding: 8px 13px; font-size: 12.5px; min-height: 38px; }
  .tbl-wrap td:has(.btn) { justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
}

/* Tableaux qui ne se prêtent pas à l'empilement (matrices, comparatifs) :
 * défilement horizontal assumé, avec la première colonne figée pour ne pas
 * perdre le repère. Le module mobile intégré pose la classe .scroll-x sur les tableaux
 * hors .tbl-wrap. */
.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 640px) {
  .scroll-x > table { min-width: 560px; }
  .matrix-wrap { -webkit-overflow-scrolling: touch; }
  .matrix-wrap table { min-width: 560px; }
}

/* ══════════════════ 5. Kanban ══════════════════ */

@media (max-width: 760px) {
  .kanban {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
    margin-left: -12px; margin-right: -12px;   /* bord à bord */
    padding-left: 12px; padding-right: 12px;
  }
  .kanban > * {
    scroll-snap-align: start;
    flex: 0 0 min(80vw, 300px);
    width: min(80vw, 300px);
  }
  .card { cursor: default; }                    /* le glisser-déposer n'a pas de sens au doigt */
}

/* ══════════════════ 6. Modales → feuille inférieure ══════════════════
 * Au pouce, le haut de l'écran est hors de portée. Les modales remontent depuis
 * le bas, où se trouvent naturellement les doigts. */

@media (max-width: 640px) {
  .modal-overlay { padding: 0; align-items: flex-end; }
  .modal-card,
  .modal-card.modal-wide,
  .modal-card.modal-xwide {
    max-width: 100% !important;
    width: 100% !important;
    max-height: 92dvh;
    border-radius: 18px 18px 0 0;
    animation: pa-sheet .26s cubic-bezier(.4, 0, .2, 1);
    padding-bottom: env(safe-area-inset-bottom);
  }
  @keyframes pa-sheet { from { transform: translateY(100%); } to { transform: none; } }

  /* Poignée visuelle : indique que la feuille se ferme. */
  .modal-h {
    position: sticky; top: 0; z-index: 2;
    background: var(--card);
    padding: 14px 16px;
  }
  .modal-h::before {
    content: ""; position: absolute; top: 6px; left: 50%; transform: translateX(-50%);
    width: 36px; height: 4px; border-radius: 4px; background: var(--line);
  }
  .modal-b { padding: 14px 16px 20px; }
  .modal-b .frow { grid-template-columns: 1fr !important; }
  /* Les boutons de validation restent visibles, jamais à chercher au défilement. */
  .modal-b .actions {
    position: sticky; bottom: 0;
    background: var(--card); padding: 12px 0 4px;
    border-top: 1px solid var(--line-2); margin-top: 14px;
  }
  .modal-b .actions .btn { flex: 1; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .modal-card { animation: none !important; }
}

/* ══════════════════ 7. Grilles et blocs (≤ 640px / ≤ 380px) ══════════════════ */

@media (max-width: 640px) {
  .kpis, .kpis-5, .act-kpis, .ap-kpis,
  .cp-situ, .dg-band, .dg-ob, .me-stats,
  .perf-stats, .perf-disc, .disc-grid, .dp-band, .dp-synth,
  .cot-cols, .doc-cats { grid-template-columns: repeat(2, 1fr) !important; }

  .grid-2, .grid-3, .grid-2b, .fiche, .sx-g, .dg-igp, .dg-grid2,
  .obj-grid, .pri-grid, .dos-grid, .perf-obj, .prof-grid { grid-template-columns: 1fr !important; }

  .kpi { padding: 13px 14px; }
  .kpi .num { font-size: 23px; }
  .kpi .lbl { font-size: 10px; }

  .sec-h { margin: 20px 0 11px; }
  .sec-h h2 { font-size: 15px; }
  .rail-card { padding: 15px 14px; }
  .rail-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .rail-head .legend { flex-wrap: wrap; gap: 10px; }

  /* Barres de filtres, onglets, segments : défilement horizontal discret. */
  .dash-tabs {
    display: flex; flex-wrap: nowrap; overflow-x: auto;
    scrollbar-width: none; max-width: 100%;
  }
  .dash-tabs::-webkit-scrollbar { display: none; }
  .dash-tabs button { flex-shrink: 0; }

  .chips, .tabs, .segbar, .filters {
    display: flex; flex-wrap: nowrap; overflow-x: auto;
    gap: 8px; scrollbar-width: none;
    margin-left: -12px; margin-right: -12px;
    padding: 0 12px 4px;
  }
  .chips::-webkit-scrollbar, .tabs::-webkit-scrollbar,
  .segbar::-webkit-scrollbar, .filters::-webkit-scrollbar { display: none; }
  .chips > *, .tabs > *, .segbar > *, .filters > * { flex-shrink: 0; }
}

@media (max-width: 380px) {
  .kpis, .kpis-5, .act-kpis, .ap-kpis, .cp-situ,
  .dg-band, .dg-ob, .me-stats, .perf-stats,
  .perf-disc, .disc-grid, .dp-band, .dp-synth,
  .cot-cols, .doc-cats, .ao-tiles { grid-template-columns: 1fr !important; }

  .view { padding: 12px 10px calc(20px + env(safe-area-inset-bottom)); }
  .top { padding: 0 10px; gap: 7px; }
  .btn { padding: 10px 14px; font-size: 12.5px; }
  .tbl-wrap td { padding: 8px 12px; font-size: 13px; }
}

/* ══════════════════ 8. Écran de connexion ══════════════════ */

@media (max-width: 640px) {
  #auth { padding: 16px; }
  .auth-card { border-radius: 14px; }
  .auth-right { display: none; }   /* liste des comptes de démonstration */
}

/* ══════════════════ 9. Notifications ══════════════════ */

@media (max-width: 640px) {
  .toast-wrap {
    left: 10px; right: 10px; bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
  }
  .toast-wrap > * { width: 100%; }
}

/* ══════════════════ 10. Impression ══════════════════ */

@media print {
  #pa-scrim, .side, .top, .toast-wrap { display: none !important; }
  .view { padding: 0 !important; }
  .tbl-wrap table, .tbl-wrap thead, .tbl-wrap tr, .tbl-wrap td { display: revert !important; }
  .tbl-wrap td::before { display: none !important; }
}


