:root{--green-900: #0e3d2c;--green-700: #00704a;--green-500: #00a862;--green-100: #e7f4ee;--gold: #cba258;--ink: #16211c;--muted: #7d8a83;--line: rgba(14, 61, 44, .08);--danger: #e35d54;--amber-bg: #fff8e9;--amber-ink: #9a6b15;--bg: linear-gradient(160deg, #eef5f1 0%, #e6efe9 45%, #eaf2ee 100%);--glass: rgba(255, 255, 255, .62);--glass-strong: rgba(255, 255, 255, .82);--glass-border: rgba(255, 255, 255, .75);--glass-shadow: 0 8px 32px rgba(14, 61, 44, .1), 0 1.5px 4px rgba(14, 61, 44, .06);--r-lg: 22px;--r-md: 16px;--r-sm: 12px;--safe-b: env(safe-area-inset-bottom, 0px);--spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);background-attachment:fixed;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;font-size:15px;line-height:1.55}.app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:calc(76px + var(--safe-b))}.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.card{border-radius:var(--r-lg);padding:16px;margin-bottom:12px;background:var(--glass-strong);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#00704aeb,#005c3ce0);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#fff;border-bottom:1px solid rgba(255,255,255,.18)}.topbar .back{background:#ffffff29;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1;cursor:pointer}.topbar h1{font-size:17px;margin:0;font-weight:700;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .pill{font-size:12.5px;background:#fff3;border:1px solid rgba(255,255,255,.28);padding:4px 12px;border-radius:20px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:26px;background:linear-gradient(135deg,var(--green-700),var(--green-900));color:#fff;font-size:15px;font-weight:700;padding:13px 22px;cursor:pointer;box-shadow:0 6px 18px #00704a52;transition:transform .16s var(--spring),opacity .15s,box-shadow .2s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;box-shadow:none}.btn.block{width:100%}.btn.ghost{background:#00704a1a;color:var(--green-700);box-shadow:none;border:1px solid rgba(0,112,74,.18)}.btn.small{padding:7px 15px;font-size:13px;font-weight:600}.input{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:15px;background:#ffffffd9;transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px #00a86224}.label{font-size:13px;color:var(--muted);margin:12px 0 6px;display:block;font-weight:500}.muted{color:var(--muted);font-size:13px}.price{color:var(--green-700);font-weight:800}.strike{color:var(--muted);text-decoration:line-through;font-size:12px;margin-left:6px;font-weight:400}.err{color:var(--danger);font-size:13px;margin-top:8px}.center{text-align:center;padding:48px 16px;color:var(--muted)}.spinner{text-align:center;padding:36px;color:var(--muted)}.section{padding:14px 16px}.tag{display:inline-flex;align-items:center;font-size:11px;padding:2px 8px;border-radius:8px;font-weight:600}.tag.green{background:var(--green-100);color:var(--green-700)}.tag.gray{background:#0000000f;color:#97a09b}.tag.save{background:#fdeeee;color:var(--danger)}.badge{font-size:11.5px;padding:3px 10px;border-radius:9px;font-weight:700}.badge.wait{background:var(--amber-bg);color:var(--amber-ink)}.badge.doing{background:#e7f0fd;color:#2464c7}.badge.done{background:var(--green-100);color:var(--green-700)}.badge.fail{background:#fdecea;color:var(--danger)}.mask{position:fixed;inset:0;background:#0a19126b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;z-index:60;animation:fadeIn .18s ease}.sheet{width:100%;max-width:480px;background:var(--glass-strong);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);border:1px solid var(--glass-border);border-bottom:none;border-radius:24px 24px 0 0;padding:20px 18px calc(20px + var(--safe-b));max-height:84vh;overflow-y:auto;animation:slideUp .28s var(--spring)}.sheet .grabber{width:40px;height:4.5px;border-radius:3px;background:#00000024;margin:-6px auto 12px}@keyframes slideUp{0%{transform:translateY(48px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.opt-group{margin:14px 0}.opt-group .gtitle{font-size:13px;color:var(--muted);margin-bottom:8px;font-weight:600}.opts{display:flex;flex-wrap:wrap;gap:9px}.opt{padding:9px 15px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:#ffffffbf;font-size:14px;cursor:pointer;transition:all .15s var(--spring)}.opt.active{border-color:var(--green-500);background:var(--green-100);color:var(--green-900);font-weight:700;transform:scale(1.03)}.stepper{display:inline-flex;align-items:center;gap:13px}.stepper button{width:29px;height:29px;border-radius:50%;border:1.5px solid var(--green-500);background:#fff;color:var(--green-700);font-size:16px;font-weight:700;cursor:pointer;transition:transform .14s var(--spring)}.stepper button:active{transform:scale(.88)}.stepper .plus{background:var(--green-700);color:#fff;border-color:var(--green-700)}.bottombar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:40;display:flex;align-items:center;gap:12px;padding:12px 16px calc(12px + var(--safe-b));background:var(--glass);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border-top:1px solid var(--glass-border)}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;z-index:35;padding-bottom:var(--safe-b);background:var(--glass);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border-top:1px solid var(--glass-border)}.tabbar a{flex:1;text-align:center;padding:11px 0 9px;color:var(--muted);text-decoration:none;font-size:12.5px;font-weight:600}.tabbar a.active{color:var(--green-700)}.tabbar .ticon{display:block;font-size:19px;margin-bottom:1px}.hero{min-height:100vh;background:radial-gradient(120% 60% at 50% -8%,rgba(0,168,98,.5),transparent 60%),linear-gradient(165deg,#0e3d2c,#00704a 55%,#0a5238);padding:0 20px calc(30px + var(--safe-b));color:#fff}.hero .greet{padding:68px 4px 26px}.hero .greet h2{font-size:30px;margin:0 0 6px;font-weight:800;letter-spacing:1px}.hero .greet p{margin:0;opacity:.82;font-size:14px}.hero-card{border-radius:var(--r-lg);background:#ffffff24;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.25);box-shadow:0 10px 32px #0000002e;padding:20px 18px;margin-bottom:14px;color:#fff;cursor:pointer;transition:transform .18s var(--spring)}.hero-card:active{transform:scale(.97)}.hero-card .hc-title{font-size:19px;font-weight:800;display:flex;align-items:center;gap:8px}.hero-card .hc-sub{font-size:13px;opacity:.8;margin-top:4px}.hero-card.primary{background:linear-gradient(135deg,#cba25852,#ffffff24);border-color:#cba25880}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hero .foot{text-align:center;font-size:12px;opacity:.6;margin-top:26px;line-height:1.8}.searchbar{display:flex;align-items:center;gap:8px;background:#ffffffd9;border:1px solid var(--line);border-radius:14px;padding:10px 13px}.searchbar input{border:none;outline:none;background:none;flex:1;font-size:14.5px}.store-card{border-radius:var(--r-lg);padding:15px 16px;margin-bottom:11px;background:var(--glass-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);cursor:pointer;transition:transform .16s var(--spring)}.store-card:active{transform:scale(.98)}.store-card .name{font-weight:700;font-size:15.5px;display:flex;align-items:center;gap:6px}.store-card .meta{display:flex;justify-content:space-between;margin-top:7px;font-size:12.5px;color:var(--muted)}.menu-head{position:sticky;top:0;z-index:30;padding:12px 16px 10px;background:var(--glass);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border-bottom:1px solid var(--glass-border)}.menu-head .store-line{display:flex;align-items:center;gap:8px;margin-bottom:9px}.menu-head .sname{font-weight:800;font-size:16px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-body{display:flex;min-height:calc(100vh - 120px)}.cat-rail{width:88px;flex-shrink:0;position:sticky;top:118px;align-self:flex-start;max-height:calc(100vh - 190px);overflow-y:auto;padding:6px 0 90px}.cat-rail .citem{padding:13px 10px;font-size:12.5px;color:var(--muted);cursor:pointer;border-left:3px solid transparent;line-height:1.35}.cat-rail .citem.active{color:var(--green-900);font-weight:800;border-left-color:var(--green-500);background:linear-gradient(90deg,rgba(0,168,98,.12),transparent)}.prod-list{flex:1;padding:8px 14px 110px 6px;min-width:0}.prod{display:flex;gap:12px;padding:13px;border-radius:var(--r-lg);margin-bottom:10px;background:var(--glass-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.prod img{width:74px;height:74px;border-radius:50%;object-fit:cover;background:#f1f4f2;box-shadow:0 4px 12px #0e3d2c24}.prod .pinfo{flex:1;min-width:0}.prod .pname{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prod.soldout{opacity:.55;filter:grayscale(.8)}.prod .addbtn{align-self:flex-end}.cart-fab{position:fixed;left:18px;bottom:calc(20px + var(--safe-b));z-index:45;width:54px;height:54px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--green-500),var(--green-700));color:#fff;font-size:22px;box-shadow:0 8px 24px #00704a73;cursor:pointer;transition:transform .18s var(--spring)}.cart-fab:active{transform:scale(.9)}.cart-fab .cnt{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:11.5px;font-weight:800;line-height:20px}.drawer-item{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.drawer-item img{width:48px;height:48px;border-radius:50%;object-fit:cover}.drawer-item .di-info{flex:1;min-width:0}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{border-radius:var(--r-md);border:1.5px solid var(--line);background:#ffffffb3;padding:13px;text-align:center;cursor:pointer;transition:all .16s var(--spring)}.mode-card.active{border-color:var(--green-500);background:var(--green-100);transform:scale(1.02)}.mode-card .mc-title{font-weight:800;font-size:15px}.mode-card .mc-sub{font-size:11.5px;color:var(--muted);margin-top:2px}.notice{border-radius:var(--r-md);background:var(--amber-bg);color:var(--amber-ink);font-size:12.5px;padding:11px 13px;line-height:1.7;margin-bottom:12px}.timeline{margin:6px 0 2px;padding-left:4px}.tl-item{display:flex;gap:12px;position:relative;padding-bottom:18px}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";position:absolute;left:7px;top:18px;bottom:0;width:2px;background:var(--line)}.tl-item:last-child:before{display:none}.tl-dot{width:16px;height:16px;border-radius:50%;background:#d7e0db;flex-shrink:0;margin-top:2px}.tl-item.on .tl-dot{background:var(--green-500);box-shadow:0 0 0 4px #00a8622e}.tl-item .tl-label{font-size:14px;color:var(--muted)}.tl-item.on .tl-label{color:var(--ink);font-weight:700}.token-card{border-radius:var(--r-lg);background:linear-gradient(140deg,#00a86229,#cba25824);border:1.5px dashed var(--green-500);padding:20px 16px;text-align:center;margin-top:12px}.token-card .tk-label{font-size:12.5px;color:var(--green-700);font-weight:700;letter-spacing:2px}.token-card .tk-value{font-size:23px;font-weight:900;color:var(--green-900);margin:8px 0 12px;word-break:break-all}
