/* 比特派 · 设计语言
 * 中性深色底 + 单一强调色 + 线性图标 + 细描边；不使用发光/大圆角渐变
 */
:root{
  --bg:#0B0D10;
  --surface:#12161C;
  --surface-2:#171C24;
  --line:rgba(255,255,255,.065);
  --line-strong:rgba(255,255,255,.12);
  --text:#E9EDF3;
  --text-2:#8A93A0;
  --text-3:#5C6673;
  --accent:#2F6BFF;
  --accent-dim:rgba(47,107,255,.12);
  --up:#16C784;
  --down:#F6465D;
  --r-sm:8px; --r-md:12px; --r-lg:16px;
  --gutter:16px;
  --nav-h:52px; --tab-h:58px;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#06080A;color:var(--text);
  overflow:hidden;overscroll-behavior:none;touch-action:manipulation;
  -webkit-text-size-adjust:100%;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.45;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-variant-numeric:tabular-nums}
body{display:flex;justify-content:center}
button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font-family:inherit;color:inherit}
b,strong{font-weight:600}

.app{position:relative;width:100%;max-width:430px;background:var(--bg);\n  height:100vh;height:100dvh;padding-top:env(safe-area-inset-top);
  display:flex;flex-direction:column;overflow:hidden}
@media (min-width:520px){
  .app{height:calc(100vh - 32px);margin:16px 0;border-radius:20px;overflow:hidden;
    box-shadow:0 24px 64px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05)}
}

/* ---------- 通用 ---------- */
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.ico.s14{width:14px;height:14px;stroke-width:2}
.ico.s16{width:16px;height:16px}
.ico.s32{width:32px;height:32px;stroke-width:1.5}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;letter-spacing:-.01em}
.muted{color:var(--text-2)}
.xs{font-size:12px}.sm{font-size:13px}
.center{text-align:center}
.up{color:var(--up)}.down{color:var(--down)}

.view{display:none;flex:1;flex-direction:column;min-height:0}
.view.active{display:flex}
.scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}
.scroll::-webkit-scrollbar{width:0}

/* ---------- 顶栏 ---------- */
.nav{height:var(--nav-h);flex:0 0 var(--nav-h);display:flex;align-items:center;
  padding:0 12px;position:relative;z-index:2;background:var(--bg);
  border-bottom:1px solid transparent}
.nav .title{flex:1;text-align:center;font-size:16px;font-weight:600;letter-spacing:.01em}
.nav-btn{min-width:40px;height:32px;display:flex;align-items:center;gap:2px;
  color:var(--text);font-size:13px}
.nav-btn.icon{justify-content:flex-end;color:var(--text-2)}
.nav-btn .ico.s14{transform:rotate(90deg);color:var(--text-3)}
.back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  margin-left:-8px;color:var(--text)}
.back .ico{width:22px;height:22px}

/* ---------- 余额卡 ---------- */
.balance{padding:18px var(--gutter) 4px}
.balance-head{display:flex;align-items:center;justify-content:space-between}
.balance-label{font-size:12px;color:var(--text-2);letter-spacing:.02em}
.icon-btn{width:28px;height:28px;display:grid;place-items:center;color:var(--text-3);
  border-radius:6px}
.icon-btn:active{background:var(--surface-2)}
.balance-amount{font-size:34px;font-weight:600;letter-spacing:-.02em;margin:8px 0 2px;
  font-variant-numeric:tabular-nums}
.balance-sub{font-size:13px;color:var(--text-2)}
.actions{display:flex;gap:8px;margin:20px 0 6px}
.actions button{flex:1;height:60px;border-radius:var(--r-md);background:var(--surface);
  border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:7px;font-size:12px;color:var(--text)}
.actions button .ico{color:var(--text-2)}
.actions button:active{background:var(--surface-2)}
.actions button:hover .ico{color:var(--accent)}

/* ---------- 分组标题 ---------- */
.group-head{display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--gutter) 10px;font-size:12px;color:var(--text-2);letter-spacing:.03em}
.group-head span:first-child{font-weight:500}
.foot-note{padding:18px var(--gutter) 26px;color:var(--text-3);font-size:11px;
  text-align:center;letter-spacing:.02em}

/* ---------- 资产列表 ---------- */
.tokens{padding:0 var(--gutter)}
.token{display:flex;align-items:center;gap:12px;padding:14px 0;position:relative}
.token::after{content:"";position:absolute;left:46px;right:0;bottom:0;height:1px;
  background:var(--line)}
.token:last-child::after{display:none}
.coin{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-size:14px;font-weight:600;color:#fff;flex:0 0 34px;letter-spacing:-.02em}
.token .meta{flex:1;min-width:0}
.token .meta b{display:block;font-size:15px;font-weight:600;letter-spacing:.01em}
.token .meta span{display:flex;align-items:center;gap:8px;font-size:12px;
  color:var(--text-3);margin-top:2px}
.token .amount{text-align:right}
.token .amount b{display:block;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.token .amount span{display:block;font-size:12px;color:var(--text-3);margin-top:2px}
.chg{font-style:normal;font-size:12px}


/* ---------- 行情 ---------- */
.segmented{display:flex;gap:4px;padding:6px var(--gutter) 12px;overflow-x:auto}
.segmented button{padding:7px 14px;border-radius:999px;font-size:13px;color:var(--text-2);
  background:transparent;white-space:nowrap}
.segmented button.on{background:var(--surface-2);color:var(--text);font-weight:500}
.table-head{display:flex;padding:0 var(--gutter) 8px;font-size:11px;color:var(--text-3);
  letter-spacing:.04em}
.table-head span:nth-child(1){flex:1}
.table-head span:nth-child(2){width:92px;text-align:right}
.table-head span:nth-child(3){width:74px;text-align:right}
.market-list{padding:0 var(--gutter)}
.mrow{display:flex;align-items:center;padding:13px 0;position:relative}
.mrow::after{content:"";position:absolute;left:41px;right:0;bottom:0;height:1px;
  background:var(--line)}
.mrow:last-child::after{display:none}
.mrow .coin{width:30px;height:30px;flex:0 0 30px;font-size:13px}
.mrow .meta{flex:1;min-width:0;margin-left:11px}
.mrow .meta b{display:block;font-size:14px;font-weight:600}
.mrow .meta span{display:block;font-size:11.5px;color:var(--text-3);margin-top:1px}
.mrow .price{width:92px;text-align:right;font-size:14px;font-variant-numeric:tabular-nums}
.mrow .pct{width:74px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums}
.pill{display:inline-block;min-width:64px;padding:4px 0;border-radius:4px;text-align:center;
  font-size:12px;font-variant-numeric:tabular-nums}
.pill.up{background:rgba(22,199,132,.1);color:var(--up)}
.pill.down{background:rgba(246,70,93,.1);color:var(--down)}

/* ---------- 发现 ---------- */
.feature{margin:4px var(--gutter) 0;padding:18px;border-radius:var(--r-md);
  background:linear-gradient(160deg,#151B26,#10141B);border:1px solid var(--line)}
.feature-tag{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:5px;
  background:var(--accent-dim);color:#7FA3FF;margin-bottom:10px;letter-spacing:.03em}
.feature-title{font-size:17px;font-weight:600;letter-spacing:-.01em}
.feature-sub{font-size:12.5px;color:var(--text-2);margin-top:6px;line-height:1.6}
.feature-btn{margin-top:14px;height:32px;padding:0 14px;border-radius:8px;
  background:#fff;color:#0B0D10;font-size:12.5px;font-weight:600}
.dapp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px 8px;
  padding:0 var(--gutter)}
.dapp{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11.5px;
  color:var(--text-2);text-align:center}
.dapp .ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;
  font-size:17px;font-weight:600;color:#fff}

/* ---------- 我的 ---------- */
.profile{display:flex;align-items:center;gap:12px;padding:16px var(--gutter) 18px}
.avatar{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  font-size:20px;font-weight:700;background:var(--accent);color:#fff}
.profile-meta{flex:1;min-width:0}
.profile-meta b{font-size:16px;font-weight:600}
.profile-meta span{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.ghost-btn{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line-strong);
  color:var(--text);font-size:12.5px}
.stats{display:flex;margin:0 var(--gutter) 16px;padding:14px 0;border-radius:var(--r-md);
  background:var(--surface);border:1px solid var(--line)}
.stats div{flex:1;text-align:center;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.stats span{font-size:11.5px;color:var(--text-3)}

.list{margin:0 var(--gutter) 12px;background:var(--surface);border-radius:var(--r-md);
  border:1px solid var(--line);overflow:hidden}
.li{display:flex;align-items:center;gap:12px;padding:14px;font-size:14.5px;position:relative}
.li::after{content:"";position:absolute;left:46px;right:0;bottom:0;height:1px;
  background:var(--line)}
.li:last-child::after{display:none}
.li:active{background:var(--surface-2)}
.li .li-ic{width:20px;height:20px;flex:0 0 20px;color:var(--text-2);fill:none;
  stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.li span{flex:1}
.li em{font-style:normal;font-size:12.5px;color:var(--text-3)}
.li .chev{width:16px;height:16px;color:var(--text-3);fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.li.danger span,.li.danger .li-ic{color:var(--down)}
.pad{padding:4px var(--gutter) 20px}

/* ---------- 底部 tab ---------- */
.tabbar{height:calc(var(--tab-h) + env(safe-area-inset-bottom));\n  flex:0 0 calc(var(--tab-h) + env(safe-area-inset-bottom));display:none;background:#090B0E;
  border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabbar.show{display:flex}
.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;opacity:.85;
  justify-content:center;gap:4px;font-size:10.5px;color:var(--text-3);letter-spacing:.02em}
.tabbar button .ico{width:22px;height:22px;stroke-width:1.6}
.tabbar button.on{color:var(--accent)}
.tabbar button.on .ico{stroke-width:2}

/* ---------- 引导 ---------- */
.hero{padding:36px var(--gutter) 20px}
.hero h1{font-size:24px;margin:18px 0 10px;letter-spacing:-.02em;font-weight:600}
.hero p{color:var(--text-2);font-size:13.5px;line-height:1.7;margin:0}
.logo{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
  font-size:22px;font-weight:700;background:var(--accent);color:#fff}
.choice{padding:4px var(--gutter) 24px;display:flex;flex-direction:column;gap:10px}
.choice button{height:52px;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--surface);display:flex;align-items:center;justify-content:center;gap:6px;
  font-size:15px;font-weight:500}
.choice button.primary{background:var(--accent);border-color:transparent;color:#fff}
.choice button small{color:inherit;opacity:.6;font-size:12px;font-weight:400}
.choice button:active{transform:scale(.99)}

/* ---------- 表单 ---------- */
.form{padding:14px var(--gutter) 28px;overflow-y:auto}
.hint{color:var(--text-2);font-size:12.5px;line-height:1.75;margin:0 0 14px}
.paste{width:100%;height:76px;resize:none;background:var(--surface);font-size:16px;
  border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);
  padding:12px;outline:none;line-height:1.6}
.paste:focus{border-color:var(--line-strong)}
.row{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.link-btn{font-size:12.5px;color:var(--accent)}
.wc{display:flex;gap:6px;margin:12px 0 2px}
.wc button{flex:1;height:30px;border-radius:7px;border:1px solid var(--line);
  color:var(--text-3);font-size:12px;background:var(--surface)}
.wc button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.cell{display:flex;align-items:center;gap:9px;background:var(--surface);
  border:1px solid var(--line);border-radius:9px;padding:0 10px;height:42px}
.cell.err{border-color:var(--down)}
.cell .idx{font-size:11px;color:var(--text-3);min-width:14px;font-variant-numeric:tabular-nums}
.cell input{flex:1;width:100%;background:transparent;border:0;outline:none;
  color:var(--text);font-size:14px;padding:0}
.cell input::placeholder{color:#3A424E}
.cell span:not(.idx){font-size:14px}
.btn-primary{width:100%;height:48px;margin-top:18px;border-radius:var(--r-md);
  background:var(--accent);color:#fff;font-size:15px;font-weight:600;letter-spacing:.01em}
.btn-primary:disabled{opacity:.45}
.btn-primary:active{filter:brightness(.94)}
.btn-ghost{height:48px;border-radius:var(--r-md);border:1px solid var(--line-strong);
  color:var(--text-2);font-size:14px}
.err-tip{color:var(--down);font-size:12.5px;margin-top:10px;min-height:16px}
.ghost-line{margin-top:14px;text-align:center;color:var(--text-3);font-size:12.5px}
.field{margin-bottom:18px}
.field label{display:block;font-size:12px;color:var(--text-2);margin-bottom:8px;
  letter-spacing:.02em}
.field input,.field select{width:100%;height:46px;background:var(--surface);font-size:16px;
  border:1px solid var(--line);border-radius:var(--r-md);padding:0 12px;font-size:14.5px;
  outline:none;appearance:none}
.field input:focus,.field select:focus{border-color:var(--line-strong)}
.select-wrap{position:relative}
.select-wrap::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;
  border-right:1.6px solid var(--text-3);border-bottom:1.6px solid var(--text-3);
  transform:translateY(-70%) rotate(45deg);pointer-events:none}
.input-row{display:flex;gap:8px}
.input-row.big input{height:54px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.unit{display:flex;align-items:center;padding:0 14px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-md);font-size:13px;color:var(--text-2)}
.mini-btn{height:46px;padding:0 12px;border-radius:var(--r-md);background:var(--surface);
  border:1px solid var(--line);font-size:13px;display:flex;align-items:center;gap:5px;
  color:var(--text-2);white-space:nowrap}
.field-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;
  font-size:12px;color:var(--text-3)}
.field-foot b{color:var(--text-2);font-weight:500}
.fee-chips{display:flex;gap:8px}
.fee-chips button{flex:1;height:52px;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--surface);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:4px;font-size:13px;color:var(--text)}
.fee-chips button em{font-style:normal;font-size:11px;color:var(--text-3)}
.fee-chips button.on{border-color:var(--accent);background:var(--accent-dim)}
.summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px 14px;font-size:13px}
.summary div{display:flex;justify-content:space-between;padding:5px 0}
.summary span{color:var(--text-2)}
.summary b{font-weight:500}

/* ---------- 密码 ---------- */
.pw-wrap{padding:26px var(--gutter) 8px;display:flex;flex-direction:column;height:100%;overflow-y:auto}
.dots{display:flex;gap:10px;justify-content:center;margin:auto 0 4px}
.dots i{width:42px;height:46px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);display:grid;place-items:center;font-style:normal;font-size:19px}
.dots i.fill{border-color:var(--accent);background:var(--accent-dim)}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 2px 6px;margin-top:26px}
.keypad button{height:52px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);font-size:19px;font-weight:500}
.keypad button:active{background:var(--surface-2)}
.keypad button.blank{background:transparent;border-color:transparent}

/* ---------- 完成 ---------- */
.done{padding:48px var(--gutter) 32px;text-align:center;overflow-y:auto}
.done .mark{width:64px;height:64px;margin:0 auto 20px;border-radius:50%;
  background:rgba(22,199,132,.1);color:var(--up);display:grid;place-items:center}
.done h2{margin:0 0 8px;font-size:19px;font-weight:600;letter-spacing:-.01em}
.done p{margin:0;font-size:13px}
.addr{margin:18px 0 4px;padding:13px 14px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-md);font-size:12px;color:var(--text-2);
  word-break:break-all;text-align:left;line-height:1.6}

/* ---------- 收款 ---------- */
.receive{padding:24px var(--gutter);text-align:center;overflow-y:auto}
.qr-box{background:#fff;border-radius:var(--r-md);padding:12px;display:inline-block}
.qr-box img{display:block;width:190px;height:190px}
.addr-card{margin-top:16px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:12px 14px;display:flex;align-items:center;gap:10px}
.addr-card .mono{flex:1;text-align:left;color:var(--text-2);word-break:break-all;font-size:11.5px}
.addr-card .mini-btn{height:30px;font-size:12px}

/* ---------- 提示 / 弹层 ---------- */
.warn-box{display:flex;gap:10px;background:rgba(246,70,93,.07);
  border:1px solid rgba(246,70,93,.22);border-radius:var(--r-md);padding:12px 14px;
  font-size:12.5px;line-height:1.75;color:#F2A0A9;margin-bottom:16px}
.warn-box .ico{flex:0 0 16px;margin-top:2px;stroke-width:1.6}

.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);
  background:#1B212B;border:1px solid var(--line-strong);padding:10px 16px;border-radius:9px;
  font-size:13px;opacity:0;transition:opacity .18s;pointer-events:none;z-index:99;
  max-width:78%;text-align:center}
.toast.on{opacity:1}

.sheet-mask{position:fixed;inset:0;background:rgba(4,6,9,.6);display:none;
  align-items:flex-end;justify-content:center;z-index:80}
.sheet-mask.on{display:flex}
.sheet{width:100%;max-width:430px;background:#141A22;border-radius:18px 18px 0 0;
  border-top:1px solid var(--line-strong);padding:8px 18px calc(20px + env(safe-area-inset-bottom));
  animation:up .2s ease}
@keyframes up{from{transform:translateY(24px);opacity:.5}to{transform:none;opacity:1}}
.sheet-bar{width:34px;height:4px;border-radius:3px;background:#2A3240;margin:6px auto 14px}
.sheet-title{font-size:15.5px;font-weight:600;text-align:center;margin-bottom:14px}
.sheet-rows{background:#101620;border:1px solid var(--line);border-radius:var(--r-md);
  padding:6px 14px;margin-bottom:14px}
.sheet-rows div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;font-size:13px}
.sheet-rows span{color:var(--text-2);white-space:nowrap}
.sheet-rows b{font-weight:500;text-align:right;word-break:break-all}
.sheet-actions{display:flex;gap:10px}
.sheet-actions button{margin-top:0}
.sheet-actions .btn-primary{flex:1.5}
.sheet-actions .btn-ghost{flex:1}

/* ---------- 骨架 / 刷新 ---------- */
.ptr{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;
  gap:8px;color:var(--text-3);font-size:12px;transition:height .18s ease}
.ptr.show{height:42px}
.spin{width:13px;height:13px;border-radius:50%;border:1.6px solid rgba(255,255,255,.14);
  border-top-color:var(--accent);display:inline-block;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(90deg,#12161C 25%,#181E27 37%,#12161C 63%);
  background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:6px}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.skel-token{display:flex;align-items:center;gap:12px;padding:14px 0;
  border-bottom:1px solid var(--line)}
.skel-token .b1{width:34px;height:34px;border-radius:50%}
.skel-token .b2{height:12px;flex:1}
.skel-token .b3{width:70px;height:12px}
.num-flash{animation:nf .45s ease}
@keyframes nf{from{opacity:.4}to{opacity:1}}

/* 滚动后顶栏出现细分割线 */
.nav.scrolled{border-bottom-color:var(--line)}
.tabbar button.on{opacity:1}
/* ---------- 手机适配 ---------- */
@supports not (height: 100dvh) {
  .app { height: 100vh; }
}
/* 小屏（iPhone SE 等）压缩纵向留白 */
@media (max-height: 700px) {
  .balance-amount { font-size: 30px; }
  .actions button { height: 54px; }
  .actions { margin: 16px 0 4px; }
  .keypad { padding: 12px 2px; gap: 8px; }
  .keypad button { height: 46px; }
  .dots { margin: 16px 0 2px; }
  .hero { padding: 24px var(--gutter) 14px; }
  .hero h1 { font-size: 22px; margin-top: 14px; }
  .done { padding: 32px var(--gutter) 24px; }
}
/* 窄屏（360dp 安卓）收紧横向 */
@media (max-width: 370px) {
  :root { --gutter: 13px; }
  .balance-amount { font-size: 29px; }
  .actions button span { font-size: 11.5px; }
  .grid { gap: 7px; }
  .cell { padding: 0 8px; height: 40px; }
  .cell input { font-size: 15px; }
}
/* 键盘弹出时隐藏底部 tab，避免顶到输入框 */
body.kb-open .tabbar { display: none; }
/* 引导流程：隐藏返回按钮 */
.nav .back.hidden-back { visibility: hidden; }
/* ---------- 扫码浮层 ---------- */
.scan-mask{position:fixed;inset:0;background:#05070A;display:none;flex-direction:column;z-index:95}
.scan-mask.on{display:flex}
.scan-head{height:52px;flex:0 0 52px;display:flex;align-items:center;justify-content:space-between;
  padding:0 8px;font-size:15px;font-weight:600;padding-top:env(safe-area-inset-top)}
.scan-head button{height:34px;padding:0 10px;color:var(--text);font-size:13px}
.scan-head .scan-close{color:var(--text-2)}
.scan-head .scan-album{color:var(--accent)}
.scan-body{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
#scan-video{width:100%;height:100%;object-fit:cover;background:#000}
.scan-frame{position:absolute;width:min(64vw,240px);height:min(64vw,240px);
  border-radius:14px;box-shadow:0 0 0 100vmax rgba(0,0,0,.55)}
.scan-frame::before,.scan-frame::after,
.scan-frame>i::before,.scan-frame>i::after{content:"";position:absolute;width:26px;height:26px;
  border:2.5px solid var(--accent)}
.scan-frame::before{left:-1px;top:-1px;border-right:0;border-bottom:0;border-radius:14px 0 0 0}
.scan-frame::after{right:-1px;top:-1px;border-left:0;border-bottom:0;border-radius:0 14px 0 0}
.scan-tip{position:absolute;bottom:calc(84px + env(safe-area-inset-bottom));
  color:#D6DEEA;font-size:13px;text-align:center;width:100%}

/* 网络异常横幅 */
.net-banner{display:none;margin:0 var(--gutter) 8px;padding:9px 12px;border-radius:9px;
  background:rgba(246,70,93,.1);border:1px solid rgba(246,70,93,.24);
  color:#F2A0A9;font-size:12px;line-height:1.5}
.net-banner.on{display:block}

/* 扫码取景：扫描线 + 底部相册按钮 */
.scan-line{position:absolute;left:8%;right:8%;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  animation:scanmove 2.2s ease-in-out infinite}
@keyframes scanmove{0%{top:6%}50%{top:92%}100%{top:6%}}
.scan-album{position:absolute;left:50%;transform:translateX(-50%);
  bottom:calc(24px + env(safe-area-inset-bottom));height:38px;padding:0 18px;
  border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:13px;
  border:1px solid rgba(255,255,255,.16)}
.scan-head .scan-torch{width:36px;height:34px;display:grid;place-items:center;color:var(--text-2)}
.scan-head .scan-torch.on{color:#FFD60A}
.scan-head .scan-album{display:none}

/* ---------- 闪兑 ---------- */
.swap-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px}
.swap-label{font-size:12px;color:var(--text-2);margin-bottom:10px}
.swap-row{display:flex;align-items:center;gap:10px}
.swap-row input{flex:1;min-width:0;background:transparent;border:0;outline:none;
  font-size:24px;font-weight:600;color:var(--text);letter-spacing:-.01em}
.swap-row input::placeholder{color:#39424F}
.token-select{appearance:none;height:36px;padding:0 30px 0 12px;border-radius:999px;
  background:#1B222C;border:1px solid var(--line);color:var(--text);font-size:13.5px;
  font-weight:600;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),
    linear-gradient(135deg,var(--text-3) 50%,transparent 50%);
  background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.swap-flip{display:grid;margin:-12px auto;position:relative;z-index:2;width:34px;height:34px;
  border-radius:50%;background:#1B222C;border:1px solid var(--line);
  color:var(--text-2);place-items:center}
.swap-flip .ico{width:16px;height:16px;transform:rotate(90deg)}

/* 手续费不足提示 */
.warn-inline{display:none;margin:0 0 12px;padding:10px 12px;border-radius:9px;
  background:rgba(255,159,67,.1);border:1px solid rgba(255,159,67,.26);
  color:#FFC98A;font-size:12px;line-height:1.6}
.warn-inline.on{display:block}

/* ---------- 币种详情 ---------- */
.coin-hero{text-align:center;padding:22px var(--gutter) 6px}
.coin-badge{width:56px;height:56px;border-radius:50%;margin:0 auto 14px;display:grid;
  place-items:center;font-size:23px;font-weight:700;color:#fff}
.coin-balance{font-size:32px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.coin-balance-sub{font-size:13px;color:var(--text-2);margin-top:4px}
.coin-price{font-size:12px;color:var(--text-3);margin-top:6px}
.coin-actions{display:flex;gap:8px;padding:18px var(--gutter) 8px}
.coin-actions button{flex:1;height:58px;border-radius:var(--r-md);background:var(--surface);
  border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:7px;font-size:12px}
.coin-actions button .ico{color:var(--text-2)}
.coin-actions button:active{background:var(--surface-2)}

/* ---------- 行情列表（真实数据） ---------- */
.mk-row{display:flex;align-items:center;gap:10px;padding:11px 0;position:relative;cursor:pointer}
.mk-row::after{content:"";position:absolute;left:40px;right:0;bottom:0;height:1px;background:var(--line)}
.mk-row:last-child::after{display:none}
.mk-logo{width:30px;height:30px;border-radius:50%;flex:0 0 30px;background:#1B222C;
  display:grid;place-items:center;font-size:12px;font-weight:700;color:#9fb0c8;overflow:hidden}
.mk-logo img{width:100%;height:100%;object-fit:cover}
.mk-main{flex:1;min-width:0}
.mk-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px}
.mk-sym{font-size:11.5px;color:var(--text-3);font-weight:500}
.mk-spark{width:56px;height:24px;flex:0 0 56px}
.mk-right{text-align:right;min-width:84px}
.mk-right b{display:block;font-size:14px;font-variant-numeric:tabular-nums}
.mk-right span{display:block;font-size:12px;margin-top:2px;font-variant-numeric:tabular-nums}
.mk-star{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;color:#3C4553}
.mk-star.on{color:#FFD60A}

/* ---------- 行情详情 ---------- */
.md-head{padding:16px var(--gutter) 6px;text-align:center}
.md-price{font-size:30px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.md-chg{font-size:13px;margin-top:4px}
.md-range{display:flex;gap:6px;padding:8px var(--gutter) 4px}
.md-range button{flex:1;height:30px;border-radius:7px;font-size:12px;color:var(--text-3);
  border:1px solid var(--line);background:var(--surface)}
.md-range button.on{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}
.md-chart{position:relative;height:150px;margin:10px 0 6px}
.md-chart svg{width:100%;height:100%;display:block}
.md-chart img{display:none}

/* ---------- 发现（DeFi 协议） ---------- */
.dapp-row{display:flex;align-items:center;gap:11px;padding:12px 14px;position:relative}
.dapp-row::after{content:"";position:absolute;left:58px;right:0;bottom:0;height:1px;background:var(--line)}
.dapp-row:last-child::after{display:none}
.dapp-logo{width:32px;height:32px;border-radius:9px;flex:0 0 32px;background:#1B222C;
  display:grid;place-items:center;font-size:13px;font-weight:700;color:#9fb0c8;overflow:hidden}
.dapp-logo img{width:100%;height:100%;object-fit:contain}
.dapp-meta{flex:1;min-width:0}
.dapp-meta b{display:block;font-size:14px;font-weight:600}
.dapp-meta span{display:block;font-size:11.5px;color:var(--text-3);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dapp-tvl{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}
.dapp-tvl em{display:block;font-style:normal;font-size:11.5px;margin-top:2px}

/* ---------- 快涨快跌 ---------- */
.play-card{margin:6px var(--gutter) 12px;padding:14px;border-radius:var(--r-md);
  background:linear-gradient(160deg,#151B26,#10141B);border:1px solid var(--line)}
.play-head{display:flex;align-items:center;justify-content:space-between}
.play-title{font-size:14px;font-weight:600}
.play-sub{font-size:11px;color:var(--text-3);font-weight:400;margin-left:4px}
.play-symbol{appearance:none;height:28px;padding:0 24px 0 10px;border-radius:999px;
  background:#1B222C;border:1px solid var(--line);color:var(--text);font-size:12px;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),
    linear-gradient(135deg,var(--text-3) 50%,transparent 50%);
  background-position:calc(100% - 13px) 12px,calc(100% - 9px) 12px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.play-mid{display:flex;align-items:baseline;justify-content:space-between;margin:12px 0 4px}
.play-price{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.play-timer{font-size:12px;color:var(--text-3)}
.play-timer span{color:var(--accent);font-weight:600;font-size:15px}
.play-balance{font-size:12px;color:var(--text-3)}
.play-balance b{color:var(--text);font-weight:600}
.play-actions{display:flex;gap:10px;margin:12px 0 8px}
.play-actions button{flex:1;height:46px;border-radius:11px;font-size:15px;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:6px;border:0}
.play-actions em{font-style:normal;font-size:11px;font-weight:400;opacity:.75}
.play-up{background:rgba(22,199,132,.14);color:#16C784;border:1px solid rgba(22,199,132,.3)!important}
.play-down{background:rgba(246,70,93,.13);color:#F6465D;border:1px solid rgba(246,70,93,.3)!important}
.play-actions button:active{filter:brightness(1.15)}
.play-recent{display:flex;gap:6px;font-size:11px;color:var(--text-3);min-height:16px}
.play-recent i{font-style:normal;padding:1px 6px;border-radius:4px;background:#1B222C}
.play-recent i.w{color:#16C784}.play-recent i.l{color:#F6465D}

/* 下注弹层 */
.bet-stakes{display:flex;gap:8px;margin-bottom:10px}
.bet-stakes button{flex:1;height:38px;border-radius:9px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);font-size:13px}
.bet-stakes button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.bet-input{display:flex;align-items:center;gap:8px;background:#101620;border:1px solid var(--line);
  border-radius:var(--r-md);padding:0 12px;margin-bottom:12px}
.bet-input input{flex:1;height:48px;background:transparent;border:0;outline:none;color:var(--text);
  font-size:20px;font-weight:600}
.bet-input span{font-size:12px;color:var(--text-3)}

/* ---------- MT5 交易面板 ---------- */
.trade-card{margin:6px var(--gutter) 10px;padding:14px;border-radius:var(--r-md);
  background:linear-gradient(160deg,#151B26,#10141B);border:1px solid var(--line)}
.tc-head{display:flex;align-items:center;justify-content:space-between}
.tc-sym{display:flex;align-items:center;gap:8px}
.tc-leverage{font-size:11px;color:var(--accent);background:var(--accent-dim);padding:1px 6px;border-radius:4px}
.tc-spread{font-size:11px;color:var(--text-3)}
.tc-clock{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}
.tc-quote{display:flex;align-items:baseline;justify-content:space-between;margin:12px 0 2px;
  font-variant-numeric:tabular-nums}
.tc-bid{color:#F6465D;font-size:18px;font-weight:600}
.tc-ask{color:#16C784;font-size:18px;font-weight:600}
.tc-mid{font-size:24px;font-weight:600;letter-spacing:-.02em}
.tc-quote-label{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-3)}
.tc-account{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0;
  padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tc-account div{text-align:center;min-width:0}
.tc-account span{display:block;font-size:10.5px;color:var(--text-3)}
.tc-account b{display:block;font-size:13px;font-weight:600;margin-top:2px;
  font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.tc-lots{display:flex;gap:8px;margin-bottom:10px}
.tc-lots button{flex:1;height:34px;border-radius:8px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);font-size:12.5px}
.tc-lots button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.tc-actions{display:flex;gap:10px}
.tc-actions button{flex:1;height:50px;border-radius:11px;border:0;color:#fff;font-size:15px;
  font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.tc-actions em{font-style:normal;font-size:11px;font-weight:400;opacity:.85}
.tc-sell{background:#F6465D}
.tc-buy{background:#16C784}
.tc-actions button:active{filter:brightness(.92)}
.tc-hint{margin-top:9px;font-size:11px;color:var(--text-3);display:flex;align-items:center;gap:6px}
.tc-hint b{color:var(--text-2)}
.tc-hint .link-btn{margin-left:auto}
.tc-positions{padding:0 var(--gutter) 6px}
.tc-pos{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;
  background:var(--surface);border:1px solid var(--line);margin-bottom:8px}
.tc-pos .pos-side{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;flex:0 0 auto}
.tc-pos .pos-side.buy{background:rgba(22,199,132,.14);color:#16C784}
.tc-pos .pos-side.sell{background:rgba(246,70,93,.14);color:#F6465D}
.tc-pos .pos-main{flex:1;min-width:0;font-size:11.5px;color:var(--text-3);line-height:1.5}
.tc-pos .pos-main b{display:block;color:var(--text);font-size:13px;margin-bottom:1px}
.tc-pos .pos-pnl{text-align:right;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;
  flex:0 0 auto}
.tc-pos button{height:30px;padding:0 10px;border-radius:7px;border:1px solid var(--line-strong);
  color:var(--text-2);font-size:12px;flex:0 0 auto}

/* 手数输入 + 杠杆 */
.tc-lots-row{display:flex;gap:8px;margin-bottom:8px}
.tc-lot-input{display:flex;align-items:center;gap:4px;background:var(--surface);
  border:1px solid var(--line);border-radius:9px;padding:0 6px;height:36px;flex:0 0 150px}
.tc-lot-input button{width:24px;height:24px;border-radius:6px;background:#1B222C;color:var(--text-2);
  font-size:15px;line-height:1}
.tc-lot-input input{flex:1;min-width:0;background:transparent;border:0;outline:none;
  color:var(--text);font-size:14px;text-align:center;font-variant-numeric:tabular-nums}
.tc-lot-input span{font-size:11px;color:var(--text-3)}
.tc-lot-presets{display:flex;gap:6px;flex:1}
.tc-lot-presets button{flex:1;height:36px;border-radius:9px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);font-size:12px}
.tc-lot-presets button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.tc-lev-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.tc-lev-label{font-size:11px;color:var(--text-3);flex:0 0 auto}
.tc-lev{display:flex;gap:6px;flex:1}
.tc-lev button{flex:1;height:28px;border-radius:7px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-3);font-size:11.5px;padding:0}
.tc-lev button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.tc-pos .pos-tp{height:30px;padding:0 8px;border-radius:7px;border:1px solid var(--line-strong);
  color:var(--accent);font-size:12px;flex:0 0 auto;background:transparent}

/* 定时涨跌 */
.tc-tabs{padding:0 0 10px;margin-top:-2px}
.bn-open{display:flex;align-items:baseline;gap:8px;margin:12px 0 10px}
.bn-open span{font-size:12px;color:var(--text-3)}
.bn-open b{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bn-open .bn-left{margin-left:auto;font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.bn-durations{display:flex;gap:8px;margin-bottom:10px}
.bn-durations button{flex:1;height:44px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);font-size:12.5px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;padding:0}
.bn-durations button em{font-style:normal;font-size:10.5px;color:var(--text-3)}
.bn-durations button.on{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}
.bn-durations button.on em{color:#7FA3FF}
.bn-amount{display:flex;align-items:center;gap:8px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-md);padding:0 12px;margin-bottom:10px;height:46px}
.bn-amount input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);
  font-size:18px;font-weight:600}
.bn-amount span{font-size:12px;color:var(--text-3)}
.bn-pos{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;
  background:var(--surface);border:1px solid var(--line);margin-bottom:8px}
.bn-pos .bn-side{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px}
.bn-pos .bn-side.up{background:rgba(22,199,132,.14);color:#16C784}
.bn-pos .bn-side.down{background:rgba(246,70,93,.14);color:#F6465D}
.bn-pos .bn-main{flex:1;min-width:0;font-size:11.5px;color:var(--text-3);line-height:1.5}
.bn-pos .bn-main b{display:block;color:var(--text);font-size:13px}
.bn-pos .bn-res{text-align:right;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}

/* 定时合约：时间 / 点数 */
.bn-line{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.bn-line label{font-size:12px;color:var(--text-3);flex:0 0 28px}
.bn-time,.bn-strike{display:flex;align-items:center;gap:6px;flex:1;
  background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:0 8px;height:40px}
.bn-time input,.bn-strike input{flex:1;min-width:0;background:transparent;border:0;outline:none;
  color:var(--text);font-size:15px;text-align:center;font-variant-numeric:tabular-nums}
.bn-time span{font-size:11px;color:var(--text-3)}
.bn-time em,.bn-strike em{font-style:normal;font-size:11px;color:var(--text-3);white-space:nowrap}
.bn-strike button{width:26px;height:26px;border-radius:6px;background:#1B222C;color:var(--text-2);
  font-size:15px;line-height:1}

/* 时间/点数行：提示单独一行，避免撑破 */
.bn-line{flex-wrap:wrap;align-items:center}
.bn-hint{flex:0 0 100%;text-align:right;font-size:11px;color:var(--text-3);
  margin-top:4px;letter-spacing:.02em}
.bn-time,.bn-strike{min-width:0}
.bn-time input,.bn-strike input{min-width:0}


/* 交易钱包 */
.tw-hero{text-align:center;padding:24px var(--gutter) 8px}
.tw-label{font-size:12px;color:var(--text-3)}
.tw-id{font-size:22px;font-weight:700;letter-spacing:.06em;margin:6px 0 4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#7FA3FF}
.tw-copy{font-size:11px;color:var(--text-3);text-decoration:underline;padding:2px 8px}
.tw-balance{font-size:32px;font-weight:600;margin-top:10px;font-variant-numeric:tabular-nums}
.tw-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}
.tw-actions{display:flex;gap:10px;padding:14px var(--gutter) 4px}
.tw-actions button{flex:1;height:44px;border-radius:11px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);font-size:13.5px}
.tw-actions button:first-child{border-color:var(--accent);color:#7FA3FF;background:var(--accent-dim)}


/* 五项底部导航 */
.tabbar button{font-size:10px;gap:3px}
.tabbar button .ico{width:21px;height:21px}


/* USDT 划转弹层 */
.ex-coins{display:flex;gap:8px;margin-bottom:12px}
.ex-coins button{flex:1;height:34px;border-radius:9px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-3);font-size:12px}
.ex-coins button.on{border-color:#26a17b;color:#3ddc97;background:rgba(38,161,123,.12)}
.ex-balances{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.ex-bal{flex:1;background:#101620;border:1px solid var(--line);border-radius:11px;
  padding:10px 12px;min-width:0}
.ex-bal span{display:block;font-size:10.5px;color:var(--text-3)}
.ex-bal b{display:block;font-size:17px;font-weight:600;margin:3px 0 1px;
  font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.ex-bal em{font-style:normal;font-size:10px;color:var(--text-3)}
.ex-arrow{color:var(--accent);font-size:14px;flex:0 0 auto}

/* 交易钱包 USDT 卡 */
.tw-usdt{margin:6px var(--gutter) 10px;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--surface);overflow:hidden}
.tw-usdt-row{display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;font-size:13px;position:relative}
.tw-usdt-row+.tw-usdt-row{border-top:1px solid var(--line)}
.tw-usdt-row span{color:var(--text-3);font-size:12.5px}
.tw-usdt-row b{font-variant-numeric:tabular-nums}


/* 资产页：划入交易钱包提示 */
.token-conv{font-size:10.5px;color:#7FA3FF;margin-top:2px}

/* 手数快捷档可横向滚动，避免挤爆 */
.tc-lot-presets{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;
  -ms-overflow-style:none}
.tc-lot-presets::-webkit-scrollbar{display:none}
.tc-lot-presets button{flex:0 0 auto;min-width:42px;padding:0 8px;font-size:12px}


/* ---------- K 线 ---------- */
.md-chart{position:relative;height:240px;margin:10px 0 6px;touch-action:pan-y}
.md-chart canvas{width:100%;height:100%;display:block}
.md-chart .md-tip{position:absolute;top:4px;left:4px;padding:4px 7px;border-radius:6px;
  background:rgba(16,22,32,.92);border:1px solid var(--line);font-size:10.5px;color:var(--text-2);
  line-height:1.5;pointer-events:none;display:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.md-chart .md-tip.on{display:block}
.md-chart .md-tip b{color:var(--text);font-weight:600}


/* 收款页增强 */
.rc-coins{padding:0 0 12px}
.rc-net{text-align:center;font-size:11.5px;color:var(--accent);margin-top:6px}
.rc-amount{margin-top:14px}
.rc-amount .input-wrap{display:flex;align-items:center;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-md);padding:0 12px;height:46px}
.rc-amount input{flex:1;min-width:0;background:transparent;border:0;outline:none;
  color:var(--text);font-size:16px}
.rc-amount .unit{font-size:12.5px;color:var(--text-3)}
.rc-actions{display:flex;gap:10px;margin-top:14px}
.rc-actions button{flex:1;height:44px}

/* 交易详情 */
.tx-status{text-align:center;font-size:13px;margin:18px 0 4px}
.tx-amount{text-align:center;font-size:26px;font-weight:600;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin-bottom:14px}


/* 记录筛选 chips */
.hchips{display:flex;gap:8px;padding:12px var(--gutter) 4px;overflow-x:auto;scrollbar-width:none}
.hchips::-webkit-scrollbar{display:none}
.hchips button{flex:0 0 auto;height:30px;padding:0 14px;border-radius:999px;font-size:12.5px;
  color:var(--text-3);background:var(--surface);border:1px solid var(--line)}
.hchips button.on{color:#7FA3FF;border-color:var(--accent);background:var(--accent-dim)}


/* 最近地址 */
.addr-book{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.addr-book button{font-size:11.5px;padding:5px 10px;border-radius:999px;background:var(--surface);
  border:1px solid var(--line);color:var(--text-3);font-family:var(--mono)}
.addr-book button:hover{color:var(--text);border-color:var(--accent)}


/* 地址簿 */
.ab-name{font-size:14px;font-weight:500}
.ab-addr{font-size:11px;color:var(--text-3);font-family:var(--mono)}
