﻿/* ===========================================================
   NODEX 原型样式表
   设计基调：深色、低饱和、数字等宽、红绿只用于方向
   =========================================================== */

:root {
  --bg:          #0b0e11;
  --bg-soft:     #12161c;
  --panel:       #161a1f;
  --panel-2:     #1c2229;
  --line:        #232a32;
  --line-soft:   #1a2027;
  --text:        #eaecef;
  --text-2:      #a7b1bd;
  --muted:       #6b7684;
  --up:          #0ecb81;
  --down:        #f6465d;
  --brand:       #f0b90b;
  --brand-2:     #00d8c0;
  --radius:      14px;
  --radius-sm:   10px;
  --shadow:      0 10px 40px rgba(0, 0, 0, .45);
  --glass: rgba(11, 14, 17, .82);
  --glass-2: rgba(13, 17, 22, .94);
  --hover-bg: rgba(255, 255, 255, .025);
  --soft-bg: #0d1116;
  --hover-2: #222a33;
  --toast-bg: #232b34;  --mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, "Roboto Mono", monospace;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -.01em; }
p { margin: 0; }
button { font-family: inherit; cursor: pointer; }
input, select { font-family: inherit; }

.wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.muted { color: var(--text-2); }
.muted-2 { color: var(--muted); }
.small { font-size: 12px; }
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.up { color: var(--up); }
.down { color: var(--down); }
.flat { color: var(--text-2); }
.nowrap { white-space: nowrap; }

/* ---------- 顶部演示条 ---------- */
.demo-banner {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  font-size: 12px; padding: 7px 16px;
  background: linear-gradient(90deg, rgba(240,185,11,.14), rgba(0,216,192,.10));
  color: #d9c07a;
  border-bottom: 1px solid rgba(240,185,11,.18);
}
.demo-banner span:first-child { color: var(--brand); font-weight: 600; }

/* ---------- 顶栏 ---------- */
.topbar {
  position: sticky; top: 0; z-index: 60;
  background: var(--glass);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line-soft);
}
.topbar-inner { display: flex; align-items: center; gap: 28px; height: 62px; }

.brand { display: flex; align-items: center; gap: 9px; flex: none; }
.brand-mark {
  width: 30px; height: 30px; border-radius: 9px;
  display: grid; place-items: center;
  font-weight: 800; font-size: 16px; color: #10141a;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  box-shadow: 0 4px 16px rgba(240, 185, 11, .25);
}
.brand-name { font-weight: 700; letter-spacing: .16em; font-size: 15px; }

.nav { display: flex; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a {
  padding: 8px 11px; border-radius: 9px; color: var(--text-2);
  font-size: 14px; transition: color .16s, background .16s;
  white-space: nowrap; flex: none;
}
@media (max-width: 1280px) {
  .nav a { padding: 8px 8px; font-size: 13px; }
  .equity-mini { display: none; }
}
.nav a:hover { color: var(--text); background: var(--panel); }
.nav a.active { color: var(--text); background: var(--panel-2); }

.topbar-right { display: flex; align-items: center; gap: 14px; flex: none; margin-left: auto; }
.equity-mini { font-family: var(--mono); font-size: 12.5px; color: var(--text-2); }

/* ---------- 按钮 ---------- */
.btn {
  border: 1px solid var(--line);
  background: var(--panel-2);
  color: var(--text);
  padding: 9px 16px;
  border-radius: 10px;
  font-size: 13.5px;
  transition: transform .12s, filter .16s, background .16s;
}
.btn:hover { filter: brightness(1.15); }
.btn:active { transform: translateY(1px); }
.btn-sm { padding: 7px 13px; font-size: 12.5px; border-radius: 9px; }
.btn-primary {
  background: linear-gradient(135deg, #f5c518, #f0b90b);
  border-color: transparent; color: #16120a; font-weight: 600;
}
.btn-ghost { background: transparent; }
.btn-long { background: rgba(14,203,129,.14); border-color: rgba(14,203,129,.4); color: var(--up); font-weight: 600; }
.btn-short { background: rgba(246,70,93,.14); border-color: rgba(246,70,93,.4); color: var(--down); font-weight: 600; }
.btn-block { width: 100%; display: block; }
.btn-lg { padding: 13px 22px; font-size: 15px; border-radius: 12px; }

/* ---------- 卡片 / 通用 ---------- */
.card {
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.card-pad { padding: 20px; }
.card-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line-soft);
}
.card-head h3 { font-size: 15px; }

.section { padding: 16px 0 0; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.section-head h2 { font-size: 24px; }
.section-head p { color: var(--text-2); font-size: 13.5px; margin-top: 4px; }

.badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; padding: 2px 8px; border-radius: 999px;
  background: var(--panel-2); color: var(--text-2); border: 1px solid var(--line);
}
.badge-brand { color: var(--brand); border-color: rgba(240,185,11,.3); background: rgba(240,185,11,.08); }
.badge-up { color: var(--up); border-color: rgba(14,203,129,.3); background: rgba(14,203,129,.08); }

/* ---------- 首页 Hero ---------- */
.hero { padding: 16px 0 0; }
.hero-slide {
  position: relative; overflow: hidden;
  border-radius: 20px;
  padding: 52px 48px;
  min-height: 300px;
  display: flex; align-items: center;
  background:
    radial-gradient(900px 380px at 88% -10%, rgba(0,216,192,.20), transparent 62%),
    radial-gradient(700px 340px at 10% 110%, rgba(240,185,11,.18), transparent 60%),
    linear-gradient(135deg, #131a22, #0d1116);
  border: 1px solid var(--line);
}
.hero-slide::after {
  content: "";
  position: absolute; right: -80px; top: -80px; width: 380px; height: 380px;
  border-radius: 50%; border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 0 0 60px rgba(255,255,255,.02), 0 0 0 130px rgba(255,255,255,.015);
}
.hero-content { position: relative; z-index: 2; max-width: 620px; }
.hero h1 {
  font-size: 40px; line-height: 1.18; letter-spacing: -.02em;
  background: linear-gradient(100deg, #fff 20%, #ffd968 60%, #7ff0dd 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero .hero-sub { margin-top: 14px; color: var(--text-2); font-size: 15px; max-width: 520px; }
.hero-cta { margin-top: 26px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero-stats { margin-top: 30px; display: flex; gap: 36px; flex-wrap: wrap; }
.hero-stat b { display: block; font-family: var(--mono); font-size: 20px; }
.hero-stat span { font-size: 12px; color: var(--muted); }

.hero-side {
  position: absolute; right: 40px; bottom: -6px; z-index: 1;
  width: 320px; opacity: .96;
}

/* ---------- 行情表 ---------- */
.seg { display: flex; gap: 4px; }
.seg button {
  background: transparent; border: 0; color: var(--text-2);
  padding: 6px 12px; border-radius: 8px; font-size: 13px;
}
.seg button.on { background: var(--panel-2); color: var(--text); }

.table { width: 100%; border-collapse: collapse; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table th {
  text-align: left; font-weight: 500; font-size: 12px; color: var(--muted);
  padding: 10px 18px; border-bottom: 1px solid var(--line-soft); white-space: nowrap;
}
.table td { padding: 13px 18px; border-bottom: 1px solid var(--line-soft); font-size: 13.5px; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr { transition: background .14s; }
.table tbody tr:hover { background: var(--hover-bg); }
.table .num { text-align: right; }
.table th.num { text-align: right; }

.coin-cell { display: flex; align-items: center; gap: 11px; }
.coin-logo {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: grid; place-items: center;
  font-size: 9.5px; font-weight: 700; color: #eaecef;
  letter-spacing: -.03em; overflow: hidden; line-height: 1;
}
.coin-name { font-weight: 600; font-size: 13.5px; line-height: 1.25; }
.coin-pair { font-size: 11.5px; color: var(--muted); }

.px { font-family: var(--mono); font-size: 14px; }
.chg {
  font-family: var(--mono); font-size: 12.5px; padding: 3px 8px;
  border-radius: 7px; display: inline-block; min-width: 66px; text-align: center;
}
.chg.up { background: rgba(14,203,129,.12); color: var(--up); }
.chg.down { background: rgba(246,70,93,.12); color: var(--down); }
.chg.flat { background: var(--panel-2); color: var(--text-2); }

@keyframes flashUp { from { background: rgba(14,203,129,.22); } to { background: transparent; } }
@keyframes flashDown { from { background: rgba(246,70,93,.22); } to { background: transparent; } }
.flash-up { animation: flashUp .55s ease-out; }
.flash-down { animation: flashDown .55s ease-out; }

/* ---------- 特性 & 下载 ---------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.feature-card { padding: 26px 24px; }
.feature-ico {
  width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(135deg, rgba(240,185,11,.16), rgba(0,216,192,.10));
  border: 1px solid var(--line); margin-bottom: 16px; font-size: 19px;
  color: var(--brand);
}
.feature-card h3 { font-size: 15.5px; margin-bottom: 6px; }
.feature-card p { color: var(--text-2); font-size: 13px; }

.download {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  padding: 34px 38px; flex-wrap: wrap;
  background:
    radial-gradient(600px 240px at 85% 120%, rgba(0,216,192,.14), transparent 65%),
    linear-gradient(135deg, #151b22, #10141a);
}
.store-badges { display: flex; gap: 12px; flex-wrap: wrap; }
.store-badge {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid var(--line); background: var(--soft-bg);
  padding: 9px 16px; border-radius: 11px; font-size: 12px; color: var(--text-2);
}
.store-badge b { display: block; color: var(--text); font-size: 13.5px; font-weight: 600; line-height: 1.2; }
.store-badge i { font-style: normal; font-size: 17px; }

/* ---------- FAQ ---------- */
.faq-item { border-bottom: 1px solid var(--line-soft); }
.faq-q {
  width: 100%; text-align: left; background: transparent; border: 0; color: var(--text);
  padding: 17px 4px; font-size: 14px; display: flex; justify-content: space-between; gap: 16px; align-items: center;
}
.faq-q .chev { color: var(--muted); transition: transform .2s; }
.faq-item.open .chev { transform: rotate(45deg); }
.faq-a { display: none; padding: 0 4px 18px; color: var(--text-2); font-size: 13.5px; max-width: 820px; }
.faq-item.open .faq-a { display: block; }

/* ---------- 交易页 ---------- */
.trade-head {
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
  padding: 16px 0; border-bottom: 1px solid var(--line-soft);
}
.trade-symbol { display: flex; align-items: center; gap: 12px; }
.trade-symbol .coin-logo { width: 36px; height: 36px; }
.trade-px { font-family: var(--mono); font-size: 24px; font-weight: 600; line-height: 1.1; }
.trade-chg { font-family: var(--mono); font-size: 13px; }
.stat-row { display: flex; gap: 26px; flex-wrap: wrap; }
.stat-row div { font-size: 12px; color: var(--muted); }
.stat-row b { display: block; font-family: var(--mono); font-size: 13px; color: var(--text); font-weight: 500; }

.trade-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px 320px;
  gap: 14px;
  padding: 16px 0 60px;
  align-items: start;
}
@media (max-width: 1180px) {
  .trade-grid { grid-template-columns: minmax(0, 1fr) 320px; }
  .trade-grid .depth-panel { display: none; }
}
@media (max-width: 880px) {
  .trade-grid { grid-template-columns: minmax(0, 1fr); }
  /* 手机上把盘口/成交放回下单面板下面，交易动线才顺 */
  .trade-grid .chart-shell { order: 1; }
  .trade-grid .order-panel { order: 2; }
  .trade-grid .depth-panel { display: block; order: 3; }
}

.chart-shell { padding: 0; overflow: hidden; }
.chart-toolbar {
  display: flex; align-items: center; gap: 6px; padding: 10px 14px;
  border-bottom: 1px solid var(--line-soft); flex-wrap: wrap;
}
.chart-toolbar button {
  background: transparent; border: 0; color: var(--muted); font-size: 12px;
  padding: 4px 9px; border-radius: 7px;
}
.chart-toolbar button.on { background: var(--panel-2); color: var(--text); }
.chart-canvas-wrap { position: relative; height: 420px; }
.chart-canvas-wrap canvas { display: block; width: 100%; height: 100%; }

.depth-head { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px; font-size: 11px; color: var(--muted); padding: 10px 14px; }
.depth-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px;
  font-family: var(--mono); font-size: 11.5px;
  padding: 2px 14px; position: relative;
}
.depth-row .bar { position: absolute; inset: 0 14px 0 auto; border-radius: 3px; opacity: .14; }
.depth-row span { position: relative; z-index: 1; text-align: right; }
.depth-row span:first-child { text-align: left; }
.depth-asks .depth-row span:first-child { color: var(--down); }
.depth-bids .depth-row span:first-child { color: var(--up); }
.depth-mid {
  padding: 9px 14px; font-family: var(--mono); font-size: 16px; font-weight: 600;
  display: flex; align-items: baseline; gap: 8px; border-block: 1px solid var(--line-soft);
  margin: 6px 0;
}

/* 下单面板 */
.order-panel { padding: 0; }
.order-tabs { display: flex; gap: 2px; padding: 12px 14px 0; }
.order-tabs button {
  flex: 1; background: transparent; border: 0; color: var(--text-2);
  padding: 9px; font-size: 13px; border-bottom: 2px solid transparent;
}
.order-tabs button.on { color: var(--text); border-color: var(--brand); font-weight: 600; }
.order-body { padding: 14px; }

.side-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.side-btns button {
  padding: 11px; border-radius: 10px; border: 1px solid var(--line);
  background: var(--panel-2); color: var(--text-2); font-size: 13.5px; font-weight: 600;
}
.side-btns button.on-long { background: rgba(14,203,129,.16); border-color: var(--up); color: var(--up); }
.side-btns button.on-short { background: rgba(246,70,93,.16); border-color: var(--down); color: var(--down); }

.field { margin-bottom: 12px; }
.field-label { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.input-wrap {
  display: flex; align-items: center; gap: 8px;
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 10px; padding: 0 12px; transition: border-color .16s;
}
.input-wrap:focus-within { border-color: rgba(240,185,11,.55); }
.input-wrap input {
  flex: 1; background: transparent; border: 0; outline: 0; color: var(--text);
  font-family: var(--mono); font-size: 15px; padding: 11px 0; min-width: 0;
}
.input-wrap .unit { color: var(--muted); font-size: 12px; }
.input-wrap .suffix-btn {
  background: transparent; border: 0; color: var(--brand); font-size: 12px; padding: 4px;
}

.lev-slider { width: 100%; accent-color: var(--brand); }
.lev-marks { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--muted); margin-top: 2px; }

.pct-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 12px; }
.pct-row button {
  background: var(--panel-2); border: 1px solid var(--line); color: var(--text-2);
  font-size: 11.5px; padding: 6px 0; border-radius: 8px;
}
.pct-row button:hover { color: var(--text); border-color: var(--line); background: var(--hover-2); }

.summary { border-top: 1px dashed var(--line); margin-top: 4px; padding-top: 10px; margin-bottom: 14px; }
.summary-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); padding: 3px 0; }
.summary-row b { color: var(--text-2); font-family: var(--mono); font-weight: 500; }

/* 持仓 */
.pos-table td { font-size: 12.5px; padding: 11px 14px; }
.pos-side { font-size: 11.5px; padding: 2px 7px; border-radius: 5px; font-weight: 600; }
.pos-side.long { background: rgba(14,203,129,.14); color: var(--up); }
.pos-side.short { background: rgba(246,70,93,.14); color: var(--down); }
.pos-empty { padding: 34px; text-align: center; color: var(--muted); font-size: 13px; }
.liq-bar { height: 3px; border-radius: 2px; background: var(--line); overflow: hidden; margin-top: 5px; }
.liq-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--up), var(--brand)); }
.liq-bar.danger i { background: linear-gradient(90deg, var(--down), #ff9f43); }

/* ---------- 资产页 ---------- */
.asset-hero {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; padding: 24px 0 0;
}
@media (max-width: 880px) { .asset-hero { grid-template-columns: 1fr; } }
.equity-card {
  padding: 28px;
  background:
    radial-gradient(500px 200px at 92% -20%, rgba(240,185,11,.16), transparent 60%),
    linear-gradient(135deg, #161c23, #10141a);
}
.equity-card .big { font-family: var(--mono); font-size: 34px; font-weight: 600; letter-spacing: -.01em; }
.equity-sub { display: flex; gap: 26px; margin-top: 16px; flex-wrap: wrap; }
.equity-sub div { font-size: 12px; color: var(--muted); }
.equity-sub b { display: block; font-family: var(--mono); font-size: 15px; color: var(--text); font-weight: 500; }

.mini-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mini-card { padding: 18px 20px; }
.mini-card span { font-size: 12px; color: var(--muted); }
.mini-card b { display: block; font-family: var(--mono); font-size: 19px; margin-top: 6px; font-weight: 500; }

/* ---------- 邀请页 ---------- */
.invite-hero {
  padding: 34px;
  background:
    radial-gradient(700px 260px at 90% 0%, rgba(0,216,192,.18), transparent 62%),
    linear-gradient(135deg, #151c23, #0f1318);
}
.ref-box {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 20px; padding: 14px 18px; border: 1px dashed rgba(240,185,11,.4);
  border-radius: 12px; background: rgba(240,185,11,.05);
}
.ref-code { font-family: var(--mono); font-size: 20px; letter-spacing: .18em; color: var(--brand); font-weight: 700; }
.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 16px; }
@media (max-width: 760px) { .tier-grid { grid-template-columns: 1fr; } }
.tier { padding: 20px; text-align: center; }
.tier .pct { font-family: var(--mono); font-size: 30px; font-weight: 600; color: var(--brand); line-height: 1.1; }
.tier .lv { font-size: 12px; color: var(--muted); margin-bottom: 8px; }

.tree { display: flex; flex-direction: column; gap: 10px; }
.tree-lv { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 10px; background: var(--panel-2); }
.tree-lv .lv-tag {
  font-family: var(--mono); font-size: 11px; color: var(--brand);
  border: 1px solid rgba(240,185,11,.35); border-radius: 6px; padding: 1px 7px; flex: none;
}
.avatars { display: flex; }
.avatars i {
  width: 24px; height: 24px; border-radius: 50%; margin-left: -7px;
  display: grid; place-items: center; font-size: 10px; font-style: normal; font-weight: 700;
  color: #0b0e11; border: 2px solid var(--panel-2);
}
.avatars i:first-child { margin-left: 0; }

/* ---------- 后台 ---------- */
  .admin-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 16px 0; }
@media (max-width: 880px) { .admin-kpis { grid-template-columns: 1fr 1fr; } }
.kpi { padding: 18px 20px; }
.kpi span { font-size: 12px; color: var(--muted); }
.kpi b { display: block; font-family: var(--mono); font-size: 22px; margin-top: 6px; font-weight: 500; }
.kpi em { font-style: normal; font-size: 11.5px; color: var(--up); }
.kpi em.dn { color: var(--down); }

.admin-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line-soft); margin-bottom: 0; overflow-x: auto; }
.admin-tabs button {
  background: transparent; border: 0; border-bottom: 2px solid transparent;
  color: var(--text-2); padding: 12px 16px; font-size: 13.5px; white-space: nowrap;
}
.admin-tabs button.on { color: var(--text); border-color: var(--brand); font-weight: 600; }

.tag { font-size: 11px; padding: 2px 8px; border-radius: 6px; background: var(--panel-2); color: var(--text-2); border: 1px solid var(--line); }
.tag.ok { color: var(--up); border-color: rgba(14,203,129,.35); background: rgba(14,203,129,.1); }
.tag.warn { color: #ffa726; border-color: rgba(255,167,38,.35); background: rgba(255,167,38,.1); }
.tag.bad { color: var(--down); border-color: rgba(246,70,93,.35); background: rgba(246,70,93,.1); }

/* ---------- 页脚 ---------- */
.site-foot { border-top: 1px solid var(--line-soft); padding: 44px 0 90px; margin-top: 20px; }
.foot-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap: 32px; }
@media (max-width: 880px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
.foot-brand { margin-bottom: 12px; }
.site-foot h4 { font-size: 13px; margin-bottom: 10px; color: var(--text); }
.site-foot a { display: block; color: var(--text-2); font-size: 13px; padding: 3px 0; }
.site-foot a:hover { color: var(--text); }
.foot-bottom { margin-top: 34px; padding-top: 18px; border-top: 1px solid var(--line-soft); }

/* ---------- 底部 Tab（移动端） ---------- */
.tabbar {
  display: none;
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  background: var(--glass-2); backdrop-filter: blur(14px);
  border-top: 1px solid var(--line);
  padding-bottom: env(safe-area-inset-bottom);
}
.tabbar a {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 9px 0 8px; font-size: 10.5px; color: var(--muted);
}
.tabbar a.active { color: var(--brand); }
.tabbar svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Toast ---------- */
.toast {
  position: fixed; left: 50%; bottom: 90px; transform: translate(-50%, 20px);
  background: var(--toast-bg); color: var(--text); border: 1px solid var(--line);
  padding: 11px 20px; border-radius: 11px; font-size: 13px;
  box-shadow: var(--shadow); opacity: 0; pointer-events: none;
  transition: opacity .22s, transform .22s; z-index: 600; max-width: 82vw;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- 响应式 ---------- */
@media (max-width: 960px) {
  .nav { display: none; }
  .tabbar { display: flex; }
  .hero-slide { padding: 34px 24px; min-height: 260px; }
  .hero h1 { font-size: 27px; }
  .hero-side { display: none; }
  .features { grid-template-columns: 1fr; }
  .hero-stats { gap: 22px; }
  .wrap { padding: 0 14px; }
  .table th, .table td { padding-inline: 12px; }
  .site-foot { padding-bottom: 110px; }
  .chart-canvas-wrap { height: 300px; }
  .equity-card .big { font-size: 26px; }
  .report-hide { display: none; }
}
@media (max-width: 560px) {
  .report-hide-2 { display: none; }
  .hero-stats { display: none; }
  .topbar-right .equity-mini { display: none; }
}

/* =========================================================
   v0.2 新增：自选 / 杠杆快捷档位 / 止盈止损 / 二次确认弹窗
   ========================================================= */

.star {
  background: transparent; border: 0; padding: 4px 6px; border-radius: 7px;
  color: #4a545f; font-size: 16px; line-height: 1;
  transition: color .15s, background .15s, transform .12s;
}
.star:hover { color: var(--brand); background: rgba(240, 185, 11, .10); }
.star:active { transform: scale(.88); }
.star.on { color: var(--brand); }

tr.dragging { opacity: .35; }
tr[data-row][draggable="true"] { cursor: grab; }
tr[data-row][draggable="true"]:active { cursor: grabbing; }

.lev-quick {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
  margin: -4px 0 12px;
}
.lev-quick button {
  background: var(--panel-2); border: 1px solid var(--line); color: var(--text-2);
  font-size: 11px; padding: 5px 0; border-radius: 7px; font-family: var(--mono);
  transition: color .15s, border-color .15s, background .15s;
}
.lev-quick button:hover { color: var(--text); }
.lev-quick button.on {
  background: rgba(240, 185, 11, .16);
  border-color: rgba(240, 185, 11, .55);
  color: var(--brand); font-weight: 600;
}

.tp-sl-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.tp-sl-row .field { margin-bottom: 0; min-width: 0; }
.tp-sl-row .input-wrap { padding: 0 10px; }
.tp-sl-row input { font-size: 13px; padding: 9px 0; width: 100%; }

.hint { font-size: 11.5px; color: var(--muted); margin: 6px 0 10px; min-height: 17px; }
.hint.bad { color: var(--down); }
.hint.ok { color: var(--up); }

/* 下单二次确认 */
.modal-mask {
  position: fixed; inset: 0; z-index: 300;
  background: rgba(4, 6, 9, .68);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center; padding: 20px;
  animation: maskIn .16s ease-out;
}
@keyframes maskIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  width: 100%; max-width: 400px;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 16px; padding: 22px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .6);
  animation: modalIn .18s cubic-bezier(.2, .9, .3, 1.15);
}
@keyframes modalIn {
  from { transform: translateY(10px) scale(.97); opacity: 0; }
  to   { transform: none; opacity: 1; }
}
.modal h3 { font-size: 16px; margin-bottom: 12px; }
.modal-row {
  display: flex; justify-content: space-between; gap: 16px;
  font-size: 13px; padding: 7px 0; border-bottom: 1px solid var(--line-soft);
}
.modal-row:last-of-type { border-bottom: 0; }
.modal-row span { color: var(--muted); flex: none; }
.modal-row b { font-family: var(--mono); font-weight: 500; text-align: right; }
.modal-note {
  margin-top: 12px; padding: 8px 12px; border-radius: 9px;
  background: rgba(240, 185, 11, .08); color: #d9c07a;
  font-size: 11.5px; text-align: center;
}
.modal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.modal-actions .btn { padding: 11px 0; text-align: center; }

@media (max-width: 560px) {
  .lev-quick { grid-template-columns: repeat(4, 1fr); }
  .tp-sl-row { grid-template-columns: 1fr; }
  /* 手机上行本身就是可点的，去掉操作列，省出 60px 给价格和涨跌 */
  .col-action { display: none; }
  .table th, .table td { padding-inline: 10px; }
  .coin-pair { display: none; }
}

/* =========================================================
   v0.3：均线 / 十字光标 / 成交明细 / 团队结构图 / 实时播报
   ========================================================= */

/* 订单簿 / 最新成交 切换 */
.depth-tabs { display: flex; gap: 2px; }
.depth-tabs button {
  background: transparent; border: 0; color: var(--muted);
  font-size: 12.5px; padding: 5px 9px; border-radius: 7px;
  transition: color .15s, background .15s;
}
.depth-tabs button:hover { color: var(--text); }
.depth-tabs button.on { background: var(--panel-2); color: var(--text); font-weight: 600; }

.trade-row { padding: 3px 14px; }

/* 邀请页左右分栏 */
.invite-split {
  display: grid; grid-template-columns: 1.55fr 1fr; gap: 16px; margin-top: 16px;
  align-items: start;
}
@media (max-width: 900px) { .invite-split { grid-template-columns: 1fr; } }

/* ---------- 团队结构图 ---------- */
.org-root {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; border-radius: 12px;
  background: linear-gradient(135deg, rgba(240,185,11,.12), rgba(0,216,192,.06));
  border: 1px solid rgba(240,185,11,.25);
  width: fit-content;
}
.org-me {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  color: #11161c; font-weight: 800; font-size: 13px; flex: none;
}
.org-root-txt { display: flex; flex-direction: column; line-height: 1.35; }

.org-branches {
  margin: 16px 0 0 30px; padding-left: 24px;
  border-left: 1px solid rgba(240, 185, 11, .22);
  display: flex; flex-direction: column; gap: 16px;
}
.org-tier { position: relative; }
.org-tier::before {
  content: ""; position: absolute; left: -24px; top: 15px; width: 24px; height: 1px;
  background: rgba(240, 185, 11, .22);
}
.org-tier::after {
  content: ""; position: absolute; left: -28px; top: 11.5px; width: 8px; height: 8px;
  border-radius: 50%; background: var(--brand);
  box-shadow: 0 0 0 3px rgba(240, 185, 11, .14);
}
.org-tier-head { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; flex-wrap: wrap; }
.org-tier-head b { font-size: 13px; }
.org-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.org-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--panel-2); border: 1px solid var(--line);
  border-radius: 999px; padding: 3px 10px 3px 3px; font-size: 11.5px;
}
.org-chip i {
  width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center;
  font-style: normal; font-size: 10px; font-weight: 700; flex: none;
}
.org-chip em {
  font-style: normal; color: var(--muted);
  font-family: var(--mono); font-size: 10.5px;
}
.org-chip.more { padding: 3px 10px; color: var(--muted); }

/* ---------- 团队实时播报 ---------- */
.live-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--up); margin-right: 5px; vertical-align: middle;
  animation: pulse 1.6s infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(14,203,129,.45); }
  50%      { opacity: .45; box-shadow: 0 0 0 5px rgba(14,203,129,0); }
}

.feed { display: flex; flex-direction: column; }
.feed-item {
  display: flex; align-items: center; gap: 9px;
  padding: 9px 8px; border-bottom: 1px solid var(--line-soft);
}
.feed-item:last-child { border-bottom: 0; }
.feed-item:first-child { animation: feedIn .4s ease-out; }
@keyframes feedIn {
  from { background: rgba(240,185,11,.12); transform: translateY(-4px); opacity: .35; }
  to   { background: transparent; transform: none; opacity: 1; }
}
.feed-dot { width: 6px; height: 6px; border-radius: 50%; flex: none; }
.feed-dot.long  { background: var(--up); }
.feed-dot.short { background: var(--down); }
.feed-dot.close { background: var(--muted); }
.feed-main { flex: 1; min-width: 0; font-size: 12.5px; line-height: 1.55; }
.feed-main b { font-weight: 600; }
.feed-main .tag { margin: 0 4px; }
.feed-act { margin-right: 4px; }
.feed-sym { color: var(--text-2); font-family: var(--mono); font-size: 11.5px; }
.feed-side {
  text-align: right; flex: none; display: flex; flex-direction: column; line-height: 1.3;
  font-size: 12.5px;
}
.feed-amt { color: var(--text); }

/* =========================================================
   v0.4：数据看板 / 用户搜索筛选 / 学院 / 推广素材
   ========================================================= */

/* 通用胶囊筛选按钮 */
.chip-row { display: flex; gap: 6px; flex-wrap: wrap; }
.chip-btn {
  background: var(--panel-2); border: 1px solid var(--line); color: var(--text-2);
  font-size: 12px; padding: 5px 11px; border-radius: 8px;
  transition: color .15s, border-color .15s, background .15s;
}
.chip-btn:hover { color: var(--text); }
.chip-btn.on {
  background: rgba(240, 185, 11, .14);
  border-color: rgba(240, 185, 11, .45);
  color: var(--brand); font-weight: 600;
}

/* 后台工具栏 */
.admin-toolbar {
  display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
  padding: 14px 16px; border-bottom: 1px solid var(--line-soft);
}
.search-box {
  display: flex; align-items: center; gap: 8px;
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: 10px;
  padding: 0 12px; height: 34px; flex: 1; min-width: 220px; max-width: 340px;
  color: var(--muted); transition: border-color .16s;
}
.search-box:focus-within { border-color: rgba(240, 185, 11, .5); }
.search-box input {
  flex: 1; background: transparent; border: 0; outline: 0;
  color: var(--text); font-size: 13px; min-width: 0;
}
.table-foot { padding: 12px 16px; }

/* 数据看板 */
.dash-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; padding: 14px; }
.dash-grid2 { display: grid; grid-template-columns: 1fr 1.25fr; gap: 16px; padding: 0 14px 16px; }
@media (max-width: 900px) {
  .dash-grid, .dash-grid2 { grid-template-columns: 1fr; }
}
.dash-card { background: var(--bg-soft); }
.dash-canvas { height: 222px; padding: 8px 10px 4px; }
.dash-canvas canvas { display: block; width: 100%; height: 100%; }

.bar-list { padding: 16px; display: flex; flex-direction: column; gap: 13px; }
.bar-item { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.bar-name { display: flex; align-items: center; gap: 7px; width: 96px; flex: none; }
.bar-track { flex: 1; height: 6px; border-radius: 3px; background: var(--panel-2); overflow: hidden; }
.bar-track i { display: block; height: 100%; border-radius: 3px; }
.bar-val { width: 48px; text-align: right; color: var(--text-2); flex: none; }

/* 学院 */
.learn-head { padding: 34px 0 22px; }
.learn-head h2 { font-size: 26px; }
.learn-head p { margin-top: 8px; font-size: 13.5px; }
.learn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-bottom: 50px; }
@media (max-width: 1000px) { .learn-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .learn-grid { grid-template-columns: 1fr; } }
.learn-card {
  display: flex; flex-direction: column; padding: 20px;
  transition: transform .15s, border-color .15s;
}
.learn-card:hover { transform: translateY(-2px); border-color: rgba(240, 185, 11, .35); }
.learn-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.learn-card h3 { font-size: 16px; line-height: 1.45; margin-bottom: 8px; }
.learn-card p { color: var(--text-2); font-size: 13px; flex: 1; }
.learn-more { margin-top: 14px; font-size: 12.5px; color: var(--brand); }

.article { max-width: 760px; margin: 0 auto; padding: 30px 0 70px; }
.back-link { color: var(--text-2); font-size: 13px; }
.back-link:hover { color: var(--brand); }
.article h1 { font-size: 30px; line-height: 1.3; }
.article-meta { margin: 10px 0 26px; }
.article-body { font-size: 15px; line-height: 1.9; color: #cfd6de; }
.article-body h3 { font-size: 17px; margin: 28px 0 10px; color: var(--text); }
.article-body p { margin: 14px 0; }
.article-body ul { margin: 14px 0; padding-left: 20px; }
.article-body li { margin: 7px 0; }
.article-body b { color: var(--text); }
.article-nav {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
  margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line-soft);
}
.article-nav a { display: flex; flex-direction: column; gap: 4px; font-size: 13.5px; }
.article-nav b { font-weight: 500; color: var(--text-2); }
.article-nav a:hover b { color: var(--brand); }

/* 推广素材 / 海报 */
.poster-area {
  display: grid; grid-template-columns: 300px 1fr; gap: 22px;
  padding: 18px 20px 22px; align-items: start;
}
@media (max-width: 760px) { .poster-area { grid-template-columns: 1fr; } }
.poster-stage { display: flex; justify-content: center; }
.poster-canvas {
  width: 300px; height: 400px; border-radius: 14px;
  border: 1px solid var(--line); background: var(--bg-soft);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .45);
}
.poster-side { display: flex; flex-direction: column; gap: 12px; }
.poster-tips { margin: 0; padding-left: 18px; color: var(--text-2); font-size: 12.5px; line-height: 1.9; }
.poster-tips li::marker { color: var(--brand); }

/* 6 个底部 Tab 时再收一点字号 */
@media (max-width: 560px) {
  .tabbar a { font-size: 10px; }
  .tabbar svg { width: 19px; height: 19px; }
}

/* =========================================================
   v0.5：持仓管理 / 深度图 / Banner 管理 / 排行榜 / 浅色主题
   ========================================================= */

/* 主题切换按钮 */
.icon-btn {
  display: grid; place-items: center;
  width: 32px; height: 32px; border-radius: 9px;
  background: var(--panel-2); border: 1px solid var(--line);
  color: var(--text-2); transition: color .15s, border-color .15s;
}
.icon-btn:hover { color: var(--brand); border-color: rgba(240, 185, 11, .4); }
.ic-sun { display: none; }
html[data-theme="light"] .ic-sun { display: block; }
html[data-theme="light"] .ic-moon { display: none; }

/* 止盈止损的预估盈亏 */
.tp-pnl {
  font-size: 11px; line-height: 1.5; margin-top: 4px;
  min-height: 16px; font-family: var(--mono);
  color: var(--muted);
}
.tp-pnl.up { color: var(--up); }
.tp-pnl.down { color: var(--down); }
.tp-pnl.bad { color: var(--down); }

/* 持仓行里的止盈止损按钮 */
.tpsl-btn {
  background: transparent; border: 0; padding: 4px 6px; border-radius: 7px;
  text-align: left; cursor: pointer; transition: background .15s;
}
.tpsl-btn:hover { background: var(--hover-bg); }
.row-actions { display: flex; gap: 6px; justify-content: flex-end; }

/* 持仓管理弹窗 */
.modal-wide { max-width: 460px; max-height: 86vh; overflow-y: auto; }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.modal-title { font-size: 17px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.modal-x {
  background: transparent; border: 0; color: var(--muted);
  font-size: 15px; line-height: 1; padding: 4px 6px; border-radius: 7px;
}
.modal-x:hover { color: var(--text); background: var(--hover-bg); }
.pm-stats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  padding: 12px; border-radius: 11px; background: var(--bg-soft);
  margin-bottom: 16px;
}
.pm-stats div { display: flex; flex-direction: column; gap: 2px; }
.pm-stats span { font-size: 11.5px; color: var(--muted); }
.pm-stats b { font-family: var(--mono); font-size: 14px; font-weight: 500; }
.pm-sec {
  border-top: 1px solid var(--line-soft); padding-top: 14px; margin-top: 14px;
}
.pm-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.pm-sec-head b { font-size: 13.5px; }
.pm-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.pm-margin-row { display: flex; gap: 8px; align-items: center; }
.pm-margin-row .input-wrap { flex: 1; min-width: 0; }
.pm-margin-row .btn, .pm-btns .btn { white-space: nowrap; flex: none; }
@media (max-width: 420px) {
  .pm-margin-row { flex-wrap: wrap; }
  .pm-margin-row .input-wrap { flex: 1 1 100%; }
  .pm-margin-row .btn { flex: 1; }
}

/* 深度图 */
.depth-chart { height: 430px; padding: 8px 4px 0; }
.depth-chart canvas { display: block; width: 100%; height: 100%; }
@media (max-width: 880px) { .depth-chart { height: 260px; } }

/* Banner 管理 */
.banner-list { display: flex; flex-direction: column; }
.banner-row {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; border-bottom: 1px solid var(--line-soft);
}
.banner-row:last-child { border-bottom: 0; }
.banner-idx {
  width: 22px; height: 22px; border-radius: 6px; flex: none;
  display: grid; place-items: center; font-size: 11px;
  background: var(--panel-2); color: var(--muted); font-family: var(--mono);
}
.banner-fields { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.banner-fields input {
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: 8px;
  color: var(--text); font-size: 12.5px; padding: 7px 10px; outline: 0; width: 100%;
}
.banner-fields input:focus { border-color: rgba(240, 185, 11, .5); }
.banner-controls, .banner-ctrl { display: flex; align-items: center; gap: 6px; flex: none; }

/* 排行榜 */
.lb { display: flex; flex-direction: column; }
.lb-row {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 8px; border-bottom: 1px solid var(--line-soft); font-size: 12.5px;
}
.lb-row:last-child { border-bottom: 0; }
.lb-rank {
  width: 20px; height: 20px; border-radius: 6px; flex: none;
  display: grid; place-items: center; font-size: 11px;
  background: var(--panel-2); color: var(--muted); font-family: var(--mono);
}
.lb-rank.top { background: rgba(240, 185, 11, .18); color: var(--brand); font-weight: 700; }
.lb-avatar {
  width: 24px; height: 24px; border-radius: 50%; flex: none;
  display: grid; place-items: center; font-size: 11px; font-weight: 700;
}
.lb-name { flex: 1; display: flex; align-items: center; gap: 6px; min-width: 0; }
.lb-vol { width: 76px; text-align: right; color: var(--text-2); flex: none; }
.lb-prize { width: 86px; text-align: right; color: var(--brand); flex: none; }

/* =========================================================
   浅色主题
   ========================================================= */
html[data-theme="light"] {
  --bg: #f4f6fa;
  --bg-soft: #eef1f6;
  --panel: #ffffff;
  --panel-2: #f1f4f8;
  --line: #e1e6ee;
  --line-soft: #eceff5;
  --text: #10161d;
  --text-2: #4a5563;
  --muted: #8b95a3;
  --up: #0d9e6d;
  --down: #d92d4b;
  --brand: #c8920a;
  --brand-2: #009e8f;
  --shadow: 0 10px 40px rgba(20, 30, 45, .12);
  --glass: rgba(255, 255, 255, .9);
  --glass-2: rgba(255, 255, 255, .95);
  --hover-bg: rgba(12, 24, 44, .04);
  --soft-bg: #ffffff;
  --hover-2: #e9edf3;
  --toast-bg: #ffffff;
}

html[data-theme="light"] .hero-slide {
  background:
    radial-gradient(900px 380px at 88% -10%, rgba(0, 158, 143, .16), transparent 62%),
    radial-gradient(700px 340px at 10% 110%, rgba(200, 146, 10, .16), transparent 60%),
    linear-gradient(135deg, #ffffff, #eef3f9);
  border-color: var(--line);
}
html[data-theme="light"] .hero h1 {
  background: linear-gradient(100deg, #10161d 10%, #a97b00 55%, #007f70 100%);
  -webkit-background-clip: text; background-clip: text;
}
html[data-theme="light"] .hero-slide::after { border-color: rgba(20, 40, 60, .06); }
html[data-theme="light"] .download {
  background:
    radial-gradient(600px 240px at 85% 120%, rgba(0, 158, 143, .12), transparent 65%),
    linear-gradient(135deg, #ffffff, #eef3f9);
}
html[data-theme="light"] .equity-card {
  background:
    radial-gradient(500px 200px at 92% -20%, rgba(200, 146, 10, .14), transparent 60%),
    linear-gradient(135deg, #ffffff, #eef3f9);
}
html[data-theme="light"] .invite-hero {
  background:
    radial-gradient(700px 260px at 90% 0%, rgba(0, 158, 143, .14), transparent 62%),
    linear-gradient(135deg, #ffffff, #eef3f9);
}
html[data-theme="light"] .modal-mask { background: rgba(20, 30, 45, .35); }
html[data-theme="light"] .pos-empty { color: var(--muted); }
html[data-theme="light"] .store-badge { background: #ffffff; }
html[data-theme="light"] .brand-name,
html[data-theme="light"] .coin-name { color: var(--text); }
html[data-theme="light"] .demo-banner { color: #8a6d1f; }
html[data-theme="light"] .demo-banner span:first-child { color: #a97b00; }

/* =========================================================
   v0.6：开仓/平仓、按金额/数量、只减仓/只做Maker、委托列表
   ========================================================= */

.order-mode { display: flex; gap: 6px; padding: 12px 14px 6px; }
.order-mode button {
  flex: 1; background: transparent; border: 1px solid var(--line);
  color: var(--text-2); padding: 7px; font-size: 12.5px; border-radius: 8px;
  transition: color .15s, border-color .15s, background .15s;
}
.order-mode button:hover { color: var(--text); }
.order-mode button.on {
  background: var(--panel-2); border-color: rgba(240, 185, 11, .55);
  color: var(--brand); font-weight: 600;
}

.unit-toggle {
  background: transparent; border: 0; color: var(--brand);
  font-size: 12px; padding: 4px 2px; white-space: nowrap; cursor: pointer;
}
.unit-toggle:hover { filter: brightness(1.15); }

.check-row { display: flex; gap: 16px; margin: 2px 0 10px; }
.check-row.dim { opacity: .4; pointer-events: none; }
.chk { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-2); cursor: pointer; }
.chk input { accent-color: var(--brand); width: 13px; height: 13px; margin: 0; }

.trade-tables { overflow: hidden; }
.audit-strip {
  padding: 9px 16px; border-bottom: 1px solid var(--line-soft);
  background: var(--bg-soft);
}
.table-foot { padding: 12px 16px; }

/* 部分成交进度条 */
.order-progress {
  height: 3px; border-radius: 2px; background: var(--line);
  margin-top: 4px; overflow: hidden;
}
.order-progress i { display: block; height: 100%; background: var(--brand); }

/* =========================================================
   v0.7：手机端下单抽屉（A14）
   ========================================================= */
.order-panel .sheet-close { display: none; }
.sheet-fab { display: none; }
.sheet-backdrop { display: none; }

@media (max-width: 880px) {
  .trade-grid .order-panel {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
    max-height: 82vh; overflow-y: auto;
    border-radius: 18px 18px 0 0;
    transform: translateY(102%);
    transition: transform .26s cubic-bezier(.2, .8, .3, 1);
    box-shadow: 0 -18px 50px rgba(0, 0, 0, .55);
    order: 99;
  }
  body.sheet-open .trade-grid .order-panel { transform: none; }

  .sheet-fab {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    position: fixed; left: 14px; right: 14px; bottom: 62px; z-index: 110;
    height: 46px; border-radius: 12px; border: 0;
    background: linear-gradient(135deg, #f5c518, #f0b90b);
    color: #16120a; font-weight: 700; font-size: 14px;
    box-shadow: 0 10px 30px rgba(240, 185, 11, .3);
  }
  .sheet-backdrop {
    display: none; position: fixed; inset: 0; z-index: 115;
    background: rgba(0, 0, 0, .5); backdrop-filter: blur(2px);
  }
  body.sheet-open .sheet-backdrop { display: block; }

  .order-panel .sheet-close {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 10px; right: 12px;
    width: 30px; height: 30px; border-radius: 8px;
    background: var(--panel-2); border: 1px solid var(--line);
    color: var(--text-2); font-size: 14px;
  }
}
/* =========================================================
   v0.7：活动落地页（E1）
   ========================================================= */
.promo-hero {
  padding: 90px 0 60px;
  background:
    radial-gradient(900px 420px at 80% -10%, rgba(0, 216, 192, .18), transparent 60%),
    radial-gradient(700px 360px at 5% 110%, rgba(240, 185, 11, .16), transparent 60%);
  border-bottom: 1px solid var(--line-soft);
}
.promo-hero h1 {
  font-size: 46px; line-height: 1.2; margin: 18px 0 16px; letter-spacing: -.02em;
  background: linear-gradient(100deg, var(--text) 20%, #c8920a 60%, #00a392 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.promo-hero p { color: var(--text-2); font-size: 16px; max-width: 560px; }
.promo-cta { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }

.promo-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
  margin: 40px 0 10px;
}
.promo-stats div {
  padding: 20px; border-radius: 14px; background: var(--panel);
  border: 1px solid var(--line-soft); text-align: center;
}
.promo-stats b { display: block; font-family: var(--mono); font-size: 28px; }
.promo-stats span { font-size: 12.5px; color: var(--muted); }

.promo-section { padding: 44px 0 10px; }
.promo-section h2 { font-size: 26px; margin-bottom: 20px; }

.promo-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.promo-step { padding: 24px; }
.promo-num {
  font-family: var(--mono); font-size: 13px; color: var(--brand);
  border: 1px solid rgba(240, 185, 11, .35); border-radius: 8px;
  padding: 2px 8px; display: inline-block; margin-bottom: 14px;
}
.promo-step h3 { font-size: 16px; margin-bottom: 8px; }
.promo-step p { color: var(--text-2); font-size: 13px; }

.promo-cta-card { margin: 50px 0 60px; }

html[data-theme="light"] .promo-hero {
  background:
    radial-gradient(900px 420px at 80% -10%, rgba(0, 158, 143, .14), transparent 60%),
    radial-gradient(700px 360px at 5% 110%, rgba(200, 146, 10, .14), transparent 60%);
}
html[data-theme="light"] .promo-hero h1 {
  background: linear-gradient(100deg, #10161d 20%, #a97b00 60%, #007f70 100%);
  -webkit-background-clip: text; background-clip: text;
}

@media (max-width: 880px) {
  .promo-hero { padding: 50px 0 36px; }
  .promo-hero h1 { font-size: 30px; }
  .promo-stats, .promo-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .promo-stats, .promo-steps { grid-template-columns: 1fr; }
}

/* =========================================================
   v0.8：冰山/TWAP、ADL、资金费倒计时、现货账户与出入金
   ========================================================= */

.order-tabs-6 { flex-wrap: wrap; }
.order-tabs-6 button { flex: 1 1 30%; padding: 7px 4px; font-size: 12px; }

.twap-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.twap-row .field-label { margin-bottom: 4px; }

/* ADL 自动减仓队列指示灯 */
.adl { display: inline-flex; gap: 2px; }
.adl i {
  width: 5px; height: 12px; border-radius: 2px;
  background: var(--line); display: block;
}
.adl i.on { background: var(--brand); }
.adl i.on.lv4, .adl i.on.lv5 { background: var(--down); }

.funding-timer { display: block; font-size: 10.5px; color: var(--muted); font-family: var(--mono); }
.link-btn {
  background: transparent; border: 0; padding: 0 4px;
  color: var(--brand); font-size: 10.5px; text-decoration: underline; cursor: pointer;
}

/* 账户与出入金 */
.acct-card { margin-top: 16px; }
.acct-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 16px 20px 20px; }
@media (max-width: 760px) { .acct-grid { grid-template-columns: 1fr; } }
.acct-item { display: flex; flex-direction: column; gap: 6px; }
.acct-item span { font-size: 12px; color: var(--muted); }
.acct-item b { font-family: var(--mono); font-size: 18px; font-weight: 500; }
.acct-btns { display: flex; gap: 8px; margin-top: 4px; }

/* 持仓列变多后，止盈止损两行不要被挤断 */
.tpsl-btn { white-space: nowrap; min-width: 92px; }
.tpsl-btn .small { white-space: nowrap; }

/* =========================================================
   v0.9：KYC 上传/视频、审核队列、返佣选用户
   ========================================================= */
.doc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.doc-box {
  display: flex; flex-direction: column; gap: 4px;
  border: 1px dashed var(--line); border-radius: 10px;
  padding: 14px 12px; cursor: pointer; background: var(--bg-soft);
  transition: border-color .15s, background .15s;
}
.doc-box:hover { border-color: rgba(240, 185, 11, .5); }
.doc-box input[type="file"] { display: none; }
.doc-box span { font-size: 11.5px; color: var(--muted); }
.doc-box b { font-size: 12.5px; color: var(--brand); font-weight: 500; word-break: break-all; }

.video-box {
  border: 1px solid var(--line); border-radius: 10px;
  padding: 14px; background: var(--bg-soft); text-align: center;
  display: flex; flex-direction: column; gap: 8px; align-items: center;
}
.challenge {
  font-family: var(--mono); font-size: 26px; letter-spacing: .3em;
  color: var(--brand); font-weight: 700;
}

.reason-box {
  width: 100%; box-sizing: border-box; resize: vertical;
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: 10px;
  color: var(--text); font-family: inherit; font-size: 13px; padding: 10px 12px; outline: 0;
}
.reason-box:focus { border-color: rgba(240, 185, 11, .5); }

.chip-select {
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: 9px;
  color: var(--text); font-size: 12.5px; padding: 7px 10px; outline: 0; max-width: 220px;
}
.adj-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-left: auto; }

/* =========================================================
   v1.0：现货交易 + 真实币种 LOGO
   ========================================================= */
.coin-logo { position: relative; overflow: hidden; }
.coin-logo i { font-style: normal; line-height: 1; text-align: center; }
.coin-logo img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; padding: 2px; display: none;
}
.coin-logo.has-img img { display: block; }
.coin-logo.has-img i { display: none; }

.coin-select {
  background: var(--panel-2); border: 1px solid var(--line); border-radius: 9px;
  color: var(--text); font-size: 14px; font-weight: 600;
  padding: 5px 10px; outline: 0; max-width: 230px;
}
.coin-select:focus { border-color: rgba(240, 185, 11, .5); }

.spot-grid { grid-template-columns: minmax(0, 1fr) 300px 320px; }
@media (max-width: 1180px) { .spot-grid { grid-template-columns: minmax(0, 1fr) 320px; } }
@media (max-width: 880px) { .spot-grid { grid-template-columns: minmax(0, 1fr); } }

/* 首页行情表在 100 币种下要能滚动 */
/* 首页行情表不再内部滚动：选中哪个列表就整段展示，滚动交给页面本身 */
.market-scroll { max-height: none; overflow-y: visible; }

/* =========================================================
   v1.0：学院分类筛选 + 搜索
   ========================================================= */
.learn-tools { display: flex; align-items: center; gap: 12px; margin: 18px 0 12px; flex-wrap: wrap; }
.learn-tools .search-box { flex: 1 1 280px; }
.learn-cats { margin-bottom: 20px; flex-wrap: wrap; }
.learn-more-wrap { display: flex; justify-content: center; padding: 24px 0 40px; }
.search-box {
  display: flex; align-items: center; gap: 8px;
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 10px; padding: 0 12px; height: 38px; color: var(--muted);
}
.search-box input {
  flex: 1; background: transparent; border: 0; outline: 0;
  color: var(--text); font-size: 13px; height: 100%;
}
.search-box:focus-within { border-color: rgba(240, 185, 11, .5); }

/* =========================================================
   v1.1：现货按金额/按数量切换 + KYC 证件查阅
   ========================================================= */
.unit-row { display: flex; gap: 6px; margin-top: 8px; }
.unit-row button {
  flex: 1; padding: 6px 4px; font-size: 11.5px; border-radius: 8px;
  background: var(--bg-soft); border: 1px solid var(--line);
  color: var(--text-2); cursor: pointer;
}
.unit-row button.on {
  border-color: rgba(240, 185, 11, .55); color: var(--brand);
  background: rgba(240, 185, 11, .1);
}

.doc-link {
  background: transparent; border: 0; padding: 0;
  color: var(--brand); font-size: 12px; cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px;
}
.doc-link:hover { opacity: .8; }

.modal-wide { width: min(560px, 92vw); }
.doc-preview {
  margin: 14px 0; border-radius: 12px; border: 1px solid var(--line);
  background: var(--bg-soft); overflow: hidden; position: relative;
}
.doc-idcard { padding: 20px; min-height: 180px; display: flex; gap: 16px; align-items: center; }
.idcard-side {
  width: 74px; height: 96px; border-radius: 8px; flex: none;
  border: 1px dashed var(--line); display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: 12px; background: var(--panel-2);
}
.idcard-lines { flex: 1; display: flex; flex-direction: column; gap: 10px; }
.idcard-lines div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.idcard-lines span { color: var(--muted); }
.idcard-lines b { font-family: var(--mono); font-weight: 500; word-break: break-all; text-align: right; }
.idcard-stamp {
  position: absolute; right: 14px; bottom: 12px;
  font-size: 11px; color: var(--muted);
  border: 1px solid var(--line); border-radius: 6px; padding: 2px 8px;
  transform: rotate(-8deg);
}
.doc-video {
  padding: 26px 20px; display: flex; flex-direction: column;
  align-items: center; gap: 12px; text-align: center;
}
.play-ico {
  width: 54px; height: 54px; border-radius: 50%;
  background: rgba(240, 185, 11, .14); color: var(--brand);
  display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.video-bar { width: 100%; height: 4px; border-radius: 2px; background: var(--line); overflow: hidden; }
.video-bar i { display: block; height: 100%; width: 62%; background: var(--brand); }

/* =========================================================
   v1.2：合约交易对选择器
   ========================================================= */
.sym-picker { position: relative; }
.sym-current {
  display: flex; align-items: center; gap: 10px;
  background: transparent; border: 0; padding: 0; cursor: pointer;
  color: var(--text); font-family: inherit; text-align: left;
}
.sym-current:hover .sym-txt b { color: var(--brand); }
.sym-txt { display: flex; align-items: center; gap: 8px; }
.sym-txt b { font-size: 16px; font-weight: 600; transition: color .15s; }
.sym-txt .badge { font-size: 10px; padding: 1px 6px; }
.sym-current .caret { color: var(--muted); }

.sym-menu {
  position: absolute; top: calc(100% + 12px); left: 0; z-index: 300;
  width: min(360px, calc(100vw - 32px)); max-height: 440px;
  overflow-y: auto; padding: 8px;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; box-shadow: 0 24px 60px rgba(0, 0, 0, .55);
}
.sym-search {
  display: flex; align-items: center; gap: 8px;
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 9px; padding: 0 10px; height: 34px; margin-bottom: 6px;
  color: var(--muted); position: sticky; top: 0; z-index: 1;
}
.sym-search input {
  flex: 1; background: transparent; border: 0; outline: 0;
  color: var(--text); font-size: 12.5px; height: 100%;
}
.sym-group + .sym-group { margin-top: 8px; }
.sym-group-title {
  display: flex; justify-content: space-between;
  font-size: 11px; color: var(--muted); padding: 6px 8px 4px;
}
.sym-group-title span { font-family: var(--mono); }
.sym-row {
  display: flex; align-items: center; gap: 8px; width: 100%;
  background: transparent; border: 0; border-radius: 8px;
  padding: 7px 8px; cursor: pointer; color: var(--text);
  font-family: inherit; text-align: left;
}
.sym-row:hover { background: var(--hover-bg); }
.sym-row.on { background: rgba(240, 185, 11, .1); }
.sym-row-name { font-size: 13px; font-weight: 500; flex: 1; }
.sym-row-name i { font-style: normal; color: var(--muted); font-size: 11px; }
.sym-row-px { font-size: 12px; color: var(--text-2); }
.sym-row-chg { font-size: 11.5px; width: 56px; text-align: right; font-family: var(--mono); }

@media (max-width: 560px) {
  .sym-menu { position: fixed; left: 12px; right: 12px; top: auto; width: auto; max-height: 60vh; }
}

/* =========================================================
   v1.4：行情页
   ========================================================= */
.market-page { padding-top: 24px; }
.mkt-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 24px; flex-wrap: wrap; margin-bottom: 16px;
}
.mkt-head h1 { font-size: 30px; letter-spacing: -.02em; }
.mkt-stats { display: flex; gap: 28px; flex-wrap: wrap; }
.mkt-stats div { display: flex; flex-direction: column; gap: 3px; }
.mkt-stats span { font-size: 11.5px; color: var(--muted); }
.mkt-stats b { font-family: var(--mono); font-size: 17px; font-weight: 500; }

.mkt-bar {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.mkt-bar .chip-row { flex: 0 0 auto; }
.mkt-search { flex: 1 1 240px; max-width: 320px; margin-left: auto; }

.mkt-card { padding: 0; overflow: hidden; margin-bottom: 48px; }
.mkt-table thead th {
  position: sticky; top: 0; z-index: 2;
  background: var(--panel); backdrop-filter: blur(8px);
}
.mkt-table .sortable { cursor: pointer; user-select: none; }
.mkt-table .sortable:hover { color: var(--text); }
.mkt-table .sortable.on { color: var(--brand); }
.mkt-table tbody tr:hover { background: var(--hover-bg); }
.spark { display: block; }
.mkt-table .coin-name { font-size: 13px; }

@media (max-width: 880px) {
  .mkt-head h1 { font-size: 24px; }
  .mkt-stats { gap: 18px; }
  .mkt-search { max-width: none; }
  .mkt-table th:nth-child(5), .mkt-table td:nth-child(5) { display: none; }
}

/* =========================================================
   v1.5：注册 / 登录
   ========================================================= */
.auth-page {
  min-height: calc(100vh - 60px);
  background:
    radial-gradient(800px 500px at 15% 10%, rgba(0, 216, 192, .10), transparent 60%),
    radial-gradient(700px 500px at 85% 90%, rgba(240, 185, 11, .10), transparent 60%);
  padding: 40px 0 60px;
}
.auth-wrap { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
@media (max-width: 980px) { .auth-wrap { grid-template-columns: 1fr; gap: 28px; } .auth-visual { display: none; } }

/* --- 左侧动态图 --- */
.auth-visual { position: relative; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.auth-panel, .auth-card { min-width: 0; }
.av-glow {
  position: absolute; inset: -60px -40px auto -40px; height: 420px; z-index: 0;
  background: radial-gradient(closest-side, rgba(240, 185, 11, .16), transparent 70%);
  filter: blur(20px); animation: av-breathe 6s ease-in-out infinite;
}
@keyframes av-breathe { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }

.av-orbit { position: relative; width: 300px; height: 300px; margin: 0 auto; z-index: 1; }
.av-ring {
  position: absolute; left: 50%; top: 50%; border-radius: 50%;
  border: 1px solid rgba(240, 185, 11, .18); transform: translate(-50%, -50%);
}
.av-ring.r1 { width: 300px; height: 300px; animation: av-pulse 4s ease-out infinite; }
.av-ring.r2 { width: 220px; height: 220px; animation: av-pulse 4s ease-out infinite .9s; }
.av-ring.r3 { width: 140px; height: 140px; animation: av-pulse 4s ease-out infinite 1.8s; }
@keyframes av-pulse {
  0% { opacity: .6; transform: translate(-50%, -50%) scale(.86); }
  70% { opacity: .12; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.18); }
}
.av-coins { position: absolute; inset: 0; animation: av-spin 44s linear infinite; }
.av-slot {
  position: absolute; left: 50%; top: 50%;
  transform: rotate(calc(var(--i) * 60deg)) translate(120px) rotate(calc(var(--i) * -60deg));
}
.av-coin {
  animation: av-spin 44s linear infinite reverse;
  border-radius: 50%; box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
}
@keyframes av-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.av-core {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 76px; height: 76px; border-radius: 22px;
  background: linear-gradient(135deg, #f5c518, #f0b90b);
  color: #16120a; font-weight: 800; font-size: 34px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 60px rgba(240, 185, 11, .45);
  animation: av-core 3.4s ease-in-out infinite;
}
@keyframes av-core { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.07); } }

.av-copy { position: relative; z-index: 1; }
.av-copy h2 { font-size: 30px; line-height: 1.3; letter-spacing: -.02em; }
.av-sub { color: var(--text-2); margin-top: 10px; font-size: 14px; }
.av-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 26px; }
.av-stats div { border-left: 2px solid rgba(240, 185, 11, .5); padding-left: 10px; }
.av-stats b { display: block; font-family: var(--mono); font-size: 21px; }
.av-stats span { font-size: 11.5px; color: var(--muted); }
.av-ticker { margin-top: 26px; overflow: hidden; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); padding: 10px 0; }
.av-track { display: flex; gap: 28px; width: max-content; animation: av-marquee 26s linear infinite; }
.av-tick { display: flex; align-items: baseline; gap: 7px; font-size: 12.5px; white-space: nowrap; }
.av-tick b { font-family: var(--mono); }
.av-tick em { font-style: normal; font-family: var(--mono); }
@keyframes av-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* --- 右侧表单 --- */
.auth-panel { display: flex; flex-direction: column; gap: 16px; }
.auth-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 18px; padding: 30px 28px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
}
.auth-logo { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px; }
.auth-logo b { font-size: 16px; letter-spacing: .04em; }
.auth-card h1 { font-size: 26px; margin-bottom: 6px; }
.issue-tabs { display: flex; gap: 6px; margin: 18px 0 4px; }
.issue-tabs button {
  flex: 1; padding: 8px; border-radius: 9px; font-size: 13px; cursor: pointer;
  background: var(--bg-soft); border: 1px solid var(--line); color: var(--text-2);
}
.issue-tabs button.on { border-color: rgba(240, 185, 11, .55); color: var(--brand); background: rgba(240, 185, 11, .1); }
.auth-card .field { margin-top: 16px; }
.agree-box { display: flex; gap: 9px; align-items: flex-start; margin: 18px 0 6px; font-size: 12.5px; color: var(--text-2); cursor: pointer; }
.agree-box input { margin-top: 2px; accent-color: #f0b90b; width: 15px; height: 15px; flex: none; }
.agree-box .link-btn { font-size: 12.5px; }
.auth-card .btn-block { margin-top: 16px; }
.auth-foot { text-align: center; margin-top: 16px; font-size: 13px; color: var(--text-2); }
.auth-foot a { color: var(--brand); }
.auth-note { margin-top: 14px; font-size: 11px; color: var(--muted); text-align: center; line-height: 1.6; }
.auth-links { display: flex; gap: 18px; justify-content: center; font-size: 12.5px; }
.auth-links a { color: var(--muted); }
.auth-links a:hover { color: var(--brand); }

.acct-chip {
  font-family: var(--mono); font-size: 12px; color: var(--text-2);
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 999px; padding: 4px 10px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
#authSlot { display: flex; gap: 8px; align-items: center; }

/* --- 协议弹窗 --- */
.modal-legal { width: min(720px, 94vw); max-height: 86vh; display: flex; flex-direction: column; padding: 0; }
.legal-head { padding: 22px 26px 12px; border-bottom: 1px solid var(--line-soft); }
.legal-head h3 { font-size: 20px; }
.legal-body { padding: 16px 26px; overflow-y: auto; font-size: 13.5px; line-height: 1.85; color: var(--text-2); }
.legal-body p { margin: 8px 0; }
.legal-intro { color: var(--text); }
.legal-h { font-size: 14.5px; color: var(--text); margin: 20px 0 6px; }
.legal-note { margin-top: 22px; font-size: 11.5px; color: var(--muted); border-top: 1px dashed var(--line); padding-top: 12px; }
.modal-legal .modal-actions { padding: 14px 26px 22px; border-top: 1px solid var(--line-soft); }

@media (max-width: 560px) {
  .auth-card { padding: 22px 18px; border-radius: 14px; }
  .auth-card h1 { font-size: 22px; }
  .av-stats { grid-template-columns: 1fr 1fr; }
}

/* =========================================================
   v1.6：个人中心
   ========================================================= */
.acc-page { padding-top: 24px; padding-bottom: 60px; }
.acc-title { font-size: 28px; margin-bottom: 16px; }

.acc-head {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  padding: 22px 24px; border-radius: 16px;
  background: linear-gradient(120deg, rgba(240, 185, 11, .10), rgba(0, 216, 192, .08));
  border: 1px solid var(--line); margin-bottom: 16px;
}
.acc-avatar {
  width: 62px; height: 62px; border-radius: 18px; flex: none;
  background: linear-gradient(135deg, #f5c518, #f0b90b);
  color: #16120a; font-weight: 800; font-size: 26px;
  display: flex; align-items: center; justify-content: center;
}
.acc-id { flex: 1; min-width: 200px; }
.acc-name { display: flex; align-items: center; gap: 10px; font-size: 19px; font-weight: 600; }
.acc-tags { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.acc-assets { display: flex; gap: 26px; flex-wrap: wrap; }
.acc-assets div { display: flex; flex-direction: column; gap: 3px; }
.acc-assets span { font-size: 11.5px; color: var(--muted); }
.acc-assets b { font-size: 17px; font-weight: 500; }

.acc-tabs { margin-bottom: 0; padding: 0 4px; }
.acc-card { margin-bottom: 0; padding: 4px 0; }
.acc-card .card-head { padding: 16px 20px 10px; }
.acc-card .sec-row {
  display: grid; grid-template-columns: 1fr auto auto; gap: 16px;
  align-items: center; padding: 14px 20px;
  border-top: 1px solid var(--line-soft);
}
.acc-card .sec-row:first-of-type { border-top: 0; }
.sec-row b { font-size: 13.5px; font-weight: 500; }
.sec-val { font-size: 13px; color: var(--text-2); text-align: right; }
.sec-val.warn { color: var(--brand); }
.acc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.acc-grid .acc-danger { grid-column: 1 / -1; }
@media (max-width: 880px) { .acc-grid { grid-template-columns: 1fr; } }
.acc-note { padding: 12px 20px 18px; font-size: 11.5px; color: var(--muted); line-height: 1.7; }
.acc-note-list { padding: 0 20px 18px; font-size: 12.5px; color: var(--text-2); line-height: 1.9; }
.acc-note-list p { margin: 0; }
.acc-danger .card-head h3 { color: var(--down); }

/* KYC 状态卡 */
.kyc-state { display: flex; align-items: center; gap: 16px; padding: 22px 20px; }
.kyc-ico {
  width: 46px; height: 46px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; background: var(--bg-soft); border: 1px solid var(--line);
}
.kyc-verified .kyc-ico { color: var(--up); border-color: rgba(14, 203, 129, .4); background: rgba(14, 203, 129, .1); }
.kyc-pending .kyc-ico { color: var(--brand); border-color: rgba(240, 185, 11, .4); background: rgba(240, 185, 11, .1); }
.kyc-rejected .kyc-ico, .kyc-none .kyc-ico { color: var(--muted); }
.kyc-state h3 { font-size: 16px; margin-bottom: 4px; }
.kyc-state > div:nth-child(2) { flex: 1; }
.kyc-info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 0 20px 20px; }
.kyc-info div { display: flex; flex-direction: column; gap: 4px; }
.kyc-info span { font-size: 11.5px; color: var(--muted); }
.kyc-info b { font-family: var(--mono); font-size: 13px; font-weight: 500; }

/* 开关 */
.switch {
  width: 42px; height: 24px; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--line); position: relative; transition: background .18s;
}
.switch i {
  position: absolute; left: 3px; top: 3px; width: 18px; height: 18px;
  border-radius: 50%; background: #fff; transition: transform .18s;
}
.switch.on { background: var(--brand); }
.switch.on i { transform: translateX(18px); }
.mono { font-family: var(--mono); }

@media (max-width: 560px) {
  .acc-card .sec-row { grid-template-columns: 1fr auto; }
  .acc-card .sec-row .sec-val { display: none; }
  .acc-head { padding: 18px; }
  .acc-assets { gap: 18px; }
}

/* =========================================================
   v1.7：个人中心快捷卡 / 等级进度 / 申请卡
   ========================================================= */
.quick-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 980px) { .quick-row { grid-template-columns: 1fr; } }
.quick-card {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px; text-decoration: none; color: var(--text);
  transition: transform .15s, border-color .15s;
}
.quick-card:hover { transform: translateY(-2px); border-color: rgba(240, 185, 11, .45); }
.qc-ico {
  width: 40px; height: 40px; border-radius: 12px; flex: none;
  background: rgba(240, 185, 11, .12); border: 1px solid rgba(240, 185, 11, .18);
  display: flex; align-items: center; justify-content: center; font-size: 17px;
}
.quick-card b { display: block; font-size: 14px; margin-bottom: 3px; }
.quick-card span { font-size: 11.5px; color: var(--muted); }
.qc-arrow { margin-left: auto; color: var(--muted); font-style: normal; font-size: 16px; }

.vip-card { grid-column: 1 / -1; padding: 18px 20px; }
.vip-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.vip-head > div { display: flex; align-items: baseline; gap: 10px; }
.vip-head b { font-size: 17px; }
.vip-bar { height: 8px; border-radius: 4px; background: var(--bg-soft); overflow: hidden; border: 1px solid var(--line-soft); }
.vip-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #d9a400, #f5c518); transition: width .4s; }
.vip-ticks { display: flex; justify-content: space-between; margin-top: 7px; font-size: 11px; color: var(--muted); }

.apply-card {
  grid-column: 1 / -1; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; padding: 16px 20px;
  border-color: rgba(240, 185, 11, .3);
  background: linear-gradient(100deg, rgba(240, 185, 11, .08), transparent 60%);
}
.apply-card b { display: block; font-size: 14.5px; margin-bottom: 4px; }
.apply-card span { display: block; }
.apply-card.locked { border-color: var(--line); background: var(--panel); }
.apply-card.locked b { color: var(--text-2); }

/* =========================================================
   v1.7：6 格资金密码
   ========================================================= */
.pin-row { display: flex; gap: 10px; justify-content: space-between; }
.pin-box {
  width: 100%; aspect-ratio: 1 / 1; min-width: 0;
  border-radius: 12px; border: 1px solid var(--line);
  background: var(--bg-soft); color: var(--text);
  text-align: center; font-size: 22px; font-family: var(--mono);
  outline: 0; transition: border-color .15s, box-shadow .15s;
  padding: 0;
}
.pin-box:focus {
  border-color: rgba(240, 185, 11, .7);
  box-shadow: 0 0 0 3px rgba(240, 185, 11, .12);
}
.pin-row + .pin-row { margin-top: 10px; }

/* =========================================================
   v1.8：合伙人管理 + 顶栏 VIP 徽章
   ========================================================= */
.vip-badge {
  display: inline-block; margin-left: 0; padding: 1px 7px;
  border-radius: 6px; font-size: 10.5px; font-weight: 600;
  background: linear-gradient(135deg, #f5c518, #f0b90b);
  color: #16120a; font-family: var(--mono); vertical-align: 1px;
}

.pt-stats { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 16px; }
@media (max-width: 1100px) { .pt-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .pt-stats { grid-template-columns: repeat(2, 1fr); } }
.pt-stat {
  padding: 16px 16px; border-radius: 12px;
  background: var(--panel); border: 1px solid var(--line-soft);
}
.pt-stat span { display: block; font-size: 11.5px; color: var(--muted); margin-bottom: 7px; }
.pt-stat b { font-family: var(--mono); font-size: 19px; font-weight: 500; }

.pt-cell { display: flex; align-items: center; gap: 10px; }
.pt-avatar {
  width: 32px; height: 32px; border-radius: 10px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: rgba(240, 185, 11, .12); color: var(--brand);
  font-size: 13px; font-weight: 600;
}
.pt-table td { vertical-align: middle; }
.pt-bar { height: 5px; border-radius: 3px; background: var(--bg-soft); overflow: hidden; min-width: 70px; margin-bottom: 4px; }
.pt-bar i { display: block; height: 100%; background: linear-gradient(90deg, #d9a400, #f5c518); }

/* =========================================================
   v1.9：系统设置（左侧分组 + 右侧表单）
   ========================================================= */
.set-layout { display: grid; grid-template-columns: 216px minmax(0, 1fr); gap: 20px; margin-top: 16px; align-items: start; }
@media (max-width: 900px) { .set-layout { grid-template-columns: 1fr; } }

.set-nav {
  background: var(--panel); border: 1px solid var(--line-soft);
  border-radius: 14px; padding: 10px; position: sticky; top: 76px;
}
.set-nav-title {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted); padding: 8px 12px 12px;
}
.set-nav-item {
  display: flex; align-items: center; gap: 10px; width: 100%;
  text-align: left; padding: 11px 12px; border-radius: 10px;
  background: transparent; border: 0; cursor: pointer;
  color: var(--text-2); font-size: 13.5px; font-family: inherit;
  transition: background .15s, color .15s;
}
.set-nav-item:hover { background: var(--hover-bg); color: var(--text); }
.set-nav-item.on { background: rgba(240, 185, 11, .12); color: var(--brand); font-weight: 600; }
.set-ico { font-size: 14px; width: 18px; text-align: center; }
.set-nav-foot {
  font-size: 10.5px; color: var(--muted); padding: 12px;
  border-top: 1px dashed var(--line); margin-top: 8px; line-height: 1.6;
}

.set-main { display: flex; flex-direction: column; gap: 16px; }
.set-card { padding: 0; overflow: hidden; }
.set-head { padding: 22px 24px 4px; }
.set-head h3 { font-size: 17px; }
.set-head p { font-size: 12.5px; color: var(--muted); margin-top: 6px; line-height: 1.6; }
.set-grid { padding: 20px 24px 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
@media (max-width: 700px) { .set-grid { grid-template-columns: 1fr; } }
.set-field { display: flex; flex-direction: column; gap: 8px; }
.set-label span { font-size: 13px; font-weight: 500; }
.set-label em {
  display: block; font-style: normal; font-size: 11.5px;
  color: var(--muted); line-height: 1.55; margin-top: 3px;
}
.set-input { max-width: 220px; }
.set-foot {
  display: flex; align-items: center; justify-content: flex-end; gap: 16px;
  padding: 16px 24px 20px; border-top: 1px solid var(--line-soft); margin-top: 8px;
}
.set-tip { font-size: 11.5px; color: var(--muted); }
.set-help { padding: 18px 24px; }
.set-help b { font-size: 13px; }
.set-help p { font-size: 12px; color: var(--muted); line-height: 1.8; margin-top: 8px; }

/* =========================================================
   v2.0：VIP 费率展示 + 等级编辑器
   ========================================================= */
.vip-fees { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
@media (max-width: 560px) { .vip-fees { grid-template-columns: 1fr; } }
.vip-fee {
  padding: 12px 14px; border-radius: 11px;
  background: var(--bg-soft); border: 1px solid var(--line-soft);
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
}
.vip-fee span { font-size: 11.5px; color: var(--muted); width: 100%; margin-bottom: 3px; }
.vip-fee b { font-family: var(--mono); font-size: 13px; font-weight: 500; color: var(--text-2); }
.vip-fee.cur { border-color: rgba(240, 185, 11, .3); background: rgba(240, 185, 11, .07); }
.vip-fee.cur b { color: var(--brand); }

.vip-table { width: 100%; }
.vip-table td, .vip-table th { padding: 10px 12px; }
.vip-cur-row { background: rgba(240, 185, 11, .08); }

.ve-max { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ve-max-row { display: flex; gap: 8px; align-items: center; }
.ve-max-row input {
  width: 90px; background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 9px; color: var(--text); font-size: 13px; padding: 8px 10px; outline: 0;
  font-family: var(--mono);
}
.vip-editor { border: 1px solid var(--line-soft); border-radius: 12px; overflow: hidden; margin-top: 6px; }
.ve-row {
  display: grid; grid-template-columns: 84px 1fr 1fr 1fr;
  gap: 10px; align-items: center; padding: 8px 12px;
  border-top: 1px solid var(--line-soft);
}
.ve-row:first-child { border-top: 0; }
.ve-head {
  background: var(--bg-soft); font-size: 11.5px; color: var(--muted);
  padding: 10px 12px;
}
.ve-lv { font-size: 12.5px; font-weight: 600; color: var(--brand); }
.ve-row input {
  width: 100%; background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 8px; color: var(--text); font-size: 12.5px;
  padding: 7px 9px; outline: 0; font-family: var(--mono);
}
.ve-row input:focus { border-color: rgba(240, 185, 11, .6); }
.ve-row input[readonly] { opacity: .55; }

.vip-table td:first-child, .vip-table .tag { white-space: nowrap; }

/* 资金费结算时点 */
.fund-slots { display: flex; flex-direction: column; gap: 10px; }
.fund-slot-row { display: flex; gap: 10px; }
.fund-slot {
  flex: 1; text-align: center; padding: 10px;
  border-radius: 10px; border: 1px solid var(--line);
  background: var(--bg-soft); font-family: var(--mono); font-size: 14px;
  color: var(--text-2);
}
.fund-slot.next {
  border-color: rgba(240, 185, 11, .55);
  background: rgba(240, 185, 11, .1); color: var(--brand); font-weight: 600;
}
.fund-next { font-size: 12.5px; color: var(--text-2); }
.fund-next b { color: var(--brand); font-family: var(--mono); }

.out-tip { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; margin-bottom: 16px; border-color: rgba(240, 185, 11, .3); }
.out-tip span { font-size: 13px; color: var(--text-2); }

/* 团队管理 */
.tm-body { padding: 4px 0 14px; }
.tm-group { border-top: 1px solid var(--line-soft); }
.tm-group:first-child { border-top: 0; }
.tm-head { display: flex; align-items: center; gap: 14px; padding: 14px 20px 8px; flex-wrap: wrap; }
.tm-lv {
  font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--brand);
  border: 1px solid rgba(240, 185, 11, .4); border-radius: 7px; padding: 2px 9px;
}
.tm-table { min-width: 640px; }
.tm-table td, .tm-table th { padding: 10px 16px; }

/* =========================================================
   v2.7：团队管理独立页 + 白名单快捷选择
   ========================================================= */
.team-page { padding-top: 24px; padding-bottom: 60px; }
.team-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 24px; flex-wrap: wrap; margin-bottom: 16px;
}
.team-head h1 { font-size: 28px; margin-bottom: 6px; }
.team-kpi { display: flex; gap: 26px; }
.team-kpi div { display: flex; flex-direction: column; gap: 3px; }
.team-kpi span { font-size: 11.5px; color: var(--muted); }
.team-kpi b { font-family: var(--mono); font-size: 18px; }

.tm-sec {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; margin-bottom: 16px; overflow: hidden;
}
.tm-sec-head {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 20px;
  background: linear-gradient(90deg, rgba(240, 185, 11, .08), transparent 70%);
  border-bottom: 1px solid var(--line);
}
.tm-badge {
  font-size: 12.5px; font-weight: 700; padding: 3px 12px; border-radius: 7px;
  background: rgba(240, 185, 11, .15); color: var(--brand);
  border: 1px solid rgba(240, 185, 11, .35);
}
.tm-badge.l2 { background: rgba(0, 216, 192, .12); color: #2fd3c4; border-color: rgba(0, 216, 192, .3); }
.tm-badge.l3 { background: rgba(143, 163, 255, .12); color: #8fa3ff; border-color: rgba(143, 163, 255, .3); }
.tm-sec-num { font-size: 12.5px; color: var(--text-2); }
.tm-sec-num b { font-family: var(--mono); }

.tm-list { display: flex; flex-direction: column; }
.tm-row {
  display: grid; grid-template-columns: minmax(170px, 1.3fr) repeat(5, 0.85fr) 0.7fr auto;
  gap: 16px; align-items: center;
  padding: 12px 20px; border-top: 1px solid var(--line-soft);
}
.tm-row:first-child { border-top: 0; }
.tm-row:hover { background: var(--hover-bg); }
.tm-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tm-name b { font-size: 13.5px; }
.tm-col { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.tm-col span { font-size: 10.5px; color: var(--muted); }
.tm-col b { font-family: var(--mono); font-size: 13px; font-weight: 500; }
.tm-act { text-align: right; }
.tm-empty { padding: 22px 20px; text-align: center; color: var(--muted); font-size: 12.5px; }
@media (max-width: 1100px) {
  .tm-row { grid-template-columns: minmax(160px, 1.2fr) repeat(3, 0.8fr) auto; }
  .tm-row .tm-col:nth-child(4), .tm-row .tm-col:nth-child(5) { display: none; }
}
@media (max-width: 760px) {
  .tm-row { grid-template-columns: 1fr auto; row-gap: 10px; }
  .tm-col { display: none; }
}

.team-entry { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; }
.team-entry h3 { font-size: 15px; margin-bottom: 4px; }

.addr-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }
.addr-chip {
  display: flex; flex-direction: column; gap: 2px; align-items: flex-start;
  padding: 8px 12px; border-radius: 10px; cursor: pointer;
  background: var(--bg-soft); border: 1px solid var(--line);
  color: var(--text); font-family: inherit; transition: border-color .15s;
}
.addr-chip:hover { border-color: rgba(240, 185, 11, .5); }
.addr-chip b { font-size: 12.5px; }
.addr-chip span { font-family: var(--mono); font-size: 10.5px; color: var(--muted); }

.lb-head { font-size: 11px; color: var(--muted); padding-bottom: 6px; border-bottom: 1px solid var(--line-soft); }
.lb-fee { font-family: var(--mono); font-size: 12.5px; width: 90px; text-align: right; color: var(--text-2); }
.brand-text { color: var(--brand); font-family: var(--mono); }

/* 实名认证独立一行 */
.acct-kyc-row {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-top: 18px; padding: 14px 20px;
  border-top: 1px solid var(--line-soft);
  background: var(--bg-soft);
  border-radius: 0 0 12px 12px;
}
.acct-kyc-info { display: flex; align-items: center; gap: 12px; }
.acct-kyc-ico {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; background: rgba(240, 185, 11, .12); color: var(--brand);
  border: 1px solid rgba(240, 185, 11, .3);
}
.acct-kyc-ico.ok { background: rgba(14, 203, 129, .12); color: var(--up); border-color: rgba(14, 203, 129, .3); }
.acct-kyc-info b { display: block; font-size: 13px; margin-bottom: 2px; }

/* 统一滚动条样式：细、暗、悬停才明显 */
* { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .14) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .12); border-radius: 4px;
  border: 2px solid transparent; background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .25); background-clip: content-box; }
html[data-theme="light"]::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, .16); background-clip: content-box; }
/* =========================================================
   去掉数字输入框的原生上下箭头（白色小方块）
   ========================================================= */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
input[type="number"] { -moz-appearance: textfield; appearance: textfield; }

/* 自己画一对协调的加减按钮（只在 .stepper 包裹时出现） */
.stepper { display: flex; align-items: center; gap: 6px; }
.stepper .step-btn {
  width: 28px; height: 28px; flex: none;
  border-radius: 8px; border: 1px solid var(--line);
  background: var(--bg-soft); color: var(--text-2);
  font-size: 15px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .15s, color .15s, background .15s;
}
.stepper .step-btn:hover { border-color: rgba(240, 185, 11, .5); color: var(--brand); background: rgba(240, 185, 11, .08); }
.stepper .step-btn:active { transform: scale(.94); }

.sym-meta { display: flex; align-items: center; gap: 8px; margin-top: 5px; flex-wrap: wrap; }
.sym-meta .star { margin-left: 2px; }
/* =========================================================
   统一页面纵向节奏：容器 gap 控制，卡片不再自带 margin
   ========================================================= */
.page-stack { display: flex; flex-direction: column; gap: 16px; }
.page-stack > * { margin-top: 0 !important; margin-bottom: 0 !important; }
/* 用户管理表格：禁止单元格折行 */
.users-table th, .users-table td { white-space: nowrap; }
.users-table td:nth-child(1), .users-table td:nth-child(7), .users-table td:nth-child(8) { white-space: normal; min-width: 110px; }

/* 用户表：昵称/UID/实名 三行；身份/等级 两行 */
.u-name { font-size: 13px; font-weight: 600; line-height: 1.35; }
.u-uid { font-family: var(--mono); font-size: 11px; color: var(--muted); line-height: 1.5; }
.u-real { font-size: 11px; color: var(--text-2); line-height: 1.5; }
.u-role { line-height: 1.3; margin-bottom: 8px; }
.u-vip { line-height: 1.3; }
.users-table td { padding-top: 10px; padding-bottom: 10px; }

/* 冻结提示横幅 */
.frozen-bar {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 11px 20px;
  background: linear-gradient(90deg, rgba(246,70,93,.18), rgba(246,70,93,.06));
  border-bottom: 1px solid rgba(246,70,93,.35);
  color: #ff8b9a;
}
.frozen-bar b { font-size: 13.5px; }
.frozen-bar span { font-size: 12.5px; color: var(--muted); }

/* 二次确认弹窗的键值行 */
.confirm-rows { display: flex; flex-direction: column; gap: 10px; margin: 14px 0 4px; }
.confirm-rows > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.confirm-rows span { font-size: 12.5px; color: var(--muted); flex: none; }
.confirm-rows b { font-size: 13.5px; font-weight: 500; text-align: right; word-break: break-all; }
.confirm-rows b.num { font-family: var(--mono); color: var(--brand); }

.brand-tag { background: rgba(240,185,11,.14); border-color: rgba(240,185,11,.4); color: var(--brand); font-weight: 600; }

/* 合伙人表：净入金列用品牌黄强调 */
.pt-table .net-col { color: var(--brand); font-weight: 600; }
.pt-table th.net-col { color: var(--brand); }

/* 合伙人表：禁止单元格与按钮折行 */
.pt-table th, .pt-table td { white-space: nowrap; }
.pt-table td:first-child { white-space: normal; min-width: 200px; }
.pt-table .btn { white-space: nowrap; }
.pt-table td .tag { white-space: nowrap; }

/* 个人中心：标签栏与内容之间补 16px */
.acc-tabs + #accBody { margin-top: 16px; }

/* 全局表格：按钮与状态标签不折行 */
.table .btn { white-space: nowrap; }
.table td .tag, .table th .tag { white-space: nowrap; }
.table .row-actions { flex-wrap: nowrap; }

.head-actions { display: flex; align-items: center; gap: 12px; }

/* 宽版弹窗（用于表格类内容） */
.modal.modal-lg { max-width: 780px; width: min(92vw, 780px); }
.modal .table th, .modal .table td { white-space: nowrap; }
.modal .table td.small, .modal .table td.muted { white-space: nowrap; }

/* 资金记录弹窗：工具栏与分页 */
.fr-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.fr-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; flex-wrap: wrap; }

/* 资金记录：表头吸顶，滚动区独立 */
.fr-scroll { border: 1px solid var(--line-soft); border-radius: 10px; }
.fr-scroll .table thead th { position: sticky; top: 0; background: var(--panel); z-index: 2; }
.modal.modal-lg { display: flex; flex-direction: column; max-height: 88vh; }

/* 提币地址展开框 */
.addr-box {
  padding: 14px 16px; border-radius: 10px;
  background: var(--bg-soft); border: 1px solid var(--line);
  font-size: 13px; word-break: break-all; line-height: 1.6; color: var(--text);
  user-select: all;
}
.fr-scroll .link-btn { margin-left: 6px; font-size: 11.5px; }
/* =========================================================
   合约抵扣券卡片
   ========================================================= */
.vc {
  position: relative; margin: 12px 0 10px; padding: 12px 14px;
  border-radius: 12px; overflow: hidden;
  background: linear-gradient(135deg, rgba(240,185,11,.14), rgba(240,185,11,.04) 55%, rgba(0,216,192,.06));
  border: 1px solid rgba(240,185,11,.32);
}
.vc::after {
  content: ""; position: absolute; right: -30px; top: -40px;
  width: 120px; height: 120px; border-radius: 50%;
  background: radial-gradient(circle, rgba(240,185,11,.20), transparent 70%);
  pointer-events: none;
}
.vc-off { background: linear-gradient(135deg, rgba(240,185,11,.09), rgba(240,185,11,.03) 60%, rgba(255,255,255,.02)); border-color: rgba(240,185,11,.22); }
.vc-row { display: flex; align-items: center; gap: 8px; }
.vc-ico { font-size: 14px; }
.vc-row b { font-size: 13px; }
.vc-badge {
  margin-left: auto; font-size: 10.5px; padding: 2px 7px; border-radius: 999px;
  background: rgba(255,255,255,.06); color: var(--muted);
}
.vc-badge.ok { background: rgba(14,203,129,.14); color: #0ecb81; border: 1px solid rgba(14,203,129,.3); }
.vc-amount { display: flex; align-items: baseline; gap: 6px; margin-top: 8px; }
.vc-amount b { font-size: 22px; line-height: 1; color: var(--brand); font-weight: 600; }
.vc-bar { height: 4px; border-radius: 2px; background: rgba(255,255,255,.08); margin-top: 9px; overflow: hidden; }
.vc-bar i { display: block; height: 100%; border-radius: 2px; background: linear-gradient(90deg, #f0b90b, #ffd75e); transition: width .4s; }
.vc-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; font-size: 10.5px; color: var(--muted); }
.vc-cd b { color: var(--text-2); font-variant-numeric: tabular-nums; }
.vc-meta { margin-top: 6px; font-size: 11px; color: var(--muted); }

.vch-tag { display: inline-block; margin-top: 3px; font-size: 10px; padding: 1px 6px; border-radius: 999px; background: rgba(240,185,11,.16); color: var(--brand); white-space: nowrap; }

/* 券卡片：避免挤压下单面板 */
.vc { min-width: 0; max-width: 100%; box-sizing: border-box; }
.order-panel .vc { margin-top: 12px; }
.order-panel .vc-amount b { font-size: 20px; }

/* 资产页的券卡片：限制宽度，避免被拉成通栏 */
.page-stack > .vc { max-width: 420px; }
.page-stack > .vc .vc-amount b { font-size: 26px; }

/* 资产页抵扣券长条 */
.vbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 12px 18px; border-radius: 12px;
  background: linear-gradient(90deg, rgba(240,185,11,.15), rgba(240,185,11,.05) 45%, rgba(0,216,192,.05));
  border: 1px solid rgba(240,185,11,.3);
}
.vbar-off { background: linear-gradient(135deg, rgba(240,185,11,.08), rgba(240,185,11,.02)) !important; border-color: rgba(240,185,11,.2) !important; background: var(--panel-2); border-color: var(--line); }
.vbar-ico { font-size: 15px; }
.vbar b { font-size: 13.5px; }
.vbar-amt { font-size: 20px; font-weight: 600; color: var(--brand); line-height: 1; }
.vbar-amt.muted { font-size: 13px; color: var(--muted); font-weight: 400; }
.vbar-of { font-size: 12px; }
.vbar-tag { font-size: 10.5px; padding: 2px 8px; border-radius: 999px; background: rgba(14,203,129,.14); color: #0ecb81; }
.vbar-txt { font-size: 11.5px; color: var(--muted); }
.vbar-btn { margin-left: auto; }

/* 盈亏明细 */
.pnl-link {
  background: none; border: 0; padding: 0; font: inherit; color: inherit;
  cursor: pointer; border-bottom: 1px dashed rgba(255,255,255,.25);
}
.pnl-link:hover { color: var(--brand); border-bottom-color: var(--brand); }
.pnl-head { font-size: 12.5px; color: var(--muted); margin-bottom: 14px; }
.pnl-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 9px 0; font-size: 13.5px; }
.pnl-row span { color: var(--text-2); }
.pnl-sep { height: 1px; background: var(--line-soft); margin: 6px 0; }
.pnl-note { margin-top: 14px; font-size: 11.5px; color: var(--muted); line-height: 1.7; }

/* 盈亏明细：总额单独放大 */
.pnl-row.pnl-hero { padding: 4px 0 12px; }
.pnl-row.pnl-hero span { font-size: 13px; }
.pnl-row.pnl-hero b { font-size: 24px; font-weight: 600; line-height: 1.2; }

.hm-stats { display: flex; gap: 40px; padding: 16px 20px; border-bottom: 1px solid var(--line-soft); }
.hm-stats > div { display: flex; flex-direction: column; gap: 4px; }
.hm-stats span { font-size: 11.5px; color: var(--muted); }
.hm-stats b { font-size: 20px; font-weight: 600; }
.hm-stats b.warn { color: var(--brand); }
.hm-stats b.down { color: #f6465d; }

/* 风控中心分区 */
.risk-sec { margin-top: 14px; overflow: hidden; }
.risk-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 7px; vertical-align: middle; }
.risk-dot.danger { background: #f6465d; box-shadow: 0 0 0 3px rgba(246,70,93,.18); }
.risk-dot.serious { background: #f0b90b; box-shadow: 0 0 0 3px rgba(240,185,11,.16); }
.risk-dot.watch { background: #8fa3ff; box-shadow: 0 0 0 3px rgba(143,163,255,.16); }
.risk-cnt { margin-left: 8px; font-size: 12px; font-weight: 500; color: var(--muted); }
.risk-sec.risk-danger { border-color: rgba(246,70,93,.28); }
.risk-sec.risk-serious { border-color: rgba(240,185,11,.26); }
.risk-sec.risk-watch { border-color: rgba(143,163,255,.24); }
.risk-table td { padding-top: 10px; padding-bottom: 10px; }

.risk-blue { color: #8fa3ff; }
.list-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--line-soft); }

/* 用户状态与风险等级配色 */
.tag.s-normal { background: rgba(14,203,129,.14); border-color: rgba(14,203,129,.35); color: #0ecb81; }
.tag.s-frozen { background: rgba(240,185,11,.14); border-color: rgba(240,185,11,.38); color: #f0b90b; }
.tag.s-kyc    { background: rgba(0,216,192,.13); border-color: rgba(0,216,192,.35); color: #00d8c0; }
.tag.s-watch  { background: rgba(96,150,255,.15); border-color: rgba(96,150,255,.38); color: #6f9dff; }
.tag.s-serious{ background: rgba(167,139,250,.15); border-color: rgba(167,139,250,.4); color: #a78bfa; }
.tag.s-danger { background: rgba(246,70,93,.15); border-color: rgba(246,70,93,.4); color: #f6465d; }

.tx-normal { color: #0ecb81; }
.tx-frozen { color: #f0b90b; }
.tx-kyc    { color: #00d8c0; }
.tx-watch  { color: #6f9dff; }
.tx-serious{ color: #a78bfa; }
.tx-danger { color: #f6465d; font-weight: 600; }

.chip-btn.s-normal.on { color: #0ecb81; border-color: rgba(14,203,129,.45); background: rgba(14,203,129,.12); }
.chip-btn.s-frozen.on { color: #f0b90b; border-color: rgba(240,185,11,.45); background: rgba(240,185,11,.12); }
.chip-btn.s-kyc.on    { color: #00d8c0; border-color: rgba(0,216,192,.45); background: rgba(0,216,192,.12); }
.chip-btn.s-watch.on  { color: #6f9dff; border-color: rgba(96,150,255,.45); background: rgba(96,150,255,.12); }
.chip-btn.s-serious.on{ color: #a78bfa; border-color: rgba(167,139,250,.45); background: rgba(167,139,250,.12); }
.chip-btn.s-danger.on { color: #f6465d; border-color: rgba(246,70,93,.45); background: rgba(246,70,93,.12); }

/* =========================================================
   移动端适配：防止表格撑破屏幕
   ========================================================= */
@media (max-width: 820px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .wrap { max-width: 100%; padding-left: 12px; padding-right: 12px; }

  /* 卡片内部允许横向滚动，不再撑破页面 */
  .card { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .card-head, .admin-toolbar { flex-wrap: wrap; gap: 10px; }
  .card-head h3 { font-size: 15px; }

  /* 表格：去掉硬编码最小宽度 */
  .table { min-width: 0 !important; width: 100%; }
  .users-table, .risk-table, .orders-table, .pt-table, .mkt-table { min-width: 0 !important; }
  .table th, .table td { padding-left: 10px; padding-right: 10px; font-size: 12.5px; white-space: nowrap; }

  /* 隐藏次要列，保留关键信息 */
  .users-table th:nth-child(2), .users-table td:nth-child(2),   /* 开户日期 */
  .users-table th:nth-child(7), .users-table td:nth-child(7),   /* 上级 */
  .users-table th:nth-child(8), .users-table td:nth-child(8),   /* 团队 */
  .orders-table th:nth-child(4), .orders-table td:nth-child(4),
  .mkt-table th:nth-child(5), .mkt-table td:nth-child(5),       /* 24h 高低 */
  .mkt-table th:nth-child(6), .mkt-table td:nth-child(6),       /* 成交额 */
  .mkt-table th:nth-child(7), .mkt-table td:nth-child(7) {      /* 走势图 */
    display: none;
  }

  /* 筛选条与分页 */
  .chip-row { flex-wrap: wrap; }
  .list-pager { flex-wrap: wrap; gap: 10px; padding: 12px; }

  /* 底部悬浮下单条 */
  .mobile-order-bar, .sticky-order-bar { left: 12px; right: 12px; max-width: none; }

  /* 弹窗铺满 */
  .modal { width: min(94vw, 100%) !important; max-width: 94vw !important; }
  .modal.modal-lg { width: 94vw !important; }

  /* 券长条换行 */
  .vbar { flex-wrap: wrap; row-gap: 6px; }
  .vbar-btn { margin-left: 0; }

  /* 资产页四列改两列 */
  .acct-grid { grid-template-columns: 1fr 1fr !important; gap: 14px; }
  .hm-stats { gap: 20px; flex-wrap: wrap; }
}

/* ===== 移动端第二轮：修重叠 + 行情表卡片化 ===== */
@media (max-width: 820px) {
  /* 卡片标题右侧按钮换行，避免压住说明文字 */
  .card-head { flex-direction: column; align-items: flex-start; }
  .card-head .head-actions { width: 100%; justify-content: space-between; }
  .card-head .btn { align-self: flex-start; }

  /* 行情浮标：贴右下但不压内容 */
  #livePill {
    right: 10px !important; bottom: 86px !important;
    padding: 6px 10px !important; font-size: 11px !important;
    opacity: .92;
  }

  /* 行情表：改成卡片式一行 */
  .mkt-table thead { display: none; }
  .mkt-table tbody tr {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px; border-bottom: 1px solid var(--line-soft);
  }
  .mkt-table tbody tr:last-child { border-bottom: 0; }
  .mkt-table td { display: block; border: 0; padding: 0; }
  .mkt-table td:nth-child(1) { flex: none; width: 22px; }
  .mkt-table td:nth-child(2) { flex: 1 1 auto; min-width: 0; }
  .mkt-table td:nth-child(2) .coin-name { font-size: 14px; }
  .mkt-table td:nth-child(3) { flex: none; text-align: right; font-weight: 500; }
  .mkt-table td:nth-child(4) { flex: none; width: 60px; text-align: right; }
  .mkt-table td:nth-child(8) { display: none; }
  .mkt-table .spark { display: none; }
}

/* 行情卡片行：内容宽度收敛，禁止溢出 */
@media (max-width: 820px) {
  .mkt-table { width: 100%; table-layout: auto; }
  .mkt-table tbody { display: block; width: 100%; }
  .mkt-table tbody tr { width: 100%; box-sizing: border-box; }
  .mkt-table td:nth-child(2) { flex: 1 1 0; min-width: 0; overflow: hidden; }
  .mkt-table td:nth-child(2) .coin-name,
  .mkt-table td:nth-child(2) .muted-2 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mkt-table td:nth-child(3) { flex: 0 0 auto; max-width: 42%; overflow: hidden; text-overflow: ellipsis; }
  .mkt-table td:nth-child(4) { flex: 0 0 62px; }
}

/* 行情表：整体改为块级 flex，彻底消除横向溢出 */
@media (max-width: 820px) {
  .mkt-card div[style*="overflow-x"] { overflow: visible !important; }
  .mkt-table { display: block !important; width: 100% !important; }
  .mkt-table tbody { display: block !important; width: 100% !important; }
  .mkt-table tbody tr { display: flex !important; width: 100% !important; box-sizing: border-box; }
  .mkt-table td { min-width: 0 !important; overflow: hidden; }
  .mkt-table td:nth-child(1) { flex: 0 0 20px; }
  .mkt-table td:nth-child(2) { flex: 1 1 0; }
  .mkt-table td:nth-child(3) { flex: 0 0 auto; }
  .mkt-table td:nth-child(4) { flex: 0 0 58px; }
}

/* ===== 移动端：合约下单区（底部抽屉）不溢出 ===== */
@media (max-width: 880px) {
  .trade-grid .order-panel {
    width: 100vw; max-width: 100vw; left: 0; right: 0;
    box-sizing: border-box; padding: 16px 14px 22px;
  }
  .order-panel .order-body { max-width: 100%; }
  .order-panel *, .order-panel *::before, .order-panel *::after { box-sizing: border-box; }

  /* 各种可选按钮组：自动换行，不撑宽 */
  .order-panel .order-tabs,
  .order-panel .lev-row,
  .order-panel .chip-row,
  .order-panel .pct-row,
  .order-panel .check-row,
  .order-panel .side-btns {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: 100%;
  }
  .order-panel .order-tabs button,
  .order-panel .lev-row button,
  .order-panel .chip-row button {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    padding: 7px 6px;
  }
  .order-panel .pct-row button { flex: 1 1 0; }

  /* 摘要行不换行挤压 */
  .order-panel .summary-row { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; }
  .order-panel .summary-row span { flex: none; }
  .order-panel .summary-row b { text-align: right; min-width: 0; overflow: hidden; text-overflow: ellipsis; }

  /* 底部浮动下单按钮与标签栏留白 */
  .sheet-fab { left: 12px; right: 12px; bottom: 64px; }
}

/* ===== 移动端：持仓/委托/成交表改为精简卡片 ===== */
@media (max-width: 880px) {
  .trade-tables div[style*="overflow-x"] { overflow: visible !important; }
  .pos-table { display: block !important; width: 100% !important; }
  .pos-table thead { display: none; }
  .pos-table tbody { display: block !important; width: 100% !important; }
  .pos-table tbody tr {
    display: flex !important; flex-wrap: wrap; align-items: center;
    width: 100% !important; box-sizing: border-box;
    padding: 12px 14px; gap: 6px 12px;
    border-bottom: 1px solid var(--line-soft);
  }
  .pos-table td { display: block; border: 0; padding: 0 !important; min-width: 0; font-size: 12.5px; }

  /* 隐藏：保证金(6) ADL(9) 止盈止损(11) */
  .pos-table td:nth-child(6),
  .pos-table td:nth-child(9),
  .pos-table td:nth-child(11) { display: none; }

  /* 第一列：合约名，独占一行前缀 */
  .pos-table td:nth-child(1) { flex: 0 0 auto; font-weight: 600; font-size: 13.5px; }
  .pos-table td:nth-child(2) { flex: 0 0 auto; }
  /* 开仓价 / 标记价 紧凑 */
  .pos-table td:nth-child(3),
  .pos-table td:nth-child(4) { flex: 0 0 auto; color: var(--text-2); }
  .pos-table td:nth-child(5) { flex: 0 0 auto; }
  /* 未实现盈亏 + 回报率 */
  .pos-table td:nth-child(7) { flex: 0 0 auto; font-weight: 600; }
  .pos-table td:nth-child(8) { flex: 0 0 auto; font-size: 11.5px; }
  /* 强平距离整行 */
  .pos-table td:nth-child(10) { flex: 1 1 100%; font-size: 11.5px; color: var(--muted); }
  /* 操作按钮靠右 */
  .pos-table td:nth-child(12) { flex: 1 1 100%; text-align: right; }
  .pos-table td:nth-child(12) .row-actions { justify-content: flex-end; }
  .pos-table .btn-sm { padding: 5px 10px; font-size: 11.5px; }
}

/* ===== 手机端第三轮：资产币种表 + 底部导航 ===== */
@media (max-width: 820px) {
  /* 币种资产：卡片式，隐藏参考价与占比 */
  .hold-table { display: block !important; width: 100% !important; }
  .hold-table thead { display: none; }
  .hold-table tbody { display: block !important; width: 100% !important; }
  .hold-table tbody tr {
    display: flex !important; flex-wrap: wrap; align-items: center;
    width: 100% !important; box-sizing: border-box;
    padding: 12px 14px; gap: 4px 12px;
    border-bottom: 1px solid var(--line-soft);
  }
  .hold-table td { display: block; border: 0; padding: 0 !important; min-width: 0; font-size: 12.5px; }
  .hold-table td:nth-child(3),   /* 参考价 */
  .hold-table td:nth-child(5) {  /* 占比 */
    display: none;
  }
  .hold-table td:nth-child(1) { flex: 0 0 auto; font-weight: 600; font-size: 14px; }
  .hold-table td:nth-child(2) { flex: 0 0 auto; }
  .hold-table td:nth-child(4) { flex: 1 1 auto; text-align: right; font-weight: 600; }
  .hold-table td:nth-child(6) { flex: 0 0 auto; }
  .hold-table .btn-sm { padding: 5px 10px; font-size: 11.5px; }

  /* 底部导航：8 个入口，缩小图标与字号 */
  .tabbar a { padding: 6px 2px; gap: 2px; }
  .tabbar svg { width: 18px; height: 18px; }
  .tabbar span { font-size: 9.5px; }
  .tabbar { overflow-x: auto; }
}

/* 底部导航：8 项等分，不横向滚动 */
@media (max-width: 820px) {
  .tabbar { overflow-x: visible !important; }
  .tabbar a { flex: 1 1 0 !important; min-width: 0 !important; padding: 6px 1px !important; }
  .tabbar a span { font-size: 9px !important; white-space: nowrap; }
  .tabbar a svg { width: 17px !important; height: 17px !important; }
}

/* =========================================================
   手机端信息瘦身（纯 CSS，不影响电脑端）
   ========================================================= */
@media (max-width: 820px) {
  /* --- 首页：收起营销模块，只留资产条 + 行情 --- */
  .hero { display: none !important; }
  .section:has(.features) { display: none !important; }
  .section:has(.section-head h2:nth-child(1)) { }
  .features, .section-head + .features { display: none; }
  .download { display: none !important; }
  .promo-stats, .promo-section { display: none !important; }

  /* 首页 FAQ 与「守护交易」整段隐藏：用相邻选择器定位第 3 个 section */
  .wrap > section.section:nth-of-type(n+3) { display: none !important; }

  /* --- 资产页：去掉 4 个小卡 + 实名认证行 --- */
  .mini-cards { display: none !important; }
  .mini-card { display: none !important; }
  .acct-kyc-row { display: none !important; }

  /* 资产 hero 精简 */
  .asset-hero { padding: 18px !important; }
  .asset-hero .hero-num { font-size: 30px !important; }
  .asset-hero .acct-assets, .asset-hero .hero-stats { gap: 18px !important; }

  /* --- 个人中心：压缩卡片间距 --- */
  .acc-head { padding: 16px !important; }
  .acc-name { font-size: 17px !important; }
  .acc-assets { gap: 16px !important; }
  .acc-assets b { font-size: 15px !important; }
  .vip-card { padding: 14px 16px !important; }
  .quick-card { padding: 12px 14px !important; }
  .quick-row { gap: 10px !important; }

  /* 卡片内边距统一收紧 */
  .card-head { padding: 12px 14px !important; }
  .card-pad { padding: 14px !important; }
  .wrap { padding-top: 12px !important; }

  /* 弹窗底部留白，避免被 tabbar 挡住 */
  .modal { margin-bottom: 70px; }
}

/* ===== 手机端第四轮：返佣表 / 标签栏 / 持仓排布 ===== */
@media (max-width: 820px) {
  /* 1) 所有标签栏（个人中心 / 后台 / 交易页）允许换行，不再横向滚动 */
  .admin-tabs, .acc-tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
    gap: 6px !important;
    padding: 8px 12px !important;
    border-bottom: 1px solid var(--line-soft);
  }
  .admin-tabs button, .acc-tabs button {
    flex: 0 0 auto !important;
    padding: 7px 11px !important;
    font-size: 12px !important;
    border: 1px solid transparent;
    border-radius: 8px;
  }
  .admin-tabs button.on, .acc-tabs button.on {
    background: rgba(240,185,11,.12);
    border-color: rgba(240,185,11,.35);
    color: var(--brand);
  }

  /* 2) 返佣明细表：卡片式 */
  .rb-table { display: block !important; width: 100% !important; }
  .rb-table thead { display: none; }
  .rb-table tbody { display: block !important; width: 100% !important; }
  .rb-table tbody tr {
    display: flex !important; flex-wrap: wrap; align-items: center;
    width: 100% !important; box-sizing: border-box;
    padding: 10px 14px; gap: 4px 10px;
    border-bottom: 1px solid var(--line-soft);
  }
  .rb-table td { display: block; border: 0; padding: 0 !important; min-width: 0; font-size: 12px; }
  .rb-table td:nth-child(3),   /* 层级 */
  .rb-table td:nth-child(6) {  /* 比例 */
    display: none;
  }
  .rb-table td:nth-child(1) { flex: 0 0 auto; color: var(--muted); font-size: 11.5px; }
  .rb-table td:nth-child(2) { flex: 1 1 auto; font-weight: 500; }
  .rb-table td:nth-child(4) { flex: 0 0 auto; color: var(--text-2); }
  .rb-table td:nth-child(5) { flex: 0 0 auto; color: var(--muted); font-size: 11.5px; }
  .rb-table td:nth-child(7) { flex: 0 0 auto; font-weight: 600; }

  /* 3) 持仓卡片排版优化 */
  .pos-table tbody tr { padding: 14px !important; row-gap: 8px !important; }
  .pos-table td:nth-child(1) { flex: 0 0 auto; font-size: 14px !important; }
  .pos-table td:nth-child(2) { flex: 0 0 auto; }
  .pos-table td:nth-child(5) { flex: 0 0 auto; color: var(--muted); font-size: 11.5px !important; }
  .pos-table td:nth-child(7) { flex: 0 0 auto; font-size: 14px !important; font-weight: 600 !important; }
  .pos-table td:nth-child(8) { flex: 0 0 auto; font-size: 12px !important; }
  .pos-table td:nth-child(10) { flex: 1 1 100%; font-size: 11.5px !important; }
  .pos-table td:nth-child(12) { flex: 1 1 100%; text-align: right; margin-top: 2px; }
  .pos-table td:nth-child(3), .pos-table td:nth-child(4) { font-size: 11.5px !important; }
}

/* =========================================================
   手机端 APP 化改版
   ========================================================= */
@media (max-width: 820px) {
  /* 去网页尾巴 */
  .foot, footer, .site-foot { display: none !important; }

  /* 资产总览卡：与下方等宽 */
  .asset-hero, .acc-head { width: 100% !important; margin: 0 !important; border-radius: 14px; }
  .page-stack > * { width: 100%; }

  /* 总资产金色加粗 */
  .asset-hero .hero-num, .acc-assets b:first-child { color: var(--brand) !important; font-weight: 700 !important; }

  /* 总览四项：一行四项，不出现第二排单挂 */
  .asset-hero .hero-stats, .acc-assets {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
  }
  .asset-hero .hero-stats > div, .acc-assets > div { min-width: 0; }
  .asset-hero .hero-stats b, .acc-assets b { font-size: 14px !important; }
  .asset-hero .hero-stats span, .acc-assets span { font-size: 10.5px !important; }

  /* 账户与出入金：USDT 弱化 */
  .acct-item b { font-size: 19px !important; font-weight: 600 !important; }
  .acct-item .num-unit, .acct-item b + span { font-size: 10px !important; opacity: .6; }

  /* 盈亏明细：每项独立一行，左标签右数值 */
  .pnl-row { display: flex !important; flex-direction: row !important; align-items: baseline !important; justify-content: space-between !important; padding: 11px 0 !important; }
  .pnl-row span { font-size: 12.5px !important; color: var(--muted) !important; flex: none; }
  .pnl-row b { font-size: 13.5px !important; text-align: right; }
  .pnl-row.pnl-hero b { font-size: 22px !important; }
}

/* 卡片内字段加标签（纯 CSS，不影响电脑端） */
@media (max-width: 820px) {
  .pos-table td:nth-child(3)::before { content: "开仓 "; color: var(--muted); font-size: 10.5px; }
  .pos-table td:nth-child(4)::before { content: "标记 "; color: var(--muted); font-size: 10.5px; }
  .pos-table td:nth-child(5)::before { content: "数量 "; color: var(--muted); font-size: 10.5px; }
  .pos-table td:nth-child(8)::before { content: "回报 "; color: var(--muted); font-size: 10.5px; }

  .hold-table td:nth-child(2)::before { content: "数量 "; color: var(--muted); font-size: 10.5px; }
  .hold-table td:nth-child(4)::before { content: "≈ "; color: var(--muted); font-size: 10.5px; }

  .rb-table td:nth-child(4)::before { content: ""; }

  /* 历史成交行：字段分行显示 */
  .pos-table td:nth-child(1) { font-size: 13px !important; }
}

/* 修正：总览卡满宽 + 四项 2×2 + 总资产金色 */
@media (max-width: 820px) {
  .asset-hero { display: block !important; width: 100% !important; }
  .asset-hero .equity-card { width: 100% !important; }
  .equity-card .big {
    color: var(--brand) !important;
    font-weight: 700 !important;
    font-size: 34px !important;
    letter-spacing: -.5px;
  }
  .equity-sub {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 12px !important;
    margin-top: 16px !important;
  }
  .equity-sub > div { font-size: 11.5px; color: var(--muted); }
  .equity-sub b { display: block; margin-top: 4px; font-size: 15px !important; color: var(--text); }

  /* 账户与出入金：数字更清爽 */
  .acct-grid { grid-template-columns: 1fr 1fr !important; gap: 18px 12px !important; }
  .acct-cell b, .acct-grid b { font-size: 17px !important; font-weight: 600 !important; }
}

/* 手机端：保留首页内容，行情页合并进首页 */
@media (max-width: 820px) {
  .hero { display: block !important; }
  .hero-slide { padding: 18px !important; }
  .hero h1, .hero .hero-title { font-size: 22px !important; }
  .hero .hero-actions { gap: 8px !important; }
  .hero .btn { padding: 9px 14px !important; font-size: 13px !important; }
}

/* 现货持仓：手机端卡片（每张卡一个币种，带字段标题） */
@media (max-width: 820px) {
  .spot-hold { display: block !important; width: 100% !important; }
  .spot-hold thead { display: none; }
  .spot-hold tbody { display: block !important; width: 100% !important; }
  .spot-hold tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
    width: 100% !important; box-sizing: border-box;
    padding: 14px; margin-bottom: 10px;
    border: 1px solid var(--line-soft); border-radius: 12px;
    background: var(--bg-2, rgba(255,255,255,.02));
  }
  .spot-hold td { display: block; border: 0; padding: 0 !important; min-width: 0; font-size: 13px; }
  .spot-hold td:nth-child(1) { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; }
  .spot-hold td:nth-child(2)::before { content: "数量"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(3)::before { content: "成本均价"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(4)::before { content: "现价"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(5)::before { content: "市值"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(6)::before { content: "浮动盈亏"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(7)::before { content: "收益率"; display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; }
  .spot-hold td:nth-child(6), .spot-hold td:nth-child(7) { font-size: 14px; font-weight: 600; }
  .spot-hold td:nth-child(8) { grid-column: 1 / -1; text-align: right; margin-top: 2px; }
  .spot-hold td:nth-child(8) .btn { width: 100%; padding: 8px; font-size: 13px; }
}

/* 登录注册入口移到个人中心（手机端） */
@media (max-width: 820px) {
  #authSlot > a[href="#/login"],
  #authSlot > a[href="#/register"] { display: none !important; }

  .login-promo {
    display: flex; align-items: center; gap: 10px;
    padding: 14px !important; margin-bottom: 12px;
    background: linear-gradient(135deg, rgba(240,185,11,.14), rgba(240,185,11,.04));
    border: 1px solid rgba(240,185,11,.28);
  }
  .login-promo .lp-icon {
    width: 40px; height: 40px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(240,185,11,.18); font-size: 18px; flex: none;
  }
  .login-promo .lp-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
  .login-promo .lp-text b { font-size: 15px; }
  .login-promo .lp-text span { font-size: 11px; color: var(--muted); }
  .login-promo .btn { padding: 7px 12px !important; font-size: 12.5px; }
}

/* 登录入口卡：桌面也显示（放在个人中心顶部） */
.login-promo {
  display: flex; align-items: center; gap: 10px;
  padding: 14px; margin-bottom: 14px;
  background: linear-gradient(135deg, rgba(240,185,11,.14), rgba(240,185,11,.04));
  border: 1px solid rgba(240,185,11,.28);
}
.login-promo .lp-icon {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(240,185,11,.18); font-size: 18px; flex: none;
}
.login-promo .lp-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.login-promo .lp-text b { font-size: 15px; }
.login-promo .lp-text span { font-size: 11.5px; color: var(--muted); }
.login-promo .btn { padding: 7px 14px; font-size: 13px; }
@media (max-width: 820px) {
  .login-promo .lp-text span { font-size: 10.5px; }
  .login-promo .btn { padding: 6px 10px !important; font-size: 12px; }
}

/* =========================================================
   手机端最终修正
   ========================================================= */
@media (max-width: 820px) {
  /* 1. 隐藏顶部 LOGO 整行 + 主题切换 */
  .topbar, header.topbar, .site-head { display: none !important; }
  .equity-mini, .icon-btn[data-act="theme"] { display: none !important; }
  main#app { padding-top: 8px !important; }

  /* 2. 隐藏常见问题 */
  .faq, .faq-list, .section:has(.faq) { display: none !important; }

  /* 3. 卡片间距收紧 */
  .page-stack { gap: 12px !important; }

  /* 4. 底部留白，避免下单键遮挡 */
  body { padding-bottom: 130px !important; }
  main#app { padding-bottom: 20px !important; }

  /* 5. 资产首卡强制满宽 */
  .asset-hero { display: block !important; width: 100% !important; max-width: none !important; }
  .asset-hero .equity-card {
    width: 100% !important; max-width: none !important;
    margin: 0 !important; grid-column: auto !important;
  }

  /* 6. 出入金数字：整数大、单位小 */
  .acct-grid, .acct-cell { font-variant-numeric: tabular-nums; }
  .acct-grid b, .acct-cell b { font-size: 17px !important; }
  .acct-grid .unit, .acct-cell .unit { font-size: 10px !important; opacity: .55; }

  /* 7. 个人中心标题隐藏 */
  .acc-title { display: none !important; }

  /* 8. 个人中心资产三项：借鉴资产页排版 */
  .acc-assets {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
    padding: 14px !important;
  }
  .acc-assets > div { display: flex; flex-direction: column; gap: 5px; }
  .acc-assets span { font-size: 11px !important; color: var(--muted); }
  .acc-assets b { font-size: 15px !important; }

  /* 9. 快捷按钮：五个一行，与卡片同宽 */
  .quick-row, .acc-quick {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
  }
  .quick-row > *, .acc-quick > * { min-width: 0; padding: 10px 4px !important; }
  .quick-row span, .acc-quick span { font-size: 10.5px !important; }

  /* 10. 持仓卡片重排 */
  .pos-table tbody tr { padding: 12px 14px !important; row-gap: 6px !important; }
  .pos-table td:nth-child(1) { font-size: 14.5px !important; font-weight: 600; }
  .pos-table td:nth-child(7) { font-size: 15px !important; font-weight: 700; }
  .pos-table td:nth-child(12) { margin-top: 6px; }
}

/* 出入金：数字与单位分开排版 */
.acct-item b, .acct-cell b { display: inline-block; }
.acct-item .unit, .acct-cell .unit {
  display: inline-block; margin-left: 4px;
  font-size: 11px !important; font-weight: 400;
  color: var(--muted); opacity: .7; vertical-align: baseline;
}
@media (max-width: 820px) {
  .acct-item .unit, .acct-cell .unit { font-size: 9.5px !important; }

  /* 现货下单抽屉 */
  .spot-grid .order-panel {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
    max-height: 82vh; overflow-y: auto;
    border-radius: 18px 18px 0 0;
    transform: translateY(102%);
    transition: transform .26s cubic-bezier(.2,.8,.3,1);
    box-shadow: 0 -18px 50px rgba(0,0,0,.55);
    width: 100vw; max-width: 100vw; box-sizing: border-box;
    padding: 16px 14px 22px;
  }
  body.sheet-open .spot-grid .order-panel { transform: none; }

  /* 持仓：更清晰的卡片 */
  .pos-table tbody tr {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 8px 10px;
    padding: 14px !important;
    margin-bottom: 10px;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px;
    background: rgba(255,255,255,.02);
  }
  .pos-table td:nth-child(1) { grid-column: 1; font-size: 15px !important; font-weight: 600; }
  .pos-table td:nth-child(2) { grid-column: 2; justify-self: end; }
  .pos-table td:nth-child(3) { grid-column: 1; }
  .pos-table td:nth-child(4) { grid-column: 2; justify-self: end; }
  .pos-table td:nth-child(5) { grid-column: 1; }
  .pos-table td:nth-child(7) { grid-column: 2; justify-self: end; font-size: 16px !important; }
  .pos-table td:nth-child(8) { grid-column: 2; justify-self: end; }
  .pos-table td:nth-child(10) { grid-column: 1 / -1; }
  .pos-table td:nth-child(12) { grid-column: 1 / -1; text-align: right; }
}

/* ============ 手机端修正 v3 ============ */
@media (max-width: 820px) {
  /* 1. 快捷卡恢复：一行一个，不再挤压变形 */
  .quick-row, .acc-quick {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .quick-row > *, .acc-quick > * {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 14px !important;
    writing-mode: horizontal-tb !important;
    white-space: normal !important;
  }
  .quick-row > * span, .acc-quick > * span { font-size: 12px !important; }
  .quick-row > * div, .acc-quick > * div { white-space: normal !important; }

  /* 2. 资产首卡：与下方卡片严格同宽 */
  .asset-hero { margin: 0 !important; padding: 0 !important; width: 100% !important; }
  .asset-hero .equity-card {
    width: 100% !important; max-width: 100% !important;
    margin: 0 !important; box-sizing: border-box;
  }

  /* 3. USDT 单位：数字下方左对齐 */
  .acct-item .unit, .acct-cell .unit {
    display: block !important;
    margin: 3px 0 0 0 !important;
    text-align: left !important;
    line-height: 1.2;
  }

  /* 4. 持仓卡片：左上信息、右下重点，三行排布 */
  .pos-table tbody tr {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    grid-template-areas:
      "sym  side"
      "info price"
      "qty  pnl"
      "rate liq"
      "acts acts" !important;
    align-items: center !important;
    gap: 6px 10px !important;
    padding: 13px 14px !important;
    margin-bottom: 10px;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px;
    background: rgba(255,255,255,.02);
  }
  .pos-table td { border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; }
  .pos-table td:nth-child(1) { grid-area: sym;  font-size: 15px !important; font-weight: 600; }
  .pos-table td:nth-child(2) { grid-area: side; justify-self: end; }
  .pos-table td:nth-child(3) { grid-area: info; font-size: 11.5px !important; color: var(--muted); }
  .pos-table td:nth-child(4) { grid-area: price; justify-self: end; font-size: 11.5px !important; color: var(--text-2); }
  .pos-table td:nth-child(5) { grid-area: qty;  font-size: 11.5px !important; color: var(--muted); }
  .pos-table td:nth-child(7) { grid-area: pnl;  justify-self: end; font-size: 16px !important; font-weight: 700; }
  .pos-table td:nth-child(8) { grid-area: rate; justify-self: end; font-size: 11.5px !important; }
  .pos-table td:nth-child(10){ grid-area: liq;  font-size: 11px !important; color: var(--muted); }
  .pos-table td:nth-child(12){ grid-area: acts; text-align: right !important; }
  .pos-table td:nth-child(12) .row-actions { justify-content: flex-end !important; }
}

/* 持仓/成交：去掉「回报」二字，盈亏放大 */
@media (max-width: 820px) {
  .pos-table td:nth-child(8)::before { content: none !important; }
  .pos-table td:nth-child(7) { font-size: 18px !important; font-weight: 700 !important; letter-spacing: -.3px; }
  .pos-table td:nth-child(8) { font-size: 12px !important; opacity: .75; }
}

/* 历史成交：手续费小字标注，盈亏放大 */
@media (max-width: 820px) {
  .hist-table td:nth-child(7)::before { content: "手续费 "; font-size: 10px; color: var(--muted); }
  .hist-table td:nth-child(7) { font-size: 11px !important; opacity: .65; font-weight: 400 !important; }
  .hist-table td:nth-child(8)::before { content: none !important; }
  .hist-table td:nth-child(8) { font-size: 17px !important; font-weight: 700 !important; }
}

/* 手机端隐藏常见问题整段 */
@media (max-width: 820px) {
  .faq-sec, .faq-sec .wrap, .faq { display: none !important; }
  section.section:has(h2) { }
}

/* ===== 电脑端同步：资产首卡去掉两项 ===== */
.equity-sub > div:nth-child(1),
.equity-sub > div:nth-child(2) { display: none !important; }
.equity-sub { grid-template-columns: 1fr 1fr !important; }

/* ===== 手机端：现货持仓卡片重排 ===== */
@media (max-width: 820px) {
  .spot-hold tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "sym   rate"
      "qty   avg"
      "price value"
      "acts  acts" !important;
    gap: 8px 12px !important;
    padding: 14px !important;
  }
  .spot-hold td:nth-child(1) { grid-area: sym; }
  .spot-hold td:nth-child(2) { grid-area: qty; }
  .spot-hold td:nth-child(3) { grid-area: avg; }
  .spot-hold td:nth-child(4) { grid-area: price; }
  .spot-hold td:nth-child(5) { grid-area: value; }
  .spot-hold td:nth-child(7) { grid-area: rate; justify-self: end; font-size: 15px !important; font-weight: 700; }
  .spot-hold td:nth-child(7)::before { content: none !important; }
  .spot-hold td:nth-child(6) { display: none !important; }
  .spot-hold td:nth-child(8) { grid-area: acts; text-align: right !important; }
  .spot-hold td:nth-child(8) .btn { width: auto !important; padding: 7px 22px !important; }

  /* ===== 合约持仓卡片重排 ===== */
  .pos-table:not(.hist-table):not(.spot-hold) tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "sym   side"
      "qty   liq"
      "open  tpsl"
      "mark  mark"
      "pnl   acts" !important;
    gap: 7px 12px !important;
  }
  .pos-table td:nth-child(1) { grid-area: sym; }
  .pos-table td:nth-child(2) { grid-area: side; justify-self: end; text-align: right; flex-direction: column; }
  .pos-table td:nth-child(5) { grid-area: qty; }
  .pos-table td:nth-child(10){ grid-area: liq; justify-self: end; }
  .pos-table td:nth-child(3) { grid-area: open; }
  .pos-table td:nth-child(11){ grid-area: tpsl; justify-self: end; display: block !important; }
  .pos-table td:nth-child(4) { grid-area: mark; }
  .pos-table td:nth-child(7) { grid-area: pnl; font-size: 17px !important; font-weight: 700; }
  .pos-table td:nth-child(8) { display: none !important; }
  .pos-table td:nth-child(12){ grid-area: acts; justify-self: end; }

  /* 历史成交：盈亏右下、券抵留间隙 */
  .hist-table tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "time  sym"
      "type  price"
      "qty   fee"
      "pnl   pnl" !important;
    gap: 7px 12px !important;
  }
  .hist-table td:nth-child(1) { grid-area: time; }
  .hist-table td:nth-child(2) { grid-area: sym; justify-self: end; }
  .hist-table td:nth-child(3) { grid-area: type; }
  .hist-table td:nth-child(4) { grid-area: price; justify-self: end; }
  .hist-table td:nth-child(5) { grid-area: qty; }
  .hist-table td:nth-child(7) { grid-area: fee; justify-self: end; }
  .hist-table td:nth-child(8) { grid-area: pnl; justify-self: end; text-align: right; }
  .hist-table .vch-tag { margin-right: 8px; margin-left: 0; }
}

/* 全仓/逐仓选择器 */
.mm-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.mm-btn {
  flex: 0 0 auto; padding: 6px 14px; border-radius: 8px;
  border: 1px solid var(--line); background: transparent;
  color: var(--text-2); font-size: 12.5px; cursor: pointer;
}
.mm-btn.on { border-color: rgba(240,185,11,.5); background: rgba(240,185,11,.12); color: var(--brand); font-weight: 600; }
.mm-hint { flex: 1 1 auto; text-align: right; font-size: 10.5px; }

/* 收益率快捷档位 */
.roi-block { margin: 12px 0 6px; }
.roi-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.roi-head span:first-child { font-size: 12.5px; color: var(--text-2); }
.roi-line { display: flex; align-items: center; gap: 6px; margin-bottom: 7px; }
.roi-lb { flex: 0 0 28px; font-size: 11.5px; color: var(--muted); }
.roi-chip {
  flex: 1 1 0; min-width: 0;
  padding: 7px 2px; border-radius: 7px;
  border: 1px solid var(--line); background: transparent;
  color: var(--text-2); font-size: 11.5px; cursor: pointer;
  transition: all .15s;
}
.roi-chip:hover { border-color: rgba(240,185,11,.45); color: var(--brand); }
.roi-chip:active { background: rgba(240,185,11,.18); }

/* 现货持仓：确保卖出按钮可见 */
@media (max-width: 820px) {
  .spot-hold td:nth-child(8) {
    grid-area: acts !important;
    display: block !important;
    width: 100% !important;
    text-align: right !important;
    margin-top: 4px;
  }
  .spot-hold td:nth-child(8) .btn {
    width: auto !important;
    min-width: 88px;
    padding: 8px 18px !important;
    font-size: 13px !important;
  }
}

/* 管理面板：收益率滑条 */
.roi-sliders { margin: 14px 0 4px; padding: 12px; border-radius: 10px; background: rgba(255,255,255,.03); }
.roi-sliders .roi-head { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 12px; color: var(--text-2); }
.roi-sl { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.roi-sl:last-child { margin-bottom: 0; }
.roi-sl .roi-lb { flex: 0 0 30px; font-size: 11.5px; color: var(--muted); }
.roi-sl input[type="range"] { flex: 1 1 auto; min-width: 0; accent-color: #f0b90b; height: 4px; }
.roi-sl .roi-val { flex: 0 0 42px; text-align: right; font-size: 12px; font-weight: 600; color: var(--brand); }

/* ================= 最终版：持仓卡片排版 ================= */
@media (max-width: 820px) {

  /* ---------- 现货持仓 ----------
     币种 | 收益率
     数量 | 现价
     成本均价 | 市值
     卖出（右下）                     */
  .spot-hold,
  .spot-hold tbody { display: block !important; width: 100% !important; }
  .spot-hold thead { display: none !important; }
  .spot-hold tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "coin rate"
      "qty  price"
      "avg  value"
      "acts acts" !important;
    gap: 10px 12px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.02) !important;
  }
  .spot-hold td { display: block !important; border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; font-size: 13px; }
  .spot-hold td::before { display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 3px; font-weight: 400; }
  .spot-hold td:nth-child(1) { grid-area: coin !important; font-size: 15px !important; font-weight: 600; }
  .spot-hold td:nth-child(1)::before { content: none !important; }
  .spot-hold td:nth-child(2) { grid-area: qty !important; }
  .spot-hold td:nth-child(2)::before { content: "数量"; }
  .spot-hold td:nth-child(3) { grid-area: avg !important; }
  .spot-hold td:nth-child(3)::before { content: "成本均价"; }
  .spot-hold td:nth-child(4) { grid-area: price !important; }
  .spot-hold td:nth-child(4)::before { content: "现价"; }
  .spot-hold td:nth-child(5) { grid-area: value !important; }
  .spot-hold td:nth-child(5)::before { content: "市值"; }
  .spot-hold td:nth-child(6) { display: none !important; }
  .spot-hold td:nth-child(7) {
    grid-area: rate !important; justify-self: end !important; text-align: right !important;
    font-size: 15px !important; font-weight: 700 !important;
  }
  .spot-hold td:nth-child(7)::before { content: none !important; }
  .spot-hold td:nth-child(8) { grid-area: acts !important; text-align: right !important; }
  .spot-hold td:nth-child(8)::before { content: none !important; }
  .spot-hold td:nth-child(8) .btn { width: auto !important; min-width: 96px; padding: 8px 20px !important; font-size: 13px !important; }

  /* ---------- 合约持仓 ----------
     合约      | 方向+杠杆+逐仓
     数量      | 强平
     开仓      | 止盈
     标记      | 止损
     盈亏（右下） -> 管理/平仓             */
  .pos-table:not(.hist-table):not(.spot-hold),
  .pos-table:not(.hist-table):not(.spot-hold) tbody { display: block !important; width: 100% !important; }
  .pos-table:not(.hist-table):not(.spot-hold) thead { display: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "sym  side"
      "qty  liq"
      "open tpsl"
      "mark tpsl"
      "pnl  pnl"
      "acts acts" !important;
    gap: 8px 12px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.02) !important;
  }
  .pos-table:not(.hist-table):not(.spot-hold) td { display: block !important; border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; font-size: 13px; }
  .pos-table:not(.hist-table):not(.spot-hold) td::before { display: block; font-size: 10.5px; color: var(--muted); margin-bottom: 2px; font-weight: 400; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(1) { grid-area: sym !important; font-size: 15px !important; font-weight: 600; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(1)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(2) { grid-area: side !important; justify-self: end !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(2)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3) { grid-area: open !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3)::before { content: "开仓"; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4) { grid-area: mark !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4)::before { content: "标记"; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5) { grid-area: qty !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5)::before { content: "数量"; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(6) { display: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(7) { grid-area: pnl !important; justify-self: end !important; text-align: right !important; font-size: 18px !important; font-weight: 700 !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(7)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(8) { display: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(9) { display: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10) { grid-area: liq !important; justify-self: end !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10)::before { content: "强平"; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) { grid-area: tpsl !important; justify-self: end !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12) { grid-area: acts !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12) .row-actions { justify-content: flex-end !important; }

  /* 持仓里止盈止损两个小块，去掉按钮底色 */
  .tpsl-btn { background: none !important; border: 0 !important; padding: 0 !important; }
}

/* ===== 历史成交：最终修正（覆盖所有早期通用规则） ===== */
@media (max-width: 820px) {
  .pos-table.hist-table thead { display: none !important; }
  .pos-table.hist-table tbody { display: block !important; width: 100% !important; }
  .pos-table.hist-table tbody tr {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "time sym"
      "type price"
      "qty  fee"
      "pnl  pnl" !important;
    gap: 7px 12px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.02) !important;
  }
  .pos-table.hist-table td { display: block !important; border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; }
  .pos-table.hist-table td::before { content: none !important; }

  .pos-table.hist-table td:nth-child(1) { grid-area: time !important; font-size: 13px; color: var(--text-2); }
  .pos-table.hist-table td:nth-child(2) { grid-area: sym !important; justify-self: end !important; font-size: 14px; font-weight: 600; }
  .pos-table.hist-table td:nth-child(3) { grid-area: type !important; }
  .pos-table.hist-table td:nth-child(4) { grid-area: price !important; justify-self: end !important; font-size: 11.5px !important; color: var(--muted); }
  .pos-table.hist-table td:nth-child(4)::before { content: "标记 " !important; font-size: 10.5px; color: var(--muted); }
  .pos-table.hist-table td:nth-child(5) { grid-area: qty !important; font-size: 11.5px !important; color: var(--muted); }
  .pos-table.hist-table td:nth-child(6) { display: none !important; }

  /* 手续费：小字、次要 */
  .pos-table.hist-table td:nth-child(7) {
    grid-area: fee !important; justify-self: end !important; text-align: right !important;
    font-size: 11px !important; font-weight: 400 !important; opacity: .55;
  }
  .pos-table.hist-table td:nth-child(7)::before { content: "手续费 " !important; font-size: 10px; }

  /* 盈亏：必须显示，右下角，可点击 */
  .pos-table.hist-table td:nth-child(8) {
    display: block !important;
    grid-area: pnl !important; justify-self: end !important; text-align: right !important;
    font-size: 17px !important; font-weight: 700 !important;
  }
  .pos-table.hist-table td:nth-child(8) .pnl-link { font-size: 17px !important; font-weight: 700; }
  .pos-table.hist-table .vch-tag { margin-right: 8px; margin-left: 0; }
}

/* ================= 最终定稿：持仓卡片 ================= */
@media (max-width: 820px) {

  /* ---------- 现货持仓 ---------- */
  .pos-table.spot-hold,
  .pos-table.spot-hold tbody { display: block !important; width: 100% !important; }
  .pos-table.spot-hold thead { display: none !important; }
  .pos-table.spot-hold tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "coin rate"
      "qty  price"
      "avg  value"
      "acts acts" !important;
    gap: 10px 12px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.02) !important;
  }
  .pos-table.spot-hold td { display: block !important; border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; font-size: 13px; }
  .pos-table.spot-hold td::before { display: block !important; content: none !important; font-size: 10.5px; color: var(--muted); margin-bottom: 3px; font-weight: 400; }
  .pos-table.spot-hold td:nth-child(1) { grid-area: coin !important; font-size: 15px !important; font-weight: 600; }
  .pos-table.spot-hold td:nth-child(2) { grid-area: qty !important; }
  .pos-table.spot-hold td:nth-child(2)::before { content: "数量" !important; }
  .pos-table.spot-hold td:nth-child(3) { grid-area: avg !important; }
  .pos-table.spot-hold td:nth-child(3)::before { content: "成本均价" !important; }
  .pos-table.spot-hold td:nth-child(4) { grid-area: price !important; }
  .pos-table.spot-hold td:nth-child(4)::before { content: "现价" !important; }
  .pos-table.spot-hold td:nth-child(5) { grid-area: value !important; }
  .pos-table.spot-hold td:nth-child(5)::before { content: "市值" !important; }
  .pos-table.spot-hold td:nth-child(6) { display: none !important; }
  .pos-table.spot-hold td:nth-child(7) { grid-area: rate !important; justify-self: end !important; text-align: right !important; font-size: 15px !important; font-weight: 700 !important; }
  .pos-table.spot-hold td:nth-child(7)::before { content: none !important; }
  .pos-table.spot-hold td:nth-child(8) { grid-area: acts !important; display: block !important; text-align: right !important; }
  .pos-table.spot-hold td:nth-child(8)::before { content: none !important; }
  .pos-table.spot-hold td:nth-child(8) .btn { display: inline-block !important; width: auto !important; min-width: 100px; padding: 8px 20px !important; font-size: 13px !important; }

  /* ---------- 合约持仓：六项等大，三行两列 ---------- */
  .pos-table:not(.hist-table):not(.spot-hold) tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "sym  side"
      "qty  liq"
      "open tpsl"
      "mark tpsl"
      "pnl  pnl"
      "acts acts" !important;
    gap: 9px 12px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.02) !important;
  }
  .pos-table:not(.hist-table):not(.spot-hold) td { display: block !important; border: 0 !important; padding: 0 !important; min-width: 0; text-align: left !important; font-size: 13px; }
  .pos-table:not(.hist-table):not(.spot-hold) td::before { display: block !important; content: none !important; font-size: 10.5px; color: var(--muted); margin-bottom: 3px; font-weight: 400; }

  /* 合约名 + 方向（全仓/逐仓 跟在倍数后面） */
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(1) { grid-area: sym !important; font-size: 15px !important; font-weight: 600; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(2) { grid-area: side !important; justify-self: end !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(2) .muted-2 { display: inline !important; margin: 0 0 0 6px !important; font-size: 11px; }

  /* 六个数据项：统一字号 */
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) { font-size: 13px !important; color: var(--text-2); }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5) { grid-area: qty !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5)::before { content: "数量" !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3) { grid-area: open !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3)::before { content: "开仓" !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4) { grid-area: mark !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4)::before { content: "标记" !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10) { grid-area: liq !important; justify-self: end !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10)::before { content: "强平" !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10) .liq-bar { display: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) { grid-area: tpsl !important; justify-self: end !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11)::before { content: none !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) .tpsl-btn { text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) div:first-child::before { content: "止盈 " !important; color: var(--muted); font-size: 10.5px; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) div:last-child::before { content: "止损 " !important; color: var(--muted); font-size: 10.5px; }

  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(6),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(8),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(9) { display: none !important; }

  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(7) { grid-area: pnl !important; justify-self: end !important; text-align: right !important; font-size: 18px !important; font-weight: 700 !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12) { grid-area: acts !important; text-align: right !important; }
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12) .row-actions { justify-content: flex-end !important; }

  /* ---------- 历史成交：补“数量”标签 ---------- */
  .pos-table.hist-table td:nth-child(5)::before { content: "数量 " !important; font-size: 10.5px; color: var(--muted); }
}

/* 团队总资产 / 团队净入金：金色加粗（电脑 + 手机） */
.kpi b.kpi-gold {
  color: var(--brand) !important;
  font-weight: 700 !important;
}
@media (max-width: 820px) {
  .kpi b.kpi-gold {
    color: var(--brand) !important;
    font-weight: 700 !important;
    font-size: 20px !important;
  }
}

/* ============ 修正：覆盖 .num 的右对齐 + 去掉重复标签 ============ */
@media (max-width: 820px) {

  /* 卡片内所有单元格一律左对齐（.num 的 text-align:right 是罪魁祸首） */
  .pos-table.spot-hold td,
  .pos-table.spot-hold td.num,
  .pos-table:not(.hist-table):not(.spot-hold) td,
  .pos-table:not(.hist-table):not(.spot-hold) td.num {
    text-align: left !important;
  }
  /* 右侧一列单独右对齐 */
  .pos-table.spot-hold td:nth-child(7),
  .pos-table.spot-hold td:nth-child(8),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(2),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(7),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(12) {
    text-align: right !important;
  }

  /* 去掉我加的重复标签：强平、止盈、止损（页面里本来就有文字） */
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10)::before,
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11)::before,
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) div:first-child::before,
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) div:last-child::before {
    content: none !important;
  }

  /* 六项统一字号 */
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(3),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(4),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(5),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11),
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(11) span,
  .pos-table:not(.hist-table):not(.spot-hold) td:nth-child(10) span {
    font-size: 12.5px !important;
    color: var(--text-2) !important;
  }
  .pos-table:not(.hist-table):not(.spot-hold) td::before {
    font-size: 10.5px !important;
    color: var(--muted) !important;
    margin-bottom: 3px !important;
  }

  /* 现货：数量/成本均价 左列，现价/市值 右列，字号统一 */
  .pos-table.spot-hold td:nth-child(2),
  .pos-table.spot-hold td:nth-child(3),
  .pos-table.spot-hold td:nth-child(4),
  .pos-table.spot-hold td:nth-child(5) { font-size: 13px !important; }
  .pos-table.spot-hold td:nth-child(6) { display: none !important; }
  .pos-table.spot-hold td:nth-child(4),
  .pos-table.spot-hold td:nth-child(5),
  .pos-table.spot-hold td:nth-child(4)::before,
  .pos-table.spot-hold td:nth-child(5)::before { text-align: right !important; }

  /* 弹窗内容可滚动，底部文字不再跑出卡片 */
  .modal { max-height: 88vh !important; overflow-y: auto !important; }
  .modal .pnl-note { margin-bottom: 8px; }
}

/* ===== 手机端持仓卡片（JS 直出结构） ===== */
.pc-list { display: flex; flex-direction: column; gap: 10px; padding: 4px 0 8px; }
.pc {
  border: 1px solid var(--line-soft); border-radius: 12px;
  background: rgba(255,255,255,.02); padding: 14px;
}
.pc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pc-sym { display: flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 600; }
.pc-side { font-size: 11.5px; padding: 3px 8px; border-radius: 6px; font-weight: 600; }
.pc-side.long { background: rgba(14,203,129,.14); color: #0ecb81; }
.pc-side.short { background: rgba(246,70,93,.14); color: #f6465d; }

.pc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.pc-grid > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pc-grid i { font-style: normal; font-size: 10.5px; color: var(--muted); }
.pc-grid b { font-size: 13px; font-weight: 500; color: var(--text); font-variant-numeric: tabular-nums; }

.pc-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line-soft);
}
.pc-pnl { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pc-pnl em { font-style: normal; font-size: 11.5px; font-weight: 500; opacity: .75; margin-left: 6px; }
.pc-btns { display: flex; gap: 8px; flex: none; }
.pc-btns .btn { padding: 6px 14px; font-size: 12.5px; }

/* 桌面端隐藏卡片，手机端隐藏原表格 */
@media (min-width: 821px) {
  .pc-list { display: none !important; }
}

/* 历史成交：盈亏金额 + 查看明细 */
.pc-pnlwrap { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.pc-pnlwrap .pc-pnl { flex: none; }
.pnl-more {
  flex: none;
  background: none; border: 0; padding: 0;
  font-size: 11px; font-weight: 400;
  color: var(--muted); opacity: .85;
  text-decoration: underline; text-underline-offset: 3px;
  cursor: pointer;
}
.pnl-more:hover { color: var(--brand); opacity: 1; }

/* 委托类型问号 */
.otype-help {
  width: 22px; height: 22px; flex: none; margin-left: auto;
  border-radius: 50%; border: 1px solid var(--line);
  background: transparent; color: var(--muted);
  font-size: 12px; line-height: 1; cursor: pointer;
}
.otype-help:hover { border-color: var(--brand); color: var(--brand); }
.help-list { display: flex; flex-direction: column; gap: 14px; }
.help-item b { font-size: 13.5px; color: var(--brand); }
.help-item p { margin: 4px 0 0; font-size: 12.5px; line-height: 1.65; color: var(--text-2); }

/* 手机端：开多/开空 与 开仓/平仓 同宽 */
@media (max-width: 880px) {
  .order-panel .side-btns {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .order-panel .side-btns button {
    width: 100% !important;
    flex: none !important;
    padding: 12px 0 !important;
    font-size: 14px !important;
    border-radius: 10px;
  }
  .order-panel .order-tabs { position: relative; }
  .order-panel .order-tabs .otype-help {
    position: absolute; right: 0; top: 50%; transform: translateY(-50%);
    margin: 0;
  }
}

/* 去掉行情悬浮球 */
#livePill, .live-pill { display: none !important; }

/* ONYX 品牌标志 */
.brand-mark {
  width: 38px; height: 38px; border-radius: 11px;
  display: inline-flex; align-items: center; justify-content: center;
  background: radial-gradient(120% 120% at 25% 15%, #1c1f26 0%, #0d0f13 60%);
  border: 1px solid rgba(240,185,11,.35);
  box-shadow: 0 0 0 1px rgba(0,0,0,.5), 0 6px 18px rgba(240,185,11,.12), inset 0 1px 0 rgba(255,255,255,.06);
  flex: none;
}
.brand-mark svg { display: block; }
.brand-name {
  font-weight: 800; letter-spacing: 2.5px;
  background: linear-gradient(135deg, #fff 0%, #ffe9a8 40%, #f0b90b 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.logo-mark { width: 34px; height: 34px; border-radius: 10px; }

/* ===== 注册/登录页：ONYX 晶体核心动效 ===== */
.av-core {
  position: relative;
  width: 132px; height: 132px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 50% 45%, rgba(240,185,11,.16), rgba(240,185,11,.02) 62%, transparent 72%);
  box-shadow: 0 0 0 1px rgba(240,185,11,.18), 0 0 46px rgba(240,185,11,.22);
  color: transparent;
}
.av-core::after {
  content: ""; position: absolute; inset: -14px; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(240,185,11,.22) 40deg, transparent 90deg);
  animation: avSweep 7s linear infinite; pointer-events: none; opacity: .55;
  mask: radial-gradient(circle, transparent 58%, #000 60%, #000 72%, transparent 74%);
  -webkit-mask: radial-gradient(circle, transparent 58%, #000 60%, #000 72%, transparent 74%);
}
.av-mark { width: 84px; height: 84px; display: block; overflow: visible; }
.av-hex-a { transform-origin: 20px 20px; animation: avSpin 26s linear infinite; }
.av-hex-b { transform-origin: 20px 20px; animation: avSpinR 18s linear infinite; }
.av-dot { animation: avPulse 2.6s ease-in-out infinite; transform-origin: 20px 20px; }

@keyframes avSpin  { to { transform: rotate(360deg); } }
@keyframes avSpinR { to { transform: rotate(-360deg); } }
@keyframes avPulse { 0%,100% { opacity: .55; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.25); } }
@keyframes avSweep { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .av-hex-a, .av-hex-b, .av-dot, .av-core::after { animation: none; }
}

/* 邀请页布局重排 */
.invite-hero { padding: 16px 20px !important; }
.invite-hero .ref-box { border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 !important; }
.poster-area {
  display: grid;
  grid-template-columns: minmax(260px, 320px) minmax(240px, 1fr);
  gap: 28px; align-items: start;
}
.poster-side { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.poster-side .btn { width: 100%; }
.poster-tips { margin: 6px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.9; color: var(--muted); }
@media (max-width: 760px) {
  .poster-area { grid-template-columns: 1fr; gap: 16px; }
}

/* 邀请页：合并成单张卡片 */
.invite-merged { padding: 18px 20px 20px !important; }
.invite-merged .ref-box {
  border: 0 !important; background: transparent !important;
  padding: 0 !important; margin: 0 !important; gap: 20px;
}
.invite-merged .ref-code { font-size: 24px !important; letter-spacing: 1.5px; }
.invite-merged .merge-sep {
  height: 1px; background: var(--line-soft);
  margin: 16px 0 14px;
}
.invite-merged .card-head { padding: 0 0 12px !important; }

/* 邀请页：右栏信息块 */
.invite-merged { padding: 18px 20px 20px !important; }
.invite-merged .card-head { padding: 0 0 14px !important; }
.poster-side { display: flex; flex-direction: column; gap: 12px; padding-top: 2px; }
.ps-block { display: flex; flex-direction: column; gap: 4px; }
.ps-code { font-size: 26px !important; letter-spacing: 2px; color: var(--brand); font-weight: 800; }
.ps-link { color: var(--text-2); word-break: break-all; }
.ps-sep { height: 1px; background: var(--line-soft); margin: 4px 0; }
.poster-side .btn { width: 100%; }
.poster-area { grid-template-columns: minmax(240px, 300px) minmax(240px, 1fr) !important; gap: 28px !important; }
@media (max-width: 760px) {
  .poster-area { grid-template-columns: 1fr !important; }
  .ps-code { font-size: 22px !important; }
}

/* 个人中心：三项资产 */
.acc-assets {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
  align-items: start;
}
.acc-assets > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.acc-assets span { font-size: 12px; color: var(--muted); }
.acc-assets b { font-size: 17px; font-weight: 600; }

@media (max-width: 820px) {
  .acc-assets { gap: 8px !important; }
  .acc-assets > div {
    padding: 12px 10px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: rgba(255,255,255,.025);
    gap: 5px;
  }
  .acc-assets span { font-size: 10.5px !important; }
  .acc-assets b { font-size: 14.5px !important; letter-spacing: -.2px; }
}

/* 个人中心：身份卡 + 三张资产卡 */
.acc-assets-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.acc-asset-card {
  padding: 16px 18px !important;
  display: flex; flex-direction: column; gap: 8px;
}
.acc-asset-card span { font-size: 12px; color: var(--muted); }
.acc-asset-card b { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 820px) {
  .acc-assets-grid { gap: 8px; margin-top: 10px; }
  .acc-asset-card { padding: 12px 12px !important; gap: 6px; }
  .acc-asset-card span { font-size: 10.5px !important; }
  .acc-asset-card b { font-size: 15px !important; }
}

/* 个人中心标签：固定两行三列 */
.acc-tabs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin-top: 14px;
  border: 0 !important;
}
.acc-tabs button {
  width: 100% !important;
  padding: 11px 6px !important;
  font-size: 12.5px !important;
  border: 1px solid var(--line-soft) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.02);
  text-align: center;
}
.acc-tabs button.on {
  background: rgba(240,185,11,.12) !important;
  border-color: rgba(240,185,11,.4) !important;
  color: var(--brand) !important;
  font-weight: 600;
}
@media (max-width: 820px) {
  .acc-tabs { gap: 7px !important; margin-top: 10px; }
  .acc-tabs button { padding: 10px 4px !important; font-size: 11.5px !important; }
}

/* 个人中心标签：保持原按钮观感，只改排布 */
.acc-tabs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 6px !important;
  margin: 18px 0 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.acc-tabs button {
  width: 100% !important;
  padding: 10px 6px !important;
  font-size: 13px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--text-2) !important;
  font-weight: 400 !important;
  text-align: center;
  position: relative;
}
.acc-tabs button:hover { background: rgba(255,255,255,.04) !important; }
.acc-tabs button.on {
  background: transparent !important;
  color: var(--brand) !important;
  font-weight: 600 !important;
  border: 0 !important;
}
.acc-tabs button.on::after {
  content: ""; position: absolute; left: 50%; bottom: 2px;
  width: 22px; height: 2px; margin-left: -11px;
  border-radius: 2px; background: var(--brand);
}
#accBody { margin-top: 18px !important; }
@media (max-width: 820px) {
  .acc-tabs { gap: 5px !important; margin-top: 12px !important; }
  .acc-tabs button { padding: 9px 4px !important; font-size: 12px !important; }
  #accBody { margin-top: 12px !important; }
}

/* 个人中心标签：方框按钮 + 紧凑间距 */
.acc-assets-grid { margin-bottom: 0 !important; }
.acc-tabs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin: 10px 0 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.acc-tabs button {
  width: 100% !important;
  padding: 11px 6px !important;
  font-size: 12.5px !important;
  border: 1px solid var(--line-soft) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.02) !important;
  color: var(--text-2) !important;
  text-align: center;
  position: static !important;
}
.acc-tabs button::after { display: none !important; }
.acc-tabs button.on {
  background: rgba(240,185,11,.12) !important;
  border-color: rgba(240,185,11,.42) !important;
  color: var(--brand) !important;
  font-weight: 600 !important;
}
#accBody { margin-top: 10px !important; }
.acc-head { margin-bottom: 10px !important; }
@media (max-width: 820px) {
  .acc-tabs { gap: 7px !important; margin-top: 9px !important; }
  .acc-tabs button { padding: 10px 4px !important; font-size: 11.5px !important; }
  #accBody { margin-top: 9px !important; }
  .acc-head { margin-bottom: 9px !important; }
}

/* 修正：资产卡下边距归零，标签与内容不外溢 */
.acc-assets-grid { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.acc-tabs, #accBody { width: 100% !important; max-width: 100% !important; }

/* 合伙人账单卡片 */
.bill-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; padding: 4px 0 8px; }
.bill-card { border: 1px solid var(--line-soft); border-radius: 12px; padding: 14px 16px; background: rgba(255,255,255,.02); }
.bill-card.bill-overdue { border-color: rgba(246,70,93,.45); background: rgba(246,70,93,.06); }
.bill-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.bill-no { font-size: 12px; color: var(--muted); letter-spacing: .3px; }
.bill-amount { font-size: 26px; font-weight: 700; color: var(--brand); font-variant-numeric: tabular-nums; }
.bill-amount em { font-style: normal; font-size: 12px; color: var(--muted); margin-left: 6px; }
.bill-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; font-size: 11.5px; color: var(--muted); }
.bill-cd { margin-top: 10px; font-size: 12px; color: #f0b90b; }
.bill-cd.down { color: #f6465d; font-weight: 600; }
.bill-ok { margin-top: 10px; font-size: 12.5px; color: #0ecb81; }
.bill-wait { margin-top: 10px; font-size: 12.5px; color: var(--text-2); }
.bill-pay { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.bill-addr { font-size: 12px; word-break: break-all; color: var(--text-2); margin: 6px 0; }
.bill-qr { margin: 10px 0; display: flex; justify-content: center; }
.bill-qr svg { background: #fff; padding: 8px; border-radius: 10px; }
.bill-rej { margin-top: 8px; font-size: 11.5px; color: #ff8b9a; }

/* 账单异常监控 */
.ano-list { display: flex; flex-direction: column; gap: 10px; padding: 4px 0 8px; }
.ano-row { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(255,255,255,.02); }
.ano-row .tag { flex: none; margin-top: 2px; }
.ano-row b { font-size: 13px; }

/* 资产总资产数字：全端金色加粗 */
.equity-card .big {
  color: var(--brand) !important;
  font-weight: 700 !important;
  letter-spacing: -.5px;
}

/* 滑动开关 */
.switch {
  position: relative; width: 46px; height: 26px; border-radius: 13px;
  border: 0; padding: 0; cursor: pointer; flex: none;
  background: var(--line); transition: background .2s;
}
.switch::after {
  content: ""; position: absolute; top: 3px; left: 3px;
  width: 20px; height: 20px; border-radius: 50%;
  background: #fff; transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.35);
}
.switch.on { background: var(--brand); }
.switch.on::after { transform: translateX(20px); }

/* 手机端：管理身份不显示「代理 / 后台」底部入口 */
@media (max-width: 820px) {
  body.role-manager .tabbar a[data-route="invite"],
  body.role-manager .tabbar a[data-route="admin"] { display: none !important; }
}

/* 代理后台：两列统计网格 */
.stats-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.stats-2col .kpi { margin: 0; }
.stats-2col .kpi b { font-size: 24px; }
.stats-2col .kpi .kpi-gold { color: var(--brand) !important; font-weight: 700; }
@media (max-width: 820px) {
  .stats-2col { gap: 10px; }
  .stats-2col .kpi b { font-size: 19px; }
  .stats-2col .kpi span { font-size: 11.5px; }
}



/* 资产页 · 总资产卡片：金曜石质感 */
.asset-hero .equity-card {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(120% 140% at 12% 0%, rgba(240,185,11,.20) 0%, rgba(240,185,11,.06) 38%, rgba(240,185,11,0) 72%),
    linear-gradient(160deg, rgba(240,185,11,.10) 0%, rgba(255,255,255,.015) 48%, rgba(255,255,255,.03) 100%) !important;
  border: 1px solid rgba(240,185,11,.30) !important;
  box-shadow: 0 8px 26px rgba(240,185,11,.10), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
.asset-hero .equity-card::after {
  content: "";
  position: absolute; right: -30px; top: -40px;
  width: 132px; height: 132px;
  background: conic-gradient(from 210deg, rgba(240,185,11,.45), rgba(240,185,11,.06) 42%, rgba(240,185,11,.32) 72%, rgba(240,185,11,.06));
  clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
  opacity: .5; pointer-events: none;
}
.asset-hero .equity-card > span { color: rgba(240,185,11,.85) !important; letter-spacing: .2px; }
.asset-hero .equity-card .big { color: var(--brand) !important; font-weight: 700 !important; }
.asset-hero .equity-card .equity-sub { position: relative; z-index: 1; }
@media (max-width: 820px) {
  .asset-hero .equity-card::after { width: 92px; height: 92px; right: -24px; top: -30px; opacity: .42; }
}

/* 资产页 hero：标题/副说明与卡片标题对齐 */
.asset-hero .equity-card .hero-title {
  font-size: 17px; font-weight: 600; color: var(--text);
  letter-spacing: .2px; margin: 0 0 2px;
}
.asset-hero .equity-card .hero-note {
  font-size: 12px; font-weight: 400; color: var(--muted);
  margin: 0 0 10px;
}
.card-head .head-actions { margin-left: auto; display: flex; gap: 8px; }

/* 账户与出入金：标题与按钮同一行 */
.acct-card .card-head { display: flex; align-items: center; gap: 10px; }
.acct-card .card-head .head-actions { margin-left: auto; }
@media (max-width: 820px) {
  .acct-card .card-head { padding-bottom: 10px; }
}

/* 强制：账户与出入金 标题左、按钮右，同一行 */
.acct-card .card-head {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}
.acct-card .card-head h3 { margin: 0 !important; flex: 0 0 auto; }
.acct-card .card-head .head-actions {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto;
}
.acct-card .card-head .head-actions .btn { white-space: nowrap; }



/* 账户与出入金：手机端也保持标题左、按钮右 */
@media (max-width: 820px) {
  .acct-card .card-head {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
  }
  .acct-card .card-head .head-actions {
    width: auto !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
  }
}

/* 资产 hero：标题行 + 内联说明 + 单位 */
.asset-hero .equity-card .hero-top {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  position: relative; z-index: 1; margin-bottom: 6px;
}
.asset-hero .equity-card .hero-title {
  font-size: 17px; font-weight: 600; color: var(--text); letter-spacing: .2px;
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap;
}
.asset-hero .equity-card .hero-title .hero-note {
  font-size: 12px; font-weight: 400; color: var(--muted); margin: 0;
}
.asset-hero .equity-card .hero-btn {
  flex: 0 0 auto; white-space: nowrap;
}
.asset-hero .equity-card .big .hero-unit {
  font-style: normal; font-size: 15px; font-weight: 600;
  color: #fff; margin-left: 8px; letter-spacing: .5px; opacity: .9;
}
/* 四个子指标：独立卡片 */
.equity-sub-cards {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px; margin-top: 12px;
}
.equity-sub-cards .sub-card { padding: 14px 16px; }
.equity-sub-cards .sub-card span {
  display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px;
}
.equity-sub-cards .sub-card b {
  font-size: 18px; font-weight: 600; color: var(--text);
  font-variant-numeric: tabular-nums;
}
.equity-sub-cards .sub-card em {
  font-style: normal; font-size: 11px; color: var(--muted); margin-left: 4px;
}
@media (max-width: 820px) {
  .equity-sub-cards { gap: 10px; }
  .equity-sub-cards .sub-card { padding: 12px 13px; }
  .equity-sub-cards .sub-card b { font-size: 16px; }
  .asset-hero .equity-card .hero-title { font-size: 16px; }
  .asset-hero .equity-card .big .hero-unit { font-size: 13px; }
}

/* 数值单位：白色，与下方 0.00 同色 */
.asset-hero .equity-card .big { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.asset-hero .equity-card .big .hero-unit {
  display: inline-block !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  opacity: 1 !important;
  margin-left: 0 !important;
}
/* 四张子卡：确保全部显示 */
.equity-sub-cards > .sub-card { display: block !important; }

/* 资金明细：弱化为小号次要按钮 */
.asset-hero .equity-card .hero-btn {
  padding: 4px 10px !important;
  font-size: 11.5px !important;
  line-height: 1.4 !important;
  border-radius: 7px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.72) !important;
  font-weight: 400 !important;
  box-shadow: none !important;
  letter-spacing: 0;
}
.asset-hero .equity-card .hero-btn:hover {
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
}

/* 子卡三列 */
.equity-sub-cards.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* 账户三卡 */
.acct-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.acct-cards .acct-one { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.acct-cards .acct-one > span { font-size: 12px; color: var(--muted); }
.acct-cards .acct-one > b { font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
.acct-cards .acct-one > em { font-style: normal; font-size: 11px; color: var(--muted); }
.acct-cards .acct-btns { display: flex; gap: 8px; margin-top: 10px; }
.acct-cards .acct-btns .btn { flex: 0 0 auto; }
@media (max-width: 820px) {
  .acct-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .acct-cards .acct-one { padding: 13px; }
  .acct-cards .acct-one > b { font-size: 17px; }
  .equity-sub-cards.three { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .equity-sub-cards.three .sub-card { padding: 11px 9px; }
  .equity-sub-cards.three .sub-card span { font-size: 11px; }
  .equity-sub-cards.three .sub-card b { font-size: 14px; }
}

/* 资金明细：再缩小 */
.asset-hero .equity-card .hero-btn {
  padding: 3px 8px !important;
  font-size: 10.5px !important;
  border-radius: 6px !important;
}
/* hero 内联三项指标（无单位） */
.asset-hero .equity-card .equity-sub {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px; margin-top: 14px; position: relative; z-index: 1;
}
.asset-hero .equity-card .equity-sub > div {
  font-size: 11.5px; color: var(--muted); display: flex; flex-direction: column; gap: 4px;
}
.asset-hero .equity-card .equity-sub b {
  font-size: 15px; font-weight: 600; color: var(--text);
  font-variant-numeric: tabular-nums;
}
/* 账户三行卡片 */
.acct-list { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.acct-list .acct-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 15px 18px;
}
.acct-list .ar-left { display: flex; flex-direction: column; gap: 5px; }
.acct-list .ar-left > span { font-size: 12.5px; color: var(--muted); }
.acct-list .ar-num { display: flex; align-items: baseline; gap: 5px; }
.acct-list .ar-num b { font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; }
.acct-list .ar-num em { font-style: normal; font-size: 11px; color: var(--muted); }
.acct-list .ar-btns { display: flex; gap: 8px; flex: 0 0 auto; }
@media (max-width: 820px) {
  .acct-list .acct-row { padding: 13px 15px; }
  .acct-list .ar-num b { font-size: 17px; }
  .asset-hero .equity-card .equity-sub b { font-size: 14px; }
}

/* 三项指标全部显示（覆盖旧的隐藏规则） */
.asset-hero .equity-card .equity-sub > div { display: flex !important; }
/* 外层容器透明，让三行各自成为独立卡片 */
.acct-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
}
.acct-card > .acct-list { margin-top: 16px; }
.acct-card .acct-row {
  background: var(--panel) !important;
  border: 1px solid var(--line-soft) !important;
  border-radius: 12px !important;
}

/* 三项指标强制同一行三列 */
.asset-hero .equity-card .equity-sub {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 6px !important;
}
.asset-hero .equity-card .equity-sub > div { display: flex !important; min-width: 0; }

/* KYC 录像：视频 + 叠加层 */
.rec-wrap {
  position: relative; width: 100%; max-width: 420px; margin: 0 auto;
  aspect-ratio: 3 / 4; background: #000; border-radius: 14px; overflow: hidden;
}
.rec-video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transform: scaleX(-1);           /* 前置摄像头镜像 */
}
.rec-top {
  position: absolute; left: 0; right: 0; top: 0; z-index: 3;
  padding: 12px 14px; text-align: center;
  background: linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,0));
}
.rec-top .rec-label { font-size: 11.5px; color: rgba(255,255,255,.75); margin-bottom: 4px; }
.rec-top .rec-num {
  font-family: var(--mono); font-size: 22px; font-weight: 700;
  letter-spacing: .22em; color: #f0b90b; text-shadow: 0 2px 8px rgba(0,0,0,.6);
}
.rec-face {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 58%; aspect-ratio: 3 / 4; z-index: 2;
  border: 2px dashed rgba(255,255,255,.55);
  border-radius: 46% 46% 42% 42% / 52% 52% 48% 48%;
  box-shadow: 0 0 0 2000px rgba(0,0,0,.30);
}
.rec-face::before, .rec-face::after {
  content: ""; position: absolute; width: 26px; height: 26px;
  border: 3px solid #f0b90b; border-radius: 6px;
}
.rec-face::before { left: -6px; top: -6px; border-right: 0; border-bottom: 0; }
.rec-face::after { right: -6px; bottom: -6px; border-left: 0; border-top: 0; }
.rec-tip {
  position: absolute; left: 0; right: 0; bottom: 12px; z-index: 3; text-align: center;
  font-size: 12px; color: rgba(255,255,255,.8);
}
.rec-dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: #f6465d; margin-right: 6px; animation: recBlink 1s infinite;
}
@keyframes recBlink { 0%,100% { opacity: 1 } 50% { opacity: .2 } }

/* 录像：人脸框放大，人像缩小 */
.rec-wrap { max-width: 380px; }
.rec-video { object-fit: cover; }
.rec-face { width: 78%; aspect-ratio: 3 / 4.1; border-radius: 44% 44% 40% 40% / 50% 50% 46% 46%; }
.rec-top .rec-num { font-size: 20px; letter-spacing: .18em; }

/* 合伙人费率按钮 */
.rate-btn {
  border: 1px solid var(--line-soft); background: rgba(255,255,255,.03);
  color: var(--brand); font-variant-numeric: tabular-nums;
  padding: 4px 10px; border-radius: 7px; font-size: 12.5px; cursor: pointer;
  transition: background .15s, border-color .15s;
}
.rate-btn:hover { background: rgba(240,185,11,.12); border-color: rgba(240,185,11,.4); }
