:root{--id-bg:#0a0a0f;--id-bg-secondary:#0f0f1a;--id-surface:#13131f;--id-surface-hover:#1c1c2d;--id-primary:#6366f1;--id-primary-gradient:linear-gradient(135deg, #6366f1 0%, #a855f7 100%);--id-primary-glow:#6366f133;--id-text:#fff;--id-text-muted:#94a3b8;--id-text-faint:#64748b;--id-border:#ffffff14;--id-border-active:#ffffff26;--id-radius:16px;--id-radius-sm:10px;--id-radius-md:12px;--id-transition:.3s cubic-bezier(.4, 0, .2, 1);--id-glass-bg:#ffffff08;--id-glass-border:#ffffff14;--id-glass-hover:#ffffff0f;--id-emerald:#10b981;--id-amber:#f59e0b;--id-rose:#ef4444}.modal-root{z-index:9999;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c;position:fixed;inset:0}.modal-container{z-index:10;justify-content:center;width:100%;display:flex;position:relative}.modal-content{background:#0d0e12;border:1px solid #ffffff14;border-radius:16px;width:100%;overflow:hidden;box-shadow:0 20px 40px #00000080}.modal-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{color:#fff;margin:0;font-size:18px;font-weight:700}.close-btn{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.close-btn:hover{color:#fff;background:#ffffff0d}.modal-body{color:#ffffffb3;padding:24px}.modal-footer{background:#ffffff03;border-top:1px solid #ffffff0d;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f9fafb;--surface:#fff;--glass-bg:#ffffffd9;--glass-border:#f3f4f6;--glass-border-light:#e5e7eb;--primary:#000;--primary-glow:#0000001a;--primary-dim:#f3f4f6;--text-primary:#111827;--text-secondary:#6b7280;--text-faint:#9ca3af;--text-price:#111827;--radius-card:16px;--radius-pill:999px;--shadow-glass:0 8px 30px #0000000f}html,body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:15px;line-height:1.5}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}img{max-width:100%;display:block}.qr-root{background:var(--bg);min-height:100dvh;padding-bottom:calc(140px + env(safe-area-inset-bottom,16px))}.qr-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--glass-border);padding:14px 16px 10px;padding-top:calc(14px + env(safe-area-inset-top,0px));position:sticky;top:0}.qr-header__name{letter-spacing:-.3px;color:var(--text-primary);font-size:18px;font-weight:700}.qr-tabbar{z-index:19;background:var(--surface);border-bottom:1px solid var(--glass-border);scrollbar-width:none;-ms-overflow-style:none;gap:4px;padding:8px 12px;display:flex;position:sticky;top:53px;overflow-x:auto}.qr-tabbar::-webkit-scrollbar{display:none}.qr-tab{border-radius:var(--radius-pill);color:var(--text-secondary);white-space:nowrap;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.qr-tab--active{background:var(--primary-dim);color:var(--primary)}.qr-main{max-width:480px;margin:0 auto;padding:16px 12px 40px;transform:translateZ(0)}.qr-section{margin-bottom:28px}.qr-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.qr-section__title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);font-size:13px;font-weight:600}.qr-section__badge{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:800}.qr-section__badge--veg{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.qr-items{flex-direction:column;gap:16px;display:flex}.qr-root--layout-grid .qr-items{grid-template-columns:1fr;gap:16px;display:grid}.qr-root--layout-list .qr-items{flex-direction:column;gap:16px;display:flex}.qr-root--layout-minimal .qr-items{flex-direction:column;gap:10px;display:flex}.qr-item{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--shadow-glass);padding:16px;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s}.qr-item:active{border-color:var(--primary-glow);transform:scale(.98)}.qr-item__top{align-items:flex-start;gap:10px;display:flex}.qr-item__info{flex:1;min-width:0}.qr-item__name{color:var(--text-primary);margin-bottom:3px;font-size:15px;font-weight:500}.qr-item__desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.qr-item__img{object-fit:cover;border:1px solid var(--glass-border);border-radius:10px;flex-shrink:0;width:64px;height:64px}.qr-item__img--placeholder{display:none}.qr-item__price{color:var(--text-price);font-variant-numeric:tabular-nums;margin-top:8px;font-size:15px;font-weight:600}.qr-root--layout-minimal .qr-item{box-shadow:none;border-radius:12px;padding:12px 14px}.qr-root--layout-minimal .qr-item__desc{-webkit-line-clamp:1;font-size:12px}.qr-root--layout-minimal .qr-item__img{width:52px;height:52px}.qr-root--layout-minimal .qr-item__name,.qr-root--layout-minimal .qr-item__price{font-size:14px}.qr-skeleton{background:linear-gradient(90deg,#00000008 25%,#00000014 50%,#00000008 75%) 0 0/200% 100%;border-radius:6px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.qr-skeleton--header{border-radius:6px;width:160px;height:22px}.qr-skeleton--tab{border-radius:var(--radius-pill);flex-shrink:0;width:72px;height:30px}.qr-skeleton--section-title{width:100px;height:14px;margin-bottom:10px}.qr-item--skeleton{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--shadow-glass);padding:14px}.qr-skeleton--name{width:55%;height:16px;margin-bottom:8px}.qr-skeleton--desc{width:80%;height:12px;margin-bottom:10px}.qr-skeleton--price{width:40px;height:16px}.qr-empty{text-align:center;color:var(--text-secondary);padding:48px 16px;font-size:14px;line-height:1.8}.qr-error{text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:32px;display:flex}.qr-error__icon{margin-bottom:16px;font-size:48px}.qr-error__title{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.qr-error__sub{color:var(--text-secondary);font-size:14px}.qr-footer{text-align:center;color:#ffffff2e;letter-spacing:.3px;padding:24px 0 8px;font-size:11px}.pwa-banner{z-index:100;background:var(--surface);border-top:1px solid var(--glass-border);padding:14px 16px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000014}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pwa-banner__text{color:var(--text-primary);flex:1;align-items:center;gap:10px;min-width:0;font-size:13px;display:flex}.pwa-banner__icon{flex-shrink:0;font-size:20px}.pwa-banner__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.pwa-banner__install{background:var(--primary);color:#fff;border-radius:var(--radius-pill);padding:7px 18px;font-size:13px;font-weight:600;transition:opacity .15s}.pwa-banner__install:active{opacity:.8}.pwa-banner__dismiss{color:var(--text-secondary);padding:4px 6px;font-size:16px}.qr-item__bottom{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.qr-item__price{color:var(--text-price);margin-top:0;font-size:16px;font-weight:700}.qr-add-btn{background:var(--primary-dim);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-pill);padding:4px 16px;font-size:13px;font-weight:700;transition:all .2s}.qr-add-btn:active{background:var(--primary);color:#fff}.qr-qty-control{border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:#ffffff0d;align-items:center;gap:12px;padding:2px 4px;display:flex}.qr-qty-control button{background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:18px;font-weight:500;display:flex}.qr-qty-control span{text-align:center;min-width:14px;font-size:14px;font-weight:700}.qr-sticky-cart{z-index:50;background:var(--primary);border-radius:var(--radius-pill);transform-origin:bottom;border:none;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:fixed;bottom:24px;left:16px;right:16px;box-shadow:0 10px 40px #0000004d}.qr-sticky-cart--bump{animation:.3s cubic-bezier(.175,.885,.32,1.275) cart-bump}@keyframes cart-bump{0%{transform:scale(1)}50%{transform:scale(1.04)translateY(-4px)}to{transform:scale(1)}}.qr-sticky-cart__info p{color:#fffc;margin:0;font-size:13px;font-weight:500}.qr-sticky-cart__total{color:#fff!important;font-size:18px!important;font-weight:800!important}.qr-sticky-cart__btn{color:#000;border-radius:var(--radius-pill);background:#fff;padding:10px 20px;font-size:15px;font-weight:700;box-shadow:0 4px 12px #fff3}.qr-sticky-cart__btn:disabled{opacity:.7}.qr-success-toast,.qr-error-toast{border-radius:var(--radius-pill);z-index:60;white-space:nowrap;padding:12px 24px;font-size:14px;font-weight:600;animation:.3s slide-up;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.qr-success-toast{color:#fff;background:#10b981;box-shadow:0 8px 24px #10b9814d}.qr-stepper{background:var(--primary);border-radius:var(--radius-pill);align-items:center;height:32px;display:inline-flex;overflow:hidden}.qr-stepper__btn{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:100%;font-size:18px;font-weight:600;display:flex}.qr-stepper__btn:active{background:#fff3}.qr-stepper__qty{color:#fff;text-align:center;cursor:pointer;min-width:20px;font-size:14px;font-weight:800}.qr-error-toast{color:#fff;background:#ef4444;box-shadow:0 8px 24px #ef44444d}.qr-search-bar{background:var(--surface);border-bottom:1px solid var(--glass-border);z-index:19;flex-direction:column;gap:12px;padding:12px 16px;display:flex;position:sticky;top:53px}.qr-search-input{border:1px solid var(--glass-border-light);background:var(--bg);border-radius:12px;outline:none;width:100%;padding:12px 16px;font-size:14px}.qr-search-input:focus{border-color:#000}.qr-filter-row{gap:8px;display:flex}.qr-filter-pill{border:1px solid var(--glass-border-light);color:var(--text-secondary);background:0 0;border-radius:20px;align-items:center;gap:6px;padding:6px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.qr-filter-pill--active{background:var(--primary-dim);color:#000;border-color:var(--glass-border-light);font-weight:700}.qr-filter-pill--veg{color:#10b981;border-color:#10b981}.qr-filter-pill--veg.qr-filter-pill--active{background:#10b9811a}.qr-filter-pill--veg-dot{background:#10b981;border-radius:50%;width:8px;height:8px;display:inline-block}.qr-filter-pill--nonveg{color:#ef4444;border-color:#ef4444}.qr-filter-pill--nonveg.qr-filter-pill--active{background:#ef44441a}.qr-filter-pill--nonveg-dot{background:#ef4444;border-radius:50%;width:8px;height:8px;display:inline-block}.qr-floating-menu{z-index:40;transition:bottom .3s cubic-bezier(.175,.885,.32,1.275);position:fixed;left:50%;transform:translate(-50%)}.qr-floating-menu__btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:var(--radius-pill);background:#000000d9;border:1px solid #ffffff1a;align-items:center;gap:8px;padding:10px 24px;font-size:14px;font-weight:600;display:flex;box-shadow:0 8px 30px #00000026}.qr-floating-menu__btn:active{transform:scale(.96)}@media (min-width:420px){.qr-root--layout-grid .qr-items{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-root--layout-grid .qr-item{height:100%}.qr-root--layout-grid .qr-item__top{flex-direction:column}.qr-root--layout-grid .qr-item__img{order:-1;width:100%;height:140px}.qr-root--layout-grid .qr-item__img--placeholder{background-color:var(--primary-dim);background-image:radial-gradient(var(--text-faint) 1px, transparent 1px);opacity:.4;background-size:14px 14px;display:block}}