/* ══ block #01  (原 index.html 第18行)   ══ */
/* ============================================================
   洪武智能交易终端 · V.161.0（版本唯一源: hongwu/version.py；运行时以接口 version_label 为准）
   ============================================================ */
@font-face{font-family:'Inter';font-weight:400;src:url('/vendor/fonts/inter-400.woff2') format('woff2');font-display:swap}
/*HW_AURORA_V4J*/
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('/vendor/fonts/instrument-serif-400-italic.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('/vendor/fonts/instrument-serif-400.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('/vendor/fonts/space-grotesk-300.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('/vendor/fonts/space-grotesk-400.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/vendor/fonts/space-grotesk-500.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/vendor/fonts/space-grotesk-600.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/vendor/fonts/space-grotesk-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:500;src:url('/vendor/fonts/inter-500.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-weight:600;src:url('/vendor/fonts/inter-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-weight:700;src:url('/vendor/fonts/inter-700.woff2') format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:400;src:url('/vendor/fonts/jetbrains-mono-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:500;src:url('/vendor/fonts/jetbrains-mono-500.woff2') format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:600;src:url('/vendor/fonts/jetbrains-mono-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:700;src:url('/vendor/fonts/jetbrains-mono-700.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Noto Sans SC';font-weight:500;src:url('/vendor/fonts/noto-sans-sc-500-sub.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Noto Sans SC';font-weight:700;src:url('/vendor/fonts/noto-sans-sc-700-sub.woff2') format('woff2');font-display:swap}

:root{
  /* V2-DS(§4/§5): 深黑/炭黑底 + 冷白文字 + 低饱和蓝青(实时数据) + 少量高级金(品牌) + 红(风险) */
  --bg:#08090b;--bg2:#0b0d10;--bg3:#101317;--bg4:#171b21;
  --card:#0d0f13;--card2:#131720;
  --border:#1d222b;--border2:#2b323d;
  --txt:#e9edf3;--sub:#8d97a5;--dim:#5f6875;--text:var(--txt);
  /* v143(09-20 老板: 全面恢复绿涨红跌) 涨=绿 / 跌=红 (国际盘口惯例) */
  --up:#00e0a8;--up-bg:rgba(0,224,168,.11);
  --down:#ff4d6b;--down-bg:rgba(255,77,107,.11);
  /* 状态语义色独立于涨跌: 运行中/安全/正常=绿, 危险/熔断/错误=红
     → 状态色不会跟着「红涨绿跌」翻转(熔断永远是红, 运行中永远是绿) */
  --ok:#2e9e7a;--ok-bg:rgba(46,158,122,.11);
  --err:#c0463f;--err-bg:rgba(192,70,63,.11);
  --gold:#4D7CFE;--gold-bg:rgba(77,124,254,.10);
  --purple:#4D7CFE;--purple-bg:rgba(77,124,254,.12);
  --pink:#4D7CFE;--pink-bg:rgba(77,124,254,.10);
  --cyan:#4D7CFE;--cyan-bg:rgba(77,124,254,.10);
  --blue:#4D7CFE;
  --brand:#4D7CFE;--success:var(--ok);--warning:var(--gold);--accent:var(--purple);--muted:var(--sub);--surface:var(--card);
  --info:var(--cyan);--warn:var(--gold);--bad:var(--err);   /* v105.23: 守卫卡等语义色(此前 var(--info/--warn/--bad) 未定义, 退化为继承色) */
  --danger:var(--err);--danger-bg:var(--err-bg);   /* V2-1.5: --danger 此前 0定义13引用 → 危险色/背景失效, 补定义 */
  --glow-purple:rgba(77,124,254,.10);
  --glow-cyan:rgba(77,124,254,.08);
  --radius:12px;--radius-sm:8px;   /* v129: 全站圆角微升, 现代感 */
  --shadow-card:0 1px 3px rgba(0,0,0,.40);
  --shadow-hover:0 6px 20px rgba(0,0,0,.45);
  --mono:'JetBrains Mono','SF Mono','Cascadia Code',Consolas,monospace;
  --sans:'Inter','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
/* v111(CSS 卫生): scrollbar-color 交给文件末的最终定义, 此处只留独有属性 */
html{scrollbar-width:thin;scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--txt);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;letter-spacing:-.01em}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
/* v111(CSS 卫生): thumb/selection 有 3~4 代叠加, 统一保留文件末的最终定义 */

/* ============ SVG Icon Base ============ */
.icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0}
.icon svg,.icon img{width:100%;height:100%}
.icon-sm{width:14px;height:14px}
.icon-lg{width:22px;height:22px}

/* ============ Layout ============ */
.app{display:flex;height:100vh}
/* v110.18(09-19 老板: logo 被压缩变形): 侧栏内容超高时 flex-shrink 把 logo 压成 0 高
   → 直接子项一律不压缩, 溢出交给侧栏自身滚动 */
/* v120.8 §4/§5: 去紫粉霓虹渐变与发光 → 品牌金单一色, 与 Design System 一致 */
/* v120.6(09-18 老板: 真·洪武徽上站) — 老板 8/24 提供的四大神兽金徽, 取代拼凑的抽象轨道 SVG */
/* 品牌字标 */
.hw-wordmark{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--txt);margin:-10px 0 16px 2px;display:flex;align-items:center;gap:6px}
.hw-wordmark i{font-style:normal;font-size:9px;font-weight:600;letter-spacing:.06em;color:var(--gold);background:var(--gold-bg);border:1px solid rgba(77,124,254,.28);border-radius:6px;padding:1px 6px}
.nav-group{width:100%;padding:0 8px;margin-bottom:2px}
.nav-label{font-size:9px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:1.2px;padding:6px 8px;white-space:nowrap;overflow:hidden;opacity:0;transition:opacity .2s}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:var(--radius-sm);color:var(--sub);font-size:13px;font-weight:500;cursor:pointer;transition:all .18s;white-space:nowrap;text-decoration:none;user-select:none;position:relative}
.nav-item:hover{background:var(--bg3);color:var(--txt)}
.nav-item.active{background:var(--purple-bg);color:var(--purple)}
.nav-item.active::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:2px;background:linear-gradient(180deg,var(--purple),var(--pink))}
.nav-item .label{opacity:0;transition:opacity .2s}
.nav-item .badge{margin-left:auto;font-size:10px;padding:1px 6px;border-radius:10px;background:var(--bg4);color:var(--dim);opacity:0;transition:opacity .2s}

/* ============ Main ============ */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--bg2);border-bottom:1px solid var(--border);gap:16px;position:relative;z-index:50}
.topbar-left{display:flex;align-items:center;gap:16px}
.topbar-left h1{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
/* v120.8 §4/§5: 品牌色统一为金, 不用渐变文字 */
.topbar-left h1 .brand{color:var(--gold)}
.mode-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600;border:1px solid}
.mode-badge.paper{background:var(--gold-bg);color:var(--gold);border-color:rgba(77,124,254,.25)}
.mode-badge.live{background:var(--err-bg);color:var(--err);border-color:rgba(192,70,63,.25);animation:livePulse 2s infinite}
@keyframes livePulse{0%,100%{box-shadow:0 0 0 0 rgba(255,77,107,0)}50%{box-shadow:0 0 0 4px rgba(255,77,107,.15)}}
.regime-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600}
.topbar-right{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--sub)}
.conn-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px rgba(0,224,168,.6);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.clock{font-family:var(--mono);font-size:11px;color:var(--dim)}
.content{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;padding:18px 22px 28px}


/* ============ Asset Bar (v98 feature) ============ */
.asset-bar{display:flex;align-items:center;gap:16px;padding:8px 20px;background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:36px}
.asset-bar .ab-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--sub);white-space:nowrap}
.asset-bar .ab-item .ab-val{font-family:var(--mono);font-weight:600;font-size:12px;color:var(--text)}
.asset-bar .ab-item .ab-val.c-up{color:var(--up)}
.asset-bar .ab-item .ab-val.c-down{color:var(--down)}
.asset-bar .ab-item .ab-val.c-gold{color:var(--gold)}
.asset-bar .ab-sep{width:1px;height:14px;background:var(--border);flex-shrink:0}
.ab-util{display:flex;align-items:center;gap:8px}
.ab-util .ab-bar{width:80px;height:4px;border-radius:2px;background:var(--bg4);overflow:hidden}
.ab-util .ab-bar .ab-fill{height:100%;border-radius:2px;background:var(--ok);transition:width .4s}
.ab-util .ab-bar .ab-fill.warn{background:var(--gold)}
.ab-util .ab-bar .ab-fill.danger{background:var(--err)}


/* ============ Dual Zone Header ============ */
.zone-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.zone-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px}
.zone-badge.cex{background:linear-gradient(135deg,var(--gold-bg),rgba(77,124,254,.02));color:var(--gold);border:1px solid rgba(77,124,254,.2)}
.zone-badge.gmgn{background:linear-gradient(135deg,var(--purple-bg),rgba(77,124,254,.02));color:var(--purple);border:1px solid rgba(77,124,254,.2)}
.zone-sep{flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}

/* ============ KPI Cards ============ */
.kpi-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}

/* ============ Dual Zone Layout (v101) ============ */
.dual-zone{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.dual-zone .zone-col{display:flex;flex-direction:column;gap:0;min-width:0}
.zone-block{background:linear-gradient(180deg,rgba(16,16,24,.55),rgba(16,16,24,.35));border:1px solid rgba(255,255,255,.05);border-radius:var(--radius);padding:16px;min-width:0;box-shadow:inset 0 1px 0 rgba(77,124,254,.05)}
.zone-block.cex{border-top:2px solid rgba(77,124,254,.55);box-shadow:0 2px 20px rgba(77,124,254,.045)}
.zone-block.gmgn{border-top:2px solid rgba(77,124,254,.55);box-shadow:0 2px 20px rgba(77,124,254,.06)}
/* v120.6(09-18 老板: 首页太简单) — 首页聚合带: 策略战力榜/风控姿态/市场速览 */
.home-band{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin-top:16px}
.home-band .hb-col{min-width:0}
.home-band .panel{height:100%;margin:0}
.home-band .panel-sub{font-size:10px;color:var(--dim)}
.hb-row{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px}
.hb-row:last-child{border-bottom:0}
.hb-row .hb-n{flex:1 1 auto;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.hb-row .hb-n:hover{color:var(--pink)}
.hb-row .hb-t{font-size:10px;color:var(--dim);flex:0 0 auto}
.hb-row .hb-p{font-family:var(--mono);font-weight:700;flex:0 0 auto;min-width:62px;text-align:right}
.hb-status{flex:0 0 auto;font-size:9px;font-weight:700;padding:1px 7px;border-radius:6px}
.hb-status.on{color:var(--ok);background:var(--ok-bg)}
.hb-status.warn{color:var(--gold);background:var(--gold-bg)}
.hb-status.err{color:var(--err);background:var(--err-bg)}
.hb-status.off{color:var(--err);background:var(--err-bg)}
.hb-mkt{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.hb-mc{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);cursor:pointer;transition:.18s}
.hb-mc:hover{background:rgba(77,124,254,.10);border-color:rgba(77,124,254,.3);transform:translateY(-1px)}
.hb-mc .hb-s{font-size:11px;font-weight:700;color:var(--sub)}
.hb-mc .hb-x{font-family:var(--mono);font-size:11.5px;font-weight:700}
.hb-empty{font-size:11px;color:var(--dim);padding:10px 0;text-align:center}
.home-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.home-links a{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:6px 12px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);color:var(--sub);cursor:pointer;transition:.18s}
.home-links a:hover{background:rgba(77,124,254,.12);border-color:rgba(77,124,254,.34);color:var(--txt);transform:translateY(-1px)}
@media(max-width:1180px){.home-band{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.home-band{grid-template-columns:1fr}}
/* v111fe: 此行原为死规则(与 622 行同选择器, 后者胜) → 已删, 保留 622 的 3 列定义 */
.zone-block .zone-header{margin-bottom:12px}
.zone-block .panel{margin-bottom:12px}
.zone-block .panel:last-child{margin-bottom:0}
.zone-block .panel-body{padding:12px}
.zone-block table{min-width:0}
.zone-block .trade-list{max-height:260px;overflow-y:auto}
/* v111fe: 原 @media(max-width:1400px) 单列 被 255 行 @media(max-width:1440px) 双列覆盖(同特异性后者胜) → 删除死规则; 单列改由 1280 断点承担 */
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:15px 20px 14px;position:relative;overflow:hidden;transition:border-color .2s ease,transform .2s ease;box-shadow:var(--shadow-card),inset 0 1px 0 rgba(77,124,254,.07)}
.kpi:hover{border-color:var(--border2);transform:translateY(-1px);box-shadow:var(--shadow-hover)}
.kpi::before{content:'';position:absolute;top:0;left:0;width:2px;height:100%;background:var(--accent,var(--hw-accent));opacity:.8}
.kpi::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent,var(--hw-accent));opacity:0;transition:opacity .3s}
.kpi:hover::after{opacity:.35}
.kpi .label{font-size:11px;color:var(--sub);font-weight:500;margin-bottom:9px;display:flex;align-items:center;gap:6px}
.kpi .label .icon{opacity:.75}
.kpi .value{font-size:23px;font-weight:700;font-family:'Inter',var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.2;color:var(--txt)}
.kpi .sub{font-size:11px;color:var(--dim);margin-top:7px}
.kpi.up{--accent:var(--up)}.kpi.down{--accent:var(--down)}.kpi.gold{--accent:var(--gold)}.kpi.purple{--accent:var(--purple)}.kpi.cyan{--accent:var(--cyan)}.kpi.blue{--accent:var(--blue)}.kpi.pink{--accent:var(--pink)}
.c-up{color:var(--up)}.c-down{color:var(--down)}.c-ok{color:var(--ok)}.c-err{color:var(--err)}.c-gold{color:var(--gold)}.c-blue{color:var(--blue)}.c-purple{color:var(--purple)}.c-cyan{color:var(--cyan)}.c-pink{color:var(--pink)}

/* ============ Panel ============ */
.panel{background:linear-gradient(180deg,rgba(16,16,24,.82),rgba(16,16,24,.5));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow-card);transition:all .25s ease}
/* ══ v112(老板: 科幻金属融合) —— 面板升级为「合金装甲」质感:
   ① 顶部一道冷白合金高光线(金属切边)
   ② 内侧一圈极淡金属反光(rgb 蓝白)
   都不新增 DOM, 纯伪元素; 不遮挡内容 ══ */
.panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,transparent 4%,var(--hw-metal-hi) 30%,rgba(255,255,255,.36) 50%,var(--hw-metal-hi) 70%,transparent 96%) }
.panel::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;border-radius:inherit;
  background:linear-gradient(180deg,rgba(77,124,254,.045),transparent 22%)}
.panel:hover{border-color:rgba(255,255,255,.1)}
.panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:8px;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.panel-head h3{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--txt)}
.panel-head h3 .tag{font-size:10px;padding:2px 8px;border-radius:8px;font-weight:500}
.panel-head .controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.panel-head .controls button{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--sub);font-size:11px;padding:4px 11px;border-radius:6px;cursor:pointer;transition:all .18s;font-family:var(--mono)}
.panel-head .controls button:hover{border-color:var(--purple);color:var(--txt);background:rgba(77,124,254,.08);transform:translateY(-1px)}
.panel-head .controls button.on{background:var(--purple-bg);border-color:var(--purple);color:var(--purple)}
.trades-filter{display:flex;gap:6px}
.tf-btn{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--sub);font-size:11px;padding:4px 10px;border-radius:6px;cursor:pointer;transition:all .2s}
.tf-btn:hover{border-color:var(--purple);color:var(--txt)}
.tf-btn.active{background:var(--purple-bg);border-color:var(--purple);color:var(--purple)}
.panel-body{padding:0}
.panel-body.padded{padding:14px 18px}

/* GMGN Panel Theme */
.gmgn-panel{border-color:rgba(77,124,254,.25);background:linear-gradient(170deg,rgba(77,124,254,.05),rgba(16,16,24,.6) 40%)}
.gmgn-panel .panel-head{border-bottom-color:rgba(77,124,254,.12)}
.gmgn-panel .panel-head h3{color:var(--purple)}

/* ============ v120.4 GMGN 链上卡片墙 (2026-09-18) ============
   与飞书卡片同源不同形: 网页原生卡片流, 链上语汇(池深/税/滑点/MEV/gas) */
.gmgn-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px;padding:4px 0}
.gmgn-tcard{position:relative;border-radius:14px;padding:13px 15px 12px;border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(160deg,rgba(77,124,254,.09),rgba(14,14,22,.72) 55%);
  transition:all .24s cubic-bezier(.4,0,.2,1);overflow:hidden;cursor:default}
.gmgn-tcard:hover{transform:translateY(-3px);border-color:rgba(77,124,254,.42);box-shadow:0 10px 28px -10px rgba(77,124,254,.35)}
.gmgn-tcard::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px;background:var(--tc,var(--purple));opacity:.9}
.gmgn-tcard.win{--tc:var(--up)}
.gmgn-tcard.loss{--tc:var(--down)}
.gmgn-tcard.partial{--tc:var(--gold)}
.gmgn-tcard.open{--tc:var(--purple)}
.gmgn-tcard .tc-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.gmgn-tcard .tc-sym{font-weight:700;font-size:14px;letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gmgn-tcard .tc-tag{font-size:10px;font-weight:700;padding:2.5px 8px;border-radius:7px;letter-spacing:.02em;flex:0 0 auto}
.gmgn-tcard .tc-pnl{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}
.gmgn-tcard .tc-sub{font-size:10.5px;color:var(--dim);margin-top:2px;font-variant-numeric:tabular-nums}
.gmgn-tcard .tc-row{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--sub);margin-top:5px;font-variant-numeric:tabular-nums}
.gmgn-tcard .tc-row b{color:var(--txt);font-weight:600}
.gmgn-tcard .tc-fees{margin-top:8px;padding-top:7px;border-top:1px dashed rgba(255,255,255,.09);font-size:10.5px;color:var(--dim);line-height:1.55}
.gmgn-tcard .tc-reason{margin-top:7px;font-size:10.5px;color:var(--sub);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gmgn-tcard .tc-logo{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:rgba(255,255,255,.06)}
.gmgn-tcard .tc-link{position:absolute;inset:0;z-index:2}
.gmgn-wall-empty{grid-column:1/-1;text-align:center;color:var(--dim);font-size:12px;padding:26px 0}

/* ============ Grid Layouts ============ */
.grid-dual{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.grid-3-1{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px;align-items:stretch}
.grid-1-1{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
.grid-2-1{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:16px;align-items:stretch}
@media(max-width:1400px){.kpi-row{grid-template-columns:repeat(3,1fr)}.grid-3-1,.grid-2-1,.grid-1-1{grid-template-columns:1fr}}
@media(max-width:1200px){.grid-dual{grid-template-columns:1fr}}
/* ============ v102 精修 ============ */
@media(max-width:1500px){.kpi-row{grid-template-columns:repeat(3,1fr)}.kpi .value{font-size:21px}}
@media(max-width:1440px){.dual-zone{grid-template-columns:1fr 1fr;gap:14px}.content{padding:16px 18px}}
@media(max-width:1280px){.dual-zone{grid-template-columns:1fr}.chart-wrap{max-width:100%;height:300px}}
@media(max-width:768px){.kpi-row{grid-template-columns:repeat(2,1fr);gap:8px}
.content{padding:12px}.topbar{padding:0 14px}.zone-block{padding:12px}.chart-wrap{height:260px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ============ Chart ============ */
.chart-wrap{position:relative;height:336px;background:linear-gradient(180deg,rgba(77,124,254,.02),transparent);border-radius:var(--radius);overflow:hidden}
.chart-wrap.tall{height:440px}
.chart-wrap svg{width:100%;height:100%}
.chart-info{position:absolute;top:12px;left:16px;z-index:5;pointer-events:none}
.chart-info .sym{font-size:18px;font-weight:700;font-family:var(--mono);letter-spacing:-.02em}
.chart-info .price{font-size:24px;font-weight:700;font-family:var(--mono);margin-top:4px;letter-spacing:-.02em}
.chart-info .change{font-size:13px;font-weight:600;margin-top:4px}

/* ============ Table ============ */
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);white-space:nowrap}
th.r,td.r{text-align:right}
td{padding:11px 14px;font-size:13px;font-family:var(--mono);border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap;font-weight:500;color:var(--txt)}
tbody tr{transition:background .18s ease}
tbody tr:hover{background:rgba(77,124,254,.07)}
tbody tr:last-child td{border-bottom:none}
.coin{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.coin-logo{width:20px;height:20px;border-radius:50%;flex-shrink:0;object-fit:cover;background:var(--bg4)}
.coin-fallback{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}
.side-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.side-tag.long{background:var(--up-bg);color:var(--up)}
.side-tag.short{background:var(--down-bg);color:var(--down)}
.lev{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--bg4);color:var(--sub);font-size:11px;font-weight:600}
.lev.hi{background:var(--gold-bg);color:var(--gold);border:1px solid rgba(77,124,254,.2)}
.strat-tag{font-size:11px;padding:2px 8px;border-radius:4px;background:var(--bg4);color:var(--sub);font-family:var(--sans)}

/* ============ Strategy Cards ============ */
.strat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.strat-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:16px;text-align:center;transition:all .25s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);position:relative;overflow:hidden}
.strat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--purple),var(--pink));opacity:0;transition:opacity .25s}
.strat-card:hover{border-color:rgba(77,124,254,.3);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.strat-card:hover::before{opacity:.8}
.strat-card .name{font-size:12px;font-weight:700;margin-bottom:4px}
.strat-card .status{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;display:inline-block}
.strat-card .status.active{background:var(--ok-bg);color:var(--ok)}
.strat-card .status.paused{background:var(--gold-bg);color:var(--gold)}
.strat-card .status.killed{background:var(--err-bg);color:var(--err)}

/* ============ Trade List ============ */
.trade-list{max-height:320px;overflow-y:auto}
.trade-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px;transition:background .18s ease}
.trade-item:hover{background:rgba(77,124,254,.07)}
.trade-item:last-child{border-bottom:none}
.trade-item .time{color:var(--dim);font-family:var(--mono);font-size:11px;min-width:50px}
.trade-item .inst{font-weight:600;min-width:80px;cursor:pointer}
.trade-item .inst:hover{color:var(--purple)}
.trade-item .type{font-size:10px;padding:2px 7px;border-radius:4px;font-weight:600}
.trade-item .type.open{background:var(--up-bg);color:var(--up)}
.trade-item .type.close-win{background:var(--up-bg);color:var(--up)}
.trade-item .type.close-loss{background:var(--down-bg);color:var(--down)}
.trade-item .type.partial{background:var(--purple-bg);color:var(--purple)}
.trade-item .pnl{margin-left:auto;font-weight:700;font-family:var(--mono)}
.trade-item .pnl.pos{color:var(--up)}.trade-item .pnl.neg{color:var(--down)}
.trade-item .reason{color:var(--dim);font-size:11px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============ Risk ============ */
.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.risk-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:15px 14px;text-align:center;transition:all .2s}
.risk-item:hover{border-color:rgba(77,124,254,.28);transform:translateY(-1px)}
.risk-item .rl{font-size:11px;color:var(--sub);margin-bottom:4px}
.risk-item .rv{font-size:18px;font-weight:700;font-family:var(--mono)}
.rv.ok{color:var(--ok)}.rv.bad{color:var(--err)}
.guard-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:10px}
.guard-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px 12px;font-size:11px;transition:border-color .2s}
.guard-item:hover{border-color:rgba(255,255,255,.12)}
.guard-item .gn{font-weight:600;color:var(--sub);display:flex;align-items:center;gap:5px}
.guard-item .gd{color:var(--dim);font-size:10px;margin-top:2px}
.guard-item .gs{width:5px;height:5px;border-radius:50%;background:var(--ok);box-shadow:0 0 4px rgba(0,224,168,.5);flex-shrink:0}
.blacklist{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.bl-chip{font-size:11px;background:var(--err-bg);color:var(--err);padding:2px 8px;border-radius:4px;border:1px solid rgba(255,77,107,.2);font-family:var(--mono);display:inline-flex;align-items:center;gap:4px}

/* ============ Log ============ */
.log-box{background:#08080e;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;max-height:220px;overflow-y:auto;font-family:var(--mono);font-size:11px;line-height:1.8}
.log-line{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.log-line .ts{color:#3a3a5a;margin-right:6px}
.log-line .lv-INFO{color:var(--cyan)}.log-line .lv-WARN{color:var(--gold)}.log-line .lv-ERROR{color:var(--err);font-weight:600}

/* ============ Equity Chart ============ */
.equity-chart{height:168px;position:relative}
#equityChart{width:100%;height:100%}

/* ============ Report ============ */
.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.report-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px}
.report-card .rc-title{font-size:12px;font-weight:600;color:var(--sub);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.report-card .rc-val{font-size:18px;font-weight:700;font-family:var(--mono)}

/* ============ Architecture ============ */
.dept-block{margin-bottom:8px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s}
.dept-block:hover{border-color:rgba(255,255,255,.08)}
.dept-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;user-select:none;transition:all .2s}
.dept-head:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.05)}
.dept-head .dn{font-weight:700;font-size:12px;color:var(--txt)}
.dept-head .dd{font-size:11px;color:var(--sub);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dept-head .arrow{font-size:10px;color:var(--dim);transition:transform .2s;margin-left:auto}
.dept-block.open .dept-head .arrow{transform:rotate(180deg)}
.dept-body{display:none;border:1px solid rgba(255,255,255,.04);border-top:none;border-radius:0 0 8px 8px;padding:12px;background:rgba(11,14,19,.93)}
.dept-block.open .dept-body{display:block;animation:fadeIn .25s}

/* ============ Health ============ */
.health-item{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.health-item:last-child{border-bottom:none}
.health-item .ht{font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}
.health-item .hd{font-size:11px;color:var(--dim);margin-top:3px;padding-left:18px}

/* ============ Ticker ============ */
.ticker{background:linear-gradient(180deg,var(--bg2),var(--bg));border-top:1px solid rgba(255,255,255,.04);padding:6px 20px;font-size:11px;color:var(--dim);font-family:var(--mono);overflow:hidden;white-space:nowrap;flex-shrink:0}
.ticker span{display:inline-block;animation:tickerScroll 30s linear infinite}
@keyframes tickerScroll{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}

/* ============ Tabs ============ */
.tab-page{display:none}.tab-page.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes cmdIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}

/* ============ Empty State ============ */
.empty{text-align:center;padding:32px;color:var(--dim);font-size:12px}
.empty .icon{width:28px;height:28px;opacity:.4;display:block;margin:0 auto 8px}

/* ============ Ctrl+K Command Palette ============ */
.cmd-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;align-items:flex-start;justify-content:center;padding-top:15vh}
.cmd-overlay.open{display:flex}
.cmd-box{width:560px;max-width:92vw;background:var(--bg2);border:1px solid var(--border2);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 0 1px rgba(77,124,254,.08);overflow:hidden;animation:cmdIn .18s ease}
.cmd-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.cmd-input-wrap .icon{color:var(--dim)}
.cmd-input{flex:1;background:none;border:none;color:var(--txt);font-size:14px;font-family:var(--sans);outline:none}
.cmd-input::placeholder{color:var(--dim)}
.cmd-results{max-height:320px;overflow-y:auto;padding:6px}
.cmd-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--sub);transition:all .12s}
.cmd-item:hover,.cmd-item.active{background:var(--purple-bg);color:var(--txt)}
.cmd-item .cmd-icon{width:16px;height:16px;opacity:.5}
.cmd-item .cmd-label{flex:1}
.cmd-item .cmd-key{font-size:10px;color:var(--dim);font-family:var(--mono);padding:2px 6px;background:var(--bg4);border-radius:4px}
.cmd-kbd{font-size:10px;color:var(--dim);font-family:var(--mono);padding:2px 6px;background:var(--bg3);border:1px solid var(--border);border-radius:4px}

/* ============ GMGN Badge Row ============ */
.badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gmgn-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}
.gmgn-badge.safe{background:var(--ok-bg);color:var(--ok);border:1px solid rgba(0,224,168,.2)}
.gmgn-badge.tp{background:var(--cyan-bg);color:var(--cyan);border:1px solid rgba(77,124,254,.2)}
.gmgn-badge.sl{background:var(--gold-bg);color:var(--gold);border:1px solid rgba(77,124,254,.2)}
.gmgn-badge.cb{background:var(--pink-bg);color:var(--pink);border:1px solid rgba(228,76,255,.2)}

/* ============ Equity Period Btns ============ */
.eq-btns{display:flex;gap:4px}
.eq-btns button{background:var(--bg3);border:1px solid var(--border);color:var(--sub);font-size:10px;padding:2px 8px;border-radius:4px;cursor:pointer;font-family:var(--mono);transition:all .15s}
.eq-btns button:hover{border-color:var(--purple);color:var(--txt)}
.eq-btns button.on{background:var(--purple-bg);border-color:var(--purple);color:var(--purple)}

/* ============ v105 仪表盘美化 (2026-09-03) ============ */
/* 入场动画 */
@keyframes riseIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tab-page.active .panel{animation:riseIn .4s cubic-bezier(.22,.9,.3,1) both}
.tab-page.active .panel:nth-child(2){animation-delay:.05s}
.tab-page.active .panel:nth-child(3){animation-delay:.1s}
/* KPI 呼吸光晕 */
.kpi{transition:all .3s cubic-bezier(.3,.9,.3,1)}
.kpi::after{filter:blur(8px);opacity:0;transition:opacity .4s}
.kpi:hover{transform:translateY(-3px) scale(1.015)}
.kpi:hover::after{opacity:.85}
.kpi .value{transition:color .3s}
/* 数字跳动感 (等宽 + 光晕字) */
.kpi .value{text-shadow:0 0 24px rgba(255,255,255,.07)}
.kpi.up .value{text-shadow:0 0 28px rgba(0,230,173,.24)}
.kpi.down .value{text-shadow:0 0 28px rgba(255,77,107,.26)}
.kpi.gold .value{text-shadow:0 0 28px rgba(77,124,254,.24)}
.kpi.purple .value{text-shadow:0 0 28px rgba(77,124,254,.30)}
/* 仪表盘副网格 */
.dash-sub{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;align-items:stretch}
.dash-sub-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:16px}
@media(max-width:1200px){.dash-sub,.dash-sub-3{grid-template-columns:1fr}}
/* 迷你进度条 / 条状图 */
.meter{height:6px;border-radius:4px;background:var(--bg4);overflow:hidden;position:relative}
.meter .fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--purple),var(--pink));transition:width .6s cubic-bezier(.3,.9,.3,1);position:relative}
.meter .fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);animation:meterSweep 2.2s ease-in-out infinite}
@keyframes meterSweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.meter.up .fill{background:linear-gradient(90deg,#0b6b52,var(--up))}
.meter.down .fill{background:linear-gradient(90deg,#8c1f33,var(--down))}
.meter.gold .fill{background:linear-gradient(90deg,#a87f08,var(--gold))}
.meter.cyan .fill{background:linear-gradient(90deg,#0090b0,var(--cyan))}
.meter.pink .fill{background:linear-gradient(90deg,#a02cb8,var(--pink))}
/* 仪表盘数值条行 (标签+值) */
.dash-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;font-size:12px}
.dash-row .dl{color:var(--sub);display:flex;align-items:center;gap:6px;font-size:12px}
.dash-row .dv{font-family:var(--mono);font-weight:600;font-size:13px}
/* 热力小方格 */
.heat-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;margin-top:8px}
.heat-cell{aspect-ratio:1;border-radius:3px;background:rgba(77,124,254,.06);transition:all .2s;position:relative}
.heat-cell:hover{transform:scale(1.3);z-index:2;box-shadow:0 0 12px rgba(77,124,254,.4)}
.heat-cell[data-lv="1"]{background:rgba(0,230,173,.18)}
.heat-cell[data-lv="2"]{background:rgba(0,230,173,.4)}
.heat-cell[data-lv="3"]{background:rgba(77,124,254,.55)}
.heat-cell[data-lv="4"]{background:rgba(228,76,255,.75)}
.heat-cell[data-lv="5"]{background:rgba(255,77,107,.9)}
.heat-x{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;margin-top:4px;font-size:8px;color:var(--dim);text-align:center}
.heat-x span:nth-child(3n){color:#3f3b63}
/* v110.22: 热力盘摘要区 —— 填充空间且提供真实信息(峰值时段/总量/分布) */
.heat-sum{margin-top:16px;padding-top:14px;border-top:1px solid var(--hw-border)}
.heat-sum .hs-top{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.heat-sum .hs-big{font-size:22px;font-weight:700;font-family:var(--mono);letter-spacing:-.02em;color:var(--hw-text)}
.heat-sum .hs-cap{font-size:10.5px;color:var(--hw-muted);letter-spacing:.09em;text-transform:uppercase}
.heat-sum .hs-rows{display:flex;flex-direction:column;gap:7px}
.heat-sum .hs-row{display:flex;align-items:center;gap:9px;font-size:11.5px}
.heat-sum .hs-k{width:52px;color:var(--hw-muted);font-family:var(--mono);flex:0 0 auto}
.heat-sum .hs-track{flex:1;height:7px;background:rgba(255,255,255,.05);border-radius:4px;overflow:hidden}
.heat-sum .hs-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,rgba(14,116,144,.5),var(--hw-accent-cyan))}
.heat-sum .hs-v{width:42px;text-align:right;font-family:var(--mono);color:var(--hw-text);flex:0 0 auto}
.heat-day{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px}
.heat-day .hd-date{width:46px;color:var(--dim);font-family:var(--mono);flex-shrink:0}
.heat-day .hd-bar{flex:1;height:14px;border-radius:4px;background:var(--bg4);overflow:hidden;display:flex}
.heat-day .hd-bar .sg{height:100%;transition:width .5s}
.heat-day .hd-bar .sg.o{background:linear-gradient(90deg,rgba(77,124,254,.35),rgba(77,124,254,.7))}
.heat-day .hd-bar .sg.cp{background:linear-gradient(90deg,rgba(0,230,173,.35),rgba(0,230,173,.75))}
.heat-day .hd-bar .sg.cl{background:linear-gradient(90deg,rgba(255,77,107,.4),rgba(255,77,107,.8))}
.heat-day .hd-nums{width:110px;text-align:right;font-family:var(--mono);font-size:10px;color:var(--sub);flex-shrink:0}
.heat-legend{display:flex;gap:14px;margin-top:10px;font-size:10px;color:var(--dim);align-items:center}
.heat-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;margin-right:4px;vertical-align:-1px}
/* 分布柱 */
.dist-row{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:11px}
.dist-row .db-label{width:74px;text-align:right;color:var(--sub);font-family:var(--mono);flex-shrink:0;font-size:10px}
.dist-row .db-track{flex:1;height:16px;background:rgba(255,255,255,.03);border-radius:4px;overflow:hidden;position:relative}
.dist-row .db-fill{height:100%;border-radius:4px;transition:width .7s cubic-bezier(.3,.9,.3,1)}
.dist-row .db-count{width:30px;font-family:var(--mono);color:var(--dim);font-size:10px}
.dist-row.win .db-fill{background:linear-gradient(90deg,rgba(0,230,173,.45),var(--up))}
.dist-row.loss .db-fill{background:linear-gradient(90deg,rgba(255,77,107,.55),var(--down))}
/* 环形进度 (SVG) */
.ring-wrap{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:6px}
.ring{position:relative;width:120px;height:120px}
.ring svg{transform:rotate(-90deg)}
.ring .ring-bg{stroke:rgba(255,255,255,.05)}
.ring .ring-fg{stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.3,.9,.3,1);filter:drop-shadow(0 0 6px currentColor)}
.ring .ring-cv{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}
.ring .ring-cv b{font-size:26px;font-family:var(--mono);line-height:1.1}
.ring .ring-cv span{font-size:10px;color:var(--dim)}
/* 市场行情 ticker 网格 */
.mkt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.mkt-cell{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:10px 12px;transition:all .22s;cursor:pointer}
.mkt-cell:hover{border-color:rgba(77,124,254,.35);transform:translateY(-2px);background:rgba(77,124,254,.05)}
.mkt-cell .mk-top{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.mkt-cell .mk-px{font-family:var(--mono);font-size:15px;font-weight:700;margin-top:4px}
.mkt-cell .mk-chg{font-family:var(--mono);font-size:11px;font-weight:600;margin-top:1px}
.mkt-cell.up .mk-chg{color:var(--up)}.mkt-cell.down .mk-chg{color:var(--down)}
/* V2 §10 市场深度: 数据可视化用条形只承载信息(非装饰), 无发光/无渐变 */
.md-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.md-chip{font-size:11px;font-weight:600;padding:3px 11px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--sub);cursor:pointer;transition:color .18s,border-color .18s}
.md-chip:hover{color:var(--txt);border-color:var(--border2)}
.md-chip.on{color:var(--gold);border-color:rgba(77,124,254,.45);background:var(--gold-bg)}
.md-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:8px;margin-bottom:14px}
.md-stat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 10px;min-width:0}
.md-stat .k{font-size:10px;color:var(--hw-dim);letter-spacing:.08em;text-transform:uppercase}
.md-stat .v{font-family:var(--mono);font-size:14px;font-weight:700;margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.md-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.md-col{min-width:0}
.md-cap{font-size:11px;color:var(--sub);margin-bottom:5px;letter-spacing:.04em}
.md-row{position:relative;display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:3px;overflow:hidden}
.md-row .bg{position:absolute;inset:0;border-radius:3px;opacity:.16}
.md-row span{position:relative;z-index:1}
.md-row .p{font-weight:600}
.md-row .s{color:var(--sub)}
.md-trade-side{font-weight:700}
@media(max-width:820px){.md-cols{grid-template-columns:1fr}}
/* V2 §7 设置页 */
.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.set-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.set-k{font-size:12px;color:var(--sub)}
.set-v{font-family:var(--mono);font-size:13px;font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis}
.set-strat{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid rgba(255,255,255,.05);flex-wrap:wrap}
.set-strat:last-child{border-bottom:none}
.set-strat .sn{font-weight:600;font-size:12.5px;min-width:96px}
.set-strat .si{font-size:11px;color:var(--hw-dim);font-family:var(--mono)}
.set-strat .sl{font-size:11px;color:var(--gold);font-family:var(--mono)}
.set-note{font-size:11px;color:var(--hw-dim);margin-top:12px;line-height:1.6}
/* 大数字 KPI 组 (风控仪表) */
.risk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.risk-kpi{background:linear-gradient(160deg,rgba(255,255,255,.04),transparent);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:14px;position:relative;overflow:hidden;transition:all .25s}
.risk-kpi:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.12)}
.risk-kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--rk,var(--purple));opacity:.7}
.risk-kpi .rk-l{font-size:11px;color:var(--sub);display:flex;align-items:center;gap:6px;margin-bottom:6px}
.risk-kpi .rk-v{font-size:24px;font-weight:800;font-family:var(--mono);line-height:1.1}
.risk-kpi .rk-s{font-size:10px;color:var(--dim);margin-top:5px}
.risk-kpi.good{--rk:var(--ok)}.risk-kpi.bad{--rk:var(--err)}.risk-kpi.warn{--rk:var(--gold)}.risk-kpi.info{--rk:var(--cyan)}
/* v140: 盈亏专用(红涨绿跌) — 与状态 good/bad 区分 */
.risk-kpi.pup{--rk:var(--up)}.risk-kpi.pdn{--rk:var(--down)}
.risk-kpi.good .rk-v{color:var(--ok)}.risk-kpi.bad .rk-v{color:var(--err)}.risk-kpi.warn .rk-v{color:var(--gold)}
.risk-kpi.pup .rk-v{color:var(--up)}.risk-kpi.pdn .rk-v{color:var(--down)}
.risk-kpi.info .rk-v{color:var(--cyan)}
/* 徽章态 */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid}
.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:rgba(0,230,173,.25)}
.pill.warn{background:var(--gold-bg);color:var(--gold);border-color:rgba(77,124,254,.25)}
.pill.bad{background:var(--err-bg);color:var(--err);border-color:rgba(255,77,107,.25)}
.pill.info{background:var(--cyan-bg);color:var(--cyan);border-color:rgba(77,124,254,.25)}
.pill.purple{background:var(--purple-bg);color:var(--purple);border-color:rgba(77,124,254,.3)}
/* 策略对比 mini表 */
.cmp-table td,.cmp-table th{padding:8px 10px;font-size:12px}
.cmp-table .strat-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:6px;box-shadow:0 0 6px currentColor}
.cmp-bar{height:5px;border-radius:3px;background:var(--bg4);overflow:hidden;min-width:70px}
.cmp-bar .fill{height:100%;border-radius:3px;transition:width .6s}
/* 迷你竖排进度分格 (策略健康) */
.seg5{display:flex;gap:3px;height:8px}
.seg5 i{flex:1;border-radius:2px;background:var(--bg4);transition:all .4s}
.seg5 i.on{background:currentColor;box-shadow:0 0 8px currentColor}
/* 顶栏玻璃拟态加亮 */
.topbar{background:rgba(13,13,22,.6);box-shadow:0 1px 0 rgba(77,124,254,.06)}
/* 表格行更精致 */
tbody tr{position:relative}
tbody tr:hover{background:linear-gradient(90deg,rgba(77,124,254,.08),rgba(77,124,254,.02))}
/* 资产条细化 */
.asset-bar{border-bottom:1px solid rgba(77,124,254,.08)}
.ab-item .ab-val{text-shadow:0 0 10px rgba(255,255,255,.06)}
/* zone-block 顶部辉光条 */
.zone-block{position:relative}
.zone-block::after{content:'';position:absolute;top:0;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,var(--purple),transparent);opacity:0;transition:opacity .5s}
.zone-block:hover::after{opacity:.5}
.zone-block.cex::after{background:linear-gradient(90deg,transparent,rgba(77,124,254,.7),transparent)}
.zone-block.gmgn::after{background:linear-gradient(90deg,transparent,rgba(77,124,254,.8),transparent)}

/* ====== SI 情报中枢 (v105.11 老板: 主页动态地球+情报汇聚) ====== */
.ai-hq{position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,rgba(14,10,34,.92),rgba(4,7,22,.95) 45%,rgba(2,4,14,.97));border:1px solid rgba(77,124,254,.28);box-shadow:0 0 34px rgba(77,124,254,.14),inset 0 0 60px rgba(30,10,80,.25);margin-bottom:14px}
.ai-hq::before{content:'';position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(120deg,transparent 20%,rgba(77,124,254,.5),rgba(77,124,254,.35),transparent 80%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;animation:hqBorder 5s linear infinite}
@keyframes hqBorder{0%{filter:hue-rotate(0)}100%{filter:hue-rotate(360deg)}}
.ai-hq-grid{display:grid;grid-template-columns:420px 1fr;gap:0;min-height:330px}
@media(max-width:1100px){.ai-hq-grid{grid-template-columns:1fr}}
.ai-earth-wrap{position:relative;display:flex;align-items:center;justify-content:center;padding:6px;border-right:1px solid rgba(77,124,254,.15)}
@media(max-width:1100px){.ai-earth-wrap{border-right:0;border-bottom:1px solid rgba(77,124,254,.15)}}
#aiEarth{width:100%;height:330px;display:block}
.ai-earth-tag{position:absolute;top:10px;left:14px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:1px;color:#9BB4FF;background:rgba(20,10,50,.55);border:1px solid rgba(77,124,254,.3);padding:4px 10px;border-radius:20px;backdrop-filter:blur(4px)}
.ai-earth-tag .dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399;animation:dotPulse 1.6s ease infinite}
@keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.ai-intel-stream{display:flex;flex-direction:column;min-width:0;padding:14px 16px 10px}
.ai-stream-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.ai-stream-title{font-size:14px;font-weight:800;background:linear-gradient(90deg,#9BB4FF,#4D7CFE);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}
.ai-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:12px;border:1px solid}
.ai-badge.ai{color:#9BB4FF;border-color:rgba(232,207,138,.45);background:rgba(232,207,138,.1)}
.ai-badge.rules{color:#9ca3af;border-color:rgba(140,150,190,.4);background:rgba(140,150,190,.08)}
.ai-scanline{flex:1;overflow:hidden;position:relative;font-size:10px;color:#64748b;letter-spacing:1.6px;white-space:nowrap;text-align:right}
.ai-scanline span{display:inline-block;animation:scanMove 14s linear infinite}
@keyframes scanMove{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.ai-events{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:6px;margin-top:6px;min-height:0;position:relative}
.ai-ev{display:flex;gap:9px;align-items:flex-start;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.05);position:relative;overflow:hidden}
.ai-ev.new{animation:evFlash 1.4s ease both}
@keyframes evIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes evFlash{0%{box-shadow:0 0 0 rgba(77,124,254,0)}25%{box-shadow:0 0 22px rgba(77,124,254,.55)}100%{box-shadow:0 0 0 rgba(77,124,254,0)}}
.ai-ev::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--evc,#9ca3af)}
.ai-ev .lv{font-size:10px;font-weight:800;color:var(--evc,#9ca3af);background:rgba(8,8,14,.62);border:1px solid var(--evc,#9ca3af);border-radius:5px;padding:0 5px;flex:0 0 auto;margin-top:1px;text-shadow:0 0 8px var(--evc,#9ca3af);box-shadow:0 0 9px -3px var(--evc,#9ca3af)}
.ai-ev .bd{min-width:0;flex:1}
.ai-ev .tt{font-size:12.5px;font-weight:600;color:var(--txt);line-height:1.35;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.ai-ev .sm{font-size:11px;color:#8892a6;margin-top:2px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ai-ev .meta{font-size:10px;color:#5b6478;margin-top:3px;display:flex;gap:8px;align-items:center}
.ai-ev .dir-up{color:#4ade80;font-weight:700}
.ai-ev .dir-down{color:#FF6B8A;font-weight:700}
.ai-ev .dir-flat{color:#9ca3af}
.ai-ev .scan-bar{display:none}
@keyframes evScan{0%{left:-50px}100%{left:110%}}
.ai-empty{color:#5b6478;font-size:12px;text-align:center;padding:26px 0;letter-spacing:1px}
.ai-ev-more{font-size:11px;color:#4D7CFE;text-align:right;padding:4px 2px 0;cursor:pointer}
.ai-ev-more:hover{color:#9BB4FF}
.ai-earth-legend{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:10px;color:#7c86a0;letter-spacing:2px;pointer-events:none}

/* ====== v105.12 主页布局: 紧凑KPI + K线放大 (老板 2026-09-05) ====== */
.zone-block .kpi-row{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}
/* v111fe(审计M2): 移动端 2 列 — 必须放在本行之后(媒体查询不增特异性, 放前面会被本行同特异性反压) */
@media(max-width:768px){.zone-block .kpi-row{grid-template-columns:repeat(2,1fr)}}
.zone-block .kpi{padding:8px 12px 7px;border-radius:10px}
.zone-block .kpi .label{font-size:10px;margin-bottom:3px}
.zone-block .kpi .value{font-size:16px}
.zone-block .kpi .sub{font-size:10px;margin-top:2px}
@media(min-width:1600px){.zone-block .kpi-row{grid-template-columns:repeat(6,1fr)}}
/* K线整行放大, 权益曲线改矮横条 */
.zone-block .grid-1-1{grid-template-columns:1fr;gap:9px}
.zone-block .chart-wrap{height:368px}
.equity-chart{height:118px}
.ai-hq-grid{min-height:300px}
@media(max-width:1100px){.ai-hq-grid{min-height:auto}}

/* ====== v105.16 分析区精修 ====== */
.ai-ev{transition:border-color .25s,background .25s,transform .2s}
.ai-ev:hover{border-color:rgba(240,246,255,.32);background:rgba(226,236,250,.055);transform:translateX(2px)}
.ai-ev .tt{letter-spacing:.1px}
.ai-stream-head{border-bottom:1px solid rgba(77,124,254,.08);padding-bottom:6px}
.ai-hq-time{font-size:10px;color:#556080;margin-left:auto;display:flex;align-items:center;gap:5px;white-space:nowrap}
.ai-hq-time .pulse{width:5px;height:5px;border-radius:50%;background:#34d399;box-shadow:0 0 6px #34d399;animation:dotPulse 1.6s ease infinite;display:inline-block}
.ai-ev-more{transition:color .2s;letter-spacing:.4px}
.ai-ev-more:hover{color:#9BB4FF;text-decoration:underline}
.ai-empty{letter-spacing:.6px}

/* ====== v105.17 全站细节打磨包(1): 滚动条/表格/面板/按钮/KPI/防跳动 ====== */
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-corner{background:transparent}
.content tbody tr{transition:background .15s}
.content tbody tr:hover{background:rgba(77,124,254,.055)}
.content th{letter-spacing:.4px;font-weight:600}
.panel{transition:border-color .25s, box-shadow .25s}
.panel:hover{border-color:rgba(77,124,254,.17)}
button:focus-visible,a:focus-visible{outline:2px solid rgba(77,124,254,.65);outline-offset:2px;border-radius:6px}
::selection{background:rgba(77,124,254,.35);color:#fff}
button{transition:background .18s,color .18s,border-color .18s,opacity .18s,transform .12s}
button:active{transform:translateY(1px)}
.kpi{transition:border-color .22s, transform .22s, box-shadow .22s, background .22s}
.kpi:hover{border-color:rgba(77,124,254,.42);transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.42),0 0 18px -8px rgba(77,124,254,.45)}
.r{font-variant-numeric:tabular-nums}
.kpi-row{min-height:62px}
#posBody{min-height:28px}
.asset-bar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.side-tag,.strat-tag,.lev{letter-spacing:.2px}
.gmgn-badge,.ai-badge{letter-spacing:.3px}

.site-footer{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 20px 22px;font-size:10.5px;color:#4a5370;letter-spacing:.6px;flex-wrap:wrap}
.site-footer .dot-sep{width:3px;height:3px;border-radius:50%;background:#3a4160;display:inline-block;flex:0 0 auto}
/* ====== v105.22 第二波修复: 断连状态/gray KPI/静态守卫/守卫管线去伪状态 ====== */
.conn-dot.off{background:var(--gold);box-shadow:0 0 6px rgba(77,124,254,.5);animation:none}
.conn-dot.down{background:var(--err);box-shadow:0 0 6px rgba(255,77,107,.55);animation:none}
.kpi.gray{--accent:#8b8fa8;border-color:rgba(139,143,168,.22)}
.kpi.gray .value{text-shadow:none}
.kpi.gray:hover{border-color:rgba(139,143,168,.4)}
.c-gray{color:#8b8fa8}
.pill.static{background:var(--bg4);color:var(--dim);border-color:rgba(255,255,255,.08)}
/* 守卫卡=静态配置语义(接口无在线状态字段), 不用绿色"在线"伪状态 */
.guard-item .gs{background:#565e7c;box-shadow:none}
.gd-card .gs-dot{width:5px;height:5px;border-radius:50%;background:#565e7c;display:inline-block;flex-shrink:0}
/* ============ v107.6 质感细节层 (09-06 老板: 全方位高级感) ============ */
body{font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility}
:focus-visible{outline:2px solid rgba(77,124,254,.75);outline-offset:2px;border-radius:5px}
/* 面板: 顶部高光线 + 悬停微抬升(仅支持hover的设备) */
.panel::before{content:'';position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);pointer-events:none;opacity:.7}
.panel{position:relative}
@media(hover:hover){
  .panel:hover{transform:translateY(-1px);border-color:rgba(77,124,254,.24);box-shadow:0 14px 40px rgba(0,0,0,.45),0 0 0 1px rgba(77,124,254,.10),inset 0 1px 0 rgba(77,124,254,.14)}
  .risk-kpi:hover,.kpi-card:hover{border-color:rgba(77,124,254,.32);transform:translateY(-1px);box-shadow:0 8px 26px rgba(0,0,0,.3)}
}
/* 表格行悬停提示(面板内) */
.panel table tbody tr{transition:background .15s}
.panel table tbody tr:hover{background:rgba(77,124,254,.05)}
/* 表头细区分线 */
.panel table thead th{letter-spacing:.04em;text-transform:none}
/* 风险KPI 数值层级 */
.risk-kpi .rk-v{font-weight:800;letter-spacing:-.01em}
/* 币logo 圆底光晕 */
.coin-logo{box-shadow:0 0 0 1px rgba(255,255,255,.09),0 2px 8px rgba(0,0,0,.25)}
/* 数字徽标/小标签 更润 */
.pill,.tag{border:1px solid rgba(255,255,255,.07)}
/* 情报/事件卡片 hover 微动 */
.ai-ev,.ai-hq .x-card{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
@media(hover:hover){.ai-ev:hover{transform:translateX(2px)}}
/* v107.7 地球↔卡片联动高亮 */
.ai-ev.linked{border-color:rgba(236,243,255,.62)!important;background:linear-gradient(90deg,rgba(226,236,250,.15),rgba(226,236,250,.05))!important;box-shadow:0 0 0 1px rgba(236,243,255,.24),0 0 22px rgba(77,124,254,.13);transform:translateX(3px)}
.ai-ev.linked::before{box-shadow:0 0 12px var(--evc,#4D7CFE)}
/* v111(CSS 卫生): 主色滚动条在此处曾被重复定义 3 次, 只保留最终版(见文件末) */
/* 连接状态点 呼吸更轻 */
.conn-dot.on{box-shadow:0 0 0 3px rgba(0,230,173,.12)}
/* 面板标题字距与层级 */
.panel-head h3{letter-spacing:.015em}
.panel-head h3 .icon{color:var(--purple);filter:drop-shadow(0 0 6px rgba(77,124,254,.35))}
/* ============ v107.8 CIA 指挥台皮肤 + 光束联动层 (09-06 老板: 中情局感/完全打通) ============ */
/* ── 全局: 战术噪点 + 暗角 ── */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;background:radial-gradient(120% 90% at 50% 40%,transparent 66%,rgba(0,0,0,.30) 100%)}
/* ── ai-hq 指挥台皮肤 ── */
.ai-hq{background:
  linear-gradient(135deg,rgba(8,6,20,.97),rgba(3,5,14,.98) 50%,rgba(1,3,10,.99));
  
  box-shadow:0 0 44px rgba(77,124,254,.12),inset 0 0 80px rgba(10,4,40,.5),inset 0 0 1px rgba(77,124,254,.35)}
.ai-hq::before{opacity:.75;background:linear-gradient(120deg,transparent 18%,rgba(77,124,254,.38),rgba(77,124,254,.26),transparent 82%);animation:none}
.ai-hq::after{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(232,207,138,.55),rgba(77,124,254,.4),transparent)}
/* OPS 状态条 */
.hq-opsbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px;border-bottom:1px solid rgba(77,124,254,.22);background:rgba(8,6,22,.66);font-family:var(--mono);font-size:10px;letter-spacing:1.6px;position:relative;z-index:6}
.hq-opsbar::after{content:'';position:absolute;left:0;bottom:-1px;width:120px;height:1px;background:linear-gradient(90deg,var(--purple),transparent)}
.hq-ops-left,.hq-ops-right{display:flex;align-items:center;gap:14px;min-width:0}
.hq-rec{display:inline-flex;align-items:center;gap:6px;color:#ff5f6d;font-weight:700}
.hq-rec i{width:7px;height:7px;border-radius:50%;background:#ff4d6b;box-shadow:0 0 9px #ff4d6b;animation:recBlink 1.2s ease infinite}
@keyframes recBlink{0%,100%{opacity:1}50%{opacity:.25}}
.hq-ops-title{color:#4D7CFE;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hq-threat{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:10px;border:1px solid;font-weight:700;white-space:nowrap}
.hq-threat i{width:6px;height:6px;border-radius:50%}
.hq-threat.t-norm{color:#00e6ad;border-color:rgba(0,230,173,.35);background:rgba(0,230,173,.07)}
.hq-threat.t-norm i{background:#00e6ad;box-shadow:0 0 8px #00e6ad}
.hq-threat.t-high{color:var(--gold);border-color:rgba(77,124,254,.4);background:rgba(77,124,254,.08);animation:threatPulse 1s ease infinite}
.hq-threat.t-high i{background:var(--gold);box-shadow:0 0 9px var(--gold)}
.hq-threat.t-crit{color:#ff4d6b;border-color:rgba(255,77,107,.5);background:rgba(255,77,107,.1);animation:threatPulse .6s ease infinite}
.hq-threat.t-crit i{background:#ff4d6b;box-shadow:0 0 10px #ff4d6b}
@keyframes threatPulse{0%,100%{opacity:1}50%{opacity:.55}}
.hq-clock{color:#5b6478;font-size:10px}
/* 情报区标题 mono ops 化 */
.ai-stream-title{font-size:13px;font-weight:800;letter-spacing:1.2px;background:linear-gradient(90deg,#9BB4FF,#4D7CFE);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.ai-scanline span{letter-spacing:2.4px;color:#5f5f8a}
/* ── 光束联动层: 地球光点 → 情报卡 追踪光束 ── */
.ai-hq-grid{position:relative}
.hq-link-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}
#hqLinkPath{fill:none;stroke:url(#hqLinkGrad);stroke-width:1.3;stroke-dasharray:7 9;opacity:0;transition:opacity .22s;filter:drop-shadow(0 0 5px rgba(226,236,250,.6))}
#hqLinkPath.on{opacity:.55;animation:hqFlow 1.6s linear infinite}
#hqLinkDotE,#hqLinkDotC{opacity:0;transition:opacity .2s}
#hqLinkDotE{fill:#eef4ff;filter:drop-shadow(0 0 6px rgba(226,236,250,.9))}
#hqLinkDotC{fill:#cfdcef;filter:drop-shadow(0 0 5px rgba(207,220,239,.9))}
#hqLinkLayer.on #hqLinkDotE,#hqLinkLayer.on #hqLinkDotC{opacity:1}
@keyframes hqFlow{to{stroke-dashoffset:-48}}
/* 地球容器右下角 ops 坐标注记 */
.ai-earth-wrap::after{content:'SAT ∿ TRACKING';position:absolute;right:12px;bottom:34px;font-family:var(--mono);font-size:9px;letter-spacing:1.4px;color:rgba(77,124,254,.34);pointer-events:none}
.ai-earth-legend{font-family:var(--mono);font-size:9.5px;letter-spacing:1px;color:#6d6a9e}
/* 威胁等级来源色同步到卡左条 */
/* v157(老板: 旁边新闻的 S 级 A 级等等没有颜色区分了) ——
   回归前把四级全改成了近乎同色的灰白(#eaf0fa/#ccd6e4/#aab5c6/#8b95a8),
   又带 !important 压过了 JS 内联的 --evc → 四个等级视觉上完全一样。
   现恢复为四个明确不同的色相(严重红/高危金/中危蓝/低危青),
   并去掉 !important: CSS 只作兜底, JS 内联 lvC 为准。 */
.ai-ev.t-ev-s{--evc:#ff4d6b}
.ai-ev.t-ev-a{--evc:#E8663D}
.ai-ev.t-ev-b{--evc:#4D7CFE}
.ai-ev.t-ev-c{--evc:#2dd4bf}
.ai-ev.t-ev-d{--evc:#8b95b8}
/* v107.9 (09-06 老板: 地球与情报一体,无分割,全权重构) 融合舞台布局 — 覆盖旧 grid 两栏 */
/* v107.18 全舞台升级: 真实感+立体感+氛围 */
.ai-hq{position:relative;height:min(362px,58vh);min-height:320px;overflow:hidden;border-radius:18px;margin-bottom:14px;border:1px solid rgba(77,124,254,.16);box-shadow:0 0 46px rgba(77,124,254,.10),inset 0 0 90px rgba(6,14,40,.6);background:radial-gradient(120% 100% at 30% 20%,rgba(30,70,170,.10),transparent 55%),linear-gradient(160deg,rgba(4,7,16,.99),rgba(2,4,10,.99))}
/* 深空暗角+底部银河尘带(真实空间氛围) */
.ai-hq .hq-stage-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(130% 130% at 32% 38%,transparent 46%,rgba(2,3,9,.38) 78%,rgba(1,2,6,.72) 100%),
             radial-gradient(60% 34% at 78% 108%,rgba(90,110,190,.07),transparent 70%)}
.ai-hq::before{background:linear-gradient(120deg,transparent 20%,rgba(77,124,254,.30),rgba(77,124,254,.20),transparent 82%);opacity:.8}
.ai-hq::after{background:linear-gradient(90deg,transparent,rgba(232,207,138,.5),rgba(77,124,254,.35),transparent)}
/* 战术网格独立层(整台舞台) */
#hqStage::marker{display:none}
.ai-hq .hq-grid-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(77,124,254,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(77,124,254,.05) 1px,transparent 1px);background-size:36px 36px;opacity:.7}
/* 地球全幅舞台(背景层) */
.hq-stage-earth{position:absolute;inset:0;z-index:1}
/* v107.15 (09-06 老板: 地球换回白天旧版) — 移除舞台压暗层 */
.hq-stage-dim{display:none}
.hq-stage-earth canvas{display:block}
#aiEarth{width:100%;height:100%}
/* ══════════════════════════════════════════════════════
   v109 (2026-09-18 老板: 地球情报区"太突兀" → 做成整体背景)
   去卡片化: 无边框/无圆角/无发光; 地球层径向羽化融入页面底色
   ══════════════════════════════════════════════════════ */
.ai-hq{
  height:min(560px,72vh);min-height:430px;
  margin:-18px -22px 0;
  border:none;border-radius:0;
  box-shadow:none;
  background:transparent;
}
.ai-hq::before{display:none}
/* v110.17: 地球已抽到 .earth-bg (fixed 整页背景) → 英雄区不再自带画布, 只留内容层 */
.ai-hq .hq-stage-earth,
.ai-hq .hq-grid-bg{display:none!important}
/* 底部过渡带: 交给飞入的固定背景层, 此处不再压暗 */
.ai-hq::after{display:none!important}
.hq-opsbar{background:linear-gradient(180deg,rgba(8,9,11,.86) 0%,rgba(8,9,11,.34) 62%,transparent 100%)}
/* 情报悬浮层: 更贴合背景的轻玻璃 */
.ai-hq .ai-ev{background:linear-gradient(100deg,rgba(13,16,24,.72),rgba(9,11,17,.48))}
/* 内容浮于天幕之上 —— 地球已是整页固定背景, 此处不再上提重叠(防压住情报列表) */
.ai-hq+.hw-v2-overview{margin-top:0;position:relative;z-index:5}
@media(max-width:900px){.ai-hq{margin:-18px -14px 0}}
/* OPS 条悬浮顶部(渐变消隐,无边框一体) */
.hq-opsbar{position:absolute;top:0;left:0;right:0;z-index:12;background:linear-gradient(180deg,rgba(3,5,12,.96),rgba(3,5,12,.5) 74%,transparent);border-bottom:none;padding:8px 18px 12px}
 .ai-earth-tag{position:absolute;top:38px;left:14px;z-index:11;background:rgba(6,12,28,.5);border-color:rgba(232,207,138,.25);color:#9BB4FF}
.ai-earth-tag .dot{background:#34d399;box-shadow:0 0 8px #34d399}
/* 情报悬浮层(浮于星空, 玻璃卡, 与地球同空间) */
.hq-intel{position:absolute;top:14px;right:14px;bottom:22px;width:min(500px,50%);z-index:10;display:flex;flex-direction:column;gap:4px;pointer-events:none}
.hq-intel>*{pointer-events:auto}
.hq-intel-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;margin-bottom:1px}
/* v110.20: 底部收尾行 —— 时间(左) ⇄ 链接(右), 左右呼应且不抢眼(原顶部标题行已删) */
.hq-intel-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 0}
.hq-intel-ts{font-size:10px;color:#4D7CFE;font-family:var(--mono);letter-spacing:.6px;display:inline-flex;align-items:center;gap:5px;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.hq-intel-ts .pulse{width:6px;height:6px;border-radius:50%;background:#34d399;box-shadow:0 0 7px #34d399;animation:dotPulse 1.6s ease infinite}
.ai-hq .ai-events{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:5px;min-height:0;padding:2px 2px 2px 0;margin-top:2px}
/* 情报卡: 深海玻璃(透出星空/地球, 同空间感) v107.18 质感升级 */
/* 情报卡: 与全站玻璃同一语言(色调统一, 透明度略高保證地球亮部上可读) */
.ai-hq .ai-ev{background:linear-gradient(100deg,rgba(13,19,32,.78),rgba(9,13,24,.66));backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);border:1px solid rgba(77,124,254,.16);border-radius:11px;padding:5px 10px;box-shadow:0 6px 24px rgba(0,0,0,.4),inset 0 1px 0 rgba(77,124,254,.12);transition:border-color .18s,box-shadow .18s,transform .18s}
.ai-hq .ai-ev:hover{border-color:rgba(77,124,254,.45);box-shadow:0 8px 30px rgba(0,0,0,.48),0 0 14px rgba(77,124,254,.13),inset 0 1px 0 rgba(77,124,254,.2);transform:translateY(-1px)}
.ai-hq .ai-ev.linked{background:linear-gradient(90deg,rgba(226,236,250,.17),rgba(226,236,250,.05));border-color:rgba(236,243,255,.60)!important;box-shadow:0 0 18px rgba(77,124,254,.16),0 6px 24px rgba(0,0,0,.38)}
.ai-hq .ai-ev .lv{background:rgba(8,8,14,.62);color:var(--evc,#4D7CFE);font-size:9px;border-radius:4px;padding:0 5px;text-shadow:0 0 8px var(--evc,#4D7CFE)}

.ai-hq .ai-ev .sm{font-size:10.5px;-webkit-line-clamp:1;color:#aeb9d8}
.ai-hq .ai-ev .meta{font-size:9.5px;color:#8a97bd}
.hq-intel .ai-ev-more{font-size:10.5px;letter-spacing:.6px;color:#c3ccda;text-align:right;padding:3px 2px 0;cursor:pointer;opacity:.85}
.hq-intel .ai-ev-more:hover{color:#ffffff;text-decoration:underline;opacity:1}
/* 地球光点/弧线层在舞台下, 卡片浮上 → 光束从球到卡(短而直接) */
/* v110.17: 地球改整页背景 → 光束层同步 fixed 全屏(视口坐标, 与 project()/_cardAnchor 对齐) */
.hq-link-layer{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:20;overflow:visible}
.ai-earth-legend{position:absolute;left:16px;right:auto;bottom:10px;z-index:11;display:inline-flex;width:auto;align-items:center;gap:9px;background:rgba(14,12,8,.62);border:1px solid rgba(77,124,254,.22);border-radius:12px;padding:5px 12px;color:#c8bfa6;font-size:9.5px;letter-spacing:1px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 14px rgba(0,0,0,.42);font-family:var(--mono)}
.ai-earth-legend .el-h{color:#8a8268;font-weight:600}
.ai-earth-legend .el-v{color:#e8dcc0;font-weight:700}
.ai-earth-legend .el-scale{display:inline-flex;gap:2px;align-items:center}
.ai-earth-legend .el-scale i{width:9px;height:5px;border-radius:1px;display:block}
.ai-earth-legend .el-sep{width:1px;height:11px;background:rgba(77,124,254,.22)}
/* v139(09-19 老板: 加上币种名字) —— 球球大作战式币种名牌
   名牌是地球背景的一部分(z-index:2, 在画布之上/暗角之下), 因此会被内容层正确遮挡;
   pointer-events:none 不拦鼠标; 名字由 JS 每 3 帧按球面正对度定位 */
.coin-tag-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.coin-tag{position:absolute;transform:translate(-50%,-50%);font-family:var(--mono);font-weight:700;
  letter-spacing:.4px;white-space:nowrap;color:#f4f7ff;opacity:0;transition:opacity .16s linear;
  text-shadow:0 0 3px rgba(0,0,0,.98),0 0 6px rgba(0,0,0,.85),0 1px 2px rgba(0,0,0,.95)}
/* v141(老板: 名字与涨跌幅统一显示, 颜色与涨跌幅一样) —— 名字+涨跌幅双行合一 */
.coin-tag .ct-n{font-weight:700;letter-spacing:.5px}
.coin-tag .ct-c{margin-left:5px;font-weight:600;opacity:.92;font-size:.88em}
.coin-tag.up{color:#7fe6bd}
.coin-tag.up .ct-c{color:#3fd39a}
.coin-tag.dn{color:#ff9aa2}
.coin-tag.dn .ct-c{color:#ff6b76}
/* v143: 无百分比的币(只留币名) —— 降低存在感, 不与榜单币抢注意力 */
.coin-tag.bare{font-weight:600;opacity:.80;letter-spacing:.2px}
.coin-tag.bare .ct-c{display:none}
/* v143(经理人: 无行情数据的币) —— 中立色, 不用涨色误导 */
.coin-tag.flat{color:#9fb0c6;opacity:.72}
@media (max-width:900px){.coin-tag{font-size:9px!important}}
/* 旧布局类禁用(防误用) */
.ai-hq .ai-hq-grid,.ai-hq .ai-earth-wrap,.ai-hq .ai-intel-stream{display:none!important}
@media(max-width:980px){
  /* v110.19(09-19 老板: 排版冲突一次解决): 移动端情报区改**正常流**
     原绝对定位(absolute+固定高hero)会溢出并压住下方“核心资产/实时行情”文字 */
  .ai-hq{height:auto;min-height:0;margin:-18px -14px 0;padding-bottom:6px}
  .hq-intel{position:static;width:auto;height:auto;inset:auto;max-height:none;margin:0 14px;padding-bottom:4px;display:flex;flex-direction:column;gap:4px}
  .hq-intel .ai-events{max-height:42vh;overflow-y:auto;flex:none}
}
/* v110.17: 移动端 OPS 条防重叠 —— 标题隐藏、威胁/时钟换行收紧 */
@media(max-width:640px){
  .hq-opsbar{display:none}
  .hq-intel-head{gap:6px}
  /* 顶栏：隐藏副标题(竖屏被裁成“TERMINA”)，只留 HONGWU.SI */
  .hw-brandmark .bm-sub{display:none!important}
  .hw-brandmark{font-size:13px;letter-spacing:.06em}
  .topbar{padding:0 10px}
  .topbar-right{gap:6px}
}
/* scanline 独立行铺满 */
.ai-hq .ai-scanline{width:100%;text-align:left;font-size:9.5px;margin:1px 0 5px;padding-left:20px;opacity:.8}
.ai-hq .ai-scanline span{white-space:nowrap;display:inline-block;animation:scanMove 18s linear infinite}
.hq-intel-head .ai-stream-title{font-size:12.5px}
/* 语言切换按钮 */
.lang-btn{font-size:11px;padding:2px 9px;border-radius:6px;background:var(--purple-bg);color:var(--purple);border:1px solid rgba(77,124,254,.35);cursor:pointer;transition:all .18s;font-weight:600;user-select:none}
.lang-btn:hover{background:rgba(77,124,254,.22);color:#9BB4FF}

/* ============================================================
   V2 (2.0 · 2026-09-18) — 显式不可用态 / 实时通道 / 移动端抽屉
   契约 §5: 失败必须渲染 — / Unavailable, 禁止静默变空
   ============================================================ */
/* --- A. 显式不可用态 (失败) vs 显式无数据 (数据不足) --- */
.v2-unavail{display:flex;flex-direction:column;align-items:center;gap:5px;padding:16px 8px;color:var(--danger);font-size:12px;font-weight:600;text-align:center;line-height:1.5}
.v2-unavail .vu-ic{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--danger);opacity:.9}
.v2-unavail .vu-sub{color:var(--dim);font-size:10.5px;font-weight:500;font-family:var(--mono);word-break:break-all}
.v2-unavail.sm{padding:10px 6px;font-size:11px}
.v2-nodata{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;color:var(--dim);font-size:12px;text-align:center}
.v2-nodata .vu-sub{color:var(--dim);font-size:10.5px;font-family:var(--mono)}
.unavail-row td{color:var(--danger)!important;background:var(--danger-bg)!important;font-weight:600}
.v2-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;border:1px solid;white-space:nowrap}
.v2-badge.unavail{background:var(--danger-bg);color:var(--danger);border-color:rgba(255,77,107,.35)}
.v2-badge.stale{background:var(--gold-bg);color:var(--gold);border-color:rgba(77,124,254,.35)}
.v2-badge.live{background:var(--ok-bg);color:var(--ok);border-color:rgba(0,230,173,.3)}
/* ===== V2 Phase 3: 交易控制台 (契约 docs/V2_CONTROL_CONTRACT_20260918.md) ===== */
.btn-ctl{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;font-size:12px;font-weight:700;border:1px solid var(--border2);background:rgba(255,255,255,.03);color:var(--txt);cursor:pointer;transition:all .18s;white-space:nowrap}
.btn-ctl:hover:not(:disabled){border-color:rgba(77,124,254,.55);background:rgba(77,124,254,.14);box-shadow:0 0 14px -6px rgba(77,124,254,.6),inset 0 1px 0 rgba(255,255,255,.10);transform:translateY(-1px)}
.btn-ctl:disabled{opacity:.4;cursor:not-allowed}
.btn-ctl.danger{border-color:rgba(255,77,107,.45);color:#ff8fa3;background:rgba(255,77,107,.08)}
.btn-ctl.danger:hover:not(:disabled){background:rgba(255,77,107,.18);border-color:var(--err);color:#fff}
.btn-ctl.warn{border-color:rgba(77,124,254,.42);color:#E8663D;background:rgba(77,124,254,.08)}
.btn-ctl.warn:hover:not(:disabled){background:rgba(77,124,254,.17);border-color:var(--gold)}
.btn-ctl.ok{border-color:rgba(0,230,173,.4);color:#4D7CFE;background:rgba(0,230,173,.08)}
.btn-ctl.ok:hover:not(:disabled){background:rgba(0,230,173,.16);border-color:var(--ok)}
.btn-ctl.sm{padding:4px 10px;font-size:11px}
.ctl-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ctl-modal{position:fixed;inset:0;background:rgba(0,0,0,.74);z-index:10000;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.ctl-modal.open{display:flex}
.ctl-dialog{background:linear-gradient(180deg,#101728,#0b1020);border:1px solid var(--border2);border-radius:14px;padding:22px;max-width:460px;width:100%;box-shadow:0 22px 70px rgba(0,0,0,.7)}
.ctl-dialog h3{font-size:15px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.ctl-dialog p{font-size:12.5px;color:var(--sub);line-height:1.65;margin-bottom:12px}
.ctl-dialog .ctl-token{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border2);background:rgba(0,0,0,.35);color:var(--txt);font-family:var(--mono);font-size:14px;letter-spacing:1.5px;text-align:center;margin-bottom:14px}
.ctl-lock{max-width:420px;margin:26px auto;text-align:center;padding:26px;border:1px solid var(--border2);border-radius:14px;background:rgba(255,255,255,.02)}
.ctl-lock input{width:100%;padding:11px 13px;border-radius:8px;border:1px solid var(--border2);background:rgba(0,0,0,.35);color:var(--txt);font-family:var(--mono);margin:12px 0}
.ctl-toast{position:fixed;right:22px;bottom:22px;z-index:10001;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.ctl-toast .ct{background:rgba(16,22,38,.96);border:1px solid var(--border2);border-left:3px solid var(--purple);border-radius:9px;padding:11px 15px;font-size:12.5px;color:var(--txt);box-shadow:0 10px 34px rgba(0,0,0,.5);max-width:380px;animation:ctIn .22s ease}
.ctl-toast .ct.ok{border-left-color:var(--ok)}.ctl-toast .ct.err{border-left-color:var(--err)}
.ctl-toast .ct.warn{border-left-color:var(--gold)}
@keyframes ctIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ctl-killbar{display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:10px;font-size:12.5px;font-weight:600;margin-bottom:14px}
.ctl-killbar.on{background:var(--down-bg);border:1px solid rgba(255,77,107,.4);color:#ff9db0}
.ctl-killbar.off{background:rgba(0,230,173,.07);border:1px solid rgba(0,230,173,.25);color:#4D7CFE}
.v2-badge.idle{background:var(--bg4);color:var(--dim);border-color:rgba(255,255,255,.1)}
.v2-badge.danger{background:var(--danger-bg);color:var(--danger);border-color:rgba(255,77,107,.4)}
.v2-dash{color:var(--dim);font-family:var(--mono)}
.c-liq{color:var(--danger);font-weight:700}
.c-liq.near{animation:liqPulse 1.6s infinite}
@keyframes liqPulse{0%,100%{opacity:1}50%{opacity:.42}}
/* --- B. 实时通道状态指示 (topbar) --- */
.sse-wrap{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--dim)}
.sse-dot{width:6px;height:6px;border-radius:50%;background:var(--dim);flex-shrink:0}
.sse-dot.on{background:var(--ok);box-shadow:0 0 6px rgba(0,230,173,.6)}
.sse-dot.off{background:var(--danger)}
.sse-dot.warn{background:var(--gold)}
/* --- C. 移动端抽屉 (审计 §9: 60px 侧栏 + 无抽屉 = 移动端不可用) --- */
.sb-toggle{display:none;position:fixed;left:14px;bottom:16px;z-index:131;width:46px;height:46px;border-radius:13px;border:1px solid var(--border2);background:rgba(12,17,32,.95);color:var(--txt);cursor:pointer;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-hover)}
.sb-toggle:active{transform:scale(.95)}
.sb-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:119;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.sb-backdrop.show{display:block}
@media (max-width:900px){
  .sb-toggle{display:flex}
  .sb-backdrop{z-index:119}
  .sb-toggle{z-index:131}
  .hw-wordmark{opacity:1;margin-bottom:12px}
  .content{padding:14px 12px 86px}
  .topbar{padding:0 12px;gap:8px}
  .topbar-right{gap:8px}
  .app{height:auto;min-height:100vh}
}
@media (max-width:560px){
  .asset-bar{padding:8px 12px;gap:10px}
  .kpi-grid{grid-template-columns:1fr 1fr!important}
  .dash-sub,.grid-2-1{grid-template-columns:1fr!important}
}

/* ============================================================
   V2 DESIGN SYSTEM (§4 视觉 / §5 品牌)
   深黑背景 + 冷白文字 + 低饱和蓝青(实时数据) + 少量品牌金 + 红(风险)
   明确禁止: 大面积渐变 / 满屏霓虹 / 过度玻璃 / 发光 / 游戏化
   本段在文件末尾 → 同特异性下覆盖上方旧主题
   ============================================================ */
:root{
  /* ── Brand (HONGWU 品牌金, 仅用于品牌识别与关键数值) ── */
  --hw-brand:#4D7CFE;--hw-brand-soft:rgba(77,124,254,.15);--hw-brand-line:rgba(77,124,254,.34);
  /* ── v112(老板: 科幻金属融合 整体配色升级) 底色下沉+冷钢倾向 ── */
  --hw-bg:#04060b;--hw-bg-elev:#080b12;
  /* ── Surface ── */
  --hw-surface:#0c1017;--hw-surface-2:#111724;--hw-surface-3:#161e2c;
  /* ── Border (合金切边: 比底色亮一阶, 出金属轮廓) ── */
  --hw-border:#1d2634;--hw-border-2:#2e3c4e;
  /* ── Text ── */
  --hw-text:#eaf0f8;--hw-muted:#8e9aad;--hw-dim:#5d6878;
  /* ── Semantic ── */
  --hw-success:#2e9e7a;--hw-warning:#E8663D;--hw-danger:#c0463f;
  /* ── v143(09-20 老板: 全面恢复绿涨红跌) 涨=绿 / 跌=红 (国际盘口惯例) ── */
  --hw-up:#00e0a8;--hw-down:#ff4d6b;
  --hw-up-bg:rgba(0,224,168,.12);--hw-down-bg:rgba(255,77,107,.12);
  /* ── Accent (v112 能量化: 更饱和的冷蓝 + 更亮能量青) ── */
  --hw-accent:#4D7CFE;--hw-accent-cyan:#9BB4FF;--hw-accent-soft:rgba(77,124,254,.13);
  /* ── v112 新增: 金属/能量材质 token(供卡片高光边与护盾取用) ── */
  --hw-metal-hi:rgba(77,124,254,.16);--hw-metal-lo:rgba(10,16,26,.55);
  --hw-energy:#4D7CFE;--hw-energy-soft:rgba(77,124,254,.16);
  /* ── 旧变量重映射 → 全站旧组件自动继承新设计系统 ── */
  --bg:var(--hw-bg);--bg2:var(--hw-bg-elev);--bg3:var(--hw-surface-2);--bg4:var(--hw-surface-3);
  --card:var(--hw-surface);--card2:var(--hw-surface-2);
  --border:var(--hw-border);--border2:var(--hw-border-2);
  --txt:var(--hw-text);--sub:var(--hw-muted);--dim:var(--hw-dim);--text:var(--hw-text);
  --up:var(--hw-up);--down:var(--hw-down);--gold:var(--hw-brand);--cyan:var(--hw-accent-cyan);--blue:var(--hw-accent);
  --up-bg:var(--hw-up-bg);--down-bg:var(--hw-down-bg);--gold-bg:rgba(77,124,254,.12);
  /* 状态语义色(独立) → 见上方说明 */
  --ok:var(--hw-success);--ok-bg:rgba(46,158,122,.12);--err:var(--hw-danger);--err-bg:rgba(192,70,63,.12);
  --cyan-bg:rgba(14,116,144,.12);--purple:var(--hw-accent);--purple-bg:var(--hw-accent-soft);--pink:var(--hw-accent-cyan);--pink-bg:rgba(14,116,144,.1);
  --info:var(--hw-accent-cyan);--warn:var(--hw-warning);--bad:var(--err);
  --danger:var(--hw-danger);--danger-bg:var(--err-bg);
  --glow-purple:transparent;--glow-cyan:transparent;
  /* ── Typography ── */
  --hw-fs-xs:10.5px;--hw-fs-sm:11.5px;--hw-fs-md:12.5px;--hw-fs-lg:14px;--hw-fs-xl:19px;--hw-fs-2xl:26px;
  --hw-fw-normal:400;--hw-fw-med:500;--hw-fw-semi:600;--hw-fw-bold:700;
  --hw-lh-tight:1.25;--hw-lh-body:1.6;
  --hw-ls-label:.09em;--hw-ls-num:-.01em;
  /* ── Spacing ── */
  --hw-sp-1:4px;--hw-sp-2:8px;--hw-sp-3:12px;--hw-sp-4:16px;--hw-sp-5:20px;--hw-sp-6:26px;
  /* ── Radius ── */
  --hw-r-xs:4px;--hw-r-sm:6px;--hw-r-md:9px;--hw-r-lg:12px;--hw-r-pill:999px;
  --radius:var(--hw-r-md);--radius-sm:var(--hw-r-sm);
  /* ── Shadow (克制, 无发光) ── */
  --hw-shadow-1:0 1px 2px rgba(0,0,0,.4);--hw-shadow-2:0 4px 14px rgba(0,0,0,.35);--hw-shadow-3:0 12px 34px rgba(0,0,0,.45);
  --shadow-card:var(--hw-shadow-1);--shadow-hover:var(--hw-shadow-2);
}
/* ── 背景收敛: 去掉大面积径向光晕, 只留极淡一层 ── */
body{background:var(--hw-bg);background-image:radial-gradient(900px 420px at 50% -12%,rgba(77,124,254,.055),transparent 68%),radial-gradient(1200px 620px at 88% 118%,rgba(77,124,254,.035),transparent 70%);background-attachment:fixed}
body::before{background:radial-gradient(130% 95% at 50% 42%,transparent 74%,rgba(0,0,0,.22) 100%)}
body::after{opacity:.018}

/* ══════════════════════════════════════════════════════════
   v110.17 (09-19 老板): 地球 = 整页背景 —— 融为一体
   ① 地球层 position:fixed 铺满视口, 居 z-index:0 (天幕)
   ② .app 内容层 z-index:1 浮于其上
   ③ 面板改半透玻璃 → 地球从内容背后透出(融合感)
   ══════════════════════════════════════════════════════════ */
.earth-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.earth-bg #aiEarth{width:100%;height:100%;display:block}
.earth-bg canvas{display:block;width:100%!important;height:100%!important;
  /* v110.19: 地球作为背景需克制 — 微降饱和/亮度, 避免亮部与上层文字抢焦点 */
  /* v110.23(09-19 老板): 解除 v110.19 的压暗, 恢复白天版通透感 */
  filter:saturate(1.05) brightness(1.12) contrast(1.05)}
/* v121(09-19 老板: 适配): 竖屏/窄屏 —— 地球居中铺满, 但实测偏暗(亮于40仅13%)
   → 提高亮度/饱和, 让数字网格在窄屏上真正可见 */
@media (max-width:900px),(orientation:portrait){
  .earth-bg canvas{filter:saturate(1.18) brightness(1.34) contrast(1.10)}
}
/* 可读性遮罩: 中上部保持通透, 下缘与四周逐渐压暗 → 文字层永远有对比底 */
.earth-bg .hq-stage-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;
  /* v110.23: 暗角大幅减淡 → 地球通透, 文字仍靠面板玻璃+暗影保证对比 */
  background:radial-gradient(150% 135% at 50% 42%,transparent 58%,rgba(3,4,8,.20) 82%,rgba(2,3,6,.46) 100%),
             linear-gradient(180deg,rgba(4,6,11,.28) 0%,transparent 20%,transparent 80%,rgba(4,6,11,.18) 100%)}
.app{position:relative;z-index:1;background:transparent}
/* ══════════════════════════════════════════════════════════════════
   v125(设计) 分页背景调度 —— 地球是全站天幕, 但"每一页都全亮"会让数据页失焦:
   总览/行情/GMGN 页地球是主角(满亮); 其余数据页地球只是氛围 → 降亮降饱和,
   并把面板底色加深一档, 保证表格/长文本的对比度。
   实测依据: 内容页地球亮部比面板亮 3~5 倍, 文字贴上去读不清。
   ══════════════════════════════════════════════════════════════════ */
/* 数据页: 地球退居氛围层 */
body[data-tab="positions"] .earth-bg canvas,
body[data-tab="orders"] .earth-bg canvas,
body[data-tab="trades"] .earth-bg canvas,
body[data-tab="performance"] .earth-bg canvas,
body[data-tab="drawdown"] .earth-bg canvas,
body[data-tab="analytics"] .earth-bg canvas,
body[data-tab="risk"] .earth-bg canvas,
body[data-tab="riskdash"] .earth-bg canvas,
body[data-tab="daily"] .earth-bg canvas,
body[data-tab="strategies"] .earth-bg canvas,
body[data-tab="intel"] .earth-bg canvas,
body[data-tab="logs"] .earth-bg canvas,
body[data-tab="settings"] .earth-bg canvas,
body[data-tab="control"] .earth-bg canvas,
body[data-tab="architecture"] .earth-bg canvas,
body[data-tab="ai"] .earth-bg canvas{
  filter:saturate(.72) brightness(.42) contrast(1.02);transition:filter .5s ease}
/* 数据页: 加一层内容衬底(径向暗场), 让整片内容区有稳定对比底 */
body[data-tab="positions"] .earth-bg .hq-stage-vignette,
body[data-tab="orders"] .earth-bg .hq-stage-vignette,
body[data-tab="trades"] .earth-bg .hq-stage-vignette,
body[data-tab="performance"] .earth-bg .hq-stage-vignette,
body[data-tab="drawdown"] .earth-bg .hq-stage-vignette,
body[data-tab="analytics"] .earth-bg .hq-stage-vignette,
body[data-tab="risk"] .earth-bg .hq-stage-vignette,
body[data-tab="riskdash"] .earth-bg .hq-stage-vignette,
body[data-tab="daily"] .earth-bg .hq-stage-vignette,
body[data-tab="strategies"] .earth-bg .hq-stage-vignette,
body[data-tab="intel"] .earth-bg .hq-stage-vignette,
body[data-tab="logs"] .earth-bg .hq-stage-vignette,
body[data-tab="settings"] .earth-bg .hq-stage-vignette,
body[data-tab="control"] .earth-bg .hq-stage-vignette,
body[data-tab="architecture"] .earth-bg .hq-stage-vignette,
body[data-tab="ai"] .earth-bg .hq-stage-vignette{
  background:radial-gradient(150% 135% at 50% 42%,rgba(3,5,10,.62) 0%,rgba(3,4,8,.78) 62%,rgba(2,3,6,.88) 100%)}
/* 数据页: 面板加深 → 文字对比度足; 仍保留玻璃质感 */
body[data-tab="positions"] .panel,body[data-tab="orders"] .panel,body[data-tab="trades"] .panel,
body[data-tab="performance"] .panel,body[data-tab="drawdown"] .panel,body[data-tab="analytics"] .panel,
body[data-tab="risk"] .panel,body[data-tab="riskdash"] .panel,body[data-tab="daily"] .panel,
body[data-tab="strategies"] .panel,body[data-tab="intel"] .panel,body[data-tab="logs"] .panel,
body[data-tab="settings"] .panel,body[data-tab="control"] .panel,body[data-tab="architecture"] .panel,
body[data-tab="ai"] .panel{
  background:linear-gradient(180deg,rgba(10,13,20,.93),rgba(10,13,20,.86))}

/* ══ v125 骨架屏: 空状态不再是一片死白文字 ══ */
.skel{display:flex;flex-direction:column;gap:9px;padding:4px 0}
.skel i{display:block;height:11px;border-radius:5px;
  background:linear-gradient(90deg,rgba(255,255,255,.045) 0%,rgba(255,255,255,.10) 42%,rgba(255,255,255,.045) 84%);
  background-size:220% 100%;animation:skelShine 1.5s ease-in-out infinite}
.skel i:nth-child(1){width:88%}.skel i:nth-child(2){width:70%}
.skel i:nth-child(3){width:79%}.skel i:nth-child(4){width:56%}
.skel i:nth-child(5){width:66%}
@keyframes skelShine{0%{background-position:120% 0}100%{background-position:-120% 0}}
/* 空状态(确实无数据): 居中图标+一行说明, 比裸露的"暂无"更有设计感 */
.empty-st{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:34px 16px;color:var(--dim);text-align:center}
.empty-st svg{opacity:.30}
.empty-st span{font-size:12px;letter-spacing:.02em}
@media (prefers-reduced-motion:reduce){.skel i{animation:none}}

/* ══════════════════════════════════════════════════════════════
   v215-v218 动效升级 (老板: 参考 Motion Sites/React Bits/Uiverse/
   Anime.js/Aceternity UI) — 纯增量, 无依赖, 可单独关闭
   ══════════════════════════════════════════════════════════════ */
/* ① 3D 卡片深度: 随光标倾转 + 反光(沿用现有 hover, 仅加深) */
.kpi,.mkt-cell,.kpi-card,.risk-kpi{
  transform-style:preserve-3d;will-change:transform;
  transition:border-color .24s ease,transform .24s cubic-bezier(.22,.68,.36,1),
             box-shadow .24s ease,background .24s ease}
.hw-tilt{position:relative}
.hw-tilt::after{ /* 反光层: 跟随光标的高光 */
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(220px 160px at var(--hw-mx,50%) var(--hw-my,50%),
             rgba(255,255,255,.13),rgba(255,255,255,.045) 42%,transparent 70%);
  transition:opacity .28s ease}
.hw-tilt:hover::after{opacity:1}
/* ② 标题扫光 ShinyText */
.hw-shiny{
  background-image:linear-gradient(100deg,
    var(--hw-text) 0%,var(--hw-text) 38%,
    #fff 47%,var(--hw-brand) 52%,#fff 57%,
    var(--hw-text) 66%,var(--hw-text) 100%);
  background-size:260% 100%;background-position:130% 0;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:hwShiny 5.2s cubic-bezier(.5,0,.5,1) infinite}
@keyframes hwShiny{0%,58%{background-position:130% 0}88%,100%{background-position:-130% 0}}
.hw-brandmark .bm-txt{display:inline-flex;align-items:center}
/* ③ 总览加载骨架 */
.hq-skel{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;pointer-events:none;
  transition:opacity .5s ease}
.hq-skel.done{opacity:0}
.hq-skel .hs-ring{width:46px;height:46px;border-radius:50%;
  border:2px solid rgba(77,124,254,.18);border-top-color:var(--hw-brand);
  animation:hwFbSpin 1.05s linear infinite}
.hq-skel .hs-txt{font-size:10.5px;letter-spacing:.22em;color:var(--hw-dim);
  font-family:var(--mono);text-transform:uppercase}
/* ④ SI 决策时间轴 + 光束 */
.hw-tl-wrap{margin-bottom:16px}
.hw-tl-head{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;
  color:var(--sub);margin-bottom:12px;letter-spacing:.03em}
.hw-tl-head .icon{opacity:.8}
.hw-tl-hint{margin-left:auto;font-size:10.5px;color:var(--dim);font-family:var(--mono)}
.hw-tl{position:relative;padding:2px 0 2px 30px;max-height:430px;overflow:hidden}
.hw-tl::before{content:'';position:absolute;left:9px;top:6px;bottom:6px;width:1px;
  background:linear-gradient(180deg,transparent,var(--hw-line,rgba(77,124,254,.30)) 12%,
             var(--hw-line,rgba(77,124,254,.30)) 88%,transparent)}
.hw-tl-beam{position:absolute;left:7px;width:5px;height:5px;border-radius:50%;
  background:var(--hw-brand);box-shadow:0 0 10px var(--hw-brand),0 0 20px rgba(77,124,254,.5);
  transition:top .9s cubic-bezier(.4,0,.2,1);z-index:3}
.hw-tl-node{position:relative;margin-bottom:9px}
.hw-tl-dot{position:absolute;left:-25px;top:11px;width:9px;height:9px;border-radius:50%;
  background:rgba(8,8,14,.95);border:1.5px solid #4ade80}
.hw-tl-card{border:1px solid var(--border);border-radius:10px;padding:8px 11px;
  background:rgba(255,255,255,.022);transition:border-color .22s,background .22s,transform .22s}
.hw-tl-card:hover{border-color:var(--border2);background:rgba(255,255,255,.045);transform:translateX(2px)}
.hw-tl-node.ok .hw-tl-dot{border-color:#4ade80;box-shadow:0 0 9px rgba(74,222,128,.45)}
.hw-tl-node.no .hw-tl-dot{border-color:#FF6B8A;box-shadow:0 0 9px rgba(248,113,113,.45)}
.hw-tl-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hw-tl-row b{font-size:12.5px}
.hw-tl-str{font-size:11px;color:var(--dim)}
.hw-tl-ts{margin-left:auto;font-size:10.5px;color:var(--dim);font-family:var(--mono)}
.hw-tl-rsn{font-size:11.5px;color:var(--sub);margin-top:4px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .hw-shiny{animation:none;background-position:0 0}
  .hw-tilt,.kpi,.mkt-cell{transition:none!important}
  .hw-tl-beam{transition:none}
}
/* ══ v156b(老板: 音乐放到中英文切换旁边) ══
   顶栏内联播放器: 播放键 + 电平 + 当前曲名 + 更多(弹面板) */
.hwm{display:flex;align-items:center;gap:6px;position:relative}
.hwm-btn{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;border-radius:7px;cursor:pointer;
  border:1px solid rgba(77,124,254,.30);background:var(--purple-bg);color:var(--purple);transition:all .18s}
.hwm-btn:hover{background:rgba(77,124,254,.22);color:#9BB4FF}
.hwm-btn.on{background:rgba(0,224,168,.18);border-color:rgba(0,224,168,.55);color:#00e0a8;box-shadow:0 0 10px rgba(0,224,168,.30)}
.hwm-btn.sm{width:22px;height:22px;font-size:12px;color:var(--sub)}
.hwm-bar{width:46px;height:3px;border-radius:2px;background:rgba(255,255,255,.09);overflow:hidden;flex:0 0 auto}
.hwm-bar i{display:block;height:100%;width:0%;border-radius:2px;background:linear-gradient(90deg,#00e0a8,#4D7CFE);transition:width .07s linear}
.hwm-track{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;cursor:pointer;max-width:96px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--sub);transition:all .18s}
.hwm-track:hover{color:var(--txt);border-color:rgba(77,124,254,.38)}
.hwm-track.on{color:#00e0a8;border-color:rgba(0,224,168,.42)}
/* 弹出面板: 挂在顶栏下方(z-index 高于 topbar 的 50) */
.hwm-pop{position:absolute;top:calc(100% + 9px);right:0;width:268px;z-index:70;display:none;
  padding:11px 12px;border-radius:12px;border:1px solid var(--border2);
  background:rgba(12,15,23,.94);backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35);
  box-shadow:0 14px 44px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.07)}
.hwm-pop.open{display:block;animation:cmdIn .16s ease}
.hwm-pop-h{font-size:10px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--dim);margin:2px 0 7px}
.hwm-pop-h:not(:first-child){margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.hwm-list{display:flex;flex-direction:column;gap:4px}
.hwm-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;
  border:1px solid transparent;transition:all .15s;font-size:12px;color:var(--sub)}
.hwm-item:hover{background:rgba(255,255,255,.05);color:var(--txt)}
.hwm-item.on{background:rgba(0,224,168,.11);border-color:rgba(0,224,168,.38);color:#00e0a8}
.hwm-item .n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.hwm-item .d{font-size:10px;color:var(--dim);white-space:nowrap}
.hwm-item .eq{width:11px;text-align:center;font-size:10px;opacity:.35}
.hwm-item.on .eq{opacity:1}
.hwm-row{display:flex;gap:6px;align-items:center}
.hwm-url{flex:1;min-width:0;height:25px;padding:0 8px;border-radius:7px;font-size:11px;font-family:var(--mono);
  border:1px solid var(--border);background:rgba(0,0,0,.32);color:var(--txt);outline:none}
.hwm-url:focus{border-color:rgba(77,124,254,.45)}
.hwm-url::placeholder{color:var(--dim)}
.hwm-mini{flex:1;height:25px;border-radius:7px;font-size:11px;cursor:pointer;font-family:inherit;
  border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--sub);transition:all .16s}
.hwm-mini:hover{color:var(--txt);border-color:rgba(77,124,254,.35)}
@media (max-width:900px){.hwm-bar{display:none}.hwm-track{max-width:70px}}
@media (max-width:640px){.hwm-track{display:none}}
body.earth-loading .earth-bg{opacity:0}
.earth-bg{opacity:1;transition:opacity .8s ease}

/* ══════════════════════════════════════════════════════════
   v110.20 (09-19 老板“字体/动态/立体 一步到位”)
   排版体系 + 质感立体 + 数字律动  三层统一
   ══════════════════════════════════════════════════════════ */
/* ① 排版层: 标签/正文/数值/单位 四级分工, 全站统一 */
:root{
  --ts-label:.09em;      /* 标签字距(小写字母词) */
  --ts-num:-.015em;      /* 数值字距(大数字要紧) */
  --c-sub:rgba(196,208,226,.72);
}
/* 数值: 一律等宽对齐 + 紧字距 + 光学纠偏(数字比汉字视觉小, 稍放大补偿) */
.kpi .value,.hw-kpi .v,.tc-pnl,.ab-val,.ss-v,.mkt-p,.mkt-chg,.hw-kpi .num{
  font-variant-numeric:tabular-nums;letter-spacing:var(--ts-num);
}
/* 单位后缀(◆U/◆x/%): 弱化、缩小、不抢数值 */
.unit,.kpi .value .u,.tc-pnl .u{font-size:.62em;font-weight:600;opacity:.55;letter-spacing:0;margin-left:1px}
/* 标签层: 统一小号 + 字距 + 冷灰, 不参与抢焦 */
.kpi .label,.hw-sec-h h3,.panel-head h3,.ss-k,.ab-item{letter-spacing:var(--ts-label)}
/* 正文可读性: 置于地球背景之上 → 给文本层一层极淡暗底(subtle shadow 而非描边) */
.kpi .value,.hw-sec-h h3,.panel-head h3,.kpi .label,.tt,.sm{
  text-shadow:0 1px 10px rgba(0,0,0,.5);
}
/* ② 立体层: 分层投影(实际声明在下方 .panel,.kpi 合并规则中, 此处仅保留顶面受光面) */
/* 面板内部: 顶面微亮面(厚玻璃受光面) */
.panel-head,.hw-sec-h{position:relative}
.panel-head::after,.hw-sec-h::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent);pointer-events:none}
/* ③ 动态层: 实时数据呼吸 + 数值变化带过渡 */
.kpi .value,.ss-v,.tc-pnl,.ab-val{transition:color .35s ease,text-shadow .35s ease}
.kpi.up .value{text-shadow:0 0 22px rgba(46,158,122,.22)}
.kpi.down .value{text-shadow:0 0 22px rgba(192,70,63,.20)}
/* 实况脉冲点(复用): 柔和呼吸而非硬闪烁 */
@keyframes hwBreath{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.86)}}
.hq-intel-ts .pulse,.ss-live.live i,.sse-dot.on{animation:hwBreath 2.2s ease-in-out infinite}
@keyframes hwRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel,.hw-sec{animation:hwRise .42s cubic-bezier(.22,.9,.3,1) both}
.hw-sec:nth-child(2){animation-delay:.05s}
.hw-sec:nth-child(3){animation-delay:.10s}
.hw-sec:nth-child(4){animation-delay:.15s}
/* 尊重降低动效偏好(可访问性) */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
/* ── Surface / Border / Shadow 全站统一 ── */
/* v110.17: 半透玻璃面板 —— 让整页地球背景从内容背后透出(融合, 不割裂) */
/* v110.21(09-19 老板: 仪表盘草率/尺寸参差): 仪表盘行高对齐体系 ——
   同一行的盘高度一致、内容区可滚动, 消除“高一个矮一个”的碎感 */
/* v110.21: 同行盘等高 + 内容区自适应(消除参差与大片留白) */
.dash-sub>.panel,.grid-2-1>.panel,.grid-3-1>.panel,.grid-1-1>.panel,.dual-zone .zone-block{
  display:flex;flex-direction:column;margin-bottom:0;min-width:0
}
.dash-sub>.panel>.panel-body,.grid-2-1>.panel>.panel-body,.grid-3-1>.panel>.panel-body,.grid-1-1>.panel>.panel-body{
  flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center
}
/* 仪表盘盘最小高度 —— 避免稀疏内容被压成一条(视觉单薄) */
.dash-sub>.panel,.grid-2-1>.panel{min-height:236px}
/* 图表/列表类盘: 内容矮时纵向居中, 高于时自然铺开 */
.tab-page .panel>.panel-body{scrollbar-gutter:stable}
/* 稀疏内容盘: 内部竖居中, 不顶着顶部留白 */
.grid-2-1>.panel>.panel-body.padded{justify-content:center}
@media(max-width:1200px){
  .dash-sub,.grid-2-1,.grid-3-1,.grid-1-1{grid-template-columns:1fr}
}
.dash-grid{display:grid;gap:16px;margin-bottom:16px;align-items:stretch}
.dash-grid.c2{grid-template-columns:1fr 1fr}
.dash-grid.c21{grid-template-columns:1.6fr 1fr}
.dash-grid.c12{grid-template-columns:1fr 1.6fr}
.dash-grid>.panel{margin-bottom:0;display:flex;flex-direction:column}
.dash-grid>.panel>.panel-body{flex:1;min-height:0;overflow:auto}
@media(max-width:1200px){.dash-grid.c2,.dash-grid.c21,.dash-grid.c12{grid-template-columns:1fr}}
/* v120.8(09-19) §4合规: 原 .72 透明度 → 地球透过面板导致文字不可读(截图实测)
   §4 要求「文字必须清晰、信息层级优先」→ 提到 .93, 保留微透质感但不牺牲可读性 */
/* v121(09-19 老板: 面板再多透一点) —— .93 → .86, 同时 blur 18→22px 补偿清晰度
   两层保障: 降低不透明度让地球更多透出, 提高模糊保证文字依旧锐利 */
/* v121.2(09-19 老板: 「所有面板透明度再高一点」) —— 主 .86→.80 / 子 .62→.54,
   blur 再提 22→26 / 16→20px。实测校准点: .72 曾是阈值(文字并发), 故停在 .80。 */
.panel,.kpi,.zone-block,.risk-kpi,.hz-card,.hw-kpi{background-image:none!important;background-color:rgba(11,14,19,.80)!important;backdrop-filter:blur(26px) saturate(1.10)!important;-webkit-backdrop-filter:blur(26px) saturate(1.10)!important;border:1px solid var(--hw-border)!important;box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 1px 2px rgba(0,0,0,.45),0 10px 30px -14px rgba(0,0,0,.6)!important;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,background-color .22s ease!important}
.panel:hover,.kpi:hover,.zone-block:hover,.hz-card:hover,.hw-kpi:hover{border-color:var(--hw-border-2)!important;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 2px 6px rgba(0,0,0,.5),0 16px 40px -16px rgba(0,0,0,.72)!important;transform:translateY(-2px)!important}
/* v121(09-19 老板: 「所有面板透明度再多一点」) —— 子卡片同步透化
   原先子卡多是不透明实底(#0e1116 / rgba(255,255,255,.03)) → 与主面板透明度脱节,
   形成“外壳透、内层黑”的矛盾观感。统一改为半透 + 毛玻璃, 内层也透出地球。 */
.hw-mkt,.hw-ai-cell,.hw-ev-wrap,.strat-card,.risk-item,.guard-item,.dept-block,.hw-kpi-inner,.risk-kpi,.hz-card{background-image:none!important;background-color:rgba(13,17,24,.54)!important;backdrop-filter:blur(20px) saturate(1.08)!important;-webkit-backdrop-filter:blur(20px) saturate(1.08)!important}
/* 表格/列表行: 不叠加不透明底, 直接透出 */
.hw-ev,.hw-sig,.hw-mkt-meta,.zone-badge.cex,.zone-badge.gmgn{background-color:rgba(16,21,30,.46)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
/* v121.2(09-19): 曾试给窄屏回提不透明度(.86/.64)以防小屏发灰 —— 受控实测表明
   移动端对比度在 .86/.64 与 .80/.54 下几乎一致(2.82 vs 2.84), 即透明度并非
   移动端可读性的变量(差异来自样本区而非面板底)。故撤销该覆盖, 保持"所有面板"
   统一的半透档位, 不搞特例。 */
/* 顶栏/侧栏同空间: 半透 + 毛玻璃 */
.topbar{background:rgba(8,10,14,.72)!important;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid rgba(255,255,255,.06)!important}
.hw-statusbar{background:rgba(8,8,14,.66)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.asset-bar{background:rgba(8,8,14,.66)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.panel::before{background:none!important}
.zone-block::after{display:none!important}
.zone-block.cex,.zone-block.gmgn{box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 1px 2px rgba(0,0,0,.45),0 10px 30px -14px rgba(0,0,0,.6)!important}
.zone-block{border-top:none!important}
.zone-badge.cex,.zone-badge.gmgn{background:var(--hw-surface-2)!important;border:1px solid var(--hw-border)!important}
.zone-badge.cex{color:var(--hw-brand)!important}.zone-badge.gmgn{color:var(--hw-accent-cyan)!important}
.panel-head{border-bottom:1px solid var(--hw-border)!important}
.panel-head h3 .icon{color:var(--hw-muted)!important;filter:none!important}
.gmgn-panel::before,.gmgn-panel{background-image:none!important;border-color:var(--hw-border)!important}
.gmgn-panel .panel-head h3{color:var(--hw-text)!important}
.gmgn-panel .panel-head{border-bottom-color:var(--hw-border)!important}
/* 顶栏/侧栏: 去渐变字/去发光, 冷白实色 */
.topbar{background:rgba(8,10,14,.86);border-bottom:1px solid var(--hw-border)}
.topbar-left h1 .brand{background:none;-webkit-text-fill-color:currentColor;color:var(--hw-text)}
.nav-item.active{background:var(--hw-accent-soft);color:var(--hw-accent)}
.nav-item.active::before{background:var(--hw-accent);height:16px}
.nav-item:hover{background:var(--hw-surface-2)}
.hw-wordmark i{color:var(--hw-brand);background:var(--hw-brand-soft);border-color:var(--hw-brand-line)}
/* 图表/热力/进度条: 去渐变改实色 */
.meter .fill{background:var(--hw-accent)!important}
.meter .fill::after{display:none}
.meter.up .fill{background:var(--hw-success)!important}
.meter.down .fill{background:var(--hw-danger)!important}
.meter.gold .fill{background:var(--hw-brand)!important}
.meter.cyan .fill{background:var(--hw-accent-cyan)!important}
.meter.pink .fill{background:var(--hw-accent)!important}
/* v140: 盈亏进度条专用(红涨绿跌) — 与状态 up/down 区分 */
.meter.pup .fill{background:var(--hw-up)!important}
.meter.pdn .fill{background:var(--hw-down)!important}
/* v140: 状态进度条(不随红涨绿跌反转) */
.meter.ok .fill{background:var(--hw-success)!important}
.meter.err .fill{background:var(--hw-danger)!important}
.chart-wrap{background:none}
.content tbody tr:hover,.panel table tbody tr:hover{background:rgba(77,124,254,.045)!important}
.heat-day .hd-bar .sg.o{background:rgba(14,116,144,.6)}.heat-day .hd-bar .sg.cp{background:rgba(226,85,90,.65)}.heat-day .hd-bar .sg.cl{background:rgba(46,158,122,.65)}
.dist-row.win .db-fill{background:var(--hw-up)}.dist-row.loss .db-fill{background:var(--hw-down)}
/* ══ v111: 滚动条 / 选中色 最终定义(唯一真源, 上面的历史叠加已清理) ══ */
::selection{background:rgba(77,124,254,.32);color:#fff}
html{scrollbar-color:#242a36 transparent}
::-webkit-scrollbar-thumb{background:rgba(120,132,150,.2);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(140,152,170,.36);border:2px solid transparent;background-clip:padding-box}
.conn-dot{background:var(--hw-success);box-shadow:none;animation:blink 2.4s infinite}
.conn-dot.off{background:var(--hw-warning);box-shadow:none}.conn-dot.down{background:var(--hw-danger);box-shadow:none}
/* v110.20: 保留“无发光”设计意图, 但改为**向下暗影**(非光晕) → 地球亮部/云层上的数值仍然可读 */
.kpi .value,.risk-kpi .rk-v{text-shadow:0 1px 10px rgba(0,0,0,.55)!important}
.kpi.gold .value,.kpi.cyan .value,.kpi.purple .value{text-shadow:0 1px 10px rgba(0,0,0,.55)!important}
.kpi{--accent:var(--hw-accent)}
.kpi-tint{border-left:2px solid var(--hw-border)}
/* ── HONGWU 品牌字标(顶栏) ── */
.hw-brandmark{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.12em;font-size:14px;color:var(--hw-text);white-space:nowrap}
.hw-brandmark .bm-dot{width:7px;height:7px;border-radius:50%;background:var(--hw-brand);flex:0 0 auto;box-shadow:0 0 10px var(--hw-brand-line),0 0 3px var(--hw-brand)}
.hw-brandmark .bm-sub{font-size:9.5px;font-weight:600;letter-spacing:.16em;color:var(--hw-dim);border-left:1px solid var(--hw-border);padding-left:9px}
/* ── 状态条 (§8 System / WS / Exchange / Last Sync / Clock) ── */
.hw-statusbar{display:flex;align-items:center;gap:0;flex-wrap:wrap;background:var(--hw-bg-elev);border-bottom:1px solid var(--hw-border);padding:0 14px;min-height:38px;font-family:var(--mono);font-size:var(--hw-fs-sm)}
.hw-statusbar .ss-item{display:flex;align-items:center;gap:7px;padding:7px 14px;white-space:nowrap;border-right:1px solid var(--hw-border)}
.hw-statusbar .ss-item:first-child{padding-left:2px}
.hw-statusbar .ss-k{color:var(--hw-dim);font-size:9.5px;letter-spacing:var(--hw-ls-label);text-transform:uppercase;font-family:var(--sans);font-weight:600}
.hw-statusbar .ss-v{color:var(--hw-text);font-weight:600;font-variant-numeric:tabular-nums}
.hw-statusbar .ss-v.ok{color:var(--hw-success)}.hw-statusbar .ss-v.warn{color:var(--hw-warning)}.hw-statusbar .ss-v.bad{color:var(--hw-danger)}.hw-statusbar .ss-v.na{color:var(--hw-dim)}
.hw-statusbar .ss-v.up{color:var(--hw-success)}.hw-statusbar .ss-v.down{color:var(--hw-danger)}
.hw-statusbar .ss-item.ss-grow{margin-left:auto;border-right:none;border-left:1px solid var(--hw-border);padding-right:2px}
.hw-statusbar .ss-live{display:inline-flex;align-items:center;gap:6px;font-weight:700;letter-spacing:.06em}
.hw-statusbar .ss-live i{width:7px;height:7px;border-radius:50%;background:var(--hw-dim);flex:0 0 auto}
.hw-statusbar .ss-live.live{color:var(--hw-success)}.hw-statusbar .ss-live.live i{background:var(--hw-success);animation:hwBreath 2.2s ease-in-out infinite}
.hw-statusbar .ss-live.warn{color:var(--hw-warning)}.hw-statusbar .ss-live.warn i{background:var(--hw-warning)}
.hw-statusbar .ss-live.off{color:var(--hw-danger)}.hw-statusbar .ss-live.off i{background:var(--hw-danger)}
.hw-statusbar .ss-clock{font-variant-numeric:tabular-nums;color:var(--hw-text);letter-spacing:.04em}
.hw-statusbar .ss-svc{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--hw-muted);padding:2px 7px;border-radius:var(--hw-r-xs);background:var(--hw-surface);border:1px solid var(--hw-border)}
.hw-statusbar .ss-svc i{width:5px;height:5px;border-radius:50%;background:var(--hw-dim)}
.hw-statusbar .ss-svc.on i{background:var(--hw-success)}.hw-statusbar .ss-svc.on{color:var(--hw-text)}
.hw-statusbar .ss-svc.deg i{background:var(--hw-warning)}
.hw-statusbar .ss-svc.off i{background:var(--hw-danger)}
/* ── Overview V2 区块标题 ── */
.hw-sec{margin-bottom:14px}
.hw-sec-h{display:flex;align-items:center;gap:9px;margin:0 0 9px;padding-bottom:7px;border-bottom:1px solid var(--hw-border);text-shadow:0 1px 8px rgba(0,0,0,.55)}
.hw-sec-h .hs-ic{color:var(--hw-dim);display:inline-flex}
.hw-sec-h h3{font-size:var(--hw-fs-sm);font-weight:700;letter-spacing:var(--hw-ls-label);text-transform:uppercase;color:var(--hw-muted)}
.hw-sec-h .hs-tag{margin-left:auto;font-size:var(--hw-fs-xs);color:var(--hw-dim);font-family:var(--mono);letter-spacing:.04em;display:inline-flex;align-items:center;gap:6px}
/* ── KPI 网格 (§8 核心资产) ── */
.hw-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.hw-kpi{position:relative;padding:12px 14px 11px;border-radius:var(--hw-r-md);overflow:hidden}
.hw-kpi .hk-l{font-size:var(--hw-fs-xs);font-weight:600;letter-spacing:var(--hw-ls-label);text-transform:uppercase;color:var(--hw-dim);display:flex;align-items:center;gap:6px;margin-bottom:5px}
.hw-kpi .hk-v{font-family:var(--mono);font-size:var(--hw-fs-xl);font-weight:600;letter-spacing:var(--hw-ls-num);color:var(--hw-text);line-height:1.15}
.hw-kpi .hk-u{font-size:var(--hw-fs-sm);color:var(--hw-dim);font-weight:500;margin-left:3px}
.hw-kpi .hk-s{font-size:var(--hw-fs-xs);color:var(--hw-dim);margin-top:4px;font-family:var(--mono)}
/* v140: 涨跌方向色(红涨绿跌) */
.hw-kpi.t-up .hk-v{color:var(--up)}.hw-kpi.t-down .hk-v{color:var(--down)}
.hw-kpi.t-brand{border-left:2px solid var(--hw-brand)!important}
.hw-kpi.t-accent{border-left:2px solid var(--hw-accent)!important}
.hw-kpi.t-danger{border-left:2px solid var(--hw-danger)!important}
.hw-kpi.t-warn{border-left:2px solid var(--hw-warning)!important}
/* ── 数字/价格变化动画 (§23 只服务数据) ── */
@keyframes hwNumUp{0%{background-color:rgba(46,158,122,.20)}100%{background-color:transparent}}
@keyframes hwNumDown{0%{background-color:rgba(192,70,63,.20)}100%{background-color:transparent}}
.hw-tick-up{animation:hwNumUp .85s ease-out}.hw-tick-down{animation:hwNumDown .85s ease-out}
@keyframes hwRowIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.hw-row-in{animation:hwRowIn .3s ease-out}
/* ── LIVE MARKETS ── */
.hw-mkt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.hw-mkt{border:1px solid var(--hw-border);border-radius:var(--hw-r-md);background:var(--hw-surface);padding:10px 12px}
.hw-mkt-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.hw-mkt-sym{display:flex;align-items:center;gap:7px;font-size:var(--hw-fs-md);font-weight:700;color:var(--hw-text);letter-spacing:.04em}
.hw-mkt-sym .coin-logo,.hw-mkt-sym .coin-fallback{width:22px;height:22px;font-size:9px}
.hw-mkt-chg{font-family:var(--mono);font-size:var(--hw-fs-sm);font-weight:700;padding:2px 7px;border-radius:var(--hw-r-xs)}
/* v140(老板: 全站红涨绿跌) 涨=红 / 跌=绿 */
.hw-mkt-chg.up{color:var(--up);background:var(--up-bg)}
.hw-mkt-chg.down{color:var(--down);background:var(--down-bg)}
.hw-mkt-px{font-family:var(--mono);font-size:var(--hw-fs-lg);font-weight:600;color:var(--hw-text);font-variant-numeric:tabular-nums}
/* v125: 幅度条(该币涨跌幅对全表最大值的比例 — 横向可比) */
.hw-mkt-bar{height:2px;border-radius:2px;background:rgba(255,255,255,.06);margin-top:6px;overflow:hidden}
.hw-mkt-bar i{display:block;height:100%;width:0;border-radius:2px;transition:width .5s ease,background .3s}
/* v125: 持仓标记(真实持仓才有, 颜色跟多空) */
.hw-mkt-seat{font-size:9px;font-weight:700;letter-spacing:.05em;padding:1px 6px;border-radius:4px;font-family:var(--mono)}
/* v140: 多=红 空=绿 (与红涨绿跌同源) */
.hw-mkt-seat.long{color:var(--up);background:var(--up-bg);border:1px solid rgba(226,85,90,.28)}
.hw-mkt-seat.short{color:var(--down);background:var(--down-bg);border:1px solid rgba(46,158,122,.28)}
/* v125: 卡片相对定位 + 地球定位点(悬停点亮, 提示可点击) */
.hw-mkt{position:relative;cursor:pointer;transition:border-color .2s,transform .2s}
.hw-mkt:hover{border-color:var(--hw-brand-line);transform:translateY(-2px)}
/* v126B: 地球区块币牌悬停 → 对应行情卡亮起(反向联动) */
.hw-mkt.globe-lit{border-color:var(--hw-brand)!important;background-color:rgba(28,24,14,.72)!important;
  box-shadow:0 0 0 1px var(--hw-brand-line),0 6px 22px rgba(77,124,254,.18);transform:translateY(-2px)}
.hw-mkt-loc{position:absolute;right:9px;bottom:8px;font-size:11px;color:var(--hw-dim);opacity:0;transition:opacity .2s,color .2s}
.hw-mkt:hover .hw-mkt-loc{opacity:1;color:var(--hw-brand)}
.hw-mkt-meta{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-size:var(--hw-fs-xs);color:var(--hw-dim);font-family:var(--mono)}
.hw-mkt-meta .vol{color:var(--hw-muted)}
/* ── SI INTELLIGENCE ── */
.hw-ai{display:grid;grid-template-columns:1.35fr 1fr;gap:12px}
.hw-ai-cell{border:1px solid var(--hw-border);border-radius:var(--hw-r-md);background:var(--hw-surface);padding:12px 14px}
.hw-ai-l{font-size:var(--hw-fs-xs);font-weight:600;letter-spacing:var(--hw-ls-label);text-transform:uppercase;color:var(--hw-dim);margin-bottom:6px}
.hw-ai-v{font-size:var(--hw-fs-md);color:var(--hw-text);font-weight:600;line-height:1.5;word-break:break-word}
.hw-ai-v.big{font-size:var(--hw-fs-lg)}
.hw-ai-v.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hw-ai-items{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hw-ai-why{background:var(--hw-surface-2);border:1px solid var(--hw-border);border-left:2px solid var(--hw-accent);border-radius:var(--hw-r-sm);padding:10px 12px;font-size:var(--hw-fs-md);line-height:1.62;color:var(--hw-text)}
.hw-ai-why .why-h{font-size:var(--hw-fs-xs);letter-spacing:var(--hw-ls-label);text-transform:uppercase;color:var(--hw-dim);font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:6px}
.hw-conf-wrap{display:flex;align-items:center;gap:9px}
.hw-conf-bar{flex:1;height:6px;border-radius:3px;background:var(--hw-surface-3);overflow:hidden}
.hw-conf-bar i{display:block;height:100%;background:var(--hw-accent);transition:width .5s ease}
.hw-signals{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.hw-sig{display:inline-flex;align-items:center;gap:5px;font-size:var(--hw-fs-xs);font-family:var(--mono);color:var(--hw-muted);background:var(--hw-surface-2);border:1px solid var(--hw-border);border-radius:var(--hw-r-xs);padding:3px 8px}
.hw-sig i{width:5px;height:5px;border-radius:50%;background:var(--hw-dim)}
/* v140: 信号灯多=红 空=绿 */
.hw-sig.long i{background:var(--up)}.hw-sig.short i{background:var(--down)}
.hw-lvl{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--hw-fs-sm);font-weight:700}
.hw-lvl i{width:6px;height:6px;border-radius:50%;background:currentColor}
.hw-lvl.low{color:var(--hw-success)}.hw-lvl.medium{color:var(--hw-warning)}.hw-lvl.high{color:var(--hw-danger)}
.hw-lvl.na{color:var(--hw-dim)}
/* ── LIVE SI EVENT STREAM ── */
.hw-ev-wrap{border:1px solid var(--hw-border);border-radius:var(--hw-r-md);background:var(--hw-surface);overflow:hidden}
.hw-ev-scroll{max-height:330px;overflow-y:auto}
.hw-ev{display:grid;grid-template-columns:64px 104px 78px 1fr;gap:10px;align-items:start;padding:8px 13px;border-bottom:1px solid var(--hw-border);font-size:var(--hw-fs-md)}
.hw-ev:last-child{border-bottom:none}
.hw-ev:hover{background:rgba(77,124,254,.045)}
.hw-ev .ev-ts{font-family:var(--mono);font-size:var(--hw-fs-xs);color:var(--hw-dim);padding-top:2px}
.hw-ev .ev-type{font-size:var(--hw-fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 0}
.hw-ev .ev-type.t-decision{color:var(--hw-accent)}.hw-ev .ev-type.t-risk{color:var(--hw-warning)}
.hw-ev .ev-type.t-intel{color:var(--hw-accent-cyan)}.hw-ev .ev-type.t-position{color:var(--hw-success)}
.hw-ev .ev-type.t-order{color:var(--hw-success)}.hw-ev .ev-type.t-system{color:var(--hw-muted)}
.hw-ev .ev-inst{font-family:var(--mono);font-size:var(--hw-fs-xs);color:var(--hw-muted);padding-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hw-ev .ev-body{min-width:0}
.hw-ev .ev-title{font-weight:600;color:var(--hw-text);font-size:var(--hw-fs-md)}
.hw-ev .ev-detail{color:var(--hw-muted);font-size:var(--hw-fs-sm);line-height:1.55;margin-top:2px;word-break:break-word}
.hw-ev .ev-lv{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--hw-dim);margin-right:6px;vertical-align:middle}
.hw-ev .ev-lv.warn{background:var(--hw-warning)}.hw-ev .ev-lv.error{background:var(--hw-danger)}.hw-ev .ev-lv.info{background:var(--hw-accent)}
@media(max-width:1400px){.hw-kpis{grid-template-columns:repeat(3,1fr)}.hw-mkt-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.hw-ai{grid-template-columns:1fr}.hw-mkt-grid{grid-template-columns:repeat(2,1fr)}.hw-statusbar .ss-item{padding:6px 9px}}
@media(max-width:760px){.hw-kpis{grid-template-columns:repeat(2,1fr)}.hw-mkt-grid{grid-template-columns:1fr 1fr}.hw-ev{grid-template-columns:56px 1fr;row-gap:2px}.hw-ev .ev-inst,.hw-ev .ev-type{grid-column:2}.hw-statusbar{font-size:10.5px}}
/* ══════════════════════════════════════════════════════════════
   v123(09-19 老板): 地球 = 黑白数字科幻操作台 — 全站语言统一
   ① 情报卡/标题/链接/状态点: 蓝紫 → 灰白单色(与地球同一语言)
   ② 操作台外框: 四角准星 + 边缘刻度 + 顶部读数条
   ③ 颜色只留给语义: 盈利绿 / 亏损红(其余一律灰白)
   ══════════════════════════════════════════════════════════════ */
.hq-intel .ai-ev{background:linear-gradient(100deg,rgba(17,18,22,.82),rgba(10,11,14,.70));
  border-color:rgba(214,224,238,.13);
  box-shadow:0 6px 24px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.07)}
.hq-intel .ai-ev:hover{border-color:rgba(240,246,255,.36);
  box-shadow:0 8px 30px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.15);transform:translateY(-1px)}
.hq-intel .ai-ev .tt{color:#eef2f8}
.hq-intel .ai-ev .sm{color:#a7afbd}
.hq-intel .ai-ev .meta{color:#7c8592}
/* 等级徽标: 由实心彩块 → 灰白描边(方向语义交给下面的 利多/利空 文字) */
.hq-intel .ai-ev .lv{background:rgba(226,233,244,.10);color:#dfe6f0;
  border:1px solid rgba(226,233,244,.34);font-weight:700;padding:0 5px}
.hq-intel .ai-ev::before{background:#c9d2df!important;opacity:.75}
.ai-hq .ai-stream-title{background:none;-webkit-background-clip:initial;-webkit-text-fill-color:#e9eef6;
  color:#e9eef6;letter-spacing:2.2px;font-weight:700}
.hq-intel .ai-ev-more{color:#c3ccda}
.hq-intel .ai-ev-more:hover{color:#ffffff;text-decoration:underline}
.hq-intel-ts{color:#9aa4b3}
.hq-intel-ts .pulse{background:#e9eef6;box-shadow:0 0 8px rgba(233,238,246,.85)}
/* 光束: 蓝 → 冷白 */
#hqLinkPath{filter:drop-shadow(0 0 5px rgba(226,236,250,.6))}
/* 操作台外框: 四角准星(HUD 定位框) */
.hw-hud-frame{position:fixed;inset:0;z-index:2;pointer-events:none}
.hw-hud-frame .hc{position:absolute;width:26px;height:26px;border:1px solid rgba(226,236,250,.30)}
.hw-hud-frame .hc.tl{top:64px;left:66px;border-right:0;border-bottom:0}
.hw-hud-frame .hc.tr{top:64px;right:14px;border-left:0;border-bottom:0}
.hw-hud-frame .hc.bl{bottom:14px;left:66px;border-right:0;border-top:0}
.hw-hud-frame .hc.br{bottom:14px;right:14px;border-left:0;border-top:0}
.hw-hud-frame .hc::after{content:'';position:absolute;width:3px;height:3px;background:rgba(236,243,255,.85);border-radius:50%}
.hw-hud-frame .hc.tl::after{top:-2px;left:-2px}
.hw-hud-frame .hc.tr::after{top:-2px;right:-2px}
.hw-hud-frame .hc.bl::after{bottom:-2px;left:-2px}
.hw-hud-frame .hc.br::after{bottom:-2px;right:-2px}
/* 边缘刻度带(操作台标尺) */
.hw-hud-frame .ticks{position:absolute;top:64px;bottom:14px;left:58px;width:6px;
  background-image:repeating-linear-gradient(180deg,rgba(226,236,250,.30) 0 1px,transparent 1px 14px)}
.hw-hud-frame .ticks.r{left:auto;right:6px;width:6px}

/* ══════════════════════════════════════════════════════════════════
   v125 设计打磨包 —— 目标: 层次分明 / 数字优先 / 少灰雾 / 有呼吸
   ══════════════════════════════════════════════════════════════════ */

/* ① KPI 卡: 数字是主角 —— 加大字号/收紧行高, 标签压成小号大写字距,
   顶部强调色由"整条 2px"改为"短发光条", 更精致不糊。 */
.kpi .label{font-size:10.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--sub);font-weight:600;margin-bottom:8px}
.kpi .value{font-size:26px;letter-spacing:-.025em}
.kpi::before{width:1px;opacity:.55}
.kpi::after{height:1px;left:14px;right:14px;
  background:linear-gradient(90deg,transparent,var(--accent,var(--hw-accent)) 22%,var(--accent,var(--hw-accent)) 78%,transparent)}
.kpi:hover::after{opacity:.85}
/* 数值强调色跟随语义(金/紫等), 只作用于数字本身 */
.kpi.gold .value{color:var(--gold)}.kpi.up .value{color:var(--up)}.kpi.down .value{color:var(--down)}

/* ② 面板: 标题行更轻, 抬升靠"上亮下暗"的边, 不靠大阴影 */
.panel-head h3{font-size:12.5px;letter-spacing:.03em}
.panel-head{padding:12px 18px}
.panel-sub{font-size:11px;color:var(--dim)}

/* ③ 表格: 数字列右对齐 + 等宽制表, 行悬停有方向感, 表头更弱(不与数据抢) */
td{font-variant-numeric:tabular-nums}
th{color:var(--dim);background:transparent;border-bottom:1px solid var(--hw-border)}
tbody tr:hover{background:linear-gradient(90deg,rgba(77,124,254,.075),rgba(77,124,254,.015) 70%,transparent)}
.content tbody tr:hover{background:linear-gradient(90deg,rgba(77,124,254,.075),rgba(77,124,254,.015) 70%,transparent)}

/* ④ 滚动条: 更细更暗, 悬停才亮 → 不切断画面 */
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(77,124,254,.30),rgba(77,124,254,.16));border-radius:8px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(77,124,254,.52),rgba(77,124,254,.34));background-clip:padding-box}

/* ⑤ 区域标头: 徽章与分隔线之间留呼吸, 分隔线渐隐更自然 */
.zone-header{margin-bottom:14px}
.zone-badge{letter-spacing:.06em;font-size:11.5px}

/* ⑥ 键盘可达: 明确焦点环(此前 focus 无样式, 键盘用户迷路) */
:focus-visible{outline:2px solid var(--hw-accent);outline-offset:2px;border-radius:var(--hw-r-xs)}
button:focus-visible,a:focus-visible,.nav-item:focus-visible{outline:2px solid var(--hw-accent);outline-offset:2px}

/* ⑦ 内容区上限宽度: 超大屏(>1900)不再把表格拉到整屏宽导致"左右看不到关联" */
@media(min-width:1900px){.content{padding-left:32px;padding-right:32px}}
@media(max-width:980px){.hw-hud-frame{display:none}}
/* v127.3(09-23): 英文环境下无英译时的原文标记 */
.zh-orig{font-size:9px;letter-spacing:.06em;color:var(--warn,#E8663D);border:1px solid currentColor;border-radius:3px;padding:0 4px;margin-left:5px;vertical-align:1px;opacity:.8}
/* ══════════════════════════════════════════════════════════════
   v200 (2026-09-26 老板: 全权大升级) — 从「后台管理台」→「SI 时代终端」
   ① 左栏: 图标栏目 → 常驻「状态轨」(3 域 + 活体数字 + 指挥台)
   ② SI 军师: 常驻右侧抽屉, 裁决/推理流式呈现, 辩论可回放
   铁律: 不改配色/涨跌色/数据链路/接口语义
   ══════════════════════════════════════════════════════════════ */
/* ① 状态轨: 桌面常驻展宽(不再 hover 才展开), 数字常显 */
.rail-cmd{display:flex;align-items:center;gap:9px;width:calc(100% - 16px);margin:2px 8px 12px;padding:9px 11px;border-radius:11px;border:1px solid var(--border2);background:linear-gradient(135deg,rgba(77,124,254,.12),rgba(77,124,254,.06));color:var(--sub);cursor:pointer;transition:all .18s;text-align:left;font-family:inherit}
.rail-cmd:hover{border-color:var(--brand);color:var(--txt);box-shadow:0 0 0 1px rgba(77,124,254,.25),0 6px 20px rgba(0,0,0,.35)}
.rail-cmd-ph{flex:1;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-cmd kbd{font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:5px;background:rgba(255,255,255,.06);border:1px solid var(--border2);color:var(--dim)}
.rail-sec{width:100%;padding:0 8px;margin-bottom:12px}
.rail-h{font-size:10px;letter-spacing:.15em;color:var(--dim);padding:4px 7px 6px;font-weight:700;text-transform:uppercase}
.rail-stat{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:9px;cursor:pointer;transition:background .15s;position:relative}
.rail-stat:hover{background:rgba(255,255,255,.05)}
.rail-stat::after{content:'›';position:absolute;right:6px;opacity:0;color:var(--dim);transition:opacity .15s}
.rail-stat:hover::after{opacity:.8}
.rs-l{font-size:12px;color:var(--sub);white-space:nowrap}
.rs-v{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--txt);white-space:nowrap}
.rs-v.up{color:var(--up)}.rs-v.down{color:var(--down)}.rs-v.warn{color:var(--gold)}
.rail-copilot{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:10px;border:1px solid rgba(77,124,254,.30);background:linear-gradient(135deg,rgba(77,124,254,.14),rgba(77,124,254,.05));color:var(--txt);cursor:pointer;font-size:13px;font-weight:600;transition:all .18s;font-family:inherit;margin-bottom:6px}
.rail-copilot:hover{border-color:var(--purple);box-shadow:0 0 0 1px rgba(77,124,254,.32),0 6px 20px rgba(0,0,0,.3)}
.cp-dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399;animation:dotPulse 1.6s ease infinite;flex:0 0 auto}
.cp-verdict{margin-left:auto;font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:20px;background:rgba(255,255,255,.07);color:var(--sub);white-space:nowrap}
/* ② SI 军师抽屉 */
.copilot-panel{position:fixed;top:0;right:0;bottom:0;width:412px;max-width:94vw;z-index:200;background:rgba(9,11,16,.965);border-left:1px solid var(--border2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transform:translateX(103%);transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-24px 0 70px rgba(0,0,0,.55)}
.copilot-panel.open{transform:translateX(0)}
.cp-head{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid var(--border);flex:0 0 auto}
.cp-title{font-size:14px;font-weight:700;letter-spacing:.02em}
.cp-x{margin-left:auto;cursor:pointer;color:var(--dim);font-size:19px;line-height:1;padding:2px 8px;border-radius:7px}
.cp-x:hover{background:rgba(255,255,255,.07);color:var(--txt)}
.cp-body{flex:1;overflow-y:auto;padding:16px 17px 28px}
.cp-verdict-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.cp-verdict-big{font-family:var(--mono);font-size:19px;font-weight:800;letter-spacing:.05em}
.cp-conf{font-family:var(--mono);font-size:12px;color:var(--sub)}
.cp-meta{font-size:11px;color:var(--dim);margin-top:4px}
.cp-sec{margin-top:18px}
.cp-sec-h{font-size:10px;letter-spacing:.15em;color:var(--dim);font-weight:700;margin-bottom:9px;text-transform:uppercase;display:flex;align-items:center;gap:7px}
.cp-sec-h::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
.cp-reason{font-size:13.5px;line-height:1.7;color:var(--txt)}
.cp-watch{list-style:none}
.cp-watch li{font-size:12.5px;color:var(--sub);margin:7px 0;padding-left:15px;position:relative;line-height:1.55}
.cp-watch li::before{content:'▸';position:absolute;left:0;color:var(--gold)}
.cp-debate{border:1px solid var(--border);border-radius:11px;overflow:hidden;margin-top:4px}
.cp-side{padding:11px 13px;font-size:12.5px;line-height:1.65}
.cp-side+.cp-side{border-top:1px solid var(--border)}
.cp-side.bull{border-left:2px solid var(--up);background:rgba(0,224,168,.035)}
.cp-side.bear{border-left:2px solid var(--down);background:rgba(255,77,107,.035)}
.cp-side-h{font-weight:700;font-size:10.5px;letter-spacing:.1em;margin-bottom:7px}
.cp-side.bull .cp-side-h{color:var(--up)}.cp-side.bear .cp-side-h{color:var(--down)}
.cp-side-txt{white-space:pre-wrap;color:var(--sub)}
.cp-cursor{display:inline-block;width:7px;height:13px;background:var(--gold);margin-left:2px;vertical-align:-2px;animation:blink 1s step-end infinite}
.cp-fab{position:fixed;right:18px;bottom:20px;z-index:190;width:50px;height:50px;border-radius:15px;border:1px solid rgba(77,124,254,.4);background:rgba(12,17,32,.95);color:var(--txt);cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);box-shadow:0 8px 28px rgba(0,0,0,.45);transition:transform .18s}
.cp-fab:hover{transform:translateY(-2px) scale(1.04);border-color:var(--purple)}
.cp-fab .cp-nd{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;border-radius:9px;background:var(--gold);color:#0b0d12;font-size:10px;font-weight:800;display:none;align-items:center;justify-content:center;padding:0 4px}
.cp-empty{color:var(--dim);font-size:12.5px;text-align:center;padding:34px 10px;line-height:1.7}
@media(max-width:900px){.copilot-panel{width:100%}.cp-fab{right:12px;bottom:74px}}

/* ══════════════════════════════════════════════════════════════
   v201 (2026-09-26 老板: 左边还是不行, 不想要这个栏目)
   参考 godly/awwwards/21st.dev → 「栏目」改为顶部横向状态轨
   · 导航=横向 chip(可滚动), 不是竖直栏目
   · 右侧常驻活体数字(权益/今日/回撤/持仓), 沿用 v200 的 .rs-v
   · 保留 .nav-item[data-tab] 与 badge ID → 切换/徽标逻辑零改动
   ══════════════════════════════════════════════════════════════ */
.hw-nav{height:48px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 14px;
  background:rgba(8,10,14,.72);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);
  border-bottom:1px solid var(--border);position:relative;z-index:60}
.hw-nav-logo{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;overflow:hidden;
  background:radial-gradient(circle at 50% 45%,rgba(245,190,28,.16),rgba(10,15,30,.6) 70%);
  box-shadow:0 0 0 1px rgba(245,190,28,.28),0 0 14px rgba(245,190,28,.18);overflow:hidden;transition:transform .2s}
.hw-nav-logo:hover{transform:scale(1.08);box-shadow:0 0 0 1px rgba(245,190,28,.5),0 0 20px rgba(245,190,28,.3)}
.hw-nav-logo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;transform:scale(1.06)}
.hw-nav-scroll{flex:1;display:flex;align-items:center;gap:5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  padding:4px 2px;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 94%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0,#000 94%,transparent 100%)}
.hw-nav-scroll::-webkit-scrollbar{display:none}
.hw-nav .nav-item{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;
  font-size:12.5px;font-weight:600;line-height:1;color:var(--sub);cursor:pointer;border:1px solid transparent;
  background:transparent;transition:all .18s ease;white-space:nowrap;font-family:inherit}
.hw-nav .nav-item:hover{color:var(--txt);background:rgba(255,255,255,.055);border-color:var(--border)}
.hw-nav .nav-item.active{color:var(--txt);border-color:rgba(77,124,254,.42);
  background:linear-gradient(135deg,rgba(77,124,254,.20),rgba(77,124,254,.10));
  box-shadow:0 0 0 1px rgba(77,124,254,.10),0 4px 16px rgba(0,0,0,.32)}
.hw-nav .nav-item .badge{font-family:var(--mono);font-size:9.5px;font-weight:800;line-height:1;padding:2px 5px;border-radius:8px;
  background:rgba(77,124,254,.22);color:#9BB4FF;border:1px solid rgba(77,124,254,.3)}
.hw-nav .nav-item.active .badge{background:rgba(77,124,254,.3);color:#EDE6FF}
.hw-nav-live{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding-left:14px;border-left:1px solid var(--border)}
.nl-item{display:flex;flex-direction:column;gap:2px;line-height:1}
.nl-k{font-size:9px;letter-spacing:.1em;color:var(--dim);font-weight:700;text-transform:uppercase;white-space:nowrap}
/* 顶栏 SI 军师按钮 */
.tb-copilot{display:flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(77,124,254,.32);background:linear-gradient(135deg,rgba(77,124,254,.15),rgba(77,124,254,.05));
  color:var(--txt);font-size:12px;font-weight:600;font-family:inherit;transition:all .18s}
.tb-copilot:hover{border-color:var(--purple);box-shadow:0 0 0 1px rgba(77,124,254,.3),0 4px 16px rgba(0,0,0,.3)}
.tb-copilot .cp-verdict{margin-left:2px}
/* 无侧栏: 隐藏移动端汉堡(抽屉已随侧栏移除) */
.sb-toggle{display:none !important}
@media(max-width:1180px){.hw-nav-live{display:none}.hw-nav{padding:0 10px}}
@media(max-width:900px){.hw-nav{height:44px}.hw-nav-scroll{padding:4px 0}}

/* v210-A 修复(查重发现): 旧侧栏规则 .nav-item .badge{opacity:0} 让横栏徽标隐形;
   旧 .nav-item.active::before 会在 chip 左侧画出竖条 → 一并中和 */
.hw-nav .nav-item .badge{opacity:1 !important;margin-left:0 !important}
.hw-nav .nav-item .label{opacity:1 !important}
.hw-nav .nav-item.active::before{display:none !important}
/* v210-A 环境光: 品牌金 + 能量蓝 的极淡氛围(整页, 不抢焦点) */
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(1000px 640px at 80% -12%, rgba(77,124,254,.065), transparent 62%),
    radial-gradient(760px 520px at 8% 110%, rgba(77,124,254,.055), transparent 60%);
  animation:hwAmbient 26s ease-in-out infinite alternate}
@keyframes hwAmbient{0%{opacity:.75}100%{opacity:1}}
.content{background:radial-gradient(1400px 760px at 50% -8%, rgba(77,124,254,.035), transparent 58%)}
/* v210-A 顶部 logo 用新 H 字标 */
.hw-nav-logo img{filter:drop-shadow(0 0 6px rgba(245,190,28,.35))}

/* ══════════════════════════════════════════════════════════════
   v210-B 交互活化 (2026-09-26 老板: 太死板了都是按键 → 要"活的界面")
   · 光标跟随聚光(卡片) · 微交互(按压/悬浮/聚焦) · 数字缓动 · 层次景深
   · 纯表现层: 不碰数据链路/接口/涨跌语义
   ══════════════════════════════════════════════════════════════ */
/* ── 1) 光标跟随聚光: 卡片随鼠标有"呼吸"(21st.dev 范式) ── */
.panel,.hw-kpi,.hw-sec,.zone-block{position:relative}
.panel::after,.hw-kpi::after,.zone-block::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  opacity:0;transition:opacity .35s ease;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(77,124,254,.09),transparent 62%)}
.panel:hover::after,.hw-kpi:hover::after,.zone-block:hover::after{opacity:1}
/* ── 2) 卡片景深抬升 ── */
.panel{transition:transform .3s cubic-bezier(.22,.9,.3,1),border-color .3s,box-shadow .3s}
.panel:hover{transform:translateY(-2px);border-color:rgba(77,124,254,.26);
  box-shadow:0 14px 38px rgba(0,0,0,.5),0 0 0 1px rgba(77,124,254,.06)}
.hw-kpi{transition:transform .26s cubic-bezier(.22,.9,.3,1),border-color .26s,box-shadow .26s,background .26s}
.hw-kpi:hover{transform:translateY(-3px);border-color:rgba(77,124,254,.32);background:linear-gradient(180deg,rgba(77,124,254,.055),rgba(255,255,255,.02))}
/* ── 3) 顶栏 chip: 微交互(按压回弹 + 悬浮光) ── */
.hw-nav .nav-item{transition:color .2s,background .25s,border-color .25s,transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
.hw-nav .nav-item:hover{transform:translateY(-1px)}
.hw-nav .nav-item:active{transform:translateY(0) scale(.955)}
.hw-nav .nav-item.active{position:relative;overflow:hidden}
.hw-nav .nav-item.active::after{content:'';position:absolute;left:12%;right:12%;bottom:-1px;height:1.5px;
  background:linear-gradient(90deg,transparent,var(--hw-brand),transparent);animation:hwChipUnder 3.2s ease-in-out infinite}
@keyframes hwChipUnder{0%,100%{opacity:.5;transform:scaleX(.72)}50%{opacity:1;transform:scaleX(1)}}
/* ── 4) 焦点可见(无障碍 + 高级感) ── */
:focus-visible{outline:2px solid rgba(77,124,254,.62);outline-offset:2px;border-radius:6px}
button:focus:not(:focus-visible){outline:none}
/* ── 5) 数字缓动观感: 等宽 + 光学对齐 ── */
.hk-n,.rs-v,.ss-clock,.ss-v,.ab-val{font-variant-numeric:tabular-nums;letter-spacing:-.01em}
/* ── 6) 按钮按压全局反馈 ── */
.panel-head .controls button:active,.rail-cmd:active,.tb-copilot:active,.hwm-btn:active{transform:scale(.955)}
.tb-copilot{transition:all .22s cubic-bezier(.22,.9,.3,1)}
.tb-copilot:hover{transform:translateY(-1px)}
/* ── 7) 自定义滚动条(品牌金细轨) ── */
.content::-webkit-scrollbar,.cp-body::-webkit-scrollbar,.hw-nav-scroll::-webkit-scrollbar{width:8px;height:8px}
.content::-webkit-scrollbar-track,.cp-body::-webkit-scrollbar-track{background:transparent}
.content::-webkit-scrollbar-thumb,.cp-body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(77,124,254,.30),rgba(77,124,254,.22));border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.content::-webkit-scrollbar-thumb:hover,.cp-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(77,124,254,.55),rgba(77,124,254,.4));background-clip:padding-box}
/* ── 8) 区块标题: 强调线呼吸 ── */
.hw-sec-h{position:relative}
.hw-sec-h::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,rgba(77,124,254,.42),rgba(77,124,254,.18) 38%,transparent 82%)}
/* ── 9) 骨架屏微光(加载态更"活") ── */
@keyframes hwShimmer{0%{background-position:-220px 0}100%{background-position:220px 0}}
.v2-unavail,.v2-nodata{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.035),transparent);background-size:220px 100%;background-repeat:no-repeat;animation:hwShimmer 2.4s infinite}
/* ── 10) 军师抽屉进场 ── */
.copilot-panel{transition:transform .34s cubic-bezier(.22,.9,.3,1),opacity .3s,box-shadow .34s}
/* ── 11) 品牌 logo 呼吸光 ── */
.hw-nav-logo{animation:hwLogoGlow 5.5s ease-in-out infinite}
@keyframes hwLogoGlow{0%,100%{box-shadow:0 0 0 1px rgba(245,190,28,.26),0 0 12px rgba(245,190,28,.16)}
  50%{box-shadow:0 0 0 1px rgba(245,190,28,.44),0 0 22px rgba(245,190,28,.3)}}
/* ── 12) 尊重"减少动效"偏好 ── */
@media(prefers-reduced-motion:reduce){
  .panel,.hw-kpi,.hw-nav .nav-item,.hw-nav-logo,.hw-nav .nav-item.active::after{animation:none!important;transition-duration:.01ms!important}
}

/* v210-C 地球静态兜底(无 WebGL 时): 品牌金环 + 深空底, 不空白不刷屏 */
.earth-fallback{background:radial-gradient(circle at 50% 42%,rgba(77,124,254,.10),transparent 62%)}
.earth-fb{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.earth-fb-ring{width:210px;height:210px;border-radius:50%;border:1px solid rgba(77,124,254,.34);
  box-shadow:0 0 40px rgba(77,124,254,.14),inset 0 0 60px rgba(77,124,254,.10);position:relative;
  animation:hwFbSpin 24s linear infinite}
.earth-fb-ring::before{content:'';position:absolute;inset:16px;border-radius:50%;border:1px dashed rgba(77,124,254,.24)}
.earth-fb-ring::after{content:'';position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;
  background:var(--hw-brand);box-shadow:0 0 12px var(--hw-brand);transform:translateX(-50%)}
.earth-fb-core{width:120px;height:120px;border-radius:50%;position:absolute;
  background:radial-gradient(circle at 42% 38%,rgba(255,235,180,.20),rgba(20,26,40,.9) 68%);
  box-shadow:0 0 40px rgba(0,0,0,.6)}
.earth-fb-tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
@keyframes hwFbSpin{to{transform:rotate(360deg)}}

/* ══ block #02  (原 index.html 第1779行)  HW_AURORA_V3 ══ */
/*HW_AURORA_V3*/
/* ══════════════════════════════════════════════════════════════
   HONGWU v3 · AURORA PROTOCOL — 视觉覆盖层
   虚空黑 + 极光光谱 + 无卡片化 + 大字当界面
   ══════════════════════════════════════════════════════════════ */
:root{
  --hw-bg:#05050A;--hw-bg-elev:#07070D;
  --hw-surface:#0B0B12;--hw-surface-2:#0F0F17;--hw-surface-3:#15151E;
  --hw-border:rgba(255,255,255,.07);--hw-border-2:rgba(255,255,255,.13);
  --hw-text:#ECEAF4;--hw-muted:#A29CB8;--hw-dim:#5F5A72;
  --hw-success:#3FD9A0;--hw-warning:#FFB86B;--hw-danger:#FF5C7A;
  --hw-up:#4DFFC4;--hw-down:#FF5C7A;
  --hw-up-bg:rgba(77,255,196,.12);--hw-down-bg:rgba(255,92,122,.12);
  --hw-accent:#4D7CFE;--hw-accent-cyan:#9BB4FF;--hw-accent-soft:rgba(77,124,254,.14);
  --hw-energy:#4DFFC4;--hw-energy-soft:rgba(77,255,196,.16);
  --hw-metal-hi:rgba(77,124,254,.15);--hw-metal-lo:rgba(8,8,16,.6);
  --hw-r-xs:5px;--hw-r-sm:8px;--hw-r-md:11px;--hw-r-lg:16px;--hw-r-pill:999px;
  --radius:11px;--radius-sm:8px;
  --hw-brand:#4D7CFE;--hw-brand-soft:rgba(77,124,254,.13);--hw-brand-line:rgba(77,124,254,.30);
  /* 旧名重映射(直接引用旧变量处同步换色) */
  --bg:var(--hw-bg);--bg2:var(--hw-bg-elev);--bg3:var(--hw-surface-2);--bg4:var(--hw-surface-3);
  --card:var(--hw-surface);--card2:var(--hw-surface-2);
  --border:var(--hw-border);--border2:var(--hw-border-2);
  --txt:var(--hw-text);--sub:var(--hw-muted);--dim:var(--hw-dim);--text:var(--hw-text);
  --up:var(--hw-up);--down:var(--hw-down);--up-bg:var(--hw-up-bg);--down-bg:var(--hw-down-bg);
  --purple:var(--hw-accent);--purple-bg:var(--hw-accent-soft);
  --pink:var(--hw-accent-cyan);--blue:var(--hw-accent);--cyan:var(--hw-accent-cyan);
  --accent:var(--hw-accent);--info:var(--hw-accent-cyan);
  --shadow-card:0 1px 2px rgba(0,0,0,.5);
  --shadow-hover:0 10px 34px rgba(0,0,0,.5),0 0 0 1px rgba(77,124,254,.14);
}
html,body{background:var(--hw-bg)}
body{
  background-image:
    radial-gradient(1200px 700px at 12% -8%,rgba(77,124,254,.15),transparent 62%),
    radial-gradient(1100px 640px at 92% 4%,rgba(77,124,254,.11),transparent 64%),
    radial-gradient(900px 700px at 60% 108%,rgba(77,255,196,.07),transparent 66%)!important;
  background-attachment:fixed;
}
body::before{background:radial-gradient(135% 100% at 50% 40%,transparent 70%,rgba(4,4,9,.82) 100%)!important}
body::after{opacity:.02!important}
::selection{background:rgba(77,124,254,.34);color:#fff}
html{scrollbar-color:rgba(77,124,254,.35) transparent}

/* ── 活背景层 ── */
.hw-aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hw-aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.40;display:block}
.hw-aurora i:nth-child(1){width:58vw;height:58vw;left:-16vw;top:-20vw;
  background:radial-gradient(circle,rgba(77,124,254,.55),transparent 66%);
  animation:hwDrift1 38s cubic-bezier(.22,.68,.36,1) infinite alternate}
.hw-aurora i:nth-child(2){width:50vw;height:50vw;right:-14vw;top:2vw;
  background:radial-gradient(circle,rgba(77,124,254,.42),transparent 66%);
  animation:hwDrift2 46s cubic-bezier(.22,.68,.36,1) infinite alternate}
.hw-aurora i:nth-child(3){width:46vw;height:46vw;left:30vw;bottom:-22vw;
  background:radial-gradient(circle,rgba(77,255,196,.30),transparent 68%);
  animation:hwDrift3 54s cubic-bezier(.22,.68,.36,1) infinite alternate}
.hw-aurora b{position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes hwDrift1{to{transform:translate(12vw,8vh) scale(1.18)}}
@keyframes hwDrift2{to{transform:translate(-10vw,10vh) scale(1.12)}}
@keyframes hwDrift3{to{transform:translate(6vw,-10vh) scale(1.2)}}

/* ── 壳层: 玻璃感 ── */
.sidebar{background:rgba(7,7,13,.74)!important;border-right:1px solid rgba(255,255,255,.06)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}
.topbar{background:linear-gradient(180deg,rgba(7,7,13,.82),rgba(7,7,13,.34))!important;
  border-bottom:1px solid rgba(255,255,255,.06)!important;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav-item.active{background:linear-gradient(115deg,rgba(77,124,254,.24),rgba(77,124,254,.12))!important;
  color:#D6CDFF!important;box-shadow:inset 0 0 0 1px rgba(77,124,254,.18)}
.nav-item.active::before{background:linear-gradient(180deg,#4D7CFE,#4DFFC4)!important}
.nav-item:hover{background:rgba(255,255,255,.05)!important;color:var(--hw-text)!important}

/* ── 面板: 无卡片化(细发丝 + 柔玻璃 + 大圆角) ── */
.panel{
  background:linear-gradient(180deg,rgba(15,15,23,.70),rgba(10,10,17,.52))!important;
  border:1px solid rgba(255,255,255,.07)!important;
  border-radius:16px!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 14px 40px rgba(0,0,0,.30);
}
.panel:hover{border-color:rgba(77,124,254,.30)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 46px rgba(77,124,254,.10)}
.panel-head h3,.panel-head h2{font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important;
  letter-spacing:.005em}
.panel table tbody tr:hover{background:rgba(77,124,254,.075)!important}
.panel table thead th{color:var(--hw-dim)!important}

/* ── KPI: 柔玻璃 ── */
.kpi{background:linear-gradient(180deg,rgba(15,15,23,.66),rgba(10,10,17,.48))!important;
  border:1px solid rgba(255,255,255,.07)!important;border-radius:14px!important}
.kpi:hover{border-color:rgba(77,124,254,.28)!important}

/* ── 按钮: 极光渐变边 ── */
.btn-ctl{border-radius:10px!important;border-color:rgba(255,255,255,.13)!important}
.btn-ctl:hover:not(:disabled){border-color:rgba(77,124,254,.55)!important;
  background:rgba(77,124,254,.15)!important;box-shadow:0 0 0 1px rgba(77,124,254,.18)!important}

/* ── 品牌/标题字体 ── */
.topbar-left h1,.hw-brandmark,.brand,.hq-brand{
  font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important;letter-spacing:.02em}

/* ── 滚动条 ── */
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(77,124,254,.4),rgba(77,124,254,.3));
  border-radius:9px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(77,124,254,.62),rgba(77,124,254,.5));
  background-clip:padding-box}

@media (prefers-reduced-motion:reduce){
  .hw-aurora i{animation:none!important}
}

/* ══ block #03  (原 index.html 第1895行)  HW_AURORA_V3B ══ */
/*HW_AURORA_V3B*/
/* v3.1 精修: 导航胶囊/表格/字面 */
.hw-nav{background:rgba(6,6,12,.70)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);
  border-bottom:1px solid rgba(255,255,255,.06)!important}
.hw-nav .nav-item{border-color:transparent!important;color:var(--hw-muted)!important;
  font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important;letter-spacing:.01em}
.hw-nav .nav-item:hover{background:rgba(255,255,255,.055)!important;border-color:rgba(255,255,255,.14)!important;color:var(--hw-text)!important}
.hw-nav .nav-item.active{color:#E6DEFF!important;border-color:rgba(77,124,254,.46)!important;
  background:linear-gradient(115deg,rgba(77,124,254,.22),rgba(77,124,254,.10))!important;
  box-shadow:0 0 0 1px rgba(77,124,254,.14),0 4px 18px rgba(77,124,254,.14)}
.hw-nav .nav-item.active .badge{background:rgba(77,124,254,.32)!important;color:#EDE6FF!important}
.panel table thead th{font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important;
  font-size:11px!important;letter-spacing:.055em!important;color:var(--hw-dim)!important;background:transparent!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important}
.panel table tbody tr:hover{background:rgba(77,124,254,.07)!important}
.panel-head h3,.panel-head h2,.zone-header{font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important}
.hw-nav-logo{background:radial-gradient(circle at 50% 45%,rgba(245,190,28,.18),rgba(9,10,20,.62) 70%)!important;
  box-shadow:0 0 0 1px rgba(245,190,28,.30),0 0 16px rgba(245,190,28,.16)!important}
.hw-nav-logo:hover{box-shadow:0 0 0 1px rgba(245,190,28,.52),0 0 24px rgba(245,190,28,.28)!important}

/* ══ block #04  (原 index.html 第1917行)  HW_AURORA_V3C ══ */
/*HW_AURORA_V3C*/
/* v3.2 大字当界面: 数值放大/字距收紧, 标签等宽小字 */
.kpi{padding:19px 21px 17px!important}
.kpi .label{font-family:'JetBrains Mono','SF Mono',monospace!important;
  font-size:9.5px!important;letter-spacing:.17em!important;text-transform:uppercase;
  color:var(--hw-dim)!important;font-weight:500!important;margin-bottom:11px!important}
.kpi .value{font-family:'Space Grotesk','Inter',var(--sans)!important;
  font-size:clamp(26px,2.05vw,34px)!important;font-weight:500!important;
  letter-spacing:-.028em!important;line-height:1.06!important}
.kpi .sub{font-family:'JetBrains Mono',monospace!important;font-size:10px!important;letter-spacing:.02em}
.hw-kpi .v,.hw-kpi .num{font-family:'Space Grotesk','Inter',var(--sans)!important;letter-spacing:-.026em!important}
.hw-kpi .l,.hw-kpi .label,.hw-kpi .k{font-family:'JetBrains Mono',monospace!important;letter-spacing:.16em!important}

/* 状态栏: 玻璃 + 等宽 */
.hw-statusbar{background:rgba(6,6,12,.62)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);
  border-bottom:1px solid rgba(255,255,255,.055)!important}
.hw-statusbar .ss-item{border-right:1px solid rgba(255,255,255,.055)!important;
  font-family:'JetBrains Mono','SF Mono',monospace;font-size:10.5px;letter-spacing:.05em}

/* 面板标题: 无衬线 + 收紧 */
.panel-head h3,.panel-head h2,.zone-header,.hw-sec-title{
  font-family:'Space Grotesk','Inter','Noto Sans SC',sans-serif!important;letter-spacing:.005em!important}
.panel-head{padding:16px 20px 13px!important}

/* 分区标题(核心资产/实时行情 等小标) */
.zone-header,.panel-head h3 .tag{font-family:'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase}

/* ══ block #05  (原 index.html 第1946行)  HW_AURORA_V3D ══ */
/*HW_AURORA_V3D*/
/* v3.3 减字: 情报流瘦身 —— 摘要单行省略, 元信息降权 */
.ai-ev{padding:8px 10px!important;border-radius:11px!important}
.ai-ev .bd{min-width:0}
.ai-ev .tt{font-size:12px!important;line-height:1.34!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ai-ev .sm{font-size:10px!important;-webkit-line-clamp:1!important;color:var(--hw-dim)!important;margin-top:2px!important}
.ai-ev .meta{font-size:9.5px!important;gap:8px!important;opacity:.72;margin-top:3px!important;
  font-family:'JetBrains Mono','SF Mono',monospace;letter-spacing:.02em}
.ai-ev .lv{font-family:'JetBrains Mono',monospace;font-size:9.5px!important;letter-spacing:.06em;
  border-radius:5px!important;padding:1px 5px!important}
.ai-events{gap:4px!important}
.ai-ev-more{font-family:'JetBrains Mono',monospace!important;font-size:10px!important;letter-spacing:.08em!
}

/* 状态栏: 次要项降权, 只留关键 */
.hw-statusbar .ss-item{font-size:10px!important;padding:6px 12px!important;opacity:.92}
.hw-statusbar .ss-k{font-size:9.5px!important;letter-spacing:.13em!important;text-transform:uppercase;
  color:var(--hw-dim)!important;font-family:'JetBrains Mono',monospace!important}
.hw-statusbar .ss-v{font-family:'JetBrains Mono',monospace!important;letter-spacing:-.01em}

/* 表格: 行高收紧, 数字等宽 */
.panel table tbody td{font-family:'JetBrains Mono','SF Mono',monospace;font-size:11.5px;letter-spacing:-.01em}
.panel table tbody td:first-child,.panel table tbody td .tk{font-family:var(--sans)!important;letter-spacing:0}

/* ══ block #06  (原 index.html 第1972行)  HW_AURORA_V3E ══ */
/*HW_AURORA_V3E*/
/* v3.4 地球收敛: 补齐漏网页 market/gmgn (原名单缺此二者, 地球未压暗) */
body[data-tab="market"] .earth-bg canvas,
body[data-tab="gmgn"] .earth-bg canvas{
  filter:saturate(.60) brightness(.34) contrast(1.02)!important;transition:filter .5s ease}
body[data-tab="market"] .earth-bg .hq-stage-vignette,
body[data-tab="gmgn"] .earth-bg .hq-stage-vignette{
  background:radial-gradient(150% 135% at 50% 42%,rgba(4,4,10,.72) 0%,rgba(4,4,10,.86) 62%,rgba(3,3,8,.92) 100%)!important}
body[data-tab="market"] .panel,body[data-tab="gmgn"] .panel{
  background:linear-gradient(180deg,rgba(11,11,18,.94),rgba(11,11,18,.88))!important}

/* 数据页统一: 再加一层极光暗场, 让地球只当"氛围"不当"主角" */
body[data-tab] .earth-bg::after{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(130% 100% at 50% 38%,transparent 44%,rgba(5,5,10,.55) 100%)}
body[data-tab="overview"] .earth-bg::after{background:none}

/* 总览地球: 让它更像"信号球"——降饱和 + 轻微收边, 不抢右侧情报流 */
body[data-tab="overview"] .earth-bg canvas{
  filter:saturate(.92) brightness(.98) contrast(1.06)!important}
body[data-tab="overview"] .earth-bg::after{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(120% 105% at 46% 50%,transparent 34%,rgba(5,5,10,.42) 100%)}

/* ══ block #07  (原 index.html 第1997行)  HW_AURORA_V3F ══ */
/*HW_AURORA_V3F*/
/* v3.4b 首屏(未设置 data-tab = 总览)补齐: 与 body[data-tab="overview"] 同效 */
body:not([data-tab]) .earth-bg canvas{
  filter:saturate(.92) brightness(.98) contrast(1.06)!important}
body:not([data-tab]) .earth-bg::after{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(120% 105% at 46% 50%,transparent 34%,rgba(5,5,10,.42) 100%)}

/* ══ block #08  (原 index.html 第2006行)  HW_AURORA_V3G ══ */
/*HW_AURORA_V3G*/
.cmd-box{position:relative;width:640px!important;background:linear-gradient(180deg,rgba(12,12,20,.98),rgba(8,8,14,.99))!important;border:1px solid rgba(77,124,254,.28)!important;box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 60px rgba(77,124,254,.10)!important}
.cmd-glow{position:absolute;inset:0;border-radius:16px;pointer-events:none;background:radial-gradient(120% 80% at 50% 0%,rgba(77,124,254,.10),transparent 60%)}
.cmd-aihead{display:flex;align-items:center;gap:8px;padding:9px 18px;border-bottom:1px solid rgba(77,124,254,.16);font-size:10.5px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#9BB4FF}
.cmd-aihead .d{width:6px;height:6px;border-radius:50%;background:#4D7CFE;box-shadow:0 0 10px #4D7CFE;display:inline-block;animation:hwPulse 2s infinite}
@keyframes hwPulse{0%,100%{opacity:1}50%{opacity:.3}}
.cmd-ask .cmd-key{background:rgba(77,124,254,.18);color:#4D7CFE;border:1px solid rgba(77,124,254,.3)}
.cmd-answer{padding:14px 16px}
.cmd-ans-title{font-size:15px;font-weight:600;color:#fff}
.cmd-ans-sub{font-size:10.5px;font-family:var(--mono);color:var(--dim);letter-spacing:.1em;margin:2px 0 10px}
.cmd-ans-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}
.cmd-ans-row:last-child{border-bottom:0}
.cmd-ans-row span{color:var(--sub)}
.cmd-ans-row b{font-family:var(--mono);font-weight:600;color:var(--txt)}
.hw-up{color:#4DFFC4!important}.hw-down{color:#ff6b7f!important}
.cmd-ans-go{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#9BB4FF;cursor:pointer;font-family:var(--mono)}
.cmd-ans-go:hover{color:#4D7CFE}
.cmd-empty{padding:18px;text-align:center;color:var(--dim);font-size:12.5px;line-height:1.9}
.cmd-empty b{color:#9BB4FF;font-weight:500}

/* ══ block #09  (原 index.html 第2027行)  HW_AURORA_V3I ══ */
/*HW_AURORA_V3I*/
.hw-battlebar{position:absolute;left:16px;top:14px;z-index:11;display:flex;align-items:center;gap:11px;padding:7px 14px;border-radius:12px;background:linear-gradient(100deg,rgba(11,11,20,.84),rgba(8,8,15,.60));border:1px solid rgba(77,124,254,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:10.5px;font-family:var(--mono),monospace;letter-spacing:.05em;color:var(--sub);pointer-events:none;max-width:calc(100% - 545px);flex-wrap:wrap}
.hw-battlebar .bb-live{width:6px;height:6px;border-radius:50%;background:#4DFFC4;box-shadow:0 0 9px #4DFFC4;animation:hwPulse 2s infinite;flex-shrink:0}
.hw-battlebar .bb-regime{color:#fff;font-weight:700;font-size:11.5px}
.hw-battlebar .bb-sep{width:1px;height:12px;background:rgba(255,255,255,.14);flex-shrink:0}
.hw-battlebar .bb-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.hw-battlebar .bb-d{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
.hw-battlebar .bb-strong{color:#4D7CFE;white-space:nowrap}
.hw-battlebar .bb-strong b{color:#e6ddff;font-weight:600}
.hw-battlebar .bb-dir-up{color:#4DFFC4}
.hw-battlebar .bb-dir-down{color:#ff6b7f}
.ai-ev .bb-score{font-family:var(--mono),monospace;font-size:9px;letter-spacing:.04em;color:#8f9ab0;background:rgba(77,124,254,.13);border:1px solid rgba(77,124,254,.22);border-radius:4px;padding:0 5px;margin-left:auto;flex-shrink:0}
.ai-ev .bb-score.hot{color:#F0A98C;background:rgba(232,102,61,.12);border-color:rgba(232,102,61,.28)}
@media(max-width:1100px){.hw-battlebar{max-width:calc(100% - 32px);left:14px;right:14px}}

/* ══ block #10  (原 index.html 第2043行)  HW_AURORA_V3J ══ */
/*HW_AURORA_V3J*/
/* ── A) 状态栏减字: 收紧内距 + 弱化标签 + 去掉冗余重复项 ── */
.hw-statusbar{padding:0 10px!important;min-height:34px!important}
.hw-statusbar .ss-item{padding:5px 10px!important;gap:5px!important}
.hw-statusbar .ss-k{font-size:10px!important;letter-spacing:.09em!important;opacity:.80}
.hw-statusbar .ss-v,.hw-statusbar .ss-clock{font-size:11.5px!important;font-weight:600!important}
/* "Current Time" 标签冗余 → 只留时钟 */
#hwTz{display:none!important}
.hw-statusbar .ss-item.ss-grow .ss-k{font-size:0!important}
.hw-statusbar .ss-item.ss-grow{min-width:78px;justify-content:flex-end}
/* Exchange 与 System 重叠(都是链路态) → 弱化为次要小字 */
.hw-statusbar .ss-item:has(#hwExState){opacity:.62}

/* ── B) 顶栏分组: 主工作区 vs 次要工具区(视觉分层, 不动 DOM) ── */
/* 次要区起点分隔线: 交易控制/系统架构/日志/设置 */
.hw-nav-scroll .nav-item[data-tab="control"]{position:relative;margin-left:14px}
.hw-nav-scroll .nav-item[data-tab="control"]::before{
  content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);
  width:1px;height:18px;background:linear-gradient(180deg,transparent,rgba(77,124,254,.42),transparent)}
/* 次要项降权(常态) */
.hw-nav-scroll .nav-item[data-tab="control"],
.hw-nav-scroll .nav-item[data-tab="architecture"],
.hw-nav-scroll .nav-item[data-tab="logs"],
.hw-nav-scroll .nav-item[data-tab="settings"]{font-size:12px;opacity:.68}
.hw-nav-scroll .nav-item[data-tab="control"]:hover,
.hw-nav-scroll .nav-item[data-tab="architecture"]:hover,
.hw-nav-scroll .nav-item[data-tab="logs"]:hover,
.hw-nav-scroll .nav-item[data-tab="settings"]:hover,
.hw-nav-scroll .nav-item[data-tab="control"].active,
.hw-nav-scroll .nav-item[data-tab="architecture"].active,
.hw-nav-scroll .nav-item[data-tab="logs"].active,
.hw-nav-scroll .nav-item[data-tab="settings"].active{opacity:1}

/* 主工作区强调(总览..风控仪表 前 12 项): 字母间距微收 */
.hw-nav-scroll .nav-item{letter-spacing:.005em}
.hw-nav .nav-item.active{box-shadow:0 0 0 1px rgba(77,124,254,.20),0 2px 12px rgba(77,124,254,.12)}

/* hw-nav-live 常驻数字: 极光强调 */
.hw-nav-live{gap:12px!important;padding-left:12px!important}
.hw-nav-live .nl-k{color:#7d86a0!important}
.hw-nav-live .rs-v{font-family:var(--mono),monospace!important;font-weight:700}

/* ══ block #11  (原 index.html 第2086行)  HW_AURORA_V3K ══ */
/*HW_AURORA_V3K*/
/* ══════ v3 第八刀: 首页极简 · 活体导航 · 交互补偿 ══════ */

/* ═══ A) 首页留白: 砍掉被重复覆盖的状态栏 (信息已由战场条+顶栏数字承担) ═══ */
body[data-tab="overview"] .hw-statusbar{display:none!important}
body[data-tab="overview"] .hw-nav{height:44px!important}

/* ═══ B) 导航项去按钮化: 无底无框, 靠光说话 ═══ */
.hw-nav .nav-item{
  border-color:transparent!important;background:transparent!important;box-shadow:none!important;
  padding:7px 12px!important;opacity:.70;
  transition:color .22s ease,opacity .22s ease,transform .22s ease,text-shadow .22s ease}
.hw-nav .nav-item:hover{color:#fff!important;background:transparent!important;opacity:1;transform:translateY(-1px)}
.hw-nav .nav-item.active{
  color:#fff!important;background:transparent!important;border-color:transparent!important;
  opacity:1;text-shadow:0 0 18px rgba(77,124,254,.55)}

/* ═══ C) 活体光束: 会游走的极光 (跟随 hover / 停在当前页) ═══ */
.hw-nav-cursor{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;opacity:0;z-index:5;
  transition:left .44s cubic-bezier(.34,1.28,.4,1),width .44s cubic-bezier(.34,1.28,.4,1),
             top .2s ease,height .2s ease,opacity .3s ease}
.hw-nav-cursor::after{content:'';position:absolute;left:8%;right:8%;bottom:3px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.95),rgba(77,124,254,.95),rgba(77,124,254,.95),transparent);
  box-shadow:0 0 12px rgba(77,124,254,.7);animation:hwBeamBreath 2.6s ease-in-out infinite}
.hw-nav-cursor::before{content:'';position:absolute;left:50%;top:50%;width:34px;height:22px;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(ellipse,rgba(77,124,254,.20),transparent 70%);filter:blur(4px)}
@keyframes hwBeamBreath{0%,100%{opacity:.65;transform:scaleX(.88)}50%{opacity:1;transform:scaleX(1)}}

/* ═══ D) 徽章 → 呼吸光点 (数值鼠标划过才现) ═══ */
.hw-nav .nav-item .badge{
  font-size:0!important;padding:0!important;width:6px;height:6px;min-width:6px;border-radius:50%!important;
  background:var(--gold)!important;border:none!important;box-shadow:0 0 9px rgba(77,124,254,.75);
  animation:hwDotBreath 2.2s ease-in-out infinite;margin-left:3px;overflow:hidden;vertical-align:middle}
.hw-nav .nav-item .badge[data-hw-zero="1"]{background:rgba(255,255,255,.14)!important;box-shadow:none!important;animation:none!important}
.hw-nav .nav-item:hover .badge,.hw-nav .nav-item.active .badge{
  font-size:9.5px!important;padding:2px 6px!important;width:auto!important;height:auto!important;min-width:0;
  border-radius:8px!important;animation:none!important}
@keyframes hwDotBreath{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}

/* ═══ E) 状态栏(非首页): 大写标签 → 图标点 ═══ */
.hw-statusbar .ss-k{font-size:0!important;letter-spacing:0!important}
.hw-statusbar .ss-k::before{content:'';display:inline-block;width:6px;height:6px;border-radius:2px;
  background:rgba(77,124,254,.6);box-shadow:0 0 8px rgba(77,124,254,.4)}
.hw-statusbar .ss-item:has(#hwWsState) .ss-k::before{border-radius:50%;background:rgba(77,124,254,.72)}
.hw-statusbar .ss-item:has(#hwExState) .ss-k::before{background:rgba(77,124,254,.72);transform:rotate(45deg)}
.hw-statusbar .ss-item:has(#hwLastSync) .ss-k::before{background:transparent;border:1.5px solid rgba(141,151,165,.7);box-shadow:none}
.hw-statusbar .ss-live i{width:6px;height:6px}

/* ═══ F) 右上控件幽灵化 ═══ */
.lang-btn,.cmd-kbd{background:transparent!important;border-color:transparent!important;opacity:.58;transition:all .2s ease}
.lang-btn:hover,.cmd-kbd:hover{opacity:1;background:rgba(255,255,255,.06)!important;border-color:var(--border)!important}
.tb-copilot{border-color:transparent!important;background:transparent!important;opacity:.8;transition:all .2s ease}
.tb-copilot:hover{opacity:1;border-color:rgba(77,124,254,.45)!important;
  background:linear-gradient(135deg,rgba(77,124,254,.14),rgba(77,124,254,.05))!important}
.tb-copilot .cp-dot{animation:hwDotBreath 2.4s ease-in-out infinite}

/* ═══ G) 首页情报卡: hover 升起 + 极光描边 ═══ */
body[data-tab="overview"] .ai-ev{transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
body[data-tab="overview"] .ai-ev:hover{transform:translateX(4px);
  box-shadow:-2px 0 0 0 rgba(77,124,254,.65),0 8px 26px rgba(0,0,0,.45);
  background:rgba(77,124,254,.045)!important}

/* ═══ H) 舞台右上活时钟 (首页砍了状态栏, 心跳与时间在此延续) ═══ */
.hw-hq-clock{position:absolute;right:16px;top:15px;z-index:11;display:inline-flex;align-items:center;gap:7px;
  padding:6px 13px;border-radius:12px;background:linear-gradient(100deg,rgba(11,14,22,.86),rgba(16,20,32,.62));
  border:1px solid rgba(77,124,254,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-family:var(--mono),monospace;font-size:11.5px;font-weight:700;color:#cdd8ee;letter-spacing:.05em;
  box-shadow:0 4px 18px rgba(0,0,0,.35)}
.hw-hq-clock i{width:6px;height:6px;border-radius:50%;background:#00e0a8;box-shadow:0 0 9px rgba(0,224,168,.85);
  animation:hwDotBreath 1.8s ease-in-out infinite;flex:0 0 auto}
@media(max-width:1100px){.hw-hq-clock{display:none}}

/* ══ block #12  (原 index.html 第2159行)  HW_AURORA_V3L ══ */
/*HW_AURORA_V3L*/
/* ══════ v3 第九刀: 首页导航减量 — 次要栏目收进「更多」 ══════ */

/* 首页压缩态: 隐藏次要栏目 (仅总览页, 且未展开) */
body[data-tab="overview"] .hw-nav.hw-nav-compact .nav-item.hw-nav-minor{display:none!important}
body[data-tab="overview"] .hw-nav.hw-nav-compact.hw-nav-expanded .nav-item.hw-nav-minor{display:flex!important}

/* 「更多」入口: 与导航项同气质, 右侧一枚渐显箭头 */
.hw-nav-more{display:none}
body[data-tab="overview"] .hw-nav-more{
  display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
  padding:7px 12px;border-radius:999px;border:1px solid transparent;background:transparent;
  font-size:12.5px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;opacity:.7;
  transition:color .2s ease,opacity .2s ease,transform .2s ease;white-space:nowrap}
body[data-tab="overview"] .hw-nav-more:hover{color:#fff;opacity:1;transform:translateY(-1px)}
.hw-nav-more .hwm-chev{display:inline-block;font-size:9px;transition:transform .25s ease;opacity:.8}
.hw-nav.hw-nav-expanded .hw-nav-more .hwm-chev{transform:rotate(180deg)}
.hw-nav-more .hwm-cnt{font-family:var(--mono);font-size:9.5px;font-weight:800;line-height:1;padding:2px 5px;
  border-radius:8px;background:rgba(255,255,255,.08);color:var(--sub);border:1px solid rgba(255,255,255,.08)}

/* 展开时次要项淡入 */
body[data-tab="overview"] .hw-nav.hw-nav-compact.hw-nav-expanded .nav-item.hw-nav-minor{
  animation:hwMinorIn .26s ease both}
@keyframes hwMinorIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}

/* ══ block #13  (原 index.html 第2185行)  HW_AURORA_V3M ══ */
/*HW_AURORA_V3M*/
/* ══════ v3 第十刀: 顶栏融入 · 控制簇活体收缩 ══════ */

/* ── A) 首页: 顶栏与导航融合, 读作一体 HUD (去分界线) ── */
body[data-tab="overview"] .topbar{
  background:transparent!important;border-bottom:none!important;height:46px!important;padding:0 16px!important}
body[data-tab="overview"] .hw-nav{background:rgba(8,10,14,.42)!important;border-bottom:1px solid rgba(255,255,255,.045)!important}

/* ── B) 音乐控件活体收缩: 默认一颗呼吸播放球 + 电平微光 ── */
.topbar-right .hwm-track,.topbar-right .hwm-btn.sm{
  max-width:0!important;opacity:0;padding-left:0!important;padding-right:0!important;
  overflow:hidden;border-width:0!important;
  transition:max-width .34s cubic-bezier(.4,0,.2,1),opacity .24s ease,padding .34s ease}
.topbar-right .hwm:hover .hwm-track,.topbar-right .hwm:hover .hwm-btn.sm{
  max-width:126px!important;opacity:1;padding-left:8px!important;padding-right:8px!important;border-width:1px!important}
.topbar-right .hwm-btn{width:24px!important;height:24px!important;border-color:transparent!important;background:transparent!important;opacity:.72}
.topbar-right .hwm-btn:hover{opacity:1}
.topbar-right .hwm-btn.on{
  background:rgba(0,224,168,.16)!important;border-color:rgba(0,224,168,.5)!important;
  box-shadow:0 0 12px rgba(0,224,168,.3)!important;opacity:1;animation:hwDotBreath 1.7s ease-in-out infinite}
.topbar-right .hwm-bar{width:38px!important;opacity:.8}

/* ── C) 顶栏徽章活体化: 呼吸信号点 + 去实体边框 ── */
.mode-badge,.regime-badge{animation:none!important;position:relative;border-color:transparent!important}
.mode-badge::before,.regime-badge::before{
  content:'';display:inline-block;width:5px;height:5px;border-radius:50%;flex:0 0 auto;
  background:currentColor;box-shadow:0 0 8px currentColor;margin-right:2px;
  animation:hwDotBreath 2.4s ease-in-out infinite}
.mode-badge{background:rgba(255,255,255,.055)!important}
.regime-badge{background:rgba(255,255,255,.035)!important}

/* ── D) 品牌字标微调 ── */
.hw-brandmark{letter-spacing:.10em!important;opacity:.92;transition:opacity .25s ease}
.hw-brandmark:hover{opacity:1}

/* ── E) 顶栏右侧整体: 常态退后, 悬浮上前 ── */
.topbar-right{transition:opacity .25s ease}
body[data-tab="overview"] .topbar-right{opacity:.82}
body[data-tab="overview"] .topbar-right:hover{opacity:1}

/* ══ block #14  (原 index.html 第2226行)  HW_AURORA_V3N ══ */
/*HW_AURORA_V3N*/
/* ══════ v3 第十一刀: 首页减负 — 情报/行情按需展开 ══════ */

/* 折叠态: 只留首屏精华 */
body[data-tab="overview"] #aiEvents.hw-collapsed .ai-ev:nth-child(n+4){display:none!important}
body[data-tab="overview"] #hwMktGrid.hw-collapsed .hw-mkt:nth-child(n+5){display:none!important}

/* 展开态: 淡入 */
body[data-tab="overview"] #aiEvents:not(.hw-collapsed) .ai-ev,
body[data-tab="overview"] #hwMktGrid:not(.hw-collapsed) .hw-mkt{animation:hwReveal .32s ease both}
@keyframes hwReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

/* 「展开」按钮: 幽灵胶囊, 悬停亮起 */
.hw-expand{
  display:none;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:9px;
  padding:7px 12px;border-radius:11px;cursor:pointer;font-family:inherit;
  font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--sub);
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.012));
  border:1px dashed rgba(77,124,254,.26);
  transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease}
body[data-tab="overview"] .hw-expand{display:inline-flex}
.hw-expand:hover{color:#fff;border-color:rgba(77,124,254,.6);background:rgba(77,124,254,.07);transform:translateY(-1px)}
.hw-expand .hwe-n{font-family:var(--mono);font-size:10px;font-weight:800;padding:1px 6px;border-radius:8px;
  background:rgba(77,124,254,.16);color:#4D7CFE;border:1px solid rgba(77,124,254,.28)}
.hw-expand .hwe-chev{display:inline-block;font-size:9px;opacity:.85;transition:transform .28s ease}
.hw-expand.hw-open .hwe-chev{transform:rotate(180deg)}

/* ══ block #15  (原 index.html 第2254行)  HW_AURORA_V3O ══ */
/*HW_AURORA_V3O*/
/* ══════ v3 第十二刀: GMGN ⇄ OKX 对称化 · 链上资产带 ══════ */

/* ── A) GMGN 5 张大卡 → 一条「链上资产带」(横排小字, 竖分隔, 无卡片感) ── */
body[data-tab="overview"] #gmgnKpiRow{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:0!important;margin:0 0 12px!important;
  padding:11px 6px 10px!important;border-radius:13px!important;
  background:linear-gradient(90deg,rgba(77,124,254,.075),rgba(77,124,254,.028) 55%,rgba(77,124,254,.008))!important;
  border:1px solid rgba(77,124,254,.14)!important;
  align-items:stretch;position:relative;overflow:hidden}
body[data-tab="overview"] #gmgnKpiRow::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,transparent,rgba(77,124,254,.85),transparent)}
body[data-tab="overview"] #gmgnKpiRow .kpi{
  background:none!important;border:none!important;box-shadow:none!important;
  padding:1px 12px!important;border-radius:0!important;overflow:visible!important;
  transform:none!important;
  border-left:1px solid rgba(255,255,255,.06)!important}
body[data-tab="overview"] #gmgnKpiRow .kpi:first-child{border-left:none!important;padding-left:14px!important}
body[data-tab="overview"] #gmgnKpiRow .kpi:hover{transform:none!important;box-shadow:none!important;border-color:rgba(255,255,255,.06)!important}
body[data-tab="overview"] #gmgnKpiRow .kpi::before,
body[data-tab="overview"] #gmgnKpiRow .kpi::after{display:none!important}
body[data-tab="overview"] #gmgnKpiRow .kpi .label{
  font-size:9.5px!important;margin-bottom:3px!important;opacity:.74;
  letter-spacing:.03em;font-weight:600}
body[data-tab="overview"] #gmgnKpiRow .kpi .label .icon{opacity:.55;width:11px;height:11px}
body[data-tab="overview"] #gmgnKpiRow .kpi .value{
  font-size:15.5px!important;text-shadow:none!important;letter-spacing:-.01em;line-height:1.15}
body[data-tab="overview"] #gmgnKpiRow .kpi .sub{display:none!important}
body[data-tab="overview"] #gmgnKpiRow .kpi .value span{font-size:10px!important;opacity:.55;font-weight:500}

/* ── B) 孵化器 KPI(面板内 2×2) → 压扁 ── */
body[data-tab="overview"] #gmgnDhKpiRow{gap:6px!important;margin-bottom:9px!important}
body[data-tab="overview"] #gmgnDhKpiRow .kpi{padding:7px 11px!important;border-radius:9px!important}
body[data-tab="overview"] #gmgnDhKpiRow .kpi .label{font-size:9.5px!important;margin-bottom:3px!important;opacity:.76}
body[data-tab="overview"] #gmgnDhKpiRow .kpi .value{font-size:14.5px!important;text-shadow:none!important}
body[data-tab="overview"] #gmgnDhKpiRow .kpi .sub{font-size:9.5px!important;margin-top:2px!important;opacity:.7}
body[data-tab="overview"] #gmgnDhKpiRow .kpi::before{width:2px!important;opacity:.55}

/* ── C) 两侧对称: 区块头读作同一系统 ── */
.zone-block.gmgn .zone-header .tag{
  background:rgba(255,255,255,.045)!important;color:var(--sub)!important;
  border:1px solid rgba(255,255,255,.07);font-weight:600;letter-spacing:.02em}
.zone-block .zone-badge{box-shadow:0 0 0 1px rgba(255,255,255,.03) inset}
/* 区块顶线统一为 1px 高光(与面板金属切边同族) */
.zone-block.cex,.zone-block.gmgn{
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 10px 30px -16px rgba(0,0,0,.55)!important}

/* ── D) GMGN 面板呼吸: 悬停微亮(与 OKX 一致) ── */
body[data-tab="overview"] .zone-block.gmgn .panel{transition:border-color .22s ease,background .22s ease}
body[data-tab="overview"] .zone-block.gmgn .panel:hover{border-color:rgba(77,124,254,.22)}

/* ── E) 小屏: 资产带允许换行 ── */
@media(max-width:1400px){
  body[data-tab="overview"] #gmgnKpiRow{grid-template-columns:repeat(3,minmax(0,1fr))!important;row-gap:9px!important}
  body[data-tab="overview"] #gmgnKpiRow .kpi:nth-child(4){border-left:none!important;padding-left:14px!important}
}

/* ══ block #16  (原 index.html 第2314行)  HW_AURORA_V3P ══ */
/*HW_AURORA_V3P*/
/* ══════ v3 第十三刀: 首页底部 活体化 + 减负 ══════ */

/* ── A) 快速入口减负: 默认 6 个, 其余收进「更多」 ── */
body[data-tab="overview"] .home-links a:nth-child(n+7){display:none}
body[data-tab="overview"] .home-links.hw-open a:nth-child(n+7){display:inline-flex!important;animation:hwReveal .3s ease both}

/* 入口胶囊活体: 悬停一道高光扫过 */
body[data-tab="overview"] .home-links a{position:relative;overflow:hidden}
body[data-tab="overview"] .home-links a::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.10) 50%,transparent 66%);
  transform:translateX(-130%);transition:transform .6s cubic-bezier(.4,0,.2,1)}
body[data-tab="overview"] .home-links a:hover::after{transform:translateX(130%)}

/* 「更多」按钮(复用第十一刀胶囊, 行内变体) */
.hw-expand.inline{width:auto;display:inline-flex;margin-top:10px}

/* ── B) 聚合带活体化 ── */

/* B1) 面板头: 一道细光缓缓扫过 */
body[data-tab="overview"] .home-band .panel-head{position:relative;overflow:hidden}
body[data-tab="overview"] .home-band .panel-head::after{
  content:'';position:absolute;bottom:-1px;left:-32%;width:32%;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--hw-brand),transparent);
  animation:hwHeadSweep 5.2s ease-in-out infinite}
@keyframes hwHeadSweep{0%{left:-32%;opacity:0}12%{opacity:.9}55%{left:100%;opacity:0}100%{left:100%;opacity:0}}

/* B2) 行: 悬停极光游入 + 左侧光针 */
body[data-tab="overview"] .hb-row{position:relative;transition:background .22s ease,padding-left .22s ease,border-color .22s ease}
body[data-tab="overview"] .hb-row::before{
  content:'';position:absolute;left:0;top:1px;bottom:1px;width:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--hw-brand),transparent);
  opacity:0;transform:scaleY(.35);transition:opacity .26s ease,transform .26s ease}
body[data-tab="overview"] .hb-row:hover{
  background:linear-gradient(90deg,rgba(77,124,254,.075),transparent 72%);
  padding-left:9px;border-color:rgba(77,124,254,.16)}
body[data-tab="overview"] .hb-row:hover::before{opacity:1;transform:scaleY(1)}

/* B3) 策略健康点: 呼吸 */
body[data-tab="overview"] .strat-dot{animation:hwDotBreath 2.3s ease-in-out infinite}
body[data-tab="overview"] .hb-row:hover .strat-dot{animation-duration:1.2s}

/* B4) 市场速览卡: 悬停浮起 */
body[data-tab="overview"] .hb-mc{transition:transform .2s ease,border-color .2s ease,background .2s ease}
body[data-tab="overview"] .hb-mc:hover{transform:translateY(-2px);border-color:rgba(77,124,254,.30)}

/* B5) 状态胶囊微光 */
body[data-tab="overview"] .hb-status.on{box-shadow:0 0 10px rgba(46,158,122,.28)}
body[data-tab="overview"] .hb-status.err{box-shadow:0 0 10px rgba(192,70,63,.30)}

/* ══ block #17  (原 index.html 第2366行)  HW_AURORA_V3Q ══ */
/*HW_AURORA_V3Q*/
/* ══════ v3 第十四刀: 双栏配平 · 长表限高渐隐内滚 ══════ */

/* ── A) 长表统一限高 + 底部渐隐(提示"还有更多") ── */
body[data-tab="overview"] .zone-block .panel-body > div[style*="overflow"]{
  max-height:var(--hw-tbl-cap,300px);overflow-y:auto!important;
  -webkit-mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.15) 100%);
  mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.15) 100%);
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent;
  overscroll-behavior:contain}
body[data-tab="overview"] .zone-block .panel-body > div[style*="overflow"]::-webkit-scrollbar{width:5px;height:5px}
body[data-tab="overview"] .zone-block .panel-body > div[style*="overflow"]::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.13);border-radius:3px}
body[data-tab="overview"] .zone-block .panel-body > div[style*="overflow"]::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.24)}
body[data-tab="overview"] .zone-block .panel-body > div[style*="overflow"]::-webkit-scrollbar-track{background:transparent}

/* OKX 侧: 实时持仓表(nth 定序) */
body[data-tab="overview"] .zone-block.cex .panel-body > div[style*="overflow"]{--hw-tbl-cap:298px}
/* GMGN 侧: 链上持仓(浅) / 链上交易(深) */
body[data-tab="overview"] .zone-block.gmgn .panel-body > div[style*="overflow"]{--hw-tbl-cap:158px}
body[data-tab="overview"] .zone-block.gmgn .panel-body > div[style*="overflow"]:has(tbody#gmgnDhPosBody){--hw-tbl-cap:132px}

/* ── B) 链上交易列表限高渐隐 ── */
body[data-tab="overview"] #gmgnTradeList{
  max-height:242px;overflow-y:auto;
  -webkit-mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.15) 100%);
  mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.15) 100%);
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
body[data-tab="overview"] #gmgnTradeList::-webkit-scrollbar{width:5px}
body[data-tab="overview"] #gmgnTradeList::-webkit-scrollbar-thumb{background:rgba(255,255,255,.13);border-radius:3px}

/* ── C) 空态收紧(两侧一致) ── */
body[data-tab="overview"] .zone-block .empty{padding:20px 12px!important;font-size:12px}

/* ── D) 表体行距统一(两侧同密度) ── */
body[data-tab="overview"] .zone-block table th{padding-top:8px!important;padding-bottom:8px!important}
body[data-tab="overview"] .zone-block table td{padding-top:9px!important;padding-bottom:9px!important}

/* ══ block #18  (原 index.html 第2405行)  HW_AURORA_V3R ══ */
/*HW_AURORA_V3R*/
/*HW_AURORA_V3R*/
/* ══════ v3 第十五刀: 双栏配平 — 账户级面板升为全幅带 ══════ */
/* 策略战报/系统体检 由「OKX 合约侧」移出 → 双账户下方全幅带。
   理由: 二者本是「账户级 / 系统级」信息(非 OKX 合约专属),
   挂在一侧既不对称、语义也不对; 移出后 OKX/GMGN 两列高度拉平, K线 保持原大。 */

.hw-wide-band{margin-top:16px}
.hw-wide-band > .grid-1-1{gap:16px;align-items:stretch}
.hw-wide-band > .grid-1-1 > .panel{height:100%}
.hw-wide-band .panel-body.padded{min-height:148px}
@media(max-width:1400px){.hw-wide-band > .grid-1-1{grid-template-columns:1fr}}

/* ══ block #19  (原 index.html 第2419行)  HW_AURORA_V3S ══ */
/*HW_AURORA_V3S*/
/* ══════ v3 第十六刀: GMGN 专属页资金带同步瘦身 ══════ */
/* 首页(#gmgnKpiRow)已瘦身, 但专属页(#gmgnKpiRowFull)仍立 5 张大卡 → 全站统一为「链上资产带」 */

/* ── A) GMGN 专属页 5 张大卡 → 资产带 ── */
#gmgnKpiRowFull{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:0!important;margin:0 0 16px!important;
  padding:12px 6px 11px!important;border-radius:14px!important;
  background:linear-gradient(90deg,rgba(77,124,254,.075),rgba(77,124,254,.028) 55%,rgba(77,124,254,.008))!important;
  border:1px solid rgba(77,124,254,.14)!important;
  align-items:stretch;position:relative;overflow:hidden}
#gmgnKpiRowFull::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,transparent,rgba(77,124,254,.85),transparent)}
#gmgnKpiRowFull .kpi{
  background:none!important;border:none!important;box-shadow:none!important;
  padding:1px 14px!important;border-radius:0!important;overflow:visible!important;transform:none!important;
  border-left:1px solid rgba(255,255,255,.06)!important}
#gmgnKpiRowFull .kpi:first-child{border-left:none!important;padding-left:16px!important}
#gmgnKpiRowFull .kpi:hover{transform:none!important;box-shadow:none!important;border-color:rgba(255,255,255,.06)!important}
#gmgnKpiRowFull .kpi::before,#gmgnKpiRowFull .kpi::after{display:none!important}
#gmgnKpiRowFull .kpi .label{font-size:10px!important;margin-bottom:4px!important;opacity:.74;letter-spacing:.03em;font-weight:600}
#gmgnKpiRowFull .kpi .label .icon{opacity:.55;width:11px;height:11px}
#gmgnKpiRowFull .kpi .value{font-size:17px!important;text-shadow:none!important;letter-spacing:-.01em;line-height:1.15}
#gmgnKpiRowFull .kpi .sub{font-size:10px!important;margin-top:3px!important;opacity:.62}
#gmgnKpiRowFull .kpi .value span{font-size:10.5px!important;opacity:.55;font-weight:500}

/* ── B) GMGN 专属页 孵化器 2x2 → 压扁 ── */
#gmgnDhKpiRowFull{gap:6px!important;margin-bottom:10px!important}
#gmgnDhKpiRowFull .kpi{padding:8px 12px!important;border-radius:9px!important}
#gmgnDhKpiRowFull .kpi .label{font-size:10px!important;margin-bottom:3px!important;opacity:.76}
#gmgnDhKpiRowFull .kpi .value{font-size:15px!important;text-shadow:none!important}
#gmgnDhKpiRowFull .kpi .sub{font-size:10px!important;margin-top:2px!important;opacity:.68}
#gmgnDhKpiRowFull .kpi::before{width:2px!important;opacity:.55}

/* ── C) 小屏 ── */
@media(max-width:1400px){
  #gmgnKpiRowFull{grid-template-columns:repeat(3,minmax(0,1fr))!important;row-gap:10px!important}
  #gmgnKpiRowFull .kpi:nth-child(4){border-left:none!important;padding-left:16px!important}
}
@media(max-width:768px){
  #gmgnKpiRowFull{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #gmgnKpiRowFull .kpi:nth-child(odd){border-left:none!important;padding-left:16px!important}
}

/* ══ block #20  (原 index.html 第2466行)  HW_AURORA_V4 ══ */
/*HW_AURORA_V4*/
/*HW_AURORA_V4A  跨时代 · 滚动叙事引擎*/
#earthBg{overflow:hidden}
#hwV4Stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}
#hwV4Prog{position:fixed;top:0;left:0;height:2px;width:0;z-index:99999;pointer-events:none;
  background:linear-gradient(90deg,#4D7CFE,#4D7CFE 45%,#4D7CFE);
  box-shadow:0 0 16px rgba(77,124,254,.6),0 0 6px rgba(77,124,254,.45)}
#hwV4Rail{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:9980;
  display:none;flex-direction:column;gap:13px;align-items:center}
#hwV4Rail .v4-dot{width:7px;height:7px;padding:0;border:0;border-radius:20px;
  background:rgba(255,255,255,.16);cursor:pointer;position:relative;
  transition:height .4s cubic-bezier(.22,1,.36,1),background .3s,transform .3s,box-shadow .35s}
#hwV4Rail .v4-dot:hover{background:rgba(255,255,255,.45);transform:scale(1.4)}
#hwV4Rail .v4-dot.on{height:24px;background:linear-gradient(180deg,#4D7CFE,#4D7CFE);
  box-shadow:0 0 14px rgba(77,124,254,.6)}
#hwV4Rail .v4-dot::after{content:'';position:absolute;right:14px;top:50%;transform:translateY(-50%) scale(.7);
  background:rgba(10,12,18,.86);border:1px solid rgba(77,124,254,.3);color:#dfe6ef;
  font-size:10.5px;line-height:1;padding:5px 9px;border-radius:7px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
#hwV4Rail .v4-dot:hover::after{opacity:1;transform:translateY(-50%) scale(1)}
@media(max-width:1100px){#hwV4Rail{display:none!important}}

/* ── 分镜入场(尊重系统减弱动效) ── */
@media (prefers-reduced-motion: no-preference){
  #tab-overview > .hw-v4-scene{opacity:0;transform:translateY(30px);filter:blur(9px);
    transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1.05s cubic-bezier(.22,1,.36,1),filter .85s ease}
  #tab-overview > .hw-v4-scene.v4-in{opacity:1;transform:none;filter:none}
  /* 分镜内子块轻错峰 */
  #tab-overview > .hw-v4-scene.v4-in > .hw-sec,
  #tab-overview > .hw-v4-scene.v4-in > .panel{animation:hwV4Rise .75s both cubic-bezier(.22,1,.36,1)}
  #tab-overview > .hw-v4-scene.v4-in > *:nth-child(2){animation-delay:.05s}
  #tab-overview > .hw-v4-scene.v4-in > *:nth-child(3){animation-delay:.1s}
  #tab-overview > .hw-v4-scene.v4-in > *:nth-child(4){animation-delay:.15s}
}
@keyframes hwV4Rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  #tab-overview > .hw-v4-scene{opacity:1!important;transform:none!important;filter:none!important}
}

/* ══ block #21  (原 index.html 第2506行)  HW_AURORA_V4D ══ */
/*HW_AURORA_V4D*/
/*HW_AURORA_V4D*/
/* ══ v4 第三刀: 粒子可见性 + 场景轨可见性 + 悬停标签修复 ══ */

/* A) 粒子层: 定死层级(压过地球canvas与暗角, 仍在内容之下) + 提亮 */
#hwV4Stars{z-index:4!important;opacity:.95;mix-blend-mode:screen}
#earthBg{overflow:hidden}

/* B) 场景轨: 更大更亮 + 竖向轨道线 + 悬停标签(修 content:attr) */
#hwV4Rail::before{content:'';position:absolute;left:50%;top:-8px;bottom:-8px;width:1px;
  transform:translateX(-50%);background:linear-gradient(180deg,transparent,rgba(255,255,255,.14) 20%,rgba(255,255,255,.14) 80%,transparent);z-index:-1}
#hwV4Rail .v4-dot{width:9px;height:9px;background:rgba(255,255,255,.3);
  border:1px solid rgba(255,255,255,.22);box-shadow:0 0 0 3px rgba(8,9,11,.55)}
#hwV4Rail .v4-dot:hover{background:rgba(255,255,255,.7);transform:scale(1.35)}
#hwV4Rail .v4-dot.on{height:30px;width:10px;background:linear-gradient(180deg,#e0c256,#4D7CFE);
  border-color:rgba(77,124,254,.65);box-shadow:0 0 18px rgba(77,124,254,.75),0 0 0 3px rgba(8,9,11,.55)}
#hwV4Rail .v4-dot::after{content:attr(data-label)!important;
  right:18px;background:rgba(10,12,18,.94);border:1px solid rgba(77,124,254,.42);
  color:#eef2f8;font-size:11px;font-weight:600;letter-spacing:.02em;padding:6px 11px;border-radius:8px;
  box-shadow:0 6px 20px rgba(0,0,0,.5)}

/* C) 进度线: 加粗提亮 */
#hwV4Prog{height:3px!important;
  box-shadow:0 0 20px rgba(77,124,254,.8),0 0 8px rgba(77,124,254,.6),0 1px 0 rgba(0,0,0,.4)}

/* D) 分镜入场: 略更明显 */
@media (prefers-reduced-motion: no-preference){
  #tab-overview > .hw-v4-scene{transform:translateY(38px);filter:blur(11px)}
}

/* ══ block #22  (原 index.html 第2537行)  HW_AURORA_V4E ══ */
/*HW_AURORA_V4E*/

/* ══ block #23  (原 index.html 第2540行)  HW_AURORA_V4F ══ */
/*HW_AURORA_V4F*/
/*HW_AURORA_V4F*/
/* ══ v4 第五刀: 地球拆解三幕 + 鼠标视差 + 幕次 HUD ══ */
#hwV4Act{position:fixed;left:24px;bottom:132px;z-index:11;pointer-events:none;/* v136-fix(09-28 双端验证): 46→86 避开底部核心资产卡(卡顶约在视口-113px) */
  font:600 10.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;
  color:rgba(196,210,232,.60);text-transform:uppercase;
  padding:7px 13px;border-radius:20px;
  background:rgba(8,8,14,.55);border:1px solid rgba(77,124,254,.22);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  box-shadow:0 4px 18px rgba(0,0,0,.35),inset 0 0 12px rgba(77,124,254,.06);
  text-shadow:0 0 14px rgba(77,124,254,.40);transition:opacity .6s ease,color .6s ease,border-color .6s ease}
#hwV4Act.act1{color:rgba(77,124,254,.86);border-color:rgba(77,124,254,.36)}
#hwV4Act.act2{color:rgba(77,124,254,.88);border-color:rgba(77,124,254,.34)}
@media(max-width:900px){#hwV4Act{display:none}}
#earthBg{will-change:transform,opacity}

/* ══ block #24  (原 index.html 第2557行)  HW_AURORA_V4G ══ */
/*HW_AURORA_V4G*/

/* ══ block #25  (原 index.html 第2560行)  HW_AURORA_V4H ══ */
/*HW_AURORA_V4H*/

/* ══ block #26  (原 index.html 第2563行)  HW_AURORA_V4I ══ */
/*HW_AURORA_V4I*/

/* ══ block #27  (原 index.html 第11246行)  HW_AURORA_V5 ══ */
/*HW_AURORA_V5*/
/*HW_AURORA_V5 —— 设计系统重做（终版：大数字 + 大留白 + 单一强调）
  对标 21st.dev / Linear / Vercel：
    1) 一个强调色，其余全灰阶（金色只留品牌标识）
    2) 数字当主角：值 26-30px，标签 9.5px 极淡
    3) 大留白：面板 20px 内距，区块间距 18-20px
    4) 发丝边 rgba(255,255,255,.065) + 柔影，去硬边框
    5) 圆角统一 12 / 16 / 20
  安全: 涨=绿/跌=红 绝不动；prefers-reduced-motion 兼容 */
:root{
  --v5-bg:#07080B;
  --v5-s1:#0B0D12;
  --v5-line:rgba(255,255,255,.065);
  --v5-line2:rgba(255,255,255,.125);
  --v5-t1:#EDF0F5; --v5-t2:#98A2B0; --v5-t3:#5A636F;
  --v5-gold:#4D7CFE; --v5-amber:#E8663D;
  --v5-ease:cubic-bezier(.22,1,.36,1);
  --hw-brand-line:rgba(255,255,255,.10)!important;
  --hw-brand-soft:rgba(255,255,255,.05)!important;
}
/* ── 1. 画布 ── */
body{background:var(--v5-bg)!important;color:var(--v5-t1)!important}
.content{padding:24px 28px!important}
.content>*+*{margin-top:18px!important}
a{color:var(--v5-t2)!important}a:hover{color:var(--v5-t1)!important}

/* ── 2. 顶栏 ── */
.hw-nav{background:rgba(7,8,11,.84)!important;border-bottom:1px solid var(--v5-line)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.08)!important;backdrop-filter:blur(22px) saturate(1.08)!important}
.nav-item{border-color:transparent!important;background:transparent!important;color:var(--v5-t2)!important;
  font-weight:600!important;letter-spacing:.15px!important;
  transition:color .24s var(--v5-ease),background .24s var(--v5-ease)!important}
.nav-item:hover{color:var(--v5-t1)!important;background:rgba(255,255,255,.055)!important;border-color:transparent!important}
.nav-item.active{color:#fff!important;background:rgba(255,255,255,.08)!important;
  border-color:var(--v5-line2)!important;box-shadow:0 -2px 0 0 var(--v5-gold) inset!important}
.nav-item .icon,.nav-item svg{color:currentColor!important;fill:currentColor!important;opacity:.85}

/* ── 3. 状态栏 ── */
.hw-statusbar{background:transparent!important;border-bottom:1px solid var(--v5-line)!important;
  min-height:36px!important;color:var(--v5-t3)!important}
.ss-k{font-size:9px!important;letter-spacing:1.3px!important;color:var(--v5-t3)!important;font-weight:600!important}
.ss-item{color:var(--v5-t2)!important}
.ss-live.warn{color:var(--v5-amber)!important}
.ss-live.warn i,.ss-live.warn .dot{background:var(--v5-amber)!important;box-shadow:none!important}

/* ── 4. 金色清剿 ── */
#hwGlobeLive,#hwGlRegimeTxt,.gl-regime,#hqIntelTs,.zone-badge.cex,.gmgn-badge,.cp-verdict-big,
span.icon-sm,.icon-sm .icon{color:var(--v5-t2)!important}
span.icon-sm svg,span.icon-sm path,.icon-sm svg,.icon-sm path{
  color:var(--v5-t2)!important;fill:var(--v5-t2)!important;stroke:var(--v5-t2)!important}
.pulse{background:var(--v5-t2)!important;box-shadow:none!important}
.gl-regime{border-color:var(--v5-line2)!important;background:rgba(255,255,255,.05)!important}
.gl-v.gold{color:var(--v5-gold)!important}
.ev-type.t-risk,.icon.warn,i.warn,.lev.hi,.gmgn-badge.warn{
  color:var(--v5-amber)!important;border-color:rgba(232,102,61,.35)!important;background:rgba(232,102,61,.12)!important}

/* ── 5. 面板：玻璃 + 发丝边 + 柔影 ── */
.panel,.risk-kpi,.hz-card,.hw-kpi{
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.011))!important;
  border:1px solid var(--v5-line)!important;border-radius:16px!important;
  box-shadow:0 1px 0 rgba(255,255,255,.025) inset,0 16px 44px -12px rgba(0,0,0,.5)!important;
  -webkit-backdrop-filter:blur(18px)!important;backdrop-filter:blur(18px)!important;
  transition:border-color .3s var(--v5-ease),box-shadow .3s var(--v5-ease)!important}
.panel:hover{border-color:var(--v5-line2)!important}
.panel-head,.zone-header{padding:16px 20px!important;border-bottom:1px solid var(--v5-line)!important;
  font-size:13.5px!important;font-weight:700!important;letter-spacing:.1px!important;
  color:var(--v5-t1)!important;background:transparent!important}
.panel-body{padding:20px!important}

/* ── 6. KPI：数字当主角（最关键的一刀）── */
.kpi,.kpi-row .kpi{
  background:rgba(255,255,255,.028)!important;
  border:1px solid var(--v5-line)!important;
  border-radius:14px!important;
  padding:18px 20px!important;
  min-height:86px!important;
  transition:transform .26s var(--v5-ease),border-color .26s var(--v5-ease),background .26s var(--v5-ease)!important}
.kpi:hover{transform:translateY(-3px);border-color:var(--v5-line2)!important;background:rgba(255,255,255,.042)!important}
.kpi .label,.kpi>span:first-child,.label{
  font-size:9.5px!important;letter-spacing:1.7px!important;color:var(--v5-t3)!important;
  font-weight:600!important;text-transform:uppercase!important;margin-bottom:8px!important}
.kpi .value,.value{
  font-size:27px!important;font-weight:750!important;letter-spacing:-.9px!important;
  line-height:1.1!important;font-variant-numeric:tabular-nums!important}
.kpi .sub,.kpi small,.kpi .k-sub{color:var(--v5-t3)!important;font-size:10.5px!important;letter-spacing:.2px!important}
.kpi-row{gap:14px!important}

/* ── 7. 徽标 ── */
.badge{background:rgba(255,255,255,.06)!important;border:1px solid var(--v5-line2)!important;
  color:var(--v5-t2)!important;border-radius:999px!important;font-weight:700!important}
.tag{background:rgba(255,255,255,.045)!important;border:1px solid var(--v5-line)!important;
  color:var(--v5-t2)!important;border-radius:999px!important}

/* ── 8. SI 情报 ── */
.ai-ev{border:1px solid var(--v5-line)!important;border-radius:14px!important;
  background:rgba(255,255,255,.018)!important;
  transition:border-color .26s var(--v5-ease),background .26s var(--v5-ease),transform .26s var(--v5-ease)!important}
.ai-ev:hover{border-color:var(--v5-line2)!important;background:rgba(255,255,255,.032)!important;transform:translateY(-1px)}
.ai-hq{border:1px solid var(--v5-line)!important;border-radius:20px!important;background:rgba(255,255,255,.012)!important}
.ai-ev-more{color:var(--v5-t3)!important}

/* ── 9. 表格 ── */
table th{font-size:9.5px!important;letter-spacing:1.3px!important;color:var(--v5-t3)!important;
  border-bottom:1px solid var(--v5-line)!important;font-weight:600!important;
  text-transform:uppercase!important;padding:11px 14px!important}
table td{border-bottom:1px solid rgba(255,255,255,.035)!important;font-size:12.5px!important;padding:12px 14px!important}
table tr:last-child td{border-bottom:0!important}
table tbody tr:hover td{background:rgba(255,255,255,.028)!important}

/* ── 10. 地球舞台 ── */
#earthBg{filter:saturate(.88) contrast(1.03) brightness(.95)!important}
.home-band{border-color:var(--v5-line)!important;border-radius:16px!important;background:rgba(255,255,255,.012)!important}

/* ── 11. 滚动条 ── */
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(255,255,255,.09);border-radius:9px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.18);background-clip:padding-box}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ══ block #28  (原 index.html 第11368行)  HW_AURORA_V8 ══ */
/*HW_AURORA_V8*/
/*HW_AURORA_V8 —— 大胆活化（老板: 字太多/全是顶栏 → 让它"活"起来）
   A) 顶栏自动退场: 下拉滚动时滑走, 回顶/鼠标靠近才滑入 —— 高端站常见手法
   B) 导航降噪: 非激活项压低, hover 才亮
   C) 首屏留白 + 分区
   D) 活化: 顶栏流动极光高光线 + 情报卡左侧信号色条 + 逐个入场
   安全: 涨=绿/跌=红 不动; 后端零改动; 纯 CSS/JS 覆盖; reduced-motion 兼容 */

/* ══ A. 顶栏自动退场(高度也一起收, 不留空档) ══ */
html body .topbar,html body .hw-nav{
  transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .38s ease,
             height .5s cubic-bezier(.22,1,.36,1),min-height .5s cubic-bezier(.22,1,.36,1)!important;
  overflow:hidden!important;will-change:transform,height}
html body.v8-hidetop .topbar.topbar.topbar{
  height:0!important;min-height:0!important;opacity:0!important;
  transform:translateY(-46%)!important;border-bottom-color:transparent!important}
html body.v8-hidetop .hw-nav.hw-nav.hw-nav{
  height:0!important;min-height:0!important;opacity:0!important;
  transform:translateY(-46%)!important;border-bottom-color:transparent!important}
html body.v8-hidetop .topbar.topbar.topbar *,
html body.v8-hidetop .hw-nav.hw-nav.hw-nav *{opacity:0!important}

/* ══ B. 导航降噪 ══ */
html body .nav-item.nav-item{opacity:.5!important;transition:opacity .26s var(--v7-ease),color .26s var(--v7-ease),transform .26s var(--v7-ease)!important}
html body .nav-item.nav-item:hover{opacity:1!important}
html body .nav-item.nav-item.active{opacity:1!important}
/* 徽标(数字)也降噪, 但保持可读 */
html body .nav-item .badge{opacity:.75!important}

/* ══ C. 首屏留白 ══ */
html body .content.content{padding:24px 30px 40px!important}
html body .tab-page.active>.zone-block:first-child,
html body .tab-page.active>section:first-child{margin-top:6px!important}

/* ══ D. 活化 ══ */
/* D1. 导航条底部: 流动极光高光线 */
html body .hw-nav::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.5),rgba(77,124,254,.75),rgba(77,124,254,.5),transparent);
  background-size:220% 100%;animation:v8flow 9s linear infinite;opacity:.7;pointer-events:none}
@keyframes v8flow{0%{background-position:0% 0}100%{background-position:220% 0}}

/* D2. 情报卡: 左侧信号色条 + 逐个入场 */
html body .ai-ev{position:relative!important;overflow:hidden!important}
html body .ai-ev::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;border-radius:2px;
  background:linear-gradient(180deg,rgba(77,124,254,.7),rgba(77,124,254,.25));
  opacity:.6;transition:opacity .3s var(--v7-ease)}
html body .ai-ev:hover::before{opacity:1}
@keyframes v8slide{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
html body .ai-ev.v8-in{animation:v8slide .55s cubic-bezier(.22,1,.36,1) both}

/* D3. KPI 行: 轻微上浮入场 */
@keyframes v8up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
html body .hw-kpis.v8-in,html body .kpi-row.v8-in{animation:v8up .6s cubic-bezier(.22,1,.36,1) both}

/* D4. 数字等宽, 更"仪表感" */
html body .value,html body .ab-val,html body .rs-v,html body .ss-v{
  font-variant-numeric:tabular-nums!important;font-feature-settings:"tnum" 1!important}

@media (prefers-reduced-motion:reduce){
  html body .topbar,html body .hw-nav{transition:none!important}
  html body .hw-nav::after{animation:none!important}
  html body .ai-ev.v8-in,html body .hw-kpis.v8-in,html body .kpi-row.v8-in{animation:none!important}
}

/* ══ block #29  (原 index.html 第11533行)  HW_AURORA_V7 ══ */
/*HW_AURORA_V7*/
/*HW_AURORA_V7 —— 大胆减法 + 活化（高权重: 双类+元素, 压过 body[data-tab] 旧规则）
   老板: 首页字太多 / 全是顶栏 / 各种显示 → 砍; 大胆发挥 → 动起来
   权重实证: body[data-tab="overview"] .hw-nav = (0,0,2,1); 本文件 = (0,0,2,2) → 必胜
   安全: 涨=绿/跌=红 不动; 后端零改动; reduced-motion 兼容 */

:root{
  --v7-bg:#07080B; --v7-t1:#EDF0F5; --v7-t2:#98A2B0; --v7-t3:#5A636F;
  --v7-line:rgba(255,255,255,.065); --v7-line2:rgba(255,255,255,.125);
  --v7-gold:#4D7CFE; --v7-ease:cubic-bezier(.22,1,.36,1);
}

/* ══════ A. 顶栏压薄 + 减字 ══════ */
html body .topbar.topbar{height:36px!important;min-height:36px!important;padding:0 18px!important}
html body .hw-nav.hw-nav{height:38px!important;min-height:38px!important;padding:0 12px!important}
html body[data-tab] .hw-nav.hw-nav{height:38px!important;min-height:38px!important}
html body[data-tab="overview"] .hw-nav.hw-nav{height:38px!important;min-height:38px!important}
html body[data-tab] .topbar.topbar{height:36px!important;min-height:36px!important}
html body .content.content{padding:18px 22px!important}

/* 砍冗余文案 */
html body .bm-sub{display:none!important}
html body .hwm-track{display:none!important}
html body .hwm-bar{display:none!important}
html body .ss-grow{display:none!important}
html body .hwm{opacity:.6!important;transition:opacity .3s var(--v7-ease)}
html body .hwm:hover{opacity:1!important}
html body .cmd-kbd{opacity:.45!important;font-size:10px!important;transition:opacity .3s}
html body .cmd-kbd:hover{opacity:.9!important}
html body .hw-brandmark{font-size:13px!important;letter-spacing:.3px!important}
html body .mode-badge,html body .regime-badge{font-size:10.5px!important;padding:3px 9px!important}

/* 品牌心跳 */
html body .bm-dot{animation:v7beat 2.6s ease-in-out infinite!important}
@keyframes v7beat{
  0%,100%{transform:scale(1);opacity:.88}
  50%{transform:scale(1.3);opacity:1;box-shadow:0 0 0 6px rgba(77,124,254,0)}
}

/* ══════ B. 导航: 降噪 + 滑动指示 ══════ */
html body .nav-item.nav-item{
  color:var(--v7-t2)!important;background:transparent!important;border-color:transparent!important;
  font-size:12px!important;font-weight:520!important;letter-spacing:.1px!important;
  padding:5px 10px!important;position:relative!important;opacity:.86!important;
  transition:opacity .24s var(--v7-ease),color .24s var(--v7-ease),transform .24s var(--v7-ease)!important}
html body .nav-item.nav-item:hover{opacity:1!important;color:var(--v7-t1)!important;transform:translateY(-1px)!important}
html body .nav-item.nav-item.active{
  opacity:1!important;color:#fff!important;background:rgba(255,255,255,.07)!important;
  border-color:var(--v7-line2)!important;box-shadow:none!important}
html body .nav-item.nav-item.active::after{
  content:'';position:absolute;left:10%;right:10%;bottom:1px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--v7-gold),transparent)}

/* ══════ C. 活化 ══════ */
html body #v7Aura{position:fixed;inset:-12%;z-index:0;pointer-events:none;
  background:
    radial-gradient(44% 34% at 16% 24%,rgba(77,124,254,.06),transparent 68%),
    radial-gradient(40% 30% at 84% 76%,rgba(77,124,254,.05),transparent 68%),
    radial-gradient(32% 26% at 58% 18%,rgba(77,124,254,.045),transparent 72%);
  animation:v7drift 48s ease-in-out infinite;will-change:transform,opacity}
@keyframes v7drift{
  0%{transform:translate3d(-1.5%,-1%,0) scale(1.04);opacity:.72}
  33%{transform:translate3d(1.6%,1.1%,0) scale(1.08);opacity:1}
  66%{transform:translate3d(.5%,-1.6%,0) scale(1.06);opacity:.84}
  100%{transform:translate3d(-1.5%,-1%,0) scale(1.04);opacity:.72}}
html body .app,html body .content,html body .hw-nav,html body .topbar,
html body .hw-statusbar{position:relative;z-index:1}
/* 地球层是 fixed inset:0 全屏背景, 绝不能改 position(改了宽度塌成0 = 脱离主页) */
html body .earth-bg{position:fixed!important;inset:0!important;z-index:0!important}
html body #earthBg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}

@keyframes v7rise{from{opacity:0;transform:translateY(16px) scale(.995)}to{opacity:1;transform:none}}
html body .v7-in{animation:v7rise .62s cubic-bezier(.22,1,.36,1) both}

html body .v7-flash{color:#fff!important;text-shadow:0 0 24px rgba(77,124,254,.6)!important}
html body .kpi .value,html body .ab-val,html body .rs-v{
  transition:color .25s var(--v7-ease),text-shadow .25s var(--v7-ease)!important}

html body .kpi:hover{transform:translateY(-3px)!important}
html body table tbody tr:hover td{background:rgba(255,255,255,.03)!important}

@media (prefers-reduced-motion:reduce){
  html body #v7Aura{animation:none!important}
  html body .bm-dot{animation:none!important}
  html body .v7-in{animation:none!important}
}

/* ══ block #30  (原 index.html 第11711行)  HW_AURORA_V9 ══ */
/*HW_AURORA_V9*/
/*HW_AURORA_V9 —— 滚动叙事 + 首屏极简（老板: 所有模块滚动叙事慢慢呈现 / 首页不用显示那么多 / 隐藏式）
   A) 模块逐个揭示: 初始隐藏(淡+位移+微模糊), 滚入视口才浮现
   C) 首屏极简: 右侧滚动进度条 + 底部下滚提示(纯图形无文字)
   ⚠️ 只在 JS 成功挂载后(html.v9-on)才隐藏 —— 脚本失败则内容全可见, 不赌
   安全: 纯表现层; 涨=绿/跌=红 不动; 后端零改动; reduced-motion 直接常显 */

html.v9-on .v9-hide{
  opacity:0!important;transform:translateY(34px) scale(.994)!important;
  filter:blur(7px)!important;
  transition:opacity .95s cubic-bezier(.22,1,.36,1),
             transform .95s cubic-bezier(.22,1,.36,1),
             filter .95s cubic-bezier(.22,1,.36,1)!important;will-change:opacity,transform}
html.v9-on .v9-hide.v9-in,
html.v9-on .v9-in{opacity:1!important;transform:none!important;filter:none!important}

/* 首屏 hero: 第一个模块占满一屏视野, 只留地球 + 核心数字 */
html.v9-on body[data-tab="overview"] .tab-page.active>.v9-hero{
  min-height:min(90vh,900px)!important;display:flex!important;align-items:center!important;   /* v256g(老板: 球更大更靠下) 760→900 给球腾空间 */
  justify-content:center!important;margin-top:0!important}

/* ── 右侧滚动进度条(极简, 无文字) ── */
#v9Progress{position:fixed;right:10px;top:50%;transform:translateY(-50%);width:2px;height:34vh;
  background:rgba(255,255,255,.07);border-radius:2px;z-index:60;pointer-events:none;opacity:0;
  transition:opacity .5s ease}
html.v9-on #v9Progress{opacity:.85}
#v9Progress i{position:absolute;left:-2px;top:0;width:6px;height:6px;border-radius:50%;
  background:var(--v7-gold,#4D7CFE);box-shadow:0 0 10px rgba(77,124,254,.55);
  transform:translateY(0);transition:transform .12s linear}

/* ── 底部下滚提示(纯 chevron, 无文字) ── */
#v9ScrollHint{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;
  width:18px;height:18px;pointer-events:none;opacity:0;transition:opacity .6s ease}
html.v9-on #v9ScrollHint{opacity:.5}
#v9ScrollHint::before{content:'';position:absolute;left:50%;top:0;width:7px;height:7px;
  border-right:1.4px solid rgba(255,255,255,.7);border-bottom:1.4px solid rgba(255,255,255,.7);
  transform:translateX(-50%) rotate(45deg);animation:v9hint 1.9s ease-in-out infinite}
@keyframes v9hint{0%,100%{transform:translateX(-50%) rotate(45deg) translate(0,0);opacity:.35}
  50%{transform:translateX(-50%) rotate(45deg) translate(3px,3px);opacity:.9}}
#v9ScrollHint.v9-gone{opacity:0!important}

@media (prefers-reduced-motion:reduce){
  html.v9-on .v9-hide{opacity:1!important;transform:none!important;filter:none!important}
  #v9ScrollHint::before{animation:none!important}
}

/* ══ block #31  (原 index.html 第11857行)  HW_AURORA_V9B ══ */
/*HW_AURORA_V9B*/
/*HW_AURORA_V9B —— 地球粒子层(币种节点 + 区块链连线 + 区块脉冲)
   老板: "地球你完全可以拆成地球本体 与各种虚拟货币 区块链粒子等等 构建背景特效动画"
   做法: 独立 canvas, 固定背景层(z-index:0 < 内容 z:1), 环绕地球做轨道粒子
   安全: 纯装饰, pointer-events:none; reduced-motion 静态渲染; 不碰数据/接口 */

#v9Field{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity 1.4s ease;mix-blend-mode:screen}
html.v9b-on #v9Field{opacity:.9}

/* 币种节点是画在 canvas 上的; 下面只是"地球外围能量环"的 CSS 增强(不依赖 canvas) */
html.v9b-on body[data-tab="overview"] .earth-bg::after{
  content:'';position:absolute;left:50%;top:52%;width:min(52vh,520px);height:min(52vh,520px);
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(77,124,254,.055) 0%,rgba(77,124,254,.03) 42%,transparent 68%);
  animation:v9bpulse 7.5s ease-in-out infinite}
@keyframes v9bpulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.045)}}

@media (prefers-reduced-motion:reduce){
  html.v9b-on #v9Field{opacity:.55}
  html.v9b-on body[data-tab="overview"] .earth-bg::after{animation:none!important}
}

/* ══ block #32  (原 index.html 第12041行)  HW_AURORA_V9D ══ */
/*HW_AURORA_V9D*/
/*HW_AURORA_V9D —— 仪表盘 / K线 视觉创新
   老板: "所有仪表盘k线都要创新"
   手法: 截获 LightweightCharts.createChart 拿到实例 → applyOptions 精修
   ⚠️ 绝不改涨跌色语义: 涨=绿 #4DFFC4 / 跌=红 #FF5C7A 原样保留
   本文件负责"图表外壳"的玻璃化与氛围 */

/* ── 图表外壳: 玻璃 + 内辉光 + 角标 ── */
html.v9d-on .chart-wrap{
  position:relative!important;border-radius:14px!important;overflow:hidden!important;
  background:
    radial-gradient(120% 90% at 50% -10%,rgba(77,124,254,.055),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.014),rgba(255,255,255,.004))!important;
  border:1px solid rgba(255,255,255,.055)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.02) inset,0 18px 44px -18px rgba(0,0,0,.6)!important}
/* 顶部一道极光扫描线(极淡, 只在图表上) */
html.v9d-on .chart-wrap::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.45),rgba(77,124,254,.55),transparent);
  background-size:220% 100%;animation:v9dscan 11s linear infinite;opacity:.55}
@keyframes v9dscan{0%{background-position:0% 0}100%{background-position:220% 0}}

/* 图表容器: 去掉默认边框, 让外壳接管 */
html.v9d-on .chart-wrap > div{background:transparent!important;border:0!important}
html.v9d-on .tv-lightweight-charts{border-radius:12px!important;overflow:hidden!important}

/* 价格轴 / 时间轴 字距更"仪表" */
html.v9d-on .tv-lightweight-charts table,
html.v9d-on .tv-lightweight-charts td{font-variant-numeric:tabular-nums!important}

/* K线面板头部: 币种/周期胶囊 提升质感 */
html.v9d-on .kline-tags button,
html.v9d-on .kbar button{border-radius:9px!important;transition:all .22s cubic-bezier(.22,1,.36,1)!important}
html.v9d-on .kline-tags button:hover,
html.v9d-on .kbar button:hover{background:rgba(255,255,255,.07)!important}

/* 权益/回撤 小图: 同样玻璃化 */
html.v9d-on #perfEqChart,html.v9d-on #equityChart,html.v9d-on #ddChart{border-radius:12px!important}

@media (prefers-reduced-motion:reduce){
  html.v9d-on .chart-wrap::before{animation:none!important}
}

/* ══ block #33  (原 index.html 第12191行)  HW_AURORA_V10 ══ */
/*HW_AURORA_V10*/
/*HW_AURORA_V10 —— 沉浸式重做(老板: 粒子更多更炫/加密货币元素/权益显示太多/沉浸感/丝滑/地球与背景糊成一坨灰蒙蒙/配色/交互)
   A 纵深分层: 拔卸妆滤镜 + 地球提亮 + 背景压暗后退 + 地球辉光 + 深度暗角 → 地球"跳"出背景
   B 粒子强化: 见 v10.js (币种文字+链块+密度+鼠标排斥+滚动视差+流星)
   C 权益瘦身: 收起重复的权益读数, 主数字突出
   D 配色统一: 深空蓝黑底 + 地球蓝 + 品牌金 */

/* ══ A1. 拔掉我 V5 给地球加的"卸妆滤镜" ══ */
html body #earthBg{filter:none!important}
/* ══ A2. 地球: 提亮增艳 + 外发光, 从背景跳出来 ══ */
html body[data-tab="overview"] .earth-bg canvas,
html body:not([data-tab]) .earth-bg canvas{
  filter:saturate(1.30) contrast(1.13) brightness(1.18)!important;
  opacity:1!important;transition:filter .7s ease,opacity .7s ease}
html body[data-tab] .earth-bg canvas{transition:filter .6s ease}
/* ══ A3. 星点: 适度后退(拉开纵深, 但不藏起加密符号层) ══ */
html body #hwV4Stars{opacity:.60!important;filter:brightness(.92) saturate(.85)!important}
/* A3b. 地球本体(THREE 画布在 #aiEarth 内): 提亮增艳, 跳出来 */
html body #aiEarth canvas{filter:saturate(1.32) contrast(1.14) brightness(1.20)!important}
/* ══ A4. 去掉金雾, 改冷色薄雾(统一配色) ══ */
html body #aiEarth{background:radial-gradient(circle at 50% 42%,rgba(77,124,254,.04),transparent 56%)!important}
html body .content{background:radial-gradient(1400px 800px at 50% -10%,rgba(58,96,190,.055),rgba(6,8,14,0) 62%)!important}

/* ══ A5. 地球辉光层(JS 插入 .earth-bg 内的 z2) ══ */
html.v10-on #v10Glow{position:absolute;left:50%;top:52%;width:min(64vh,660px);height:min(64vh,660px);
  transform:translate(-50%,-50%);border-radius:50%;z-index:2;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(77,124,254,.14) 0%,rgba(77,124,254,.06) 42%,transparent 68%);
  animation:v10glow 9s ease-in-out infinite}
@keyframes v10glow{0%,100%{opacity:.6;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}

/* ══ A6. 深度暗角层(z5, 压在地球之上 → 地球边缘沉下去, 中心亮) ══ */
html.v10-on #v10Vig{position:absolute;inset:0;z-index:5;pointer-events:none;
  background:radial-gradient(122% 98% at 50% 47%,rgba(0,0,0,0) 30%,rgba(4,6,12,.32) 66%,rgba(2,3,8,.72) 100%)}

/* ══ B. 粒子层(v10.js 绘制) ══ */
#v10Field{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity 1.6s ease;mix-blend-mode:screen}
html.v10-on #v10Field{opacity:.96}
/* 关掉 V9 旧粒子层, 避免双层糊在一起 */
html.v10-on #v9Field{display:none!important}

/* ══ C. 权益瘦身: 次要 KPI 收小压暗, 主数字突出 ══ */
html.v10-on .hw-kpi{opacity:.94}
html.v10-on .hw-kpi .hk-l{font-size:9px!important;letter-spacing:.09em!important;opacity:.72}
html.v10-on .hw-kpi .hk-v{font-variant-numeric:tabular-nums}
html.v10-on [data-v10-slim]{display:none!important}

/* C2. 次要 KPI 行(链上持仓/孵化器) 压缩 — 不删数据, 只收小留白拉层次 */
html.v10-on .kpi-row{gap:8px!important;margin-top:9px!important}
html.v10-on .kpi-row .kpi{padding:9px 12px!important;border-radius:12px!important;opacity:.88}
html.v10-on .kpi-row .kpi .label{font-size:9px!important;letter-spacing:.08em!important;opacity:.8}
html.v10-on .kpi-row .kpi .val,
html.v10-on .kpi-row .kpi .v{font-size:16px!important}
/* C3. 核心资产那排: 主数字再大一档 */
html.v10-on .hw-kpis .hk-v{font-size:26px!important;letter-spacing:-.01em}

/* ══ D. 丝滑: 统一过渡曲线 ══ */
html.v10-on .tab-page.active > div{transition-timing-function:cubic-bezier(.22,1,.36,1)!important}
html.v10-on .panel,html.v10-on .card{transition:border-color .35s ease,box-shadow .35s ease,transform .35s cubic-bezier(.22,1,.36,1)}

@media (prefers-reduced-motion:reduce){
  html.v10-on #v10Glow{animation:none!important}
  html.v10-on #v10Field{opacity:.5}
}

/* ══ block #34  (原 index.html 第12526行)  HW_AURORA_V11 ══ */
/*HW_AURORA_V11*/
/*HW_AURORA_V11 —— 沉浸引擎(合并层)
   老板: 继续(更炫/更沉浸/更丝滑)
   把 V9/V10 的粒子层关掉, 只留 V11 单引擎; 新增滚动氛围光 #v11Ambient */

/* ══ 关掉旧粒子层(避免多循环+双层糊) ══ */
html.v11-on #v9Field,
html.v11-on #v10Field{display:none!important}

/* ══ 滚动氛围光: 下滑渐暖(品牌金), 由 JS 动态调 opacity ══ */
#v11Ambient{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity .8s ease;mix-blend-mode:screen}

/* ══ V11 粒子层 ══ */
#v11Field{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity 1.6s ease;mix-blend-mode:screen}
html.v11-on #v11Field{opacity:.96}

/* ══ 地球辉光/暗角(复用 v10 id, 但确保在 v11 下也在) ══ */
html.v11-on #v10Glow{position:absolute;left:50%;top:52%;width:min(64vh,660px);height:min(64vh,660px);
  transform:translate(-50%,-50%);border-radius:50%;z-index:2;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(77,124,254,.15) 0%,rgba(77,124,254,.06) 42%,transparent 68%);
  animation:v11glow 9s ease-in-out infinite}
@keyframes v11glow{0%,100%{opacity:.6;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
html.v11-on #v10Vig{position:absolute;inset:0;z-index:5;pointer-events:none;
  background:radial-gradient(122% 98% at 50% 47%,rgba(0,0,0,0) 30%,rgba(4,6,12,.32) 66%,rgba(2,3,8,.72) 100%)}

/* ══ 丝滑: 统一缓动 ══ */
html.v11-on .tab-page.active > div{transition-timing-function:cubic-bezier(.22,1,.36,1)!important}

/* ══ 权益再瘦身: 去重(同一读数不重复两遍) ══ */
/* 概览页: 链上持仓行里与核心资产重复的「账户权益/可用余额」收起(数据仍在, 换 tab 可见) */
html.v11-on body[data-tab="overview"] .kpi-row .kpi.v11-slim,
html.v11-on body:not([data-tab]) .kpi-row .kpi.v11-slim{display:none!important}
html.v11-on .kpi-row{gap:8px!important;margin-top:8px!important}
html.v11-on .kpi-row .kpi{padding:9px 12px!important;border-radius:12px!important;opacity:.88}
html.v11-on .kpi-row .kpi .label{font-size:9px!important;letter-spacing:.08em!important;opacity:.78}
html.v11-on .kpi-row .kpi .val,
html.v11-on .kpi-row .kpi .v{font-size:16px!important}
html.v11-on .hw-kpis .hk-v{font-size:26px!important;letter-spacing:-.01em}

@media (prefers-reduced-motion:reduce){
  html.v11-on #v10Glow{animation:none!important}
  html.v11-on #v11Field{opacity:.5}
  #v11Ambient{transition:none}
}

/* ══ block #35  (原 index.html 第12965行)  HW_AURORA_V12 ══ */
/*HW_AURORA_V12*/
/*HW_AURORA_V12 —— 老板本轮: 删顶栏资产块 + 数字放大 + 图表划时代样式
   (粒子/玻璃币在 JS 层; 这里管 CSS 表现) */

/* ══ ① 顶栏右上角资产块(权益/今日/回撤/持仓) 删除 ══ */
html.v12-on .hw-nav-live{display:none!important}
html.v12-on .hw-nav.v12-nav-slim{padding-right:18px!important}

/* ══ ④ 资产数字放大(老板: GMGN资产数字太小) —— 需压制既有 15.5px!important ══ */
html.v12-on #gmgnKpiRow .kpi .value,
html.v12-on #gmgnDhKpiRow .kpi .value,
html.v12-on body[data-tab="overview"] #gmgnKpiRow .kpi .value,
html.v12-on body[data-tab="overview"] #gmgnDhKpiRow .kpi .value{
  font-size:21px!important;line-height:1.12!important;letter-spacing:-.012em!important;
  font-variant-numeric:tabular-nums;font-weight:700!important;
  background:linear-gradient(180deg,#ffffff 0%,#dbe6ff 55%,#4D7CFE 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:0 0 26px rgba(77,124,254,.16)}
html.v12-on .hw-kpis .hk-n{
  font-size:20px!important;line-height:1.12!important;letter-spacing:-.012em!important;
  font-variant-numeric:tabular-nums;font-weight:700!important;
  background:linear-gradient(180deg,#ffffff 0%,#dbe6ff 55%,#4D7CFE 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:0 0 26px rgba(77,124,254,.16)}
html.v12-on #gmgnKpiRow .value span,
html.v12-on #gmgnDhKpiRow .value span{
  display:block!important;font-size:11px!important;margin-top:5px;letter-spacing:.05em;
  -webkit-text-fill-color:#8b96ad;font-weight:500!important;
  background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}
html.v12-on #gmgnKpiRow .kpi,
html.v12-on #gmgnDhKpiRow .kpi{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))!important;
  border:1px solid rgba(77,124,254,.12)!important;border-radius:14px!important;
  padding:12px 14px!important;position:relative;overflow:hidden}
html.v12-on #gmgnKpiRow .kpi::after,
html.v12-on #gmgnDhKpiRow .kpi::after{
  content:'';position:absolute;left:0;top:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.55),rgba(77,124,254,.45),transparent);
  opacity:.7}

/* 迷你 sparkbar (JS 注入) */
html.v12-on .v12-spark{display:inline-flex;align-items:flex-end;gap:2px;height:14px;margin-left:9px;
  vertical-align:middle;opacity:.55}
html.v12-on .v12-spark i{display:block;width:3px;border-radius:2px;
  background:linear-gradient(180deg,rgba(77,124,254,.9),rgba(77,124,254,.25))}

/* ══ ⑤ 图表划时代样式 ══ */
html.v12-on .chart-wrap.v12-chart,
html.v12-on .equity-chart.v12-chart{
  position:relative;border-radius:16px!important;overflow:hidden;
  background:
    radial-gradient(120% 90% at 12% -10%,rgba(77,124,254,.10),transparent 55%),
    radial-gradient(120% 90% at 92% 8%,rgba(77,124,254,.085),transparent 55%),
    linear-gradient(180deg,rgba(16,20,32,.72),rgba(10,13,22,.86))!important;
  border:1px solid rgba(77,124,254,.14)!important;
  box-shadow:0 18px 50px -22px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.05)}
/* 顶部光带(缓慢扫过 → 划时代质感) */
html.v12-on .v12-band{position:absolute;left:-40%;top:0;width:40%;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.85),rgba(77,124,254,.75),transparent);
  filter:blur(.4px);animation:v12sweep 6.5s cubic-bezier(.5,0,.5,1) infinite}
@keyframes v12sweep{0%{left:-45%;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:105%;opacity:0}}
/* 图表内网格更细更亮(配合 JS applyOptions) */
html.v12-on .tv-lightweight-charts{background:transparent!important}
html.v12-on .chart-wrap .panel-head h3,
html.v12-on .equity-chart + .panel-head h3{letter-spacing:.02em}

@media (prefers-reduced-motion:reduce){
  html.v12-on .v12-band{animation:none!important;opacity:.6}
}

/* ══ block #36  (原 index.html 第13248行)  HW_AURORA_V13 ══ */
/*HW_AURORA_V13*/
/*HW_AURORA_V13 —— 全站沉浸化(其余 18 个 tab)
   老板: "现在只是首页改了 其他那么多页面还没改进 挨个把所有东西精细的改进"
   目标: 把总览的沉浸质感推广到每一页 —— 页面舞台感 + 玻璃卡统一 + 数字层级 + 表格精修 + 底部氛围光
   安全: 纯表现层; 不动结构/类名; 涨跌色语义不变(涨=绿 跌=红); reduced-motion 兼容 */

/* ══════════ 1. 每页"舞台"氛围: 首屏顶部聚光 + 底部氛围光收口 ══════════ */
html.v13-on .tab-page{position:relative}
html.v13-on .tab-page::before{
  content:'';position:absolute;left:0;right:0;top:-6px;height:280px;pointer-events:none;z-index:0;
  background:radial-gradient(80% 100% at 50% 0%,rgba(77,124,254,.075),transparent 62%);
  opacity:.9}
html.v13-on .tab-page::after{
  content:'';position:absolute;left:12%;right:12%;bottom:0;height:220px;pointer-events:none;z-index:0;
  background:radial-gradient(70% 100% at 50% 100%,rgba(77,124,254,.06),transparent 70%);
}
html.v13-on .tab-page>*{position:relative;z-index:1}

/* ══════════ 2. 面板统一玻璃化(全站, 不只总览) ══════════ */
html.v13-on .panel{
  background:linear-gradient(180deg,rgba(18,22,34,.60),rgba(10,13,21,.78))!important;
  border:1px solid rgba(77,124,254,.115)!important;
  border-radius:16px!important;
  box-shadow:0 14px 40px -24px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.045)!important;
  transition:border-color .35s ease,box-shadow .35s ease,transform .35s cubic-bezier(.22,1,.36,1)}
html.v13-on .panel:hover{
  border-color:rgba(77,124,254,.24)!important;
  box-shadow:0 20px 52px -24px rgba(0,0,0,.88),inset 0 1px 0 rgba(255,255,255,.07),
    0 0 0 1px rgba(77,124,254,.06)!important}
/* 面板顶部一条极光细线 */
html.v13-on .panel>.panel-head{position:relative}
html.v13-on .panel>.panel-head::before{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.22),rgba(77,124,254,.16),transparent)}

/* 面板标题: 更强的层级感 + 图标发光 */
html.v13-on .panel-head h3{
  letter-spacing:.015em!important;font-weight:600!important;
  color:rgba(232,238,252,.96)!important}
html.v13-on .panel-head h3 .icon{filter:drop-shadow(0 0 6px rgba(77,124,254,.45))}

/* ══════════ 3. KPI / 数字层级统一(全站) ══════════ */
html.v13-on .kpi{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))!important;
  border:1px solid rgba(77,124,254,.11)!important;border-radius:14px!important;
  padding:12px 14px!important;position:relative;overflow:hidden;
  transition:border-color .3s ease,transform .35s cubic-bezier(.22,1,.36,1)}
html.v13-on .kpi::after{
  content:'';position:absolute;left:0;top:0;right:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.42),transparent);opacity:.55}
html.v13-on .kpi:hover{border-color:rgba(77,124,254,.26)!important}
html.v13-on .kpi .label{font-size:9.5px!important;letter-spacing:.09em!important;
  text-transform:uppercase;opacity:.72;font-weight:600}
html.v13-on .kpi .value,
html.v13-on .kpi .v{font-size:20px!important;line-height:1.14!important;font-weight:700!important;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
html.v13-on .kpi .value span{font-size:11px!important;-webkit-text-fill-color:#8b96ad}

/* 涨跌色保持(只加光, 不改色) */
html.v13-on .kpi .value.c-up,html.v13-on .kpi .value.up{text-shadow:0 0 18px rgba(63,211,154,.22)}
html.v13-on .kpi .value.c-down,html.v13-on .kpi .value.down{text-shadow:0 0 18px rgba(255,107,118,.2)}

/* ══════════ 4. 表格精修(全站) ══════════ */
html.v13-on table{border-collapse:separate!important;border-spacing:0!important}
html.v13-on thead th{
  font-size:9.5px!important;letter-spacing:.1em!important;text-transform:uppercase;
  color:rgba(150,163,190,.9)!important;font-weight:600!important;
  background:rgba(255,255,255,.022)!important;border-bottom:1px solid rgba(77,124,254,.12)!important;
  padding-top:9px!important;padding-bottom:9px!important}
html.v13-on tbody tr{transition:background .22s ease}
html.v13-on tbody tr:hover{background:linear-gradient(90deg,rgba(77,124,254,.055),rgba(77,124,254,.012))!important}
html.v13-on tbody td{border-bottom:1px solid rgba(77,124,254,.055)!important;
  font-variant-numeric:tabular-nums;font-size:12px}
html.v13-on tbody tr:last-child td{border-bottom:none!important}

/* ══════════ 5. 状态/徽章精修 ══════════ */
html.v13-on .badge,html.v13-on .tag,html.v13-on .pill,html.v13-on [class*="-badge"]{
  border-radius:999px!important;letter-spacing:.04em;font-weight:600}
html.v13-on .badge.on,html.v13-on .tag.on,html.v13-on .pill.on{
  background:rgba(63,211,154,.13)!important;border:1px solid rgba(63,211,154,.3)!important;
  color:#7fe6bd!important;box-shadow:0 0 14px rgba(63,211,154,.12)}
html.v13-on .badge.off,html.v13-on .tag.off,html.v13-on .pill.off{
  background:rgba(255,107,118,.12)!important;border:1px solid rgba(255,107,118,.28)!important;color:#ff9aa2!important}

/* ══════════ 6. 按钮精修(全站, 不碰危险按钮语义) ══════════ */
html.v13-on .panel button:not(.danger):not([class*="danger"]):not(.btn-danger){
  border-radius:11px!important;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}
html.v13-on .panel button:not(.danger):not([class*="danger"]):not(.btn-danger):hover{
  transform:translateY(-1px);box-shadow:0 8px 22px -12px rgba(77,124,254,.5)}
/* 危险按钮保留警示色, 只加强光晕 */
html.v13-on .panel button.danger,html.v13-on .panel .btn-danger{
  box-shadow:0 0 0 1px rgba(255,107,118,.25) inset,0 8px 22px -14px rgba(255,107,118,.55)}

/* ══════════ 7. 空态美化(空区域读作"太空"而非"空白") ══════════ */
html.v13-on .empty,html.v13-on .empty-state,html.v13-on [class*="empty"]{
  color:rgba(150,163,190,.62)!important;letter-spacing:.02em}
html.v13-on .empty::before{opacity:.5}

/* ══════════ 8. 分区标题(页内 h2/h3 小节) ══════════ */
html.v13-on .tab-page h2,html.v13-on .tab-page>.zone-block>h3{
  letter-spacing:.02em;font-weight:600}

/* ══════════ 9. 滚动条精修 ══════════ */
html.v13-on *::-webkit-scrollbar{width:9px;height:9px}
html.v13-on *::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(77,124,254,.35),rgba(77,124,254,.28));
  border-radius:99px;border:2px solid transparent;background-clip:padding-box}
html.v13-on *::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(77,124,254,.5),rgba(77,124,254,.4));background-clip:padding-box}
html.v13-on *::-webkit-scrollbar-track{background:transparent}

/* ══════════ 10. 分页/工具栏 ══════════ */
html.v13-on .toolbar,html.v13-on .filters,html.v13-on .seg,html.v13-on .segmented{
  border-radius:12px}

/* ══════════ 11. 入场动画(切页时逐块浮现) ══════════ */
html.v13-on .tab-page.active .v13-rise{animation:v13rise .62s cubic-bezier(.22,1,.36,1) both}
@keyframes v13rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ══ 12. 宽表格: 面板内横向滚动(不裁内容/不撑破布局) ══ */
html.v13-on .panel-body{max-width:100%!important}
html.v13-on .panel-body.padded{overflow-x:auto!important;overflow-y:visible}
html.v13-on .panel-body table{width:100%}
html.v13-on .panel-body::-webkit-scrollbar{height:7px}

@media (prefers-reduced-motion:reduce){
  html.v13-on .kpi,html.v13-on .panel{transition:none!important}
  html.v13-on .tab-page.active .v13-rise{animation:none!important}
}

/* ══ block #37  (原 index.html 第13475行)  HW_AURORA_V14 ══ */
/*HW_AURORA_V14*/
/*HW_AURORA_V14 —— 顶部排好藏好 + 核心资产不透明(老板 2026-09-27 23:19)
  老板: "最顶部 太乱了 排好并藏好  核心资产那一块太透导致看不清数字"
  安全: 纯表现层; 不删功能(音乐收成图标 hover 展开); 数字仍实时 */

/* ══════════ 1. 顶部减负: 藏掉与核心资产重复的实时数字 + Ctrl+K 提示 ══════════ */
html.v14-on .hw-nav-live{display:none!important}
html.v14-on .cmd-kbd{display:none!important}

/* ══════════ 2. 音乐播放器: 收成单个图标, hover 才展开(降噪) ══════════ */
html.v14-on .hwm{gap:3px!important}
html.v14-on .hwm .hwm-bar,
html.v14-on .hwm .hwm-track,
html.v14-on .hwm .hwm-btn.sm{
  max-width:0!important;opacity:0!important;overflow:hidden!important;
  margin:0!important;padding-left:0!important;padding-right:0!important;border-width:0!important;
  transition:max-width .34s cubic-bezier(.22,1,.36,1),opacity .34s ease,padding .34s ease!important;
  pointer-events:none!important}
html.v14-on .hwm:hover .hwm-bar{max-width:48px!important;opacity:1!important;pointer-events:auto!important}
html.v14-on .hwm:hover .hwm-track{max-width:118px!important;opacity:1!important;pointer-events:auto!important}
html.v14-on .hwm:hover .hwm-btn.sm{max-width:26px!important;opacity:1!important;pointer-events:auto!important}

/* ══════════ 3. 顶栏清理: 主次分明(品牌/AI军师为主, 其余弱化) ══════════ */
html.v14-on .topbar-right{gap:10px!important}
html.v14-on .topbar-right .lang-btn{opacity:.6;transition:opacity .28s ease}
html.v14-on .topbar-right .lang-btn:hover{opacity:1}
/* 副标题(AUTONOMOUS SI TRADING TERMINAL)是纯噪点 → 收起 */
html.v14-on .bm-sub{display:none!important}

/* ══════════ 4. ★ 核心资产: 上实底(球/星空不再透过来) ══════════ */
html.v14-on .hw-kpis{gap:10px!important}
html.v14-on .hw-kpi{
  background:linear-gradient(180deg,rgba(23,28,42,.955) 0%,rgba(12,15,24,.975) 100%)!important;
  background-image:linear-gradient(180deg,rgba(23,28,42,.955) 0%,rgba(12,15,24,.975) 100%)!important;
  background-color:rgba(12,15,24,.97)!important;
  border:1px solid rgba(77,124,254,.17)!important;
  box-shadow:0 12px 30px -20px rgba(0,0,0,.92),inset 0 1px 0 rgba(255,255,255,.05)!important;
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  position:relative;overflow:hidden;
  transition:border-color .3s ease,box-shadow .35s ease,transform .35s cubic-bezier(.22,1,.36,1)!important}
html.v14-on .hw-kpi::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1.5px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.5),rgba(77,124,254,.32),transparent);opacity:.65}
html.v14-on .hw-kpi:hover{
  border-color:rgba(77,124,254,.3)!important;
  background:linear-gradient(180deg,rgba(26,32,48,.96) 0%,rgba(13,16,26,.98) 100%)!important;
  box-shadow:0 18px 40px -20px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.075),
    0 0 0 1px rgba(77,124,254,.07)!important}

/* 核心资产: 数字层级(26px 偏大 → 21px) + 实底上更清晰 */
html.v14-on .hw-kpi .hk-v{font-size:21px!important;line-height:1.16!important;letter-spacing:-.01em!important}
html.v14-on .hw-kpi .hk-l{
  color:rgba(158,170,196,.95)!important;font-weight:600!important;letter-spacing:.06em}
html.v14-on .hw-kpi .hk-s{color:rgba(150,163,190,.9)!important}
html.v14-on .hw-kpi .hk-v,html.v14-on .hw-kpi .hk-l,html.v14-on .hw-kpi .hk-s{
  text-shadow:0 1px 2px rgba(0,0,0,.55)!important}

/* ══════════ 5. 核心资产: 节标题也垫实底, 避免悬在球上 ══════════ */
html.v14-on .hw-sec>.hw-sec-h{
  background:linear-gradient(90deg,rgba(18,22,34,.72),rgba(18,22,34,.28) 70%,transparent);
  border-radius:10px 10px 0 0;padding-left:6px!important;margin-left:-6px!important}

/* ══════════ 6. 顶栏/导航: 加深底子(与星空分层, 读作"正式栏"而非漂浮) ══════════ */
html.v14-on .topbar{background:rgba(7,9,14,.9)!important;border-bottom:1px solid rgba(77,124,254,.14)!important}
html.v14-on .hw-nav{background:rgba(9,11,17,.86)!important;border-bottom:1px solid rgba(77,124,254,.12)!important}

@media (prefers-reduced-motion:reduce){
  html.v14-on .hwm .hwm-bar,html.v14-on .hwm .hwm-track,html.v14-on .hwm .hwm-btn.sm{transition:none!important}
}

/* ══ block #38  (原 index.html 第13566行)  HW_AURORA_V15 ══ */
/*HW_AURORA_V15*/
/*HW_AURORA_V15 —— 提速丝滑 + 音乐修复(老板 2026-09-27 23:30)
  老板: "整体有些卡顿 好好的整理清理一下 提速 丝滑程度 还有每个地方细节
        音乐那块目前不能点开换音乐了 你重新加一些音乐进去 并修复"
  安全: 纯表现层; 不碰数据链路; 涨跌色不变; reduced-motion 兼容 */

/* ══════════ 1. ★ 性能: 砍掉大面积毛玻璃(144 个 backdrop-filter → 动画/滚动不再掉帧) ══════════
   病灶: 59 个 .panel + 23 个 .kpi + 11 .zone-badge + 6 .strat-card ... 每个都要 GPU 现场模糊
         → 滚动/切页时每帧重算, 这是"整体卡顿"的主因。
   对策: 内容卡片(卡片多、面积大、底下本来就是同色深底)一律去模糊, 用足够实的底色替代;
         只保留顶栏/导航/抽屉这些"浮在场景上"的少量元素做毛玻璃。 */
html.v15-on .panel,
html.v15-on .kpi,
html.v15-on .zone-block,
html.v15-on .zone-badge,
html.v15-on .strat-card,
html.v15-on .risk-item,
html.v15-on .guard-item,
html.v15-on .dept-block,
html.v15-on .risk-kpi,
html.v15-on .hz-card,
html.v15-on .hw-kpi-inner,
html.v15-on .hw-mkt,
html.v15-on .hw-ai-cell,
html.v15-on .hw-ev-wrap,
html.v15-on .asset-bar{
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* 去模糊后把底色补实(视觉几乎不变, 但不再逐帧重算) */
html.v15-on .panel{background-color:rgba(12,15,23,.90)!important}
html.v15-on .kpi{background-color:rgba(13,16,25,.88)!important}
html.v15-on .zone-block,html.v15-on .strat-card,html.v15-on .risk-item,
html.v15-on .guard-item,html.v15-on .dept-block,html.v15-on .risk-kpi,html.v15-on .hz-card{
  background-color:rgba(13,17,25,.82)!important}
html.v15-on .hw-mkt,html.v15-on .hw-ai-cell,html.v15-on .hw-ev-wrap,
html.v15-on .hw-kpi-inner{background-color:rgba(13,17,24,.80)!important}
html.v15-on .asset-bar{background-color:rgba(8,8,14,.92)!important}

/* 保留毛玻璃的元素: 只是"浮层", 数量少, 并把半径压下来(26→14) */
html.v15-on .topbar,
html.v15-on .hw-nav,
html.v15-on .hw-statusbar,
html.v15-on .hw-battlebar,
html.v15-on .hwm-pop,
html.v15-on .copilot-panel{
  backdrop-filter:blur(14px) saturate(1.08)!important;-webkit-backdrop-filter:blur(14px) saturate(1.08)!important}
/* v15: 顶层弹层/抽屉不进 backdrop 链(它们本就是最上层) */
html.v15-on .copilot-panel{backdrop-filter:blur(14px)!important}

/* 连续动画瘦身: 骨架微光/呼吸点放缓(肉眼几乎无感, 合成压力大降) */
html.v15-on .zone-badge,html.v15-on .hwBreath{animation-duration:3.6s!important}

/* ══════════ 2. ★ 音乐弹层: 逃出 .topbar 的 overflow:hidden(原来被裁到只剩 5px) ══════════
   实测: .topbar{overflow:hidden} + 弹层 absolute 在其内 → 弹层 248px 高被裁掉
         → 点曲目点到的是下面的 .content。这是"点不开换音乐"的真凶。 */
html.v15-on .topbar{overflow:visible!important;z-index:60!important}
html.v15-on .hw-nav{overflow:visible}
html.v15-on .main{overflow:visible}
html.v15-on .hwm{overflow:visible!important}
html.v15-on .hwm-pop{
  z-index:90!important;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.92),0 0 0 1px rgba(77,124,254,.16)!important}

/* ══════════ 3. ★ 换曲入口复原: ⋯ 常驻可见可点(不再被收成 0 宽) ══════════
   V14 把 ⋯/曲名 收成 max-width:0+pointer-events:none → 用户根本点不到。 */
html.v15-on .topbar-right .hwm-btn.sm{
  max-width:26px!important;opacity:.62!important;pointer-events:auto!important;
  width:22px!important;height:22px!important;padding:0!important;
  border-width:1px!important;border-color:rgba(77,124,254,.18)!important;
  transition:opacity .24s ease,border-color .24s ease,background .24s ease!important}
html.v15-on .topbar-right .hwm-btn.sm:hover{opacity:1!important;border-color:rgba(77,124,254,.42)!important}
html.v15-on .topbar-right .hwm-btn.sm.on{
  opacity:1!important;background:rgba(0,224,168,.16)!important;border-color:rgba(0,224,168,.5)!important}
/* 曲名: hover 展开(保留降噪), 但已有一键入口(⋯) */
html.v15-on .topbar-right .hwm:hover .hwm-track{max-width:126px!important;opacity:1!important;pointer-events:auto!important}
html.v15-on .topbar-right .hwm:hover .hwm-bar{max-width:46px!important;opacity:1!important}

/* 曲目列表更易点: 行高/命中区加大 */
html.v15-on .hwm-item{padding:8px 10px!important;border-radius:9px!important}
html.v15-on .hwm-item:hover{background:rgba(77,124,254,.10)!important}
html.v15-on .hwm-list{gap:5px!important}
html.v15-on .hwm-pop{width:284px!important;max-height:66vh;overflow-y:auto}

/* ══════════ 4. 细节打磨(老板: 每个地方细节) ══════════ */
/* 焦点可见(键盘可达性) */
html.v15-on button:focus-visible,html.v15-on .hwm-item:focus-visible,
html.v15-on a:focus-visible,html.v15-on [role="button"]:focus-visible{
  outline:2px solid rgba(77,124,254,.55);outline-offset:2px}
/* 数字列右对齐更整齐 */
html.v15-on table td.num,html.v15-on table th.num{text-align:right}
/* 过渡统一(去掉各处的 all .25s 抖动) */
html.v15-on .panel,html.v15-on .kpi,html.v15-on .strat-card{
  transition:border-color .28s ease,box-shadow .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)!important}

@media (prefers-reduced-motion:reduce){
  html.v15-on .zone-badge{animation:none!important}
}

/* ══ block #39  (原 index.html 第13738行)  HW_AURORA_V16 ══ */
/*HW_AURORA_V16*/
/*HW_AURORA_V16 —— 顶部全站统一(老板 2026-09-27 23:30: 最顶部太乱 排好并藏好)
   根因: body[data-tab="overview"] .hw-statusbar{display:none} 只藏总览页
        → 其他 18 页顶部是 4 行(topbar/tab/状态条/资产条), 总览只有 2 行 → 不一致
   方案: 诊断状态条全站收起(其 LIVE 信号搬进导航芯片) + 资产条压成细带 */
html.v16-on{--ok:#7fe6bd;--wn:#ffd08a;--bd:#ff9aa2}

/* ── 1. 诊断状态条(System/WebSocket/Exchange/LastSync/Time): 全站收起 ── */
html.v16-on .hw-statusbar{display:none!important}

/* ── 2. 资产条: 压成细带(不占大行), 总览页仍隐藏(与页内 KPI 重复, 沿原设计) ── */
html.v16-on .asset-bar{
  min-height:26px!important;height:26px!important;padding:0 16px!important;gap:13px!important;
  background:rgba(8,8,14,.9)!important;border-bottom:1px solid rgba(77,124,254,.09)!important;
  flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
html.v16-on .asset-bar::-webkit-scrollbar{height:0}
html.v16-on .asset-bar .ab-item{font-size:9.5px!important;letter-spacing:.03em}
html.v16-on .asset-bar .ab-item .ab-val{font-size:11px!important}
html.v16-on .asset-bar .ab-item .icon{opacity:.55}
html.v16-on body[data-tab="overview"] .asset-bar{display:none!important}

/* ── 3. 导航 LIVE 芯片(替代被收起的状态条, 保住"数据是否在跑"的关键信号) ── */
html.v16-on .hw-nav .hw-livechip{
  flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:center;gap:5px;
  font:600 9.5px/1 var(--mono),monospace;letter-spacing:.06em;white-space:nowrap;
  padding:3px 9px;border-radius:999px;color:var(--ok);
  background:rgba(63,211,154,.10);border:1px solid rgba(63,211,154,.28)}
html.v16-on .hw-nav .hw-livechip.warn{color:var(--wn);background:rgba(232,102,61,.10);border-color:rgba(232,102,61,.28)}
html.v16-on .hw-nav .hw-livechip.off{color:var(--bd);background:rgba(255,107,118,.10);border-color:rgba(255,107,118,.28)}
html.v16-on .hw-nav .hw-livechip.na{color:#8b96ad;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
html.v16-on .hw-nav .hw-livechip::before{
  content:'';width:5px;height:5px;border-radius:50%;background:currentColor;
  box-shadow:0 0 7px currentColor;animation:hwDotBreath 2.6s ease-in-out infinite}
@media (max-width:760px){html.v16-on .hw-nav .hw-livechip .lc-k{display:none}}

/* ── 4. 顶部两层(品牌栏 + 导航)彻底定型: 不换行/不抖动 ── */
html.v16-on .topbar{flex-wrap:nowrap!important}
html.v16-on .hw-nav{flex-wrap:nowrap!important}

/* ══ block #40  (原 index.html 第13841行)  HW_AURORA_V17 ══ */
/*HW_AURORA_V17*/
/*HW_AURORA_V17 —— 洪武全屏终端墙 (Terminal Wall)
   老板 2026-09-27: 点洪武 logo → 全屏、一眼看尽所有关键数据的终端界面
   设计: 固定覆盖层(不破坏原站), 12 列密集网格, 纯真数据(/api/hongwu/*), 3s 自刷新
   性能: 只有页眉/页脚/卡片首屏少量 blur, 其余实底 → 保持丝滑 */
html.v17-on,html.v17-on body{overflow:hidden!important}

#hwWall{
  position:fixed;inset:0;z-index:99990;display:none;
  background:
    radial-gradient(1200px 700px at 12% -10%,rgba(77,124,254,.10),transparent 60%),
    radial-gradient(1100px 620px at 88% 108%,rgba(77,124,254,.07),transparent 62%),
    #04060b;
  color:var(--hw-text,#eaf0f8);
  font-family:var(--mono,'JetBrains Mono',Consolas,monospace);
  line-height:1.32;
  grid-template-rows:auto auto 1fr auto;
  gap:9px;padding:9px 11px 11px;box-sizing:border-box;
}
#hwWall.on{display:grid;animation:hwWallIn .28s cubic-bezier(.22,1,.36,1)}
@keyframes hwWallIn{from{opacity:0;transform:scale(.992)}to{opacity:1;transform:none}}

/* ── 页眉 ── */
#hwWall .wl-head{
  display:flex;align-items:center;gap:12px;flex-wrap:nowrap;
  padding:7px 13px;border-radius:11px;
  background:linear-gradient(180deg,rgba(12,16,26,.96),rgba(8,11,18,.9));
  border:1px solid rgba(77,124,254,.16);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#hwWall .wl-brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:14px;letter-spacing:.13em;white-space:nowrap}
#hwWall .wl-brand img{width:26px;height:26px;border-radius:8px}
#hwWall .wl-brand .g{color:var(--hw-brand,#4D7CFE)}
#hwWall .wl-sub{font-size:9.5px;letter-spacing:.16em;color:var(--hw-dim,#5d6878);border-left:1px solid rgba(77,124,254,.18);padding-left:10px}
#hwWall .wl-tag{
  font-size:10px;font-weight:700;letter-spacing:.07em;padding:3px 9px;border-radius:999px;white-space:nowrap;
  background:rgba(77,124,254,.13);border:1px solid rgba(77,124,254,.3);color:#9BB4FF}
#hwWall .wl-tag.ok{background:rgba(0,224,168,.12);border-color:rgba(0,224,168,.34);color:#3fd9a0}
#hwWall .wl-tag.warn{background:rgba(232,102,61,.12);border-color:rgba(232,102,61,.32);color:#ffc078}
#hwWall .wl-tag.bad{background:rgba(255,77,107,.13);border-color:rgba(255,77,107,.36);color:#ff8fa3}
/* 2026-10-09 老板令「终端墙重构」: 头部真版本徽章(读 API version) + UI 修订戳(静态) */
#hwWall .wl-ver{font-family:var(--mono,'JetBrains Mono',Consolas,monospace);
  background:rgba(0,224,168,.10);border-color:rgba(0,224,168,.30);color:#3fd9a0;letter-spacing:.06em}
#hwWall .wl-ui{font-family:var(--mono,'JetBrains Mono',Consolas,monospace);
  background:rgba(77,124,254,.10);border-color:rgba(77,124,254,.28);color:#b9aaff;letter-spacing:.06em}
#hwWall .wl-spacer{flex:1 1 auto;min-width:8px}
#hwWall .wl-clock{font-size:15px;font-weight:700;letter-spacing:.05em;color:#cfe0ff;white-space:nowrap}
#hwWall .wl-x{
  width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;cursor:pointer;
  border-radius:9px;border:1px solid rgba(77,124,254,.2);background:rgba(255,255,255,.03);
  color:var(--hw-muted,#8e9aad);font-size:15px;line-height:1}
#hwWall .wl-x:hover{color:#fff;border-color:rgba(255,107,118,.5);background:rgba(255,77,107,.13)}

/* ── KPI 墙 ── */
#hwWall .wl-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
#hwWall .wl-kpi{
  position:relative;padding:7px 10px 8px;border-radius:10px;overflow:hidden;
  background:linear-gradient(180deg,rgba(16,21,33,.94),rgba(10,13,21,.92));
  border:1px solid rgba(77,124,254,.13)}
#hwWall .wl-kpi::before{content:'';position:absolute;left:0;right:0;top:0;height:1.5px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.5),transparent)}
#hwWall .wl-kpi .k{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--hw-dim,#5d6878);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#hwWall .wl-kpi .v{font-size:17px;font-weight:700;letter-spacing:-.01em;margin-top:2px;white-space:nowrap}
#hwWall .wl-kpi .s{font-size:9.5px;color:var(--hw-dim,#5d6878);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* v160(09-28 老板): KPI 墙 11 格占 12 格 → 右下空缺, 补「资金曲线」迷你卡 */
#hwWall .wl-eqk{display:flex;flex-direction:column;padding:6px 9px 7px}
#hwWall .wl-eqchart{flex:1 1 auto;min-height:26px;width:100%;margin-top:2px}
#hwWall .wl-eqv{font-size:11.5px;font-weight:700;letter-spacing:-.01em;line-height:1.2;margin-top:1px;white-space:nowrap}
#hwWall .wl-eqv.up{color:var(--hw-up,#00e0a8)}#hwWall .wl-eqv.dn{color:var(--hw-down,#ff4d6b)}
#hwWall .up{color:var(--hw-up,#00e0a8)}
#hwWall .dn{color:var(--hw-down,#ff4d6b)}
#hwWall .gd{color:var(--hw-brand,#4D7CFE)}

/* ── 主体网格: 3 行显式高度(内容决定, 不再等分压扁) ── */
#hwWall .wl-main{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:minmax(0,1.70fr) minmax(0,0.86fr) minmax(0,1.30fr);
  gap:8px;min-height:0}
#hwWall .wl-card{
  display:flex;flex-direction:column;min-height:0;overflow:hidden;border-radius:11px;
  background:linear-gradient(180deg,rgba(14,18,28,.94),rgba(9,12,19,.93));
  border:1px solid rgba(77,124,254,.13)}
#hwWall .wl-card>h4{
  flex:0 0 auto;display:flex;align-items:center;gap:7px;margin:0;
  padding:6px 11px;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:#b9c7de;border-bottom:1px solid rgba(77,124,254,.11);background:rgba(255,255,255,.014)}
#hwWall .wl-card>h4 .n{margin-left:auto;font-size:9.5px;color:var(--hw-dim,#5d6878);letter-spacing:.04em}
/* 2026-10-09 老板令「按系统架构模块排版」: 墙卡部门标签 (对齐 nav 9 部门分组) */
#hwWall .wl-card>h4 .wl-dept{
  font-family:var(--mono,'JetBrains Mono',Consolas,monospace);font-size:8px;font-weight:700;
  letter-spacing:.1em;color:#4D7CFE;opacity:.62;padding:1px 5px;border-radius:4px;
  background:rgba(77,124,254,.09);border:1px solid rgba(77,124,254,.16);
  white-space:nowrap;text-transform:none;flex:0 0 auto}
#hwWall .wl-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 9px}
#hwWall .wl-body::-webkit-scrollbar{width:6px;height:6px}
#hwWall .wl-body::-webkit-scrollbar-thumb{background:rgba(77,124,254,.22);border-radius:3px}

/* 占比(显式定位到 3 行) */
#hwWall .p-pos{grid-column:1 / span 8;grid-row:1}
#hwWall .p-ai{grid-column:9 / span 4;grid-row:1}
#hwWall .p-strat{grid-column:1 / span 4;grid-row:2}
#hwWall .p-gmgn{grid-column:5 / span 4;grid-row:2}
#hwWall .p-guard{grid-column:9 / span 4;grid-row:2}
#hwWall .p-trade{grid-column:1 / span 6;grid-row:3}
#hwWall .p-log{grid-column:7 / span 6;grid-row:3}

/* 表 */
#hwWall table{width:100%;border-collapse:collapse;font-size:10.5px}
#hwWall th{position:sticky;top:-4px;background:#0c1018;z-index:1;text-align:left;font-weight:600;
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--hw-dim,#5d6878);
  padding:2px 7px;border-bottom:1px solid rgba(77,124,254,.13);white-space:nowrap}
#hwWall td{padding:2px 7px;border-bottom:1px solid rgba(255,255,255,.045);white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.32}
#hwWall tbody tr:hover{background:rgba(77,124,254,.06)}
#hwWall td.num{text-align:right}
#hwWall .inst{font-weight:700;color:#dce6f7}
#hwWall .side{display:inline-block;line-height:1.25;font-size:9px;padding:0px 5px;border-radius:5px;font-weight:700}
#hwWall .side.long{background:rgba(0,224,168,.13);color:#3fd9a0}
#hwWall .side.short{background:rgba(255,77,107,.13);color:#ff8fa3}
#hwWall .strat-tag{font-size:9.5px;color:var(--hw-muted,#8e9aad)}

/* SI 块 */
#hwWall .ai-verdict{display:flex;align-items:center;gap:9px;margin-bottom:7px;flex-wrap:wrap}
#hwWall .ai-big{font-size:15px;font-weight:700;letter-spacing:.04em}
#hwWall .ai-conf{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--hw-muted,#8e9aad)}
#hwWall .ai-conf .bar{width:88px;height:5px;border-radius:3px;background:rgba(255,255,255,.09);overflow:hidden}
#hwWall .ai-conf .bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#00e0a8,#4D7CFE)}
#hwWall .ai-txt{font-size:11px;line-height:1.55;color:#c6d2e6;margin-bottom:8px}
#hwWall .sig{display:flex;align-items:center;gap:7px;font-size:10px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04)}
#hwWall .sig .d{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b7c4da}
#hwWall .sig .w{font-size:9.5px;color:var(--hw-dim,#5d6878);white-space:nowrap}
#hwWall .dir{font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:5px}
#hwWall .dir.long{background:rgba(0,224,168,.13);color:#3fd9a0}
#hwWall .dir.short{background:rgba(255,77,107,.13);color:#ff8fa3}

/* 策略网格 */
#hwWall .strat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
#hwWall .strat-cell{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;
  background:rgba(255,255,255,.022);border:1px solid rgba(77,124,254,.10)}
#hwWall .strat-cell .dot{width:7px;height:7px;border-radius:50%;background:#3fd9a0;box-shadow:0 0 8px #3fd9a0;flex:0 0 auto;animation:hwDotBreath 2.6s ease-in-out infinite}
#hwWall .strat-cell.dead .dot{background:#ff5c7a;box-shadow:0 0 8px #ff5c7a;animation:none}
#hwWall .strat-cell .nm{font-size:11px;font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#hwWall .strat-cell .st{font-size:9.5px;color:#3fd9a0}
#hwWall .strat-cell.dead .st{color:#ff8fa3}

/* GMGN */
/* GMGN: 紧凑双列键值网格 */
#hwWall .gm-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
#hwWall .gm-row{display:flex;justify-content:space-between;gap:6px;font-size:10px;padding:1.5px 0;border-bottom:1px solid rgba(255,255,255,.04);min-width:0}
#hwWall .gm-row .k{color:var(--hw-muted,#8e9aad);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#hwWall .gm-row .v{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}

/* 流水/日志 */
#hwWall .flow{font-size:10px;padding:1px 0;border-bottom:1px solid rgba(255,255,255,.04);display:flex;gap:8px;align-items:baseline}
#hwWall .flow .t{color:var(--hw-dim,#5d6878);font-size:9.5px;flex:0 0 auto;font-variant-numeric:tabular-nums}
#hwWall .flow .m{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#hwWall .flow .p{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums}

/* 卫士 */
#hwWall .guard-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#hwWall .guard{display:flex;align-items:center;gap:7px;font-size:10px;padding:4px 7px;border-radius:8px;
  background:rgba(255,255,255,.02);border:1px solid rgba(77,124,254,.08)}
#hwWall .guard .gdot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:#3fd9a0;box-shadow:0 0 6px #3fd9a0}
#hwWall .guard .gn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b7c4da}

/* 空态/加载 */
#hwWall .empty{color:var(--hw-dim,#5d6878);font-size:11px;padding:12px 4px;text-align:center}
#hwWall .skel{height:9px;border-radius:4px;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.11),rgba(255,255,255,.05));background-size:200% 100%;animation:skelShine 1.3s linear infinite}

/* 页脚 */
#hwWall .wl-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:6px 13px;border-radius:10px;font-size:10px;color:var(--hw-dim,#5d6878);
  background:rgba(8,11,18,.9);border:1px solid rgba(77,124,254,.11)}
#hwWall .wl-foot b{color:#9fb0c9;font-weight:600}

@media (max-width:1500px){
  #hwWall .wl-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* ── 硬压缩: 抵消全站 html body 层的 padding/line-height !important 抬升 ── */
html.v17-on #hwWall table{font-size:10.5px!important}
html.v17-on #hwWall th{padding:2px 7px!important;font-size:9px!important;line-height:1.25!important}
html.v17-on #hwWall td{padding:2px 7px!important;line-height:1.28!important}
html.v17-on #hwWall .wl-body{padding:4px 9px!important;line-height:1.28!important}
html.v17-on #hwWall .wl-body *{line-height:1.3!important}
html.v17-on #hwWall .flow{padding:1px 0!important;font-size:10px!important}
html.v17-on #hwWall .gm-row{padding:1px 0!important;font-size:10px!important}
html.v17-on #hwWall .sig{padding:2px 0!important;font-size:10px!important}
html.v17-on #hwWall .guard{padding:3px 7px!important;font-size:10px!important}
html.v17-on #hwWall .strat-cell{padding:5px 9px!important}
html.v17-on #hwWall .ai-txt{font-size:10.5px!important;line-height:1.45!important;margin-bottom:5px!important}
html.v17-on #hwWall .wl-card>h4{padding:5px 11px!important;font-size:10px!important}

@media (max-width:1180px){
  #hwWall,html.v17-on,html.v17-on body{overflow:auto!important}
  #hwWall{position:fixed;overflow:auto;grid-template-rows:auto auto auto auto}
  #hwWall .wl-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  #hwWall .wl-main{grid-template-rows:none;grid-auto-rows:auto}
  #hwWall .p-pos,#hwWall .p-ai,#hwWall .p-strat,#hwWall .p-gmgn,
  #hwWall .p-guard,#hwWall .p-trade,#hwWall .p-log{grid-column:span 12;grid-row:auto}
  #hwWall .wl-card{min-height:240px}
}

/* ══ block #41  (原 index.html 第14370行)  HW_AURORA_V18 ══ */
/*HW_AURORA_V18*/
/*HW_AURORA_V18 —— 终端墙动态背景 (星链 + 透视网格 + 扫描脉冲 + 极光晕)
   老板 2026-09-28: 背景重新设计
   性能铁律: DPR≤1.5 / 粒子≤110 / 无 shadowBlur / 关闭或后台立刻停 rAF
   注意: 不用 backdrop-filter(那是 V15 花大力气砍掉的东西) */

/* 背景画布: 铺满整墙, 永远在内容之下 */
#hwWall #wlBg{
  position:absolute;inset:0;width:100%;height:100%;
  z-index:0;display:block;pointer-events:none}

/* 内容层全部抬到画布之上 */
#hwWall>.wl-head,
#hwWall>.wl-kpis,
#hwWall>.wl-main,
#hwWall>.wl-foot{position:relative;z-index:1}

/* 暗角 + 顶部冷光, 让中心数据聚焦(纯 CSS, 零 canvas 成本) */
#hwWall::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(130% 92% at 50% 40%,transparent 46%,rgba(2,4,9,.62) 100%),
    linear-gradient(180deg,rgba(77,124,254,.07),transparent 20%)}

/* 卡片: 实底(不 blur) + 内发光, 与背景拉开层次 */
html.v18-on #hwWall .wl-kpi,
html.v18-on #hwWall .wl-card{
  background-color:rgba(8,11,18,.72);
  box-shadow:inset 0 1px 0 rgba(77,124,254,.06), 0 1px 3px rgba(0,0,0,.35)}

/* ══ block #42  (原 index.html 第14594行)  HW_AURORA_V19 ══ */
/*HW_AURORA_V19*/
/*HW_AURORA_V19 —— 移动端修复层
   老板 2026-09-28: "手机端显示问题太多了 好好解决一下"
   核心根因: .app 是 flex row, .main 作为 flex 子项默认 min-width:auto
             → 拒绝收缩 → 被内容顶到 1482px → 手机只能缩 3.8 倍显示 */

/* ══ 1. 根因修复: flex 子项收缩链(全尺寸生效, 桌面也无害) ══ */
.app{min-width:0}
.main{min-width:0;width:100%;max-width:100%}
.content{min-width:0;max-width:100%;overflow-x:hidden}
.topbar,.hw-nav,.asset-bar,.ticker{min-width:0;max-width:100%}
.hw-nav-scroll{min-width:0}

/* ══ 2. 平板竖屏 / 手机 (≤900px) ══ */
@media(max-width:900px){
  /* 触控区 ≥ 40px */
  .hw-nav{height:auto;min-height:52px;padding:6px 10px;gap:6px}
  .hw-nav .nav-item{min-height:40px;padding:9px 14px;font-size:13px;border-radius:12px}
  .hw-nav-logo{width:40px;height:40px;border-radius:12px}
  .tb-copilot{min-height:40px;padding:9px 13px;font-size:13px}
  .toolbar button,.btn-ctl,.tab-btn,.sb-toggle{min-height:40px}
  #hwmPlay,#hwmMore{width:40px!important;height:40px!important;font-size:16px}
  #langBtn{min-width:44px!important;height:40px!important;font-size:13px!important}

  /* 字号下限: 10px → 12px (手机上 10px 物理≈2.6px 根本看不清) */
  .nl-k,.hq-threat,.ai-hq-time,.ai-scanline{font-size:11px!important}
  th{font-size:11px!important;padding:8px 10px!important}
  td{font-size:12.5px!important;padding:9px 10px!important}
  .asset-bar .ab-item{font-size:12px!important}
  .ticker{font-size:12px!important}

  /* 表格: 容器横向滚动, 不撑破布局 */
  .panel-body,.card-body,.table-wrap,.tbl-wrap,.set-grid,.dash-body{
    overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}

  /* 卡片/面板: 单列铺满 */
  .panel,.card,.zone-block{max-width:100%;min-width:0}
  .home-band,.kpi-row,.dash-sub,.grid-2-1,.grid-3-1,.grid-1-1,.dual-zone,.ai-hq-grid{
    grid-template-columns:1fr!important}

  /* 固定/装饰元素收敛: 别溢出撑宽 */
  #earthBg,.earth-bg{max-width:100vw!important;left:0!important;right:0!important}
  .hw-aurora,#v7Aura,#v11Ambient,#v11Field{max-width:100vw!important;overflow:hidden}
  #v9Progress,#v9ScrollHint{max-width:calc(100vw - 24px)}

  /* SI 军师抽屉: 全宽, 不再跑到屏幕外 */
  .copilot-panel,#copilotPanel{width:100%!important;max-width:100vw!important;left:0!important;right:0!important}
  .cp-head,.cp-body,.cp-empty{width:auto!important;max-width:100%!important}
  #cpFab{right:14px!important;left:auto!important;bottom:16px!important}

  /* 顶栏: 收紧 */
  .topbar{padding:8px 12px!important;gap:8px;flex-wrap:nowrap}
  .content{padding:12px 12px calc(72px + env(safe-area-inset-bottom))!important}
  .asset-bar{padding:8px 12px!important;gap:10px}
}

/* ══ 3. 手机 (≤560px) ══ */
@media(max-width:560px){
  /* 顶栏副标题已经在 640 断点隐藏; 这里再收品牌与按钮 */
  .hw-brandmark{font-size:12px!important;letter-spacing:.04em}
  .topbar-left h1{font-size:14px!important}
  .hw-nav .nav-item{padding:8px 11px;font-size:12.5px}
  .hw-nav .nav-item .badge{font-size:9px;padding:2px 4px}

  /* KPI: 两列, 数值别溢出 */
  .kpi-row,.hw-kpis,.kpi-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .kpi .value,.hw-kpi .value{font-size:17px!important;word-break:break-all}
  .kpi{padding:10px 12px!important}

  /* 表格在超窄屏: 缩字号 + 缩内边距, 保证横向滚动可用 */
  th{padding:7px 8px!important;font-size:10.5px!important}
  td{padding:8px 8px!important;font-size:12px!important}

  /* 弹窗/抽屉: 全屏 */
  .modal,.drawer,.sheet{width:100%!important;max-width:100vw!important}

  /* 底部安全区(iPhone 刘海屏) */
  .ticker{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
}

/* ══ 4. 横屏手机 (高度小) ══ */
@media(max-height:480px) and (orientation:landscape){
  .hw-nav{min-height:44px}
  .content{padding-top:8px!important}
}

/* ══ 5. 触控优化: 禁止 300ms 延迟 & 误缩放 ══ */
@media(hover:none) and (pointer:coarse){
  button,.nav-item,[onclick],a{touch-action:manipulation}
}

/* ══ 6. 顶栏: 防竖排拆字 + 移动端精简 (老板: 实时交易/牛市 被竖排拆开) ══ */
.mode-badge,.regime-badge,.hw-brandmark,.lang-btn,.tb-copilot,.cmd-kbd{
  white-space:nowrap;flex:0 0 auto;word-break:keep-all}
.topbar-left{min-width:0;overflow:hidden}
.hw-brandmark{min-width:0;overflow:hidden;text-overflow:ellipsis}
.hw-brandmark .bm-txt{min-width:0;overflow:hidden;text-overflow:ellipsis}
.topbar-right{flex:0 0 auto}

@media(max-width:900px){
  /* 移动端顶栏: 隐藏音乐组件 + Ctrl+K 提示 (功能仍在, 只是不再占顶栏) */
  .topbar .hwm{display:none!important}
  .topbar .cmd-kbd{display:none!important}
  .topbar{height:auto;min-height:52px;padding:7px 10px!important;flex-wrap:nowrap;gap:8px}
  .topbar-left{gap:8px}
  .topbar-right{gap:8px}
  .mode-badge,.regime-badge{font-size:11.5px;padding:4px 9px;line-height:1.2}
  .tb-copilot{font-size:12.5px;padding:8px 12px;min-height:40px}
  .lang-btn{min-width:44px;height:40px;display:inline-flex;align-items:center;justify-content:center}
}

@media(max-width:560px){
  /* 超窄屏: 保留「实时交易」(安全信号, 实盘/模拟必须可见), 只收市场态徽章(已在 ticker/墙里重复) */
  .topbar .regime-badge{display:none!important}
  .topbar .mode-badge{display:inline-flex!important;align-items:center;font-size:11px;padding:3px 8px;min-height:26px}
  .hw-brandmark{font-size:12.5px!important;letter-spacing:.05em!important}
  .tb-copilot .cp-verdict{display:none}
}

@media(max-width:420px){
  /* 不再是 display:none, 而是缩到最短可辨 */
  .topbar .mode-badge{font-size:10.5px;padding:3px 6px}
  .tb-copilot{padding:8px 10px;font-size:12px}
  .hw-brandmark{font-size:12px!important}
}

/* ══ 7. 触控目标补齐: 图表周期/币种/军师关闭/页脚链接 (实测 19-31px → ≥36px) ══ */
@media(max-width:900px){
  /* 图表周期与币种按钮 */
  .chart-controls button,.chart-range button,.tf-btn,.coin-btn,
  .chart-wrap button,.tf-group button,.range-tabs button{
    min-height:36px!important;min-width:42px!important;padding:8px 10px!important;font-size:12px!important}
  /* SI 军师抽屉关闭 */
  .cp-x{min-width:38px!important;min-height:38px!important;display:inline-flex;align-items:center;justify-content:center;font-size:18px!important}
  /* 页脚/快捷导航链接 */
  .footer a,.foot-nav a,.quick-nav a,.tabs-inline a{min-height:36px;display:inline-flex;align-items:center;padding:6px 10px}
  /* 通用: 任何小按钮兜底 */
  .panel-head button,.card-head button,.toolbar button{min-height:36px}
}

/* ══ 8. 移动端性能: 关掉重度 blur 层(手机上很卡) ══ */
@media(max-width:900px){
  .asset-bar,.hw-nav,.topbar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .asset-bar{background:rgba(8,10,14,.94)!important}
  .hw-nav{background:rgba(8,10,14,.96)!important}
}

/* ══ 9. 实测可点但偏小的行内控件 (cursor=pointer 已确认) ══ */
@media(max-width:900px){
  /* 策略快捷行(名字本身可点跳设置) 19px → 整行 40px */
  .hb-row{min-height:40px!important;align-items:center}
  .hb-n{min-height:40px;display:inline-flex;align-items:center}
  /* 「查看 SI 决策记录 →」 */
  .ai-ev-more{min-height:36px;display:inline-flex;align-items:center;padding:4px 0}
  /* 首页快捷导航(策略/交易/仪表分析/风控仪表/回撤分析/GMGN) 31px → 36px */
  .home-links a,.home-links button{min-height:38px;display:inline-flex;align-items:center;padding:6px 12px}
}

/* ══ 10. 行情筛选 chip + 情报行内链接 ══ */@media(max-width:900px){
  /* 市场页币种筛选 chip (BTC/ETH/SOL) 20px → 38px */
  .md-chip{min-height:38px!important;min-width:52px!important;padding:8px 12px!important;font-size:12.5px!important}
  /* 情报面板行内可点链接(博主名/原文/点赞) 16-18px → ≥36px 触控区(不改变视觉行高) */
  .hq-intel a,.hq-intel-stream a{position:relative}
  .hq-intel a::after,.hq-intel-stream a::after{
    content:'';position:absolute;left:-6px;right:-6px;top:50%;transform:translateY(-50%);height:36px}
}

/* ══ 11. 终端墙手机布局 (V17 墙断点曾因括号不平衡失效, 这里双保险) ══ */
@media(max-width:1180px){
  /* ★ 手机上彻底抛弃 grid: 确定高度容器里的 auto 行会被压到适配高度,
     导致卡片被压成 21px. 改 block 流式布局 = 卡片自然高度, 墙整体滚动. */
  html.v17-on #hwWall{display:block!important;height:100%!important;overflow-y:auto!important
    ;grid-template-rows:none!important;padding:9px!important}
  html.v17-on #hwWall .wl-head{margin-bottom:8px}
  html.v17-on #hwWall .wl-kpis{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important
    ;gap:7px!important;margin-bottom:8px}
  html.v17-on #hwWall .wl-main{display:block!important;height:auto!important
    ;grid-template-rows:none!important;grid-auto-rows:auto!important}
  html.v17-on #hwWall .wl-card{display:flex!important;flex-direction:column!important
    ;height:auto!important;min-height:0!important;margin-bottom:8px!important
    ;grid-column:auto!important;grid-row:auto!important;overflow:hidden!important}
  html.v17-on #hwWall .wl-body{display:block!important;flex:0 0 auto!important
    ;height:auto!important;max-height:none!important;overflow:auto!important}
  html.v17-on #hwWall table{min-width:max-content}
  html.v17-on #hwWall .wl-foot{margin-top:2px}
}
@media(max-width:640px){
  html.v17-on #hwWall .wl-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.v17-on #hwWall .wl-kpi .v{font-size:15px!important}
  html.v17-on #hwWall .wl-head{height:auto!important;flex-wrap:wrap;gap:6px;padding:8px 10px!important}
  html.v17-on #hwWall .wl-head .t1{font-size:13px!important}
  html.v17-on #hwWall .wl-main{gap:6px!important}
}

/* ══ block #43  (原 index.html 第14789行)  HW_AURORA_V20 ══ */
/*HW_AURORA_V20*/
/* ══ V20 (2026-09-28 老板「全做」) GitHub vibecoding 借鉴 A+B+C+D ══
   A taste-skill : 审美准则落地(焦点环/字距/克制动效/等宽数字)
   B design-md   : Kraken/Binance 金融级配方(whisper 阴影/胶囊徽章/12px 圆角)
   C starquake   : 地球滚轮缩放(修饰键门控, 绝不抢页面滚动) + 真实情报脉冲涟漪
   D jarvis-ui   : 系统中心 SI 状态球(IDLE/THINKING/LIVE/OFFLINE 四态)
   铁律: 纯表现层; 不动涨跌色语义(涨绿跌红); 兼容 prefers-reduced-motion;
         除容器级新增外一律用 :where()(零特异性) → 只补空缺, 不覆盖既有规则。
   回滚: 删除本块(V20 / V20_JS 标记)即可, 零残留。 */

/* ── A/B: 新增设计 token(纯追加, 不重定义既有变量) ── */
:root{
  --hw-amber:#E8663D;               /* 警示琥珀(独立于品牌金) */
  --hw-amber-bg:rgba(232,102,61,.12);
  --hw-hair:rgba(255,255,255,.06);  /* 极细分隔线 */
  --hw-elev-1:0 1px 2px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.22);
  --hw-elev-2:0 4px 16px rgba(0,0,0,.40);
  --hw-elev-3:0 12px 32px rgba(0,0,0,.50);
}

/* ── B: 数字一律等宽字形(价格/涨跌/余额) → 交易所级对齐观感 ── */
:where(.v,.num,td.r,td.n,.mono,.ss-v,.kpi .v,.asset-bar .v,[data-num],.hw-num){
  font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1,'zero' 1;
}

/* ── A: 标题字距收紧(编辑级排版) ── */
:where(h1,h2,h3,.panel-head h3,.card-head h3){letter-spacing:-.01em;line-height:1.28}

/* ── A: 无障碍焦点环(键盘可见, 鼠标不打扰) ── */
:where(a,button,[role="button"],input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--hw-accent-cyan);outline-offset:2px;border-radius:6px}

/* ── B: 徽章/胶囊统一(数字等宽 + 6px 圆角) ── */
:where(.tag,.badge,.pill,.chip){font-variant-numeric:tabular-nums;letter-spacing:.02em}
:where(.tag,.badge){border-radius:6px}

/* ── B: 卡片微抬升(Kraken 式 whisper shadow) ── */
@media (hover:hover){
  :where(.panel,.card){transition:box-shadow .2s ease}
  :where(.panel,.card):hover{box-shadow:var(--hw-elev-2)}
}
@media (prefers-reduced-motion:reduce){
  :where(.panel,.card){transition:none!important}
}

/* ══ C-1: 地球缩放容器(不抢滚动; 修饰键/双击触发) ══ */
#aiEarth{transform-origin:50% 46%;will-change:transform;
  transition:transform .28s cubic-bezier(.16,1,.3,1)}
html.hw-zooming #aiEarth{transition:none}
/* 缩放提示胶囊(仅在可缩放页出现, 极低调; 纯提示不可点) */
.hw-zoom-hint{position:fixed;right:14px;bottom:14px;z-index:4;display:none;
  align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  background:rgba(10,14,20,.62);border:1px solid var(--hw-hair);
  color:var(--hw-muted);font:500 11px/1 var(--mono);letter-spacing:.04em;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  pointer-events:none;opacity:0;transition:opacity .3s}
body[data-tab="overview"] .hw-zoom-hint,
body[data-tab="market"] .hw-zoom-hint,
body[data-tab="gmgn"] .hw-zoom-hint{display:inline-flex}
html.hw-zoom-on:not(.hw-zoom-pin) .hw-zoom-hint{opacity:1}
@media (prefers-reduced-motion:reduce){#aiEarth{transition:none}}

/* ══ D: 系统中心 SI 状态球 ══ */
.hw-orb-wrap{display:flex;align-items:center;gap:12px;padding:12px 4px 10px;
  border-bottom:1px solid var(--hw-hair);margin-bottom:8px}
.hw-orb{position:relative;width:46px;height:46px;flex:0 0 46px;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.20),transparent 58%),
             radial-gradient(circle at 50% 50%,var(--hw-orb-c,rgba(46,158,122,.5)),rgba(6,9,14,.9) 72%);
  border:1px solid var(--hw-hair);
  box-shadow:0 0 0 1px rgba(255,255,255,.03),0 0 18px -4px var(--hw-orb-c,rgba(46,158,122,.5))}
.hw-orb::after{content:'';position:absolute;inset:-7px;border-radius:50%;
  border:1px solid var(--hw-orb-c,rgba(46,158,122,.5));opacity:.30;
  animation:hwOrbPulse 2.6s ease-in-out infinite}
html.hw-orb-think .hw-orb::after{animation-duration:1.1s;opacity:.5}
html.hw-orb-off .hw-orb::after{animation:none;opacity:.14}
@keyframes hwOrbPulse{0%,100%{transform:scale(.94);opacity:.22}50%{transform:scale(1.06);opacity:.46}}
@media (prefers-reduced-motion:reduce){.hw-orb::after{animation:none}}
.hw-orb-meta{min-width:0}
.hw-orb-t{font-size:12.5px;font-weight:600;color:var(--hw-text);letter-spacing:.01em}
.hw-orb-s{font-size:11px;color:var(--hw-muted);margin-top:3px}
.hw-orb-k{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;
  vertical-align:middle;background:var(--hw-orb-c,rgba(46,158,122,.9));
  box-shadow:0 0 8px var(--hw-orb-c)}

/* ══ block #44  (原 index.html 第15021行)  HW_AURORA_V21 ══ */
/*HW_AURORA_V21*/
/* ══ V21 (2026-09-28 老板「全做」) P0 三件套 ══
   P0-1 微字体提升: 9/9.5px 中文极难读 → 10.5/11px (opt-in: html.v21-on)
   P0-2 PWA: manifest + iOS 全屏元信息
   P0-3 tab 键盘/无障碍: role=tablist/tab + aria-selected + 方向键漫游
   回滚: 删本块(V21 / V21_JS 标记), 零残留。
   注: 用 :is() 而非 :where() —— :where 零特异性打不过原有 3 类选择器(.ai-hq .ai-ev .lv)。
       仅覆盖「字号」, 不动颜色/间距/布局。 */

/* ── P0-1: 微字体提升(只提字号) ── */
html.v21-on :is(.nav-label,.hb-status,.hwm-cnt,.hwm-chev,.nl-k,.hwe-chev,
  .bb-score,.lv,.rel,.heat-x,.coin-tag,.coin-fallback,.hw-wordmark i,
  .ai-earth-legend,.ai-hq .ai-ev .lv,.ai-hq .ai-ev .meta,.ai-hq .ai-scanline,
  .hw-brandmark .bm-sub,.hw-statusbar .ss-k,.lc-v){
  font-size:10.5px;line-height:1.35}
html.v21-on :is(.ai-earth-legend,.ai-hq .ai-ev .meta,.hw-statusbar .ss-k){
  font-size:11px}
html.v21-on :is(.heat-x){font-size:9.5px}
/* 个别类被原站 !important 压着 → 同权重 + !important 定向覆盖 */
html.v21-on .ai-ev .lv{font-size:10.5px!important}
html.v21-on .ai-hq .ai-ev .lv{font-size:10.5px!important}
html.v21-on .hq-intel .ai-ev .lv{font-size:10.5px!important}
@media (max-width:900px){
  html.v21-on .coin-tag{font-size:10.5px!important}
}

/* ── P0-3: tab 键盘可达(语义由 JS 加) ── */
html.v21-on .nav-item[role="tab"]{outline-offset:2px}
html.v21-on .nav-item[role="tab"][aria-selected="true"]{position:relative}

/* ══ block #45  (原 index.html 第15111行)  HW_AURORA_V22 ══ */
/*HW_AURORA_V22*/
/* ══ V22 (2026-09-28) Vibe 视觉重构层 ══
   定位: 纯表现层。不动数据链路/接口语义/涨跌色语义/结构类名/标识符。
   作用域: html.v22-on  (可 ?v22=off 关闭)
   铁律遵从:
     · 涨跌色固定不动 (--hw-up/--hw-down/--up/--down)
     · 金色只留品牌+激活态; 警示用独立琥珀 #E8663D
     · 绝不改 .earth-bg / #earthBg / #aiEarth 位置
     · 兼容 prefers-reduced-motion */
html.v22-on{
  --v22-accent:#4D7CFE;
  --v22-violet:#4D7CFE;
  --v22-cyan:#9BB4FF;
  --v22-amber:#E8663D;
  --v22-glass-hi:rgba(255,255,255,.075);
  --v22-glass-lo:rgba(9,12,19,.58);
  --v22-r:14px;
  --v22-ease:cubic-bezier(.22,.61,.36,1);
}

/* ── ① 极光环境层 (fixed, 非交互, 屏下混合) ───────────────── */
#hwAuroraV22{position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:.62;mix-blend-mode:screen;overflow:hidden;contain:strict}
#hwAuroraV22 i{position:absolute;display:block;border-radius:50%;
  filter:blur(88px);will-change:transform,opacity}
#hwAuroraV22 i:nth-child(1){width:54vw;height:54vw;left:-14vw;top:-16vw;
  background:radial-gradient(circle,rgba(77,124,254,.32),transparent 68%);
  animation:v22drift1 30s ease-in-out infinite}
#hwAuroraV22 i:nth-child(2){width:46vw;height:46vw;right:-12vw;top:4vh;
  background:radial-gradient(circle,rgba(77,124,254,.26),transparent 68%);
  animation:v22drift2 38s ease-in-out infinite}
#hwAuroraV22 i:nth-child(3){width:40vw;height:40vw;left:22vw;bottom:-16vh;
  background:radial-gradient(circle,rgba(77,124,254,.20),transparent 70%);
  animation:v22drift3 34s ease-in-out infinite}
@keyframes v22drift1{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vw,4vh,0) scale(1.12)}}
@keyframes v22drift2{0%,100%{transform:translate3d(0,0,0) scale(1.05)}50%{transform:translate3d(-7vw,7vh,0) scale(.95)}}
@keyframes v22drift3{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(5vw,-6vh,0) scale(1.15)}}

/* ── ② 玻璃面板 v2: 渐变玻璃 + 顶部极光发丝线 ─────────────── */
html.v22-on .panel{
  background:
    linear-gradient(90deg,transparent,rgba(77,124,254,.50),rgba(77,124,254,.50),transparent) top/100% 1px no-repeat,
    linear-gradient(180deg,rgba(20,25,38,.74),var(--v22-glass-lo)) !important;
  -webkit-backdrop-filter:blur(16px) saturate(140%) !important;
  backdrop-filter:blur(16px) saturate(140%) !important;
  border:1px solid rgba(255,255,255,.07) !important;
  border-radius:var(--v22-r) !important;
  box-shadow:
    0 1px 0 0 var(--v22-glass-hi) inset,
    0 10px 28px -14px rgba(0,0,0,.75),
    0 0 0 0 rgba(77,124,254,0) !important;
  transition:border-color .3s var(--v22-ease),box-shadow .3s var(--v22-ease),transform .3s var(--v22-ease) !important;
}
html.v22-on .panel:hover{
  border-color:rgba(77,124,254,.22) !important;
  box-shadow:
    0 1px 0 0 var(--v22-glass-hi) inset,
    0 14px 34px -14px rgba(0,0,0,.8),
    0 0 26px -12px rgba(77,124,254,.45) !important;
}

/* ── ③ 面板标题: 左起渐隐蓝晕 + 细分割 ─────────────────────── */
html.v22-on .panel-head{
  background:linear-gradient(90deg,rgba(77,124,254,.07),transparent 42%) !important;
  border-bottom:1px solid rgba(77,124,254,.14) !important;
}
html.v22-on .panel-sub{color:rgba(160,175,200,.72) !important}

/* ── ④ 导航: 激活态渐变胶囊 + 光晕 ────────────────────────── */
html.v22-on .nav-item{
  border-radius:9px !important;
  transition:color .2s var(--v22-ease),background .28s var(--v22-ease),
    transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .28s var(--v22-ease) !important;
}
html.v22-on .nav-item:hover{
  background:rgba(77,124,254,.09) !important;
  transform:translateY(-1px) !important;
}
html.v22-on .nav-item.active{
  background:linear-gradient(120deg,rgba(77,124,254,.20),rgba(77,124,254,.16)) !important;
  color:#eaf2ff !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 0 18px -8px rgba(77,124,254,.7) !important;
}
html.v22-on .nav-item.active::after{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:2px;height:56%;border-radius:2px;
  background:linear-gradient(180deg,var(--v22-accent),var(--v22-violet));
  box-shadow:0 0 8px rgba(77,124,254,.9);
}
html.v22-on .nav-item:focus-visible{
  outline:2px solid rgba(77,124,254,.75) !important;
  outline-offset:2px;border-radius:9px;
}

/* ── ⑤ 按钮: 玻璃 + 悬停描边流光 ─────────────────────────── */
html.v22-on .btn-ctl{
  border-radius:9px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)) !important;
  border-color:rgba(255,255,255,.10) !important;
  transition:all .22s var(--v22-ease) !important;
}
html.v22-on .btn-ctl:hover:not(:disabled){
  border-color:rgba(77,124,254,.55) !important;
  background:linear-gradient(120deg,rgba(77,124,254,.16),rgba(77,124,254,.12)) !important;
  box-shadow:0 0 20px -8px rgba(77,124,254,.8),inset 0 1px 0 rgba(255,255,255,.12) !important;
  transform:translateY(-1px) !important;
}
html.v22-on .btn-ctl.danger{
  border-color:rgba(255,77,107,.42) !important;
  color:#ff9db1 !important;
  background:rgba(255,77,107,.08) !important;
}
html.v22-on .btn-ctl:focus-visible{outline:2px solid rgba(77,124,254,.7) !important;outline-offset:2px}

/* ── ⑥ 表格/行: 悬停高亮更克制 ───────────────────────────── */
html.v22-on tbody tr{transition:background .2s var(--v22-ease)}
html.v22-on tbody tr:hover{background:rgba(77,124,254,.055) !important}

/* ── ⑦ 滚动条 + 选区 + 数字等宽 ──────────────────────────── */
html.v22-on ::selection{background:rgba(77,124,254,.30);color:#fff}
html.v22-on *::-webkit-scrollbar{width:9px;height:9px}
html.v22-on *::-webkit-scrollbar-track{background:rgba(255,255,255,.02)}
html.v22-on *::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(77,124,254,.45),rgba(77,124,254,.40));
  border-radius:6px;border:2px solid transparent;background-clip:padding-box}
html.v22-on *::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,rgba(77,124,254,.75),rgba(77,124,254,.65));
  background-clip:padding-box}

/* ── ⑧ 入场: 面板滚动浮现 (仅在 IO 可用且非降级动效时启用) ── */
@media (prefers-reduced-motion:no-preference){
  html.v22-on.v22-anim .panel.v22-pre{
    opacity:0;transform:translateY(16px) scale(.994);
    transition:opacity .62s var(--v22-ease),transform .62s var(--v22-ease);
  }
  html.v22-on.v22-anim .panel.v22-in{opacity:1 !important;transform:none !important}
}
@media (prefers-reduced-motion:reduce){
  #hwAuroraV22 i{animation:none !important}
  html.v22-on .panel{transition:none !important}
}
/* 顶层内容需压在极光层之上 */
html.v22-on .main,html.v22-on .app{position:relative;z-index:1}


/* ══ block #47  HW_WALL_GLASS_V23 ══
   V23「Glass OS」终端墙 —— 洪武全屏终端墙(#hwWall)视觉升级
   设计: 仿玻璃(纯 CSS 渐变 + 内高光 + 外辉光), 遵 V18 铁律禁用 backdrop-filter
   作用域: html.v23-on, 可 ?v23=off 回滚
   铁律: 涨跌色不动(涨 #00e0a8 / 跌 #ff4d6b), 金色只留品牌/激活态; 不动结构/类名 */
html.v23-on #hwWall{
  background:
    radial-gradient(1300px 780px at 10% -12%,rgba(77,124,254,.07),transparent 58%),
    radial-gradient(1100px 700px at 92% 112%,rgba(77,124,254,.055),transparent 60%),
    radial-gradient(900px 560px at 62% 44%,rgba(45,212,191,.022),transparent 64%),
    linear-gradient(180deg,#03050b,#020308) !important}

/* ── 卡片: 仿玻璃(无 blur) + 内高光 + 外辉光 ── */
html.v23-on #hwWall .wl-kpi,
html.v23-on #hwWall .wl-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.042),transparent 42%),
    linear-gradient(165deg,rgba(15,20,32,.70),rgba(6,9,15,.66)) !important;
  border:1px solid rgba(77,124,254,.15) !important;
  box-shadow:
    inset 0 1px 0 rgba(77,124,254,.13),
    inset 0 0 22px rgba(77,124,254,.035),
    0 6px 22px rgba(0,0,0,.42) !important;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important}

/* ── KPI 顶部光条加强 ── */
html.v23-on #hwWall .wl-kpi::before{
  height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.78),rgba(77,124,254,.55),transparent) !important}
html.v23-on #hwWall .wl-kpi .v{text-shadow:0 0 18px rgba(77,124,254,.20)}
html.v23-on #hwWall .wl-kpi:hover,
html.v23-on #hwWall .wl-card:hover{
  border-color:rgba(77,124,254,.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(77,124,254,.18),
    inset 0 0 26px rgba(77,124,254,.06),
    0 8px 26px rgba(0,0,0,.46) !important}

/* ── 页眉 / 页脚 ── */
html.v23-on #hwWall .wl-head{
  background:linear-gradient(180deg,rgba(16,22,36,.82),rgba(7,10,17,.72)) !important;
  border:1px solid rgba(77,124,254,.18) !important;
  box-shadow:inset 0 1px 0 rgba(77,124,254,.15), 0 4px 18px rgba(0,0,0,.35) !important}
html.v23-on #hwWall .wl-foot{
  background:linear-gradient(180deg,rgba(14,19,31,.80),rgba(6,9,15,.70)) !important;
  border:1px solid rgba(77,124,254,.14) !important;
  box-shadow:inset 0 1px 0 rgba(77,124,254,.11) !important}
html.v23-on #hwWall .wl-tag{box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}

/* ── 卡片标题栏 ── */
html.v23-on #hwWall .wl-card>h4{
  background:linear-gradient(180deg,rgba(31,40,60,.52),rgba(14,19,30,.26)) !important;
  border-bottom:1px solid rgba(77,124,254,.15) !important}

/* ── 表格行 / 内嵌小块: 玻璃微调 ── */
html.v23-on #hwWall tbody tr:hover{background:rgba(77,124,254,.075) !important}
html.v23-on #hwWall .strat-cell,
html.v23-on #hwWall .guard{
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012)) !important;
  border:1px solid rgba(77,124,254,.13) !important;
  box-shadow:inset 0 1px 0 rgba(77,124,254,.07)}

/* ── ⑩ 老板 2026-09-28 21:00: 背景退让 + 间距统一 + 表头对齐 ── */
html.v23-on #hwWall #wlBg{opacity:.42 !important}
html.v23-on #hwWall::after{
  background:
    radial-gradient(130% 92% at 50% 40%,transparent 38%,rgba(1,2,6,.78) 100%),
    linear-gradient(180deg,rgba(77,124,254,.045),transparent 18%) !important}
/* 表头数字列 → 右对齐(与 td.num 严格对应) */
html.v23-on #hwWall th.num{text-align:right !important}
/* 间距统一为 8px(KPI/主体/策略/卫士 一致) */
html.v23-on #hwWall .wl-kpis{gap:8px !important}
html.v23-on #hwWall .strat-grid,
html.v23-on #hwWall .guard-grid{gap:8px !important}
/* 数值列固定等宽对齐, 表头与数据上下成列 */
html.v23-on #hwWall th.num,html.v23-on #hwWall td.num{font-variant-numeric:tabular-nums !important}

/* ── 手机端地球回归修复(非V23视觉改动, 独立保留) ─────────────
   根因: L2807 把 #earthBg 置为 position:absolute;height:100%
   → 桌面 .app≈视口高 正常; 手机 .app=整页高 → 地球被拉成黑洞。
   依据 L2806 注释「地球层是 fixed inset:0 全屏背景, 绝不能改 position」恢复 fixed。*/
html body #earthBg,
html body .earth-bg{
  position:fixed !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-height:100vh !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   block #48  HW_THEME_V24  —  洪武视觉重构 · 金属黑 · 拉丝钢 (2026-09-29 老板全权)
   ═══════════════════════════════════════════════════════════════════════
   老板令: 主色系 = 金属黑 —— 近黑冷钢基底 + 银白拉丝高光 + 全面退金。
   设计决策:
     ① 底色 —— 真·近黑; 把"底"沉到接近黑, 数据(银白)才浮得起来。
     ② 品牌色 —— 香槟金 → 银白(拉丝不锈钢), 只给品牌/关键数值/激活态。
     ③ 质感 —— 顶栏/面板头/KPI 上"拉丝钢"细纹 + 斜向银白高光 + 顶部内高光,
               硬朗、克制、有金属反射感 (纯渐变, 无图片, 无 backdrop-filter)。
     ④ 交互 —— 冷银蓝高光; 焦点环/滚动条/悬停统一。
     ⑤ 语义 —— 警示由金琥珀 → 金属铜(保留警示语义); 涨/跌色不变。
   回滚: URL 加 ?v24=off → <html> 不加 .v24-on, 本层全部失效(一行还原)。
   备份: hw-styles.css.bak_v24metal_pre_20260929_131212
   铁律: 本层不引入 backdrop-filter; 不改地球 (.earth-bg/#earthBg) position/结构类名;
         涨/跌色语义不变 (涨 #35d69c / 跌 #ff5f78)。
   ═══════════════════════════════════════════════════════════════════════ */

/* ── ① 配色收敛: token 重定义(经旧→新映射全站自动继承) ─────────────── */
html.v24-on{
  /* 中性基色: 真·近黑 */
  --hw-bg:#03050a;--hw-bg-elev:#070a10;
  --hw-surface:#0a0e15;--hw-surface-2:#0f1520;--hw-surface-3:#151c28;
  --hw-border:#1a222e;--hw-border-2:#2b3746;
  --hw-text:#e9eff8;--hw-muted:#8a96a8;--hw-dim:#565f6e;
  /* 主色: 银白拉丝钢 —— 更亮的银, 只给品牌/关键数值/激活态 */
  --hw-brand:#e3eaf4;--hw-brand-soft:rgba(227,234,244,.14);
  --hw-brand-line:rgba(227,234,244,.40);
  /* 金属高光/暗部 */
  --hw-metal-hi:rgba(240,246,255,.26);--hw-metal-lo:rgba(4,7,12,.66);
  /* 交互副色: 冷银蓝 */
  --hw-accent:#9BB4FF;--hw-accent-cyan:#9BB4FF;--hw-accent-soft:rgba(77,124,254,.13);
  --hw-energy:#4D7CFE;--hw-energy-soft:rgba(77,124,254,.14);
  /* 语义色: 警示改金属铜, 其余降饱和与主色共存 */
  --hw-success:#2f9e7c;--hw-warning:#c07a3f;--hw-danger:#c8524b;
  --hw-up:#35d69c;--hw-down:#ff5f78;
  --hw-up-bg:rgba(53,214,156,.11);--hw-down-bg:rgba(255,95,120,.11);
  /* 节奏: 圆角/阴影收敛 */
  --hw-r-sm:6px;--hw-r-md:10px;--hw-r-lg:14px;
  --radius:var(--hw-r-md);--radius-sm:var(--hw-r-sm);
  --shadow-card:0 1px 3px rgba(0,0,0,.5);
  --shadow-hover:0 10px 26px rgba(0,0,0,.55);
  /* 旧色 token 同步收敛到银白/冷蓝(避免残留金色) */
  --gold:#e3eaf4;--gold-bg:rgba(227,234,244,.10);
  --purple:#9BB4FF;--purple-bg:rgba(77,124,254,.12);
  --pink:#9BB4FF;--pink-bg:rgba(77,124,254,.10);
  --cyan:#9BB4FF;--cyan-bg:rgba(77,124,254,.10);
  --blue:#9BB4FF;
  --ok:#2f9e7c;--ok-bg:rgba(47,158,124,.11);
  --err:#c8524b;--err-bg:rgba(200,82,75,.11);
  --up:#35d69c;--up-bg:rgba(53,214,156,.11);
  --down:#ff5f78;--down-bg:rgba(255,95,120,.11);
}

/* ── ② 底色: 近黑冷钢 + 顶部冷银辉光(把"底"沉下去) ─────────────────── */
html.v24-on body{
  background:
    radial-gradient(1250px 640px at 50% -15%,rgba(77,124,254,.11),transparent 62%),
    radial-gradient(900px 520px at 88% 6%,rgba(77,124,254,.05),transparent 60%),
    linear-gradient(180deg,#03050a,#020306 62%,#030509)!important;
}
html.v24-on .app{background:transparent!important}

/* ── ③ 顶栏: 拉丝钢条(细纹 + 斜向高光 + 底部银线) ──────────────────── */
html.v24-on .topbar{
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px),
    linear-gradient(180deg,rgba(232,240,252,.17),rgba(232,240,252,.02) 44%,rgba(0,0,0,.44)),
    linear-gradient(90deg,#080b11,#161d29 50%,#080b11)!important;
  border-bottom:1px solid rgba(227,234,244,.26)!important;
  box-shadow:0 1px 0 rgba(240,246,255,.10) inset,0 6px 22px rgba(0,0,0,.46)!important;
}
html.v24-on .topbar-left h1 .brand{color:var(--hw-brand)!important}

/* ── ④ 面板: 冷钢描边 + 顶部银高光(数据容器要"静") ────────────────── */
html.v24-on .panel{
  border-color:var(--hw-border);
  background:linear-gradient(180deg,rgba(227,234,244,.045),rgba(10,14,21,.78) 42%)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.5),inset 0 1px 0 rgba(240,246,255,.09);
  transition:border-color .24s ease,box-shadow .24s ease;
}
html.v24-on .panel:hover{
  border-color:var(--hw-border-2);
  box-shadow:0 6px 24px rgba(0,0,0,.5),inset 0 1px 0 rgba(240,246,255,.13);
}
html.v24-on .panel-head{
  padding:13px 18px;
  border-bottom:1px solid var(--hw-border);
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px),
    linear-gradient(180deg,rgba(227,234,244,.06),transparent 72%)!important;
  box-shadow:inset 0 1px 0 rgba(240,246,255,.07);
}
html.v24-on .panel-head h3{letter-spacing:.02em;color:var(--hw-brand)!important}
html.v24-on .panel-head h3::after{
  background:linear-gradient(90deg,var(--hw-brand),rgba(227,234,244,0))!important;
  width:32px!important;height:2px!important;
}

/* ── ⑤ KPI: 拉丝银卡 + 亮银数值 ─────────────────────────────────────── */
html.v24-on .kpi{
  border-color:rgba(227,234,244,.18)!important;
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.02) 0 1px,transparent 1px 4px),
    linear-gradient(160deg,rgba(227,234,244,.115),rgba(9,13,19,.72) 60%)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.45),inset 0 1px 0 rgba(240,246,255,.10);
  transition:transform .22s cubic-bezier(.16,1,.3,1),
             border-color .22s ease,box-shadow .22s ease;
}
html.v24-on .kpi::before{
  width:3px!important;opacity:1!important;
  background:linear-gradient(180deg,var(--hw-brand),rgba(227,234,244,.10))!important;
  box-shadow:0 0 18px rgba(227,234,244,.55)!important;
}
html.v24-on .kpi:hover{
  transform:translateY(-2px);
  border-color:rgba(227,234,244,.40)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.55),inset 0 1px 0 rgba(240,246,255,.18);
}
html.v24-on .kpi .value{
  color:#f1f6fc!important;
  text-shadow:0 0 24px rgba(227,234,244,.30);
  letter-spacing:-.025em;
}
html.v24-on .kpi .label{color:rgba(227,234,244,.86)!important}

/* ── ⑥ 顶部状态轨: 悬停/激活金属反馈 ───────────────────────────────── */
html.v24-on .hw-nav{position:relative}
html.v24-on .hw-nav a,html.v24-on .hw-nav .nav-item{transition:color .18s ease}
html.v24-on .hw-nav .nav-item.active{
  color:#f4f8fd!important;
  border-color:rgba(227,234,244,.60)!important;
  background:linear-gradient(135deg,rgba(227,234,244,.30),rgba(227,234,244,.06))!important;
  box-shadow:0 0 0 1px rgba(227,234,244,.24),
             0 0 22px -3px rgba(227,234,244,.55)!important;
}
html.v24-on .hw-nav a:hover,html.v24-on .hw-nav .nav-item:hover{color:var(--hw-brand)}

/* ── ⑦ 标签/胶囊: 统一节奏 ──────────────────────────────────────────── */
html.v24-on .tag{
  border-radius:999px;letter-spacing:.02em;
  border:1px solid rgba(227,234,244,.12)!important;
}

/* ── ⑧ 玻璃币: 磨砂金属芯片(无 backdrop-filter, 纯渐变+内高光) ────── */
html.v24-on .coin-tag{
  padding:3px 9px;border-radius:999px;
  background:linear-gradient(158deg,rgba(26,34,47,.78),rgba(8,11,17,.64))!important;
  border:1px solid rgba(227,234,244,.20)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.46),inset 0 1px 0 rgba(240,246,255,.11);
  letter-spacing:.3px;backdrop-filter:none;-webkit-backdrop-filter:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
html.v24-on .coin-tag:hover{
  transform:translate(-50%,-50%) scale(1.06);
  border-color:rgba(227,234,244,.46)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.55),inset 0 1px 0 rgba(240,246,255,.18);
}
html.v24-on .coin-tag.up{color:#5fe0b4}
html.v24-on .coin-tag.up .ct-c{color:#35d69c}
html.v24-on .coin-tag.dn{color:#ff8fa0}
html.v24-on .coin-tag.dn .ct-c{color:#ff5f78}

/* ── ⑨ 左栏进度轨 / 旧金渐变: 退金 → 银 ────────────────────────────── */
html.v24-on #hwV4Rail .v4-dot.on{
  background:linear-gradient(180deg,var(--hw-brand),#4D7CFE)!important;
}

/* ── ⑩ 可访问性: 聚焦环 ────────────────────────────────────────────── */
html.v24-on :focus-visible{
  outline:2px solid var(--hw-brand-line);
  outline-offset:2px;border-radius:6px;
}

/* ── ⑪ 滚动条: 与主色统一 ──────────────────────────────────────────── */
html.v24-on ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(227,234,244,.38),rgba(77,124,254,.32))!important;
  border-radius:999px;
}
html.v24-on ::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,rgba(227,234,244,.55),rgba(77,124,254,.5))!important;
}

/* ── ⑫ 降级动效: 尊重系统偏好 ──────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html.v24-on .kpi:hover,html.v24-on .coin-tag:hover{transform:none}
  html.v24-on .kpi,html.v24-on .panel,
  html.v24-on .coin-tag{transition:none!important}
}
/* ══ end block #48 HW_THEME_V24 ══ */

/* ── #48b 质感强化 (2026-09-29): 让"高级感"看得见, 纯 CSS 零风险 ─────────
   说明: 不抢占既有伪元素(panel::before 高光 / kpi::before 左条 已存在),
         只做「背景层 + 既有伪元素强化 + 新增轻量装饰」。仍零 backdrop-filter。 */
html.v24-on .kpi::before{
  width:3px;opacity:.92;
  background:linear-gradient(180deg,var(--hw-brand),rgba(217,180,95,.22));
  box-shadow:0 0 12px rgba(217,180,95,.32);
}
html.v24-on .kpi{
  background:radial-gradient(130% 150% at 0% 0%,rgba(217,180,95,.05),transparent 58%),var(--hw-surface);
}
html.v24-on .kpi:hover{
  background:radial-gradient(130% 150% at 0% 0%,rgba(217,180,95,.11),transparent 62%),var(--hw-surface-2);
}
html.v24-on .kpi .value{text-shadow:0 0 24px rgba(217,180,95,.10)}

/* 面板标题: 金色短下划线(仅装饰, 不占 ::before/::after) */
html.v24-on .panel-head h3{position:relative}
html.v24-on .panel-head h3::after{
  content:'';position:absolute;left:0;bottom:-4px;width:22px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--hw-brand),transparent);
}
/* 面板: 顶沿线更明显一点(强化既有 ::before 的观感, 不新增) */
html.v24-on .panel{border-top-color:rgba(217,180,95,.13)}

/* 顶栏激活项: 金色指示 */
html.v24-on .hw-nav .nav-item.active{
  color:var(--hw-text);
  box-shadow:inset 0 -2px 0 0 var(--hw-brand);
}

/* 表格/行: 悬停金色微光(数据密度高时给"当前行"锚点) */
html.v24-on tbody tr:hover,
html.v24-on .row:hover{
  background:linear-gradient(90deg,rgba(217,180,95,.05),transparent 60%)!important;
}

/* 滚动条轨道: 更深, 与底色融合 */
html.v24-on ::-webkit-scrollbar-track{background:rgba(255,255,255,.012)}

/* 降级: 尊重系统偏好 */
@media (prefers-reduced-motion:reduce){
  html.v24-on .kpi:hover{background:var(--hw-surface)!important}
}
/* ══ end #48b ══ */

/* ── #48c V24 品牌金终裁 (2026-09-29) ─────────────────────────────────
   背景: 文件内更早的 HW_AURORA_V5 中性化层用 !important 把品牌金
         压成白色(行2566 --hw-brand-line / 行2582 .nav-item.active)。
         V24 的"单一强调色"需要金色在导航/面板顶边/品牌线生效。
   策略: 只针对 4 处做特异性+!important 终裁, 不改动 V5 块本身(保留可追溯)。
   安全: 不动涨跌色; 不动地球; 仍零 backdrop-filter。 */
html.v24-on{
  --hw-brand-line:rgba(217,180,95,.34)!important;
  --hw-brand-soft:rgba(217,180,95,.13)!important;
}
html.v24-on .panel{border-top-color:rgba(217,180,95,.16)!important}
html.v24-on .hw-nav .nav-item.active{
  color:var(--hw-text)!important;
  border-color:rgba(217,180,95,.45)!important;
  background:linear-gradient(135deg,rgba(217,180,95,.18),rgba(77,124,254,.10))!important;
  box-shadow:0 0 0 1px rgba(217,180,95,.12),0 4px 16px rgba(0,0,0,.32)!important;
}
/* ══ end #48c ══ */

/* ═══════════════════════════════════════════════════════════════════════
   block #49  HW_DECK_V25  —  洪武视觉重构 · 作战指挥台 (2026-09-29 老板全权)
   ═══════════════════════════════════════════════════════════════════════
   老板令: 全权自由发挥(动结构) —— 让数据"浮到前面当主角", 一眼就变。
   设计决策(不碰地球一个属性):
     ① HUD 罩层 —— hero 区加四角托架 + 边缘刻度 + 标识小字, 纯伪元素/注入层,
                    pointer-events:none, 不遮挡任何交互。
     ② 情报卡 —— 加深底/提亮边/放大标题, 让右侧情报"读得清"。
     ③ KPI —— 数值放大, 指挥台大屏感。
     ④ 分区头 —— 银白索引符 + 中文标题加粗。
   铁律: 不改 .earth-bg/#earthBg/#aiEarth 的 position/结构类名/亮度;
         不新增 backdrop-filter; 涨/跌色不变。
   回滚: URL 加 ?v25=off → <html> 不加 .v25-on, 本层全部失效。
   注入: assets/hw-app-32.js 给 <html> 加 v25-on 并在 .ai-hq 内插一层 .hud-deck。
   ═══════════════════════════════════════════════════════════════════════ */
html.v25-on{
  --hud-line:rgba(227,234,244,.46);
  --hud-line-2:rgba(227,234,244,.20);
  --hud-dim:rgba(227,234,244,.14);
}

/* ── ① HUD 罩层根 ─────────────────────────────────────────────────── */
html.v25-on .hud-deck{position:absolute;inset:0;z-index:11;pointer-events:none}

/* 四角托架 */
html.v25-on .hud-deck::before{
  content:'';position:absolute;inset:9px;
  background:
    linear-gradient(var(--hud-line),var(--hud-line)) left  top    /28px 1.5px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) left  top    /1.5px 28px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) right top    /28px 1.5px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) right top    /1.5px 28px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) left  bottom /28px 1.5px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) left  bottom /1.5px 28px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) right bottom /28px 1.5px no-repeat,
    linear-gradient(var(--hud-line),var(--hud-line)) right bottom /1.5px 28px no-repeat;
  opacity:.9;
}

/* 左右边缘刻度 */
html.v25-on .hud-deck::after{
  content:'';position:absolute;top:18%;bottom:18%;left:9px;right:9px;
  background:
    repeating-linear-gradient(180deg,var(--hud-dim) 0 1px,transparent 1px 13px) left  top/7px 100% no-repeat,
    repeating-linear-gradient(180deg,var(--hud-dim) 0 1px,transparent 1px 13px) right top/7px 100% no-repeat;
  opacity:.95;
}

/* HUD 标识(左上下角文字) */
html.v25-on .hud-deck .hd-mark,
html.v25-on .hud-deck .hd-en{
  position:absolute;left:20px;font-family:var(--mono);
  color:#dfe8f5;letter-spacing:.24em;text-transform:uppercase;
  text-shadow:0 1px 5px rgba(0,0,0,.85);
  display:flex;align-items:center;gap:8px;white-space:nowrap;
}
html.v25-on .hud-deck .hd-mark{top:50px;font-size:11px;font-weight:800}
html.v25-on .hud-deck .hd-mark::before{
  content:'';width:7px;height:7px;border-radius:50%;
  background:#5fe0b4;box-shadow:0 0 10px #5fe0b4;
  animation:hdPulse 1.8s ease infinite}
html.v25-on .hud-deck .hd-en{bottom:18px;font-size:9px;color:rgba(223,232,245,.62);font-weight:600}
html.v25-on .hud-deck .hd-en::after{
  content:'';width:44px;height:1px;background:linear-gradient(90deg,var(--hud-line),transparent)}
@keyframes hdPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}

/* 顶部一条扫描光带(极淡, 不压暗地球) */
html.v25-on .hud-deck .hd-scan{
  position:absolute;left:12%;right:12%;top:9px;height:1px;
  background:linear-gradient(90deg,transparent,var(--hud-line),transparent);
  opacity:.7;
}

/* ── ② hero 区与分区节奏 ─────────────────────────────────────────── */
html.v25-on .ai-hq{padding-top:2px}
html.v25-on .ai-hq+.hw-v2-overview{padding-top:6px}

/* ── ③ 情报卡: 加深底 + 提亮边 + 放大标题(右侧情报读得清) ────────── */
html.v25-on .ai-hq .ai-ev{
  background:linear-gradient(100deg,rgba(13,17,26,.90),rgba(8,11,18,.82))!important;
  border:1px solid rgba(227,234,244,.20)!important;
  border-left:2px solid rgba(227,234,244,.42)!important;
  border-radius:9px!important;
  padding:8px 12px!important;
  box-shadow:0 8px 26px rgba(0,0,0,.55),inset 0 1px 0 rgba(240,246,255,.10)!important;
}
html.v25-on .ai-hq .ai-ev:hover{
  border-color:rgba(227,234,244,.55)!important;
  transform:translateX(-3px)!important;
  box-shadow:0 10px 32px rgba(0,0,0,.6),inset 0 1px 0 rgba(240,246,255,.16)!important;
}
html.v25-on .ai-hq .ai-ev .tt{font-size:13px!important;font-weight:700;color:#eef3fb!important}
html.v25-on .ai-hq .ai-ev .sm{color:#b6c2d6!important}
html.v25-on .ai-hq .ai-ev .meta{color:#8d9ab4!important}
html.v25-on .hq-intel-foot{border-top:1px solid rgba(227,234,244,.10);margin-top:6px;padding-top:6px}

/* ── ④ KPI: 指挥台大屏数值 ──────────────────────────────────────── */
html.v25-on .hw-kpis{gap:12px}
html.v25-on .hw-kpi{padding:15px 16px 13px}
html.v25-on .hw-kpi .hk-v{font-size:calc(var(--hw-fs-xl) * 1.22)!important;font-weight:700}
html.v25-on .hw-kpi .hk-l{color:#a8b4c6}

/* ── ⑤ 分区头: 银白索引符 ───────────────────────────────────────── */
html.v25-on .hw-sec-h h3{color:#eef3fb;letter-spacing:.04em}
html.v25-on .hw-sec-h .hs-ic{
  border:1px solid rgba(227,234,244,.22);
  background:linear-gradient(160deg,rgba(227,234,244,.14),rgba(10,14,21,.6))}

/* ── ⑥ 移动端: HUD 收敛防杂 ─────────────────────────────────────── */
@media(max-width:900px){
  html.v25-on .hud-deck::before{inset:6px;
    background-size:18px 1.5px,1.5px 18px,18px 1.5px,1.5px 18px,
                   18px 1.5px,1.5px 18px,18px 1.5px,1.5px 18px}
  html.v25-on .hud-deck::after{display:none}
  html.v25-on .hud-deck .hd-mark{display:none}
  html.v25-on .hud-deck .hd-en{display:none}
}
@media (prefers-reduced-motion:reduce){
  html.v25-on .hud-deck .hd-mark::before{animation:none}
  html.v25-on .ai-hq .ai-ev:hover{transform:none!important}
}
/* ══ end block #49 HW_DECK_V25 ══ */

/* ═══════════════════════════════════════════════════════════════════════
   block #50  HW_AURORA_V27 — 沉浸式视觉升级 (2026-09-29 老板全权)
   ═══════════════════════════════════════════════════════════════════════
   灵感来源: Motion Sites / React Bits / Uiverse / Anime.js / Aceternity UI
   设计哲学: "数据浮到前面当主角 + 环境光当舞台" — 极光底噪 / 玻璃拟态 /
             渐变能量字 / 微交互光泽 / 入场编排。
   铁律(与 V24/V25 一脉相承):
     - 绝不改 .earth-bg / #earthBg / #aiEarth 任何属性(地球是命根子)
     - 不覆写 --hw-up / --hw-down (涨跌色锁死)
     - 全部作用域 html.v27-on → URL 加 ?v27=off 一行还原
   备份: hw-styles.css.bak_v27_pre_<ts>
   注入: assets/hw-app-34.js 给 <html> 加 .v27-on
   ═══════════════════════════════════════════════════════════════════════ */
html.v27-on{
  /* ── 底色保持原值(绝不压暗地球垫底) + 能量化强调色(冷青主 + 品牌金辅) ── */
  --hw-bg:#05050A;--hw-bg-elev:#07070D;
  --hw-surface:#0a0e16!important;--hw-surface-2:#0e1420!important;--hw-surface-3:#141b2a!important;
  --hw-border:rgba(77,124,254,.10)!important;--hw-border-2:rgba(77,124,254,.18)!important;
  --hw-text:#eef3fb!important;--hw-muted:#93a1b8!important;--hw-dim:#5f6c82!important;
  --hw-accent:#4D7CFE!important;--hw-accent-cyan:#4D7CFE!important;--hw-accent-soft:rgba(77,124,254,.15)!important;
  --hw-brand:#e2bd5c!important;--hw-brand-soft:rgba(226,189,92,.13)!important;--hw-brand-line:rgba(226,189,92,.36)!important;
  --hw-energy:#4D7CFE!important;--hw-energy-soft:rgba(77,124,254,.18)!important;
  --hw-metal-hi:rgba(77,124,254,.20)!important;--hw-metal-lo:rgba(4,8,16,.62)!important;
  --v27-ease:cubic-bezier(.22,1,.36,1);
}

/* ── ① 极光环境层: 固定径向光晕 + 缓慢漂移(纯装饰, 不挡交互, 不碰地球) ── */
html.v27-on body::after{
  content:'';position:fixed;inset:-20%;z-index:0;pointer-events:none;
  background:
    radial-gradient(42% 34% at 16% 22%,rgba(77,124,254,.14),transparent 62%),
    radial-gradient(38% 30% at 84% 26%,rgba(77,124,254,.10),transparent 64%),
    radial-gradient(46% 38% at 72% 82%,rgba(226,189,92,.075),transparent 66%),
    radial-gradient(40% 34% at 22% 86%,rgba(77,124,254,.085),transparent 66%);
  mix-blend-mode:screen;
  animation:v27Aurora 44s var(--v27-ease) infinite alternate;
}
@keyframes v27Aurora{
  0%{transform:translate3d(-2%,-1.5%,0) scale(1.02);opacity:.92}
  50%{transform:translate3d(1.5%,1%,0) scale(1.06);opacity:1}
  100%{transform:translate3d(2.5%,-1%,0) scale(1.03);opacity:.96}
}
/* 顶部一条极淡能量扫描线(仪式感, 不压暗地球) */
html.v27-on .main::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.5),rgba(226,189,92,.32),transparent);
  opacity:.5;animation:v27Scan 9s ease-in-out infinite;
}
@keyframes v27Scan{0%,100%{opacity:.28}50%{opacity:.7}}

/* ── ② 玻璃拟态强化: 面板提亮顶边 + 悬停抬升发光 ── */
html.v27-on .panel{
  background:linear-gradient(180deg,rgba(14,20,32,.86),rgba(8,8,14,.62))!important;
  border:1px solid var(--hw-border)!important;
  box-shadow:0 1px 0 rgba(77,124,254,.07) inset,0 18px 44px rgba(0,0,0,.5)!important;
  transition:transform .32s var(--v27-ease),border-color .3s,box-shadow .32s!important;
}
html.v27-on .panel:hover{
  border-color:rgba(77,124,254,.30)!important;
  box-shadow:0 1px 0 rgba(77,124,254,.12) inset,0 24px 60px rgba(0,0,0,.58),0 0 0 1px rgba(77,124,254,.10)!important;
}
/* 面板头: 加一道极细渐变高光 + 标题能量感 */
html.v27-on .panel-head{
  position:relative;
  border-bottom:1px solid rgba(77,124,254,.09)!important;
}
html.v27-on .panel-head::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(77,124,254,.32),transparent);
  opacity:.6;
}

/* ── ③ KPI 指挥台: 渐变能量数字 + 悬停辉光 ── */
html.v27-on .hw-kpi,html.v27-on .kpi{
  background:linear-gradient(158deg,rgba(16,23,36,.9),rgba(9,13,22,.72))!important;
  border:1px solid rgba(77,124,254,.11)!important;
  box-shadow:0 1px 0 rgba(77,124,254,.06) inset,0 12px 30px rgba(0,0,0,.42)!important;
  transition:transform .3s var(--v27-ease),border-color .3s,box-shadow .3s!important;
}
html.v27-on .hw-kpi:hover,html.v27-on .kpi:hover{
  transform:translateY(-2px)!important;
  border-color:rgba(77,124,254,.28)!important;
  box-shadow:0 1px 0 rgba(77,124,254,.14) inset,0 18px 44px rgba(0,0,0,.5),0 0 24px rgba(77,124,254,.10)!important;
}
html.v27-on .hw-kpi .hk-v,html.v27-on .hw-kpi .num,
html.v27-on .kpi .value{
  background:linear-gradient(96deg,#f2f7ff 0%,#cfe6ff 46%,#4D7CFE 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent!important;
  text-shadow:none!important;letter-spacing:-.012em;
}
/* 涨跌数值不参与渐变(保色), 只保留等宽 */
html.v27-on .kpi .value.u,html.v27-on .unit{ -webkit-text-fill-color:currentColor;background:none!important}

/* ── ④ 顶栏导航: 流动下划线 + 激活辉光(动效版) ── */
html.v27-on .hw-nav .nav-item{position:relative;transition:color .22s var(--v27-ease)!important}
html.v27-on .hw-nav .nav-item::after{
  content:'';position:absolute;left:12%;right:12%;bottom:2px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--hw-accent-cyan),var(--hw-accent),var(--hw-brand));
  transform:scaleX(0);transform-origin:center;opacity:0;
  transition:transform .32s var(--v27-ease),opacity .3s;pointer-events:none;
}
html.v27-on .hw-nav .nav-item:hover::after{transform:scaleX(.6);opacity:.65}
html.v27-on .hw-nav .nav-item.active::after{transform:scaleX(1);opacity:1}
html.v27-on .hw-nav .nav-item.active{
  color:#fff!important;text-shadow:0 0 14px rgba(77,124,254,.35);
}
html.v27-on .hw-nav{
  background:linear-gradient(180deg,rgba(5,8,14,.92),rgba(5,8,14,.70))!important;
  border-bottom:1px solid rgba(77,124,254,.10)!important;
}

/* ── ⑤ 分区头: 青金渐变索引条 ── */
html.v27-on .hw-sec-h h3,html.v27-on .panel-head h3{
  color:#f0f5fc!important;letter-spacing:.02em;
}
html.v27-on .hw-sec-h h3::before,html.v27-on .panel-head h3::before{
  content:'';display:inline-block;width:3px;height:13px;margin-right:8px;border-radius:2px;
  vertical-align:-1px;
  background:linear-gradient(180deg,var(--hw-accent-cyan),var(--hw-brand));
  box-shadow:0 0 10px rgba(77,124,254,.4);
}

/* ── ⑥ 按钮 / 币标签: 光泽扫过 + 状态色 ── */
html.v27-on .btn-ctl,html.v27-on .coin-tag,html.v27-on .tag{
  transition:transform .22s var(--v27-ease),box-shadow .25s,border-color .25s!important;
}
html.v27-on .btn-ctl:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.4),0 0 0 1px rgba(77,124,254,.22)!important}
html.v27-on .coin-tag:hover,html.v27-on .tag:hover{transform:translateY(-1px);box-shadow:0 0 16px rgba(77,124,254,.16)!important}

/* ── ⑦ 表格行悬停: 能量侧光 ── */
html.v27-on tbody tr{transition:background .2s var(--v27-ease),box-shadow .2s}
html.v27-on tbody tr:hover{
  background:linear-gradient(90deg,rgba(77,124,254,.05),rgba(77,124,254,.015))!important;
  box-shadow:inset 3px 0 0 rgba(77,124,254,.5);
}

/* ── ⑧ 滚动条: 冷钢细轨 ── */
html.v27-on *::-webkit-scrollbar{width:9px;height:9px}
html.v27-on *::-webkit-scrollbar-track{background:rgba(255,255,255,.015)}
html.v27-on *::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(77,124,254,.28),rgba(77,124,254,.20));
  border-radius:8px;border:2px solid transparent;background-clip:padding-box;
}
html.v27-on *::-webkit-scrollbar-thumb:hover{background:rgba(77,124,254,.45);background-clip:padding-box}
html.v27-on ::selection{background:rgba(77,124,254,.34);color:#fff}

/* ── ⑨ 入场编排: 面板依次浮现 ── */
html.v27-on .tab-page.active .panel{animation:v27Rise .5s var(--v27-ease) both}
html.v27-on .tab-page.active .panel:nth-child(2){animation-delay:.05s}
html.v27-on .tab-page.active .panel:nth-child(3){animation-delay:.1s}
html.v27-on .tab-page.active .panel:nth-child(4){animation-delay:.15s}
@keyframes v27Rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ── ⑩ 无障碍/性能护栏 ── */
@media (prefers-reduced-motion:reduce){
  html.v27-on body::after{animation:none!important}
  html.v27-on .main::before{animation:none!important}
  html.v27-on .panel,html.v27-on .hw-kpi,html.v27-on .kpi{transition:none!important}
  html.v27-on .tab-page.active .panel{animation:none!important}
}
@media(max-width:900px){
  html.v27-on body::after{inset:-10%;opacity:.8}
  html.v27-on .main::before{display:none}
}
/* ══ end block #50 HW_AURORA_V27 ══ */

/* ═══════════════════════════════════════════════════════════════════════
   block #51  HW_COCKPIT_V28 — 一眼换代 · 交易驾驶舱 (2026-09-29)
   ═══════════════════════════════════════════════════════════════════════
   老板反馈: V27 只是氛围层, 体感像没改。V28 改信息架构:
     - 首页从「大球+卡片」改为三栏 cockpit: 左资产/任务, 中战场, 右 SI 行动
     - 语义色系统: 盈利绿/风险红/警戒琥珀/AI紫/交互青
     - 明确可交互 affordance: SI 卡动作按钮、地球聚焦环、驾驶舱状态条
   回滚: ?v28=off 不加 .v28-on, DOM 包装不执行。
   铁律: 不碰 .earth-bg/#earthBg/#aiEarth；不改真实数据源；不改下单逻辑。
   ═══════════════════════════════════════════════════════════════════════ */
html.v28-on{
  --v28-bg:#05070d;--v28-ink:#f2f6ff;--v28-muted:#93a1b8;--v28-dim:#5f6b7c;
  --v28-panel:rgba(8,8,14,.76);--v28-panel2:rgba(12,18,30,.82);
  --v28-line:rgba(77,124,254,.14);--v28-line2:rgba(77,124,254,.28);
  --v28-action:#4D7CFE;--v28-ai:#4D7CFE;--v28-risk:#ff5c7a;--v28-warn:#E8663D;--v28-ok:#45e0a6;
  --v28-ease:cubic-bezier(.22,1,.36,1);
}

/* 首页整体: 彻底从普通流式面板改成 cockpit 舞台 */
html.v28-on body[data-tab="overview"] .content{padding:12px 16px 22px!important}
html.v28-on body[data-tab="overview"] #tab-overview{position:relative;z-index:2}
html.v28-on .v28-cockpit{
  display:grid;grid-template-columns:minmax(250px,310px) minmax(520px,1fr) minmax(300px,390px);
  grid-template-rows:auto minmax(360px,56vh) auto;
  grid-template-areas:"top top top" "left center right" "bottom bottom bottom";
  gap:14px;align-items:stretch;
}
html.v28-on .v28-top{grid-area:top;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--v28-line);border-radius:16px;background:linear-gradient(120deg,rgba(10,15,24,.78),rgba(8,11,18,.46));box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 42px rgba(0,0,0,.36)}
html.v28-on .v28-title{display:flex;align-items:center;gap:10px;min-width:0}
html.v28-on .v28-title .sig{width:9px;height:9px;border-radius:50%;background:var(--v28-ok);box-shadow:0 0 16px var(--v28-ok);animation:v28Pulse 1.8s ease infinite}
html.v28-on .v28-title b{font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--v28-ink)}
html.v28-on .v28-title span{font-size:11px;color:var(--v28-muted);letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.v28-on .v28-mode{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
html.v28-on .v28-pill{font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--v28-line);border-radius:999px;padding:7px 9px;color:var(--v28-muted);background:rgba(255,255,255,.035)}
html.v28-on .v28-pill.hot{color:#06100d;background:linear-gradient(90deg,var(--v28-ok),#4D7CFE);border-color:transparent;box-shadow:0 0 18px rgba(69,224,166,.18)}
html.v28-on .v28-pill.ai{color:#f2edff;border-color:rgba(77,124,254,.35);background:rgba(77,124,254,.13)}
html.v28-on .v28-pill.warn{color:#fff3d5;border-color:rgba(230,184,92,.35);background:rgba(230,184,92,.12)}

html.v28-on .v28-left{grid-area:left;min-width:0;display:flex;flex-direction:column;gap:12px}
html.v28-on .v28-center{grid-area:center;min-width:0;position:relative}
html.v28-on .v28-right{grid-area:right;min-width:0;display:flex;flex-direction:column;gap:12px}
html.v28-on .v28-bottom{grid-area:bottom;min-width:0}

/* 左栏: 核心资产变成任务仪表，不再横向挤在下面 */
html.v28-on .v28-left .hw-sec{margin:0!important;padding:12px;border:1px solid var(--v28-line);border-radius:18px;background:linear-gradient(180deg,rgba(9,14,24,.84),rgba(7,10,18,.66));box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 44px rgba(0,0,0,.38)}
html.v28-on .v28-left .hw-sec-h{margin-bottom:10px!important;padding-bottom:8px!important;border-color:rgba(77,124,254,.10)!important}
html.v28-on .v28-left .hw-kpis{grid-template-columns:1fr!important;gap:9px!important}
html.v28-on .v28-left .hw-kpi{padding:12px 13px!important;border-radius:14px!important;background:linear-gradient(120deg,rgba(14,22,36,.90),rgba(8,8,14,.70))!important;border:1px solid rgba(77,124,254,.13)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important}
html.v28-on .v28-left .hw-kpi::after{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--v28-action),transparent);opacity:.7}
html.v28-on .v28-left .hw-kpi .hk-v{font-size:22px!important;line-height:1.05!important}
html.v28-on .v28-left .hw-kpi .hk-l{font-size:10px!important;color:var(--v28-muted)!important;letter-spacing:.12em!important;text-transform:uppercase}

/* 中央战场: 地球从装饰变成可交互雷达台 */
html.v28-on .v28-center .ai-hq{height:100%!important;min-height:430px!important;margin:0!important;border-radius:24px!important;border:1px solid rgba(77,124,254,.24)!important;background:radial-gradient(70% 70% at 50% 45%,rgba(77,124,254,.08),transparent 64%),linear-gradient(150deg,rgba(5,9,18,.88),rgba(2,4,10,.72))!important;box-shadow:0 0 0 1px rgba(77,124,254,.08),0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06)!important;overflow:hidden!important;cursor:crosshair}
html.v28-on .v28-center .ai-hq::before{display:block!important;content:''!important;position:absolute;inset:16px!important;border-radius:20px!important;padding:1px!important;background:linear-gradient(135deg,rgba(77,124,254,.58),transparent 24%,transparent 74%,rgba(230,184,92,.42))!important;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0)!important;-webkit-mask-composite:xor!important;mask-composite:exclude!important;pointer-events:none!important;animation:none!important;opacity:1!important}
html.v28-on .v28-center .ai-hq::after{content:''!important;position:absolute!important;inset:0!important;background:linear-gradient(90deg,transparent 49.8%,rgba(77,124,254,.13) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(77,124,254,.10) 50%,transparent 50.2%)!important;z-index:8!important;pointer-events:none!important;opacity:.55!important}
html.v28-on .v28-radar-label{position:absolute;left:22px;top:20px;z-index:30;display:flex;align-items:center;gap:8px;font:800 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#eaf7ff;text-shadow:0 0 12px rgba(77,124,254,.35);pointer-events:none}
html.v28-on .v28-radar-label::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--v28-action);box-shadow:0 0 14px var(--v28-action);animation:v28Pulse 2s ease infinite}
html.v28-on .v28-radar-hint{position:absolute;left:22px;bottom:20px;z-index:30;font:700 10px/1 var(--mono);letter-spacing:.12em;color:rgba(225,240,255,.68);pointer-events:none}
html.v28-on .v28-radar-ring{position:absolute;inset:12%;z-index:9;border:1px dashed rgba(77,124,254,.22);border-radius:50%;pointer-events:none;animation:v28Rotate 32s linear infinite}
html.v28-on .v28-radar-ring::before,html.v28-on .v28-radar-ring::after{content:'';position:absolute;inset:18%;border:1px solid rgba(230,184,92,.12);border-radius:50%}
html.v28-on .v28-radar-ring::after{inset:36%;border-color:rgba(77,124,254,.16)}

/* 右栏: SI 情报从小浮层变成行动卡，增加可感知的按钮 */
html.v28-on .v28-right .hq-intel{position:relative!important;top:auto!important;right:auto!important;bottom:auto!important;width:auto!important;height:100%!important;min-height:430px!important;z-index:20!important;padding:12px!important;border:1px solid rgba(77,124,254,.26)!important;border-radius:20px!important;background:linear-gradient(180deg,rgba(15,12,28,.88),rgba(8,11,20,.72))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 22px 60px rgba(0,0,0,.44)!important;pointer-events:auto!important}
html.v28-on .v28-right .hq-intel::before{content:'SI COPILOT · ACTION QUEUE';display:block;margin:0 0 10px;font:900 11px/1 var(--mono);letter-spacing:.16em;color:#e9e2ff;text-shadow:0 0 14px rgba(77,124,254,.42)}
html.v28-on .v28-right .ai-events{gap:8px!important;overflow-y:auto!important;padding-right:3px!important}
html.v28-on .v28-right .ai-ev{display:grid!important;grid-template-columns:auto 1fr!important;gap:8px 10px!important;padding:10px 11px!important;border-radius:15px!important;background:linear-gradient(120deg,rgba(22,18,38,.86),rgba(10,14,24,.72))!important;border:1px solid rgba(77,124,254,.18)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 30px rgba(0,0,0,.34)!important;transform:none!important}
html.v28-on .v28-right .ai-ev:hover{border-color:rgba(77,124,254,.44)!important;box-shadow:0 0 0 1px rgba(77,124,254,.12),0 18px 42px rgba(0,0,0,.45)!important;transform:translateY(-2px)!important}
html.v28-on .v28-right .ai-ev .lv{grid-row:1/3;font-size:10px!important;border-radius:999px!important;padding:4px 7px!important;background:rgba(77,124,254,.14)!important;color:#efeaff!important;border-color:rgba(77,124,254,.38)!important;box-shadow:0 0 18px rgba(77,124,254,.16)!important}
html.v28-on .v28-right .ai-ev .tt{font-size:13px!important;color:#f3f6ff!important;line-height:1.36!important}
html.v28-on .v28-right .ai-ev .sm{font-size:11px!important;color:#aeb9d0!important;-webkit-line-clamp:2!important}
html.v28-on .v28-actions{grid-column:2;display:flex;gap:6px;margin-top:2px;flex-wrap:wrap}
html.v28-on .v28-act{border:1px solid rgba(77,124,254,.25);border-radius:999px;background:rgba(77,124,254,.08);color:#dffbff;font:800 9px/1 var(--mono);letter-spacing:.08em;padding:6px 8px;cursor:pointer;transition:transform .18s var(--v28-ease),background .18s,border-color .18s}
html.v28-on .v28-act:hover{transform:translateY(-1px);background:rgba(77,124,254,.16);border-color:rgba(77,124,254,.46)}
html.v28-on .v28-act.ghost{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.045);color:#b9c5d8}

/* 下方原双区: 变成二级工作台，不再抢首屏 */
html.v28-on .v28-bottom .dual-zone{margin-top:2px!important;grid-template-columns:1fr 1fr!important;gap:14px!important}
html.v28-on .v28-bottom .zone-block{border-radius:20px!important;background:linear-gradient(180deg,rgba(9,14,24,.72),rgba(7,10,18,.56))!important;border:1px solid rgba(77,124,254,.10)!important}
html.v28-on .v28-bottom .chart-wrap,html.v28-on .v28-bottom .equity-chart{height:260px!important}

/* 语义色: PnL 更明显，不再被装饰色吞掉 */
html.v28-on .up,html.v28-on .pos,html.v28-on .dir-up,html.v28-on .tc-pnl.up{color:var(--v28-ok)!important;text-shadow:0 0 12px rgba(69,224,166,.18)}
html.v28-on .down,html.v28-on .neg,html.v28-on .dir-down,html.v28-on .tc-pnl.down{color:var(--v28-risk)!important;text-shadow:0 0 12px rgba(255,92,122,.18)}
html.v28-on .tag[style*="gold"],html.v28-on .warn{color:var(--v28-warn)!important}

@keyframes v28Pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}
@keyframes v28Rotate{to{transform:rotate(360deg)}}
@media(max-width:1280px){html.v28-on .v28-cockpit{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;grid-template-areas:"top" "center" "left" "right" "bottom"}html.v28-on .v28-right .hq-intel{min-height:260px!important}html.v28-on .v28-center .ai-hq{min-height:360px!important}}
@media(max-width:760px){html.v28-on .v28-top{align-items:flex-start;flex-direction:column}html.v28-on .v28-mode{justify-content:flex-start}html.v28-on .v28-bottom .dual-zone{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){html.v28-on .v28-radar-ring,html.v28-on .v28-title .sig,html.v28-on .v28-radar-label::before{animation:none!important}}
/* ══ end block #51 HW_COCKPIT_V28 ══ */

/* ══ block #52  HW_V29_PUREBLACK — 纯黑底 + 性能(全站去毛玻璃)  2026-09-29 老板全权 ══
   老板原话:「网站太卡了 还有配色太乱 直接纯黑色」
   ① 性能: 全站 backdrop-filter 归零 (实测 95 个元素在跑模糊, 其中 .panel 59 个)
   ② 配色: 收敛为纯黑底 + 中性灰阶; 强调色只留涨跌语义 (--up/--down 不动)
   回滚: URL ?v29=off → 不加 .v29-on → 本块整体不生效
   铁律: 不碰 .earth-bg / #earthBg / .hq-stage-vignette; 不碰 --up/--down
*/
html.v29-on{--v29-bg:#000;--v29-panel:rgba(10,10,11,.94);--v29-panel2:rgba(14,14,16,.96);--v29-line:rgba(255,255,255,.075);--v29-ink:#f2f4f7;--v29-muted:#8b94a3}

/* ① 性能: 一刀杀全部毛玻璃 (含伪元素) */
html.v29-on :not(#hwV29None),html.v29-on :not(#hwV29None)::before,html.v29-on :not(#hwV29None)::after,html.v29-on::before,html.v29-on::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* ② 纯黑底 */
html.v29-on body{background:var(--v29-bg)!important}
html.v29-on .app,html.v29-on .content,html.v29-on main{background:transparent!important}
html.v29-on .hw-nav,html.v29-on .hw-statusbar,html.v29-on .hw-battlebar,html.v29-on .topbar,html.v29-on .hud-rail{background:var(--v29-bg)!important;border-color:var(--v29-line)!important}

/* 面板: 纯黑实底(不再半透玻璃), 单层廉价阴影 */
html.v29-on .panel,html.v29-on .kpi,html.v29-on .zone-block,html.v29-on .risk-kpi,html.v29-on .hz-card,html.v29-on .hw-kpi,html.v29-on .hw-sec,html.v29-on .hw-ai-cell,html.v29-on .ai-ev,html.v29-on .hw-sig,html.v29-on .hw-mkt,html.v29-on .hw-sec-h{
  background-image:none!important;background-color:var(--v29-panel)!important;
  border:1px solid var(--v29-line)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset!important;
  transition:none!important}

/* ③ 配色收敛: 强调色 -> 中性白; 只留涨跌红绿 */
html.v29-on:root{
  --hw-brand:#e9edf3!important;--hw-brand-soft:rgba(233,237,243,.12)!important;--hw-brand-line:rgba(233,237,243,.22)!important;
  --hw-accent:#c3ccd8!important;--hw-accent-cyan:#c3ccd8!important;--hw-accent-soft:rgba(195,204,216,.12)!important;
  --gold:#e9edf3!important;--gold-bg:rgba(233,237,243,.08)!important;
  --purple:#c3ccd8!important;--purple-bg:rgba(195,204,216,.10)!important;
  --cyan:#c3ccd8!important;--cyan-bg:rgba(195,204,216,.08)!important;
  --blue:#c3ccd8!important;--pink:#c3ccd8!important;--pink-bg:rgba(195,204,216,.08)!important;
  --hw-surface:var(--v29-panel)!important;--hw-surface-2:var(--v29-panel2)!important;--hw-border:var(--v29-line)!important;
  --txt:#f2f4f7!important;--t2:#b8c0cc!important;--t3:#8b94a3!important
}
html.v29-on .zone-badge.cex,html.v29-on .zone-badge.gmgn,html.v29-on .nav-item.active{color:var(--v29-ink)!important;border-color:var(--v29-line)!important;background:var(--v29-panel2)!important}
html.v29-on .hw-sec-h h3,html.v29-on .panel-head h3{color:var(--v29-ink)!important}

/* 重绘脚本注入的层用装饰动画在低端机很贵: 收敛无限动画到有限 */
html.v29-on .hw-orb,html.v29-on .v22-anim,html.v29-on [class*="aurora"],html.v29-on [class*="glow"]{animation-duration:0s!important;animation-iteration-count:1!important}


/* ④ 关掉彩色星云/极光层(纯黑要求) —— 不含地球本体 #earthBg/.earth-bg/.hq-stage-vignette */
html.v29-on #v7Aura,html.v29-on #hwAuroraV22,html.v29-on .hw-aurora,html.v29-on #v11Ambient{display:none!important}
html.v29-on #v10Glow,html.v29-on #v9Glow,html.v29-on .v-ambient,html.v29-on [id$="Glow"]{display:none!important}
html.v29-on .v12-chart,html.v29-on .equity-chart,html.v29-on #gmgnKpiRow,html.v29-on .kpi-row,html.v29-on .chart-wrap{background-image:none!important}
html.v29-on #klineWrap{background-image:none!important}

/* ⑤ 纯黑下描边太淡会"卡片消失": 提亮一档, 文字提高对比 */
html.v29-on{--v29-line:rgba(255,255,255,.10)}
html.v29-on .panel,html.v29-on .zone-block,html.v29-on .hw-sec,html.v29-on .hw-kpi,html.v29-on .ai-ev{
  border-color:rgba(255,255,255,.11)!important;background-color:rgba(12,12,14,.96)!important}
html.v29-on .content,html.v29-on body{color:#c8cfd9!important}


/* ⑥ 性能: 去掉全站重阴影(408 个) + 停掉装饰性无限动画(37 个) —— 2026-09-29 老板「还是很卡」 */
html.v29-on .panel,html.v29-on .zone-block,html.v29-on .kpi,html.v29-on .hw-kpi,html.v29-on .hw-sec,html.v29-on .hw-ai-cell,html.v29-on .risk-kpi,html.v29-on .hz-card,html.v29-on .ai-ev{
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset!important;transition:none!important}
html.v29-on .zone-badge.cex,html.v29-on .zone-badge.gmgn,html.v29-on .cex,html.v29-on .gmgn,.v29-on [class*="kpi"]{box-shadow:none!important}
html.v29-on *,html.v29-on *::before,html.v29-on *::after{animation-duration:0s!important;animation-iteration-count:1!important;animation-delay:0s!important}
html.v29-on #v7Aura,html.v29-on #hwAuroraV22,html.v29-on .hw-aurora,html.v29-on #v11Ambient,html.v29-on #v10Glow,html.v29-on #content{will-change:auto!important}
/* 装饰性 canvas(全屏粒子场)隐藏; 图表 canvas 无 aria-hidden 故不受影响 */
html.v29-on canvas[aria-hidden="true"]{display:none!important}
/* 地球容器内的画布一律保留(地球本尊/玻璃币/星场), 再单独关掉已知装饰星场 → 双保险不误伤地球 */
html.v29-on #earthBg canvas,html.v29-on .earth-bg canvas,html.v29-on #aiEarth canvas,html.v29-on .hq-stage-earth canvas{display:block!important}
html.v29-on #earthBg #hwV4Stars,html.v29-on .earth-bg #hwV4Stars{display:none!important}
html.v29-on .earth-bg,html.v29-on #earthBg{will-change:auto!important}


/* ══ block #53  HW_V38_COINPARTICLES — 玻璃币粒子化 + 冗余文案收敛  2026-09-29 老板 ══
   老板: 玻璃币要活起来(卫星/呼吸/随机/汇聚成保护罩/鼠标粒子交互); 砍无关文案。
   旧层下线: V11 内建币环 / DOM 币标签 / 幕次徽标「第一幕·地球在线」/ 指挥台字样。
   (V11 主画布 v11Field 在减肥时已无内容, 保留无害; 这里只关可见的旧币层。)
   回滚: ?v38=off → html 不加 v38-on → 本块不生效(配合 hw-app-38.js 自弃)。 */
html.v38-on .coin-tag,html.v38-on #coinTagLayer{display:none!important}
html.v38-on #hwV4Act{display:none!important}
html.v38-on .hud-deck .hd-mark,html.v38-on .hud-deck .hd-en{display:none!important}
html.v38-on #v38Field{position:absolute;inset:0;z-index:2;display:block!important;pointer-events:none;width:100%!important;height:100%!important}

/* ══ end block #52 HW_V29_PUREBLACK ══ */

/* ══ block #54  HW_V162_MUSIC_RESTORE — 修复音乐控件被 V7 块隐藏   (2026-09-29 老板: 音乐坏了) ══
   根因: block #29 (HW_AURORA_V7) 为"砍顶栏文案"把 .hwm-track(曲名) / .hwm-bar(电平) 全 display:none,
         并把 .hwm 压到 60% 透明; 再由 @media(max-width:900px) 把整个 .hwm display:none →
         桌面只剩一个 24px 灰按钮、移动端彻底消失 = 老板眼中"音乐坏了"。
   处置: 恢复曲名 + 电平条 + 满透明度; 移动端恢复可见(音乐是功能, 不是冗余文案)。
   回滚: 删除本块即还原。 */
html body .hwm{opacity:1!important}
html body .hwm .hwm-track{display:inline-flex!important;align-items:center}
html body .hwm .hwm-bar{display:block!important}
html body .hwm:hover{opacity:1!important}
@media(max-width:900px){
  /* 移动端: 音乐恢复可见(功能入口, 不可隐藏); 小屏省宽只留 播放键 + 曲名 + ⋯ */
  html body .topbar .hwm{display:flex!important}
  html body .hwm .hwm-bar{display:none!important}
  html body .hwm .hwm-track{max-width:88px!important}
}
