/* ============================================================
   presale-v3.css — WOW presale.html 深海军蓝 · Web3 科技品牌覆盖层
   加载在既有 CSS 之后，将旧的浅色/紫金主题强制统一为：
   · 深海军蓝页面背景（--wv-grad-page）
   · 白色/浅灰内容卡（--wv-surface）
   · 科技蓝 + 青绿主强调（--wv-blue / --wv-teal）
   · 少量荧光绿 / 亮黄做状态（--wv-success / --wv-warn）
   · 14–18px 圆角 · 低透明度白/蓝灰边框 · 柔和阴影
   复用 wow-v3.css 的 --wv-* 设计令牌，不另起一套颜色。
   ============================================================ */

/* ---------- 1) 令牌映射：把旧浅色主题 token 重映射到 --wv-* ----------
   旧 ido-subscription.css / genesis-value.css 大量使用 --ido-* 与 --gv-*，
   这里统一把它们的取值指向 wow-v3 的设计令牌，即可自动覆盖绝大多数卡片、边框与文字。 */
:root {
  /* ido-subscription.css 旧 token */
  --ido-ink: var(--wv-text, #12223f);
  --ido-copy: var(--wv-text-2, #4d6b93);
  --ido-muted: var(--wv-text-3, #7d93b6);
  --ido-line: var(--wv-border, #dde8f6);
  --ido-line-strong: var(--wv-border-strong, #c6d7f0);
  --ido-surface: var(--wv-surface, #ffffff);
  --ido-surface-2: var(--wv-surface-2, #f4f8fd);
  --ido-surface-3: var(--wv-surface-3, #eaf3fd);
  /* 原紫色 → 青绿；原主绿 → 科技蓝；原橙色 → 亮黄状态色 */
  --ido-purple: var(--wv-teal, #06b6d4);
  --ido-purple-light: rgba(6, 182, 212, 0.10);
  --ido-green: var(--wv-blue, #1d63f2);
  --ido-green-light: rgba(29, 99, 242, 0.10);
  --ido-orange: var(--wv-warn, #fbbf24);
  --ido-shadow: var(--wv-shadow-sm, 0 4px 14px rgba(4, 16, 31, 0.06));
  --ido-radius: 16px;
  --ido-radius-sm: 12px;

  /* genesis-value.css 旧 token */
  --gv-ink: var(--wv-text, #12223f);
  --gv-copy: var(--wv-text-2, #4d6b93);
  --gv-muted: var(--wv-text-3, #7d93b6);
  --gv-line: var(--wv-border, #dde8f6);
  --gv-surface: var(--wv-surface, #ffffff);
  --gv-bg-soft: var(--wv-surface-2, #f4f8fd);
  --gv-radius: 16px;
  --gv-radius-sm: 12px;
  --gv-shadow: var(--wv-shadow-sm, 0 4px 14px rgba(4, 16, 31, 0.06));
  --gv-shadow-hover: var(--wv-shadow, 0 14px 38px rgba(3, 10, 24, 0.12));
  /* 四档凭证配色：原紫/橙 → 科技蓝 + 青绿；橙色位用亮黄做状态 */
  --gv-t15: var(--wv-teal, #06b6d4);
  --gv-t15-soft: rgba(6, 182, 212, 0.12);
  --gv-t14: var(--wv-teal, #06b6d4);
  --gv-t14-soft: rgba(6, 182, 212, 0.12);
  --gv-t13: var(--wv-blue, #1d63f2);
  --gv-t13-soft: rgba(29, 99, 242, 0.12);
  --gv-t12: var(--wv-warn, #fbbf24);
  --gv-t12-soft: rgba(251, 191, 36, 0.14);
  --gv-up: var(--wv-success, #10b981);
  --gv-down: var(--wv-error, #ef4565);
  --gv-flat: var(--wv-text-3, #7d93b6);
}

/* ---------- 2) 页面主体：深海军蓝动态背景（强化，防旧浅色残留） ---------- */
body.presale-page {
  background: var(--wv-grad-page,
    radial-gradient(1100px 600px at 82% -8%, rgba(29, 99, 242, 0.16), transparent 60%),
    radial-gradient(900px 520px at 8% 110%, rgba(6, 182, 212, 0.12), transparent 60%),
    linear-gradient(160deg, #04101f 0%, #051a33 55%, #07244a 100%)) !important;
  background-attachment: fixed;
  color: var(--wv-text, #12223f);
}
body.presale-page .presale-shell {
  background: transparent !important;
  min-width: 0;
}

/* ============================================================
   3) Tab 栏（presale-tabs / presale-tab）— 深色玻璃 + 蓝青强调
   ============================================================ */
body.presale-page .presale-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 0 14px;
  background: rgba(6, 18, 38, 0.55) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--wv-border-soft, rgba(168, 200, 235, 0.22));
}
body.presale-page .presale-tab {
  min-height: 46px;
  border: 1px solid var(--wv-border-soft, rgba(168, 200, 235, 0.24));
  border-radius: 14px;
  color: var(--wv-text-2, #4d6b93);
  background: rgba(255, 255, 255, 0.94) !important;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: color .18s ease, background .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body.presale-page .presale-tab:hover {
  color: var(--wv-blue, #1d63f2);
  background: rgba(255, 255, 255, 1) !important;
}
body.presale-page .presale-tab.is-active {
  color: #fff;
  border-color: transparent;
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%)) !important;
  box-shadow: 0 10px 22px rgba(29, 99, 242, 0.26);
}

/* ============================================================
   4) IDO 英雄区（ido-launch-hero--compact）重主题
   去掉大面积紫/金，改为白卡 + 蓝青辉光
   ============================================================ */
#presale-panel .ido-launch-hero--compact {
  background:
    radial-gradient(circle at 78% 18%, var(--wv-bg-glow-a, rgba(29, 99, 242, 0.10)), transparent 26rem),
    radial-gradient(circle at 12% 100%, var(--wv-bg-glow-b, rgba(6, 182, 212, 0.08)), transparent 24rem),
    linear-gradient(135deg, #ffffff 0%, var(--wv-surface-2, #f4f8fd) 55%, var(--wv-surface-3, #eaf3fd) 100%);
  border: 1px solid var(--wv-border-strong, #c6d7f0);
  border-radius: 16px;
  box-shadow: var(--wv-shadow, 0 14px 38px rgba(3, 10, 24, 0.12));
}
#presale-panel .ido-launch-hero--compact h1 em {
  background: var(--wv-grad-text, linear-gradient(115deg, #22d3ee 0%, #3b82f6 70%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
#presale-panel .ido-launch-hero--compact h1 em svg {
  color: var(--wv-warn, #fbbf24);
  filter: none;
}
/* 英雄视觉圆币：紫 → 深海军蓝 + 青 */
#presale-panel .ido-main-coin {
  border: 11px solid var(--wv-teal, #06b6d4);
  background: radial-gradient(circle at 35% 25%, #7cd6ff, var(--wv-blue, #1d63f2) 58%, #0a2c63);
  box-shadow:
    inset -18px -12px 28px rgba(2, 12, 34, 0.42),
    inset 12px 9px 20px rgba(255, 255, 255, 0.3),
    0 0 0 4px var(--wv-teal-2, #22d3ee),
    0 18px 44px rgba(29, 99, 242, 0.34);
}
#presale-panel .ido-stage-ring.ring-back {
  border: 4px solid var(--wv-blue, #1d63f2);
  background: linear-gradient(180deg, #eaf6ff, var(--wv-teal-2, #22d3ee) 28%, var(--wv-blue, #1d63f2) 42%, #0c2f66 78%, var(--wv-blue, #1d63f2));
  box-shadow: 0 11px 0 #0b2855, 0 18px 32px rgba(29, 99, 242, 0.28);
}
#presale-panel .ido-stage-ring.ring-front {
  border: 3px solid var(--wv-teal-2, #22d3ee);
  background: radial-gradient(ellipse, #fff 0 5%, #5cc6ff 24%, var(--wv-blue, #1d63f2) 55%, #0a2c63 76%);
  box-shadow: 0 0 20px rgba(34, 211, 238, 0.26);
}
#presale-panel .ido-mini-coin {
  color: #fff;
  background: var(--wv-blue, #1d63f2);
  box-shadow: 0 10px 20px rgba(29, 99, 242, 0.24);
}
#presale-panel .ido-mini-coin.coin-a { border: 3px solid #48dbff; }
#presale-panel .ido-mini-coin.coin-b { border: 3px solid var(--wv-warn, #fbbf24); }
#presale-panel .ido-mini-coin.coin-c { border: 3px solid #37aee2; }

/* ============================================================
   5) IDO 认购面板（报价 / 创建订单 / 认购输入 / 付款）
   ============================================================ */
#presale-panel .subscription-card-head {
  background: linear-gradient(135deg, #ffffff, var(--wv-surface-2, #f4f8fd));
}
#presale-panel .step-label > span {
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%));
}
/* 主按钮：绿 → 蓝青渐变 */
#presale-panel .primary-action,
#presale-panel .ido-launch-actions .primary-action {
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%));
  box-shadow: 0 12px 24px rgba(29, 99, 242, 0.24);
}
#presale-panel .primary-action:hover,
#presale-panel .ido-launch-actions .primary-action:hover {
  box-shadow: 0 16px 32px rgba(29, 99, 242, 0.32);
}
/* 次按钮：白底 + 蓝灰描边，hover 科技蓝 */
#presale-panel .secondary-action {
  color: var(--wv-text, #12223f);
  border-color: var(--wv-border-strong, #c6d7f0);
  background: #fff;
}
#presale-panel .secondary-action:hover {
  border-color: var(--wv-blue-2, #3b82f6);
  color: var(--wv-blue, #1d63f2);
  background: var(--wv-surface-3, #eaf3fd);
}
/* 金额输入 / 预估框：焦点蓝 */
#presale-panel .amount-input:focus-within {
  border-color: var(--wv-blue, #1d63f2);
  box-shadow: 0 0 0 3px rgba(29, 99, 242, 0.10);
}
#presale-panel .amount-input span {
  color: var(--wv-blue, #1d63f2);
}
#presale-panel .estimate-display strong {
  color: var(--wv-blue, #1d63f2);
}
/* 支付方式卡片选中态：蓝青 */
#presale-panel .payment-method:hover { border-color: var(--wv-blue-2, #3b82f6); }
#presale-panel .payment-method.is-selected {
  border-color: var(--wv-blue-2, #3b82f6);
  background: var(--wv-bg-glow-a, rgba(29, 99, 242, 0.08));
  box-shadow: none;
}
#presale-panel .payment-method.is-selected .method-icon {
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%));
  box-shadow: 0 8px 18px rgba(29, 99, 242, 0.26);
}
#presale-panel .payment-method.is-selected .method-check { border-color: var(--wv-blue, #1d63f2); }
#presale-panel .payment-method.is-selected .method-check:after { background: var(--wv-blue, #1d63f2); }
/* 认购信息预览 */
#presale-panel .ido-order-preview {
  border: 1px solid var(--wv-border, #dde8f6);
  border-radius: 12px;
  background: var(--wv-surface-2, #f4f8fd);
}
#presale-panel .ido-order-preview .preview-row { border-bottom: 1px dashed var(--wv-border, #dde8f6); }
/* 侧边预估卡的权益顶条与图标：统一蓝 / 青 / 亮黄 / 绿 */
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(1)::before { background: linear-gradient(90deg, var(--wv-teal, #06b6d4), rgba(6, 182, 212, 0.12)); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(2)::before { background: linear-gradient(90deg, var(--wv-blue, #1d63f2), rgba(29, 99, 242, 0.12)); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(3)::before { background: linear-gradient(90deg, var(--wv-warn, #fbbf24), rgba(251, 191, 36, 0.12)); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(4)::before { background: linear-gradient(90deg, var(--wv-success, #10b981), rgba(16, 185, 129, 0.12)); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(1):hover { border-color: rgba(6, 182, 212, 0.4); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(2):hover { border-color: rgba(29, 99, 242, 0.4); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(3):hover { border-color: rgba(251, 191, 36, 0.4); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(4):hover { border-color: rgba(16, 185, 129, 0.4); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(1) i { background: rgba(6, 182, 212, 0.12); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(2) i { background: rgba(29, 99, 242, 0.12); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(3) i { background: rgba(251, 191, 36, 0.15); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(4) i { background: rgba(16, 185, 129, 0.12); }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(1) small { background: rgba(6, 182, 212, 0.12); color: #0e7490; }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(2) small { background: rgba(29, 99, 242, 0.12); color: #1d4ed8; }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(3) small { background: rgba(251, 191, 36, 0.16); color: #b45309; }
#presale-panel .ido-estimate-card .estimate-perks > span:nth-child(4) small { background: rgba(16, 185, 129, 0.13); color: #059669; }
#presale-panel .ido-estimate-card .estimate-value { background: var(--wv-bg-glow-a, rgba(29, 99, 242, 0.08)); }
#presale-panel .ido-success-card {
  border-color: rgba(6, 182, 212, 0.32);
  background: linear-gradient(145deg, #ffffff, var(--wv-surface-2, #f4f8fd));
  box-shadow: var(--wv-shadow, 0 14px 38px rgba(3, 10, 24, 0.12));
}
#presale-panel .success-coin {
  background: radial-gradient(circle at 35% 25%, #7cd6ff, var(--wv-blue, #1d63f2) 58%, #0a2c63);
  box-shadow:
    inset -12px -8px 20px rgba(2, 12, 34, 0.42),
    inset 8px 6px 14px rgba(255, 255, 255, 0.3),
    0 0 0 3px var(--wv-teal-2, #22d3ee),
    0 12px 32px rgba(29, 99, 242, 0.3);
}
#presale-panel .next-step.is-active {
  border-color: rgba(29, 99, 242, 0.4);
  background: var(--wv-bg-glow-a, rgba(29, 99, 242, 0.08));
}
#presale-panel .next-step.is-active b { background: var(--wv-blue, #1d63f2); }
#presale-panel .icon-copy { color: var(--wv-blue, #1d63f2); }

/* ============================================================
   6) 订单中心（白色卡片 + 状态徽标）
   原 presale.css 的 oc-* 为深海军蓝，这里整体切换为白色/浅灰卡与蓝青强调，
   状态色分别映射荧光绿（成功）/亮黄（待审核 / 处理中）/红（拒绝/退款/失败）。
   ============================================================ */
.oc-section { min-width: 0; }
/* 门禁 / 空态 / 加载态 / 错误态：视觉对齐 .wv-empty 与 .wv-skeleton */
.oc-gate,
.oc-state {
  border: 1px dashed var(--wv-border-strong, #c6d7f0);
  border-radius: 14px;
  color: var(--wv-text-2, #4d6b93);
  background: var(--wv-surface-2, #f4f8fd);
}
.oc-gate .oc-connect-btn { width: auto; justify-self: start; margin: 0; }
.oc-empty { display: grid; gap: 6px; text-align: center; padding: 26px 20px; }
.oc-empty strong { color: var(--wv-text, #12223f); font-size: 14.5px; }
.oc-empty span { color: var(--wv-text-3, #7d93b6); font-size: 12.5px; }
/* 加载态：骨架闪烁 */
.oc-loading {
  position: relative;
  overflow: hidden;
  color: var(--wv-text-3, #7d93b6);
  background:
    linear-gradient(90deg, var(--wv-surface-3, #eaf3fd) 25%, var(--wv-border-soft, rgba(168, 200, 235, 0.22)) 45%, var(--wv-surface-3, #eaf3fd) 65%);
  background-size: 200% 100%;
  animation: wv-shimmer 1.4s infinite linear;
  border-radius: 12px;
  border-style: solid;
}
.oc-error { color: var(--wv-error, #ef4565); border-color: rgba(239, 69, 101, 0.35); background: rgba(239, 69, 101, 0.08); }
/* 骨架闪烁动画（与 wow-v3.css 的 .wv-skeleton 同源，本地定义以防未加载依赖） */
@keyframes wv-shimmer { to { background-position: -200% 0; } }

/* 订单切换卡 */
.oc-tab {
  border: 1px solid var(--wv-border, #dde8f6);
  border-radius: 12px;
  color: var(--wv-text-2, #4d6b93);
  background: var(--wv-surface-2, #f4f8fd);
  min-width: 0;
}
.oc-tab b { color: var(--wv-text, #12223f); }
.oc-tab > span { color: var(--wv-text-3, #7d93b6); background: rgba(125, 147, 182, 0.14); }
.oc-tab.is-active { border-color: var(--wv-blue, #1d63f2); background: var(--wv-bg-glow-a, rgba(29, 99, 242, 0.08)); }

/* 订单详情卡 */
.oc-detail {
  border: 1px solid var(--wv-border, #dde8f6);
  border-radius: 16px;
  background: var(--wv-surface, #ffffff);
  box-shadow: var(--wv-shadow-sm, 0 4px 14px rgba(4, 16, 31, 0.06));
}
.oc-detail-head { border-bottom: 1px solid var(--wv-border, #dde8f6); }

/* 订单状态徽标（含订单切换 tab 内徽标）——统一共用 */
.oc-status-badge,
.oc-tab > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  padding: 3px 11px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  white-space: nowrap;
}
/* 成功：已确认/已发放/已完成 → 荧光绿 */
.oc-status-badge[data-status="confirmed"],
.oc-status-badge[data-status="approved"],
.oc-status-badge[data-status="completed"],
.oc-status-badge[data-status="issued"],
.oc-status-badge[data-status="sent"],
.oc-status-badge[data-status="delivered"],
.oc-tab > span[data-status="confirmed"] { background: rgba(16, 185, 129, 0.13); color: #059669; }
/* 待审核 / 处理中：待付款/审核中/排队中/未开始 → 亮黄 */
.oc-status-badge[data-status="pending"],
.oc-status-badge[data-status="processing"],
.oc-status-badge[data-status="queued"],
.oc-status-badge[data-status="not_started"],
.oc-status-badge[data-status="not_issued"],
.oc-status-badge[data-status="awaiting_payment"],
.oc-status-badge[data-status="payment_submitted"],
.oc-status-badge[data-status="under_review"],
.oc-status-badge[data-status="minted"],
.oc-tab > span[data-status="pending"],
.oc-tab > span[data-status="processing"] { background: rgba(251, 191, 36, 0.16); color: #b45309; }
/* 已拒绝 / 已退款 / 已过期 / 已取消 / 失败 → 红 */
.oc-status-badge[data-status="rejected"],
.oc-status-badge[data-status="expired"],
.oc-status-badge[data-status="cancelled"],
.oc-status-badge[data-status="refunded"],
.oc-status-badge[data-status="failed"],
.oc-tab > span[data-status="rejected"],
.oc-tab > span[data-status="expired"],
.oc-tab > span[data-status="cancelled"],
.oc-tab > span[data-status="refunded"] { background: rgba(239, 69, 101, 0.12); color: var(--wv-error, #ef4565); }
/* 链上建仓状态 */
.oc-release-badge[data-release="release_confirmed"] { background: rgba(16, 185, 129, 0.13); color: #059669; }
.oc-release-badge[data-release="release_failed"] { background: rgba(239, 69, 101, 0.12); color: var(--wv-error, #ef4565); }
.oc-release-error { margin: 8px 0 0; font-size: 12px; color: var(--wv-error, #ef4565); }

/* 冲正 / 欠款 / 拒绝原因 / 运营备注 */
.oc-flags > span {
  border: 1px solid rgba(251, 191, 36, 0.5);
  background: rgba(251, 191, 36, 0.12);
  color: #b45309;
}
.oc-reason { border: 1px solid rgba(239, 69, 101, 0.35); background: rgba(239, 69, 101, 0.08); color: var(--wv-error, #ef4565); }
.oc-admin-note { border: 1px solid var(--wv-border, #dde8f6); background: var(--wv-surface-2, #f4f8fd); color: var(--wv-text-2, #4d6b93); }
.oc-admin-note b { color: var(--wv-text, #12223f); }

/* 订单元信息卡片 */
.oc-meta-cell {
  border: 1px solid var(--wv-border, #dde8f6);
  border-radius: 10px;
  color: var(--wv-text-3, #7d93b6);
  background: var(--wv-surface-2, #f4f8fd);
}
.oc-meta-cell > strong { color: var(--wv-text, #12223f); }
.oc-link-cell a { color: var(--wv-blue, #1d63f2); }
.oc-link-cell a:hover { color: var(--wv-blue-2, #3b82f6); }

/* 状态时间线 */
.oc-timeline { border-top: 1px solid var(--wv-border, #dde8f6); }
.oc-timeline > strong { color: var(--wv-text, #12223f); }
.oc-tl-row::before { background: rgba(29, 99, 242, 0.18); }
.oc-tl-row:first-child::before { background: linear-gradient(180deg, transparent, rgba(29, 99, 242, 0.18)); }
.oc-tl-row i { background: var(--wv-teal, #06b6d4); box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.35); }
.oc-tl-row span { color: var(--wv-text-2, #4d6b93); }
.oc-tl-row u { color: var(--wv-text-3, #7d93b6); }
.oc-timeline-empty { color: var(--wv-text-3, #7d93b6); }

/* ============================================================
   7) 价值释放区域（gv-*）：
   原始认购 / 累计价值释放 / 剩余权益 / 当前释放状态 / WOW 待解锁
   进度条去掉残留紫色渐变 → 蓝青渐变
   ============================================================ */
.gv-bar > i,
.gv-bar-thin > i {
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%));
}
/* 领取面板：紫色描边 → 青绿描边 */
.gv-claim-box {
  border-color: rgba(6, 182, 212, 0.26);
}
.gv-claim-btn {
  background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%));
  box-shadow: 0 10px 22px rgba(29, 99, 242, 0.22);
}
.gv-claim-btn[disabled] { background: var(--gv-line, var(--wv-border, #dde8f6)); color: var(--gv-muted, var(--wv-text-3, #7d93b6)); box-shadow: none; }
.gv-price-warning { border: 1px solid rgba(251, 191, 36, 0.45); background: rgba(251, 191, 36, 0.12); color: #b45309; }

/* ============================================================
   8) 抗横向滚动（375px 不溢出）+ 地址/哈希安全换行
   ============================================================ */
body.presale-page .presale-grid,
body.presale-page .presale-grid > *,
body.presale-page .panel,
body.presale-page .panel-heading,
body.presale-page .panel-heading > *,
body.presale-page .subscription-workbench,
body.presale-page .subscription-main,
body.presale-page .subscription-side,
body.presale-page .amount-grid,
body.presale-page .gv-figures,
body.presale-page .gv-figures > div,
body.presale-page .oc-meta,
body.presale-page .oc-detail,
body.presale-page .gv-tiers,
body.presale-page .gv-tiers > * { min-width: 0; }

/* 长订单号 / 钱包地址 / 交易哈希：等宽字体 + 断行 */
.oc-meta-cell.oc-addr > strong,
.oc-meta-cell.oc-link-cell,
.success-order-row strong,
.certificate-order .order-row strong {
  font-family: var(--wv-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace) !important;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* ============================================================
   9) 移动端（≤560px）：单列 + 最小按钮高度 44px
   ============================================================ */
@media (max-width: 560px) {
  body.presale-page .presale-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  body.presale-page .presale-tabs::-webkit-scrollbar { display: none; }
  body.presale-page .presale-tab { flex: 1 0 110px; min-height: 44px; }
  /* 认购面板各步骤 / 预估区单列 */
  #presale-panel .subscription-workbench { grid-template-columns: 1fr; }
  #presale-panel .amount-grid { grid-template-columns: 1fr; }
  #presale-panel .asset-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #presale-panel .ido-estimate-card .estimate-perks { grid-template-columns: 1fr; }
  /* 订单列表单列 */
  .oc-section { padding: 18px; }
  .oc-detail { padding: 16px; }
  .oc-meta { grid-template-columns: 1fr; }
  .oc-detail-head { flex-direction: column; align-items: flex-start; }
  .oc-tl-row { grid-template-columns: 16px minmax(0, 1fr); }
  .oc-tl-row u { grid-column: 2; margin: 0; }
  .oc-meta-cell.oc-addr > strong,
  .oc-meta-cell.oc-link-cell { white-space: normal; text-overflow: clip; }
  /* 价值释放区单列 */
  .gv-claim { grid-template-columns: 1fr; }
  .gv-tiers { grid-template-columns: 1fr; }
  .gv-metrics { grid-template-columns: 1fr 1fr; }
  .gv-figures { grid-template-columns: 1fr 1fr; }
  /* 按钮最小高度 */
  #presale-panel .primary-action,
  #presale-panel .secondary-action,
  .gv-claim-btn,
  .oc-connect-btn { min-height: 44px; }
}

@media (max-width: 420px) {
  .gv-metrics { grid-template-columns: 1fr; }
  .gv-figures { grid-template-columns: 1fr; }
}

/* ============================================================
   v3 Presale 移动端防横向溢出
   （顶部导航已统一走 header-unified/nav-unified，不再单独覆盖 topbar）
   ============================================================ */
@media (max-width: 640px) {
  body.presale-page .presale-shell { overflow-x: clip; }
}

/* ============================================================
   移动端顶部语言选择器：折叠为国旗圆钮，与全站（styles.css）一致
   ============================================================ */
@media (max-width: 720px) {
  body.presale-page .header-actions .language-picker > .language {
    width: 36px;
    min-width: 0;
    padding: 0 !important;
    justify-content: center;
    border-radius: 50% !important;
    font-size: 0;
  }
  body.presale-page .header-actions .language-picker > .language .language-current-flag {
    width: 22px;
    height: 22px;
  }
  body.presale-page .header-actions .language-picker [data-language-current-code],
  body.presale-page .header-actions .language-picker .language-chevron {
    display: none !important;
    font-size: 0;
  }
}



/* ================= V3-USDT：充值中心 + 认购余额（2026-08-25） ================= */
.wv-deposit-section {
  background: var(--wv-surface, #ffffff);
  border: 1px solid var(--gv-line, #dde8f6);
  border-radius: 18px;
  padding: 22px 22px 26px;
  margin: 22px 0;
  box-shadow: var(--gv-shadow, 0 4px 14px rgba(4, 16, 31, 0.06));
}
.wv-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wv-section-head h2 { margin: 0; font-size: 20px; color: var(--wv-text, #12223f); display: flex; align-items: center; gap: 8px; }
.wv-section-head h2 i { color: var(--wv-teal, #06b6d4); font-style: normal; }
.wv-section-head p { margin: 6px 0 0; color: var(--gv-muted, #7d93b6); font-size: 13px; line-height: 1.6; }

/* 余额概览 */
.wv-balance-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.wv-balance-card { background: var(--gv-bg-soft, #f4f8fd); border: 1px solid var(--gv-line, #dde8f6); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; min-height: 76px; }
.wv-balance-card.-primary { background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%)); border: none; color: #fff; }
.wv-balance-card.-primary span { color: rgba(255, 255, 255, 0.82); }
.wv-balance-card span { font-size: 12px; color: var(--gv-muted, #7d93b6); }
.wv-balance-card strong { font-size: 20px; font-weight: 700; color: var(--wv-text, #12223f); word-break: break-word; }
.wv-balance-card.-primary strong { color: #fff; }
.wv-balance-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.wv-balance-actions .primary-action, .wv-balance-actions .secondary-action { min-height: 44px; }

/* 充值流程 */
.wv-deposit-flow { margin-top: 18px; border-top: 1px dashed var(--gv-line, #dde8f6); padding-top: 16px; }
.wv-dep-steps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.wv-dep-steps span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--gv-muted, #7d93b6); padding: 6px 10px; border-radius: 999px; background: var(--gv-bg-soft, #f4f8fd); border: 1px solid var(--gv-line, #dde8f6); }
.wv-dep-steps span b { font-weight: 700; }
.wv-dep-steps span.is-active { background: var(--wv-grad-primary, linear-gradient(135deg, #1d63f2 0%, #06b6d4 100%)); border-color: transparent; color: #fff; }
.wv-dep-panel { display: flex; flex-direction: column; gap: 12px; }
.wv-dep-panel .field-label { margin: 4px 0 0; }
.wv-dep-panel .field-label em { font-style: normal; color: var(--gv-muted, #7d93b6); font-weight: 500; }
.wv-dep-panel .primary-action, .wv-dep-panel .secondary-action { min-height: 44px; }

/* 网络卡片 */
.wv-network-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.wv-net-card { position: relative; min-height: 72px; border: 1.5px solid var(--gv-line, #dde8f6); border-radius: 12px; background: var(--wv-surface, #ffffff); cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 12px 14px; text-align: left; transition: border-color .15s ease, box-shadow .15s ease; }
.wv-net-card:hover { border-color: var(--wv-blue, #1d63f2); box-shadow: var(--gv-shadow, 0 4px 14px rgba(4, 16, 31, 0.06)); }
.wv-net-card.is-selected { border-color: var(--wv-blue, #1d63f2); box-shadow: 0 0 0 3px rgba(29, 99, 242, 0.14); }
.wv-net-logo { width: 40px; height: 40px; border-radius: 10px; overflow: hidden; background: var(--gv-bg-soft, #f4f8fd); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.wv-net-logo img { width: 100%; height: 100%; object-fit: contain; }
.wv-net-logo-trx { background: linear-gradient(135deg, #ff6a3d, #e0273e); color: #fff; font-weight: 800; font-size: 20px; }
.wv-net-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wv-net-meta strong { font-size: 15px; color: var(--wv-text, #12223f); }
.wv-net-meta small { font-size: 11px; color: var(--gv-muted, #7d93b6); line-height: 1.4; }
.wv-net-check { margin-left: auto; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--gv-line, #dde8f6); flex: 0 0 auto; position: relative; }
.wv-net-card.is-selected .wv-net-check { border-color: var(--wv-blue, #1d63f2); background: var(--wv-blue, #1d63f2); }
.wv-net-card.is-selected .wv-net-check::after { content: "✓"; color: #fff; font-size: 12px; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.deposit-min-note { margin: 0; font-size: 12px; color: var(--gv-muted, #7d93b6); }

/* 订单/转账 */
.deposit-order-head { background: var(--gv-bg-soft, #f4f8fd); border: 1px dashed var(--gv-line, #dde8f6); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.deposit-order-row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.deposit-order-row span { color: var(--gv-muted, #7d93b6); }
.deposit-order-row strong { color: var(--wv-text, #12223f); text-align: right; word-break: break-word; }
.deposit-qr-wrap { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 8px 0; }
.deposit-qr-wrap canvas { width: 188px !important; height: 188px !important; max-width: 100%; border: 1px solid var(--gv-line, #dde8f6); border-radius: 12px; background: #fff; padding: 6px; box-sizing: border-box; }
.deposit-qr-wrap p { margin: 0; font-size: 12px; color: var(--gv-muted, #7d93b6); }
.deposit-addr-block { display: flex; flex-direction: column; gap: 10px; }
.deposit-addr-block .transfer-row code { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: var(--wv-text-2, #4d6b93); background: var(--gv-bg-soft, #f4f8fd); border: 1px solid var(--gv-line, #dde8f6); border-radius: 10px; padding: 10px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.deposit-addr-block .transfer-row button { white-space: nowrap; }
.deposit-notes { background: #fffbe6; border: 1px solid #f5e3a8; border-radius: 12px; padding: 12px 14px; }
.deposit-notes h4 { margin: 0 0 6px; font-size: 13px; color: var(--wv-warn-ink, #8a6d00); }
.deposit-notes ul { margin: 0; padding-left: 18px; }
.deposit-notes li { font-size: 12px; color: #5c4d00; line-height: 1.7; }

/* 充值记录 */
.wv-dep-records { margin-top: 16px; }
.rec-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.rec-head strong { color: var(--wv-text, #12223f); font-size: 14px; }
.rec-list { display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow: auto; }
.dep-record-row { display: flex; align-items: center; gap: 12px; background: var(--gv-bg-soft, #f4f8fd); border: 1px solid var(--gv-line, #dde8f6); border-radius: 10px; padding: 10px 12px; }
.dep-record-row .rec-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dep-record-row .rec-main b { font-size: 13px; color: var(--wv-text, #12223f); }
.dep-record-row .rec-main span { font-size: 11px; color: var(--gv-muted, #7d93b6); }
.dep-record-row .rec-status { margin-left: auto; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--gv-bg-soft, #eaf3fd); color: var(--wv-blue, #1d63f2); white-space: nowrap; }
.dep-record-row .rec-status[data-status="credited"] { background: #e7f8ef; color: var(--wv-success, #10b981); }
.dep-record-row .rec-status[data-status="reviewing"] { background: #fff4dd; color: var(--wv-warn, #b8860b); }
.dep-record-row .rec-status[data-status="rejected"] { background: #fdeaea; color: var(--wv-error, #ef4565); }
.dep-record-row .text-action { white-space: nowrap; }

/* 余额确认（订阅表单内） */
.balance-subscribe-box { background: var(--gv-bg-soft, #f4f8fd); border: 1px dashed var(--gv-line, #dde8f6); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.balance-line { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.balance-line span { color: var(--gv-muted, #7d93b6); }
.balance-line b { color: var(--wv-text, #12223f); }
.balance-sub-actions { margin-top: 4px; }
.balance-sub-actions .primary-action, .balance-sub-actions .secondary-action { min-height: 44px; }
.balance-insufficient { font-size: 13px; color: var(--wv-error, #ef4565); word-break: break-word; }

/* 支付方式「推荐」徽标 */
.payment-method.is-recommended { border-color: var(--wv-blue, #1d63f2); box-shadow: 0 0 0 3px rgba(29, 99, 242, 0.10); }
.payment-method .rec-tag { font-style: normal; font-size: 10px; font-weight: 700; color: #fff; background: var(--wv-warn, #f59e0b); padding: 2px 7px; border-radius: 999px; margin-left: 4px; vertical-align: 1px; }

/* 余额认购确认弹窗 */
.wv-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 18px; }
.wv-modal-mask { position: absolute; inset: 0; background: rgba(6, 15, 34, 0.55); backdrop-filter: blur(3px); }
.wv-modal-card { position: relative; width: 100%; max-width: 400px; max-height: 88vh; overflow: auto; background: var(--wv-surface, #ffffff); border: 1px solid var(--gv-line, #dde8f6); border-radius: 16px; padding: 22px; box-shadow: 0 20px 60px rgba(2, 10, 26, 0.32); }
.wv-modal-close { position: absolute; top: 12px; right: 14px; width: 28px; height: 28px; border: none; background: var(--gv-bg-soft, #f4f8fd); color: var(--gv-muted, #7d93b6); font-size: 18px; line-height: 1; border-radius: 8px; cursor: pointer; }
.wv-modal-card h3 { margin: 0 0 16px; font-size: 18px; color: var(--wv-text, #12223f); }
.wv-modal-rows { display: flex; flex-direction: column; gap: 10px; }
.wv-modal-row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; padding-bottom: 8px; border-bottom: 1px dashed var(--gv-line, #dde8f6); }
.wv-modal-row span { color: var(--gv-muted, #7d93b6); }
.wv-modal-row b { color: var(--wv-text, #12223f); text-align: right; }
.wv-modal-note { font-size: 12px; color: var(--gv-muted, #7d93b6); margin: 14px 0; }
.wv-modal-actions { display: flex; gap: 10px; }
.wv-modal-actions button { flex: 1; min-height: 44px; }

/* 移动端单列、不横向滚动 */
@media (max-width: 640px) {
  .wv-balance-strip { grid-template-columns: repeat(2, 1fr); }
  .wv-network-cards { grid-template-columns: 1fr; }
  .wv-balance-actions { flex-direction: column; }
  .wv-balance-actions button { width: 100%; }
  .wv-modal-card { padding: 18px; }
  .wv-section-head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 400px) {
  .wv-balance-strip { grid-template-columns: 1fr; }
  .deposit-addr-block .transfer-row { flex-direction: column; align-items: stretch; }
  .deposit-addr-block .transfer-row button { width: 100%; }
}

/* === method-panels 支付方式面板 === */
#method-panels{display:block;margin:16px 0}
.wv-method-panel{background:var(--wv-surface,#fff);border:1px solid var(--wv-border,#dde8f6);border-radius:16px;padding:20px;box-shadow:var(--wv-shadow-sm,0 4px 14px rgba(4,16,31,.06))}
.wv-method-panel h4{margin:0 0 6px;font-size:16px;color:var(--wv-text,#12223f)}
.wv-method-panel .wv-method-sub{color:var(--wv-text-3,#7d93b6);font-size:12.5px;margin:0 0 12px}
.wv-net-toggle{display:flex;gap:10px;margin:12px 0}
.wv-net-toggle button{flex:1;min-height:44px;border:1px solid var(--wv-border-strong,#c6d7f0);border-radius:12px;background:#fff;color:var(--wv-text-2,#4d6b93);font-weight:800;cursor:pointer}
.wv-net-toggle button.is-selected{background:var(--wv-grad-primary,linear-gradient(135deg,#1d63f2,#06b6d4));color:#fff;border-color:transparent}
.wv-official-qr{width:188px;height:188px;margin:14px auto;display:block;border:1px solid var(--wv-border,#dde8f6);border-radius:12px;object-fit:contain}
.wv-addr-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.wv-addr-row code{font-family:var(--wv-mono,monospace);word-break:break-all;background:var(--wv-surface-2,#f4f8fd);padding:8px 10px;border-radius:8px;border:1px solid var(--wv-border,#dde8f6);flex:1;min-width:0;font-size:12px}
.wv-addr-copy{min-height:44px}
.wv-method-note{color:var(--wv-text-3,#7d93b6);font-size:12.5px;line-height:1.6;margin-top:10px}
.wv-method-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
@media(max-width:560px){.wv-method-panel{padding:16px}}

