/* ================= 探绩工作台 v12 · 可信度 / 并列任务超市 / 单步流程 ================= */
/* 全部类名以 v12- 开头，不覆盖原 h5.css，便于随时回退 */

:root {
  --v12-blue: #1B5BE0;
  --v12-blue-d: #123C9C;
  --v12-ink: #1F2937;
  --v12-mute: #64748B;
  --v12-line: #E3E9F3;
  --v12-bg: #F5F8FE;
  --v12-white: #FFFFFF;
  --v12-green: #0E9F6E;
  --v12-amber: #C77A12;
}

.v12-hide { display: none !important; }

/* ---------- 主体信息条（登录页 + 首页通用） ---------- */
.v12-trust {
  background: var(--v12-white);
  border: 1px solid var(--v12-line);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 14px;
  box-shadow: 0 2px 10px rgba(27, 91, 224, .05);
}
.v12-trust-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.v12-org { font-size: 14px; font-weight: 600; color: var(--v12-ink); }
.v12-badge {
  font-size: 11px; color: var(--v12-blue); border: 1px solid #C9D9F7;
  background: #EFF5FF; border-radius: 4px; padding: 1px 6px;
}
.v12-credits { font-size: 11px; color: var(--v12-mute); margin-top: 6px; line-height: 1.7; }
.v12-promises { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.v12-promise {
  font-size: 11.5px; color: #0B7A52; background: #EAF8F2;
  border: 1px solid #C6EBDA; border-radius: 6px; padding: 4px 8px;
}
.v12-trust-links { margin-top: 10px; display: flex; gap: 14px; flex-wrap: wrap; }
.v12-trust-links button {
  border: 0; background: none; padding: 0; color: var(--v12-blue);
  font-size: 12px; cursor: pointer; text-decoration: underline;
}
.v12-demo-note {
  margin-top: 8px; font-size: 11px; color: #A35B00;
  background: #FFF6E8; border: 1px solid #F2D9AC; border-radius: 6px; padding: 6px 8px;
}

/* ---------- 规则状态条 ---------- */
.v12-rules {
  margin: 0 14px 12px; padding: 10px 12px;
  background: #EEF4FF; border: 1px solid #D7E5FF; border-radius: 10px;
  font-size: 12px; color: #25467E; line-height: 1.7;
}
.v12-rules b { color: var(--v12-blue-d); }
.v12-rule-warn { color: #A35B00; }

/* ---------- 两卡完全并列 ---------- */
.v12-section-title { margin: 16px 14px 8px; font-size: 14px; font-weight: 600; color: var(--v12-ink); }
.v12-section-sub { margin: 0 14px 10px; font-size: 11.5px; color: var(--v12-mute); }
.v12-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 14px; }
.v12-mode {
  background: var(--v12-white); border: 1px solid var(--v12-line);
  border-radius: 12px; padding: 14px 12px; display: flex; flex-direction: column;
  min-height: 178px; box-shadow: 0 2px 10px rgba(27, 91, 224, .05);
}
.v12-mode-ico {
  width: 36px; height: 36px; border-radius: 9px; background: #EAF1FF;
  display: flex; align-items: center; justify-content: center; margin-bottom: 9px;
}
.v12-mode-ico svg { width: 20px; height: 20px; stroke: var(--v12-blue); }
.v12-mode-name { font-size: 14px; font-weight: 600; color: var(--v12-ink); }
.v12-mode-diff { font-size: 11px; color: var(--v12-amber); margin-top: 3px; min-height: 16px; }
.v12-mode-desc { font-size: 11.5px; color: var(--v12-mute); line-height: 1.65; margin-top: 7px; flex: 1; }
.v12-mode-avail { font-size: 11px; color: var(--v12-blue); margin-top: 8px; }
.v12-mode-btn {
  margin-top: 10px; width: 100%; border: 0; border-radius: 8px; padding: 9px 0;
  background: var(--v12-blue); color: #fff; font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.v12-mode-btn:disabled { background: #B9C6DD; cursor: not-allowed; }
.v12-resume {
  margin: 0 14px 12px; padding: 12px; background: #FFF8EC;
  border: 1px solid #F0DBB4; border-radius: 10px; font-size: 12px; color: #7A5200;
}
.v12-resume button {
  margin-top: 8px; width: 100%; border: 0; border-radius: 8px; padding: 9px 0;
  background: #C77A12; color: #fff; font-size: 12.5px; font-weight: 600; cursor: pointer;
}

/* ---------- 通用弹层 ---------- */
.v12-mask {
  position: fixed; inset: 0; z-index: 900; background: rgba(18, 32, 58, .55);
  display: flex; align-items: flex-end; justify-content: center;
}
.v12-sheet {
  width: 100%; max-width: 520px; max-height: 88vh; overflow-y: auto;
  background: var(--v12-bg); border-radius: 16px 16px 0 0; padding: 16px 14px 24px;
}
.v12-sheet-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.v12-sheet-head b { font-size: 15px; color: var(--v12-ink); }
.v12-x { border: 0; background: #E9EEF7; color: #52627D; border-radius: 50%; width: 28px; height: 28px; font-size: 15px; cursor: pointer; }
.v12-card {
  background: var(--v12-white); border: 1px solid var(--v12-line);
  border-radius: 12px; padding: 14px; margin-bottom: 12px;
}
.v12-card h3 { font-size: 13px; color: var(--v12-blue-d); margin: 0 0 8px; }
.v12-kv { display: flex; gap: 8px; font-size: 12px; line-height: 1.9; color: var(--v12-ink); }
.v12-kv span:first-child { color: var(--v12-mute); min-width: 92px; }
.v12-pre { white-space: pre-wrap; font-size: 12px; line-height: 1.8; color: var(--v12-ink); }

/* ---------- 单步流程机（全屏） ---------- */
.v12-flow { position: fixed; inset: 0; z-index: 950; background: var(--v12-bg); display: flex; flex-direction: column; }
.v12-flow-top {
  background: var(--v12-white); border-bottom: 1px solid var(--v12-line);
  padding: 12px 14px; display: flex; align-items: center; gap: 10px;
}
.v12-flow-top .v12-x { margin-left: auto; }
.v12-flow-title { font-size: 14px; font-weight: 600; color: var(--v12-ink); }
.v12-steps { font-size: 11.5px; color: var(--v12-mute); }
.v12-progress { height: 3px; background: #E3E9F3; }
.v12-progress i { display: block; height: 100%; background: var(--v12-blue); transition: width .25s; }
.v12-flow-body { flex: 1; overflow-y: auto; padding: 16px 14px 26px; }
.v12-cust {
  background: var(--v12-white); border: 1px solid var(--v12-line);
  border-radius: 12px; padding: 14px; margin-bottom: 12px;
}
.v12-cust-tag { font-size: 11px; color: var(--v12-blue); background: #EAF1FF; border-radius: 4px; padding: 2px 7px; display: inline-block; margin-bottom: 7px; }
.v12-cust-name { font-size: 16px; font-weight: 600; color: var(--v12-ink); line-height: 1.5; }
.v12-big {
  font-size: 26px; font-weight: 600; letter-spacing: 1px;
  color: var(--v12-blue-d); margin: 14px 0 6px; text-align: center;
  word-break: break-all;
}
.v12-tip { font-size: 12px; color: var(--v12-mute); line-height: 1.75; text-align: center; }
.v12-script {
  background: #F7FAFF; border: 1px dashed #C9D9F7; border-radius: 10px;
  padding: 12px; font-size: 12.5px; color: #25467E; line-height: 1.8; margin-bottom: 12px;
}
.v12-textbox {
  background: #F7FAFF; border: 1px solid #DCE7FA; border-radius: 10px;
  padding: 13px; font-size: 13px; color: var(--v12-ink); line-height: 1.85;
  white-space: pre-wrap; margin-bottom: 12px; word-break: break-word;
}
.v12-actions { display: flex; flex-direction: column; gap: 9px; margin-top: 14px; }
.v12-btn {
  width: 100%; border: 0; border-radius: 10px; padding: 13px 0;
  font-size: 14px; font-weight: 600; cursor: pointer; text-align: center;
  display: block; text-decoration: none;
}
.v12-btn.primary { background: var(--v12-blue); color: #fff; }
.v12-btn.green { background: var(--v12-green); color: #fff; }
.v12-btn.light { background: #EAF1FF; color: var(--v12-blue-d); }
.v12-btn.ghost { background: var(--v12-white); color: var(--v12-mute); border: 1px solid var(--v12-line); }
.v12-btn:disabled { background: #C6D0E0; color: #7C889C; cursor: not-allowed; }
.v12-fallback {
  margin-top: 12px; background: #FFF8EC; border: 1px solid #F0DBB4;
  border-radius: 10px; padding: 12px; font-size: 12px; color: #7A5200; line-height: 1.85;
}
.v12-options { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.v12-opt {
  border: 1px solid var(--v12-line); background: var(--v12-white);
  border-radius: 10px; padding: 13px 8px; font-size: 13px; color: var(--v12-ink);
  cursor: pointer; text-align: center;
}
.v12-opt.sel { border-color: var(--v12-blue); background: #EAF1FF; color: var(--v12-blue-d); font-weight: 600; }
.v12-opt.pos { border-color: #BFE7D3; }
.v12-svcimg { width: 100%; border-radius: 10px; border: 1px solid var(--v12-line); margin-bottom: 10px; }
.v12-fin { text-align: center; padding: 18px 0 6px; }
.v12-fin-ico { font-size: 38px; color: var(--v12-green); }
.v12-fin-title { font-size: 17px; font-weight: 600; color: var(--v12-ink); margin: 8px 0; }
.v12-metrics { display: flex; gap: 10px; margin: 16px 0; }
.v12-metric { flex: 1; background: #fff; border: 1px solid var(--v12-line); border-radius: 10px; padding: 12px 8px; }
.v12-metric b { display: block; font-size: 20px; color: var(--v12-blue-d); }
.v12-metric span { font-size: 11px; color: var(--v12-mute); }
.v12-ring {
  width: 62px; height: 62px; border-radius: 50%; margin: 0 auto 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 600; color: var(--v12-blue-d);
  background: #E7EEFC;
}
.v12-joke { font-size: 12px; color: var(--v12-mute); text-align: center; margin-bottom: 12px; }
.v12-about-btn {
  display: block; width: 100%; margin-top: 12px; padding: 9px 0;
  border: 1px solid #C9D9F7; border-radius: 8px; background: #F3F7FF;
  color: var(--v12-blue-d); font-size: 12.5px; cursor: pointer;
}
.v12-file { display: none; }

/* ---------- v12.1：数字优先 / 资质图片位 / 金额提示 ---------- */
.v12-earn {
  margin: 12px 14px; padding: 14px 16px 12px; border-radius: 14px;
  background: linear-gradient(135deg, #1B5BE0, #4383F2); color: #fff;
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 10px 8px;
  box-shadow: 0 6px 18px rgba(27, 91, 224, .22);
}
.v12-earn-main { display: flex; flex-direction: column; justify-content: center; }
.v12-earn-main span { font-size: 11.5px; opacity: .85; }
.v12-earn-main b { font-size: 30px; line-height: 1.18; letter-spacing: .5px; }
.v12-earn-side { display: flex; gap: 14px; align-items: center; justify-content: flex-end; }
.v12-earn-side > div { display: flex; flex-direction: column; align-items: flex-end; }
.v12-earn-side b { font-size: 17px; }
.v12-earn-side b i { font-size: 12px; font-style: normal; font-weight: 400; opacity: .8; }
.v12-earn-side span { font-size: 10.5px; opacity: .8; margin-top: 2px; }
.v12-earn-bar { grid-column: 1 / -1; height: 5px; border-radius: 5px; background: rgba(255, 255, 255, .28); overflow: hidden; }
.v12-earn-bar i { display: block; height: 100%; background: #fff; border-radius: 5px; transition: width .3s; }

.v12-section-title { font-size: 15px; font-weight: 600; }
.v12-mode { min-height: 196px; }
.v12-mode-price { margin-top: 6px; display: flex; align-items: baseline; gap: 3px; color: var(--v12-blue-d); }
.v12-mode-price b { font-size: 25px; letter-spacing: .5px; }
.v12-mode-price span { font-size: 11px; color: var(--v12-mute); }
.v12-mode-diff { color: #7A8AA5; font-weight: 500; }
.v12-mode-desc { font-size: 11px; }
.v12-mode-avail { font-size: 10.5px; color: #7A8AA5; }

.v12-rule-line { margin: 12px 14px 0; font-size: 11px; color: #8A99B0; text-align: center; }
.v12-rule-line b { color: var(--v12-blue-d); }
.v12-rule-warn {
  margin: 8px 14px 0; padding: 8px 10px; border-radius: 8px; text-align: center;
  background: #FFF6E8; border: 1px solid #F2D9AC; color: #A35B00; font-size: 11.5px;
}

.v12-cred-caption { margin: 16px 14px 7px; font-size: 10.5px; color: #9AA8BC; letter-spacing: 1.5px; }
.v12-cred-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 14px; }
.v12-cred { border: 0; background: none; padding: 0; cursor: pointer; text-align: center; }
.v12-cred-thumb {
  height: 76px; border: 1px solid var(--v12-line); border-radius: 8px; background: #fff;
  overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.v12-cred-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v12-cred > span { display: block; font-size: 10.5px; color: var(--v12-mute); margin-top: 5px; }
.v12-cred-row.big .v12-cred-thumb { height: 112px; }
.v12-cred-ph {
  position: relative; width: 100%; height: 100%; background: #F3F7FE;
  display: flex; align-items: center; justify-content: center;
}
.v12-cred-ph-paper {
  width: 62%; height: 70%; background: #fff; border: 1px solid #D9E4F5;
  border-radius: 3px; box-shadow: 0 2px 6px rgba(27, 91, 224, .08);
  padding: 8px 6px; display: flex; flex-direction: column; gap: 5px;
}
.v12-cred-ph-paper i { display: block; height: 3px; border-radius: 2px; background: #E2EBF8; }
.v12-cred-ph-paper i:first-child { width: 60%; height: 5px; background: #C9D9F7; }
.v12-cred-ph-paper i:nth-child(3) { width: 82%; }
.v12-cred-ph-paper i:last-child { width: 45%; }
.v12-cred-ph em {
  position: absolute; right: 4px; bottom: 4px; font-size: 9px; font-style: normal;
  color: #93A3BC; background: rgba(255, 255, 255, .92); border-radius: 3px; padding: 1px 4px;
}

.v12-login-trust {
  margin: 0 14px 14px; padding: 12px; border-radius: 12px;
  background: rgba(255, 255, 255, .97); border: 1px solid rgba(255, 255, 255, .7);
  box-shadow: 0 4px 16px rgba(9, 30, 80, .14);
}
.v12-login-trust .v12-cred-row { margin: 10px 0 0; }
.v12-login-trust .v12-cred-thumb { height: 66px; }
.v12-login-trust .v12-cred > span { color: #5A6B85; }
.v12-trust-foot { font-size: 10.5px; color: #8A99B0; margin-top: 9px; text-align: center; }

.v12-lightbox {
  position: fixed; inset: 0; z-index: 980; background: rgba(12, 22, 42, .72);
  display: flex; align-items: center; justify-content: center; padding: 18px;
}
.v12-lb-box { width: 100%; max-width: 480px; max-height: 88vh; overflow-y: auto; background: #fff; border-radius: 14px; padding: 14px; }
.v12-lb-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.v12-lb-head b { font-size: 14px; color: var(--v12-ink); }
.v12-lb-img { width: 100%; border-radius: 8px; display: block; }
.v12-lb-ph { background: #F3F7FE; border: 1px dashed #C9D9F7; border-radius: 10px; padding: 22px; text-align: center; }
.v12-lb-ph .v12-cred-ph-paper { width: 70%; height: 150px; margin: 0 auto 14px; }
.v12-lb-ph p { font-size: 12px; color: var(--v12-mute); line-height: 1.8; margin: 0; }
.v12-lb-foot { margin-top: 10px; font-size: 11px; color: #8A99B0; text-align: center; }

.v12-mini-links { margin: 12px 14px 22px; text-align: center; }
.v12-mini-links button { border: 0; background: none; color: #8A99B0; font-size: 11.5px; cursor: pointer; }
.v12-cust-pay { margin-top: 9px; font-size: 11.5px; color: var(--v12-mute); }
.v12-cust-pay b { color: #D2412C; font-size: 18px; }
.v12-pay-hero {
  margin: 14px 0 4px; padding: 16px; border-radius: 12px; text-align: center;
  background: #FFF5F1; border: 1px solid #F6D9CD;
}
.v12-pay-hero span { display: block; font-size: 11.5px; color: #9A6A58; }
.v12-pay-hero b { display: block; font-size: 36px; line-height: 1.25; color: #D2412C; }
.v12-pay-hero em { font-style: normal; font-size: 11px; color: #9A6A58; }
.v12-kv b { font-weight: 500; }

/* 登录页紧凑化 v12.2：一屏内可见登录按钮；容器本身可上下滑动，小屏也不裁内容 */
.v12-login-trust { padding: 8px 10px; margin: 0 14px 10px; }
.v12-login-trust .v12-trust-top { flex-wrap: nowrap; gap: 6px; }
.v12-login-trust .v12-org { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v12-login-trust .v12-badge { font-size: 9.5px; padding: 1px 5px; flex: 0 0 auto; }
.v12-login-trust .v12-cred-row { margin-top: 6px; gap: 6px; }
.v12-login-trust .v12-cred-thumb { height: 42px; }
.v12-login-trust .v12-cred > span { margin-top: 2px; font-size: 9.5px; white-space: nowrap; }
.v12-login-trust .v12-promises { margin-top: 6px; gap: 4px; flex-wrap: nowrap; }
.v12-login-trust .v12-promise { font-size: 9.5px; padding: 2px 5px; white-space: nowrap; }
.v12-login-trust .v12-trust-foot { margin-top: 4px; font-size: 9.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 「先了解我们」按钮同步收紧，避免把登录按钮挤出首屏 */
.v12-about-btn { margin-top: 9px; padding: 8px 0; font-size: 12px; }

/* ================= v12.3 · 浏览态首页（先了解，后登录） ================= */
/* 旧的登录页标题 / 资质块 / 落款全部交给新首页重排，避免文字堆叠 */
.auth.is-guest > .auth-top,
.auth.is-guest > .auth-hero,
.auth.is-guest > #v12LoginTrust,
.auth.is-guest > .auth-foot,
.auth.is-guest > .auth-panel { display: none !important; }

#v12GuestHome { position: relative; z-index: 2; width: 100%; box-sizing: border-box; padding: 20px 0 138px; }

.g-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.g-brand { display: flex; align-items: center; gap: 10px; }
.g-brand img { width: 38px; height: 38px; border-radius: 11px; background: #fff; padding: 5px; box-sizing: border-box; }
.g-brand b { display: block; color: #fff; font-size: 16px; font-weight: 600; letter-spacing: .5px; }
.g-brand span { display: block; color: rgba(255,255,255,.55); font-size: 10.5px; margin-top: 2px; letter-spacing: 1px; }
.g-badge { color: #BFE3FF; border: 1px solid rgba(191,227,255,.45); background: rgba(255,255,255,.08); font-size: 10.5px; padding: 5px 9px; border-radius: 20px; white-space: nowrap; }

.g-hero { margin-top: 36px; }
.g-kicker { color: #9CC9FF; font-size: 11.5px; letter-spacing: 2.5px; margin-bottom: 12px; }
.g-hero h1 { color: #fff; font-size: clamp(29px, 8.2vw, 37px); line-height: 1.32; font-weight: 700; letter-spacing: .5px; margin: 0 0 12px; }
.g-hero p { color: rgba(255,255,255,.66); font-size: 12.5px; line-height: 1.7; margin: 0; }

.g-nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 28px; }
.g-num { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 15px 6px; text-align: center; }
.g-num b { display: block; color: #fff; font-size: 26px; font-weight: 700; line-height: 1.15; letter-spacing: -.5px; }
.g-num span { display: block; color: rgba(255,255,255,.6); font-size: 10.5px; margin-top: 6px; }

.g-sec-hd { display: flex; align-items: baseline; gap: 10px; margin: 32px 0 13px; }
.g-sec-hd b { color: #fff; font-size: 18px; font-weight: 600; letter-spacing: .5px; }
.g-sec-hd span { color: rgba(255,255,255,.5); font-size: 11px; }

.g-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.g-mode { background: #fff; border: 0; border-radius: 18px; padding: 15px 13px 13px; text-align: left; box-shadow: 0 14px 34px rgba(0,20,60,.20); display: flex; flex-direction: column; min-height: 170px; cursor: pointer; font-family: inherit; -webkit-tap-highlight-color: transparent; }
.g-mode-tag { align-self: flex-start; color: #1B5BE0; background: #EAF1FF; font-size: 10px; padding: 3px 8px; border-radius: 20px; white-space: nowrap; }
.g-mode-name { color: #1F2937; font-size: 17px; font-weight: 700; margin-top: 11px; letter-spacing: .3px; }
.g-mode-price { color: #E5484D; font-size: 28px; font-weight: 700; line-height: 1.15; margin-top: 5px; }
.g-mode-price i { font-style: normal; font-size: 12px; font-weight: 500; color: #8A94A6; }
.g-mode-desc { color: #64748B; font-size: 10.5px; line-height: 1.5; margin-top: 5px; }
.g-mode-go { color: #1B5BE0; font-size: 11.5px; font-weight: 600; margin-top: auto; padding-top: 10px; }

.g-trust { margin-top: 30px; }
.g-trust .g-sec-hd { margin-top: 0; }
.g-creds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.g-cred { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: 7px 6px 9px; text-align: center; cursor: pointer; font-family: inherit; }
.g-cred-img { display: flex; align-items: center; justify-content: center; height: 56px; border-radius: 8px; background: rgba(255,255,255,.9); overflow: hidden; }
.g-cred-img img { width: 100%; height: 100%; object-fit: cover; }
.g-cred-img i { font-style: normal; color: #A8B4C8; font-size: 11px; letter-spacing: 1px; }
.g-cred-label { display: block; color: rgba(255,255,255,.8); font-size: 10px; margin-top: 7px; white-space: nowrap; }
.g-promises { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.g-promises span { color: #BFE3FF; border: 1px solid rgba(191,227,255,.35); border-radius: 20px; padding: 4px 9px; font-size: 10.5px; }
.g-trust-foot { color: rgba(255,255,255,.55); font-size: 10.5px; line-height: 1.6; margin-top: 10px; }

.g-about { display: block; width: 100%; margin-top: 20px; background: transparent; border: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.85); border-radius: 12px; padding: 12px; font-size: 12.5px; font-family: inherit; cursor: pointer; }
.g-wintip { color: rgba(255,255,255,.42); font-size: 10px; line-height: 1.6; margin-top: 12px; text-align: center; }
.g-foot { color: rgba(255,255,255,.32); font-size: 10px; text-align: center; margin-top: 12px; }

.g-bottom { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: 14px 26px calc(12px + env(safe-area-inset-bottom)); box-sizing: border-box; background: linear-gradient(180deg, rgba(6,25,63,0), rgba(6,25,63,.94) 38%); }
.g-cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 52px; border: 0; border-radius: 16px; background: #fff; color: #123C9C; font-size: 16.5px; font-weight: 700; font-family: inherit; box-shadow: 0 10px 28px rgba(0,20,60,.3); cursor: pointer; }
.g-cta span { font-size: 20px; font-weight: 400; }
.g-bottom p { color: rgba(255,255,255,.55); font-size: 10.5px; text-align: center; margin: 8px 0 0; }

/* ---- 底部登录弹层（默认收起） ---- */
.v12-sheet-mask { position: fixed; inset: 0; z-index: 200; background: rgba(4,15,40,.62); display: flex; align-items: flex-end; opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; }
.v12-sheet-mask.show { opacity: 1; visibility: visible; }
.v12-login-sheet { position: relative; width: 100%; max-height: 88vh; overflow-y: auto; -webkit-overflow-scrolling: touch; background: #fff; border-radius: 22px 22px 0 0; padding: 10px 20px calc(20px + env(safe-area-inset-bottom)); box-sizing: border-box; transform: translateY(100%); transition: transform .26s cubic-bezier(.2,.8,.2,1); }
.v12-sheet-mask.show .v12-login-sheet { transform: translateY(0); }
.v12-sheet-grab { width: 38px; height: 4px; border-radius: 4px; background: #D9E0EC; margin: 2px auto 12px; }
.v12-sheet-x { position: absolute; right: 14px; top: 10px; width: 30px; height: 30px; border: 0; background: #F2F5FA; border-radius: 50%; color: #64748B; font-size: 14px; cursor: pointer; }
.v12-sheet-hd { margin-bottom: 2px; padding-right: 34px; }
.v12-sheet-hd b { display: block; color: #1F2937; font-size: 18px; font-weight: 700; }
.v12-sheet-hd span { display: block; color: #64748B; font-size: 11.5px; margin-top: 5px; line-height: 1.6; }
.v12-login-sheet .auth-panel { position: static !important; margin: 0 !important; padding: 14px 0 0 !important; background: transparent !important; border-radius: 0 !important; box-shadow: none !important; }
.v12-login-sheet .panel-title, .v12-login-sheet .panel-sub { display: none !important; }
body.v12-sheet-open { overflow: hidden; }

/* 微信授权确认 / 关于我们 / 提示必须盖在登录弹层之上 */
.wxauth { z-index: 400 !important; }
.v12-mask, .v12-lightbox { z-index: 420 !important; }
#toast, #loading { z-index: 500 !important; }

@media (min-width: 560px) {
  .v12-mask { align-items: center; }
  .v12-sheet { border-radius: 16px; max-height: 80vh; }
  .v12-modes { gap: 14px; }
  .v12-cred-thumb { height: 104px; }
  .v12-login-sheet { max-width: 480px; margin: 0 auto; border-radius: 22px 22px 0 0; }
  #v12GuestHome { max-width: 480px; margin: 0 auto; }
  .g-bottom { max-width: 480px; margin: 0 auto; }
}
