/* VELOCITY Terminal — X2 金融数据终端
   与 X1 完全不同的终端风: 深色数据密集 / 等宽数字 / 多面板网格 / 滚动行情条 / 系统状态条
   终端底板配色 + 面板描边, 弱圆角弱卡片, 强数据密度 */
:root{
  --bg:#05070d;            /* 终端底板 */
  --panel:#0a0f1c;         /* 面板 */
  --panel2:#10182b;        /* 面板高亮/悬浮 */
  --line:#1b2537;          /* 面板描边 */
  --line2:#243049;         /* hover 描边 */
  --txt:#dfe6f3;           /* 主文字 */
  --sub:#7d8db0;           /* 次文字 */
  --dim:#4a5878;           /* 弱文字 */
  --cyan:#22d3ee;          /* 主强调 */
  --green:#10b981;         /* 涨 */
  --red:#f43f5e;           /* 跌 */
  --amber:#f59e0b;         /* 警告 */
  --blue:#3b82f6;
  --mono:'JetBrains Mono','Cascadia Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--txt);font-family:var(--mono);font-size:12px;overflow-x:hidden}
#app{max-width:1280px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}

/* ---- 顶部滚动行情条 (ticker tape) ---- */
.tape{background:#060a14;border-bottom:1px solid var(--line);height:26px;overflow:hidden;position:sticky;top:0;z-index:60;display:flex;align-items:center}
.tape-inner{display:inline-flex;white-space:nowrap;will-change:transform}
.tape-item{padding:0 14px;font-size:11px;display:inline-flex;gap:6px;align-items:center}
.tape-item .t-sym{color:var(--sub)}
.tape-item .t-px{font-weight:700}
.tape-item .t-cg.up{color:var(--green)} .tape-item .t-cg.down{color:var(--red)}
.tape-gap{padding:0 20px;color:var(--dim)}

/* ---- 顶栏 ---- */
.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);background:#070c17;position:sticky;top:26px;z-index:55}
.logo{font-weight:800;letter-spacing:1px;font-size:14px;color:var(--cyan);white-space:nowrap}
.logo b{color:var(--txt)}
.logo .sq{display:inline-block;width:7px;height:7px;background:var(--cyan);margin-right:6px;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.clock{margin-left:auto;font-size:11px;color:var(--sub)}
.wchip{border:1px solid var(--line2);background:var(--panel);padding:3px 9px;border-radius:3px;font-size:10.5px;color:var(--sub);cursor:pointer}
.wchip b{color:var(--green);font-weight:700}
.led{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--green);box-shadow:0 0 6px var(--green)}
.led.off{background:var(--dim);box-shadow:none}

/* ---- 底部系统状态条 ---- */
.sysbar{border-top:1px solid var(--line);background:#060a14;padding:6px 14px;font-size:10px;color:var(--dim);display:flex;gap:18px;flex-wrap:wrap;margin-top:auto}
.sysbar .b{color:var(--sub)}
.sysbar .ok{color:var(--green)} .sysbar .warn{color:var(--amber)}
.sysbar span.gap{margin-left:auto}

/* ---- 标签页导航 ---- */
.tabs{display:flex;border-bottom:1px solid var(--line);background:#070c17;overflow-x:auto;position:sticky;top:61px;z-index:50}
.tab{padding:8px 14px;font-size:11px;color:var(--sub);letter-spacing:.5px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.tab:hover{color:var(--txt);background:var(--panel)}
.tab.on{color:var(--cyan);border-bottom-color:var(--cyan)}
.tab .dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:5px}
.tab .dot.alive{background:var(--green);animation:pulse 1.2s infinite}

/* ---- 面板网格 ---- */
.pg{display:grid;grid-template-columns:280px 1fr 250px;gap:1px;background:var(--line);padding:1px;flex:1}
@media(max-width:980px){.pg{grid-template-columns:1fr}.col-s,.col-r{order:99}}
.col{background:var(--bg);min-width:0}
.col-s,.col-r{padding:2px}
.panel{border:1px solid var(--line);background:var(--panel);margin-bottom:2px}
.panel-h{padding:5px 9px;font-size:10px;letter-spacing:1px;color:var(--cyan);background:#0a1020;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px;font-weight:700}
.panel-h .rt{margin-left:auto;color:var(--dim);font-weight:400;font-size:9.5px}
.panel-b{padding:8px}

/* ---- 数据表 / 行 ---- */
.drow{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid #0e1524;cursor:pointer;font-size:11px}
.drow:hover{background:var(--panel2)}
.drow.on{background:#0c1526;border-left:2px solid var(--cyan)}
.drow .sym{width:52px;font-weight:700;color:var(--txt)}
.drow .name{color:var(--dim);font-size:9.5px;width:30px}
.drow .px{flex:1;text-align:right;font-weight:700}
.drow .pl{width:62px;text-align:right;font-size:10.5px;font-weight:600}
.pl.up{color:var(--green)} .pl.down{color:var(--red)} .pl.flat{color:var(--sub)}
.spark{width:70px;height:24px}
/* 迷你 sparkline svg 由 JS 画 */

/* ---- 行情大面板 / 主图 ---- */
.bigprice{font-size:30px;font-weight:800;font-family:var(--mono);line-height:1}
.bigprice .cg{font-size:12px;margin-left:8px;font-weight:600;vertical-align:middle}
.ohlc{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.ohlc .o{font-size:9.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}
.ohlc .v{font-size:13px;font-weight:700}
.ttabs{display:flex;gap:2px;margin:8px 0}
.ttab{padding:4px 9px;font-size:10px;color:var(--sub);border:1px solid var(--line);cursor:pointer;background:var(--panel)}
.ttab.on{color:#04101a;background:var(--cyan);border-color:var(--cyan);font-weight:700}
.cv-wrap{height:230px;position:relative}
.cv-wrap canvas{width:100%;height:100%;display:block}

/* ---- 统计网格 ---- */
.stat{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #0e1524;font-size:11px}
.stat .k{color:var(--sub)} .stat .v{font-weight:700}
.stat .v.up{color:var(--green)} .stat .v.down{color:var(--red)}
.meter{height:5px;background:#0e1524;border-radius:2px;overflow:hidden;margin:3px 0 8px}
.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue))}

/* ---- AI Engine 面板 ---- */
.ai-line{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:10.5px;border-bottom:1px solid #0e1524}
.ai-line .s{width:8px;height:8px;border-radius:1px;flex:none}
.ai-line .s.buy{background:var(--green)} .ai-line .s.sell{background:var(--red)} .ai-line .s.idle{background:var(--dim)}
.ai-line .t{flex:1;color:var(--sub)}
.ai-line .v{font-weight:700}
.bar{display:flex;height:26px;border:1px solid var(--line);border-radius:2px;overflow:hidden;margin-top:6px}
.bar .b1{background:var(--green);height:100%}
.bar .b2{background:var(--red);height:100%}

/* ---- 交易页 ---- */
.trade-grid{display:grid;grid-template-columns:1fr 300px;gap:1px;background:var(--line);padding:1px}
@media(max-width:820px){.trade-grid{grid-template-columns:1fr}}
.tcol{background:var(--bg);padding:8px;min-width:0}
.fld{display:flex;align-items:center;gap:8px;margin-bottom:10px;background:var(--panel);border:1px solid var(--line);padding:8px 10px}
.fld label{font-size:10px;color:var(--sub);width:64px;flex:none;letter-spacing:.5px}
.fld input,.fld select{flex:1;background:transparent;border:none;color:var(--txt);font-family:var(--mono);font-size:13px;outline:none}
.durp{display:flex;gap:6px}
.durp button{flex:1;background:var(--panel);border:1px solid var(--line2);color:var(--sub);padding:9px 0;font-family:var(--mono);font-size:11px;cursor:pointer;border-radius:2px}
.durp button.on{border-color:var(--cyan);color:var(--cyan)}
.btns{display:flex;gap:6px;margin-top:6px}
.btn-up,.btn-dn{flex:1;padding:12px 0;border:none;font-family:var(--mono);font-weight:800;font-size:13px;cursor:pointer;color:#04101a}
.btn-up{background:var(--green)} .btn-dn{background:var(--red)}
.btn-up{background:var(--green)} .btn-dn{background:var(--red)}
.ord-tab{display:flex;gap:2px;margin:8px 0}
.ord-tab button{flex:1;padding:7px;background:var(--panel);border:1px solid var(--line);color:var(--sub);font-family:var(--mono);font-size:11px;cursor:pointer}
.ord-tab button.on{color:var(--cyan);border-color:var(--cyan)}
.ord-row{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #0e1524;font-size:11px}
.ord-row .c{flex:1;color:var(--sub)} .ord-row .a{font-weight:700}
.pill{display:inline-block;padding:2px 8px;font-size:9.5px;border-radius:2px;font-weight:700;letter-spacing:.3px}
.pill.win{background:rgba(16,185,129,.15);color:var(--green);border:1px solid rgba(16,185,129,.4)}
.pill.lose{background:rgba(244,63,94,.15);color:var(--red);border:1px solid rgba(244,63,94,.4)}
.pill.open{background:rgba(245,158,11,.15);color:var(--amber);border:1px solid rgba(245,158,11,.4)}
.pill.wait{background:rgba(125,141,176,.15);color:var(--sub);border:1px solid var(--line2)}

/* ---- 通用 ---- */
.hdr{padding:8px 12px;font-size:11px;letter-spacing:1px;color:var(--dim);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.hdr b{color:var(--txt);font-size:12px;letter-spacing:.5px}
.empty{padding:26px 10px;text-align:center;color:var(--dim);font-size:11px}
.btn{border:none;background:var(--panel2);color:var(--txt);padding:10px;font-family:var(--mono);font-size:12px;cursor:pointer;border:1px solid var(--line2);width:100%;margin-top:10px}
.btn:hover{border-color:var(--cyan);color:var(--cyan)}
.btn.primary{background:var(--cyan);color:#04101a;font-weight:800;border-color:var(--cyan)}
.note{padding:8px 12px;color:var(--dim);font-size:10px;line-height:1.6}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding:1px;margin-top:8px}
@media(max-width:760px){.cards3{grid-template-columns:1fr}}
.kpi{border:1px solid var(--line);background:var(--panel);padding:10px}
.kpi .k{font-size:9.5px;color:var(--dim);letter-spacing:.5px}
.kpi .v{font-size:18px;font-weight:800;margin-top:3px}
.kpi .s{font-size:10px;margin-top:2px}
#toast{position:fixed;left:50%;bottom:44px;transform:translateX(-50%);background:#0c1526;border:1px solid var(--cyan);color:var(--cyan);padding:10px 16px;font-size:12px;z-index:999;opacity:0;transition:opacity .25s;font-family:var(--mono)}
#toast.show{opacity:1}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#1b2537;border-radius:2px}

/* 滚动行情条无缝左移 */
@keyframes scrollX{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tape-inner{animation:scrollX 40s linear infinite}


/* ===================== X2 Dashboard 增强 ===================== */
/* 中央下半部 band */
.mid-band{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.mid-band .panel-b{padding:6px 8px}
/* 实时成交带 */
.lt{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:10px;border-bottom:1px solid #0d1422}
.lt .t{color:var(--dim);width:52px;flex:none;font-size:9px}
.lt .s{font-weight:700;color:var(--txt);width:64px;flex:none}
.lt .px{flex:1;text-align:right;font-weight:700}
.lt .pl{width:52px;text-align:right}
.lt .dir{width:14px;text-align:center;flex:none}
.lt .dir.buy{color:var(--green)} .lt .dir.sell{color:var(--red)}
/* 市场动态 (分类观点) */
.mv{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #0d1422;font-size:10.5px}
.mv .k{width:56px;flex:none;color:var(--cyan);font-weight:700;letter-spacing:.5px}
.mv .barw{flex:1;height:4px;background:#0e1524;overflow:hidden;border-radius:1px}
.mv .barw i{display:block;height:100%;border-radius:1px}
.mv .barw i.up{background:var(--green)} .mv .barw i.down{background:var(--red)}
.mv .val{width:58px;text-align:right;font-weight:700}
.mv .lead{color:var(--dim);font-size:9px;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* AI 行动日志 */
.ai-actions{max-height:150px;overflow:auto}
.ai-a{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid #0d1422;font-size:10px}
.ai-a .k{flex:none;width:46px;font-weight:800;letter-spacing:.5px;font-size:9px}
.ai-a .a{flex:1;color:var(--sub)}
.ai-a .t{color:var(--dim);font-size:9px}
/* watchlist 分类分组 */
.wgrp{background:#0a1020;padding:4px 8px;border-bottom:1px solid var(--line)}
.wgrp .wg{font-size:9px;letter-spacing:1px;color:var(--dim)}
.wgrp .n{color:var(--cyan);margin-left:4px}
/* chart loading overlay */
.cv-wrap{position:relative}
.cv-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:10px;letter-spacing:1px;background:rgba(5,7,13,.6);pointer-events:none;animation:pulse 1.6s infinite}
/* AI Engine 增强 */
.ai-focus{display:flex;align-items:center;gap:6px;padding:6px 0;font-size:10px;color:var(--dim);letter-spacing:1px}
.ai-focus .afx{color:var(--cyan);font-weight:800;font-size:12px;padding:1px 8px;border:1px solid var(--cyan);border-radius:2px}
.ai-focus .fx{margin-left:auto;font-weight:700}
.ai-cats{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 8px;border-bottom:1px solid #0d1422;margin-bottom:4px}
.ac{padding:2px 8px;font-size:9px;border-radius:2px;font-weight:700;letter-spacing:.4px;cursor:pointer;border:1px solid var(--line2)}
.ac.up{color:var(--green);background:rgba(16,185,129,.08)}
.ac.down{color:var(--red);background:rgba(244,63,94,.08)}
.ac:hover{border-color:var(--cyan)}
/* 中央列纵向伸展(补满空白) */
.col-m{display:flex;flex-direction:column}
.col-m .panel:first-child{flex:none}
.mid-band{flex:1}


/* ===================== X2 MARKET 页 (多资产行情中心) ===================== */
/* 分类摘要条 */
.mkt-strip{display:flex;flex-wrap:wrap;gap:4px;margin:2px 4px 6px}
.cls{display:flex;align-items:center;gap:6px;padding:3px 8px;background:#0a1020;border:1px solid var(--line);border-radius:2px;font-size:9.5px;white-space:nowrap}
.cls .c{color:var(--cyan);font-weight:800;letter-spacing:.5px}
.cls .n{color:var(--dim)}
.cls .b{font-weight:700}
.cls .g{color:var(--green)} .cls .l{color:var(--red)}
/* 筛选工具条 */
.mkt-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 4px 6px}
.mkt-cats{display:flex;flex-wrap:wrap;gap:3px}
.mc-tab{padding:4px 10px;font-size:9.5px;font-weight:700;letter-spacing:.5px;color:var(--sub);background:#0a1020;border:1px solid var(--line);border-radius:2px;cursor:pointer;white-space:nowrap}
.mc-tab i{font-style:normal;color:var(--dim);margin-left:4px;font-size:9px}
.mc-tab.on{color:#05070d;background:var(--cyan);border-color:var(--cyan)}
.mc-tab.on i{color:#0a1020}
.mc-tab:hover{border-color:var(--cyan)}
.mkt-ops{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mk-search{background:#070b14;border:1px solid var(--line2);color:var(--txt);font-family:var(--mono);font-size:10px;padding:5px 8px;width:180px;border-radius:2px;letter-spacing:.3px}
.mk-search:focus{outline:none;border-color:var(--cyan)}
.mk-sorts{display:flex;gap:3px}
.mk-sort{padding:4px 8px;font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--sub);border:1px solid var(--line);border-radius:2px;cursor:pointer;background:#0a1020}
.mk-sort .d{color:var(--cyan)}
.mk-sort.on{color:var(--cyan);border-color:var(--cyan)}
.mk-sort:hover{border-color:var(--cyan)}

/* 高密度数据表 */
.mkt-tbl-wrap{overflow:auto;margin:0 4px 8px;border:1px solid var(--line);background:#05070d}
.mkt-tbl{width:100%;min-width:760px;border-collapse:collapse;font-family:var(--mono);font-size:10px}
.mkt-tbl thead th{position:sticky;top:0;background:#0a1020;color:var(--dim);font-size:9px;letter-spacing:.6px;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);cursor:pointer;user-select:none;white-space:nowrap;font-weight:700}
.mkt-tbl thead th.on{color:var(--cyan)}
.mkt-tbl thead th:hover{color:var(--cyan)}
.mkt-tbl tbody td{padding:5px 8px;border-bottom:1px solid #0b1220;white-space:nowrap}
.mkt-row{cursor:pointer}
.mkt-row:hover td{background:#0b1220}
.mkt-row .ast{display:flex;align-items:center;gap:6px}
.mkt-row .cat{width:30px;padding:2px 0;text-align:center;font-size:8px;font-weight:800;border-radius:2px;flex:none}
.mkt-row .cat.crypto{color:var(--cyan);border:1px solid var(--cyan)}
.mkt-row .cat.forex{color:#a78bfa;border:1px solid #a78bfa}
.mkt-row .cat.metals{color:#fbbf24;border:1px solid #fbbf24}
.mkt-row .cat.energy{color:#fb923c;border:1px solid #fb923c}
.mkt-row .cat.index{color:#34d399;border:1px solid #34d399}
.mkt-row .sym{font-weight:800;color:var(--txt);font-family:var(--mono);font-size:11px}
.mkt-row .nm{color:var(--dim);font-size:9px;font-family:var(--mono)}
.mkt-row td.px{font-weight:700}
.mkt-row .vol{color:var(--sub)}
.mkt-row .dim{color:var(--dim)}
.mkt-row .feed{text-align:center;font-size:8px}
.mkt-row td.feed.up{color:var(--green)} .mkt-row td.feed.down{color:var(--red)} .mkt-row td.feed.flat{color:var(--dim)}

/* 移动端自适应 MARKET (页面不横向溢出) */
@media(max-width:760px){
  .mkt-tools{flex-direction:column;align-items:stretch}
  .mkt-ops{margin-left:0;flex-direction:column;align-items:stretch}
  .mk-search{width:100%}
  .mk-sorts{justify-content:flex-start;flex-wrap:wrap}
  .mkt-strip{max-height:64px;overflow:auto}
}


/* ===================== X2 CHART 页 (单品种图表详情) ===================== */
.coin-grid{display:grid;grid-template-columns:1fr 330px;gap:6px;margin:0 4px}
.ccol{min-width:0}
.ccol-main .panel{margin-bottom:6px}
.ccol-side .panel{margin-bottom:6px}
/* 24H KPI 带 */
.ch-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:0 4px 6px}
.ch-kpis .kpi{background:#0a1020;border:1px solid var(--line);padding:6px 8px;border-radius:2px}
.ch-kpis .kpi .k{font-size:8.5px;color:var(--dim);letter-spacing:.6px}
.ch-kpis .kpi .v{font-size:13px;font-weight:800;font-family:var(--mono)}
.ch-kpis .kpi .s{font-size:8.5px;color:var(--sub)}
.hdr-live{display:flex;align-items:center;gap:8px}
.hdr-live .cg{font-size:13px;font-weight:800}
/* 周期tab + 图例 */
.tt-leg{display:flex;align-items:center;gap:5px;font-size:8.5px;color:var(--dim)}
.tt-leg i{display:inline-block;width:10px;height:2px;border-radius:1px}
/* 技术指标带 */
.ind-row{display:flex;flex-wrap:wrap;gap:4px}
.ind{display:flex;flex-direction:column;align-items:flex-start;padding:4px 8px;background:#070b14;border:1px solid var(--line);border-radius:2px;min-width:64px}
.ind .k{font-size:8px;color:var(--dim);letter-spacing:.5px}
.ind .k.c1{color:#22d3ee}.ind .k.c2{color:#fbbf24}.ind .k.c3{color:#a78bfa}.ind .k.c4{color:#f97316}
.ind .v{font-size:11px;font-weight:800;font-family:var(--mono)}
/* 快捷下单 */
.qo-pcts{display:flex;gap:4px;margin:6px 0}
.qo-pcts button{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--sub);padding:5px 0;font-family:var(--mono);font-size:10px;cursor:pointer;border-radius:2px}
.qo-pcts button.on{color:var(--cyan);border-color:var(--cyan)}
.btn.full{width:100%;background:var(--panel);border:1px solid var(--line2);color:var(--cyan);padding:8px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.5px;cursor:pointer;border-radius:2px}
.btn.full:hover{border-color:var(--cyan)}
.settle{background:var(--green);border:none;color:#04101a;padding:5px 10px;font-family:var(--mono);font-size:10.5px;cursor:pointer;font-weight:700;border-radius:2px}
.ord-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #0d1422;font-size:10.5px}
.ord-row .c{flex:1;font-family:var(--mono)}
.ord-row .a.pill.open{color:var(--green);border:1px solid var(--green);padding:1px 6px;font-size:8.5px;border-radius:2px}
/* 移动端 CHART */
@media(max-width:820px){
  .coin-grid{grid-template-columns:1fr}
  .ccol-side{margin-top:6px}
  .ch-kpis{grid-template-columns:repeat(2,1fr)}
  .tt-leg{display:none}
}


/* ===================== X2 TRADE 交易台 ===================== */
.trade-grid{display:grid;grid-template-columns:1fr 330px;gap:6px;margin:0 4px}
.tcol{min-width:0}
.tcol .panel{margin-bottom:6px}
/* 头部实时价 */
.tr-live{display:flex;align-items:center;gap:8px;font-family:var(--mono)}
.tr-live .v{font-size:15px;font-weight:800}
.tr-live .c{font-size:11px;font-weight:800}
/* 品种 chips */
.tr-syms{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.tr-syms button{background:var(--panel);border:1px solid var(--line);color:var(--sub);padding:4px 8px;font-family:var(--mono);font-size:9.5px;cursor:pointer;border-radius:2px}
.tr-syms button:hover{color:var(--cyan);border-color:var(--cyan)}
/* 实时价格大数字 */
.tr-price{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;padding:10px 12px;background:#070b14;border:1px solid var(--line);border-radius:2px}
.tr-price .p{font-size:26px;font-weight:900;font-family:var(--mono);line-height:1}
.tr-price .d{font-size:12px;font-weight:800;font-family:var(--mono)}
/* 风险摘要 */
.tr-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0}
.tr-sum>div{background:#070b14;border:1px solid var(--line);border-radius:2px;padding:6px 8px;display:flex;flex-direction:column}
.tr-sum span{font-size:8px;color:var(--dim);letter-spacing:.5px}
.tr-sum b{font-size:12px;font-weight:800;font-family:var(--mono);margin-top:2px}
/* 确认条 */
.tr-cf{background:rgba(245,158,11,.06);border:1px solid #f59e0b;border-radius:2px;padding:10px;margin-top:10px}
.tr-cf-h{font-size:10.5px;font-weight:800;letter-spacing:.5px;color:#f59e0b;margin-bottom:8px}
.tr-cf-row{display:flex;justify-content:space-between;font-size:11px;font-family:var(--mono);padding:2px 0;border-bottom:1px dashed #1b2537}
.tr-cf-row b.color{color:var(--cyan)}
.tr-cf-actions{display:flex;gap:8px;margin-top:10px}
.tr-cf-cancel{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--sub);padding:9px;font-family:var(--mono);font-size:11px;cursor:pointer}
.tr-cf-ok{flex:2;border:none;padding:9px;font-family:var(--mono);font-size:12px;font-weight:800;cursor:pointer}
.tr-cf-ok.up{background:var(--green);color:#04101a}
.tr-cf-ok.down{background:var(--red);color:#fff}
/* 状态条 */
.tr-status{font-family:var(--mono);font-size:11px;padding:8px 10px;border-radius:2px;margin-top:10px;text-align:center;font-weight:700}
.tr-status.ok{background:rgba(16,185,129,.08);border:1px solid var(--green);color:var(--green)}
.tr-status.err{background:rgba(244,63,94,.08);border:1px solid var(--red);color:var(--red)}
.tr-status.info{background:rgba(34,211,238,.06);border:1px solid var(--cyan);color:var(--cyan)}
/* 持仓行增强 */
.ord-main{flex:1;display:flex;flex-direction:column}
.ord-main .c{font-size:11px}
.ord-main .s{font-size:9px;letter-spacing:.3px}
/* 移动端 TRADE */
@media(max-width:820px){
  .trade-grid{grid-template-columns:1fr}
  .tr-sum{grid-template-columns:repeat(2,1fr)}
  .tr-live .v{font-size:13px}
}


/* ===================== X2 WALLET 资产中心 ===================== */
.wt-tabs{display:flex;gap:4px;margin:0 4px 6px;flex-wrap:wrap}
.wt-tabs button{flex:1;min-width:70px;background:var(--panel);border:1px solid var(--line);color:var(--sub);padding:8px 0;font-family:var(--mono);font-size:10px;letter-spacing:.4px;cursor:pointer;border-radius:2px}
.wt-tabs button.on{color:var(--cyan);border-color:var(--cyan);background:#0a1322}
/* 财务商品/持仓行 */
.fin-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid #0d1422;font-size:11px}
.fin-row .fm{flex:1;display:flex;flex-direction:column}
.fin-row .fm b{font-size:12px}
.fin-row .fm span{font-size:9px}
/* ===================== X2 AI ENGINE ===================== */
.ai-console{font-family:var(--mono);font-size:10px;line-height:1.8;background:#05070d}
.ai-ev{display:flex;align-items:baseline;gap:6px;padding:3px 0;border-bottom:1px solid #0a1020}
.ai-ev .s{flex:0 0 auto}
.ai-ev .eng{flex:0 0 auto;color:var(--cyan);font-weight:700;font-size:9px}
.ai-ev .msg{flex:1;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-ev .msg.up{color:var(--green)}
.ai-ev .msg.down{color:var(--red)}
.ai-ev .msg.warn{color:#f59e0b}
.ai-ev .ts{flex:0 0 auto;color:var(--dim);font-size:9px}
/* 通用符号点 */
.ai-line .s.buy,.ai-ev .s.buy{background:var(--green)}
.ai-line .s.sell,.ai-ev .s.sell{background:var(--red)}
.ai-line .s.idle,.ai-ev .s.idle{background:#334155}
/* 移动端 */
@media(max-width:820px){
  .wt-tabs button{min-width:47%;flex:1 1 30%}
  .ai-ev .msg{white-space:normal}
}
