:root{--brand:#0878f9;--brand-dark:#075fca;--brand-soft:#eaf3ff;--accent:#0878f9;--ink:#101820;--muted:#66717f;--paper:#f6f8fb;--card:#fff;--line:#e2e7ee;--danger:#c73838;--warning:#7a5700;--nav-h:72px;--shadow:0 8px 24px rgba(16,24,32,.07)}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{min-height:44px;border:0;border-radius:13px;padding:11px 14px;font-weight:750;background:#eef1f5;color:var(--ink);cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(8,120,249,.22);outline-offset:2px}button.primary,.primary{background:var(--brand);color:#fff}button.good{background:var(--brand);color:#fff}button.ghost{background:transparent;border:1px solid var(--line)}button.danger{background:#ffeded;color:var(--danger)}input,select{width:100%;min-height:46px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:16px}label{font-weight:700}small{font-size:13px}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f6f8fb}.login .box{width:min(420px,100%);background:#fff;padding:30px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.login h1{margin:0 0 6px;font-size:30px;letter-spacing:-.04em}.login p{color:var(--muted)}.field{margin:14px 0}.field label{display:block;margin-bottom:6px}
.shell{max-width:900px;margin:auto;padding-bottom:calc(var(--nav-h) + 24px)}.top{position:sticky;z-index:6;top:0;background:rgba(255,255,255,.96);color:var(--ink);padding:calc(13px + env(safe-area-inset-top)) 16px 14px;border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.topline{display:flex;align-items:center;justify-content:space-between;gap:16px}.top h1{font-size:24px;line-height:1.15;margin:2px 0 0;letter-spacing:-.035em}.eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.user-name{font-size:13px;background:#f0f3f7;padding:7px 10px;border-radius:999px}.store-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px;padding:4px;background:#f0f3f7;border-radius:14px}.store-chip{min-height:38px;padding:7px 10px;color:var(--muted);background:transparent;border:0;border-radius:10px}.store-chip.selected{background:var(--brand);color:#fff;box-shadow:0 3px 10px rgba(8,120,249,.22)}.staff-store{margin-top:12px;padding:9px 11px;background:var(--brand-soft);color:var(--brand-dark);border-left:3px solid var(--brand);border-radius:8px;font-size:13px;font-weight:750}.view{padding:16px}
.nav{position:fixed;z-index:7;bottom:0;left:0;right:0;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(12px)}.nav>div{width:min(900px,100%);margin:auto;display:flex}.nav button{flex:1;min-width:0;background:transparent;border-radius:0;padding:9px 2px 8px;font-size:12px;color:var(--muted)}.nav button b{display:block;font-size:20px;line-height:1.05;margin-bottom:3px}.nav button.active{color:var(--brand)}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid.two{margin-top:10px}.quick{min-height:100px;text-align:left;background:var(--card);border:1px solid var(--line);padding:15px;border-radius:17px}.quick span{display:inline-grid;place-items:center;width:32px;height:32px;margin-bottom:9px;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:18px}.quick b,.quick small{display:block}.quick b{font-size:18px;letter-spacing:-.02em}.quick small{margin-top:3px;color:var(--muted);font-weight:500}.quick.primary-quick{background:var(--brand);border-color:var(--brand);color:#fff}.quick.primary-quick span{background:rgba(255,255,255,.18);color:#fff}.quick.primary-quick small{color:rgba(255,255,255,.82)}
.section-title,.page-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-title h2,.page-head h2{margin:2px 0 0;font-size:22px;letter-spacing:-.03em}.page-head{margin-top:0;align-items:center}.page-head .eyebrow{color:var(--muted)}.dashboard-list{display:grid;gap:10px}.dashboard-card{background:var(--card);border:1px solid var(--line);padding:16px;border-radius:17px}.dashboard-card.current{border:2px solid var(--brand)}.card-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-title h3{margin:0;font-size:19px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:13px 8px;margin-top:15px}.metrics strong,.metrics span{display:block}.metrics strong{font-size:23px;letter-spacing:-.03em}.metrics span{font-size:12px;color:var(--muted)}.badge{display:inline-block;border-radius:999px;padding:4px 9px;background:#eef1f5;color:var(--muted);font-size:12px;font-weight:750}.active-badge{background:var(--brand-soft);color:var(--brand)}.notice{color:var(--warning);background:#fff7df;border-left:3px solid #e2a725;padding:9px 11px;border-radius:8px;font-size:13px}.large-notice{margin-top:18px;padding:14px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stat{min-width:0;background:var(--card);border:1px solid var(--line);padding:12px 10px;border-radius:11px}.stat strong,.stat span{display:block;overflow:hidden;text-overflow:ellipsis}.stat strong{font-size:19px;white-space:nowrap}.stat span{font-size:11px;color:var(--muted);margin-top:2px}.skeleton{height:68px;background:linear-gradient(90deg,#e9ebe7 25%,#f7f8f5 50%,#e9ebe7 75%);background-size:200% 100%;animation:shine 1.2s infinite}@keyframes shine{to{background-position:-200% 0}}
.inventory-tools,.sell-tools{position:sticky;z-index:4;top:132px;background:var(--paper);padding:5px 0 10px}.searchbox{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:5px 5px 5px 12px;border-radius:12px;box-shadow:0 3px 12px rgba(31,55,45,.05)}.searchbox input{border:0;min-width:0;padding:8px 2px}.searchbox input:focus{outline:0}.searchbox span{color:var(--muted);font-size:20px}.searchbox button{min-height:38px;background:var(--brand-soft);color:var(--brand);padding:8px 12px}.context-line{margin:7px 2px 0;font-size:13px;color:var(--muted)}.list{display:grid;gap:9px}.compact-list{max-height:34vh;overflow:auto}.row{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left}button.row{width:100%}.row strong{display:block}.grow{flex:1;min-width:0}.grow strong,.grow span{overflow:hidden;text-overflow:ellipsis}.muted{color:var(--muted);font-size:13px;font-weight:500}.grow .muted{display:block;margin-top:3px}.thumb{width:54px;height:54px;flex:0 0 54px;object-fit:cover;border-radius:9px;border:1px solid var(--line);background:#f1f0ec}.thumb.placeholder{display:grid;place-items:center;color:#8a928e;font-weight:800}.inventory-row{align-items:flex-start}.barcode-line{display:block;margin-top:3px;color:#8a928e;font-size:11px}.stock-side{flex:0 0 auto;text-align:right}.stock-side b,.stock-side span{display:block}.stock-side b{font-size:19px;color:var(--brand)}.stock-side span{font-size:11px;color:var(--muted);margin:2px 0}.stock-side button{min-height:34px;padding:6px 10px;margin-top:5px;background:var(--brand-soft);color:var(--brand)}.qty{font-size:22px;font-weight:800}.loading-row,.empty{text-align:center;color:var(--muted);padding:38px 10px}.loading-row:before{content:'';display:inline-block;width:14px;height:14px;margin-right:8px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.small-empty{padding:24px 8px}.load-more{display:block;width:100%;margin-top:10px;background:#fff;border:1px solid var(--line)}
.cartbar{position:sticky;z-index:3;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));margin-top:12px;background:var(--ink);color:#fff;padding:11px 12px;border-radius:13px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.cartbar b,.cartbar small{display:block}.cartbar b{font-size:21px}.cartbar button{min-width:110px}.cart-controls{display:flex;align-items:end;gap:4px}.cart-controls label{font-size:10px;color:var(--muted)}.cart-controls input{width:70px;min-height:38px;padding:6px}.cart-controls button{min-height:38px;min-width:38px;padding:5px}.checkout-total{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff;padding:15px;border-radius:12px;margin:16px 0}.checkout-total strong{font-size:26px}.full-button{width:100%;margin-top:10px}
.modal{position:fixed;z-index:20;inset:0;background:rgba(4,17,12,.62);display:grid;align-items:end}.sheet{width:min(680px,100%);max-height:92vh;margin:auto;overflow:auto;background:var(--paper);border-radius:20px 20px 0 0;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 -14px 40px rgba(0,0,0,.18)}.sheet h2{margin:0 0 14px;font-size:22px}.sheet .close{margin-top:16px}.scan{display:grid;place-items:center;height:220px;background:#0b2119;color:#fff;border-radius:13px;text-align:center;padding:12px}.scan video{width:100%;height:100%;object-fit:cover;border-radius:9px}.menu-list{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.menu-list>button{width:100%;border-radius:0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;text-align:left;padding:13px 15px}.menu-list>button:last-child{border-bottom:0}.menu-list b,.menu-list small{display:block}.menu-list small{margin-top:2px;color:var(--muted);font-weight:500}.menu-list i{font-size:25px;color:#8b948f;font-style:normal}
.permission-card,.approval-card{display:grid;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.permission-card>div strong,.permission-card>div span{display:block}.permission-card>div span{font-size:13px;color:var(--muted)}.permission-card label{display:flex;align-items:center;justify-content:space-between;gap:12px}.percent-input{display:flex;align-items:center;gap:5px}.percent-input input{width:88px}.approval-card h3{margin:7px 0 2px}.approval-card p{margin:3px 0}.approval-card small{color:var(--muted)}.approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.action{min-height:86px;text-align:left;background:#fff;border:1px solid var(--line)}.action b{display:block;font-size:17px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.card.full{grid-column:1/-1}.card h3{margin:0 0 10px}.metric{font-size:25px;font-weight:800}.toolbar{display:flex;gap:8px;margin-bottom:12px}.toolbar input{flex:1}.variant{display:grid;grid-template-columns:1fr 1fr 70px 44px}.variant input{min-width:0}.image-preview{display:flex;align-items:center;gap:12px;margin-top:10px}.image-preview img{width:84px;height:84px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}#toast{position:fixed;z-index:50;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:10px;padding:10px 14px;display:none;max-width:90%;text-align:center;box-shadow:var(--shadow)}
@media(min-width:700px){.view{padding:22px}.quick-grid{grid-template-columns:repeat(4,1fr)}.quick-grid.two{grid-template-columns:repeat(2,1fr)}.dashboard-list{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(4,1fr)}.inventory-tools,.sell-tools{top:134px}.sheet{border-radius:20px;margin:auto}.modal{align-items:center}.stats{gap:12px}.stat{padding:15px}.actions{grid-template-columns:repeat(3,1fr)}}@media(max-width:380px){.view{padding:12px}.quick{padding:11px}.stats{gap:5px}.stat{padding:10px 7px}.cart-controls{flex-wrap:wrap;justify-content:flex-end}.inventory-row{padding:10px}.thumb{width:48px;height:48px;flex-basis:48px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important}}

/* V15 visual refresh: preserve every control position while making store context clearer. */
.searchbox{border-radius:14px;box-shadow:0 3px 12px rgba(16,24,32,.04)}
.row,.card,.stat,.menu-list,.permission-card,.approval-card{border-radius:16px}
.modal{background:rgba(10,18,28,.58)}
.sheet{background:#fff;border:1px solid var(--line)}
.store-lock{padding:10px 12px;border-radius:10px;background:var(--brand-soft);color:var(--brand-dark);font-weight:800}
.nav button.active{background:linear-gradient(180deg,transparent,var(--brand-soft));font-weight:800}
.discount-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:8px 0}.discount-presets button{min-height:38px;padding:7px 4px;background:var(--brand-soft);color:var(--brand);font-size:14px}
