:root{--ink:#1C1B19;--paper:#ECE8E1;--rust:#A9441C;--rust-d:#7E3012;--sand:#D9C9B0;--muted:#5B554E;--line:#D8D2C8;--white:#fff;--ok:#2F5A3A;--okbg:#E4EFE6;--err:#8A2A12;--errbg:#F6E1D8;--warnbg:#F6EED8}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.45}
a{color:var(--rust)}a:hover{color:var(--rust-d)}
h1{font-size:26px;margin:0;font-weight:800}
h2{font-size:19px;margin:24px 0 10px;font-weight:800}
h3{font-size:16px;margin:0 0 8px}
.muted{color:var(--muted)}.small{font-size:13px}.right{text-align:right}.nowrap{white-space:nowrap}
.top{background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:16px;padding:10px 18px;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:10px;color:var(--paper);text-decoration:none;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px}
.brand img{height:26px;filter:invert(1) brightness(1.6)}
.who{margin-left:auto;font-size:14px;color:var(--sand)}.who a{color:var(--paper)}
.navtoggle{display:block;background:none;border:1px solid rgba(255,255,255,.35);border-radius:4px;color:var(--paper);padding:3px 10px;font-size:20px;line-height:1.2;cursor:pointer}.navtoggle:hover{background:rgba(255,255,255,.12)}
body.navclosed .side{display:none}
.shell{display:flex;min-height:calc(100vh - 46px)}
.side{width:200px;flex:0 0 200px;background:#fff;border-right:1px solid var(--line);padding:14px 0;display:flex;flex-direction:column}
.side a{display:block;padding:9px 18px;color:var(--ink);text-decoration:none;font-weight:500}
.side a:hover{background:var(--paper)}.side a.on{background:var(--paper);border-left:4px solid var(--rust);padding-left:14px;font-weight:700}
.main{flex:1;min-width:0;padding:22px 26px 60px;max-width:1200px}
@media (max-width:860px){.who{display:none}.side{display:none;position:fixed;top:46px;left:0;bottom:0;z-index:30;overflow:auto;box-shadow:4px 0 20px rgba(0,0,0,.15)}body.navopen .side{display:flex}.main{padding:16px 14px 60px}}
.pagehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;background:var(--rust);color:#fff;border:0;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border-radius:4px}
.btn:hover{background:var(--rust-d);color:#fff}
.btn.dark{background:var(--ink)}.btn.dark:hover{background:#000}
.btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.small{min-height:32px;padding:0 10px;font-size:13px}
.btn.big{min-height:56px;font-size:18px;padding:0 24px}
.btn.danger{background:#fff;color:var(--err);border:1.5px solid var(--err)}
.card{background:#fff;border:1px solid var(--line);padding:18px;border-radius:6px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat{background:#fff;border:1px solid var(--line);padding:14px 16px;border-radius:6px}.stat .n{font-size:26px;font-weight:800}.stat .l{color:var(--muted);font-size:13px}
.flash{padding:10px 14px;margin:0 0 14px;border-radius:4px;background:var(--okbg);color:var(--ok);font-weight:600}
.flash.err{background:var(--errbg);color:var(--err)}.flash.warn{background:var(--warnbg);color:#6B5420}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.t th,.t td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.t th{background:#F4F1EB;font-size:13px;color:var(--muted);font-weight:700}
.t tr:hover td{background:#FBFAF7}
.t td.num,.t th.num{text-align:right;white-space:nowrap}
.tablewrap{overflow-x:auto}
.thumb{width:52px;height:52px;object-fit:cover;background:var(--paper);display:block;border-radius:3px}
.form{display:flex;flex-direction:column;gap:12px}
.form label{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:14px}
.form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=tel],input[type=search],input:not([type]),select,textarea{font:inherit;font-weight:400;padding:9px 10px;border:1.5px solid #B9B2A6;background:#fff;border-radius:4px;width:100%;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--rust);outline-offset:0;border-color:var(--rust)}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:14px}
.filters label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:4px}
.filters input,.filters select{min-width:150px}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:700;background:#EEE9E0;color:var(--muted);white-space:nowrap}
.pill.in_shop,.pill.approved,.pill.active,.pill.ready{background:var(--okbg);color:var(--ok)}
.pill.draft,.pill.pending{background:var(--warnbg);color:#6B5420}
.pill.sold,.pill.picked_up{background:#E3E7EE;color:#3F4A52}
.pill.on_hold,.pill.out{background:var(--errbg);color:var(--err)}
.authbox{max-width:400px;margin:8vh auto;background:#fff;padding:28px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:14px}
.authbox.wide{max-width:520px}.authlogo{width:160px;align-self:center}
.photos{display:flex;flex-wrap:wrap;gap:10px}.photos figure{margin:0;position:relative}.photos img{width:120px;height:120px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.photos figcaption{display:flex;gap:4px;margin-top:4px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}
.pos{display:grid;grid-template-columns:1fr 360px;gap:18px}@media (max-width:900px){.pos{grid-template-columns:1fr}}
.scan{font-size:22px;padding:14px;border:2px solid var(--ink)}
.totals div{display:flex;justify-content:space-between;padding:4px 0}.totals .grand{font-size:24px;font-weight:800;border-top:2px solid var(--ink);margin-top:6px;padding-top:8px}
.paygrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.empty{padding:28px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:6px}
@media print{.top,.side,.noprint,.flash{display:none!important}.main{padding:0}body{background:#fff}}
[hidden]{display:none!important}
.pager{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:10px 0}.pager .pages{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.pager .per select{width:auto;padding:4px 8px}
.people{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px}
.person{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 12px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}.person:first-child{border-top:0}
.person .email{overflow-wrap:anywhere}.person .tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.person .acts{display:flex;gap:4px}
@media (max-width:640px){.person{grid-template-columns:minmax(0,1fr)}.person .tags{justify-content:flex-start}.person .email{overflow-wrap:anywhere}}
.card{min-width:0}.grid>*{min-width:0}
.span2{grid-column:1/-1}
.person .email{overflow-wrap:normal;word-break:normal}
.catform{display:flex;gap:6px}.catform input{min-width:0;flex:1}
fieldset.addr{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;min-width:0}fieldset.addr legend{font-weight:800;font-size:14px;margin-bottom:6px;padding:0}.row.addr3{grid-template-columns:minmax(0,2fr) minmax(80px,.7fr) minmax(100px,1fr)}@media (max-width:520px){.row.addr3{grid-template-columns:1fr 1fr}.row.addr3 label:first-child{grid-column:1/-1}}
/* Camera scanning (checkout) */
.cs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}
.cs-overlay[hidden]{display:none}
.cs-box{width:100%;max-width:480px;display:flex;flex-direction:column;gap:12px;align-items:stretch}
.cs-view{position:relative;background:#000;aspect-ratio:3/4;max-height:70vh;overflow:hidden}
.cs-view video{width:100%;height:100%;object-fit:cover;display:block}
.cs-frame{position:absolute;inset:22% 18%;border:3px solid #A9441C;box-shadow:0 0 0 2000px rgba(0,0,0,.25)}
.cs-msg{color:#fff;text-align:center;font-weight:700;min-height:1.4em}
.cs-box .cs-close{background:#fff}
/* Checkout start: register · phone · Start sale on one line, walk-in as a link below */
.startrow{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.startrow label{margin:0}
.startrow .sr-reg select{width:5.5em}
.startrow .sr-phone input{width:11em;max-width:100%}
.startrow .btn{flex:0 0 auto}
.linkbtn{background:none;border:0;padding:4px 0;margin-top:6px;font:inherit;font-size:15px;color:var(--rust,#A9441C);text-decoration:underline;cursor:pointer;align-self:flex-start}
.linkbtn:hover{color:#7E3012}
.startrow select,.startrow input,.startrow .btn{height:46px;min-height:46px;box-sizing:border-box}
.startrow .btn{padding-top:0;padding-bottom:0}
/* Design preview switch in the top bar */
.themeswitch{display:flex;align-items:center;gap:2px;font-size:12px;margin-left:auto;color:var(--sand)}
.themeswitch span{margin-right:4px}
.themeswitch a{color:var(--paper);text-decoration:none;padding:3px 8px;border:1px solid rgba(255,255,255,.3);border-radius:3px}
.themeswitch a.on{background:var(--paper);color:var(--ink);font-weight:700}
.themeswitch + .who{margin-left:14px}
@media (max-width:860px){.themeswitch span{display:none}}
/* On-page "are you sure?" box */
.confirm-overlay{position:fixed;inset:0;background:rgba(28,27,25,.55);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px}
.confirm-box{background:#fff;border-radius:8px;padding:22px;max-width:380px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.confirm-box p{margin:0 0 16px;font-size:16px;font-weight:600}
/* Number-only lookup: pick the right item */
.card.pick{margin-bottom:12px;border:2px solid var(--rust)}
.picklist{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}
.picklist form{margin:0}
.pickrow{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:6px;font:inherit;text-align:left;cursor:pointer}
.pickrow:hover,.pickrow:focus{border-color:var(--rust);background:#FBF7F2}
.pk-num{font-weight:800;white-space:nowrap}.pk-name{flex:1;min-width:0}.pk-price{font-weight:800;white-space:nowrap}
.pk-thumb{width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:4px;background:var(--paper);display:block}
.pickrow{padding:8px 12px}
.lineitem{display:flex;align-items:center;gap:10px}
/* Customer box: sub-sections for self-entry link and tax exemption */
.subsec{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.subsec>summary{cursor:pointer}
.subsec .form,.subsec form.form{margin-top:10px}
.infolinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.infolinks form{margin:0}.infolinks input{width:12em}
.infoqr{display:flex;gap:16px;align-items:center;margin:10px 0;padding:12px;background:var(--paper);border-radius:6px}
.infoqr #infoqr{width:150px;height:150px;flex:0 0 150px;background:#fff}.infoqr svg{width:100%;height:100%;display:block}
/* Quick add modal + icon button */
.iconbtn{padding:0 14px;min-width:56px}
.iconbtn svg{display:block}
.qa-overlay{position:fixed;inset:0;background:rgba(28,27,25,.55);z-index:1050;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;overflow:auto}
.qa-overlay[hidden]{display:none}
.qa-box{background:#fff;border-radius:8px;padding:20px;width:100%;max-width:620px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.qa-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.qa-head h3{margin:0}
.qa-list{margin-top:14px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.qa-row{display:flex;gap:12px;align-items:baseline}.qa-row span:first-child{flex:1}
body.busy,body.busy *{cursor:progress!important}
