@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(60px);opacity:.4}to{transform:none;opacity:1}}:root{--green:#1f4a38;--green-deep:#143226;--green-soft:#2e5f49;--cream:#f6f2ea;--cream-2:#efe9dd;--card:#ffffff;--gold:#b98e4f;--gold-light:#d8bc8a;--red:#b03a2e;--ink:#2b2822;--muted:#9a938a;--line:#eae3d6;--serif:"Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", sans-serif;--r-card:16px;--r-sm:14px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{background:#e7e0d2}body{font-family:var(--sans);color:var(--ink);font-size:14px;line-height:1.5}#app,.page{min-height:100vh;background:var(--cream)}#app{max-width:430px;margin:0 auto;position:relative;box-shadow:0 0 40px rgba(31,74,56,.12)}button,input,textarea{font-family:inherit;font-size:14px}button{border:0;background:0 0;cursor:pointer;color:inherit}input,textarea{color:var(--ink)}img{display:block}.page.no-tab{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.navbar,.navbar .back{display:flex;align-items:center}.navbar{position:sticky;top:0;z-index:30;gap:8px;padding:14px 16px 10px;background:rgba(246,242,234,.92);backdrop-filter:blur(10px)}.navbar .back{width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--line);font-size:20px;line-height:1;color:var(--green);justify-content:center;flex:0 0 32px}.navbar .title{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:2px;color:var(--green-deep)}.nav-logo{height:26px}.home-logo-text,.nav-logo-text{font-family:var(--serif);font-weight:800;color:var(--green);letter-spacing:2px}.home-head{position:relative;padding:14px 16px 16px;background:radial-gradient(120% 90%at 90% -20%,rgba(185,142,79,.28),transparent 55%),linear-gradient(160deg,var(--green-deep) 0%,var(--green) 62%,#295844 100%),var(--green);color:#f5efe2;overflow:hidden}.home-head::after,.home-top{display:flex;align-items:center}.home-head::after{content:"蜗牛";position:absolute;right:14px;top:14px;width:34px;height:34px;background:var(--red);color:#f2e8d5;border-radius:6px;font-family:var(--serif);font-size:11px;font-weight:700;justify-content:center;letter-spacing:1px;writing-mode:vertical-rl;line-height:1.1;box-shadow:0 3px 8px rgba(0,0,0,.25);opacity:.92}.home-top{gap:10px;position:relative}.home-logo img{height:36px;width:36px;border-radius:10px;padding:2px}.home-logo-text{font-size:18px;color:#f5efe2}.home-name{font-family:var(--serif);font-size:20px;font-weight:800;letter-spacing:4px;color:#f8f3e6}.home-slogan{font-size:10px;letter-spacing:2px;color:rgba(245,239,226,.75);margin-top:2px}.store-bar{position:relative;z-index:2;margin-top:12px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.12);border:1px solid rgba(216,188,138,.35);color:#f5efe2;padding:5px 12px;border-radius:999px;font-size:11px;cursor:pointer;max-width:100%}.store-bar .name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-bar .dist{color:var(--gold-light)}.home-body{position:relative;z-index:3;padding:14px;background:var(--cream)}.hero-banner{position:relative;overflow:hidden;border-radius:18px;background:radial-gradient(120% 120%at 10% 10%,rgba(255,255,255,.55)0,transparent 45%),radial-gradient(90% 90%at 90% 90%,rgba(78,164,165,.35)0,transparent 50%),radial-gradient(70% 70%at 70% 20%,rgba(120,200,200,.28)0,transparent 45%),linear-gradient(135deg,#d8eeef 0,#b8dde0 45%,#a3d2d6 100%);color:#1a4a4d;padding:22px 18px 20px;cursor:pointer;box-shadow:0 8px 22px rgba(78,164,165,.18)}.hero-banner .hb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}.hero-banner .hb-inner{position:relative;z-index:2}.hero-banner .hb-title{font-family:var(--serif);font-size:22px;font-weight:800;letter-spacing:3px;line-height:1.25;color:#124042}.hero-banner .hb-sub{font-size:11.5px;color:#2d6b6e;margin-top:8px;letter-spacing:1px;display:inline-block;padding:4px 10px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.7);border-radius:999px}.hero-banner .hb-desc{font-size:13px;color:#1f5e61;margin-top:10px;font-weight:600}.hero-banner .hb-illu{position:absolute;right:8px;bottom:6px;width:100px;height:76px;display:flex;align-items:flex-end;justify-content:flex-end;opacity:.92;pointer-events:none}.hero-banner .hb-btn{display:inline-flex;align-items:center;gap:4px;margin-top:14px;padding:8px 18px;border-radius:999px;background:#1a5c5f;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:1px;box-shadow:0 4px 12px rgba(26,92,95,.25)}.hero-dots{display:flex;justify-content:center;gap:5px;margin-top:8px}.carousel-dots i,.hero-dots i{width:5px;height:5px;border-radius:3px;transition:all .3s}.hero-dots i{background:#b8d6d8}.hero-dots i.on{width:16px;background:#4ea4a5}.carousel.top-hero{border-radius:0;box-shadow:none}.top-hero .hero-banner{height:300px;min-width:100%;border-radius:0;padding:0;display:flex;flex-direction:column;justify-content:center}.top-hero .hero-banner .hb-img{opacity:1;border-radius:0}.top-hero .hero-dots{position:absolute;bottom:10px;left:0;right:0;margin-top:0;z-index:3}.top-hero .hero-dots i{background:rgba(255,255,255,.55)}.home-logo img,.top-hero .hero-dots i.on{background:#fff}.home-head.slim{padding:8px 16px;background:0 0;color:var(--ink)}.home-head.slim::after{display:none}.home-head.slim .store-bar{margin-top:0;background:rgba(31,74,56,.06);border-color:rgba(31,74,56,.12);color:var(--green)}.home-head.slim .store-bar .dist{color:var(--green-soft)}.user-strip{align-items:center;gap:10px;margin-top:12px;padding:10px 14px;background:var(--card);border-radius:var(--r-sm);cursor:pointer}.order-duo,.user-strip,.user-strip .u-avatar{display:flex;border:1px solid var(--line)}.user-strip .u-avatar{width:36px;height:36px;border-radius:50%;background:var(--cream-2);align-items:center;justify-content:center;font-size:18px;overflow:hidden}.order-card .it img,.pic img,.user-strip .u-avatar img{width:100%;height:100%;object-fit:cover}.user-strip .u-info{flex:1;min-width:0}.user-strip .u-name{font-weight:700;font-size:13.5px;color:var(--ink)}.user-strip .u-badge{display:inline-block;margin-left:6px;font-size:9px;letter-spacing:1px;color:#fff;background:linear-gradient(120deg,var(--gold-light),var(--gold));padding:2px 8px;border-radius:999px;font-weight:700}.user-strip .u-coupon{display:flex;align-items:center;gap:5px;color:var(--green);font-size:12px;font-weight:700;background:rgba(31,74,56,.06);padding:6px 12px;border-radius:999px}.order-duo{margin-top:12px;border-radius:var(--r-card);background:linear-gradient(180deg,#fffdf9 0,#f7f2e9 100%);box-shadow:0 6px 18px rgba(31,74,56,.08)}.order-duo::before{content:"";position:absolute;left:50%;top:22px;bottom:22px;width:1px;background:var(--line);transform:translateX(-50%)}.carousel,.order-card-big,.order-duo{position:relative;overflow:hidden}.order-card-big{flex:1;padding:18px 12px 16px;cursor:pointer;min-height:152px;text-align:center;display:flex;flex-direction:column;align-items:center}.order-card-big .oc-illu{height:68px;display:flex;align-items:center;justify-content:center}.order-card-big .oc-t{font-family:var(--serif);font-size:18px;font-weight:800;letter-spacing:2px;color:var(--green-deep);margin-top:10px}.order-card-big .oc-s{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:1px}.carousel{border-radius:18px;box-shadow:0 10px 26px rgba(31,74,56,.16)}.carousel-track{display:flex;transition:transform .55s cubic-bezier(.3,.8,.3,1)}.banner-slide{min-width:100%;height:148px;position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff;cursor:pointer;overflow:hidden}.banner-slide::after{content:"";position:absolute;right:-30px;top:-40px;width:150px;height:150px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.b-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.b-text{position:relative;z-index:2}.b-title{font-family:var(--serif);font-size:21px;font-weight:800;letter-spacing:3px;text-shadow:0 2px 6px rgba(0,0,0,.2)}.b-sub{font-size:12px;opacity:.85;margin-top:6px;letter-spacing:1px}.b-emoji{font-size:54px;position:relative;z-index:2;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}.carousel-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px}.carousel-dots i{background:rgba(255,255,255,.45)}.carousel-dots i.on{width:16px;background:var(--gold-light)}.quick-grid{display:flex;gap:10px;margin-top:10px}.quick-item{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.q-icon{font-size:22px;line-height:1}.flash-strip .f-t,.q-name{font-size:11.5px;color:var(--ink);letter-spacing:1px}.flash-strip{margin-top:12px;display:flex;align-items:center;gap:10px;background:linear-gradient(100deg,#fdf6ec,#faefdc);border:1px solid #eeddbd;border-radius:var(--r-sm);padding:11px 14px;cursor:pointer;font-size:12px;color:#7a5a1e}.flash-strip .f-t{font-weight:800;font-family:var(--serif);color:var(--red);font-size:13px}.flash-strip .f-s{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.section{margin-top:20px}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 2px 10px}.s-title{font-family:var(--serif);font-size:18px;font-weight:800;letter-spacing:3px;color:var(--green-deep);display:inline-flex;align-items:center;gap:8px}.s-title::before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(var(--gold),var(--red))}.s-more{font-size:11.5px;color:var(--muted);cursor:pointer;letter-spacing:1px}.hscroll{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:none}.hscroll::-webkit-scrollbar{display:none}.pic,.prod-mini{border:1px solid var(--line)}.prod-mini{flex:0 0 118px;background:var(--card);border-radius:var(--r-card);padding:10px 10px 12px;cursor:pointer;transition:transform .15s}.prod-mini:active{transform:scale(.96)}.prod-mini .name{font-size:12.5px;font-weight:600;margin-top:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prod-mini .price-row{display:flex;align-items:baseline;gap:5px;margin-top:3px}.pic{width:98px;height:108px;margin:0 auto;border-radius:0;background:var(--cream-2);display:flex;align-items:center;justify-content:center;font-size:44px;overflow:hidden;flex-shrink:0}.price{font-family:var(--serif);font-weight:800;color:var(--green-deep);font-size:15px}.price::before{content:"¥";font-size:.72em;margin-right:1px;color:var(--gold)}.origin{font-size:10.5px;color:var(--muted);text-decoration:line-through}.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;z-index:40;display:flex;background:rgba(255,255,254,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:7px 0 calc(7px + env(safe-area-inset-bottom))}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:#a9a294;cursor:pointer;font-size:10px;letter-spacing:1px}.tab-item svg{width:23px;height:23px;stroke:currentColor}.tab-item.on{color:var(--green)}.tab-item.on .t-name{font-weight:700}.t-icon{font-size:21px;line-height:1;display:flex}.locate-bar{margin:10px 14px 0;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);display:flex;justify-content:space-between;align-items:center;font-size:12.5px;cursor:pointer;color:var(--ink)}.locate-bar span:last-child{color:var(--gold);font-size:11.5px}.cat-side::-webkit-scrollbar{display:none}.cat-item .c-icon{font-size:17px}.cat-item.on{color:var(--green-deep);font-weight:700;background:linear-gradient(90deg,rgba(185,142,79,.18),rgba(185,142,79,.06));border-left-color:var(--gold);font-family:var(--serif);box-shadow:inset 2px 0 0 var(--gold)}.prod-row{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:12px;margin-bottom:10px;cursor:pointer}.prod-row .pic{width:84px;height:96px;font-size:38px}.prod-row .info{flex:1;min-width:0;display:flex;flex-direction:column}.prod-row .name{font-weight:700;font-size:14.5px;font-family:var(--serif);letter-spacing:.5px}.prod-row .desc{font-size:11px;color:var(--muted);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}.tag{font-size:9.5px;color:var(--gold);border:1px solid rgba(185,142,79,.45);padding:1px 6px;border-radius:4px;letter-spacing:.5px}.prod-row .bottom{margin-top:auto;padding-top:6px;display:flex;justify-content:space-between;align-items:center}.sold{font-size:10px;color:var(--muted);margin-left:6px}.add-btn,.cart-bar{display:flex;align-items:center;color:#f5efe2}.add-btn{width:27px;height:27px;border-radius:50%;background:var(--green);font-size:17px;line-height:1;justify-content:center;box-shadow:0 4px 10px rgba(31,74,56,.3)}.cart-bar{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:402px;z-index:39;background:var(--green-deep);border-radius:999px;padding:8px 8px 8px 18px;gap:10px;box-shadow:0 10px 24px rgba(20,50,38,.4)}.cart-bar .icon{position:relative;font-size:21px;cursor:pointer}.cart-bar .badge,.mask{display:flex;justify-content:center}.cart-bar .badge{position:absolute;top:-6px;right:-9px;background:var(--red);color:#fff;border-radius:999px;font-size:9px;min-width:15px;height:15px;padding:0 3px;align-items:center;font-weight:700}.cart-bar .total{font-family:var(--serif);font-weight:800;font-size:17px;color:var(--gold-light)}.cart-bar .go{margin-left:auto;background:linear-gradient(120deg,var(--gold),#a4783a);color:#fff;font-weight:700;letter-spacing:2px;padding:10px 24px;border-radius:999px;font-size:14px}.mask{position:fixed;inset:0;z-index:500;background:rgba(20,30,25,.55);align-items:flex-end;animation:fadeIn .2s}.mask.center{align-items:center}.sheet{width:100%;max-width:430px;max-height:82vh;overflow-y:auto;background:var(--cream);border-radius:22px 22px 0 0;padding:20px 18px calc(18px + env(safe-area-inset-bottom));animation:slideUp .28s cubic-bezier(.3,.9,.4,1)}.sheet-close{position:absolute;right:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--cream-2);color:var(--muted);font-size:13px}.sheet .pic{width:84px;height:94px;font-size:38px;margin:0}.opt-group{margin-top:16px}.opt-label{font-size:12px;color:var(--muted);margin-bottom:8px;letter-spacing:1px}.opt-row{display:flex;flex-wrap:wrap;gap:8px}.opt-btn{padding:7px 15px;border-radius:999px;font-size:12.5px;background:#fff;border:1px solid var(--line);color:var(--ink)}.opt-btn.on{background:var(--green);color:#f5efe2;border-color:var(--green);font-weight:600}.qty-ctl{display:inline-flex;align-items:center;gap:12px}.qty-ctl button,.sheet-foot{display:flex;align-items:center}.qty-ctl button{width:27px;height:27px;border-radius:50%;border:1px solid var(--green);color:var(--green);font-size:15px;justify-content:center;background:#fff}.qty-ctl .n{font-weight:700;min-width:18px;text-align:center;font-size:15px}.sheet-foot{justify-content:space-between;margin-top:20px;padding-top:14px;border-top:1px dashed var(--line)}.sheet-foot .p{font-family:var(--serif);font-weight:800;font-size:21px;color:var(--green-deep)}.sheet-foot .p::before{content:"¥";font-size:.6em;color:var(--gold);margin-right:2px}.btn-primary{background:linear-gradient(135deg,var(--green-soft),var(--green-deep));color:#f5efe2;font-weight:700;letter-spacing:3px;padding:12px 34px;border-radius:999px;font-size:14.5px;box-shadow:0 6px 16px rgba(31,74,56,.3)}.btn-primary:disabled{opacity:.55}.btn-danger-lite,.btn-lite{background:#fff;border-radius:999px;font-size:13px}.btn-lite{border:1px solid var(--line);color:var(--green);padding:11px;letter-spacing:1px}.btn-danger-lite{border:1px solid #e5c0ba;color:var(--red);padding:11px 18px}.cart-list-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line)}.cart-list-item .pic{width:54px;height:60px;font-size:26px;margin:0;border-radius:0}.cart-list-item .n{flex:1;min-width:0}.cart-list-item .t{font-weight:600;font-size:13.5px}.cart-list-item .o{font-size:10.5px;color:var(--muted);margin-top:2px}.mall-head{padding:26px 18px 46px;color:#f5efe2;position:relative;overflow:hidden;background:radial-gradient(120% 100%at 90% -20%,rgba(185,142,79,.35),transparent 55%),linear-gradient(150deg,var(--green-deep),var(--green))}.mall-head::after{content:"";position:absolute;right:-30px;bottom:-60px;width:170px;height:170px;border:1px solid rgba(216,188,138,.35);border-radius:50%}.mall-head .t{font-family:var(--serif);font-size:22px;font-weight:800;letter-spacing:4px}.mall-head .s{font-size:11.5px;opacity:.8;margin-top:6px;letter-spacing:1.5px}.mall-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px;margin-top:-26px;position:relative;z-index:2}.mall-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;cursor:pointer}.mall-card .pic{width:100%;height:130px;border-radius:0;border:0;border-bottom:1px solid var(--line);font-size:52px;background:var(--cream-2)}.mall-card .info{padding:10px 12px 13px}.mall-card .name{font-size:12.5px;font-weight:600;line-height:1.4;min-height:35px}.mode-tab{display:flex;gap:10px;padding:12px 14px 2px}.chk-card,.mode-tab button{border:1px solid var(--line)}.mode-tab button{flex:1;padding:13px;border-radius:var(--r-sm);font-size:14px;background:#fff;color:var(--muted)}.mode-tab button.on{background:var(--green-deep);color:#f5efe2;font-weight:700;letter-spacing:1px;border-color:var(--green-deep)}.chk-card{background:var(--card);border-radius:var(--r-card);margin:10px 14px 0;padding:14px}.addr-card{display:flex;align-items:center;gap:10px;cursor:pointer}.addr-card .icon{font-size:20px}.addr-card .txt{flex:1;min-width:0}.addr-card .l1{font-weight:700;font-size:14px}.addr-card .l2{font-size:11.5px;color:var(--muted);margin-top:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dist-badge{font-size:9.5px;color:var(--gold);border:1px solid rgba(185,142,79,.4);padding:0 5px;border-radius:4px;font-weight:400}.chk-item{display:flex;align-items:center;gap:10px;padding:8px 0}.chk-item .pic{width:46px;height:52px;font-size:22px;margin:0;border-radius:0}.chk-item .n{flex:1;font-size:13px}.chk-item .o{font-size:10.5px}.chk-row{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}.chk-item .o,.chk-row .k,.form-item label{color:var(--muted)}.chk-row.total{border-top:1px dashed var(--line);margin-top:6px;padding-top:12px;font-weight:700}.form-item{margin-top:14px}.form-item label{font-size:12px;display:block;margin-bottom:6px}.form-item input,.form-item textarea{width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:0}.form-item input:focus,.form-item textarea:focus{border-color:var(--gold)}.pay-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;z-index:45;background:rgba(255,255,254,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.coupon-left .amt,.pay-bar .amt{font-family:var(--serif);font-weight:800;font-size:22px;color:var(--green-deep)}.coupon-card{display:flex;align-items:stretch;margin:10px 14px 0;background:var(--card);border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);position:relative}.coupon-tag{position:absolute;left:0;top:0;z-index:2;background:var(--red);color:#fff;font-size:9px;padding:2px 8px;border-radius:0 0 8px 0;letter-spacing:1px}.coupon-left{flex:0 0 96px;background:linear-gradient(150deg,var(--green-soft),var(--green-deep));color:#f5efe2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 6px;position:relative}.coupon-left::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:0;border-right:2px dashed rgba(246,242,234,.8)}.coupon-left .amt{font-size:21px;color:var(--gold-light)}.coupon-left .cond{font-size:9.5px;opacity:.75;margin-top:3px}.coupon-mid{flex:1;padding:13px 12px;min-width:0}.coupon-mid .t{font-weight:700;font-size:14px;font-family:var(--serif);letter-spacing:.5px}.coupon-mid .s{font-size:11px;color:var(--muted);margin-top:3px}.coupon-mid .e{font-size:9.5px;color:#c4bcae;margin-top:5px}.coupon-right{display:flex;align-items:center;padding-right:12px}.claim-btn{background:linear-gradient(120deg,var(--gold),#a4783a);color:#fff;font-size:12px;padding:7px 16px;border-radius:999px;font-weight:600;letter-spacing:1px;white-space:nowrap}.claim-btn:disabled{background:#d9d2c4;color:#fff}.chip,.store-card{border:1px solid var(--line);cursor:pointer}.chip{display:inline-block;padding:7px 16px;border-radius:999px;background:#fff;font-size:12.5px;margin-right:8px}.chip.on{background:var(--green);color:#f5efe2;border-color:var(--green)}.store-card{background:var(--card);border-radius:var(--r-sm);margin:10px 14px 0;padding:14px}.store-card.sel{border-color:var(--gold);box-shadow:0 0 0 2px rgba(185,142,79,.18)}.store-card .n{font-weight:700;font-size:14px;font-family:var(--serif)}.store-card .a,.store-card .meta{font-size:11.5px;color:var(--muted);margin-top:4px}.store-card .meta{display:flex;gap:10px;align-items:center;margin-top:8px;font-size:11px}.busy{font-size:9.5px;padding:1px 7px;border-radius:4px}.busy.b1{color:#2e7d4f;background:rgba(46,125,79,.1)}.busy.b2{color:var(--gold);background:rgba(185,142,79,.12)}.busy.b3{color:var(--red);background:rgba(176,58,46,.1)}.order-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);margin:10px 14px 0;padding:14px;cursor:pointer}.order-card .top{display:flex;justify-content:space-between;align-items:center}.order-card .store{font-weight:700;font-size:13.5px;font-family:var(--serif);display:flex;align-items:center;gap:6px}.otype{font-size:9.5px;color:var(--gold);border:1px solid rgba(185,142,79,.45);padding:1px 6px;border-radius:4px;font-weight:400}.status{font-size:11.5px;font-weight:600}.status.pending{color:var(--red)}.status.delivering,.status.making,.status.paid{color:var(--gold)}.status.done{color:#2e7d4f}.status.cancelled{color:var(--muted)}.order-card .items{display:flex;gap:8px;margin-top:12px}.order-card .it{width:42px;height:46px;background:var(--cream-2);border:1px solid var(--line);border-radius:0;display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden}.order-card .bottom{display:flex;justify-content:space-between;margin-top:12px;font-size:11px;color:var(--muted);align-items:baseline}.me-head{position:relative;overflow:hidden;padding:30px 20px 26px;color:#f5efe2;background:radial-gradient(130% 100%at 90% -20%,rgba(185,142,79,.3),transparent 55%),linear-gradient(155deg,var(--green-deep),var(--green))}.me-head::before{content:"";position:absolute;inset:auto -20px -20px -20px;height:80px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 80"><g fill="none" stroke="%23d8bc8a" stroke-opacity="0.3" stroke-width="1.5"><path d="M-10 60 Q80 20 170 55 Q250 85 330 55 Q410 28 500 60"/><path d="M-10 74 Q100 44 200 70 Q300 95 500 55"/></g></svg>')no-repeat center bottom/cover}.me-avatar,.me-user{display:flex;align-items:center}.me-user{gap:14px;position:relative}.me-avatar{width:60px;height:60px;border-radius:50%;background:rgba(246,242,234,.15);border:1.5px solid rgba(216,188,138,.5);justify-content:center;font-size:30px}.me-name{font-family:var(--serif);font-weight:800;font-size:19px;letter-spacing:2px}.me-level{display:inline-block;margin-top:7px;font-size:10px;letter-spacing:1.5px;color:#2d2419;background:linear-gradient(120deg,var(--gold-light),var(--gold));padding:3px 11px;border-radius:999px;font-weight:700}.progress{height:4px;background:rgba(246,242,234,.18);border-radius:2px;margin-top:18px;position:relative;overflow:hidden}.progress i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--gold-light),var(--gold));border-radius:2px}.me-points{font-size:11px;opacity:.8;margin-top:8px;letter-spacing:1px}.me-body{padding:14px;margin-top:-6px;position:relative;z-index:2}.me-stats{display:flex;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 0;margin-bottom:14px}.me-stat{flex:1;text-align:center;cursor:pointer}.me-stat+.me-stat{border-left:1px solid var(--line)}.login-box h2,.me-stat .v{font-family:var(--serif);color:var(--green-deep)}.me-stat .v{font-weight:800;font-size:19px}.me-stat .k{font-size:11px;color:var(--muted);margin-top:3px;letter-spacing:1px}.cell-group{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;margin-top:14px}.cell{display:flex;align-items:center;gap:12px;padding:15px 16px;cursor:pointer}.cell+.cell{border-top:1px solid #f2ede2}.cell .c-icon{font-size:18px}.cell .c-name{flex:1;font-size:13.5px;letter-spacing:.5px}.cell .c-extra{font-size:12px;color:var(--muted)}.cell .c-arrow{color:#cdc5b6}.login-box{padding:34px 26px}.login-box h2{font-size:24px;letter-spacing:3px}.login-box .sub{font-size:12px;color:var(--muted);margin:8px 0 26px;letter-spacing:1px}.code-row{display:flex;gap:10px}.code-row input{flex:1}.code-btn{flex:0 0 auto;background:#fff;border:1px solid var(--gold);color:var(--gold);border-radius:10px;padding:0 16px;font-size:12.5px;white-space:nowrap}.code-btn:disabled{border-color:var(--line);color:var(--muted)}.dev-tip{background:#fdf6ec;border:1px solid #eeddbd;color:#7a5a1e;font-size:12px;border-radius:10px;padding:10px 12px;margin-top:12px}.addr-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);margin:10px 14px 0;padding:14px;display:flex;align-items:center;gap:10px}.addr-item .main{flex:1;min-width:0;cursor:pointer}.addr-item .l1{font-weight:700;font-size:14px}.addr-item .l2{font-size:11.5px;color:var(--muted);margin-top:4px}.def,.tag2{font-size:9px;border-radius:4px;margin-left:6px;font-weight:400;vertical-align:2px}.def{color:#fff;background:var(--red);padding:1px 6px}.tag2{color:var(--gold);border:1px solid rgba(185,142,79,.4);padding:0 5px}.addr-item .edit{color:var(--gold);font-size:12px;flex-shrink:0}.fab{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:382px;background:linear-gradient(135deg,var(--green-soft),var(--green-deep));color:#f5efe2;font-weight:700;letter-spacing:2px;padding:14px;border-radius:999px;z-index:40;box-shadow:0 10px 24px rgba(20,50,38,.35)}.empty{text-align:center;color:var(--muted);padding:60px 20px;font-size:13px;letter-spacing:1px}.e-icon{font-size:44px;margin-bottom:12px;opacity:.75}.ad-pop{position:relative;width:300px}.ad-pop .bg,.ad-pop img{border-radius:18px;cursor:pointer}.ad-pop img{width:100%}.ad-pop .bg{padding:40px 24px;text-align:center;color:#fff;border:1px solid rgba(216,188,138,.4)}.ad-pop .e{font-size:52px}.ad-pop .t{font-family:var(--serif);font-size:21px;font-weight:800;margin-top:14px;letter-spacing:3px}.ad-pop .s{font-size:12.5px;opacity:.85;margin-top:8px;letter-spacing:1px}#toast,.ad-close{left:50%;transform:translateX(-50%)}.ad-close{position:absolute;bottom:-52px;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);color:#fff;font-size:15px}#toast{position:fixed;bottom:120px;background:rgba(20,40,30,.88);color:#f5efe2;padding:11px 22px;border-radius:999px;font-size:13px;letter-spacing:1px;z-index:999;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;backdrop-filter:blur(6px)}@media (min-width:431px){.pay-bar,.tabbar{left:50%}}
/* ==== 2x2 product grid (2026-07-29) ==== */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:2px 2px 12px}
.pgrid .prod-mini{flex:none;width:auto}
.pgrid .pic{width:100%;height:120px}

/* ==== 周边潮品大图卡片（参考设计 2026-07-29）==== */
.section.pmall-sec{margin-top:18px}
.section.pmall-sec .pgrid{row-gap:14px}
.prod-card{background:var(--card);padding:0;overflow:hidden;display:flex;flex-direction:column}
.prod-card .pc-media{position:relative;width:100%;height:140px;overflow:hidden;border-radius:0;border:none}
.prod-card .pc-media .pic{width:100%;height:100%;border-radius:0;border:none;margin:0}
.prod-card .pc-media .pic img{width:100%;height:100%;object-fit:cover;display:block}
.prod-card .pc-tag{position:absolute;top:8px;left:8px;background:rgba(196,168,124,.92);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:1px;line-height:1;backdrop-filter:blur(2px)}
.prod-card .pc-info{padding:10px 11px 12px;display:flex;flex-direction:column;gap:6px}
.prod-card .pc-name{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.prod-card .pc-desc{font-size:11px;color:var(--muted);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.prod-card .pc-foot{display:flex;align-items:baseline;justify-content:space-between;margin-top:2px;gap:6px}
.prod-card .pc-price{display:flex;align-items:baseline;gap:5px}
.prod-card .pc-price .cur{font-size:18px;font-weight:800;color:var(--ink);font-family:"Noto Serif SC",serif}
.prod-card .pc-price .old{font-size:11px;color:var(--muted);text-decoration:line-through}
.prod-card .pc-sold{font-size:10.5px;color:var(--muted);white-space:nowrap}

/* ==== 新增地址：省/市/区 三级联动（2026-07-29）==== */
.region-sel{display:flex;gap:6px}
.region-sel .reg-sel{flex:1;min-width:0;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23999'/></svg>") no-repeat right 8px center;background-size:10px 6px;border:1px solid var(--line);border-radius:10px;padding:10px 22px 10px 10px;font-size:13px;color:var(--ink);text-align:center;text-align-last:center}
.region-sel .reg-sel:focus{outline:none;border-color:var(--green)}

/* ==== 支付成功页（2026-07-29）==== */
.success-hero{text-align:center;padding:34px 16px 12px}
.success-check{font-size:48px;line-height:1}
.success-title{font-family:var(--serif);font-weight:800;font-size:22px;margin-top:8px;color:var(--ink)}
.success-sub{font-size:12.5px;color:var(--muted);margin-top:5px}
.pickup-code{font-family:var(--serif);font-weight:800;font-size:34px;letter-spacing:6px;color:var(--ink);background:linear-gradient(150deg,#f3ead6,#e6d3a8);border:1px dashed #b4894e;border-radius:12px;padding:14px 10px;margin:14px 18px 6px}
.pickup-code-sm{font-family:var(--serif);font-weight:800;font-size:18px;letter-spacing:3px;color:var(--ink)}
/* ===== 订单二维码 ===== */
.qr-box{display:flex;justify-content:center;margin-top:12px}
.qr-box img{width:172px;height:172px;image-rendering:pixelated;border:8px solid #fff;border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.qr-card .pickup-code{margin-top:12px}
/* ===== 快递单号高亮 ===== */
.tracking-no{user-select:all;font-weight:800;color:var(--gold);font-size:15px;letter-spacing:.5px}

/* ==== 点单界面重构（2026-07-29）：左侧大图标垂直分类 + 右侧横向商品行 ==== */
.menu-layout{display:flex;gap:0;align-items:stretch;padding:0;background:var(--cream-2)}
.cat-side{flex:0 0 108px;position:sticky;top:54px;overflow-y:auto;scrollbar-width:none;padding:8px 0 24px;background:var(--cream-2);border-right:1px solid var(--line);align-self:stretch;display:flex;flex-direction:column;min-height:100%}
.cat-item{padding:20px 8px 18px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:#7c766b;font-size:12.5px;letter-spacing:.5px;border-left:3px solid transparent;transition:background .18s ease,color .18s ease,border-color .18s ease;text-align:center;line-height:1.3;font-family:var(--serif);font-weight:500;background:var(--cream-2);justify-content:center}
.cat-item .c-icon{font-size:30px;line-height:1;margin-bottom:2px;filter:grayscale(15%)}
.cat-item:hover{background:rgba(185,142,79,.06);color:var(--ink)}
.cat-item.on{background:#e4dccb;border-left:3px solid var(--gold);color:var(--gold)}
.cat-item.on .c-icon{filter:none}
.prod-list{flex:1;padding:6px 14px 20px 14px;background:var(--cream);min-height:auto}
.prod-row{display:flex;gap:14px;background:var(--card);border:0;border-radius:14px;padding:14px 14px;margin-bottom:12px;cursor:pointer;transition:box-shadow .18s ease,transform .18s ease;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.prod-row:hover{box-shadow:0 6px 18px rgba(31,74,56,.08);transform:translateY(-1px)}
.prod-row .prod-pic{width:100px;height:100px;border-radius:10px;flex:none;overflow:hidden;background:#f5efe2}
.prod-row .prod-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:6px}
.prod-row .prod-info .name{font-family:var(--serif);font-weight:600;font-size:17px;color:var(--ink);line-height:1.3;letter-spacing:.5px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.prod-row .prod-info .desc{font-size:12px;color:var(--muted);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.prod-row .prod-info .tags{display:flex;gap:5px;flex-wrap:wrap}
.prod-row .prod-info .tag{font-size:10.5px;color:var(--gold);background:rgba(185,142,79,.10);padding:2px 7px;border-radius:6px;letter-spacing:.3px}
.prod-row .prod-info .bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;gap:8px}
.prod-row .prod-info .bottom>span{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.prod-row .prod-info .price{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--ink);line-height:1;letter-spacing:.5px}
.prod-row .prod-info .price-suf{font-size:11px;color:var(--muted);font-weight:400;margin-left:1px}
.prod-row .prod-info .origin{font-size:11px;color:var(--muted);text-decoration:line-through}
.prod-row .prod-info .sold{font-size:11px;color:var(--muted)}
.prod-row .prod-info .add-btn{flex:none;padding:0 18px;height:32px;background:var(--gold);color:#fff;font-size:13px;font-weight:500;border-radius:999px;letter-spacing:1px;line-height:32px;white-space:nowrap;transition:background .18s ease,transform .18s ease;box-shadow:0 2px 6px rgba(185,142,79,.25)}
.prod-row .prod-info .add-btn:hover{background:#a87d3f;transform:scale(1.03)}
.prod-row .prod-info .add-btn:active{transform:scale(.97)}@media (max-width:380px){.cat-side{flex-basis:84px}.prod-row .pic{width:72px;height:80px;font-size:32px}.prod-row{gap:10px;padding:10px}.prod-row .name{font-size:13.5px}}

#globalCartBar{display:none}

/* ==== 全站商品支持「加入购物车」（2026-08-01）==== */
/* 商城商品详情弹层：加入购物车 + 立即购买 并列 */
.sheet-foot .sheet-acts{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.sheet-acts .btn-lite{padding:10px 15px;font-size:12.5px;letter-spacing:0;white-space:nowrap;font-weight:600}
.sheet-acts .btn-lite:active{background:var(--cream-2);transform:scale(.97)}
.sheet-acts .btn-primary{padding:11px 19px;font-size:13.5px;letter-spacing:1px;white-space:nowrap}
.sheet-acts .btn-primary:active{transform:scale(.97)}
@media (max-width:370px){
  .sheet-foot .p{font-size:18px}
  .sheet-acts{gap:6px}
  .sheet-acts .btn-lite{padding:10px 11px;font-size:12px}
  .sheet-acts .btn-primary{padding:11px 14px;font-size:12.5px;letter-spacing:0}
}

/* 购物车弹层：咖啡/周边 分组小标题（仅混合时出现） */
.cart-group-head{display:flex;align-items:center;margin:16px 0 0;padding:0 0 7px;font-family:var(--serif);font-size:11.5px;font-weight:700;letter-spacing:1.5px;color:var(--green-deep);border-bottom:1px solid var(--line)}
.cart-group-head:first-child{margin-top:6px}

/* 结算分类选择弹层：两类商品需拆成两笔订单 */
.chk-split-acts .btn-lite,.chk-split-acts .btn-primary{width:100%;padding:13px 12px;font-size:13.5px;letter-spacing:1px;text-align:center;line-height:1.3}
.chk-split-acts .btn-lite{font-weight:600;color:var(--green-deep);border-color:rgba(185,142,79,.45)}
.chk-split-acts .btn-lite:active,.chk-split-acts .btn-primary:active{transform:scale(.98)}


/* ===== 合并结算：多组布局 ===== */
.chk-group { margin-bottom: 12px; }
.chk-group-title {
  font-size: 14px; font-weight: 700;
  padding: 10px 12px 6px;
  color: var(--text, #333);
  background: linear-gradient(to right, var(--primary, #2d5c3a), transparent);
  -webkit-background-clip: text;
  -webkit-text-fill-color: var(--primary, #2d5c2a);
  background-clip: text;
}
.pay-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: #fff; box-shadow: 0 -2px 12px rgba(0,0,0,.08);
  display: flex; align-items: center;
  padding: 8px 12px; z-index: 100;
}
.pay-summary {
  flex: 1; margin-right: 8px;
  min-width: 0; overflow-y: auto; max-height: 60px;
}
.pay-sum-row {
  display: flex; justify-content: space-between;
  font-size: 11px; color: var(--muted, #999);
  line-height: 1.7; padding-right: 4px;
}
.pay-bar .amt {
  font-size: 18px; font-weight: 700;
  color: var(--red, #c0392b); margin-right: 10px;
  white-space: nowrap;
}
/* 立即支付按钮：透明背景 + 水平居中 */
.pay-bar {
  justify-content: center !important;
  max-width: 430px;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%);
  padding: 10px 16px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
}
.pay-bar .pay-summary,
.pay-bar .amt {
  display: none !important;
}
.pay-bar .btn-primary {
  background: transparent !important;
  box-shadow: none !important;
  border: 1.5px solid var(--gold, #b98e4f);
  color: var(--gold, #b98e4f) !important;
  padding: 13px 52px;
  font-size: 15px;
  width: auto !important;
  flex: none !important;
  margin: 0 !important;
  white-space: nowrap;
}

/* ==== 点单模式胶囊 + 配送范围提示（2026-08-02）==== */
.locate-bar .mode-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;letter-spacing:.5px;color:var(--green-deep);background:rgba(31,74,56,.08);border:1px solid rgba(31,74,56,.16);padding:4px 10px;border-radius:999px;white-space:nowrap;font-weight:600}
.range-tip{margin:8px 14px 0;font-size:12px;border-radius:10px;padding:9px 12px;line-height:1.5}
.range-tip.ok{background:rgba(46,125,79,.08);color:#2e7d4f;border:1px solid rgba(46,125,79,.2)}
.range-tip.warn{background:#fdf3e0;color:#8a6116;border:1px solid #eeddbd}
.range-tip.bad{background:rgba(176,58,46,.08);color:var(--red);border:1px solid rgba(176,58,46,.25);font-weight:600}
.geo-btn{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:8px 14px;font-size:12.5px;white-space:nowrap}
.geo-btn:disabled{border-color:var(--line);color:var(--muted)}
.geo-state{font-size:11px;color:var(--muted);margin-left:10px}
.geo-state.on{color:#2e7d4f}

/* ==== 外卖结算页：店铺卡片 + 距离地图 + 超范围横幅（2026-08-02）==== */
.deli-store-card .icon{font-size:18px}
.deli-store-card .l2{color:var(--muted);font-size:12px}
.mini-map{display:block;width:calc(100% - 28px);height:auto;margin:-6px 14px 8px;border-radius:12px;box-shadow:0 1px 4px rgba(31,74,56,.08);background:#f9f7f2}
.mini-map.empty{display:flex;align-items:center;gap:8px;margin:0 14px 10px;padding:12px 14px;font-size:12px;color:var(--muted);background:#f9f7f2;border-radius:10px}
.range-banner{margin:8px 14px 0;border-radius:12px;padding:12px 14px;line-height:1.55;border:1px solid rgba(176,58,46,.25);background:rgba(176,58,46,.08);color:var(--red)}
.range-banner .rb-title{font-weight:700;font-size:14px;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.range-banner .rb-title::before{content:"⚠";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font-size:12px}
.range-banner .rb-body{font-size:12px;opacity:.95}

/* ===== 登录页：微信登录入口 ===== */
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 2px 16px;color:var(--muted);font-size:12px}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.btn-wx{background:#07c160;color:#fff;border:none;border-radius:999px;padding:13px 0;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.btn-wx:active{opacity:.9}
#wxQrBox{margin-top:10px;text-align:center;font-size:12px;color:var(--muted)}
