/* Achats AAZ Laser — système visuel.
   Thème sombre par défaut (bleu nuit, comme l'ERP de l'atelier), thème clair au choix.
   Formes arrondies, Barlow pour le texte, Barlow Condensed pour les titres et les chiffres, rouge AAZ pour l'action. */
@font-face{font-family:'Barlow';src:url(/fonts/barlow-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Barlow';src:url(/fonts/barlow-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Barlow';src:url(/fonts/barlow-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow';src:url(/fonts/barlow-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(/fonts/barlowc-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(/fonts/barlowc-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(/fonts/barlowc-800.woff2) format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url(/fonts/jbmono.woff2) format('woff2');font-weight:100 800;font-display:swap}

:root{
  color-scheme:dark;
  --bg:#080d18; --bg2:#0b1222; --side:#0a1020; --card:#0f1829; --card2:#132036; --raise:#18263f;
  --line:#1b2a43; --line2:#263955; --ink:#e8edf6; --ink2:#c3cddd; --muted:#8693aa; --dim:#5d6a82;
  --acc:#ec2a32; --acc-hi:#ff444b; --acc-ink:#fff; --acc-soft:rgba(236,42,50,.14); --acc-line:rgba(236,42,50,.45);
  --blue:#4f9cf9; --green:#2fca72; --amber:#f5a524; --red:#f04452; --violet:#a78bfa; --cyan:#33c6e0;
  --blue-s:rgba(79,156,249,.14); --green-s:rgba(47,202,114,.13); --amber-s:rgba(245,165,36,.14); --red-s:rgba(240,68,82,.14); --violet-s:rgba(167,139,250,.15);
  --f1:#3987e5; --f2:#d95926; --f3:#199e70; --f4:#c98500; --f5:#d55181; --f6:#008300; --f7:#9085e9;
  --field:#0b1324; --shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 10px 30px -18px rgba(0,0,0,.7);
  --scrim:rgba(3,6,14,.66); --r:14px; --r2:10px; --ease:cubic-bezier(.23,1,.32,1);
  --ft:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif; --fc:'Barlow Condensed','Barlow',system-ui,sans-serif; --fm:'JetBrains Mono',ui-monospace,monospace;
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#eef2f8; --bg2:#e6ebf3; --side:#ffffff; --card:#ffffff; --card2:#f6f8fc; --raise:#eef2f8;
  --line:#e2e7f0; --line2:#cfd7e4; --ink:#0f1a2e; --ink2:#334159; --muted:#5f6c84; --dim:#8a96ab;
  --acc:#d3141c; --acc-hi:#e8252d; --acc-soft:rgba(211,20,28,.09); --acc-line:rgba(211,20,28,.35);
  --blue:#1f6fe0; --green:#15934f; --amber:#b77500; --red:#d62839; --violet:#6e4fd8; --cyan:#0e8ba3;
  --blue-s:#e6effd; --green-s:#e3f5ea; --amber-s:#fdf1d8; --red-s:#fde8ea; --violet-s:#efeafd;
  --f1:#2a78d6; --f2:#eb6834; --f3:#1baf7a; --f4:#eda100; --f5:#e87ba4; --f6:#008300; --f7:#6250d6;
  --field:#ffffff; --shadow:0 1px 2px rgba(15,26,46,.05), 0 8px 24px -16px rgba(15,26,46,.18); --scrim:rgba(15,26,46,.38);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--ft);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:'tnum' 0}
#root,#layer,#toasts{position:relative;z-index:1}
h1,h2,h3,h4{margin:0;text-wrap:balance}
h1{font-family:var(--fc);font-size:34px;line-height:1.05;font-weight:800;letter-spacing:-.005em}
h2{font-family:var(--fc);font-size:21px;line-height:1.15;font-weight:700;letter-spacing:.005em}
h3,.cap{font-size:11.5px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:700}
p{margin:0}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
.mono{font-variant-numeric:tabular-nums}
b.mono,a.mono,.mono>b,.ref{font-family:var(--fm);font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.num{font-variant-numeric:tabular-nums}
.muted,.sub{color:var(--muted)} .sub{font-size:13px} .dim{color:var(--dim)}
.r{text-align:right} .c{text-align:center}
button,input,select,textarea{font:inherit;color:inherit}
.i{width:18px;height:18px;flex:none;display:inline-block;vertical-align:-3px}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}
::selection{background:var(--acc-soft)}

/* ---------- coque ---------- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px 12px;gap:6px;overflow-y:auto}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:4px 8px 14px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.brand .plate{background:#06070a;border-radius:12px;padding:8px 12px;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.brand img{display:block;height:46px;width:auto}
.brand small{font-family:var(--fc);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:700;padding-left:2px}
.nav-cap{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:700;padding:14px 12px 6px}
.nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r2);color:var(--ink2);font-weight:600;font-size:15px;text-decoration:none;position:relative;transition:background .15s,color .15s}
.nav a .i{color:var(--muted);transition:color .15s}
.nav a:hover{background:var(--card2);color:var(--ink)} .nav a:hover .i{color:var(--ink)}
.nav a[aria-current="page"]{background:var(--card2);color:var(--ink)} .nav a[aria-current="page"] .i{color:var(--acc)}
.nav a[aria-current="page"]::before{content:'';position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--acc)}
.nav .badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--raise);color:var(--ink2);font-size:12px;font-weight:700;display:grid;place-items:center}
.nav .badge.hot{background:var(--acc);color:#fff}
.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.me{display:flex;align-items:center;gap:10px;padding:6px 8px}
.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--acc-soft);color:var(--acc);font-weight:700;font-family:var(--fc);font-size:17px;flex:none;border:1px solid var(--acc-line)}
.me div{display:flex;flex-direction:column;min-width:0;line-height:1.25} .me b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .me span{font-size:12.5px;color:var(--muted)}
.foot-btns{display:flex;gap:6px} .foot-btns .btn{flex:1;justify-content:center}
main{min-width:0;padding:26px 30px 60px;display:flex;flex-direction:column;gap:20px;max-width:1500px;width:100%}

/* ---------- en-tête de page ---------- */
.top,.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.head p,.top p{color:var(--muted);margin-top:6px;max-width:72ch}
.card table{min-width:640px}
.head .eyebrow{font-size:13px;color:var(--muted);margin:0 0 4px;font-weight:600}
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- boutons, puces, étiquettes ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--r2);border:1px solid var(--line2);background:var(--card2);color:var(--ink);cursor:pointer;font-weight:650;font-size:14.5px;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,transform .14s var(--ease),box-shadow .2s}
.btn:hover{border-color:var(--dim);text-decoration:none} .btn:active{transform:scale(.97)}
.btn .i{width:17px;height:17px}
.btn.pri{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);box-shadow:0 6px 18px -8px var(--acc-line)}
.btn.pri:hover{background:var(--acc-hi);border-color:var(--acc-hi)}
.btn.ghost{background:transparent} .btn.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent);background:var(--green-s)}
.btn.danger{color:var(--red);background:transparent;border-color:color-mix(in srgb,var(--red) 40%,transparent)} .btn.danger:hover{background:var(--red-s)}
.btn.sm{height:32px;padding:0 12px;font-size:13.5px;border-radius:9px} .btn.icon{width:40px;padding:0;justify-content:center} .btn.sm.icon{width:32px}
.btn[disabled]{opacity:.4;pointer-events:none}
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:650;white-space:nowrap;background:var(--raise);color:var(--ink2)}
.pill::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.pill.plain::before{display:none}
.pill.info{background:var(--blue-s);color:var(--blue)} .pill.ok{background:var(--green-s);color:var(--green)} .pill.warn{background:var(--amber-s);color:var(--amber)} .pill.bad{background:var(--red-s);color:var(--red)} .pill.vio{background:var(--violet-s);color:var(--violet)}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:700;color:#fff;background:var(--fam,var(--dim));white-space:nowrap;letter-spacing:.01em}
.tag.soft{background:color-mix(in srgb,var(--fam,var(--dim)) 18%,transparent);color:color-mix(in srgb,var(--fam,var(--dim)) 75%,var(--ink))}
.fam1{--fam:var(--f1)} .fam2{--fam:var(--f2)} .fam3{--fam:var(--f3)} .fam4{--fam:var(--f4)} .fam5{--fam:var(--f5)} .fam6{--fam:var(--f6)} .fam7{--fam:var(--f7)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--fam,var(--dim));flex:none}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{height:36px;padding:0 14px;border-radius:var(--r2);border:1px solid var(--line2);background:var(--card);color:var(--ink2);cursor:pointer;font-weight:650;font-size:14px;transition:background .15s,color .15s,border-color .15s}
.seg button:hover{color:var(--ink);border-color:var(--dim)}
.seg button[aria-pressed="true"]{background:var(--acc);color:#fff;border-color:var(--acc)}
.seg .n{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:rgba(255,255,255,.12);font-size:11.5px;margin-left:6px;padding:0 6px}
.badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--raise);font-size:12px;font-weight:700}

/* ---------- cartes ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.card>header,.card-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line)}
.card>header>div:first-child,.card-h>div:first-child{display:flex;flex-direction:column;gap:2px}
.card-b{padding:18px 20px} .pad{padding:18px 20px}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cols.w21{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.cols.w3{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ---------- chiffres clés ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.kpi{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);color:var(--ink);text-decoration:none;min-width:0;overflow:hidden;transition:border-color .15s,transform .14s var(--ease)}
a.kpi:hover{border-color:var(--line2);text-decoration:none} a.kpi:active{transform:scale(.985)}
.kpi>span{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi b{font-family:var(--fc);font-size:42px;font-weight:800;line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi small{color:var(--muted);font-size:13.5px}
.kpi .i.bg{position:absolute;right:16px;top:16px;width:22px;height:22px;opacity:.55}
.c-blue{color:var(--blue)} .c-green{color:var(--green)} .c-amber{color:var(--amber)} .c-red{color:var(--red)} .c-violet{color:var(--violet)} .c-cyan{color:var(--cyan)} .c-ink{color:var(--ink)}
.delta{font-weight:700} .delta.up{color:var(--red)} .delta.down{color:var(--green)}
.spark{position:absolute;right:16px;bottom:16px;width:104px;height:34px}
.spark .ln{fill:none;stroke:var(--f1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark .area{fill:color-mix(in srgb,var(--f1) 18%,transparent)} .spark circle{fill:var(--f1);stroke:var(--card);stroke-width:2}

/* ---------- tableaux ---------- */
.scroll{overflow-x:auto}
table{border-collapse:separate;border-spacing:0;width:100%}
.tbl{min-width:680px}
:is(.tbl,.card table,.drawer table) th{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--card)}
:is(.tbl,.card table,.drawer table) td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
:is(.tbl,.card table,.drawer table) tbody tr:last-child td{border-bottom:0}
tr.row{cursor:pointer} tr.row td{transition:background .12s} tr.row:hover td{background:var(--card2)}
td b{font-weight:650}
tr.grp td{background:var(--bg2);font-family:var(--fc);font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding:10px 16px}
tr.grp td .sub{font-family:var(--ft);text-transform:none;letter-spacing:0;font-weight:500;margin-left:10px}
tr.best td{background:var(--green-s)}
td.best{background:var(--green-s)} td.best b{color:var(--green)}
tfoot td{border-top:1px solid var(--line2);border-bottom:0;font-weight:650}
.ref{font-family:var(--fm);font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.cell2{display:flex;flex-direction:column;gap:1px;min-width:0} .cell2 small{color:var(--muted);font-size:12.5px}
.empty{padding:40px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:6px}
.empty .i{width:30px;height:30px;color:var(--dim);margin-bottom:4px}
.empty b{color:var(--ink);font-family:var(--fc);font-size:19px;font-weight:700}
.mini{display:flex;align-items:center;gap:8px} .mini .bar{width:84px}
.bar{height:5px;border-radius:3px;background:var(--raise);overflow:hidden;display:block}
.bar i{display:block;height:100%;width:calc(var(--w,0)*100%);border-radius:3px;background:var(--green)}
.bar i.warn{background:var(--amber)} .bar i.bad{background:var(--red)} .bar i.blue{background:var(--blue)} .bar i.fam{background:var(--fam)}

/* ---------- formulaires ---------- */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0} .field.wide{grid-column:1/-1}
.field>label,.lbl{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
input,select,textarea{height:42px;background:var(--field);border:1px solid var(--line2);border-radius:var(--r2);padding:0 13px;width:100%;min-width:0;color:var(--ink);transition:border-color .15s,box-shadow .15s}
textarea{height:auto;min-height:84px;padding:10px 13px;resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-s)}
input::placeholder,textarea::placeholder{color:var(--dim)}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--acc);flex:none}
input[type=date]{color-scheme:inherit}
.chk{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;min-height:42px}
.note{font-size:13.5px;color:var(--muted);background:var(--card2);border:1px solid var(--line);border-radius:var(--r2);padding:12px 14px}
.err-msg{color:var(--red);font-size:13.5px;min-height:18px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.facts>div{background:var(--card2);border:1px solid var(--line);border-radius:var(--r2);padding:11px 14px;min-width:0}
.facts span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:3px}
.facts b{font-weight:650;overflow-wrap:anywhere}

/* ---------- demandes : cycle, lignes, fournisseurs ---------- */
.steps5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps5 li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--dim);padding:8px 10px;border-radius:9px;background:var(--card2);min-width:0}
.steps5 li i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;border:1px solid var(--line2);flex:none}
.steps5 li.done{color:var(--green)} .steps5 li.done i{background:var(--green);border-color:var(--green);color:#06120a}
.steps5 li.cur{color:var(--ink);background:var(--acc-soft);box-shadow:inset 0 0 0 1px var(--acc-line)} .steps5 li.cur i{background:var(--acc);border-color:var(--acc);color:#fff}
.steps5 li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prog{display:inline-flex;gap:3px;vertical-align:middle} .prog i{width:16px;height:5px;border-radius:3px;background:var(--line2)} .prog i.d{background:var(--green)} .prog i.c{background:var(--acc)}
.lines-ed{display:flex;flex-direction:column;gap:10px}
.lrow{display:grid;grid-template-columns:34px repeat(4,minmax(0,1fr)) 40px;gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}
.lrow .no{align-self:center;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--raise);font-weight:700;font-family:var(--fc);font-size:15px}
.lrow .r2{grid-column:2 / span 4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.lrow .r3{grid-column:2 / span 4} .lnote{margin-top:3px;font-size:12.5px;color:var(--amber);font-weight:600}
.lrow .conv{grid-column:2 / span 4;color:var(--green);font-weight:650;font-size:13px;min-height:18px}
.lrow .del{align-self:start}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--line2);background:var(--card2);cursor:pointer;font-weight:650;display:inline-flex;align-items:center;gap:8px;transition:all .15s var(--ease)}
.chip:hover{border-color:var(--dim)} .chip:active{transform:scale(.97)}
.chip[aria-pressed="true"]{background:var(--blue-s);border-color:var(--blue);color:var(--ink)} .chip[aria-pressed="true"] .i{color:var(--blue)}
.chip .i{width:16px;height:16px;color:var(--dim)}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:0 8px}
.tabs button{height:44px;padding:0 14px;border:0;background:none;color:var(--muted);cursor:pointer;font-weight:650;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:8px;transition:color .15s}
.tabs button:hover{color:var(--ink)} .tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--acc)}
.tabs .dot{width:8px;height:8px}
.dot.st-ok{background:var(--green)} .dot.st-warn{background:var(--amber)} .dot.st-info{background:var(--blue)} .dot.st-off{background:var(--dim)}
.sup-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sup-head b{font-family:var(--fc);font-size:20px;font-weight:700}
.pxin{display:flex;gap:6px;justify-content:flex-end} .pxin input{width:112px;text-align:right} .pxin select{width:118px}
input.cc{width:96px;text-align:right} input.cc.ask{border-color:var(--amber);background:var(--amber-s)}
.totbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding:16px 18px;background:var(--card2);border:1px solid var(--line);border-radius:12px}
.totbar>div:first-child{display:flex;flex-direction:column}
.totbar b{font-family:var(--fc);font-size:32px;font-weight:800;line-height:1.1}
.cmp td:first-child,.cmp th:first-child{min-width:210px}

/* ---------- tableau de bord ---------- */
.pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:16px}
.pipe a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:12px;background:var(--card2);border:1px solid var(--line);color:var(--ink);text-decoration:none;height:100%;position:relative;overflow:hidden;transition:border-color .15s,transform .14s var(--ease)}
.pipe a:hover{border-color:var(--line2);text-decoration:none} .pipe a:active{transform:scale(.985)}
.pipe a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--st,var(--line2));opacity:.9}
.pipe .n{font-family:var(--fc);font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.pipe b{font-family:var(--fc);font-size:40px;font-weight:800;line-height:1.05;color:var(--st,var(--ink))}
.pipe small{color:var(--muted);font-size:13px}
.pipe .zero b{color:var(--dim)}
.list{display:flex;flex-direction:column}
.item{display:flex;gap:14px;align-items:center;padding:12px 20px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);text-decoration:none;width:100%;transition:background .12s}
.item:last-child{border-bottom:0} .item:hover{background:var(--card2);text-decoration:none}
.item .grow{display:flex;flex-direction:column;min-width:0;flex:1}
.item .grow b{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .item small{color:var(--muted);font-size:12.5px}
.item .end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.cal{flex:none;width:46px;height:48px;border-radius:11px;background:var(--card2);border:1px solid var(--line2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.cal b{font-family:var(--fc);font-size:21px;font-weight:800} .cal small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;margin-top:2px;color:var(--muted)}
.cal.bad{background:var(--red-s);border-color:transparent;color:var(--red)} .cal.bad small{color:var(--red)}
.cal.warn{background:var(--amber-s);border-color:transparent;color:var(--amber)} .cal.warn small{color:var(--amber)}
.cal.none{border-style:dashed} .cal.none b{color:var(--dim)}
.ico{flex:none;width:46px;height:48px;border-radius:11px;display:grid;place-items:center;background:var(--card2);border:1px solid var(--line2);color:var(--ink2)}
.ico.bad{background:var(--red-s);color:var(--red);border-color:transparent} .ico.blue{background:var(--blue-s);color:var(--blue);border-color:transparent} .ico.amber{background:var(--amber-s);color:var(--amber);border-color:transparent}
.ico .i{width:20px;height:20px}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)} .legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:10px;height:10px;border-radius:3px;background:var(--fam,var(--dim))}
.chart2{width:100%;height:auto;display:block;overflow:visible}
.chart2 text{fill:var(--muted);font-size:11.5px;font-family:var(--ft)} .chart2 .x{font-size:12.5px} .chart2 .cur .x{fill:var(--ink);font-weight:700}
.chart2 .grid{stroke:var(--line);stroke-width:1} .chart2 .grid.base{stroke:var(--line2)}
.chart2 .seg{fill:var(--fam)} .chart2 .hit{fill:transparent} .chart2 .col:hover .hit{fill:var(--card2)}
.chart2:hover .col:not(:hover) .seg{opacity:.45} .chart2 .seg{transition:opacity .15s}
.hero{display:flex;align-items:flex-end;gap:14px}
.hero b{font-family:var(--fc);font-size:64px;line-height:.95;font-weight:800;color:var(--green)} .hero b em{font-style:normal;font-size:30px;color:var(--muted)}
.rates{display:flex;flex-direction:column;gap:11px}
.rate{display:grid;grid-template-columns:minmax(0,1fr) 110px 48px;gap:12px;align-items:center;font-size:14px}
.rate>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .rate b{text-align:right;font-weight:700}
.tip{position:fixed;z-index:60;pointer-events:none;background:var(--raise);color:var(--ink);border:1px solid var(--line2);font-size:13px;font-weight:550;padding:8px 11px;border-radius:10px;max-width:320px;box-shadow:0 12px 30px -12px rgba(0,0,0,.6);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s var(--ease)}
.tip.on{opacity:1;transform:none}
.tip b{display:block;font-family:var(--fc);font-size:16px}

/* ---------- analytique ---------- */
.tree td{padding-top:11px;padding-bottom:11px}
.tree tr.l0 td{background:var(--card2);font-weight:650}
.tree tr.l0 td:first-child{font-family:var(--fc);font-size:18px;font-weight:700;letter-spacing:.02em}
.tree tr.l1 td:first-child{padding-left:42px} .tree tr.l2 td:first-child{padding-left:72px;color:var(--ink2)}
.tree .tg{display:inline-flex;align-items:center;gap:10px;cursor:pointer;border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left}
.tree .tg .i{width:16px;height:16px;color:var(--muted);transition:transform .18s var(--ease)} .tree .tg[aria-expanded="true"] .i{transform:rotate(90deg)}
.tree .share{display:flex;align-items:center;gap:8px;justify-content:flex-end} .tree .share .bar{width:70px}
.rank{display:flex;flex-direction:column;gap:10px}
.rank>div{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center}
.rank .k{font-family:var(--fc);font-weight:800;color:var(--dim);font-size:16px}
.rank .nm{display:flex;flex-direction:column;gap:5px;min-width:0} .rank .nm span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.rank .v{text-align:right;font-weight:700} .rank .v small{display:block;font-weight:500;color:var(--muted)}
.donut-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.split{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px} .split i{display:block;width:calc(var(--w,0)*100%);background:var(--fam)}
.trend.up{color:var(--red)} .trend.down{color:var(--green)}
.sparkline{width:96px;height:28px} .sparkline polyline{fill:none;stroke:var(--fam,var(--blue));stroke-width:2;stroke-linejoin:round;stroke-linecap:round}

/* ---------- fenêtres latérales ---------- */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:20;display:flex;justify-content:flex-end;animation:fade .18s;backdrop-filter:blur(2px)}
.drawer{width:min(980px,100%);height:100%;overflow-y:auto;background:var(--bg);border-left:1px solid var(--line2);display:flex;flex-direction:column;animation:slide .26s var(--ease);border-radius:18px 0 0 18px}
.drawer>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);z-index:3}
.drawer>header h2{font-size:26px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.drawer>.body{padding:22px 26px;display:flex;flex-direction:column;gap:22px;min-width:0;flex:1}
.drawer>footer{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding:14px 26px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);position:sticky;bottom:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px)}
.drawer .card{box-shadow:none}
.sec{display:flex;flex-direction:column;gap:10px} .sec>.sec-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
@keyframes slide{from{transform:translateX(48px);opacity:0}} @keyframes fade{from{opacity:0}}
.scrim.still,.scrim.still .drawer{animation:none}
.hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14px}
.hist li{display:flex;gap:12px} .hist time{color:var(--muted);font-family:var(--fm);font-size:12.5px;flex:none;min-width:84px}
.lines{display:flex;flex-direction:column;gap:8px}
.line-ed{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line)} .line-ed:last-child{border-bottom:0}
.line-x{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px} .line-x label{display:flex;align-items:center;gap:6px} .line-x input{width:96px}
.line{display:grid;grid-template-columns:minmax(0,3fr) 90px 100px 110px 40px;gap:8px;align-items:center}
.recv{display:grid;grid-template-columns:minmax(0,2fr) 120px 150px;gap:8px 12px;align-items:center}
.recv .h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.recv-box{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:18px;border:1px solid var(--line2);border-radius:12px;background:var(--card2)}
.recv-box.col{flex-direction:column;align-items:stretch} .recv-box>header{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.mt{margin-top:14px}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 18px}
.perm-grid label{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer} .perm-grid input{margin-top:2px}
.cat-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line)} .cat-head input:first-child{width:240px;font-weight:700} .cat-head .num{width:110px}
.cat{display:flex;flex-direction:column;gap:8px}
.cat-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 130px auto auto;gap:8px;align-items:center}
.cat-row.add{padding-top:10px;border-top:1px dashed var(--line2)}
.toasts-wrap{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:70}
.toast{background:var(--raise);color:var(--ink);border:1px solid var(--line2);padding:11px 18px;border-radius:12px;font-weight:650;box-shadow:0 14px 34px -14px rgba(0,0,0,.6);animation:fade .2s;display:flex;align-items:center;gap:10px}
.toast::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--green)} .toast.err::before{background:var(--red)}

/* ---------- connexion ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--acc) 10%,transparent),transparent 60%),var(--bg)}
.login .box{width:min(460px,100%);padding:30px;display:flex;flex-direction:column;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.login .plate{background:#06070a;border-radius:14px;padding:18px 22px;align-self:stretch} .login .plate img{display:block;width:100%;max-width:280px;margin:0 auto}
.login h2{font-size:26px}
.profiles{display:grid;gap:8px}
.profile{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--card2);cursor:pointer;transition:border-color .15s,transform .14s var(--ease)}
.profile:hover{border-color:var(--acc-line)} .profile:active{transform:scale(.985)}
.profile>div{flex:1;display:flex;flex-direction:column} .profile b{font-weight:700} .profile span{font-size:13px;color:var(--muted)}

/* ---------- bandeau version de test ---------- */
.demo-bar{position:relative;z-index:15;display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:8px 20px;background:linear-gradient(90deg,var(--acc),#a50f15);color:#fff;font-size:13.5px;font-weight:600}
.demo-bar .tools{gap:8px} .demo-bar select{height:32px;width:auto;background-color:rgba(0,0,0,.2);border-color:rgba(255,255,255,.35);color:#fff;border-radius:8px;font-size:13.5px}
.demo-bar select option{color:#111}
.demo-bar .btn{height:32px;background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.35);color:#fff;font-size:13.5px}

/* ---------- adaptatif ---------- */
@media (max-width:1100px){.cols.w21,.cols.w3{grid-template-columns:minmax(0,1fr)}.pipe{grid-template-columns:repeat(5,minmax(130px,1fr));overflow-x:auto}}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;flex-direction:column;padding:12px}
  .brand{flex-direction:row;align-items:center;justify-content:space-between;border:0;padding:0 4px 8px;margin:0} .brand img{height:36px}
  .nav{display:flex;overflow-x:auto;gap:4px;padding-bottom:4px} .nav-cap{display:none} .nav a{white-space:nowrap;padding:8px 12px} .nav a[aria-current="page"]::before{display:none}
  .side-foot{flex-direction:row;align-items:center;justify-content:space-between;margin-top:6px}
  main{padding:18px 16px 50px}
  .cols{grid-template-columns:minmax(0,1fr)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px} .kpi{padding:14px} .kpi b{font-size:32px} .kpi .i.bg,.spark{display:none}
  h1{font-size:28px}
  .lrow{grid-template-columns:30px repeat(2,minmax(0,1fr)) 36px} .lrow .r2{grid-column:2 / span 2;grid-template-columns:repeat(2,minmax(0,1fr))} .lrow .conv{grid-column:2 / span 2} .lrow .r3{grid-column:2 / span 2}
  .steps5{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}
  .line{grid-template-columns:minmax(0,1fr) 1fr 1fr} .line .d{grid-column:1/-1}
  .recv{grid-template-columns:minmax(0,1fr) 100px} .recv .h:nth-child(3),.recv .bl{display:none}
  .cat-row{grid-template-columns:minmax(0,1fr) 110px} .cat-row .sub{display:none}
  .drawer{border-radius:0} .drawer>header,.drawer>.body,.drawer>footer{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.side,.demo-bar,.tools,.seg{display:none!important}.app{display:block}}

/* compatibilité : classes héritées des vues secondaires */
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ddp-row{display:grid;grid-template-columns:minmax(0,1.4fr) auto auto;gap:8px 14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}
.ddp-row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pick{display:flex;flex-direction:column;gap:6px} .pick label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.field.chk{flex-direction:row;align-items:center;gap:10px;cursor:pointer}
.bars{display:flex;flex-direction:column;gap:10px;padding:16px 20px}
.hb{display:grid;grid-template-columns:minmax(110px,200px) minmax(0,1fr) auto;gap:12px;align-items:center;font-size:14px}
.hb .track{height:8px;border-radius:4px;background:var(--raise);overflow:hidden} .hb .fill{display:block;width:calc(var(--w,0)*100%);height:100%;border-radius:4px;background:var(--f1)} .hb .fill.red{background:var(--f2)} .hb .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.link{font-weight:650;font-size:14px}
.big{font-family:var(--fc);font-size:22px;font-weight:800}
@media (max-width:900px){.cols2{grid-template-columns:minmax(0,1fr)}.ddp-row{grid-template-columns:minmax(0,1fr)}}

select.w-auto{width:auto;min-width:220px}
.pipe .st-amber{--st:var(--amber)} .pipe .st-blue{--st:var(--blue)} .pipe .st-violet{--st:var(--violet)} .pipe .st-cyan{--st:var(--cyan)} .pipe .st-green{--st:var(--green)}
.pipe .zero a{--st:var(--line2)}
.chart2 .seg.fam7{fill:var(--f7)} .chart2 .seg{fill:var(--fam)}
.bar.fam1,.bar.fam2,.bar.fam3,.bar.fam4,.bar.fam5,.bar.fam6,.bar.fam7{background:color-mix(in srgb,var(--fam) 14%,var(--raise))}
.kpi .i.bg.c-ink{color:var(--muted)}
.pchart .pl{fill:none;stroke:var(--fam);stroke-width:2;stroke-linejoin:round;opacity:.85}
.pchart .pp{fill:var(--fam);stroke:var(--card);stroke-width:2;cursor:pointer} .pchart .pp.po{fill:var(--card);stroke:var(--fam);stroke-width:2.5}
.pchart .pp:hover{r:7}
.tree tr.l1 td{background:transparent} .tree tr.l2 td{font-size:14px}
.tree .tg .i[class*="go"]{transform:none}
td.num,td .num,.tbl td.r{white-space:nowrap}
th .pill{text-transform:none;letter-spacing:0}
.drawer>header h2 .ref{font-family:var(--fc);font-size:26px;font-weight:800;letter-spacing:.01em}
.card>header>div.cat-head{flex-direction:row;align-items:center;gap:10px;padding:0;border:0}
.card>header>div.cat-head input:first-child{width:240px;font-family:var(--fc);font-size:18px;font-weight:700} .card>header>div.cat-head .num{width:110px}
/* ---- profils et connexion ---- */
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.role-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--line2);background:var(--card2);color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s,transform .16s var(--ease)}
.role-card b{font-family:var(--fc);font-size:16px;font-weight:700;letter-spacing:.01em} .role-card span{font-size:13px;color:var(--muted);line-height:1.4}
.role-card:hover{border-color:var(--muted)} .role-card:active{transform:scale(.985)}
.role-card[aria-pressed="true"]{border-color:var(--acc);background:var(--acc-soft);box-shadow:0 0 0 3px var(--acc-soft)}
.perm-more{margin-top:4px} .perm-more summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:13px;margin-bottom:10px}
.demo-note{text-align:center;margin:4px 0 0} .link-btn{background:none;border:0;padding:0;color:var(--acc);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
@media (max-width:860px){.roles{grid-template-columns:minmax(0,1fr)}}

/* ===== Besoins, sélection et demandes de prix (version épurée) ===== */
.seg button[aria-pressed="true"]{background:var(--raise);color:var(--ink);border-color:var(--line2);box-shadow:inset 0 -2px 0 var(--acc)}
.seg .cnt,.fchips .cnt{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--raise);font-size:11.5px;margin-left:6px;color:var(--ink2)}
.filters{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchips button,.fchk{height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);cursor:pointer;font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;gap:7px;transition:background .15s,border-color .15s,color .15s}
.fchips button:hover,.fchk:hover{border-color:var(--line2);color:var(--ink)}
.fchips button[aria-pressed="true"]{background:color-mix(in srgb,var(--fam,var(--ink)) 14%,transparent);border-color:color-mix(in srgb,var(--fam,var(--ink)) 55%,transparent);color:var(--ink)}
.fchk input{width:auto;margin:0} .fchk:has(input:checked){background:color-mix(in srgb,var(--fam) 14%,transparent);border-color:color-mix(in srgb,var(--fam) 55%,transparent);color:var(--ink)}
.fdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--fam,var(--muted));flex:none}
.card.flat{box-shadow:none}
table.bes{min-width:760px}
table.bes tbody.fam1,table.bes tbody.fam2,table.bes tbody.fam3,table.bes tbody.fam4,table.bes tbody.fam5,table.bes tbody.fam6,table.bes tbody.fam7{border-left:0}
table.bes .famrow td{background:transparent;padding:16px 16px 8px;border-bottom:1px solid var(--line)}
table.bes tbody:first-of-type .famrow td{padding-top:10px}
.famh{display:inline-flex;align-items:center;gap:10px} .famh b{font-family:var(--fc);font-size:15px;letter-spacing:.02em;text-transform:uppercase} .famh input{width:auto;margin:0}
table.bes tr.row td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--fam) 70%,transparent)}
.chkc{width:44px;text-align:center} .chkc input{width:17px;height:17px;margin:0;accent-color:var(--acc);cursor:pointer}
tr.row.on td{background:color-mix(in srgb,var(--acc) 7%,transparent)}
.selbar{position:sticky;bottom:12px;z-index:12;margin-top:6px}
.selbar-in{display:flex;justify-content:space-between;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:12px 14px 12px 18px;border-radius:14px;background:var(--raise);border:1px solid var(--line2);box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.sel-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap} .sel-info>b{font-family:var(--fc);font-size:17px}
.sel-kg{font-family:var(--fc);font-weight:700;font-size:17px}
.truck{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px} .truck .i{width:18px;height:18px}
.truck .gauge{width:90px;height:7px;border-radius:4px;background:var(--line);overflow:hidden} .truck .gauge i{display:block;height:100%;width:calc(var(--w,0)*100%);background:var(--blue);border-radius:4px}
.truck b{color:var(--ink);font-weight:700} .truck.full .gauge i{background:var(--green)} .truck.full b{color:var(--green)} .truck.over .gauge i{background:var(--amber)} .truck.over b{color:var(--amber)}
.chip-fams{display:inline-flex;gap:3px;margin-left:2px} .chip-fams .fdot{width:7px;height:7px}
.note.warn{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--ink2);background:var(--amber-s);border-color:color-mix(in srgb,var(--amber) 40%,transparent);margin-bottom:12px}
.ico.vio{background:var(--violet-s);color:var(--violet);border-color:transparent}
.ico.famico{background:color-mix(in srgb,var(--fam) 16%,transparent);border-color:transparent} .ico.famico .fdot{width:12px;height:12px}
.lrow{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--fam) 70%,transparent)}
.lrow .r3{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:end} .lrow .r3 .chk{padding-bottom:10px}
.sec-h .tools{gap:12px}
@media (max-width:860px){.selbar{bottom:8px}.selbar-in .tools{width:100%}.selbar-in .tools .btn{flex:1;justify-content:center}.lrow .r3{grid-template-columns:minmax(0,1fr)}.filters{align-items:flex-start}}
/* analytique regroupée par famille */
.famcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.famcard{padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 3px 0 var(--fam)}
.fc-h{display:flex;justify-content:space-between;align-items:center;gap:8px} .fc-h b{font-family:var(--fc);font-size:19px;letter-spacing:.01em} .fc-h .fdot{width:11px;height:11px}
.fc-k{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px} .fc-k span{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:650} .fc-k b{font-family:var(--fc);font-size:22px;font-weight:700}
.fc-top{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:8px}
.fc-r{display:flex;justify-content:space-between;gap:10px;padding:7px 0;background:none;border:0;color:var(--ink2);cursor:pointer;font:inherit;font-size:13.5px;text-align:left} .fc-r:hover{color:var(--ink)} .fc-r .num{font-weight:650}
.tbl .btn.icon.ghost{border-color:transparent;color:var(--muted)} .tbl .btn.icon.ghost:hover{color:var(--red);background:var(--red-s)}
/* références regroupées, pas à pas */
table.bes tr.refrow td{background:color-mix(in srgb,var(--fam) 5%,transparent)}
table.bes tr.child td{background:var(--bg2)} table.bes tr.child td:nth-child(2){padding-left:44px}
.tg{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;color:var(--muted);transition:transform .16s var(--ease)} .tg .i{width:15px;height:15px} .tg.open{transform:rotate(90deg)}
.step{display:flex;align-items:stretch;gap:0} .step input{text-align:center;border-radius:0;border-left:0;border-right:0;min-width:0}
.step .btn.icon{border-radius:10px 0 0 10px;width:40px;justify-content:center;font-size:18px;font-weight:700;padding:0} .step .btn.icon:last-child{border-radius:0 10px 10px 0}
.step.inline{display:inline-flex;align-items:center;gap:8px} .step.inline .btn.icon{border-radius:8px;width:30px;height:30px;font-size:16px}
.tabs .n{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--card2);color:var(--ink2);font-size:11.5px;padding:0 6px}
.tabs button[aria-selected="true"] .n{background:var(--acc);color:#fff}
.card > .tabs{margin-top:-4px}
.po-set{border:1px solid var(--line);border-radius:var(--r2);padding:14px 16px;display:grid;gap:10px}
.po-set h3{margin:0}
.searchbar{display:flex;align-items:center;gap:12px;height:54px;padding:0 18px;border-radius:var(--r);border:1px solid var(--line2);background:var(--card);transition:border-color .15s,box-shadow .15s}
.searchbar:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)}
.searchbar svg{width:20px;height:20px;color:var(--muted);flex:none}
.searchbar input{flex:1;min-width:0;height:100%;border:0;background:none;color:var(--ink);font-size:16px;outline:none;padding:0}
.sres{display:grid;gap:16px}
.x1{--fam:var(--f1)} .x2{--fam:var(--f4)} .x3{--fam:var(--f7)}
.xrank{display:flex;flex-direction:column;gap:12px}
.xrank>div{display:grid;grid-template-columns:minmax(110px,180px) minmax(0,1fr) auto;gap:14px;align-items:center;cursor:default}
.xrank .nm{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xrank .v{text-align:right;font-weight:700;min-width:96px} .xrank .v small{display:block;font-weight:500;color:var(--muted)}
.xbar{display:flex;gap:2px;height:14px;width:calc(var(--w,0)*100%);min-width:6px}
.xbar i{display:block;height:100%;width:calc(var(--w,0)*100%);background:var(--fam);border-radius:2px}
.xbar i:last-child{border-radius:2px 4px 4px 2px}
.xrank>div:hover .xbar i{filter:brightness(1.12)}
@media (max-width:640px){.xrank>div{grid-template-columns:minmax(0,1fr) auto}.xrank .xbar{grid-column:1/-1;grid-row:2}}
.card > .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:0 12px} .card > .tabs::-webkit-scrollbar{display:none}
.card > .tabs button{padding:0 10px;white-space:nowrap;flex:none}
.searchbar input[type=search]{border:0;background:transparent;box-shadow:none;height:100%;padding:0;border-radius:0}
.searchbar input[type=search]:focus{outline:none;box-shadow:none;border:0}

/* Contacts d'un fournisseur */
.ct-box{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.ct-box .card-h{padding:0;border:0}
.ct-list{display:flex;flex-direction:column;gap:12px}
.ct{border:1px solid var(--line);border-radius:var(--r2);padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--panel2, transparent)}
.ct-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ct-fav{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600}
.ct-fav input{width:auto;height:auto}
.ct .form{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:640px){.ct .form{grid-template-columns:1fr}}
.cell2 small.dim{color:var(--dim)}
.po-recip{display:flex;flex-direction:column;gap:6px}
[hidden]{display:none!important}
@media(max-width:640px){.line-ed .line .d{grid-column:1/3;grid-row:1}.line-ed .line>.btn{grid-column:3;grid-row:1;justify-self:end;width:42px}}

/* Camion type */
.tk-lines{display:flex;flex-direction:column;gap:8px}
.tk-line{display:grid;grid-template-columns:130px minmax(0,1fr) 90px 135px 70px 40px;gap:8px;align-items:center}
@media(max-width:640px){.tk-line{grid-template-columns:1fr 1fr 1fr}.tk-line>select{grid-column:1/3}.tk-line>.btn{justify-self:end;width:42px}}
.tk-p{width:72px}
tr.off td{opacity:.45}
.note.warn{border-color:var(--acc-line);color:var(--ink)}
.truck-alert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}.truck-alert span{flex:1;min-width:200px}
.tk-head{display:grid;grid-template-columns:130px minmax(0,1fr) 90px 135px 70px 40px;gap:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:4px}@media(max-width:640px){.tk-head{display:none}}
.tk-item{display:flex;flex-direction:column;gap:6px}.tk-lines{gap:14px}.tk-note{height:34px;font-size:13px;margin-top:4px}.tk-item .tk-note{margin-top:0}
.fmt-own{display:flex;gap:8px;align-items:center}.fmt-own input{flex:1}
.fmt-own{flex-direction:column;align-items:stretch;gap:6px}.fmt-own .btn{align-self:flex-start}

/* Demandes libres */
.fl-lines{display:flex;flex-direction:column;gap:12px}.fl-item{display:flex;flex-direction:column;gap:6px}
.fl-line{display:grid;grid-template-columns:minmax(0,3fr) 90px 110px 40px;gap:8px;align-items:center}
@media(max-width:640px){.fl-line{grid-template-columns:1fr 1fr}.fl-line .d{grid-column:1/-1}.fl-line>.btn{justify-self:end;width:42px}}
.offer{border:1px solid var(--line);border-radius:var(--r2);margin-bottom:10px;background:var(--panel2,transparent)}
.offer>summary{padding:12px 14px;cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.offer-in{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}
.op-line{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;align-items:center}
tr.best td{background:var(--acc-soft)}
.tools.pad{padding:12px 14px}
