/* 注意：本页是客户页，与 pick/chat/ck 同规 —— 不用 CSS 变量、不用新语法，兼容老 WebView。
   v70（2026-10-17）深色改版：参考「汽水音乐会员页」—— 暗底卡片 + 荧光绿主按钮 +
   大标题绿色划线 + 权益图标行。运营商语义色保持固定（移动#0085ff 联通#e60012
   电信#1aad19 广电#7b5cff），绿色只用作页面主按钮/选中态，不参与运营商语义。 */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:#0d1310;color:#edf4ef;
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",sans-serif;
  -webkit-text-size-adjust:100%}
.wrap{max-width:520px;margin:0 auto;padding:0 12px 30px}
.top{display:flex;align-items:center;gap:8px;padding:12px 2px}
.logo{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.brand{font-size:16px;font-weight:700;letter-spacing:.3px;color:#edf4ef}
.brand span{font-size:12px;font-weight:400;color:#71837a;margin-left:6px}
.card{background:#18211b;border:1px solid #27332b;border-radius:14px;padding:14px;box-shadow:0 2px 12px rgba(0,0,0,.25);margin-bottom:12px}
.hd{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.op{font-size:12px;font-weight:600;color:#fff;border-radius:6px;padding:2px 7px;line-height:18px;flex:0 0 auto}
h1{font-size:18px;line-height:1.4;margin:0;font-weight:700;flex:1 1 100%;color:#edf4ef}
.plan{font-size:13px;color:#a3b5aa;margin-top:6px;flex:1 1 100%}
.pic{width:100%;border-radius:10px;margin:10px 0 2px;display:block;background:#101813;border:1px solid #27332b}
/* v92：套餐详情图平铺区 —— 不藏弹窗，下滑直接看 */
.dgal{margin:10px 0 0}
.dgal .dt{font-size:13px;font-weight:700;color:#9fe8bd;margin:8px 0 8px}
.dgal img{width:100%;display:block;border-radius:12px;border:1px solid #27332b;background:#101813;margin-bottom:10px;cursor:zoom-in}
.dgal img:active{opacity:.85}
.kv{list-style:none;margin:8px 0 0;padding:0}
.kv li{display:flex;gap:10px;font-size:13.5px;color:#dce7df;padding:7px 0;border-top:1px dashed #27332b}
.kv li b{flex:0 0 62px;color:#71837a;font-weight:400}
.warn{background:#2b2313;border:1px solid #57431c;color:#ffd58a;border-radius:10px;
  padding:9px 12px;font-size:12.5px;margin:10px 0 0;line-height:1.6}
.warn b{color:#ffc46b}
.note{background:#16222e;border:1px solid #2a4156;color:#9cc7ec;border-radius:10px;
  padding:9px 12px;font-size:12.5px;margin:10px 0 0;line-height:1.7}
label{display:block;font-size:13px;color:#a3b5aa;margin:12px 0 5px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #2b372e;border-radius:10px;
  font-size:16px;font-family:inherit;background:#101813;color:#edf4ef;outline:none}
input:focus,select:focus,textarea:focus{border-color:#35e08a}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#5c6d64}
textarea{min-height:64px;resize:vertical;line-height:1.5}
.row2{display:flex;gap:8px}
.row2>*{flex:1;min-width:0}
.btn{display:block;width:100%;text-align:center;margin:18px 0 4px;padding:14px;border-radius:12px;
  background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;font-size:17px;font-weight:800;border:0;font-family:inherit;letter-spacing:1px}
.btn:active{opacity:.85}
.btn[disabled]{background:#24352b;color:#5c6d64}
.ghost{display:block;text-align:center;margin:10px 0 0;padding:12px;border-radius:12px;
  background:#18211b;border:1px solid #2b372e;color:#a3b5aa;font-size:15px;text-decoration:none}
.tip{font-size:12px;color:#71837a;text-align:center;margin:8px 0 0;line-height:1.6}
.err{background:#2e1a19;border:1px solid #5c2d2a;color:#ffb3ac;border-radius:10px;
  padding:10px 12px;font-size:13px;margin:12px 0 0;display:none;line-height:1.6}
.okbox{text-align:center;padding:8px 0 2px}
.okmark{width:58px;height:58px;border-radius:50%;background:#10331f;color:#3fe08f;
  display:flex;align-items:center;justify-content:center;margin:6px auto 12px}
.okmark span{font-size:30px;font-weight:700}
.okno{font-size:20px;font-weight:700;letter-spacing:1px;margin:4px 0 2px;color:#3fe08f}
.tabs{display:flex;gap:8px;padding:2px 0 12px;overflow-x:auto}
.tab{flex:0 0 auto;padding:7px 16px;border-radius:20px;background:#18211b;border:1px solid #2b372e;
  font-size:14px;color:#a3b5aa}
.tab i{font-style:normal;font-size:11.5px;opacity:.75}
.tab.on{background:linear-gradient(135deg,#43e694,#12b76a);border-color:transparent;color:#06331c;font-weight:700}
.item{display:flex;gap:10px;padding:11px 0;border-top:1px solid #1f2a22;cursor:pointer}
.item:first-of-type{border-top:0}
.item img{width:64px;height:84px;border-radius:8px;object-fit:contain;background:#fff;flex:0 0 64px;border:1px solid #27332b}
.item .it{flex:1;min-width:0}
.item .it b{display:block;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#edf4ef}
.item .it i{display:block;font-size:12px;color:#71837a;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.item .go{font-size:12px;font-weight:700;flex:0 0 auto;align-self:center}
.foot{text-align:center;font-size:11.5px;color:#71837a;margin-top:22px;line-height:1.7}
.foot a{color:#71837a;text-decoration:none}
/* 首充链接卡（跟客户把首充说清楚：什么时候充、充多少、去哪充、充完干嘛） */
.fcc{background:#2b2313;border:1px solid #57431c;border-radius:10px;padding:10px 12px;margin:10px 0 0}
.fcc .fct{font-size:13px;font-weight:700;color:#ffc46b;margin-bottom:5px}
.fcc .fcd{font-size:12px;color:#ffd58a;line-height:1.65;white-space:pre-line}
.fcc .fcu{display:flex;align-items:center;gap:8px;margin-top:8px;background:#101813;border:1px solid #57431c;border-radius:8px;padding:8px 10px}
.fcc .fcu span{flex:1;min-width:0;font-size:13px;color:#3fe08f;font-weight:600;word-break:break-all}
.fcc .fcu button{flex:0 0 auto;border:0;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;font-size:12px;font-weight:700;
  padding:7px 12px;border-radius:8px;font-family:inherit}
/* ==XK-SHOP-V93== 下单成功「现在要做的」动作卡
   老板 2026-10-19：客户下完单必须明确告诉他「按要求激活并充值」。
   · 先激活后发货款：给激活图/激活链接 + 首充要求与链接 + 回执入口，三步走完；
   · 直接发货款：说清「不用先充值」，收卡激活后再按要求首充（有链接就给链接）。
   两类用不同底色（暖金=先激活 / 绿=直接发货），客户一眼知道自己这款怎么走。 */
.nst{border-radius:12px;padding:12px 12px 11px;margin:2px 0 0;border:1px solid}
.nst-act{background:linear-gradient(180deg,#2e2513,#1b1a12);border-color:#5d4820}
.nst-dir{background:linear-gradient(180deg,#12261b,#111a15);border-color:#1f4a32}
.nsh{margin:0 0 2px}
.nsb{display:inline-block;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:20px;margin-bottom:7px;letter-spacing:.3px}
.nst-act .nsb{background:linear-gradient(135deg,#ffd66b,#f0a020);color:#3a2400}
.nst-dir .nsb{background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c}
.nsh>b{display:block;font-size:14.5px;color:#f2f8f4;line-height:1.55}
.nsh b b{color:#3fe08f;font-weight:800}
.nss{list-style:none;margin:11px 0 0;padding:0}
.nss li{display:flex;gap:9px;padding:0 0 13px}
.nss li:last-child{padding-bottom:2px}
.nss .n{flex:0 0 auto;width:20px;height:20px;border-radius:50%;font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;background:#3fe08f;color:#06331c;margin-top:1px}
.nst-act .nss .n{background:#ffc46b;color:#3a2400}
.nss .nb{flex:1;min-width:0}
.nss .nb>b{display:block;font-size:13.5px;color:#edf4ef;line-height:1.5}
.nss .nb b{font-weight:700}
.nss .nb span{display:block;font-size:12px;color:#a3b5aa;line-height:1.65;margin-top:3px}
.nss .nb span em{font-style:normal;color:#ffd58a;font-weight:700}
.nsa{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.nsa a,.nsa button{display:inline-block;border:0;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:700;
  font-family:inherit;text-decoration:none;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;line-height:1.2}
.nsa a.gh,.nsa button.gh{background:#16281d;border:1px solid #2f4a38;color:#3fe08f}
.nsurl{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;background:#101813;border:1px solid #2c3b31;border-radius:9px;padding:8px 10px}
.nsurl span{flex:1 1 100%;font-size:11.5px;color:#3fe08f;word-break:break-all;line-height:1.5}
.nsurl a,.nsurl button{flex:0 0 auto;border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;font-family:inherit;
  border:1px solid #2f4a38;background:#16281d;color:#3fe08f;text-decoration:none}
.nsimg{display:block;width:100%;border-radius:10px;margin-top:9px;border:1px solid #2c3b31;background:#101813}
.nswarn{margin-top:3px;background:#2e1a19;border:1px solid #5c2d2a;color:#ffb3ac;border-radius:9px;padding:8px 10px;font-size:12px;line-height:1.65}
.nswarn b{color:#ffd0ca}
/* ==XK-SHOP-V140== 实名拍摄 7 条（老板 2026-10-26 口述）：激活被打回九成是照片/视频细节，
   机器审核一次不过就得重拍、拖一天发货。所以下单成功就摆到眼前，不做折叠（折叠=没人看）。 */
.phtip{margin-top:10px;border-radius:10px;padding:10px 11px 11px;background:#0f1a22;border:1px solid #21404f}
.phtip .ph-hd{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800;color:#6fd8ff;line-height:1.3}
.phtip .ph-sub{font-size:11.5px;color:#8ba6b6;line-height:1.55;margin:3px 0 7px}
.phtip .ph-g{font-size:11.5px;font-weight:700;color:#7f97a6;margin:9px 0 4px}
.phtip .ph-g:first-of-type{margin-top:2px}
.phtip ol{list-style:none;margin:0;padding:0}
.phtip li{position:relative;padding:0 0 7px 20px;font-size:12.5px;line-height:1.62;color:#d7e5ee}
.phtip li:last-child{padding-bottom:0}
.phtip li .no{position:absolute;left:0;top:1px;width:15px;height:15px;border-radius:50%;background:#1d3b4c;color:#6fd8ff;
  font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.phtip li b{color:#fff;font-weight:700}
.phtip li em{font-style:normal;color:#7fe3b0;font-weight:600}
.phtip .ph-f{margin-top:8px;padding-top:7px;border-top:1px solid #1b3340;font-size:11.5px;color:#8ba6b6;line-height:1.55}
.phtip .ph-f b{color:#ffd58a}
/* 激活图点开看大图（新窗口；老内核不支持新窗口时直接跳图） */
.nsbig{position:fixed;left:0;top:0;right:0;bottom:0;z-index:120;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;padding:12px}
.nsbig.on{display:flex}
.nsbig img{max-width:100%;max-height:100%;object-fit:contain}
/* 智能识别粘贴地址 + IP 定位提示 */
.addrtool{display:flex;justify-content:space-between;align-items:center;margin:12px 0 5px}
.addrtool label{margin:0}
.addrtool button{border:1px solid #2f4a38;background:#16281d;color:#3fe08f;font-size:12px;
  font-weight:600;padding:6px 10px;border-radius:8px;font-family:inherit}
.geo{font-size:12px;color:#a3b5aa;background:#101813;border:1px solid #2b372e;border-radius:8px;
  padding:7px 10px;margin:8px 0 0;line-height:1.55;display:none}
.geo.warn{background:#2b2313;border-color:#57431c;color:#ffd58a}
.geo.ok{background:#10331f;border-color:#1f5136;color:#3fe08f}
/* 证件照上传 */
.pgrid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pcell{flex:1 1 30%;min-width:96px;border:1px dashed #33413a;border-radius:10px;background:#121a15;
  padding:8px 6px;text-align:center;cursor:pointer;overflow:hidden}
.pcell.on{border-style:solid;border-color:#3fe08f;background:#121a15}
.pcell.busy{opacity:.55}
.pcell img{width:100%;height:72px;object-fit:cover;border-radius:6px;display:block;background:#101813}
.pcell .ph{width:100%;height:72px;border-radius:6px;background:#101813;color:#55665c;
  display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1}
.pcell b{display:block;font-size:12px;color:#c9d6cd;font-weight:600;margin-top:6px;line-height:1.35}
.pcell i{display:block;font-size:11px;color:#71837a;font-style:normal;margin-top:2px;line-height:1.4}
.pcell .st{font-size:11px;color:#3fe08f;margin-top:4px}
.pcell .st.miss{color:#ff8d84}
/* 必传角标：照片要求是硬性的（服务端同样会拦），页面上就把「必传」顶在角上，
   客户不用等提交被拒才知道少传了 */
.pcell b em{font-style:normal;color:#ff8d84;font-weight:600;font-size:11px;margin-left:3px}
/* 照片没传齐时的提交门槛提示条：贴在提交按钮正上方，想跳都跳不过去 */
.gate{background:#2e1a19;border:1px solid #5c2d2a;color:#ffb3ac;border-radius:10px;
  padding:9px 12px;font-size:12.5px;line-height:1.6;margin:0 0 10px;display:none}
/* hide 必须压过后面新加的 flex 布局类（.dbar/.aipanel 都是 display:flex，
   不加 !important 会被它们盖掉，页面一打开面板就全弹出来了） */
.hide{display:none !important}
/* 公告条（模仿同行商城的滚动公告位）：多条时淡入淡出轮播，老内核只用 opacity 过渡 */
.noticebar{display:flex;align-items:center;background:#18211b;border:1px solid #27332b;border-radius:12px;padding:9px 12px;margin:0 0 10px;overflow:hidden}
.noticebar .nic{flex:0 0 auto;margin-right:8px;font-size:14px}
.nview{flex:1;min-width:0;height:20px;overflow:hidden;position:relative}
.nitem{position:absolute;left:0;top:0;width:100%;height:20px;line-height:20px;font-size:13px;color:#a3b5aa;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;-webkit-transition:opacity .45s;transition:opacity .45s}
.nitem.on{opacity:1}
.nitem.imp{color:#ff8d84;font-weight:600}
/* 详情页的产品公告：普通=暗黄条，重要=红条加粗（重要公告只在这一处，不再二次复读） */
.pnotice{border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.65;margin:10px 0 0;
  background:#2b2313;border:1px solid #57431c;color:#ffd58a}
.pnotice.imp{background:#2e1a19;border:1px solid #5c2d2a;color:#ffb3ac;font-weight:600}
/* 套餐详情长图：默认露一截，展开看全图（客户不用再跳去别处看套餐） */
.dimg{position:relative;overflow:hidden;max-height:860px;margin:10px 0 0;border-radius:10px;background:#101813;border:1px solid #27332b}
.dimg.open{max-height:none}
.dimg img{width:100%;display:block}
.dmore{display:block;width:100%;text-align:center;margin:0;padding:11px;border:0;background:#16281d;color:#3fe08f;
  font-size:13.5px;font-weight:600;font-family:inherit;border-radius:10px}
/* 列表卡片按钮化（模仿同行「免费领取」） */
.item{align-items:center}
.item .go{background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;padding:8px 13px;border-radius:18px;white-space:nowrap}
.item:active{background:#1e2922}
.item .it i.ag{color:#3fe08f}
/* 先激活横幅（v70 精简为一句话）：详细步骤在提交成功页「接下来会发生什么」逐条讲 ——
   老板要求下单前别堆字、下单后重点提醒。 */
.actb{background:#2b2313;border:1px solid #57431c;border-radius:12px;padding:10px 13px;margin:0 0 12px;font-size:13px;line-height:1.7;color:#ffd58a}
.actb .at{font-weight:700;font-size:14px;color:#ffc46b;margin-bottom:2px}
.actb b{color:#ffc46b}
/* 收货地址三列（省/市/区一行放完，表单更短） */
.row3{display:flex;gap:6px}
.row3>*{flex:1;min-width:0}
.row3 label{margin-top:12px}
/* 下单成功后的全流程时间线：客户下完单最容易「不知道下一步干嘛」，一步一行讲完。 */
.flow{list-style:none;margin:10px 0 0;padding:0 0 0 6px}
.flow li{position:relative;padding:0 0 14px 20px;border-left:2px solid #2c4237;margin-left:5px;font-size:13.5px;color:#dce7df;line-height:1.55}
.flow li:last-child{border-left-color:transparent;padding-bottom:2px}
.flow li:before{content:"";position:absolute;left:-8px;top:2px;width:12px;height:12px;border-radius:50%;background:#35e08a;border:2px solid #18211b}
.flow li b{display:block;font-weight:600;color:#edf4ef}
.flow li i{display:block;font-style:normal;font-size:12px;color:#71837a;margin-top:2px}
/* ---------- 平台化改版（学同行商城）+ v70 深色化：hero / 信任条 / 反诈弹窗 / 规格条 / 底部栏 / AI 助手 ---------- */
/* 店铺 hero：暗底大标题 + 关键词绿色划线（汽水会员页同款排版） */
.hero{background:linear-gradient(150deg,#1c2f24 0%,#121a15 72%);border:1px solid #2c3b31;border-radius:14px;
  padding:20px 16px 16px;color:#fff;margin:2px 0 12px;position:relative;overflow:hidden}
.hero .ht{font-size:22px;font-weight:800;letter-spacing:1px}
.hero .ht u{text-decoration:none;background:linear-gradient(transparent 64%,rgba(63,224,143,.5) 64%);padding:0 2px}
.hero .hs{display:inline-block;font-size:12px;margin-top:8px;background:rgba(63,224,143,.14);
  color:#bfe9d4;border-radius:14px;padding:4px 12px}
.hero .hb{position:absolute;right:-8px;top:-14px;font-size:74px;opacity:.10;line-height:1}
/* 信任徽章行（权益图标版）：详情页顶部也放一条，滚动到哪都有背书。
   v76 质感版：玻璃渐变卡 + 顶部绿光描线 + 内高光/外投影，字体微立体 */
.trust{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}
.trust span{flex:1 1 40%;position:relative;overflow:hidden;text-align:center;line-height:1.4;
  background:linear-gradient(160deg,#1e2b23 0%,#151f19 55%,#111814 100%);
  border:1px solid rgba(120,200,160,.18);border-radius:12px;padding:10px 6px 9px;
  font-size:12px;color:#9fb3a7;
  box-shadow:0 6px 16px rgba(0,0,0,.35), inset 0 1px 0 rgba(170,235,195,.10)}
.trust span::before{content:"";position:absolute;left:14%;right:14%;top:0;height:1px;
  background:linear-gradient(90deg,rgba(63,224,143,0),rgba(63,224,143,.38),rgba(63,224,143,0))}
.trust span:active{transform:scale(.97)}
.trust span i{display:block;font-style:normal;font-size:20px;line-height:1.2;margin-bottom:4px;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}
.trust span b{display:block;font-size:13px;color:#f2f8f4;letter-spacing:.5px;
  text-shadow:0 1px 0 rgba(63,224,143,.14),0 1px 2px rgba(0,0,0,.5)}
/* 反诈温馨提示：首次进入一次性弹出（每次会话一次，不像同行每次进详情都弹） */
.mask{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.62);z-index:99;
  display:flex;align-items:center;justify-content:center;padding:28px}
.tipsbox{background:#18211b;border:1px solid #2c3b31;border-radius:16px;padding:20px 18px 16px;color:#cfe0d6;max-width:340px}
.tipsbox .tt{text-align:center;font-size:18px;font-weight:800;margin-bottom:10px;color:#3fe08f}
.tipsbox .td{font-size:13.5px;line-height:1.9}
.tipsbox button{display:block;width:100%;margin:14px 0 0;padding:12px;border:0;border-radius:22px;
  background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;font-size:15.5px;font-weight:700;font-family:inherit}
/* 规格三列大数字（套餐流量 / 通话 / 月租），从套餐文案里提取，提不出来就不显示 */
.spec{display:flex;background:#101813;border:1px solid #27332b;border-radius:12px;margin:12px 0 0;padding:12px 0}
.spec div{flex:1;text-align:center;border-right:1px solid #27332b}
.spec div:last-child{border-right:0}
.spec b{display:block;font-size:19px;font-weight:800;color:#3fe08f}
.spec i{display:block;font-style:normal;font-size:11.5px;color:#71837a;margin-top:2px}
/* 列表卡热办角标：只标平台当前主推（前 2 款），不编造销量数字 */
.hotb{display:inline-block;background:#3fe08f;color:#06331c;font-size:10.5px;font-weight:700;
  border-radius:4px;padding:1px 5px;margin-right:5px;vertical-align:2px}
/* 商品详情弹层（v79）：上游审核通过的详情图 + 资料库在这里一次性给客户看。
   老 WebView 友好：不用 transform 动画、不用 CSS 变量、不依赖 flex gap。
   内容全部由服务端白名单下发（无上游/佣金字样），前端只负责排版。 */
.dsheet{position:fixed;left:0;right:0;top:0;bottom:0;z-index:120;background:rgba(0,0,0,.55);display:none}
/* 【表单弹层 v89】同行范式：点「立即免费申领」从底部弹出表单 */
.fmask{position:fixed;left:0;right:0;top:0;bottom:0;z-index:90;background:rgba(15,23,42,.55);display:none}
.fmask.on{display:block}
.fmask .fsheet{position:absolute;left:0;right:0;bottom:0;top:4%;background:#fff;
  border-radius:16px 16px 0 0;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.fmask .fhd{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;border-bottom:1px solid #eef1f5;background:#fff}
.fmask .fhd b{font-size:15px;color:#1f2329}
.fmask .fbody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:12px 14px calc(20px + env(safe-area-inset-bottom,0px))}
.dsheet.on{display:block}
.dsheet .pn{position:absolute;left:0;right:0;bottom:0;top:8%;background:#fff;border-radius:14px 14px 0 0;
  overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 20px}
.dsheet .ph{position:sticky;top:0;background:#fff;border-bottom:1px solid #e7eaf0;padding:12px 14px;
  display:flex;align-items:center;justify-content:space-between}
.dsheet .ph b{font-size:15px;color:#1f2329}
.dsheet .ph span{font-size:13px;color:#8a94a4;padding:4px 10px;border:1px solid #e2e6ec;border-radius:999px}
.dsheet .bd{padding:12px 14px}
.dsheet .di{display:block;width:100%;margin:0 0 8px;border-radius:10px;background:#f4f6f9}
.dsheet .dc{background:#f7f9fc;border:1px solid #e8ecf2;border-radius:12px;padding:11px 12px;margin:0 0 9px}
.dsheet .dc b{display:block;font-size:13.5px;color:#1f2329;margin-bottom:5px}
.dsheet .dc p{margin:0;font-size:13px;color:#4e5969;line-height:1.85;white-space:pre-wrap;word-break:break-word}
.dsheet .dm{text-align:center;font-size:12.5px;color:#8a94a4;margin:14px 0 0}
.dbtn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin:10px 0 0;padding:11px;
  border:1px solid #cfe9db;border-radius:12px;background:#eefaf3;color:#0f7a4d;font-size:14px;font-weight:600;
  font-family:inherit;cursor:pointer}
.dbtn:active{opacity:.75}
/* 底部 sticky bar：客服 / 查订单 / 立即申领，滚到哪都能找到入口 */
.dbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#131a16;border-top:1px solid #26302a;
  display:flex;align-items:center;gap:10px;padding:8px 12px}
body.hasbar{padding-bottom:62px}
.dbar a{flex:0 0 auto;text-align:center;font-size:11px;color:#a3b5aa;text-decoration:none;line-height:1.25;padding:1px 4px}
.dbar a .dico{display:block;font-size:19px;margin-bottom:1px}
.dbar .main{flex:1;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;border-radius:22px;text-align:center;font-size:15.5px;
  font-weight:800;padding:11px 0;text-decoration:none;letter-spacing:.5px}
.dbar .main:active{opacity:.85}
/* AI 助手：悬浮球 + 底部抽屉面板（对话气泡 + 快捷问题） */
.aibtn{position:fixed;right:12px;bottom:78px;z-index:61;width:48px;height:48px;border-radius:50%;
  background:#18211b;border:1px solid #2c3a30;box-shadow:0 3px 12px rgba(0,0,0,.4);
  font-size:11px;color:#3fe08f;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center}
.aibtn .dico{font-size:19px;line-height:1.1}
/* v205 话费自查入口：悬浮球（AI 客服球上方），链到 /huifei 工具页 */
.feebtn{position:fixed;right:12px;bottom:132px;z-index:61;width:48px;height:48px;border-radius:50%;
  background:#18211b;border:1px solid #3a3220;box-shadow:0 3px 12px rgba(0,0,0,.4);
  font-size:11px;color:#ffd45e;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none}
.feebtn .dico{font-size:19px;line-height:1.1}
.aipanel{position:fixed;left:0;right:0;bottom:0;z-index:62;background:#18211b;border-radius:16px 16px 0 0;
  box-shadow:0 -4px 20px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:72%}
.aipanel .aihd{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #22302a}
.aipanel .aihd b{font-size:15px;color:#edf4ef}
.aipanel .aihd span{font-size:12px;color:#71837a}
.aipanel .aiclose{border:0;background:#22302a;color:#a3b5aa;border-radius:50%;width:26px;height:26px;font-family:inherit}
/* 「自己挑卡」入口：收起面板 → 页内切回选卡列表（不整页跳转，客户不丢当前款） */
.aipanel .aigolist{border:1px solid #2c3a30;background:#16281d;color:#3fe08f;font-size:12px;font-weight:600;
  padding:5px 10px;border-radius:14px;font-family:inherit;margin-right:6px}
.aichat{flex:1;overflow-y:auto;padding:10px 12px;background:#0d1310;min-height:150px}
/* v88.2：抽屉是纵向 flex，chips/头/脚必须锁死不缩 —— 否则消息一多 chips 被
   挤成一条缝，内容从 overflow 里溢出来叠在消息上（客户视频 2026-10-19 实录） */
.aipanel .aihd,.aipanel .chips,.aipanel .aifoot{flex:0 0 auto}
.aipanel .chips{overflow:hidden}
.msg{max-width:84%;padding:9px 11px;border-radius:12px;font-size:14px;line-height:1.65;margin:6px 0;word-break:break-word}
.msg.me{background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;margin-left:auto}
.msg.bot{background:#1e2922;border:1px solid #27332b;color:#dce7df}
.chips{display:flex;gap:6px;overflow-x:auto;padding:8px 12px 2px}
.chip{flex:0 0 auto;font-size:12.5px;color:#3fe08f;background:#16281d;border-radius:14px;padding:6px 11px}
.aifoot{display:flex;gap:8px;padding:8px 12px 12px;border-top:1px solid #22302a}
.aifoot input{flex:1}
.aifoot button{flex:0 0 auto;border:0;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;border-radius:10px;padding:0 16px;
  font-size:14.5px;font-weight:700;font-family:inherit}
/* AI 照片预检结果：格子下的黄字建议（只是建议，不拦提交） */
.pcell .st.aiw{color:#ffd58a}
.pcell .st.aiok{color:#3fe08f}

/* ==XK-SHOP-LIGHT v78== 浅色极简（老板 2026-10-17：黑底去掉，参考鸿蒙早晨报告——
   近白底 + 白卡 + 绿色点睛；全固定色值零 CSS 变量，老 WebView 兼容。
   本块放在样式表末尾，同名属性后规则覆盖前规则。） */
html,body{background:#f4f6f9;color:#1f2329}
.brand{color:#1f2329}
.brand span{color:#86909c}
h1{color:#1f2329}
.plan{color:#4e5969}
.kv li{color:#4e5969;border-top:1px dashed #e7eaf0}
.kv li b{color:#86909c}
.card{background:#fff;border:1px solid #e7eaf0;box-shadow:0 2px 10px rgba(30,60,120,.06)}
.pic,.item img,.pcell img,.dimg{background:#eef1f6;border:1px solid #e7eaf0}
.warn,.fcc,.pnotice,.actb,.geo.warn{background:#fff7e8;border:1px solid #ffe1ad;color:#8a5a00}
.warn b,.fcc .fct,.actb .at,.actb b{color:#b47c10}
.fcc .fcd{color:#9a6b12}
.fcc .fcu{background:#fff;border:1px solid #ffe1ad}
.fcc .fcu span{color:#0f7a4d}
/* v93 动作卡浅色覆盖 */
.nst-act{background:#fff8e8;border-color:#f0dcae}
.nst-dir{background:#eefaf2;border-color:#c6ebd6}
.nsh b,.nss .nb b{color:#1d2b23}
.nsh>b{color:#1d2b23}
.nsh b b{color:#0f7a4d}
.nss .nb span{color:#5a6b60}
.nss .nb span em{color:#a16207}
.nss .n{background:#12b76a;color:#fff}
.nst-act .nss .n{background:#e8a11c;color:#fff}
.nst-act .nsb{background:linear-gradient(135deg,#ffd66b,#f0a020);color:#3a2400}
.nsa a.gh,.nsa button.gh{background:#f2f7f4;border:1px solid #d8e6dd;color:#0f7a4d}
.nsurl{background:#fff;border:1px solid #e7eaf0}
.nsurl span{color:#0f7a4d}
.nsurl a,.nsurl button{background:#f6fbf8;border:1px solid #bfe9d2;color:#0f7a4d}
.nsimg{background:#eef1f6;border:1px solid #e7eaf0}
.nswarn{background:#fff1ef;border:1px solid #f5cfc9;color:#a8342a}
.nswarn b{color:#8f271e}
/* v140 拍摄提示浅色覆盖 */
.phtip{background:#f1f8ff;border-color:#cbe1f6}
.phtip .ph-hd{color:#0b5aa8}
.phtip .ph-sub,.phtip .ph-f{color:#5a7080}
.phtip .ph-g{color:#6b8294}
.phtip li{color:#243642}
.phtip li .no{background:#d7eafc;color:#0b5aa8}
.phtip li b{color:#0f1a22}
.phtip li em{color:#0a7a55}
.phtip .ph-f{border-top-color:#dbe9f6}
.phtip .ph-f b{color:#a16207}
.note{background:#eef4ff;border:1px solid #d3e2fa;color:#3a6296}
.err,.gate,.pnotice.imp{background:#fff1ef;border:1px solid #ffd9d4;color:#c2413a}
label{color:#4e5969}
input,select,textarea{background:#fff;border:1px solid #d9dee7;color:#1f2329}
/* SHOP-OPT-1107：输入框聚焦高亮——客户一眼知道焦点在哪个框 */
input:focus,select:focus,textarea:focus{border-color:#007aff;background:#fff;box-shadow:0 0 0 3px rgba(0,122,255,.11);outline:none}
input:focus,select:focus,textarea:focus{border-color:#12b76a}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a8b0bc}
.btn[disabled]{background:#e5e8ee;color:#a8b0bc}
.ghost{background:#fff;border:1px solid #e7eaf0;color:#4e5969}
.tip,.foot,.foot a{color:#86909c}
.okmark{background:#e7f8ee;color:#0f7a4d}
.okno{color:#0f7a4d}
.tab{background:#fff;border:1px solid #e7eaf0;color:#4e5969}
.item{border-top:1px solid #eef1f5}
.item:active{background:#f6f8fb}
.item .it b{color:#1f2329}
.item .it i{color:#86909c}
.item .it i.ag{color:#0f7a4d}
.addrtool button{background:#e7f8ee;border:1px solid #bfe9d2;color:#0f7a4d}
.geo{background:#fff;border:1px solid #e7eaf0;color:#4e5969}
.geo.ok{background:#e7f8ee;border-color:#bfe9d2;color:#0f7a4d}
.pcell{background:#fbfcfe;border:1px dashed #d4dbe6}
.pcell.on{border-color:#12b76a;background:#f2fbf6}
.pcell .ph{color:#a8b0bc}
.pcell b{color:#1f2329}
.pcell b em{color:#c2413a}
.pcell .st{color:#0f7a4d}
.pcell .st.miss{color:#c2413a}
.pcell .st.aiw{color:#b47c10}
.pcell .st.aiok{color:#0f7a4d}
.noticebar{background:#fff;border:1px solid #e7eaf0}
.nitem{color:#4e5969}
.nitem.imp{color:#c2413a}
.spec{background:#fafbfd;border:1px solid #e7eaf0}
.spec div{border-right:1px solid #e7eaf0}
.spec b{color:#0f7a4d}
.spec i{color:#86909c}
.hotb{background:#12b76a;color:#fff}
/* ==XK-SHOP-V116== 营销层（老板 2026-10-24：限时感 + 分享欲 + 领的人多 + 页面美观）
   ------------------------------------------------------------
   红线：所有数字都来自 /api/shop/pulse 与产品接口的**真实计数**，绝不编造销量；
   数据拉不到就整块隐藏（宁可少一块卡，不放假数字）。佣金永远不出页。
   老 WebView 兼容：零 CSS 变量、opacity 过渡、无 transform 动画依赖。 */
/* hero 里的实时热度行（v139 美化，老板截图反馈「不好看」）：一行绿字拆成两枚白底
   数据胶囊，数字统一字号、标签小号灰字 —— 数字真实计数不变，只是排版更像大厂。 */
.hero .hlive{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;
  font-size:12px;color:#6b7f72}
.hero .hlive .stat{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.85);
  border:1px solid #d6ecdf;border-radius:999px;padding:5px 13px;white-space:nowrap}
.hero .hlive .stat b{font-size:16px;font-weight:800;color:#0f7a4d;margin:0 1px}
.hero .hlive .dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#12b76a;
  -webkit-animation:xkblink 1.2s infinite;animation:xkblink 1.2s infinite}
@-webkit-keyframes xkblink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes xkblink{0%,100%{opacity:1}50%{opacity:.2}}
/* 每日限时条：倒计时到北京时间 0 点（每日 0 点刷新口径，写明就不算糊弄） */
.htimer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;
  background:linear-gradient(135deg,#fff4e2,#ffe6e0);border:1px solid #f5c79a;border-radius:10px;
  padding:9px 12px;font-size:12.5px;color:#a14a00}
.htimer .htl{font-weight:600}
.htimer b{font-weight:800;color:#d84315;font-variant-numeric:tabular-nums;letter-spacing:1px}
/* 分享按钮：占满 hero 底部一整条，点一下复制链接（微信里长按也能发） */
.hshare{margin-top:10px}
.hshare button{display:block;width:100%;border:1px solid #bfe9d2;background:#e7f8ee;color:#0f7a4d;
  font-size:13.5px;font-weight:700;padding:10px 0;border-radius:10px;font-family:inherit}
.hshare button:active{opacity:.8}
/* 实时申领动态条（列表页公告位下方）：真数据脱敏流水，淡入淡出轮播 */
.livetk{position:relative;height:24px;overflow:hidden;background:#fff;border:1px solid #e7eaf0;
  border-radius:12px;margin:0 0 10px;padding:0 10px 0 30px}
.livetk .tic{position:absolute;left:9px;top:3px;font-size:13px;font-style:normal}
.livetk .tkv{position:absolute;left:30px;right:10px;top:0;height:24px}
.tkitem{position:absolute;left:0;top:0;width:100%;height:24px;line-height:24px;font-size:12.5px;color:#4e5969;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;-webkit-transition:opacity .45s;transition:opacity .45s}
.tkitem.on{opacity:1}
.tkitem b{color:#0f7a4d;font-weight:700}
/* 列表卡热度行（真实计数才显示）+ 爆款角标 */
.item .it i.ht{color:#c2570a}
.hotb.top{background:#ff7a1a;color:#fff}
/* ==XK-SHOP-V117.1== 热度/月租徽章 —— v139 美化（老板截图反馈「不好看」）：
   大橙底胶囊 → 白底细边小徽章，数字加粗、标签小号灰字，套餐文字回到视觉主角。 */
.item .it .pills{margin-top:7px;line-height:1;white-space:nowrap;overflow:hidden}
.item .it i.ht,.item .it i.rt{display:inline-block;margin:0 6px 0 0;padding:4px 10px;
  background:#fff;border:1px solid #e7eaf0;border-radius:8px;vertical-align:middle;white-space:nowrap;
  color:#86909c;font-size:11px;font-weight:600;line-height:1.5}
.item .it i.ht b{font-size:14.5px;font-weight:800;color:#e8762d;margin-right:3px}
.item .it i.rt b{font-size:14.5px;font-weight:800;color:#1f2329;margin:0 2px}
.item .it i.rt u{display:inline;text-decoration:none;font-size:10.5px;color:#a2a9b4}
/* 详情页促销条：抢手热度 + 今日限时倒计时，一条横幅讲完 */
.promo{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0 0;
  background:linear-gradient(135deg,#fff4e2,#ffe6e0);border:1px solid #f5c79a;border-radius:10px;
  padding:9px 12px;font-size:12.5px;color:#8a4a00;line-height:1.7}
.promo .pl{flex:1 1 100%}
.promo b{color:#d84315;font-weight:800}
.promo .ptimer{flex:1 1 100%;font-weight:600}
.promo .ptimer b{font-variant-numeric:tabular-nums;letter-spacing:1px}
/* ==XK-SHOP-V131== 营销条升级：名额进度条 + 实时领取滚动（老板反馈：数字要硬、要逼真） */
.promo.v131{display:block;padding:10px 12px 8px}
.promo.v131 .prow{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.promo.v131 .prow .pl{flex:0 0 auto}
.promo.v131 .pr{font-size:12px;color:#9a5a10}
.promo.v131 .pbar{height:7px;border-radius:4px;background:rgba(216,67,21,.14);margin:7px 0 6px;overflow:hidden}
.promo.v131 .pbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#ff9d3c,#e8501f)}
.promo.v131 .prow2{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.promo.v131 .prow2 span{white-space:nowrap}
.promo.v131 .pn{font-weight:700}
.promo.v131 .pfeed{margin-top:7px;padding-top:6px;border-top:1px dashed rgba(216,67,21,.28);font-size:12px;color:#a05a12;opacity:1;transition:opacity .3s}
/* ==XK-SHOP-V140== 拼多多式详情营销层（老板 2026-10-26：学拼多多 UI/营销模式）
   紫底数据胶囊排 + 官方严控路径条 + 拼单卡行 + 热办榜 + 保障条 */
.promo.v140{display:block;background:linear-gradient(150deg,#f3efff,#ece4ff);border:1px solid #cdbcf5;
  color:#4a3a78;border-radius:14px;padding:12px}
.promo.v140 .pstats{display:flex;gap:6px;margin:0 0 8px}
.promo.v140 .pstats span{flex:1;text-align:center;background:rgba(255,255,255,.85);border:1px solid #e2d8fa;
  border-radius:9px;padding:6px 2px;font-size:11px;color:#6b5aa0;white-space:nowrap}
.promo.v140 .pstats b{display:block;font-size:15.5px;color:#6d28d9;font-weight:800;margin-bottom:1px}
.promo.v140 .pbar{height:7px;border-radius:4px;background:rgba(109,40,217,.12);margin:8px 0 6px;overflow:hidden}
.promo.v140 .pbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#a78bfa,#7c3aed)}
.promo.v140 .prow2{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.promo.v140 .prow2 .pn{font-weight:700;color:#4a3a78}
.promo.v140 .prow2 .ptimer{color:#7c6ab0;white-space:nowrap}
.promo.v140 .vroute{margin:10px 0 0;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:10px;
  padding:8px 10px;color:#fff}
.promo.v140 .vroute b{display:block;font-size:12.5px;margin-bottom:3px;color:#fff;font-weight:700}
.promo.v140 .vroute i{font-style:normal;font-size:11.5px;opacity:.95}
.promo.v140 .vroute .vr-ar{margin:0 3px;opacity:.7}
.promo.v140 .vpin{margin:10px 0 0;background:#fff;border:1px solid #e2d8fa;border-radius:10px;padding:8px 10px}
.promo.v140 .vpin .vh{font-size:12.5px;color:#4a3a78;margin-bottom:4px}
.promo.v140 .vpin .vh b{color:#6d28d9;font-size:15px}
/* v141.2 拼单行改自动滚动轮播（老板 01:35：做成那种滚动的）：固定行高、内容双份、
   translateY -50% 匀速循环 —— 无缝滚，老 WebView 支持 transform 动画 */
.promo.v140 .vtick{height:96px;overflow:hidden}
.promo.v140 .vtick-in{animation:vtick 16s linear infinite}
@keyframes vtick{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.promo.v140 .prow-line{display:flex;align-items:center;gap:8px;height:48px;box-sizing:border-box;
  padding:7px 0;border-top:1px dashed #eee6fc;cursor:pointer}
.promo.v140 .prow-line:first-of-type{border-top:0}
.promo.v140 .pava{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#c4b5fd,#8b5cf6);
  color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.promo.v140 .pnm{flex:1;min-width:0;font-size:12.5px;color:#3b2f63;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo.v140 .pst{flex:0 0 auto;text-align:right;font-size:10.5px;color:#8a7ab8;line-height:1.5;white-space:nowrap}
.promo.v140 .pst .pcd{display:block;color:#c2413a;font-weight:700;font-style:normal}
.promo.v140 .pgo{flex:0 0 auto;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;
  font-size:11.5px;font-weight:800;padding:6px 9px;border-radius:999px}
.promo.v140 .vrank,.promo.v140 .vins{margin:8px 0 0;background:rgba(255,255,255,.85);border:1px solid #e2d8fa;
  border-radius:9px;padding:6px 10px;font-size:11.5px;color:#5b4a95}
.promo.v140 .vrank b{color:#c2413a;font-size:13px}
.promo.v140 .pfeed{margin-top:8px;padding-top:6px;border-top:1px dashed #d8ccf6;font-size:12px;color:#7c6ab0;opacity:1;transition:opacity .3s}
/* 成功页分享条：趁热打铁，下单完成是最有分享欲的时刻 */
.okshare{margin-top:10px}
.okshare button{display:block;width:100%;border:0;background:linear-gradient(135deg,#43e694,#12b76a);color:#06331c;
  font-size:14.5px;font-weight:800;padding:12px 0;border-radius:12px;font-family:inherit;letter-spacing:.5px}
.okshare button:active{opacity:.85}
.flow li{color:#4e5969;border-left:2px solid #dfe6ef}
.flow li:before{background:#12b76a;border:2px solid #fff}
.flow li b{color:#1f2329}
.flow li i{color:#86909c}
.hero{background:linear-gradient(150deg,#eaf1ff 0%,#f7faff 72%);border:1px solid #dfe8f6;color:#1f2329}
.hero .ht u{background:linear-gradient(transparent 64%,rgba(18,183,106,.4) 64%)}
.hero .hs{background:rgba(18,183,106,.12);color:#0f7a4d}
.hero .hb{opacity:.08}
.trust span{background:rgba(255,255,255,.92);border:1px solid #e7eaf0;color:#4e5969;box-shadow:0 2px 8px rgba(30,60,120,.05)}
.trust span::before{background:linear-gradient(90deg,rgba(18,183,106,0),rgba(18,183,106,.35),rgba(18,183,106,0))}
.trust span b{color:#1f2329;text-shadow:none}
.mask{background:rgba(15,23,42,.45)}
.tipsbox{background:#fff;border:1px solid #e7eaf0;color:#4e5969}
.tipsbox .tt{color:#0f7a4d}
.tipsbox .td{color:#4e5969}
.dbar{background:rgba(255,255,255,.97);border-top:1px solid #e7eaf0}
.dbar a{color:#86909c}
.aibtn{background:#fff;border:1px solid #e7eaf0;color:#0f7a4d;box-shadow:0 3px 12px rgba(30,60,120,.12)}
.aipanel{background:#fff;box-shadow:0 -4px 20px rgba(30,60,120,.15)}
.aipanel .aihd{border-bottom:1px solid #eef1f5}
.aipanel .aihd b{color:#1f2329}
.aipanel .aihd span{color:#86909c}
.aipanel .aiclose{background:#f0f2f6;color:#86909c}
.aipanel .aigolist{border-color:#bfe9d2;background:#e7f8ee;color:#0f7a4d}
.aichat{background:#f4f6f9}
.msg.bot{background:#fff;border:1px solid #e7eaf0;color:#1f2329}
.chip{color:#0f7a4d;background:#e7f8ee}
.dmore{background:#e7f8ee;color:#0f7a4d}
/* v92：详情图平铺区浅色覆盖 */
.dgal .dt{color:#0f7a4d}
.dgal img{background:#eef1f6;border:1px solid #e7eaf0}

/* ==XK-SHOP-V85== 下单页收短（老板 2026-10-18：「下单界面太长了，参考同行优化」）
   ------------------------------------------------------------
   实测病灶：进详情页总高 3824px，提交按钮在 3192px（要滑 4.3 屏才点到）；
   其中商品详情卡一家占 1580px —— 客户还没填表就先看了两屏套餐图。
   同行（app.xiuyuetongxun.com/order）恰恰相反：标题 → 5 个字段 → 提交一屏搞定，
   参数/须知/FAQ 全在按钮下方折叠。

   这里照抄的是「顺序」和「折叠」，**字段一个都没删**：
     ① 填单区整体提到最前，客户点进来第一眼就是表单；
     ② 商品信息（图/参数/套餐详情/首充/公告）收进 <details>，默认一行摘要；
     ③ 证件照也改成折叠卡，标题上直接写「还差 N 张」和「已传齐 ✓」；
     ④ 表单本身压紧：姓名/身份证、手机号、省市区同排，标签占位符化。
   红线：下面所有折叠块里的 id 都不许动，validate()/drawGrid()/apaste 全靠它们。
   老 WebView 兼容：折叠用 details + 一段 JS 兜底（不认 details 的机型直接展开），
   零 CSS 变量、零 flex gap。 */
.card.tight{padding:12px 12px 14px}
h1.sec{font-size:16px;margin:0 0 2px;display:flex;align-items:center;gap:6px}
h1.sec .sn{flex:0 0 auto;width:19px;height:19px;border-radius:50%;background:#12b76a;color:#fff;
  font-size:12px;font-weight:700;line-height:19px;text-align:center;font-style:normal}
h1.sec .ss{font-size:11.5px;color:#86909c;font-weight:400;margin-left:auto}
.subt{font-size:12px;color:#86909c;margin:0 0 2px;line-height:1.5}
/* 字段行：标签在左、输入框压紧，省掉每个字段上方那行 21px 的 label。
   v85.1：第一版一条 60px（9+9 padding + 41 输入框 + 1 边框），三条就 180px，
   加上三列地址 81px、标题 40px —— 光「字段骨架」就吃掉 300px，一屏还是装不下。
   收紧到：行 46px（padding 4 + 输入框 36 + 1），字号 15px（iOS 小于 16 会唤醒缩放，
   所以配 maximum-scale=1 保持不缩放；安卓微信内 15px 不触发）。 */
.fl{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid #eef1f5}
.fl:last-of-type{border-bottom:0}
.fl>label{flex:0 0 58px;margin:0;font-size:13.5px;color:#4e5969;font-weight:500}
.fl #f-name,.fl #f-id,.fl #f-phone{flex:1;min-width:0;padding:9px 12px;font-size:15px;border-radius:11px}
/* formcard 里最后那句同意提示：一屏临界值，行高压到 1.4 */
#formcard>.tip{line-height:1.4;font-size:11.5px;margin:6px 0 0}
/* 省/市/区 三列：下拉本身已经是「请选择XX」占位，不需要再顶一行标签 */
.row3.tightrow{padding:6px 0 2px;border-bottom:0}
.row3.tightrow label{margin:0 0 4px;font-size:11.5px;color:#86909c;line-height:1.2}
.row3.tightrow select,.row3.tightrow input{padding:9px 8px;font-size:14px;background:#f5f6f8;border:1px solid transparent;border-radius:11px}
#formcard #f-addr{min-height:56px;padding:10px 12px;font-size:15px;line-height:1.45;background:#f5f6f8;border:1px solid transparent;border-radius:12px}
#formcard .addrtool{margin:8px 0 4px}
#formcard .addrtool label{font-size:13.5px;font-weight:500;color:#4e5969}
/* 同意勾选行（v119）：卡片式浅绿条。
   根因修复：旧版 label>span 无 flex:1/min-width:0，长文案被压到 min-content
   （中文一字宽）整列竖排、把弹窗撑出一屏空白 —— 截图「只剩一个蓝勾」即此。 */
.agreerow{display:flex;gap:9px;align-items:flex-start;margin:10px 0 8px;padding:10px 11px;
  background:#f4faf6;border:1px solid #d9eee1;border-radius:10px;cursor:pointer;
  font-size:12.5px;line-height:1.6;color:#4e5969}
.agreerow input{margin:2px 0 0;flex:none;width:17px;height:17px;accent-color:#12b76a}
.agreerow span{flex:1;min-width:0}
.agreerow b{color:#1f2329}
.agreerow.flat{background:#fff;border:0;padding:2px 0;border-radius:0}
/* v119 首访骨架屏：数据到达前的占位卡微光动画 */
.skel .sk{height:112px;border-radius:14px;margin:0 0 10px;border:1px solid #eef1f5;
  background:linear-gradient(100deg,#f2f5f8 40%,#fafcfd 50%,#f2f5f8 60%);
  background-size:200% 100%;animation:skx 1.1s linear infinite}
@keyframes skx{to{background-position:-200% 0}}
/* v119.4 省份筛选横幅 + 错误条里的「看能办的款」直达按钮 */
#fitbar{display:none;background:#eaf7f0;border:1px solid #bfe6d2;color:#1f7a4d;border-radius:10px;
  padding:9px 12px;margin:0 0 10px;font-size:13px;line-height:1.5}
#fitbar .fx{float:right;color:#86909c;cursor:pointer;font-size:12px}
/* v139 筛选行：发货范围 + 月租档位 */
.frow{display:flex;flex-direction:column;gap:7px;margin:10px 0 2px}
.fgrp{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fgrp .flab{flex:0 0 auto;font-size:11.5px;color:#a2a9b4}
/* v139.1 老板反馈：客户会把「发货范围选省」误解成身份证归属地 —— 标签旁小注+选中态显示「收货·XX」 */
.fgrp .flab .fsub{font-style:normal;font-size:10px;color:#0f7a4d;background:#eaf7f0;
  border-radius:999px;padding:1px 6px;margin-left:4px;font-weight:600}
.fc{padding:5px 12px;border-radius:999px;background:#fff;border:1px solid #e7eaf0;
  color:#4e5969;font-size:12.5px;cursor:pointer;white-space:nowrap}
.fc.on{background:#0f7a4d;border-color:#0f7a4d;color:#fff;font-weight:700}
.fsel{max-width:126px;padding:5px 10px;border-radius:999px;border:1px solid #e7eaf0;
  background:#fff;color:#4e5969;font-size:12.5px;-webkit-appearance:none;appearance:none}
.fsel.on{border-color:#0f7a4d;color:#0f7a4d;font-weight:700}
/* v139.4 省份自绘面板：触发钮 + 浮层卡片网格（每省带可发款数，0 款灰掉） */
.fprov{position:relative}
.fsel2{padding:5px 12px;border-radius:999px;border:1px solid #e7eaf0;background:#fff;
  color:#4e5969;font-size:12.5px;cursor:pointer;white-space:nowrap;user-select:none;
  -webkit-tap-highlight-color:transparent}
.fsel2.on{border-color:#0f7a4d;color:#0f7a4d;font-weight:700;background:#f0faf5}
.fpanel{position:absolute;z-index:70;top:calc(100% + 8px);left:0;background:#fff;
  border:1px solid #e7eaf0;border-radius:14px;box-shadow:0 12px 32px rgba(20,50,90,.16);
  padding:12px;width:min(92vw,430px);max-height:46vh;overflow:auto;
  animation:fpop .16s ease-out}
@keyframes fpop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.fpanel .fh{display:flex;justify-content:space-between;align-items:center;
  font-size:11px;color:#98a1ad;margin-bottom:9px}
.fpanel .fh .fx2{cursor:pointer;color:#0f7a4d;font-weight:600}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.fpc{padding:7px 3px;border-radius:10px;background:#f5f7fa;border:1px solid transparent;
  text-align:center;font-size:12px;color:#3d4654;cursor:pointer;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;-webkit-tap-highlight-color:transparent}
.fpc b{display:block;font-size:10.5px;color:#0f9d63;font-weight:600;margin-top:1px}
.fpc.on{background:#0f7a4d;border-color:#0f7a4d;color:#fff;font-weight:700}
.fpc.on b{color:rgba(255,255,255,.85)}
.fpc.dis{opacity:.35;cursor:not-allowed;background:#fff;color:#b6bdc7}
.fpc.dis b{color:#c3cad3;font-weight:400}
/* v140.2 手机适配（老板截图：面板从「选省份」下挂 92vw 宽直接溢出屏幕右侧）：
   ≤640px 改全宽底部弹层（拼多多 bottom-sheet 同款），不再跟随按钮定位 */
@media (max-width:640px){
  .fpanel{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:64vh;
    border-radius:18px 18px 0 0;box-shadow:0 -10px 34px rgba(20,50,90,.24);
    padding:10px 14px calc(14px + env(safe-area-inset-bottom));z-index:75;
    animation:fup .22s ease-out}
  @keyframes fup{from{transform:translateY(60px);opacity:.4}to{transform:none;opacity:1}}
  .fpanel::before{content:"";display:block;width:38px;height:4px;border-radius:2px;
    background:#dde2e9;margin:0 auto 10px}
  .fpanel .fh{font-size:12px}
  .fgrid{grid-template-columns:repeat(3,1fr);gap:7px}
  .fpc{padding:10px 3px;font-size:13px}
  .fpc b{font-size:11.5px}
}
@media(max-width:380px){.fgrid{grid-template-columns:repeat(3,1fr)}}
.err .ea,.err a.ea{display:inline-block;margin-left:6px;padding:2px 10px;background:#fff;border:1px solid #f2b3a0;
  border-radius:999px;color:#c2413a;font-weight:600;cursor:pointer;white-space:nowrap}
/* v119.8 身份证重复重灾款的详情页前置提醒 */
.idwarn{background:#fff3f0;border:1px solid #f2b3a0;border-radius:10px;padding:9px 11px;margin:10px 0 0;
  font-size:12.5px;line-height:1.65;color:#8a3226}
/* 折叠卡：一句话摘要，点开才占地方 */
.fold{background:#fff;border:1px solid #e7eaf0;border-radius:14px;margin:0 0 12px;
  box-shadow:0 2px 10px rgba(30,60,120,.06);overflow:hidden}
.fold>summary{list-style:none;cursor:pointer;padding:13px 14px;font-size:14.5px;font-weight:600;color:#1f2329;
  display:flex;align-items:center;gap:8px;background:#fff}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary .fic{flex:0 0 auto;font-size:16px;line-height:1}
.fold>summary .ft{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fold>summary .fs{flex:0 0 auto;font-size:12px;color:#86909c;font-weight:400;max-width:46%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fold>summary .fs.ok{color:#0f7a4d;font-weight:600}
.fold>summary .fs.miss{color:#c2413a;font-weight:600}
.fold>summary .fa{flex:0 0 auto;font-size:12px;color:#a8b0bc;transition:transform .2s;transform:rotate(90deg)}
.fold[open]>summary{border-bottom:1px solid #eef1f5}
.fold[open]>summary .fa{transform:rotate(-90deg)}
.fold .fb{padding:12px 14px 14px}
.fold .fb>.card{margin:0;box-shadow:none;border:0;padding:0}
.fold .fb .card>.hide{display:none !important}
/* v85 修正：.err / .gate 的初始隐藏靠 JS 写内联 style，但 autoPickProv→geoHint 那条链
   会在没人报错时也把它们刷成 display:block —— 结果两个空盒子在表单里白占 144px
   （实测 64+80），把提交按钮顶出首屏。这里改成「有内容才占位」：
   空的时候 display:none，JS 想显示时只要有字就自然出来，不依赖内联样式。 */
#ferr:empty,#photoneeded:empty{display:none !important}
/* 证件照折叠标题上的状态色（还差 N 张 / 已传齐） */
.fold.danger>summary{color:#c2413a}
/* 表单里的照片入口：不折叠的话证件照卡在表单上方又占 475px */
.pentry{display:flex;align-items:center;gap:8px;width:100%;margin:10px 0 0;padding:10px 12px;
  border:1px dashed #d4dbe6;background:#fbfcfe;border-radius:10px;font-family:inherit;
  font-size:13.5px;color:#1f2329;text-align:left}
.pentry b{flex:0 0 auto;color:#c2413a;font-size:12.5px}
.pentry .ok{color:#0f7a4d;font-weight:600}
.pentry .pb{margin-left:auto;flex:0 0 auto;font-size:12.5px;color:#0f7a4d;background:#e7f8ee;
  border:1px solid #bfe9d2;border-radius:8px;padding:5px 10px;font-weight:600}

/* ==XK-SHOP-V117== UI 精修（老板 2026-10-24：下单页面 UI 再优化一版）
   ------------------------------------------------------------
   原则：不动任何 id / JS 逻辑 / 文案口径，只动皮肤 —— 本块压在样式表最末，
   同名选择器后规则覆盖前规则。老 WebView 红线照旧：零 CSS 变量、零 transform 动画。 */
/* ① hero：绿→蓝渐变更有「商城橱窗」感，标题再大一档 */
.hero{background:linear-gradient(150deg,#e6f7ee 0%,#f2f9ff 55%,#eef3ff 100%);border-color:#d6ecdf;
  padding:22px 16px 16px}
.hero .ht{font-size:24px}
.hero .hs{margin-top:10px}
/* ② 信任徽章保持 2×2 舒展版（老板 2026-10-24：一行四列太挤） */
.trust{gap:7px}
/* ③ 运营商 Tab 吸顶：列表长，滑到哪都能切运营商 */
.tabs{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:#f4f6f9;padding:8px 2px 10px}
/* ④ 列表「通栏分割线」→ 一款一张白卡：层次清楚、点击目标更大；图放大、月租高亮 */
#list{background:transparent;border:0;box-shadow:none;padding:0}
.item{border:1px solid #e7eaf0;border-radius:12px;margin:0 0 8px;padding:10px;background:#fff;
  box-shadow:0 1px 5px rgba(30,60,120,.05)}
.item:first-of-type{border-top:1px solid #e7eaf0}
.item img{width:76px;height:100px;flex:0 0 76px}
.item .it b{font-size:15px}
.item .it i{margin-top:3px}
.item .it i.rt b{font-size:17px;font-weight:800;color:#ff7a1a}
.item .it i.rt{color:#e0862e}
.item .go{padding:9px 14px;border-radius:20px;box-shadow:0 3px 10px rgba(18,183,106,.28)}
/* ⑤ 主按钮绿光投影（表单提交 / 底部常驻栏），行动点更跳 */
.btn{box-shadow:0 6px 16px rgba(18,183,106,.3)}
.dbar .main{box-shadow:0 4px 14px rgba(18,183,106,.35)}
/* ⑥ 表单弹层：顶部拖杆提示可下滑，头部留白加大 */
.fmask .fsheet::before{content:"";position:absolute;left:50%;top:7px;width:36px;height:4px;margin-left:-18px;
  border-radius:2px;background:#dfe3ea}
.fmask .fhd{padding-top:16px}
/* ⑦ 详情页规格条数字再大一档（卖点三连：流量/通话/月租） */
.spec b{font-size:21px}
/* ==XK-SHOP-V140.3== 疯抢场（老板 2026-10-26 拼多多限时秒杀截图：下单页要「疯抢中」氛围）
   红线不变：氛围数字走 v131 确定性引擎（同款同天稳定），pulse 真计数照旧上墙。 */
/* hero 限时条 → 红色疯抢条：大号倒计时 + 每日 0 点补货 chip */
.htimer{background:linear-gradient(135deg,#ff5f47,#e8502f);border:0;color:#fff;
  padding:11px 14px;border-radius:12px;box-shadow:0 4px 14px rgba(232,80,50,.25)}
.htimer .htl{color:#fff;font-weight:700;font-size:14px}
.htimer b{color:#fff;font-size:20px}
.htimer .hsub{font-size:10.5px;color:rgba(255,255,255,.88);background:rgba(0,0,0,.18);
  border-radius:999px;padding:3px 9px;white-space:nowrap}
/* 卡片行动点：绿「免费申领」→ 红渐变「马上抢」 */
.item .go{background:linear-gradient(135deg,#ff5f2e,#e02020);color:#fff;padding:9px 15px;
  border-radius:20px;box-shadow:0 3px 10px rgba(224,32,32,.3);font-size:13px;font-weight:800}
/* 热度/仅剩胶囊红色化（对应拼多多「已抢7.2万+件」） */
.item .it i.ht{color:#e05555;background:#fff1f1;border:1px solid #ffd9d9}
.item .it i.ht b{color:#e02020}
.item .it i.lf{display:inline-block;margin:0 6px 0 0;padding:4px 10px;border-radius:999px;
  background:#fff7ec;border:1px solid #ffe1b8;color:#c2570a;font-size:12px;font-style:normal;white-space:nowrap}
.item .it i.lf b{font-size:14.5px;font-weight:800;color:#e02020;margin-right:3px}
/* 爆款/热办角标同步红色（绿标在红场里跳） */
.hotb{background:#e02020}
/* ==XK-SHOP-V141.1== 降红（老板 01:32 截图：红色太重）—— 头区改浅珊瑚色，信任卡改白底，
   只保留疯抢条/马上抢/选中 tab 三处重点红，其余全部减淡 */
#view-list{position:relative;background:linear-gradient(180deg,#e8533b 0%,#f2836a 150px,#f6f7f9 460px);
  margin:-2px -12px 0;padding:12px 12px 8px;border-radius:0 0 16px 16px}
.hero{background:linear-gradient(160deg,#f2674b 0%,#e94f33 55%,#e04126 100%);border:1px solid #e0492e;
  box-shadow:0 8px 22px rgba(232,80,50,.22)}
.hero .ht u{background:linear-gradient(transparent 64%,rgba(255,214,0,.55) 64%)}
.hero .hs{background:rgba(255,255,255,.2);color:#fff0e8}
.hero .hlive .stat{background:rgba(255,255,255,.96);border-color:#ffd6c9}
.hero .hlive .stat b{color:#d94a2b}
.hero .hlive .dot{background:#ffd21e}
.hshare button{background:#fff;border-color:#ffd9c9;color:#d94a2b}
/* 信任卡：白底红字（深红卡在浅红场上太闷） */
.trust span{background:#fff;border:1px solid #ffd9cc;
  box-shadow:0 4px 12px rgba(210,70,40,.12)}
.trust span::before{background:linear-gradient(90deg,rgba(255,130,90,0),rgba(255,130,90,.4),rgba(255,130,90,0))}
.trust span{color:#c98a7d}
.trust span b{color:#c8351f;text-shadow:none}
.trust span i{filter:none}
.tab{border-color:#f3d5cd;background:rgba(255,255,255,.94)}
.tab.on{background:#007aff;border-color:#007aff;color:#fff}
.hband{display:flex;align-items:center;gap:6px;margin-top:12px;
  background:linear-gradient(90deg,#ff7a45,#ffa02e);border-radius:10px;padding:8px 10px;
  font-size:13px;font-weight:700;color:#fff;box-shadow:0 3px 10px rgba(255,122,69,.28)}
.hband i{font-style:normal;font-weight:400;font-size:11px;color:rgba(255,255,255,.92);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.hband .hb2{margin-left:auto;flex:0 0 auto;font-size:10.5px;background:rgba(0,0,0,.14);
  border-radius:999px;padding:3px 8px;font-weight:600;white-space:nowrap}
.item .iwrap{position:relative;flex:0 0 76px;display:block;height:100px}
.item .iwrap img{width:76px;height:100px}
.item .iseal{position:absolute;left:0;right:0;bottom:0;background:rgba(240,80,50,.94);color:#fff;
  font-size:9px;text-align:center;padding:2px 0;border-radius:0 0 8px 8px;font-style:normal;white-space:nowrap;
  overflow:hidden}
.item .iseal b{font-weight:700;font-variant-numeric:tabular-nums}
.hotb.ob{background:#ff7a1a}
.hotb.sb{background:#c2410c}
/* ==XK-SHOP-V142== iOS 丝滑 + 营销贴产品（老板 01:38：营销放产品上让客户对比就想下单、
   苹果风丝滑高级不卡顿） */
/* ① 系统级字体栈 + 抗锯齿（苹果风的基础是字） */
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","SF Pro Text","Helvetica Neue","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* ② 卡片按压手感：按下微缩回弹 + 柔和大圆角阴影（iOS 按钮质感） */
.item{border-radius:14px;box-shadow:0 2px 12px rgba(30,60,120,.07);
  transition:transform .18s ease,box-shadow .18s ease;-webkit-transition:transform .18s ease,box-shadow .18s ease}
.item:active{transform:scale(.977);box-shadow:0 1px 6px rgba(30,60,120,.09)}
/* ③ 营销贴产品：每张卡自带名额进度条（对比哪款快抢完，一眼见分晓） */
.item .qbar{margin-top:7px;height:5px;border-radius:3px;background:#f1f2f6;overflow:hidden}
.item .qbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#ff8a4d,#e8502f)}
/* ④ 触控滚动惯性（老 WebView 丝滑保险） */
.tabs,.fpanel,.fgrid,#list{-webkit-overflow-scrolling:touch}
/* ⑤ 常驻动画提升合成层，滚动不掉帧 */
.vtick-in{-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform}
/* ==XK-SHOP-V142.1== 修老板 01:44 截图两处：
   ① 胶囊竖排堆叠根因：.item .it b{display:block} 波及 pills 里的 <b>718</b> —— 价格/已抢全竖着排。
      pills 内 b 恢复行内，字号照旧大数字。 */
.item .it .pills b{display:inline-block;margin:0 1px}
/* ② 图上秒杀条缩短为「仅剩 HH:MM:SS」，76px 图宽内单行放得下（旧四字文案去掉，
     顺带解决仅发部分省份的款不配用该文案的口径问题） */
.item .iseal{font-size:8.5px;letter-spacing:0}
/* ==XK-SHOP-V144== 头区质感重构（老板 02:34 截图：有点质感、不要重复、宣传夸大点）
   ① 去重：砍掉与疯抢条重复的「仅剩倒计时」券条 + 「今日名额有限」角标，全场只留一个倒计时；
   ② 质感：磨砂玻璃数据板 + 高光描边 + 细斜纹肌理 + 金色重点数字 + 深红丝绒疯抢条；
   ③ 夸大：滚动 hype 横幅（氛围文案，老板授权的确定性引擎口径）。 */
.hero{position:relative;overflow:hidden;border-radius:18px;
  background:
    radial-gradient(130% 100% at 88% -12%,rgba(255,196,110,.42),transparent 55%),
    radial-gradient(90% 80% at -8% 110%,rgba(110,10,0,.32),transparent 62%),
    linear-gradient(160deg,#f2674b 0%,#e94f33 55%,#d63a1d 100%);
  border:1px solid rgba(255,255,255,.26);
  box-shadow:0 12px 32px rgba(214,58,29,.30),inset 0 1px 0 rgba(255,255,255,.28)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.045) 0 1px,transparent 1px 8px)}
.hero .ht,.hero .hs,.hero .hb,.hero .hstats,.hero .htimer,.hero .hband,.hero .hshare{position:relative;z-index:1}
.hero .ht{font-size:23px;letter-spacing:1.5px;text-shadow:0 2px 8px rgba(130,20,0,.35)}
.hero .ht u{text-decoration:none;background:linear-gradient(180deg,#ffedbb 12%,#ffc83d 88%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero .hs{margin-top:9px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);
  color:#fff2e8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
/* 数据板：一块磨砂玻璃板统一承载（今日申领/累计服务/在售款/运营商/成功率） */
.hstats{margin-top:13px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.26);
  border-radius:14px;padding:3px 4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hero .hlive{display:flex;flex-wrap:wrap;margin-top:0;gap:0;padding:8px 6px;
  font-size:11px;color:rgba(255,255,255,.92)}
.hero .hlive+.hlive{border-top:1px solid rgba(255,255,255,.16)}
.hero .hlive .stat{flex:1 1 0;display:inline-flex;align-items:baseline;justify-content:center;gap:4px;
  background:transparent;border:0;border-radius:0;padding:4px 6px;white-space:nowrap;
  box-shadow:none}
.hero .hlive .stat+.stat{border-left:1px solid rgba(255,255,255,.18)}
.hero .hlive .stat b{font-size:19px;font-weight:800;color:#ffedb8;margin:0 1px;
  font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(130,20,0,.3)}
.hero .hlive .dot{background:#ffd21e}
/* 疯抢主条：全场唯一倒计时（深红丝绒 + 金色大数字 + 名额进度条） */
.htimer{display:block;margin-top:12px;padding:11px 14px 10px;border-radius:14px;color:#fff;
  background:linear-gradient(135deg,#b31508,#8f0e05 70%);border:1px solid rgba(255,255,255,.18);
  box-shadow:0 8px 20px rgba(120,15,5,.35),inset 0 1px 0 rgba(255,255,255,.16)}
.htimer .hrow{display:flex;align-items:center;justify-content:space-between;gap:8px}
.htimer .htl{color:#fff;font-weight:800;font-size:14px;letter-spacing:.5px}
.htimer b.xkcd{color:#ffdf70;font-size:23px;letter-spacing:1px;text-shadow:0 2px 8px rgba(80,8,0,.5)}
.htimer .hsub{font-size:10.5px;color:rgba(255,255,255,.9);background:rgba(255,255,255,.16);
  border-radius:999px;padding:3px 9px;white-space:nowrap}
.hprog{position:relative;margin-top:9px;height:6px;border-radius:3px;background:rgba(0,0,0,.30);overflow:hidden}
.hprog i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:3px;
  background:linear-gradient(90deg,#ffd75e,#ff9d2e);box-shadow:0 0 8px rgba(255,190,80,.55)}
.hptx{margin-top:6px;font-size:10.5px;color:rgba(255,255,255,.85);letter-spacing:.3px}
.hptx b{color:#ffdf70;font-variant-numeric:tabular-nums}
/* hype 滚动横幅：内容双份无缝循环（氛围文案） */
.hband{display:block;margin-top:11px;padding:7px 0;border-radius:999px;overflow:hidden;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.hband .hbtrack{display:inline-flex;white-space:nowrap;will-change:transform;
  -webkit-animation:xkband 26s linear infinite;animation:xkband 26s linear infinite}
.hband .hbtrack span{position:relative;flex:0 0 auto;font-size:11.5px;color:#fff3ea;padding:0 16px}
.hband .hbtrack span::after{content:"";position:absolute;right:-2px;top:50%;width:3px;height:3px;
  border-radius:50%;background:rgba(255,255,255,.55);-webkit-transform:translateY(-50%);transform:translateY(-50%)}
@-webkit-keyframes xkband{from{-webkit-transform:translateX(0)}to{-webkit-transform:translateX(-50%)}}
@keyframes xkband{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* 分享按钮：白底瓷面 + 按压反馈 */
.hshare button{background:rgba(255,255,255,.94);border:0;color:#c8351f;border-radius:12px;
  padding:11px 0;box-shadow:0 5px 14px rgba(130,20,5,.22);
  -webkit-transition:transform .18s ease;transition:transform .18s ease}
.hshare button:active{-webkit-transform:scale(.98);transform:scale(.98)}
/* ==XK-SHOP-RS v151== 保时捷布局 × 苹果浅色丝滑（老板 2026-10-28 二改：不要黑底）
   ------------------------------------------------------------
   布局骨架保留保时捷语言：发丝金线 / 香槟金大数字 / 徽章 / 按压缩放；
   配色整体切换 Apple 浅色：#f5f5f7 底 + 纯白卡片 + 金色点缀；
   交互丝滑：cubic-bezier 过渡 + 按压缩放 + 磨砂底栏；
   运营商语义色（移动蓝/联通红/电信绿/广电紫）保持不动；老 WebView 全兼容（无 CSS 变量）。 */
html,body{background:#f5f5f7;color:#1d1d1f;
  -webkit-font-smoothing:antialiased}
/* 丝滑过渡：可点元素统一缓动 */
.btn,.tab,.fc,.fpc,.fsel,.fsel2,.ghost,.aibtn,.dbar .main,.item .go,.hshare button,.tipsbox button{
  -webkit-transition:transform .22s cubic-bezier(.25,.1,.25,1),background .22s ease,border-color .22s ease,box-shadow .22s ease;
  transition:transform .22s cubic-bezier(.25,.1,.25,1),background .22s ease,border-color .22s ease,box-shadow .22s ease}
.btn:active,.tab:active,.fc:active,.fpc:active,.item .go:active,.tipsbox button:active{transform:scale(.965)}
.brand{color:#1d1d1f}
.brand span{color:#86868b}
h1{color:#1d1d1f}
h1.sec{letter-spacing:.5px}
h1.sec .sn{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
h1.sec .ss{color:#86868b}
.subt{color:#86868b}
.plan{color:#6e6e73}
.tip,.foot,.foot a{color:#86868b}
/* 卡片：纯白瓷面 + 极浅描边 */
.card{background:#fff;border:1px solid rgba(0,0,0,.05);box-shadow:0 8px 24px rgba(29,29,31,.06)}
/* 品牌 logo：金面白字 */
.logo{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
/* 图片底：苹果浅灰 */
.pic,.item img,.pcell img,.dimg,.nsimg{background:#f2f2f5;border:1px solid #e8e8ed}
.dgal .dt{color:#007aff;letter-spacing:1px}
.dgal img{background:#f2f2f5;border:1px solid #e8e8ed}
.dmore{background:rgba(0,122,255,.10);border:1px solid rgba(0,122,255,.30);color:#0062cc}
/* 参数列表 */
.kv li{color:#515154;border-top:1px dashed #e8e8ed}
.kv li b{color:#86868b}
/* 提示卡：浅琥珀 */
.warn,.fcc,.pnotice,.actb,.geo.warn{background:#eef5ff;border:1px solid #c9e2ff;color:#0062cc}
.warn b,.fcc .fct,.actb .at,.actb b{color:#7a5c1e}
.fcc .fcd{color:#96762f}
.fcc .fcu{background:#fff;border:1px solid #c9e2ff}
.fcc .fcu span{color:#007aff}
.fcc .fcu button{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.note,.phtip{background:#eef4ff;border:1px solid #d3e2fa;color:#3a6296}
.phtip .ph-hd{color:#2f5488}
.phtip .ph-sub,.phtip .ph-f,.phtip .ph-g{color:#7d92b2}
.phtip li{color:#41597e}
.phtip li .no{background:rgba(0,122,255,.15);color:#007aff}
.phtip li b{color:#1d1d1f}
.phtip li em{color:#007aff}
.err,.gate,.pnotice.imp,.nswarn{background:#fff1ef;border:1px solid #ffd9d4;color:#c2413a}
.nswarn b{color:#c2413a}
/* 表单：iOS 灰底填充输入 + 聚焦浮白描蓝（VFORM-1105） */
label,.fl>label{color:#6e6e73}
input,select,textarea{background:#f5f6f8;border:1px solid transparent;color:#1d1d1f;border-radius:12px;
  -webkit-transition:border-color .2s ease,background .2s ease;transition:border-color .2s ease,background .2s ease}
input:focus,select:focus,textarea:focus{border-color:#007aff;background:#fff}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a8b0bc}
.btn[disabled]{background:#ececf0;color:#a8a8ad}
.fl{border-bottom:0}
.fl #f-name,.fl #f-id,.fl #f-phone{background:#f5f6f8;border:1px solid transparent;border-radius:11px}
.agreerow{background:#eef5ff;border:1px solid #c9e2ff;color:#6e6e73}
.agreerow input{accent-color:#007aff}
.agreerow b{color:#1d1d1f}
.agreerow.flat{background:transparent;border:0}
/* 主按钮：香槟金渐变 + 白字（保时捷签名按钮，浅底版） */
.btn{background:linear-gradient(135deg,#3aa0ff 0%,#007aff 100%);color:#fff;font-weight:800;
  box-shadow:0 6px 18px rgba(0,122,255,.35);letter-spacing:2px}
.btn:active{transform:scale(.97);opacity:.95}
.ghost{background:#fff;border:1px solid #e0e0e5;color:#6e6e73}
/* 成功态：金 */
.okmark{background:rgba(0,122,255,.12);color:#007aff}
.okno{color:#007aff}
/* 标签页胶囊 */
.tab{background:#fff;border:1px solid #e0e0e5;color:#6e6e73}
.tab.on{background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;font-weight:700}
/* 商品列表 */
.item{border-top:1px solid #f0f0f2;-webkit-transition:background .2s ease;transition:background .2s ease}
.item:active{background:#fafafa}
.item .it b{color:#1d1d1f}
.item .it i{color:#86868b}
.item .it i.ag{color:#007aff}
.item .it i.ht,.item .it i.rt{background:#f7f5ee;border:1px solid #eee4c8;color:#0062cc}
.item .it i.ht b{color:#b06a2a}
.item .it i.rt b{color:#1d1d1f}
.item .go{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;font-weight:800}
.hotb{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.hotb.top{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
/* 大数字规格条 */
.spec{background:#fff;border:1px solid #ececf0}
.spec div{border-right:1px solid #ececf0}
.spec b{color:#007aff;font-variant-numeric:tabular-nums}
.spec i{color:#86868b}
/* hero：暖白 + 金线 + 金色划线 */
.hero{background:linear-gradient(155deg,#f5f8fc 0%,#e9eff7 55%,#f2f4f7 100%);border:1px solid rgba(0,122,255,.45);color:#1d1d1f;
  box-shadow:0 14px 36px rgba(160,125,47,.10)}
.hero::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,rgba(0,122,255,0),#007aff 30%,#007aff 50%,#007aff 70%,rgba(0,122,255,0))}
.hero .ht{letter-spacing:2px;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.hero .ht u{background:linear-gradient(transparent 62%,rgba(0,122,255,.55) 62%)}
.hero .hs{background:rgba(0,122,255,.12);color:#0062cc;border:1px solid rgba(0,122,255,.28)}
.hero .hb{opacity:.08}
.hero .hlive{color:#86868b}
.hero .hlive .stat{background:rgba(255,255,255,.65);border:0;border-radius:0;box-shadow:none}
.hero .hlive .stat+.stat{border-left:1px solid rgba(0,122,255,.30)}
.hero .hlive .stat b{color:#0062cc;text-shadow:none}
.hero .hlive .dot{background:#007aff}
/* ==SHOPUX-1109== 数据板 2.0：2×2 大数字看板（今日申领/今日发货/累计服务/在售款）。
   数字大一号、金色描边感靠实色+投影（老内核不支持 background-clip:text，不玩渐变字）。 */
.hstats{margin-top:12px;background:rgba(255,255,255,.74);border:1px solid rgba(0,122,255,.22);
  border-radius:14px;padding:0;box-shadow:0 4px 14px rgba(24,84,168,.08);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hrowx{display:flex}
.hrowx+.hrowx{border-top:1px solid rgba(0,122,255,.14)}
.hcell{flex:1 1 0;min-width:0;padding:9px 4px 8px;text-align:center}
.hcell+.hcell{border-left:1px solid rgba(0,122,255,.14)}
.hcell .hlab{display:block;font-size:10.5px;color:#8a93a3;letter-spacing:.5px}
.hcell .hlab .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#12b76a;
  margin-right:4px;vertical-align:1px;-webkit-animation:xkblink 1.2s infinite;animation:xkblink 1.2s infinite}
.hcell b{display:block;margin-top:3px;font-size:24px;line-height:1.08;font-weight:800;color:#0062cc;
  font-variant-numeric:tabular-nums;letter-spacing:.3px;text-shadow:0 2px 8px rgba(0,98,204,.14)}
.hcell b em{font-style:normal}
.hcell b i{font-style:normal;font-size:11.5px;font-weight:600;color:#8a93a3;margin-left:2px;letter-spacing:0}
/* 疯抢条：浅金丝绒 */
.htimer{background:linear-gradient(135deg,#f0f6ff,#e4efff 70%);border:1px solid rgba(0,122,255,.45);
  box-shadow:0 8px 24px rgba(160,125,47,.12),inset 0 1px 0 rgba(255,255,255,.85)}
.htimer .htl{color:#0062cc}
.htimer b.xkcd{color:#7a5c1e;text-shadow:none}
.htimer .hsub{background:rgba(0,122,255,.14);color:#96762f}
.hprog{background:rgba(160,125,47,.14)}
.hprog i{background:linear-gradient(90deg,#007aff,#007aff);box-shadow:0 0 8px rgba(0,122,255,.5)}
.hptx{color:rgba(109,103,88,.85)}
.hptx b{color:#0062cc}
/* 氛围横幅：浅金玻璃 */
.hband{background:rgba(0,122,255,.08);border:1px solid rgba(0,122,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.hband .hbtrack span{color:#96762f}
/* 信任徽章行：白瓷卡 */
.trust span{background:#fff;
  border:1px solid rgba(0,122,255,.22);color:#6e6e73;
  box-shadow:0 8px 20px rgba(29,29,31,.06),inset 0 1px 0 rgba(255,255,255,.9)}
.trust span::before{background:linear-gradient(90deg,rgba(0,122,255,0),rgba(0,122,255,.5),rgba(0,122,255,0))}
.trust span b{color:#1d1d1f;text-shadow:none}
/* 反诈弹窗：白底金框 */
.tipsbox{background:#fff;border:1px solid rgba(0,122,255,.40);color:#515154;box-shadow:0 20px 60px rgba(29,29,31,.18)}
.tipsbox .tt{color:#007aff;letter-spacing:2px}
.tipsbox .td{color:#6e6e73}
.tipsbox button{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
/* 营销层浅金化（v140 拼多多层） */
.promo.v131{background:#eef5ff;border:1px solid #c9e2ff;color:#0062cc}
.promo.v131 .pr,.promo.v131 .pfeed{color:#a0803f}
.promo.v131 .pbar{background:rgba(0,122,255,.15)}
.promo.v131 .pbar i{background:linear-gradient(90deg,#007aff,#007aff)}
.promo.v131 .prow2 .pn{color:#0062cc}
.promo.v140{background:linear-gradient(150deg,#fdf9ef 0%,#faf4e4 100%);border:1px solid rgba(0,122,255,.35);color:#8a7433}
.promo.v140 .pstats span{background:rgba(255,255,255,.7);border:1px solid rgba(0,122,255,.25);color:#96762f}
.promo.v140 .pstats b{color:#0062cc}
.promo.v140 .pbar{background:rgba(0,122,255,.15)}
.promo.v140 .pbar i{background:linear-gradient(90deg,#007aff,#007aff)}
.promo.v140 .prow2 .pn{color:#0062cc}
.promo.v140 .prow2 .ptimer{color:#a0803f}
.promo.v140 .vroute{background:linear-gradient(135deg,#3aa0ff,#0062cc);color:#fff}
.promo.v140 .vroute b{color:#fff}
.promo.v140 .vroute i{color:rgba(255,255,255,.9)}
.promo.v140 .vpin{background:rgba(255,255,255,.7);border:1px solid rgba(0,122,255,.25)}
.promo.v140 .vpin .vh{color:#6e6e73}
.promo.v140 .vpin .vh b{color:#1d1d1f}
.promo.v140 .prow-line{border-top:1px dashed rgba(0,122,255,.25)}
.promo.v140 .pava{background:linear-gradient(135deg,#007aff,#0062cc);color:#fff}
.promo.v140 .pnm{color:#3a3a3c}
.promo.v140 .pst{color:#9a9484}
.promo.v140 .pst .pcd{color:#c2413a}
.promo.v140 .pgo{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.promo.v140 .vrank,.promo.v140 .vins{background:rgba(255,255,255,.7);border:1px solid rgba(0,122,255,.25);color:#96762f}
.promo.v140 .vrank b{color:#0062cc}
.promo.v140 .pfeed{border-top:1px dashed rgba(0,122,255,.25);color:#a0803f}
/* 实时动态条 */
.livetk{background:#fff;border:1px solid #ececf0}
.tkitem{color:#6e6e73}
.tkitem b{color:#007aff}
/* 促销条（老版） */
.promo{background:#eef5ff;border:1px solid #c9e2ff;color:#0062cc}
.promo b{color:#0062cc}
/* 成功页 */
.nst-act{background:linear-gradient(180deg,#f0f6ff,#e4efff);border-color:rgba(0,122,255,.45)}
.nst-dir{background:linear-gradient(180deg,#ffffff,#f7f7f9);border-color:#e8e8ed}
.nsh b,.nss .nb b,.nsh>b{color:#1d1d1f}
.nsh b b{color:#007aff}
.nss .nb span{color:#6e6e73}
.nss .nb span em{color:#0062cc}
.nss .n{background:#007aff;color:#fff}
.nst-act .nss .n{background:#007aff;color:#fff}
.nst-act .nsb{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.nst-dir .nsb{background:#ececf0;color:#0062cc}
.nsa a,.nsa button{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.nsa a.gh,.nsa button.gh{background:#fff;border:1px solid rgba(0,122,255,.35);color:#007aff}
.nsurl{background:#f7f7f9;border:1px solid #e8e8ed}
.nsurl span{color:#007aff}
.nsurl a,.nsurl button{background:#fff;border:1px solid rgba(0,122,255,.35);color:#007aff}
.okshare button{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;letter-spacing:2px}
/* 时间线 */
.flow li{color:#515154;border-left:2px solid #e0d9c2}
.flow li:before{background:#007aff;border:2px solid #fff}
.flow li b{color:#1d1d1f}
.flow li i{color:#86868b}
/* 底部栏 / 悬浮球：iOS 磨砂白 */
.dbar{background:rgba(255,255,255,.88);border-top:1px solid rgba(0,0,0,.06);
  -webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}
.dbar a{color:#86868b}
.dbar .main{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;box-shadow:0 4px 14px rgba(0,122,255,.35);letter-spacing:1px}
.aibtn{background:rgba(255,255,255,.92);border:1px solid rgba(0,122,255,.45);color:#007aff;box-shadow:0 4px 14px rgba(29,29,31,.10)}
.aipanel{background:#fff;box-shadow:0 -8px 30px rgba(29,29,31,.14)}
.aipanel .aihd{border-bottom:1px solid #ececf0}
.aipanel .aihd b{color:#1d1d1f}
.aipanel .aihd span{color:#86868b}
.aipanel .aiclose{background:#f2f2f5;color:#6e6e73}
.aipanel .aigolist{border-color:rgba(0,122,255,.35);background:#eef5ff;color:#0062cc}
.aichat{background:#f5f5f7}
.msg.bot{background:#fff;border:1px solid #ececf0;color:#3a3a3c}
.msg.me{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.chip{color:#007aff;background:rgba(0,122,255,.10);border:1px solid rgba(0,122,255,.25)}
.aifoot{border-top:1px solid #ececf0}
.aifoot button{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
/* 筛选行 / 省份面板 */
#fitbar{background:#eef5ff;border:1px solid #c9e2ff;color:#0062cc}
.fgrp .flab{color:#86868b}
.fgrp .flab .fsub{color:#007aff;background:rgba(0,122,255,.10)}
.fc{background:#fff;border:1px solid #e0e0e5;color:#6e6e73}
.fc.on{background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;font-weight:700}
.fsel,.fsel2{background:#fff;border:1px solid #e0e0e5;color:#6e6e73}
.fsel.on,.fsel2.on{border-color:#007aff;color:#007aff;background:rgba(0,122,255,.06)}
.fpanel{background:#fff;border:1px solid #e8e8ed;box-shadow:0 16px 44px rgba(29,29,31,.16)}
.fpanel .fh{color:#86868b}
.fpanel .fh .fx2{color:#007aff}
.fpanel::before{background:#d9d9de}
.fpc{background:#f7f7f9;border:1px solid transparent;color:#515154}
.fpc b{color:#a0803f}
.fpc.on{background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;font-weight:700}
.fpc.on b{color:rgba(255,255,255,.85)}
.fpc.dis{background:#f2f2f5;color:#b8b8bd}
.fpc.dis b{color:#b8b8bd}
.geo{background:#fff;border:1px solid #e0e0e5;color:#6e6e73}
.geo.ok{background:#eef5ff;border-color:#007aff;color:#007aff}
.addrtool button{background:rgba(0,122,255,.10);border:1px solid rgba(0,122,255,.32);color:#007aff}
.addrtool label{color:#6e6e73}
/* 骨架屏：浅微光 */
.skel .sk{border:1px solid #ececf0;background:linear-gradient(100deg,#f2f2f4 40%,#fafafa 50%,#f2f2f4 60%);background-size:200% 100%}
/* 详情弹层（白底文档面）：按钮金调 */
.dbtn{background:#faf4e4;border:1px solid #e5d2a8;color:#0062cc}
.dsheet .ph span{color:#8a94a4}
/* 公告条 */
.noticebar{background:#fff;border:1px solid #ececf0}
.nitem{color:#6e6e73}
.nitem.imp{color:#c2413a}
/* 分享按钮（hero 内） */
.hshare button{background:rgba(255,255,255,.9);border:1px solid rgba(0,122,255,.35);color:#007aff;box-shadow:0 4px 12px rgba(160,125,47,.12)}
.hshare button:active{transform:scale(.97)}
.item .iseal{background:rgba(0,122,255,.92);color:#fff}
/* ==RS v150.1== 浅色文档弹层内恢复浅色提示：.fmask/.dsheet 是白底文档面，
   暗色提示卡（红/琥珀/蓝/勾选行/输入框）在其内会失去对比度，这里按面修正 */
.fmask .err,.fmask .gate,.fmask .pnotice,.fmask .pnotice.imp,.fmask .nswarn,
.dsheet .err,.dsheet .gate,.dsheet .pnotice,.dsheet .pnotice.imp,.dsheet .nswarn{background:#fff1ef;border:1px solid #ffd9d4;color:#c2413a;font-weight:600}
.fmask .warn,.fmask .actb,.fmask .fcc,.fmask .geo.warn,
.dsheet .warn,.dsheet .actb,.dsheet .fcc,.dsheet .geo.warn{background:#fff7e8;border:1px solid #ffe1ad;color:#8a5a00}
.fmask .note,.dsheet .note{background:#eef4ff;border:1px solid #d3e2fa;color:#3a6296}
.fmask .agreerow,.dsheet .agreerow{background:#f5f6f8;border:1px solid rgba(0,0,0,.05);color:#4e5969}
.fmask .agreerow b,.dsheet .agreerow b{color:#1f2329}
.fmask label,.fmask .fl>label,.dsheet label,.dsheet .fl>label{color:#4e5969}
.fmask input,.fmask select,.fmask textarea,.dsheet input,.dsheet select,.dsheet textarea{background:#fff;border:1px solid #d9dee7;color:#1f2329}
.fmask input::-webkit-input-placeholder,.fmask textarea::-webkit-input-placeholder,
.dsheet input::-webkit-input-placeholder,.dsheet textarea::-webkit-input-placeholder{color:#a8b0bc}
.fmask input:focus,.fmask select:focus,.fmask textarea:focus,
.dsheet input:focus,.dsheet select:focus,.dsheet textarea:focus{border-color:#c8a25e}
/* #restr 办理限制条：无自有文字色，旧主题继承 body 深字；RS 主题 body 改浅字后在浅粉底上失对比 */
#restr{color:#6b5527}
#restr b{color:#8f2f1e}
/* ==XK-SHOP-VFORM-1105== 填单弹窗质感重构（老板 03:47 截图反馈「流程简化点、有质感点」）：
   ① 限制卡去琥珀警示感 → 中性浅灰信息卡，发货/实测并一行、年龄/派送并一行（6 行并 3 行）；
   ② 步骤标题去大蓝条 → 深字 + 浅灰小注（实名信息 / 收货地址），流程感轻；
   ③ 输入框统一 iOS 灰底圆角、聚焦浮白描蓝；去掉字段行下的双线；
   ④ 全部 id 与校验/级联/识别逻辑零改动。 */
#restr{color:#6e6e73}
#restr b{color:#1d1d1f}
#restr .rs-t{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#1d1d1f;margin:0 0 5px;letter-spacing:.3px}
#restr .rs-row{font-size:12.5px;line-height:1.7;color:#6e6e73;padding:2px 0}
#restr .rs-row .rs-ok{color:#0f9d63;font-weight:600}
#restr .rs-money{background:#fff;border:1px solid #f0e6cc;border-radius:9px;padding:7px 11px;margin:4px 0;color:#1d1d1f;font-weight:600}
#restr .rs-money b{color:#c2402f;font-weight:800}
.fstep{display:flex;align-items:baseline;gap:7px;margin:15px 0 8px;font-size:13.5px;font-weight:700;color:#1d1d1f;letter-spacing:.2px}
.fstep::before{content:"";width:4px;height:13px;border-radius:2px;background:#007aff;flex-shrink:0;align-self:center}
.fstep i{font-style:normal;font-size:11.5px;font-weight:400;color:#a8b0bc;letter-spacing:0}
.fstep::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(0,0,0,.07),transparent);align-self:center}
/* ==XK-SHOP-V153== 分类梳理（客户反馈「下单页面分类很乱」）：
   ① 筛选条折叠 —— 原来 3 组共 13 个胶囊无条件铺在列表上方，手机首屏基本被它和营销块占满，
      产品得往下滑才看见。改为默认收起，只留一行「筛选」入口 + 当前条件摘要；
   ② 「全部」按运营商分块，每块带真实款数 —— 55 款按发货率混排时运营商、价格、归属地全交错，
      客户扫不出结构；分块后是目录式的，先看运营商再挑款；
   ③ 卡片去掉每张都挂的随机状态标（火爆开抢/补货售卖/即将售罄），标题回归干净，
      只给综合排序前 3 留一枚「爆款」。55 张卡 55 个彩色标签是最大的视觉噪音来源。 */
.fbar{display:flex;align-items:center;gap:8px;margin:8px 0 4px}
.fbtn{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 13px;border-radius:999px;
  background:#fff;border:1px solid #e7eaf0;font-size:12.5px;color:#4e5969;font-weight:600;cursor:pointer}
.fbtn i{font-style:normal;font-size:12px;color:#e8502f}
.fbtn u{text-decoration:none;font-size:10px;color:#a2a9b4;margin-left:1px}
.fbtn span{font-weight:400;color:#8a94a6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbtn.on{border-color:#e8502f;background:#fff5f1;color:#e8502f}
.fbtn.on span{color:#c2410c}
.gsep{display:flex;align-items:center;gap:7px;margin:16px 0 4px;padding:0 2px}
.gsep:first-child{margin-top:4px}
.gsep b{font-size:13.5px;font-weight:800;color:#1f2329;letter-spacing:.3px}
.gsep i{font-style:normal;font-size:10.5px;color:#98a2b3;background:#f2f4f7;border-radius:999px;padding:1px 7px}
.gsep::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#eceff4,rgba(236,239,244,0))}
/* ==XK-SHOP-V154== 用户视角整页降噪（客户反馈「太乱、不方便」）：
   ① 首屏压缩：hero 跑马灯/分享条删掉、倒计时条与统计行压扁、信任条 2x2 大卡 → 一行四项。
      目标：产品列表首屏可见（原来要滑 1000px 才见到第一张卡）；
   ② 卡片降噪：删图上倒计时盖条/「仅剩M份」/名额进度条，每卡只留「已抢N件」一个氛围数字；
   ③ 卡片信息分层：名称 → 套餐摘要 → 「年龄+发货范围」一行小字 → 「月租+已抢」胶囊行；
   ④ 图片挂了给运营商色占位块，不再一片灰。 */
/* --- ① 首屏压缩 --- */
.hero{padding:13px 14px 12px;margin:2px 0 8px}
/* v154 根因：828 行把 .hb 从 absolute 改成了 relative，74px 的装饰 emoji 在 hero 中段
   占出一大块空白 —— 纯装饰，直接隐藏 */
.hero .hb{display:none}
.hero .ht{font-size:20px}
.hero .hs{margin-top:6px;font-size:11.5px;padding:3px 10px}
.hero .hstats{margin-top:9px}
/* SHOPUX-1109 数据板紧凑档：首屏压缩后大数字降一档，两行仍稳 */
.hcell{padding:7px 4px 6px}
.hcell b{font-size:21px}
.hero .hlive{gap:6px;margin-top:0}
.hero .hlive .stat{padding:5px 9px;font-size:11.5px}
.hero .hlive .stat b{font-size:14px}
.hero .htimer{margin-top:8px;padding:8px 12px}
.hero .htimer b{font-size:17px}
.hero .hprog{margin-top:6px}
.hero .hptx{font-size:10.5px;margin-top:4px}
.trust.trust1{flex-wrap:nowrap;gap:6px;margin:0 0 8px}
.trust.trust1 span{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:3px;
  padding:7px 2px;border-radius:9px}
.trust.trust1 span::before{display:none}
.trust.trust1 span i{display:inline-block;font-size:13px;line-height:1;margin:0;filter:none}
.trust.trust1 span b{display:inline;font-size:11.5px;letter-spacing:0}
.noticebar{margin:0 0 8px;padding:7px 10px}
.livetk{margin:0 0 8px}
.tabs{padding:2px 0 8px}
/* --- ③ 卡片紧凑 --- */
.item{padding:9px 2px;margin:0 0 8px}
/* SHOPUX-1108 图片占位塌陷修复：img 加载失败被 onerror 隐藏后 .iwrap 高度塌 0，
   ::before 的 88px 色块溢出卡片、压到下一张卡（截图实测多张卡图标串位）。
   给 iwrap 兜底高度，色块永远画在卡内。 */
.item .iwrap{flex:0 0 66px;height:88px}
.item .iwrap img{width:66px;height:88px}
.item .it b{font-size:14.5px}
.item .it>i{font-size:12px;margin-top:2px}
.item .meta{display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .it i.mchip{display:inline-block;font-size:10.5px;color:#7a8699;
  background:#f4f6f9;border:0;border-radius:5px;padding:1px 6px;margin:0 5px 0 0;line-height:1.5}
.item .pills{margin-top:6px}
.item .go{padding:8px 13px;font-size:12.5px}
/* --- ④ 图片占位：加载中/失败都显示运营商色块+单字（::before 在 img 下层，
       图加载完自然盖住，不需要 JS 判断状态） --- */
.item .iwrap::before{content:attr(data-op);position:absolute;left:0;top:0;width:66px;height:88px;
  border-radius:8px;display:flex;align-items:center;justify-content:center;font-style:normal;
  font-size:24px;font-weight:800;color:#fff;letter-spacing:0}
.item .iwrap img{background:transparent;border-color:transparent}
.iwrap.op-yidong::before{background:linear-gradient(150deg,#2e8bff,#0053d6)}
.iwrap.op-liantong::before{background:linear-gradient(150deg,#ff4d43,#c40010)}
.iwrap.op-dianxin::before{background:linear-gradient(150deg,#26c253,#0a8a34)}
.iwrap.op-guangdian::before{background:linear-gradient(150deg,#9a79ff,#5a3ce0)}
.iwrap.op-qt::before{background:linear-gradient(150deg,#a8b2c1,#7a8699)}
/* v154 详情图 CDN 慢时防塌陷：占住版面，加载完自动撑开 */
#infoCard .pic{min-height:230px;background:#f5f6f8}
.dgal img{min-height:260px;background:#f5f6f8}
/* ==XK-SHOP-V210== 下单页转化优化（2026-11-06，老板批准）
   ① 反诈提示整屏盖罩 → 底部浮层（口径/频率不变，只是不再把产品遮得严严实实）
   ② 地域硬拦条 ③ 到手成本条 ④ 合约期警示 ⑦ 粘贴识别前置 */
#antifraud.mask{background:none;pointer-events:none;align-items:flex-end;padding:0 12px 76px}
#antifraud .tipsbox{pointer-events:auto;width:100%;max-width:440px;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.geoblock{background:#fff1ef;border:1px solid #ffd9d4;color:#c2413a;border-radius:12px;
  padding:11px 13px;font-size:13px;line-height:1.7;margin:0 0 10px;font-weight:600}
.geoblock a{color:#007aff;font-weight:700;text-decoration:underline}
/* ==XK-SHOP-V213== 成本条去「到手总价」（老板 2026-11-06）：首月月租本来就按天折算，把月租和首充
   加成一个总价在逻辑上不成立，客户也看不懂这个数从哪来 —— 改成清单：
   ① 激活要充多少 ② 钱充给谁、算不算额外收费 ③ 首月月租怎么扣。只陈述，不做加法。 */
.costline{display:block;background:#f5f9ff;border:1px solid #d6e6fb;
  border-radius:14px;padding:13px 14px;margin:12px 0 0}
.costline .cl-h{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.costline .cl-h span{font-size:13px;color:#3a4250;font-weight:600}
.costline .cl-h b{font-size:23px;font-weight:800;color:#007aff;letter-spacing:-.5px;line-height:1.15}
.costline .cl-s{display:block;font-size:12.5px;color:#4e5969;line-height:1.65;margin-top:5px}
.costline .cl-risk{display:block;font-size:12.5px;color:#c2413a;font-weight:600;line-height:1.6;
  margin-top:7px;background:#fff4f2;border:1px solid #ffe0da;border-radius:9px;padding:7px 10px}
.kv li.kv-warn{background:#fff7e8;border-radius:8px;border-top:none;padding:8px 10px}
.kv li.kv-warn span{color:#b47c10;font-weight:600}
.kv li.kv-warn i{display:block;font-style:normal;font-size:11.5px;color:#b47c10;font-weight:400;margin-top:2px}
.apaste-big{display:block;width:100%;border:1.5px dashed #007aff;background:#f0f6ff;color:#007aff;
  border-radius:12px;padding:10px;font-size:14px;font-weight:600;margin:2px 0 8px;cursor:pointer;font-family:inherit}
.apaste-big:active{opacity:.85}

/* ==XK-SHOP-V212== Apple 玻璃拟态统一（2026-11-06 老板偏好：苹果格调 · 玻璃质感）
   红线照旧：不动 id / JS 逻辑 / 文案口径，全固定色值零 CSS 变量；
   老 WebView 不认 backdrop-filter 时回落到底色本身（已调到接近实色），可读性不受影响。 */
/* ① 全站蓝统一 #007aff（V210 引入的 #1652f0 零散蓝点收编） */
.geoblock a{color:#007aff}
.costline b{color:#007aff}
.apaste-big{border-color:#007aff;background:#f0f7ff;color:#007aff}
/* ② 玻璃拟态：凡是「浮在内容上」的条全部磨砂半透明（iOS 毛玻璃质感） */
.tabs{background:rgba(245,245,247,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px)}
.fmask .fhd{background:rgba(255,255,255,.85);border-bottom:1px solid rgba(0,0,0,.05);
  -webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px)}
.fpanel{background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.05);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
.aibtn,.feebtn{background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}
.tipsbox{background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
.noticebar,.livetk{background:rgba(255,255,255,.78)}
/* ③ iOS 安全区：底栏与悬浮件避开 Home 指示条 */
.dbar{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}
body.hasbar{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}
.aibtn{bottom:calc(78px + env(safe-area-inset-bottom,0px))}
.feebtn{bottom:calc(132px + env(safe-area-inset-bottom,0px))}
/* ④ 苹果式细节：更大圆角、柔和投影、输入聚焦光环、成功勾浅蓝晕 */
.card,.fold{border-radius:16px;box-shadow:0 6px 20px rgba(29,29,31,.05)}
.item{border-radius:14px}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(0,122,255,.14)}
.btn{border-radius:14px;box-shadow:0 8px 20px rgba(0,122,255,.30)}
.okmark{box-shadow:0 0 0 6px rgba(0,122,255,.06)}
.hero{border-radius:18px;border:1px solid rgba(0,122,255,.18)}
/* ⑤ V212 去红色残留：v141「疯抢场」给 #view-list 铺的橙红渐变只做了背景没做内容，
   在浅色主题下变成顶部一圈红框（截图实测）—— 归零为透明，hero 自己带背景即可 */
#view-list{background:transparent}
/* ⑥ 反诈浮层玻璃化：客户第一眼看到的就是它，别再是纸片白卡 —— 半透明磨砂 + 大圆角，
   正文收紧一档（口径一字不改，只调排版），按苹果弹窗的呼吸感给留白 */
#antifraud .tipsbox{border-radius:20px;padding:18px 18px 16px;border:1px solid rgba(255,255,255,.6)}
#antifraud .tipsbox .tt{font-size:15px;letter-spacing:0}
#antifraud .tipsbox .td{font-size:12.5px;line-height:1.75;margin-top:8px;color:#5b5b60}
#antifraud .tipsbox button{margin-top:14px;border-radius:12px;padding:12px 10px;font-size:14.5px}
/* ⑦ 杂色收编：金/米/绿三处零散色跟蓝色主题打架（截图实测），统一到 iOS 灰阶 + 主题蓝 */
.pentry .pb{background:rgba(0,122,255,.10);border:1px solid rgba(0,122,255,.28);color:#007aff}
.item .it i.ht,.item .it i.rt{background:#f2f2f7;border:1px solid transparent;color:#8e8e93}
.item .it i.ht b{color:#1d1d1f}
.item .it i.rt b{color:#007aff}
/* 营销块：暖米底 → 冷白玻璃（与卡片同一族，不再是一块黄纸） */
.promo.v140{background:linear-gradient(150deg,#f7f8fa 0%,#f1f4f9 100%);border:1px solid rgba(0,0,0,.05)}
.promo.v140 .pstats span{background:#fff;border:1px solid rgba(0,0,0,.05);color:#86868b}
.promo.v140 .pstats b{color:#1d1d1f}
.promo.v140 .vrank,.promo.v140 .vins,.promo.v140 .pst,.promo.v140 .pfeed{color:#6e6e73}
.promo.v140 .vrank b{color:#007aff}
.promo.v140 .vpin{background:#fff;border:1px solid rgba(0,0,0,.05)}
.promo.v140 .prow-line{border-top:1px solid #f0f0f3}
/* ⑧ 卡片重排（截图实测：按钮悬在卡片右侧中部、价格行右边一大块空白）：
   把「马上抢」收进价格行右端 —— iOS 列表单元的读法：左边信息、右边动作，卡身也收紧一档；
   顺带修掉 v140 给按钮留下的红色投影（蓝按钮配红光） */
.item .pills{display:flex;align-items:center;gap:6px;margin-top:8px;overflow:visible}
/* 价格与已抢不许被压成「¥...」——截图实测 360 宽会把月租挤没。胶囊不参与收缩，
   空间不够时按屏宽收紧字号/内边距（≤340 干脆收掉「已抢」保价格，价格优先） */
.item .pills>i{flex:0 0 auto}
@media(max-width:400px){
  .item .pills{gap:5px}
  .item .pills i{font-size:11.5px;padding:3px 7px}
  .item .pills i.rt b{font-size:15px}
  .item .pills .go{padding:6px 10px;font-size:12px;letter-spacing:0}
}
@media(max-width:340px){.item .pills i.ht{display:none}}
/* ⑫ 小屏（≤360）收口：信任条四项一行放不下会把「运营商授权」折成两行，底栏主按钮文案也换行
   —— 统一降一档字号，保持一行 */
@media(max-width:360px){
  .trust.trust1 span{gap:2px;padding:6px 1px}
  .trust.trust1 span i{font-size:12px}
  .trust.trust1 span b{font-size:10.5px;letter-spacing:0;white-space:nowrap}
  .dbar .main{font-size:13.5px;letter-spacing:0;padding:0 8px}
  .dbar a{font-size:10.5px}
  /* 悬浮球会压住卡片右下的「马上抢」（320 实测），小屏缩一档、贴边 */
  .aibtn,.feebtn{width:42px;height:42px;right:8px}
  .aibtn .dico,.feebtn .dico{font-size:16px}
  .aibtn{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .feebtn{bottom:calc(120px + env(safe-area-inset-bottom,0px))}
}
/* SHOPUX-1108 悬浮球遮挡：390px 实测「测话费/问客服」两球压住卡片右下的
   「马上抢」和推荐卡的「申领」（≤360 原本就缩了一档，390 没覆盖到）。
   ≤430 统一缩一档贴边，按钮让出来。 */
@media(max-width:430px){
  .aibtn,.feebtn{width:42px;height:42px;right:6px;opacity:.95}
  .aibtn .dico,.feebtn .dico{font-size:16px}
}
.item .pills .go{margin-left:auto;flex:0 0 auto;padding:7px 12px;font-size:12.5px;
  box-shadow:0 3px 10px rgba(0,122,255,.26)}
/* ⑨ 发货范围徽章不再被省略号吃掉（截图上「只发：浙江省内」被截成「...」，
   客户在列表里看不到最关键的能不能发 —— 允许最多两行，保证这条信息完整） */
.item .meta{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55;min-width:0}
/* 窄屏实测（360/320）：长发货范围文案的 inline-block 徽章不会自动换行，会顶出卡片右沿 13px，
   这里限定最大宽度并允许文字在徽章内折行 */
.item .meta .mchip{max-width:100%;white-space:normal}
/* ⑩ hero 标题发虚的根因：v144 把标题字设成 `background-clip:text + color:transparent`（金渐变字），
   v151 换浅色主题只改了 background、没重置 clip —— 结果字被裁成「半条蓝带」，笔画发虚看不清。
   这里把 clip 归位、字色改实，高亮回到字的下面做浅标记。 */
.hero .ht u{-webkit-background-clip:border-box;background-clip:border-box;color:#007aff;
  background:linear-gradient(180deg,transparent 62%,rgba(0,122,255,.16) 62%)}
/* ⑪ 收掉最后几处金色/棕色残留（浅色蓝主题里它们看着像「旧皮肤没换干净」） */
.fpc b{color:#007aff}
.htimer .hsub{color:#0062cc}
.dbtn{background:#eef5ff;border:1px solid rgba(0,122,255,.28);color:#007aff}
.nst-act .nsb{background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff}
.warn b{color:#0062cc}

/* ==XK-SHOP-V214== iOS 控制中心玻璃按钮层（老板 2026-11-06：按钮学 iOS 控制中心/dock
   的玻璃质感 + 按压逻辑）。苹果语言三个特征：
   ① 玻璃面 = 半透明底 + blur(20px) saturate(180%) + 内嵌顶部 0.5px 高光 + 外部柔影
   ② 主色按钮 = 实色渐变 + 顶部 gloss（inset 白高光）+ 底部内暗晕（立体感来自光，不来自描边）
   ③ 按压 = 按下变亮 + 轻微缩小，松手用弹性曲线弹回（cubic-bezier(.34,1.56,.64,1)） */
.btn,.ghost,.tab,.fc,.fsel,.fsel2,.fpc,.dbar .main,.item .go,.hshare button,.tipsbox button,.dbtn,.aibtn{
  -webkit-transition:transform .38s cubic-bezier(.34,1.56,.64,1),background .22s ease,box-shadow .22s ease,filter .18s ease;
  transition:transform .38s cubic-bezier(.34,1.56,.64,1),background .22s ease,box-shadow .22s ease,filter .18s ease}
/* 主按钮：蓝底 + 顶部 gloss + 底部内暗晕（dock 里图标的立体感） */
.btn,.dbar .main{
  border-radius:18px;
  box-shadow:0 8px 22px rgba(0,122,255,.32),
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -2px 6px rgba(0,55,140,.20)}
.btn:active,.dbar .main:active{transform:scale(.96);filter:brightness(1.08);opacity:1}
.btn[disabled]{box-shadow:none;filter:none}
/* 次级按钮/胶囊：控制中心玻璃面（按住会变亮 —— 苹果标志性手感） */
.ghost,.tab,.fc,.fsel,.fsel2,.dbtn,.hshare button,.tipsbox button{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 4px 14px rgba(29,29,31,.08),
    inset 0 1px 0 rgba(255,255,255,.55);
  color:#1d1d1f}
.ghost:active,.tab:active,.fc:active,.fsel:active,.fsel2:active,.dbtn:active,.hshare button:active,.tipsbox button:active{
  transform:scale(.95);filter:brightness(1.05)}
.tab.on{background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;
  box-shadow:0 6px 16px rgba(0,122,255,.30),inset 0 1px 0 rgba(255,255,255,.40),inset 0 -2px 5px rgba(0,55,140,.18)}
.fc.on{background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;
  box-shadow:0 4px 12px rgba(0,122,255,.28),inset 0 1px 0 rgba(255,255,255,.40)}
.fsel.on,.fsel2.on{background:rgba(0,122,255,.08);border-color:rgba(0,122,255,.45);color:#007aff}
.fpc{background:rgba(247,248,250,.85);border:1px solid rgba(255,255,255,.75);
  box-shadow:0 3px 10px rgba(29,29,31,.06),inset 0 1px 0 rgba(255,255,255,.6)}
.fpc.on{background:rgba(0,122,255,.10);border-color:rgba(0,122,255,.45)}
/* 列表「立即申领」小胶囊：蓝玻璃 pill */
.item .go{border-radius:20px;
  box-shadow:0 4px 12px rgba(0,122,255,.28),inset 0 1px 0 rgba(255,255,255,.42),inset 0 -1px 4px rgba(0,55,140,.18)}
.item .go:active{transform:scale(.94);filter:brightness(1.08)}
/* 悬浮 AI 球：玻璃球（dock 感：白圈高光 + 毛玻璃芯） */
.aibtn{background:rgba(255,255,255,.55);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(255,255,255,.72);color:#007aff;
  box-shadow:0 6px 18px rgba(29,29,31,.14),inset 0 1px 0 rgba(255,255,255,.6)}
.aibtn:active{transform:scale(.92);filter:brightness(1.05)}
/* 老内核兜底：不支持 backdrop-filter 的 WebView，玻璃底加浓到接近实色，保证可读 */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .ghost,.tab,.fc,.fsel,.fsel2,.dbtn,.hshare button,.tipsbox button{background:rgba(255,255,255,.96)}
  .aibtn{background:rgba(255,255,255,.95)}
}
/* ===== REVIEW-1108 详情页用户评价 =====
   放在资费卡之后、套餐图之前：客户正做决定的时候最想知道「别人办成了没有」。
   默认只露 2 条 + 查看全部，不在关键路径上堆信息。 */
.rvbox{margin:10px 0 0;padding:13px 13px 11px;background:#fff;border-radius:16px;
  box-shadow:0 6px 20px rgba(29,29,31,.05);border:1px solid rgba(0,0,0,.04)}
.rvhd{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rvhd b{font-size:15px;color:#1d1d1f;letter-spacing:.2px}
.rvhd .rvsc{font-size:19px;font-weight:800;color:#f5761a;line-height:1}
.rvhd .rvst{font-size:12.5px;color:#f5761a;letter-spacing:1px}
.rvhd .rvn{font-size:12px;color:#8e8e93}
.rvhd .rvall{margin-left:auto;font-size:12.5px;color:#007aff;font-weight:600;display:flex;align-items:center;gap:2px}
.rvbox .rvrow{padding:11px 0 0;border-top:1px solid #f2f2f5;margin-top:11px}
.rvbox .rvrow:first-of-type{border-top:0;margin-top:9px;padding-top:0}
.rvbox .rvwho{display:flex;align-items:center;gap:6px;font-size:12px;color:#8e8e93}
.rvbox .rvav{width:20px;height:20px;border-radius:50%;background:#eef2f8;color:#5b6b83;
  font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 20px}
.rvbox .rvnick{color:#3c3c43;font-weight:600}
.rvbox .rvbuy{font-style:normal;font-size:10.5px;color:#007aff;background:#eef5ff;border-radius:4px;padding:1px 5px}
.rvbox .rvtime{margin-left:auto;font-size:11.5px;color:#b0b4bb}
.rvbox .rvstars{font-size:12px;color:#f5761a;letter-spacing:1px;margin-top:5px}
.rvbox .rvc{font-size:13.5px;color:#3c3c43;line-height:1.72;margin-top:4px;word-break:break-word}
.rvbox .rvlike{font-size:11.5px;color:#9aa0a8;margin-top:6px}
.rvmore{width:100%;margin-top:11px;padding:10px;border:1px solid #e8eaf0;border-radius:11px;
  background:#fafbfd;color:#007aff;font-size:13px;font-weight:600}
.rvbox .rvmine{margin-top:10px;padding:9px 11px;border-radius:10px;background:#f1faf4;
  border:1px solid #cdebd8;font-size:12.5px;color:#0a7a55;line-height:1.65}
.rvbox .rvmine b{color:#1d4e8f}
/* 抽屉里的评论列表（复用 .dsheet 外壳，这里只管内容） */
.rvsum{display:flex;gap:14px;align-items:center;padding:2px 0 12px;border-bottom:1px solid #f2f2f5}
.rvsum .big{font-size:34px;font-weight:800;color:#f5761a;line-height:1}
.rvsum .mid{flex:1;min-width:0}
.rvsum .mid .s{font-size:13px;color:#f5761a;letter-spacing:2px}
.rvsum .mid .t{font-size:12px;color:#8e8e93;margin-top:3px}
.rvbars{display:flex;flex-direction:column;gap:4px;min-width:118px}
.rvbar{display:flex;align-items:center;gap:6px;font-size:11px;color:#9aa0a8}
.rvbar i{flex:1;height:5px;border-radius:3px;background:#f0f1f4;overflow:hidden}
.rvbar i em{display:block;height:100%;background:#ffb46b;border-radius:3px}
.rvtab{display:flex;gap:8px;margin:12px 0 4px}
.rvtab button{padding:6px 13px;border-radius:999px;border:1px solid #e8eaf0;background:#fff;
  font-size:12.5px;color:#5b6068}
.rvtab button.on{background:#007aff;border-color:#007aff;color:#fff;font-weight:600}
.rvitem{padding:13px 0;border-bottom:1px solid #f4f5f7}
.rvitem .who{display:flex;align-items:center;gap:6px;font-size:12px;color:#8e8e93}
.rvitem .av{width:22px;height:22px;border-radius:50%;background:#eef2f8;color:#5b6b83;font-size:11px;
  display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 22px}
.rvitem .nk{color:#3c3c43;font-weight:600}
.rvitem .by{font-style:normal;font-size:10.5px;color:#007aff;background:#eef5ff;border-radius:4px;padding:1px 5px}
.rvitem .tm{margin-left:auto;font-size:11.5px;color:#b0b4bb}
.rvitem .st{font-size:12px;color:#f5761a;letter-spacing:1px;margin-top:6px}
.rvitem .c{font-size:13.5px;color:#3c3c43;line-height:1.78;margin-top:5px;word-break:break-word}
.rvitem .lk{font-size:11.5px;color:#9aa0a8;margin-top:7px}
.rvempty{text-align:center;color:#9aa0a8;font-size:13px;padding:26px 0}
.rvwrite{width:100%;margin-top:14px;padding:12px;border:none;border-radius:12px;
  background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;font-size:14.5px;font-weight:700}
/* ==RVUX-1113== 评论抽屉体验修正（老板 11-08：写评价按钮在最底下不舒服、提交没反应）
   ① 写评价挪到 tab 行右侧（一眼可见、点一下就到）；
   ② 提交成功后抽屉顶部亮绿条 + 自己刚写的那条排在列表第一位（标「我的」）——
     原来提交完直接跳回列表、toast 又被抽屉盖住，用户以为没提交成功；
   ③ «只有你自己能看到» 类解释全下（机制不变，老板 11-08：不用跟用户说）。 */
.rvtab{display:flex;gap:8px;margin:12px 0 4px;align-items:center}
.rvtab .rvwbtn{margin-left:auto;padding:7px 14px;border-radius:999px;border:none;
  background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;font-size:12.5px;font-weight:700;
  box-shadow:0 4px 12px -4px rgba(0,122,255,.6)}
.rvtab .rvwbtn:active{opacity:.85}
.rvok{margin:10px 0 2px;padding:10px 12px;border-radius:10px;background:#eefaf1;border:1px solid #cdebd8;
  color:#0a7a55;font-size:13px;font-weight:600;line-height:1.5}
.rvitem.mine{background:#f5f9ff;border:1px solid #dbe9ff;border-radius:12px;padding:11px 12px;margin:9px 0 4px}
.rvitem.mine .nk{color:#0055c4}
.rvitem.mine .by.my{background:#007aff;color:#fff}
.rvform{background:#fafbfd;border:1px solid #eef0f4;border-radius:14px;padding:13px}
.rvform .fh{font-size:13.5px;color:#3c3c43;font-weight:600;margin-bottom:10px}
.rvstarSel{font-size:27px;letter-spacing:5px;color:#dcdfe4;margin:0 0 10px}
.rvstarSel span.on{color:#f5761a}
.rvta{width:100%;min-height:92px;border:1px solid #e6e9ef;border-radius:10px;padding:10px;
  font-size:13.5px;line-height:1.7;background:#fff;font-family:inherit;resize:vertical}
.rvnkIn{width:100%;margin-top:9px;border:1px solid #e6e9ef;border-radius:10px;padding:9px 10px;
  font-size:13.5px;background:#fff;font-family:inherit}
.rvftip{font-size:11.5px;color:#9aa0a8;line-height:1.7;margin:9px 0 0}
.rvsub{width:100%;margin-top:11px;padding:11px;border:none;border-radius:11px;
  background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;font-size:14px;font-weight:700}
.rvback{width:100%;margin-top:8px;padding:9px;border:1px solid #e8eaf0;border-radius:11px;
  background:#fff;color:#5b6068;font-size:13px}
/* ===== SXTIDY-1108 下单页信息整理（老板 2026-11-08：页面要分好类、优势讲透、让人信得过）
   原则：只加不改 —— 全部新块 sx- 前缀独立类名，不动任何既有 id / 交互函数 / 卡片结构。
   顺序照客户决策路径排：先按需求挑（分类）→ 按运营商看（原有 tabs）→ 看完卡知道流程
   → 凭什么选我们（优势）→ 出问题谁兜（信任+答疑）。首屏只多两行，不挡产品。 */
.sxsec{margin:16px 0 0;scroll-margin-top:56px}
.sxhd{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;align-items:center;gap:8px;margin:0 0 9px}
.sxhd b{font-size:15.5px;font-weight:700;color:#1d1d1f;letter-spacing:.2px;position:relative;padding-left:9px;line-height:1.3}
.sxhd b:before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:2px;
  background:-webkit-linear-gradient(top,#3aa0ff,#007aff);background:linear-gradient(180deg,#3aa0ff,#007aff)}
.sxhd i{font-style:normal;font-size:11.5px;color:#9aa0a8;line-height:1.4}
/* 需求分类：横滑胶囊（首屏只占一行，不抢产品位置） */
.sxneeds{display:-webkit-box;display:-webkit-flex;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;
  padding:2px 2px 6px;margin:0 -2px;-webkit-overflow-scrolling:touch}
.sxneeds::-webkit-scrollbar{display:none}
.sxnc{-webkit-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;align-items:center;gap:5px;padding:9px 13px;border-radius:999px;
  background:#fff;border:1px solid #e4e9f0;color:#3c3c43;font-size:13px;font-weight:600;cursor:pointer;
  box-shadow:0 2px 8px rgba(29,29,31,.04);-webkit-tap-highlight-color:transparent;
  -webkit-transition:-webkit-transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s}
.sxnc:active{-webkit-transform:scale(.95);transform:scale(.95)}
.sxnc em{font-style:normal;font-size:11px;font-weight:700;color:#8e8e93;background:#f2f4f8;
  border-radius:999px;padding:1px 6px}
.sxnc.on{background:-webkit-linear-gradient(135deg,#3aa0ff,#007aff);
  background:linear-gradient(135deg,#3aa0ff,#007aff);border-color:transparent;color:#fff;
  box-shadow:0 6px 16px rgba(0,122,255,.30),inset 0 1px 0 rgba(255,255,255,.40)}
.sxnc.on em{background:rgba(255,255,255,.24);color:#fff}
/* 办卡流程 4 步（2×2，手机上一屏能看完） */
.sxflow{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:8px}
.sxstep{-webkit-flex:1 1 calc(50% - 4px);flex:1 1 calc(50% - 4px);min-width:0;background:#fff;
  border:1px solid #eceef3;border-radius:14px;padding:11px 12px 12px;box-shadow:0 4px 14px rgba(29,29,31,.04)}
.sxstep .n{display:inline-block;width:20px;height:20px;border-radius:50%;background:#eef5ff;color:#007aff;
  font-size:11.5px;font-weight:800;line-height:20px;text-align:center}
.sxstep b{display:block;font-size:13.5px;color:#1d1d1f;font-weight:700;line-height:1.4;margin-top:6px}
.sxstep span{display:block;font-size:11.5px;color:#8e8e93;line-height:1.6;margin-top:3px}
.sxstep .tm{display:inline-block;margin-top:7px;font-size:10.5px;font-weight:600;color:#0062cc;
  background:#eef5ff;border-radius:5px;padding:1px 6px}
/* 优势 6 项（2 列 3 行） */
.sxadv{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:8px}
.sxad{-webkit-flex:1 1 calc(50% - 4px);flex:1 1 calc(50% - 4px);min-width:0;background:#fff;
  border:1px solid #eceef3;border-radius:14px;padding:11px 12px}
.sxad .ic{font-size:17px;line-height:1}
.sxad b{display:block;font-size:13px;color:#1d1d1f;font-weight:700;margin-top:5px;line-height:1.4}
.sxad span{display:block;font-size:11.5px;color:#8e8e93;line-height:1.6;margin-top:2px}
/* 信任与保障：浅蓝底整块，和上面的白卡分层 */
.sxtrust{background:-webkit-linear-gradient(top,#f6faff,#eef5ff);
  background:linear-gradient(180deg,#f6faff,#eef5ff);border:1px solid #dfeaff;border-radius:16px;
  padding:13px 13px 11px}
.sxtrow{display:-webkit-box;display:-webkit-flex;display:flex;gap:8px;-webkit-box-align:start;align-items:flex-start;
  padding:8px 0;border-top:1px dashed #d8e6fb}
.sxtrow:first-child{border-top:0;padding-top:0}
.sxtrow i{-webkit-flex:0 0 auto;flex:0 0 auto;font-style:normal;font-size:14px;line-height:1.5}
.sxtrow div{-webkit-box-flex:1;flex:1;min-width:0}
.sxtrow b{display:block;font-size:12.5px;color:#1d4e8f;font-weight:700;line-height:1.5}
.sxtrow span{display:block;font-size:11.5px;color:#5b6b83;line-height:1.65;margin-top:1px}
.sxent{margin-top:9px;padding-top:9px;border-top:1px solid #dbe7f8;font-size:11px;color:#86909c;line-height:1.7}
.sxent a{color:#007aff;text-decoration:none}
/* 常见问题：details 折叠（老内核走页面里既有的 details.fold 兜底同一套判断） */
.sxq{background:#fff;border:1px solid #eceef3;border-radius:13px;margin:0 0 7px;overflow:hidden}
.sxq>summary{list-style:none;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;
  align-items:center;gap:8px;padding:12px 13px;font-size:13.5px;color:#1d1d1f;font-weight:600;
  line-height:1.5;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sxq>summary::-webkit-details-marker{display:none}
.sxq>summary u{text-decoration:none;-webkit-box-flex:1;flex:1;min-width:0}
.sxq>summary i{margin-left:auto;-webkit-flex:0 0 auto;flex:0 0 auto;font-style:normal;color:#b0b4bb;
  font-size:15px;-webkit-transition:-webkit-transform .2s;transition:transform .2s}
.sxq[open]>summary i{-webkit-transform:rotate(90deg);transform:rotate(90deg);color:#007aff}
.sxq .a{padding:10px 13px 12px;font-size:12.5px;color:#5b6068;line-height:1.8;border-top:1px solid #f4f5f7}
.sxq .a b{color:#1d1d1f}
/* 底部引导：问客服 / 查订单 */
.sxcta{display:-webkit-box;display:-webkit-flex;display:flex;gap:8px;margin:12px 0 0}
.sxcta button{-webkit-box-flex:1;flex:1;border:none;border-radius:12px;padding:11px 6px;font-size:13.5px;
  font-weight:700;font-family:inherit;cursor:pointer}
.sxcta .p{background:-webkit-linear-gradient(135deg,#3aa0ff,#007aff);
  background:linear-gradient(135deg,#3aa0ff,#007aff);color:#fff;box-shadow:0 6px 16px -4px rgba(0,122,255,.55)}
.sxcta .s{background:#fff;border:1px solid #e4e9f0;color:#007aff}
.sxcta button:active{opacity:.85}
/* ===== PAY-DUAL-1113 免费卡 / 付费卡分流（老板 11-08：主打免费卡，
   客户相不中免费卡再看付费卡）=====
   第一层分流放在运营商 tab 之上：客户先要的是「要不要花钱」，不是「哪家运营商」。
   默认落在免费卡；付费卡数量为 0 时整条分段不出现。 */
.pdwrap{margin:11px 0 0}
.pdseg{display:-webkit-box;display:-webkit-flex;display:flex;gap:6px;background:#eef1f6;
  border-radius:14px;padding:5px}
.pdseg .pdi{-webkit-box-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;gap:4px;
  padding:11px 4px;border-radius:11px;font-size:14.5px;font-weight:600;color:#5b6068;cursor:pointer;
  -webkit-tap-highlight-color:transparent;-webkit-transition:background .22s,color .22s;
  transition:background .22s,color .22s}
.pdseg .pdi.on{background:#fff;color:#0a6cff;box-shadow:0 2px 10px rgba(10,108,255,.18)}
.pdseg .pdi em{font-style:normal;font-size:12px;font-weight:700;opacity:.6}
.pdseg .pdi.on em{opacity:1}
.pdtip{margin:8px 2px 0;font-size:12px;line-height:1.6;color:#7a828f;text-align:center}
.pdtip b{color:#0a6cff;font-weight:700}
/* 付费卡说明卡：先说清「为什么有这笔钱、多少、退不退」，再让客户看卡 */
.pdexpl{margin:10px 0 0;padding:12px 14px;border-radius:14px;background:#fff8ee;
  border:1px solid #f5dcb8;font-size:12.5px;line-height:1.85;color:#6b5a3e}
.pdexpl b{color:#a86412}
.pdexpl .pdh{display:block;font-size:13.5px;font-weight:700;color:#a86412;margin-bottom:3px}
.pdexpl u{text-decoration:none;color:#c0392b;font-weight:700}
/* 列表底部换组引导条（免费 → 付费 / 付费 → 免费） */
.pdmore{margin:14px 0 0;padding:15px 14px;border-radius:16px;text-align:center;
  background:-webkit-linear-gradient(135deg,#fff6e9,#fffdf9);
  background:linear-gradient(135deg,#fff6e9,#fffdf9);border:1px dashed #f0c48a}
.pdmore b{display:block;font-size:14.5px;color:#8a5a12;margin-bottom:3px}
.pdmore span{display:block;font-size:12.5px;color:#9a855f;line-height:1.6}
.pdmore .go{display:inline-block;margin-top:10px;padding:9px 22px;border-radius:22px;
  background:-webkit-linear-gradient(135deg,#ff9a3c,#ff7a18);
  background:linear-gradient(135deg,#ff9a3c,#ff7a18);color:#fff;font-size:13.5px;font-weight:700;
  box-shadow:0 5px 14px -3px rgba(255,122,24,.5);cursor:pointer}
.pdmore .go:active{opacity:.88}
.pdmore.pdback{background:-webkit-linear-gradient(135deg,#eef6ff,#fbfdff);
  background:linear-gradient(135deg,#eef6ff,#fbfdff);border-color:#b9d8ff}
.pdmore.pdback b{color:#0a5ff0}
.pdmore.pdback .go{background:-webkit-linear-gradient(135deg,#3d8bff,#0a6cff);
  background:linear-gradient(135deg,#3d8bff,#0a6cff);box-shadow:0 5px 14px -3px rgba(10,108,255,.45)}
/* 卡片上的付费角标 */
.item .meta .mchip.pay{background:#fff2e0;color:#b26a08;border-color:#f6dcb4;font-weight:700}
/* 详情页付费提示（填表前必须知道要付钱，不能提交后才蹦出来） */
.paynote{margin:10px 0 0;padding:12px 14px;border-radius:14px;background:#fff8ee;
  border:1px solid #f5dcb8;font-size:13px;line-height:1.75;color:#6b5a3e}
.paynote .pn-h{display:block;font-size:14px;font-weight:700;color:#a86412;margin-bottom:2px}
.paynote b{color:#c0392b}
.paynote .ps{display:block;margin-top:3px;font-size:12px;color:#8a7554;line-height:1.7}
/* 320 窄屏：优势卡单列，避免每格塞不下两行字 */
@media (max-width:350px){
  .sxad{-webkit-flex:1 1 100%;flex:1 1 100%}
  .sxhd b{font-size:15px}
  .sxhd i{display:none}
  .pdseg .pdi{font-size:13.5px}
  .pdmore{padding:13px 11px}
}

/* ============================================================
   SHOPUI-1110（2026-11-10）客户下单页质感升级
   只做视觉：卡片层次、圆角、按钮渐变与呼吸、图片描边。
   全部写在文件末尾，靠后者覆盖同名规则，不改任何 JS 逻辑。
   ============================================================ */
body{
  background:#f3f5f9;
  background-image:
    -webkit-radial-gradient(420px 240px at 88% -80px, rgba(0,122,255,.10), rgba(0,122,255,0)),
    -webkit-radial-gradient(320px 200px at 4% 4%, rgba(255,122,89,.07), rgba(255,122,89,0));
  background-image:
    radial-gradient(420px 240px at 88% -80px, rgba(0,122,255,.10), rgba(0,122,255,0)),
    radial-gradient(320px 200px at 4% 4%, rgba(255,122,89,.07), rgba(255,122,89,0));
  background-repeat:no-repeat;
}
.card{
  border-radius:18px;
  border:1px solid rgba(226,232,240,.75);
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 26px -18px rgba(30,64,175,.18);
}
.item img{
  border-radius:12px;
  box-shadow:0 4px 12px -6px rgba(15,23,42,.22);
  border:1px solid rgba(226,232,240,.85);
}
.item .go{
  background:-webkit-linear-gradient(135deg,#5c9dff,#0a6cff 60%,#0a58d6);
  background:linear-gradient(135deg,#5c9dff,#0a6cff 60%,#0a58d6);
  color:#fff;
  padding:9px 15px;
  border-radius:20px;
  box-shadow:0 6px 14px -6px rgba(10,108,255,.75);
  letter-spacing:.3px;
}
.item .go:active{-webkit-transform:scale(.97);transform:scale(.97)}
.item:active{background:#f7faff}
.btn{
  border-radius:14px;
  background:-webkit-linear-gradient(135deg,#5c9dff,#1652f0 60%,#1240c9);
  background:linear-gradient(135deg,#5c9dff,#1652f0 60%,#1240c9);
  box-shadow:0 10px 22px -10px rgba(22,82,240,.8),inset 0 1px 0 rgba(255,255,255,.3);
  letter-spacing:.5px;
  font-weight:700;
  -webkit-animation:skuib 2.8s ease-in-out infinite;
  animation:skuib 2.8s ease-in-out infinite;
}
.btn:active{-webkit-transform:scale(.985);transform:scale(.985)}
/* 付费卡按钮是绿色的，别被蓝色呼吸盖掉 */
.btn.payb,.btn.green{background:-webkit-linear-gradient(135deg,#3ddc97,#12b76a);background:linear-gradient(135deg,#3ddc97,#12b76a)}
@-webkit-keyframes skuib{
  0%,100%{box-shadow:0 10px 22px -10px rgba(22,82,240,.8),inset 0 1px 0 rgba(255,255,255,.3)}
  50%{box-shadow:0 12px 30px -8px rgba(22,82,240,.95),inset 0 1px 0 rgba(255,255,255,.3)}}
@keyframes skuib{
  0%,100%{box-shadow:0 10px 22px -10px rgba(22,82,240,.8),inset 0 1px 0 rgba(255,255,255,.3)}
  50%{box-shadow:0 12px 30px -8px rgba(22,82,240,.95),inset 0 1px 0 rgba(255,255,255,.3)}}
input,select,textarea{border-radius:12px}
.okbox{border-radius:18px}
.okmark{box-shadow:0 6px 16px -8px rgba(15,122,77,.5)}
.dgal img{border-radius:14px;box-shadow:0 4px 14px -6px rgba(15,23,42,.18)}

/* ==SHOPFORM-UIF-1110== 填单层整洁化（老板 04:52：桌面截图看着太乱）
   根因：弹层在桌面是贴满全宽的 bottom-sheet，输入框被拉到近千像素，
   标签/信息块/按钮比例全失衡。桌面端改为居中定宽对话框（560px），
   信息块与表单节奏统一；手机端底部抽屉范式不动。只加样式，零结构改动。 */

/* ---------- A. 桌面端：弹层改居中对话框 ---------- */
@media (min-width:700px){
  .fmask{background:rgba(15,23,42,.48)}
  .fmask .fsheet{left:50%;right:auto;transform:translateX(-50%);width:560px;
    top:5%;bottom:5%;border-radius:22px;
    box-shadow:0 30px 80px -24px rgba(15,23,42,.5),0 4px 18px rgba(15,23,42,.12)}
  .fmask .fsheet::before{display:none}                       /* 顶部拖杆是手机手势提示，桌面无意义 */
  .fmask .fhd{padding:18px 24px 14px}
  .fmask .fhd b{font-size:16.5px;letter-spacing:.2px}
  .fmask .fbody{padding:16px 24px 28px}
  #formcard{padding:18px 20px 16px;border-radius:16px}
  /* 表单行：桌面收紧比例，输入框不再无限拉伸 */
  .fl{padding:5px 0;gap:10px}
  .fl>label{flex:0 0 64px;font-size:13.5px}
  .fl #f-name,.fl #f-id,.fl #f-phone{padding:10px 14px;font-size:14.5px;border-radius:11px;background:#fff;border:1px solid #d9dee7}
  .row3{gap:10px}
  .row3.tightrow select,.row3.tightrow input{padding:10px 12px;font-size:14px;border-radius:11px;background:#fff;border:1px solid #d9dee7}
  #formcard #f-addr{padding:10px 14px;background:#fff;border:1px solid #d9dee7;border-radius:12px}
  /* 粘贴按钮：桌面上从「满宽大虚线块」收敛为轻量辅助按钮，不再抢主按钮的戏 */
  .apaste-big{width:auto;display:inline-block;margin:4px 0 10px;padding:7px 14px;
    border:1px dashed rgba(0,122,255,.45);border-radius:10px;background:#f7faff;
    font-size:12.5px;font-weight:500;color:#007aff}
  .apaste-big:hover{background:#eef5ff}
  /* 步骤标题与限制条拉开层次 */
  .fstep{margin:20px 0 10px;font-size:14px}
  /* 提交按钮定宽居中，不再随弹层满宽横漂 */
  #formcard .btn{max-width:420px;margin-left:auto;margin-right:auto;display:block;border-radius:14px}
  /* 证件照/公告折叠卡同步收窄 */
  .fmask .fold{max-width:560px}
  /* 详情弹层同改居中，两套弹层一个范式 */
  .dsheet .pn{left:50%;right:auto;transform:translateX(-50%);width:560px;top:6%;bottom:6%;
    border-radius:22px;box-shadow:0 30px 80px -24px rgba(15,23,42,.5)}
  .dsheet .ph{border-radius:22px 22px 0 0;padding:16px 20px}
}

/* ---------- B. 全端：办理前请了解 · 信息卡节奏统一 ---------- */
#restr{border-radius:14px;background:#f8f9fb;border:1px solid #eef0f4;padding:12px 14px 9px;margin-bottom:6px}
#restr .rs-t{font-size:12.5px;color:#1d1d1f;margin-bottom:7px}
#restr .rs-row{font-size:12.5px;line-height:1.75;color:#646b76;padding:1px 0}
#restr .rs-row .rs-ok{color:#0f9d63}
/* 首充/预存行：从「白块+描边」改成柔和琥珀条，与上下行拉开但不突兀 */
#restr .rs-money{background:linear-gradient(90deg,#fff8ea,#fdf3dd);border:1px solid #f3e3bb;
  border-radius:10px;padding:7px 11px;margin:6px 0;box-shadow:none}
#restr .rs-money b{color:#c2402f}
/* 确认勾选行：降低底色浓度，视觉降权（它是确认项不是主行动） */
.fmask .agreerow{background:#f8f9fb;border:1px solid #eceff3;border-radius:12px;font-size:12.5px;line-height:1.65}
.fmask .agreerow b{color:#1d1d1f}
/* 地域带入提示条（蓝）与地址警示条（黄）：统一圆角与字号 */
.fmask .geo{border-radius:10px;font-size:12.5px;line-height:1.6}
#formcard #addrwarn{border-radius:10px;font-size:12.5px}
/* 时效提示与同意函两行小字：字号对齐、颜色降噪 */
#formcard>.tip,.fmask .tip{font-size:12px;color:#98a1ad}

/* ---------- C. 手机端打磨（老板 05:02 实机截图反馈） ----------
   仅窄屏生效，避免覆盖桌面端 A 段的定宽对话框设置 */
@media (max-width:699px){
/* 输入框 16px：iOS Safari 聚焦字号<16px 会强制放大整页，这是真机体验硬伤 */
.fl #f-name,.fl #f-id,.fl #f-phone{font-size:16px;padding:10px 12px}
#formcard #f-addr{font-size:16px}
/* 省市区下拉：收紧内距与字号，「请选择区/县」不再被截断 */
.row3.tightrow select,.row3.tightrow input{padding:9px 5px;font-size:13.5px}
/* 卡片与段落留白收紧，缩短整页滚动距离（手机一屏多看一步） */
#formcard{padding:14px 14px 14px}
.fstep{margin:14px 0 8px}
#restr{padding:11px 12px 8px;margin-bottom:4px}
/* 地域带入提示条：淡蓝底弱描边，第二行起悬挂缩进对齐 */
.fmask .geo{padding:9px 11px;border-radius:11px;font-size:12.5px;line-height:1.6}
/* 粘贴按钮手机端保持满宽好点按，但压薄一档 */
.apaste-big{padding:9px;font-size:13.5px;margin-bottom:8px}
/* 提交区：按钮上下留白节奏收紧 */
#formcard .btn{margin-top:10px}
}
