:root{--bg:#04080e;--panel:#09131e;--panel2:#0c1b29;--line:#1b3549;--cyan:#43def3;--blue:#5798ff;--green:#3be3a6;--red:#ff627e;--amber:#f5bd62;--violet:#ad91ff;--text:#e8f3fb;--muted:#8299ac;--mono:Consolas,"SFMono-Regular",monospace}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}
body{background-image:linear-gradient(rgba(43,88,120,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(43,88,120,.055) 1px,transparent 1px);background-size:32px 32px}
:root{--header-h:116px;--pad:11px}
.topbar{height:var(--header-h);display:grid;grid-template-columns:1.12fr repeat(4,minmax(0,1fr));gap:10px;padding:12px 15px;background:rgba(4,10,17,.97);border-bottom:1px solid #1d394e;box-shadow:0 8px 30px #0008;position:relative;z-index:4}
.top-tile{position:relative;min-width:0;overflow:hidden;border:1px solid #21465d;border-radius:0px;background:linear-gradient(145deg,rgba(13,34,49,.98),rgba(5,15,25,.99));box-shadow:inset 0 0 22px #28b8d51a,0 0 16px #21c8e00b;padding:11px 13px}
.top-tile:before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.8}
.brand-tile{display:flex;align-items:center;gap:13px}.logo{width:62px;height:62px;flex:none;border:1px solid #2b667a;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#123344,#09141e);box-shadow:0 0 25px #22d4ed25}.logo svg{width:44px;height:44px}.brand-name{font-size:22px;font-weight:900;letter-spacing:1.2px;white-space:nowrap}.brand-sub{font-size:11px;color:#8ba5b9;letter-spacing:1px;margin-top:5px}.run{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--green);font:12px var(--mono);letter-spacing:.8px}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25;box-shadow:0 0 2px var(--green)}}
.tile-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px;font-weight:850;letter-spacing:.6px;color:#d8edf8}.tile-head span:last-child{font:10px var(--mono);color:#6f8ba1;white-space:nowrap}.tile-main{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:10px}.tile-main strong{font:800 25px var(--mono);color:#8ff2d0;text-shadow:0 0 13px #36e0a355}.tile-main small{font-size:11px;color:#8ca6b9}.tile-foot{display:flex;justify-content:space-between;align-items:center;margin-top:7px;color:#7994a9;font:10px var(--mono)}.tile-foot b{color:var(--cyan);font-weight:700}.forecast-line{height:22px;width:100%;margin-top:2px}
.signal-line{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.signal-word{font:900 24px var(--mono);color:var(--green);text-shadow:0 0 12px #3be3a666}.signal-bars{height:31px;display:flex;align-items:flex-end;gap:4px;margin-top:3px}.signal-bars i{flex:1;height:35%;background:linear-gradient(0deg,#287bb0,#56e9f5);border-radius:2px 2px 0 0;box-shadow:0 0 7px #40dff533;transition:height .16s}.signal-bars i:nth-child(3n){background:linear-gradient(0deg,#654fb1,#b79aff)}
.compute-bars{display:flex;flex-direction:column;gap:7px;margin-top:13px}.compute-bars i{height:6px;border-radius:5px;background:#142c3c;overflow:hidden;display:block}.compute-bars i:after{content:"";display:block;width:60%;height:100%;border-radius:5px;background:linear-gradient(90deg,#36e0a3,#40dff5,#a78bfa);box-shadow:0 0 10px #40dff5;animation:barRun 1.2s ease-in-out infinite alternate}.compute-bars i:nth-child(2):after{animation-delay:-.4s;width:76%}.compute-bars i:nth-child(3):after{animation-delay:-.8s;width:48%}@keyframes barRun{from{transform:translateX(-15%);width:35%}to{transform:translateX(95%);width:70%}}
.radar-horizontal{height:47px;margin-top:8px;border:1px solid #23536a;border-radius:5px;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,transparent 0 19px,#1a3547 20px),linear-gradient(180deg,#0b2230,#07131e)}.radar-horizontal:before,.radar-horizontal:after{content:"";position:absolute;top:0;bottom:0;width:1px;background:#28536a}.radar-horizontal:before{left:25%}.radar-horizontal:after{left:75%}.radar-sweep{position:absolute;top:0;bottom:0;width:28%;left:-30%;background:linear-gradient(90deg,transparent,#41e6f455,#41e6f5aa,transparent);filter:blur(1px);animation:horizontalScan 1.35s linear infinite}.radar-sweep:after{content:"";position:absolute;right:10%;top:0;bottom:0;width:2px;background:#7df7ff;box-shadow:0 0 12px #43def3}@keyframes horizontalScan{to{left:105%}}

/* 顶部指标卡仅保留分类标题与动效，隐藏数值参数 */
.top-tile .tile-main,.top-tile .tile-foot{display:none!important}
.top-tile .tile-head span:last-child,.top-tile .signal-word,.top-tile .signal-line small{display:none!important}
.top-tile .signal-line{justify-content:center;margin-top:17px}
.top-tile .forecast-line{height:42px;margin-top:13px}
.top-tile .signal-bars{height:48px;margin-top:0}
.top-tile .compute-bars{margin-top:23px;gap:10px}
.top-tile .compute-bars i{height:7px}
.top-tile .radar-horizontal{height:58px;margin-top:17px}

main{height:calc(100vh - var(--header-h));padding:var(--pad);min-height:0}.workspace{height:100%;display:grid;grid-template-columns:minmax(0,2fr) minmax(410px,1fr);gap:var(--pad);min-height:0}.panel{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #1b3043;background:linear-gradient(145deg,rgba(12,23,35,.98),rgba(6,13,21,.98));box-shadow:0 10px 25px #0005}.panel-head{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid #1b3041;background:linear-gradient(90deg,#0e2231,#091521)}.panel-title{font-size:19px;font-weight:850;letter-spacing:1px;display:flex;align-items:center;gap:10px}.panel-title i{color:var(--cyan);font-size:17px}.panel-tag{font:11px var(--mono);color:#8ba8bd;border:1px solid #2b4358;background:#0c1b28;padding:5px 8px;white-space:nowrap}.panel-body{height:calc(100% - 46px);padding:12px;min-height:0}
.market-system{display:flex;flex-direction:column}.market-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:11px;flex:none}.market-tab{height:44px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #28516a;border-radius:6px;background:linear-gradient(180deg,#102637,#091824);font-size:18px;font-weight:850;color:#a9c4d6;letter-spacing:1px;position:relative;overflow:hidden;transition:.2s}.market-tab.active{color:#dffbff;border-color:#42dff3;background:linear-gradient(135deg,#124055,#10263b);box-shadow:inset 0 0 20px #36cfe52a,0 0 15px #36cfe51c}.market-tab.active:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:2px;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.market-tab i{font-size:15px;color:var(--cyan)}.market-modules{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:11px}.module{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #1d3b50;background:linear-gradient(145deg,#0a1a28,#07111b);box-shadow:inset 0 0 22px #1b80900d}.module-head{height:39px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;border-bottom:1px solid #193448;color:#d7e9f4;font-size:14px;font-weight:800;letter-spacing:.5px}.module-head span:last-child{font:10px var(--mono);color:#6f8ba1}.module-content{height:calc(100% - 39px);position:relative;min-height:0;padding:8px 10px}.module-metrics{position:absolute;left:12px;top:8px;z-index:2;display:flex;gap:14px;flex-wrap:wrap;font:10px var(--mono);color:#8ba6b9}.module-metrics b{color:#d8f6ff;font-size:12px}.orb-wrap{position:absolute;inset:0 0 0 0}.orb-wrap canvas{width:100%;height:100%;display:block}.orb-label{position:absolute;left:13px;bottom:10px;font:11px var(--mono);color:#8da8ba;z-index:2}.orb-label b{color:var(--cyan);font-size:14px}.calc-visual{height:100%;display:flex;flex-direction:column;justify-content:center;gap:13px;padding:8px 18px}.calc-row{display:grid;grid-template-columns:92px 1fr 55px;align-items:center;gap:12px;font-size:12px;color:#9bb3c4}.calc-row b{font:700 12px var(--mono);color:#d4f7ff;text-align:right}.calc-track{height:8px;border-radius:6px;background:#142d3d;overflow:hidden;position:relative}.calc-track i{display:block;height:100%;width:50%;border-radius:6px;background:linear-gradient(90deg,#2c89bf,#48e8f4,#9a8aff);box-shadow:0 0 10px #40dff5;transition:width .3s}.calc-foot{display:flex;justify-content:space-between;font:10px var(--mono);color:#7895a9;margin-top:2px}

/* 神经网络球与数据流核算：沿用数字货币终端的全息粒子风格 */
.module-content.orb-content{padding:0;display:flex;flex-direction:column}
.orb-stage{height:calc(100% - 43px);position:relative;min-height:145px;overflow:hidden}
#neuralCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.orb-readout{position:absolute;left:13px;top:11px;display:flex;flex-direction:column;gap:7px;font:12px var(--mono);color:#8aa2b7;z-index:1}
.orb-readout b{font-size:16px;color:#d7faff;font-weight:700}
.orb-readout.right{left:auto;right:13px;text-align:right}
.orb-bottom{height:43px;flex:none;display:flex;justify-content:space-around;align-items:center;border-top:1px solid #1a3042;color:#9ab0c2;font:12px var(--mono);gap:8px}
.orb-bottom b{color:var(--cyan);font-weight:700}
.stream-calc-content{padding:10px 12px;display:flex;flex-direction:column}
.calc-stream-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#a2b7c8;font:14px var(--mono);margin-bottom:10px;flex:none}
.calc-stream-meta b{color:#d3e3ef;font-weight:700}
#computeStreamCanvas{display:block;width:100%;height:calc(100% - 53px);min-height:95px;flex:1}
.calc-stream-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#9ab0c2;font:11px var(--mono);margin-top:7px;flex:none}
.calc-stream-foot b{color:var(--cyan);font-weight:700}

.transfer-layout{height:100%;display:grid;grid-template-columns:66px 1fr 66px;gap:8px;align-items:center;padding:5px 4px}.server{height:80%;min-height:72px;border:1px solid #286078;border-radius:5px;background:linear-gradient(180deg,#102b3b,#091824);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;box-shadow:inset 0 0 18px #39d6ee16,0 0 12px #40dff512}.server i{font-size:24px;color:#55e7f4;text-shadow:0 0 12px #40dff5}.server span{font:9px var(--mono);color:#8daabd}.server em{width:27px;height:3px;background:#35dfa3;box-shadow:0 0 8px #35dfa3;display:block}.server em:nth-of-type(2){background:#43dff3;box-shadow:0 0 8px #43dff3}.wire-field{height:100%;position:relative;display:grid;grid-template-rows:repeat(18,1fr);align-items:center;padding:3px 0}.wire{height:1px;width:100%;background:linear-gradient(90deg,#1b5368,#21455b);position:relative;opacity:.7}.wire:after{content:"";position:absolute;left:0;top:-2px;width:17px;height:5px;border-radius:5px;background:#48efff;box-shadow:0 0 10px #48efff;opacity:0;animation:wirePulse 0.62s linear infinite}.wire:nth-child(3n):after{animation-delay:-.2s}.wire:nth-child(4n):after{animation-delay:-.42s}.wire:nth-child(5n):after{animation-delay:-.08s}.wire.hot{background:#24748b;box-shadow:0 0 7px #40dff5}.wire.hot:after{opacity:1}@keyframes wirePulse{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - 17px);opacity:0}}
.transfer-foot{position:absolute;left:12px;right:12px;bottom:7px;display:flex;justify-content:space-between;font:13px var(--mono);color:#7895a9;pointer-events:none}.transfer-foot b{color:var(--cyan)}
.spider-field{position:absolute;inset:0;background-image:radial-gradient(#1b4b61 1px,transparent 1px);background-size:20px 20px}.spider-status{position:absolute;left:20%;top:9px;z-index:2;display:flex;gap:15px;font:15px var(--mono);color:#8ca7b8}.spider-status b{color:#c8f7ff}.spider-svg{position:absolute;width:43px;height:43px;left:8%;top:18%;z-index:3;filter:drop-shadow(0 0 8px #43def3);animation:spiderCrawl 8s linear infinite}.spider-svg path,.spider-svg circle{stroke:#69efff;stroke-width:2;fill:#0b2838;stroke-linecap:round}.spider-svg .eye{fill:#ff7b93;stroke:none}.spider-scanline{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#43def3,transparent);box-shadow:0 0 12px #43def3;animation:scanDown 2.1s linear infinite;opacity:.7}@keyframes scanDown{from{top:0}to{top:100%}}@keyframes spiderCrawl{0%{left:8%;top:18%;transform:rotate(0)}22%{left:79%;top:12%;transform:rotate(75deg)}48%{left:86%;top:72%;transform:rotate(180deg)}72%{left:17%;top:76%;transform:rotate(260deg)}100%{left:8%;top:18%;transform:rotate(360deg)}}
.stock-side{display:flex;flex-direction:column}.stock-side .panel-body{display:flex;flex-direction:column;gap:10px;padding:11px}.stock-search{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px;flex:none}.stock-search input{height:47px;min-width:0;background:#06131e;border:1px solid #28506a;border-radius:5px;color:#e5f6ff;padding:0 13px;font:17px var(--mono);outline:none;transition:.2s;box-shadow:inset 0 0 12px #0005}.stock-search input:focus{border-color:#43def3;box-shadow:0 0 0 2px #43def329,0 0 16px #43def322}.stock-search button{border:1px solid #42dff3;border-radius:5px;background:linear-gradient(135deg,#17607a,#12415b);color:#e7fcff;font-size:16px;font-weight:850;letter-spacing:.5px;cursor:pointer;box-shadow:0 0 14px #43def322;transition:.2s}.stock-search button:hover{filter:brightness(1.25);box-shadow:0 0 18px #43def355}.hint{display:none}.result-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;flex:none}.result-card{min-width:0;height:104px;border:1px solid #23445a;border-radius:5px;background:linear-gradient(145deg,#0c2030,#08141f);padding:9px 8px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:inset 0 0 15px #36cfe50b;text-align: center;}.result-label{font-size:12px;color:#809db2;white-space:nowrap}.result-value{font-size:16px;font-weight:850;color:#e2f5ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-value.code{font:13px var(--mono);color:#7eeeff}.health-line{height:6px;background:#1a3445;border-radius:5px;overflow:hidden}.health-line i{display:block;width:76%;height:100%;background:linear-gradient(90deg,#e7b45b,#3be3a6);box-shadow:0 0 9px #3be3a6;transition:width .5s}.health-percent{font:800 20px var(--mono);color:#4de7b3}.trade-advice{padding:5px 7px;border-radius:4px;border:1px solid #27684f;background:#0c3025;color:#5af0b2;font-size:15px;white-space:nowrap;margin: 0 15px;}.trade-advice.sell{border-color:#7b3546;background:#351522;color:#ff8196}.trade-advice.wait{border-color:#71562c;background:#2c2111;color:#f5c56f}
.source-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.source-head strong{font-size:16px;letter-spacing:.5px}.source-head span{font:10px var(--mono);color:#7e9aae}.source-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:6px}.source-card{min-width:0;display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid #1e3a4d;background:linear-gradient(100deg,#0b1b28,#08131e);border-radius:4px;position:relative;overflow:hidden}.source-card:after{content:"";position:absolute;inset:0 auto 0 -45%;width:35%;background:linear-gradient(90deg,transparent,#4cecff20,transparent);transform:skewX(-20deg);animation:sourceSweep 2.4s linear infinite}.source-card:nth-child(3n):after{animation-delay:-.8s}.source-card:nth-child(4n):after{animation-delay:-1.6s}@keyframes sourceSweep{to{left:130%}}.source-led{width:6px;height:6px;border-radius:50%;background:#3be3a6;box-shadow:0 0 8px #3be3a6;flex:none;animation:pulse .85s infinite}.source-card:nth-child(5n) .source-led{background:#f5bd62;box-shadow:0 0 8px #f5bd62}.source-name{font-size:12px;font-weight:750;color:#bad0df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;z-index:1}.source-state{margin-left:auto;font:12px var(--mono);color:#5bdcb4;white-space:nowrap;position:relative;z-index:1}.source-card:nth-child(7n) .source-state{color:#f5bd62}.source-bottom{display:flex;justify-content:space-between;align-items:center;flex:none;font:9px var(--mono);color:#708da2}.source-bottom b{color:var(--cyan)}
.disclaimer{position:absolute;right:14px;bottom:6px;font:9px var(--mono);color:#657f92;opacity:.85;pointer-events:none}
@media(max-width:1450px){:root{--header-h:116px;--pad:9px}.topbar{gap:7px;padding:9px}.top-tile{padding:8px 9px}.brand-name{font-size:18px}.logo{width:54px;height:54px}.tile-head{font-size:13px}.tile-main strong{font-size:21px}.workspace{grid-template-columns:minmax(0,2fr) minmax(370px,1fr);gap:9px}.panel-title{font-size:17px}.market-tab{font-size:16px}.module-head{font-size:13px}.source-name{font-size:10px}.source-grid{gap:4px}}
@media(max-height:800px){:root{--header-h:102px;--pad:8px}.top-tile{padding:7px 9px}.brand-name{font-size:17px}.logo{width:49px;height:49px}.tile-main{margin-top:5px}.tile-main strong{font-size:20px}.radar-horizontal{height:39px}.panel-head{height:42px}.panel-body{height:calc(100% - 42px)}.stock-side .panel-body{gap:7px}.result-card{height:88px}.source-grid{gap:4px}.source-card{padding:3px 5px}}

@media(min-width:1451px){.source-grid{gap:7px}.source-card{padding:6px 8px}.module-head{height:42px;font-size:15px}.module-content{height:calc(100% - 42px)}}
@media(max-height:760px){.orb-stage{min-height:115px}.orb-bottom{height:37px;font-size:10px}.calc-stream-meta,.calc-stream-foot{font-size:10px}.result-card{height:82px}.source-grid{gap:3px}.source-card{padding:3px 5px}.source-name{font-size:10px}.source-state{font-size:8px}}

/* 本轮完善：顶部动画在卡片内垂直居中，四个监测模块严格等高 */
.top-tile:not(.brand-tile){display:flex;flex-direction:column;justify-content:flex-start;}
.top-tile:not(.brand-tile) .tile-head{flex:none;margin-bottom:2px;}
.top-tile .forecast-line{display:block;flex:none;margin-top:auto;margin-bottom:auto;height:42px;}
.top-tile .signal-line{display:none!important;}
.top-tile .signal-bars{flex:none;width:100%;height:48px;margin-top:auto;margin-bottom:auto;align-self:stretch;}
.top-tile .compute-bars{flex:none;width:100%;margin-top:auto;margin-bottom:auto;gap:10px;}
.top-tile .radar-horizontal{flex:none;width:100%;height:58px;margin-top:auto;margin-bottom:auto;}
.top-tile .tile-foot{display:none!important;}

/* 分类按钮不因选中状态产生闪光、发光或亮度变化 */
.market-tab{transition:none!important;cursor:pointer;}
.market-tab.active{color:#a9c4d6!important;border-color:#28516a!important;background:linear-gradient(180deg,#102637,#091824)!important;box-shadow:none!important;}
.market-tab.active:after{display:none!important;}
.market-tab:hover{filter:none!important;box-shadow:none!important;}

/* 让主监测区真正占满剩余高度，四张卡片使用严格等分网格 */
.market-system>.panel-head,.stock-side>.panel-head{flex:none;}
.market-system>.panel-body{height:auto;flex:1;display:flex;flex-direction:column;min-height:0;}
.market-tabs{flex:none;}
.market-modules{flex:1 1 0;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-items:stretch;}
.market-modules>.module{height:100%;min-height:0;display:flex;flex-direction:column;}
.market-modules>.module>.module-head{flex:none;}
.market-modules>.module>.module-content{height:auto;flex:1 1 0;min-height:0;}
.module-content.orb-content{height:auto;flex:1 1 0;min-height:0;}
.orb-stage{height:auto;flex:1 1 0;min-height:0;}
.stream-calc-content{height:auto;flex:1 1 0;min-height:0;}
#computeStreamCanvas{height:auto;min-height:0;flex:1 1 0;}
.transfer-layout{height:100%;min-height:0;}
.spider-field{inset:0;overflow:hidden;}
.spider-svg{width:34px;height:34px;left:50%;top:50%;animation:none!important;transform:translate(-50%,-50%);will-change:left,top,transform;}
.spider-svg path{animation:spiderLegFlicker .22s ease-in-out infinite alternate;}
.spider-svg:nth-of-type(odd) path{animation-duration:.17s;}
@keyframes spiderLegFlicker{from{stroke-width:1.6;opacity:.78}to{stroke-width:2.25;opacity:1}}
.stock-side>.panel-body{height:auto;flex:1;min-height:0;}