/* =========================================================
 * H5商城设计系统 v20260917（现代移动端商城风格，原生CSS）
 * ========================================================= */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",Arial,sans-serif;
  background:#f4f5f9;color:var(--ink,#16181c);font-size:14px;line-height:1.5;
  max-width:540px;margin:0 auto;position:relative;min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{border:none;outline:none;cursor:pointer;font-family:inherit;background:none}
input,textarea{font-family:inherit;outline:none;border:none;background:transparent}
ul,ol{list-style:none}

:root{
  --brand:#ff4d2e;--primary:#ff4d2e;--brand2:#ff8a3d;--brand-grad:linear-gradient(135deg,#ff8a3d 0%,#ff4d2e 100%);
  --bg:#f4f5f9;--card:#ffffff;--ink:#16181c;--ink2:#5b616e;--ink3:#9aa0ab;
  --line:#f0f1f5;--success:#07c160;--warning:#ff9f1c;--danger:#fa5151;--info:#3b82f6;
  --r-card:16px;--r-inner:12px;
  --sh-card:0 2px 16px rgba(22,24,28,.06);
  --sh-brand:0 8px 20px rgba(255,77,46,.28);
  --tabbar-h:calc(58px + env(safe-area-inset-bottom));
}

/* ============ 通用 ============ */
.btn{display:block;width:100%;height:48px;border-radius:999px;font-size:16px;font-weight:600;text-align:center;line-height:48px;transition:transform .08s,opacity .2s}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand-grad);color:#fff;box-shadow:var(--sh-brand)}
.btn-plain{background:#f1f2f6;color:var(--ink2)}
.btn[disabled]{opacity:.55;pointer-events:none}

.empty{text-align:center;color:var(--ink3);padding:56px 0;font-size:13px;line-height:2}
.loading-tip{text-align:center;color:var(--ink3);font-size:12px;padding:18px}

.toast{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);background:rgba(20,22,28,.86);color:#fff;padding:11px 20px;border-radius:12px;font-size:13px;z-index:9999;max-width:80%;text-align:center;display:none;line-height:1.6;backdrop-filter:blur(4px)}

/* 悬浮返回 */
.back-home{position:fixed;top:14px;left:14px;z-index:60;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.32);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.back-home svg{width:18px;height:18px}

/* 通用顶部导航栏（白底） */
.nav-bar{height:48px;display:flex;align-items:center;justify-content:center;position:relative;background:#fff;font-size:16px;font-weight:600}
.nav-bar .nb-back{position:absolute;left:6px;top:0;bottom:0;width:40px;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.nav-bar .nb-back svg{width:20px;height:20px}

/* ============ 底部导航 ============ */
.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:540px;margin:0 auto;height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;z-index:90}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10.5px;color:var(--ink3);gap:3px;position:relative}
.tabbar a svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8}
.tabbar a.active{color:var(--brand);font-weight:600}
.tabbar a.active svg{fill:currentColor;stroke-width:1.2}
body{padding-bottom:calc(60px + env(safe-area-inset-bottom))}

/* ============ 首页：店铺头 + 搜索 ============ */
.shop-header{background:var(--brand-grad);padding:20px 16px 26px;color:#fff;position:relative;overflow:hidden}
.shop-header::after{content:'';position:absolute;right:-40px;top:-50px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.10)}
.shop-header::before{content:'';position:absolute;left:-30px;bottom:-70px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.07)}
.shop-row{display:flex;align-items:center;position:relative;z-index:1}
.shop-logo{width:54px;height:54px;border-radius:15px;background:rgba(255,255,255,.22);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.shop-logo img{width:54px;height:54px;object-fit:cover}
.shop-meta{margin-left:12px;flex:1;min-width:0}
.shop-name{font-size:18px;font-weight:700;display:flex;align-items:center;gap:6px}
.shop-sub{font-size:12px;opacity:.92;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shop-intro{margin-top:10px;font-size:12px;background:rgba(255,255,255,.16);border-radius:10px;padding:8px 12px;line-height:1.5;position:relative;z-index:1}

.search-bar{position:relative;z-index:2;margin:-14px 12px 0;background:#fff;border-radius:999px;height:42px;display:flex;align-items:center;padding:0 16px;box-shadow:0 6px 18px rgba(22,24,28,.08)}
.search-bar .icon{color:var(--ink3);margin-right:8px;display:flex}
.search-bar .icon svg{width:17px;height:17px}
.search-bar input{flex:1;font-size:14px;background:transparent;color:var(--ink)}
.search-bar input::placeholder{color:var(--ink3)}

/* ============ 轮播图 ============ */
.banner-wrap{margin:14px 12px 0;border-radius:18px;overflow:hidden;position:relative;height:158px;background:#eceef3;box-shadow:var(--sh-card)}
.banner-track{display:flex;height:100%;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.banner-slide{min-width:100%;height:100%;position:relative;background-size:cover;background-position:center;background-color:var(--brand)}
.banner-slide .b-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgba(255,255,255,.95);font-size:16px;font-weight:700;background:linear-gradient(135deg,#ff9a5a,#ff4d2e);padding:0 24px;text-align:center}
.banner-slide .b-ph i{font-size:38px;font-style:normal;margin-bottom:8px;opacity:.9}
.banner-slide .b-title{position:absolute;left:16px;right:16px;bottom:14px;color:#fff;font-size:16px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.45);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.banner-slide.b-img .b-title{background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));left:0;right:0;bottom:0;padding:22px 16px 12px}
.banner-dots{position:absolute;right:14px;top:12px;display:flex;gap:5px;z-index:2}
.banner-dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.6);transition:all .3s}
.banner-dots i.on{background:#fff;width:16px}

/* ============ 分类快捷入口 ============ */
.cate-quick{display:flex;gap:4px;overflow-x:auto;padding:16px 12px;margin:12px 12px 0;background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);-webkit-overflow-scrolling:touch}
.cate-quick::-webkit-scrollbar{display:none}
.cate-quick a{flex-shrink:0;text-align:center;font-size:12px;color:var(--ink2);width:60px}
.cq-ico{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:23px;margin:0 auto 6px;background:linear-gradient(135deg,#fff2ec,#ffe4d8)}
.cq-all{background:var(--brand-grad)!important;color:#fff;box-shadow:var(--sh-brand)}

/* ============ 区块 / 商品网格 ============ */
.section{margin:18px 12px 0}
.section-title{font-size:16px;font-weight:700;margin:0 2px 12px;display:flex;align-items:center}
.section-title::before{content:'';width:4px;height:16px;background:var(--brand-grad);border-radius:2px;margin-right:8px}
.section-title .st-more{margin-left:auto;font-size:12px;color:var(--ink3);font-weight:400}

.goods-grid{display:flex;flex-wrap:wrap;gap:10px}
.goods-card{width:calc(50% - 5px);background:var(--card);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-card);transition:transform .1s}
.goods-card:active{transform:scale(.985)}
.goods-cover{width:100%;aspect-ratio:1/1;height:auto;background:#f3f4f8;display:flex;align-items:center;justify-content:center;font-size:46px;color:#dfe3ea;position:relative}
.goods-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.badge-type{position:absolute;left:8px;top:8px;z-index:2;font-size:10px;padding:2px 8px;border-radius:999px;color:#fff;background:var(--success);font-weight:600;letter-spacing:.5px;box-shadow:0 2px 6px rgba(7,193,96,.35)}
.badge-type.physical{background:var(--info);box-shadow:0 2px 6px rgba(59,130,246,.35)}
.goods-info{padding:10px 11px 12px}
.goods-title{font-size:13.5px;height:38px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:19px;color:var(--ink);font-weight:500}
.goods-price{margin-top:8px;display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.price{color:var(--brand);font-weight:800;font-size:18px;letter-spacing:-.3px}
.price small{font-size:11px;margin-right:1px;font-weight:700}
.price-old{color:var(--ink3);font-size:11px;text-decoration:line-through;margin-left:5px;font-weight:400}
.goods-sales{font-size:11px;color:var(--ink3);flex-shrink:0}
.sold-out-mask{position:absolute;inset:0;background:rgba(0,0,0,.4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;z-index:3;border-radius:inherit}

/* ============ 分类页 ============ */
.cate-head{background:var(--brand-grad);padding:18px 16px 20px;color:#fff}
.cate-head .ch-title{font-size:18px;font-weight:700}
.cate-head .ch-sub{font-size:12px;opacity:.9;margin-top:4px}
.cate-layout{display:flex;min-height:calc(100vh - 60px);align-items:stretch}
.cate-rail{width:96px;background:#eceef3;flex-shrink:0;padding:8px 0 70px}
.cate-rail a{display:block;margin:2px 8px;padding:14px 4px;text-align:center;font-size:13px;color:var(--ink2);position:relative;border-radius:12px;line-height:1.35}
.cate-rail a.on{background:var(--card);color:var(--brand);font-weight:700;box-shadow:0 2px 10px rgba(22,24,28,.06)}
.cate-rail a.on::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:4px;height:20px;background:var(--brand-grad);border-radius:0 3px 3px 0}
.cate-main{flex:1;padding:12px 12px 80px;min-width:0;background:var(--bg)}
.cate-main .cm-title{font-size:15px;font-weight:700;margin:2px 2px 12px;color:var(--ink)}
.cate-goods{display:flex;background:var(--card);border-radius:var(--r-card);padding:10px;margin-bottom:10px;box-shadow:var(--sh-card)}
.cate-goods:active{transform:scale(.99)}
.cate-goods .cg-cover{width:88px;height:88px;border-radius:var(--r-inner);background:#f3f4f8;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;font-size:30px;color:#dfe3ea;flex-shrink:0}
.cate-goods .cg-cover img{width:88px;height:88px;object-fit:cover}
.cate-goods .cg-info{margin-left:11px;flex:1;min-width:0;display:flex;flex-direction:column}
.cate-goods .cg-title{font-size:13.5px;line-height:19px;height:38px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500}
.cate-goods .cg-bottom{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between}
.cate-goods .cg-price{color:var(--brand);font-weight:800;font-size:17px}
.cate-goods .cg-price small{font-size:11px}
.cate-goods .cg-sales{font-size:11px;color:var(--ink3)}

/* ============ 我的页面 ============ */
.mine-header{background:var(--brand-grad);padding:26px 20px 42px;color:#fff;display:flex;align-items:center;position:relative;overflow:hidden}
.mine-header::after{content:'';position:absolute;right:-50px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.09)}
.mine-avatar{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}
.mine-avatar svg{width:34px;height:34px;stroke:#fff;fill:none;stroke-width:1.6}
.mine-name{font-size:19px;font-weight:700;position:relative;z-index:1}
.mine-sub{font-size:12px;opacity:.92;margin-top:5px;position:relative;z-index:1}
.mine-panel{background:var(--card);border-radius:var(--r-card);padding:16px 6px 12px}
.mine-orders-card{margin:-26px 12px 0;position:relative;z-index:2;box-shadow:var(--sh-card)}
.mine-card-hd{font-size:14.5px;font-weight:700;padding:0 12px 12px;display:flex;align-items:center;justify-content:space-between}
.mine-card-hd span:last-child{font-size:12px;color:var(--ink3);font-weight:400}
.mine-status{display:flex}
.mine-status a{flex:1;text-align:center;font-size:12px;color:var(--ink2);position:relative}
.mine-status .ms-ico{width:26px;height:26px;margin:0 auto 4px;display:flex;align-items:center;justify-content:center;color:var(--ink2)}
.mine-status .ms-ico svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.7}
.mine-status a:first-child .ms-ico{color:var(--warning)}
.mine-status a:nth-child(2) .ms-ico{color:var(--success)}
.mine-status a:nth-child(3) .ms-ico{color:var(--info)}
.mine-status a:nth-child(4) .ms-ico{color:var(--ink3)}
.mine-status .ms-badge{position:absolute;top:-6px;left:50%;margin-left:6px;min-width:16px;height:16px;line-height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-style:normal;font-weight:600}
.mine-tools{margin:12px}
.mine-tools .mt-row{display:flex;background:var(--card);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-card)}
.mine-tools a{flex:1;text-align:center;padding:18px 4px;font-size:12px;color:var(--ink2)}
.mine-tools .mt-ico{width:24px;height:24px;margin:0 auto 5px;display:flex;align-items:center;justify-content:center;color:var(--brand)}
.mine-tools .mt-ico svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7}
.mine-tools a+a{border-left:1px solid var(--line)}
.mine-list{margin:0 12px 80px}
.mine-list .order-card{margin:10px 0}
.mine-filter{display:flex;gap:8px;padding:14px 12px 2px;overflow-x:auto}
.mine-filter::-webkit-scrollbar{display:none}
.mine-filter a{flex-shrink:0;padding:6px 16px;border-radius:999px;background:var(--card);font-size:13px;color:var(--ink2);box-shadow:var(--sh-card)}
.mine-filter a.on{background:var(--brand-grad);color:#fff;font-weight:600;box-shadow:var(--sh-brand)}

/* ============ 商品详情 ============ */
.detail-cover{width:100%;height:74vw;max-height:400px;background:#f3f4f8;display:flex;align-items:center;justify-content:center;font-size:84px;color:#dfe3ea;position:relative;overflow:hidden}
.detail-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.detail-main{background:var(--card);border-radius:20px 20px 0 0;margin-top:-18px;position:relative;z-index:2;padding:18px 18px 16px}
.detail-price{display:flex;align-items:baseline;color:var(--brand)}
.detail-price .now{font-size:30px;font-weight:800;letter-spacing:-.5px}
.detail-price .now small{font-size:16px;margin-right:1px}
.detail-price .old{font-size:13px;color:var(--ink3);text-decoration:line-through;margin-left:10px}
.detail-title{font-size:17px;font-weight:700;margin-top:10px;line-height:1.5}
.detail-meta{display:flex;gap:8px;color:var(--ink3);font-size:12px;margin-top:12px;flex-wrap:wrap}
.detail-meta span{background:#f5f6fa;padding:3px 10px;border-radius:999px}
.shop-card{background:var(--card);margin-top:10px;padding:14px 18px;display:flex;align-items:center}
.shop-card .s-logo{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#fff2ec,#ffe1d3);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;flex-shrink:0}
.shop-card .s-logo img{width:44px;height:44px;object-fit:cover}
.shop-card .s-name{margin-left:12px;font-weight:700;flex:1;font-size:15px}
.detail-content{background:var(--card);margin-top:10px;padding:18px;border-radius:0}
.detail-content img{max-width:100%;height:auto;border-radius:10px;margin:10px 0}
.detail-content p{margin:8px 0;color:var(--ink2)}
.detail-hd{font-weight:700;margin-bottom:12px;font-size:15px;display:flex;align-items:center}
.detail-hd::before{content:'';width:4px;height:15px;background:var(--brand-grad);border-radius:2px;margin-right:8px}
.detail-page-end{height:20px}

/* 详情底部操作条 */
.action-bar{position:fixed;bottom:0;left:0;right:0;max-width:540px;margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);height:calc(60px + env(safe-area-inset-bottom));padding:0 14px calc(env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;z-index:90}
.action-icon{width:52px;text-align:center;font-size:11px;color:var(--ink2);line-height:1.3}
.action-icon .ico{width:22px;height:22px;margin:0 auto 2px;display:flex;align-items:center;justify-content:center;color:var(--ink2)}
.action-icon .ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7}
.btn-buy{flex:1;height:44px;border-radius:999px;background:var(--brand-grad);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--sh-brand)}
.btn-buy[disabled]{background:#cfd3dc;box-shadow:none}

/* ============ 独立下单页 buy.html ============ */
.buy-scroll{padding:0 12px 90px}
.buy-card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);margin-top:12px;overflow:hidden}
.buy-card .bc-hd{font-size:14px;font-weight:700;padding:14px 16px 4px;display:flex;align-items:center}
.buy-card .bc-hd::before{content:'';width:4px;height:14px;background:var(--brand-grad);border-radius:2px;margin-right:7px}
/* 收货地址 */
.addr-card{position:relative;padding:16px;display:flex;align-items:flex-start;gap:12px}
.addr-card .addr-ico{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#fff2ec,#ffe1d3);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.addr-card .addr-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8}
.addr-body{flex:1;min-width:0}
.addr-name{font-size:15px;font-weight:700}
.addr-name .addr-phone{font-weight:500;color:var(--ink2);margin-left:10px;font-size:13.5px}
.addr-detail{font-size:13px;color:var(--ink2);margin-top:5px;line-height:1.6}
.addr-edit-fields{margin-top:10px}
.addr-input{width:100%;background:#f6f7fb;border-radius:10px;padding:11px 13px;font-size:14px;margin-bottom:8px;color:var(--ink)}
.addr-input::placeholder{color:var(--ink3)}
textarea.addr-input{min-height:64px;resize:none;line-height:1.6}
.addr-empty{font-size:14px;color:var(--ink3)}
.virtual-banner{display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#eafaf1,#dcf6e6);color:#0a8a4a;border-radius:var(--r-card);margin-top:12px;font-size:13.5px;line-height:1.5}
.virtual-banner .vb-ico{width:34px;height:34px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.virtual-banner .vb-ico svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2}
/* 商品行 */
.buy-goods{display:flex;padding:16px}
.buy-goods .bg-cover{width:76px;height:76px;border-radius:12px;background:#f3f4f8;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;font-size:32px;color:#dfe3ea;flex-shrink:0}
.buy-goods .bg-cover img{width:76px;height:76px;object-fit:cover}
.buy-goods .bg-info{margin-left:12px;flex:1;min-width:0;display:flex;flex-direction:column}
.buy-goods .bg-tag{display:inline-block;font-size:10px;color:var(--brand);background:#fff2ec;border-radius:4px;padding:1px 6px;margin-bottom:5px;width:max-content}
.buy-goods .bg-tag.phys{color:var(--info);background:#eaf2ff}
.buy-goods .bg-title{font-size:14px;font-weight:600;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.buy-goods .bg-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between}
.buy-goods .bg-price{color:var(--brand);font-weight:800;font-size:17px}
.buy-goods .bg-price small{font-size:11px}
.num-stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.num-stepper button{width:30px;height:28px;background:#f7f8fb;font-size:18px;color:var(--ink2);line-height:1}
.num-stepper button:active{background:#eee}
.num-stepper span{width:44px;text-align:center;font-size:14px;font-weight:600}
.buy-remark{padding:4px 16px 14px}
.buy-remark textarea{width:100%;background:#f6f7fb;border-radius:10px;padding:11px 13px;font-size:13.5px;min-height:62px;resize:none;line-height:1.6;color:var(--ink)}
/* 支付方式 */
.pay-list{padding:2px 8px 10px}
.pay-type{display:flex;align-items:center;padding:13px 8px;border-bottom:1px solid var(--line);font-size:14.5px;cursor:pointer}
.pay-type:last-child{border-bottom:none}
.pay-type:active{opacity:.7}
.pay-type .p-ico{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:700;margin-right:12px;flex-shrink:0}
.pay-type .p-ico svg{width:22px;height:22px}
.pay-type .p-name{flex:1;font-weight:500}
.pay-type .p-radio{width:20px;height:20px;border-radius:50%;border:1.8px solid #d4d7de;position:relative;flex-shrink:0}
.pay-type.selected .p-radio{border-color:var(--brand)}
.pay-type.selected .p-radio::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--brand)}
.pay-type .p-arrow{color:#ccc;margin-left:8px}
.pay-none{display:flex;align-items:center;justify-content:center;padding:22px 12px;color:var(--ink3);font-size:13px;text-align:center;line-height:1.7}
.ico-alipay{background:linear-gradient(135deg,#4a9df0,#1677ff)}.ico-wxpay{background:linear-gradient(135deg,#3dd66a,#0bbf52)}.ico-qqpay{background:linear-gradient(135deg,#39c5f7,#12a6e0)}.ico-bank{background:linear-gradient(135deg,#f5b14b,#e6813c)}
/* 底部支付条 */
.pay-bar{position:fixed;left:0;right:0;bottom:0;max-width:540px;margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);height:calc(64px + env(safe-area-inset-bottom));padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;z-index:90;gap:12px}
.pay-bar .pb-total{font-size:12px;color:var(--ink2);white-space:nowrap}
.pay-bar .pb-total b{color:var(--brand);font-size:21px;font-weight:800;margin-left:2px}
.pay-bar .pb-total b small{font-size:12px}
.pay-bar .pb-btn{height:44px;padding:0 30px;border-radius:999px;background:var(--brand-grad);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--sh-brand);white-space:nowrap}
.pay-bar .pb-btn[disabled]{background:#cfd3dc;box-shadow:none}
.buy-loading{padding:80px 0;text-align:center;color:var(--ink3);font-size:13px}

/* ============ 兼容旧弹层（详情已改用独立下单页，recharge沿用） ============ */
.mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;display:none}
.mask.show{display:block}
.sheet{position:fixed;left:0;right:0;bottom:0;max-width:540px;margin:0 auto;background:#f5f5f7;border-radius:18px 18px 0 0;z-index:101;max-height:84vh;overflow-y:auto;transform:translateY(100%);transition:transform .25s}
.sheet.show{transform:translateY(0)}
.sheet-hd{display:flex;align-items:center;padding:14px 16px;background:#fff;border-radius:18px 18px 0 0}
.sheet-hd .t{flex:1;font-weight:700;font-size:15px}
.sheet-close{font-size:22px;color:var(--ink3);line-height:1;padding:0 4px}
.sheet-goods{display:flex;background:#fff;padding:0 16px 14px}
.sheet-goods .g-cover{width:64px;height:64px;border-radius:10px;background:#f3f4f8;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:28px;color:#dfe3ea}
.sheet-goods .g-cover img{width:64px;height:64px;object-fit:cover}
.sheet-goods .g-info{margin-left:11px;flex:1}
.sheet-goods .g-price{color:var(--brand);font-weight:800;font-size:18px}
.sheet-body{background:#fff;margin-top:10px;padding:6px 16px 12px}
.form-row{display:flex;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.form-row:last-child{border-bottom:none}
.form-row label{width:78px;color:var(--ink2);font-size:14px;flex-shrink:0}
.form-row input,.form-row textarea{flex:1;font-size:14px;line-height:1.5;resize:none;color:var(--ink)}
.form-row textarea{min-height:42px;padding-top:8px}
.form-row input::placeholder,.form-row textarea::placeholder{color:var(--ink3)}
.virtual-tip{display:flex;align-items:center;background:#eafaf1;color:#0a8a4a;border-radius:10px;padding:11px 13px;font-size:13px;margin:10px 16px;line-height:1.5}
.pay-types{background:#fff;margin-top:10px;padding:8px 16px}
.sheet-ft{padding:12px 16px 22px}

/* ============ 结果页 / 查询页 / 订单卡 ============ */
.result-box{background:var(--card);margin:12px;border-radius:var(--r-card);padding:42px 24px 36px;text-align:center;box-shadow:var(--sh-card)}
.result-ico{width:84px;height:84px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;background:#fff7e8;color:var(--warning)}
.result-ico svg{width:48px;height:48px}
.result-ico.success{background:#e8fbf0;color:var(--success)}
.result-ico.wait{background:#fff7e8;color:var(--warning)}
.result-ico.fail{background:#ffefef;color:var(--danger)}
.result-title{font-size:20px;font-weight:700;margin-top:16px}
.result-desc{color:var(--ink3);font-size:13px;margin-top:8px;line-height:1.7}
.result-amount{color:var(--brand);font-size:34px;font-weight:800;margin:18px 0 2px;letter-spacing:-.5px}
.result-amount small{font-size:17px}
.result-order{background:var(--card);margin:0 12px 12px;border-radius:var(--r-card);padding:16px 18px;font-size:13.5px;color:var(--ink2);line-height:2.1;box-shadow:var(--sh-card)}
.result-order .k{color:var(--ink3);display:inline-block;width:72px}
.result-actions{padding:0 12px;display:flex;gap:10px}
.result-actions .btn{flex:1}

.query-box{background:var(--card);margin:12px;padding:18px 16px;border-radius:var(--r-card);box-shadow:var(--sh-card)}
.query-box .form-row{padding:15px 0}
.order-card{background:var(--card);border-radius:var(--r-card);margin:10px 12px;padding:15px 16px;font-size:13.5px;box-shadow:var(--sh-card)}
.order-card .oc-hd{display:flex;justify-content:space-between;font-weight:700;padding-bottom:10px;border-bottom:1px dashed var(--line);margin-bottom:10px;font-size:14px}
.order-card .oc-row{color:var(--ink2);line-height:2}
.oc-paybtns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.oc-paybtns button{flex:1;min-width:120px;height:38px;border-radius:999px;font-size:13px;color:#fff;font-weight:600}

/* ============ 动画 ============ */
@keyframes popIn{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.result-ico.success svg,.result-ico.fail svg{animation:popIn .45s cubic-bezier(.22,.61,.36,1)}
@keyframes drawCheck{to{stroke-dashoffset:0}}
.result-ico.success .rk-check{stroke-dasharray:48;stroke-dashoffset:48;animation:drawCheck .4s .15s forwards}
@keyframes spin{to{transform:rotate(360deg)}}
.rk-spin{transform-origin:center;animation:spin 1.4s linear infinite}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.buy-card,.result-box{animation:fadeUp .35s ease both}

/* ============ 20260917 补充：详情/分类/我的/下单 新结构 ============ */
/* 分类页标题别名 */
.cate-head .cate-head-title{font-size:18px;font-weight:700}
.cate-head .cate-head-sub{font-size:12px;opacity:.9;margin-top:4px}
.cg-tag{display:inline-block;font-size:10px;line-height:16px;padding:0 5px;border-radius:4px;margin-right:5px;font-weight:600;vertical-align:1px}
.cg-tag.v{color:var(--brand);background:#fff2ec}
.cg-tag.p{color:var(--info);background:#eaf2ff}
.goods-sales svg{width:11px;height:11px;vertical-align:-1px}

/* 商品详情页 */
.detail-loading{padding:90px 20px;text-align:center;color:var(--ink3);font-size:13px}
.detail-hero{width:100%;height:78vw;max-height:420px;background:#eef0f5;position:relative;overflow:hidden}
.detail-hero img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.detail-hero svg{width:72px;height:72px;color:#dfe3ea}
.detail-float-back{position:absolute;top:calc(12px + env(safe-area-inset-top));left:14px;z-index:20;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.3);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.detail-float-back svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2}
.detail-price-row{display:flex;align-items:baseline;gap:10px}
.detail-main .detail-price{display:flex;align-items:baseline;color:var(--brand);font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.detail-main .detail-price small{font-size:16px;margin-right:1px;font-weight:700}
.detail-main .detail-price span{font-size:30px}
.detail-main .detail-old{font-size:13px;color:var(--ink3);text-decoration:line-through}
.detail-type{margin-left:auto;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;align-self:center}
.detail-type.virtual{color:var(--brand);background:#fff2ec}
.detail-type.physical{color:var(--info);background:#eaf2ff}
h1.detail-title{font-size:17px;font-weight:700;margin:10px 0 0;line-height:1.5;color:var(--ink)}
.detail-shop-card{background:var(--card);margin:10px 12px 0;padding:14px 16px;border-radius:var(--r-card);box-shadow:var(--sh-card);display:flex;align-items:center}
.detail-shop-card .shop-logo{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#fff2ec,#ffe1d3);color:var(--brand);box-shadow:none}
.detail-shop-card .shop-logo img{width:46px;height:46px}
.detail-shop-card .shop-name{font-size:15px}
.shop-status{font-size:12px;color:var(--success);margin-top:4px}
.shop-status.closed{color:var(--ink3)}
.detail-section{background:var(--card);margin-top:10px;padding:16px 18px 84px}
.detail-section-hd{font-size:15px;font-weight:700;display:flex;align-items:center;margin-bottom:12px}
.dsh-bar{width:4px;height:15px;border-radius:2px;background:var(--brand-grad);margin-right:8px}
.rich-detail{font-size:14px;line-height:1.8;color:var(--ink2);word-break:break-word}
.rich-detail img{max-width:100%;height:auto;border-radius:10px;margin:10px 0}
.rich-detail p{margin:8px 0}
.detail-empty{text-align:center;color:var(--ink3);font-size:13px;padding:30px 0}

/* 详情底部操作条 */
.detail-action{position:fixed;bottom:0;left:0;right:0;max-width:540px;margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);height:calc(62px + env(safe-area-inset-bottom));padding:0 14px calc(env(safe-area-inset-bottom));display:flex;align-items:center;gap:4px;z-index:90}
.da-item{width:52px;text-align:center;font-size:10.5px;color:var(--ink2);line-height:1.3;flex-shrink:0}
.da-ico{width:23px;height:23px;margin:0 auto 2px;display:flex;align-items:center;justify-content:center;color:var(--ink2)}
.da-ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7}
.da-buy{flex:1;margin-left:8px;height:44px;border-radius:999px;background:var(--brand-grad);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--sh-brand)}
.da-buy[disabled]{background:#cfd3dc;box-shadow:none}

/* 我的页补充 */
.mine-id{margin-left:14px;min-width:0}
.order-goods{display:flex;align-items:center;margin:2px 0 8px}
.oc-cover{width:48px;height:48px;border-radius:10px;overflow:hidden;background:#f2f3f5;display:flex;align-items:center;justify-content:center;margin-right:10px;flex-shrink:0}
.oc-cover img{width:48px;height:48px;object-fit:cover}
.oc-cover-empty{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:#d3d8de}
.oc-cover-empty svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6}
.oc-title{flex:1;font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oc-label{color:var(--ink3);display:inline-block;width:64px}
.oc-amount{color:var(--ink)}

/* 下单页支付容器 */
.pay-list{padding:4px 16px 10px}
.pay-list:empty{display:none}
.buy-goods .bg-cover svg{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:1.6}
.pay-none svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.buy-scroll .addr-input{border:1px solid transparent}
.buy-scroll .addr-input:focus{border-color:var(--brand);background:#fff;outline:none}
.buy-scroll .buy-remark textarea:focus{border:1px solid var(--brand);outline:none}
