/* style.css · 首屏核心（秒开第一步拆分：非首屏样式在 style-late.css，延后加载） */
/* ================================================================
   涵与电竞 · 全站统一设计令牌（前台/后台同名同义，一套标准）
   清爽风格轮定版（2026-10-25）：浅蓝紫底 + 蓝紫主色 #598BFD +
   橙色价格 #FF6A2B + 粉/紫点缀；语义色（成功/警告/危险）只作
   功能提示，不作主题色；价格走 --price，主行动走主色渐变。
   VIP 会员卡独立黑金炫彩（见 .my-level-card 区块），不跟随令牌。
   动效只用 transform/opacity。
   ================================================================ */
:root{
  --brand:#598BFD;--brand-deep:#3F74E8;--brand-ink:#1F3A6E;--brand-soft:#E8F0FE;--brand-mist:#A9C2FB;
  --accent:#35B3C9;--accent-deep:#1E86A0;--accent-ink:#146B80;--accent-soft:#E4F6FA;
  --bg:#EFF4FB;--surface:#FFFFFF;--ink:#26262E;--ink-2:#5A5E78;--muted:#9AA0B8;--faint:#B9BDD2;
  --line:#E4E5F0;--line-soft:#EEEFF6;
  --ok:#1A9E54;--warn:#D97706;--danger:#E5484D;
  --gold:#D9A406;--gold-bright:#FFD977;--gold-pale:#FFE9A8;
  --brand-rgb:89,139,253;--accent-rgb:53,179,201;--ink-rgb:38,38,46;
  --price:#FF6A2B;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:#EFF4FB;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}
.phone{width:100%;max-width:none;margin:0;background:linear-gradient(180deg,var(--brand-soft),var(--bg) 340px,var(--bg));min-height:100vh;position:relative;overflow-x:hidden}
.view{display:none;padding-bottom:96px}
.view.active{display:block}
.card{background:#fff;border:1px solid var(--line-soft);border-radius:16px;margin:12px;padding:16px;box-shadow:0 2px 9px rgba(89,139,253,.06)}
.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.card-head span{color:var(--muted);font-size:13px;cursor:pointer}
.btn-orange{background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;font-weight:700;box-shadow:0 4px 14px rgba(89,139,253,.32)}
.btn-orange:active{transform:scale(.97)}
.btn-black{background:#fff;color:var(--brand-deep);border:1.5px solid var(--brand-mist);border-radius:999px;padding:13px 22px;cursor:pointer;font-weight:600}
.btn-black:active{transform:scale(.97)}
input,select,textarea{font-family:inherit}
.search-row{display:flex;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px;align-items:center;box-shadow:0 4px 14px rgba(89,139,253,.05)}
.search-row input{flex:1;border:0;padding:9px 12px;outline:none;background:transparent;color:var(--ink)}
.search-row input::placeholder{color:var(--faint)}
.tags{display:flex;gap:8px;overflow-x:auto;padding:10px 2px;scrollbar-width:none}
.tags::-webkit-scrollbar{display:none}
.tags span{white-space:nowrap;background:#fff;color:var(--ink-2);padding:7px 13px;border-radius:999px;font-size:13px;cursor:pointer;border:1px solid var(--line)}
.tags span.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.empty{text-align:center;color:var(--muted);padding:38px 16px;line-height:1.9}
.skel-block{height:86px;border-radius:14px;background:linear-gradient(100deg,#E7E8F4 40%,#F4F4FA 50%,#E7E8F4 60%);background-size:200% 100%;animation:skelPulse 1.3s ease-in-out infinite;margin-bottom:10px}
@keyframes skelPulse{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
@media (prefers-reduced-motion: reduce){
.skel-block{animation:none}
}
small{color:inherit}
/* —— 首页 —— */
.home-wrap{padding:14px 12px 0;background:radial-gradient(560px 260px at 6% -70px,rgba(89,139,253,.50),rgba(89,139,253,0) 62%),radial-gradient(520px 240px at 92% -60px,rgba(154,212,203,.85),rgba(154,212,203,0) 60%),radial-gradient(720px 320px at 50% 300px,rgba(53,179,201,.28),rgba(53,179,201,0) 65%),linear-gradient(180deg,#C7DBFE,#DCE8FD 46%,var(--bg))}
.brand-row{display:flex;align-items:center;gap:7px;padding:0 4px 10px;font-size:17px;font-weight:700;color:var(--ink)}
.brand-row img{width:22px;height:22px;object-fit:contain}
.notice{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;margin-top:10px;padding:7px 10px;font-size:12px;color:var(--muted);overflow:hidden}
.notice marquee{flex:1}
/* 全站实时数据条（黑金条） */
.shop-strip{display:flex;align-items:center;gap:12px;margin:12px 0 0;padding:14px;border-radius:16px;background:linear-gradient(120deg,var(--brand-ink),var(--brand-deep));color:#fff;box-shadow:0 8px 22px rgba(38,38,46,.3)}
.shop-strip-logo{width:54px;height:54px;border-radius:14px;object-fit:cover;background:#fff;flex:none}
.shop-strip-logo-fallback{display:flex;align-items:center;justify-content:center;font-size:28px;background:rgba(255,255,255,.12)}
.shop-strip-main{flex:1;min-width:0}
.shop-strip-main b{font-size:16px}
.shop-strip-rate{margin-left:8px;font-size:12px;color:var(--gold-bright);font-weight:700}
.shop-verified-badge{margin-left:8px;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(90deg,var(--brand,#598BFD),var(--teal,#35B3C9));padding:2px 8px;border-radius:999px;vertical-align:2px;white-space:nowrap}
.shop-strip-main p{margin:4px 0 0;font-size:12px;color:rgba(255,255,255,.75);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.shop-strip-cnt{flex:none;font-size:11px;color:var(--brand-ink);background:linear-gradient(90deg,var(--gold-bright),var(--gold-bright));font-weight:700;padding:3px 9px;border-radius:999px}
.home-sec{margin:12px 0 0}
/* 游戏选择宫格 */
.game-rail{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:2px 1px 4px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.game-rail::-webkit-scrollbar{display:none}
.game-rail .game-tile{flex:0 0 23%;scroll-snap-align:start}
.game-tile{text-align:center;cursor:pointer;min-width:0}
.game-tile.on .game-tile-name{color:var(--brand);font-weight:700}
.game-tile.on img,.game-tile.on .game-tile-fb{box-shadow:0 0 0 2px var(--brand),0 6px 14px rgba(89,139,253,.25)}
.game-tile:active{transform:scale(.96)}
.game-tile img{width:52px;height:52px;border-radius:15px;object-fit:cover;display:block;margin:0 auto;box-shadow:0 6px 14px rgba(89,139,253,.25);border:1px solid var(--line)}
.game-tile-fb{width:52px;height:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;margin:0 auto;font-size:22px;font-weight:800;color:rgba(255,255,255,.92);box-shadow:0 6px 14px rgba(89,139,253,.25)}
.game-tile-name{display:block;margin-top:6px;font-size:11.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 渐变页头（定版 cat-v1 / pick-v1 共用）：标题行 + 游戏软垫行同在头内，圆弧收底 */
.pg-hd{background:radial-gradient(120% 110% at 8% -12%,rgba(89,139,253,.50),rgba(0,0,0,0) 58%),radial-gradient(130% 105% at 88% -8%,rgba(154,212,203,.85),rgba(0,0,0,0) 55%),radial-gradient(105% 90% at 50% 118%,rgba(53,179,201,.32),rgba(0,0,0,0) 62%),linear-gradient(180deg,#C7DBFE 0%,#E1F1ED 100%);padding:22px 16px 13px;border-radius:0 0 26px 26px}
.pg-hd-row{display:flex;align-items:center}
.pg-hd-row b{font-size:23px;color:var(--ink)}
.pg-search{margin-left:auto;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:16px;color:#5A5E78;border:none;cursor:pointer;flex:none}
.pg-games{margin-top:14px;padding:2px 1px 2px}
/* 游戏软垫（定版 .gm）：56px 白垫、名在垫下、选中外光环 + 实心药丸名 */
.gm{text-align:center;flex:none;cursor:pointer}
.gm .pad{width:56px;height:56px;border-radius:17px;background:#fff;padding:4.5px;box-shadow:0 4px 12px rgba(89,139,253,.13);margin:0 auto}
.gm .ph{width:100%;height:100%;border-radius:12.5px;display:flex;align-items:center;justify-content:center;font-size:21px;color:#fff;font-weight:800;overflow:hidden}
.gm .ph img{width:100%;height:100%;object-fit:cover;display:block}
.gm .nm{margin-top:5.5px;font-size:11.5px;color:#5A5E78;padding:2px 7px;white-space:nowrap}
.gm.on .pad{box-shadow:0 0 0 2.5px var(--brand),0 6px 16px rgba(89,139,253,.35)}
.gm.on .nm{background:var(--brand);color:#fff;border-radius:999px;font-weight:600}
.gm:active{transform:scale(.96)}
/* 分类商品行（定版 cat-v1 .gr）：封面 86 + 单行价格行（橙价/单位/划线原价/右侧已售） */
.gr{display:flex;gap:11px;background:#fff;border-radius:15px;padding:10px;margin-top:10px;box-shadow:0 2px 8px rgba(89,139,253,.05);cursor:pointer}
.gr:active{transform:scale(.99)}
.gr-cov{width:86px;height:86px;border-radius:11px;flex:none;overflow:hidden;background:linear-gradient(135deg,var(--brand-mist),var(--brand));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:26px}
.gr-cov img{width:100%;height:100%;object-fit:cover;display:block}
.gr-inf{flex:1;min-width:0}
.gr-inf h4{font-size:13.5px;display:flex;align-items:center;gap:4.5px;color:var(--ink);font-weight:600}
.gr-inf h4 .tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.gr-inf p{font-size:11px;color:#9AA0B8;margin-top:4px;line-height:1.45;height:31px;overflow:hidden}
.gr-inf .pr{margin-top:5px;display:flex;align-items:baseline;gap:5px}
.gr-inf .pr b{color:var(--price);font-size:16px;flex:none;white-space:nowrap}
.gr-inf .pr .un{color:var(--price);font-size:10.5px;flex:none;white-space:nowrap}
.gr-inf .pr s{color:#B9BDD2;font-size:11px;flex:none;white-space:nowrap}
.gr-inf .pr .done{margin-left:auto;color:#B9BDD2;font-size:10.5px;flex:none;white-space:nowrap}
/* 选陪玩（定版 pick-v1）：排行条 + 筛选药丸 + .bc 陪玩卡 */
.pick-rank{display:flex;align-items:center;background:#fff;border-radius:14px;padding:10px 13px;margin:12px 12px 0;box-shadow:0 2px 8px rgba(89,139,253,.05);cursor:pointer}
.pick-rank:active{transform:scale(.99)}
.pick-rank b{font-size:13.5px;color:var(--ink)}
.pick-rank .avs{display:flex;margin-left:10px}
.pick-rank .avs i{width:26px;height:26px;border-radius:50%;border:2px solid #fff;margin-left:-7px;font-style:normal;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;font-weight:700;overflow:hidden;background:var(--brand);flex:none}
.pick-rank .avs i:first-child{margin-left:0}
.pick-rank .avs i img{width:100%;height:100%;object-fit:cover;display:block}
.pick-rank-go{margin-left:auto;font-size:11.5px;color:#9AA0B8}
.filters{display:flex;gap:8px;margin:11px 12px 0}
.fchip{background:#fff;border-radius:999px;padding:6.5px 15px;font-size:12.5px;color:#5A5E78;box-shadow:0 2px 6px rgba(89,139,253,.06);cursor:pointer}
.fchip.on{background:var(--brand);color:#fff;font-weight:600}
.bc{background:#fff;border-radius:16px;padding:13px;margin:11px 12px 0;box-shadow:0 2px 9px rgba(89,139,253,.05);display:flex;gap:12px}
.bc-av{width:62px;height:62px;border-radius:50%;flex:none;overflow:hidden;background:linear-gradient(140deg,#598BFD,#93B4FF);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;cursor:pointer}
.bc-av img{width:100%;height:100%;object-fit:cover;display:block}
.bc-inf{flex:1;min-width:0}
.bc-nm{display:flex;align-items:center;gap:6px;cursor:pointer}
.bc-nm b{font-size:15.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-nm .grade{background:#E8F0FE;color:var(--brand);font-size:10px;border-radius:5px;padding:2px 6px;font-weight:600;flex:none}
.bc-nm .tier{background:#FFF3D6;color:#9A742A;font-size:10px;border-radius:5px;padding:2px 6px;font-weight:600;flex:none}
.bc-meta{font-size:11.5px;color:#9AA0B8;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-tags{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.bc-tags span{background:#F4F4F9;color:#5A5E78;font-size:10.5px;border-radius:6px;padding:2.5px 8px}
.bc-act{display:flex;align-items:center;gap:8px;margin-top:9px}
.bc-voice{display:flex;align-items:center;gap:6px;background:#F4F4F9;border-radius:999px;padding:4px 11px 4px 5px;font-size:11px;color:#5A5E78;cursor:pointer;flex:none}
.bc-voice i{width:19px;height:19px;border-radius:50%;background:var(--brand);color:#fff;font-style:normal;display:flex;align-items:center;justify-content:center;font-size:9px;flex:none}
.bc-voice.voice-playing i{background:var(--price)}
.bc-btns{margin-left:auto;display:flex;gap:7px;align-items:center}
.bc-btns button{border:none;cursor:pointer;background:var(--brand);color:#fff;font-size:12.5px;font-weight:600;border-radius:999px;padding:7px 15px}
.bc-btns button:active{transform:scale(.97)}
/* 福利条 */
.welfare-strip{margin-top:12px;display:flex;align-items:center;gap:11px;background:var(--accent-soft);border:1px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;color:var(--ink-2)}
.wf-ico{font-size:24px}
.wf-main{flex:1;min-width:0}
.wf-main b{display:block;font-size:14px}
.wf-main small{color:var(--muted);font-size:11.5px}
.wf-go{color:var(--accent-deep);font-size:12.5px;font-weight:700;flex:none}
/* 热门商品榜 */
.hot-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}
.hot-row:last-child{border-bottom:none}
.hot-row:active{transform:scale(.99)}
.hot-rank{width:26px;text-align:center;font-size:16px;font-weight:800;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}
.hot-rank.top{font-size:21px;color:transparent;-webkit-text-stroke:1.2px var(--gold)}
.hot-ico{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,var(--brand-mist),var(--brand));display:flex;align-items:center;justify-content:center;font-size:21px;flex:none}
.hot-main{flex:1;min-width:0}
.hot-main b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.hot-main small{color:var(--muted);font-size:11.5px}
.hot-price{color:var(--price);font-weight:800;font-size:14px;flex:none}
/* combo 带（定版 home-v3 对齐）：左热门商品排行行式卡 + 右入驻紫渐变卡。
 * 入驻卡文字区与吉祥物彻底分开：卡右内边距 46px 预留，吉祥物是右下角
 * 29px 白色圆形徽（官方头像），不用照片做卡面背景。 */
.combo-band{display:flex;gap:11px;margin:12px 0 0;align-items:stretch}
.hot2{flex:1.55;min-width:0;background:#fff;border-radius:16px;padding:10px 12px 4px;box-shadow:0 2px 9px rgba(89,139,253,.06)}
.hot2 .hh{display:flex;align-items:center}
.hot2 .hh b{font-size:15px;color:var(--ink)}
.hot2 .hh span{margin-left:auto;font-size:12px;color:#9AA0B8}
.hrow{padding:7.5px 0;border-top:1px solid #F4F4F8;cursor:pointer}
.hrow-top{display:flex;align-items:center;gap:10px}
.hrow:first-of-type{border-top:none}
.hrow:active{transform:scale(.99)}
.rk{width:22px;height:22px;border-radius:50%;font-size:11.5px;font-weight:800;text-align:center;line-height:22px;flex:none;background:#F1F2F8;color:#9AA0B8}
.rk-gold{background:linear-gradient(140deg,#F6DF9E,#C9A44A);color:#6B5518}
.rk-silver{background:linear-gradient(140deg,#EDEFF6,#B9BDD2);color:#5A5F7A}
.rk-bronze{background:linear-gradient(140deg,#F6DEC4,#C98F5A);color:#6E4520}
.hcov{width:36px;height:36px;border-radius:9px;flex:none;overflow:hidden;background:linear-gradient(135deg,var(--brand-mist),var(--brand));display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff}
.hcov img{width:100%;height:100%;object-fit:cover;display:block}
.hnm2{display:block;margin-top:5px;font-size:13px;line-height:19px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hnm2 .selfop-tag{margin-right:4.5px}
.hnm2 .dual-tag{margin-right:4.5px}
.hpr{margin-left:auto;color:var(--price);font-weight:700;font-size:15px;flex:none}
.hpr .un{font-size:10.5px;font-weight:400;margin-left:1px}
.join-card{flex:1;min-width:0;border-radius:16px;padding:12px 46px 12px 14px;color:#fff;position:relative;overflow:hidden;background:linear-gradient(140deg,#3F74E8,#93B4FF);cursor:pointer}
.join-card b{font-size:15.5px;display:block;white-space:nowrap}
.join-card small{font-size:11px;opacity:.88;display:block;white-space:nowrap;margin-top:3px}
.join-card:active{transform:scale(.99)}
.join-ms{position:absolute;right:8px;bottom:8px;width:29px;height:29px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;overflow:hidden}
.join-ms img{width:100%;height:100%;object-fit:cover;display:block}
/* 商品双列网格 */
.goods-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.good{background:#fff;border:1px solid var(--line-soft);border-radius:16px;overflow:hidden;cursor:pointer;position:relative;box-shadow:0 2px 9px rgba(89,139,253,.05)}
.good .thumb{height:118px;background:linear-gradient(135deg,var(--brand-mist),var(--brand));display:flex;align-items:center;justify-content:center;font-size:38px}
.good .price-badge{position:absolute;top:8px;right:8px;background:var(--price);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;box-shadow:0 3px 8px rgba(38,38,46,.3)}
.good .body{padding:10px}
.good b{font-size:13px;line-height:1.4;display:block;color:var(--ink)}
.good p{color:var(--muted);font-size:11px;line-height:1.5;margin:5px 0;height:32px;overflow:hidden}
.good .pr{color:var(--price);font-weight:800}
.good .pr s{color:var(--faint);font-weight:400;font-size:11px;margin-left:4px}
.good small{color:var(--muted)}
/* 「自营」标（站长 2026-10-25 21:57 定版）：黑底白字 + 白光周期扫过。
 * 治挤压三件套：flex:none（flex 行里不被压缩）、white-space:nowrap
 * （两字永不换行——旧版在 .gr 长标题行被挤成「自/营」上下两行就是
 * 没这两条）、标题走 .tt 的 ellipsis 让空间。扫光只用 transform，
 * 一轮 3.6s 里只动前段、余下静默，克制不刺眼、低端机无压力。 */
.selfop-tag{position:relative;display:inline-flex;align-items:center;flex:none;white-space:nowrap;font-size:9.5px;font-weight:700;letter-spacing:.6px;color:#fff;background:linear-gradient(135deg,#34343C,#0B0B0D 58%,#1D1D23);padding:1.5px 5px;border-radius:3.5px;vertical-align:2px;overflow:hidden;isolation:isolate}
.selfop-tag::after{content:"";position:absolute;top:-25%;bottom:-25%;left:0;width:42%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-170%) skewX(-18deg);animation:selfopShine 3.6s ease-in-out infinite;pointer-events:none}
@keyframes selfopShine{0%{transform:translateX(-170%) skewX(-18deg)}36%,100%{transform:translateX(330%) skewX(-18deg)}}
@media (prefers-reduced-motion:reduce){
.selfop-tag::after{animation:none;display:none}
}
.self-tag{display:inline-block;font-size:10px;font-weight:700;color:#06402B;background:linear-gradient(90deg,#6EE7B7,#A7E8C9);padding:1px 6px;border-radius:6px;vertical-align:2px}
.dual-tag{display:inline-block;flex:none;white-space:nowrap;font-size:10px;font-weight:700;color:#fff;background:linear-gradient(90deg,var(--brand),var(--brand-mist));padding:1px 6px;border-radius:6px;vertical-align:2px}
.shop-tag{display:inline-block;font-size:10px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);padding:1px 6px;border-radius:6px;vertical-align:2px}
/* 双榜入口带 */
.rank-band{display:flex;gap:10px;margin-top:12px}
.rb-card{flex:1;position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;min-height:82px}
.rb-card:active{transform:scale(.98)}
.rb-water{position:absolute;right:6px;bottom:-12px;font-size:52px;font-weight:800;color:transparent;-webkit-text-stroke:1px rgba(38,34,28,.16);pointer-events:none}
.rb-card small{display:block;color:var(--muted);font-size:11px;letter-spacing:1px}
.rb-card b{display:block;font-size:15px;margin:4px 0 2px;color:var(--ink)}
.rb-sub{font-size:11px;color:var(--accent-deep)}
.quick-row{display:flex;gap:10px;margin-top:12px}
.quick{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;cursor:pointer;color:var(--ink)}
.quick small{display:block;color:var(--muted);margin-top:3px}
.home-foot{text-align:center;color:var(--muted);font-size:11.5px;line-height:1.9;margin:16px 0 4px}
.home-foot .js-brand{color:var(--muted);font-weight:700}
.home-foot span{cursor:pointer}
.broadcast{position:sticky;bottom:86px;background:rgba(20,18,16,.88);color:#fff;font-size:12px;margin:12px;border-radius:999px;padding:9px 13px;overflow:hidden;white-space:nowrap}
.cs-head-ava{width:26px;height:26px;border-radius:50%;object-fit:cover;vertical-align:-7px;margin-right:2px}
.bossrank-entry{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#3F74E8,#598BFD);color:#fff;border-radius:14px;padding:14px 16px;cursor:pointer}
.bossrank-entry b{font-size:15px}
.bossrank-entry span{font-size:13px;opacity:.88}
.chat-line img.chat-ava{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none;margin:0 6px 0 0}
/* —— 分类 —— */
.page-head{padding:15px;font-weight:800;background:#fff;border-bottom:1px solid var(--line-soft);display:flex;gap:8px;align-items:center;color:var(--ink)}
.page-head span{color:var(--muted);cursor:pointer}
.page-head #orderTitle,.page-head #ruleTitle,.page-head #subTitle{color:var(--ink)!important}
.cat-layout{display:flex;gap:0;min-height:60vh}
.cat-side{width:86px;flex:none;background:var(--brand-soft);padding:10px 6px;display:flex;flex-direction:column;gap:8px}
.cat-side span{font-size:12px;padding:8px 9px;border-radius:999px;cursor:pointer;text-align:center;color:var(--ink-2);white-space:nowrap}
.cat-side span.on{background:var(--brand);color:#fff;font-weight:600;box-shadow:0 4px 10px rgba(89,139,253,.28)}
.cat-main{flex:1;min-width:0;padding:10px;background:var(--bg)}
.seg span.on{background:var(--brand);color:#fff;font-weight:600}
/* —— 选陪玩 —— */
.booster{background:#fff;border:1px solid var(--line);border-radius:16px;margin:10px 12px;padding:13px;display:flex;gap:11px;box-shadow:0 6px 18px rgba(89,139,253,.05)}
.booster .ava{width:72px;height:72px;border-radius:16px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:34px;flex-shrink:0;position:relative;cursor:pointer}
.booster .ava img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.booster .ava.glow{box-shadow:0 0 0 2px rgba(245,197,66,.85),0 0 14px rgba(245,197,66,.45)}
.booster .meta{flex:1;font-size:12px;color:var(--muted);line-height:1.65;min-width:0}
.booster .meta b{color:var(--ink);font-size:15px;cursor:pointer}
.btag{background:var(--accent-soft);color:var(--accent-deep);padding:1px 6px;border-radius:4px;font-size:11px;margin-right:4px;border:1px solid var(--line)}
/* 陪玩三态状态点 */
.bstatus{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600}
.bstatus i{width:8px;height:8px;border-radius:50%;display:inline-block}
.bstatus.st-on{color:var(--ok)}
.bstatus.st-on i{background:var(--ok);box-shadow:0 0 8px rgba(26,158,84,.8);animation:dotBreathe 1.8s ease-in-out infinite}
.bstatus.st-busy{color:var(--warn)}
.bstatus.st-busy i{background:var(--warn);box-shadow:0 0 8px rgba(217,119,6,.7)}
.bstatus.st-off{color:var(--muted)}
.bstatus.st-off i{background:var(--faint)}
@keyframes dotBreathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.75}}
.ava-voice.voice-playing{background:var(--brand);color:#fff}
.bd-voice{margin-top:12px;display:flex;justify-content:center}
.voice-pill{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);border:1px solid var(--line);color:var(--accent-ink);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(30,134,160,.18)}
.voice-pill:active{transform:scale(.97)}
.voice-pill .vp-ico{font-size:15px}
.voice-pill em{font-style:normal;color:var(--accent-deep);font-weight:600}
.vp-bars{display:inline-flex;align-items:flex-end;gap:2.5px;height:14px}
.vp-bars i{width:3px;border-radius:2px;background:var(--gold);height:6px}
.vp-bars i:nth-child(2){height:11px}
.vp-bars i:nth-child(3){height:8px}
.vp-bars i:nth-child(4){height:13px}
.voice-pill.voice-playing .vp-bars i{animation:vpWave .7s ease-in-out infinite alternate}
.voice-pill.voice-playing .vp-bars i:nth-child(2){animation-delay:.12s}
.voice-pill.voice-playing .vp-bars i:nth-child(3){animation-delay:.24s}
.voice-pill.voice-playing .vp-bars i:nth-child(4){animation-delay:.36s}
@keyframes vpWave{from{transform:scaleY(.45)}to{transform:scaleY(1.15)}}
/* —— 陪玩详情 —— */
.bd-hero{margin:12px;border-radius:18px;padding:22px 16px;text-align:center;background:linear-gradient(165deg,var(--brand-soft),var(--accent-soft));border:1px solid var(--line);box-shadow:0 10px 26px rgba(89,139,253,.1);color:var(--ink)}
.bd-ava{width:88px;height:88px;margin:0 auto 10px;border-radius:50%;background:linear-gradient(135deg,var(--accent-soft),var(--accent));display:flex;align-items:center;justify-content:center;font-size:44px;overflow:hidden;box-shadow:0 0 0 3px var(--accent),0 8px 20px rgba(30,134,160,.35)}
.bd-ava img{width:100%;height:100%;object-fit:cover}
.bd-name b{font-size:20px;color:var(--ink)}
.bd-badge{display:inline-block;margin-left:8px;font-size:11px;color:var(--accent-deep);border:1px solid var(--gold);background:var(--accent-soft);padding:2px 9px;border-radius:999px;vertical-align:2px;font-weight:700}
.bd-meta{color:var(--muted);font-size:13px;line-height:1.8;margin-top:5px}
.bd-tags{margin-top:8px}
.bd-intro{white-space:pre-line;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.bd-album{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bd-album img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
#imgViewer{position:fixed;inset:0;background:rgba(18,18,26,.92);display:none;align-items:center;justify-content:center;z-index:130;padding:18px}
#imgViewer img{max-width:100%;max-height:88vh;border-radius:12px;box-shadow:0 0 40px rgba(0,0,0,.5)}
.bd-good-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.bd-good-row:last-child{border-bottom:none}
.bd-good-ico{font-size:26px}
.bd-good-main{flex:1;min-width:0}
.bd-good-main b{display:block;font-size:14px;color:var(--ink)}
.bd-good-main small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-good-price{color:var(--price);font-weight:700}
/* —— 评价 —— */
.review-item{border-bottom:1px solid var(--line-soft);padding:11px 0;line-height:1.6}
.review-item:last-child{border-bottom:none}
.review-item p{font-size:13.5px;color:var(--ink-2);margin-top:3px}
.review-item small{color:var(--muted)}
.rv-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.rv-stars-sm{color:var(--gold);font-size:11px;letter-spacing:1px}
.rv-stars-sm em{font-style:normal;color:var(--muted);letter-spacing:0}
.star-off{color:var(--line)}
/* 评价附图（评价列表/陪玩主页）+ 评价弹窗选图行（选图格复用 .as-img） */
.rv-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.rv-imgs img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
#rvImgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
/* 首页平台先赔信任条 */
.trust-strip{display:flex;justify-content:space-between;gap:6px;background:var(--brand-soft);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:12px;color:var(--brand-ink);margin-top:8px}
/* 陪玩战绩资质卡 */
.bd-rec-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.bd-rec-row:last-child{border-bottom:none}
.bd-rec-row span{color:var(--muted)}
.bd-rec-row b{color:var(--ink)}
.exam-voice-btns .btn-black{padding:7px 12px;font-size:12.5px}
/* 售后页平台先赔说明块 */
.as-firstpay{background:var(--brand-soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.as-firstpay b{font-size:14px;color:var(--brand-ink)}
.as-firstpay p{font-size:12.5px;color:var(--ink-2);line-height:1.8;margin:4px 0 0}
.as-firstpay summary{font-size:12.5px;color:var(--brand);cursor:pointer;margin-top:4px}
.rv-stars{text-align:center;font-size:27px;letter-spacing:3px;padding:8px 0 2px}
.rv-star{color:var(--line);cursor:pointer}
.rv-star.on{color:var(--gold-bright);text-shadow:0 0 8px rgba(255,201,60,.55)}
/* —— 商品详情 —— */
.guarantee{display:flex;justify-content:space-around;background:var(--accent-soft);border:1px solid var(--line);margin:12px;border-radius:12px;padding:11px;font-size:12px;color:var(--accent-deep)}
.qty-row{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft);font-size:13.5px;color:var(--ink)}
.est-row{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:13px;color:var(--muted)}
.est-row b{color:var(--price);font-size:16px}
.detail-tabs{display:flex;gap:8px;margin:12px}
.detail-tabs span{flex:1;text-align:center;padding:9px 0;border-radius:999px;background:#fff;color:var(--ink-2);border:1px solid var(--line);font-size:13.5px;cursor:pointer}
.detail-tabs span.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.dtab-pane p{color:var(--ink-2);font-size:13px;line-height:1.8;margin:4px 0}
.bottom-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100vw;background:rgba(255,255,255,.96);padding:10px 12px;display:flex;gap:9px;align-items:center;box-shadow:0 -3px 14px rgba(89,139,253,.12);z-index:45;backdrop-filter:blur(10px)}
/* —— 订单 —— */
.act-item,.order-item,.coupon-item{background:#fff;border:1px solid var(--line);margin:10px 12px;border-radius:13px;padding:14px;line-height:1.7;color:var(--ink)}
.act-item small,.order-item small{color:var(--muted)}
.coupon-item{display:flex;justify-content:space-between;align-items:center}
.coupon-item .amt{color:var(--price);font-size:22px;font-weight:800}
.coupon-item.coupon-off{opacity:.5}
.direct-tag{color:var(--warn);font-weight:700}
.msg-tabs span.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.msg-dot{position:absolute;top:-5px;right:8px;font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:1px 6px;line-height:1.5;box-shadow:0 2px 8px rgba(255,59,48,.45)}
.notif-item{display:flex;gap:11px;background:#fff;border:1px solid var(--line);border-radius:13px;margin:10px 12px;padding:13px 14px;line-height:1.6}
.notif-item.unread{border-color:var(--line);background:linear-gradient(180deg,var(--accent-soft),var(--accent-soft))}
.notif-ico{font-size:21px;flex:none;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.notif-main{flex:1;min-width:0}
.notif-main b{display:block;font-size:14px;color:var(--ink)}
.notif-main small{color:var(--muted);font-size:12.5px;line-height:1.6;display:block;margin-top:1px}
.notif-time{flex:none;font-size:11px;color:var(--muted);text-align:right;position:relative;padding-right:2px}
.notif-dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--danger);margin:5px 0 0 auto}
.chat-unread{font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:2px 7px;flex:none}
.chat-status{margin:6px 12px 0;display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.chat-online-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);flex:none}
.chat-box{height:300px;overflow:auto;background:#F2F3FD;border:1px solid var(--line);border-radius:12px;padding:10px;font-size:13px;line-height:1.6;display:flex;flex-direction:column}
.chat-page-box{height:calc(100vh - 235px);min-height:300px;margin:12px}
.staff-bub{background:#fff;border:1px solid var(--line);border-top-left-radius:4px;color:var(--ink)}
.me-bub{background:linear-gradient(135deg,var(--brand),var(--brand));color:#fff;border-top-right-radius:4px}
.official-tag{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--brand),#35B3C9);border-radius:5px;padding:1px 6px;vertical-align:2px;font-style:normal}
.chat-box .me{text-align:right;color:var(--brand)}
.chat-inputbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:none;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:60}
.chat-inputbar input{flex:1;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:10px 14px;outline:none;font-size:16px;min-width:0}
.chat-inputbar input::placeholder{color:var(--faint)}
.chat-icon-btn{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:19px;cursor:pointer;padding:0}
.emoji-panel{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);width:min(370px,94vw);background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-wrap:wrap;gap:4px;z-index:61;box-shadow:0 12px 30px rgba(89,139,253,.25)}
.emoji-panel span{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:10px}
.emoji-panel span:active{background:var(--accent-soft)}
#view-chat{padding-bottom:86px}
#view-ochat{padding-bottom:86px}
/* 客服新消息全站提醒条 */
.tabbar>div{position:relative}
.tab-badge{position:absolute;top:-2px;right:6px;font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:1px 6px;line-height:1.5;box-shadow:0 2px 8px rgba(255,59,48,.5)}
#csToast{position:fixed;top:-70px;left:50%;transform:translateX(-50%);width:min(360px,92vw);background:linear-gradient(90deg,var(--brand-ink),var(--ink));color:var(--gold-pale);border:1px solid rgba(255,217,119,.4);border-radius:14px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;box-shadow:0 12px 32px rgba(38,38,46,.45);z-index:200;transition:top .35s ease;cursor:pointer}
#csToast.show{top:calc(10px + env(safe-area-inset-top))}
#csToast .cs-toast-go{font-size:12px;opacity:.85;font-weight:400}
.user-row{display:flex;gap:12px;align-items:center;cursor:pointer}
.avatar{width:60px;height:60px;border-radius:50%;background:var(--accent-soft)}
.avatar-wrap{position:relative;flex:none;cursor:pointer}
.avatar-wrap .avatar{display:block;object-fit:cover}
.avatar-cam{position:absolute;right:-3px;bottom:-3px;background:var(--brand);border:2px solid #fff;border-radius:50%;width:21px;height:21px;font-size:10px;display:flex;align-items:center;justify-content:center}
.avatar-big{width:76px;height:76px;border-radius:50%;object-fit:cover}
.user-name{font-size:19px;font-weight:800}
.user-sub{opacity:.75;font-size:12px;margin-top:3px}
.uname-line{display:flex;align-items:center;gap:8px}
.order-row{display:flex;justify-content:space-around;text-align:center}
.order-row div{position:relative;cursor:pointer;display:flex;flex-direction:column;gap:6px;font-size:13px;align-items:center}
.order-row i{font-style:normal;font-size:22px;background:var(--accent-soft);border:1px solid var(--line);border-radius:12px;padding:10px;width:48px}
.badge{position:absolute;top:-5px;right:0;background:var(--danger);color:#fff;border-radius:999px;font-style:normal;font-size:11px;padding:1px 6px;display:none}
.banner{flex:1;border-radius:14px;padding:16px;position:relative;cursor:pointer;display:flex;flex-direction:column}
.banner small{opacity:.8;margin-top:4px}
.banner span{position:absolute;right:10px;bottom:8px;font-size:28px}
.banner.orange{background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff}
.banner.white{background:#fff;color:var(--ink);border:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 6px;text-align:center}
.grid div{cursor:pointer;font-size:12px;display:flex;flex-direction:column;gap:6px;align-items:center;color:var(--ink-2)}
.grid i{font-style:normal;font-size:22px;background:var(--accent-soft);border:1px solid var(--line);border-radius:12px;padding:10px;width:48px}
/* VIP 等级徽章（按档位配色，浅底版） */
.vip-badge{display:inline-block;font-size:11px;font-weight:700;color:#7A5200;background:#FFF3D6;border:1px solid rgba(217,164,6,.55);padding:2px 9px;border-radius:999px}
/* 热区 B 案（2572 整改）：VIP 徽章透明命中外框——胶囊视觉大小不变，点击热区纵向 ≥32px */
.vip-badge-hit{display:inline-flex;align-items:center;min-height:32px;padding:5px 2px;cursor:pointer}
.vip-badge.vip-t0{background:#F3F4F6;border-color:#D1D5DB;color:#6B7280}
.vip-badge.vip-t1{background:linear-gradient(90deg,#FFF3D6,#FFE9A8);border-color:#D9A406;color:#7A5200}
.vip-badge.vip-t2{background:linear-gradient(90deg,#E0F7FE,#CFFAFE);border-color:#38BDF8;color:#0369A1}
.vip-badge.vip-t3{background:linear-gradient(90deg,#EDE9FE,#DDD6FE);border-color:#8B5CF6;color:#5B21B6}
.vip-badge.vip-t4{background:linear-gradient(90deg,#F59E0B,#EF4444,#EC4899);border-color:#B45309;color:#FFF7E0}
/* —— 老板等级页 —— */
/* 我的等级卡：炫彩黑金尊贵卡（VIP 专属语言，独立于全站令牌）
   黑底打底、金属金字、皇冠与等级居显眼位、留白大方；
   炫彩只是一层薄流光（.vip-sheen，金→桃→蓝三色微光）缓缓扫过，
   尊贵是目的，不花哨。档位以边光区分：黄金/铂金钢/钻石冰/神豪耀金。 */
.my-level-card{margin:12px;border-radius:18px;padding:20px;color:#fff;position:relative;overflow:hidden;background:radial-gradient(420px 180px at 88% -30%,rgba(232,180,162,.16),transparent 60%),radial-gradient(380px 200px at 6% 115%,rgba(147,167,201,.14),transparent 60%),linear-gradient(125deg,#0A0906,#171208 46%,#261B0C 72%,#100C05);border:1px solid rgba(217,164,6,.55);box-shadow:0 14px 34px rgba(10,8,4,.45),inset 0 0 0 1px rgba(255,217,120,.08)}
.mlc-top{display:flex;align-items:center;gap:10px}
.mlc-top b{font-size:20px;display:block;letter-spacing:1px;background:linear-gradient(92deg,#F7DC8A,#D9A406 55%,#FFE9A8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.mlc-top small{color:rgba(255,255,255,.75);font-size:11px}
.mlc-crown{font-size:32px;filter:drop-shadow(0 0 10px rgba(255,209,102,.9))}
.mlc-spend{margin-left:auto;font-size:12px;color:var(--gold-pale);text-align:right}
.lv-progress{height:9px;border-radius:99px;background:rgba(255,255,255,.18);margin:14px 0 8px;overflow:hidden}
.lv-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold-bright),#F5C451,#E8A33D);box-shadow:0 0 10px rgba(245,197,66,.7)}
.mlc-tip{font-size:12px;color:rgba(255,255,255,.85);line-height:1.7}
.my-level-card.vip-hero.vip-t1{border-color:rgba(245,197,66,.85)}
.my-level-card.vip-hero.vip-t2{border-color:rgba(178,193,219,.85)}
.my-level-card.vip-hero.vip-t3{border-color:rgba(214,226,245,.9);box-shadow:0 14px 34px rgba(10,8,4,.45),0 0 22px rgba(190,205,235,.35)}
.my-level-card.vip-hero.vip-t4{border-color:#FFD97A;box-shadow:0 14px 34px rgba(10,8,4,.45),0 0 28px rgba(245,179,1,.5)}
/* 神豪VIP 专属（站长 13:38）：更强的炫彩扫光 + 边框流光（旋转 conic 光环，
   只用 transform/opacity；其余四档保持黑金不动） */
.my-level-card.vip-t4 .vip-sheen{width:110px;background:linear-gradient(100deg,transparent,rgba(255,217,120,.5) 30%,rgba(244,114,182,.32) 48%,rgba(125,211,252,.30) 62%,rgba(232,180,162,.34) 76%,transparent);animation-duration:3.2s}
.my-level-card .vip-border-flow{position:absolute;inset:0;border-radius:inherit;padding:1.6px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;overflow:hidden;pointer-events:none}
.my-level-card .vip-border-flow i{position:absolute;left:50%;top:50%;width:230%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(0deg);background:conic-gradient(from 0deg,transparent 0deg,#FFD97A 40deg,#F472B6 90deg,transparent 140deg,#7DD3FC 200deg,#E8B4A2 260deg,transparent 310deg);animation:vipRingSpin 5.2s linear infinite}
@keyframes vipRingSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
/* 五档皇冠 SVG 尺寸（vipCrownSvg 与 vipBadge/会员卡共用） */
.vip-badge svg{vertical-align:-2px;margin-right:3px}
.mlc-crown svg{width:34px;height:34px;display:block;filter:drop-shadow(0 0 10px rgba(255,209,102,.9))}
.lc-head svg{vertical-align:-3px;margin-right:4px;width:15px;height:15px}
.my-level-card .vip-sheen{position:absolute;top:-10%;bottom:-10%;left:0;width:64px;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,217,120,.30) 38%,rgba(232,180,162,.20) 55%,rgba(168,188,230,.18) 68%,transparent);transform:translateX(-110px) skewX(-18deg);opacity:0;animation:vipSheen 4.4s ease-in-out infinite}
@keyframes vipSheen{0%,52%{transform:translateX(-110px) skewX(-18deg);opacity:0}66%{opacity:1}88%,100%{transform:translateX(460px) skewX(-18deg);opacity:0}}
.level-scroll{display:flex;gap:10px;overflow-x:auto;padding:4px}
.level-scroll::-webkit-scrollbar{display:none}
.level-card{min-width:150px;background:#fff;border:1px solid #F1E6CC;color:var(--ink-2);border-radius:14px;padding:15px;line-height:1.7;cursor:pointer}
.level-card.sel{border-color:#D9A406;box-shadow:0 0 0 1px #D9A406,0 8px 20px rgba(190,140,20,.25)}
.level-card.locked{opacity:.55}
.level-card .lc-head{font-size:15px;color:var(--ink)}
.level-card .lc-need{color:#B8860B;font-size:13px;margin-top:2px;font-weight:700}
.level-card small{color:var(--muted)}
.level-card .lc-right{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}
.rights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.right-cell{background:#FBF4E4;border:1px solid #F1E4C6;border-radius:12px;padding:12px 8px;text-align:center}
.right-cell i{font-style:normal;font-size:22px;display:block;margin-bottom:5px}
.right-cell b{font-size:12.5px;display:block;line-height:1.45;color:var(--ink-2)}
.right-cell small{color:var(--muted);font-size:11px}
/* VIP 档位色展示（站长 2026-10-27：点哪档显哪档的颜色+锁+还差；色板与 .vip-badge 一致） */
.vip-t0-txt{color:#6B7280}.vip-t1-txt{color:#B8860B}.vip-t2-txt{color:#0369A1}.vip-t3-txt{color:#5B21B6}.vip-t4-txt{color:#B45309}
#levelRightsName{font-weight:700}
.level-card{position:relative}
.level-card .lc-lock{position:absolute;top:8px;right:10px;font-size:13px;line-height:1}
.level-card.sel.vip-t0{border-color:#9CA3AF;box-shadow:0 0 0 1px #9CA3AF,0 8px 20px rgba(107,114,128,.25)}
.level-card.sel.vip-t1{border-color:#D9A406;box-shadow:0 0 0 1px #D9A406,0 8px 20px rgba(190,140,20,.25)}
.level-card.sel.vip-t2{border-color:#38BDF8;box-shadow:0 0 0 1px #38BDF8,0 8px 20px rgba(56,189,248,.28)}
.level-card.sel.vip-t3{border-color:#8B5CF6;box-shadow:0 0 0 1px #8B5CF6,0 8px 20px rgba(139,92,246,.28)}
.level-card.sel.vip-t4{border-color:#F59E0B;box-shadow:0 0 0 1px #F59E0B,0 8px 20px rgba(245,158,11,.30)}
.rights-banner{grid-column:1/-1;display:flex;align-items:center;gap:8px;border-radius:12px;padding:10px 12px;font-size:12.5px;border:1px solid #F1E4C6;background:#FBF4E4;color:var(--ink-2)}
.rights-banner b{font-size:13px;white-space:nowrap}
.rights-banner.vip-t0{background:#F3F4F6;border-color:#D1D5DB}
.rights-banner.vip-t1{background:linear-gradient(90deg,#FFF3D6,#FFE9A8);border-color:rgba(217,164,6,.55)}
.rights-banner.vip-t2{background:linear-gradient(90deg,#E0F7FE,#CFFAFE);border-color:#38BDF8}
.rights-banner.vip-t3{background:linear-gradient(90deg,#EDE9FE,#DDD6FE);border-color:#8B5CF6}
.rights-banner.vip-t4{background:linear-gradient(90deg,#FEF3C7,#FCE7F3);border-color:#F59E0B}
.right-cell.vip-t0{background:#F7F7F9;border-color:#E2E3E8}
.right-cell.vip-t1{background:#FBF4E4;border-color:#F1E4C6}
.right-cell.vip-t2{background:#EFF9FE;border-color:#C9EAFB}
.right-cell.vip-t3{background:#F4F1FE;border-color:#E0D8FB}
.right-cell.vip-t4{background:#FDF6E9;border-color:#F3DFC0}
.level-intro{font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.level-intro h4{font-size:14.5px;color:var(--ink);margin:14px 0 4px}
.li-p{margin:4px 0}
.li-steps{margin:10px 0}
.li-step{background:#FBF4E4;border:1px solid #F1E4C6;border-radius:12px;padding:10px 12px}
.li-step b{font-size:14px;color:var(--ink)}
.li-step small{display:block;color:#B8860B;font-size:12px;margin:2px 0}
.li-step p{color:var(--ink-2);font-size:12.5px;line-height:1.6}
.li-arrow{text-align:center;color:var(--faint);transform:rotate(90deg);font-size:15px;line-height:1;padding:1px 0}
/* —— 排行榜 —— */
.rank-note{margin:2px 12px 0;font-size:12px;color:var(--muted)}
.podium{display:flex;align-items:flex-end;gap:10px;padding:18px 12px 4px}
.pod-col.p1 .pod-ava{width:66px;height:66px;box-shadow:0 0 0 2px #F5B301,0 0 20px rgba(245,179,1,.55)}
.pod-col.p2 .pod-ava{box-shadow:0 0 0 2px #B9C2D0,0 0 14px rgba(160,170,190,.5)}
.pod-col.p3 .pod-ava{box-shadow:0 0 0 2px #E8A06A,0 0 14px rgba(232,160,106,.5)}
.pod-col.p1 .pod-base{height:56px;background:linear-gradient(180deg,#FFE29A,#F5B301)}
.pod-col.p2 .pod-base{height:42px;background:linear-gradient(180deg,#E8ECF7,#9AA5C4);color:#232946}
.pod-col.p3 .pod-base{height:32px;background:linear-gradient(180deg,#F6C79A,#D98243);color:#3A2410}
.rank-row .amt{margin-left:auto;color:var(--price);font-weight:800}
/* 排行榜隐藏开关行（本人可见）：标题+说明在左，状态句居中，开关在右 */
.rank-hide-row{display:flex;align-items:center;gap:10px;margin:10px 12px 0;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.rank-hide-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.rank-hide-txt b{font-size:13px;color:var(--ink-2)}
.rank-hide-txt small{font-size:11px;color:var(--muted);line-height:1.5}
.rank-hide-state{font-size:11px;color:var(--brand);white-space:nowrap}
/* —— 表单 / 子页 —— */
.form-card{background:#fff;border:1px solid var(--line);border-radius:16px;margin:12px;padding:16px;line-height:1.7;color:var(--ink);box-shadow:0 8px 22px rgba(89,139,253,.06)}
.form-card label{display:block;font-size:13px;color:var(--ink-2);font-weight:600;margin-top:4px}
.form-card input,.form-card select,.form-card textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;margin:7px 0 13px;outline:none;background:var(--surface);color:var(--ink)}
.form-card input::placeholder,.form-card textarea::placeholder{color:var(--faint)}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--brand)}
/* 私人定制表单本轮起同样走浅色（dark-form 仅保留类名兼容） */
.dark-form{background:#fff;color:var(--ink)}
.dark-form input,.dark-form textarea,.dark-form select{background:var(--surface);color:var(--ink);border-color:var(--line)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips span{border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;background:#fff;color:var(--ink-2)}
.chips span.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.stepper{display:flex;gap:10px;align-items:center}
.stepper button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:17px;color:var(--ink-2)}
.stepper input#cPrice{width:76px;text-align:center;font-size:20px;font-weight:800;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:5px 2px;outline:none}
/* 私人定制 4 步流程条 */
.steps-bar{display:flex;align-items:flex-start;margin:10px 0 16px}
.steps-bar .step{display:flex;flex-direction:column;align-items:center;gap:5px;flex:none;width:52px;text-align:center}
.steps-bar .step i{font-style:normal;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--accent-soft);color:var(--muted);border:1px solid var(--line)}
.steps-bar .step span{font-size:11px;color:var(--muted);white-space:nowrap}
.steps-bar .step.on i{background:var(--brand);color:#fff;border-color:var(--brand)}
.steps-bar .step.on span{color:var(--ink);font-weight:700}
.steps-bar .step-line{flex:1;height:2px;background:var(--line);margin-top:13px;border-radius:2px}
.steps-bar .step-line.on{background:var(--brand)}
.menu-row{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line-soft);cursor:pointer;font-size:14px}
.menu-row:last-child{border-bottom:none}
.menu-arrow{color:var(--faint)}
/* 「我的」下框列表行（隐私政策/关于我们/制作同款/设置） */
.desk-row .dr-name{display:flex;align-items:center;gap:9px}
.desk-row .dr-ico{font-style:normal;font-size:16px;width:22px;text-align:center}
#deskListRows .menu-row:last-child{border-bottom:0}
.rule-body{white-space:pre-line;font-size:14px;color:var(--ink-2);line-height:1.9;word-break:break-word}
.agree{font-size:13px;color:var(--muted)}
.agree a{color:var(--brand)}
details{background:#fff;border:1px solid var(--line);border-radius:12px;margin:10px 12px;padding:13px 15px}
summary{font-weight:700;cursor:pointer;color:var(--ink)}
details p{color:var(--ink-2)!important}
/* —— 登录 —— */
.login-wrap{padding:20px;text-align:center;background:linear-gradient(180deg,var(--brand-soft),var(--bg));min-height:88vh}
.login-logo{font-size:84px;margin:26px 0 4px}
.login-logo img.login-brand-img{height:44px;width:auto}
.login-form{width:88%;margin:0 auto 14px;text-align:left}
.login-form label{display:block;font-size:13px;color:var(--ink-2);font-weight:600;margin:10px 0 6px}
.login-form input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;outline:none;background:#fff;box-sizing:border-box;font-size:15px;color:var(--ink)}
.login-form .code-row{display:flex;gap:8px}
.login-form .code-row input{flex:1}
.phone-row{display:flex;gap:8px}
.phone-row input{flex:1;min-width:0}
.cc-select{flex:0 0 auto;max-width:44%;border:1px solid var(--line);border-radius:10px;padding:0 8px;background:#fff;font-size:14px;color:var(--ink);min-height:44px}
.login-form .code-row button:disabled{opacity:.55}
#codeHint{background:#FFF1E6!important;color:var(--danger)!important;border:1px solid #FFD8B8}
/* —— 弹窗 —— */
.modal-mask{position:fixed;inset:0;background:rgba(30,30,45,.5);display:none;align-items:center;justify-content:center;z-index:99;padding:22px}
.modal-mask.show{display:flex}
/* 充值成功弹窗专属深遮罩（2572 整改·文案①）：压暗背后的钱包页，弹窗内只留本次充值信息与动作 */
.modal-mask.pay-success-mask{background:rgba(30,30,45,.8)}
.modal{background:#fff;border-radius:18px;padding:22px;width:100%;max-width:330px;line-height:1.8;color:var(--ink)}
.modal h3{text-align:center;margin-bottom:8px;color:var(--ink)}
.modal p{color:var(--ink-2)}
.modal .row{display:flex;gap:10px;margin-top:15px}
.modal .row button{flex:1}
#toast{position:fixed;left:50%;bottom:108px;transform:translateX(-50%);background:rgba(20,18,16,.9);color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;display:none;z-index:120;max-width:86vw;text-align:center}
/* 进站公告弹窗 */
.notice-pop{display:flex;flex-direction:column;align-items:center;width:100%;max-width:350px}
.np-card{background:#fff;border-radius:20px;padding:24px 20px 0;width:100%;overflow:hidden;line-height:1.8;box-shadow:0 12px 40px rgba(30,30,45,.3)}
.np-title{text-align:center;font-size:19px;margin-bottom:10px;color:var(--ink)}
.np-body{font-size:13.5px;color:var(--ink-2);white-space:pre-line;max-height:42vh;overflow:auto;word-break:break-word}
.np-red{color:var(--danger);font-weight:700}
.np-detail{display:block;margin:14px auto 4px;background:none;border:none;color:var(--brand);font-size:14px;cursor:pointer;padding:4px 10px}
.np-banner{margin:14px -20px 0;background:linear-gradient(90deg,var(--brand-ink),var(--brand-deep) 55%,var(--brand));color:#fff;text-align:center;padding:12px 10px;font-size:16px;font-weight:700;letter-spacing:3px}
.np-banner small{display:block;font-size:11px;font-weight:400;letter-spacing:1px;opacity:.85;margin-top:2px}
.np-close{margin-top:16px;width:44px;height:44px;border-radius:50%;border:none;background:var(--brand);color:#fff;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(89,139,253,.45)}
#maintenanceMask{color:var(--ink)}
.wb-switch-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-weight:600}
.wb-switch{position:relative;display:inline-block;width:52px;height:30px}
.wb-switch input{opacity:0;width:0;height:0}
.wb-switch i{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .2s;cursor:pointer}
.wb-switch i::after{content:'';position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:transform .2s}
.wb-switch input:checked + i{background:var(--ok)}
.wb-switch input:checked + i::after{transform:translateX(22px)}
.wb-switch input:disabled + i{opacity:.45;cursor:not-allowed}
.wb-reason{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.7}
.photo-grid{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.photo-cell{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--accent-soft)}
.photo-cell img{width:100%;height:100%;object-fit:cover;display:block}
.photo-cell button{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(20,18,16,.75);color:#fff;font-size:12px;line-height:20px;padding:0;cursor:pointer}
.photo-empty{color:var(--muted);font-size:12px;padding:8px 0;line-height:1.7}
.photo-add{display:inline-block;cursor:pointer;margin:2px 0 10px;text-align:center}
/* —— 视图切换与卡片入场（仅 transform/opacity，低端机友好） —— */
.view.active{animation:viewIn .3s cubic-bezier(.2,.7,.3,1) both}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rise{animation:riseIn .55s cubic-bezier(.2,.7,.3,1) both;animation-delay:var(--d,0s)}
@keyframes riseIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* ================================================================
   「我的」页浅色主题（奶油 + 白卡 + 黑金，仅 #view-desk 作用域）
   ================================================================ */
#view-desk{background:linear-gradient(180deg,#D9E7FA,var(--bg) 340px,var(--bg));color:var(--ink)}
/* 头图渐变加深一档（与首页头同深蓝紫）：圆弧值 26px 原已在位，但原渐变
 * 与整页底色几乎同色、圆弧肉眼不可辨；加深后头图成 sheet、圆弧收底可见。 */
.dk-header{position:relative;background:radial-gradient(120% 110% at 8% -12%,rgba(89,139,253,.50),rgba(0,0,0,0) 58%),radial-gradient(130% 105% at 88% -8%,rgba(154,212,203,.85),rgba(0,0,0,0) 55%),radial-gradient(105% 90% at 50% 118%,rgba(53,179,201,.32),rgba(0,0,0,0) 62%),linear-gradient(180deg,#C7DBFE 0%,#E1F1ED 100%);padding:30px 18px 20px;border-radius:0 0 26px 26px;box-shadow:0 10px 26px rgba(89,139,253,.14)}
/* 头内 VIP 会员卡（定版 my-v3 .vip）：黑金渐变 + 流光 + 奖牌圆徽 + 右侧进度 */
.dk-vip{margin-top:12px;border-radius:18px;padding:12px 16px;background:linear-gradient(120deg,#191410,#3A2D1B 55%,#191410);color:#E9CF9A;position:relative;overflow:hidden;box-shadow:0 8px 20px rgba(30,22,8,.25);cursor:pointer}
.dk-vip:active{transform:scale(.99)}
.dk-vip-row{display:flex;align-items:center;gap:12px;position:relative;z-index:1}
.dk-vip-medal{width:42px;height:42px;border-radius:50%;flex:none;background:radial-gradient(circle at 32% 30%,#F6DF9E,#C9A44A 70%,#A87F2E);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px rgba(255,246,200,.55),0 3px 8px rgba(0,0,0,.35)}
.dk-vip-medal svg{width:22px;height:22px}
.dk-vip-mid{min-width:0}
.dk-vip-mid small{display:block;color:#CBB26B;font-size:12px}
.dk-vip-lv{display:block;font-size:20px;font-weight:800;color:#F3DFA6;margin-top:2px;white-space:nowrap}
.dk-vip-prog{margin-left:auto;text-align:right;flex:none}
.dk-vip-prog b{font-size:14.5px;color:#fff;font-weight:600;white-space:nowrap}
.dk-vip-bar{display:block;width:112px;height:5px;border-radius:99px;background:rgba(255,255,255,.18);margin-top:7px;overflow:hidden}
.dk-vip-bar i{display:block;height:100%;background:linear-gradient(90deg,#D9A94A,#F6DF9E)}
.dk-vip-go{margin-left:auto;font-size:20px;color:#CBB26B;flex:none}
.dk-gear{position:absolute;top:14px;right:16px;font-size:17px;background:rgba(255,255,255,.75);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px rgba(89,139,253,.18)}
#view-desk .user-row{cursor:default}
#view-desk .avatar{width:64px;height:64px;box-shadow:0 0 0 3px #fff,0 8px 18px rgba(89,139,253,.25);background:var(--accent-soft)}
#view-desk .avatar-cam{border-color:var(--accent-soft);background:#111;color:var(--gold-bright)}
.dk-user-main{flex:1;min-width:0;cursor:pointer}
#view-desk .user-name{color:var(--ink);font-size:20px}
#view-desk .user-sub{color:var(--muted);opacity:1}
.dk-uid{font-size:11.5px;color:var(--muted);margin-top:2px}
#view-desk .vip-badge{box-shadow:none;border-color:rgba(176,141,58,.5)}
#view-desk .dk-card{background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(89,139,253,.08);color:var(--ink);border-radius:20px}
#view-desk .card-head span{color:var(--muted)}
.dk-orders div i{background:var(--accent-soft);border:1px solid var(--line)}
.dk-orders .badge{right:2px}
.dk-service .chat-unread{position:absolute;top:10px;right:10px}
/* 「我的」宫格固定客服项：未读红点挂宫格项右上角（客服入口迁移落点） */
#moreGrid .grid-cs{position:relative}
#moreGrid .grid-cs .chat-unread{position:absolute;top:0;right:2px}
/* 功能格（定版 my-v3 .grid）：4 列裸图标——去软垫方块，图标 24px、名 12.5px */
#view-desk .grid{grid-template-columns:repeat(4,1fr);gap:14px 6px}
#view-desk .grid i{background:none;border:none;border-radius:0;padding:0;width:auto;font-size:24px;line-height:1.15}
#view-desk .grid div{color:var(--ink-2);font-size:12.5px}
#view-desk .bstatus.st-off{color:var(--muted)}
#view-desk .wb-switch i{background:var(--line)}
#view-desk .wb-switch i::after{box-shadow:0 2px 6px rgba(0,0,0,.2)}
#view-desk .empty{color:var(--muted)}
/* —— tab 栏：白色悬浮药丸 + 滑动指示块（全站 tab 页生效） —— */
.tabbar{position:fixed;bottom:13px;left:50%;transform:translateX(-50%);width:min(370px,94vw);background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(38,38,46,.06);border-radius:999px;box-shadow:0 14px 34px rgba(89,139,253,.25),0 3px 10px rgba(89,139,253,.12);display:flex;justify-content:space-around;align-items:center;padding:8px 4px;z-index:50}
.tabbar>div{cursor:pointer;text-align:center;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:1;flex:1}
.tabbar>div.active{color:var(--brand)}
.tabbar i{font-style:normal;font-size:20px}
#tabInk{position:absolute;top:5px;bottom:5px;left:0;width:0;border-radius:999px;background:linear-gradient(90deg,rgba(89,139,253,.13),rgba(123,108,240,.20));opacity:0;transition:transform .34s cubic-bezier(.3,.8,.3,1),opacity .2s;z-index:0}
.tab-butler-ava{width:24px;height:24px;border-radius:50%;object-fit:cover;display:block}
/* —— 动效降级 —— */
@media (prefers-reduced-motion: reduce){
.view.active,.rise{animation:none}
.bstatus.st-on i,.vip-sheen,.voice-pill.voice-playing .vp-bars i,.vip-border-flow i{animation:none}
#tabInk{transition:none}
}
.exam-grade-card.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 2px 10px rgba(89,139,253,.18)}
.tag-chip{display:inline-block;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;vertical-align:1px}
.tier-tag{display:inline-block;background:var(--ink);color:var(--gold-bright);border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600}
.wb-order.tier-blocked{opacity:.55}
.wb-order.tier-blocked .wb-order-side b{color:#999}
.btag.grade-tag{background:var(--ink);color:var(--gold-bright);border-color:var(--ink)}
/* 售后两级制（前台） */
.as-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.as-chip{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 14px;font-size:13px;cursor:pointer}
.as-chip.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.as-imgs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.as-img{position:relative;width:64px;height:64px}
.as-img img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.as-img em{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;border-radius:50%;width:18px;height:18px;line-height:18px;text-align:center;font-style:normal;font-size:11px;cursor:pointer}
.as-img-add{width:64px;height:64px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--accent-deep);cursor:pointer;background:var(--surface)}
.as-status{color:var(--accent-deep);font-weight:700}
.as-steps{display:flex;align-items:center;gap:5px;margin:8px 0 2px;flex-wrap:wrap}
.as-step{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.as-step i{width:16px;height:16px;border-radius:50%;background:#E5EAF4;color:#9AA0B8;font-style:normal;display:inline-flex;align-items:center;justify-content:center;font-size:10px;flex:none}
.as-step.done{color:var(--teal,#35B3C9)}
.as-step.done i{background:var(--teal,#35B3C9);color:#fff}
.as-step.current{color:var(--brand,#598BFD);font-weight:700}
.as-step.current i{background:var(--brand,#598BFD);color:#fff}
.as-step-line{width:12px;height:1px;background:#D9E0EE;flex:none}
.as-esc-badge{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:#E5484D;border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:1px}
.as-desc{font-size:13px;color:var(--ink-2);line-height:1.7;margin:6px 0;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.as-result{font-size:13px;line-height:1.8;margin:6px 0;background:var(--accent-soft);border-radius:8px;padding:8px 10px}
.quick b img{width:20px;height:20px;border-radius:6px;object-fit:cover;vertical-align:-4px}
.grid i img{width:26px;height:26px;border-radius:8px;object-fit:cover}
.dk-goldcard{margin-top:12px;background:linear-gradient(120deg,#16130E,#241D0E);border:1px solid var(--gold);border-radius:16px;padding:14px;display:flex;align-items:center;gap:11px;cursor:pointer;color:var(--gold-pale);box-shadow:0 10px 24px rgba(38,38,46,.3)}
.dk-goldcard .dk-gold-ico{font-size:24px}
.dk-goldcard .dk-gold-ico img{width:30px;height:30px;border-radius:9px;object-fit:cover;display:block}
.dk-gold-main{flex:1;min-width:0}
.dk-gold-main b{display:block;font-size:15px;color:var(--gold-bright)}
.dk-gold-main small{color:rgba(255,240,200,.7);font-size:11.5px}
.dk-gold-go{background:linear-gradient(135deg,var(--gold-pale),var(--gold));color:var(--ink);font-weight:800;font-size:12.5px;border-radius:999px;padding:7px 12px;white-space:nowrap}
/* 商品详情：轮播 */
.d-carousel{position:relative;margin:12px 12px 0;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,var(--brand-mist),var(--brand))}
.d-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.d-track::-webkit-scrollbar{display:none}
.d-slide{flex:0 0 100%;scroll-snap-align:start}
.d-slide img{width:100%;height:230px;object-fit:cover;display:block}
.d-ph{height:230px;display:flex;align-items:center;justify-content:center;font-size:84px}
.d-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px}
.d-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55)}
.d-dots i.on{background:#fff;width:16px;border-radius:99px}
.d-title-card{margin-top:12px}
.d-title-row{display:flex;align-items:flex-start;gap:10px}
.d-title-row b{flex:1;font-size:17px;line-height:1.45;color:var(--ink)}
.d-title-row .fav{font-size:24px;cursor:pointer;line-height:1.2;padding:0 2px;color:var(--faint)}
.d-title-row .fav.on{color:var(--danger)}
.d-price-now{color:var(--price);font-weight:800;font-size:24px}
.d-price-now small{font-size:13px;margin-left:2px}
.d-price-orig{color:var(--faint);font-weight:400;font-size:14px;margin-left:8px}
.d-meta-row{display:flex;gap:10px;color:var(--muted);font-size:12px;margin-top:6px;align-items:center}
/* 规格 */
.spec-row{display:flex;flex-wrap:wrap;gap:8px}
.spec-chip{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;font-size:13px;cursor:pointer;color:var(--ink-2);display:inline-flex;gap:6px;align-items:baseline}
.spec-chip small{color:var(--muted);font-size:11.5px}
.spec-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep);font-weight:700}
.spec-chip.on small{color:var(--danger)}
/* 店铺卡 */
.d-shop-card{margin-top:12px;display:flex;align-items:center;gap:11px}
.d-shop-main{flex:1;display:flex;align-items:center;gap:11px;cursor:pointer;min-width:0}
.d-shop-logo{width:44px;height:44px;border-radius:12px;object-fit:cover;flex-shrink:0}
.d-shop-logo-fb{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-size:22px}
.d-shop-txt b{display:block;font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-shop-txt small{color:var(--muted);font-size:12px}
.follow-btn{background:var(--accent-deep);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.follow-btn.on{background:var(--line);color:var(--muted)}
/* 详情底部栏 */
.bar-shop{display:flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;font-size:17px;color:var(--ink-2);cursor:pointer;padding:2px 8px}
.bar-shop span{font-size:10.5px}
.d-buy{flex:1;font-size:16px;font-weight:800;padding:13px 0;border-radius:999px}
.d-buy.sold-out{background:var(--faint);box-shadow:none}
/* 店铺页 */
.shop-head{display:flex;align-items:center;gap:12px;margin:12px 12px 0}
.shop-page-logo{width:54px;height:54px;border-radius:14px;object-fit:cover}
.shop-page-logo-fb{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-size:26px}
.shop-page-main b{display:block;font-size:16px;color:var(--ink)}
.shop-page-main small{color:var(--muted);font-size:12px}
.shop-brow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}
.shop-brow:last-child{border-bottom:none}
.shop-bava{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;flex-shrink:0}
.shop-bava img{width:100%;height:100%;object-fit:cover}
.shop-bmeta{flex:1;min-width:0}
.shop-bmeta b{display:block;color:var(--ink);font-size:14px}
.shop-bmeta small{color:var(--muted);font-size:11.5px}
/* 分类页商品横卡 */
.gcard-h{display:flex;gap:11px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:10px;cursor:pointer;box-shadow:0 4px 14px rgba(89,139,253,.05)}
.gh-thumb{width:86px;height:86px;border-radius:12px;background:linear-gradient(135deg,var(--accent-soft),var(--accent));display:flex;align-items:center;justify-content:center;font-size:36px;flex-shrink:0;overflow:hidden}
.gh-thumb img{width:100%;height:100%;object-fit:cover}
.gh-main{flex:1;min-width:0;display:flex;flex-direction:column}
.gh-main b{font-size:13.5px;color:var(--ink);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gh-main p{color:var(--muted);font-size:11.5px;margin:3px 0 0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.gh-meta{margin-top:auto;display:flex;gap:8px;align-items:center}
.gh-meta small{color:var(--faint);font-size:11px}
.gh-stock{color:var(--warn);font-size:11px}
.gh-stock.out{color:var(--danger)}
.gh-foot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:4px}
.gh-orig{color:var(--muted);font-size:12px}
.gh-price{color:var(--price);font-weight:800;font-size:17px}
.gh-price small{font-size:11px;margin-left:1px}
/* 陪玩列表：等级徽章 + 语音条 */
.grade-chip{display:inline-block;background:linear-gradient(135deg,var(--ink),var(--brand-ink));color:var(--gold-bright);border-radius:999px;padding:2px 9px;font-size:10.5px;margin:2px 4px 0 0}
.voice-bar .vb-waves{display:inline-flex;gap:2px;align-items:center}
.voice-bar .vb-waves i{width:3px;border-radius:2px;background:var(--ok)}
.voice-bar .vb-waves i:nth-child(1){height:6px}
.voice-bar .vb-waves i:nth-child(2){height:11px}
.voice-bar .vb-waves i:nth-child(3){height:8px}
.voice-bar .vb-waves i:nth-child(4){height:13px}
.voice-bar .vb-waves i:nth-child(5){height:7px}
.voice-bar .vb-waves i:nth-child(6){height:10px}
.voice-bar .vb-waves i:nth-child(7){height:6px}
/* ===== 陪玩列表改版（第十二条·站长实拍版式） ===== */
.choose-games-card{margin:12px 12px 0;padding:12px 6px}
.gender-tabs{display:flex;justify-content:center;gap:44px;padding:14px 0 4px}
.gender-tabs span{font-size:16px;color:var(--muted);padding:4px 2px;cursor:pointer}
.gender-tabs span.on{color:var(--brand);font-weight:700;border-bottom:3px solid var(--brand)}
.board-card{margin:12px 12px 0;padding:14px 6px 8px}
.board-card .card-head{padding:0 10px}
.board-card .card-head span{cursor:default}
.board-rank{width:26px;height:26px;line-height:26px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:13px;flex:none}
.board-rank.r1{background:linear-gradient(135deg,#F6C453,#D99413);color:#fff}
.board-rank.r2{background:linear-gradient(135deg,#D7DCE2,#9AA3AD);color:#fff}
.board-rank.r3{background:linear-gradient(135deg,#D89A6A,#B0722F);color:#fff}
.board-name{font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px;min-width:0}
.board-grade{display:inline-block;background:linear-gradient(135deg,var(--brand),var(--brand-ink));color:#fff;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;flex:none}
.board-meta{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}
.board-row{animation:boardIn .28s ease both}
@keyframes boardIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
.board-row{animation:none}
}
.choose-search{padding:10px 12px 2px}
.choose-search input{width:100%;border:none;background:#fff;border-radius:999px;padding:12px 16px;font-size:14px;text-align:center;box-shadow:0 2px 10px rgba(60,45,10,.06);outline:none}
.bcard2{display:flex;gap:12px;background:#fff;border-radius:16px;padding:12px;margin:10px 12px 0;box-shadow:0 2px 12px rgba(60,45,10,.05)}
.bcard2-photo{position:relative;flex:0 0 104px;width:104px;height:104px;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,var(--brand-soft),var(--accent-soft));display:flex;align-items:center;justify-content:center;font-size:44px;cursor:pointer}
.bcard2-photo img{width:100%;height:100%;object-fit:cover}
.bcard2-photo.small{flex-basis:56px;width:56px;height:56px;font-size:24px;border-radius:12px}
.bcard2-status{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:4px;background:rgba(20,18,8,.55);color:#7BE495;font-size:11px;padding:2px 8px;border-radius:999px}
.bcard2-status i{width:6px;height:6px;border-radius:50%;background:#3ECF6B;display:inline-block}
.bcard2-status.busy{color:#FFD479}
.bcard2-status.busy i{background:#F5B83D}
.bcard2-status.off{color:#D8D8D8}
.bcard2-status.off i{background:#9A9A9A}
.bcard2-voice{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:5px;background:#fff;border-radius:999px;padding:3px 9px;font-size:11px;color:#3BA55D;box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer;white-space:nowrap}
.bcard2-voice em{font-style:normal}
.bcard2-main{flex:1;min-width:0;display:flex;flex-direction:column}
.bcard2-name{font-size:17px;font-weight:800;color:var(--ink);cursor:pointer}
.bcard2-meta{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.gchip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:#fff;font-size:11px;font-weight:700}
.gchip.male{background:var(--brand)}
.gchip.female{background:var(--accent)}
.bcard2-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.bcard2-tags .game-tag{background:var(--brand-soft);color:var(--brand-deep)}
.bcard2-intro{margin-top:6px;font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bcard2-btns{margin-top:auto;padding-top:10px;display:flex;justify-content:flex-end;gap:8px}
.btn-tip{background:#fff;border:1.5px solid var(--accent);color:var(--accent-deep);border-radius:999px;padding:7px 18px;font-size:14px;font-weight:700;cursor:pointer}
.btn-ordernow{background:linear-gradient(135deg,#6F73F2,var(--brand-deep));border:none;color:#fff;box-shadow:0 4px 12px rgba(89,139,253,.30);border-radius:999px;padding:8px 20px;font-size:14px;font-weight:700;cursor:pointer}
.btn-tipbar{background:#fff;border:1.5px solid var(--brand-mist);color:var(--brand-deep);border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer}
/* ===== 打赏页 ===== */
.ph-back{float:left;font-size:22px;line-height:1;cursor:pointer}
.tip-head{display:flex;gap:12px;align-items:center;margin:12px 12px 0;padding:18px 16px;border-radius:16px;background:linear-gradient(120deg,var(--brand),var(--brand-deep) 62%,#35B3C9);color:#fff;box-shadow:0 10px 24px rgba(89,139,253,.3)}
.tip-head b{font-size:19px}
.tip-head p{margin:4px 0 0;font-size:12.5px;opacity:.92;line-height:1.5}
.tip-heart{flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 0 0 4px rgba(53,179,201,.35)}
.tip-booster{display:flex;gap:12px;align-items:center}
.tip-sec-title{margin:0 0 10px;font-size:16px}
.gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gift-cell{background:#F7F7FB;border:2px solid transparent;border-radius:12px;padding:10px 4px;text-align:center;cursor:pointer}
.gift-cell.on{border-color:var(--brand);background:#E4F6FA}
.gift-cell .gift-ico{font-size:30px;line-height:1.2;height:44px;display:flex;align-items:center;justify-content:center}
.gift-cell .gift-ico img{width:44px;height:44px;object-fit:cover;border-radius:10px}
.gift-cell b{display:block;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden}
.gift-cell span{font-size:12px;color:var(--muted)}
.tip-custom-row{display:flex;align-items:center;gap:8px;margin-top:14px}
.tip-custom-row input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;outline:none}
.tip-err{margin-top:10px;background:#E4F6FA;border:1px solid #F3C1B8;color:#B3372C;border-radius:10px;padding:10px 12px;font-size:13.5px}
.tip-bar{padding:14px 12px 20px}
.tip-bar .btn-orange{width:100%;padding:14px;font-size:16px;border-radius:999px}
/* ===== 工作台保证金（人民币） ===== */
.wb-dep-pay{display:flex;gap:8px;margin-top:10px}
.wb-dep-pay input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;outline:none}
/* ================================================================
   真自适应：平板（641–1024）与桌面（≥1025）流式展开
   手机（≤640）沿用上方全部基础样式，一像素不差。
   全幅口径（站长 2026-10-24 定规）：所有宽度下外壳贴边全幅
   （.phone 宽度 100%、无外侧留白/阴影），底色铺满屏幕；宽屏只
   靠宫格/网格加列、列表多列展开内容，文本正文保留可读行长。
   ================================================================ */
@media (min-width:641px) and (max-width:1024px){
.phone{max-width:none}
.bottom-bar{width:100vw}
.tabbar{width:min(860px,96vw)}
.chat-inputbar{max-width:none}
#csToast{width:min(520px,92vw)}
.emoji-panel{width:min(520px,94vw)}
.modal{max-width:430px}
.login-form{width:min(480px,88%)}
.goods-grid{grid-template-columns:repeat(3,1fr)}
#view-desk .grid{grid-template-columns:repeat(4,1fr)}
.game-rail .game-tile{flex:0 0 15%}
#catGoods{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#catGoods .gcard-h{margin-bottom:0}
.cat-side{width:150px}
.gift-grid{grid-template-columns:repeat(6,1fr)}
.bd-album{grid-template-columns:repeat(4,1fr)}
.d-slide img,.d-ph{height:340px}
.podium{max-width:760px;margin:0 auto}
.rule-body,.level-intro,.dtab-pane{max-width:880px}
}
@media (min-width:1025px){
.phone{max-width:none}
.bottom-bar{width:100vw}
.tabbar{width:min(1200px,96vw)}
.chat-inputbar{max-width:none}
#csToast{width:min(560px,92vw)}
.emoji-panel{width:min(560px,94vw)}
.modal{max-width:430px}
.login-form{width:min(480px,88%)}
.goods-grid{grid-template-columns:repeat(4,1fr)}
#view-desk .grid{grid-template-columns:repeat(4,1fr)}
.game-rail .game-tile{flex:0 0 10.5%}
#boosterList{display:grid;grid-template-columns:1fr 1fr;align-items:start}
#catGoods{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
#catGoods .gcard-h{margin-bottom:0}
.cat-side{width:190px}
#orderList{display:grid;grid-template-columns:1fr 1fr;align-items:start}
.gift-grid{grid-template-columns:repeat(8,1fr)}
.bd-album{grid-template-columns:repeat(6,1fr)}
.rights-grid{grid-template-columns:repeat(6,1fr)}
.level-scroll{flex-wrap:wrap;overflow-x:visible}
.d-slide img,.d-ph{height:400px}
.podium{max-width:760px;margin:0 auto}
.rule-body,.level-intro,.dtab-pane{max-width:880px}
}
/* 指定陪玩选品弹窗（商品库列表） */
.bg-item{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;cursor:pointer;background:var(--surface)}
.bg-item.on{border-color:var(--brand);background:var(--brand-soft)}
.bg-item.dis{opacity:.55;cursor:not-allowed}
.bg-thumb{width:52px;height:52px;border-radius:10px;overflow:hidden;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:24px;flex:none}
.bg-thumb img{width:100%;height:100%;object-fit:cover}
.bg-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.bg-main b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bg-price{color:var(--price);font-weight:700;font-size:14px}
.bg-price small{font-size:11px;font-weight:400}
.bg-check{color:var(--brand);font-weight:700;font-size:18px;flex:none}
.wb-check.ok{border-color:var(--ok,#1aab6d);background:var(--ok-soft,#e7f8f0)}
.rk-go{color:var(--faint);font-size:18px;flex:none}
/* 热门商品榜页行 */
.hot-thumb{width:46px;height:46px;border-radius:10px;overflow:hidden;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:22px;flex:none}
.hot-thumb img{width:100%;height:100%;object-fit:cover}
.hot-row-lg{padding:10px 4px}
/* 热榜行框（站长 13:28–13:30 定版）：第 1–3 名整行被金/银/铜整圈
   渐变框完整圈起做成「冠军卡」（金卡另有一道轻光泽扫过，仅
   transform/opacity）；第 4 名起每一行用一层白色光圈整行包边
   （白环 + 淡淡白光，清爽发光感）。光晕一律 box-shadow 实现，
   不用 blur 滤镜（低端机性能规矩）。首页榜段与榜页共用。 */
.hot-row.hot-r1,.hot-row.hot-r2,.hot-row.hot-r3,.hot-row.hot-rw{border-radius:14px;padding-left:10px;padding-right:10px;margin:7px 0;position:relative}
.hot-row.hot-r1,.hot-row.hot-r2,.hot-row.hot-r3{border:1.5px solid transparent}
.hot-row.hot-r1{background:linear-gradient(#FFFDF4,#FFFDF4) padding-box,linear-gradient(120deg,#F3D27A,#C99327,#F7E29A,#C99327) border-box;box-shadow:0 3px 10px rgba(201,147,39,.20);overflow:hidden}
.hot-row.hot-r2{background:linear-gradient(#FDFDFE,#FDFDFE) padding-box,linear-gradient(120deg,#E8ECF2,#9AA5B5,#EDF0F5,#9AA5B5) border-box;box-shadow:0 2px 8px rgba(120,132,150,.16)}
.hot-row.hot-r3{background:linear-gradient(#FFFBF5,#FFFBF5) padding-box,linear-gradient(120deg,#EBC39A,#B07A45,#F0D2AC,#B07A45) border-box;box-shadow:0 2px 8px rgba(176,122,69,.15)}
.hot-row.hot-rw{border:1.5px solid rgba(255,255,255,.98);background:#FFF;box-shadow:0 0 0 1px rgba(228,220,204,.75),0 0 12px 3px rgba(255,255,255,.8),0 1px 5px rgba(90,80,60,.08)}
/* 热榜整页：隆重标题区 + 领奖台（站长 13:30 定版，仅整页，首页段不上） */
.hotrank-hero{text-align:center;padding:20px 12px 0}
.hotrank-hero h2{font-size:24px;font-weight:800;letter-spacing:2px;color:var(--brand-ink)}
.hotrank-hero p{font-size:12px;color:var(--muted);margin-top:5px;letter-spacing:1px}
.hot-pod{display:flex;gap:10px;padding:18px 12px 4px;align-items:stretch;max-width:680px;margin:0 auto}
.hot-pod-seat{flex:1;border-radius:16px;padding:14px 8px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;position:relative;border:1.5px solid transparent}
.hot-pod-seat:active{transform:scale(.98)}
.hot-pod-seat.hp1{flex:1.35;background:linear-gradient(#FFFDF4,#FFFDF4) padding-box,linear-gradient(120deg,#F3D27A,#C99327,#F7E29A,#C99327) border-box;box-shadow:0 4px 14px rgba(201,147,39,.22);transform:translateY(-8px)}
.hot-pod-seat.hp1:active{transform:translateY(-8px) scale(.98)}
.hot-pod-seat.hp2{background:linear-gradient(#FDFDFE,#FDFDFE) padding-box,linear-gradient(120deg,#E8ECF2,#9AA5B5,#EDF0F5,#9AA5B5) border-box;box-shadow:0 3px 10px rgba(120,132,150,.16)}
.hot-pod-seat.hp3{background:linear-gradient(#FFFBF5,#FFFBF5) padding-box,linear-gradient(120deg,#EBC39A,#B07A45,#F0D2AC,#B07A45) border-box;box-shadow:0 3px 10px rgba(176,122,69,.15)}
.hot-pod-seat b{font-size:13.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hot-pod-seat.hp1 b{font-size:15px}
.hot-pod-seat small{font-size:11.5px;color:var(--muted)}
.hp-medal{font-size:17px;line-height:1}
.hp-thumb{width:50px;height:50px;border-radius:12px;overflow:hidden;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:24px}
.hp-thumb img{width:100%;height:100%;object-fit:cover}
.hp1 .hp-thumb{width:62px;height:62px;font-size:29px}
.hp-price{font-size:14px;font-weight:800;color:var(--price)}
.hp1 .hp-price{font-size:16px}
.hot-pod-seat.hp-empty{cursor:default;min-height:128px}
.hot-pod-seat.hp-empty:active{transform:none}
.hot-pod-seat.hp1.hp-empty{transform:translateY(-8px)}
.hp-ranknum{font-size:34px;font-weight:800;opacity:.45;font-variant-numeric:tabular-nums}
.hp1 .hp-ranknum{color:#C99327}
.hp2 .hp-ranknum{color:#9AA5B5}
.hp3 .hp-ranknum{color:#B07A45}
.hot-row.hot-r1 .hot-rank{color:#C99327;-webkit-text-stroke:0}
.hot-row.hot-r2 .hot-rank{color:#8E99A8;-webkit-text-stroke:0}
.hot-row.hot-r3 .hot-rank{color:#B07A45;-webkit-text-stroke:0}
.hot-row.hot-r1::after{content:'';position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(100deg,transparent,rgba(255,222,130,.38),transparent);transform:translateX(-180%) skewX(-18deg);opacity:0;animation:hotSheen 4.2s ease-in-out infinite;pointer-events:none}
@keyframes hotSheen{0%,58%{transform:translateX(-180%) skewX(-18deg);opacity:0}72%{opacity:1}92%,100%{transform:translateX(340%) skewX(-18deg);opacity:0}}
@media (prefers-reduced-motion: reduce){
.hot-row.hot-r1::after{animation:none}
}
/* 榜单「50+」悬浮条：与底部导航同款悬浮胶囊，固定在其上方 */
.rank-more-bar{position:fixed;bottom:82px;left:50%;transform:translateX(-50%);z-index:49;background:rgba(38,38,46,.92);color:#fff;padding:8px 18px;border-radius:999px;font-size:12.5px;font-weight:600;box-shadow:0 10px 24px rgba(38,38,46,.3);white-space:nowrap}
.wb-tab.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
/* 首页顶部轮播（宽幅约 3.2:1，图片填满裁切） */
.hero-carousel{position:relative;border-radius:16px;overflow:hidden;margin-top:12px;aspect-ratio:3.2/1;box-shadow:0 10px 24px rgba(89,139,253,.18);background:#D9E7FA}
/* 页面装修：横幅槽兜底（轮播池无图时）+ 分类/选陪玩页装修块 */
.hero-fallback{position:relative;border-radius:16px;overflow:hidden;margin-top:12px;aspect-ratio:3.2/1;background:linear-gradient(120deg,var(--brand) 0%,var(--brand-deep,#3F74E8) 70%);color:#fff;display:flex;align-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(89,139,253,.18)}
.hero-fallback-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-fallback-txt{position:relative;padding:0 20px;display:flex;flex-direction:column;gap:4px}
.hero-fallback-txt b{font-size:19px;letter-spacing:.5px}
.hero-fallback-txt small{font-size:12px;opacity:.85}
.decor-banner{margin:12px 12px 0;border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:0 6px 16px rgba(89,139,253,.12)}
.decor-banner img{display:block;width:100%;aspect-ratio:3.2/1;object-fit:cover}
.decor-entries{margin:12px 12px 0;flex-wrap:wrap}
#view-choose .decor-entries{margin:12px 0 0}
#view-choose .decor-banner{margin:12px 0 0}
.hero-track{display:flex;height:100%;transition:transform .45s ease}
.hero-slide{min-width:100%;height:100%;cursor:pointer}
.hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;gap:5px;justify-content:center;pointer-events:none}
.hero-dot{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.55);transition:all .3s}
.hero-dot.on{width:16px;background:#fff}
/* 官方徽标 / 店铺归属标签 */
.official-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:20px;background:var(--brand,#598BFD);color:#fff;font-size:10px;font-weight:700;vertical-align:2px}
.shop-name-tag{display:inline-block;flex:none;white-space:nowrap;margin-right:4px;padding:1px 6px;border-radius:6px;background:rgba(53,179,201,.35);color:#146B80;font-size:10px;font-weight:700;vertical-align:2px}
/* 邀请区块 */
.invite-stats{display:flex;gap:8px;margin-top:12px}
.invite-stats span{flex:1;background:rgba(255,255,255,.06);border-radius:10px;padding:8px 4px;text-align:center;font-size:12px}
.invite-stats b{font-size:16px}
.invite-row{display:flex;justify-content:space-between;padding:7px 2px;border-bottom:1px dashed rgba(255,255,255,.08);font-size:13px}
.invite-row small{color:var(--muted)}
/* 充值页（档位卡 + 深色余额卡） */
.rc-modal{max-width:430px}
.rc-id-card{background:linear-gradient(120deg,#3F74E8,#598BFD);color:#fff;border-radius:16px;padding:14px 16px 16px;margin-bottom:14px}
.rc-id-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rc-id-left{display:flex;align-items:center;gap:8px;min-width:0}
.rc-id-left b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.2);flex:none}
.rc-avatar-ph{display:flex;align-items:center;justify-content:center;font-size:16px}
.rc-guarantee{flex:none;font-size:11px;font-weight:700;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 9px}
.rc-bal-label{display:block;font-size:12px;opacity:.85;margin-top:12px}
.rc-big{font-size:40px;font-weight:800;line-height:1.15;letter-spacing:.5px}
.rc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rc-tier{position:relative;border:2px solid var(--line,#E4E5F0);background:#fff;border-radius:14px;padding:12px 6px 10px;text-align:center;cursor:pointer}
.rc-tier b{display:block;font-size:19px;color:var(--brand,#598BFD)}
.rc-pill{display:inline-block;margin-top:6px;background:#E4F6FA;color:#146B80;font-size:12px;font-weight:700;border-radius:999px;padding:2px 12px}
.rc-tier.on{border-color:#598BFD;background:#E8F0FE}
.rc-bonus{position:absolute;top:-8px;right:-4px;background:#9AD4CB;color:#146B80;font-size:11px;font-weight:700;border-radius:12px;padding:2px 8px}
.rc-custom-label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
.rc-custom-row{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--line,#E4E5F0);border-radius:12px;padding:0 12px}
.rc-custom-row input{flex:1;border:0;outline:0;background:transparent;font-size:16px;padding:11px 0;min-width:0}
.rc-custom-ico{font-size:16px}
.rc-yen{color:var(--muted);font-weight:700}
.rc-fee{text-align:center;font-size:12px;color:#146B80;margin:0 0 8px}
.rc-foot{position:sticky;bottom:0;background:var(--card,#fff);padding-top:8px}
#rcCustomAmt{width:auto;padding:11px 0;border:0;border-radius:0;font-size:16px;background:transparent;outline:0}
.rc-preview{text-align:center;font-size:13px;color:var(--brand);font-weight:700;margin-top:10px}
.rc-hint{text-align:center;font-size:12px;color:var(--danger);margin-top:6px}
.rc-main-btn{width:100%;margin-top:12px}
.rc-links{display:flex;justify-content:space-between;margin-top:12px;font-size:13px;color:var(--muted)}
.rc-links span{cursor:pointer}
/* 余额明细 */
.wlog-row{display:flex;justify-content:space-between;align-items:center;background:var(--card,#fff);border-radius:12px;padding:11px 13px;margin-bottom:8px}
.wlog-row b{display:block;font-size:14px}
.wlog-row small{color:var(--muted);font-size:12px}
.wlog-plus{color:var(--ok,#2E9E5B);font-weight:800}
.wlog-minus{color:var(--danger);font-weight:800}
/* 钱包页收支明细（内嵌账本）：筛选行贴卡内、行可点直达订单 */
.wled-card{margin-top:12px}
.wled-tabs{padding:8px 0 10px}
.wled-tabs span{font-size:12.5px;padding:6px 11px}
.wled-tap{cursor:pointer}
.wled-tap:active{transform:scale(.99)}
.wled-arrow{color:var(--brand);font-weight:800}
/* 收支明细 · 月度汇总头（2026-10-25）：左翻月、右收入/支出/结余三数 */
.wmon{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 0 2px}
.wmon-switch{display:flex;align-items:center;gap:2px;padding-top:1px;flex:none}
.wmon-nav{border:none;background:var(--brand-soft);color:var(--ink-2);width:26px;height:26px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;flex:none;padding:0}
.wmon-nav:active{transform:scale(.93)}
.wmon-label{font-size:15px;white-space:nowrap;padding:0 2px}
.wmon-sums{display:flex;flex-direction:column;gap:2px}
.wmon-sum{display:flex;justify-content:flex-end;align-items:baseline;gap:8px}
.wmon-sum small{color:var(--muted);font-size:11.5px;flex:none}
.wmon-sum span{font-weight:800;font-size:14px;min-width:84px;text-align:right}
.wmon-out{color:var(--ink)}
.wmon-net{color:var(--ink)}
/* 收支明细 · 自定义查询（2026-10-25）：卡头入口钮 + 就地展开查询条；
   查询态月份切换让位给区间标签，三数改走区间口径（服务端 sums） */
.wled-head{display:flex;justify-content:space-between;align-items:center}
.wled-qbtn{border:1px solid var(--line);background:#fff;color:var(--brand);font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:999px;cursor:pointer;flex:none}
.wled-qbtn.on{background:var(--brand);color:#fff;border-color:var(--brand)}
/* 收支明细收起卡（明细收起小包 2026-10-26）：钱包页只留当月汇总+5条预览+查看全部入口；金额与单位同行不拆 */
.wamt{white-space:nowrap;flex:none}
/* 金额与单位防拆行（排查 FC-P2-2）：金额+「钻石」为同一文本
   节点时整段不换行，窄屏长金额也不许把单位挤到下一行 */
#payAmt,#paySuccessBal,#paySuccessAmt,#paySuccessCoins,.rc-preview,.ord-amt,.hall-price{white-space:nowrap}
.wlog-row>div{min-width:0}
.wsum-month{color:var(--muted);font-size:12.5px;flex:none}
.wsum-rows{padding:8px 0 2px}
.wsum-row{display:flex;align-items:baseline;gap:8px;padding:3px 0}
.wsum-k{flex:none;color:var(--muted);font-size:12.5px}
.wsum-v{flex:none;font-weight:800;font-size:16px;white-space:nowrap;margin:0}
.wsum-c{flex:none;margin-left:auto;color:var(--muted);font-size:12px}
#wlPreviewList{margin-top:8px}
.wqbar{border-top:1px dashed var(--line);margin-top:8px}
.wq-presets{padding:8px 2px 4px}
.wq-custom{display:flex;align-items:center;gap:6px;padding:2px 2px 8px;flex-wrap:wrap}
.wq-custom input[type="date"]{border:1px solid var(--line);border-radius:8px;padding:6px;font-size:12.5px;color:var(--ink);background:#fff;flex:1;min-width:112px}
.wq-to{color:var(--muted);font-size:12.5px;flex:none}
.wq-apply{border:none;background:var(--brand);color:#fff;font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer;flex:none}
.wq-exit{border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:12.5px;padding:6px 12px;border-radius:999px;cursor:pointer;flex:none}
/* 自定义 ID 选号 */
.userno-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.userno-cell{padding:9px 0;border:1px solid var(--line,#E4E5F0);border-radius:10px;background:#fff;font-size:14px;font-weight:700;cursor:pointer}
/* —— 全站操作感标准（站长定版）：按下反馈/切换过渡/选中态 ——
   仅 transform/opacity/filter，120–180ms；不阻塞下单路径。 */
button,[onclick]{-webkit-tap-highlight-color:transparent}
button,.btn-orange,.btn-ghost,.game-tile,.quick-cell,.grid-cell,.tabbar>div,.cat-side>div,.gender-tabs span,.chip,.goods-card,.boo-card,.gift-cell,.photo-cell,.rank-row,.cell,.menu-cell,.order-card,.hall-card{transition:transform .15s ease,filter .15s ease,opacity .15s ease,background-color .18s ease,color .18s ease,border-color .18s ease}
button:active,.btn-orange:active,.btn-ghost:active,.game-tile:active,.quick-cell:active,.grid-cell:active,.tabbar>div:active,.cat-side>div:active,.gender-tabs span:active,.chip:active,.goods-card:active,.boo-card:active,.gift-cell:active,.rank-row:active,.cell:active,.menu-cell:active,.order-card:active,.hall-card:active{transform:scale(.97);filter:brightness(.95)}
button:disabled,.btn-orange:disabled{opacity:.55;transform:none}
.switch,.toggle{transition:background-color .18s ease}
.switch i,.toggle i{transition:transform .18s ease}
@keyframes subViewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
button,.btn-orange,.btn-ghost,.game-tile,.quick-cell,.grid-cell,.tabbar>div,.cat-side>div,.gender-tabs span,.chip,.goods-card,.boo-card,.gift-cell,.photo-cell,.rank-row,.cell,.menu-cell,.order-card,.hall-card{transition:none}
button:active,.btn-orange:active,.game-tile:active,.tabbar>div:active,.goods-card:active,.boo-card:active{transform:none;filter:none}
}
/* 接单条件快捷窗 */
.acc-mask{position:fixed;inset:0;background:rgba(20,26,43,.45);z-index:200;display:flex;align-items:flex-end;justify-content:center}
.acc-sheet{background:#fff;width:min(430px,100%);max-height:82vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px 22px;animation:subViewIn .18s ease both}
.pe-sheet{background:#fff;width:min(430px,100%);max-height:82vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px 22px;animation:subViewIn .18s ease both}
.pe-sheet h3{margin:0 0 10px;font-size:16px}
.acc-head{display:flex;justify-content:space-between;align-items:center;font-size:16px;margin-bottom:8px}
.acc-x{cursor:pointer;color:var(--muted);font-size:15px;padding:4px 8px}
/* —— 小窗内错误条（LATE-1）：错误显示在小窗里，不关窗、不静默 —— */
.form-err{display:none;background:#FDECEA;color:var(--danger);border:1px solid #F3B7B2;border-radius:10px;padding:8px 12px;font-size:13px;line-height:1.6;margin:10px 0 2px;text-align:left}
.form-err.show{display:block}
/* 头像上传中状态（点了立刻有反应，不再「没反应」） */
.ava-uploading{animation:avaPulse 1s ease-in-out infinite}
@keyframes avaPulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){
.ava-uploading{animation:none;opacity:.5}
}
/* 6 位分段密码框（pin6）：自动跳格/退格回退/粘贴填满，隐藏 input 保原 id 读值 */
.pin6{display:flex;gap:8px;justify-content:center;margin:6px 0 2px}
.pin6-box{width:44px;height:52px;padding:0;text-align:center;font-size:22px;font-weight:700;color:var(--ink);border:1.5px solid var(--line);border-radius:12px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.pin6-box:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.pin6.pin6-err .pin6-box{border-color:var(--danger)}
/* 自家小窗（替代原生 prompt/confirm）：备注快捷短语 chip */
.ui-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px}
.ui-chip{border:1px solid var(--line);background:var(--brand-soft);color:var(--brand-ink);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.ui-chip:active{transform:scale(.96)}
.ui-sheet-ta{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px;line-height:1.6;resize:vertical;min-height:76px;outline:none;background:#fff;color:var(--ink)}
.ui-sheet-ta:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
/* 通知卡：可点 + 按下反馈 + 未读点 + 工具行（消息页已读管理） */
.notif-item{cursor:pointer;transition:transform .15s ease, box-shadow .15s ease}
.notif-item:active{transform:scale(.985)}
.notif-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notif-item.open .notif-text{-webkit-line-clamp:unset}
.notif-go{flex:none;align-self:center;color:var(--faint);font-size:15px}
.flash-hl{animation:flashHl 2.2s ease}
@keyframes flashHl{0%,55%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
/* 少元素快捷行宽屏收拢（站长 2026-10-25 00:14）：只有几个入口的横条
 * 在宽屏不许 space-around 散满整行——改等宽网格 + 整组最大宽度成团，
 * 图标与文字成对不散；手机端（容器本就窄于上限）视觉不变。 */
.dk-orders{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:680px;justify-content:stretch}
.wb-wd-st.st-approved{background:#E5F4EC;color:var(--ok)}
.wb-wd-st.st-rejected{background:#FDECEC;color:var(--danger)}
/* ================================================================
   消息与订单体验轮（2026-10-25）：五分类消息 / 大厅卡 / 打手订单
   详情 / 会话改版 / 私聊 / 资料中心 / 帮助中心 / 轨道 peek / 我的模块化
   ================================================================ */
/* —— 消息五分类图标排 —— */
.msg-cats{display:flex;gap:6px;padding:12px;overflow-x:auto;scrollbar-width:none}
.msg-cats::-webkit-scrollbar{display:none}
.msg-cats span{position:relative;flex:1;min-width:64px;text-align:center;background:#fff;border:1px solid var(--line);padding:8px 2px;border-radius:14px;font-size:12px;cursor:pointer;color:var(--ink-2);transition:transform .15s ease,background-color .18s ease,color .18s ease}
.msg-cats span i{font-style:normal;display:block;font-size:19px;margin-bottom:2px}
.msg-cats span.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.msg-cats span:active{transform:scale(.96)}
/* —— 消息页分段滑块（互动内嵌轮：四段一屏、段签带角标、可横滑） —— */
#view-message.msg-flex.active{display:flex;flex-direction:column;height:calc(var(--vvh,100dvh) - 86px);padding-bottom:0;overflow:hidden;animation:none}
#view-message .page-head{flex:none}
.msg-seg{display:flex;flex:none;background:rgba(255,255,255,.55);border:0;box-shadow:0 2px 9px rgba(89,139,253,.06);border-radius:999px;padding:3.5px;margin:10px 12px 2px;overflow:visible;gap:0}
.msg-seg span{position:relative;flex:1;min-width:0;text-align:center;font-size:13px;color:var(--ink-2);padding:7px 0;border-radius:999px;background:transparent;border:0;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .15s ease}
.msg-seg span i{display:none}
.msg-seg span.on{background:var(--brand);color:#fff;font-weight:600;box-shadow:0 4px 10px rgba(89,139,253,.28)}
.msg-seg span:active{transform:scale(.96)}
.msg-seg .msg-dot{top:-4px;right:6px}
.msg-panes{flex:1;min-height:0;overflow:hidden;margin-top:6px}
.msg-track{display:flex;height:100%;transition:transform .32s cubic-bezier(.2,.7,.3,1)}
.msg-track.dragging{transition:none}
.msg-pane{flex:0 0 100%;width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:14px}
.msg-entry .cp-main{flex:1;min-width:0}
.msg-entry .cp-main b{font-size:14.5px}
.msg-entry .cp-main small{display:block;color:var(--ink3);font-size:12px;margin-top:1px}
/* —— 通讯录 —— */
.ct-tabs{display:flex;gap:8px;padding:12px 12px 2px}
.ct-tabs span{flex:1;text-align:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 0;font-size:13px;color:var(--ink-2);cursor:pointer;transition:transform .15s ease,background-color .18s ease,color .18s ease}
.ct-tabs span.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.ct-tabs span:active{transform:scale(.96)}
.ct-row .chat-ava{width:44px;height:44px}
.ct-row .cp-main{flex:1;min-width:0}
.ct-row .cp-main b{font-size:14.5px}
.ct-row .cp-main small{display:block;color:var(--ink3);font-size:12px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* —— 陪玩名片社交行 —— */
.bd-social{display:flex;align-items:center;gap:10px;margin-top:10px}
.bd-social .follow-btn{flex:none}
.bd-social .bd-soc-counts{font-size:12.5px;color:var(--ink-2);cursor:pointer}
.bd-social .bd-soc-counts b{color:var(--ink);font-size:13.5px}
.msg-readall{margin-left:auto;background:var(--brand-soft);border:1px solid var(--line);color:var(--brand-deep);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;cursor:pointer}
.msg-readall:active{transform:scale(.96)}
.msg-readall:disabled{opacity:.55}
.ogroup-n{font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 6px;margin-left:4px}
/* 订单群卡（定版 msg-v2 .oc）：白卡四行——顶行 标+名+状态药丸、订单号·陪玩名、
 * 最新消息条（绿呼吸点+单行省略+时间）、底行双药丸钮。消息条只在载荷真有
 * latestText/latestTitle 时渲染（orderGroups 服务端已合并通知与会话两条流）。 */
.oc{background:#fff;border-radius:16px;padding:13px;margin:0 12px 11px;box-shadow:0 2px 9px rgba(89,139,253,.05);cursor:pointer}
.oc:active{transform:scale(.99)}
.oc .tp{display:flex;align-items:center;gap:6px}
.oc .tt{font-size:14.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.oc .st{margin-left:auto;flex:none;font-size:11px;border-radius:6px;padding:2.5px 8px}
.oc .st.run{background:#E8F0FE;color:var(--brand)}
.oc .st.done{background:#E7F6EC;color:#3E9C5A}
.oc .st.off{background:#F1F2F8;color:#9AA0B8}
.oc .no{font-size:11px;color:#B9BDD2;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc .lm{display:flex;align-items:center;gap:7px;margin-top:9px;background:#F7F7FB;border-radius:10px;padding:8px 10px}
.oc .lm .dot{width:8px;height:8px;border-radius:50%;background:#2ECC71;flex:none;animation:ocBr 1.6s infinite}
@keyframes ocBr{0%{box-shadow:0 0 0 0 rgba(46,204,113,.45)}70%{box-shadow:0 0 0 6px rgba(46,204,113,0)}100%{box-shadow:0 0 0 0 rgba(46,204,113,0)}}
.oc .lm p{font-size:12px;color:#5A5E78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.oc .lm time{margin-left:auto;font-size:10.5px;color:#B9BDD2;flex:none}
.oc .lm .ogroup-n{margin-left:0;flex:none}
.oc .ft{display:flex;gap:8px;margin-top:10px}
.oc .ft>div{flex:1;text-align:center;font-size:12.5px;border-radius:999px;padding:7.5px 0;cursor:pointer}
.oc .ft>div:active{transform:scale(.98)}
.oc .go{background:var(--brand);color:#fff;font-weight:600}
.oc .dt2{background:#F4F4F9;color:#5A5E78}
/* —— 会话共用 —— */
.chat-peerbar{margin:8px 12px 0;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:7px 10px;flex-wrap:wrap}
.chat-ava{width:38px;height:38px;border-radius:50%;background:var(--accent-soft);display:inline-flex;align-items:center;justify-content:center;font-size:17px;overflow:hidden;flex:none;vertical-align:middle}
.chat-ava img{width:100%;height:100%;object-fit:cover}
.chat-line .chat-ava{width:32px;height:32px;font-size:14px;margin:0 6px}
.cp-main{flex:1;min-width:0}
.cp-main b{font-size:14.5px;color:var(--ink)}
.cp-main small{display:block;color:var(--muted);font-size:11.5px}
.cp-go{flex:none;padding:7px 14px;font-size:13px}
.chat-transfer-card.done{opacity:.62}
.phrase-bar{display:flex;gap:7px;overflow-x:auto;padding:8px 12px 2px;scrollbar-width:none}
.phrase-bar::-webkit-scrollbar{display:none}
.phrase-chip{flex:none;background:#fff;border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:12.5px;cursor:pointer;transition:transform .13s ease}
.phrase-chip:active{transform:scale(.95)}
.plus-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 12px;background:#fff;border-top:1px solid var(--line-soft)}
.plus-panel button{background:var(--accent-soft);border:1px solid var(--line);border-radius:14px;padding:10px 0;font-size:22px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:transform .13s ease}
.plus-panel button span{font-size:12px;color:var(--ink-2)}
.plus-panel button:active{transform:scale(.95)}
.dm-thread{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;margin:10px 12px;padding:11px 13px;cursor:pointer;transition:transform .15s ease}
.dm-thread:active{transform:scale(.98)}
.dm-thread .chat-ava{width:44px;height:44px}
.dm-thread-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.dm-thread-side small{color:var(--faint);font-size:11px}
#view-dmchat{padding-bottom:86px}
#view-dmchat .chat-page-box{height:calc(100vh - 330px)}
.cs-guard{margin:12px 12px 0;background:#FFF7E0;border:1px solid var(--gold);color:#7A5200;border-radius:12px;padding:10px 13px;font-size:12.5px;line-height:1.75}
.cs-guard-link{display:inline-block;margin-left:6px;color:var(--brand);font-weight:700;cursor:pointer}
/* —— 接单成功页 —— */
.claimok-wrap{text-align:center;padding:70px 26px 30px}
.claimok-check{width:92px;height:92px;margin:0 auto 18px;border-radius:50%;background:linear-gradient(135deg,#2E9E5B,#1A9E54);color:#fff;font-size:52px;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 32px rgba(26,158,84,.35);animation:claimPop .35s cubic-bezier(.2,.9,.3,1.4) both}
@keyframes claimPop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.claimok-wrap h2{font-size:24px;color:var(--ink)}
.claimok-sub{color:var(--muted);font-size:14px;line-height:1.9;margin:10px 0 26px}
.claimok-btn{width:100%;padding:14px;font-size:16px;margin-top:12px}
.hall-tabs span.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.hall-sorts span.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.hall-card.tier-blocked{opacity:.75}
.hall-boss .chat-ava{width:26px;height:26px;font-size:12px}
/* —— 我接手的订单行 + 子页签 —— */
.wbo-subtab{display:inline-block;padding:6px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;cursor:pointer;color:var(--ink-2);margin:0 6px 10px 0}
.wbo-subtab.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.wbo-row{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;cursor:pointer;transition:transform .15s ease}
.wbo-row:active{transform:scale(.985)}
.wbo-row-top{display:flex;align-items:center;gap:6px}
.wbo-row-top b{flex:1;min-width:0;font-size:14.5px;color:var(--ink)}
.wbo-st{flex:none}
.wbo-line{color:var(--muted);font-size:12.5px;margin-top:4px}
.wbo-income{color:#FF6A2B;font-weight:700;font-size:13.5px;margin-top:5px}
.wbo-foot{display:flex;align-items:center;gap:8px;margin-top:9px}
.wbo-boss{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);flex:1;min-width:0}
.wbo-boss .chat-ava{width:26px;height:26px;font-size:12px}
.wbo-amt{font-size:19px;font-weight:800;color:var(--price)}
.wbo-similar{padding:6px 13px;font-size:12.5px}
.wbd-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;background:rgba(255,255,255,.96);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;gap:9px;align-items:center;box-shadow:0 -3px 14px rgba(89,139,253,.12);z-index:45;backdrop-filter:blur(10px)}
.wbd-bar button{flex:1;padding:12px 0}
.wbd-bar .wb-wait{flex:1;text-align:center}
/* —— 陪玩卡聊一聊钮 —— */
.btn-chat{background:var(--brand-soft);border:0 solid var(--brand-mist);color:var(--brand-deep);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:700;cursor:pointer}
.btn-chat:active{transform:scale(.96)}
.ord-refunded{color:var(--danger);font-weight:700;font-size:13px}
.ord-taker{display:flex;align-items:center;gap:8px;margin:7px 0 4px;flex-wrap:wrap}
.ord-taker-one{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.ord-taker-one img{width:24px;height:24px;border-radius:50%;object-fit:cover}
.ord-taker-fb{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.ord-taker small{color:var(--muted)}
.ord-waiting{color:var(--warn);font-weight:700;font-size:13.5px}
/* —— 帮助中心 —— */
.help-faq{background:#fff;border:1px solid var(--line);border-radius:13px;margin:8px 12px;padding:13px 15px;cursor:pointer;transition:transform .13s ease}
.help-faq:active{transform:scale(.99)}
.help-q{display:flex;justify-content:space-between;gap:10px;font-weight:700;font-size:14.5px;color:var(--ink)}
.help-q span{color:var(--faint);transition:transform .18s ease}
.help-faq.open .help-q span{transform:rotate(90deg)}
.help-a{margin-top:9px;font-size:13.5px;line-height:1.85;color:var(--ink-2);white-space:pre-line;border-top:1px dashed var(--line);padding-top:9px}
/* —— 全站横滑轨道 peek —— */
.rail-wrap{position:relative}
.rail-wrap .rail-more{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:22px;height:34px;border-radius:999px;background:rgba(38,38,46,.55);color:#fff;font-size:19px;line-height:32px;text-align:center;pointer-events:none;opacity:0;transition:opacity .18s ease;z-index:3}
.rail-wrap.has-more .rail-more{opacity:1}
.rail-wrap.has-more .rail-peek{-webkit-mask-image:linear-gradient(90deg,#000 84%,transparent 99%);mask-image:linear-gradient(90deg,#000 84%,transparent 99%)}
/* 游戏瓷砖宽度：整数+零头，保证下一块永远露出一截 */
.game-rail .game-tile{flex:0 0 21.5%}
/* —— 「我的」模块化 —— */
.dk-module{border-radius:20px!important}
/* 双卡（定版 my-v3 .twin/.tc）：白卡、图标圆、数字+标+›、大水印图标右下溢出 */
.dk-twin{display:flex;gap:11px;margin:12px 12px 0}
.dk-tc{flex:1;min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 14px;height:70px;position:relative;overflow:hidden;box-shadow:0 2px 9px rgba(89,139,253,.06);display:flex;align-items:center;cursor:pointer}
.dk-tc-ic{width:42px;height:42px;border-radius:50%;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;margin-right:11px;flex:none}
.dk-tc-ic svg{display:block}
.dk-tc-main{min-width:0}
.dk-tc-main b{display:block;font-size:19px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk-tc-main small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.dk-tc{transition:transform .15s ease,filter .15s ease}
.dk-tc:active{transform:scale(.97);filter:brightness(.97)}
.dk-tc-go{margin-left:auto;color:#C6C9DC;font-size:17px;flex:none}
.dk-tc-wm{position:absolute;right:-12px;bottom:-20px;opacity:.07;pointer-events:none;line-height:0}
#view-desk .dk-goldcard.dk-module{margin:12px 12px 0;border-radius:20px}
#view-desk .dk-orders div i{position:relative}
.cs-online-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px var(--ok)}
#moreGrid .grid-cs i{position:relative}
/* 设置页资料摘要行头像 */
.prof-sum-ava{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#E8F0FE}
/* 消息页齿轮/分类专属页/活动中心 */
.msg-gear{margin-left:4px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:16px;color:var(--ink2)}
.msg-gear:active{transform:scale(.92)}
.msglist-tools{display:flex;gap:8px;align-items:center;padding:10px 12px 2px}
.msglist-tools .btn-black{padding:7px 12px;font-size:12px}
.msglist-sel{margin-left:auto;font-size:12px;color:var(--ink3)}
.ml-check.on{background:var(--brand);border-color:var(--brand)}
.ml-check.on::after{content:'✓';position:absolute;inset:0;color:#fff;font-size:12px;text-align:center;line-height:17px}
.ml-olink{color:var(--brand);font-weight:700;text-decoration:underline}
.ml-spec{color:var(--ink3)}
.act-card{margin:12px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:14px}
.act-card b{font-size:15px}
.act-card p{font-size:12.5px;color:var(--ink2);line-height:1.7;margin:6px 0 10px}
.act-card button{width:100%}
.act-tiers{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.act-tier{font-size:11.5px;background:var(--brand-soft);color:var(--brand-deep);border-radius:999px;padding:4px 9px;font-weight:700}
/* 本人空相册细提示 + 相册锚点闪光 */
.bd-album-hint{margin:10px 12px 0;padding:10px 12px;background:var(--brand-soft);color:var(--brand-deep);border:1px dashed var(--brand);border-radius:12px;font-size:13px;font-weight:700}
.bd-album-hint:active{transform:scale(.98)}
.flash-ring{animation:flashRing 1.6s ease}
@keyframes flashRing{0%,100%{box-shadow:0 0 0 0 rgba(89,139,253,0)}25%,60%{box-shadow:0 0 0 3px rgba(89,139,253,.45)}}
/* ===== 弹出层补齐：气泡确认 / 撤销条 / 分级横幅 / 草稿条 / 收藏移除钮 ===== */
.pop-confirm{position:fixed;width:248px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px rgba(38,38,46,.28);padding:12px;z-index:260;opacity:0;transform:translateY(-4px) scale(.97);transition:opacity .15s ease,transform .15s ease}
.pop-confirm.show{opacity:1;transform:none}
.pop-confirm .pop-msg{font-size:13.5px;line-height:1.6;color:var(--ink)}
.pop-confirm .pop-btns{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}
.pop-confirm .pop-btns button{border:none;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:transform .12s ease,opacity .12s ease}
.pop-confirm .pop-btns button:active{transform:scale(.94)}
.pop-confirm .pop-cancel{background:var(--line-soft);color:var(--ink-2)}
.pop-confirm .pop-ok{background:var(--brand);color:#fff}
.undo-bar{position:fixed;left:50%;bottom:88px;transform:translate(-50%,16px);background:rgba(38,38,46,.96);color:#fff;border-radius:999px;padding:10px 10px 10px 18px;display:flex;align-items:center;gap:14px;font-size:13.5px;z-index:250;opacity:0;transition:opacity .18s ease,transform .18s ease;box-shadow:0 12px 30px rgba(38,38,46,.35);max-width:92vw}
.undo-bar.show{opacity:1;transform:translate(-50%,0)}
.undo-bar .undo-btn{border:none;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:13.5px;border-radius:999px;padding:6px 16px;cursor:pointer;transition:transform .12s ease}
.undo-bar .undo-btn:active{transform:scale(.93)}
#alertBanners{position:fixed;top:0;left:0;right:0;z-index:240;display:flex;flex-direction:column;gap:6px;padding:8px 10px 0;pointer-events:none}
.alert-banner{pointer-events:auto;display:flex;align-items:center;gap:8px;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.5;box-shadow:0 8px 24px rgba(38,38,46,.18);animation:abIn .22s ease}
@keyframes abIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.alert-banner .ab-text{flex:1;color:var(--ink)}
.alert-banner.lv-info{background:var(--brand-soft);border:1px solid var(--brand-mist)}
.alert-banner.lv-warn{background:#FDF3E0;border:1px solid var(--warn);color:#7A4A03}
.alert-banner.lv-danger{background:#FDECEC;border:1px solid var(--danger);color:#8F1D21}
.alert-banner .ab-act{border:none;background:var(--brand);color:#fff;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:700;cursor:pointer;flex:none}
.alert-banner .ab-act:active{transform:scale(.94)}
.alert-banner .ab-close{border:none;background:transparent;color:inherit;opacity:.55;font-size:13px;cursor:pointer;flex:none;padding:2px 4px}
.draft-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-soft);border:1px dashed var(--accent-deep);color:var(--accent-ink);border-radius:12px;padding:9px 12px;font-size:13px;font-weight:700;margin-bottom:12px}
.draft-bar .draft-acts{display:flex;gap:8px;flex:none}
.draft-bar button{border:none;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;cursor:pointer}
.draft-bar .draft-keep{background:var(--accent-deep);color:#fff}
.draft-bar .draft-drop{background:#fff;color:var(--accent-ink);border:1px solid var(--accent-deep)}
.fav-remove{position:absolute;top:8px;left:8px;border:none;background:rgba(38,38,46,.82);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:4px 10px;cursor:pointer;z-index:2;transition:transform .12s ease}
.fav-remove:active{transform:scale(.93)}
.ml-del{flex:none;border:1px solid var(--danger);background:#fff;color:var(--danger);font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px;margin-left:8px;cursor:pointer}
.ml-del:active{transform:scale(.93)}
/* ================= 弹出层补齐轮 P0：聊天固定一屏 + 紧凑会话行 + 键盘适配 ================= */
:root{--kbh:0px;--vvh:100dvh;--voff:0px}
/* 聊天类视图：整页固定一屏，页面本身不滚动——顶栏钉顶、消息区内部滚、输入区钉底。
   容器锚定「可视视口矩形」：top 跟 visualViewport.offsetTop、height 跟 visualViewport.height。
   根因（2026-10-25 键盘白屏）：iOS 微信 webview 弹键盘时可视视口整体上移（offsetTop 增长），
   旧写法只跟高度、容器仍锚在布局视口 top:0，整块被推出可视区 → 键盘上方全白。 */
.view.chat-fixed.active{position:fixed;left:0;right:0;top:var(--voff,0px);height:var(--vvh,100dvh);display:flex;flex-direction:column;padding-bottom:0;overflow:hidden;background:var(--bg);z-index:56;animation:none}
/* 热修四号：#view-chat/#view-ochat/#view-dmchat 的 ID 规则带 padding-bottom:86px
   （chat-fixed 之前的老遗产，为旧固定输入栏让位），特异性 (1,0,0) 压过上面
   .view.chat-fixed.active 的 padding-bottom:0 (0,3,0)——固定一屏后输入栏
   已入流，该 padding 变成栏下 86px 死区：栏永远悬空、键盘态更显大片空白
   （真 Chromium 实测键盘态栏底 365 = 视口高 451 − 86）。以 ID 级特异性归零。 */
#view-chat.chat-fixed.active,#view-ochat.chat-fixed.active,#view-dmchat.chat-fixed.active,#view-msglist.chat-fixed.active{padding-bottom:0}
.view.chat-fixed .page-head,.view.chat-fixed .chat-peerbar,.view.chat-fixed .chat-status,.view.chat-fixed .cs-guard,.view.chat-fixed #ocOrderCardSlot,.view.chat-fixed .phrase-bar,.view.chat-fixed .plus-panel,.view.chat-fixed .msglist-tools{flex:none}
.view.chat-fixed .chat-page-box{flex:1;min-height:0;height:auto}
.view.chat-fixed #msgListBody{flex:1;min-height:0;overflow-y:auto}
.view.chat-fixed .chat-inputbar{position:static;transform:none;width:auto;flex:none}
.view.chat-fixed .emoji-panel{position:static;transform:none;width:auto;flex:none;margin:0 12px 8px}
/* 内容型整页视图：返回顶栏 sticky 钉住，内容滚动时不滚走 */
.page-head{position:sticky;top:0;z-index:35}
/* 键盘适配：底部弹层整体上移到键盘之上，确认按钮/错误条始终可见 */
.acc-mask{padding-bottom:var(--kbh,0px)}
.acc-sheet{max-height:min(82vh,calc(var(--vvh,100dvh) - 16px))}
.modal-mask{padding-bottom:calc(22px + var(--kbh,0px))}
.om-status{flex:none;font-size:11px;color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:2px 8px}
/* 订单群「联系陪玩」：固定等宽高圆形，不随卡片高度拉伸（站长 13:40） */
.om-btn{flex:none;align-self:center;width:40px;height:40px;min-width:40px;border-radius:50%;padding:0;font-size:17px;line-height:40px;text-align:center}
.notif-side{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
.ogroup-clear{border:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px;border-radius:999px;padding:2px 9px;cursor:pointer;line-height:1.5}
.ogroup-clear.off{opacity:.45;cursor:not-allowed}
.ogroup-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 12px 0;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.ogroup-tools span{font-size:11.5px;color:var(--muted)}
.ogroup-tools button{flex:none;border:1px solid var(--line);background:#fff;color:var(--brand);font-size:12px;font-weight:600;border-radius:999px;padding:5px 12px;cursor:pointer}
.od-step.on{color:var(--brand);font-weight:700}
.od-step.on::before{background:var(--brand)}
.od-kv{font-size:13px;line-height:2;color:var(--sub)}
.od-kv b{color:var(--ink)}
/* 对方信息条可点（P0 追加 8）：整块点按进老板卡/陪玩详情 */
.cp-click{display:flex;align-items:center;gap:9px;flex:1;min-width:0;cursor:pointer}
/* 资料编辑小窗：一字段一行（标签在上、整行输入、高 ≥44px 好操作） */
.pe-sheet label{display:block;font-size:13px;color:var(--sub);margin:12px 0 5px}
.pe-sheet input,.pe-sheet select{width:100%;min-height:44px;font-size:15px}
.acc-sheet input:not(.pin6-box):not([type="checkbox"]):not([type="radio"]):not([type="file"]),.acc-sheet select{min-height:44px;font-size:15px}
/* 键盘态：置顶让高——对方条/状态行/常用语/进度条收起，订单卡留一行摘要（标题+状态+金额本就在一行内） */
body.kb-open .view.chat-fixed .chat-peerbar,body.kb-open .view.chat-fixed .chat-status,body.kb-open .view.chat-fixed .phrase-bar,body.kb-open .view.chat-fixed .cs-guard{display:none}
body.kb-open .view.chat-fixed #ocOrderCardSlot .opg{display:none}
body.kb-open .view.chat-fixed .oc-order-card{margin-top:6px;padding:6px 10px}
.chat-complain{float:right;color:var(--danger);font-size:13px;cursor:pointer;padding:2px 4px}
.chat-complain:active{transform:scale(.94)}
.claimok-rules{margin:14px auto 4px;max-width:340px;text-align:left;background:var(--brand-soft);border:1px solid var(--brand-mist);border-radius:12px;padding:12px 14px}
.claimok-rules b{color:var(--brand-ink);font-size:14px}
.claimok-rules p{margin:6px 0 0;font-size:12.5px;line-height:1.8;color:var(--ink2)}
/* 订单进度（快递轨迹条） */
.opg{margin:10px 0 2px}
.opg-chain{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-top:6px;font-size:12px}
.opg-cs{color:#B9BDD2}
.opg-cs.done{color:var(--brand);font-weight:600}
.opg-cs.cur{color:var(--brand-ink);font-weight:800;background:var(--brand-soft);border-radius:6px;padding:1px 5px}
.opg-arrow{color:#C9CDD6;font-size:11px}
.opg-chain.dead{color:#9AA0AE;font-weight:600}
.opg-term{padding:9px 12px;border-radius:10px;background:#F1F2F5;color:#9AA0B8;font-size:12.5px;font-weight:600}
.opg-term.warn{background:#FDF3E3;color:#9A6A12}
.opg-compact{margin:6px 10px 8px}
.opg-compact .opg-chain{font-size:11px}
.od-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.od-acts .btn-orange,.od-acts .btn-black{flex:1;min-width:120px}
.od-review-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding:9px 12px;background:var(--accent-soft);border-radius:10px;font-size:13px}
.od-mini{padding:5px 12px;font-size:12.5px}
.ord-card-view{cursor:pointer}
.ord-card-view:active{transform:scale(.99)}
.wb-notif-head .btn-orange{flex:none;padding:6px 12px;font-size:12.5px}
/* ===== 老板订单列表行式（P0-20/21/22） ===== */
.ord-search{padding:2px 12px 8px}
.ord-search input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font-size:14px;background:#fff;color:var(--ink)}
.ord-l1{display:flex;align-items:center;gap:6px}
.ord-title{font-size:15px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-status{flex:none;font-size:12.5px;font-weight:700}
.ord-status.st-pay{color:var(--warn)}
.ord-status.st-run{color:var(--brand)}
.ord-status.st-check{color:var(--accent-deep)}
.ord-status.st-done{color:var(--ok)}
.ord-status.st-cancel{color:var(--ink3)}
.ord-l2{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:5px}
.ord-meta{font-size:12.5px;color:var(--ink3)}
.ord-amt{flex:none;font-size:19px;font-weight:800;color:var(--brand)}
.ord-refunded{flex:none;font-size:11.5px;color:var(--danger);margin-left:6px}
.ord-l3{display:flex;justify-content:space-between;gap:10px;margin-top:4px;font-size:12px;color:var(--ink3)}
.ord-foot{display:flex;justify-content:flex-end;border-top:1px solid var(--line2);margin-top:9px;padding-top:9px}
.ord-reorder{padding:6px 16px;font-size:13px}
.ord-empty{text-align:center;padding:26px 16px;color:var(--ink3)}
.ord-empty span{font-size:30px}
.ord-empty p{margin:8px 0 12px;font-size:13.5px}
.od-rules{margin-top:10px;padding:11px 13px;border-radius:10px;background:#F7F9FF;border:1px solid var(--line-soft)}
.od-rules b{font-size:13.5px;color:var(--ink)}
.od-rules p{margin:6px 0 0;font-size:12.5px;line-height:1.7;color:var(--sub)}
.od-group-strip{margin-top:10px;padding:11px 13px;border-radius:10px;background:var(--brand-soft);border:1px solid var(--brand-mist);color:var(--brand-ink);font-size:13.5px;font-weight:600;cursor:pointer}
.od-group-strip:active{transform:scale(.99)}
.od-group-strip.off{background:#F1F1F6;border-color:var(--line);color:var(--ink3);cursor:default;font-weight:500}
.tags span.on{background:var(--brand);color:#fff;border-color:var(--brand)}
/* 底部让过悬浮底栏（P0-20 连带）：tab 根页统一底部留白 */
#view-home,#view-category,#view-choose,#view-message,#view-desk{padding-bottom:96px}
/* ===== 未读绿点呼吸提醒（P0-23）+ 通知提示音沿用 playCsTone（P0-24） ===== */
.msg-pulse-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#22C55E;font-style:normal;pointer-events:none;animation:msgPulse 1.2s ease-in-out infinite;box-shadow:0 0 0 2px rgba(34,197,94,.18)}
.msg-pulse-dot.tab-dot{top:2px;left:calc(50% + 7px)}
.msg-pulse-dot.wb-dot{position:relative;display:inline-block;margin-left:5px;top:-6px}
@keyframes msgPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.78)}}
@media (prefers-reduced-motion: reduce){
.msg-pulse-dot{animation:none}
}
.tabs>div{position:relative}
/* ===== 制作同款（招商页） ===== */
.invest-hero{margin:14px 12px 0;border-radius:18px;padding:26px 20px;background:linear-gradient(135deg,#3F74E8,#598BFD 60%,#9AD4CB);color:#fff;box-shadow:0 12px 28px rgba(63,116,232,.35)}
.invest-hero h2{font-size:24px;line-height:1.45;margin:0 0 8px}
.invest-hero p{font-size:13px;opacity:.88;line-height:1.7;margin:0}
.invest-cards{margin:12px 12px 0;display:flex;flex-direction:column;gap:10px}
.invest-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.invest-card i{font-style:normal;font-size:24px;width:44px;height:44px;flex:none;border-radius:12px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}
.invest-card b{font-size:14.5px;color:var(--ink)}
.invest-card p{font-size:12.5px;color:var(--muted);line-height:1.65;margin:3px 0 0}
.invest-contact{margin:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.invest-contact h3{font-size:15px;margin:0 0 10px;color:var(--ink)}
/* 入驻卖点卡（打手版/店主版） */
.join-sell{margin-top:12px;background:linear-gradient(135deg,rgba(89,139,253,.10),rgba(53,179,201,.14));border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.join-sell b{font-size:13.5px;color:var(--ink)}
.join-sell p{font-size:12.5px;color:var(--ink-2);line-height:1.75;margin:4px 0 0}
.join-sell-owner b{font-size:15px;color:var(--brand)}
/* 预约单小标签（老板/陪玩/大厅同口径） */
.booking-tag{background:linear-gradient(90deg,#EAF0FA,#DCE6F5);color:var(--brand);border:1px solid rgba(89,139,253,.45)}
/* 成长档位徽章 + 礼物墙 */
.tier-chip{display:inline-block;font-size:10.5px;font-weight:700;color:#7A5200;background:linear-gradient(90deg,#FFF3D6,#FFE9A8);border:1px solid rgba(217,164,6,.5);border-radius:999px;padding:1px 7px;vertical-align:1px;white-space:nowrap}
.tier-prog{font-weight:600;color:var(--brand)}
.gift-wall{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.gift-chip{font-size:12px;background:var(--accent-soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--ink-2)}
.gift-time{font-size:11px;color:var(--faint);text-align:right;margin:-2px 0 6px}
/* ===== 清爽风格轮（2026-10-25）：消息页渐变头 + 游戏行包裹感（分类/选陪玩） ===== */
#view-message .page-head{background:radial-gradient(120% 110% at 8% -12%,rgba(89,139,253,.50),rgba(0,0,0,0) 58%),radial-gradient(130% 105% at 88% -8%,rgba(154,212,203,.85),rgba(0,0,0,0) 55%),radial-gradient(105% 90% at 50% 118%,rgba(53,179,201,.32),rgba(0,0,0,0) 62%),linear-gradient(180deg,#C7DBFE 0%,#E1F1ED 100%);border-bottom:0;border-radius:0 0 26px 26px}
#catGamesRail .game-tile img{background:#fff;padding:5px;border-radius:17px;width:56px;height:56px;box-shadow:0 2px 9px rgba(89,139,253,.07)}
#catGamesRail .game-tile .game-tile-fb{width:56px;height:56px;border:5px solid #fff;border-radius:17px;box-shadow:0 2px 9px rgba(89,139,253,.07)}
#catGamesRail .game-tile.on img,#catGamesRail .game-tile.on .game-tile-fb{box-shadow:0 0 0 2.5px var(--brand),0 2px 9px rgba(89,139,253,.12)}
#catGamesRail .game-tile.on .game-tile-name{display:inline-block;background:var(--brand);color:#fff;font-weight:600;border-radius:999px;padding:1px 9px}
#boosterGamesRail .game-tile .gt-ico{width:56px;height:56px;margin:0 auto;background:#fff;border-radius:17px;padding:5px;box-shadow:0 2px 9px rgba(89,139,253,.07);display:flex;align-items:center;justify-content:center}
#boosterGamesRail .game-tile .gt-ico img{width:100%;height:100%;border-radius:12px;object-fit:cover;display:block}
#boosterGamesRail .game-tile .gt-emoji{font-size:24px;line-height:1}
#boosterGamesRail .game-tile.on .gt-ico{box-shadow:0 0 0 2.5px var(--brand),0 2px 9px rgba(89,139,253,.12)}
#boosterGamesRail .game-tile.on>span{display:inline-block;background:var(--brand);color:#fff;font-weight:600;border-radius:999px;padding:1px 9px;margin-top:6px;font-size:11.5px}
/* 分类/选陪玩页顶渐变头（与 #view-desk 同一手法：视图顶部蓝紫渐变带，结构不动） */
#view-category{background:linear-gradient(180deg,#D9E7FA,var(--bg) 320px,var(--bg))}
#view-choose{background:linear-gradient(180deg,#D9E7FA,var(--bg) 320px,var(--bg))}
/* 双人单邀请搭档（2026-10-25）：待处理邀请卡 + 倒计时 + 行内动作 */
.duo-inv-card{border:1.5px solid var(--brand)}
.duo-inv-title{display:block;font-size:15px;margin:2px 0}
.duo-inv-line{font-size:12.5px;color:var(--muted);margin-top:2px}
.duo-inv-btns{display:flex;gap:8px;margin-top:10px}
.duo-inv-btns .btn-black,.duo-inv-btns .btn-orange{flex:1}
.duo-inv-left{color:#E8862B;font-weight:700;font-size:12.5px}
.wbo-duo{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
/* 只读预览模式标识条（风格第二步）：仅核验令牌后由 JS 注入，普通访问不存在 */
.xh-preview-bar{position:fixed;top:0;left:0;right:0;z-index:100000;background:linear-gradient(90deg,#598BFD,#35B3C9);color:#fff;font-size:13px;font-weight:700;text-align:center;padding:7px 10px;letter-spacing:.4px;box-shadow:0 2px 10px rgba(53,179,201,.35)}
body.xh-preview-on{padding-top:31px}
/* ===== AI 管家 · 小微（A 蓝青弥散） ===== */
.butler-head{background:linear-gradient(120deg,rgba(89,139,253,.20),rgba(53,179,201,.14) 55%,rgba(154,212,203,.18));}
.butler-ai-tag{margin-left:auto;background:var(--brand);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;letter-spacing:.4px}
.butler-guard{margin:12px 12px 0;background:linear-gradient(120deg,#EAF3FF,#EAFBF7);border:1px solid var(--brand-mist);color:var(--brand-ink);border-radius:12px;padding:9px 12px;font-size:12.5px;line-height:1.7}
.tp-dots{display:inline-flex;gap:3px}
.tp-dots i{width:5px;height:5px;border-radius:50%;background:var(--brand,#598BFD);display:block;animation:tpBreathe 1.1s ease-in-out infinite}
.tp-dots i:nth-child(2){animation-delay:.18s}
.tp-dots i:nth-child(3){animation-delay:.36s}
@keyframes tpBreathe{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
.exp-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.bt-good{flex:none;width:106px;background:#fff;border:1px solid var(--brand-mist);border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:0 4px 12px rgba(89,139,253,.10)}
.bt-good:active{transform:scale(.97)}
.bt-good-thumb{height:62px;background:linear-gradient(140deg,#EAF3FF,#E4F6F2);display:flex;align-items:center;justify-content:center;font-size:28px}
.bt-good-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.bt-good-name{font-size:12px;font-weight:600;color:var(--ink);line-height:1.35;padding:6px 8px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px}
.bt-good-price{padding:3px 8px 7px;color:#FF6A2B;font-weight:800;font-size:14px}
.bt-good-price small{font-size:11px;font-weight:600;margin-left:1px}
.butler-chips{display:flex;gap:8px;padding:9px 12px 2px;overflow-x:auto;scrollbar-width:none}
.butler-chips::-webkit-scrollbar{display:none}
.butler-links{display:flex;gap:8px;padding:8px 12px 4px;overflow-x:auto;scrollbar-width:none}
.butler-links::-webkit-scrollbar{display:none}
body.kb-open .view.chat-fixed .butler-guard,body.kb-open .view.chat-fixed .butler-chips,body.kb-open .view.chat-fixed .butler-links{display:none}
/* 分享卡（宣传素材工坊 · 前台） */
.share-card-modal{position:fixed;inset:0;z-index:1200;background:rgba(10,18,35,.62);display:none;align-items:center;justify-content:center;padding:18px}
.share-card-box{background:#fff;border-radius:20px;padding:16px;max-width:400px;width:100%;text-align:center;box-shadow:0 18px 50px rgba(18,35,63,.35)}
.share-card-box canvas{width:100%;max-width:340px;border-radius:12px}
.share-card-btns{display:flex;gap:10px;justify-content:center;margin-top:12px}
.share-card-btns .btn-orange,.share-card-btns .btn-black{flex:1;text-align:center}
.share-card-note{font-size:12px;color:var(--muted,#5a6b85);margin:10px 0 0}
/* ================= 打手专业版 + 双模式切换（2026-10-26） ================= */
/* 「我的」页双模式切换卡 */
.mode-card{margin:10px 12px 0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 12px;box-shadow:0 4px 14px rgba(89,139,253,.07)}
.mode-seg{display:flex;background:var(--line-soft);border-radius:999px;padding:3px;gap:3px}
.mode-seg span{flex:1;text-align:center;padding:8px 0;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:background .18s,color .18s}
.mode-seg span.on{background:linear-gradient(90deg,var(--brand),var(--accent));color:#fff;box-shadow:0 3px 10px rgba(89,139,253,.35)}
.mode-tip{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.6}
/* 专业版头图：A 蓝青弥散（品牌蓝/青/薄荷三色光晕，白字区改深字保可读） */
.pro-hero{position:relative;padding:14px 14px 12px;border-radius:0 0 22px 22px;overflow:hidden;background:
  radial-gradient(240px 150px at 8% -30px,rgba(53,179,201,.45),rgba(53,179,201,0) 70%),
  radial-gradient(300px 190px at 88% -50px,rgba(154,212,203,.55),rgba(154,212,203,0) 70%),
  radial-gradient(340px 220px at 55% -90px,rgba(89,139,253,.5),rgba(89,139,253,0) 72%),
  linear-gradient(180deg,#DCE9FD,#EFF4FB)}
.pro-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pro-top b{font-size:16.5px;color:var(--brand-ink);letter-spacing:.5px}
.pro-mode-back,.pro-refresh{font-size:13px;font-weight:700;color:var(--brand-deep);background:rgba(255,255,255,.75);border:1px solid rgba(89,139,253,.25);padding:6px 12px;border-radius:999px;cursor:pointer}
.wb-switch.pro-big{width:80px;height:46px;flex:none}
.wb-switch.pro-big i::after{width:38px;height:38px;left:4px;top:4px}
.wb-switch.pro-big input:checked + i::after{transform:translateX(34px)}
.pro-chip.on{background:linear-gradient(90deg,var(--brand),var(--accent));color:#fff;border-color:transparent}
.pro-chip.on em{background:rgba(255,255,255,.28);color:#fff;border:none}
.directed-tag{background:linear-gradient(90deg,var(--accent),var(--brand))}
/* 监督员「责令道歉」通告卡（皮肤 A 正式版式）：客服会话/订单群/小微
   三面共用，与普通聊天气泡明显区分——正式、醒目、独立成卡。 */
.sv-notice{margin:10px 12px;background:#FFF7F4;border:1.5px solid #E8B4A2;border-left:5px solid #C0392B;border-radius:14px;padding:12px 14px;box-shadow:0 4px 14px rgba(192,57,43,.08)}
.sv-head{display:flex;align-items:center;gap:7px}
.sv-ava{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#598BFD,#35B3C9);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.sv-name{font-weight:700;color:#22314F;font-size:14px}
.sv-tag{font-size:10px;color:#fff;background:#3A4A6B;border-radius:6px;padding:1px 6px}
.sv-title{margin-top:8px;font-size:16px;font-weight:800;color:#C0392B;letter-spacing:2px}
.sv-body{margin-top:6px;font-size:13.5px;line-height:1.65;color:#3A3A3A;white-space:pre-wrap}
.sv-meta{margin-top:8px;font-size:11px;color:#9A8F8A}
/* ===== 总部大聊天室（前台窄桥 100001）：房签 + AI/官方标 + 加载更早，与后台 wgRenderMessages 同口径、守皮肤 A ===== */
.wg-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px 2px;background:transparent}
.wg-tab.on{background:#598BFD;border-color:#598BFD;color:#fff;font-weight:600}
