:root{
  --paper:#F7F5F0; --ink:#20242A; --sky:#3E7CB1; --sky2:#5FA0D6; --sand:#D99A4C; --sand2:#EBC078;
  --green:#3F7A63; --stone:#8C8A84; --card:#FFF; --line:#ECEAE4; --ok:#3F7A63; --wechat:#3FB55A; --red:#C4562F;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased}
body{font-family:"PingFang SC",-apple-system,sans-serif;background:#0d0d0d;display:flex;justify-content:center;min-height:100vh}
.phone{width:390px;height:844px;background:var(--paper);position:relative;overflow:hidden;box-shadow:0 0 0 11px #1c2027,0 0 0 13px #2a2f38,0 30px 80px rgba(0,0,0,.6);border-radius:42px}
.status{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:13px;font-weight:600;color:var(--ink);position:absolute;top:0;left:0;right:0;z-index:50}
.status.light{color:#fff}
.scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.scroll::-webkit-scrollbar{display:none}

/* 通用 */
.muted{color:var(--stone);font-size:13px;line-height:1.6}
.center{text-align:center}
.h2{font-size:16px;font-weight:800;color:var(--ink)}
.row-h{display:flex;align-items:center;justify-content:space-between}
.pad2{padding:16px 20px 96px}
.pad2.up{margin-top:-26px;position:relative;z-index:5}
.card{background:var(--card);border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(30,50,80,.06)}
.sec-t{font-size:16px;font-weight:800;color:var(--ink);margin:22px 2px 12px}
.pill-ok{display:inline-flex;align-items:center;gap:3px;background:#E7F4EE;color:var(--green);font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.pill-sky{display:inline-flex;align-items:center;gap:3px;background:#EAF3FB;color:var(--sky);font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.pill-ok svg,.pill-sky svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2}

/* 按钮 */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;border-radius:16px;font-size:16px;font-weight:800;border:none;width:100%;cursor:pointer}
.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.btn-primary{background:linear-gradient(135deg,var(--sky2),var(--sky));color:#fff;box-shadow:0 8px 22px rgba(62,124,177,.35)}
.btn-gold{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;box-shadow:0 8px 22px rgba(200,150,60,.35)}
.btn-wechat{background:var(--wechat);color:#fff;box-shadow:0 8px 22px rgba(63,181,90,.32)}
.btn-ghost{background:#fff;color:var(--sky);border:1.5px solid var(--line)}

/* 子页导航 */
.sub-nav{height:52px;display:flex;align-items:center;gap:8px;padding:44px 16px 0;box-sizing:content-box;font-size:16px;font-weight:700;color:var(--ink);position:sticky;top:0;background:rgba(247,245,240,.92);backdrop-filter:blur(10px);z-index:20}
.sub-nav svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:2.2}

/* Tab */
.tabbar{position:absolute;bottom:0;left:0;right:0;height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;padding-top:9px;z-index:40}
.tab{flex:1;text-align:center;color:#a8aca8}
.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;margin:0 auto}
.tab span{display:block;font-size:10px;margin-top:2px;font-weight:600}
.tab.on{color:var(--sky)}

/* ========== 模拟扫码入口 ========== */
.scan-page{min-height:844px;background:linear-gradient(165deg,#2C5E8C,#3E7CB1 50%,#264a6e);padding:70px 24px 40px;color:#fff}
.scan-top{text-align:center;margin-bottom:14px}
.scan-title{font-size:30px;font-weight:900;letter-spacing:3px;margin-top:10px}
.scan-sub{font-size:13px;opacity:.82;margin-top:6px;letter-spacing:1px}
.scan-hint{text-align:center;font-size:13px;opacity:.7;margin:24px 0 16px}
.scan-list{display:flex;flex-direction:column;gap:12px}
.scan-item{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.96);border-radius:18px;padding:16px;color:var(--ink);cursor:pointer;box-shadow:0 10px 24px rgba(20,40,70,.2)}
.scan-item.alt{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28)}
.si-ic{width:46px;height:46px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.si-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.9}
.si-ic.a{background:linear-gradient(135deg,#5FA0D6,#3E7CB1)}
.si-ic.b{background:linear-gradient(135deg,#EBC078,#D99A4C)}
.si-ic.c{background:linear-gradient(135deg,#E7A798,#D07E6C)}
.si-ic.d{background:rgba(255,255,255,.2)}
.si-b{flex:1}.si-b b{font-size:15px;font-weight:800;display:block}.si-b span{font-size:12px;opacity:.7;margin-top:2px;display:block}
.scan-item svg:last-child{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;opacity:.4}
.scan-item.alt svg:last-child{stroke:#fff;opacity:.6}
.scan-foot{text-align:center;font-size:11px;opacity:.6;margin-top:26px;line-height:1.7}

/* ========== 首页 HERO ========== */
.hero{height:340px;position:relative;background-size:cover;background-position:center 30%;overflow:hidden}
.hero-shade{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(30,22,14,.45) 0%,rgba(30,22,14,.05) 30%,rgba(30,22,14,.15) 55%,rgba(247,245,240,.85) 90%,#F7F5F0 100%),
  radial-gradient(circle at 85% 12%,rgba(240,160,70,.35),transparent 45%)}
.loc{position:absolute;top:56px;left:24px;z-index:5;display:flex;align-items:center;gap:5px;color:#fff;font-size:14px}
.loc svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2}
.loc b{font-weight:700}.loc span{opacity:.8;font-size:13px}
.loc-scan{margin-left:auto;display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);padding:5px 11px;border-radius:16px;font-size:12px;font-weight:700;color:#fff}
.loc-scan svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2}
.hero-title{position:absolute;top:88px;left:24px;z-index:5}
.ht-badge{display:inline-block;background:rgba(255,255,255,.22);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;margin-bottom:10px}
.hero-title h1{font-size:36px;color:#fff;letter-spacing:2px;line-height:1.16;text-shadow:0 2px 24px rgba(0,0,0,.45);font-weight:900}
.hero-sub{position:absolute;top:222px;left:24px;right:24px;font-size:13px;color:rgba(255,255,255,.96);line-height:1.6;z-index:5;display:flex;align-items:center;gap:5px;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.hero-sub svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2;flex-shrink:0}
.hero-search{position:absolute;bottom:26px;left:20px;right:20px;z-index:5;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.95);backdrop-filter:blur(4px);border-radius:24px;padding:12px 18px;color:#8a8378;font-size:14px;box-shadow:0 8px 24px rgba(30,22,14,.22)}
.hero-search svg{width:17px;height:17px;stroke:#B8500A;fill:none;stroke-width:2}
.search{display:none}
.search svg{width:18px;height:18px;stroke:#9aa3ab;fill:none;stroke-width:2}
.xiaoba{position:absolute;top:352px;left:20px;right:20px;z-index:8;border-radius:20px;height:104px;background:linear-gradient(135deg,#264a6e,#3E7CB1);box-shadow:0 16px 36px rgba(30,60,100,.32);display:flex;align-items:center;padding:0 20px;overflow:hidden}
.xiaoba::before{content:"";position:absolute;right:-24px;top:-24px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(235,192,120,.4),transparent 65%)}
.xb-txt{z-index:2}.xb-txt .t1{color:var(--sand2);font-size:17px;font-weight:800}.xb-txt .t2{color:rgba(255,255,255,.82);font-size:12px;margin-top:6px}
.xb-btn{margin-left:auto;z-index:2;background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;font-size:13px;font-weight:800;padding:9px 15px;border-radius:20px}
.body{padding:16px 16px 96px}

/* ===== 🔥 消费冲动引擎 ===== */
.deal-engine{background:linear-gradient(160deg,#FFF3E6,#FFE4CC);border:1.5px solid #FFCB9A;border-radius:20px;padding:14px;margin-bottom:14px;cursor:pointer;box-shadow:0 12px 30px rgba(212,71,46,.16)}
.de-top{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.de-flame{font-size:18px}
.de-title{font-size:16px;font-weight:900;color:#C4342A}
.de-cd{margin-left:auto;font-size:12px;font-weight:700;color:#8a4b10}
.de-cd span b{background:#3a2a1a;color:#fff;padding:2px 5px;border-radius:5px;font-size:12px;margin:0 1px;font-variant-numeric:tabular-nums}
.de-body{display:flex;gap:12px}
.de-img{width:104px;height:104px;border-radius:14px;flex-shrink:0;background:#ddd center/cover no-repeat;position:relative;overflow:hidden}
.de-corner{position:absolute;left:0;top:0;background:#D4472E;color:#fff;font-size:10px;font-weight:800;padding:3px 8px;border-bottom-right-radius:10px}
.de-info{flex:1;display:flex;flex-direction:column}
.de-name{font-size:14px;font-weight:800;color:var(--ink);line-height:1.35}
.de-price{display:flex;align-items:baseline;gap:7px;margin:8px 0 auto}
.de-now{color:#D4472E;font-weight:900}.de-now i{font-size:16px;font-style:normal;vertical-align:super}.de-now b{font-size:34px}
.de-orig{color:#a89a8a;text-decoration:line-through;font-size:13px}
.de-save{background:#D4472E;color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:10px}
.de-bar{position:relative;height:20px;background:#F3D9C0;border-radius:10px;overflow:hidden;margin-top:6px}
.de-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,#FF7E54,#D4472E,#FF7E54);background-size:120px 100%;animation:barFlow 1.4s linear infinite}
.de-bar-txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.de-cta{margin-top:12px;background:linear-gradient(135deg,#FF6B45,#D4472E);color:#fff;font-size:15px;font-weight:900;text-align:center;padding:13px;border-radius:24px}

/* ===== 金刚区 ===== */
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:14px}
.g5{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.g5-ic{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center}
.g5-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2}
.g5-ic.sky{background:linear-gradient(135deg,#5FA0D6,#3E7CB1)}
.g5-ic.gold{background:linear-gradient(135deg,#EBC078,#D99A4C)}
.g5-ic.red{background:linear-gradient(135deg,#FF7E54,#D4472E)}
.g5-ic.green{background:linear-gradient(135deg,#6FBF9A,#3F7A63)}
.g5-ic.dark{background:linear-gradient(135deg,#4a4436,#2b2620)}
.g5 span{font-size:12px;color:var(--ink);font-weight:600}

/* ===== 加社群横幅 ===== */
.join-banner{position:relative;overflow:hidden;display:flex;align-items:center;gap:11px;border-radius:16px;padding:13px 15px;margin-bottom:16px;color:#fff;cursor:pointer;box-shadow:0 8px 22px rgba(63,122,99,.28)}
.jb-ic{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:2}
.jb-ic svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:2}
.jb-b{flex:1;position:relative;z-index:2}.jb-b b{font-size:14px;font-weight:800}.jb-b span{display:block;font-size:11px;opacity:.9;margin-top:2px}
.jb-btn{background:#fff;color:#3F7A63;font-size:13px;font-weight:900;padding:8px 13px;border-radius:18px;flex-shrink:0;position:relative;z-index:2}

/* ===== 精选大卡 + 双列 ===== */
.feat-big{position:relative;overflow:hidden;border-radius:18px;height:180px;cursor:pointer;margin-bottom:12px;background:#ccc center/cover no-repeat;box-shadow:0 12px 28px rgba(30,40,60,.18)}
.fb-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,20,30,.8),transparent 55%)}
.fb-badge{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.92);color:#3F7A63;font-size:11px;font-weight:700;padding:5px 10px;border-radius:14px;z-index:2}
.fb-badge svg{width:14px;height:14px;fill:none;stroke:#3F7A63;stroke-width:2}
.fb-txt{position:absolute;left:16px;right:16px;bottom:14px;z-index:2}
.fb-t{font-size:19px;font-weight:900;color:#fff}
.fb-m{font-size:12px;color:rgba(255,255,255,.85);margin-top:4px}
.fb-price{display:flex;align-items:baseline;gap:6px;margin-top:8px}
.fb-price b{color:#fff;font-size:24px;font-weight:900}.fb-price span{color:rgba(255,255,255,.8);font-size:12px}
.fb-price em{margin-left:auto;background:#D4472E;color:#fff;font-style:normal;font-size:11px;font-weight:800;padding:3px 9px;border-radius:12px}
.route-duo{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:16px}
.rd2{background:#fff;border-radius:15px;overflow:hidden;cursor:pointer;box-shadow:0 6px 18px rgba(30,50,80,.08)}
.rd2-img{height:100px;background:#ddd center/cover no-repeat}
.rd2-b{padding:9px 11px 11px}
.rd2-t{font-size:14px;font-weight:800;color:var(--ink)}
.rd2-m{font-size:11px;color:var(--stone);margin-top:3px}
.rd2-p{font-size:15px;font-weight:900;color:#D4472E;margin-top:6px}
.rd2-p em{font-style:normal;font-size:10px;font-weight:700;color:#B07A22;background:#FBF0DC;padding:1px 6px;border-radius:8px;margin-left:5px}

/* ===== 新疆艾德莱斯纹样带（视觉身份）===== */
.atlas-strip{height:6px;border-radius:6px;margin:2px 0 14px;
  background:repeating-linear-gradient(90deg,#D4472E 0 14px,#E8912E 14px 24px,#2C6E9C 24px 36px,#3F7A63 36px 46px,#B8348A 46px 58px)}

/* ===== 横滑分类标签 ===== */
.feed-cats{display:flex;gap:9px;overflow-x:auto;padding:2px 0 12px;-webkit-overflow-scrolling:touch}
.feed-cats::-webkit-scrollbar{display:none}
.fc{flex-shrink:0;font-size:13px;font-weight:700;color:var(--stone);padding:7px 15px;border-radius:20px;background:#fff;border:1px solid var(--line);cursor:pointer}
.fc.on{background:linear-gradient(135deg,#D4472E,#E8912E);color:#fff;border-color:transparent}

/* ===== 小红书双列瀑布流 ===== */
.feed{column-count:2;column-gap:11px}
.note{break-inside:avoid;margin-bottom:11px;background:#fff;border-radius:15px;overflow:hidden;box-shadow:0 4px 14px rgba(30,40,60,.08);cursor:pointer}
.note-img{width:100%;display:block;background:#eee center/cover no-repeat;position:relative}
.note-img.tall{height:210px}.note-img.mid{height:158px}.note-img.sq{height:128px}
.note-tagline{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;backdrop-filter:blur(3px)}
.note-b{padding:9px 10px 10px}
.note-t{font-size:13px;font-weight:700;color:var(--ink);line-height:1.35}
.note-meta{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:11px;color:var(--stone)}
.note-av{width:18px;height:18px;border-radius:50%;background:center/cover;flex-shrink:0}
.note-like{margin-left:auto;display:flex;align-items:center;gap:3px}
/* 功能型笔记卡（会员/券包，mesh 背景 + 整块浮动）*/
.note.fn{position:relative;overflow:hidden;color:#fff;padding:15px}
.note.fn .nf-ic{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.note.fn .nf-ic svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:2}
.note.fn .nf-t{font-size:16px;font-weight:900;margin-top:10px;position:relative;z-index:2;line-height:1.3}
.note.fn .nf-d{font-size:11px;opacity:.9;margin-top:5px;position:relative;z-index:2}
.note.fn .nf-btn{background:#fff;color:#C4342A;font-size:12px;font-weight:900;text-align:center;padding:8px;border-radius:16px;margin-top:11px;position:relative;z-index:2}
.note.fn.g .nf-btn{color:#2f5040}
.sec{display:flex;align-items:baseline;justify-content:space-between;margin:6px 2px 14px}
.sec .zh{font-size:19px;color:var(--ink);font-weight:800;position:relative;padding-left:13px}
.sec .zh::before{content:"";position:absolute;left:0;top:4px;width:4px;height:17px;border-radius:2px;background:linear-gradient(var(--sky2),var(--green))}
.sec .more{font-size:12px;color:var(--stone)}
.sec .en{font-size:11px;letter-spacing:2px;color:var(--stone);margin-left:auto}

/* 本地人甄选路线（首页核心，真实感）*/
.route-feat{border-radius:20px;overflow:hidden;position:relative;height:210px;margin-bottom:14px;box-shadow:0 12px 30px rgba(30,60,50,.14);cursor:pointer;background-size:cover;background-position:center}
.route-feat::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,25,20,.78),transparent 58%)}
.rf-badge{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:5px;background:rgba(63,122,99,.92);color:#fff;font-size:11px;font-weight:700;padding:5px 11px;border-radius:14px}
.rf-badge svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2}
.rf-txt{position:absolute;left:18px;right:18px;bottom:16px;z-index:2}
.rf-t{font-size:20px;color:#fff;font-weight:900}
.rf-m{font-size:12px;color:rgba(255,255,255,.8);margin-top:6px}
.rf-tags{display:flex;gap:7px;margin-top:10px}
.rf-tags span{background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:600;padding:3px 9px;border-radius:11px;backdrop-filter:blur(4px)}
.route-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}
.route-mini{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 6px 18px rgba(30,50,80,.06);cursor:pointer}
.rm-img{height:88px}.rm-img.a{background:linear-gradient(135deg,#8FB9E0,#5FA0D6)}.rm-img.b{background:linear-gradient(135deg,#C9A86A,#9A7B45)}
.rm-t{font-size:14px;font-weight:800;color:var(--ink);padding:10px 12px 0}.rm-m{font-size:11px;color:var(--stone);padding:3px 12px 12px}

/* ===== 会员大卡（骨架重构：2×2权益宫格 + 整块浮动）===== */
.mcard{position:relative;overflow:hidden;border-radius:22px;padding:18px;cursor:pointer;color:#fff;box-shadow:0 14px 34px rgba(30,20,10,.28)}
.mcard-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.mct-l{display:flex;align-items:center;gap:11px}
.mct-l .ip{background:#fff;border-radius:50%;flex-shrink:0}
.mct-h b{color:var(--sand2);font-size:16px;font-weight:900}.mct-h span{display:block;color:rgba(255,255,255,.7);font-size:12px;margin-top:2px}
.mct-price{text-align:right;flex-shrink:0}
.mct-price b{color:#fff;font-size:26px;font-weight:900}.mct-price small{font-size:12px;opacity:.75}
.mct-price .mp-on{background:rgba(255,255,255,.2);color:#fff;font-size:12px;font-weight:800;padding:4px 10px;border-radius:14px}
.mcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0;position:relative;z-index:2}
.mcg-i{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 11px;backdrop-filter:blur(4px)}
.mcg-ic{width:30px;height:30px;border-radius:9px;background:rgba(235,192,120,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mcg-ic svg{width:17px;height:17px;fill:none;stroke:var(--sand2);stroke-width:2}
.mcg-i b{font-size:12px;font-weight:700;color:#fff;line-height:1.25}
.mcard-btn{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;font-size:14px;font-weight:900;text-align:center;padding:13px;border-radius:15px;position:relative;z-index:2}

/* ===== 双列入口宫格（券包 + 加社群 并排）===== */
.home-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.hd-tile{position:relative;overflow:hidden;border-radius:18px;padding:16px;color:#fff;cursor:pointer;min-height:150px;display:flex;flex-direction:column;box-shadow:0 12px 28px rgba(30,20,10,.2)}
.hd-ic{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.hd-ic svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:2}
.hd-big{font-size:38px;font-weight:900;line-height:1;margin-top:12px;position:relative;z-index:2}
.hd-big span{font-size:20px;vertical-align:super;margin-right:1px}
.hd-big.sm{font-size:26px;margin-top:14px}
.hd-t{font-size:12px;opacity:.92;margin-top:6px;position:relative;z-index:2;flex:1}
.hd-btn{background:#fff;color:#C4342A;font-size:13px;font-weight:900;text-align:center;padding:9px;border-radius:20px;position:relative;z-index:2}
.mesh-green .hd-btn{color:#2f5040}

/* 路线详情 */
.route-vendor{display:flex;align-items:center;gap:11px;background:#fff;border-radius:14px;padding:12px 14px;margin-top:16px;box-shadow:0 4px 14px rgba(30,50,80,.05)}
.route-vendor b{font-size:14px;color:var(--ink)}
.timeline{margin-top:18px}
.tl{display:grid;grid-template-columns:48px 18px 1fr;gap:8px;align-items:start}
.tl-time{font-size:12px;font-weight:800;color:var(--sky);padding-top:13px;text-align:right}
.tl-dot{position:relative;display:flex;justify-content:center;padding-top:17px}
.tl-dot::before{content:"";width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--sky);z-index:2}
.tl-dot.g::before{border-color:var(--sand)}
.tl-dot::after{content:"";position:absolute;top:25px;bottom:-13px;width:2px;background:var(--line)}
.tl:last-child .tl-dot::after{display:none}
.tl-c{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 4px 14px rgba(30,50,80,.05);margin-bottom:12px}
.tl-c b{font-size:14px;color:var(--ink)}
.route-cta{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#FDF2E0,#fff);border:1px solid #F2D9A8;border-radius:14px;padding:13px 14px;margin-top:8px;cursor:pointer}
.route-cta svg{width:22px;height:22px;fill:none;stroke:var(--sand);stroke-width:2;flex-shrink:0}
.route-cta b{font-size:14px;color:var(--ink)}
.route-cta .sh-go{margin-left:auto;color:var(--red);font-weight:800;font-size:13px;flex-shrink:0}

/* 会员权益通票页 */
.member-hero{background:linear-gradient(160deg,#2b2620,#40382c);padding:56px 20px 28px;text-align:center;color:#fff}
.member-hero .ip{background:#fff;border-radius:50%}
.mh-t{font-size:20px;font-weight:900;color:var(--sand2);margin-top:10px}
.mh-d{font-size:13px;opacity:.8;margin-top:6px}
/* ===== 券包顶部：出示巴扎客码主入口 ===== */
.cp-maincode{position:relative;overflow:hidden;display:flex;align-items:center;gap:13px;border-radius:18px;padding:15px;margin-bottom:12px;color:#fff;cursor:pointer;box-shadow:0 12px 30px rgba(30,20,10,.28)}
.cpm-qr{width:56px;height:56px;background:#fff;border-radius:12px;padding:5px;flex-shrink:0;position:relative;z-index:2}
.cpm-qr svg{width:100%;height:100%}
.cp-maincode .cpm-b{flex:1;position:relative;z-index:2}
.cp-maincode .cpm-t{font-size:15px;font-weight:900;color:var(--sand2)}
.cp-maincode .cpm-d{font-size:12px;color:rgba(255,255,255,.8);margin-top:3px;line-height:1.4}
.cp-maincode .cpm-go{position:relative;z-index:2;flex-shrink:0}
.cp-maincode .cpm-go svg{width:20px;height:20px;fill:none;stroke:rgba(255,255,255,.6);stroke-width:2}

/* ===== 券包总价值条（mesh 质感 + 金额浮动）===== */
.cp-sum{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;border-radius:18px;padding:18px 20px;margin-bottom:16px;color:#fff;box-shadow:0 12px 30px rgba(196,52,42,.3)}
.cps-l{position:relative;z-index:2}
.cps-lbl{font-size:15px;font-weight:900}
.cps-sub{font-size:12px;opacity:.9;margin-top:4px}
.cps-total{position:relative;z-index:2;font-weight:900;line-height:1}
.cps-total .cst-yen{font-size:22px;vertical-align:super;margin-right:1px}
.cps-total .float-num{font-size:44px}

/* 普通 vs 会员 逐项价格对照表 */
.cmp{background:#fff;border-radius:16px;overflow:hidden;margin-bottom:16px;box-shadow:0 6px 18px rgba(30,50,80,.07)}
.cmp-head{display:flex;align-items:center;background:linear-gradient(135deg,#2b2620,#40382c);color:#fff;font-size:12px;font-weight:800;padding:12px 14px}
.cmp-row{display:flex;align-items:center;padding:12px 14px;border-bottom:1px solid #F2EEE6;font-size:13px}
.cmp-row:last-of-type{border-bottom:none}
.cmp-c1{flex:1.4;display:flex;align-items:center;gap:7px;color:var(--ink);font-weight:700}
.cmp-c1 svg{width:18px;height:18px;fill:none;stroke:var(--sand);stroke-width:2;flex-shrink:0}
.cmp-head .cmp-c1{color:rgba(255,255,255,.85)}
.cmp-c2{flex:1;text-align:center;color:var(--stone)}
.cmp-c2 s{color:#b0b0b0}.cmp-c2.no{color:#c98;font-size:12px}
.cmp-head .cmp-c2{color:rgba(255,255,255,.7);font-weight:700}
.cmp-c3{flex:1;text-align:center}
.cmp-c3 b{color:#D4472E;font-size:15px;font-weight:900}
.cmp-c3 small{display:block;font-size:10px;color:#B07A22;font-weight:700;margin-top:1px}
.cmp-head .cmp-c3{color:var(--sand2);font-weight:900}
.cmp-foot{display:flex;justify-content:space-between;align-items:center;background:#FBF6EC;padding:12px 14px;font-size:12px;color:#8a6a2a}
.cmp-foot b{color:#D4472E;font-size:15px;font-weight:900}

.perk-compare{display:flex;gap:10px;margin-bottom:14px}
.pc-col{flex:1;background:#fff;border-radius:12px;padding:12px;text-align:center;border:1px solid var(--line)}
.pc-col.hi{background:#FBF6EC;border-color:#E8C88A}
.pc-h{font-size:13px;font-weight:800;color:var(--ink)}
.pc-x{font-size:11px;color:var(--stone);margin-top:4px}
.pc-col.hi .pc-x{color:#B07A22;font-weight:700}
.perk{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:13px 14px;margin-bottom:10px;box-shadow:0 4px 14px rgba(30,50,80,.05)}
.pk-ic{width:42px;height:42px;border-radius:12px;flex-shrink:0;background:#FBF6EC;display:flex;align-items:center;justify-content:center}
.pk-ic svg{width:22px;height:22px;fill:none;stroke:var(--sand);stroke-width:2}
.pk-b{flex:1}.pk-b b{font-size:14px;font-weight:800;color:var(--ink)}.pk-b span{display:block;font-size:12px;color:var(--stone);margin-top:2px}
.pk-tag{font-size:11px;font-weight:700;color:#B07A22;background:#FBF0DC;padding:3px 9px;border-radius:10px;flex-shrink:0}
/* 通票天数选择 */
.pass-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.pp-opt{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 6px;text-align:center;cursor:pointer}
.pp-opt.on{border-color:var(--sand);background:linear-gradient(135deg,#FBF6EC,#fff);box-shadow:0 6px 16px rgba(200,150,60,.18)}
.pp-tag{position:absolute;top:-8px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
.pp-d{font-size:14px;font-weight:800;color:var(--ink)}
.pp-p{font-size:18px;font-weight:900;color:var(--red);margin-top:5px}
.pass-note{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--green);line-height:1.5;background:#F1FAF4;border-radius:12px;padding:11px 13px;margin-bottom:18px}
.pass-note svg{width:15px;height:15px;fill:none;stroke:var(--green);stroke-width:2;flex-shrink:0;margin-top:1px}
.member-price{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#2b2620,#40382c);border-radius:16px;padding:16px 18px;margin-top:18px}
.mp-now{font-size:30px;font-weight:900;color:var(--sand2)}.mp-now small{font-size:14px;font-weight:600}
.mp-orig{font-size:12px;color:rgba(255,255,255,.65);margin-top:4px}
.mp-r{font-size:13px;font-weight:700;color:#fff;text-align:right;max-width:120px;line-height:1.4}

/* ===== 路线详情 v2（实景大图 + 冲击）===== */
.rd-photo{height:340px;background-size:cover;background-position:center;position:relative}
.rd-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,transparent 30%,rgba(0,0,0,.15) 55%,rgba(0,0,0,.72) 100%)}
.rd-back{position:absolute;top:50px;left:16px;z-index:3;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);cursor:pointer}
.rd-photo-tag{position:absolute;top:56px;right:16px;z-index:3;display:inline-flex;align-items:center;gap:5px;background:rgba(63,122,99,.9);color:#fff;font-size:11px;font-weight:700;padding:5px 11px;border-radius:14px;backdrop-filter:blur(4px)}
.rd-photo-tag svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2}
.rd-photo-t{position:absolute;left:20px;right:20px;bottom:22px;z-index:3}
.rd-en{font-size:12px;letter-spacing:3px;color:var(--sand2);margin-bottom:8px}
.rd-h{font-size:27px;font-weight:900;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.rd-body{background:var(--paper);border-radius:24px 24px 0 0;margin-top:-24px;position:relative;z-index:2;padding:20px;min-height:400px}
.urgency{background:linear-gradient(135deg,#E8734A,#C4562F);color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 8px 20px rgba(196,86,47,.3)}
.urg-top{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.urg-btm{font-size:12px;margin-top:9px;opacity:.95}.urg-btm b{color:#FFE0B0;font-weight:900}
.urgency .cd b{background:rgba(0,0,0,.28)}
.urgency .progress{background:rgba(255,255,255,.25)}
.urgency .progress>i{background:linear-gradient(90deg,#FFE0B0,#fff)}
.rd-sells{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.rd-sell{background:#fff;border-radius:14px;padding:14px 4px;text-align:center;box-shadow:0 4px 12px rgba(30,50,80,.05)}
.rd-sell svg{width:24px;height:24px;fill:none;stroke:var(--green);stroke-width:1.9;margin:0 auto 6px;display:block}
.rd-sell span{font-size:11px;color:#4a555f;font-weight:600}
.sec2{font-size:16px;font-weight:800;color:var(--ink);margin:22px 2px 12px}
.rd-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rg{height:96px;border-radius:12px;background-size:cover;background-position:center}
.rd-review{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:12px 14px;margin-top:12px;box-shadow:0 4px 12px rgba(30,50,80,.05)}
.rd-review b{font-size:13px;color:var(--ink)}
.rd-bar{position:sticky;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:12px 16px 16px;display:flex;align-items:center;gap:12px;z-index:30;box-shadow:0 -6px 20px rgba(0,0,0,.06)}
.rd-price{flex:1}
.rp-line{display:flex;align-items:center;gap:8px}
.rp-orig-x{font-size:12px;color:var(--stone);text-decoration:line-through}
.rp-drop{font-size:11px;font-weight:800;color:#fff;background:var(--red);padding:2px 8px;border-radius:8px}
.rp-now{font-size:13px;color:var(--ink);font-weight:700;margin-top:4px}
.rp-now b{color:var(--red);font-size:26px;font-weight:900;margin:0 4px}
.rp-hint{color:var(--sky);font-weight:700;font-size:12px}
.rd-cta{flex-shrink:0;background:linear-gradient(135deg,#5FC97A,#3FB55A);color:#fff;border:none;border-radius:14px;padding:13px 20px;font-size:15px;font-weight:800;display:flex;align-items:center;gap:7px;box-shadow:0 8px 20px rgba(63,181,90,.35);cursor:pointer}
.rd-cta svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2}

/* ===== 出租车落地页 v2 ===== */
.land-photo{height:300px;background-size:cover;background-position:center;position:relative}
.land-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,transparent 35%,rgba(0,0,0,.1) 55%,rgba(247,245,240,1) 100%)}
.lp-tag{position:absolute;top:52px;left:16px;z-index:3;display:inline-flex;align-items:center;gap:5px;background:rgba(0,0,0,.35);color:#fff;font-size:12px;font-weight:600;padding:6px 12px;border-radius:16px;backdrop-filter:blur(6px)}
.lp-tag svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2}
.lp-t{position:absolute;left:20px;right:20px;bottom:40px;z-index:3}
.lp-en{font-size:12px;letter-spacing:3px;color:var(--sand2);margin-bottom:8px}
.lp-h{font-size:26px;font-weight:900;color:#fff;line-height:1.3;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.land-route{height:150px;border-radius:18px;background-size:cover;background-position:center;position:relative;overflow:hidden;margin-bottom:12px;box-shadow:0 8px 22px rgba(30,50,80,.12);cursor:pointer}
.land-route::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 60%)}
.land-route.sm{height:110px}
.lr-badge{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;background:rgba(63,122,99,.9);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:12px}
.lr-badge svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:2}
.lr-txt{position:absolute;left:16px;right:16px;bottom:14px;z-index:2}
.lr-t{font-size:18px;font-weight:900;color:#fff}
.lr-m{font-size:12px;color:rgba(255,255,255,.85);margin-top:4px}
.land-guide{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#E7F4EE,#fff);border:1px solid #CFEBD8;border-radius:16px;padding:12px 14px;margin-top:20px;cursor:pointer}
.lg-ic{flex-shrink:0;width:40px;height:40px}
.lg-b{flex:1}.lg-b b{font-size:14px;font-weight:800;color:var(--ink)}.lg-b span{display:block;font-size:12px;color:var(--stone);margin-top:2px}
.lg-btn{flex-shrink:0;display:flex;align-items:center;gap:4px;background:var(--wechat);color:#fff;font-size:13px;font-weight:800;padding:8px 13px;border-radius:18px}
.lg-btn svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2}
.land-enter{margin-top:12px;text-align:center;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px;font-size:15px;font-weight:700;color:var(--sky);display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.land-enter svg{width:18px;height:18px;fill:none;stroke:var(--sky);stroke-width:2}

/* 落地页强利益主按钮（加群更香）*/
.land-hook{position:relative;overflow:hidden;display:block;border-radius:18px;padding:16px;margin-top:20px;color:#fff;cursor:pointer;box-shadow:0 14px 32px rgba(63,122,99,.35)}
.lh-head{display:flex;align-items:center;gap:12px;position:relative;z-index:2}
.lh-gift{font-size:34px;flex-shrink:0}
.lh-b{flex:1}
.lh-t{font-size:16px;font-weight:800;line-height:1.35}.lh-t b{font-size:24px;color:#FFE39A}
.lh-d{font-size:11px;opacity:.92;margin-top:5px}
.lh-d svg{width:12px;height:12px;fill:none;stroke:#FFE39A;stroke-width:2.5;vertical-align:-1px}
.lh-btn{margin-top:14px;background:#fff;color:#2f7a5a;font-size:16px;font-weight:900;text-align:center;padding:13px;border-radius:24px;display:flex;align-items:center;justify-content:center;gap:6px;position:relative;z-index:2}
.lh-btn svg{width:18px;height:18px;fill:none;stroke:#2f7a5a;stroke-width:2}
/* 逃生门弱化成小字 */
.land-skip{margin:14px 0 6px;text-align:center;font-size:13px;color:#9a9a9a;cursor:pointer}
.quads{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}
.quad{text-align:center;cursor:pointer}
.quad .ic{width:52px;height:52px;margin:0 auto 8px;border-radius:17px;display:flex;align-items:center;justify-content:center}
.quad .ic svg{width:25px;height:25px;stroke:#fff;fill:none;stroke-width:1.9}
.quad .ic.a{background:linear-gradient(135deg,#5FA0D6,#3E7CB1)}
.quad .ic.b{background:linear-gradient(135deg,#EBC078,#D99A4C)}
.quad .ic.c{background:linear-gradient(135deg,#E7A798,#D07E6C)}
.quad .ic.d{background:linear-gradient(135deg,#71B79A,#3F7A63)}
.quad span{font-size:12px;color:#4a4f55;font-weight:600}
.mine-coupon-tip{background:#FBF0DC;color:#B07A22;border-radius:12px;padding:12px 14px;font-size:13px;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.mine-coupon-tip svg{width:16px;height:16px;fill:none;stroke:#B07A22;stroke-width:2}
.feature{border-radius:20px;overflow:hidden;position:relative;height:200px;margin-bottom:14px;box-shadow:0 12px 30px rgba(30,60,50,.14);cursor:pointer}
.feature.sm{height:170px;margin-bottom:16px}
.feature{background:#2f5040 center/cover no-repeat}
.feature .bg{position:absolute;inset:0;background:radial-gradient(circle at 80% 15%,rgba(235,192,120,.22),transparent 55%),linear-gradient(0deg,rgba(15,25,20,.82),transparent 60%)}
.feature .tag{position:absolute;top:14px;left:14px;z-index:2;background:rgba(63,122,99,.92);color:#fff;font-size:11px;font-weight:700;padding:4px 11px;border-radius:20px}
.feature .txt{position:absolute;left:18px;bottom:18px;z-index:2}
.feature .txt .en{font-size:11px;letter-spacing:3px;color:var(--sand2);margin-bottom:6px}
.feature .txt .t{font-size:21px;color:#fff;font-weight:800}
.feature .txt .d{font-size:12px;color:rgba(255,255,255,.75);margin-top:5px}
.goods{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:22px}
.good{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(30,50,80,.07);cursor:pointer}
.good .pic{height:112px;position:relative}
.good.g1 .pic{background:linear-gradient(135deg,#8FB9E0,#5FA0D6)}
.good.g2 .pic{background:linear-gradient(135deg,#E8C88A,#C99A4E)}
.good .pic .b{position:absolute;top:9px;left:9px;background:rgba(255,255,255,.9);color:#3F7A63;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px}
.good .info{padding:11px 13px 13px}
.good .info .n{font-size:14px;color:var(--ink);font-weight:700}
.good .info .m{font-size:11px;color:var(--stone);margin-top:4px}
.good .info .p{margin-top:9px;display:flex;align-items:baseline;gap:5px}
.good .info .p b{color:var(--red);font-size:17px;font-weight:900}
.good .info .p s{color:#bcbfc2;font-size:11px}
.good .info .p .tag{margin-left:auto;background:#FBF0DC;color:#B07A22;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px}
.shop-row{display:flex;align-items:center;gap:13px;background:#fff;border-radius:16px;padding:12px 14px;margin-bottom:11px;box-shadow:0 6px 18px rgba(30,50,80,.06);cursor:pointer}
.shop-row .th{width:64px;height:64px;border-radius:14px;flex-shrink:0;background:#eee center/cover no-repeat}
.shop-row .info{flex:1}
.shop-row .info .n{font-size:14px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:6px}
.shop-row .info .n .cert{background:#E7F4EE;color:#3F7A63;font-size:10px;font-weight:700;padding:1px 7px;border-radius:9px}
.shop-row .info .m{font-size:12px;color:var(--stone);margin-top:4px}
.shop-row .info .m .rate{color:#F2A100;font-weight:800}
.shop-tags{display:flex;gap:6px;margin-top:6px}
.shop-tags span{font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;background:#FFF1E0;color:#B8500A}
.shop-tags span:last-child{background:#FDE8E4;color:#D4472E}
.shop-row .go{color:#cfd4d8}.shop-row .go svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}

/* toast */
.toast{position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-16px);background:rgba(32,36,42,.95);color:#fff;padding:11px 20px;border-radius:24px;font-size:14px;font-weight:600;opacity:0;transition:.3s;z-index:200;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ========== 场景流：闪屏 ========== */
.splash{height:844px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#fff}
.splash.sky{background:linear-gradient(165deg,#5FA0D6,#2C5E8C)}
.splash.blue{background:linear-gradient(165deg,#6E85B7,#3E5C8A)}
.splash.sand{background:linear-gradient(165deg,#D99A4C,#9A4E22)}
.sp-t{font-size:30px;font-weight:900;letter-spacing:3px}
.sp-s{font-size:14px;opacity:.85}
.sp-go{width:auto;padding:0 26px;margin-top:24px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.35)}

/* 场景 hero */
.scene-hero{padding:60px 22px 52px;position:relative;color:#fff}
.scene-hero.taxi{background:linear-gradient(160deg,#5FA0D6,#3E7CB1)}
.scene-hero.hotel{background:#3E5C8A center/cover no-repeat;background-image:linear-gradient(160deg,rgba(20,28,50,.72),rgba(20,28,50,.5)),url('img/xinjiang2.jpg')}
.scene-hero.shop{background:#9A4E22 center/cover no-repeat;background-image:linear-gradient(160deg,rgba(40,20,10,.68),rgba(40,20,10,.48)),url('img/nangrou.jpg')}
.sh-bar{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);padding:7px 12px;border-radius:14px;font-size:12px;margin-bottom:14px}
.sh-bar svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2}
.sh-title{font-size:24px;font-weight:900;line-height:1.32}
.sh-sub{font-size:13px;opacity:.9;margin-top:8px}

/* 免费要点 tips */
.tips{margin-top:10px}
.tip{display:flex;gap:10px;font-size:13px;color:#4a555f;line-height:1.5;padding:7px 0;border-bottom:1px solid var(--line)}
.tip:last-child{border-bottom:none}
.tip b{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:#EAF3FB;color:var(--sky);font-size:12px;display:flex;align-items:center;justify-content:center}
.tips.blur{filter:blur(4px);user-select:none}
.free-row{margin-top:12px;padding:11px 12px;background:#EAF3FB;border-radius:12px;font-size:13px;color:var(--sky);font-weight:600;display:flex;align-items:center;gap:8px}
.free-row svg{width:16px;height:16px;fill:none;stroke:var(--sky);stroke-width:2}
.free-row span{margin-left:auto;font-weight:800}

/* 券包卡（锁） */
.reward-card{display:flex;align-items:center;background:linear-gradient(135deg,#2b2620,#40382c);border-radius:16px;padding:14px 16px;margin-top:14px;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 10px 24px rgba(40,28,10,.2)}
.rc-lock{position:absolute;top:10px;right:12px;opacity:.5}
.rc-lock svg{width:18px;height:18px;fill:none;stroke:var(--sand2);stroke-width:2}
.coupon-mini{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;border-radius:10px;padding:8px 12px;text-align:center;flex-shrink:0}
.coupon-mini b{font-size:20px;font-weight:900;display:block;line-height:1}.coupon-mini small{font-size:11px}
.rc-txt{margin-left:12px;flex:1}
.rc-t{color:var(--sand2);font-size:15px;font-weight:800}
.rc-d{color:rgba(255,255,255,.7);font-size:12px;margin-top:4px}
.rc-btn{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;font-size:13px;font-weight:800;padding:8px 12px;border-radius:18px;flex-shrink:0}

/* 广告位（商品形态） */
.ad{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:13px 14px;margin-bottom:10px;box-shadow:0 6px 18px rgba(30,50,80,.06);cursor:pointer}
.ad-ic{width:46px;height:46px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ad-ic.bus{background:linear-gradient(135deg,#8FB9E0,#5FA0D6)}
.ad-ic.box{background:linear-gradient(135deg,#EBC078,#C99A4E)}
.ad-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2}
.ad-b{flex:1}.ad-t{font-size:14px;font-weight:800;color:var(--ink)}.ad-d{font-size:12px;color:var(--stone);margin-top:3px}
.ad-p{text-align:right;flex-shrink:0}.ad-p b{color:var(--red);font-size:17px;font-weight:900}.ad-p small{display:block;font-size:10px;color:var(--stone)}

/* 场景2 小条 */
.smallbar{display:flex;gap:12px;background:linear-gradient(135deg,#EAF3FB,#f4f9fd);border-radius:16px;padding:14px;align-items:center;border:1px solid #DEEBF6}
.sb-txt{flex:1}.sb-txt .k{font-size:11px;color:var(--sky);font-weight:800}.sb-txt .tt{font-size:14px;color:var(--ink);font-weight:700;margin-top:3px;line-height:1.4}
.mini2{display:flex;gap:10px;margin-top:12px}
.m2{flex:1;background:var(--paper);border-radius:12px;padding:11px 12px;font-size:13px;font-weight:700;color:var(--ink)}
.m2 span{display:block;font-size:11px;color:var(--stone);font-weight:500;margin-top:2px}
.route-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#EAF3FB,#fff);border:1px solid #DEEBF6;border-radius:16px;padding:15px;margin-top:14px;position:relative;cursor:pointer}
.route-card svg:not(.rc-lock svg){width:30px;height:30px;fill:none;stroke:var(--sky);stroke-width:1.8;flex-shrink:0}
.route-card .rc-t{color:var(--ink);font-size:15px;font-weight:800}
.route-card .rc-d{color:var(--stone);font-size:12px;margin-top:3px}

/* 场景3 验真 */
.card.verify{border:1.5px solid #CFEBD8;background:linear-gradient(135deg,#F1FAF4,#fff)}
.h2 svg{width:19px;height:19px;fill:none;stroke:var(--green);stroke-width:2;vertical-align:-3px;display:inline}
.pl-list{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line);margin-top:8px}
.pl{display:flex;justify-content:space-between;align-items:baseline;padding:11px 14px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink)}
.pl:last-child{border-bottom:none}
.pl b{color:var(--green);font-size:17px;font-weight:900}.pl b small{font-size:11px;color:var(--stone);font-weight:500}
.verify-note{margin-top:10px;font-size:12px;color:var(--green);display:flex;align-items:center;gap:6px;line-height:1.5}
.verify-note svg{width:15px;height:15px;fill:none;stroke:var(--green);stroke-width:2;flex-shrink:0}
.deal-card{display:flex;align-items:center;background:linear-gradient(135deg,#2b2620,#40382c);border-radius:16px;padding:14px 16px;margin-top:14px;position:relative;overflow:hidden;cursor:pointer}
.dc-tag{position:absolute;top:0;left:0;background:#C4562F;color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:0 0 10px 0}
.dc-main{flex:1;padding-top:8px}.dc-now{color:#fff;font-size:15px;font-weight:700}.dc-now b{color:var(--sand2);font-size:22px;font-weight:900}
.dc-plus{color:rgba(255,255,255,.75);font-size:12px;margin-top:6px;display:flex;align-items:center;gap:4px}
.dc-plus svg{width:13px;height:13px;fill:none;stroke:var(--sand2);stroke-width:2}.dc-plus b{color:var(--sand2)}
.dc-btn{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;font-size:13px;font-weight:800;padding:9px 14px;border-radius:20px;flex-shrink:0}
.deal-strip{background:#FBF0DC;color:#B07A22;border-radius:12px;padding:12px 14px;font-size:14px;font-weight:700;margin:16px 0;display:flex;align-items:center;gap:8px}
.deal-strip svg{width:18px;height:18px;fill:none;stroke:#B07A22;stroke-width:2}

/* ========== 加群解锁 / 解锁成功 ========== */
.unlock-wrap{padding:8px 20px 40px}
.unlock-hero{text-align:center;padding:14px 0 8px}
.uh-t{font-size:20px;font-weight:900;color:var(--ink);margin-top:8px}
.uh-t b{color:var(--sky)}
.uh-d{font-size:13px;color:var(--stone);margin-top:6px}
.unlock-list{background:#fff;border-radius:16px;padding:6px 16px;box-shadow:0 6px 18px rgba(30,50,80,.06);margin-top:14px}
.ul-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.ul-item:last-child{border-bottom:none}
.ul-item>svg{width:24px;height:24px;fill:none;stroke:var(--sky);stroke-width:2;flex-shrink:0}
.ul-item b{font-size:14px;color:var(--ink)}
.qrbox{width:170px;height:170px;margin:18px auto 10px;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.1);padding:14px}
.qrbox svg{width:100%;height:100%}
.ok-wrap{padding:80px 26px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.ok-check{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#5FC97A,#3FB55A);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(63,181,90,.3)}
.ok-check svg{width:44px;height:44px;fill:none;stroke:#fff;stroke-width:3}
.ok-t{font-size:22px;font-weight:900;color:var(--ink)}
.ok-d{font-size:14px;color:var(--stone);line-height:1.6}
.ok-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:14px;width:100%;text-align:left;box-shadow:0 6px 18px rgba(30,50,80,.06)}
.ok-card b{font-size:15px;color:var(--ink)}

/* 子页详情 hero */
.detail-hero{height:220px;position:relative}
.detail-hero.guide{display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:#2f5040 center/cover no-repeat;background-image:linear-gradient(0deg,rgba(15,25,20,.8),transparent 60%),url('img/market.jpg')}
.detail-hero.bus{background:#3E7CB1 center/cover no-repeat;background-image:linear-gradient(0deg,rgba(15,25,35,.4),transparent 55%),url('img/lake.jpg')}
.detail-hero.shopbg{background:#9A4E22 center/cover no-repeat;background-image:linear-gradient(0deg,rgba(30,15,10,.5),transparent 55%),url('img/nangrou.jpg')}
.dh-en{font-size:11px;letter-spacing:3px;color:var(--sand2);margin-bottom:6px}
.dh-t{font-size:22px;font-weight:900;color:#fff}
.dh-back{position:absolute;top:48px;left:14px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.3);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);cursor:pointer}
.dh-badge{position:absolute;bottom:16px;left:16px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.92);color:var(--green);font-size:12px;font-weight:700;padding:5px 11px;border-radius:14px}
.dh-badge svg{width:14px;height:14px;fill:none;stroke:var(--green);stroke-width:2}
.detail-body{background:var(--paper);border-radius:24px 24px 0 0;margin-top:-24px;position:relative;padding:20px;min-height:400px}
.det-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.det-t{font-size:19px;font-weight:900;color:var(--ink);flex:1}
.det-price{text-align:right;flex-shrink:0}.det-price b{color:var(--red);font-size:24px;font-weight:900}.det-price span{font-size:12px;color:var(--stone)}.det-price s{display:block;color:#bcbfc2;font-size:12px}
.det-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.det-sec{margin-top:20px}.det-sec b{font-size:15px;color:var(--ink);display:block;margin-bottom:7px}
.rev{background:#fff;border-radius:12px;padding:12px;font-size:13px;color:#4a555f;line-height:1.5}.rev b{display:inline;font-size:13px}
.lockcard{position:relative}
.lock-cta{margin-top:14px;text-align:center;padding:16px;background:#FBF6EC;border:1px dashed #E8C88A;border-radius:14px;cursor:pointer}
.lock-cta>svg{width:28px;height:28px;fill:none;stroke:var(--sky);stroke-width:2}
.lc-t{font-size:15px;font-weight:800;color:var(--ink);margin-top:6px}
.lc-d{font-size:12px;color:var(--stone);margin-top:3px}

/* 购买栏 */
.buybar{position:absolute;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:12px 16px;display:flex;gap:12px;z-index:30}
.buybar button{flex:1;border:none;border-radius:14px;padding:9px 0;font-weight:800;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer}
.bb-orig{background:#EAF0F5;color:var(--ink)}.bb-orig span{font-size:17px}.bb-orig small{font-size:11px;color:var(--stone);font-weight:500}
.bb-vip{background:linear-gradient(135deg,var(--sand2),var(--sand));color:#3a2a10;font-size:16px}
.bb-vip svg{width:14px;height:14px;fill:none;stroke:#3a2a10;stroke-width:2.2;display:inline;vertical-align:-2px}.bb-vip small{font-size:10px;font-weight:600}

/* 子页通用标题 */
.page-plain{padding:50px 20px 96px}
.ph-title{font-size:22px;font-weight:900;color:var(--ink);margin:6px 0 12px}
.ph-sub{font-size:12px;color:var(--stone);margin:-8px 0 14px}
.seg{display:flex;background:#E9EEF3;border-radius:12px;padding:3px;margin-bottom:16px}
.seg-i{flex:1;text-align:center;padding:8px 0;font-size:14px;font-weight:700;color:var(--stone);border-radius:9px;cursor:pointer}
.seg-i.on{background:#fff;color:var(--sky);box-shadow:0 2px 6px rgba(30,50,80,.1)}
.chip-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px}
.chip-row::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;background:#fff;border:1px solid var(--line);color:#556;font-size:13px;font-weight:600;padding:7px 15px;border-radius:20px}
.chip.on{background:var(--sky);color:#fff;border-color:var(--sky)}
.glist{display:flex;flex-direction:column;gap:10px}
.gitem{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:13px;box-shadow:0 4px 14px rgba(30,50,80,.05);cursor:pointer}
.gi-ic{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.gi-ic svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:2}
.gi-ic.sky{background:linear-gradient(135deg,#5FA0D6,#3E7CB1)}.gi-ic.sand{background:linear-gradient(135deg,#EBC078,#D99A4C)}.gi-ic.green{background:linear-gradient(135deg,#71B79A,#3F7A63)}
.gi-b{flex:1}.gi-t{font-size:14px;font-weight:800;color:var(--ink)}.gi-m{font-size:12px;color:var(--stone);margin-top:3px}
.gi-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;gap:3px}
.gi-tag svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.2}
.gi-tag.free{background:#E7F4EE;color:var(--green)}.gi-tag.lock{background:#FBF0DC;color:#B07A22}

/* mini 地图 */
.mini-map{height:300px;border-radius:16px;position:relative;overflow:hidden;background:linear-gradient(135deg,#dfe8ee,#eef3f7);margin-bottom:14px}
.mm-grid{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#e6edf2 0 34px,#dde6ec 34px 36px),repeating-linear-gradient(90deg,#e6edf2 0 34px,#dde6ec 34px 36px)}
.mm-pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;cursor:pointer}
.mm-pin svg{width:30px;height:30px;fill:#E8734A;stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 3px 5px rgba(0,0,0,.25))}
.mm-pin.sky svg{fill:var(--sky)}.mm-pin.gold svg{fill:var(--sand)}
.mm-pin span{background:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:9px;margin-top:3px;box-shadow:0 2px 6px rgba(0,0,0,.12);white-space:nowrap}
.map-scan{display:flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(135deg,#5FA0D6,#3E7CB1);color:#fff;font-size:14px;font-weight:700;padding:13px;border-radius:14px;margin-bottom:14px;box-shadow:0 6px 16px rgba(62,124,177,.3)}
.map-scan svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2}
.map-sheet{background:#fff;border-radius:18px;padding:16px;box-shadow:0 6px 18px rgba(30,50,80,.06)}
.ms-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.ms-head b{font-size:15px;color:var(--ink)}

/* 商城 */
.shop-banner{border-radius:18px;padding:20px;background:#3E7CB1 center/cover no-repeat;position:relative;overflow:hidden;margin-bottom:16px;cursor:pointer}
.sb-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,45,.68),rgba(20,30,45,.15))}
.shop-banner>*:not(.sb-shade){position:relative;z-index:2}
.sb-tag{display:inline-block;background:rgba(255,255,255,.25);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:12px}
.sb-t{color:#fff;font-size:21px;font-weight:900;margin-top:10px}.sb-d{color:rgba(255,255,255,.85);font-size:12px;margin-top:5px}
.sb-price{margin-top:12px;color:#fff}.sb-price b{font-size:26px;font-weight:900}.sb-price span{font-size:12px;opacity:.85;margin-left:4px}
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.prod{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 5px 16px rgba(30,50,80,.06);cursor:pointer}
.p-img{height:120px;background:#eee center/cover no-repeat;position:relative}
.p-hot{position:absolute;left:8px;top:8px;background:rgba(212,71,46,.92);color:#fff;font-size:10px;font-weight:800;padding:2px 8px;border-radius:10px}
.p-b{padding:10px 12px 13px}.p-t{font-size:13px;font-weight:700;color:var(--ink);line-height:1.35}
.p-price{margin-top:7px;display:flex;align-items:baseline;gap:5px}.p-price b{color:var(--red);font-size:16px;font-weight:900}.p-price s{color:#bcbfc2;font-size:11px}
.p-tag{margin-top:6px;display:inline-block;background:#FBF0DC;color:#B07A22;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px}

/* 淡季特产复购板块（v2核心） */
.revisit-card{margin-top:20px;border-radius:18px;overflow:hidden;position:relative;background:#8a4b1a center/cover no-repeat;min-height:158px;box-shadow:0 10px 26px rgba(138,75,26,.22)}
.rv-shade{position:absolute;inset:0;background:linear-gradient(105deg,rgba(60,30,10,.86) 42%,rgba(60,30,10,.35) 100%)}
.rv-inner{position:relative;z-index:2;padding:18px 20px}
.rv-tag{display:inline-block;background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px;backdrop-filter:blur(4px)}
.rv-t{color:#fff;font-size:20px;font-weight:900;margin:9px 0 5px}
.rv-d{color:rgba(255,255,255,.9);font-size:12px;line-height:1.6}
.rv-btn{display:inline-flex;align-items:center;gap:5px;margin-top:13px;background:linear-gradient(135deg,#FFD98A,#F0A93C);color:#7a3a10;font-size:14px;font-weight:900;padding:10px 16px;border-radius:22px;cursor:pointer;box-shadow:0 6px 16px rgba(240,169,60,.4)}
.rv-btn svg{width:16px;height:16px;fill:none;stroke:#7a3a10;stroke-width:2}
.revisit-list .rv-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:11px 13px;margin-bottom:11px;box-shadow:0 5px 16px rgba(30,50,80,.06);cursor:pointer}
.rvi-img{width:58px;height:58px;border-radius:12px;flex-shrink:0;background:#eee center/cover no-repeat}
.rvi-b{flex:1}
.rvi-n{font-size:14px;font-weight:800;color:var(--ink)}
.rvi-m{font-size:11px;color:var(--stone);margin-top:4px}.rvi-m b{color:#D4472E;font-weight:800}
.rvi-p{text-align:right;flex-shrink:0}.rvi-p b{color:var(--red);font-size:17px;font-weight:900}.rvi-p small{display:block;font-size:10px;color:#B07A22;font-weight:700}

/* 我的 */
.mine-hero{padding:56px 20px 30px;position:relative;background:#3E7CB1 center/cover no-repeat;background-image:linear-gradient(160deg,rgba(30,22,14,.5),rgba(30,22,14,.3)),url('img/lake.jpg')}
.mine-user{display:flex;align-items:center;gap:14px}
.mu-av{width:54px;height:54px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.mu-name{color:#fff;font-size:17px;font-weight:800}.mu-sub{color:rgba(255,255,255,.85);font-size:12px;margin-top:3px}
.mine-stats{display:flex;justify-content:space-around;margin-top:18px}
.mst{text-align:center;color:#fff;cursor:pointer}.mst b{font-size:19px;font-weight:900}.mst span{font-size:11px;opacity:.85;display:block;margin-top:2px}
.mine-body{padding:16px 20px 96px;margin-top:-14px}
.wechat-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:14px;box-shadow:0 8px 22px rgba(30,50,80,.1);cursor:pointer}
.wc-ic{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#5FC97A,#3FB55A);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wc-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2}
.wc-b{flex:1}.wc-b b{font-size:15px;color:var(--ink)}.wc-b span{display:block;font-size:12px;color:var(--stone);margin-top:2px}
.wc-go{color:#cfd4d8}.wc-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.mine-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#fff;border-radius:16px;padding:18px 6px;margin-top:14px;box-shadow:0 4px 14px rgba(30,50,80,.05)}
.mg{text-align:center;cursor:pointer}
.mg-ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin:0 auto 7px}
.mg-ic svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:2}
.mg-ic.sand{background:linear-gradient(135deg,#EBC078,#D99A4C)}.mg-ic.sky{background:linear-gradient(135deg,#5FA0D6,#3E7CB1)}.mg-ic.gold{background:linear-gradient(135deg,#E8C86A,#C8971E)}.mg-ic.rose{background:linear-gradient(135deg,#E7A798,#D07E6C)}
.mg span{font-size:12px;color:#4a4f55;font-weight:600}
.mine-list{background:#fff;border-radius:16px;margin-top:14px;padding:0 16px;box-shadow:0 4px 14px rgba(30,50,80,.05)}
.ml{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink);font-weight:600;cursor:pointer}
.ml:last-child{border-bottom:none}
.ml-ic{width:24px;flex-shrink:0}.ml-ic svg{width:22px;height:22px;fill:none;stroke:var(--sky);stroke-width:2}
.ml>svg{margin-left:auto;width:18px;height:18px;fill:none;stroke:#cfd4d8;stroke-width:2}
.ml-soon{margin-left:auto;font-size:11px;color:var(--stone);background:var(--paper);padding:3px 9px;border-radius:10px}

/* 券包/核销/订单/积分/扫一扫/聊天/旅友会 */
.coupon-t{display:flex;align-items:stretch;background:#fff;border-radius:14px;margin-bottom:14px;box-shadow:0 8px 22px rgba(212,71,46,.1);cursor:pointer;position:relative;overflow:hidden}
.ct-amt{width:96px;flex-shrink:0;background:linear-gradient(135deg,#FF6B45,#D4472E);color:#fff;text-align:center;padding:20px 0;display:flex;flex-direction:column;justify-content:center;position:relative}
.ct-amt b{font-size:28px;font-weight:900;display:block;line-height:1}
.ct-amt small{font-size:11px;opacity:.9;margin-top:5px}
/* 撕口齿孔：金额区右缘的虚线 + 上下半圆缺口 */
.ct-amt::after{content:"";position:absolute;right:-1px;top:6px;bottom:6px;border-right:2px dashed rgba(255,255,255,.6)}
.coupon-t::before,.coupon-t::after{content:"";position:absolute;left:89px;width:14px;height:14px;border-radius:50%;background:var(--paper);z-index:2}
.coupon-t::before{top:-7px}.coupon-t::after{bottom:-7px}
.ct-b{flex:1;padding:14px 16px;display:flex;flex-direction:column;justify-content:center}.ct-n{font-size:15px;font-weight:800;color:var(--ink)}.ct-d{font-size:11px;color:var(--stone);margin-top:4px}
.ct-use{align-self:center;margin-right:16px;background:linear-gradient(135deg,#FFD98A,#F0A93C);color:#7a3a10;font-weight:900;font-size:13px;flex-shrink:0;padding:8px 14px;border-radius:20px}
.empty{text-align:center;padding:50px 20px}.empty-t{font-size:16px;font-weight:800;color:var(--ink);margin-top:10px}.empty-d{font-size:13px;color:var(--stone);margin:6px 0 18px}
.redeem-wrap{padding:30px 24px;text-align:center;display:flex;flex-direction:column;align-items:center}
.rd-amt{font-size:18px;font-weight:900;color:var(--ink)}
.rd-shop{font-size:13px;color:var(--stone);margin-top:6px}
.rd-qr{width:180px;height:180px;margin:22px 0 12px;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.1);padding:14px}
.rd-qr svg{width:100%;height:100%}
.rd-code{font-size:15px;font-weight:800;letter-spacing:2px;color:var(--ink);margin-bottom:16px}
.rd-hint{font-size:13px;color:var(--stone);line-height:1.7;margin-bottom:22px;display:flex;flex-direction:column;align-items:center;gap:4px}
.rd-hint svg{width:18px;height:18px;fill:none;stroke:var(--stone);stroke-width:2}

/* ===== 我的巴扎客码（统一核销 · 付款码式）===== */
.bzk-code-page{min-height:100%;background:linear-gradient(170deg,#2b2620,#40382c 60%,#2b2620)}
.sub-nav.dark{background:transparent;backdrop-filter:none;color:#fff}
.sub-nav.dark svg{stroke:#fff}
.bzk-card{margin:8px 20px 0;background:#fff;border-radius:22px;padding:20px;box-shadow:0 18px 40px rgba(0,0,0,.3)}
.bzk-user{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.bzk-av .ip{border-radius:50%}
.bzk-uinfo b{font-size:15px;font-weight:900;color:var(--ink)}
.bzk-uinfo span{display:block;font-size:12px;color:#B07A22;font-weight:700;margin-top:2px}
.bzk-qr{width:100%;max-width:210px;margin:0 auto;aspect-ratio:1;background:#fff}
.bzk-qr svg{width:100%;height:100%}
.bzk-code{text-align:center;font-size:14px;font-weight:800;letter-spacing:2px;color:var(--ink);margin-top:12px}
.bzk-refresh{text-align:center;font-size:11px;color:var(--stone);margin-top:6px;display:flex;align-items:center;justify-content:center;gap:4px}
.bzk-refresh svg{width:13px;height:13px;fill:none;stroke:var(--stone);stroke-width:2}
.bzk-auto{margin:16px 20px 0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px 16px}
.bzk-auto-h{color:var(--sand2);font-size:13px;font-weight:800;margin-bottom:10px}
.bzk-auto-i{display:flex;align-items:center;gap:9px;color:#fff;font-size:14px;padding:6px 0}
.bzk-auto-i svg{width:19px;height:19px;fill:none;stroke:var(--sand2);stroke-width:2;flex-shrink:0}
.bzk-auto-i b{margin-left:auto;color:#FFD98A;font-weight:900}
.bzk-hint{color:rgba(255,255,255,.7);font-size:12px;text-align:center;line-height:1.7;margin:16px 24px 20px}
.bzk-code-page .btn{margin:0 20px;width:calc(100% - 40px)}
.order-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:13px;box-shadow:0 6px 18px rgba(30,50,80,.06)}
.oi-img{width:56px;height:56px;border-radius:12px;flex-shrink:0}.oi-img.bus{background:linear-gradient(135deg,#8FB9E0,#5FA0D6)}.oi-img.box2{background:linear-gradient(135deg,#EBC078,#C99A4E)}
.oi-b{flex:1}.oi-t{font-size:14px;font-weight:800;color:var(--ink)}.oi-m{font-size:12px;color:var(--stone);margin-top:3px}
.oi-p{font-weight:900;color:var(--ink)}
.order-bill{background:#fff;border-radius:14px;padding:14px;margin-top:14px}
.ob{display:flex;justify-content:space-between;padding:7px 0;font-size:14px;color:#4a555f}.ob.save{color:var(--red)}.ob.final{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:800;color:var(--ink)}.ob.final b{color:var(--red);font-size:20px}
.pay-method{margin-top:16px;background:#fff;border-radius:14px;padding:14px}
.pm{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:var(--ink)}
.pm-wx{width:30px;height:30px;border-radius:8px;background:var(--wechat);display:flex;align-items:center;justify-content:center}.pm-wx svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2}
.pm-dot{margin-left:auto;color:var(--wechat)}
.order-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 6px 18px rgba(30,50,80,.06)}
.oc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.oc-top b{font-size:15px;color:var(--ink)}
.oc-status{font-size:12px;font-weight:700;color:var(--sand);background:#FBF0DC;padding:3px 10px;border-radius:10px}.oc-status.done{color:var(--green);background:#E7F4EE}
.oc-row{display:flex;align-items:center;gap:12px}
.points-hero{background:linear-gradient(135deg,#E8C86A,#C8971E);padding:40px 20px;text-align:center;color:#fff}
.pts-num{font-size:44px;font-weight:900}.pts-lb{font-size:13px;opacity:.9;margin-top:4px}
.scancam{height:844px;background:#1a1e22;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}
.sc-nav{position:absolute;top:50px;left:16px;color:#fff;z-index:5;cursor:pointer}.sc-nav svg{width:26px;height:26px;fill:none;stroke:#fff;stroke-width:2}
.sc-frame{width:220px;height:220px;position:relative}
.sc-corner{position:absolute;width:34px;height:34px;border:3px solid var(--sand2)}
.sc-corner.tl{top:0;left:0;border-right:none;border-bottom:none}.sc-corner.tr{top:0;right:0;border-left:none;border-bottom:none}.sc-corner.bl{bottom:0;left:0;border-right:none;border-top:none}.sc-corner.br{bottom:0;right:0;border-left:none;border-top:none}
.sc-line{position:absolute;left:6px;right:6px;top:50%;height:2px;background:var(--sand2);box-shadow:0 0 10px var(--sand2)}
.sc-hint{color:rgba(255,255,255,.7);font-size:13px;margin-top:26px}
.sc-sim{width:auto;padding:0 22px;margin-top:40px}
.chat{padding:16px;padding-bottom:130px}
.cmsg{display:flex;gap:9px;margin-bottom:16px;align-items:flex-end}
.cav{width:36px;height:36px;flex-shrink:0}
.cb{max-width:76%;padding:11px 14px;border-radius:16px;font-size:14px;line-height:1.55}
.cb.ai{background:#fff;color:var(--ink);border-bottom-left-radius:5px;box-shadow:0 3px 10px rgba(30,50,80,.06)}
.cmsg.me{flex-direction:row-reverse}.cb.me{background:var(--sky);color:#fff;border-bottom-right-radius:5px}
.clink{color:var(--sky);font-weight:700;text-decoration:underline}.cb.ai .clink{color:var(--sky)}
.chat-quick{position:absolute;bottom:74px;left:0;right:0;display:flex;gap:8px;padding:0 16px;overflow-x:auto}
.chat-quick::-webkit-scrollbar{display:none}
.qc{background:#fff;border:1px solid var(--line);color:var(--sky);font-size:13px;font-weight:600;padding:9px 14px;border-radius:20px;white-space:nowrap;flex-shrink:0}
.chat-input{position:absolute;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:10px}
.ci-box{flex:1;height:40px;background:var(--paper);border-radius:20px;display:flex;align-items:center;padding:0 16px;color:var(--stone);font-size:14px}
.ci-send{width:40px;height:40px;border-radius:50%;background:var(--sky);display:flex;align-items:center;justify-content:center}.ci-send svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2}
.club-hero{background:linear-gradient(160deg,#5FC97A,#3FB55A);padding:40px 20px;text-align:center;color:#fff}
.ch-t{font-size:19px;font-weight:900;margin-top:10px}.ch-d{font-size:13px;opacity:.9;margin-top:6px}
.benefit{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 4px 14px rgba(30,50,80,.05)}
.bic{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#E7F4EE}
.bic svg{width:23px;height:23px;fill:none;stroke:var(--green);stroke-width:2}
.bt{font-size:14px;font-weight:800;color:var(--ink)}.bd{font-size:12px;color:var(--stone);margin-top:2px}
.club-qr{width:170px;height:170px;margin:16px auto 10px;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:14px}
.club-qr svg{width:100%;height:100%}

/* 认证榜单 */
.rank-entry{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#3F7A63,#2f5040);border-radius:16px;padding:15px 16px;margin-bottom:14px;box-shadow:0 8px 20px rgba(47,80,64,.25);cursor:pointer}
.re-ic{width:42px;height:42px;border-radius:12px;flex-shrink:0;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.re-ic svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:2}
.re-b{flex:1;color:#fff}.re-b b{font-size:15px;font-weight:800}.re-b span{display:block;font-size:12px;opacity:.85;margin-top:3px}
.re-go{color:rgba(255,255,255,.7)}.re-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.rank-hero{position:relative;padding:56px 20px 26px;color:#fff;background:#2f5040 center/cover no-repeat;background-image:linear-gradient(160deg,rgba(20,40,30,.72),rgba(20,40,30,.5)),url('img/grassland.jpg')}
.rk-t{font-size:22px;font-weight:900;display:flex;align-items:center;gap:8px}
.rk-t svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2}
.rk-d{font-size:13px;opacity:.9;margin-top:10px;line-height:1.7}
.rk-d b{color:var(--sand2)}
.rank-cat{font-size:15px;font-weight:800;color:var(--ink);margin:18px 2px 12px}
.rank-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:11px;box-shadow:0 6px 18px rgba(30,50,80,.06);cursor:pointer}
.rk-no{width:24px;height:24px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;background:#EAF0F5;color:var(--stone)}
.rk-no.gold{background:linear-gradient(135deg,#EBC078,#D99A4C);color:#fff}
.rk-img{width:56px;height:56px;border-radius:12px;flex-shrink:0;background:#eee center/cover no-repeat}
.rank-item .rk-m .rate{color:#F2A100;font-weight:800}
.rk-info{flex:1}
.rk-n{font-size:14px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:6px}
.rk-n .cert{background:#E7F4EE;color:var(--green);font-size:10px;font-weight:700;padding:1px 7px;border-radius:9px}
.rk-m{font-size:12px;color:var(--stone);margin-top:4px}
.rk-go{color:#cfd4d8}.rk-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
