:root{--bg:#f5f7fb;--card:#fff;--ink:#172033;--muted:#718096;--line:#e8edf4;--brand:#ff6b35;--brand2:#ff9f1c;--green:#12a36e;--red:#e5484d;--blue:#2878ff;--shadow:0 12px 34px rgba(26,39,64,.09);--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.customer-body{padding-bottom:110px}.mobile-header{height:72px;max-width:1180px;margin:auto;display:flex;align-items:center;gap:12px;padding:0 18px;position:sticky;top:0;z-index:20;background:rgba(245,247,251,.94);backdrop-filter:blur(12px)}.brandmark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 8px 20px rgba(255,107,53,.25)}.brandmark.large{width:68px;height:68px;border-radius:22px;font-size:24px}.mobile-header>div:nth-child(2){display:flex;flex-direction:column;line-height:1.15}.mobile-header small{color:var(--muted);font-size:11px;margin-top:4px}.icon-btn{margin-left:auto;width:42px;height:42px;border-radius:14px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:22px}.customer-main{max-width:1180px;margin:auto;padding:12px 18px 50px}.hero-card{background:linear-gradient(120deg,#1f2937,#334155);color:white;border-radius:30px;padding:30px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.08);right:-70px;top:-80px}.hero-card h1{font-size:clamp(30px,5vw,54px);line-height:1.02;margin:8px 0 10px;letter-spacing:-1.5px}.hero-card p{color:#d6dce6;margin:0;max-width:520px}.hero-emoji{font-size:96px;z-index:2;filter:drop-shadow(0 15px 20px rgba(0,0,0,.2))}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:800;color:#f7b38e}.location-banner{margin-top:14px;background:#eafaf4;border:1px solid #cceee1;border-radius:18px;padding:13px 14px;display:flex;align-items:center;gap:10px}.location-banner>span{font-size:23px}.location-banner div{display:flex;flex-direction:column;flex:1}.location-banner small{color:#477565;margin-top:2px}.location-banner button{border:0;background:#fff;color:var(--green);font-weight:800;border-radius:12px;padding:9px 12px}.searchbox{margin:22px 0 14px;background:white;border:1px solid var(--line);border-radius:18px;height:52px;display:flex;align-items:center;padding:0 16px;box-shadow:0 4px 18px rgba(26,39,64,.04)}.searchbox span{font-size:23px;color:#94a3b8}.searchbox input{border:0;outline:0;flex:1;padding:0 12px;background:transparent}.category-tabs{display:flex;gap:10px;overflow:auto;padding:2px 0 12px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;white-space:nowrap;font-weight:700;color:#526176}.category-tabs button.active{background:#172033;color:#fff;border-color:#172033}.section-title{display:flex;justify-content:space-between;align-items:end;margin:22px 0 12px}.section-title div{display:flex;flex-direction:column}.section-title span{font-size:10px;letter-spacing:1.6px;font-weight:800;color:var(--muted)}.section-title h2{margin:3px 0 0;font-size:24px}.pill{background:#eef2f7;color:#65748b;border-radius:999px;padding:7px 10px}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.product-card{background:white;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 6px 24px rgba(26,39,64,.05);position:relative}.product-img-wrap{aspect-ratio:1.35;background:#edf2f7;overflow:hidden;position:relative}.product-img-wrap img{width:100%;height:100%;object-fit:cover}.badge{position:absolute;left:10px;top:10px;border-radius:999px;padding:6px 8px;font-size:10px;font-weight:900;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.08)}.badge.promo{background:#fff1e8;color:#e85722}.badge.new{background:#eef5ff;color:#2563eb}.sold-out{position:absolute;inset:0;background:rgba(24,32,51,.55);display:grid;place-items:center;color:#fff;font-weight:900}.product-body{padding:13px}.product-cat{font-size:10px;color:var(--muted);font-weight:800}.product-body h3{font-size:15px;margin:4px 0;line-height:1.25}.product-body p{font-size:12px;color:var(--muted);height:30px;overflow:hidden;margin:0 0 10px}.price-row{display:flex;align-items:center;gap:7px}.price-row strong{font-size:17px}.old-price{text-decoration:line-through;color:#a0aec0;font-size:12px}.add-btn{margin-left:auto;border:0;border-radius:12px;width:38px;height:38px;background:var(--ink);color:#fff;font-size:21px;font-weight:600}.qty-control{margin-left:auto;display:flex;align-items:center;background:#f1f4f8;border-radius:12px;overflow:hidden}.qty-control button{border:0;background:transparent;width:32px;height:36px;font-weight:900}.qty-control b{min-width:22px;text-align:center}.cart-fab{position:fixed;left:50%;transform:translateX(-50%);bottom:76px;z-index:24;width:min(520px,calc(100% - 28px));border:0;border-radius:18px;background:#172033;color:#fff;height:58px;display:none;align-items:center;padding:0 14px;box-shadow:0 15px 35px rgba(23,32,51,.3);gap:9px}.cart-fab.show{display:flex}.cart-fab em{font-style:normal;background:var(--brand);min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:12px}.cart-fab strong{margin-left:auto}.bottom-nav{display:none}.overlay{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:30;opacity:0;pointer-events:none;transition:.2s}.overlay.show{opacity:1;pointer-events:auto}.sheet{position:fixed;z-index:31;right:16px;top:16px;bottom:16px;width:min(480px,calc(100% - 32px));background:white;border-radius:28px;box-shadow:0 25px 80px rgba(0,0,0,.25);transform:translateX(110%);transition:.25s;display:flex;flex-direction:column;padding:18px}.sheet.show{transform:translateX(0)}.sheet-handle{display:none}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 12px;border-bottom:1px solid var(--line)}.sheet-head small{font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:800}.sheet-head h2{margin:2px 0 0}.close-btn{width:38px;height:38px;border:0;border-radius:12px;background:#f1f4f8;font-size:24px}.cart-line{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.cart-line img{width:58px;height:58px;border-radius:14px;object-fit:cover}.cart-line h4{margin:0 0 4px;font-size:14px}.cart-line small{color:var(--muted)}.cart-summary{margin-top:auto;padding-top:14px}.cart-summary>div{display:flex;justify-content:space-between;margin-bottom:12px;font-size:18px}.primary-btn,.secondary-btn,.ghost-btn,.primary-small{border:0;border-radius:15px;font-weight:900}.primary-btn{width:100%;background:linear-gradient(120deg,var(--brand),var(--brand2));color:#fff;padding:15px 18px;box-shadow:0 8px 22px rgba(255,107,53,.22)}.secondary-btn{background:#eef2f7;color:#334155;padding:11px 14px}.ghost-btn{background:#f0f3f7;padding:13px;width:100%;margin-top:9px}.primary-small{background:var(--ink);color:white;padding:10px 13px}.form-scroll{overflow:auto;padding:12px 2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid.single{grid-template-columns:1fr}.form-grid label,label{display:flex;flex-direction:column;font-size:12px;font-weight:800;color:#55657a;gap:6px;margin-bottom:10px}input,select,textarea{width:100%;border:1px solid #dfe6ef;background:#fff;border-radius:13px;padding:12px 13px;outline:none;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:#8cb5ff;box-shadow:0 0 0 3px rgba(40,120,255,.08)}.form-section-title{font-size:13px;margin:15px 0 10px}.mini-order{background:#f7f9fc;border-radius:16px;padding:11px 12px;margin-bottom:12px}.mini-order-row{display:flex;justify-content:space-between;font-size:12px;margin:5px 0}.payment-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.payment-option{border:1px solid var(--line);border-radius:14px;padding:11px;text-align:center;font-size:12px;font-weight:800;cursor:pointer}.payment-option.active{border-color:var(--brand);background:#fff4ee;color:#d95120}.confirm-box{background:#172033;color:#fff;border-radius:18px;padding:14px;margin:14px 0}.confirm-box div{display:flex;justify-content:space-between}.confirm-box b{font-size:20px}.confirm-box small{display:block;color:#b9c3d2;margin-top:6px}.success-sheet{align-items:center;text-align:center;justify-content:center;padding:34px}.success-icon{width:74px;height:74px;border-radius:50%;background:#e7f8f1;color:var(--green);display:grid;place-items:center;font-size:38px;font-weight:900}.success-sheet h2{font-size:22px;margin:16px 0 6px}.success-sheet p{color:var(--muted);margin:0 0 18px}.success-details{width:100%;background:#f7f9fc;border-radius:17px;padding:13px;text-align:left;margin-bottom:14px}.success-details div{display:flex;justify-content:space-between;gap:15px;margin:8px 0;font-size:13px}.link-btn{display:block;text-align:center}.track-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(130deg,#f8fafc,#eef3ff)}.track-wrap{width:min(620px,100%)}.back-link{display:inline-block;margin-bottom:12px;color:#64748b;font-weight:700}.track-card{background:#fff;border-radius:28px;padding:28px;box-shadow:var(--shadow)}.track-card h1{margin:8px 0}.track-card>p{color:var(--muted);margin-top:0}.timeline{margin-top:20px}.timeline-step{display:grid;grid-template-columns:34px 1fr;gap:12px;position:relative;padding-bottom:18px}.timeline-step:after{content:"";position:absolute;width:2px;background:#e3e8ef;left:16px;top:30px;bottom:0}.timeline-step:last-child:after{display:none}.timeline-dot{width:34px;height:34px;border-radius:50%;background:#edf1f6;display:grid;place-items:center;font-weight:900;color:#9aa7b8;z-index:1}.timeline-step.done .timeline-dot{background:#e5f8f0;color:var(--green)}.timeline-step.current .timeline-dot{background:#fff1e8;color:var(--brand);box-shadow:0 0 0 5px #fff5f0}.timeline-step b{display:block;margin-top:4px}.timeline-step small{color:var(--muted)}.track-order-summary{margin-top:16px;padding:14px;border-radius:17px;background:#f8fafc}.track-order-summary .row{display:flex;justify-content:space-between;margin:7px 0;font-size:13px}.error-text{color:var(--red);font-size:12px;min-height:18px}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left,#fff2e8,transparent 35%),#f5f7fb}.login-shell{width:min(880px,100%);display:grid;grid-template-columns:1fr 420px;gap:30px;align-items:center}.login-brand h1{font-size:44px;margin:14px 0 4px}.login-brand p{color:var(--muted);max-width:390px}.login-card{background:#fff;padding:28px;border-radius:26px;box-shadow:var(--shadow)}.login-card h2{margin-top:0}.login-note{display:block;text-align:center;color:#98a2b3;margin-top:12px}.staff-body{min-height:100vh;background:#f5f7fb}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#172033;color:#dbe2ee;padding:18px 14px;display:flex;flex-direction:column;z-index:50}.side-brand{display:flex;align-items:center;gap:10px;padding:2px 6px 22px}.side-brand>div:last-child{display:flex;flex-direction:column}.side-brand small{color:#8090aa;font-size:11px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{padding:12px 13px;border-radius:13px;color:#aeb8c8;font-weight:700;display:flex;align-items:center;gap:10px}.sidebar nav a.active,.sidebar nav a:hover{background:#253147;color:white}.sidebar nav i{margin-left:auto;background:var(--brand);color:white;font-style:normal;border-radius:999px;padding:2px 7px;font-size:10px}.side-user{margin-top:auto;border-top:1px solid #2d394f;padding:14px 4px 2px;display:flex;align-items:center;gap:9px}.side-user .avatar{width:36px;height:36px;border-radius:12px;background:#34435e;display:grid;place-items:center;font-weight:900}.side-user>div:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.side-user b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user small{font-size:10px;color:#8392a9}.side-user button{border:0;background:transparent;color:#aeb8c8;font-size:18px}.staff-main{margin-left:250px}.staff-top{height:84px;padding:0 28px;display:flex;align-items:center;background:rgba(245,247,251,.94);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.staff-top>div:nth-child(2){display:flex;flex-direction:column}.staff-top small{font-size:10px;color:#8190a5;letter-spacing:1.5px;font-weight:900}.staff-top h1{font-size:22px;margin:2px 0}.live-pill{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;color:#5d6b7e}.live-pill span{display:inline-block;width:8px;height:8px;background:#1eb980;border-radius:50%;margin-right:5px;box-shadow:0 0 0 4px #e4f8f1}.menu-toggle{display:none;border:0;background:#fff;border-radius:10px;width:40px;height:40px;margin-right:10px}.staff-content{padding:8px 28px 36px}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:17px}.stat-card small{color:#8795a8;font-weight:800;font-size:10px}.stat-card strong{display:block;font-size:25px;margin-top:7px}.stat-card em{font-style:normal;color:#718096;font-size:11px}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:21px;padding:18px}.panel.wide{grid-row:span 2}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-head small,.panel>small{font-size:10px;letter-spacing:1.2px;color:#8a97aa;font-weight:800}.panel-head h2,.panel h2{font-size:18px;margin:3px 0}.rank-row,.peak-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.rank-row:last-child,.peak-row:last-child{border-bottom:0}.rank-row b,.peak-row b{font-size:13px}.rank-row small,.peak-row small{color:#8b98aa}.bar-mini{height:6px;border-radius:999px;background:#edf1f5;margin-top:6px;overflow:hidden}.bar-mini i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:999px}.filter-bar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;display:flex;gap:10px;align-items:center;position:sticky;top:92px;z-index:10}.status-tabs{display:flex;gap:5px;overflow:auto;scrollbar-width:none}.status-tabs button{border:0;background:#f2f5f8;color:#65748a;border-radius:11px;padding:9px 11px;font-size:11px;font-weight:800;white-space:nowrap}.status-tabs button.active{background:#172033;color:white}.search-inline{margin-left:auto;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;min-width:220px;padding-left:10px}.search-inline input{border:0;padding:9px;background:transparent}.orders-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.order-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:0 4px 18px rgba(26,39,64,.035)}.order-card.new{border-color:#ffc6ad;box-shadow:0 0 0 2px #fff1e9}.order-head{display:flex;justify-content:space-between;align-items:start}.order-head h3{margin:0;font-size:16px}.status-chip{border-radius:999px;padding:6px 8px;font-size:9px;font-weight:900;background:#eef2f6;color:#617086}.status-chip.received{background:#fff0e9;color:#d95927}.status-chip.preparing{background:#fff6d9;color:#9a6b00}.status-chip.ready{background:#eaf3ff;color:#2368c4}.status-chip.delivering{background:#edf0ff;color:#5d51c9}.status-chip.delivered{background:#e8f8f1;color:#12825b}.status-chip.cancelled{background:#fdecec;color:#be4046}.order-time{color:#8e9aad;font-size:10px;margin-top:4px}.customer-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.customer-row div{display:flex;flex-direction:column}.customer-row small{color:#8b98aa}.item-list{padding:8px 0}.item-row{display:flex;justify-content:space-between;font-size:12px;margin:6px 0}.delivery-box{background:#f7f9fc;border-radius:13px;padding:10px;font-size:11px;color:#5e6b7d}.order-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.order-total strong{font-size:18px}.order-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.order-actions button{border:0;border-radius:11px;padding:8px 9px;font-size:10px;font-weight:900}.act-main{background:#172033;color:#fff}.act-good{background:#e8f8f1;color:#137452}.act-warn{background:#fff1e8;color:#d65b2a}.act-bad{background:#fdecec;color:#b64248}.delivery-intro{background:#172033;color:#fff;border-radius:20px;padding:17px;display:flex;align-items:center;justify-content:space-between}.delivery-intro div{display:flex;flex-direction:column}.delivery-intro span{color:#aeb8c8;font-size:12px;margin-top:3px}.delivery-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:13px}.delivery-group{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.delivery-group-head{padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.delivery-group-head h3{margin:0;font-size:15px}.delivery-group-head span{font-size:11px;color:#718096}.delivery-order{padding:13px 16px;border-bottom:1px solid var(--line)}.delivery-order:last-child{border-bottom:0}.delivery-order-top{display:flex;justify-content:space-between}.delivery-order p{margin:6px 0;font-size:12px;color:#5f6d7f}.delivery-order-actions{display:flex;gap:7px}.delivery-order-actions button{border:0;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:900}.split-head{display:flex;justify-content:space-between;align-items:center}.split-head p{color:#758398}.product-form{display:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;margin:12px 0}.product-form.show{display:block}.admin-products-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.admin-product-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px}.admin-product-card img{width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:13px;background:#f1f4f7}.admin-product-card h3{font-size:14px;margin:9px 0 3px}.admin-product-card small{color:#8290a3}.admin-product-footer{display:flex;align-items:center;gap:6px;margin-top:10px}.admin-product-footer strong{margin-right:auto}.admin-product-footer button{border:0;border-radius:10px;padding:8px;font-size:10px;font-weight:800}.toggle-on{background:#e9f8f1;color:#137a56}.toggle-off{background:#fdecec;color:#b54248}.qr-layout{display:grid;grid-template-columns:360px 1fr;gap:14px}.qr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.qr-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px}.qr-card img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:12px;border:1px solid var(--line)}.qr-card h3{font-size:13px;margin:10px 0 3px}.qr-card p{font-size:11px;color:#718096;margin:0}.qr-card a{display:block;text-align:center;background:#f1f4f7;padding:8px;border-radius:10px;font-size:10px;font-weight:800;margin-top:8px}.muted{color:#7d8a9b;font-size:12px}.location-admin{display:grid;grid-template-columns:360px 1fr;gap:14px}.location-kind{display:flex;gap:6px;margin:12px 0}.location-kind button{border:0;background:#f1f4f7;border-radius:10px;padding:8px;font-size:10px;font-weight:800}.location-kind button.active{background:#172033;color:#fff}.tree-campus{border:1px solid var(--line);border-radius:14px;padding:11px;margin:8px 0}.tree-campus>b{font-size:13px}.tree-building{margin:8px 0 0 14px;padding-left:10px;border-left:2px solid #e6ebf2;font-size:12px}.tree-room{display:inline-block;background:#f0f4f8;border-radius:8px;padding:5px 7px;margin:4px 3px 0 0;font-size:10px}.toast{position:fixed;right:20px;top:20px;z-index:100;background:#172033;color:#fff;border-radius:14px;padding:12px 15px;box-shadow:var(--shadow);transform:translateY(-140%);transition:.25s;font-size:12px;font-weight:800}.toast.show{transform:translateY(0)}
@media(max-width:1100px){.product-grid{grid-template-columns:repeat(3,1fr)}.orders-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(3,1fr)}.admin-products-grid{grid-template-columns:repeat(3,1fr)}.qr-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.hero-card{padding:22px}.hero-card h1{font-size:34px}.hero-emoji{font-size:64px}.product-grid{grid-template-columns:repeat(2,1fr);gap:10px}.product-body{padding:10px}.product-body p{display:none}.bottom-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;height:68px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a,.bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:20px;color:#8995a7;position:relative}.bottom-nav span{font-size:9px;font-weight:800;margin-top:2px}.bottom-nav .active{color:var(--brand)}.bottom-nav i{position:absolute;top:8px;right:24%;background:var(--brand);color:white;font-style:normal;border-radius:999px;min-width:17px;height:17px;font-size:9px;display:grid;place-items:center}.sheet{left:0;right:0;top:auto;bottom:0;width:100%;border-radius:26px 26px 0 0;max-height:88vh;transform:translateY(110%)}.sheet.show{transform:translateY(0)}.sheet-handle{display:block;width:48px;height:5px;border-radius:99px;background:#d9e0e9;margin:0 auto 10px}.cart-fab{bottom:78px}.form-grid{grid-template-columns:1fr}.payment-options{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:translateX(0)}.staff-main{margin-left:0}.staff-top{padding:0 14px;height:72px}.menu-toggle{display:block}.staff-content{padding:7px 12px 30px}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.orders-grid,.delivery-groups,.qr-layout,.location-admin{grid-template-columns:1fr}.filter-bar{top:76px;flex-direction:column;align-items:stretch}.search-inline{min-width:0;margin-left:0}.admin-products-grid,.qr-grid{grid-template-columns:repeat(2,1fr)}.live-pill{font-size:0;padding:9px}.live-pill span{margin:0}.hero-card p{font-size:12px}.customer-main{padding-left:12px;padding-right:12px}.mobile-header{padding:0 12px}.track-card{padding:20px}}

.setting-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px}.setting-checks label{background:#f7f9fc;border:1px solid var(--line);padding:10px;border-radius:12px;display:flex;flex-direction:row;align-items:center;margin:0}.setting-checks input{width:auto}.backup-link{display:block;background:#172033;color:white;border-radius:14px;padding:13px;text-align:center;font-weight:900;font-size:12px}@media(max-width:760px){.setting-checks{grid-template-columns:1fr}}

.advanced-filters{display:none;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:10px}.advanced-filters.show{display:block}

/* ========================================================================== 
   BCTech Canteen WebApp v1.0.3 - Customer UI refresh
   Full-width desktop + hero one-line + 4/5-column products + mobile-first
   ========================================================================== */
.customer-body{
  --customer-max:1720px;
  --brand:#ff6b35;
  --brand2:#ffad24;
  --ink:#13203a;
  --muted:#6c7890;
  --line:#e5eaf3;
  --blue-deep:#203567;
  --blue:#3859a8;
  --soft-blue:#edf3ff;
  --soft-orange:#fff3ea;
  --soft-green:#eafaf3;
  background:
    radial-gradient(circle at 8% 4%,rgba(255,170,66,.10),transparent 20%),
    radial-gradient(circle at 96% 11%,rgba(75,113,212,.10),transparent 22%),
    linear-gradient(180deg,#f7f9ff 0%,#f4f7fc 48%,#f8fbff 100%);
  color:var(--ink);
  padding-bottom:118px;
}
.customer-body .mobile-header{
  width:min(var(--customer-max),calc(100% - 40px));
  max-width:none;
  height:78px;
  padding:0 4px;
  background:rgba(247,249,255,.88);
  border-bottom:1px solid rgba(229,234,243,.72);
}
.customer-body .brandmark{
  width:46px;height:46px;border-radius:15px;
  background:linear-gradient(145deg,#ff6234,#ffad24);
  box-shadow:0 10px 28px rgba(255,107,53,.28);
}
.customer-body .mobile-header>div:nth-child(2) strong{font-size:16px;letter-spacing:-.15px}
.customer-body .mobile-header small{font-size:11px;color:#78869d}
.customer-body .icon-btn{
  width:44px;height:44px;border-radius:15px;
  color:#23365e;background:rgba(255,255,255,.92);
  box-shadow:0 8px 24px rgba(34,54,91,.07);
  transition:transform .18s ease,box-shadow .18s ease;
}
.customer-body .icon-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(34,54,91,.11)}
.customer-body .customer-main{
  width:min(var(--customer-max),calc(100% - 40px));
  max-width:none;
  margin:0 auto;
  padding:18px 4px 70px;
}
.customer-body .hero-card{
  min-height:230px;
  padding:38px 46px;
  border-radius:34px;
  background:
    radial-gradient(circle at 88% 12%,rgba(255,255,255,.13),transparent 18%),
    radial-gradient(circle at 75% 110%,rgba(255,126,67,.18),transparent 25%),
    linear-gradient(118deg,#172643 0%,#233d74 52%,#315b8b 100%);
  box-shadow:0 20px 50px rgba(28,47,88,.16);
  isolation:isolate;
}
.customer-body .hero-card:before{
  content:"";position:absolute;inset:auto -46px -92px auto;width:260px;height:260px;
  border-radius:50%;border:42px solid rgba(255,255,255,.045);z-index:-1;
}
.customer-body .hero-card:after{width:340px;height:340px;right:-105px;top:-160px;background:rgba(255,255,255,.075);z-index:-1}
.customer-body .hero-content{min-width:0;z-index:2;max-width:calc(100% - 180px)}
.customer-body .hero-card h1{
  margin:10px 0 12px;
  font-size:clamp(38px,3.4vw,62px);
  line-height:1.04;
  letter-spacing:-2.4px;
  white-space:nowrap;
  text-wrap:nowrap;
  text-shadow:0 3px 18px rgba(8,20,48,.17);
}
.customer-body .hero-card p{font-size:15px;max-width:720px;color:#e7edfa}
.customer-body .eyebrow{font-size:11px;letter-spacing:2px;color:#ffc08f}
.customer-body .hero-emoji{font-size:98px;margin-right:26px;transform:rotate(-3deg);filter:drop-shadow(0 18px 24px rgba(4,15,37,.25))}
.customer-body .hero-points{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.customer-body .hero-points span{font-size:11px;font-weight:800;color:#eff5ff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);padding:8px 10px;border-radius:999px;backdrop-filter:blur(5px)}
.customer-body .location-banner{margin-top:18px;border-radius:20px;background:linear-gradient(120deg,#eafbf4,#f1fffa);box-shadow:0 8px 24px rgba(16,145,94,.05)}
.customer-body .searchbox{
  margin:24px 0 13px;height:58px;border-radius:20px;padding:0 18px;
  box-shadow:0 10px 30px rgba(32,53,103,.055);background:rgba(255,255,255,.96);
}
.customer-body .searchbox:focus-within{border-color:#b8c9f5;box-shadow:0 0 0 4px rgba(56,89,168,.07),0 12px 32px rgba(32,53,103,.07)}
.customer-body .category-tabs{
  position:relative;display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;
  padding:4px 2px 14px;scroll-snap-type:x proximity;scroll-behavior:smooth;
  overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;
}
.customer-body .category-tabs button{
  flex:0 0 auto;scroll-snap-align:center;min-height:42px;padding:10px 16px;
  border-radius:999px;background:rgba(255,255,255,.94);border-color:#e2e8f2;
  color:#53637e;box-shadow:0 5px 17px rgba(35,53,88,.045);
  transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.customer-body .category-tabs button:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(35,53,88,.08)}
.customer-body .category-tabs button.active{background:linear-gradient(135deg,#1e315d,#2d4b86);border-color:#263f73;color:white;box-shadow:0 9px 23px rgba(31,52,98,.19)}
.customer-body .section-title{margin:28px 0 15px}
.customer-body .section-title h2{font-size:27px;letter-spacing:-.5px}
.customer-body .section-title span{color:#71809b}
.customer-body .pill{background:#eaf0fb;color:#506482;font-weight:800}
.customer-body .product-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.customer-body .product-card{
  border-radius:24px;border-color:#e4e9f2;
  box-shadow:0 8px 26px rgba(27,46,83,.055);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.customer-body .product-card:hover{transform:translateY(-4px);border-color:#d8dfed;box-shadow:0 16px 36px rgba(27,46,83,.11)}
.customer-body .product-img-wrap{aspect-ratio:1.42;border-bottom:1px solid #edf0f5}
.customer-body .product-body{padding:15px}
.customer-body .product-cat{color:#77869e;letter-spacing:.2px}
.customer-body .product-body h3{font-size:16px;margin:5px 0 5px;letter-spacing:-.15px}
.customer-body .product-body p{height:34px;line-height:1.45}
.customer-body .price-row strong{font-size:18px;color:#14203a}
.customer-body .add-btn{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#17294e,#28457b);box-shadow:0 7px 16px rgba(25,45,83,.18);transition:transform .15s ease}
.customer-body .add-btn:hover{transform:scale(1.06)}
.customer-body .qty-control{background:#eef2f8;border:1px solid #e4e9f1;border-radius:13px}
.customer-body .qty-control button{color:#203968}
.customer-body .badge{left:11px;top:11px;padding:7px 9px}
.customer-body .badge.promo{background:#fff0e7;color:#ef5a25}
.customer-body .badge.new{background:#edf3ff;color:#315fbf}

/* Sticky cart - desktop card, mobile one-hand friendly */
.customer-body .cart-fab{
  bottom:24px;width:min(660px,calc(100% - 32px));height:68px;border-radius:22px;
  padding:8px 12px 8px 10px;gap:11px;text-align:left;
  background:linear-gradient(118deg,#14213d 0%,#20386b 100%);
  border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 48px rgba(20,33,61,.28);
  backdrop-filter:blur(12px);
}
.customer-body .cart-fab-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border-radius:15px;background:linear-gradient(145deg,#ff6b35,#ffad24);font-size:21px;box-shadow:0 8px 20px rgba(255,107,53,.25)}
.customer-body .cart-fab-copy{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.customer-body .cart-fab-copy b{font-size:14px}
.customer-body .cart-fab-copy small{margin-top:5px;color:#cbd6eb;font-size:10px;font-weight:700}
.customer-body .cart-fab-copy em{display:inline;color:#fff;background:none;min-width:auto;height:auto;font-size:10px}
.customer-body .cart-fab strong{font-size:19px;letter-spacing:-.3px;margin-left:auto}
.customer-body .cart-fab-arrow{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.10);font-size:27px;line-height:1;color:#fff}

/* Cart + checkout unified surfaces */
.customer-body .overlay{background:rgba(10,20,42,.52);backdrop-filter:blur(3px)}
.customer-body .sheet{
  right:20px;top:20px;bottom:20px;width:min(570px,calc(100% - 40px));
  border-radius:30px;padding:20px;background:linear-gradient(180deg,#fff 0%,#fbfcff 100%);
  box-shadow:0 30px 95px rgba(8,20,46,.30);
}
.customer-body .checkout-sheet{width:min(760px,calc(100% - 40px))}
.customer-body .sheet-head{padding:4px 3px 15px}
.customer-body .sheet-head h2{font-size:25px;letter-spacing:-.45px}
.customer-body .sheet-head p{font-size:11px;color:#8290a5;margin:5px 0 0;font-weight:600}
.customer-body .close-btn{width:42px;height:42px;border-radius:14px;color:#3b4b64;background:#eef2f7}
.customer-body .cart-items{overflow:auto;padding:6px 2px 10px}
.customer-body .cart-line{grid-template-columns:68px 1fr auto;gap:12px;padding:13px 8px;border-bottom:0;margin-top:9px;border-radius:18px;background:#fff;border:1px solid #e8edf4;box-shadow:0 5px 18px rgba(28,46,80,.04)}
.customer-body .cart-line img{width:68px;height:68px;border-radius:16px}
.customer-body .cart-line h4{font-size:14px;margin-bottom:6px}
.customer-body .cart-summary{background:#fff;border:1px solid #e5eaf3;border-radius:20px;padding:15px;margin-top:auto;box-shadow:0 -8px 30px rgba(28,46,80,.045)}
.customer-body .cart-summary>div{font-size:15px;align-items:center}
.customer-body .cart-summary strong{font-size:23px;color:#16284c}
.customer-body .continue-shopping{width:100%;border:0;background:transparent;color:#65748b;font-weight:800;padding:12px 8px 2px;font-size:12px}
.customer-body .primary-btn{border-radius:16px;padding:15px 18px;background:linear-gradient(120deg,#ff6533,#ffa62b);box-shadow:0 10px 25px rgba(255,107,53,.25);transition:transform .16s ease,box-shadow .16s ease}
.customer-body .primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(255,107,53,.29)}
.customer-body .checkout-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:9px;padding:14px 2px 4px;color:#97a3b5;font-size:10px;font-weight:900}
.customer-body .checkout-progress span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.customer-body .checkout-progress span b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#edf1f6;color:#718096;font-size:10px}
.customer-body .checkout-progress i{height:2px;background:#e7ebf2;border-radius:9px}
.customer-body .checkout-progress .done,.customer-body .checkout-progress .active{color:#273d70}
.customer-body .checkout-progress .done b{background:#e9f8f1;color:#14825d}
.customer-body .checkout-progress .active b{background:#273f78;color:white}
.customer-body .form-scroll{padding:10px 3px 2px;scrollbar-width:thin;scrollbar-color:#d6deeb transparent}
.customer-body .checkout-block{background:#fff;border:1px solid #e6ebf3;border-radius:20px;padding:14px;margin-bottom:12px;box-shadow:0 5px 18px rgba(30,49,88,.035)}
.customer-body .order-review{background:linear-gradient(120deg,#f8faff,#fff)}
.customer-body .form-section-title{font-size:13px;color:#263c6a;margin:2px 0 12px}
.customer-body .mini-order{margin-bottom:0;background:#f5f8fd;border:1px solid #edf1f6}
.customer-body .mini-order-row{font-size:12px;padding:3px 0}
.customer-body .checkout-sheet input,.customer-body .checkout-sheet select,.customer-body .checkout-sheet textarea{border-radius:14px;background:#fcfdff;border-color:#dfe6f0;padding:12px 13px}
.customer-body .checkout-sheet input:focus,.customer-body .checkout-sheet select:focus,.customer-body .checkout-sheet textarea:focus{border-color:#9db1e2;box-shadow:0 0 0 4px rgba(56,89,168,.07)}
.customer-body .payment-option{min-height:62px;border-radius:15px;background:#fbfcff;display:grid;place-items:center;line-height:1.35;transition:.16s ease}
.customer-body .payment-option:hover{border-color:#cfd8e8;background:#f7f9fd}
.customer-body .payment-option.active{border-color:#ff8a55;background:#fff2eb;color:#db5526;box-shadow:0 0 0 2px rgba(255,107,53,.08)}
.customer-body .confirm-box{background:linear-gradient(120deg,#17284e,#29477d);border-radius:19px;padding:15px 16px}
.customer-body .confirm-box b{font-size:22px}
.customer-body .success-sheet{background:linear-gradient(180deg,#fff,#f8fbff)}

@media(max-width:1450px){
  .customer-body .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .customer-body .hero-card h1{font-size:clamp(36px,3.25vw,54px)}
}
@media(max-width:1120px){
  .customer-body .mobile-header,.customer-body .customer-main{width:min(100% - 30px,1720px)}
  .customer-body .hero-card{padding:32px 34px}
  .customer-body .hero-content{max-width:calc(100% - 130px)}
  .customer-body .hero-card h1{font-size:clamp(33px,3.7vw,44px);letter-spacing:-1.7px}
  .customer-body .hero-emoji{font-size:76px;margin-right:8px}
}
@media(max-width:900px){
  .customer-body .hero-card{min-height:220px;padding:28px}
  .customer-body .hero-content{max-width:calc(100% - 95px)}
  .customer-body .hero-card h1{white-space:normal;text-wrap:wrap;font-size:clamp(32px,5.2vw,44px)}
  .customer-body .hero-points span:nth-child(3){display:none}
  .customer-body .hero-emoji{font-size:70px}
  .customer-body .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
}
@media(max-width:760px){
  .customer-body{padding-bottom:148px}
  .customer-body .mobile-header{width:100%;height:68px;padding:0 13px}
  .customer-body .customer-main{width:100%;padding:10px 12px 55px}
  .customer-body .hero-card{min-height:184px;border-radius:25px;padding:22px 20px}
  .customer-body .hero-content{max-width:calc(100% - 68px)}
  .customer-body .hero-card h1{font-size:clamp(27px,8.4vw,37px);line-height:1.04;letter-spacing:-1.4px;margin:8px 0}
  .customer-body .hero-card p{font-size:11px;line-height:1.5}
  .customer-body .hero-emoji{font-size:54px;margin-right:0}
  .customer-body .hero-points{margin-top:12px;gap:6px}
  .customer-body .hero-points span{font-size:9px;padding:6px 8px}
  .customer-body .hero-points span:nth-child(n+2){display:none}
  .customer-body .searchbox{height:52px;margin:16px 0 10px;border-radius:17px}
  .customer-body .category-tabs{margin-right:-12px;padding-right:16px;gap:8px}
  .customer-body .category-tabs button{min-height:39px;padding:9px 13px;font-size:12px}
  .customer-body .section-title{margin:21px 0 11px}
  .customer-body .section-title h2{font-size:22px}
  .customer-body .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .customer-body .product-card{border-radius:19px}
  .customer-body .product-body{padding:10px}
  .customer-body .product-body h3{font-size:13px}
  .customer-body .price-row strong{font-size:15px}
  .customer-body .add-btn{width:38px;height:38px}
  .customer-body .cart-fab{bottom:78px;height:62px;border-radius:19px;width:calc(100% - 24px)}
  .customer-body .cart-fab-icon{width:44px;height:44px;flex-basis:44px;border-radius:13px}
  .customer-body .cart-fab strong{font-size:16px}
  .customer-body .cart-fab-arrow{display:none}
  .customer-body .sheet{left:0;right:0;top:auto;bottom:0;width:100%;max-height:91vh;border-radius:27px 27px 0 0;padding:16px}
  .customer-body .checkout-sheet{width:100%}
  .customer-body .sheet-head h2{font-size:22px}
  .customer-body .cart-line{grid-template-columns:58px 1fr auto;padding:10px 6px}
  .customer-body .cart-line img{width:58px;height:58px}
  .customer-body .checkout-progress{font-size:0;gap:6px}
  .customer-body .checkout-progress span b{font-size:10px}
  .customer-body .checkout-block{padding:12px;border-radius:17px}
  .customer-body .payment-options{grid-template-columns:repeat(3,1fr)}
  .customer-body .payment-option{font-size:10px;padding:8px 4px;min-height:58px}
}
@media(max-width:390px){
  .customer-body .hero-card{padding:19px 16px}.customer-body .hero-content{max-width:calc(100% - 48px)}
  .customer-body .hero-emoji{font-size:43px}.customer-body .hero-card h1{font-size:26px}
  .customer-body .product-body h3{font-size:12px}.customer-body .price-row strong{font-size:14px}
  .customer-body .cart-fab-copy small{display:none}
}
.customer-body .checkout-sheet .sticky-submit{position:sticky;bottom:0;z-index:4;margin-top:4px;box-shadow:0 12px 28px rgba(255,107,53,.28)}


/* v1.0.4 logo + settings enhancements */
.brand-logo{display:block;object-fit:contain;background:transparent}
.customer-logo{width:170px;max-width:42vw;height:44px;border-radius:0;box-shadow:none}
.side-brand-logo{width:180px;height:52px;max-width:100%;margin-left:-6px}
.staff-body .side-brand{align-items:center;gap:10px}
.staff-body .side-brand>div:last-child{display:flex;flex-direction:column;line-height:1.12}
.staff-body .side-brand>div:last-child b{font-size:16px}
.staff-body .side-brand>div:last-child small{color:#93a2bb}
.customer-body .mobile-header{gap:14px}
.customer-body .mobile-header>div:nth-child(2){min-width:0}
.customer-body .mobile-header>div:nth-child(2) strong{display:block}
.location-admin .panel label input[list]{background:#fff}
@media(max-width:760px){
  .customer-logo{width:136px;height:38px;max-width:52vw}
  .side-brand-logo{width:160px;height:46px}
}


/* =========================================================
   BCTech Canteen V2.0 - Customer UI
   ========================================================= */
.v2-customer{
  --v2-blue-950:#06255d;--v2-blue-900:#07377f;--v2-blue-800:#0b4fb8;
  --v2-blue-700:#1467db;--v2-blue-500:#2f8cff;--v2-sky:#eaf5ff;
  --v2-ink:#10244a;--v2-muted:#75849c;--v2-line:#e3eaf4;
  --v2-coral:#ff6238;--v2-soft:#f7faff;--v2-white:#fff;--v2-logo-ring:#2f86ff;--v2-logo-ring-soft:#8dc2ff;
  background:
    radial-gradient(circle at 78% 10%,rgba(59,130,246,.08),transparent 32%),
    linear-gradient(180deg,#f7fbff 0,#f5f8fd 48%,#f8faff 100%);
  color:var(--v2-ink);padding-bottom:116px;
}
.v2-customer .v2-mobile-header{display:none}
.v2-customer .v2-main{width:min(calc(100% - 32px),1720px);max-width:1720px;margin:0 auto;padding:22px 0 60px}
.v2-customer .v2-hero{
  position:relative;display:grid;grid-template-columns:285px minmax(0,1fr) 390px;
  min-height:326px;overflow:hidden;border-radius:30px;
  background:linear-gradient(112deg,#062a69 0%,#06449c 45%,#0a59c9 73%,#3189f2 100%);
  box-shadow:0 22px 55px rgba(16,67,151,.18);isolation:isolate;
}
.v2-customer .v2-hero:before,.v2-customer .v2-hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.v2-customer .v2-hero:before{width:390px;height:390px;right:-110px;top:-210px;border:52px solid rgba(255,255,255,.07)}
.v2-customer .v2-hero:after{width:250px;height:250px;right:210px;bottom:-190px;background:rgba(255,255,255,.055)}
.v2-customer .v2-logo-panel{
  position:relative;z-index:3;align-self:stretch;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#fff 0%,#f7fbff 100%);
  border:2px solid var(--v2-logo-ring);border-radius:30px 0 0 30px;
  padding:6px 8px;box-shadow:inset 0 0 0 4px rgba(255,255,255,.76), 14px 0 34px rgba(2,35,89,.16);
}
.v2-customer .v2-logo-panel::after{content:"";position:absolute;inset:10px 10px 10px 10px;border:1.5px solid rgba(47,134,255,.28);border-radius:22px 0 0 22px;pointer-events:none}
.v2-customer .v2-logo-panel img{width:100%;height:100%;max-height:314px;object-fit:contain;filter:drop-shadow(0 10px 16px rgba(7,77,177,.10))}
.v2-customer .v2-hero-content{position:relative;z-index:4;align-self:center;padding:36px 26px 36px 44px;min-width:0}
.v2-customer .v2-welcome{font-size:15px;line-height:1.2;color:#dfeaff;font-weight:800;letter-spacing:.02em;margin-bottom:12px}
.v2-customer .v2-welcome span{color:#ffb84d;margin:0 6px}
.v2-customer .v2-hero h1{margin:0;color:#fff;font-size:clamp(38px,3.5vw,62px);line-height:1;letter-spacing:-2.3px;font-weight:900;white-space:nowrap;text-shadow:0 2px 0 rgba(0,0,0,.04)}
.v2-customer .v2-hero p{margin:15px 0 0;color:#e9f2ff;font-size:16px;font-weight:500}
.v2-customer .v2-feature-pills{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.v2-customer .v2-feature-pills span{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 16px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.09);color:#fff;font-size:13px;font-weight:800;backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.10)}
.v2-customer .v2-hero-visual{position:relative;z-index:2;align-self:stretch;overflow:hidden}
.v2-customer .v2-hero-visual img{position:absolute;right:-8px;top:0;height:100%;width:118%;object-fit:cover;object-position:right center;filter:saturate(1.04) contrast(1.02)}
.v2-customer .v2-search{width:min(1080px,78%);margin:18px auto 15px;height:58px;border-radius:22px;padding:0 10px 0 17px;border:1px solid rgba(211,224,243,.95);box-shadow:0 14px 30px rgba(30,65,118,.08);background:rgba(255,255,255,.96)}
.v2-customer .v2-search-icon{font-size:22px;color:#61769b}
.v2-customer .v2-search input{font-size:14px;color:#21365c}
.v2-customer .v2-scan-btn{border:0;background:transparent;color:#1265d8;font-weight:900;display:inline-flex;gap:7px;align-items:center;padding:10px 14px;border-radius:14px;white-space:nowrap}
.v2-customer .v2-scan-btn:hover{background:#eef6ff}
.v2-customer .category-tabs{gap:12px;padding:4px 0 14px;overflow-x:auto;scroll-snap-type:x proximity}
.v2-customer .category-tabs button{scroll-snap-align:start;border:1px solid #e0e8f4;background:#fff;color:#2e4163;min-height:43px;padding:0 17px;border-radius:999px;font-size:13px;font-weight:850;box-shadow:0 8px 18px rgba(28,65,119,.055);transition:.18s ease}
.v2-customer .category-tabs button:hover{transform:translateY(-1px);border-color:#c8d7ec}
.v2-customer .category-tabs button.active{background:linear-gradient(130deg,#083784,#1267d9);border-color:transparent;color:#fff;box-shadow:0 10px 24px rgba(18,93,199,.20)}
.v2-customer .section-title{margin:25px 0 14px;align-items:flex-end}
.v2-customer .section-title span{color:#1765cc;letter-spacing:2px;font-size:10px}
.v2-customer .section-title h2{font-size:28px;letter-spacing:-.6px;color:#102957}
.v2-customer .v2-see-all{color:#1264d8;font-size:13px;font-weight:900;padding:8px 2px}
.v2-customer .product-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.v2-customer .product-card{border-radius:22px;border:1px solid #e1e9f4;background:#fff;box-shadow:0 12px 30px rgba(29,62,110,.07);transition:transform .18s ease,box-shadow .18s ease, border-color .18s ease}
.v2-customer .product-card:hover{transform:translateY(-4px);box-shadow:0 19px 38px rgba(30,67,124,.12);border-color:#d0dcee}
.v2-customer .product-img-wrap{aspect-ratio:1.34;border-bottom:1px solid #eef2f7;background:linear-gradient(145deg,#edf7ff,#f8fbff)}
.v2-customer .product-card:nth-child(5n+2) .product-img-wrap{background:linear-gradient(145deg,#fff2e8,#fff9f4)}
.v2-customer .product-card:nth-child(5n+3) .product-img-wrap{background:linear-gradient(145deg,#fff4d9,#fffaf0)}
.v2-customer .product-card:nth-child(5n+4) .product-img-wrap{background:linear-gradient(145deg,#eaf8ee,#f8fff9)}
.v2-customer .product-card:nth-child(5n) .product-img-wrap{background:linear-gradient(145deg,#f4eaff,#fcf8ff)}
.v2-customer .product-img-wrap img{object-fit:cover;transition:transform .2s ease}
.v2-customer .product-card:hover .product-img-wrap img{transform:scale(1.025)}
.v2-customer .badge{left:12px;top:12px;padding:6px 9px;border-radius:999px;font-size:9px}
.v2-customer .badge.promo{background:#ff6238;color:#fff;box-shadow:0 7px 17px rgba(255,98,56,.28)}
.v2-customer .product-body{padding:14px 15px 15px}
.v2-customer .product-cat{color:#7d8da7;font-size:9px}
.v2-customer .product-body h3{font-size:15px;color:#17325f;margin:5px 0 4px}
.v2-customer .product-body p{height:30px;font-size:11px;line-height:1.4;color:#8390a3}
.v2-customer .price-row strong{font-size:17px;color:#0e5cd7}
.v2-customer .old-price{color:#7f8ba0}
.v2-customer .add-btn{background:#fff;color:#0d62db;border:1px solid #dbe7f6;border-radius:50%;width:38px;height:38px;box-shadow:0 6px 16px rgba(39,98,179,.08)}
.v2-customer .add-btn:hover{background:#0e63da;color:#fff;border-color:#0e63da}
.v2-customer .qty-control{background:#edf5ff;border:1px solid #dae9fc}
.v2-customer .v2-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:18px 0 6px;padding:8px 12px;background:rgba(255,255,255,.92);border:1px solid #e2eaf4;border-radius:20px;box-shadow:0 10px 28px rgba(30,66,120,.055)}
.v2-customer .v2-benefits>div{display:flex;align-items:center;gap:10px;min-height:54px;padding:7px 11px;border-radius:14px}
.v2-customer .v2-benefits>div:not(:last-child){border-right:1px solid #edf1f6}
.v2-customer .v2-benefits b{font-size:23px}
.v2-customer .v2-benefits span{display:flex;flex-direction:column;min-width:0}
.v2-customer .v2-benefits strong{font-size:12px;color:#1b3766}
.v2-customer .v2-benefits small{font-size:10px;color:#8995a7;margin-top:2px}
.v2-customer .v2-all-menu{margin-top:18px}
.v2-customer .cart-fab{background:linear-gradient(125deg,#082e6f,#0b54b3);box-shadow:0 18px 45px rgba(7,52,121,.32)}
.v2-customer .cart-fab-icon{background:linear-gradient(145deg,#2e87ff,#12a0ef);box-shadow:0 8px 20px rgba(33,126,232,.28)}
.v2-customer .primary-btn{background:linear-gradient(120deg,#0a56c4,#1c82f0);box-shadow:0 10px 25px rgba(22,102,207,.25)}
.v2-customer .primary-btn:hover{box-shadow:0 14px 30px rgba(22,102,207,.29)}
.v2-customer .payment-option.active{border-color:#2a79e4;background:#edf6ff;color:#0f5dc8;box-shadow:0 0 0 2px rgba(34,112,219,.08)}
.v2-customer .confirm-box{background:linear-gradient(120deg,#072c6c,#0c58bb)}

@media(max-width:1450px){
  .v2-customer .v2-hero{grid-template-columns:255px minmax(0,1fr) 320px;min-height:300px}
  .v2-customer .v2-hero h1{font-size:clamp(34px,3.3vw,54px)}
  .v2-customer .v2-hero-content{padding-left:32px;padding-right:16px}
  .v2-customer .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1120px){
  .v2-customer .v2-hero{grid-template-columns:205px minmax(0,1fr) 220px;min-height:250px}
  .v2-customer .v2-logo-panel{border-radius:25px 0 0 25px}
  .v2-customer .v2-hero-content{padding:28px 16px 28px 26px}
  .v2-customer .v2-welcome{font-size:12px;margin-bottom:9px}
  .v2-customer .v2-hero h1{font-size:clamp(27px,3.4vw,40px);letter-spacing:-1.3px}
  .v2-customer .v2-hero p{font-size:13px;margin-top:10px}
  .v2-customer .v2-feature-pills{margin-top:17px;gap:7px}
  .v2-customer .v2-feature-pills span{font-size:10px;min-height:35px;padding:0 11px}
  .v2-customer .v2-search{width:min(900px,90%)}
  .v2-customer .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .v2-customer{padding-bottom:145px}
  .v2-customer .v2-mobile-header{display:flex;position:sticky;top:0;z-index:26;width:100%;height:58px;padding:0 11px;gap:8px;background:rgba(248,251,255,.94);border-bottom:1px solid rgba(223,231,243,.9);backdrop-filter:blur(12px)}
  .v2-customer .v2-mobile-logo{width:38px;height:38px;object-fit:contain;flex:0 0 38px}
  .v2-customer .v2-mobile-header>div:nth-child(2){display:flex;flex-direction:column;line-height:1.06;min-width:0}
  .v2-customer .v2-mobile-header strong{font-size:12px;color:#103469;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v2-customer .v2-mobile-header small{font-size:8px;color:#76849a;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v2-customer .v2-mobile-header .icon-btn{width:36px;height:36px;border-radius:12px;font-size:18px}
  .v2-customer .v2-main{width:100%;padding:8px 10px 52px}
  .v2-customer .v2-hero{grid-template-columns:86px minmax(0,1fr);min-height:152px;border-radius:20px}
  .v2-customer .v2-logo-panel{border-radius:20px 0 0 20px;padding:4px;background:#fff;border-width:2px}
  .v2-customer .v2-logo-panel::after{inset:7px 7px 7px 7px;border-radius:14px 0 0 14px}.v2-customer .v2-logo-panel img{content:url('/static/images/logo/bctech-canteen-v2-icon.png');max-height:142px;width:100%;height:100%;object-fit:contain}
  .v2-customer .v2-hero-content{padding:18px 11px 15px 13px;align-self:center;overflow:hidden}
  .v2-customer .v2-welcome{font-size:7.5px;margin-bottom:7px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v2-customer .v2-hero h1{font-size:clamp(11px,3.25vw,14px);line-height:1.1;letter-spacing:-.35px;white-space:nowrap;overflow:visible;margin:0;font-weight:900}
  .v2-customer .v2-hero p{font-size:8.4px;line-height:1.35;margin-top:7px;max-width:100%;color:#dceaff}
  .v2-customer .v2-feature-pills{margin-top:9px;gap:5px;flex-wrap:nowrap;overflow:hidden}
  .v2-customer .v2-feature-pills span{font-size:7.2px;min-height:25px;padding:0 7px;gap:3px;white-space:nowrap}
  .v2-customer .v2-feature-pills span:nth-child(3){display:none}
  .v2-customer .v2-hero-visual{display:none}
  .v2-customer .v2-search{width:100%;height:48px;margin:11px 0 8px;border-radius:16px;padding-left:12px;padding-right:5px}
  .v2-customer .v2-search input{font-size:12px;padding:0 7px;min-width:0}
  .v2-customer .v2-scan-btn{font-size:0;padding:8px 10px}.v2-customer .v2-scan-btn::after{content:'QR';font-size:9px}
  .v2-customer .category-tabs{margin-right:-10px;padding-right:14px;gap:7px}
  .v2-customer .category-tabs button{min-height:36px;padding:0 11px;font-size:10px;box-shadow:none}
  .v2-customer .section-title{margin:17px 0 9px}
  .v2-customer .section-title span{font-size:8px;letter-spacing:1.5px}
  .v2-customer .section-title h2{font-size:20px;margin-top:2px}
  .v2-customer .v2-see-all{font-size:10px}
  .v2-customer .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .v2-customer .product-card{border-radius:17px;box-shadow:0 6px 17px rgba(31,65,113,.055)}
  .v2-customer .product-img-wrap{aspect-ratio:1.18}
  .v2-customer .product-body{padding:9px 9px 10px}
  .v2-customer .product-cat{font-size:7.5px}.v2-customer .product-body h3{font-size:11.5px;margin:3px 0}
  .v2-customer .product-body p{display:none}
  .v2-customer .price-row strong{font-size:13px}.v2-customer .old-price{font-size:9px}
  .v2-customer .add-btn{width:32px;height:32px;font-size:18px}.v2-customer .qty-control button{width:27px;height:31px}.v2-customer .qty-control b{font-size:10px;min-width:18px}
  .v2-customer .badge{left:7px;top:7px;font-size:7px;padding:4px 6px}
  .v2-customer .v2-benefits{grid-template-columns:1fr 1fr;gap:5px;margin-top:12px;padding:6px}
  .v2-customer .v2-benefits>div{min-height:48px;padding:6px 7px;background:#fbfdff}
  .v2-customer .v2-benefits>div:not(:last-child){border-right:0}
  .v2-customer .v2-benefits b{font-size:17px}.v2-customer .v2-benefits strong{font-size:9px}.v2-customer .v2-benefits small{font-size:7.5px}
  .v2-customer .cart-fab{bottom:77px;height:59px;width:calc(100% - 20px);border-radius:18px}
  .v2-customer .sheet{max-height:92vh}
}
@media(max-width:380px){
  .v2-customer .v2-hero{grid-template-columns:76px minmax(0,1fr);min-height:142px}
  .v2-customer .v2-hero-content{padding-left:10px;padding-right:8px}
  .v2-customer .v2-hero h1{font-size:11px;letter-spacing:-.45px}
  .v2-customer .v2-hero p{font-size:7.7px}
  .v2-customer .v2-feature-pills span{font-size:6.8px;padding:0 6px}
}


/* =========================================================
   BCTech Canteen V2.0.2 - Staff/Admin/Seller UI Sync
   ========================================================= */
.staff-v2{
  --s-blue-950:#05265d;--s-blue-900:#073d8e;--s-blue-800:#0d58c2;--s-blue-700:#2a7ef0;
  --s-bg:#f4f8ff;--s-card:#ffffff;--s-line:#dfe8f4;--s-ink:#14305f;--s-muted:#7486a1;
  background:
    radial-gradient(circle at 100% 0,rgba(40,120,255,.10),transparent 22%),
    linear-gradient(180deg,#f7fbff 0,#f4f8fe 45%,#f7faff 100%);
  color:var(--s-ink);
}
.staff-v2 .sidebar{
  background:linear-gradient(180deg,#06285f 0%,#083b89 44%,#0a57be 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:18px 0 40px rgba(6,40,95,.18);
}
.staff-v2 .side-brand{
  margin:12px 12px 16px;
  padding:14px 14px 12px;
  border-radius:24px;
  background:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 10px 22px rgba(3,20,53,.12);
  backdrop-filter:blur(8px);
}
.staff-v2 .side-brand-logo{width:150px;height:86px;max-width:100%;margin:0 0 0 -3px;filter:drop-shadow(0 10px 16px rgba(4,27,78,.25))}
.staff-v2 .side-brand>div:last-child b{font-size:18px;color:#fff;letter-spacing:-.2px}
.staff-v2 .side-brand>div:last-child small{color:#d4e5ff;font-size:11px}
.staff-v2 .sidebar nav{padding:0 12px}
.staff-v2 .sidebar nav a{
  color:#e6f0ff;border-radius:16px;padding:12px 14px;margin:3px 0;
  font-weight:800;transition:.18s ease;background:transparent;
}
.staff-v2 .sidebar nav a:hover{background:rgba(255,255,255,.10);transform:translateX(2px)}
.staff-v2 .sidebar nav a.active,.staff-v2 .sidebar nav a[class]:not([class=""]){
  background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 10px 20px rgba(3,21,56,.08);
}
.staff-v2 .sidebar nav a i{background:#ff7848;color:#fff}
.staff-v2 .side-user{
  margin:12px; border-radius:18px; padding:12px; background:rgba(4,24,64,.28);
  border:1px solid rgba(255,255,255,.10); color:#fff;
}
.staff-v2 .side-user small{color:#c7dcff}.staff-v2 .side-user .avatar{background:linear-gradient(135deg,#7cc2ff,#d8eeff);color:#083d8e}
.staff-v2 .side-user button{background:rgba(255,255,255,.12);color:#fff;border-radius:12px}
.staff-v2 .staff-main{background:transparent}
.staff-v2 .staff-top{
  position:sticky;top:0;z-index:8;
  background:rgba(247,251,255,.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(211,223,241,.9);
  box-shadow:0 8px 18px rgba(28,67,124,.06);
}
.staff-v2 .staff-top small{color:#5d88cd;font-weight:900;letter-spacing:2px}
.staff-v2 .staff-top h1{color:#14305f;letter-spacing:-.4px}
.staff-v2 .live-pill{
  background:#fff;border:1px solid #d8e8fb;color:#2c5ea9;box-shadow:0 8px 18px rgba(25,85,174,.08)
}
.staff-v2 .live-pill span{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.15)}
.staff-v2 .panel,.staff-v2 .stat-card,.staff-v2 .order-card,.staff-v2 .delivery-group,.staff-v2 .product-form,.staff-v2 .admin-product-card,.staff-v2 .qr-card,.staff-v2 .tree-campus,.staff-v2 .filter-bar{
  background:rgba(255,255,255,.95);border:1px solid var(--s-line);box-shadow:0 12px 30px rgba(26,66,122,.06)
}
.staff-v2 .panel{border-radius:26px}
.staff-v2 .stat-card{background:linear-gradient(180deg,#ffffff,#f8fbff);border-radius:22px}
.staff-v2 .stat-card small{color:#5f86c5}.staff-v2 .stat-card strong{color:#11448e}
.staff-v2 .dashboard-grid canvas,.staff-v2 .panel canvas{background:transparent}
.staff-v2 .panel-head small,.staff-v2 .panel>small{color:#6d92cb}.staff-v2 .panel-head h2,.staff-v2 .panel h2{color:#173564}
.staff-v2 .bar-mini i{background:linear-gradient(90deg,#0a56c4,#39a1ff)}
.staff-v2 .filter-bar{border-radius:20px;top:88px}
.staff-v2 .status-tabs button{background:#eef5ff;color:#33527f;border:1px solid #deebfb}
.staff-v2 .status-tabs button.active{background:linear-gradient(135deg,#073b8d,#136bdc);color:#fff;border-color:transparent;box-shadow:0 10px 20px rgba(15,88,197,.16)}
.staff-v2 .search-inline{background:#fff;border:1px solid #dce7f4;border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.staff-v2 .order-card{border-radius:24px}
.staff-v2 .order-card.new{border-color:#8fc3ff;box-shadow:0 0 0 3px #edf5ff, 0 10px 24px rgba(31,92,188,.08)}
.staff-v2 .order-head h3,.staff-v2 .order-total strong{color:#15376a}
.staff-v2 .status-chip.received{background:#eaf4ff;color:#1260c9}
.staff-v2 .status-chip.preparing{background:#fff6df;color:#9b6a00}
.staff-v2 .status-chip.ready{background:#ecf8f2;color:#11825f}
.staff-v2 .status-chip.delivering{background:#eef0ff;color:#5856d6}
.staff-v2 .delivery-box{background:#f6faff;border:1px solid #e2ebf7;color:#456282}
.staff-v2 .act-main,.staff-v2 .primary-small{background:linear-gradient(135deg,#073b8d,#146edf);color:#fff;box-shadow:0 8px 18px rgba(14,85,191,.18)}
.staff-v2 .act-good{background:#ebfaf3;color:#147753}.staff-v2 .act-warn{background:#fff2ea;color:#d85d2b}.staff-v2 .act-bad{background:#fdecec;color:#b64248}
.staff-v2 .delivery-intro{background:linear-gradient(135deg,#082f71,#0f5bc4);box-shadow:0 14px 30px rgba(13,81,177,.18)}
.staff-v2 .delivery-group-head{background:#f7fbff}
.staff-v2 .admin-product-card img,.staff-v2 .qr-card img{background:#f5f9ff;border-color:#e0ebf8}
.staff-v2 .toggle-on{background:#eaf8f1;color:#117553}.staff-v2 .toggle-off{background:#fff0f0;color:#b83b44}
.staff-v2 .location-kind button{background:#edf5ff;color:#33527f}.staff-v2 .location-kind button.active{background:linear-gradient(135deg,#083b8d,#136adc);color:#fff}
.staff-v2 .tree-room{background:#eef5ff;color:#174581;border:1px solid #dbe8fa}
.staff-v2 .primary-btn{background:linear-gradient(120deg,#0a56c4,#1f83f0);box-shadow:0 10px 25px rgba(22,102,207,.24)}
.staff-v2 .secondary-btn,.staff-v2 .ghost-btn{background:#edf5ff;color:#25539c}
.staff-v2 input:focus,.staff-v2 select:focus,.staff-v2 textarea:focus{border-color:#7eb2ff;box-shadow:0 0 0 3px rgba(47,134,255,.12)}
.staff-v2 .toast{background:linear-gradient(135deg,#072d70,#0d59bd)}
@media(max-width:760px){
  .staff-v2 .sidebar{box-shadow:14px 0 34px rgba(6,40,95,.24)}
  .staff-v2 .side-brand{margin:10px;padding:12px;border-radius:20px}
  .staff-v2 .side-brand-logo{width:132px;height:76px}
  .staff-v2 .staff-top{background:rgba(247,251,255,.94)}
  .staff-v2 .filter-bar{top:74px}
}


/* =========================================================
   BCTech Canteen V2.0.3 - Staff logo card sync
   ========================================================= */
.staff-v2 .side-brand.side-brand-logo-only{
  display:flex;align-items:center;justify-content:center;
  margin:14px 14px 18px;padding:10px 10px 8px;
  min-height:132px;
  background:linear-gradient(160deg,#ffffff 0%,#f7fbff 100%);
  border:2px solid #2f86ff;
  border-radius:24px;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.92),0 14px 28px rgba(2,35,89,.18);
  backdrop-filter:none;
  overflow:hidden;
}
.staff-v2 .side-brand.side-brand-logo-only::after{
  content:"";position:absolute;inset:7px;border:1px solid rgba(47,134,255,.20);border-radius:17px;pointer-events:none
}
.staff-v2 .side-brand-logo-only .side-brand-logo{
  position:relative;z-index:1;display:block;
  width:100%;height:108px;max-width:100%;margin:0;
  object-fit:contain;object-position:center;
  filter:drop-shadow(0 8px 14px rgba(6,69,165,.12));
}
.staff-v2 .side-brand-logo-only + nav{margin-top:2px}
@media(max-width:760px){
  .staff-v2 .side-brand.side-brand-logo-only{margin:10px 10px 14px;padding:8px;min-height:116px;border-radius:20px}
  .staff-v2 .side-brand.side-brand-logo-only::after{inset:6px;border-radius:14px}
  .staff-v2 .side-brand-logo-only .side-brand-logo{width:100%;height:94px;margin:0}
}


/* =========================================================
   BCTech Canteen V2.0.4 - Mobile polish + login refresh
   ========================================================= */
.login-v2-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 15% 10%, rgba(40,120,255,.16), transparent 22%),
    radial-gradient(circle at 85% 8%, rgba(255,255,255,.75), transparent 20%),
    linear-gradient(180deg,#eef5ff 0%,#f8fbff 44%,#f4f8ff 100%);
  display:flex;align-items:center;justify-content:center;padding:22px;
}
.login-v2-shell{width:min(1040px,100%);display:grid;grid-template-columns:minmax(280px,420px) minmax(360px,1fr);gap:28px;align-items:center}
.login-v2-hero{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.56));border:1px solid rgba(255,255,255,.86);border-radius:34px;padding:42px 28px 34px;text-align:center;box-shadow:0 18px 40px rgba(28,67,124,.09);overflow:hidden}
.login-v2-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(41,124,255,.16),transparent 25%),radial-gradient(circle at bottom left,rgba(41,124,255,.10),transparent 22%);pointer-events:none}
.login-v2-orb{position:absolute;left:22px;right:22px;top:18px;height:220px;border-radius:28px;background:linear-gradient(180deg,rgba(213,229,255,.78),rgba(241,247,255,.42));border:1px solid rgba(255,255,255,.65)}
.login-v2-logo-wrap{position:relative;z-index:1;width:188px;height:188px;margin:18px auto 18px;border-radius:50%;background:#fff;border:1px solid #e4ebf8;box-shadow:inset 0 0 0 8px rgba(246,249,255,.9),0 10px 28px rgba(22,77,162,.09);display:grid;place-items:center}
.login-v2-logo{width:112px;height:112px;object-fit:contain}
.login-v2-hero h1{position:relative;z-index:1;margin:12px 0 8px;font-size:54px;line-height:1.04;letter-spacing:-1.6px;color:#132d63}
.login-v2-hero p{position:relative;z-index:1;margin:0;color:#5b6f93;font-size:17px;font-weight:500}
.login-v2-card{background:#fff;border:1px solid #e4ebf6;border-radius:34px;padding:34px 34px 28px;box-shadow:0 20px 44px rgba(28,67,124,.10)}
.login-v2-card-head small{display:block;font-size:11px;letter-spacing:2px;font-weight:900;color:#6c8eca;margin-bottom:8px}
.login-v2-card-head h2{margin:0;color:#153365;font-size:34px;letter-spacing:-.8px}
.login-v2-card-head p{margin:8px 0 22px;color:#6e7f98;font-size:15px;line-height:1.5}
.login-v2-field{position:relative;margin-bottom:16px}
.login-v2-field input{height:58px;border-radius:18px;padding:0 52px 0 50px;border:1px solid #dbe5f3;background:#fff;font-size:16px}
.login-v2-field .field-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:19px;line-height:1;pointer-events:none;opacity:.85}
.login-v2-field .field-toggle{position:absolute;right:15px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#24457c;font-size:18px;width:30px;height:30px;border-radius:10px}
.login-v2-actions{display:flex;justify-content:flex-end;margin:-4px 0 8px}
.login-v2-actions a{font-size:14px;font-weight:800;color:#1e66d8}
.login-v2-submit{margin-top:6px;height:58px;border-radius:18px;font-size:20px;background:linear-gradient(120deg,#0b56c5,#1b82f0);box-shadow:0 14px 28px rgba(18,101,214,.22)}
.login-v2-note{margin-top:15px;padding:12px 14px;border-radius:16px;background:#f5f8fe;border:1px solid #e3ebf7;font-size:14px;color:#48617f;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.login-v2-note span{font-weight:700}.login-v2-note b{color:#12386d}
.login-v2-footer{margin-top:18px;text-align:center;color:#7b8ba2;font-size:13px}
.error-text{min-height:18px;color:#c53d48;font-weight:800;font-size:13px;margin-top:2px;margin-bottom:8px}

@media(max-width:760px){
  .login-v2-body{padding:14px;background:linear-gradient(180deg,#f1f6ff 0%,#f7fbff 100%)}
  .login-v2-shell{grid-template-columns:1fr;gap:14px;max-width:520px}
  .login-v2-hero{padding:28px 18px 16px;border-radius:28px}
  .login-v2-orb{height:158px;left:16px;right:16px;top:14px}
  .login-v2-logo-wrap{width:132px;height:132px;margin:10px auto 14px}
  .login-v2-logo{width:76px;height:76px}
  .login-v2-hero h1{font-size:31px;letter-spacing:-1px;margin:8px 0 5px}
  .login-v2-hero p{font-size:12px}
  .login-v2-card{padding:22px 18px 18px;border-radius:26px}
  .login-v2-card-head h2{font-size:28px}
  .login-v2-card-head p{font-size:13px;margin-bottom:18px}
  .login-v2-field input{height:52px;border-radius:16px;font-size:15px;padding-left:46px;padding-right:46px}
  .login-v2-submit{height:52px;border-radius:16px;font-size:18px}
  .login-v2-note{font-size:12px;padding:11px 12px}
  .login-v2-footer{font-size:12px}
}

@media(max-width:760px){
  .v2-customer .v2-mobile-header{height:52px;padding:0 10px;gap:7px}
  .v2-customer .v2-mobile-logo{width:32px;height:32px;flex-basis:32px}
  .v2-customer .v2-mobile-header strong{font-size:11px}
  .v2-customer .v2-mobile-header small{font-size:7.2px;margin-top:2px}
  .v2-customer .v2-mobile-header .icon-btn{width:34px;height:34px;border-radius:11px;font-size:16px}
  .v2-customer .v2-main{padding:7px 9px 50px}
  .v2-customer .v2-hero{grid-template-columns:72px minmax(0,1fr);min-height:128px;border-radius:18px}
  .v2-customer .v2-logo-panel{border-radius:18px 0 0 18px;padding:3px}
  .v2-customer .v2-logo-panel::after{inset:6px;border-radius:12px 0 0 12px}
  .v2-customer .v2-logo-panel img{max-height:112px}
  .v2-customer .v2-hero-content{padding:14px 9px 12px 10px}
  .v2-customer .v2-welcome{font-size:6.8px;letter-spacing:.01em;margin-bottom:5px}
  .v2-customer .v2-hero h1{font-size:clamp(10px,3.05vw,12.4px);line-height:1.05;letter-spacing:-.28px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v2-customer .v2-hero p{font-size:7.4px;line-height:1.3;margin-top:5px}
  .v2-customer .v2-feature-pills{margin-top:7px;gap:4px}
  .v2-customer .v2-feature-pills span{font-size:6.3px;min-height:22px;padding:0 6px}
  .v2-customer .v2-feature-pills span:nth-child(2){max-width:46%}
  .v2-customer .v2-search{height:44px;margin:10px 0 7px;border-radius:15px;padding-left:11px;padding-right:4px}
  .v2-customer .v2-search input{font-size:11.5px}
  .v2-customer .v2-scan-btn{padding:7px 8px}
}

@media(max-width:390px){
  .v2-customer .v2-hero{grid-template-columns:66px minmax(0,1fr);min-height:122px}
  .v2-customer .v2-logo-panel img{max-height:98px}
  .v2-customer .v2-hero-content{padding:12px 8px 10px 9px}
  .v2-customer .v2-hero h1{font-size:10px}
  .v2-customer .v2-hero p{font-size:7px}
  .v2-customer .v2-feature-pills span{font-size:6px;padding:0 5px}
}


/* =========================================================
   BCTech Canteen V2.0.5 - Compact mobile hero banner
   ========================================================= */
@media(max-width:760px){
  .v2-customer .v2-hero{grid-template-columns:64px minmax(0,1fr);min-height:102px;border-radius:16px;align-items:center;overflow:hidden}
  .v2-customer .v2-logo-panel{align-self:center;height:88px;min-height:88px;border-radius:16px 0 0 16px;padding:2px 3px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.8),8px 0 18px rgba(2,35,89,.12)}
  .v2-customer .v2-logo-panel::after{inset:5px;border-radius:11px 0 0 11px}
  .v2-customer .v2-logo-panel img{max-height:78px}
  .v2-customer .v2-hero-content{padding:10px 8px 9px 8px}
  .v2-customer .v2-welcome{font-size:6.1px;margin-bottom:4px;line-height:1.1}
  .v2-customer .v2-hero h1{font-size:clamp(9.2px,2.75vw,11.2px);line-height:1.04;letter-spacing:-.22px}
  .v2-customer .v2-hero p{font-size:6.9px;line-height:1.2;margin-top:4px}
  .v2-customer .v2-feature-pills{margin-top:5px;gap:4px}
  .v2-customer .v2-feature-pills span{font-size:5.8px;min-height:19px;padding:0 5px;border-width:1px}
  .v2-customer .v2-feature-pills span:nth-child(3){display:none}
}
@media(max-width:390px){
  .v2-customer .v2-hero{grid-template-columns:60px minmax(0,1fr);min-height:96px}
  .v2-customer .v2-logo-panel{height:82px;min-height:82px}
  .v2-customer .v2-logo-panel img{max-height:72px}
  .v2-customer .v2-hero-content{padding:9px 7px 8px 7px}
  .v2-customer .v2-hero h1{font-size:9px}
  .v2-customer .v2-hero p{font-size:6.6px}
  .v2-customer .v2-feature-pills span{font-size:5.5px;padding:0 4px;min-height:18px}
}


/* =========================================================
   BCTech Canteen V2.0.6 - Admin location CRUD
   ========================================================= */
.location-editor .panel-head,.location-tree-panel .panel-head{margin-bottom:8px}
.location-cancel{padding:9px 12px;white-space:nowrap}
.location-kind{flex-wrap:wrap}
.location-kind button{border:1px solid #dbe8fa!important;background:#eef5ff!important;color:#31547f!important;padding:9px 11px!important}
.location-kind button.active{background:linear-gradient(135deg,#083b8d,#136adc)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 7px 16px rgba(19,106,220,.15)}
.tree-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}
.tree-row>div:first-child{display:flex;flex-direction:column;min-width:0}.tree-row small{font-size:9px;color:#8a99ad;margin-top:2px}
.tree-actions{display:inline-flex;gap:5px;flex:0 0 auto}.tree-actions button{border:0;border-radius:9px;padding:6px 8px;font-size:9px;font-weight:900}
.tree-edit{background:#eaf4ff;color:#1763c4}.tree-delete{background:#fdecec;color:#b73f48}
.tree-actions button:hover{filter:brightness(.97);transform:translateY(-1px)}
.tree-location{margin:7px 0 0 14px;padding:7px 0 0 10px;border-left:2px solid #e7eef8;font-size:12px;color:#315277}
.tree-rooms{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.tree-room-manage{display:inline-flex!important;align-items:center;gap:5px;padding:5px 5px 5px 8px!important}
.tree-room-manage .tree-actions button{padding:4px 6px;font-size:8px}
.empty-state{padding:24px;text-align:center;color:#8390a3;background:#f8fbff;border:1px dashed #dce8f7;border-radius:16px}
@media(max-width:760px){.tree-row{align-items:flex-start}.tree-actions button{padding:6px 7px}.location-admin{gap:10px}.location-editor .panel-head{align-items:flex-start}}

/* BCTech Canteen V3.0 - payOS payment */
.payos-settings{margin:18px 0;padding:15px;border:1px solid #dbe8fa;border-radius:18px;background:#f7fbff}.payos-settings h3{margin:0 0 6px;color:#124a9b}
.payos-page{margin:0;min-height:100vh;background:linear-gradient(180deg,#edf5ff,#f8fbff);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#15305f;display:flex;justify-content:center;padding:18px}.payos-shell{width:min(460px,100%)}.payos-brand{display:flex;align-items:center;gap:10px;padding:12px 5px 16px}.payos-brand img{width:46px;height:46px;object-fit:contain}.payos-brand div{display:flex;flex-direction:column}.payos-brand b{font-size:20px}.payos-brand small{font-size:11px;color:#71829c}.payos-card{background:#fff;border:1px solid #dfe9f7;border-radius:30px;padding:25px 22px;text-align:center;box-shadow:0 20px 45px rgba(22,68,139,.10)}.payos-state-icon{width:54px;height:54px;margin:0 auto 8px;border-radius:18px;display:grid;place-items:center;background:#edf5ff;color:#1466d8;font-size:25px;font-weight:900}.payos-state-icon.paid{background:#e8f9f1;color:#10a06a}.payos-card>small{letter-spacing:2px;font-size:9px;font-weight:900;color:#6d8fc4}.payos-card h1{margin:5px 0 18px;font-size:23px}.payos-total-label{margin:0;color:#75849b;font-size:13px}.payos-total{display:block;font-size:36px;color:#0d5ed5;margin:3px 0 15px}.payos-qr-wrap{width:250px;height:250px;max-width:78vw;max-height:78vw;margin:0 auto 12px;padding:9px;border:1px solid #dde8f7;border-radius:24px;background:#fff}.payos-qr-wrap img{width:100%;height:100%;object-fit:contain}.payos-card p{color:#6f809a;font-size:13px}.payos-wait{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:#fff7dc;color:#8c6800;padding:9px 13px;font-size:12px;font-weight:900}.payos-wait i{width:9px;height:9px;border-radius:50%;background:#f4b400}.payos-open,.payos-success a{display:block;margin-top:14px;padding:12px 14px;border-radius:15px;background:linear-gradient(120deg,#0a56c4,#1d82f0);color:#fff;font-weight:900}.payos-check{width:72px;height:72px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#e6f8ef;color:#0b9b65;font-size:40px;font-weight:900}.payos-error{margin-top:12px;padding:10px;border-radius:13px;background:#fff0f0;color:#b53e48}.payos-shell footer{text-align:center;margin-top:13px;color:#7b8b9f;font-size:10px}

.status-chip.pending_payment{background:#fff6dc;color:#946900}.status-chip.paid{background:#e8f8f1;color:#0e8058}.order-card.paid{border-color:#bfead7;box-shadow:0 0 0 2px #effaf5}.payment-badge{font-style:normal;font-size:9px;font-weight:900}


/* BCTech Canteen V3.0.1 - category priority + PWA icon */
.v2-customer #featuredSection{scroll-margin-top:70px}
.v2-customer #featuredGrid>.muted{grid-column:1/-1;background:#fff;border:1px solid #e1e9f4;border-radius:18px;padding:18px;text-align:center}
@media(max-width:760px){.v2-customer #featuredSection{scroll-margin-top:58px}}


/* =========================================================
   BCTech Canteen V4.0 - Campus visibility/default management
   ========================================================= */
.campus-title-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.campus-flag{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.02em}
.campus-flag.default{background:#e7f1ff;color:#0e5fc9;border:1px solid #cfe2ff}.campus-flag.hidden{background:#fff1e7;color:#bd5b20;border:1px solid #ffddc7}
.tree-campus.campus-hidden{background:linear-gradient(180deg,#fafbfd,#f5f7fa);border-style:dashed;opacity:.88}.tree-campus.campus-hidden .tree-building{opacity:.72}
.tree-visibility{background:#eef5ff;color:#1b62bc}.tree-visibility.is-off{background:#e9f8f1;color:#137a56}.tree-default{background:#fff5d8;color:#8a6500}
.campus-actions{flex-wrap:wrap;justify-content:flex-end}.campus-visible-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;padding:10px 12px;border:1px solid #dfe8f4;border-radius:13px;background:#f8fbff}.campus-visible-check input{width:auto!important;margin:0}
@media(max-width:900px){.campus-actions{max-width:210px}.campus-actions button{flex:0 0 auto}}
@media(max-width:760px){.campus-row{flex-direction:column}.campus-actions{max-width:none;width:100%;justify-content:flex-start}.campus-flag{font-size:7px}}

/* =========================================================
   BCTech Canteen V7.0 - Account management & production UI
   ========================================================= */
.user-admin-layout{display:grid;grid-template-columns:minmax(320px,410px) 1fr;gap:16px;align-items:start}.user-create-card{position:sticky;top:100px}.user-search{margin-bottom:12px}.user-list{display:flex;flex-direction:column;gap:9px}.user-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--s-line,#dfe8f4);border-radius:17px;padding:13px;background:#fff}.user-row.is-locked{opacity:.68;background:#fafbfc}.user-avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#dcebff,#f2f7ff);color:#0b58bc;font-weight:900;font-size:18px}.user-main{min-width:0}.user-name-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.user-name-line b{color:#173564}.user-meta{font-size:11px;color:#7a8aa2;margin-top:4px}.role-chip,.state-chip{font-size:9px;font-weight:900;padding:5px 7px;border-radius:999px}.role-admin{background:#ede9fe;color:#6d28d9}.role-seller{background:#eaf4ff;color:#1260c9}.role-delivery{background:#ecf8f2;color:#11825f}.state-chip.on{background:#ecfdf3;color:#11825f}.state-chip.off{background:#fdecec;color:#b64248}.user-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.danger-small{border:0;border-radius:12px;padding:10px 12px;background:#fdecec;color:#b64248;font-size:11px;font-weight:900}.password-page{max-width:620px;margin:16px auto}.password-card{padding:26px!important}.password-card>h2{margin:5px 0}.password-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:20px;background:#eef5ff;font-size:30px;margin-bottom:14px}.password-required{margin:15px 0;padding:12px 14px;border-radius:14px;background:#fff6df;border:1px solid #f6df9d;color:#845b00;font-size:12px;font-weight:800}.password-tip{margin:15px 0 0;text-align:center}.backup-link{display:block;margin:8px 0;padding:12px 14px;border:1px solid #dbe8fa;border-radius:14px;background:#f7fbff;color:#174581;font-size:12px;font-weight:900;text-align:center}.staff-v2 .user-create-card,.staff-v2 .user-list-card,.staff-v2 .password-card{background:rgba(255,255,255,.96);border:1px solid var(--s-line);box-shadow:0 12px 30px rgba(26,66,122,.06)}
@media(max-width:900px){.user-admin-layout{grid-template-columns:1fr}.user-create-card{position:static}.user-row{grid-template-columns:44px 1fr}.user-actions{grid-column:1/-1;justify-content:flex-start;padding-left:56px}}
@media(max-width:560px){.user-row{grid-template-columns:40px 1fr;padding:11px}.user-actions{padding-left:0}.user-actions button{flex:1}.password-card{padding:18px!important}}
