:root{
  --bg:#f4f5f7; --card:#ffffff; --ink:#101418; --muted:#6b7280; --faint:#9aa1ab;
  --line:#e5e7eb; --line2:#d3d7dd; --brand:#6d3bd6; --brand-dark:#5a2fb8;
  --grad:linear-gradient(120deg,#39C7F2 0%,#5B6CF6 50%,#8E36D8 100%);
  --ok:#1d9e75; --bad:#c6553d; --radius:9px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brandmark{font-weight:800;letter-spacing:.3px;display:inline-flex;align-items:center;gap:7px}
.osver{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.05em}
.bf-icon{height:26px;width:auto;vertical-align:middle}
.lockup{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:14px}
.bf-icon-lg{height:58px;width:auto}
.wordmark{font-weight:800;font-size:23px;letter-spacing:.3px;display:inline-flex;align-items:baseline;gap:8px}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);min-height:100%}
body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;min-height:100vh}
.hide{display:none!important}
.muted{color:var(--muted)} .err{color:var(--bad);font-size:13px;min-height:18px}
.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}

/* ===== split auth (form left, art right) ===== */
.auth-split{min-height:100dvh;display:grid;grid-template-columns:minmax(340px,38%) 1fr}
.auth-left{position:relative;display:flex;flex-direction:column;justify-content:center;padding:40px clamp(28px,6%,72px);background:var(--card)}
.auth-topbar{position:absolute;top:22px;left:0;right:clamp(28px,6%,72px);display:flex;justify-content:flex-end}
.auth-inner{width:100%;max-width:380px;margin:0 auto}
.auth-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:18px;margin-bottom:26px}
.auth-brand img{height:30px;width:auto}
.auth-brand .osver{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.05em}
.auth-title{font-size:27px;font-weight:750;letter-spacing:-.3px;margin-bottom:20px}
.in{width:100%;padding:14px 14px;border:1.5px solid transparent;border-radius:9px;background:#f1f2f5;font-size:15px;color:var(--ink);margin-bottom:12px}
.in:focus{outline:none;border-color:var(--brand);background:#fff}
.pwd-wrap{position:relative;margin-bottom:12px}
.pwd-wrap .in{margin-bottom:0}
.pwd-wrap .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;color:var(--faint);padding:6px;display:grid;place-items:center}
.pwd-wrap .eye svg{width:19px;height:19px;display:block}
.pwd-wrap .eye:hover{color:var(--muted)}
.auth-row{display:flex;justify-content:flex-end;align-items:center;margin:10px 0 16px}
.btn-lg{width:100%;padding:15px;border:0;border-radius:9px;background:var(--grad);color:#fff;font-weight:700;font-size:15px;cursor:pointer;letter-spacing:.2px}
.btn-lg:hover{filter:brightness(1.04)} .btn-lg:disabled{opacity:.6}
.switch{text-align:center;margin-top:16px;color:var(--muted);font-size:14px}
.switch a,.linkb{color:var(--brand);font-weight:600;cursor:pointer;text-decoration:none}
.switch a:hover,.linkb:hover{text-decoration:underline}
.auth-msg{font-size:13px;min-height:18px;margin-top:8px}
.auth-msg.ok{color:var(--ok)} .auth-msg.err{color:var(--bad)}

/* sectioned retailer sign-up wizard (brand-flavoured) */
.wiz-bar{position:relative;display:flex;justify-content:space-between;margin:4px 2px 0}
.wiz-bar::before{content:"";position:absolute;top:13px;left:12%;right:12%;height:2px;background:var(--line2)}
.wiz-fill{position:absolute;top:13px;left:12%;height:2px;background:var(--grad);width:0;border-radius:2px;transition:width .3s}
.wiz-stp{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}
.wiz-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--card);border:2px solid var(--line2);color:var(--faint);transition:.2s}
.wiz-stp.done .wiz-dot,.wiz-stp.cur .wiz-dot{background:var(--grad);border-color:transparent;color:#fff}
.wiz-stp.cur .wiz-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 20%,transparent)}
.wiz-lab{font-size:11px;color:var(--faint);font-weight:600}
.wiz-stp.cur .wiz-lab,.wiz-stp.done .wiz-lab{color:var(--muted)}
.wiz-meta{font-size:12px;color:var(--faint);margin:14px 0;font-weight:600}
.wiz .field{margin-bottom:12px}.wiz .field .in{margin-bottom:0}
.wiz-greet[hidden],.wiz-brand[hidden],.wiz-back[hidden]{display:none}
.wiz-greet{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--brand);font-size:14px;font-weight:600}
.wiz-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wiz-flabel{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:600}
.wiz-hint{font-size:12px;color:var(--faint);margin:8px 2px 0;line-height:1.45}
.wiz-pill{display:inline-block;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand);padding:2px 8px;border-radius:99px;margin-left:8px;vertical-align:1px}
.wiz-contact{border:1px solid var(--line2);border-radius:10px;padding:8px;margin-bottom:8px}
.wiz-crow{display:grid;grid-template-columns:92px 1fr 28px;gap:6px;align-items:center;margin-bottom:6px}
.wiz-crow .in,.wiz-contact .wc-note{margin-bottom:0}
.wiz-x{border:0;background:none;color:var(--faint);font-size:18px;line-height:1;cursor:pointer;padding:4px;border-radius:6px}
.wiz-x:hover{color:var(--bad)}
.wiz-add{background:none;border:0;color:var(--brand);font-weight:700;font-size:13px;cursor:pointer;padding:6px 0;margin-top:2px}
.wiz-seg{display:flex;gap:8px}
.wiz-seg button{flex:1;padding:10px 6px;border-radius:9px;border:1.5px solid var(--line2);background:var(--card);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.wiz-seg button.on{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.wiz-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin:2px 0 10px;cursor:pointer}
.wiz-check input{width:auto}
.wiz-ship{border:1px solid var(--line2);border-radius:10px;padding:8px;margin-bottom:8px;position:relative}
.wiz-ship .in{margin-bottom:8px}
.wiz-ship .ws-x{position:absolute;top:6px;right:6px}
.wiz-opt{color:var(--faint);font-weight:500;font-size:12px}
.wiz-div{border-top:1px solid var(--line2);margin:16px 0 14px}
.wiz-brand{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--line2);background:color-mix(in srgb,var(--brand) 6%,transparent)}
.wiz-blogo{width:32px;height:32px;border-radius:8px;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.wiz-bname{font-weight:700;font-size:14px;color:var(--ink)}
.wiz-bsub{font-size:12px;color:var(--muted)}
.wiz-bcheck{margin-left:auto;color:var(--ok);font-weight:800;font-size:16px}
.wiz-foot{display:flex;gap:10px;margin-top:18px;align-items:stretch}
.wiz-back{flex:0 0 auto;display:grid;place-items:center;padding:0 18px;border-radius:9px;border:1.5px solid var(--line2);background:var(--card);color:var(--muted);font-weight:700;font-size:14px;cursor:pointer}
.wiz-next{flex:1}
.in-bad{border-color:var(--bad) !important}
.wiz-done{text-align:center;padding:20px 6px 6px}
.wiz-mailic{width:54px;height:54px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;margin:0 auto 14px;font-size:24px;font-weight:800}
.wiz-done-t{font-size:17px;font-weight:750}

/* art panel + shapes (brand mood) */
.auth-art{position:relative;overflow:hidden;background:#fdfdff;display:flex;align-items:center;justify-content:center;padding:40px}
.auth-art .headline{position:relative;z-index:3;font-size:clamp(30px,3.6vw,48px);font-weight:800;line-height:1.12;letter-spacing:-.6px;max-width:62%}
.auth-art .headline b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
/* soft gradient aurora wash */
.glow{position:absolute;border-radius:50%;filter:blur(74px);z-index:0;pointer-events:none}
.g1{width:440px;height:440px;background:#39C7F2;top:-130px;left:-90px;opacity:.5}
.g2{width:540px;height:540px;background:#8E36D8;bottom:-190px;right:-140px;opacity:.4}
.g3{width:380px;height:380px;background:#5B6CF6;top:44%;left:34%;opacity:.24}
/* flowing gradient streams + rings (the "flow") */
.art-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.dots{position:absolute;z-index:2;width:150px;height:120px;top:15%;right:11%;
  background-image:radial-gradient(var(--line2) 1.5px,transparent 1.5px);background-size:18px 18px;opacity:.55}
@media(max-width:900px){
  .auth-split{grid-template-columns:1fr}
  .auth-art{display:none}
  .auth-left{min-height:100dvh;justify-content:flex-start;padding-top:42px;padding-bottom:84px}
}

/* auth / setup card */
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;max-width:400px;width:100%}
.box .brand{font-weight:800;letter-spacing:.5px;font-size:20px}
.box .brand b{color:var(--brand)}
.box .tag{color:var(--muted);font-size:13px;margin:2px 0 20px}
.box h1{font-size:18px;margin-bottom:4px}
.box p{color:var(--muted);font-size:13.5px;margin-bottom:16px}
.tabs{display:flex;gap:6px;margin-bottom:16px}
.tabs button{flex:1;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.field{display:block;margin-bottom:12px}
.field span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.field input,.field select{width:100%;padding:11px 12px;border:1px solid var(--line2);border-radius:8px;font-size:14px;background:var(--card)}
.btn{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink)}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;width:100%}
.btn:hover{filter:brightness(.98)}
.linkbtn{appearance:none;border:0;background:none;color:var(--brand);font-size:13px;cursor:pointer;text-decoration:underline;padding:6px 0}
.note{font-size:12px;color:var(--faint);margin-top:14px;padding:12px;background:#eef0f3;border:1px solid var(--line);border-radius:10px}

/* pin pad */
#pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
#pinpad button{padding:16px;font-size:20px;border:1px solid var(--line2);background:var(--card);border-radius:10px;cursor:pointer}
.pin-dots{display:flex;gap:12px;justify-content:center;margin:14px 0}
.pin-dot{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--ink)}
.pin-dot.full{background:var(--ink)}

/* app shell */
.nav{position:sticky;top:0;z-index:20;background:rgba(244,245,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:8px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0));flex-wrap:wrap}
.nav .brand{font-weight:800;letter-spacing:.5px;margin-right:6px}
.nav .brand b{color:var(--brand)}
.nav .tenant{font-size:13px;color:var(--muted);border-left:1px solid var(--line2);padding-left:10px}
.tabsbar{display:flex;gap:4px;flex-wrap:wrap;margin-left:6px}
.tab{border:1px solid transparent;background:transparent;color:var(--muted);padding:6px 12px;border-radius:99px;font-size:13px;font-weight:500;cursor:pointer}
.tab:hover{background:#e7e9ed;color:var(--ink)} .tab.on{background:var(--ink);color:#fff}
.right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.right select{border:1px solid var(--line2);border-radius:8px;padding:5px 8px;font-size:12.5px;background:var(--card)}
.rolechip{border:1px solid var(--ink);border-radius:99px;padding:3px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.wrap{max-width:1100px;margin:0 auto;padding:22px 16px 80px}
.viewhead h1{font-size:22px;font-weight:650}
.viewhead p{color:var(--muted);font-size:13.5px;margin-top:2px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:16px}
.soon{border:1.5px dashed var(--line2);border-radius:var(--radius);padding:48px 20px;text-align:center;color:var(--faint);margin-top:16px}
.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row .nm{font-weight:600} .row .rl{margin-left:auto;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.linkbox{display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:6px}
.ccode-big{font-size:34px;font-weight:750;letter-spacing:.16em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:4px}
.qr{width:120px;height:120px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:6px}
.emp-row{display:grid;grid-template-columns:1.6fr 1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.emp-row:last-child{border-bottom:0}
.emp-row .emp-name,.emp-row .emp-role,.emp-row .emp-store{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;color:var(--ink);min-width:0}
.emp-store.saved{border-color:var(--ok)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 35%,transparent)}
.loc-co{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;color:var(--ink);min-width:0}
.comp-card .comp-logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.emp-row .btn{padding:8px 11px;white-space:nowrap}

/* barcode rule builder (settings) */
.bc-preview{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.bc-sample{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px;font-weight:700;letter-spacing:.12em;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;color:#101418}
.bc-segs{display:flex;flex-direction:column;gap:8px}
.bc-seg{display:flex;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.bc-tag{flex:0 0 110px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.bc-fields{flex:1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bc-fields input,.bc-fields select{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:7px;padding:7px 9px;font-size:13.5px;color:var(--ink);max-width:150px}
.bc-fields input[type=number]{max-width:88px}
.bc-fld{display:flex;flex-direction:column;gap:3px}
.bc-fld>span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.bc-fld input,.bc-fld select{margin:0}
.bc-chk{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}
.bc-chk input{max-width:none}
.bc-ctrl{display:flex;gap:5px}
.bc-mini{width:auto!important;padding:6px 9px;line-height:1}
.bc-add{display:flex;gap:8px;margin-top:14px}
.bc-add select{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 11px;font-size:14px;color:var(--ink)}

/* per-variant barcodes (product editor) */
.bc-sec{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.bc-sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bc-vrow{display:grid;grid-template-columns:1fr 1.4fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.bc-vrow:last-child{border-bottom:0}
.bc-vlabel{font-weight:600;font-size:13.5px}
.bc-vinput{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:var(--ink)}
/* manage-variants link on the details form */
.vlink{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.vlink .btn{border-color:var(--brand);color:var(--brand)}
/* variant rows (barcode + per-location stock) */
.vr-row{padding:12px 0;border-bottom:1px solid var(--line)}
.vr-row:last-child{border-bottom:0}
.vr-label{font-weight:600;display:block;margin-bottom:6px}
.vr-new{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);border:1px solid var(--brand);border-radius:6px;padding:1px 6px;margin-left:6px}
.vr-bc{display:flex;gap:8px;align-items:center;max-width:420px;margin-bottom:8px}
.vr-bc .bc-vinput{flex:1}
.vr-stocks{display:flex;gap:10px;flex-wrap:wrap}
.vr-stk{display:flex;flex-direction:column;gap:3px}
.vr-stk>span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}
.vr-stk input{width:120px;appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:8px 10px;font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink)}

/* customers */
.cust-head,.cust-row{display:grid;grid-template-columns:1.5fr 1.5fr 1.3fr .8fr .8fr;gap:12px;align-items:center}
.cust-head{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:0 0 8px;border-bottom:1px solid var(--line)}
.cust-row{padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.cust-row:last-child{border-bottom:0}
.cust-row:hover{background:var(--bg)}
.cust-row .nm{font-weight:600}
.cust-row .debt{font-weight:700;color:#c0392b}
.cust-head>span:last-child,.cust-row>span:last-child{text-align:right}

/* per-tier manual price inputs (product editor) */
.tier-price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tier-price{display:flex;flex-direction:column;gap:4px;align-items:stretch}
.tier-price>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);min-height:2.2em}
.tier-price input{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;color:var(--ink);margin-top:auto}
.tier-price.is-base input{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.tier-price.is-base>span{color:var(--brand);font-weight:700}

/* product analytics */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:6px}
.stat-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg)}
.stat-card .stat-v{font-size:18px;font-weight:750;font-variant-numeric:tabular-nums}
.stat-card .stat-l{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:3px}
.stat-card.pos .stat-v{color:#15803d}
.stat-card.neg .stat-v{color:#c0392b}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}
.field textarea{width:100%;padding:11px 12px;border:1px solid var(--line2);border-radius:8px;font-size:14px;background:var(--card);resize:vertical}

/* products */
/* catalog finder bar */
.cat-bar{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.cat-search{flex:1 1 280px;min-width:220px;appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:10px;padding:11px 14px;font-size:14px;color:var(--ink)}
.cat-f{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:10px;padding:10px 12px;font-size:13.5px;color:var(--ink);cursor:pointer;max-width:200px}
.cat-meta{margin:12px 0 2px;font-size:13px;color:var(--muted)}
.cat-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:22px 0 6px}
.cat-pager .btn{width:auto}
.pc-oos{position:absolute;top:8px;left:8px;background:rgba(16,20,24,.78);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 7px;border-radius:6px}

/* locations manager */
.loc-row{display:grid;grid-template-columns:1.6fr 1fr auto auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.loc-row:last-child{border-bottom:0}
.loc-row .loc-name,.loc-row .loc-kind{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;color:var(--ink)}
.loc-row .btn{width:auto;padding:7px 11px}

/* home dashboard */
.home-hero{margin-top:18px}
.home-hi{font-size:24px;font-weight:650}
.home-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;cursor:default}
.kpi[data-go]{cursor:pointer}
.kpi.accent{background:linear-gradient(135deg,#39C7F2,#5B6CF6,#8E36D8);border:0;color:#fff}
.kpi-v{font-size:26px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi-l{font-size:12px;color:var(--muted);margin-top:4px}
.kpi.accent .kpi-l{color:rgba(255,255,255,.85)}
.home-sec{margin-top:26px}
.home-sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.home-sec-head h3{font-size:17px;font-weight:650}
.chips-row{display:flex;gap:6px;flex-wrap:wrap}
.chips-row .tchip{border:1px solid var(--line2);background:var(--card);border-radius:99px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}
.chips-row .tchip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.home-rail{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory}
.prod-card{position:relative;flex:0 0 150px;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.prod-card img,.prod-card .pc-ph{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#eef0f3}
.pc-badge{position:absolute;top:8px;left:8px;background:rgba(16,20,24,.78);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:7px}
.pc-b{padding:6px 7px}
.pc-ref{font-weight:700;font-size:12.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-nm{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:0}

/* mobile bottom nav — floating pill, active tab as a tinted capsule */
.bottomnav{display:none}
.bn-item{display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;padding:9px 14px;border-radius:99px;color:var(--muted);font-size:12.5px;font-weight:700;cursor:pointer;transition:.15s}
.bn-item svg{width:23px;height:23px;flex:0 0 auto}
.bn-item span{display:none}
.bn-item.on{background:rgba(109,59,214,.12);color:var(--brand)}
.bn-item.on span{display:inline}
@media(max-width:760px){
  .bottomnav{display:flex;justify-content:space-evenly;align-items:center;gap:6px;position:fixed;left:14px;right:14px;bottom:14px;z-index:50;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 36px -12px rgba(16,20,24,.34);padding:7px 8px;padding-bottom:calc(7px + env(safe-area-inset-bottom,0))}
  .wrap{padding-bottom:100px}
  .ob-bar{left:14px;right:14px;bottom:86px;border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 30px -14px rgba(16,20,24,.3)}
  .ob-sheet{bottom:150px}
  #obwrap{padding-bottom:170px}
}

/* mobile nav drawer */
.navburger{display:none;width:42px;height:42px;border:1px solid var(--line2);background:var(--card);border-radius:10px;font-size:18px;cursor:pointer}
.drawer{display:none}
.drawer.open{display:block;position:fixed;inset:0;z-index:60;background:rgba(16,20,24,.42)}
.drawer-panel{position:absolute;left:0;top:0;bottom:0;width:min(82vw,320px);background:var(--card);box-shadow:2px 0 40px -12px rgba(16,20,24,.5);display:flex;flex-direction:column;padding:16px;overflow:auto}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.drawer-tabs{display:flex;flex-direction:column;gap:2px}
.drawer-tabs .dtab{text-align:left;border:0;background:none;padding:12px;border-radius:10px;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
.drawer-tabs .dtab:hover{background:var(--bg)}
.drawer-tabs .dtab.on{background:var(--bg);color:var(--brand)}
.drawer-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media(max-width:760px){
  .nav .brandmark, .nav .tenant, .nav .tabsbar, .nav .right{display:none}
  .navburger{display:block}
  .nav{gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0))}
}

/* order builder (POS + B2B) */
#obwrap{padding-bottom:84px}
.ob-top{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;position:sticky;top:0;z-index:40;background:var(--bg);padding:10px 0 8px;margin-top:0}
.ob-top .cat-f{flex:0 0 auto;width:auto;min-width:96px;max-width:130px}
.ob-cust{position:relative;flex:1;min-width:120px}
.ob-custin{width:100%}
.ob-scan{position:relative;margin-top:4px}
/* product-looker browse */
.ob-filter-btn{display:grid;place-items:center;position:relative}
.ob-filter-btn svg{display:block}
.ob-fcount{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--brand);color:#fff;font-size:10px;font-weight:800;font-style:normal;display:grid;place-items:center;line-height:1;border:1.5px solid var(--bg)}
.ob-filter-btn.on .ob-fcount{background:#fff;color:var(--brand)}
/* Stock hub segmented control (Ajuster / Produire / Recevoir) */
.hub-segbar{position:sticky;top:0;z-index:15;display:flex;gap:4px;padding:6px;margin:0 0 4px;background:var(--bg);border:1px solid var(--line);border-radius:13px;overflow-x:auto}
.hub-seg{flex:1 1 0;min-width:max-content;border:0;background:none;padding:9px 16px;border-radius:9px;font:inherit;font-size:13.5px;font-weight:650;color:var(--muted);cursor:pointer;white-space:nowrap;transition:.12s}
.hub-seg:hover{color:var(--ink)}
.hub-seg.on{background:var(--card);color:var(--brand);box-shadow:0 1px 0 rgba(16,20,24,.04),0 6px 16px -12px rgba(16,20,24,.4)}
html[data-theme="dark"] .hub-seg.on{background:var(--card)}
.look-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:8px;margin-top:12px}
.look-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;transition:.12s}
.look-card:hover{box-shadow:0 16px 36px -22px rgba(110,59,214,.4)}
.look-card img,.look-card .pc-ph{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#eef0f3}
/* bottom sheets (variant picker / cart / options) */
/* A closed sheet must never intercept clicks. On desktop #obPicker is hidden with
   opacity:0 (not moved off-screen), and opacity:0 elements still receive pointer
   events — so without this it sat invisibly over the grid and ate every click. */
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--card);border-top:1px solid var(--line);border-radius:13px 13px 0 0;box-shadow:0 -18px 44px -20px rgba(16,20,24,.5);transform:translateY(115%);transition:transform .24s ease;max-height:78vh;overflow:auto;pointer-events:none}
.sheet.open{transform:translateY(0);pointer-events:auto}
.sheet-tall{max-height:82vh}
.sheet-inner{max-width:1100px;margin:0 auto;padding:16px}
.sheet-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid var(--line);flex-wrap:wrap}

/* sticky bottom bar */
.ob-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(16,20,24,.3)}
.ob-gear{width:42px;height:42px;border:1px solid var(--line2);background:var(--card);border-radius:9px;font-size:18px;cursor:pointer;flex:0 0 auto}
.ob-bar-meta{flex:1;min-width:0}
.ob-bar-counts{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-bar-tot{font-size:22px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.1}
.ob-bar-go{width:auto!important;flex:0 0 auto;padding:13px 26px}
/* options sheet (slides up above the bar) */
.ob-sheet{position:fixed;left:0;right:0;bottom:64px;z-index:39;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -16px 40px -20px rgba(16,20,24,.4);transform:translateY(110%);transition:transform .22s ease;max-height:70vh;overflow:auto}
.ob-sheet.open{transform:translateY(0)}
.ob-sheet-inner{max-width:1100px;margin:0 auto;padding:16px}
.ob-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ob-sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.ob-vat{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;font-weight:600;cursor:pointer}
.ob-vat input{width:18px;height:18px}
.ob-empty{padding:40px 20px;text-align:center;color:var(--faint);border:1.5px dashed var(--line2);border-radius:var(--radius);margin-top:14px}
.ob-cart{margin-top:14px;padding:6px 16px}
.ob-line{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.ob-line:last-child{border-bottom:0}
.ob-line img{width:44px;height:56px;object-fit:cover;border-radius:8px;background:#eef0f3;flex:0 0 auto}
.ob-lph{width:44px;height:56px;border-radius:8px;background:#eef0f3;flex:0 0 auto}
.ob-lmain{flex:1;min-width:0}
.ob-lref{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-line .pl-qty{flex:0 0 auto}
.ob-lt{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:62px;flex:0 0 auto;white-space:nowrap}
.ob-line .pl-del{flex:0 0 auto}
.ob-foot{margin-top:14px}
.ob-opts{display:grid;grid-template-columns:1fr 2fr;gap:12px}
.ob-pay{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
/* variant picker */
.ob-picker{margin-top:14px;padding:0}
.obp-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.obp-rows{max-height:62vh;overflow:auto}
.obp-row{display:grid;grid-template-columns:72px 1fr 168px;gap:12px;align-items:stretch;padding:8px 12px;border-bottom:1px solid var(--line)}
.obp-row:last-child{border-bottom:0}
.obp-row.has{background:var(--bg)}
.obp-sep{display:flex;align-items:center;gap:10px;margin:6px 2px 2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.obp-sep::before,.obp-sep::after{content:"";flex:1;height:1px;background:var(--line)}
.obp-row.oos:not(.has) .obp-name,.obp-row.oos:not(.has) .obp-price{opacity:.55}
.obp-row.oos img{opacity:.7}
.obp-row img{width:72px;height:84px;object-fit:cover;border-radius:8px;background:#eef0f3}
.obp-ph{width:72px;height:84px;border-radius:8px;background:#f1f2f4;display:grid;place-items:center;font-size:24px;opacity:.5}
.obp-info{align-self:center;min-width:0}
.obp-name{font-weight:700;font-size:15px}
.obp-sub{font-size:13px;margin-top:3px;color:var(--muted);display:flex;flex-direction:column;gap:1px}
.obp-price{font-weight:800;color:var(--ink);font-size:15px}
.obp-ok{color:#15803d;font-weight:600}
.obp-out{color:#c0392b;font-weight:600}
/* pré-commande "en attente" chips + who-is-waiting popovers (POS picker + Stock) */
.obp-await,.sg-await{border:1px solid var(--line2);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);font:inherit;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:99px;cursor:pointer;white-space:nowrap;align-self:flex-start}
.obp-who,.sg-who{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:12px;color:var(--muted);width:100%}
.sg-who{flex-basis:100%}
.obp-who a{color:var(--brand);font-weight:600;text-decoration:none}
.ord-kind{font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:11px;padding:1px 8px;border-radius:99px;background:var(--line);color:var(--ink)}
.ord-kind.k-preorder{background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand)}
.ord-kind.k-devis{background:color-mix(in srgb,#b8860b 18%,transparent);color:#8a6508}
/* geographic zones (exclusivity foundation) */
.zn-list{display:flex;flex-direction:column}
.zn-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.zn-row .zn-geo{flex:1;min-width:0;font-size:14px}
.zn-zbadge{font-size:11px;font-weight:700;padding:1px 8px;border-radius:99px;background:var(--line);color:var(--muted)}
.zn-zbadge.on{background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand)}
.zn-count{font-size:12.5px;color:var(--muted);white-space:nowrap}
.zn-cust{padding:6px 0 10px 28px;display:flex;flex-direction:column;gap:4px}
.zn-crow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.zn-crow.excl{opacity:.6}
.zn-grow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.zn-grow:last-child{border-bottom:0}
.zn-erow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.zn-erow:last-child{border-bottom:0}
.zn-erow.exp{opacity:.55}
.zn-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.zn-add select,.zn-add input{height:40px}
.excl-ov{position:fixed;inset:0;z-index:90;background:rgba(16,20,24,.5);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(2px)}
.excl-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;width:min(640px,96vw);max-height:88vh;overflow:auto;box-shadow:0 24px 60px -20px rgba(16,20,24,.5)}
/* on-card geographic-restriction notice in the POS variant sheet (a warning, not a block) */
.pk-excl{display:flex;align-items:center;gap:6px;margin:0 0 8px;padding:7px 11px;border-radius:9px;font-size:12.5px;font-weight:650;color:#8a4b00;background:color-mix(in srgb,#f0a020 18%,transparent);border:1px solid color-mix(in srgb,#f0a020 40%,transparent)}
html[data-theme="dark"] .pk-excl{color:#f0c078}
/* buyer portal (boutique-facing) */
.byr{min-height:100vh;background:var(--bg)}
.byr-top{display:flex;align-items:center;gap:12px;padding:14px 20px;padding-top:calc(14px + env(safe-area-inset-top,0));border-bottom:1px solid var(--line);background:var(--card)}
.byr-top .brandmark{font-size:16px}
.byr-id{margin-left:auto;color:var(--muted);font-size:13px}
.byr-main{max-width:880px;margin:0 auto;padding:22px 20px 60px}
.byr-main h1{margin:0 0 16px}
.byr-stores{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.byr-store{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.byr-store-h{display:flex;align-items:baseline;gap:8px;font-size:15px}
.byr-store-acts{display:flex;gap:8px}
.byr-add{border:1px dashed var(--line2);border-radius:12px;padding:16px;margin-top:8px}
.byr-add h3{margin:0 0 4px}
.byr-linked{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.byr-lrow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}
.ob-code{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}
.ob-codein{display:flex;gap:8px}
.ob-codein input{flex:1;font-variant-numeric:tabular-nums;letter-spacing:.08em}
.ccode-inline{font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:.06em}
/* buyer shop */
.byr-price{font-weight:800;font-size:14px;margin-top:2px}
.byr-restr{opacity:.5;filter:grayscale(.6);cursor:default}
.byr-pd{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.byr-pd-img{width:min(360px,100%);aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:#eef0f3}
.byr-pd-img.ph{display:grid;place-items:center;font-size:40px}
.byr-pd-info{flex:1;min-width:260px}
.byr-pd-info h1{margin:0 0 10px}
.byr-vars{display:flex;flex-direction:column;margin-top:12px}
.byr-vrow{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.byr-vname{flex:1;font-size:14px}
.byr-vprice{font-weight:700;font-variant-numeric:tabular-nums}
.byr-qty{display:flex;align-items:center;gap:4px}
.byr-qty button{width:30px;height:30px;border:1px solid var(--line2);background:var(--card);border-radius:8px;font-size:16px;cursor:pointer}
.byr-qty button:disabled{opacity:.4;cursor:default}
.byr-qty b{min-width:24px;text-align:center;font-variant-numeric:tabular-nums}
.byr-cart{display:flex;flex-direction:column}
.byr-crow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.byr-cname{flex:1;font-size:14px}
.byr-clt{font-weight:700;font-variant-numeric:tabular-nums}
.byr-crm{border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px}
.byr-cartfoot{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.byr-carttot{font-size:17px}.byr-carttot b{font-size:20px}
.byr-place{width:auto;padding:14px 28px}
.byr-done{text-align:center;padding:40px 20px;max-width:420px;margin:0 auto}
.byr-done .recap-check{margin:0 auto 12px}
.byr-doneref{font-weight:800;font-size:18px;margin-top:8px;font-variant-numeric:tabular-nums}
.byr-orders{display:flex;flex-direction:column}
.byr-orow{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.byr-orow:hover{background:var(--card)}
.byr-omain{flex:1;min-width:0;font-size:14px}
.byr-ostatus{font-size:12.5px;color:var(--muted);white-space:nowrap}
.byr-ot{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.byr-pending{font-size:12px;font-weight:600;color:var(--muted);padding:6px 10px;border:1px dashed var(--line2);border-radius:8px}
.byr-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,transparent);border:1px solid color-mix(in srgb,var(--brand) 28%,transparent);font-weight:600;font-size:13.5px}
.byr-ship{display:grid;grid-template-columns:1.2fr 1.5fr .8fr 1fr 1.2fr auto;gap:8px;align-items:center;margin-bottom:8px}
.byr-ship .byr-crm{justify-self:center}
@media(max-width:760px){.byr-ship{grid-template-columns:1fr 1fr}}
.ok{color:#15803d;font-weight:600;font-size:13px}
.obp-qty{display:grid;grid-template-columns:1fr 46px 1fr;align-items:stretch;gap:0;height:84px;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.obp-qty button{border:0;background:var(--card);font-size:30px;font-weight:500;cursor:pointer;line-height:1;color:var(--ink);transition:.1s}
.obp-qty button:active{background:var(--brand);color:#fff}
.obp-qty button[data-dec]{border-right:1px solid var(--line2)}
.obp-qty button[data-inc]{border-left:1px solid var(--line2);color:var(--brand)}
.obp-qty span{display:grid;place-items:center;font-weight:800;font-size:19px;font-variant-numeric:tabular-nums;background:var(--card)}
.obp-row.has .obp-qty span{background:var(--brand);color:#fff}
/* product details (compo, origin, weight…) */
.obp-detbtn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 18px;border:0;border-bottom:1px solid var(--line);background:var(--bg);font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.obp-detbtn span{font-size:12px}
.obp-details{padding:6px 18px 12px;border-bottom:1px solid var(--line);background:var(--bg)}
.obp-drow{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;border-bottom:1px dashed var(--line)}
.obp-drow:last-child{border-bottom:0}
.obp-drow span{color:var(--muted)}.obp-drow b{text-align:right}

/* POS register */
.pos-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start;margin-top:16px}
.pos-scan{position:relative}
.pos-cart{margin-top:12px}
.pos-line{display:grid;grid-template-columns:1fr auto 110px auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.pos-line:last-child{border-bottom:0}
.pl-label{font-weight:600;font-size:14px}
.pl-qty{display:flex;align-items:center;gap:4px}
.pl-qty button{width:26px;height:26px;border:1px solid var(--line2);background:var(--card);border-radius:7px;cursor:pointer;font-size:15px;line-height:1}
.pl-qty input{width:46px;text-align:center;border:1px solid var(--line2);background:var(--card);border-radius:7px;padding:5px}
.pl-price{width:100%;border:1px solid var(--line2);background:var(--card);border-radius:7px;padding:7px 8px;font-size:13.5px}
.pl-tot{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:78px}
.pl-del{border:0;background:none;color:var(--faint);cursor:pointer;font-size:14px}
.pos-checkout .pos-cust{position:relative}
.cust-pill{display:inline-flex;align-items:center;gap:8px;margin-top:8px;background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:5px 6px 5px 12px;font-size:13.5px;font-weight:600}
.cust-pill button{border:0;background:none;cursor:pointer;color:var(--faint)}
.pos-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:15px}
.pos-total b{font-size:26px;font-weight:750;font-variant-numeric:tabular-nums}
.pos-receipt{margin-top:12px;padding:11px 14px;border-radius:10px;background:rgba(21,128,61,.08);color:#15803d;font-weight:600;font-size:14px}
.pos-receipt .debt{color:#c0392b}

/* orders */
.ord-head,.ord-row{display:grid;grid-template-columns:1fr 1fr 1.5fr 1fr 1fr auto;gap:12px;align-items:center}
.ord-head{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:0 0 8px;border-bottom:1px solid var(--line)}
.ord-row{padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.ord-row:last-child{border-bottom:0}.ord-row:hover{background:var(--bg)}
.ord-row .nm{font-weight:700}
.ord-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:99px;background:var(--bg);border:1px solid var(--line2);color:var(--muted)}
.ord-badge.open{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.ord-badge.done,.ord-badge.paid{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.ord-badge.void{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.ord-lrow{display:grid;grid-template-columns:1.6fr 1fr auto;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.ord-lrow:last-child{border-bottom:0}.ord-lt{font-weight:700;text-align:right}
.ord-sum{margin-top:14px;max-width:320px;margin-left:auto}
.ord-sum>div{display:flex;justify-content:space-between;padding:3px 0}
.ord-sum .debt{color:#c0392b;font-weight:700}
.ord-pay{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.debt{color:#c0392b;font-weight:700}

@media (max-width:760px){.pos-grid{grid-template-columns:1fr}}

/* branded loading state */
.bf-load{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:72px 20px;min-height:38vh}
.bf-load-orbit{position:relative;width:74px;height:74px;display:grid;place-items:center}
.bf-load-mark{width:42px;height:42px;object-fit:contain;animation:bf-pulse 1.5s ease-in-out infinite}
.bf-load-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 55%,#39C7F2,#5B6CF6,#8E36D8,transparent);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));animation:bf-spin 1s linear infinite}
.bf-load-txt{color:var(--muted);font-size:14px;letter-spacing:.02em}
@keyframes bf-spin{to{transform:rotate(360deg)}}
@keyframes bf-pulse{0%,100%{transform:scale(.9);opacity:.65}50%{transform:scale(1.05);opacity:1}}
@media (prefers-reduced-motion:reduce){.bf-load-ring,.bf-load-mark{animation-duration:2.4s}}

/* stock levels finder */
.st-list{margin-top:6px}
.st-row{display:grid;grid-template-columns:1.3fr 1.6fr auto auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.st-row:last-child{border-bottom:0}
.st-row .st-ref{font-weight:600}
.st-row .st-var{color:var(--muted);font-size:13.5px}
.st-row .st-oh{font-variant-numeric:tabular-nums;font-weight:700;text-align:right;min-width:48px}
.st-row .st-oh.zero{color:var(--faint);font-weight:500}
.st-row .st-adj{width:auto;padding:6px 12px}
/* stock transfer */
.xfer-route{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.xfer-route .field{max-width:260px;flex:1}
.xfer-arrow{font-size:22px;color:var(--brand);padding-bottom:10px}
/* intake searchable picker */
.ln-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 30px -12px rgba(16,20,24,.3);max-height:260px;overflow:auto;display:none}
.ln-results.open{display:block}
.ln-opt{padding:9px 12px;font-size:13.5px;cursor:pointer;border-bottom:1px solid var(--line)}
.ln-opt:last-child{border-bottom:0}
.ln-opt:hover{background:var(--bg)}

.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:16px}
.pcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:.12s}
.pcard:hover{border-color:var(--brand);transform:translateY(-1px)}
.pcard img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#eef0f3}
.pcard .ph{width:100%;aspect-ratio:4/3;background:#eef0f3}
.pcard .pb{padding:12px}
.pcard .pref{font-weight:700;font-size:14px}
.pcard .pmeta{font-size:12.5px;color:var(--muted);margin-top:2px}
.photozone{border:1.5px dashed var(--line2);border-radius:var(--radius);aspect-ratio:16/7;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;background:#fafbfc}
.photozone img{width:100%;height:100%;object-fit:contain}
.chip-input{display:flex;gap:8px}
.chip-input input{flex:1;padding:10px 12px;border:1px solid var(--line2);border-radius:8px;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:13px;border:1px solid var(--ink);border-radius:99px;padding:5px 6px 5px 12px}
.chip button{border:none;background:#eef0f3;border-radius:50%;width:20px;height:20px;font-size:11px;color:var(--muted);cursor:pointer}

/* product media gallery */
.media-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:4px}
.media-tile{position:relative;width:120px;height:120px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0b0d10}
.media-tile img,.media-tile video{width:100%;height:90px;object-fit:cover;display:block;background:#eef0f3}
.media-tile .mt-vid{position:absolute;top:28px;left:50%;transform:translateX(-50%);color:#fff;font-size:22px;text-shadow:0 1px 5px rgba(0,0,0,.6);pointer-events:none}
.media-tile .mt-cover{position:absolute;top:6px;left:6px;background:var(--grad);color:#fff;font-size:9px;font-weight:700;padding:2px 7px;border-radius:99px;letter-spacing:.04em}
.media-tile .mt-del{position:absolute;top:5px;right:5px;border:0;background:rgba(16,20,24,.62);color:#fff;border-radius:50%;width:21px;height:21px;font-size:11px;cursor:pointer;line-height:1}
.media-tile .mt-color{position:absolute;bottom:0;left:0;right:0;border:0;border-top:1px solid var(--line);background:#fff;font-size:11px;padding:5px 6px;height:30px;width:100%}
.media-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.media-err{display:none;font-size:12.5px;color:#c0392b;margin:8px 0 0;line-height:1.45}
.media-err.on{display:block}
html[data-theme="dark"] .media-err{color:#ff7b72}

/* factory mode (production) */
.fac-chip{background:var(--grad);color:#fff;font-weight:700;font-size:13px;padding:4px 12px;border-radius:99px}
.fac-details{margin:6px 0}
.fac-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.fac-bar .field{flex:0 0 auto}
.fac-add{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.fac-card{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px;background:var(--card)}
.fac-chead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.fac-chead b{font-size:14px}
.fac-rm{width:auto!important;padding:4px 10px;color:#c0392b}
.fac-extra{margin-top:8px}
.fac-vrs{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.fac-vr-wrap{display:flex;flex-direction:column;gap:6px}
.fac-vr{display:grid;grid-template-columns:44px 1fr 84px 100px 38px;gap:8px;align-items:center}
.fac-vr .fac-vl{font-weight:600;font-size:13px}
.v-thumb{width:44px;height:44px;border:1px dashed var(--line2);border-radius:8px;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.v-thumb.has{border-style:solid}
.v-thumb img{width:100%;height:100%;object-fit:cover}
.v-notebtn{width:38px;height:38px;border:1px solid var(--line2);border-radius:8px;background:transparent;cursor:pointer;font-size:15px;color:var(--muted);padding:0}
.v-notebtn.has{background:var(--grad);color:#fff;border-color:transparent}
.vr-note textarea{width:100%;padding:8px 10px;border:1px solid var(--line2);border-radius:8px;font-size:13px;background:#f1f2f5;color:var(--ink);resize:vertical;font-family:inherit}
html[data-theme="dark"] .vr-note textarea{background:#222831}
.ord-thumb{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:0 0 auto}
.fac-new{display:inline-block;background:var(--grad);color:#fff;font-size:9px;font-weight:700;padding:1px 6px;border-radius:99px;letter-spacing:.04em;vertical-align:middle;margin-left:4px}
.fac-addvar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.fac-addvar input{flex:0 0 130px;padding:8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;background:#f1f2f5;color:var(--ink)}
html[data-theme="dark"] .fac-addvar input{background:#222831}
.fac-vr input{padding:8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;width:100%;background:#f1f2f5;color:var(--ink)}
.fac-pick{position:relative;margin-bottom:8px}
.fac-pick input{width:100%;padding:9px 10px;border:1px solid var(--line2);border-radius:8px;background:#f1f2f5;color:var(--ink)}
html[data-theme="dark"] .fac-vr input,html[data-theme="dark"] .fac-pick input{background:#222831;border-color:var(--line2)}
.fac-vr input:focus,.fac-pick input:focus{outline:none;border-color:var(--brand)}
html[data-theme="dark"] .fac-vr input:focus,html[data-theme="dark"] .fac-pick input:focus{background:#262d37}
.fac-created{background:#e7f7ee;color:#1c7a47;border:1px solid #b6e6cb;border-radius:9px;padding:9px 12px;font-weight:600;font-size:13px;margin-bottom:12px}
html[data-theme="dark"] .fac-created{background:#16271d;color:#74e0a3;border-color:#235638}
.po-docs{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* réception (stock-in) */
.rcp-h{margin:16px 0 0;font-size:13px}
.rcp-ln{display:grid;grid-template-columns:1fr 84px 110px 38px;gap:8px;align-items:center;margin-top:8px}
.rcp-pick{position:relative}
.rcp-ln input{padding:9px 11px;border:1px solid var(--line2);border-radius:8px;font-size:13.5px;width:100%;background:#f1f2f5;color:var(--ink)}
html[data-theme="dark"] .rcp-ln input{background:#222831}
.rcp-ln input:focus{outline:none;border-color:var(--brand)}
.rcp-del{border:1px solid var(--line2);border-radius:8px;background:transparent;color:#c0392b;cursor:pointer;height:38px;font-size:13px}
.rcp-src{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:99px;vertical-align:middle;text-transform:uppercase}
.rcp-production{background:rgba(124,92,252,.16);color:#7c5cfc}
.rcp-purchase{background:rgba(20,160,110,.16);color:#14a06e}
html[data-theme="dark"] .rcp-production{background:rgba(150,120,255,.2);color:#b9a6ff}
html[data-theme="dark"] .rcp-purchase{background:rgba(40,200,140,.18);color:#6fe0a3}
@media(max-width:600px){.rcp-ln{grid-template-columns:1fr 1fr 38px}.rcp-ln .rcp-pick{grid-column:1/-1}}

/* production shop (POS-style ordering from the factory) */
.shop-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.shop-bar input{flex:1;min-width:180px;padding:10px 12px;border:1px solid var(--line2);border-radius:9px;background:#f1f2f5;color:var(--ink);font-size:14px}
html[data-theme="dark"] .shop-bar input{background:#222831}
.shop-sorts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.shop-period{display:inline-flex;gap:6px;align-items:center;margin-left:4px}
.pchip{padding:5px 10px;border:1px solid var(--line2);border-radius:99px;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}
.pchip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pdays{width:62px;padding:5px 8px;border:1px solid var(--line2);border-radius:8px;background:#f1f2f5;color:var(--ink);font-size:12px}
html[data-theme="dark"] .pdays{background:#222831}
.shop-flt.on{border-color:var(--brand);color:var(--brand)}
.shop-facets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.shop-facets .field span{font-size:11px}
.shop-orderby{display:flex;gap:6px;align-items:stretch}
.shop-orderby select{flex:1}
.shop-dir{width:auto!important;flex:0 0 auto;padding:0 12px;font-size:15px;font-weight:700}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
/* product detail */
.pdt{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}
.pdt-hero{width:100%;aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:var(--bg);display:flex;align-items:center;justify-content:center}
.pdt-hero img,.pdt-hero video{width:100%;height:100%;object-fit:cover}
.pdt-noimg{font-size:46px;color:var(--muted)}
.pdt-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pdt-th{width:56px;height:56px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:var(--bg);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.pdt-th.on{border-color:var(--brand)}
.pdt-th img{width:100%;height:100%;object-fit:cover}
.pdt-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.pdt-compo{font-size:12.5px;color:var(--muted);margin:0 0 12px;line-height:1.5}
.pdt-compo b{color:var(--ink);font-weight:600}
.pdt-vars{display:flex;flex-direction:column;gap:6px}
.pdt-vr{display:grid;grid-template-columns:40px 1fr 84px 34px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.pdt-sw{width:40px;height:40px;border-radius:7px;overflow:hidden;background:var(--bg)}
.pdt-sw img{width:100%;height:100%;object-fit:cover}
.pdt-vl{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.vsw{display:inline-block;width:13px;height:13px;border-radius:4px;flex:0 0 auto;border:1px solid rgba(128,128,128,.35);vertical-align:middle;margin-right:5px}
.pdt-vr .v-q{width:84px;padding:8px;border:1px solid var(--line2);border-radius:7px;background:#f1f2f5;color:var(--ink);font-size:13px}
html[data-theme="dark"] .pdt-vr .v-q{background:#222831}
.v-bcbtn{width:34px;height:34px;border:1px solid var(--line2);border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.v-bcbtn.has{border-color:var(--brand);color:var(--brand)}
.pdt-bcrow{grid-column:1/-1;display:flex;gap:8px;align-items:center;padding:6px 0 2px}
.pdt-bcrow .v-bc{flex:1;max-width:260px;padding:8px;border:1px solid var(--line2);border-radius:7px;background:#f1f2f5;color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}
html[data-theme="dark"] .pdt-bcrow .v-bc{background:#222831}
.v-gen{padding:6px 10px!important;font-size:14px}
.v-bcmsg{font-size:11.5px;color:var(--muted)} .v-bcmsg.ok{color:#14a06e} .v-bcmsg.bad{color:#c0392b}
@media(max-width:760px){.pdt{grid-template-columns:1fr}}
.shop-card{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;align-self:start}
.shop-card.open{grid-column:1/-1}
.shop-head{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer}
.shop-thumb{width:52px;height:52px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;flex:0 0 auto}
.shop-thumb img{width:100%;height:100%;object-fit:cover}
.shop-info{flex:1;min-width:0}
.shop-ref{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shop-sub{font-size:12px;color:var(--muted);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.shop-mf{background:rgba(124,92,252,.14);color:#7c5cfc;padding:1px 8px;border-radius:99px;font-weight:600;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shop-nomf{background:rgba(200,120,40,.16);color:#c0792b}
html[data-theme="dark"] .shop-mf{background:rgba(150,120,255,.18);color:#b9a6ff}
.shop-meta{color:var(--muted)}
.shop-oos{color:#c0392b;font-weight:600}
.shop-sold{color:#14a06e;font-weight:600}
.shop-caret{font-size:18px;color:var(--muted);flex:0 0 auto}
.shop-vars{padding:0 12px 12px;border-top:1px solid var(--line)}
.shop-vr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.shop-vl{font-size:13px;font-weight:600}
.shop-rb{background:#fdecea;color:#c0392b;font-size:9px;font-weight:700;padding:1px 6px;border-radius:99px;margin-left:4px}
html[data-theme="dark"] .shop-rb{background:#3a1f1f;color:#ff8b80}
.shop-q{width:84px;padding:8px;border:1px solid var(--line2);border-radius:7px;background:#f1f2f5;color:var(--ink);font-size:13px}
html[data-theme="dark"] .shop-q{background:#222831}
.shop-add{margin-top:8px}
.fmgr-list{display:flex;flex-direction:column;gap:8px}
.fmgr-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}
.fmgr-row b{font-size:14px}
.fmgr-row .muted{flex:1;font-size:12px}
.fmgr-row:hover{border-color:var(--brand)}
.shop-cartbar{position:sticky;bottom:14px;margin-top:16px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border:0;border-radius:12px;background:var(--grad);color:#fff;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 10px 30px -10px rgba(0,0,0,.45)}
.cart-grp{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:12px}
.cart-ghead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.cart-ghead b{font-size:14px}
.cart-exp{font-size:12px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.cart-date{padding:6px 8px;border:1px solid var(--line2);border-radius:7px;background:#f1f2f5;color:var(--ink);font-size:12px}
html[data-theme="dark"] .cart-date{background:#222831}
.cart-mf{padding:8px 10px;border:1px solid var(--line2);border-radius:8px;background:#f1f2f5;color:var(--ink);font-size:13px}
html[data-theme="dark"] .cart-mf{background:#222831}
.cart-line{display:grid;grid-template-columns:44px 1fr 72px 92px 36px 36px;gap:8px;align-items:center;padding:6px 0}
.cart-vl{font-size:13px;font-weight:600}
.cart-line input.c-qty,.cart-line input.c-price{padding:8px;border:1px solid var(--line2);border-radius:7px;background:#f1f2f5;color:var(--ink);font-size:13px;width:100%}
html[data-theme="dark"] .cart-line input.c-qty,html[data-theme="dark"] .cart-line input.c-price{background:#222831}
.cart-rm{border:1px solid var(--line2);border-radius:7px;background:transparent;color:#c0392b;cursor:pointer;height:36px}
.cart-notebox textarea{width:100%;margin-top:6px;padding:8px;border:1px solid var(--line2);border-radius:8px;background:#f1f2f5;color:var(--ink);font-size:13px;resize:vertical;font-family:inherit}
html[data-theme="dark"] .cart-notebox textarea{background:#222831}
@media(max-width:600px){.shop-grid{grid-template-columns:1fr}.cart-line{grid-template-columns:44px 1fr 60px 34px;row-gap:6px}.cart-line .c-price{grid-column:2/3}.cart-line .v-notebtn{grid-row:1}}
@media (max-width:640px){.fac-vr{grid-template-columns:44px 1fr 38px;grid-auto-rows:auto;row-gap:6px}.fac-vr .v-qty,.fac-vr .v-price{grid-column:2/3}.fac-vr .v-notebtn{grid-row:1;grid-column:3}}

.set-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:4px 0}
.set-toggle input{width:20px;height:20px;margin-top:2px;flex:0 0 auto;accent-color:var(--brand)}
.set-toggle span{display:flex;flex-direction:column;gap:2px}
.set-toggle b{font-size:14px}.set-toggle small{font-size:12px;color:var(--muted);line-height:1.45}

/* prep — how it was packed */
.pk-pack{margin:14px 0 90px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.pk-pack-h{font-size:13px;margin-bottom:10px}
.pk-pkgwrap{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}
.pk-pkgwrap.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(109,59,214,.18)}
.pk-active{border:1px solid var(--line2);background:transparent;border-radius:7px;width:34px;height:34px;cursor:pointer;flex:0 0 auto;font-size:14px}
.pk-active.on{background:var(--grad);border-color:transparent}
.pk-contents-btn{margin-top:6px;width:100%;text-align:left;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 2px}
.pk-contents{margin-top:6px;border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.pk-citem{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;font-size:13px}
.pk-citem.in{font-weight:600}
.pk-citem .pk-ci-ref small{color:var(--muted);font-weight:400}
.pk-ci-rem{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.pk-ci-rem .ok{color:var(--ok);font-weight:700}
.pk-citem .pl-qty{display:inline-flex;align-items:center;gap:8px}
.pk-citem .pl-qty button{width:30px;height:30px;border:1px solid var(--line2);background:var(--card);border-radius:7px;font-size:16px;cursor:pointer}
.pk-citem .pl-qty button:disabled{opacity:.4}
.pick-packed{font-size:11px;font-weight:700;color:var(--muted);background:var(--bg);border-radius:99px;padding:1px 8px;margin-top:3px;display:inline-block;width:fit-content}
.pick-packed.ok{color:var(--ok)}
.pk-pkg{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:0}
.pk-pkg .pk-kind{flex:1 1 110px;min-width:90px;padding:8px 10px;border:1px solid var(--line2);border-radius:8px;font-size:13px;background:#f1f2f5;color:var(--ink)}
.pk-dims{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}
.pk-dims input{width:48px;padding:8px 6px;border:1px solid var(--line2);border-radius:7px;font-size:13px;background:#f1f2f5;color:var(--ink);text-align:center}
.pk-wtwrap{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}
.pk-wt{width:72px;padding:8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;background:#f1f2f5;color:var(--ink)}
.pk-rm{border:1px solid var(--line2);background:transparent;color:#c0392b;border-radius:7px;width:34px;height:34px;cursor:pointer;flex:0 0 auto}
.pk-pack-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.pk-pack-sum{margin-top:10px;font-size:12.5px;color:var(--muted);font-weight:600}
html[data-theme="dark"] .pk-pkg .pk-kind,html[data-theme="dark"] .pk-dims input,html[data-theme="dark"] .pk-wt{background:#222831}

/* composition editor */
.cmp-editor{margin-top:4px}
.cmp-layer{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--card)}
.cmp-lhead{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.cmp-lname{flex:1;padding:7px 10px;border:1px solid var(--line2);border-radius:7px;font-size:13px;font-weight:600;background:#f1f2f5;color:var(--ink)}
.cmp-lrm,.cmp-rm{border:1px solid var(--line2);background:transparent;color:#c0392b;border-radius:7px;cursor:pointer;width:30px;height:30px;flex:0 0 auto}
.cmp-row{display:grid;grid-template-columns:70px 14px 1fr 30px;gap:8px;align-items:center;margin-bottom:6px}
.cmp-pct,.cmp-fib{padding:8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;background:#f1f2f5;color:var(--ink);width:100%}
.cmp-pctsign{color:var(--muted);font-size:13px}
.cmp-lfoot{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.cmp-add,.cmp-addlayer{border:1px dashed var(--line2);background:transparent;color:var(--brand);border-radius:7px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer}
.cmp-total{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}
.cmp-total.ok{color:#14a06e;font-weight:700} .cmp-total.warn{color:#c0792b}
.cmp-actions{margin:2px 0 8px}
.cmp-combos{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}
.cmp-clabel{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.cmp-chip{border:1px solid var(--line2);background:transparent;color:var(--ink);border-radius:99px;padding:4px 10px;font-size:11.5px;cursor:pointer}
.cmp-chip:hover{border-color:var(--brand);color:var(--brand)}
html[data-theme="dark"] .cmp-lname,html[data-theme="dark"] .cmp-pct,html[data-theme="dark"] .cmp-fib{background:#222831}

.col-sw{width:22px;height:22px;border-radius:6px;flex:0 0 auto;display:inline-block}
.col-hexrow{display:flex;gap:8px;align-items:center}
.col-hexrow input[type=color]{width:42px;height:38px;padding:2px;border:1px solid var(--line2);border-radius:8px;background:transparent;cursor:pointer;flex:0 0 auto}
.col-hexrow input:not([type=color]){flex:1}
.fib-merge{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fib-merge>span{font-size:12px;color:var(--muted)}
.fib-merge select{padding:8px 10px;border:1px solid var(--line2);border-radius:8px;font-size:13px;background:#f1f2f5;color:var(--ink)}
html[data-theme="dark"] .fib-merge select{background:#222831}
.fib-merge .form-note{flex-basis:100%}

/* pricing tiers */
.tier-head,.tier-row{display:grid;grid-template-columns:1.4fr 1.2fr .8fr .8fr 1fr .8fr 36px;gap:8px;align-items:center}
.tier-head{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-bottom:8px;border-bottom:1px solid var(--line)}
.tier-row{padding:8px 0;border-bottom:1px solid var(--line)}
.tier-row input,.tier-row select{padding:8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;width:100%}
.tier-ex{font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}
.tier-row .btn{padding:7px 9px}
@media(max-width:720px){.tier-head{display:none}.tier-row{grid-template-columns:1fr 1fr;gap:6px}}
.tier-prev-grid{display:flex;flex-wrap:wrap;gap:8px}
.tchip{font-size:12.5px;background:#eef0f3;border:1px solid var(--line);border-radius:99px;padding:5px 11px;font-variant-numeric:tabular-nums}

/* ===== interior theme — same artistic direction as the login ===== */
body{background:var(--bg)}
.nav{background:#fff;border-bottom:0;box-shadow:0 1px 0 rgba(16,20,24,.05),0 8px 30px -24px rgba(16,20,24,.35);padding:12px 22px;padding-top:calc(12px + env(safe-area-inset-top,0))}
.nav .tenant{border-left:1px solid var(--line);padding-left:12px;font-weight:600;color:var(--muted)}
.tab{font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:99px}
.tab:hover{background:#f0f1f4;color:var(--ink)}
.tab.on{background:var(--ink);color:#fff}
.rolechip{border-color:var(--brand);color:var(--brand)}
.right select{border-radius:9px}
.wrap{padding-top:26px}
.viewhead h1{font-size:25px;font-weight:780;letter-spacing:-.4px}
.viewhead p{margin-top:3px}
.panel{border-radius:16px;border-color:#eef0f3;padding:20px;box-shadow:0 1px 2px rgba(16,20,24,.04),0 12px 32px -24px rgba(16,20,24,.3)}
.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}
.btn.primary{background:var(--grad);border:0;color:#fff}
.btn.primary:hover{filter:brightness(1.05)}
.field input,.field select,.field textarea{background:#f1f2f5;border:1.5px solid transparent;border-radius:10px;padding:12px 13px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);background:#fff}
.chip-input input,.pay-row input,.pay-row select{background:#f1f2f5;border:1.5px solid transparent;border-radius:10px}
.chip-input input:focus,.pay-row input:focus{outline:none;border-color:var(--brand);background:#fff}
/* themed empty state with soft gradient motifs */
.soon{border:1px solid #eef0f3;background:linear-gradient(180deg,#fff,#fbfaff);border-radius:18px;padding:66px 24px;color:var(--muted);
  position:relative;overflow:hidden;box-shadow:0 12px 34px -26px rgba(16,20,24,.3);font-size:15px}
.soon .spark{display:block;font-size:26px;margin-bottom:10px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.soon::before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:var(--grad);opacity:.10;top:-60px;right:-40px}
.soon::after{content:"";position:absolute;width:110px;height:110px;border-radius:999px 999px 0 0;background:var(--grad);opacity:.08;bottom:-20px;left:7%}
.pcard{border-radius:10px;border-color:#eef0f3;box-shadow:0 1px 2px rgba(16,20,24,.04),0 12px 30px -24px rgba(16,20,24,.28)}
.pcard:hover{box-shadow:0 16px 36px -20px rgba(110,59,214,.4)}
.tier-row input,.tier-row select{background:#f8f8fb}

/* styled language pill (login + interior) */
.langwrap{position:relative;display:inline-flex;align-items:center}
.langwrap .globe{position:absolute;left:12px;display:grid;place-items:center;color:var(--muted);pointer-events:none}
.langwrap .globe svg{width:15px;height:15px;display:block}
.langsel{appearance:none;-webkit-appearance:none;border:1px solid var(--line2);border-radius:99px;padding:7px 28px 7px 13px;font-size:12.5px;font-weight:600;color:var(--ink);background:#fff;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 53%,calc(100% - 10px) 53%;background-size:5px 5px;background-repeat:no-repeat}
.langsel:hover{border-color:var(--muted)}
.langwrap .langsel{padding-left:34px}
.auth-foot{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center}

/* nav subcategory dropdowns */
.navgroup{position:relative}
.gbtn .caret{font-size:9px;opacity:.65;margin-left:3px}
.dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:194px;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 16px 38px -18px rgba(16,20,24,.4);padding:7px;display:none;z-index:40}
.navgroup.open .dropdown{display:block}
.dropdown button{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 12px;border-radius:9px;
  font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer}
.dropdown button:hover{background:#f0f1f4}
.dropdown button.on{background:var(--grad);color:#fff}

/* mobile: keep the order summary bar above the bottom nav (override base) */
@media(max-width:760px){
  .ob-bar{bottom:86px;left:14px;right:14px;border-radius:18px}
  #obwrap{padding-bottom:132px}
}

/* order top row alignment + scan toggle + flush bottom nav */
.ob-top{align-items:center}
.ob-top .cat-f,.ob-custin{height:44px}
.ob-custin{margin-bottom:0}
.ob-scan{display:flex;gap:8px;align-items:stretch}
.ob-scan .cat-search{flex:1}
.scan-kb{width:46px;flex:0 0 auto;border:1px solid var(--line2);background:var(--card);border-radius:9px;font-size:18px;cursor:pointer;color:var(--muted)}
.scan-kb.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pk-cover{width:46px;height:58px;object-fit:cover;border-radius:8px;background:#eef0f3;flex:0 0 auto}
.obp-row{grid-template-columns:64px 1fr 150px;gap:10px;padding:8px 10px}
.obp-qty{grid-template-columns:1fr 40px 1fr}
.obp-row img,.obp-ph{width:64px}
.bottomnav{min-height:56px}

/* ---- photo lightbox ---- */
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(12,14,18,.93);display:none;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lb-img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:8px}
.lb-close{position:absolute;top:14px;right:16px;width:42px;height:42px;border-radius:99px;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:19px;cursor:pointer}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:99px;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:28px;cursor:pointer;display:grid;place-items:center;line-height:1}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;background:rgba(0,0,0,.4);padding:4px 12px;border-radius:99px}

/* picker: tappable ref + photo gallery + description */
.obp-reftap{cursor:pointer}
.obp-refchev{font-size:12px;color:var(--muted)}
.obp-row img{cursor:zoom-in}
.obp-gallery{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}
.obp-gallery img{height:124px;width:auto;border-radius:8px;cursor:zoom-in;flex:0 0 auto;background:#eef0f3}
.obp-desc{font-size:13px;color:var(--ink);margin:0 0 10px;line-height:1.5;white-space:pre-line}

/* ---- checkout finalization ---- */
.co-sec{padding:12px 16px;border-bottom:1px solid var(--line)}
.co-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.co-grid2+.co-grid2{margin-top:10px}
.co-vat{margin:0 0 9px}
.co-tot{padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}
.co-tot>div{display:flex;justify-content:space-between;padding:3px 0;color:var(--muted)}
.co-tot .co-grand{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);font-size:18px;color:var(--ink);font-weight:800}
.co-credit{background:var(--bg)}
.co-credit-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:8px}
.co-credit-head b{color:var(--brand)}
.co-row{display:flex;gap:8px}.co-row input{flex:1}
.co-pay-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600}
.co-pay-row{display:grid;grid-template-columns:1fr 1fr 38px;gap:8px;margin-bottom:8px}
.co-pdel{border:1px solid var(--line2);background:var(--card);border-radius:9px;cursor:pointer;color:var(--faint)}
.co-row input,.co-pay-row select,.co-pay-row input{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:9px;padding:10px 12px;font-size:14px;color:var(--ink);width:100%}
.co-due{text-align:center;font-weight:700;padding:10px;font-size:15px}
.co-due.open{color:#c0392b}.co-due.settled{color:#15803d}

/* slide-to-confirm */
.slide{position:relative;height:56px;margin:8px 16px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line2);overflow:hidden;user-select:none;touch-action:none}
.slide-fill{position:absolute;left:0;top:0;bottom:0;width:52px;background:var(--brand);opacity:.16}
.slide-label{position:absolute;inset:0;display:grid;place-items:center;font-weight:700;color:var(--muted);font-size:14px;pointer-events:none}
.slide-thumb{position:absolute;left:4px;top:4px;width:48px;height:48px;border-radius:9px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:22px;cursor:grab;touch-action:none}
.slide.done .slide-thumb{background:#15803d;cursor:default}
.slide.done .slide-label{color:#15803d}

/* ---- order header hoisted into the sticky top bar (#navSlot) ---- */
.nav-extra:empty{display:none}
.ob-head{display:contents}
.ob-head .ob-kind{flex:0 0 auto;width:auto;min-width:90px;max-width:140px;height:38px;margin:0}
.ob-head .ob-cust{flex:1 1 150px;min-width:130px;max-width:340px;position:relative}
.ob-head .ob-custin{height:38px;margin-bottom:0}
.ob-head .cust-pill{margin-top:0}
.ob-head .ob-scan{flex:1 1 100%;display:flex;gap:8px;align-items:stretch;margin:0}
.ob-head .ob-scan .cat-search{flex:1 1 auto;min-width:0}
.ob-head .scan-kb{width:44px;flex:0 0 auto}
@media(max-width:760px){
  .ob-head .ob-cust{max-width:none}
}

/* product tier-price recalc header */
.tier-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 6px}

/* employee one-time connect code reveal */
.empcode-box{margin-top:14px;padding:14px 16px;border:1px solid var(--brand);border-radius:12px;background:#f6f2ff;text-align:center}
.empcode-name{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.empcode-num{font-size:34px;font-weight:800;letter-spacing:.18em;color:var(--brand);font-variant-numeric:tabular-nums;margin:2px 0}
.empcode-hint{font-size:12.5px;color:var(--muted);max-width:420px;margin:0 auto}

/* historique top-bar chips + home universal search dropdown */
.ob-chips{flex:1 1 100%;display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.ob-chips .tchip{border:1px solid var(--line2);background:var(--card);border-radius:99px;padding:6px 14px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.ob-chips .tchip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.home-search{flex:1 1 100%;position:relative}
.lng-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:8px 12px 4px}
.ord-row.av,.ord-head.av{grid-template-columns:90px 1fr 1.4fr 100px}
.ord-row .ok{color:#15803d;font-weight:600}

/* ---- sales report ---- */
.rep-filters .chips-row{margin-bottom:12px}
.rep-range{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.rep-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.rep-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.rep-k-l{font-size:12.5px;color:var(--muted);font-weight:600}
.rep-k-v{font-size:24px;font-weight:800;margin-top:6px}
.rep-kpi.ok .rep-k-v{color:#15803d}
.rep-kpi.bad .rep-k-v{color:#c0392b}
.rep-exports{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.rep-exports .btn{width:auto}
.ord-head.rep,.ord-row.rep{grid-template-columns:1.1fr 1fr 1.4fr 1fr .9fr .9fr}
.ord-row .ok{color:#15803d;font-weight:600}
@media(max-width:760px){ .rep-kpis{grid-template-columns:repeat(2,1fr)} }
@media print{
  .nav,.bottomnav,.drawer,.no-print,.ob-bar{display:none!important}
  .wrap{padding:0!important;max-width:none}
  .panel,.rep-kpi{box-shadow:none;border-color:#ddd}
  .rep-kpis{grid-template-columns:repeat(4,1fr)}
}

/* ---- top-bar lanes: Accueil = 1 lane, Historique = 2 lanes ---- */
.ob-head .home-search{flex:1 1 0;min-width:0}
.ob-hist .ob-scan{flex:1 1 0;min-width:0}

/* ---- slimmer floating bottom nav ---- */
.bn-item{padding:7px 13px;font-size:12px}
.bn-item svg{width:21px;height:21px}
@media(max-width:760px){
  .bottomnav{bottom:10px;left:16px;right:16px;border-radius:20px;padding:5px 6px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0))}
  .wrap{padding-bottom:88px}
  .ob-bar{bottom:80px}
  #obwrap{padding-bottom:148px}
}

/* ---- bottom-sheet scrim: drawers read as anchored, hide floating bars ---- */
.ob-scrim{position:fixed;inset:0;background:rgba(16,20,24,.42);z-index:54;opacity:0;pointer-events:none;transition:opacity .2s}
.ob-scrim.open{opacity:1;pointer-events:auto}
body.ob-sheeting .bottomnav,body.ob-sheeting .ob-bar{display:none!important}

/* ---- cart rows: full ref (clickable → product), tappable photo, clean layout ---- */
.ob-line{display:grid;grid-template-columns:50px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.ob-line img,.ob-lph{width:50px;height:62px;border-radius:9px}
.ob-line img{cursor:zoom-in}
.ob-lmain{min-width:0}
.ob-lref{font-weight:700;font-size:14px;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip}
.ob-lref[data-lprod]{cursor:pointer}
.ob-lref[data-lprod]::after{content:" ›";color:var(--brand);font-weight:800}
.ob-lsub{font-size:12.5px;color:var(--muted);margin-top:2px}
.ob-lright{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.ob-lt{font-weight:800;font-variant-numeric:tabular-nums}
.ob-lqd{display:flex;align-items:center;gap:8px}

/* keep segment chips on one scrollable lane (Historique = 2 lanes total) */
.ob-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ob-chips::-webkit-scrollbar{display:none}
.ob-chips .tchip{flex:0 0 auto}

/* close button always at the right edge of any sheet head (like the product page) */
.sheet-head>b{flex:1;min-width:0}

/* bottom nav: equal fixed slots + always-on labels so icons NEVER move between tabs */
.bn-item{flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;border-radius:14px;font-size:10.5px;font-weight:700}
.bn-item svg{width:22px;height:22px}
.bn-item span{display:block}
.bn-item.on span{display:block}
.bn-item.on{background:rgba(109,59,214,.10);color:var(--brand)}

/* cart summary bar: continuous with the floating bottom nav (same insets/style) */
@media(max-width:760px){
  .ob-bar{left:16px;right:16px;bottom:70px;border-radius:18px}
}

/* cart grouped by product reference (variants nested under one ref) */
.ob-group{padding:12px 0;border-bottom:1px solid var(--line)}
.ob-group:last-of-type{border-bottom:0}
.ob-grp-head{display:flex;align-items:center;gap:11px}
.ob-grp-head img{width:50px;height:62px;object-fit:cover;border-radius:9px;background:#eef0f3;cursor:zoom-in;flex:0 0 auto}
.ob-grp-head .ob-lph{width:50px;height:62px;border-radius:9px;background:#eef0f3;flex:0 0 auto}
.ob-grp-main{min-width:0;flex:1}
.ob-grp-sub{font-size:12px;color:var(--muted);margin-top:2px}
.ob-vline{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:7px 0 0 61px}
.ob-vname{font-size:13.5px;min-width:0}
.ob-vt{display:flex;align-items:center;gap:8px}
.ob-vt .ob-lt{font-weight:700;font-variant-numeric:tabular-nums}

/* ---- Historique: MC-style order cards ---- */
.oc-list{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.oc{display:flex;background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;cursor:pointer;transition:.12s}
.oc:hover{box-shadow:0 12px 28px -20px rgba(16,20,24,.4)}
.oc-strip{flex:0 0 5px;background:var(--line2)}
.oc.p-todo .oc-strip{background:#e0863a}.oc.p-prog .oc-strip{background:#e0b13a}
.oc.p-done .oc-strip{background:#15803d}.oc.p-ship .oc-strip{background:#2f6df0}.oc.p-prob .oc-strip{background:#c0392b}
.oc-main{flex:1;min-width:0;padding:11px 14px}
.oc-top{display:flex;justify-content:space-between;font-size:12.5px;color:var(--faint);font-weight:600}
.oc-mid{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;margin-top:3px}
.oc-cust{font-weight:800;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-pieces{font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap}.oc-pieces small{font-weight:500}
.oc-tot{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.oc-sub{font-size:12.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.prep-badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px;border:1px solid transparent}
.prep-badge.p-todo{background:#fbe9d7;color:#9a4f12}.prep-badge.p-prog{background:#fbf3d7;color:#8a6d12}
.prep-badge.p-done{background:#d9f2e3;color:#11663a}.prep-badge.p-ship{background:#dde8ff;color:#1f49b0}
.prep-badge.p-prob{background:#fadbd5;color:#992012}
.prep-badge.p-due{background:#fadbd5;color:#992012}.prep-badge.p-paid{background:#eef0f3;color:var(--muted)}
/* order detail: counts + preparation controls */
.ord-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted);margin-bottom:10px}
.prep-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:12px}
.prep-row .muted{margin-right:4px}
.prep-pick{border:1px solid var(--line2);background:var(--card);border-radius:99px;padding:6px 12px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}
.prep-pick.on.p-todo{background:#e0863a;border-color:#e0863a;color:#fff}.prep-pick.on.p-prog{background:#e0b13a;border-color:#e0b13a;color:#fff}
.prep-pick.on.p-done{background:#15803d;border-color:#15803d;color:#fff}.prep-pick.on.p-ship{background:#2f6df0;border-color:#2f6df0;color:#fff}
.prep-pick.on.p-prob{background:#c0392b;border-color:#c0392b;color:#fff}

/* ---- return (negative) lines ---- */
.obp-row.ret .obp-qty span{color:var(--bad)}
.obp-row.ret{background:rgba(192,57,43,.06)}
.pl-qty.ret input{color:var(--bad);font-weight:800}

/* ---- dark theme ---- */
html[data-theme="dark"]{
  --bg:#0f1318; --card:#191e25; --ink:#e9ecf0; --muted:#9aa3ae; --faint:#6b7480;
  --line:#262c34; --line2:#373f49; --brand:#8b63e8; --brand-dark:#7a52d8;
  --ok:#3fbf8f; --bad:#e0715a;
}
html[data-theme="dark"] .in{background:#222831;color:var(--ink)}
html[data-theme="dark"] .in:focus{background:#262d37}
html[data-theme="dark"] .nav{background:rgba(15,19,24,.92)}
html[data-theme="dark"] .tab.on{background:var(--brand);color:#fff}
html[data-theme="dark"] .tabs button.on{background:var(--brand);border-color:var(--brand)}
html[data-theme="dark"] .bn-item.on{background:rgba(139,99,232,.20)}
html[data-theme="dark"] .scan-kb,html[data-theme="dark"] .navburger{background:var(--card);color:var(--muted)}
html[data-theme="dark"] .look-card img,html[data-theme="dark"] .look-card .pc-ph,
html[data-theme="dark"] .prod-card img,html[data-theme="dark"] .prod-card .pc-ph,
html[data-theme="dark"] .obp-row img,html[data-theme="dark"] .obp-ph,
html[data-theme="dark"] .ob-line img,html[data-theme="dark"] .ob-lph,
html[data-theme="dark"] .ob-grp-head img,html[data-theme="dark"] .ob-grp-head .ob-lph,
html[data-theme="dark"] .obp-gallery img,html[data-theme="dark"] .pk-cover{background:#222831}
html[data-theme="dark"] .prep-badge.p-paid{background:#262d37}
html[data-theme="dark"] img.lb-img{background:#222831}

/* confirm-sale header (date / type / customer / items) */
.co-head{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg)}
.co-h-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;padding:3px 0;color:var(--muted)}
.co-h-row b{color:var(--ink);font-weight:700}

/* dark theme: inputs (the interior-theme block hardcodes a light field bg) */
html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .co-row input,html[data-theme="dark"] .co-pay-row input,html[data-theme="dark"] .co-pay-row select,
html[data-theme="dark"] .cat-search,html[data-theme="dark"] input[type=date],html[data-theme="dark"] input[type=number]{background:#222831;color:var(--ink)}
html[data-theme="dark"] .field input:focus,html[data-theme="dark"] .field select:focus,html[data-theme="dark"] .field textarea:focus{background:#262d37}
html[data-theme="dark"] .co-head{background:#12161c}
html[data-theme="dark"] .pwd-wrap .in{background:#222831}

/* store-credit (avoir) cues */
.cust-pill.has-avoir{border-color:var(--brand);background:rgba(109,59,214,.08)}
.ob-toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(12px);z-index:90;background:var(--ink);color:#fff;font-size:13.5px;font-weight:600;padding:11px 16px;border-radius:12px;box-shadow:0 14px 34px -12px rgba(16,20,24,.5);opacity:0;pointer-events:none;transition:.22s;max-width:88vw;text-align:center}
.ob-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
html[data-theme="dark"] .ob-toast{background:#2a313b}

/* platform staff: tenant rows */
.st-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.st-row:last-child{border-bottom:0}
.st-row.off{opacity:.55}
.st-row .nm{font-weight:700}
@media(max-width:600px){ .st-row{grid-template-columns:1fr auto} .st-row>span.muted{grid-column:1/-1;font-size:12px} }

/* dark theme: nav dropdown (interior block hardcodes white) */
html[data-theme="dark"] .dropdown{background:var(--card);border-color:var(--line2)}
html[data-theme="dark"] .dropdown button{color:var(--muted)}
html[data-theme="dark"] .dropdown button:hover{background:rgba(255,255,255,.06);color:var(--ink)}
html[data-theme="dark"] .dropdown button.on{color:#fff} /* active item: keep white over the gradient */

/* dark theme: language pill (hardcodes a white background) */
html[data-theme="dark"] .langsel{background:var(--card);color:var(--ink);border-color:var(--line2)}

/* the auth art panel stays light (branded waves) in any theme, so its
   headline must keep a fixed dark ink — var(--ink) flips light in dark mode */
html[data-theme="dark"] .auth-art .headline{color:#10131a}

/* two-factor (2FA) enrollment */
.mfa-on{font-weight:700;color:#15803d}
.mfa-enroll{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.mfa-qr{background:#fff;padding:10px;border-radius:12px;border:1px solid var(--line)}
.mfa-qr svg,.mfa-qr img{width:172px;height:172px;display:block}
.mfa-secret{font-family:monospace;font-size:13px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px;letter-spacing:.05em}

/* platform console: KPIs + tenant cards */
.st-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.st-card{padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}
.st-card:last-child{border-bottom:0}
.st-card.off{opacity:.55}
.st-c-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.st-c-head .nm{font-weight:800;font-size:15.5px}
.st-badges{display:flex;gap:6px;flex-wrap:wrap}
.st-c-stats{display:flex;gap:18px;margin-top:6px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.st-c-stats b{color:var(--ink);margin-left:auto}
.st-actions{display:flex;gap:10px;flex-wrap:wrap}

/* more efficient (less thick) buttons + tabs */
.btn{padding:7px 12px;font-size:13px}
.btn-lg{padding:11px;font-size:14px}
.tab{padding:6px 12px;font-size:13px}
.scan-kb{width:42px}
.field input,.field select,.in{padding:9px 11px}

/* video thumbnails inside the POS picker (gallery strip + variant rows) */
.obp-vwrap{position:relative;display:inline-flex;flex:0 0 auto;cursor:zoom-in}
.obp-vwrap .mt-vid{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:20px;text-shadow:0 1px 5px rgba(0,0,0,.6);pointer-events:none}
.obp-row .obp-vwrap{width:72px;height:84px;border-radius:8px;overflow:hidden;background:#eef0f3}
.obp-row .obp-vwrap video{width:100%;height:100%;object-fit:cover}
.obp-gallery .obp-vwrap{height:124px;border-radius:8px;overflow:hidden;background:#eef0f3}
.obp-gallery .obp-vwrap video{height:124px;width:auto;object-fit:cover}
html[data-theme="dark"] .obp-vwrap{background:#222831}

/* ===== flatter UI + attached full-width bottom bars (per design ref) ===== */
:root{ --radius:6px; }
.btn,.btn-lg,.in,.tabs button,.field input,.field select,.field textarea,
.cat-search,.cat-f,.loc-row .loc-name,.loc-row .loc-kind,.right select,
.emp-row .emp-name,.emp-row .emp-role,.bc-fields input,.bc-fields select,
.bc-add select,.bc-vinput,.tier-price input,.vr-stk input,.ob-gear,.navburger,
#pinpad button{border-radius:6px}
.prod-card,.look-card,.kpi,.stat-card,.bc-seg,.note,.qr,.tab,.chips-row .tchip,.rolechip{border-radius:7px}
.prod-card img,.look-card img,.ob-line img,.ob-lph,.obp-row img,.obp-ph,.obp-gallery img,.obp-vwrap{border-radius:6px}
.sheet{border-radius:10px 10px 0 0}

@media(max-width:760px){
  /* bottom menu bar: glued to the bottom edge, full screen width, flat */
  .bottomnav{
    left:0;right:0;bottom:0;
    border:0;border-top:1px solid var(--line);border-radius:0;
    box-shadow:0 -6px 20px -16px rgba(16,20,24,.3);
    height:calc(56px + env(safe-area-inset-bottom,0));
    padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0);
  }
  .bn-item{border-radius:8px}
  /* cart summary bar: full width, attached, sitting directly on top of the nav */
  .ob-bar{
    left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0));
    border:0;border-top:1px solid var(--line);border-radius:0;
    box-shadow:0 -6px 18px -16px rgba(16,20,24,.26);
  }
  .wrap{padding-bottom:calc(66px + env(safe-area-inset-bottom,0))}
  #obwrap{padding-bottom:calc(142px + env(safe-area-inset-bottom,0))}
}

/* ===== cart drawer: fills from under the top bar, sticky fused footer ===== */
#obCartSheet.sheet-fill{
  bottom:0;max-height:none;overflow:hidden;border-radius:0;
  display:flex;flex-direction:column;padding:0;
}
#obCartSheet .cart-grip{flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  padding:9px 0 5px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
#obCartSheet .cart-grip span{width:44px;height:5px;border-radius:99px;background:var(--line2)}
#obCartSheet .cart-grip:active{cursor:grabbing}
#obCartSheet .ob-cart-scroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 16px 8px;max-width:1100px;width:100%;margin:0 auto}
#obCartSheet .ob-empty{margin-top:20px}
/* fused bottom bar: cart qty + total + Finaliser, always visible */
.cart-foot{flex:0 0 auto;display:flex;align-items:center;gap:14px;
  padding:11px 16px;padding-bottom:calc(11px + env(safe-area-inset-bottom,0));
  border-top:1px solid var(--line);background:var(--card);max-width:1100px;width:100%;margin:0 auto;
  box-shadow:0 -10px 28px -20px rgba(16,20,24,.45)}
.cart-foot-meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.12}
.cart-foot-q{font-size:12.5px;font-weight:700;color:var(--muted)}
.cart-foot-tot{font-size:23px;font-weight:800;font-variant-numeric:tabular-nums}
.cart-foot-go{width:auto!important;flex:0 0 auto;padding:14px 30px}

/* ===== preparation queue (prep.js) ===== */
.pq-list{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.pq-card{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--line2);border-radius:11px;overflow:hidden;transition:.12s}
.pq-card.p-todo{border-left-color:#e0863a}.pq-card.p-prog{border-left-color:#e0b13a}
.pq-card.p-done{border-left-color:#15803d}.pq-card.p-ship{border-left-color:#2f6df0}.pq-card.p-prob{border-left-color:#c0392b}
.pq-card.open{box-shadow:0 14px 30px -22px rgba(16,20,24,.45)}
.pq-head{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer}
.pq-h-main{flex:1;min-width:0}
.pq-h-top{display:flex;justify-content:space-between;font-size:12.5px;color:var(--faint);font-weight:600}
.pq-h-mid{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-top:3px}
.pq-cust{font-weight:800;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pq-cnt{font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap}.pq-cnt small{font-weight:500}
.pq-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.pq-chev{flex:0 0 auto;color:var(--faint);font-size:13px}
.pq-actions{display:flex;gap:8px;align-items:center;padding:0 14px 12px}
.pq-adv{width:auto!important;flex:1 1 auto;padding:11px 16px}
.pq-body{padding:0 14px 14px;border-top:1px solid var(--line);margin:2px 14px 0;padding-top:12px}
.pq-pick-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:8px}
.pq-lines{display:flex;flex-direction:column;gap:6px}
.pq-lrow{display:flex;gap:10px;align-items:baseline;font-size:14px}
.pq-q{font-weight:800;font-variant-numeric:tabular-nums;color:var(--brand);flex:0 0 auto;min-width:30px}
.pq-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== cart options sheet: clean settings-row list (replaces chunky fields) ===== */
.opt-list{margin-top:2px}
.opt-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line)}
.opt-row:last-child{border-bottom:0}
.opt-label{font-weight:600;font-size:14.5px}
.opt-val{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}
.opt-sel{appearance:none;-webkit-appearance:none;border:0;background:transparent;text-align:right;font-size:14.5px;font-weight:700;color:var(--brand);cursor:pointer;padding-right:16px;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 6px) 53%,calc(100% - 2px) 53%;background-size:5px 5px;background-repeat:no-repeat}
.opt-num{display:inline-flex;align-items:center;gap:5px}
.opt-num input{width:88px;text-align:right;border:0;border-bottom:1.5px solid var(--line2);background:transparent;font-size:15px;font-weight:700;color:var(--ink);padding:3px 2px;font-variant-numeric:tabular-nums}
.opt-num input:focus{outline:none;border-color:var(--brand)}
.opt-num i{font-style:normal;color:var(--muted);font-size:13px}
.opt-note-row{flex-wrap:nowrap}
.opt-note{flex:1;min-width:0;text-align:right;border:0;border-bottom:1.5px solid var(--line2);background:transparent;font-size:14px;color:var(--ink);padding:3px 2px}
.opt-note:focus{outline:none;border-color:var(--brand)}
/* polished toggle (VAT) */
.opt-switch{position:relative;display:inline-block;width:44px;height:26px;flex:0 0 auto;cursor:pointer}
.opt-switch input{position:absolute;opacity:0;width:0;height:0}
.opt-switch span{position:absolute;inset:0;background:var(--line2);border-radius:99px;transition:.18s}
.opt-switch span::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.opt-switch input:checked+span{background:var(--brand)}
.opt-switch input:checked+span::before{transform:translateX(18px)}
html[data-theme="dark"] .opt-num input{background:transparent}

/* ===== résumé du jour (daily close) ===== */
.sum-daynav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sum-arrow{width:auto;font-size:18px;line-height:1;padding:6px 14px}
.sum-daynav input[type=date]{appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600;color:var(--ink)}
.sum-todaytag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);border:1px solid var(--brand);border-radius:99px;padding:3px 10px}
.sum-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px;border-bottom:1px solid var(--line)}
.sum-row:last-child{border-bottom:0}
.sum-amt{font-variant-numeric:tabular-nums;font-weight:700}
.sum-total{margin-top:4px;border-top:2px solid var(--line2);border-bottom:0;padding-top:13px;font-size:16px}
.sum-total b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}

/* ===== production (manufacturing orders) ===== */
.po-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.po-actions{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}
.po-actions .btn{width:auto}

/* ===== stock réception: scan-to-count (POS-style) ===== */
.rcv-scan{display:flex;gap:8px;align-items:stretch;margin-top:12px}
.rcv-scan .cat-search{flex:1}
.rcv-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.rcv-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.rcv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rcv-ref{font-weight:800;font-size:14.5px}
.rcv-var{font-size:12.5px;color:var(--muted)}
.rcv-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;margin-top:14px;padding:12px 4px;
  padding-bottom:calc(12px + env(safe-area-inset-bottom,0));background:var(--bg);border-top:1px solid var(--line);z-index:5}
.rcv-meta{flex:1;min-width:0;font-weight:700;font-variant-numeric:tabular-nums}
.rcv-go{width:auto!important;flex:0 0 auto;padding:13px 24px}

/* ===== prep picking checklist (tap or scan) ===== */
.pick-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.pick-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line2);border-radius:10px;padding:11px 13px}
.pick-row.part{border-left-color:#e0b13a}
.pick-row.full{border-left-color:#15803d}
.pick-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pick-ref{font-weight:800;font-size:14.5px}
.pick-var{font-size:12.5px;color:var(--muted)}
.pick-count{font-variant-numeric:tabular-nums;font-size:14px;color:var(--muted);white-space:nowrap}
.pick-count b{font-size:18px;color:var(--ink);font-weight:800}
.pick-count.ok b,.pick-count.ok{color:#15803d}
.pick-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;margin-top:14px;padding:12px 4px;
  padding-bottom:calc(12px + env(safe-area-inset-bottom,0));background:var(--bg);border-top:1px solid var(--line);z-index:5}
.pick-prog{flex:1;min-width:0;font-weight:800;font-variant-numeric:tabular-nums;font-size:15px}
.pick-go{width:auto!important;flex:0 0 auto;padding:13px 24px}

/* ===== picking: thumbnail + shelf emplacement ===== */
.pick-thumb{width:46px;height:58px;object-fit:cover;border-radius:8px;background:#eef0f3;flex:0 0 auto}
.pick-thumb.ph{display:grid;place-items:center;font-size:20px;opacity:.5}
.pick-loc{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}
.pick-loc.none{color:var(--faint);font-weight:500}
html[data-theme="dark"] .pick-thumb{background:#222831}

/* ===== emplacements tool ===== */
.loc-results{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.loc-opt{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}
.loc-opt:hover{box-shadow:0 10px 24px -18px rgba(16,20,24,.4)}
.loc-opt img,.loc-opt-ph{width:42px;height:52px;object-fit:cover;border-radius:7px;background:#eef0f3;flex:0 0 auto}
.loc-opt-ph{display:grid;place-items:center;font-size:18px;opacity:.5}
.loc-opt-main{flex:1;min-width:0;display:flex;flex-direction:column}
.loc-opt-main b{font-size:14.5px}
.loc-chip{font-size:12px;font-weight:700;color:var(--brand);white-space:nowrap}
.loc-set{display:flex;gap:14px;align-items:flex-start}
.loc-cover{width:96px;height:120px;object-fit:cover;border-radius:10px;background:#eef0f3;flex:0 0 auto}
.loc-cover.ph{display:grid;place-items:center;font-size:28px;opacity:.5}
.loc-set-main{flex:1;min-width:0}
.loc-vlist{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.loc-vrow{display:flex;align-items:center;gap:10px}
.loc-vname{flex:1;min-width:0;font-size:14px;font-weight:600}
.loc-vin{width:120px;appearance:none;border:1px solid var(--line2);background:var(--card);border-radius:8px;padding:9px 10px;font-size:14px;color:var(--ink);text-transform:uppercase;font-variant-numeric:tabular-nums}
html[data-theme="dark"] .loc-opt img,html[data-theme="dark"] .loc-opt-ph,html[data-theme="dark"] .loc-cover{background:#222831}

/* ===== customers: compact 2-line rows + top-bar tools ===== */
.ob-head .cl-tools{flex:1 1 100%;display:flex;gap:8px;margin-top:2px}
.ob-head .cl-tools .cat-f{flex:1 1 0;min-width:0;max-width:none;height:38px}
.cl-list{display:flex;flex-direction:column;gap:1px;margin-top:14px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cl-row{background:var(--card);padding:11px 14px;cursor:pointer;transition:.1s}
.cl-row:hover{background:var(--bg)}
.cl-l1{display:flex;align-items:center;gap:8px}
.cl-name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.cl-tag{flex:0 0 auto;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--brand);border:1px solid var(--brand);border-radius:5px;padding:1px 6px}
.cl-debt{flex:0 0 auto;font-weight:800;font-variant-numeric:tabular-nums;color:var(--bad);font-size:13.5px}
.cl-l2{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* products top-bar: scrollable filter/sort row on line 2 */
.ob-head .cat-tools{flex:1 1 100%;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:2px}
.ob-head .cat-tools::-webkit-scrollbar{display:none}
.ob-head .cat-tools .cat-f{flex:0 0 auto;height:38px;max-width:none}

/* summary day-nav inside the top bar */
.ob-head .sum-daynav{flex:1 1 100%;margin-top:0}

/* POS cart reset actions in the options sheet */
.opt-reset{display:flex;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.opt-reset .btn{flex:1}
#optNew{color:var(--bad);border-color:var(--bad)}
.co-prep{color:var(--ink)}

/* ===== stock levels grouped by product (reference + photo) ===== */
.sg-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.sg-card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sg-head{display:flex;align-items:center;gap:12px;padding:9px 12px;cursor:pointer}
.sg-thumb{width:42px;height:52px;object-fit:cover;border-radius:7px;background:#eef0f3;flex:0 0 auto}
.sg-thumb.ph{display:grid;place-items:center;font-size:18px;opacity:.5}
.sg-main{flex:1;min-width:0;display:flex;flex-direction:column}
.sg-ref{font-weight:800;font-size:14.5px}
.sg-name{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-oh{font-weight:800;font-variant-numeric:tabular-nums;font-size:17px;flex:0 0 auto}
.sg-oh.zero{color:var(--bad)}
.sg-chev{flex:0 0 auto;color:var(--faint);font-size:13px}
.sg-body{border-top:1px solid var(--line);padding:4px 12px 8px}
.sg-vrow{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.sg-vrow:last-child{border-bottom:0}
.sg-vname{flex:1;min-width:0;font-size:13.5px}
.sg-voh{font-weight:700;font-variant-numeric:tabular-nums}.sg-voh.zero{color:var(--bad)}
.sg-adj{width:auto;padding:6px 12px;font-size:12.5px}
html[data-theme="dark"] .sg-thumb{background:#222831}

/* order detail: admin delete + modifying bar */
.ord-del{color:var(--bad);border-color:var(--bad)}
.mod-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:10px;background:#fef3c7;color:#92400e;border:1px solid #f1d486;border-radius:10px;padding:9px 12px;margin-bottom:12px;font-weight:700;font-size:13.5px}
.mod-bar .mod-x{margin-left:auto;flex:0 0 auto}
.mod-bar .btn{padding:6px 12px;font-size:12.5px;width:auto}
html[data-theme="dark"] .mod-bar{background:#3a2f10;color:#f0cf7a;border-color:#5a4a1a}

/* POS parked (paused) orders list */
.park-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.park-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.park-main{flex:1;min-width:0;display:flex;flex-direction:column}
.park-main b{font-size:14.5px}
.park-main span{font-size:12px}

/* ===== POS product detail: hero carousel + info + variants (mockup layout) ===== */
.pk-sheet{padding:0!important;position:relative}
.pk-close{position:absolute;top:10px;right:10px;z-index:3;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#181611;font-size:15px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
.pk-hero{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;background:#eef0f3;border-radius:13px 13px 0 0}
.pk-hero::-webkit-scrollbar{display:none}
.pk-slide{flex:0 0 100%;scroll-snap-align:center;height:clamp(280px,48vh,440px);position:relative;display:grid;place-items:center;background:#eef0f3}
.pk-himg{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.pk-noimg{font-size:42px;opacity:.4}
.pk-slide .mt-vid.pk-play{top:50%;left:50%;transform:translate(-50%,-50%);font-size:34px}
.pk-dots{display:flex;justify-content:center;gap:6px;padding:10px 0 0}
.pk-dot{width:6px;height:6px;border-radius:50%;background:var(--line2);transition:.2s}
.pk-dot.on{background:var(--brand);width:18px;border-radius:99px}
.pk-info{padding:14px 16px 2px}
.pk-title b{font-size:18px;font-weight:800}.pk-title .muted{font-weight:400}
.pk-price{font-size:20px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums}
.pk-details{margin-top:10px}
.pk-rows-h{padding:8px 16px 0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.pk-sheet .obp-rows{padding:8px 16px 18px}
html[data-theme="dark"] .pk-hero,html[data-theme="dark"] .pk-slide{background:#222831}
html[data-theme="dark"] .pk-close{background:rgba(25,30,37,.92);color:#e9ecf0}

/* ===== image polish (square hero, tighter rows, top-only card rounding) ===== */
/* product-detail hero: square holder, show the FULL image (no crop) with a themed band */
.pk-slide{height:auto;aspect-ratio:1;min-height:0;background:#fff}
.pk-himg{object-fit:contain}
.pk-hero{background:#fff}
html[data-theme="dark"] .pk-hero,html[data-theme="dark"] .pk-slide{background:#0f1318}

/* variant / colour rows: shorter line + less-rounded thumbnail */
.obp-row{grid-template-columns:50px 1fr 168px;padding:6px 12px}
.obp-row img,.obp-ph,.obp-row .obp-vwrap{width:50px;height:60px;border-radius:4px}
@media(max-width:760px){ .obp-row{grid-template-columns:50px 1fr 150px} .obp-row img,.obp-ph,.obp-row .obp-vwrap{width:50px} }

/* product cards: image flush with the ref area below — rounded only at the top */
.prod-card img,.prod-card .pc-ph,.look-card img,.look-card .pc-ph,.pcard img,.pcard .ph{border-radius:0}

/* ===== fixes: scroll lock, slide smoothness, gear contrast, payment polish ===== */
/* lock the catalogue behind any open sheet (cart / picker / checkout / options) */
body.ob-sheeting{overflow:hidden;overscroll-behavior:contain}

/* slide-to-confirm: 1:1 while dragging, eased snap on release; cleaner thumb */
.slide-thumb{border:0;border-radius:10px;box-shadow:0 3px 10px -2px rgba(110,59,214,.5);transition:transform .2s ease}
.slide-fill{border-radius:11px;transition:width .2s ease}
.slide.sliding .slide-thumb,.slide.sliding .slide-fill{transition:none}
.slide.done .slide-thumb{box-shadow:0 3px 10px -2px rgba(21,128,61,.5)}

/* options gear: clearer on dark (was nearly invisible) */
html[data-theme="dark"] .ob-gear{background:#222831;border-color:#3a434f;color:#e9ecf0}

/* payments: amounts right-aligned, fields a touch more legible on dark */
.co-pay-row input{text-align:right;font-variant-numeric:tabular-nums}
html[data-theme="dark"] .co-pay-row select,html[data-theme="dark"] .co-pay-row input,html[data-theme="dark"] .co-row input{border-color:#3a434f}

/* POS order recap (after a sale): summary + share/print/email/view actions */
.pos-recap{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:14px;box-shadow:0 12px 30px -22px rgba(16,20,24,.4)}
.rcp-head{font-size:15px;font-weight:700}
.rcp-head b{font-weight:800}
.rcp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rcp-actions .btn{width:auto;flex:1 1 auto}
.rcp-msg{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}

/* ===== POS sale recap overlay (persists until "Terminer") ===== */
.recap-ov{position:fixed;inset:0;z-index:95;background:rgba(16,20,24,.5);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.recap-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 20px;width:100%;max-width:380px;text-align:center;box-shadow:0 30px 70px -30px rgba(16,20,24,.6)}
.recap-check{width:54px;height:54px;margin:0 auto 12px;border-radius:50%;background:#d9f2e3;color:#15803d;display:grid;place-items:center;font-size:28px;font-weight:800}
.recap-ref{font-size:20px;font-weight:800}
.recap-total{font-size:15px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
.recap-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.recap-acts .btn{width:auto}
.recap-done{width:100%;margin-top:12px}
html[data-theme="dark"] .recap-check{background:#173a2a;color:#3fbf8f}

/* ===== history: swipe-left order rows to reveal quick actions ===== */
.oc-sw{position:relative;overflow:hidden;border-radius:13px}
.oc-sw-acts{position:absolute;top:0;right:0;bottom:0;display:flex}
.oc-act{width:60px;border:0;display:grid;place-items:center;font-size:18px;color:#fff;cursor:pointer}
.a-bon{background:#2f6df0}.a-mail{background:#6d3bd6}.a-mod{background:#e0863a}
.oc-sw .oc{position:relative;background:var(--card);transition:transform .2s ease;will-change:transform;border-radius:13px}
.oc-sw.swiping .oc{transition:none}
/* order detail: ePO action row */
.ord-eactions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ord-eactions .btn{font-weight:600}

/* order detail: tracking number + carrier link */
.ord-track{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:12px}
.ord-track > .muted{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.trk-cur{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-variant-numeric:tabular-nums}
.trk-link{color:var(--brand);font-weight:700;text-decoration:none}
.trk-edit{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.trk-edit .cat-f{max-width:150px}
.trk-edit .in{flex:1 1 160px;min-width:0;margin:0}

/* ===== Desktop left sidebar (Shopify-style) ===== */
.sidebar{display:none}
:root{--sbw:240px}
.sb-top{display:flex;flex-direction:column;gap:6px;padding:6px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.sb-top .brandmark{font-size:16px}
.sb-tenant{font-size:12.5px;color:var(--muted);padding-left:1px}
.sb-nav{flex:1;display:flex;flex-direction:column;gap:1px;overflow-y:auto;min-height:0}
.sb-group{margin-top:12px}
.sb-grouphead{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);padding:4px 12px 3px}
.sb-item{display:flex;align-items:center;gap:11px;border:0;background:none;width:100%;text-align:left;padding:9px 12px;border-radius:9px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .12s}
.sb-item svg{width:18px;height:18px;flex:0 0 auto;color:var(--muted)}
.sb-item:hover{background:var(--bg)}
.sb-item.on{background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand)}
.sb-item.on svg{color:var(--brand)}
.sb-foot{border-top:1px solid var(--line);padding:10px 4px 2px;margin-top:8px;display:flex;flex-direction:column;gap:8px}
.sb-foot .langsel{width:100%}
.sb-footrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 6px}
@media(min-width:980px){
  #root:has(.sidebar){padding-left:var(--sbw)}
  .sidebar{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:var(--sbw);z-index:30;
    background:var(--card);border-right:1px solid var(--line);padding:16px 12px 12px}
  .nav .brandmark, .nav .tenant, .nav .tabsbar, .nav .right{display:none}
  .nav{padding:10px 22px}
  /* fixed bottom bars / sheets must clear the sidebar, not slide under it */
  .ob-bar, .ob-sheet{left:var(--sbw)}
  /* on-screen-keyboard toggle is pointless with a physical keyboard */
  #scanToggle{display:none}
}
html[data-theme="dark"] .sidebar{background:var(--card)}

/* ===== Product picker as a centered two-column dialog on desktop ===== */
/* (mobile keeps the bottom-sheet + square hero exactly as-is) */
@media(min-width:980px){
  #obPicker{left:50%;right:auto;top:50%;bottom:auto;width:min(960px,94vw);height:min(88vh,720px);max-height:none;
    border:1px solid var(--line);border-radius:16px;transform:translate(-50%,-46%);opacity:0;overflow:hidden}
  #obPicker.open{transform:translate(-50%,-50%);opacity:1}
  #obPicker .pk-sheet{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);
    max-width:none;height:100%;min-height:0}
  #obPicker .pk-media{display:flex;flex-direction:column;background:var(--bg);min-width:0;min-height:0;overflow:hidden}
  #obPicker .pk-hero{flex:1;border-radius:0;min-height:0;overflow:hidden}
  #obPicker .pk-slide{aspect-ratio:auto;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
  #obPicker .pk-himg{width:100%;height:100%;max-height:100%;object-fit:contain}
  #obPicker .pk-dots{padding:10px 0}
  #obPicker .pk-detail{display:flex;flex-direction:column;min-width:0;overflow:auto;border-left:1px solid var(--line)}
  #obPicker .pk-info{padding:18px 20px 4px}
  #obPicker .obp-rows{flex:1;max-height:none;padding-bottom:18px}
  html[data-theme="dark"] #obPicker .pk-media{background:var(--bg)}
}

/* ===== AI product helper (name/description/HS generator) ===== */
.ai-row{display:flex;align-items:center;gap:12px;margin:4px 0 10px;flex-wrap:wrap}
.ai-btn{width:auto!important;background:var(--grad);color:#fff;border:0;font-weight:600}
.ai-btn:disabled{opacity:.7;cursor:progress}
.ai-btn:disabled{background:var(--line2);color:var(--faint);cursor:not-allowed;opacity:1}
.ai-note{font-size:12.5px;color:var(--muted);line-height:1.45;flex:1;min-width:160px}
.ai-note.err{color:var(--bad)}
.ai-note.ok{color:var(--ok)}

/* matured product form: section headers, helper note, weave segmented toggle */
.form-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.form-sec:first-of-type{margin-top:4px}
.form-note{font-size:12.5px;color:var(--muted);margin:-2px 0 12px;line-height:1.45}
.field .opt{font-style:normal;font-weight:400;color:var(--faint);font-size:11px}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:9px;overflow:hidden;background:var(--card);width:fit-content}
.seg button{border:0;background:none;padding:9px 16px;font:inherit;font-size:13.5px;color:var(--muted);cursor:pointer;border-right:1px solid var(--line2)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--brand);color:#fff;font-weight:600}

/* ===== Shopify-style product editor: two-column + cards ===== */
.prod-head{display:flex;align-items:center;gap:12px}
.prod-layout{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:16px;align-items:start;margin-top:14px}
.prod-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:0 1px 2px rgba(16,20,24,.04),0 12px 32px -24px rgba(16,20,24,.3)}
.card-h{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin:0 0 10px}
.card .form-sec{margin-top:0}
.sub-h{font-size:12.5px;font-weight:700;color:var(--ink);margin:14px 0 7px}
.card .sub-h:first-of-type{margin-top:2px}
.prod-side{position:sticky;top:80px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 96px);overflow:auto}
/* compact variant rows for the narrow right panel */
.vcard .vr-bc{max-width:none}
.vcard .vr-stocks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vcard .vr-stk{min-width:0}
.vcard .vr-stk input{width:100%}
.vcard .chips{margin-bottom:2px}
/* media drag-and-drop: reorder main photos (first = cover), assign + reorder per colour */
.media-tile img,.media-tile video{cursor:grab}
.media-grid{min-height:80px;border-radius:12px}
.media-empty{flex:1;align-self:stretch;display:grid;place-items:center;padding:22px;border:1.5px dashed var(--line2);border-radius:12px;font-size:12.5px;text-align:center}
.media-tile.sm{width:52px;height:52px;border-radius:8px}
.media-tile.sm img,.media-tile.sm video{height:100%;width:100%}
.media-tile.sm .mt-del{width:16px;height:16px;font-size:9px;top:2px;right:2px}
.vcolor-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.vcolor{display:flex;align-items:center;gap:10px}
.mt-lead{position:absolute;top:2px;left:2px;background:var(--brand);color:#fff;font-size:9px;line-height:1;padding:2px 3px;border-radius:5px;z-index:1}
.vr-stk input:disabled{opacity:.55;cursor:not-allowed;background:var(--bg)}
/* clean variant rows: variant · ref · qty → click to deploy per-location stock */
.vcard .vr-row{padding:0;border-bottom:1px solid var(--line)}
.vcard .vr-row:last-child{border-bottom:0}
.vr-head{display:grid;grid-template-columns:1fr auto 40px 14px;align-items:center;gap:10px;width:100%;border:0;background:none;padding:11px 2px;cursor:pointer;font:inherit;color:var(--ink);text-align:left}
.vr-head .vr-label{display:block;font-weight:600;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-ref{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;max-width:108px;overflow:hidden;text-overflow:ellipsis;text-align:right}
.vr-qty{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.vr-caret{font-style:normal;color:var(--muted);font-size:10px;justify-self:center;transition:transform .15s}
.vr-head.open .vr-caret{transform:rotate(180deg)}
.vr-detail{padding:0 2px 12px;display:flex;flex-direction:column;gap:10px}
.vr-detail .vr-stocks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vr-detail .vr-stk input{width:100%}
.vr-field{display:flex;flex-direction:column;gap:3px}
.vr-flabel{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}
.vr-detail .vr-bc{margin:0;max-width:none}
.vr-detail .vr-bc .bc-vinput{flex:1;min-width:0}
.vcolor-drop{flex:0 0 auto;min-width:62px;min-height:62px;border:1.5px dashed var(--line2);border-radius:10px;display:flex;flex-wrap:wrap;gap:4px;padding:4px;align-items:center}
.vcolor-drop.empty{justify-content:center}
.vcolor-ph{color:var(--brand);font-size:22px;font-weight:600;line-height:1}
.vcolor-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vcolor-del{border:0;background:none;color:var(--faint);font-size:14px;cursor:pointer;padding:4px;flex:0 0 auto}
.dragging-photo .vcolor-drop,.dragging-photo .media-grid{outline:2px dashed var(--brand);outline-offset:2px}
.vcolor-drop.drop-on,.media-grid.drop-on{outline:2px solid var(--brand)!important;background:color-mix(in srgb,var(--brand) 8%,transparent)}
.prod-actions{display:flex;flex-direction:column;gap:10px}
.prod-actions .btn{width:100%}
.prod-actions .note{margin-top:2px}
.prod-actions .danger{margin-top:4px}
@media(max-width:980px){
  .prod-layout{grid-template-columns:1fr}
  .prod-side{position:static}
}

/* ===== Product editor density pass (tighter, Shopify-like) — scoped to .card ===== */
.prod-layout{gap:14px;margin-top:12px}
.prod-main,.prod-side{gap:12px}
.card{padding:13px 15px}
.card-h{margin:0 0 8px}
.card .sub-h{margin:10px 0 5px}
.card .form-grid{gap:8px 12px}
.card .field{margin-bottom:0}
.card .field span{margin-bottom:3px;font-size:11px}
.card .field input,.card .field select,.card .field textarea{padding:8px 10px;font-size:13.5px;border-radius:8px;border-width:1px}
.card .form-note{margin:-2px 0 9px;font-size:11.5px;line-height:1.4}
/* media tiles: smaller */
.card .media-tile{width:88px;height:96px}
.card .media-tile img,.card .media-tile video{height:66px}
.card .mt-color{height:28px;font-size:10px;padding:2px 16px 2px 5px}
.card .media-grid{gap:8px}
/* colour rows: compact */
.vcolor-list{gap:6px;margin-top:8px}
.vcolor{gap:8px}
.vcolor-name{font-size:13.5px}
.vcard .vcolor-drop{min-width:48px;min-height:48px;border-radius:8px}
.vcard .media-tile.sm{width:42px;height:42px;border-radius:6px}
.vcard .chip-input input{padding:8px 10px}
.vcard .chips{gap:6px;margin-top:6px}
.vcard .chip{padding:4px 5px 4px 10px;font-size:12px}
/* variant rows: tighter */
.vr-head{padding:8px 2px}
.vr-detail .vr-stk input,.vr-detail .vr-bc .bc-vinput{padding:7px 9px;font-size:13px}

/* ===== Product editor fixes: dark chip inputs, tight actions, aligned segmented ===== */
html[data-theme="dark"] .chip-input input{background:#262d37;color:var(--ink);border-color:transparent}
html[data-theme="dark"] .chip-input input:focus{background:#2c3440;border-color:var(--brand)}
/* actions card: don't reserve space for an empty error, keep Save + Delete close */
.prod-actions{gap:8px}
.prod-actions .err{min-height:0}
.prod-actions .err:empty{display:none}
.prod-actions .danger{margin-top:0}
/* segmented toggle matches input height so the grid row aligns */
.card .seg{height:34px;align-self:start}
.card .seg button{padding:0 16px;height:100%;font-size:13.5px}

/* ===== product header identity (ref/name): sidebar on desktop, top bar on mobile ===== */
.prod-head{display:flex;align-items:center;gap:12px}
.prod-title{flex:1;min-width:0}
.prod-h1{margin:0}
.prod-id{display:none}
.prod-save-top{display:none}
/* desktop: identity sits above Save in the actions card */
.pa-id{display:flex;flex-direction:column;gap:1px;min-width:0;padding-bottom:9px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.pa-id b{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-id span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-id span:empty{display:none}
@media(max-width:760px){
  .prod-h1{display:none}
  .prod-id{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
  .prod-id b{font-size:16px;font-weight:800;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .prod-id span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .prod-id span:empty{display:none}
  .prod-head .prod-save-top{display:inline-flex;align-items:center;justify-content:center;width:46px!important;height:40px;flex:0 0 auto;padding:0}
  .prod-save-top svg{width:20px;height:20px}
  .pa-id{display:none}
}

/* ===== mobile: product identity + save in the app top bar; actions at the very end ===== */
.prod-nav{display:none}
@media(max-width:980px){
  /* on stacked layout, push Save/Delete card below the variants card */
  .prod-side{display:flex;flex-direction:column}
  .prod-side .vcard{order:1}
  .prod-side .prod-actions{order:2}
}
@media(max-width:760px){
  .prod-nav{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
  .prod-navid{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center}
  .prod-navid b{font-size:15px;font-weight:800;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .prod-navid span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .prod-navid span:empty{display:none}
  .nav .prod-navsave{display:inline-flex;align-items:center;justify-content:center;width:44px!important;height:38px;flex:0 0 auto;padding:0}
  .prod-navsave svg{width:19px;height:19px}
}

/* ===== misc polish: barcode icon, drawer company name, role flash, team rows on mobile ===== */
.ico-bc{width:15px;height:15px;vertical-align:-2px}
#bcGenAll{display:inline-flex;align-items:center;gap:5px}
.bc-mini .ico-bc{width:16px;height:16px;vertical-align:-3px}
/* drawer: company name under the BrandFlow logo */
.drawer-brand{display:flex;flex-direction:column;gap:2px;min-width:0}
.drawer-tenant{font-size:12.5px;color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* role-change confirmation flash */
.emp-role.saved{border-color:var(--ok)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 35%,transparent)}
/* team + location rows: stack so controls never overflow on mobile */
@media(max-width:600px){
  .emp-row{grid-template-columns:1fr auto;gap:8px}
  .emp-row>.emp-name{grid-column:1/-1}
  .emp-row>.emp-role,.emp-row>.emp-store,.emp-row>.rolechip{grid-column:1/-1;width:100%;justify-self:stretch}
  .emp-row>.btn{white-space:nowrap}
  .loc-row{grid-template-columns:1fr auto;gap:8px}
  .loc-row>.loc-name{grid-column:1/-1}
  .loc-row>.loc-kind,.loc-row>.loc-co{grid-column:1/-1;width:100%}
}

/* ===== dark-theme fix for the price-tier fields (were hardcoded light) ===== */
html[data-theme="dark"] .tier-row input,html[data-theme="dark"] .tier-row select{background:#222831;color:var(--ink);border-color:var(--line2)}
/* company information: logo uploader */
.comp-logo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.comp-logo-prev{width:124px;height:82px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;overflow:hidden;background:var(--bg);font-size:12px;text-align:center;padding:6px}
.comp-logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.comp-logo-act{display:flex;flex-direction:column;gap:6px;align-items:flex-start}

/* ===== settings editor rows: fix overflow on mobile ===== */
@media(max-width:600px){
  /* barcode segments: stack tag / fields / move-controls so ↑ ↓ ✕ never run off-screen */
  .bc-seg{flex-direction:column;align-items:stretch;gap:8px}
  .bc-seg .bc-tag{flex:0 0 auto}
  .bc-seg .bc-fields{flex:0 0 auto;align-items:flex-start}
  .bc-seg .bc-fld{flex:1 1 130px}
  .bc-seg .bc-fields>input,.bc-seg .bc-fields>select{max-width:none;flex:1 1 110px}
  .bc-seg .bc-fld input,.bc-seg .bc-fld select{width:100%;max-width:none;flex:0 0 auto}
  .bc-seg .bc-ctrl{display:flex;gap:8px;justify-content:flex-end}
  .bc-add{flex-wrap:wrap}
  /* price tiers: give each field a full row so the 7-column grid isn't cramped */
  .tier-row{grid-template-columns:1fr;gap:6px}
  .tier-row .btn{justify-self:end}
}

/* 2FA card: don't reserve an empty error line under the button */
#mfaBox .err:empty{display:none}
#mfaBox{display:flex;flex-direction:column;gap:8px;align-items:flex-start}

/* ===== order activity log (Historique → bottom of an order) ===== */
.ord-log{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.ord-log h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin:0 0 8px}
.olog-row{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.olog-row:last-child{border-bottom:0}
.olog-when{color:var(--faint);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.olog-act{font-weight:600;min-width:0}
.olog-who{color:var(--muted);font-size:12.5px;white-space:nowrap}
@media(max-width:600px){.olog-row{grid-template-columns:1fr auto;gap:4px 10px}.olog-when{grid-column:1/-1}}

/* ===== purchasing line row + total ===== */
.pur-ln{flex-wrap:wrap}
.pur-total{margin-top:10px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:600px){ .pur-ln .ln-pick{flex-basis:100%} .pur-ln .f-qty,.pur-ln .f-cost{flex:1 1 auto} }
