/* Portail Axude — charte Axude (vert #193F2F, feuille #3C9069, frais #D8E7BB), polices Onest + Rethink Sans */
:root{
  --vert:#193F2F; --vert-2:#21503c; --feuille:#3C9069; --frais:#D8E7BB; --frais-1:#EEF4E1;
  --bg:#F6F6F1; --panel:#FFFFFF; --panel-2:#F2F5EC; --line:#E2E6DC; --line-2:#D3D9CC; --grid:#EDF0E8; --track:#E7ECE2;
  --fg:#1C2722; --muted:#69736D; --accent:#3C9069; --accent-ink:#FFFFFF; --accent-soft:#3C906914;
  --ok:#2E8B57; --info:#2F6F9F; --crit:#C2453A; --warn:#B26B12;
  --f-display:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Rethink Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:12px; --shadow:0 1px 2px #1c27220d,0 4px 14px #1c27220a;
  --side:15.5rem;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:calc(15px * var(--zoom,1));line-height:1.4}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--vert)}
:focus-visible{outline:2px solid var(--feuille);outline-offset:2px}
.num{font-family:var(--f-display);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}

/* ---------- Connexion ---------- */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 600px at 10% -10%,#D8E7BB66,transparent),var(--bg)}
.auth-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:32px 28px}
.auth-card .logo{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.auth-card .logo img{height:44px}
.auth-card .logo b{font-family:var(--f-display);font-size:1.15em;color:var(--vert)}
.auth-card .logo span{display:block;color:var(--muted);font-size:.85em}
.auth-card h1{font-family:var(--f-display);font-size:1.5em;margin:0 0 4px;color:var(--vert)}
.auth-card p{margin:0 0 18px;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:.85em;font-weight:600;color:var(--fg)}
.field input,.field select{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;background:#fff;width:100%}
.field input:focus,.field select:focus{border-color:var(--feuille);outline:none;box-shadow:0 0 0 3px #3C906926}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:9px 16px;font-weight:600;cursor:pointer;text-decoration:none;color:var(--fg);white-space:nowrap}
.btn:hover{border-color:var(--feuille)}
.btn.primary{background:var(--vert);border-color:var(--vert);color:#fff}
.btn.primary:hover{background:var(--vert-2)}
.btn.danger{color:var(--crit)}
.btn.small{padding:5px 10px;font-size:.88em;border-radius:8px}
.btn.block{width:100%}
.btn:disabled{opacity:.55;cursor:default}
.msg{border-radius:10px;padding:10px 12px;font-size:.9em;margin-bottom:14px}
.msg.err{background:#C2453A12;color:var(--crit);border:1px solid #C2453A33}
.msg.ok{background:#2E8B5712;color:var(--ok);border:1px solid #2E8B5733}

/* ---------- Coque : barre latérale + contenu ---------- */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--vert);color:#E6EFE0;display:flex;flex-direction:column;padding:16px 12px;gap:4px}
.side .brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}
.side .brand img{height:34px;width:auto;filter:brightness(0) invert(1)}
.side .brand b{font-family:var(--f-display);font-size:1.05em;color:#fff;letter-spacing:.01em}
.side .brand span{display:block;font-size:.75em;color:#B9CCB0}
.side .sec{display:flex;align-items:center;justify-content:space-between;font-size:.68em;letter-spacing:.14em;text-transform:uppercase;color:#9DB594;padding:14px 10px 4px;font-weight:600}
.side a{display:flex;align-items:center;gap:10px;color:#E6EFE0;text-decoration:none;padding:8px 10px;border-radius:9px;font-size:.93em}
.side a svg{width:18px;height:18px;flex:none;opacity:.85}
.side a:hover{background:#ffffff14}
.side a[aria-current="page"]{background:var(--frais);color:var(--vert);font-weight:600}
.side a[aria-current="page"] svg{opacity:1}
.side a .badge{margin-left:auto;background:#ffffff26;color:#fff;border-radius:20px;font-size:.75em;padding:1px 7px;font-weight:600}
.side a[aria-current="page"] .badge{background:var(--vert);color:#fff}
.side .foot{margin-top:auto;padding:12px 10px 4px;font-size:.75em;color:#9DB594}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px clamp(16px,2.4vw,32px);background:#F6F6F1E6;backdrop-filter:blur(8px);border-bottom:1px solid transparent}
.top.scrolled{border-bottom-color:var(--line)}
.top .burger{display:none;background:none;border:0;padding:6px;cursor:pointer;border-radius:8px}
.top .burger svg{width:22px;height:22px}
.top .ttl{min-width:0}
.top .ttl small{display:block;color:var(--muted);font-size:.8em;text-transform:capitalize}
.top .ttl h1{margin:0;font-family:var(--f-display);font-size:1.45em;line-height:1.15;color:var(--vert);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .sp{flex:1}
.live{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.82em;white-space:nowrap}
.live .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.live.err{color:var(--crit)} .live.err .dot{background:var(--crit)}
.live.load .dot{background:var(--warn)}
.umenu{position:relative}
.csel{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:3px 6px 3px 12px;font-size:.88em;font-weight:600;color:var(--vert);max-width:20em}
.csel::before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M9 21v-6h6v6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M9 21v-6h6v6'/%3E%3C/svg%3E") center/contain no-repeat}
.csel select{border:0;background:transparent;font:inherit;color:inherit;padding:4px 4px;max-width:16em;cursor:pointer;outline:none}
.csel.one span{padding:4px 8px 4px 0}
.ubtn{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:4px 12px 4px 4px;cursor:pointer}
.av{width:30px;height:30px;border-radius:50%;background:var(--frais);color:var(--vert);display:grid;place-items:center;font-weight:700;font-size:.8em;font-family:var(--f-display)}
.ubtn span{font-weight:600;font-size:.9em}
.upanel{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #1c272222;min-width:220px;padding:6px;z-index:40}
.upanel .who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.upanel .who small{display:block;color:var(--muted)}
.upanel button,.upanel a{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:8px;cursor:pointer;text-decoration:none;color:var(--fg);font-size:.92em}
.upanel button:hover,.upanel a:hover{background:var(--panel-2)}
.content{padding:8px clamp(16px,2.4vw,32px) 40px;display:flex;flex-direction:column;gap:16px;min-width:0}
.zoom{display:flex;gap:2px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:2px}
.zoom button{background:none;border:0;color:var(--muted);cursor:pointer;border-radius:7px;padding:3px 8px;font-weight:700;line-height:1}
.zoom button[data-z="s"]{font-size:.75em}.zoom button[data-z="m"]{font-size:.9em}.zoom button[data-z="l"]{font-size:1.08em}
.zoom button[aria-pressed="true"]{background:var(--vert);color:#fff}
.scrim{display:none}

@media (max-width:980px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;left:0;top:0;bottom:0;width:min(84vw,var(--side));z-index:60;transform:translateX(-100%);transition:transform .2s}
  .shell.open .side{transform:none}
  .shell.open .scrim{display:block;position:fixed;inset:0;background:#0006;z-index:55}
  .top .burger{display:block}
  .live .t{display:none}
  .ubtn span:not(.av){display:none}
  .zoom{display:none}
  .csel{max-width:11em}
  .csel select{max-width:9em}
}

/* ---------- Composants communs ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;min-width:0;box-shadow:var(--shadow)}
.card h2{margin:0 0 12px;font-family:var(--f-display);font-size:1.12em;font-weight:600;color:var(--vert);display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.card h2 small{font-family:var(--f-body);font-size:.72em;color:var(--muted);font-weight:400}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5em,1fr));gap:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0;box-shadow:var(--shadow)}
.kpi .l{color:var(--muted);font-size:.8em;font-weight:500}
.kpi .v{font-size:1.85em;font-weight:700;line-height:1.1;color:var(--fg)}
.kpi.main .v{color:var(--vert)}
.kpi .d{font-size:.8em;color:var(--muted)}
.kpi .d b{font-weight:700}
.kpi.alert .v{color:var(--crit)}
.up{color:var(--ok)} .down{color:var(--crit)}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th{color:var(--muted);font-size:.74em;font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:4px 12px 8px 0;white-space:nowrap}
td{padding:8px 12px 8px 0;border-top:1px solid var(--line);vertical-align:middle}
tbody tr:hover td{background:#FAFBF7}
.rt{text-align:right}
td.nm{font-weight:600;min-width:9em}
td.nm small,td small{display:block;color:var(--muted);font-weight:400;font-size:.8em}
.empty{color:var(--muted);text-align:center;padding:36px 16px;border:1px dashed var(--line-2);border-radius:var(--r);background:#ffffff80}
.warn,td.warn{color:var(--warn)}
td.neg,td.neg .num{color:var(--crit)}
.tag{font-size:.68em;text-transform:uppercase;letter-spacing:.06em;color:var(--info);border:1px solid #2F6F9F44;border-radius:5px;padding:1px 5px;vertical-align:middle;font-weight:600}
.pill{display:inline-block;font-size:.76em;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.pill.ok{background:#2E8B5712;color:var(--ok);border-color:#2E8B5733}
.pill.info{background:#2F6F9F12;color:var(--info);border-color:#2F6F9F33}
.pill.warn{background:#B26B1212;color:var(--warn);border-color:#B26B1233}
.pill.crit{background:#C2453A12;color:var(--crit);border-color:#C2453A33}
.ctry{display:inline-block;font-size:.68em;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:0 5px;margin-right:4px;vertical-align:middle;white-space:nowrap}
.ref{font-family:var(--f-display);font-size:.9em;color:var(--vert);border:1px solid #3C906944;background:#3C906910;border-radius:5px;padding:0 6px;white-space:nowrap}
.ref.none{color:var(--muted);border-color:var(--line);background:none}
.link{background:none;border:0;padding:0;color:var(--vert);font-weight:600;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:#3C906955;text-underline-offset:3px}
.link:hover{text-decoration-color:var(--feuille)}
.chev{display:inline-block;width:1em;color:var(--muted)}
.big{font-size:1.15em;font-weight:600}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.seg{display:flex;gap:2px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}
.seg button{background:none;border:0;padding:6px 12px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:600;font-size:.92em}
.seg button[aria-pressed="true"]{background:var(--vert);color:#fff}
.step{display:flex;align-items:center;gap:6px}
.step button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.1em;line-height:1}
.step button:disabled{opacity:.35;cursor:default}
.plabel{font-family:var(--f-display);font-size:1.2em;font-weight:600;min-width:10em;text-align:center;text-transform:capitalize;color:var(--vert)}
.custom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.custom input,.inp{background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px}
.custom button{background:var(--vert);color:#fff;border:0;border-radius:9px;padding:8px 14px;font-weight:600;cursor:pointer}
.quick{display:flex;gap:6px;flex-wrap:wrap}
.quick button{background:#fff;border:1px solid var(--line);border-radius:20px;padding:4px 11px;color:var(--muted);cursor:pointer;font-size:.86em}
.quick button:hover{color:var(--fg);border-color:var(--line-2)}
.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}
.toolbar.card .filters{flex:1 1 32em}
.pick{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.88em}
.pick select,.pick input,select.inp{background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px;color:var(--fg);max-width:22em}
.export{background:#fff;border:1px solid var(--feuille);color:var(--vert);border-radius:9px;padding:7px 12px;font-weight:600;cursor:pointer}
.export:hover{background:var(--accent-soft)}
.colbtn{background:#fff;border:1px solid var(--line);border-radius:20px;padding:3px 10px;color:var(--muted);cursor:pointer;font-size:.9em;font-family:var(--f-body)}
.colbtn:hover{color:var(--fg)}
footer.src{color:var(--muted);font-size:.8em;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* Marges masquées pour les profils sans ce droit */
body.nomarges .m{display:none!important}

/* ---------- Accueil ---------- */
.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.todo{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.5em,1fr));gap:10px}
.todo a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--fg);border:1px solid var(--line);border-radius:11px;padding:12px 14px;background:#fff;transition:border-color .15s,transform .15s}
.todo a:hover{border-color:var(--feuille);transform:translateY(-1px)}
.todo a b{font-family:var(--f-display);font-size:1.7em;line-height:1.1;color:var(--vert)}
.todo a.hot{background:#C2453A08;border-color:#C2453A33}
.todo a.hot b{color:var(--crit)}
.todo a.wa b{color:var(--warn)}
.todo a span{font-size:.88em;font-weight:600}
.todo a small{color:var(--muted);font-size:.78em}
.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.list{display:flex;flex-direction:column}
table.list{display:table}
.li{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.li:first-child{border-top:0}
.li .ini{width:34px;height:34px;border-radius:9px;background:var(--frais-1);color:var(--vert);display:grid;place-items:center;font-weight:700;font-size:.78em;flex:none;font-family:var(--f-display)}
.li .tx{min-width:0;flex:1}
.li .tx b{display:block;font-size:.92em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li .tx small{color:var(--muted);font-size:.8em}
.li .dt{color:var(--muted);font-size:.8em;white-space:nowrap;text-align:right}
.dotc{width:8px;height:8px;border-radius:50%;background:var(--crit);flex:none}
.dotc.ok{background:var(--ok)}
.bars{display:flex;flex-direction:column;gap:10px}
.bars .bl{display:grid;grid-template-columns:7em minmax(0,1fr) auto;gap:10px;align-items:center;font-size:.88em}
.bars .tr{height:9px;background:var(--track);border-radius:6px;overflow:hidden}
.bars .tr i{display:block;height:100%;background:var(--feuille);border-radius:6px}
@media (max-width:1100px){ .grid2{grid-template-columns:minmax(0,1fr)} }

/* ---------- Graphiques ---------- */
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{fill:var(--muted);font-family:var(--f-body);font-size:11px}
.tip{position:absolute;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:.85em;white-space:nowrap;transform:translate(-50%,-110%);box-shadow:0 8px 24px #1c272222;z-index:5}
.tip b{display:block;font-family:var(--f-display);font-size:1.15em;color:var(--fg)}
.tip span{display:block;color:var(--muted)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.84em;color:var(--muted);margin-bottom:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* ---------- Listes ---------- */
.lsearch{min-width:min(18em,100%)}
table.list td{white-space:nowrap}
table.list td.wrap{white-space:normal}
tr.late td:first-child{box-shadow:inset 3px 0 0 var(--crit)}
.sum{display:flex;gap:18px;flex-wrap:wrap;font-size:.88em;color:var(--muted)}
.sum b{color:var(--fg);font-family:var(--f-display);font-size:1.1em}

/* ---------- Banques ---------- */
.banks{display:grid;grid-template-columns:repeat(auto-fit,minmax(19em,1fr));gap:14px}
.bank h3{margin:0;font-family:var(--f-display);color:var(--vert);font-size:1.1em}
.bank .acc{color:var(--muted);font-size:.8em;margin-bottom:10px}
.bank dl{display:grid;grid-template-columns:minmax(10em,1fr) auto;gap:6px 12px;margin:0;font-size:.9em}
.bank dt{color:var(--muted)} .bank dd{margin:0;text-align:right;font-family:var(--f-display);font-variant-numeric:tabular-nums}
.bank .gap{margin-top:10px;padding:8px 10px;border-radius:9px;font-size:.85em}
.bank .gap.bad{background:#C2453A0f;color:var(--crit)}
.bank .gap.good{background:#2E8B570f;color:var(--ok)}

/* ---------- Administration ---------- */
.uform{display:grid;grid-template-columns:repeat(auto-fit,minmax(14em,1fr));gap:12px}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(12em,1fr));gap:6px 14px;margin:6px 0 12px}
.checks label{display:flex;align-items:center;gap:8px;font-size:.92em;cursor:pointer}
.checks input{accent-color:var(--feuille);width:16px;height:16px}
.modal{position:fixed;inset:0;background:#1c272255;display:grid;place-items:center;z-index:80;padding:16px}
.modal .card{width:100%;max-width:640px;max-height:90vh;overflow:auto}
.temp{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.15em;background:var(--frais-1);border:1px dashed var(--feuille);border-radius:9px;padding:10px 12px;margin:8px 0;user-select:all;word-break:break-all}

/* ---------- Rapports repris de stock5t (Ventes, Achats, Bilan, Traça, Ventes du jour) ---------- */
#rep{display:flex;flex-direction:column;gap:16px}
#rep .controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#view{display:flex;flex-direction:column;gap:16px}
.phead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--frais-1);border:1px solid #3C906933;border-radius:var(--r);padding:10px 16px}
.phead div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.phead .pl{color:var(--muted);font-size:.8em;text-transform:uppercase;letter-spacing:.08em}
.phead b{font-family:var(--f-display);font-size:1.45em;line-height:1;color:var(--vert)}
.phead b.names{font-size:1.1em;line-height:1.25}
.share{display:flex;align-items:center;gap:8px;min-width:7em}
.share i{display:block;height:7px;border-radius:4px;background:var(--feuille);min-width:2px}
.share span{color:var(--muted);font-size:.85em;width:3em;text-align:right}
td.bad .big{color:var(--crit)} td.good small{color:var(--ok)}
.bilan tr.grow{cursor:pointer;background:var(--panel-2)}
.bilan tr.grow:hover td{background:#E9EFE1}
.bilan tr.grow td{border-top:2px solid #fff}
.bilan td.sub{padding-left:1.6em;font-weight:500}
.ggn{color:var(--ok);font-weight:600}
@media (min-width:900px){ .tbl.stick{overflow:visible} }
.bilan.stk thead th{position:sticky;top:64px;z-index:3;background:var(--panel);padding-top:10px;box-shadow:0 1px 0 var(--line)}
tr.trow td{border-top:2px solid var(--vert);font-weight:700;padding-top:10px;background:#fff}
.multi{position:relative;display:flex;align-items:center;gap:8px}
.mbtn{background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px;cursor:pointer;max-width:24em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mpanel{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:22em;max-width:90vw;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 12px 30px #1c272226;display:flex;flex-direction:column;gap:8px}
.mpanel input{border:1px solid var(--line-2);border-radius:9px;padding:7px 10px}
.mlist{max-height:18em;overflow:auto;display:flex;flex-direction:column}
.mlist label{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:7px;cursor:pointer}
.mlist label:hover{background:var(--panel-2)}
.mlist input{accent-color:var(--feuille);width:16px;height:16px}
.mact{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:8px}
.mok{background:var(--vert);color:#fff;border:0;border-radius:9px;padding:7px 14px;font-weight:600;cursor:pointer}
.tsearch{position:relative;flex:1;min-width:16em;max-width:40em}
.tsearch input{width:100%;background:#fff;border:1px solid var(--feuille);border-radius:10px;padding:10px 12px;font-size:1.05em}
.tsugg{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;max-height:24em;overflow:auto;box-shadow:0 12px 30px #1c272226;padding:4px}
.sitem,.sall{display:block;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:7px 9px;cursor:pointer}
.sitem:hover,.sall:hover{background:var(--panel-2)}
.sitem b{font-family:var(--f-display);font-size:1.05em;color:var(--vert)} .sitem small{display:block;color:var(--muted)}
.sitem.on{opacity:.5}
.sall{color:var(--vert);font-weight:600;border-bottom:1px solid var(--line);border-radius:0}
.pad{padding:10px}
.recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(18em,1fr));gap:6px}
.recent .sitem{border:1px solid var(--line)}
.tchips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tchip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--feuille);border-radius:20px;padding:3px 6px 3px 12px}
.tchip b{color:var(--vert);font-family:var(--f-display)}
.tchip button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.2em;line-height:1;padding:0 4px}
.tchip button:hover{color:var(--crit)}
.lotgrp{display:flex;flex-direction:column;gap:10px;border:1px solid #3C906955;border-radius:14px;padding:12px;background:#3C906906}
.jtools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.jtools input,.jtools select{background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px}
.jtools input{min-width:min(22em,100%)}
table.jour td{white-space:nowrap}
table.jour th.sortable{cursor:pointer;user-select:none}
table.jour th.sortable:hover{color:var(--fg)}
table.jour tr.jsep td{border-top:2px solid var(--line-2)}
.tfiles{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.lotgrp > .tfiles{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tfiles h3,.tcols h3{margin:0 0 8px;font-size:.75em;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.thumbs{display:flex;flex-wrap:wrap;gap:10px}
.thumbs a{position:relative;display:block;width:10em;height:10em;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel-2)}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.thumbs a:hover img{transform:scale(1.04)}
.thumbs a span{position:absolute;left:6px;bottom:6px;font-size:.7em;background:#000a;color:#fff;padding:1px 6px;border-radius:5px}
.docs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.doc{display:flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;color:var(--fg);text-decoration:none;background:#fff}
.doc:hover{border-color:var(--feuille)}
.doc b{font-size:.7em;letter-spacing:.06em;color:var(--vert);border:1px solid currentColor;border-radius:5px;padding:1px 5px}
.doc small{display:block;color:var(--muted);font-size:.8em}
.lothead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:2px 4px}
.lothead div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.lothead .pl{color:var(--muted);font-size:.8em;text-transform:uppercase;letter-spacing:.08em}
.lothead b{font-family:var(--f-display);font-size:1.6em;color:var(--vert);line-height:1}
.lothead .tflow{font-family:var(--f-display)}
.tcard h2 .tflow{font-family:var(--f-display);font-size:.78em;color:var(--fg)}
.tcols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px}
.tdown{border-left:1px solid var(--line);padding-left:20px;min-width:0}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}
.facts dt{color:var(--muted);font-size:.85em}
.facts dd{margin:0} .facts dd small{display:block;color:var(--muted);font-size:.8em}
.ok{color:var(--ok);font-weight:600}
@media (max-width:1000px){ .tcols{grid-template-columns:minmax(0,1fr)} .tdown{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px} .plabel{min-width:0;font-size:1.05em} }
@media (max-width:700px){ .tsearch{min-width:0;flex-basis:100%} .kpis{grid-template-columns:repeat(2,minmax(0,1fr))} .kpi .v{font-size:1.45em} }

/* ---------- Stock (repris de l'écran stock5t) ---------- */
#stk{display:flex;flex-direction:column;gap:12px}
.shead,.srow{display:grid;grid-template-columns:9em minmax(0,1fr) 12em 9em;align-items:center;gap:18px}
.shead{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72em;font-weight:600;padding-inline:20px}
.shead .r{text-align:right}
.slist{display:flex;flex-direction:column;gap:18px}
.grp{display:flex;flex-direction:column;gap:6px}
.ghead{display:flex;align-items:baseline;gap:12px;width:100%;padding:2px;background:none;border:0;text-align:left;cursor:pointer;border-radius:6px}
.ghead .gn{font-family:var(--f-display);font-size:1.45em;font-weight:700;color:var(--vert);line-height:1.1}
.ghead .gl{flex:1;height:1px;background:var(--line);align-self:center}
.ghead .chev{color:var(--muted);transition:transform .2s;font-size:.8em}
.grp.closed .chev{transform:rotate(-90deg)}
.grp.closed .rows{display:none}
.rows{display:flex;flex-direction:column;gap:6px}
.srow{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 20px;position:relative;transition:background .6s;box-shadow:var(--shadow)}
.srow::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--st)}
.srow.flash{background:#EEF4E1}
.srow.out{opacity:.55}
.colis .top{display:flex;align-items:baseline;gap:5px}
.colis .v{font-size:2.1em;font-weight:700;line-height:1;color:var(--st)}
.colis .u{color:var(--muted);font-size:.85em}
.colis small{display:block;color:var(--muted);font-size:.78em;margin-top:2px;white-space:nowrap}
.prod{min-width:0}
.prod .n{font-family:var(--f-display);font-size:1.18em;font-weight:600;color:var(--fg);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod .n .br{font-size:.82em;font-weight:500;color:var(--feuille);margin-left:8px}
.meta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);border-radius:6px;padding:0 7px;font-size:.84em;background:var(--panel-2);white-space:nowrap}
.chip.day{color:var(--info);border-color:#2F6F9F44;background:#2F6F9F0d}
.chip.fifo{color:var(--ok);border-color:#2E8B5744;background:#2E8B570d}
.code{color:var(--muted);font-size:.8em;letter-spacing:.03em}
.vt{font-size:.82em;background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:0 8px;cursor:pointer;white-space:nowrap}
.vt:hover{border-color:var(--feuille)}
.vt .old{color:var(--muted)}
.bar{display:flex;flex-direction:column;gap:5px}
.track{height:8px;border-radius:5px;background:var(--track);overflow:hidden}
.fill{height:100%;border-radius:5px;background:var(--st);transition:width .8s ease}
.bar small{color:var(--muted);font-size:.8em;display:flex;justify-content:space-between;gap:6px}
.bar small b{color:var(--fg)}
.spill{justify-self:end;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.74em;padding:5px 11px;border-radius:20px;color:#fff;background:var(--st);white-space:nowrap}
.sales{margin:0 0 4px 28px;border-left:2px solid var(--line);padding:4px 0 4px 14px;overflow-x:auto}
.sales table{font-size:.92em}
.sales td{white-space:nowrap}
.sales .cl{font-weight:600}
.sales tfoot td{color:var(--muted);font-weight:600}
.sales tr.dim td{opacity:.55}
.st{font-size:.76em;padding:1px 8px;border-radius:20px;border:1px solid var(--line);color:var(--muted)}
.st.sale{color:var(--ok);border-color:#2E8B5755}
.st.in{color:var(--info);border-color:#2F6F9F55}
.st.out{color:var(--crit);border-color:#C2453A55}
.oldbtn{margin-top:6px;background:none;border:1px dashed var(--line-2);border-radius:7px;color:var(--muted);padding:4px 10px;cursor:pointer;font-size:.88em}
.oldbtn:hover{color:var(--fg);border-color:var(--feuille)}
.stotals{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:1100px){
  .shead{display:none}
  .srow{grid-template-columns:auto minmax(0,1fr);row-gap:8px}
  .srow .bar{grid-column:1 / -1}
  .spill{justify-self:start}
}
@media (prefers-reduced-motion:reduce){ .fill,.srow,.todo a{transition:none} }
@media print{ .side,.top,.toolbar,.controls,.export{display:none!important} .shell{display:block} .card,.kpi{box-shadow:none} }

/* ---------- Claude : assistant et lecture de documents ---------- */
.chatbox{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 140px);min-height:420px}
.chatlog{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:4px}
.msg-u{align-self:flex-end;max-width:75%;background:var(--vert);color:#fff;border-radius:14px 14px 4px 14px;padding:10px 14px;white-space:pre-wrap}
.msg-a{align-self:flex-start;max-width:92%;background:var(--panel-2);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:10px 14px}
.msg-a p{margin:0 0 8px} .msg-a p:last-child{margin-bottom:0} .msg-a ul,.msg-a ol{margin:4px 0 8px;padding-left:20px} .msg-a table{margin:6px 0;background:#fff} .msg-a small{display:block;margin-top:6px}
.chatin{display:flex;gap:10px;align-items:flex-end}
.chatin textarea{flex:1;resize:vertical;border:1px solid var(--line-2);border-radius:12px;padding:10px 12px;min-height:46px}
.chatin textarea:focus{border-color:var(--feuille);outline:none;box-shadow:0 0 0 3px #3C906926}
.chatfoot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.82em}
.chatempty{margin:auto;text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center;max-width:640px}
.chatempty svg{width:40px;height:40px;color:var(--feuille)}
.sugg{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.quickq{background:#fff;border:1px solid var(--line-2);border-radius:20px;padding:6px 12px;cursor:pointer;font-size:.88em}
.quickq:hover{border-color:var(--feuille);color:var(--vert)}
.dots i{animation:blink 1.2s infinite;font-style:normal}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}
.docgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;align-items:start}
#docres{display:flex;flex-direction:column;gap:16px;min-width:0}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;border:2px dashed var(--line-2);border-radius:12px;padding:26px 16px;cursor:pointer;background:var(--panel-2)}
.drop.over,.drop:hover{border-color:var(--feuille);background:var(--frais-1)}
.docview{width:100%;height:520px;border:1px solid var(--line);border-radius:10px;margin-top:12px;object-fit:contain;background:#fff}
textarea.inp{width:100%;resize:vertical}
.checks-l{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.checks-l li{padding:8px 10px;border-radius:9px;font-size:.9em;border-left:3px solid var(--line-2);background:var(--panel-2)}
.checks-l li.crit{border-color:var(--crit);background:#C2453A0d;color:var(--crit)}
.checks-l li.warn{border-color:var(--warn);background:#B26B120d}
.checks-l li.info{border-color:var(--info);background:#2F6F9F0a}
@media (max-width:1100px){ .docgrid{grid-template-columns:minmax(0,1fr)} .docview{height:360px} .chatbox{height:calc(100vh - 120px)} .msg-u{max-width:90%} }
/* Marge sur facture : tableau large, colonnes texte compactes */
table.mg{font-size:.86em}
table.mg td.nm{max-width:13em;overflow:hidden;text-overflow:ellipsis}
table.mg td small{max-width:16em;overflow:hidden;text-overflow:ellipsis}
table.mg th{white-space:nowrap}
table.mg tfoot td{border-top:2px solid var(--line-2);background:var(--panel-2)}
table.mg td{white-space:nowrap;padding:8px 12px 8px 0;border-top:1px solid var(--grid);vertical-align:top}
.ctl h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ctl h2{justify-content:flex-start} .ctl h2 small{margin-left:auto}

/* Saisie (articles, contacts) */
.sz{display:grid;grid-template-columns:minmax(16em,22em) 1fr;gap:16px;align-items:start}
@media (max-width:900px){.sz{grid-template-columns:1fr}}
.szh{display:flex;gap:8px;margin-bottom:10px}.szh .inp{flex:1;min-width:0}
.szlist{display:flex;flex-direction:column;max-height:70vh;overflow:auto;gap:2px}
.szi{all:unset;cursor:pointer;padding:8px 10px;border-radius:8px;display:block}
.szi:hover{background:var(--panel-2)}.szi.on{background:var(--frais-1);box-shadow:inset 3px 0 0 var(--feuille)}
.szi b{display:block;font-weight:600;font-size:.95em}.szi small{color:var(--muted);font-size:.8em}
.szt{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.szt h2{margin:0}
.szp{background:var(--panel-2);border-radius:10px;padding:10px 12px;margin:10px 0 4px}
.szg{border:0;padding:0;margin:14px 0 0}.szg legend{font-size:.78em;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;margin-bottom:6px}
.szgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14em,1fr));gap:10px 14px}
.szfld label{display:block;font-size:.85em;font-weight:600;margin-bottom:4px}.szfld .inp{width:100%;box-sizing:border-box}
.szc{display:flex!important;align-items:center;gap:8px;font-weight:500!important;padding-top:22px}
.szm{font-size:.82em;margin-top:3px;min-height:0}
.szfld.err .inp{border-color:var(--crit);box-shadow:0 0 0 3px #C2453A1a}.szfld.err .szm{color:var(--crit)}
.szfld.wrn .inp{border-color:var(--warn)}.szfld.wrn .szm{color:var(--warn)}
.szlist2{margin:14px 0 0;padding-left:18px}.szlist2 li{margin:4px 0}.szlist2 li.err{color:var(--crit)}.szlist2 li.wrn{color:var(--warn)}
.szm .link,.szlist2 .link{font-size:1em;padding:0;margin-left:4px}
.szact{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.ok{color:var(--ok)}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--vert);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:100;font-weight:600;max-width:90vw}

/* Flux d'achat */
.ac{position:relative}.ac .inp{width:100%;box-sizing:border-box}
.acl{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:4px;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;box-shadow:var(--shadow);max-height:18em;overflow:auto}
.acl button{all:unset;display:block;cursor:pointer;padding:8px 10px;width:100%;box-sizing:border-box}.acl button:hover{background:var(--panel-2)}
.acl b{display:block;font-weight:600;font-size:.93em}.acl small{color:var(--muted);font-size:.8em}
.inp.sm{width:7em;padding:6px 8px}
table.arl td{vertical-align:top}table.arl td.err .inp{border-color:var(--crit)}table.arl td.wrn .inp{border-color:var(--warn)}
table.arl td.err .szm{color:var(--crit)}table.arl td.wrn .szm{color:var(--warn)}table.arl .szm{white-space:normal;max-width:16em}
fieldset.err .szm,div.err > .szm{color:var(--crit)}fieldset.wrn .szm,div.wrn > .szm{color:var(--warn)}
.ph{display:inline-flex;flex-direction:column;align-items:center;gap:2px;width:7em;font-size:.75em;margin-right:6px}
.ph img{width:7em;height:5em;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
table.arl th{text-align:left}
/* Besoins et calendrier */
table.bst td,table.bst th{white-space:nowrap}
table.bst td:first-child{white-space:normal;min-width:14em}
table.bst td small{display:block;color:var(--muted);font-size:.8em}
table.bst .bsr{cursor:pointer}
table.bst .bsr.bad td:first-child{box-shadow:inset 3px 0 0 var(--crit)}
table.bst .bsr.wrn td:first-child{box-shadow:inset 3px 0 0 var(--warn,#C98A00)}
.bsc.dem{background:#2F6F9F0D}
.bsc.short{background:#C0392B14;color:var(--crit)}
.inc{color:var(--ok)!important}
table.bst tr.bsd>td{background:var(--bg,#f7f7f5);padding:8px 10px}
table.bst tr.sub td{font-weight:600;color:var(--muted);font-size:.85em;padding-top:10px}
.bsadd{border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:10px 0}
a.btn.sell{margin-left:6px}
table.bst .bsr td:first-child{padding-left:10px}
table.cvt tr.cvlot td{padding-top:14px;border-top:1px solid var(--line)}
table.cvt tr.cvlot small{display:block;color:var(--muted);margin-top:2px}
table.cvt tr.cvlot td small{max-width:none;overflow:visible;white-space:normal;font-size:.85em}
details.cvgap{margin:0 0 10px;color:var(--warn,#B7791F);font-size:.9em}
details.cvgap summary{cursor:pointer}
.ffdrop{border:1px dashed var(--line);border-radius:var(--r);padding:16px;margin:8px 0}
.ffpo{border-top:1px solid var(--line);padding:8px 0}
.ffpo table{margin-top:6px}
details.ffdoc{margin:8px 0}
details.ffdoc summary{cursor:pointer;color:var(--muted)}
/* ---------- v1.12 : onglets, recherche globale, panneau document, aperçu, mobile ---------- */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 14px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);width:max-content;max-width:100%}
.tabs a{padding:8px 14px;border-radius:calc(var(--r) - 4px);color:var(--fg);text-decoration:none;font-weight:500;white-space:nowrap}
.tabs a:hover{background:#00000008}
.tabs a[aria-current]{background:var(--vert);color:#fff}
.gsearch{position:relative;flex:1;max-width:30em;margin-left:12px}
.gsearch>svg{position:absolute;left:11px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.gsearch input{width:100%;box-sizing:border-box;padding:9px 12px 9px 34px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font:inherit}
.gsearch input:focus{outline:2px solid var(--vert);outline-offset:-1px}
.gres{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 32px #0002;max-height:70vh;overflow:auto;z-index:80;padding:4px}
.gres .gh{font-size:.72em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 2px}
.gres .gi{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:8px;cursor:pointer;font:inherit}
.gres .gi small{display:block;color:var(--muted);font-size:.82em}
.gres .gi.on,.gres .gi:hover{background:#2E8B5714}
.gsbtn{display:none;background:none;border:0;padding:6px;cursor:pointer;color:var(--fg)}
.gsbtn svg{width:22px;height:22px}
a.dl{color:inherit;text-decoration:underline;text-decoration-color:#19403055;text-underline-offset:3px;cursor:pointer}
a.dl:hover{color:var(--vert);text-decoration-color:var(--vert)}
.pdfb{display:inline-flex;vertical-align:middle;margin-left:6px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--panel);cursor:pointer;color:var(--muted)}
.pdfb svg{width:15px;height:15px}
.pdfb:hover{color:var(--vert);border-color:var(--vert)}
[data-row-doc]{cursor:pointer}
table.list tbody tr[data-row-doc]:hover td,table.mg tbody tr[data-row-doc]:hover td{background:#2E8B570A}
.hint{margin:-4px 0 8px;color:var(--muted);font-size:.85em}
.skel{color:var(--muted);padding:18px;text-align:center;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.peek{position:fixed;z-index:90;width:min(360px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 14px 36px #0003;padding:12px 14px;font-size:.9em;pointer-events:none}
.peek .pk-h small{display:block;color:var(--muted);font-size:.8em}
.peek .pk-h b{font-size:1.05em}
.peek .pk-p{margin:4px 0 6px;color:var(--fg)}
.peek ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.peek li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}
.peek li small{color:var(--muted)}
.peek li span{white-space:nowrap;color:var(--muted)}
.peek .pk-f{margin-top:6px;color:var(--muted);font-size:.82em}
.drscrim{position:fixed;inset:0;background:#0003;z-index:70}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(760px,96vw);background:var(--bg,#F6F6F1);z-index:75;box-shadow:-12px 0 40px #0003;overflow:auto;padding:16px 20px 40px;box-sizing:border-box}
.dr-h{display:flex;align-items:flex-start;gap:10px}
.dr-t{flex:1;min-width:0}
.dr-t small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75em}
.dr-t h2{margin:2px 0 6px;font-family:var(--f-display);color:var(--vert);font-size:1.4em}
.dr-x,.dr-b{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:34px;height:34px;cursor:pointer;font-size:1.05em}
.dr-p{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.dr-a{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.dr-tabs{margin-bottom:12px}
.dr-f{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 12px}
.dr-f dt{color:var(--muted)}
.dr-f dd{margin:0}
.dr-l{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.dr-l small{color:var(--muted);margin-right:4px}
.dr-l .chip{display:inline-flex;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);text-decoration:none;color:var(--fg);font-size:.9em}
.dr-l .chip span{color:var(--muted)}
.dr-l .chip:hover{border-color:var(--vert);color:var(--vert)}
.dr-pdf{width:100%;height:calc(100vh - 290px);min-height:420px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.dr-img{max-width:100%;border-radius:var(--r)}
.dr-files{display:grid;gap:6px;margin-bottom:10px}
body.drawer-open{overflow:hidden}
.bbar{display:none}
@media (max-width:980px){
  .top .ttl small{display:none}
  .gsearch{display:none;position:fixed;left:10px;right:10px;top:10px;max-width:none;margin:0;z-index:85}
  body.gs-open .gsearch{display:block}
  .gsbtn{display:block}
  .tabs{width:auto;overflow-x:auto;flex-wrap:nowrap}
  .tbl{overflow-x:auto}
  .content{padding-bottom:76px}
  .bbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--panel);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .bbar a,.bbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);text-decoration:none;font-size:.72em;background:none;border:0;font-family:inherit;cursor:pointer}
  .bbar svg{width:22px;height:22px}
  .drawer{width:100vw;padding:12px 14px 40px}
  .dr-pdf{height:70vh}
}
a.dl{white-space:nowrap}
.peek li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.peek li small{display:block}
.gsearch{min-width:15em}
.gres{min-width:26em}
#auth:not([hidden]) ~ .bbar{display:none!important}
@media (max-width:980px){
  .top{gap:8px}
  .top .ttl{flex:1;min-width:0}
  .top .sp,.top .live{display:none}
  .csel{max-width:7em;padding:3px 4px 3px 8px}
  .csel select{max-width:5.5em}
  .seg button{padding-left:8px;padding-right:8px}
}

/* ---------- Module Récolte ---------- */
.rwrap{display:flex;flex-direction:column;gap:14px;min-width:0}
.pos{color:var(--ok)} .neg{color:var(--crit)}
.rbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 14px}
.rbar label{display:flex;align-items:center;gap:6px;font-size:.9em;color:var(--muted)}
.rbar .plabel{text-transform:capitalize;min-width:13em;text-align:center}
.rbar .seg button:empty{display:none}
.rdays{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.rdays button{flex:1 0 9.5em;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px;position:relative}
.rdays button b{text-transform:capitalize;font-family:var(--f-display);color:var(--vert)}
.rdays button small{color:var(--muted);font-size:.78em}
.rdays button i{position:absolute;top:6px;right:8px;font-style:normal;font-size:.7em}
.rdays button[aria-pressed="true"]{border-color:var(--vert);box-shadow:inset 0 0 0 1px var(--vert);background:var(--frais-1)}
.rtools{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:10px}
.rtools .inp{min-width:14em}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:.9em}
.rhelp{font-size:.85em;margin:10px 0 0}
input.rc,select.rc{width:5.2em;border:1px solid transparent;background:var(--panel-2);border-radius:6px;padding:4px 6px;text-align:right;transition:border-color .2s,background .2s}
select.rc{width:auto;max-width:11em;text-align:left}
input.rc:hover,select.rc:hover{border-color:var(--line-2)}
input.rc:focus,select.rc:focus{border-color:var(--feuille);background:#fff;outline:none}
input.rc[data-cf="traca"],input.rc[data-cf="info"],input.rc[data-tdf="commentaire"],input.rc[data-sf="name"],input.rc.wide,input.rc[data-k="label"],input.rc[data-k="name"],input.rc[data-k="famille"],input.rc[data-k="site"]{text-align:left;width:9em}
input.rc.wide{width:14em} input.rc.sm{width:6.5em} input.rc.xs{width:4em}
input.rc[type="time"]{width:6.5em;text-align:left}
input.rc:disabled,select.rc:disabled{background:transparent;color:var(--fg)}
.rc.rsaving{border-color:var(--info)!important}
.rc.rok{border-color:var(--ok)!important;background:#2E8B5714!important}
.rc.rerr{border-color:var(--crit)!important;background:#C2453A14!important}
.rgrid{max-height:70vh;overflow:auto}
.bsg th,.bsg td{padding:4px 6px;white-space:nowrap}
.bsg td{padding:3px 6px}
.bsg thead th{position:sticky;top:0;background:var(--panel);z-index:2;font-size:.68em}
.bsg thead tr:nth-child(2) th{top:22px}
.bsg th.rgrp{text-align:center;color:var(--vert);border-bottom:1px solid var(--line)}
.bsg .stick{position:sticky;left:0;background:var(--panel);z-index:1;min-width:13em;max-width:18em;white-space:normal}
.bsg thead .stick{z-index:3}
.bsg td.src,.bsg th.src{background:#F2F5EC80}
.bsg .rav{background:#2F6F9F0A}
.bsg tfoot td{font-weight:600;border-top:2px solid var(--line-2);position:sticky;bottom:0;background:var(--panel)}
.rgood{border-left:4px solid var(--ok)} .rbad{border-left:4px solid var(--crit)}
.rbig{font-size:1.05em;font-weight:600;margin:0 0 12px} .rbig.ok{color:var(--ok)}
.rteams{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5em,1fr));gap:8px}
.rteams>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}
.rteams>div .num{font-size:1.5em;color:var(--vert);font-weight:600}
.rteams>div small{color:var(--muted);font-size:.78em}
.rteams>div.zero .num{color:var(--muted)}
.rteams>div.srcbox{background:var(--panel-2);border-style:dashed}
.rdet{margin-top:12px} .rdet summary{cursor:pointer;font-weight:600}
details.card.rdet{margin-top:0}
.rpubf{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px}
.rpubf label{display:flex;flex-direction:column;gap:4px;font-size:.85em;color:var(--muted)}
.rpubf .grow{flex:1;min-width:14em} .rpubf .grow .inp{width:100%}
tr.rchg td,.rchgc{background:#FFF4C2}
td small{display:block}
.rmini{font-size:.9em;margin:4px 0 8px}
.rteam h2 small{font-size:.75em}
.rtd{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:var(--panel-2);border-radius:10px;padding:8px 10px;margin-bottom:10px;font-size:.9em}
.rtd label{display:flex;align-items:center;gap:6px;color:var(--muted)}
.rtd label.grow{flex:1;min-width:12em} .rtd label.grow .rc{flex:1;width:auto}
.rtd label.need{color:var(--crit);font-weight:600}
.rtd .rest b{color:var(--vert)} .rtd .rest.neg b{color:var(--crit)}
.plt tr.st-nouveau td,.plt tr.st-modifie td{background:#FFF4C2}
.plt tr.st-retire td{color:var(--muted);text-decoration:line-through}
.plt tr.st-retire td input,.plt tr.st-retire td select{text-decoration:none}
.plt tr.st-manuel td{background:#2F6F9F0D}
.radd{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.radd label{display:flex;align-items:center;gap:6px;font-size:.88em;color:var(--muted)}
.radd select.inp{max-width:20em}
.inp.xs{width:5em;padding:6px 8px}
.fihead{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}
.fihead.finew{border:2px solid var(--warn);background:#FFF8E1}
.fitot{text-align:right} .fitot b{font-size:1.8em;color:var(--vert);display:block;line-height:1} .fitot small{color:var(--muted)}
.filines{display:grid;grid-template-columns:repeat(auto-fill,minmax(19em,1fr));gap:10px}
.fil{padding:12px 14px}
.fil.st-nouveau,.fil.st-modifie{background:#FFF4C2;border-color:#E9C95A}
.fil.st-retire{opacity:.6}
.filh{display:flex;justify-content:space-between;gap:10px}
.filh b{font-family:var(--f-display);color:var(--vert);font-size:1.08em}
.filh small{display:block;color:var(--muted);font-size:.82em}
.fiq{text-align:right;flex:none} .fiq .num{font-size:1.7em;font-weight:700;color:var(--vert);line-height:1} .fiq small{display:block;color:var(--muted);font-size:.75em}
.fiq em{color:var(--warn);font-style:normal;font-weight:600}
.filf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px}
.filf label{display:flex;flex-direction:column;gap:3px;font-size:.78em;color:var(--muted)}
.filf .rc{width:100%!important;font-size:1.15em;padding:8px;text-align:left;max-width:none}
.recg{display:grid;grid-template-columns:repeat(auto-fill,minmax(11em,1fr));gap:10px}
.recg label{display:flex;flex-direction:column;gap:4px;font-size:.82em;color:var(--muted)}
.recg .inp{width:100%;max-width:none}
.recg .w2{grid-column:span 2}
.recfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.lavt{color:var(--info);font-size:.85em}
.rlists{display:grid;grid-template-columns:repeat(auto-fill,minmax(16em,1fr));gap:12px;margin-top:10px}
.rlist{display:flex;flex-direction:column;gap:6px}
.impf{display:grid;grid-template-columns:repeat(auto-fill,minmax(16em,1fr));gap:10px;align-items:end}
.impf label{display:flex;flex-direction:column;gap:4px;font-size:.85em;color:var(--muted)}
#implog ul{margin:6px 0;padding-left:20px;font-size:.9em}
@media (max-width:760px){
  .rbar .plabel{min-width:0;flex:1}
  .recg .w2{grid-column:auto}
  .filf{grid-template-columns:1fr 1fr} .filf label:first-child{grid-column:span 2}
  .rtd label.grow{min-width:100%}
}
@media print{ .rbar,.radd,.rhelp,.tabs{display:none!important} .plt input,.plt select{border:0;background:none} }
.rbar .plabel,.rdays button b{text-transform:none} .rbar .plabel::first-letter,.rdays button b::first-letter{text-transform:uppercase}
.bsg input.rc{width:4em} .bsg input.rc.wide{width:12em} .bsg th{letter-spacing:.02em}
.rtd label.grow .rc{min-width:0}

/* Voir comme */
.viewas{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px clamp(16px,2.4vw,32px);background:#7A4E00;color:#fff;font-size:.92em}
.viewas[hidden]{display:none}
.viewas select{border:0;border-radius:8px;padding:4px 8px;font:inherit;max-width:16em}
.viewas .btn{background:#fff;color:#7A4E00;border-color:#fff}
body.viewing-as .top{top:40px}
#uviewas{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 12px;font:inherit;cursor:pointer;color:inherit}
#uviewas:hover{background:#00000008}
.viewas select{background:#fff;color:#3a2a00}
