/* ==========================================================================
   页面级样式
   ========================================================================== */

/* ============ 首页 ============ */
.hero{
  position:relative;
  background:linear-gradient(168deg,#1B1436 0%,#221A46 42%,#171436 100%);
  color:#fff;
  padding:6px 0 92px;
  overflow:hidden;
  border-radius:0;
}
.hero::before{
  content:"";position:absolute;width:420px;height:420px;border-radius:50%;
  top:-230px;right:-150px;
  background:radial-gradient(circle,rgba(124,92,252,.55),rgba(124,92,252,0) 68%);
  filter:blur(4px);
}
.hero::after{
  content:"";position:absolute;width:320px;height:320px;border-radius:50%;
  bottom:-190px;left:-120px;
  background:radial-gradient(circle,rgba(64,120,255,.38),rgba(64,120,255,0) 68%);
}
.hero__top{
  position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px 6px;
}
.hero__brand{display:flex;align-items:center;gap:9px}
.hero__mark{
  width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--brand-2),var(--brand-deep));
  box-shadow:0 6px 16px rgba(124,92,252,.5);
}
.hero__mark svg{width:16px;height:16px;color:#fff}
.hero__name{font-size:15px;font-weight:700;letter-spacing:1.4px}
.hero__bell{position:relative;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12)}
.hero__bell svg{width:17px;height:17px;color:#fff}
.hero__bell i{position:absolute;top:7px;right:8px;width:6px;height:6px;border-radius:50%;background:#FF5A5A;
  box-shadow:0 0 0 2px #221A46}

.hero__card{
  position:relative;z-index:2;margin:14px 16px 0;
  background:linear-gradient(150deg,rgba(255,255,255,.16),rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;padding:20px 20px 18px;
  backdrop-filter:blur(10px);
  box-shadow:0 18px 40px rgba(0,0,0,.28);
}
.hero__label{font-size:12.5px;color:rgba(255,255,255,.62);letter-spacing:.6px}
.hero__amount{
  display:flex;align-items:baseline;gap:6px;margin:8px 0 2px;
  font-variant-numeric:tabular-nums;
}
.hero__amount b{
  font-size:44px;font-weight:800;letter-spacing:-1px;line-height:1;
  background:linear-gradient(180deg,#fff,#D9CFFF 92%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 6px 24px rgba(160,130,255,.45);
}
.hero__amount span{font-size:14px;color:rgba(255,255,255,.72);font-weight:600}
.hero__badges{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.hero__badge{
  display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border-radius:99px;
  font-size:11.5px;font-weight:600;color:#E7DFFF;
  background:rgba(124,92,252,.24);border:1px solid rgba(160,130,255,.35);
}
.hero__steps{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:16px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.14);
  font-size:11.5px;color:rgba(255,255,255,.6);
}
.hero__step{display:flex;align-items:center;gap:5px}
.hero__step b{
  width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:9.5px;
  background:rgba(255,255,255,.16);color:#fff;font-weight:700;
}
.hero__cta{
  position:relative;z-index:3;margin:18px 16px 0;
}
.hero__cta .btn{height:54px;border-radius:18px;font-size:16.5px;letter-spacing:2px}

/* 资产概览：白卡上浮压住深色 Hero 底部 */
.stats{
  position:relative;z-index:4;margin:-54px 16px 0;
  background:#fff;border-radius:20px;box-shadow:var(--sh-2);
  display:grid;grid-template-columns:1fr 1fr;padding:16px 0;
}
.stats__i{text-align:center;position:relative;padding:0 8px}
.stats__i + .stats__i::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:var(--line)}
.stats__k{font-size:11.5px;color:var(--t3)}
.stats__v{font-size:21px;font-weight:800;margin-top:5px;font-variant-numeric:tabular-nums;letter-spacing:-.4px}
.stats__v.brand{color:var(--brand-deep)}
.stats__v.warn{color:#E8833A}

/* VIP 横幅 */
.vipbar{
  position:relative;overflow:hidden;
  margin:0 16px;border-radius:22px;padding:18px 18px 17px;
  background:linear-gradient(135deg,#191B33 0%,#232546 55%,#2E2A55 100%);
  color:#fff;box-shadow:0 16px 36px rgba(23,20,54,.3);
  display:flex;align-items:center;gap:14px;
}
.vipbar::before{
  content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(227,190,114,.35),rgba(227,190,114,0) 68%);
}
.vipbar__crown{
  position:relative;width:44px;height:44px;border-radius:14px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#F5E3B0,#D9B266 55%,#B78C36);
  box-shadow:0 8px 20px rgba(201,162,75,.4);
}
.vipbar__crown svg{width:22px;height:22px;color:#3B2A08}
.vipbar__t{font-size:15.5px;font-weight:700;letter-spacing:.6px;
  background:linear-gradient(92deg,#F8E9C0,#E3BE72 60%,#CBAcss);
  background:linear-gradient(92deg,#F8E9C0,#E3BE72 60%,#C9A24B);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.vipbar__s{font-size:11.5px;color:rgba(255,255,255,.55);margin-top:4px}
.vipbar__go{
  position:relative;flex:0 0 auto;height:32px;padding:0 14px;border-radius:99px;
  font-size:12.5px;font-weight:700;color:#3B2A08;
  background:linear-gradient(135deg,#F5E3B0,#D9B266);
  box-shadow:0 6px 16px rgba(201,162,75,.35);
  display:flex;align-items:center;
}

/* 快捷服务 */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 16px}
.quick__item{
  background:#fff;border-radius:18px;padding:14px 6px 12px;text-align:center;
  box-shadow:var(--sh-1);border:1px solid rgba(20,24,40,.035);
  transition:transform .2s var(--spring),box-shadow .2s;
}
.quick__item:active{transform:scale(.95)}
.quick__ico{
  width:38px;height:38px;border-radius:13px;margin:0 auto 8px;display:grid;place-items:center;
  background:var(--brand-soft);color:var(--brand-deep);
}
.quick__ico.green{background:var(--ok-soft);color:#0B8F65}
.quick__ico.orange{background:var(--warn-soft);color:#B76E00}
.quick__ico.blue{background:#E8F1FF;color:#1F6FEB}
.quick__t{font-size:12px;font-weight:600;color:var(--t1)}

/* 产品卡 */
.prod{
  background:#fff;border-radius:20px;padding:16px;box-shadow:var(--sh-1);
  border:1px solid rgba(20,24,40,.035);display:flex;gap:14px;align-items:center;
  transition:transform .2s var(--spring);
}
.prod:active{transform:scale(.985)}
.prod__ico{
  width:52px;height:52px;border-radius:16px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#EFEAFF,#DED3FF);color:var(--brand-deep);
}
.prod__main{flex:1;min-width:0}
.prod__t{font-size:15px;font-weight:700}
.prod__s{font-size:11.5px;color:var(--t3);margin-top:4px}
.prod__tags{display:flex;gap:6px;margin-top:8px}
.prod__go{
  flex:0 0 auto;height:34px;padding:0 14px;border-radius:11px;display:flex;align-items:center;
  font-size:13px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));
  box-shadow:0 6px 16px rgba(124,92,252,.3);
}

/* 数据条 */
.socialproof{
  margin:0 16px;border-radius:20px;padding:16px;
  background:linear-gradient(135deg,#FFF8EA,#FFFDF8);
  border:1px solid #F6EBD3;display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.socialproof__i{text-align:center}
.socialproof__v{font-size:17px;font-weight:800;color:#B76E00;font-variant-numeric:tabular-nums}
.socialproof__k{font-size:11px;color:#A08A63;margin-top:3px}

/* ============ 确认借款 ============ */
.amt-hero{
  position:relative;overflow:hidden;
  margin:16px;border-radius:26px;padding:26px 20px 22px;text-align:center;color:#fff;
  background:linear-gradient(150deg,#241A4A 0%,#2C2158 48%,#1A1638 100%);
  box-shadow:0 20px 44px rgba(28,20,70,.32);
}
.amt-hero::before{
  content:"";position:absolute;width:300px;height:300px;border-radius:50%;
  top:-160px;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(124,92,252,.5),rgba(124,92,252,0) 70%);
}
.amt-hero__k{position:relative;font-size:12.5px;color:rgba(255,255,255,.6);letter-spacing:1px}
.amt-hero__v{
  position:relative;display:flex;align-items:baseline;justify-content:center;gap:4px;margin:10px 0 6px;
  font-variant-numeric:tabular-nums;
}
.amt-hero__v b{font-size:46px;font-weight:800;letter-spacing:-1.4px;line-height:1}
.amt-hero__v i{font-style:normal;font-size:15px;font-weight:600;color:rgba(255,255,255,.7)}
.amt-hero__term{
  position:relative;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 14px;
  border-radius:99px;font-size:12.5px;font-weight:600;color:#E4DBFF;
  background:rgba(124,92,252,.26);border:1px solid rgba(160,130,255,.4);
}
.amt-hero__ring{
  position:absolute;right:-46px;bottom:-56px;width:170px;height:170px;border-radius:50%;
  border:1px solid rgba(255,255,255,.08);
}
.amt-hero__ring::after{
  content:"";position:absolute;inset:18px;border-radius:50%;border:1px dashed rgba(255,255,255,.08);
}

.detail-card{margin:0 16px;background:#fff;border-radius:22px;box-shadow:var(--sh-1);overflow:hidden}
.detail-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 18px;position:relative;font-size:14px;
}
.detail-row + .detail-row::before{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;background:var(--line)}
.detail-row__k{color:var(--t2);font-size:13.5px;display:flex;align-items:center;gap:5px}
.detail-row__v{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.detail-row__v small{display:block;font-size:10.5px;color:var(--t3);font-weight:400;margin-top:2px}
.detail-row.hl .detail-row__v{color:var(--brand-deep);font-size:18px;font-weight:800;letter-spacing:-.3px}
.detail-row.warn .detail-row__v{color:#E8833A}
.detail-row.danger .detail-row__v{color:var(--danger)}

.tip-box{
  margin:12px 16px 0;padding:12px 14px;border-radius:16px;
  background:var(--warn-soft);border:1px solid #FBE7C4;
  font-size:12px;color:#8A6320;line-height:1.6;display:flex;gap:8px;
}
.tip-box svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:#D69124}

/* 还款计划时间轴 */
.timeline{margin:0 16px;background:#fff;border-radius:22px;padding:18px;box-shadow:var(--sh-1)}
.tl-item{display:flex;gap:12px;position:relative;padding-bottom:18px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{
  content:"";position:absolute;left:8px;top:20px;bottom:0;width:1.5px;
  background:linear-gradient(180deg,var(--line-2),var(--line));
}
.tl-item:last-child::before{display:none}
.tl-dot{
  width:17px;height:17px;border-radius:50%;flex:0 0 auto;margin-top:2px;
  border:2px solid var(--line-2);background:#fff;position:relative;z-index:1;
}
.tl-item.done .tl-dot{background:var(--ok);border-color:var(--ok);box-shadow:0 0 0 3px rgba(18,185,129,.15)}
.tl-item.now .tl-dot{border-color:var(--brand);box-shadow:0 0 0 4px rgba(124,92,252,.16)}
.tl-item.now .tl-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--brand)}
.tl-main{flex:1;min-width:0}
.tl-t{font-size:13.5px;font-weight:600}
.tl-s{font-size:11.5px;color:var(--t3);margin-top:3px}
.tl-v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--brand-deep)}

/* 底部固定操作条 */
.bottom-bar{
  position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:60;
  width:100%;max-width:var(--page-max);
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-top:1px solid rgba(20,24,40,.06);
}
.bottom-bar .agree{margin-bottom:10px}

/* ============ 会员卡 ============ */
.vipcard{
  position:relative;overflow:hidden;margin:16px;border-radius:26px;padding:24px 22px;
  background:linear-gradient(140deg,#1E1B36 0%,#2A2547 45%,#3B3159 100%);
  color:#fff;box-shadow:0 24px 50px rgba(26,20,60,.34);
}
.vipcard::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 82% 12%,rgba(227,190,114,.34),transparent 46%),
    radial-gradient(circle at 8% 92%,rgba(124,92,252,.32),transparent 50%);
}
.vipcard::after{
  content:"";position:absolute;width:220px;height:220px;border-radius:50%;
  border:1px solid rgba(255,255,255,.07);right:-70px;bottom:-90px;
}
.vipcard__crown{
  position:relative;width:54px;height:54px;border-radius:18px;display:grid;place-items:center;margin:0 auto;
  background:linear-gradient(140deg,#F8E9C0,#DFB972 55%,#B9822F);
  box-shadow:0 12px 26px rgba(201,162,75,.42);
}
.vipcard__crown svg{width:26px;height:26px;color:#3B2A08}
.vipcard__t{
  position:relative;text-align:center;margin-top:14px;font-size:22px;font-weight:800;letter-spacing:3px;
  background:linear-gradient(92deg,#FBF0D0,#E7C683 52%,#C9A24B);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.vipcard__s{position:relative;text-align:center;font-size:12.5px;color:rgba(255,255,255,.58);margin-top:8px;letter-spacing:.6px}
.vipcard__price{
  position:relative;display:flex;align-items:baseline;justify-content:center;gap:5px;margin-top:18px;
}
.vipcard__price b{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FFF6DE,#E3BE72);-webkit-background-clip:text;background-clip:text;color:transparent}
.vipcard__price span{font-size:12.5px;color:rgba(255,255,255,.5)}
.vipcard__price s{font-size:12px;color:rgba(255,255,255,.32);text-decoration-color:rgba(255,255,255,.3)}

.benefit{
  display:flex;align-items:flex-start;gap:11px;padding:14px 0;position:relative;
}
.benefit + .benefit::before{content:"";position:absolute;left:40px;right:0;top:0;height:1px;background:var(--line)}
.benefit__ico{
  width:30px;height:30px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#FFF6E2,#FCE9C4);color:#A47B22;
}
.benefit__t{font-size:14px;font-weight:600}
.benefit__s{font-size:11.5px;color:var(--t3);margin-top:3px;line-height:1.5}

/* ============ 我的 / 用户中心 ============ */
.profile{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(160deg,#221A46 0%,#2B215A 50%,#1B1739 100%);
  padding:18px 16px 62px;
  border-radius:0;
}
.profile::before{
  content:"";position:absolute;width:340px;height:340px;border-radius:50%;
  top:-200px;right:-110px;
  background:radial-gradient(circle,rgba(124,92,252,.5),rgba(124,92,252,0) 70%);
}
.profile__head{position:relative;display:flex;align-items:center;gap:13px}
.profile__avatar{
  width:58px;height:58px;border-radius:20px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#3A2F6B,#241D48);
  border:1.5px solid rgba(255,255,255,.22);font-size:20px;font-weight:800;color:#C9BBFF;
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.profile__info{flex:1;min-width:0}
.profile__name{font-size:17px;font-weight:700;letter-spacing:.4px;display:flex;align-items:center;gap:7px}
.profile__verified{
  display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 8px;border-radius:99px;
  font-size:10.5px;font-weight:600;color:#B9F5DF;
  background:rgba(18,185,129,.18);border:1px solid rgba(18,185,129,.4);
}
.profile__verified svg{width:10px;height:10px}
.profile__phone{font-size:12px;color:rgba(255,255,255,.5);margin-top:5px;font-variant-numeric:tabular-nums}
.profile__set{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14)}
.profile__set svg{width:16px;height:16px;color:#fff}

.balance{
  position:relative;z-index:3;margin:-44px 16px 0;
  background:#fff;border-radius:22px;box-shadow:var(--sh-2);padding:18px 18px 16px;
}
.balance__grid{display:grid;grid-template-columns:1fr 1fr}
.balance__i{position:relative;text-align:center}
.balance__i + .balance__i::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--line)}
.balance__k{font-size:11.5px;color:var(--t3)}
.balance__v{font-size:23px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.6px}
.balance__v.b1{color:var(--brand-deep)}
.balance__v.b2{color:#E8833A}
.balance__acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.balance__acts .btn{height:44px;border-radius:14px;font-size:14.5px}

/* 资料完善 */
.steps{margin:0 16px;background:#fff;border-radius:22px;box-shadow:var(--sh-1);overflow:hidden}
.step{
  display:flex;align-items:center;gap:13px;padding:16px;position:relative;
}
.step + .step::before{content:"";position:absolute;left:62px;right:0;top:0;height:1px;background:var(--line)}
.step__ico{
  width:38px;height:38px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#F1ECFF,#E2D8FF);color:var(--brand-deep);
}
.step__ico.g{background:linear-gradient(140deg,#E6F8F1,#CFF3E6);color:#0B8F65}
.step__ico.o{background:linear-gradient(140deg,#FFF5E3,#FFE9C4);color:#B76E00}
.step__ico.b{background:linear-gradient(140deg,#E8F1FF,#D6E6FF);color:#1F6FEB}
.step__main{flex:1;min-width:0}
.step__t{font-size:14.5px;font-weight:600}
.step__s{font-size:11.5px;color:var(--t3);margin-top:3px;display:flex;align-items:center;gap:4px}
.step__ok{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ok);font-weight:600}
.step__ok svg{width:13px;height:13px}

.logout{margin:18px 16px 0}

/* ============ 我的借款 ============ */
.filter{
  display:flex;gap:8px;padding:12px 16px 4px;overflow-x:auto;scrollbar-width:none;
}
.filter::-webkit-scrollbar{display:none}
.filter__i{
  flex:0 0 auto;height:32px;padding:0 14px;border-radius:99px;display:flex;align-items:center;
  font-size:12.5px;font-weight:600;color:var(--t2);background:#fff;border:1px solid var(--line);
  transition:all .2s var(--ease);
}
.filter__i.active{color:#fff;background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));border-color:transparent;
  box-shadow:0 6px 16px rgba(124,92,252,.28)}

.loan{
  margin:0 16px 12px;background:#fff;border-radius:22px;padding:18px;box-shadow:var(--sh-1);
  border:1px solid rgba(20,24,40,.035);
}
.loan__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.loan__amt{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.6px}
.loan__amt i{font-style:normal;font-size:14px;font-weight:600;margin-right:2px}
.loan__row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--t2);margin-top:9px}
.loan__row b{font-weight:600;color:var(--t1);font-variant-numeric:tabular-nums}
.loan__foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);
}
.loan__foot .btn{height:36px;border-radius:12px;font-size:13px;padding:0 16px}

.empty{padding:70px 20px;text-align:center;color:var(--t3)}
.empty svg{width:64px;height:64px;color:var(--t4);margin:0 auto 14px;opacity:.7}
.empty p{font-size:13.5px}

/* ============ 登录 ============ */
.login-head{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(160deg,#171232 0%,#1F1843 55%,#241C4E 100%);
  padding:34px 26px 74px;border-radius:0;
}
.login-head::before{
  content:"";position:absolute;width:380px;height:380px;border-radius:50%;
  top:-230px;right:-140px;
  background:radial-gradient(circle,rgba(124,92,252,.6),rgba(124,92,252,0) 68%);
}
.login-brand{position:relative;display:flex;align-items:center;gap:12px}
.login-brand__mark{
  width:46px;height:46px;border-radius:15px;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(6px);
}
.login-brand__mark svg{width:24px;height:24px;color:#fff}
.login-brand__t{font-size:17px;font-weight:700;letter-spacing:1px}
.login-brand__s{font-size:11.5px;color:rgba(255,255,255,.5);margin-top:3px;letter-spacing:.3px}
.login-title{position:relative;margin-top:26px;font-size:27px;font-weight:800;letter-spacing:2px}
.login-sub{position:relative;margin-top:8px;font-size:12.5px;color:rgba(255,255,255,.5);letter-spacing:.5px}

.login-card{
  position:relative;z-index:3;margin:-46px 16px 0;background:#fff;border-radius:26px;
  padding:22px 20px 20px;box-shadow:0 20px 50px rgba(28,20,70,.16);
}
.login-card .field__label{font-size:12.5px}
.login-card .input{height:54px;border-radius:16px;background:#F8F7FD}
.login-card .btn{height:52px;border-radius:16px;margin-top:6px}
.login-terms{display:flex;gap:8px;margin-top:14px;font-size:11.5px;color:var(--t3);line-height:1.6}
.login-terms em{font-style:normal;color:var(--brand-deep);font-weight:600}

.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 16px 0}
.trust__i{
  background:#fff;border-radius:18px;padding:14px 8px;text-align:center;
  box-shadow:var(--sh-1);border:1px solid rgba(20,24,40,.035);
}
.trust__ico{
  width:34px;height:34px;border-radius:12px;margin:0 auto 8px;display:grid;place-items:center;
  background:var(--brand-soft);color:var(--brand-deep);
}
.trust__t{font-size:12px;font-weight:600}
.trust__s{font-size:10px;color:var(--t3);margin-top:3px}

.login-foot{display:flex;align-items:center;justify-content:center;gap:5px;margin:18px 0 8px;
  font-size:11px;color:var(--t3)}
.login-foot svg{width:12px;height:12px;color:var(--ok)}

/* ============ 客服 ============ */
.kefu-hero{
  margin:14px 16px 0;border-radius:22px;padding:18px;
  background:linear-gradient(140deg,#241A4A,#2C2158 60%,#1A1638);
  color:#fff;position:relative;overflow:hidden;
}
.kefu-hero::before{
  content:"";position:absolute;width:260px;height:260px;border-radius:50%;top:-150px;right:-80px;
  background:radial-gradient(circle,rgba(124,92,252,.5),transparent 70%);
}
.kefu-hero__t{position:relative;font-size:16px;font-weight:700;letter-spacing:.5px}
.kefu-hero__s{position:relative;font-size:11.5px;color:rgba(255,255,255,.55);margin-top:5px}
.kefu-hero__row{position:relative;display:flex;align-items:center;gap:8px;margin-top:14px}
.kefu-online{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#B9F5DF;font-weight:600}
.kefu-online i{width:6px;height:6px;border-radius:50%;background:#12B981;box-shadow:0 0 0 3px rgba(18,185,129,.2);
  animation:blink 1.8s infinite}
@keyframes blink{50%{opacity:.35}}

.chat{
  margin:14px 16px 0;background:#fff;border-radius:22px;box-shadow:var(--sh-1);
  padding:16px;display:flex;flex-direction:column;gap:12px;min-height:280px;
}
.msg{display:flex;gap:9px;max-width:86%}
.msg__ava{
  width:30px;height:30px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--brand-soft);color:var(--brand-deep);font-size:12px;font-weight:700;
}
.msg__bubble{
  padding:10px 13px;border-radius:14px;font-size:13.5px;line-height:1.55;
  background:var(--surface-2);color:var(--t1);border:1px solid var(--line);
}
.msg.me{flex-direction:row-reverse;align-self:flex-end}
.msg.me .msg__ava{background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));color:#fff}
.msg.me .msg__bubble{
  color:#fff;border-color:transparent;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
  box-shadow:0 6px 16px rgba(124,92,252,.24);
  border-bottom-right-radius:5px;
}
.msg.them .msg__bubble{border-bottom-left-radius:5px}

.quickask{display:flex;flex-wrap:wrap;gap:8px;margin:14px 16px 0}
.quickask__i{
  height:32px;padding:0 13px;border-radius:99px;display:flex;align-items:center;
  font-size:12px;font-weight:500;color:var(--t2);background:#fff;
  border:1px solid var(--line);box-shadow:var(--sh-1);
  transition:all .18s var(--ease);
}
.quickask__i:active{transform:scale(.95);border-color:var(--brand)}

.chat-input{
  position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:60;
  width:100%;max-width:var(--page-max);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(18px);
  border-top:1px solid rgba(20,24,40,.06);display:flex;gap:10px;align-items:center;
}
.chat-input input{
  flex:1;height:42px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface-2);
  padding:0 14px;font-size:14px;outline:none;
}
.chat-input input:focus{border-color:var(--brand);background:#fff}
.chat-input button{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));color:#fff;
  box-shadow:0 8px 18px rgba(124,92,252,.32);
}
.chat-input button:active{transform:scale(.92)}

/* ============ 资料完善 ============ */
.ring{
  width:96px;height:96px;margin:0 auto;position:relative;display:grid;place-items:center;
}
.ring svg{transform:rotate(-90deg)}
.ring__txt{position:absolute;text-align:center}
.ring__txt b{font-size:22px;font-weight:800;letter-spacing:-.5px}
.ring__txt span{font-size:10.5px;color:var(--t3);display:block;margin-top:-2px}

/* 底部协议 */
.agree-txt{font-size:11.5px;color:var(--t3);line-height:1.5}
.agree-txt em{font-style:normal;color:var(--brand-deep);font-weight:600}

/* 分站标识角标 */
.branch-tag{
  position:fixed;top:8px;right:8px;z-index:80;
  height:22px;padding:0 9px;border-radius:99px;display:none;align-items:center;gap:4px;
  font-size:10px;font-weight:600;color:var(--brand-deep);
  background:rgba(255,255,255,.9);border:1px solid var(--brand-soft);
  box-shadow:var(--sh-1);
}
.branch-tag.show{display:flex}

/* ============ 资料填写 / 借款申请 / 合同 ============ */
.notice-bar{
  margin:12px 16px 0;padding:9px 14px;border-radius:12px;text-align:center;
  background:#FFF6DA;color:#8A6320;font-size:12px;letter-spacing:.2px;
}

/* 金额滑块 */
.slider-card{margin:0 16px;background:#fff;border-radius:22px;padding:20px 18px;box-shadow:var(--sh-1)}
.slider-amount{text-align:center;font-variant-numeric:tabular-nums}
.slider-amount b{font-size:38px;font-weight:800;letter-spacing:-1px;color:var(--brand-deep)}
.slider-amount i{font-style:normal;font-size:14px;font-weight:600;color:var(--t2);margin-left:2px}
.slider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:99px;margin:20px 0 6px;
  background:linear-gradient(90deg,var(--brand-2),var(--brand-deep));outline:none}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;
  border:3px solid var(--brand);box-shadow:0 4px 12px rgba(124,92,252,.4);cursor:pointer}
.slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--brand);
  box-shadow:0 4px 12px rgba(124,92,252,.4);cursor:pointer}
.slider-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--t4);font-variant-numeric:tabular-nums}

.term-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.term-chip{
  flex:1;min-width:64px;height:44px;border-radius:14px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1px;
  background:var(--surface-2);border:1.5px solid transparent;transition:all .18s var(--ease);
}
.term-chip b{font-size:15px;font-weight:700}
.term-chip span{font-size:10px;color:var(--t3)}
.term-chip.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-deep)}
.term-chip.active span{color:var(--brand-deep);opacity:.75}

/* 资料项 */
.info-row{
  display:flex;align-items:center;gap:13px;padding:16px;position:relative;background:#fff;
}
.info-row + .info-row::before{content:"";position:absolute;left:62px;right:0;top:0;height:1px;background:var(--line)}
.info-row:active{background:var(--surface-2)}
.info-row__ico{
  width:38px;height:38px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(140deg,#F1ECFF,#E2D8FF);color:var(--brand-deep);
}
.info-row__main{flex:1;min-width:0}
.info-row__t{font-size:14.5px;font-weight:600}
.info-row__s{font-size:11.5px;color:var(--t3);margin-top:3px}
.info-row__state{font-size:12px;font-weight:600;flex:0 0 auto}
.info-row__state.ok{color:var(--ok)}
.info-row__state.no{color:var(--warn)}

/* 上传槽 */
.upload-slot{
  height:104px;border-radius:16px;border:1.5px dashed var(--line-2);background:var(--surface-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  color:var(--t3);font-size:12px;transition:all .18s var(--ease);
}
.upload-slot:active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.upload-slot.filled{border-style:solid;border-color:var(--ok);background:var(--ok-soft);color:#0B8F65}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* 签名板 */
.sign-pad{
  width:100%;height:190px;border-radius:16px;background:#fff;
  border:1.5px dashed var(--line-2);touch-action:none;display:block;
}
.sign-hint{font-size:11.5px;color:var(--t3);text-align:center;margin-top:8px}

/* 合同 */
.contract-box{
  max-height:50vh;overflow-y:auto;padding:16px;border-radius:16px;background:var(--surface-2);
  font-size:12.5px;line-height:1.95;color:var(--t2);
}
.contract-box h4{margin:0 0 8px;font-size:14px;color:var(--t1);font-weight:700}
.contract-box h5{margin:14px 0 6px;font-size:12.5px;color:var(--t1);font-weight:700}
.contract-box p{margin:0 0 8px}
.contract-box .sign-line{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line-2);color:var(--t3)}

/* 支付页 */
.pay-hero{
  margin:16px;border-radius:24px;padding:26px 20px;text-align:center;color:#fff;
  background:linear-gradient(150deg,#241A4A,#2C2158 48%,#1A1638);box-shadow:0 20px 44px rgba(28,20,70,.3);
  position:relative;overflow:hidden;
}
.pay-hero::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;top:-150px;left:50%;
  transform:translateX(-50%);background:radial-gradient(circle,rgba(124,92,252,.5),transparent 70%)}
.pay-hero__k{position:relative;font-size:12.5px;color:rgba(255,255,255,.6)}
.pay-hero__v{position:relative;margin-top:10px;font-size:42px;font-weight:800;letter-spacing:-1.2px;
  font-variant-numeric:tabular-nums}
.pay-hero__v i{font-style:normal;font-size:16px;font-weight:600;color:rgba(255,255,255,.7);margin-left:3px}
.pay-ways{display:flex;flex-direction:column;gap:10px}
.pay-way{
  display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:#fff;
  border:1.5px solid var(--line);transition:all .18s var(--ease);
}
.pay-way.active{border-color:var(--brand);background:var(--brand-soft)}
.pay-way__ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;color:var(--brand-deep)}
.pay-way__t{flex:1;font-size:14px;font-weight:600}
.pay-way__r{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center}
.pay-way.active .pay-way__r{border-color:var(--brand);background:var(--brand);color:#fff}
.pay-way__r svg{opacity:0;width:11px;height:11px;transition:opacity .18s}
.pay-way.active .pay-way__r svg{opacity:1}

/* 账单 */
.bill{
  margin:0 16px 12px;background:#fff;border-radius:20px;padding:16px 18px;box-shadow:var(--sh-1);
}
.bill__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.bill__t{font-size:14px;font-weight:700}
.bill__row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--t2);margin-top:8px}
.bill__row b{color:var(--t1);font-variant-numeric:tabular-nums}
.bill__foot{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);display:flex;
  align-items:center;justify-content:space-between;gap:10px}
