/* ============================================================
   鑫掌门 V3.0 移动端 · 设计系统 (大厂商家App级)
   设计令牌 / 组件库 / 响应式 / 无障碍
   ============================================================ */
.h5-badge{display:inline-block;font-size:9px;background:var(--brand-soft);color:var(--brand);border-radius:3px;padding:0 4px;line-height:16px;vertical-align:middle;margin-left:2px}
.fnav .h5-badge{display:none}
:root{
  /* 品牌色 */
  --brand:#2b5cff; --brand-2:#16256b; --brand-3:#2347ff; --brand-soft:#eef3ff;
  /* 等级/财富色 */
  --gold:#caa24a; --gold-2:#e6c069;
  /* 中性 */
  --bg:#f4f6fb; --card:#ffffff;
  --text:#16181d; --sub:#8a90a0; --line:#eceef4; --line-2:#f1f3f8;
  /* 语义色 */
  --success:#16b364; --success-soft:#e7f8ef;
  --warn:#f5a623;   --warn-soft:#fdf3e0;
  --danger:#f5465c; --danger-soft:#fdeaec;
  --error:#f5465c; /* 兼容别名 */
  --purple:#7b5cff; --purple-soft:#f1ecff;
  /* 尺度 */
  --radius:16px; --radius-lg:22px;
  --shadow:0 6px 20px rgba(22,37,107,.06);
  --shadow-lg:0 14px 34px rgba(22,37,107,.12);
  --t-fast:150ms ease;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.hidden{display:none!important}
svg{display:block}
.ic{display:inline-block;vertical-align:middle;flex:none}

/* ---- 表单 ---- */
input,select,textarea{font-family:inherit;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;width:100%;font-size:15px;outline:none;background:#fff;color:var(--text);transition:border-color .2s,box-shadow .2s}
input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(43,92,255,.12)}
.btn{background:linear-gradient(135deg,var(--brand-3),#1f49e0);color:#fff;border:0;border-radius:12px;padding:14px;width:100%;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(43,92,255,.28);transition:transform .12s,box-shadow .2s,opacity .2s}
.btn:active{transform:translateY(1px) scale(.99);opacity:.92}
.btn-ghost{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px;color:var(--brand);font-size:14px;cursor:pointer;font-weight:600;transition:background .15s}
.btn-ghost:active{background:var(--brand-soft)}

/* ---- 通用卡片 / 区块标题 ---- */
.card{background:var(--card);border-radius:var(--radius);padding:18px;margin:14px 14px 0;box-shadow:var(--shadow);position:relative;content-visibility:auto;contain-intrinsic-size:auto 200px}
.card h3{font-size:15px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--text)}
.sec{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--text);margin:4px 14px 0}
.sec::before{content:"";width:4px;height:15px;border-radius:3px;background:linear-gradient(var(--brand-3),var(--brand-2))}

/* ============================================================
   登录
   ============================================================ */
.login{position:fixed;inset:0;background:linear-gradient(160deg,#2347ff 0%,#16256b 58%,#0c1640 100%);display:flex;flex-direction:column;overflow:hidden}
.login::after{content:"";position:absolute;top:-15%;right:-25%;width:75%;height:42%;background:radial-gradient(circle,rgba(255,255,255,.20),transparent 70%);filter:blur(8px);pointer-events:none}
.login-head{flex:0 0 auto;padding:calc(60px + var(--safe-t)) 28px 22px;color:#fff;text-align:center;position:relative;z-index:1}
.login-logo{width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:inline-flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;margin-bottom:14px;border:1px solid rgba(255,255,255,.28);box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden;padding:0}
.login-logo img{width:100%;height:100%;display:block;object-fit:cover}
.login-title{font-size:25px;font-weight:800;letter-spacing:.5px}
.login-sub{opacity:.82;margin-top:6px;font-size:13px}
.login-card{flex:1;background:#fff;border-radius:26px 26px 0 0;margin-top:auto;padding:30px 24px calc(34px + var(--safe-b));box-shadow:0 -12px 40px rgba(0,0,0,.22);position:relative;z-index:1}
.li{position:relative;margin-bottom:14px}
.li-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--sub);display:flex}
.li input{padding-left:42px;background:var(--line-2)}
.login-card .btn{margin-top:6px}
.msg{color:var(--danger);text-align:center;min-height:18px;font-size:13px;margin-top:10px}
.hint{margin-top:16px;color:var(--sub);font-size:12px;text-align:center;line-height:1.7}

/* ============================================================
   主框架
   ============================================================ */
.app{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg)}
.topbar{position:sticky;top:0;z-index:20;height:54px;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:17px;font-weight:800;color:var(--text)}
.badge{background:var(--brand-soft);color:var(--brand);padding:4px 12px;border-radius:14px;font-size:12px;font-weight:700;white-space:nowrap}
.view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(86px + var(--safe-b))}
.view::-webkit-scrollbar{width:0}

/* 底栏 */
.tabbar{position:sticky;bottom:0;display:flex;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:7px 0 calc(7px + var(--safe-b));z-index:30}
.tab{flex:1;text-align:center;color:var(--sub);font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;transition:color .2s}
.tab .ico{width:24px;height:24px}
.tab svg{transition:transform .2s}
.tab.active{color:var(--brand)}
.tab.active svg{transform:translateY(-1px) scale(1.1)}
.tab.active::before{content:"";position:absolute;top:0;width:24px;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}

/* 等级徽章 */
.lv-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:20px;padding:0 8px;border-radius:10px;font-size:12px;font-weight:800;line-height:1}
.lv-blue{color:var(--brand);background:var(--brand-soft)}
.lv-purple{color:var(--purple);background:var(--purple-soft)}
.lv-super{color:#1a1408;background:linear-gradient(135deg,var(--gold-2),var(--gold));box-shadow:0 2px 8px rgba(202,162,74,.35)}
/* 交易等级 L1-L6 阶梯紧凑配色（小徽章 lv-badge 基底） */
.lv-1{color:#0d9488;background:#d8f3f0}
.lv-2{color:#2563eb;background:#dbeafe}
.lv-3{color:#4f46e5;background:#e0e7ff}
.lv-4{color:#7c3aed;background:#ede9fe}
.lv-5{color:#c026a3;background:#fce7f3}
.lv-6{color:#9a6a00;background:#fdf2d4}
/* 职称荣誉徽章：勋章 + 职称，每级专属渐变质感 */
.lv-honor{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 12px 0 6px;border-radius:14px;font-weight:800;font-size:13px;color:#fff;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.10);white-space:nowrap;vertical-align:middle}
.lv-honor .lv-medal{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.28);font-style:normal;font-size:12px;font-weight:800}
.lv-honor .lv-title{letter-spacing:.5px}
.lv-honor.lv-1{background:linear-gradient(135deg,#14b8a6,#0d9488)}
.lv-honor.lv-2{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.lv-honor.lv-3{background:linear-gradient(135deg,#6366f1,#4f46e5)}
.lv-honor.lv-4{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.lv-honor.lv-5{background:linear-gradient(135deg,#db2777,#c026a3)}
.lv-honor.lv-6{background:linear-gradient(135deg,#e0b341,#b8860b);box-shadow:0 3px 12px rgba(184,134,11,.42)}
.lv-honor.lv-super{background:linear-gradient(135deg,var(--gold-2),var(--gold));box-shadow:0 3px 12px rgba(202,162,74,.42);color:#1a1408}

/* ============================================================
   Hero 头图
   ============================================================ */
.hero{margin:14px 14px 0;border-radius:var(--radius-lg);padding:20px 20px 22px;color:#fff;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--brand-3) 0%,var(--brand) 45%,var(--brand-2) 100%);box-shadow:0 14px 30px rgba(43,92,255,.28)}
.hero::after{content:"";position:absolute;right:-30px;top:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%)}
.hero-top{display:flex;align-items:flex-start;justify-content:space-between;position:relative;z-index:1}
.hero-hi{font-size:14px;opacity:.85}
.hero-name{font-size:20px;font-weight:800;margin-top:2px;display:flex;align-items:center;gap:8px}
.hero-avatar{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex:none}
.hero-metric{margin-top:18px;position:relative;z-index:1}
.hero-label{font-size:12.5px;opacity:.82}
.hero-num{font-size:32px;font-weight:800;margin-top:4px;letter-spacing:.3px}
.hero-sub{font-size:12px;opacity:.7;margin-top:6px}
/* 首页 Hero 直营/团队交易量拆分 */
.hero-split{display:flex;align-items:stretch;margin-top:14px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:10px 6px;backdrop-filter:blur(2px)}
.hero-split .hs-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2px 4px}
.hero-split .hs-lbl{font-size:11px;opacity:.85;margin-bottom:4px;white-space:nowrap}
.hero-split .hs-val{font-size:16px;font-weight:800;color:#fff;letter-spacing:.2px}
.hero-split .hs-sep{width:1px;background:rgba(255,255,255,.28);margin:4px 0}
.hero-split .hs-item{cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}
.hero-split .hs-item:active{background:rgba(255,255,255,.22)}
.hero-split .hs-go{margin-top:6px;font-size:11px;font-weight:600;color:#fff;opacity:.92;white-space:nowrap}

/* 浮起数据卡 */
.float-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:-18px 14px 0;position:relative;z-index:2}
.fcard{background:#fff;border-radius:14px;padding:14px 10px;box-shadow:var(--shadow-lg);text-align:center}
.fic{color:var(--brand);display:flex;justify-content:center;margin-bottom:6px}
.fnum{font-size:17px;font-weight:800;color:var(--text)}
.flbl{font-size:12px;color:var(--sub);margin-top:2px}

/* 首页轮播图（今日交易-商户量-代理数 下方） */
.banner-slot{margin:14px 14px 0}
.banner{position:relative;border-radius:14px;overflow:hidden;background:#eef1f7;box-shadow:var(--shadow)}
.banner-track{display:flex;transition:transform .45s ease;width:100%}
.banner-slide{flex:0 0 100%;position:relative;width:100%;padding-top:56.25%;cursor:pointer;overflow:hidden}
.banner-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.banner-cap{position:absolute;left:12px;bottom:12px;right:12px;color:#fff;font-size:13px;font-weight:600;line-height:1.4;text-shadow:0 1px 5px rgba(0,0,0,.55)}
.banner-cap::before{content:"";position:absolute;left:-12px;right:-12px;bottom:-12px;height:48px;background:linear-gradient(transparent,rgba(0,0,0,.5));z-index:-1;border-bottom-left-radius:14px;border-bottom-right-radius:14px}
.banner-dots{position:absolute;right:12px;bottom:12px;display:flex;gap:5px;z-index:2}
.banner-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);transition:all .25s}
.banner-dots i.on{background:#fff;width:16px;border-radius:3px}

/* 快捷入口 */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 14px 0}
.q{background:#fff;border-radius:14px;padding:14px 6px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;transition:transform .12s,box-shadow .2s}
.q:active{transform:translateY(1px);box-shadow:var(--shadow-lg)}
.q .ic{color:var(--brand);background:var(--brand-soft);width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center}
.q span{font-size:12.5px;font-weight:600;color:var(--text)}

/* 图表卡 */
.chart-card{margin:14px 14px 0}
.chart-wrap{position:relative;width:100%}
.chart-wrap canvas{width:100%!important}

/* ============================================================
   进件中心
   ============================================================ */
/* 通道品牌调色板：每个通道固定一个稳定品牌色，logo 加载失败时填色块 + 首字 */
.ch-logo.ch-star{background:linear-gradient(135deg,#ffe082,#ffb74d);color:#fff}
.ch-logo.ch-huifu{background:linear-gradient(135deg,#1677ff,#0d47a1);color:#fff}
.ch-logo.ch-lakala{background:linear-gradient(135deg,#ff4d4f,#c62828);color:#fff}
.ch-logo.ch-sheng{background:linear-gradient(135deg,#13c2c2,#00695c);color:#fff}
.ch-logo.ch-leshua{background:linear-gradient(135deg,#722ed1,#39145a);color:#fff}
.ch-logo.ch-suixing{background:linear-gradient(135deg,#fa8c16,#ad4e00);color:#fff}
.ch-logo.ch-huilaimi{background:linear-gradient(135deg,#52c41a,#237804);color:#fff}
.ch-logo.ch-fallback{background:linear-gradient(135deg,#5b6b8c,#2b3a55);color:#fff}

/* 三列网格 + 上下结构：图标在上，名称在下 */
.ch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ch-card{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--line-2);border:1px solid transparent;border-radius:14px;padding:14px 8px;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;min-height:118px;justify-content:center}
.ch-card:active{transform:scale(.96);border-color:var(--brand);background:var(--brand-soft)}
.ch-card .ch-logo{width:54px;height:54px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-weight:800;font-size:20px;letter-spacing:-.5px;box-shadow:0 4px 10px rgba(20,30,60,.08)}
.ch-card .ch-logo img{width:100%;height:100%;border-radius:14px;object-fit:cover;background:#fff}
.ch-card .ch-logo svg{display:none;width:24px;height:24px;color:#fff}
.ch-card .ch-logo.no img{display:none}
.ch-card .ch-logo.no svg{display:block;color:#fff}
.ch-card .ch-logo-text{font-size:22px;color:#fff;font-weight:800;line-height:1}
.ch-name{font-size:13px;font-weight:700;line-height:1.25;text-align:center;color:var(--text);width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.h5-badge{font-size:9px;background:var(--brand-soft);color:var(--brand);border-radius:3px;padding:0 4px;line-height:14px;vertical-align:middle;margin-left:3px;display:inline-block}
.onb-policy{display:flex;align-items:center;gap:12px;padding:14px;background:linear-gradient(135deg,#f2f5ff,#eaf0ff);border-radius:12px;cursor:pointer;transition:transform .12s,box-shadow .15s}
.onb-policy:active{transform:scale(.98);box-shadow:0 4px 14px rgba(60,80,180,.18)}
.onb-policy-ic{width:42px;height:42px;border-radius:11px;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.onb-policy-main{flex:1;min-width:0}
.onb-policy-t{font-size:14.5px;font-weight:700;color:var(--text);line-height:1.25}
.onb-policy-s{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.3}
.onb-policy-chev{color:var(--sub);flex:none;display:inline-flex}

/* chip 用的 ch-logo（在交易筛选 chip 里继续走横向）：保持小尺寸 */
.ch-card .h5-badge{display:none}
.ch-card:hover.has-h5 .ch-name::after{content:""}
.ch-cname{font-size:13px;font-weight:700;flex:1;line-height:1.3;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.mch{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line-2)}
.mch:last-child{border-bottom:0;padding-bottom:0}
.mch:first-child{padding-top:0}
.mch-ic{width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.mch-main{flex:1;min-width:0}
.mch-name{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mch-sub{font-size:12px;color:var(--sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mch-btn{padding:8px 14px;flex:none}
.mch-chs{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mch-btns{display:flex;flex-direction:column;gap:6px;flex:none}

/* 一键复用渠道选择器 */
.reuse-ch-list{display:flex;flex-direction:column;gap:8px}
.reuse-ch{display:flex;align-items:center;gap:12px;padding:12px;border:1.5px solid var(--line-2);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s,transform .12s}
.reuse-ch:active{transform:scale(.98);border-color:var(--brand);background:var(--brand-soft)}
.reuse-ch-info{flex:1;min-width:0}
.reuse-ch-name{font-size:14.5px;font-weight:700;color:var(--text)}
.reuse-ch-tip{font-size:12px;color:var(--sub);margin-top:2px}
.reuse-ch-go{color:var(--sub);flex:none}
.reuse-prefill{background:var(--bg-2);border-radius:10px;padding:2px 14px;margin-bottom:10px}
.reuse-info{font-size:12.5px;color:var(--brand);background:var(--brand-soft);border-radius:8px;padding:8px 12px;margin-bottom:12px}
.arc-ch-title{font-size:13px;font-weight:700;color:var(--sub);margin:14px 0 4px}

/* ============================================================
   物料商城
   ============================================================ */
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 14px 0}
.pcard{background:#fff;border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .12s,box-shadow .2s}
.pcard:active{transform:translateY(1px);box-shadow:var(--shadow-lg)}
.pimg{width:100%;height:150px;border-radius:12px;background:linear-gradient(135deg,var(--brand-soft),#fff);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:10px;overflow:hidden}
.pname{font-size:14px;font-weight:700;line-height:1.35}
.pcat{font-size:11.5px;color:var(--sub);margin-top:3px}
.prow{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:6px}
/* 物料商城商品卡片：库存信息改为「金额」正下方垂直排列，避免窄屏下库存药丸被挤出卡片边界 */
.prow.prow-stack{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;margin-top:10px}
.prow.prow-stack .pprice{width:100%}
.prow.prow-stack .pill{white-space:nowrap}
.pprice{font-size:16px;font-weight:800;color:var(--danger)}
.pprice small{font-size:11px;font-weight:600}

/* 状态药丸 */
.pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:11px;font-size:11.5px;font-weight:700;white-space:nowrap}
.pill.ok{background:var(--success-soft);color:var(--success)}
.pill.no{background:var(--warn-soft);color:#b9781a}
.pill.info{background:var(--brand-soft);color:var(--brand)}

/* ============================================================
   我的资产
   ============================================================ */
.hero-asset{background:linear-gradient(135deg,#1a2b66 0%,#16256b 55%,#0c1640 100%)}
.accts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 14px 0}
.acct{background:#fff;border-radius:14px;padding:14px 12px;box-shadow:var(--shadow)}
.acct-top{font-size:12px;color:var(--sub);display:flex;align-items:center;gap:6px}
.acct-dot{width:8px;height:8px;border-radius:50%;flex:none}
.acct-dot.d{background:var(--brand)}
.acct-dot.m{background:var(--purple)}
.acct-dot.r{background:var(--gold)}
.acct-num{font-size:18px;font-weight:800;margin-top:8px;color:var(--text);word-break:break-all}

/* 提现记录行 */
.wd-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line-2)}
.wd-row:last-child{border-bottom:0}
.wd-row .wk{font-size:13.5px;font-weight:600}
.wd-row .wv{font-size:14.5px;font-weight:800}

/* ============================================================
   个人中心
   ============================================================ */
.profile{display:flex;align-items:center;gap:14px;margin:14px 14px 0;background:linear-gradient(135deg,var(--brand-3),var(--brand-2));border-radius:var(--radius-lg);padding:20px;color:#fff;box-shadow:0 12px 26px rgba(43,92,255,.26)}
.p-avatar{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;flex:none;color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3)}
.p-avatar.lv-super{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#1a1408}
.p-avatar.lv-purple{background:var(--purple)}
.p-avatar.lv-1{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#fff}
.p-avatar.lv-2{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}
.p-avatar.lv-3{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}
.p-avatar.lv-4{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}
.p-avatar.lv-5{background:linear-gradient(135deg,#db2777,#c026a3);color:#fff}
.p-avatar.lv-6{background:linear-gradient(135deg,#e0b341,#b8860b);color:#fff}
.p-info{flex:1;min-width:0}
.p-name{font-size:19px;font-weight:800;display:flex;align-items:center;gap:8px}
.p-name .lv-badge{background:rgba(255,255,255,.22);color:#fff}
.p-no{font-size:12.5px;opacity:.8;margin-top:5px}

.mrow{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line-2)}
.mrow:last-child{border-bottom:0;padding-bottom:0}
.mrow:first-child{padding-top:0}
.mk{display:flex;align-items:center;gap:9px;color:var(--sub);font-size:14px}
.mk .ic{color:var(--brand)}
.mv{font-size:14.5px;font-weight:700;color:var(--text)}
.mrow.sub{cursor:pointer;transition:background var(--t-fast),padding var(--t-fast)}
.mrow.sub:active{background:var(--line-2)}
.mrow.sub:hover{background:var(--line-2)}
.update-row{display:flex;align-items:center;gap:10px;padding:14px 0 2px}
.upd-btn{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--brand-2),var(--brand));border:none;border-radius:11px;padding:9px 15px;cursor:pointer;transition:transform .15s var(--t-fast),opacity .15s var(--t-fast);box-shadow:0 4px 14px rgba(37,99,235,.28)}
.upd-btn:active{transform:scale(.97)}
.upd-btn:disabled{opacity:.6;cursor:default;transform:none}
.update-status{font-size:13px;color:var(--sub)}
.ms{color:var(--text);font-size:14.5px;font-weight:600}
.mrow.sub .mchev{margin-left:8px}

.menu{margin:14px 14px 0;padding:6px 18px}
.mitem{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line-2);font-size:15px;font-weight:600;cursor:pointer}
.mitem:last-child{border-bottom:0}
.mitem .ic{color:var(--brand)}
.mchev{margin-left:auto;color:var(--sub);display:flex}
.logout{margin:14px 14px 0;width:calc(100% - 28px);color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}
.logout:active{background:#fbdde1}

/* ============================================================
   弹窗 / Toast / 骨架屏
   ============================================================ */
.modal-mask{position:fixed;inset:0;background:rgba(10,16,40,.5);backdrop-filter:blur(2px);display:flex;align-items:flex-end;z-index:50;animation:fade .2s ease}
.modal{background:#fff;width:100%;border-radius:22px 22px 0 0;padding:22px 20px calc(22px + var(--safe-b));max-height:88vh;overflow:auto;animation:slide .26s cubic-bezier(.2,.8,.2,1)}
.modal h3{margin-bottom:18px;font-size:17px;font-weight:800}
/* 登录/首页更新提示弹窗 */
.xzm-update-notes{font-size:14px;color:var(--sub);line-height:1.6;margin-bottom:6px;white-space:pre-wrap}
.xzm-update-force{font-size:13px;color:#e23;font-weight:700;margin-bottom:4px}
/* 首页强弹窗通知 */
.xzm-popup-img{width:100%;border-radius:14px;overflow:hidden;margin-bottom:12px;background:#f3f5fb}
.xzm-popup-img img{width:100%;display:block}
.xzm-popup-content{font-size:14px;color:var(--text);line-height:1.7;white-space:normal;word-break:break-word}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes slide{from{transform:translateY(100%)}to{transform:translateY(0)}}
.field{margin-bottom:14px}
.field label{display:block;color:var(--sub);font-size:13px;margin-bottom:7px;font-weight:600}

.toast{position:fixed;top:calc(18px + var(--safe-t));left:50%;transform:translateX(-50%);background:rgba(22,24,29,.92);color:#fff;padding:11px 20px;border-radius:12px;z-index:99;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);animation:fade .2s ease;max-width:80%;text-align:center}
.toast.err{background:rgba(245,70,92,.95)}

.sk-wrap{padding:14px}
.sk{background:linear-gradient(90deg,#eceef4 25%,#f6f8fc 37%,#eceef4 63%);background-size:400% 100%;animation:shimmer 1.3s infinite;border-radius:12px;margin-bottom:12px}
.sk-line{height:16px;width:55%}
.sk-card{height:120px}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* 顶部加载进度条：板块切换即时反馈，消除"白屏"观感 */
#pbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;background:linear-gradient(90deg,#3b82f6,#22d3ee);opacity:0;transition:width .25s ease,opacity .2s;box-shadow:0 0 8px rgba(59,130,246,.6);pointer-events:none}
#pbar.on{opacity:1;width:78%}
#pbar.done{width:100%;opacity:0;transition:width .15s ease,opacity .35s ease .08s}

.empty{text-align:center;color:var(--sub);font-size:13px;padding:26px 0}
.empty .ic{color:var(--line);margin:0 auto 8px}

/* ── 进件草稿箱 ── */
.draft{display:flex;align-items:flex-start;gap:10px;background:var(--card);border-radius:13px;padding:13px 14px;margin-bottom:10px;box-shadow:var(--shadow)}
.draft-check{margin-top:13px;flex:0 0 auto}
.draft-check input{width:18px;height:18px;accent-color:var(--brand,#3b7cff)}
.draft-main{flex:1 1 auto;min-width:0}
.draft-name{font-size:15px;font-weight:700;color:var(--text)}
.draft-sub{font-size:12px;color:var(--sub);margin-top:2px}
.draft-prog{height:5px;background:var(--line,#eef1f6);border-radius:4px;margin:8px 0 6px;overflow:hidden}
.draft-prog-bar{height:100%;background:linear-gradient(90deg,#4f9bff,#3b7cff);border-radius:4px;transition:width .25s}
.draft-meta{font-size:11px;color:var(--sub)}
.draft-btns{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;margin-top:6px}
.draft-resume{background:linear-gradient(135deg,#4f9bff,#3b7cff);color:#fff;border:0;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.draft-resume:active{opacity:.9}
.draft-del{font-size:12px;padding:5px 12px}
.draft-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:10px;border-top:1px dashed var(--line,#eef1f6)}
.draft-all{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;cursor:pointer}
.draft-all input{width:16px;height:16px;accent-color:var(--brand,#3b7cff)}
#draftDelSel{width:auto;padding:9px 16px;font-size:14px}

/* ============================================================
   管理页（代理商 / 商户）
   ============================================================ */
.scope-bar{display:flex;align-items:center;gap:8px;margin:14px 14px 0;color:var(--sub);font-size:13px;font-weight:600}
.scope-bar .pill{background:var(--brand-soft);color:var(--brand)}
.scope-period{margin-left:auto;color:var(--brand);font-weight:700}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 14px 0}
.tile{background:#fff;border-radius:14px;padding:14px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.tile .t-label{font-size:12.5px;color:var(--sub);font-weight:600}
.tile .t-val{font-size:19px;font-weight:800;margin-top:6px;color:var(--text)}
.tile .t-sub{font-size:11.5px;color:var(--sub);margin-top:3px}
.tile .t-ic{position:absolute;right:-8px;bottom:-8px;color:var(--line-2);opacity:.45}
.search{position:relative;margin:14px 14px 0}
.search .li-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--sub);display:flex}
.search input{padding-left:40px;background:#fff}
.acard{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line-2)}
.acard:last-child{border-bottom:0;padding-bottom:0}
.acard:first-child{padding-top:0}
.acard-ic{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;flex:none}
.acard-main{flex:1;min-width:0}
.acard-name{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:7px}
.acard-sub{font-size:12px;color:var(--sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acard-flow{text-align:right;flex:none;min-width:84px}
.acard-tag{flex:none;align-self:center;margin-left:8px;border:1px solid var(--brand,#2b5cff);background:#eef3ff;color:var(--brand,#2b5cff);border-radius:9px;padding:6px 11px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.acard-tag:active{background:var(--brand,#2b5cff);color:#fff}
.acard-flow .f1{font-size:14.5px;font-weight:800;color:var(--brand)}
.acard-flow .f2{font-size:11.5px;color:var(--sub);margin-top:3px}

/* 联合收单政策（替代原办卡贷款入口） */
.uacard{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:14px;margin:10px 14px;box-shadow:0 1px 4px rgba(20,30,60,.05);cursor:pointer}
.uacard.off{opacity:.66}
.uacard-ic{width:40px;height:40px;border-radius:10px;background:#eef2ff;color:#2b5cff;display:flex;align-items:center;justify-content:center;flex:none}
.uacard-main{flex:1;min-width:0}
.uacard-name{font-size:15px;font-weight:600;color:#1a2233}
.uacard-s{font-size:12px;color:#6b7686;margin-top:2px}
.uacard-tag{flex:none;font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600}
.uacard.on .uacard-tag{background:#e6f7ee;color:#16b364}
.uacard.off .uacard-tag{background:#f1f3f8;color:#9aa3b2}
.ua-imgs{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.ua-img{width:100%;border-radius:10px;display:block}
.ua-content{font-size:14px;line-height:1.7;color:#33405a}

/* ============================================================
   分享推广（海报 + 链接）
   ============================================================ */
.poster-wrap{margin:12px 14px 0;background:#fff;border-radius:16px;padding:14px;box-shadow:var(--shadow);text-align:center}
.poster-hint{font-size:12.5px;color:var(--sub);margin-bottom:8px;display:flex;align-items:center;justify-content:center;gap:8px}
.poster-stage{overflow:hidden;touch-action:pan-y;border-radius:12px;cursor:grab;user-select:none}
.poster-track{display:flex;transition:transform .35s cubic-bezier(.2,.7,.2,1);will-change:transform}
.poster-slide{flex:0 0 100%;position:relative;padding:0 4px;box-sizing:border-box}
.poster-tag{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:rgba(20,42,132,.78);color:#fff;font-size:12px;font-weight:600;padding:4px 12px;border-radius:999px;letter-spacing:.5px}
.poster-loading{color:var(--sub);font-size:13px;padding:48px 0;min-height:220px;display:flex;align-items:center;justify-content:center}
.poster-img{width:100%;max-width:300px;max-height:520px;object-fit:contain;border-radius:12px;display:block;margin:0 auto;box-shadow:0 8px 22px rgba(20,42,132,.18);background:#f6f7fb}
.dots{display:inline-flex;gap:5px;margin-left:6px}
.dots .dot{width:7px;height:7px;border-radius:50%;background:var(--line-2);transition:.2s}
.dots .dot.on{width:18px;border-radius:4px;background:var(--brand)}
.share-acts{display:grid;gap:10px;margin:14px 14px 0}
.share-acts-4{grid-template-columns:repeat(4,1fr)}
.sbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:14px 4px;font-size:12.5px;font-weight:600;color:var(--text);cursor:pointer;transition:.15s;box-shadow:0 2px 8px rgba(20,42,132,.06)}
.sbtn:active{transform:translateY(1px)}
.sbtn .ic-sq{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--c,var(--brand));box-shadow:0 4px 12px color-mix(in srgb, var(--c,var(--brand)) 35%, transparent)}
.sbtn .ic-sq svg{color:#fff}
.sbtn .ic{color:var(--brand);width:20px;height:20px}
.tip{font-size:12px;color:var(--sub);line-height:1.6;margin:12px 16px 0}

/* 代理授权书 */
.letter{margin:12px 14px 0;background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:22px 18px 18px;box-shadow:var(--shadow);position:relative}
.letter-title{text-align:center;font-size:22px;font-weight:800;letter-spacing:4px;color:var(--text)}
.letter-no{text-align:center;font-size:12px;color:var(--sub);margin-top:8px}
.letter-body{margin-top:18px;font-size:14px;line-height:1.9;color:#2b3142}
.letter-body p{margin-bottom:12px;text-indent:2em}
.letter-body .right{text-align:right;text-indent:0}
.letter-foot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:24px;min-height:110px}
.lf-co{font-weight:700;font-size:15px;color:var(--text)}
.lf-date,.lf-parent{color:var(--sub);margin-top:6px;font-size:13px}

/* ============================================================
   登录页重制（性能优化 + 多方式 + 协议）
   ============================================================ */
.login-inner{position:absolute;inset:0;display:flex;flex-direction:column;z-index:1}
.login-head{padding:calc(54px + var(--safe-t)) 28px 18px;text-align:center}
.login-card{border-radius:26px 26px 0 0;margin-top:auto;padding:26px 22px calc(30px + var(--safe-b));box-shadow:0 -12px 40px rgba(0,0,0,.22);position:relative;z-index:1}
.login-card .btn{margin-top:8px}

/* 方式切换 Tab */
.lg-tabs{display:flex;gap:6px;background:var(--line-2);border-radius:12px;padding:4px;margin-bottom:20px}
.lg-tab{flex:1;text-align:center;padding:10px 0;font-size:14.5px;font-weight:700;color:var(--sub);border-radius:9px;cursor:pointer;user-select:none;transition:background .18s,color .18s,box-shadow .18s}
.lg-tab.active{background:#fff;color:var(--brand);box-shadow:var(--shadow)}
.lg-pane{animation:fade .2s ease}

/* 密码显隐 */
.li-pwd .li-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--sub);padding:6px;cursor:pointer;display:flex;line-height:0}

/* 验证码输入行 */
.li-code{display:flex;gap:10px;align-items:stretch}
.li-code input{flex:1;padding-left:14px;background:var(--line-2)}
.btn-code{flex:none;padding:0 14px;border:0;border-radius:12px;background:var(--brand);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:opacity var(--t-fast)}
.btn-code:disabled{opacity:.5;cursor:not-allowed}
.code-btn{flex:none;white-space:nowrap;background:var(--brand-soft);color:var(--brand);border:0;border-radius:12px;padding:0 14px;font-size:13.5px;font-weight:700;cursor:pointer;transition:opacity .15s}
.code-btn:disabled{opacity:.5;cursor:not-allowed}
.lg-btn{margin-top:4px}

/* 协议勾选 */
.lg-agree{margin-top:16px}
.agree-box{display:flex;align-items:flex-start;gap:9px;cursor:pointer}
.agree-box input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--brand);cursor:pointer}
.agree-tx{font-size:12.5px;color:var(--sub);line-height:1.6}
.lnk{color:var(--brand);text-decoration:none;font-weight:600}

/* 其他登录方式 */
.lg-other{margin-top:22px}
.lg-other-t{display:flex;align-items:center;gap:12px;color:var(--sub);font-size:12px;margin-bottom:14px}
.lg-other-t::before,.lg-other-t::after{content:"";flex:1;height:1px;background:var(--line-2)}
/* 微信登录独占一行（最常用入口）；本机号 / 指纹 并排两列居中协调 */
.oth-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.oth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;background:#fff;border:1.5px solid var(--line-2);border-radius:14px;padding:13px 8px;font-size:13.5px;font-weight:700;color:var(--text);cursor:pointer;transition:transform .12s,border-color .15s,background .15s;margin-bottom:10px}
.oth-btn:active{transform:translateY(1px)}
.oth-btn .ic{width:20px;height:20px}
.oth-one{border-color:rgba(43,92,255,.35);color:var(--brand);background:linear-gradient(135deg,#eef2ff,#e7edff);margin-bottom:0}
.oth-fp{color:#7b5cff;border-color:rgba(123,92,255,.3);background:linear-gradient(135deg,#f4eeff,#ece2ff);margin-bottom:0;font-size:13px}
.oth-fp svg{color:#7b5cff}

/* 协议底部抽屉 */
.agr-mask{position:absolute;inset:0;background:rgba(8,12,30,.5);z-index:20;display:flex;align-items:flex-end;animation:fade .2s ease}
.agr-sheet{width:100%;max-height:82%;background:#fff;border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:slideUp .25s ease}
.agr-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;border-bottom:1px solid var(--line-2);font-size:16px;font-weight:800;color:var(--text)}
.agr-x{background:none;border:0;font-size:18px;color:var(--sub);cursor:pointer;line-height:1;padding:4px}
.agr-body{overflow-y:auto;padding:16px 18px;-webkit-overflow-scrolling:touch;font-size:13.5px;line-height:1.85;color:#3a4156}
.agr-body h4{font-size:14px;margin:16px 0 6px;color:var(--text);font-weight:800}
.agr-body h4:first-child{margin-top:0}
.agr-body p{margin:0 0 9px}
.agr-body p.sub{margin:0 0 7px 1.1em;text-indent:-1.1em;color:#5a6378;font-size:13px;line-height:1.8}
.agr-body strong{color:var(--text);font-weight:700}
.agr-ok{margin:14px 18px 18px}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* 性能：减少非必要合成层，避免过度绘制 */
.lg-tab,.oth-btn,.code-btn,.btn{will-change:auto}

.lf-seal{width:104px;height:104px;flex:none;transform:rotate(-8deg)}

@media print{
  .topbar,.tabbar,.sec,.tip,.share-acts,.poster-wrap,.card,#printL{display:none!important}
  body{background:#fff}
  #view{padding:0!important}
  .letter{box-shadow:none;border:none;margin:0;max-width:680px}
}

/* ============================================================
   新增模块样式（交易 / 升级 / 消息 / 多通道 / 终端 / 学院 / 客服）
   主色保持品牌蓝 --brand 不变
   ============================================================ */

/* 快捷入口 6 宫格 */
.quick-6{grid-template-columns:repeat(3,1fr)}

/* 周期切换 / 筛选 chips */
.periods{display:flex;flex-wrap:wrap;gap:8px;margin:14px 14px 0}
.pd{flex:1 1 28%;min-width:84px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 0;font-size:13.5px;font-weight:600;color:var(--sub);cursor:pointer;transition:.15s}
.pd.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 6px 14px rgba(43,92,255,.28)}
.chips{display:flex;gap:8px;margin:10px 14px 0;overflow-x:auto;padding-bottom:2px}
.chips::-webkit-scrollbar{height:0}
.chip{flex:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--sub);cursor:pointer;white-space:nowrap;transition:.15s}
.chip.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}

/* 聚合汇总 mini 卡 */
.mini4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}
.mi .mi-v{font-size:15px;font-weight:800;color:var(--text)}
.mi .mi-l{font-size:11px;color:var(--sub);margin-top:3px}

/* 流水明细 */
.flow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line-2);cursor:pointer}
.flow:last-child{border-bottom:0}
.flow-ic{width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.flow-main{flex:1;min-width:0}
.flow-ch{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flow-time{font-size:11.5px;color:var(--sub);margin-top:3px}
.flow-amt{font-size:15px;font-weight:800;color:var(--text);flex:none}

/* 升级进度 */
.upcard{padding:16px 18px}
.up-head{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}
.up-head .lv-badge{font-size:11px}
.up-next{margin-left:auto;font-size:12px;color:var(--sub);font-weight:600}
.up-bar{height:10px;background:var(--line-2);border-radius:6px;margin:12px 0 8px;overflow:hidden}
.up-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--brand-3),var(--brand));transition:width .9s cubic-bezier(.2,.8,.2,1)}
.up-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--sub)}

/* 未读红点/数字 */
.qdot{position:absolute;top:-3px;right:14px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.q{position:relative}
.mbadge{margin-left:auto;background:var(--danger);color:#fff;font-size:11px;font-weight:800;min-width:18px;height:18px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.mchev{margin-left:auto}

/* 消息中心 */
.nrow{position:relative;padding:14px 0 14px 14px;border-bottom:1px solid var(--line-2);cursor:pointer}
.nrow:last-child{border-bottom:0}
.nrow.read{opacity:.62}
.ndot{position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--danger)}
.n-title{font-size:14.5px;font-weight:700;line-height:1.4}
.npill.imp{background:var(--danger-soft);color:var(--danger);font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:8px;margin-right:6px;vertical-align:middle}
.n-sub{font-size:11.5px;color:var(--sub);margin-top:5px}
.n-prev{font-size:12.5px;color:var(--sub);margin-top:5px;line-height:1.5}
.nbody{font-size:14px;line-height:1.9;color:#2b3142;white-space:pre-wrap}
.nfoot{font-size:11.5px;color:var(--sub);margin-top:14px;text-align:right}

/* 多通道对比 */
.ccard{background:#fff;border-radius:14px;padding:15px;box-shadow:var(--shadow);margin:12px 14px 0}
.c-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.c-name{font-size:15.5px;font-weight:800}
.c-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13.5px;color:var(--sub);border-bottom:1px dashed var(--line-2)}
.c-row b{color:var(--text);font-size:14.5px}
.c-feat{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ftag{background:var(--brand-soft);color:var(--brand);font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:9px}
.rec{background:linear-gradient(135deg,var(--brand-soft),#fff);border:1px solid var(--brand-soft);border-radius:14px;padding:14px;margin-top:6px}
.rec-top{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:8px}
.rec-top b{color:var(--brand)}
.rec-reason{font-size:13px;color:#2b3142;line-height:1.7;margin-top:8px}
.rec-alt{font-size:12px;color:var(--sub);margin-top:8px}

/* 终端管理 */
.trow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line-2)}
.trow:last-child{border-bottom:0}
.t-ic2{width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.t-main{flex:1;min-width:0}
.t-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-sub{font-size:11.5px;color:var(--sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-right{text-align:right;flex:none}
.t-cnt{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:5px}

/* 培训学院 */
.les{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line-2);cursor:pointer}
.les.last{border-bottom:0;padding-bottom:0}
.les .ic{color:var(--brand)}
.les-t{font-size:14.5px;font-weight:600;flex:1;line-height:1.4}
.les-go{color:var(--sub);display:flex}

/* 客服 FAQ */
.faq{border-bottom:1px solid var(--line-2);padding:14px 0}
.faq.last{border-bottom:0;padding-bottom:0}
.faq-q{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:600;cursor:pointer}
.faq-q .ic{color:var(--brand);flex:none}
.faq-a-icon{margin-left:auto;color:var(--sub);transition:transform .2s;display:flex}
.faq.open .faq-a-icon{transform:rotate(90deg)}
.faq-a{font-size:13px;color:var(--sub);line-height:1.7;max-height:0;overflow:hidden;transition:max-height .25s ease}
.faq.open .faq-a{max-height:200px;margin-top:10px}

/* 实名认证 */
.rn-head{padding:4px 4px 0}
.rn-title{font-size:19px;font-weight:800}
.rn-desc{font-size:12.5px;color:var(--sub);line-height:1.7;margin-top:8px}
.rn-status{display:flex;align-items:flex-start;gap:10px;margin:16px 0;padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line-2)}
.rn-status .rn-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:none;background:var(--sub)}
.rn-status.pending{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.3)}
.rn-status.pending .rn-dot{background:var(--warning,#f59e0b)}
.rn-status.ok{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.3)}
.rn-status.ok .rn-dot{background:var(--success,#10b981)}
.rn-status.no{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.3)}
.rn-status.no .rn-dot{background:var(--error,#ef4444)}
.rn-st{font-size:15px;font-weight:700}
.rn-reason{font-size:12.5px;color:var(--sub);margin-top:4px;line-height:1.6}
.rn-form .sec,.rn-done .sec{margin:18px 0 10px;font-size:13px;font-weight:700;color:var(--sub)}
.rn-done .mrow{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.rn-done .mrow:last-of-type{border-bottom:0}
.rn-uploads{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rn-up{display:block;position:relative}
.rn-up-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:120px;border:1.5px dashed var(--line-2);border-radius:14px;color:var(--sub);font-size:12.5px;text-align:center;background:var(--bg-soft,#f6f7fb);transition:.2s}
.rn-up-box.has{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}
.rn-up-box svg{opacity:.6}
.rn-up-box.has svg{opacity:1;color:var(--brand)}
.rn-up-prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:14px}
.rn-vrec{margin-top:6px;position:relative}
.rn-rec-tip{font-size:12px;color:var(--sub);line-height:1.7;background:var(--bg-soft,#f6f7fb);border-radius:12px;padding:10px 12px;margin-bottom:10px}
.rn-script{font-size:13px;line-height:1.7;background:#eef3ff;border:1px solid #dbe5ff;border-radius:12px;padding:10px 12px;margin-bottom:8px;color:#27324a}
.rn-rec-box{position:relative;margin-top:8px}
.rn-rec-prev{width:100%;max-height:240px;background:#000;border-radius:12px;display:none}
.rn-rec-prev.has{display:block}
.rn-tele{position:absolute;left:0;right:0;bottom:0;display:none;padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff;font-size:13px;line-height:1.6;border-radius:0 0 12px 12px}
.rn-tele.on{display:block}
.rn-tele-toggle{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--sub);margin-top:8px}
.rn-tele-toggle input{width:17px;height:17px;accent-color:var(--brand)}
/* APP 端全屏提词器（录制前弹出，系统相机无法叠加字幕） */
.xzm-tele-mask{position:fixed;inset:0;z-index:9999;background:rgba(8,12,28,.86);display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.xzm-tele-card{width:100%;max-width:420px;background:var(--card,#fff);border-radius:18px;padding:22px 20px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.xzm-tele-h{font-size:17px;font-weight:800;text-align:center;color:var(--brand,#2347ff)}
.xzm-tele-tip{font-size:12.5px;color:var(--sub,#5a6478);line-height:1.7;margin:12px 0 10px;text-align:center}
.xzm-tele-body{font-size:17px;font-weight:700;line-height:1.9;color:var(--text,#1c2433);background:var(--bg-soft,#f6f7fb);border:1px solid var(--line-2,#eef0f5);border-radius:12px;padding:16px;margin-bottom:16px;text-align:center;letter-spacing:.3px}
.xzm-tele-go{width:100%;padding:13px;font-size:15px;font-weight:700}
.xzm-tele-skip{display:block;width:100%;margin-top:10px;background:none;border:0;color:var(--sub,#8a93a6);font-size:13px;padding:6px}
.rn-rec-btns{display:flex;gap:10px}
.rn-rec-btns .btn{flex:1}
.rn-rec-note{font-size:12.5px;margin-top:8px;min-height:18px;color:var(--sub)}
.rn-submit{width:100%;margin-top:18px}
.rn-imgs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rn-img{width:100%;border-radius:12px;border:1px solid var(--line-2)}
.rn-video{width:100%;border-radius:12px;margin-top:10px;background:#000}

/* ===== 注销账户 ===== */
.btn-danger{background:linear-gradient(135deg,#ff5a6e,#f5465c);color:#fff;border:0;border-radius:12px;padding:14px;width:100%;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(245,70,92,.28);transition:transform .12s,opacity .2s}
.btn-danger:active{transform:translateY(1px) scale(.99);opacity:.92}
.btn-danger:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.deact-card{display:flex;flex-direction:column;gap:12px}
.deact-tip{font-size:13px;color:var(--sub);line-height:1.7;margin:0}
.deact-modal h3{color:var(--danger)}
.deact-lead{font-size:13.5px;color:var(--text);margin:0 0 6px}
.deact-warn{margin:0 0 4px;padding-left:18px}
.deact-warn li{font-size:13.5px;color:#3a3f4d;line-height:1.85;margin-bottom:6px}
.deact-warn strong{color:var(--danger)}
.deact-field{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.deact-field span{font-size:13px;color:var(--sub)}
.deact-field b{color:var(--danger)}
.deact-input{border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;font-size:15px;outline:none;transition:border var(--t-fast),box-shadow var(--t-fast);width:100%}
.deact-input:focus{border-color:var(--danger);box-shadow:0 0 0 3px rgba(245,70,92,.12)}
.deact-actions{display:flex;gap:10px;margin-top:18px}
.deact-actions .btn-ghost,.deact-actions .btn-danger{margin:0}

/* ============ 首页：办卡贷款入口模块 ============ */
.loanmod{margin:16px 14px 0;background:linear-gradient(120deg,#2b5cff,#5a7bff);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.loanmod-h{display:flex;align-items:center;gap:8px;color:#fff;font-size:15px;font-weight:700}
.loanmod-tag{font-size:11px;font-weight:600;background:rgba(255,255,255,.22);padding:2px 8px;border-radius:20px}
.loanmod-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.loan-card{background:#fff;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:2px;cursor:pointer;transition:transform .12s,box-shadow .2s}
.loan-card:active{transform:translateY(1px);box-shadow:var(--shadow-lg)}
.loan-card-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:var(--brand);background:var(--brand-soft);margin-bottom:4px}
.loan-card-ic2{color:#ff8a3d;background:#fff2e8}
.loan-card-t{font-size:14px;font-weight:700;color:var(--text)}
.loan-card-s{font-size:11.5px;color:var(--sub)}

/* ============ 首页中段功能导航长条 ============ */
.fnav{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 6px;margin:14px 14px 0;background:#fff;border-radius:var(--radius);padding:14px 6px;box-shadow:var(--shadow)}
.fnav-item{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;position:relative}
.fnav-item .ic{color:var(--brand);background:var(--brand-soft);width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center}
.fnav-item:active .ic{transform:scale(.94)}
.fnav-item span{font-size:11.5px;font-weight:600;color:var(--text);text-align:center}

/* ============ 商户整改 / 风险商户（代理侧） ============ */
.subtabs{display:flex;gap:8px;margin:12px 14px 0}
.stab{padding:6px 14px;border-radius:20px;background:#fff;color:var(--sub);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--line-2)}
.stab.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.card-list{padding:12px 14px 16px}
.rc-item{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rc-top b{font-size:15px;font-weight:800}
.rc-sub{font-size:12px;color:var(--sub);margin-top:6px}
.rc-reason{font-size:13px;color:#3a4252;margin-top:8px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.rc-due{font-size:12px;color:#ff8a3d;margin-top:8px}
.pill{font-size:11px;font-weight:800;padding:3px 9px;border-radius:9px;white-space:nowrap}
.empty{text-align:center;color:var(--sub);font-size:13px;padding:40px 0}
.d-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.d-row>span{color:var(--sub)}
.d-block{padding:10px 0;border-bottom:1px solid var(--line-2)}
.d-block>span{color:var(--sub);font-size:13px}
.d-text{font-size:14px;color:#3a4252;margin-top:6px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.xzm-text{width:100%;min-height:74px;border:1px solid var(--line-2);border-radius:10px;padding:10px;font-size:14px;margin-top:8px;resize:vertical;font-family:inherit;box-sizing:border-box}
.sheet-actions{display:flex;gap:10px;margin-top:14px}
.d-done{color:var(--sub);font-size:13px;text-align:center;width:100%;padding:8px 0}

/* ============ 渠道授权码（代理侧） ============ */
.ca-tip{margin:10px 14px 0;font-size:12.5px;color:var(--sub);line-height:1.6;background:var(--brand-soft);border-radius:10px;padding:10px 12px}
.ca-list{padding:0 14px}
.ca-card{background:#fff;border-radius:14px;padding:14px;margin-top:12px;box-shadow:var(--shadow)}
.ca-head{display:flex;align-items:center;gap:8px}
.ca-brand{font-size:16px;font-weight:800;color:#0d4f72}
.ca-code-tag{font-size:11px;color:var(--sub);background:#f1f5f9;border-radius:7px;padding:2px 8px}
.ca-code{margin-top:10px;font-family:'Courier New',Consolas,monospace;font-size:15px;font-weight:700;color:#0f172a;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:12px;line-height:1.6;word-break:break-all;user-select:text;-webkit-user-select:text}
.ca-imgwrap{margin-top:10px;text-align:center}
.ca-img{max-width:62%;border-radius:10px;border:1px solid var(--line-2);background:#fff;cursor:pointer}
.ca-acts{display:flex;gap:10px;margin-top:10px}
.btn.sm{flex:1;justify-content:center;padding:9px 0;font-size:13px;border-radius:10px;border:1px solid var(--line-2);background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;font-weight:600}
.btn.sm.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.ca-remark{margin-top:10px;font-size:12.5px;color:var(--sub);line-height:1.6;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border-radius:8px;padding:8px 10px}
.ca-hint{margin-top:8px;font-size:11.5px;color:#ff8a3d;text-align:center}

/* ============ 办卡贷款页 ============ */
.loan-tabs{display:flex;gap:8px;margin:14px 14px 0}
.loan-tab{flex:1;text-align:center;padding:9px 0;font-size:13px;font-weight:600;color:var(--sub);background:#fff;border-radius:11px;box-shadow:var(--shadow);cursor:pointer}
.loan-tab.active{color:#fff;background:var(--brand)}
.loan-prod{background:#fff;border-radius:12px;padding:14px;margin:12px 14px 0;box-shadow:var(--shadow)}
.loan-prod-top{display:flex;align-items:center;gap:8px}
.loan-prod-name{font-size:15px;font-weight:700;color:var(--text)}
.loan-prod-tag{font-size:11px;font-weight:600;color:#ff8a3d;background:#fff2e8;padding:2px 8px;border-radius:20px}
.loan-prod-org{font-size:12.5px;color:var(--sub);margin-top:4px}
.loan-prod-meta{display:flex;gap:14px;font-size:12px;color:var(--text);margin:8px 0 12px}
.loan-prod-meta span{background:var(--brand-soft);color:var(--brand);padding:3px 9px;border-radius:8px;font-weight:600}
.loan-apply{width:100%}

/* ============ 终端：分段 + 库存 ============ */
.seg{display:flex;gap:0;margin:14px 14px 0;background:#fff;border-radius:11px;padding:4px;box-shadow:var(--shadow)}
.seg-i{flex:1;text-align:center;padding:8px 0;font-size:13px;font-weight:600;color:var(--sub);border-radius:8px;cursor:pointer}
.seg-i.active{color:#fff;background:var(--brand)}
.inv-stock{display:flex;align-items:center;justify-content:space-between;padding:11px 2px;border-bottom:1px solid var(--line-2);font-size:14px;color:var(--text)}
.inv-stock:last-child{border-bottom:none}
.inv-stock .ic{color:var(--brand);margin-right:8px;vertical-align:-5px}
.inv-stock b{color:var(--brand);font-size:16px}
.inv-range{padding:11px 2px;border-bottom:1px solid var(--line-2)}
.inv-range:last-child{border-bottom:none}
.inv-range b{color:var(--text);font-size:14px}
.inv-range-n{font-size:12px;color:var(--sub);margin-top:3px}
.inv-batch{padding:12px 2px;border-bottom:1px solid var(--line-2)}
.inv-batch:last-child{border-bottom:none}
.inv-batch-top{display:flex;align-items:center;justify-content:space-between}
.inv-batch-top b{font-size:14px;color:var(--text)}
.inv-batch-no{font-size:12.5px;color:var(--sub);margin:4px 0 8px}
.inv-batch-acts{display:flex;gap:8px}
.inv-ag{padding:9px 2px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center}
.inv-ag:last-child{border-bottom:none}
.inv-ag-name{font-size:13.5px;color:var(--text)}
.inv-ag-stock{font-size:12px;color:var(--sub)}
.inv-alc-h{font-size:12px;font-weight:700;color:var(--sub);margin:12px 0 6px}
.inv-alc{font-size:12.5px;color:var(--text);padding:5px 0;border-bottom:1px solid var(--line-2)}
.inv-alc:last-child{border-bottom:none}
.inv-dir{font-weight:700;margin-right:4px}
.inv-dir.ok{color:#16b364}
.inv-dir.no{color:var(--danger)}

/* ============ 实名：人脸核验 ============ */
.rn-face{margin:0}
.rn-face-tip{font-size:13px;color:var(--sub);margin-bottom:10px}
.rn-face-btns{display:flex;gap:10px}
.rn-face-btn{flex:1;font-size:13px}
.rn-face-note{font-size:11.5px;color:var(--sub);margin-top:10px;line-height:1.5}

/* ============ 生物识别（指纹/面容） ============ */
.bio-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.bio-t{font-size:14px;font-weight:700;color:var(--text)}
.bio-s{font-size:12px;color:var(--sub);margin-top:3px}
.bio-list{margin-top:10px}
.bio-item{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line-2);font-size:13px;color:var(--text)}
.bio-item .ic{color:var(--brand);margin-right:6px;vertical-align:-5px}
.bio-empty{font-size:12.5px;color:var(--sub);padding:8px 0}
.oth-fp{color:#7b5cff}
.oth-fp svg{color:#7b5cff}

/* ── 商品卡操作区 / 购物车按钮（移动端）── */
.pactions{display:flex;gap:8px;margin-top:10px}
.pbtn{flex:1;border:none;border-radius:9px;padding:8px 0;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center;gap:4px}
.pbtn.ghost{background:var(--brand-soft,#eef3ff);color:var(--brand,#2b5cff)}
.pbtn.solid{background:var(--brand,#2b5cff);color:#fff}
.pbtn:active{transform:scale(.97)}
.pdetail{margin-top:8px;text-align:right;font-size:12px;color:var(--brand,#2b5cff);cursor:pointer;user-select:none}
.pdetail:active{opacity:.6}
.pimg img{width:100%;height:100%;object-fit:contain;border-radius:12px;background:#fff}
.qbtn{width:28px;height:28px;border:1px solid var(--line,#eceef4);background:#fff;border-radius:8px;font-size:16px;color:var(--text,#16181d);cursor:pointer;display:flex;align-items:center;justify-content:center}
.qbtn:active{background:var(--brand-soft,#eef3ff)}

/* ── 设置 / 收货地址 / 官方收款账号（个人中心改版）── */
.li-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);padding:8px 2px;cursor:pointer}
.li-check input{width:16px;height:16px;accent-color:var(--brand,#2b5cff)}
.addr-card{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px;margin-bottom:10px;background:#fff;border:1px solid var(--line,#eceef4);border-radius:12px}
.addr-card .acard-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.addr-card .acard-sub{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.5}
.addr-ops{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.btn-mini{border:1px solid var(--line,#eceef4);background:#fff;color:var(--text);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;white-space:nowrap}
.btn-mini:active{background:var(--brand-soft,#eef3ff)}
.btn-mini.danger{color:#f5465c;border-color:#f7c9cf}
.btn-mini.danger:active{background:#fff0f1}

.op-sec{font-size:13px;font-weight:600;color:var(--text);margin:6px 0 8px}
.op-up{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.op-box{width:96px;height:96px;border:1.5px dashed var(--line,#cfd6e4);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--sub);font-size:12px;cursor:pointer;flex-shrink:0;transition:.15s}
.op-box:active{background:var(--brand-soft,#eef3ff)}
.op-box.has{border-style:solid;border-color:var(--brand,#2b5cff);color:var(--brand,#2b5cff)}
.op-box .ic{width:24px;height:24px}
.op-prev{flex:1;min-width:0}
.op-img{max-width:120px;max-height:120px;border-radius:10px;border:1px solid var(--line,#eceef4)}

/* 下单/订单页：平台官方收款账户展示（区别于买家自身收款信息） */
.pay-info{margin:10px 0 2px}
.pay-official{background:linear-gradient(135deg,#f3f8ff,#eef6ff);border:1px solid #dbe7ff;border-radius:12px;padding:12px;color:#1f2a44}
.pay-official-h{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#1d4ed8;margin-bottom:8px}
.pay-official-h .ic{width:18px;height:18px}
.pay-qr{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:#fff;border-radius:10px;border:1px solid #e6eefc}
.pay-qr img{width:160px;height:160px;object-fit:contain;border-radius:6px;display:block}
.pay-qr-tip{font-size:12px;color:#5b6b8c}
.pay-bank{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#243049;background:#fff;border-radius:10px;border:1px solid #e6eefc;padding:10px 12px}
.pay-bank b{color:#0f1d33}
.pay-all{display:flex;flex-wrap:wrap;gap:10px}
.pay-empty{font-size:12px;color:#8a93a6;background:#f2f5fa;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:6px}
.pay-empty .ic{width:16px;height:16px}
.pay-readonly-banner{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fff8e1,#fff3cd);border:1px solid #ffe69c;border-radius:10px;padding:8px 10px;font-size:12px;color:#8a6500;margin-bottom:10px}
.pay-readonly-banner .ic{width:16px;height:16px;flex-shrink:0}

/* 支付公司品牌 logo（进件 / 多通道 / 筛选），加载失败回退线性图标 */
.ch-logo{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;vertical-align:middle}
.ch-logo img{width:100%;height:100%;border-radius:7px;object-fit:cover;display:block;background:#f1f3f8}
.ch-logo svg{display:none;width:18px;height:18px}
.ch-logo.no img{display:none}
.ch-logo.no svg{display:block}
.ch-card .ch-logo{margin-right:10px}
.c-head .ch-logo{margin-right:8px}
.chip .ch-logo{margin-right:5px;width:18px!important;height:18px!important}

.wd-calc{background:var(--brand-soft,#f4f7ff);border:1px solid #e3ebff;border-radius:10px;padding:10px 12px;margin:4px 0 10px;font-size:13px}
.wd-line{display:flex;justify-content:space-between;align-items:center;color:var(--sub);padding:3px 0}
.wd-line .num{color:var(--text)}
.wd-line.wd-total{border-top:1px dashed #d8e2ff;margin-top:4px;padding-top:7px;font-weight:700;color:var(--text)}
.wd-line.wd-total .num{color:var(--brand,#2b5cff);font-size:15px}
.wd-sub{font-size:12px;color:var(--sub);padding:6px 2px 2px;border-top:1px solid var(--line-2,#f1f3f8);margin-top:4px}
.wd-sub .num{color:var(--text)}

/* H5 自动更新提示条 */
#h5UpdateBar{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 14px;background:linear-gradient(90deg,#2347ff,#4f6bff);color:#fff;font-size:14px;box-shadow:0 2px 12px rgba(20,40,120,.35);transform:translateY(-110%);transition:transform .35s ease;cursor:pointer;transform-origin:top}
#h5UpdateBar.show{transform:translateY(0)}
#h5UpdateBar .ub{background:rgba(255,255,255,.22);padding:3px 14px;border-radius:20px;font-weight:700;font-style:normal;font-size:13px}
#h5UpdateBar .ut{opacity:.96}

/* 银行卡管理 */
.bc-item{padding:12px 2px;border-bottom:1px solid var(--line-2,#f1f3f8)}
.bc-item:last-child{border-bottom:none}
.bc-top{display:flex;align-items:center;justify-content:space-between}
.bc-bank{font-weight:700;font-size:15px}
.bc-no{font-size:18px;letter-spacing:1px;margin:4px 0;font-family:ui-monospace,Menlo,Consolas,monospace}
.bc-sub{font-size:12px;color:var(--sub)}
.bc-photos{display:flex;gap:8px;margin:8px 0}
.bc-ph{width:64px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line-2,#eee)}
.bc-ops{display:flex;gap:16px;margin-top:6px}
.lnk{color:#2b5cff;font-size:13px;cursor:pointer}
.lnk.danger{color:#e1453d}
.bc-ups{display:flex;gap:10px;margin-top:4px}
.bc-up{flex:1}
.bc-up-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:88px;border:1.5px dashed var(--line-2,#d7dde8);border-radius:12px;color:var(--sub);font-size:13px;position:relative;overflow:hidden;cursor:pointer}
.bc-up-box.has{border-style:solid;border-color:#bcd0ff}
.bc-up-prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bc-up span{position:relative;z-index:1}
.ck-default{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;color:var(--text)}

/* 设置页开关 */
.sw{position:relative;display:inline-block;width:46px;height:26px;flex:none}
.sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.sw-track{position:absolute;inset:0;background:#cfd6e4;border-radius:20px;transition:background .25s}
.sw-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s}
.sw input:checked + .sw-track{background:linear-gradient(90deg,#2347ff,#4f6bff)}
.sw input:checked + .sw-track .sw-thumb{transform:translateX(20px)}
.mhint{font-size:12px;color:var(--sub);padding:8px 2px 2px;line-height:1.6}

/* ===== 资产页：四分类账户（日/月/活动/分红） ===== */
.accts4{grid-template-columns:repeat(4,1fr);gap:8px}
.accts4 .acct{padding:12px 8px}
.accts4 .acct-top{font-size:11px;gap:5px}
.accts4 .acct-num{font-size:14px;margin-top:6px}
.acct-dot.g{background:#16b364}

/* ===== 资产页：五分类账户（日/月/活动/晋级/分红）=====
   6 列栅格实现 3+2 两行均分：首行三项各占 2 列，次行两项各占 3 列，两行均铺满不留豁口 */
.accts5{grid-template-columns:repeat(6,1fr);gap:8px}
.accts5 .acct{padding:12px 8px;grid-column:span 2}
.accts5 .acct:nth-child(4),
.accts5 .acct:nth-child(5){grid-column:span 3}
.accts5 .acct-top{font-size:11px;gap:5px}
.accts5 .acct-num{font-size:14px;margin-top:6px}
.accts5 .acct:nth-child(4) .acct-top,
.accts5 .acct:nth-child(5) .acct-top{font-size:12px}
.accts5 .acct:nth-child(4) .acct-num,
.accts5 .acct:nth-child(5) .acct-num{font-size:16px}
.acct-dot.u{background:#8b5cf6}

/* ===== 分红专区 hero（暖红金渐变，区别于资产蓝） ===== */
.hero-dividend{background:linear-gradient(135deg,#ff5a3c 0%,#f5465c 52%,#e23a86 100%);box-shadow:0 14px 30px rgba(245,70,92,.30)}

/* ===== 分红专区数据行 ===== */
.dv-row{display:flex;align-items:center;justify-content:space-between;padding:11px 2px;border-bottom:1px solid var(--line-2,#f1f3f8)}
.dv-row:last-child{border-bottom:none}
.dv-row>span{font-size:13.5px;color:var(--sub)}
.dv-row>b{font-size:14px;color:var(--text);font-weight:700}
.dv-row .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.warn{color:#e1453d !important}

/* ===== 分红专区固定提示 ===== */
.dv-tip{margin:14px 14px 0;background:linear-gradient(135deg,#fff7f0,#fff1ef);border:1px solid #ffe1d6;border-radius:12px;padding:13px 14px;font-size:12.5px;color:#9a5b3b;line-height:1.7}

/* ===== 提现：对私/对公分段选择控件 ===== */
.seg{display:flex;background:var(--brand-soft,#eef3ff);border-radius:12px;padding:4px;gap:4px}
.seg-btn{flex:1;border:0;background:transparent;color:var(--sub);font-size:14px;font-weight:700;padding:10px 6px;border-radius:9px;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
.seg-btn.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(43,92,255,.18)}

/* ===== 提现：金额扣费明细 ===== */
.wd-calc{margin-top:10px;padding-top:8px;border-top:1px solid var(--line-2,#f1f3f8)}

/* ===== 提现：税务与结算模式合规说明块 ===== */
.wd-comply{margin-top:14px;background:#f7f9ff;border:1px solid #e6ecff;border-radius:12px;padding:12px 14px}
.wd-comply-t{font-size:13px;font-weight:800;color:var(--brand);margin-bottom:7px}
.wd-comply-b{font-size:12px;color:#5a6478;line-height:1.75;margin-bottom:3px}
.wd-comply-w{font-size:12px;color:#b9781a;line-height:1.6;margin-top:7px;background:#fff6e9;padding:8px 10px;border-radius:8px}
/* ===== 库存分发：我的代理编号 + 下级代理搜索选择 ===== */
.my-no-row{display:flex;align-items:center;gap:8px;background:var(--brand-soft,#eef3ff);border:1px solid #e3ebff;border-radius:12px;padding:10px 12px;margin-bottom:14px}
.my-no-label{flex:none;font-size:13px;color:var(--sub);font-weight:600}
.my-no-val{flex:1;min-width:0;font-size:14px;font-weight:800;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.copy-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:9px;background:#fff;color:var(--brand,#2b5cff);cursor:pointer;box-shadow:0 1px 3px rgba(22,37,107,.12);transition:background .15s,transform .12s}
.copy-btn:active{background:var(--brand-soft,#eef3ff);transform:scale(.94)}
.sec-sub{display:flex;align-items:center;gap:8px;margin:4px 0 10px;font-size:13px;font-weight:700;color:var(--text)}
.sec-sub::before{content:"";width:4px;height:14px;border-radius:3px;background:linear-gradient(var(--brand-3,#2347ff),var(--brand-2,#16256b))}
.agent-pick{margin-bottom:6px}
.ap-search{display:flex;align-items:center;gap:8px;padding:0 10px;background:#f5f7fc;border:1.5px solid var(--line,#eceef4);border-radius:12px;transition:border-color .15s}
.ap-search:focus-within{border-color:var(--brand,#2b5cff)}
.ap-ic{flex:none;display:inline-flex;color:var(--sub)}
.ap-input{flex:1;border:0;outline:none;background:transparent;padding:12px 0;font-size:15px;color:var(--text)}
.ap-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;background:transparent;color:var(--sub);cursor:pointer;transition:transform .2s,color .15s}
.ap-toggle.open{transform:rotate(180deg);color:var(--brand,#2b5cff)}
.kids-box{margin-top:8px;max-height:260px;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--line,#eceef4);border-radius:12px}
.kid-row{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;border-bottom:1px solid var(--line-2,#f1f3f8);transition:background .12s}
.kid-row:last-child{border-bottom:0}
.kid-row:active{background:var(--brand-soft,#eef3ff)}
.kid-row.on{background:var(--brand-soft,#eef3ff)}
.kid-main{flex:1;min-width:0}
.kid-name{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--text)}
.kid-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:3px}
.kid-no{font-size:12px;color:var(--sub);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.kid-phone{font-size:12px;color:var(--sub)}
.kid-check{flex:none;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line,#eceef4);color:#fff;transition:background .15s,border-color .15s}
.kid-row.on .kid-check{background:var(--brand,#2b5cff);border-color:var(--brand,#2b5cff)}
.sel-info{margin:8px 2px 2px;min-height:18px;font-size:13px;font-weight:600;line-height:1.5;color:var(--brand,#2b5cff)}

/* 库存回调（需下级确认后回填） */
.recall-card .field{margin-bottom:10px}
#rcStockHint{padding:2px 0 4px;line-height:1.6;word-break:break-all}
.rc-confirm{margin-top:10px;width:100%}
.rc-cancel{margin-left:8px}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.6;background:#eef1f8;color:#5a6b8c}
.pill.ok{background:#e7f7ec;color:#1ba94c}
.pill.no{background:#fdecec;color:#e23b3b}
.inv-dir{padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;background:#eef1f8;color:#5a6b8c;margin-right:4px}
.inv-dir.no{background:#fdecec;color:#e23b3b}
.inv-dir.ok{background:#e7f7ec;color:#1ba94c}

/* ===== 商城左侧导航（品牌 / 礼包 / 展业物料 三模块） ===== */
.ch-logo{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-weight:800;letter-spacing:-.5px}
.ch-logo img{display:block;width:100%;height:100%;object-fit:cover;background:#fff}
.ch-logo .ch-logo-text{font-size:.92em;color:#fff;font-weight:800;line-height:1}
.mall-wrap{display:flex;gap:6px;align-items:flex-start;padding:2px 6px 0}
.mall-nav{display:flex;flex-direction:column;gap:6px;width:78px;flex:0 0 78px;position:sticky;top:6px;max-height:calc(100vh - 120px);overflow-y:auto;padding-bottom:12px;scrollbar-width:none}
.mall-nav::-webkit-scrollbar{display:none}
.mall-nav .mnav-label{font-size:10px;color:#aab2c0;text-align:center;padding:2px 0 0;letter-spacing:1px}
.mall-nav .mnav-item{padding:10px 4px;border-radius:11px;font-size:12px;line-height:1.3;text-align:center;background:#fff;color:var(--sub,#8a90a0);border:1px solid var(--line,#eceef4);cursor:pointer;box-shadow:0 4px 14px rgba(22,37,107,.05);transition:all .15s}
.mall-nav .mnav-item.on{background:linear-gradient(135deg,var(--brand-3,#2347ff),var(--brand,#2b5cff));color:#fff;border-color:transparent;font-weight:700;box-shadow:0 6px 14px rgba(43,92,255,.30)}
.mall-nav .mnav-item:active{transform:scale(.97)}
.mall-nav .mnav-empty{font-size:10px;color:#aab2c0;text-align:center;padding:8px 2px}

/* 收起目录按钮（导航栏顶部） */
.mall-nav .mnav-toggle{display:flex;align-items:center;justify-content:center;gap:1px;padding:7px 2px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.5px;background:#f2f4fb;color:#7b8395;border:1px dashed #d6dbea;cursor:pointer;transition:all .15s}
.mall-nav .mnav-toggle:active{transform:scale(.96);background:#e8ebf6}
.mall-nav .mnav-toggle .mnt-ic{display:inline-flex;align-items:center;transform:rotate(180deg)}
.mall-nav .mnav-toggle .mnt-ic svg{width:12px;height:12px}

/* 品牌目录项：直接平铺在左侧导航（logo + 名称 + 商品数角标） */
.mall-nav .mnav-brand{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border-radius:10px;background:#fff;color:var(--sub,#8a90a0);border:1px solid var(--line,#eceef4);cursor:pointer;font-size:10px;line-height:1.2;text-align:center;transition:all .15s}
.mall-nav .mnav-brand svg,.mall-nav .mnav-brand img{width:20px;height:20px;display:block;object-fit:contain}
.mall-nav .mnav-brand .mnb-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mall-nav .mnav-brand .mnb-n{position:absolute;top:-4px;right:-3px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#ff7a45;color:#fff;font-size:9px;font-style:normal;font-weight:700;line-height:15px;text-align:center;box-shadow:0 2px 5px rgba(255,122,69,.35)}
.mall-nav .mnav-brand.off{opacity:.45}
.mall-nav .mnav-brand.on{background:linear-gradient(135deg,var(--brand-3,#2347ff),var(--brand,#2b5cff));color:#fff;border-color:transparent;font-weight:700;box-shadow:0 4px 10px rgba(43,92,255,.28)}
.mall-nav .mnav-brand.on .mnb-n{background:#fff;color:var(--brand,#2b5cff);box-shadow:none}
.mall-nav .mnav-brand:active{transform:scale(.97)}

/* 目录收起后：左侧「把手」按钮唤回目录，商品区整页全宽展示 */
.mnav-fab{display:none;position:fixed;left:0;top:52%;transform:translateY(-50%);z-index:60;flex-direction:column;align-items:center;gap:1px;padding:11px 5px 11px 3px;border:none;border-radius:0 13px 13px 0;background:linear-gradient(135deg,var(--brand-3,#2347ff),var(--brand,#2b5cff));color:#fff;font-size:10px;font-weight:700;letter-spacing:1px;line-height:1.1;cursor:pointer;box-shadow:0 6px 18px rgba(43,92,255,.38)}
.mnav-fab svg{width:15px;height:15px}
.mnav-fab:active{transform:translateY(-50%) scale(.95)}
.mall-wrap.nav-hidden .mall-nav{display:none}
.mall-wrap.nav-hidden .mnav-fab{display:flex}
.mall-wrap.nav-hidden .mall-content{padding-left:14px}
.mall-wrap.nav-hidden .mall-content .pgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}

.mall-content{flex:1;min-width:0;overflow:hidden;padding:0 2px}
.mall-content .pgrid{margin:12px 6px 0}
.mall-content .sec{margin:6px 6px 0}
/* 当前分类标题（收起目录后仍能一眼看到所在分类） */
.mc-head{display:flex;align-items:center;gap:8px;margin:8px 6px 2px;font-size:15px;font-weight:800;color:var(--text,#16181d)}
.mc-head .mch-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-head .mch-n{flex:none;font-size:11px;font-weight:600;color:var(--sub,#8a90a0);background:#f2f4fb;padding:2px 9px;border-radius:20px}
.brand-sec-h{display:flex;align-items:center;gap:8px;margin:14px 6px 0;font-size:14px;font-weight:800;color:var(--text,#16181d)}
.brand-sec-h .bsh-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-sec-h .bsh-count{font-size:12px;font-weight:600;color:var(--sub,#8a90a0)}
@media (max-width:380px){
  .mall-nav{width:70px;flex-basis:70px}
  .mall-nav .mnav-item{font-size:11px;padding:9px 3px}
  .mall-nav .mnav-brand{font-size:9px;padding:6px 1px}
  .mall-nav .mnav-brand svg,.mall-nav .mnav-brand img{width:18px;height:18px}
  .mall-nav .mnav-toggle{font-size:9px;padding:6px 1px}
}


/* ============ 版本更新 / 微信兼容（20260803f） ============ */
/* 设置页：更新面板（检查更新后展示可直接下载的安装包） */
.update-panel{margin-top:8px}
.up-card{background:linear-gradient(135deg,#f3f7ff,#eef3ff);border:1px solid #d7e2ff;border-radius:12px;padding:12px 14px;margin-top:4px}
.up-card.force{border-color:#ffd0c4;background:linear-gradient(135deg,#fff4f1,#ffe9e2)}
.up-ch{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text)}
.up-force{font-size:11px;font-weight:700;color:#fff;background:#ef4444;border-radius:6px;padding:2px 7px}
.up-notes{font-size:12.5px;color:var(--sub);line-height:1.6;margin:8px 0 12px}
.up-acts{display:flex;gap:10px}
.up-acts .btn,.up-acts .btn-ghost{flex:1;justify-content:center;padding:11px}

/* 应用内常驻"新版本"横幅 */
.app-update-banner{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:1200;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e8f2;box-shadow:0 10px 30px rgba(20,40,90,.18);border-radius:14px;padding:12px 14px}
.app-update-banner.force{border-color:#ffd0c4;background:linear-gradient(135deg,#fff,#fff3ef)}
.aub-ic{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand-2,#4f6bff),var(--brand,#2347ff));color:#fff}
.aub-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.aub-txt b{font-size:14px;color:var(--text)}
.aub-txt span{font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aub-go{flex:none;border:none;background:linear-gradient(135deg,var(--brand-2,#4f6bff),var(--brand,#2347ff));color:#fff;font-weight:700;font-size:13px;border-radius:10px;padding:9px 14px;cursor:pointer}
.aub-x{flex:none;border:none;background:none;color:var(--sub);font-size:20px;line-height:1;padding:0 2px;cursor:pointer}

/* 实名认证：微信环境提示 */
.wechat-hint{display:flex;align-items:flex-start;gap:6px;background:#eaf6ff;border:1px solid #c8e6ff;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:12.5px;color:#0a6fb5;line-height:1.6}
.wechat-hint a{color:#0a6fb5;font-weight:700;text-decoration:underline;cursor:pointer}

/* ============================================================
   全局表格响应式适配（移动端竖屏 · 2026-08-07）
   一次性规则，作用于全站所有表格（含 JS 动态注入与未来新增）：
   以 !important 抵消组件内联的 min-width / white-space:nowrap，
   实现 百分比自适应 + 列宽均分 + 自动换行，彻底消除横向溢出。
   验收标准：手机竖屏下整表完整展示，无需左右滑动即可看清全部表头与对应数据。
   ============================================================ */
table{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;            /* 抵消内联 min-width:480px 等固定像素宽度 */
  table-layout:fixed !important;     /* 列宽自动均分屏幕宽度，不靠横向拉伸 */
}
th,td{
  white-space:normal !important;     /* 取消 nowrap，表头/数据允许换行两行展示 */
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
  word-wrap:break-word !important;
  vertical-align:top !important;
  padding:8px 6px !important;
}
/* 弹层容器只纵向滚动，杜绝横向滚动条（双保险） */
.modal{overflow-x:hidden !important;}
.modal-mask [style*="overflow:auto"]{overflow-x:hidden !important;}
/* 模拟账户列表底部计数条 */
.mgr-foot{font-size:12px;color:var(--sub,#8a93a6);text-align:center;padding:12px 0 4px;letter-spacing:.2px}

/* ============================================================
   商户进件多步骤向导（专业版 · 大厂风格）
   ============================================================ */
/* —— 顶部导航 —— */
.ob-header{position:sticky;top:0;z-index:25;height:54px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 10px}
.ob-back{background:none;border:0;color:var(--text);display:flex;align-items:center;padding:8px;margin:-8px;cursor:pointer}
.ob-title{flex:1;text-align:center;font-size:17px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}
.ob-quick{background:none;border:1.5px solid var(--brand);color:var(--brand);font-size:12px;font-weight:700;border-radius:12px;padding:6px 12px;cursor:pointer;white-space:nowrap;flex:none}
.ob-quick:active{background:var(--brand-soft)}
.ob-body{padding:14px}

/* —— 步骤进度条 —— */
.onb-stepper{display:flex;align-items:flex-start;margin:4px 4px 14px}
.onb-st{flex:1;display:flex;flex-direction:column;align-items:center;position:relative}
.onb-st-dot{width:26px;height:26px;border-radius:50%;background:var(--line-2);color:var(--sub);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;z-index:2;transition:.2s}
.onb-st-dot svg{color:#fff}
.onb-st-line{position:absolute;top:13px;left:50%;width:100%;height:2px;background:var(--line-2);z-index:1}
.onb-st-lbl{font-size:11px;color:var(--sub);margin-top:6px;font-weight:600}
.onb-st.active .onb-st-dot{background:linear-gradient(135deg,var(--brand-3),#1f49e0);color:#fff;box-shadow:0 4px 10px rgba(43,92,255,.32)}
.onb-st.active .onb-st-lbl{color:var(--brand)}
.onb-st.done .onb-st-dot{background:var(--success);color:#fff}
.onb-st.done .onb-st-line{background:var(--success)}
.onb-st.done .onb-st-lbl{color:var(--success)}

/* —— 表单行 —— */
.ob-row{display:flex;align-items:center;background:var(--card);border-radius:13px;padding:13px 14px;margin-bottom:10px;box-shadow:var(--shadow)}
.ob-lbl{flex:0 0 96px;font-size:14px;font-weight:600;color:var(--text);display:flex;align-items:center}
.ob-val{flex:1;min-width:0}
.req-dot{color:var(--danger);font-size:8px;margin-right:4px;line-height:1}
.picker-val{display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--text);font-size:14px;min-height:20px;cursor:pointer}
.picker-val svg{color:var(--sub);opacity:.5;flex:none}
.picker-sub{font-size:11px;color:var(--sub);opacity:.85}
.ob-input{border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;font-size:14px;color:var(--text)}
.ob-input::placeholder{color:var(--sub);opacity:.7}

/* —— 区块标题 / 提示 —— */
.ob-section{display:flex;align-items:center;justify-content:center;margin:4px 0 12px}
.ob-section-title{font-size:13px;font-weight:700;color:var(--sub);letter-spacing:1px}
.ob-tip{font-size:12px;color:var(--sub);line-height:1.6;background:var(--brand-soft);border-radius:10px;padding:10px 12px;margin:4px 0 12px}

/* —— 按钮 —— */
.ob-btn{margin-top:8px}
.ob-btns-row{display:flex;gap:10px;margin-top:6px}
.ob-btn-half{flex:1}

/* —— 照片上传 —— */
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.photo-grid-single{margin-bottom:12px}
.photo-up{background:var(--card);border-radius:14px;padding:12px;box-shadow:var(--shadow)}
.photo-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px;display:flex;align-items:center}
.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:104px;border:1.5px dashed var(--line);border-radius:12px;color:var(--sub);font-size:12px;cursor:pointer;background:var(--line-2);transition:border-color .15s}
.photo-placeholder:active{border-color:var(--brand)}
.photo-placeholder svg{color:var(--brand);opacity:.55}
.photo-preview{position:relative;height:104px;border-radius:12px;overflow:hidden;background:#10131a}
.photo-preview img{width:100%;height:100%;object-fit:cover}
.photo-re{position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:3px 8px;border-radius:8px;display:flex;align-items:center;gap:3px;cursor:pointer}
.photo-del{position:absolute;right:6px;top:6px;background:rgba(245,70,92,.9);color:#fff;font-size:11px;padding:3px 8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:3px}

/* —— 底部弹窗选择器 —— */
.bs-panel{background:#fff;width:100%;border-radius:22px 22px 0 0;padding:6px 0 calc(10px + var(--safe-b));max-height:72vh;overflow:auto;animation:slide .26s cubic-bezier(.2,.8,.2,1)}
.bs-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.bs-title{font-size:16px;font-weight:800;color:var(--text)}
.bs-close{color:var(--sub);display:flex;cursor:pointer;padding:4px;margin:-4px}
.bs-body{padding:4px 0}
.bs-item{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line-2);cursor:pointer}
.bs-item:active{background:var(--brand-soft)}
.bs-item-main{flex:1;min-width:0}
.bs-item-name{font-size:15px;font-weight:600;color:var(--text)}
.bs-item-desc{font-size:12px;color:var(--sub);margin-top:2px}

/* —— 开关 —— */
.ob-toggle-row{display:flex;align-items:center;justify-content:space-between;background:var(--card);border-radius:13px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow)}
.ob-toggle-info{flex:1;min-width:0}
.ob-toggle-lbl{font-size:14px;font-weight:700;color:var(--text)}
.ob-toggle-sub{font-size:12px;color:var(--sub);margin-top:3px}
.toggle-switch{position:relative;display:inline-block;width:46px;height:26px;flex:none;margin-left:10px}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--line);border-radius:30px;transition:.2s}
.toggle-slider::before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.toggle-switch input:checked + .toggle-slider{background:var(--brand)}
.toggle-switch input:checked + .toggle-slider::before{transform:translateX(20px)}

/* 身份证有效期选择器 */
.idv-sheet{width:100%;max-height:90vh;background:#fff;border-radius:22px 22px 0 0;padding:18px 18px calc(20px + var(--safe-b));overflow:auto;animation:slideUp .25s ease}
.idv-title{font-size:17px;font-weight:800;text-align:center;color:var(--text);margin-bottom:14px}
.idv-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid var(--line)}
.idv-row-label{font-size:15px;color:var(--text);font-weight:600}
.idv-block{transition:opacity .2s;padding-top:6px}
.idv-sub{font-size:13px;color:var(--sub);margin:10px 2px 6px}
.idv-date{display:flex;align-items:center;gap:6px}
.idv-date select{flex:1 1 52px;min-width:52px;background:#f4f6fa;border:1px solid var(--line);border-radius:10px;padding:12px 6px;font-size:16px;text-align:center;color:var(--text);font-weight:600}
.idv-date select:disabled{opacity:.6;background:#eef1f6}
.idv-unit{font-size:14px;color:var(--sub);flex:none;padding:0 2px}
.idv-confirm{margin-top:18px;width:100%}
/* 长期有效开启时灰显日期区 */
.idv-block.disabled{opacity:.45;pointer-events:none}
