/* MOSAIC Cockpit V3.1A — DECK v5 视觉令牌(用户2026-07-15拍板:深蓝黑高密度终端) */
:root{
  --bg:#04070C; --surface:#0A0F17; --panel:#0D1320; --line:#1B2536; --line2:#2A3A55;
  --text:#DCE6F2; --dim:#5E6E8C; --faint:#2A3850;
  --cyan:#5ACBFF; --amber:#EFAC3F; --up:#FF5A5A; --down:#2FDD98; --danger:#FF4444;
  --mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --sans:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
::selection{background:rgba(90,203,255,.3)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:4px}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.6;
  background-image:radial-gradient(ellipse 55% 38% at 50% 0%,rgba(90,203,255,.05),transparent 70%)}
.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.num{text-align:right}
a{color:var(--cyan);text-decoration:none}
a:hover{text-shadow:0 0 10px rgba(90,203,255,.5)}
button{font:inherit;cursor:pointer;color:inherit}
button:disabled{opacity:.42;cursor:not-allowed}
input,select,textarea{font:inherit;background:rgba(4,7,12,.7);border:1px solid var(--line);color:var(--text);
  border-radius:2px;padding:6px 9px;outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 1px rgba(90,203,255,.25)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
.up{color:var(--up)}.down{color:var(--down)}.amber{color:var(--amber)}.dim{color:var(--dim)}.danger{color:var(--danger)}

/* ── 顶栏 ── */
.topbar{height:50px;background:rgba(10,15,23,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:14px;padding:0 18px;position:sticky;top:0;z-index:80}
.brand{font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.24em;white-space:nowrap}
.brand i{color:var(--cyan);font-style:normal;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.clock{font-family:var(--mono);font-size:12px;color:var(--cyan);letter-spacing:.1em;text-shadow:0 0 14px rgba(90,203,255,.4)}
.topnav{display:flex;gap:2px}
.topnav a{padding:5px 13px;color:var(--dim);font-size:13px;border:1px solid transparent;border-radius:2px;letter-spacing:.04em}
.topnav a.cur{color:var(--text);border-color:var(--line2);background:linear-gradient(180deg,rgba(90,203,255,.1),rgba(90,203,255,.02))}
.topnav a:hover{color:var(--text)}
.topbar .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.chip{font-family:var(--mono);font-size:10.5px;color:var(--dim);border:1px solid var(--line);border-radius:2px;
  padding:2px 8px;display:inline-flex;align-items:center;gap:6px;background:rgba(13,19,32,.6);white-space:nowrap}
.chip b{color:var(--text);font-weight:500}
.led{width:5.5px;height:5.5px;border-radius:50%;display:inline-block}
.led.g{background:var(--down);box-shadow:0 0 7px var(--down);animation:breath 2.5s infinite}
.led.a{background:var(--amber);box-shadow:0 0 7px var(--amber);animation:breath 1.6s infinite}
.led.r{background:var(--danger);box-shadow:0 0 7px var(--danger)}
@keyframes breath{50%{opacity:.28}}

/* 盲窗口禁入横幅 */
.blind{height:20px;font-family:var(--mono);font-size:9.5px;color:var(--danger);letter-spacing:.14em;
  display:flex;align-items:center;justify-content:space-between;padding:0 18px;
  border-bottom:1px solid rgba(255,68,68,.28);
  background:repeating-linear-gradient(-45deg,rgba(255,68,68,.05),rgba(255,68,68,.05) 8px,transparent 8px,transparent 16px)}

/* ── 布局 ── */
.wrap{max-width:1560px;margin:0 auto;padding:14px 18px;display:flex;flex-direction:column;gap:14px}
.cols{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:980px){.cols{grid-template-columns:1fr}}

/* 切角面板 */
.plate{position:relative;background:linear-gradient(165deg,rgba(16,24,40,.8),rgba(9,13,22,.85));
  border:1px solid var(--line);
  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px))}
.ph{display:flex;align-items:baseline;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ph .tag{font-family:var(--mono);font-size:9px;letter-spacing:.3em;color:var(--cyan)}
.ph .t{font-size:13px;font-weight:600;letter-spacing:.04em}
.ph .src{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--dim)}

/* 分段控制 */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.seg button{background:none;border:none;color:var(--dim);font-family:var(--mono);font-size:10.5px;padding:4px 12px;letter-spacing:.05em}
.seg button.cur{background:var(--cyan);color:#04070C;font-weight:600}
.seg button:hover:not(.cur){color:var(--text)}

/* 自选列表 */
#wl-plate{position:sticky;top:84px;height:calc(100vh - 205px);min-height:360px;display:flex;flex-direction:column;overflow:hidden}
#wl-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.wl-item{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid rgba(27,37,54,.5);cursor:pointer;font-size:12.5px}
.wl-item:hover{background:rgba(90,203,255,.06)}
.wl-item.cur{background:rgba(90,203,255,.1);border-left:2px solid var(--cyan);padding-left:10px}
.wl-item .sym{font-family:var(--mono);font-size:10.5px;color:var(--dim);width:66px;flex:none}
.wl-item .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-change{width:52px;flex:none;text-align:right;font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wl-item .tagk{font-family:var(--mono);font-size:9px;border:1px solid var(--line2);border-radius:1px;padding:0 4px;color:var(--dim)}
.wl-item.special{flex-wrap:wrap;border-left:2px solid rgba(239,172,63,.55);padding-left:10px}
.attention-star{color:var(--amber);font-size:10px;text-shadow:0 0 10px rgba(239,172,63,.45)}
.wl-logic{flex-basis:100%;margin-left:76px;font-family:var(--mono);font-size:9px;color:var(--dim);line-height:1.45;white-space:normal}
.wl-remove{width:20px;height:20px;display:grid;place-items:center;background:none;border:1px solid transparent;color:var(--faint);font-size:15px;line-height:1;cursor:pointer;padding:0}
.wl-remove:hover{border-color:var(--danger);color:var(--danger)}
.wl-add{margin-left:auto;padding-inline:8px;font-size:14px}
.wl-scope{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);background:rgba(4,7,12,.28)}
.wl-scope button{background:none;border:0;border-right:1px solid var(--line);color:var(--dim);padding:9px 8px;font-size:12px;cursor:pointer;position:relative}
.wl-scope button:last-child{border-right:0}.wl-scope button:hover{color:var(--text);background:rgba(90,203,255,.04)}
.wl-scope button.cur{color:var(--text);background:rgba(90,203,255,.09);box-shadow:inset 0 -2px var(--cyan)}
.wl-scope button span{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.16em;color:var(--cyan);margin-bottom:2px}
.wl-kindbar{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.wl-scope-note{margin-left:auto;font-family:var(--mono);font-size:8px;color:var(--dim)}
.system-lock{font-family:var(--mono);font-size:8px;color:var(--faint);letter-spacing:.08em;width:20px;text-align:center}
.wl-group{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.12em;padding:7px 12px 3px;border-bottom:1px solid rgba(27,37,54,.4)}
.wl-empty{padding:18px 12px;text-align:center;color:var(--dim);font-size:12px}
@media (max-width:980px){#wl-plate{position:static;height:auto;min-height:0}#wl-list{max-height:380px}}

/* 中线五股传导监控 */
.midline-list{display:flex;flex-direction:column;padding:8px 12px 10px}
.midline-row{display:grid;grid-template-columns:150px 188px minmax(180px,.9fr) minmax(240px,1.35fr) minmax(210px,1fr) minmax(180px,.85fr);gap:8px;align-items:stretch;border-top:1px solid rgba(27,37,54,.75);padding:8px 0;min-width:0}
.midline-row:first-child{border-top:0}
.midline-company b{display:block;font-size:13px;color:var(--text)}
.midline-company span{display:block;margin-top:2px;font-size:10px;color:var(--dim);white-space:normal}
.midline-quotes{display:flex;gap:5px;flex-wrap:wrap;align-content:flex-start}
.midline-quote{display:grid;grid-template-columns:auto auto;gap:1px 6px;min-width:82px;border:1px solid var(--line2);padding:3px 6px;font-family:var(--mono);font-size:9px;background:rgba(4,7,12,.45)}
.midline-quote i{font-style:normal;color:var(--dim);grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.midline-quote b{font-weight:600}.midline-quote em{font-style:normal;color:var(--dim);text-align:right}
.midline-question,.midline-watch-text,.midline-time,.midline-negative{display:grid;grid-template-columns:42px minmax(0,1fr);gap:6px;font-size:10.5px;line-height:1.45;min-width:0}
.midline-question b,.midline-watch-text b,.midline-time b{color:var(--cyan);font-weight:600}
.midline-question span,.midline-watch-text span,.midline-time span{color:var(--text);min-width:0;word-break:break-word}
.midline-time span{color:var(--amber)}
.midline-negative{padding:0}
.midline-negative b{color:var(--amber);font-weight:600}.midline-negative span{color:var(--text);word-break:break-word}
.midline-windows{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 8px}
.midline-window{border:1px solid rgba(27,37,54,.65);padding:4px 7px;background:rgba(13,19,32,.45);font-size:9.5px;line-height:1.35;max-width:260px}
.midline-window b{color:var(--cyan);font-family:var(--mono);margin-right:5px}.midline-window span{color:var(--dim)}
.midline-rules{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 10px}
.midline-rules span{border:1px solid rgba(90,203,255,.25);color:var(--dim);padding:3px 7px;font-size:10px;background:rgba(90,203,255,.04)}
@media (max-width:1180px){.midline-row{grid-template-columns:150px 188px 1fr}.midline-question,.midline-watch-text,.midline-time,.midline-negative{grid-column:auto / span 1}}
@media (max-width:760px){.midline-row{grid-template-columns:1fr}.midline-quotes{justify-content:flex-start}.midline-windows{display:grid;grid-template-columns:1fr}.midline-window{max-width:none}}

/* 行情面板 */
.quote-strip{display:flex;align-items:baseline;gap:16px;padding:10px 14px;flex-wrap:wrap}
.quote-strip .price{font-family:var(--mono);font-size:27px;font-weight:600;letter-spacing:-.01em}
.quote-strip .meta{font-family:var(--mono);font-size:10px;color:var(--dim)}
.badge{font-family:var(--mono);font-size:9px;border:1px solid var(--line2);border-radius:2px;padding:1px 6px;color:var(--dim);letter-spacing:.06em}
.badge.live{color:var(--down);border-color:rgba(47,221,152,.45)}
.badge.warn{color:var(--amber);border-color:rgba(239,172,63,.5)}
.badge.err{color:var(--danger);border-color:rgba(255,68,68,.5)}
.chart-box{height:430px;position:relative;border-top:1px solid var(--line)}
.chart-box .unavail{position:absolute;top:8px;right:12px;z-index:5}
.chart-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;font-family:var(--mono);font-size:10px;color:var(--dim);letter-spacing:.08em;background:rgba(4,7,12,.42)}
.chart-loading i{width:92px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:chartscan 1.1s ease-in-out infinite;box-shadow:0 0 12px rgba(90,203,255,.45)}
@keyframes chartscan{0%,100%{transform:scaleX(.3);opacity:.35}50%{transform:scaleX(1);opacity:1}}
.intraday-box{height:430px;position:relative;border-top:1px solid var(--line);background:rgba(4,7,12,.35)}
.intraday-box canvas{width:100%;height:100%;display:block}
.intraday-meta{position:absolute;top:8px;right:12px;font-family:var(--mono);font-size:9px;color:var(--dim);background:rgba(4,7,12,.76);padding:3px 7px}
.chart-mode{margin-left:auto}
.action-row{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap;align-items:center}

/* 按钮 */
.btn{background:none;border:1px solid var(--cyan);color:var(--cyan);border-radius:2px;padding:4px 16px;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em}
.btn:hover:not(:disabled){background:rgba(90,203,255,.14);box-shadow:0 0 15px rgba(90,203,255,.3)}
.btn.sell{border-color:var(--amber);color:var(--amber)}
.btn.sell:hover:not(:disabled){background:rgba(239,172,63,.12);box-shadow:0 0 15px rgba(239,172,63,.28)}
.btn.ghost{border-color:var(--line2);color:var(--dim)}
.btn.ghost:hover:not(:disabled){color:var(--text)}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.1em;text-align:left;
  padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:500}
.tbl td{padding:6px 10px;border-bottom:1px solid rgba(27,37,54,.5);white-space:nowrap}
.tbl tr:hover td{background:rgba(90,203,255,.04)}
.tbl .num{font-family:var(--mono)}
.tbl-scroll{overflow-x:auto}
.status-pill{font-family:var(--mono);font-size:9px;border:1px solid var(--line2);border-radius:2px;padding:1px 6px;letter-spacing:.05em;color:var(--dim);display:inline-block}
.status-pill.open{color:var(--down);border-color:rgba(47,221,152,.4)}
.status-pill.pend{color:var(--amber);border-color:rgba(239,172,63,.5)}
.status-pill.err{color:var(--danger);border-color:rgba(255,68,68,.5)}
.status-pill.closed{color:var(--dim)}

/* 源状态条 */
.src-strip{display:flex;gap:8px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line)}

/* ── 抽屉 ── */
.drawer-mask{position:fixed;inset:0;background:rgba(4,7,12,.6);backdrop-filter:blur(4px);z-index:110;display:none}
.drawer-mask.open{display:block}
.drawer{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:96vw;background:rgba(9,13,22,.98);
  border-left:1px solid var(--line2);transform:translateX(102%);transition:transform .18s ease;z-index:120;
  display:flex;flex-direction:column;box-shadow:-26px 0 70px rgba(0,0,0,.7)}
.drawer.open{transform:none}
.drawer .dh{padding:13px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.drawer .dh .tag{font-family:var(--mono);font-size:9px;color:var(--cyan);letter-spacing:.26em}
.drawer .dh b{font-size:14px}
.drawer .dh button{margin-left:auto;background:none;border:none;color:var(--dim);font-size:15px}
.drawer .db{padding:14px 18px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:12px}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.1em}
.field .hint{font-size:11px;color:var(--dim)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.logic-preview{border-left:2px solid var(--cyan);background:rgba(90,203,255,.04);padding:9px 11px;font-size:11px;line-height:1.55;color:var(--text)}
.checkline{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--dim)}
.rule-box{border:1px solid var(--line);padding:10px 12px;font-size:12px;background:rgba(4,7,12,.5)}
.rule-box .rk{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.14em;margin-bottom:4px}
.gate-note{border:1px solid rgba(239,172,63,.4);color:var(--amber);font-size:11.5px;padding:8px 11px;background:rgba(239,172,63,.05)}
.err-note{border:1px solid rgba(255,68,68,.45);color:var(--danger);font-size:11.5px;padding:8px 11px;background:rgba(255,68,68,.05);font-family:var(--mono);word-break:break-all}
.ok-note{border:1px solid rgba(47,221,152,.4);color:var(--down);font-size:12px;padding:10px 12px;background:rgba(47,221,152,.05)}
.ok-note .mono{font-size:10px;color:var(--dim);word-break:break-all}
.override-flag{display:inline-block;font-family:var(--mono);font-size:10px;color:#04070C;background:var(--amber);padding:1px 7px;border-radius:1px;letter-spacing:.08em;font-weight:600}
.drawer .df{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}

/* Toast */
#toasts{position:fixed;right:16px;bottom:16px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:rgba(13,19,32,.96);border:1px solid var(--line2);border-left:3px solid var(--cyan);
  padding:9px 14px;font-size:12.5px;min-width:240px;max-width:420px;box-shadow:0 12px 40px rgba(0,0,0,.6)}
.toast.err{border-left-color:var(--danger)}
.toast.warn{border-left-color:var(--amber)}
.toast .mono{font-size:10px;color:var(--dim)}

/* 旧版只读 */
.legacy-note{border:1px dashed var(--line2);padding:10px 14px;font-family:var(--mono);font-size:10.5px;color:var(--amber);letter-spacing:.06em}
pre.legacy{font-family:var(--mono);font-size:11px;color:var(--dim);white-space:pre-wrap;word-break:break-all;
  background:rgba(4,7,12,.6);border:1px solid var(--line);padding:10px 12px;max-height:420px;overflow:auto}

/* 页脚 */
.foot{border-top:1px solid var(--line);margin-top:6px;padding:6px 18px;display:flex;gap:16px;
  font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.1em;flex-wrap:wrap}
.foot kbd{border:1px solid var(--line2);border-radius:2px;padding:0 4px;color:var(--text)}

.hidden{display:none!important}
/* 减动:默认跟随系统 prefers-reduced-motion(JS启动时映射到.rm类),键位条FX按钮可手动覆盖 */
.rm *{animation:none!important;transition:none!important}
@media (max-width:760px){
  .topnav a{padding:5px 8px;font-size:12px}
  .chart-box{height:320px}
  .quote-strip .price{font-size:22px}
  .drawer{width:100vw}
}

/* ── DEMO MODE: 16:9 录屏专用，保留原驾驶舱路由不变 ───────────────── */
body.demo-mode{background:#050706;color:#e8eee9;font-family:var(--mono);overflow:auto}
body.demo-mode #boot,body.demo-mode #stars,body.demo-mode .nebula,body.demo-mode .grain,
body.demo-mode .vig,body.demo-mode #sweepline,body.demo-mode .topbar,body.demo-mode .blind,
body.demo-mode .railL,body.demo-mode .side,body.demo-mode .deckfoot{display:none!important}
body.demo-mode #app{opacity:1!important;min-height:100vh}
body.demo-mode .frame{display:block;min-height:100vh}
body.demo-mode .main{display:block;padding:0;min-height:100vh}
.demo-shell{--demo-signal:#b7f34a;--demo-line:#263027;min-height:100vh;max-width:1920px;margin:0 auto;padding:28px 42px 18px;background:#050706;color:#e8eee9;letter-spacing:0}
.demo-head{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--demo-line)}
.demo-brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.12em}.demo-brand i{width:8px;height:8px;background:var(--demo-signal)}
.demo-brand span{font-size:15px}.demo-brand small{font-size:9px;color:#748077;font-weight:500;letter-spacing:.18em}
.demo-head-meta{display:flex;align-items:center;gap:18px;color:#919b93;font-size:10px}.demo-head-meta .live{color:var(--demo-signal)}
.demo-head-meta a{border-left:1px solid var(--demo-line);padding-left:18px;color:#bac4bc}.demo-head-meta a:hover{color:var(--demo-signal);text-shadow:none}
.demo-radar-lead{min-height:calc(100vh - 98px);display:flex;flex-direction:column;padding:22px 0 28px;border-bottom:1px solid var(--demo-line)}
.demo-radar-head{display:flex;align-items:center;justify-content:space-between;gap:20px;height:48px;border:1px solid var(--demo-line);padding:0 16px;background:#090c09}.demo-radar-head>div{display:flex;align-items:center;gap:18px}.demo-radar-head span{font-size:9px;color:#5acbff;letter-spacing:.22em}.demo-radar-head h1{font-size:16px;font-weight:600;letter-spacing:0}.demo-radar-head p{font-size:9px;color:#778178;text-align:right}
body.demo-mode .warroom.demo-warroom{flex:1;grid-template-columns:minmax(430px,42%) minmax(0,1fr);border:1px solid var(--demo-line);border-top:0;background:#070a08;min-height:520px}body.demo-mode .demo-warroom .radarbox{min-height:520px;align-items:center;padding-top:28px;border-color:var(--demo-line)}body.demo-mode .demo-warroom .radar{width:min(430px,32vw);height:min(430px,32vw)}.demo-warroom .ilist{align-self:center}.demo-warroom .ihead,.demo-warroom .irow{grid-template-columns:110px minmax(0,1fr) 74px 76px 76px;padding:9px 18px}.demo-warroom .irow{font-size:13px}.demo-warroom .slot{padding:14px;line-height:1.8}.demo-warroom .corner-meta{font-size:9px}.demo-next{align-self:center;margin-top:14px;border:0;background:transparent;color:#89938b;font-family:inherit;font-size:9px;letter-spacing:.14em;cursor:pointer}.demo-next:hover{color:#d5ddd6}.demo-next b{color:var(--demo-signal);font-size:14px;margin-left:8px}.demo-analysis{scroll-margin-top:0;padding-top:4px}
.demo-discovery-story{padding:30px 0 12px;border-bottom:1px solid var(--demo-line)}.demo-story-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:14px}.demo-story-head>div{display:flex;align-items:center;gap:16px}.demo-story-head span{font-size:9px;color:#5acbff;letter-spacing:.2em}.demo-story-head h2{font-size:18px;font-weight:600}.demo-story-head p{font-size:9px;color:#727d74}.demo-story-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--demo-line);background:#070a08}.demo-story-lane{min-width:0;padding:18px 20px 14px}.demo-story-lane+article{border-left:1px solid var(--demo-line)}.demo-story-time{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b231c;padding-bottom:10px}.demo-story-time time{font-size:22px;color:var(--demo-signal);font-weight:650}.demo-story-time span{font-size:9px;color:#7c887e}.demo-story-title{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:16px 0 8px}.demo-story-title small{display:block;color:#667168;font-size:8px;letter-spacing:.16em}.demo-story-title h3{font-size:24px;font-weight:620}.demo-story-title>b{font-size:10px;color:#071007;background:var(--demo-signal);padding:5px 8px;white-space:nowrap}.demo-story-summary{min-height:50px;color:#879189;font-size:9px;line-height:1.7}.demo-story-summary strong{color:#d8dfd9;font-weight:600}.demo-stock-list{border-top:1px solid var(--demo-line);margin-top:12px}.demo-stock-row{min-height:55px;display:grid;grid-template-columns:28px minmax(0,1fr) minmax(112px,.7fr);align-items:center;gap:10px;border-bottom:1px solid #1b211c}.demo-stock-rank{font-size:9px;color:#5f6a61}.demo-stock-row>div{min-width:0}.demo-stock-row>div>b{display:block;font-size:13px;font-weight:600}.demo-stock-row small{display:block;color:#69746b;font-size:8px;white-space:normal}.demo-stock-signal{text-align:right}.demo-stock-signal>b{color:var(--demo-signal);font-size:11px!important}.demo-story-lane footer{display:flex;justify-content:space-between;gap:14px;padding-top:12px;color:#667168;font-size:8px}.demo-story-lane footer span:last-child{text-align:right}.demo-story-power{--demo-signal:#5acbff}.demo-story-power .demo-story-title>b{color:#061017}
.demo-hero{display:grid;grid-template-columns:minmax(0,1.7fr) 200px minmax(430px,.9fr);gap:28px;align-items:end;padding:36px 0 30px;border-bottom:1px solid var(--demo-line)}
.demo-eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;color:#88938a}.demo-eyebrow span{color:var(--demo-signal);margin-right:8px}.demo-eyebrow b{font-weight:500;border:1px solid #344136;padding:2px 7px;color:#a9b3ab}
.demo-hero h1{font-size:50px;line-height:1.08;margin:14px 0 10px;font-family:var(--mono);font-weight:650;letter-spacing:0}
.demo-hero-copy>p{font-size:13px;color:#9ca69e;max-width:720px}.demo-hero-copy>p strong{color:#e8eee9;font-weight:600}
.demo-status-line{display:flex;align-items:center;gap:12px;margin-top:18px;font-size:10px;color:#849087}.demo-status-line .signal{width:7px;height:7px;background:var(--demo-signal)}.demo-status-line b{color:var(--demo-signal);font-size:11px}.demo-status-line span:last-child{border-left:1px solid var(--demo-line);padding-left:12px}
.demo-score{border-left:1px solid var(--demo-line);padding-left:24px;display:flex;flex-direction:column}.demo-score>span{font-size:9px;color:#788279}.demo-score>b{font-size:52px;line-height:1.05;color:var(--demo-signal);font-weight:600;font-variant-numeric:tabular-nums}.demo-score>small{font-size:9px;color:#89938b;margin-top:7px}
.demo-kpis{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--demo-line)}.demo-kpis>div{min-height:66px;padding:10px 14px;border-right:1px solid var(--demo-line);border-bottom:1px solid var(--demo-line);display:flex;flex-direction:column}.demo-kpis>div:nth-child(2n){border-right:0}.demo-kpis>div:nth-last-child(-n+2){border-bottom:0}.demo-kpis b{font-size:20px;color:#f1f5f2;font-weight:600;font-variant-numeric:tabular-nums}.demo-kpis span{font-size:9px;color:#788279}
.demo-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--demo-line)}
.demo-time{position:relative;padding:20px 22px 18px;border-right:1px solid var(--demo-line);min-height:122px}.demo-time:last-child{border-right:0}.demo-time:before{content:"";position:absolute;left:22px;top:-3px;width:6px;height:6px;background:#667068}.demo-time.current:before{background:var(--demo-signal)}
.demo-time-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.demo-time time{color:var(--demo-signal);font-size:16px;font-weight:600}.demo-time-top span{color:#788279;font-size:9px}.demo-time>b{display:block;font-size:13px;margin-bottom:3px}.demo-time p{font-size:9px;color:#7e8980;white-space:normal}
.demo-lower{display:grid;grid-template-columns:1.18fr 1fr .78fr;gap:16px;padding:18px 0 12px}
.demo-panel{border:1px solid var(--demo-line);min-width:0;background:#090c09}.demo-panel>header{height:38px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--demo-line)}.demo-panel>header>span{font-size:10px;color:var(--demo-signal)}.demo-panel>header>small{font-size:8px;color:#687169}
.demo-rank-row{height:35px;display:grid;grid-template-columns:38px minmax(0,1fr) 68px 62px 48px;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid #1b211c;font-size:9px}.demo-rank-row.is-main{background:#0d120d}.demo-rank-no{color:#788279}.demo-rank-row.is-main .demo-rank-no{color:var(--demo-signal)}.demo-rank-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-rank-stat{color:#707a72}.demo-rank-stat b{color:#c6cec8;font-weight:500}.demo-rank-score{text-align:right;color:#a8b2aa;font-variant-numeric:tabular-nums}.demo-sep{height:32px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--demo-line);color:#929c94;font-size:9px}.demo-sep small{color:#626c64;font-size:8px}
.demo-proof-stock{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 14px}.demo-proof-code{font-size:9px;color:#7b857d}.demo-proof-stock h2{font-size:20px;margin:1px 0;font-weight:600}.demo-proof-stock p{font-size:9px;color:#788279}.demo-proof-price{text-align:right;display:flex;flex-direction:column}.demo-proof-price b{font-size:23px;font-weight:600}.demo-proof-price span{font-size:9px;color:#7b857d}
.demo-stage-track{display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;border:1px solid var(--demo-line)}.demo-stage-track span{font-size:8px;color:#626b64;text-align:center;padding:7px 3px;border-right:1px solid var(--demo-line)}.demo-stage-track span:last-child{border-right:0}.demo-stage-track .done{color:#a6b0a8}.demo-stage-track .active{background:var(--demo-signal);color:#071007;font-weight:700}.demo-proof-note{font-size:9px;color:#737e75;line-height:1.7;padding:13px 16px}
.demo-market-state{display:flex;align-items:center;gap:9px;padding:18px 14px 12px}.demo-market-state i{width:7px;height:7px;background:var(--demo-signal)}.demo-market-state b{font-size:16px}.demo-market-state span{font-size:8px;color:#717b73;margin-left:auto}.demo-market-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0 14px;border:1px solid var(--demo-line)}.demo-market-grid div{padding:10px 8px;border-right:1px solid var(--demo-line);display:flex;flex-direction:column}.demo-market-grid div:last-child{border-right:0}.demo-market-grid b{font-size:15px;font-weight:600}.demo-market-grid span{font-size:8px;color:#707a72}.demo-market>p{padding:12px 14px;font-size:8.5px;line-height:1.7;color:#6f7971}
.demo-spine{padding:24px 0 26px;border-bottom:1px solid var(--demo-line)}.demo-spine>header,.demo-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:12px}.demo-spine>header>div,.demo-section-head>div{display:flex;align-items:center;gap:16px}.demo-spine>header span,.demo-section-head span{font-size:9px;color:#5acbff;letter-spacing:.2em}.demo-spine>header h2,.demo-section-head h2{font-size:18px;font-weight:600}.demo-spine>header p,.demo-section-head p{font-size:9px;color:#727d74}.demo-spine-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--demo-line);background:#070a08}.demo-spine-grid>button{min-width:0;min-height:88px;padding:14px 13px;border:0;border-right:1px solid var(--demo-line);background:transparent;color:inherit;font:inherit;text-align:left;display:flex;flex-direction:column;justify-content:center;cursor:pointer}.demo-spine-grid>button:last-child{border-right:0}.demo-spine-grid>button:hover,.demo-spine-grid>button:focus-visible{background:#0d120d;outline:1px solid var(--demo-signal);outline-offset:-1px}.demo-spine-grid small{font-size:8px;color:#657068}.demo-spine-grid b{margin:7px 0 3px;font-size:12px;color:#e2e8e3;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-spine-grid span{font-size:8px;color:#788279;white-space:normal}
.demo-research{padding:34px 0 30px;border-top:1px solid var(--demo-line);border-bottom:1px solid var(--demo-line)}.demo-research-grid{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);gap:16px}.demo-industry-brief,.demo-edge-grid>article,.demo-risk-brief,.demo-agent-brief{border:1px solid var(--demo-line);background:#090c09}.demo-industry-brief>header,.demo-risk-brief>header,.demo-agent-brief>header{height:42px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--demo-line)}.demo-industry-brief>header>span{font-size:10px;color:var(--demo-signal)}.demo-industry-brief>header>small,.demo-risk-brief>header>small,.demo-agent-brief>header>small{font-size:8px;color:#69736b}.demo-industry-focus{padding:18px 16px;border-bottom:1px solid var(--demo-line)}.demo-industry-focus small{font-size:8px;color:#6c766e}.demo-industry-focus h3{font-size:19px;font-weight:600;margin:6px 0 3px;overflow-wrap:anywhere}.demo-industry-focus p{font-size:8px;color:#788279}.demo-evidence-chain{list-style:none;margin:0;padding:0}.demo-evidence-chain li{height:47px;display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid #1b211c}.demo-evidence-chain b{font-size:10px;color:#c9d1cb}.demo-evidence-chain span{font-size:8.5px;color:#737d75}.demo-industry-brief>footer{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;font-size:8px;color:#6c766e}.demo-industry-brief a,.demo-risk-brief>a,.demo-report-output a{color:var(--demo-signal)}
.demo-edge-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.demo-edge-grid>article{min-width:0;min-height:151px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;gap:9px 12px}.demo-edge-grid>article>div{min-width:0}.demo-edge-grid>article small{display:block;font-size:7.5px;color:#667068;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-edge-grid>article b{display:block;font-size:11px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-edge-grid>article>span{font-size:8px;color:var(--demo-signal);white-space:nowrap}.demo-edge-grid>article>p{grid-column:1/-1;font-size:8.5px;line-height:1.65;color:#808a82;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.demo-edge-grid>article>footer{grid-column:1/-1;padding-top:8px;border-top:1px solid #1b211c;color:#636d65;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-empty{border:1px solid var(--demo-line);display:grid;place-items:center;color:#707a72;font-size:9px}
.demo-governance{display:grid;grid-template-columns:.86fr 1.14fr;gap:16px;padding:30px 0}.demo-risk-brief>header>div,.demo-agent-brief>header>div{display:flex;align-items:center;gap:12px}.demo-risk-brief>header span,.demo-agent-brief>header span{font-size:8px;color:#5acbff;letter-spacing:.16em}.demo-risk-brief>header h2,.demo-agent-brief>header h2{font-size:14px;font-weight:600}.demo-risk-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--demo-line)}.demo-risk-kpis>div{min-width:0;padding:14px 12px;border-right:1px solid var(--demo-line);display:flex;flex-direction:column}.demo-risk-kpis>div:last-child{border-right:0}.demo-risk-kpis b{font-size:19px;font-weight:600}.demo-risk-kpis span{font-size:8px;color:#707a72}.demo-risk-lines{padding:8px 14px}.demo-risk-lines>div{height:30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b211c;font-size:8.5px;color:#747e76}.demo-risk-lines b{color:#d4dbd5;font-size:10px}.demo-risk-brief>p,.demo-agent-brief>p{padding:10px 14px 4px;color:#717b73;font-size:8.5px;line-height:1.65}.demo-risk-brief>a{display:inline-block;margin:7px 14px 14px;font-size:8.5px}
.demo-agent-flow{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--demo-line)}.demo-agent-flow>div{min-width:0;min-height:105px;padding:13px;border-right:1px solid var(--demo-line);display:flex;flex-direction:column}.demo-agent-flow>div:last-child{border-right:0}.demo-agent-flow small{font-size:8px;color:#626c64}.demo-agent-flow b{font-size:12px;margin:7px 0 4px}.demo-agent-flow span{font-size:8px;color:#747e76;line-height:1.5}.demo-agent-flow i{font-style:normal;margin-top:auto;color:var(--demo-signal);font-size:8px}.demo-report-output{display:grid;grid-template-columns:75px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--demo-line);font-size:8.5px}.demo-report-output span{color:#707a72}.demo-report-output b{font-size:8.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-report-output a{white-space:nowrap}
.demo-foot{display:flex;justify-content:space-between;gap:18px;padding-top:10px;border-top:1px solid var(--demo-line);font-size:8px;color:#59625b}
.demo-loading,.demo-error{display:grid;place-items:center}.demo-loading>div,.demo-error{text-align:center;color:#9ba59d}.demo-loading i{display:block;width:180px;height:1px;margin:0 auto 18px;background:var(--demo-signal);animation:demo-load 1.3s ease-in-out infinite}.demo-loading span,.demo-loading small{display:block}.demo-loading small,.demo-error small{font-size:9px;color:#626b64;margin-top:6px}.demo-error a{display:inline-block;margin-top:18px;color:var(--demo-signal)}
@keyframes demo-load{0%,100%{transform:scaleX(.2);opacity:.3}50%{transform:scaleX(1);opacity:1}}
@media(max-width:1180px){.demo-shell{padding:22px 24px 14px}body.demo-mode .warroom.demo-warroom{grid-template-columns:380px minmax(0,1fr)}body.demo-mode .demo-warroom .radar{width:340px;height:340px}.demo-warroom .ihead,.demo-warroom .irow{grid-template-columns:90px minmax(0,1fr) 60px 64px 58px;gap:8px;padding-inline:12px}.demo-spine-grid{grid-template-columns:repeat(3,1fr)}.demo-spine-grid>button{border-bottom:1px solid var(--demo-line)}.demo-spine-grid>button:nth-child(3n){border-right:0}.demo-spine-grid>button:nth-last-child(-n+3){border-bottom:0}.demo-story-grid{grid-template-columns:1fr}.demo-story-lane+article{border-left:0;border-top:1px solid var(--demo-line)}.demo-hero{grid-template-columns:minmax(0,1fr) 170px}.demo-kpis{grid-column:1/-1}.demo-lower{grid-template-columns:1fr 1fr}.demo-market{grid-column:1/-1}.demo-hero h1{font-size:42px}.demo-research-grid,.demo-governance{grid-template-columns:1fr}}
@media(max-width:760px){.demo-shell{padding:16px}.demo-head-meta span:not(.live){display:none}.demo-brand small{display:none}.demo-radar-head{height:auto;padding:10px 12px}.demo-radar-head p{display:none}.demo-radar-head h1{font-size:13px}body.demo-mode .warroom.demo-warroom{grid-template-columns:1fr;min-height:0}body.demo-mode .demo-warroom .radarbox{min-height:390px;border-right:0;border-bottom:1px solid var(--demo-line)}body.demo-mode .demo-warroom .radar{width:min(330px,76vw);height:min(330px,76vw)}.demo-warroom .ihead,.demo-warroom .irow{grid-template-columns:76px minmax(0,1fr) 56px 58px 46px;font-size:9px}.demo-spine>header,.demo-section-head{align-items:start;flex-direction:column;gap:6px}.demo-spine-grid{grid-template-columns:1fr 1fr}.demo-spine-grid>button:nth-child(3n){border-right:1px solid var(--demo-line)}.demo-spine-grid>button:nth-child(2n){border-right:0}.demo-spine-grid>button:nth-last-child(-n+3){border-bottom:1px solid var(--demo-line)}.demo-spine-grid>button:nth-last-child(-n+2){border-bottom:0}.demo-story-head{align-items:start;flex-direction:column;gap:6px}.demo-story-lane{padding:15px 12px 12px}.demo-story-title h3{font-size:20px}.demo-stock-row{grid-template-columns:24px minmax(0,1fr) 108px}.demo-story-lane footer{flex-direction:column;gap:4px}.demo-story-lane footer span:last-child{text-align:left}.demo-hero{grid-template-columns:1fr;padding:24px 0}.demo-score{border-left:0;border-top:1px solid var(--demo-line);padding:16px 0 0}.demo-score>b{font-size:40px}.demo-kpis{grid-column:auto}.demo-timeline{grid-template-columns:1fr 1fr}.demo-time:nth-child(2){border-right:0}.demo-time:nth-child(-n+2){border-bottom:1px solid var(--demo-line)}.demo-lower{grid-template-columns:1fr}.demo-market{grid-column:auto}.demo-edge-grid{grid-template-columns:1fr}.demo-risk-kpis{grid-template-columns:1fr 1fr}.demo-risk-kpis>div:nth-child(2){border-right:0}.demo-risk-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--demo-line)}.demo-agent-flow{grid-template-columns:1fr}.demo-agent-flow>div{min-height:80px;border-right:0;border-bottom:1px solid var(--demo-line)}.demo-agent-flow>div:last-child{border-bottom:0}.demo-report-output{grid-template-columns:1fr}.demo-foot{flex-direction:column}.demo-rank-row{grid-template-columns:32px minmax(0,1fr) 58px 52px 42px}.demo-eyebrow b{display:none}}
@media(prefers-reduced-motion:reduce){.demo-loading i{animation:none}}

/* ══ V3.2 帅版融合新增(DECK v5 令牌不变,以下只做增量) ══ */

/* 驾驶舱 KPI 条 */
.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line)}
.kpi{background:rgba(10,15,23,.82);padding:10px 14px;min-width:0}
.kpi .k{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.14em}
.kpi .v{font-family:var(--mono);font-size:21px;font-weight:600;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi .s{font-family:var(--mono);font-size:9px;color:var(--faint);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi.warn .v{color:var(--amber)}.kpi.err .v{color:var(--danger)}.kpi.ok .v{color:var(--down)}

/* 两栏布局(驾驶舱/系统页) */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media (max-width:980px){.cols2{grid-template-columns:1fr}}

/* 键值行 */
.kv{display:flex;gap:10px;padding:6px 14px;border-bottom:1px solid rgba(27,37,54,.45);font-size:12.5px;align-items:baseline}
.kv .k{font-family:var(--mono);font-size:10px;color:var(--dim);width:128px;flex:none;letter-spacing:.06em}
.kv .v{min-width:0;word-break:break-word}
.ok-inline{color:var(--down);font-size:12px}

/* 危险动作与普通动作分权重 */
.btn.danger{border-color:var(--danger);color:var(--danger)}
.btn.danger:hover:not(:disabled){background:rgba(255,68,68,.12);box-shadow:0 0 15px rgba(255,68,68,.3)}

/* 智能体控制台 */
.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;align-items:start}
.agent-card .aout{font-family:var(--mono);font-size:10.5px;color:var(--dim);background:rgba(4,7,12,.6);
  border-top:1px solid var(--line);padding:8px 12px;max-height:170px;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:0}
.agent-card .arts{padding:6px 12px;border-top:1px solid var(--line)}
.agent-card .arts a{display:block;font-family:var(--mono);font-size:10px;padding:1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-blind{font-family:var(--mono);font-size:9px;color:var(--danger);border:1px solid rgba(255,68,68,.45);border-radius:1px;padding:0 5px;letter-spacing:.08em}
.role-cli{font-family:var(--mono);font-size:9px;color:var(--dim);border:1px solid var(--line2);border-radius:1px;padding:0 5px}
.dayrun-bar{display:flex;gap:10px;align-items:center;padding:10px 14px;flex-wrap:wrap}

/* Edge研究中心 */
.edge-item{border-bottom:1px solid var(--line)}
.edge-item:last-child{border-bottom:none}
.edge-item summary{cursor:pointer;padding:10px 14px;display:flex;gap:10px;align-items:baseline;list-style:none;flex-wrap:wrap}
.edge-item summary::-webkit-details-marker{display:none}
.edge-item summary:hover{background:rgba(90,203,255,.05)}
.edge-item summary::before{content:"▸";color:var(--cyan);font-size:10px;flex:none}
.edge-item[open] summary::before{content:"▾"}
.edge-item .en{font-weight:600}
.edge-item .eid{font-family:var(--mono);font-size:10px;color:var(--cyan)}
.edge-body{padding:0 14px 12px;display:flex;flex-direction:column;gap:8px}
.edge-quote{border-left:2px solid var(--line2);padding:6px 10px;font-size:12px;background:rgba(4,7,12,.45);white-space:pre-wrap}
.edge-quote .qk{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.14em;display:block;margin-bottom:2px}

/* 提示条(纪律声明) */
.note-strip{font-family:var(--mono);font-size:10px;color:var(--amber);padding:7px 14px;
  border-bottom:1px solid var(--line);letter-spacing:.05em;background:rgba(239,172,63,.04)}

/* 系统页覆盖表 failed 行 */
.cov-fail td{background:rgba(255,68,68,.06)}

@media (max-width:760px){
  .kpi .v{font-size:17px}
  .agent-grid{grid-template-columns:1fr}
  .kv .k{width:96px}
}

/* ══ V3.3 DECK-LIVE:找回 v31_deck_v5 帅版壳(用户拍板原稿),数据层全换真实接口 ══ */

/* 氛围层 */
:root{--mx:0;--my:0}
body{overflow-x:hidden}
#stars{position:fixed;inset:0;z-index:0;opacity:.6;pointer-events:none}
.nebula{position:fixed;inset:-8%;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 50% 36% at 50% 0%,rgba(90,203,255,.06),transparent 70%),
             radial-gradient(ellipse 60% 44% at 88% 100%,rgba(47,120,255,.04),transparent);
  transform:translate3d(calc(var(--mx)*-12px),calc(var(--my)*-8px),0)}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="150" height="150"><filter id="n"><feTurbulence baseFrequency="0.88" numOctaves="2"/></filter><rect width="150" height="150" filter="url(%23n)" opacity="0.7"/></svg>')}
.vig{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 92% 74% at 50% 28%,transparent 55%,rgba(0,0,0,.5))}
#sweepline{position:fixed;left:0;right:0;top:-4px;height:2px;z-index:150;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 26px 5px rgba(90,203,255,.5)}
.rm #sweepline{display:none}

/* 开机序列 */
#boot{position:fixed;inset:0;background:#000;z-index:300;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;cursor:pointer}
#boottxt{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.5em;opacity:0}
#bootline{width:0;height:1px;background:var(--cyan);box-shadow:0 0 24px 3px rgba(90,203,255,.85)}
#bootlog{font-family:var(--mono);font-size:11px;color:var(--dim);line-height:2;min-height:90px;min-width:400px;opacity:0}
#bootlog .ok{color:var(--down)}#bootlog .rd{color:var(--danger)}#bootlog .cy{color:var(--cyan)}
#boot .skip{position:absolute;bottom:20px;right:24px;font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.2em}
.rm #boot{display:none}
#app{opacity:0;transition:opacity .6s;position:relative;z-index:5}
#app.on,.rm #app{opacity:1}
.enter .plate{opacity:0;transform:translateY(12px)}
.on .plate,.rm .plate{opacity:1;transform:none;transition:opacity .5s ease,transform .5s cubic-bezier(.2,.9,.25,1)}

/* 顶栏补充 */
.iconbtn{background:none;border:1px solid var(--line);border-radius:2px;color:var(--dim);font-family:var(--mono);font-size:10.5px;padding:3px 10px;letter-spacing:.1em}
.iconbtn:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 14px rgba(90,203,255,.25)}

/* 三栏框架 */
.frame{position:relative;z-index:5;display:grid;grid-template-columns:240px minmax(0,1fr) 320px;min-height:calc(100vh - 181px)}
.railL{border-right:1px solid var(--line);background:rgba(10,15,23,.55);padding:14px 0 14px 18px;display:flex;gap:14px;position:sticky;top:70px;height:calc(100vh - 181px)}
.navcol{display:flex;flex-direction:column;gap:2px;width:104px;min-width:104px;flex:none}
.navcol a{display:flex;gap:9px;padding:8px 10px;color:var(--dim);font-size:13px;border-left:2px solid transparent}
.navcol a .k{font-family:var(--mono);font-size:9.5px;opacity:.7;width:20px}
.navcol a.cur{color:var(--text);border-left-color:var(--cyan);background:linear-gradient(90deg,rgba(90,203,255,.1),transparent)}
.navcol a.cur .k{color:var(--cyan)}
.navcol a:hover{color:var(--text)}
.navcol .sep{margin:10px 8px;border-top:1px solid var(--line)}
.navcol .foot{margin-top:auto;font-family:var(--mono);font-size:8.5px;color:var(--dim);line-height:1.9;opacity:.8;padding:0 8px;word-break:break-all}
.stream-wrap{flex:1;min-width:0;overflow:hidden;position:relative;border-left:1px solid rgba(27,37,54,.45);padding-left:8px;mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent)}
.stream{font-family:var(--mono);font-size:9px;color:var(--dim);line-height:2.2;letter-spacing:.03em;animation:raildown 32s linear infinite;padding-right:10px;white-space:nowrap;word-break:normal;will-change:transform}
.rm .stream{animation:none}
@keyframes raildown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.stream .hl{color:var(--cyan)}.stream .wr{color:var(--amber)}.stream .er{color:var(--danger)}
.main{padding:16px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.side{border-left:1px solid var(--line);background:rgba(10,15,23,.55);padding:14px;display:flex;flex-direction:column;gap:12px;overflow:auto;position:sticky;top:70px;height:calc(100vh - 208px)}

/* 英雄行(今日页) */
.hero{display:grid;grid-template-columns:repeat(4,1fr)}
.hcell{padding:12px 16px;border-right:1px solid var(--line);position:relative;min-width:0}
.hcell:last-child{border-right:none}
.hcell .k{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.2em}
.hcell .v{font-family:var(--mono);font-size:25px;font-weight:600;margin-top:3px;text-shadow:0 0 18px rgba(90,203,255,.12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcell .v .u2{font-size:12px}
.hcell .s{font-family:var(--mono);font-size:9.5px;color:var(--dim);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gate{display:flex;gap:3px;margin-top:8px;flex-wrap:wrap}
.gate i{width:14px;height:4.5px;background:var(--faint)}
.gate i.on{background:var(--cyan);box-shadow:0 0 9px rgba(90,203,255,.7)}

/* 雷达作战台 */
.warroom{display:grid;grid-template-columns:330px minmax(0,1fr)}
.radarbox{border-right:1px solid var(--line);display:flex;align-items:flex-start;justify-content:center;padding:42px 12px 18px;position:relative;cursor:crosshair;min-height:350px}
.corner-meta{position:absolute;font-family:var(--mono);font-size:8.5px;color:var(--dim);letter-spacing:.1em;line-height:1.7;opacity:.85}
.corner-meta.tl{top:8px;left:12px}.corner-meta.br{bottom:8px;right:12px;text-align:right}
.radar{position:relative;width:284px;height:284px}
.radar svg{position:absolute;inset:0;overflow:visible}
#sweepG{transform-origin:0 0}
.clabel{position:absolute;bottom:-2px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.3em}
.ilist{padding:2px 0;min-width:0}
.ihead,.irow{display:grid;grid-template-columns:88px minmax(0,1fr) 64px 64px 70px;gap:12px;padding:4.5px 14px;align-items:center}
.ihead{font-family:var(--mono);font-size:9px;color:var(--dim);border-bottom:1px solid var(--line);letter-spacing:.12em;padding-bottom:6px}
.irow{border-bottom:1px solid rgba(27,37,54,.5);font-size:12.5px;cursor:pointer;transition:background .3s}
.irow:hover{background:rgba(90,203,255,.06)}
.irow.ping{background:rgba(90,203,255,.1)}
.irow:last-child{border-bottom:none}
.radar-skeleton{padding:10px 14px;display:flex;flex-direction:column;gap:10px}
.radar-skeleton i{display:block;height:18px;border:1px solid rgba(27,37,54,.7);background:linear-gradient(90deg,rgba(27,37,54,.28),rgba(90,203,255,.1),rgba(27,37,54,.28));background-size:220% 100%;animation:radarload 1.35s ease-in-out infinite;animation-delay:calc(var(--i)*70ms)}
@keyframes radarload{0%{background-position:100% 0;opacity:.35}50%{opacity:.8}100%{background-position:-100% 0;opacity:.35}}
.radar-contact{opacity:1;transform:translateY(0);transition:opacity .35s ease calc(var(--reveal)*55ms),transform .35s ease calc(var(--reveal)*55ms),background .3s}
.radar-revealing .radar-contact{opacity:0;transform:translateY(7px)}
.bar{height:6.5px;background:rgba(27,37,54,.75);position:relative}
.bar i{position:absolute;top:0;bottom:0;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.bar i.pos{background:linear-gradient(90deg,rgba(255,90,90,.5),var(--up));box-shadow:0 0 8px rgba(255,90,90,.4)}
.bar i.neg{background:linear-gradient(270deg,rgba(47,221,152,.5),var(--down));box-shadow:0 0 8px rgba(47,221,152,.35)}
.bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--line2)}
.slot{margin:8px 14px;padding:10px;border:1px dashed var(--line2);text-align:center;font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.12em}
.slot b{color:var(--amber);font-weight:500}

/* 今日待办 */
.todo{display:flex;align-items:center;gap:11px;padding:7px 14px;border-bottom:1px solid rgba(27,37,54,.5);position:relative}
.todo:last-child{border-bottom:none}
.todo.p1edge::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--danger);animation:breath 1.8s infinite}
.pr{font-family:var(--mono);font-size:9px;width:20px;flex:none}
.pr.p1{color:var(--danger)}.pr.p2{color:var(--amber)}.pr.p3{color:var(--dim)}
.todo .t{flex:1;font-size:12.5px;min-width:0}
.todo .who{font-family:var(--mono);font-size:9px;color:var(--dim);white-space:nowrap}
.act{background:none;border:1px solid var(--cyan);color:var(--cyan);border-radius:1px;padding:2px 10px;font-size:10.5px;font-family:var(--mono)}
.act:hover{background:rgba(90,203,255,.14);box-shadow:0 0 15px rgba(90,203,255,.3)}

/* 右列 */
.frow{padding:7px 12px;border-bottom:1px solid rgba(27,37,54,.5);font-size:12px}
.frow:last-child{border-bottom:none}
.env-scan{min-height:210px}
.env-skeleton{padding:12px;display:flex;flex-direction:column;gap:9px}
.env-skeleton i{height:34px;background:linear-gradient(90deg,rgba(27,37,54,.28),rgba(90,203,255,.08),rgba(27,37,54,.28));background-size:220% 100%;animation:radarload 1.35s infinite}
.env-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 7px}
.env-regime{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.08em}
.env-regime.warn{color:var(--amber)}
.env-grid{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}
.env-grid div{padding:8px 6px;text-align:center;border-right:1px solid var(--line)}.env-grid div:last-child{border-right:none}
.env-grid b{display:block;font-family:var(--mono);font-size:13px}.env-grid span{display:block;color:var(--dim);font-size:8px;margin-top:2px}
.env-breadth{height:3px;margin:9px 12px;background:var(--line)}.env-breadth i{display:block;height:100%;background:linear-gradient(90deg,var(--down),var(--cyan),var(--up));box-shadow:0 0 8px rgba(90,203,255,.35)}
.env-line{display:flex;justify-content:space-between;padding:3px 12px;font-size:10px;color:var(--dim)}.env-line b{font-family:var(--mono);color:var(--text)}
.env-list{display:grid;grid-template-columns:38px 1fr;gap:3px 7px;padding:6px 12px;border-top:1px solid rgba(27,37,54,.5);font-size:9px}.env-list b{font-weight:400}.env-list em{font-style:normal;font-family:var(--mono);float:right}
.env-note{padding:6px 12px;border-top:1px solid var(--line);font-family:var(--mono);font-size:8px;color:var(--dim);letter-spacing:.08em}
.frow .l1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.frow .l2{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--dim);margin-top:1px}
.ltag{font-family:var(--mono);font-size:9px;border:1px solid var(--line2);border-radius:1px;padding:0 5px;color:var(--dim)}
.ltag.pend{color:var(--amber);border-color:rgba(239,172,63,.5)}
.pipe{display:flex;padding:12px 10px 8px}
.pnode{flex:1;text-align:center;position:relative}
.pnode .dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--line2);background:var(--panel);margin:0 auto}
.pnode.wait .dot{border-color:var(--amber);animation:breath 1.5s infinite}
.pnode.done .dot{border-color:var(--down);background:rgba(47,221,152,.35)}
.pnode.err .dot{border-color:var(--danger);background:rgba(255,68,68,.3)}
.pnode .pl{font-family:var(--mono);font-size:8.5px;color:var(--dim);margin-top:4px}
.pnode::before{content:"";position:absolute;top:4.5px;left:-50%;width:100%;height:1px;background:var(--line2)}
.pnode:first-child::before{display:none}
.pipe-meta{font-family:var(--mono);font-size:9px;color:var(--dim);padding:0 12px 10px}
.feed{max-height:220px;overflow:auto}
.fitem{padding:5.5px 12px;border-bottom:1px solid rgba(27,37,54,.45);font-size:11.5px;display:flex;gap:8px}
.fitem .ts{font-family:var(--mono);font-size:9.5px;color:var(--cyan);flex:none}
.fitem:last-child{border-bottom:none}
.live{display:inline-flex;gap:2px;align-items:flex-end;height:9px;margin-left:4px}
.live i{width:2.5px;background:var(--down);animation:eq 1s ease-in-out infinite}
.live i:nth-child(1){height:5px}.live i:nth-child(2){height:9px;animation-delay:.2s}.live i:nth-child(3){height:7px;animation-delay:.4s}
@keyframes eq{50%{transform:scaleY(.3)}}
.rm .live i{animation:none}

/* 底部K线河+跑马灯+键位 */
.deckfoot{position:sticky;bottom:0;z-index:70;background:rgba(10,15,23,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.tape-wrap{position:relative;height:84px;padding:0 18px}
#tape{width:100%;height:100%;display:block}
.tape-meta{position:absolute;left:26px;top:5px;font-family:var(--mono);font-size:8.5px;color:var(--dim);letter-spacing:.28em;z-index:2}
.tape-meta b{color:var(--cyan)}
.tape-stats{position:absolute;right:26px;top:5px;font-family:var(--mono);font-size:8.5px;color:var(--dim);letter-spacing:.1em;z-index:2}
@keyframes deckscroll{to{transform:translateX(-100%)}}
.keys{display:flex;gap:16px;padding:2px 18px 4px;font-family:var(--mono);font-size:8.5px;color:var(--dim);letter-spacing:.12em;border-top:1px solid rgba(27,37,54,.5);flex-wrap:wrap}
.keys kbd{border:1px solid var(--line2);border-radius:2px;padding:0 4px;color:var(--text)}

/* 命令面板 */
#palette{position:fixed;inset:0;background:rgba(4,7,12,.72);backdrop-filter:blur(7px);z-index:180;display:none;align-items:flex-start;justify-content:center;padding-top:16vh}
#palette.open{display:flex}
.pal{width:560px;max-width:94vw;background:rgba(10,15,25,.95);border:1px solid var(--line2);box-shadow:0 36px 110px rgba(0,0,0,.8),0 0 0 1px rgba(90,203,255,.13);
  clip-path:polygon(0 0,calc(100% - 15px) 0,100% 15px,100% 100%,15px 100%,0 calc(100% - 15px))}
.pal input{width:100%;background:none;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:15px;padding:15px 19px;border-bottom:1px solid var(--line)}
.pal input::placeholder{color:var(--dim)}
.pal .item{display:flex;gap:12px;padding:9px 19px;font-size:12.5px;cursor:pointer;align-items:baseline}
.pal .item .tag{font-family:var(--mono);font-size:8.5px;color:var(--cyan);letter-spacing:.18em;width:56px;flex:none}
.pal .item:hover,.pal .item.sel{background:rgba(90,203,255,.1)}
.pal .hint{padding:6px 19px;font-family:var(--mono);font-size:8.5px;color:var(--dim);border-top:1px solid var(--line);display:flex;gap:14px;letter-spacing:.1em}

/* 数字滚动 */
.cnt{display:inline-block}

/* 响应式:≤1200收右列,≤900左轨变顶部横条(导航不丢),K线河收窄 */
@media (max-width:1200px){.frame{grid-template-columns:220px minmax(0,1fr)}.side{display:none}}
@media (max-width:900px){
  .frame{grid-template-columns:1fr;min-height:auto}
  .railL{position:static;height:auto;flex-direction:row;padding:8px 12px;border-right:none;border-bottom:1px solid var(--line)}
  .navcol{flex-direction:row;flex-wrap:wrap;width:auto;min-width:0;flex:1;gap:0}
  .navcol a{padding:6px 8px;border-left:none;border-bottom:2px solid transparent}
  .navcol a.cur{border-left:none;border-bottom-color:var(--cyan);background:none}
  .navcol .sep,.navcol .foot{display:none}
  .stream-wrap{display:none}
  .warroom{grid-template-columns:1fr}
  .radarbox{border-right:none;border-bottom:1px solid var(--line)}
  .tape-wrap{height:56px}
}
@media (max-width:600px){
  .topbar{padding:0 10px;gap:8px}
  .topbar .clock,#chip-pit{display:none}
  .blind{justify-content:center;padding:0 8px}
  .blind span:last-child{display:none}
  .main{padding:12px 10px}
  .hero{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hcell:nth-child(2){border-right:none}
  .hcell:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .radar{width:min(284px,78vw);height:min(284px,78vw)}
  .tape-meta,.tape-stats{display:none}
  .keys{gap:8px;padding-inline:10px}
}

/* ── 机会窗口区(主线卡下)：观察窗口 · 非交易授权 ─────────────────────────
   只读观察面：不含任何交易控件（button/input/form/select 一律不出现）。
   窄屏必须单列且长文本截断，绝不横向溢出。 */
.mlo{border-top:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:6px;padding:8px;min-width:0;overflow:hidden}
.mlo-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.mlo-banner{padding:2px 8px;border:1px solid rgba(255,176,32,.55);border-radius:2px;background:rgba(255,176,32,.12);
  color:#ffb020;font-size:9.5px;letter-spacing:.08em;white-space:nowrap;font-weight:600}
.mlo-t{font-size:10.5px;color:var(--fg,#cfe6f5);white-space:nowrap}
.mlo-chip{padding:1px 6px;border:1px solid var(--line2);border-radius:2px;font-size:8.5px;color:var(--dim);white-space:nowrap;
  max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mlo-chip.ok{color:var(--cyan);border-color:rgba(90,203,255,.35)}
.mlo-chip.warn{color:#ffb020;border-color:rgba(255,176,32,.35)}
.mlo-chip.bad{color:#ff6b6b;border-color:rgba(255,107,107,.35)}
.mlo-g{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:6px;min-width:0}
.mlo-gh{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;min-width:0}
.mlo-r{font-size:9.5px;color:var(--cyan);white-space:nowrap}
.mlo-gn{font-size:11px;color:var(--text,#dff1ff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9em}
.mlo-code{font-size:8px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mlo-tag{padding:1px 5px;border:1px solid var(--line2);border-radius:2px;font-size:8px;color:var(--dim);white-space:nowrap}
.mlo-tag.ok{color:var(--cyan);border-color:rgba(90,203,255,.3)}
.mlo-tag.warn{color:#ffb020;border-color:rgba(255,176,32,.3)}
.mlo-counts{display:flex;flex-wrap:wrap;gap:3px;min-width:0}
.mlo-c{font-family:var(--mono);font-size:8px;color:var(--dim);border:1px solid var(--line);border-radius:2px;padding:0 4px;white-space:nowrap}
.mlo-c.sealed{color:#ff9f43}.mlo-c.div{color:var(--cyan)}.mlo-c.diff{color:#5ad19a}
.mlo-c.pull{color:#9aa9c9}.mlo-c.ext{color:#ff6b6b}.mlo-c.fade{color:#8892a8}
.mlo-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:0}
.mlo-p{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);padding:4px 6px;min-width:0;overflow:hidden}
.mlo-p.none{opacity:.6}
.mlo-pk{font-size:8px;color:var(--dim);white-space:nowrap}
.mlo-pv{font-size:10px;color:var(--text,#dff1ff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlo-pv i{margin-left:5px;font-size:8px;color:var(--dim);font-style:normal}
.mlo-ps{font-size:8px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlo-ps.bad{color:#ff9f43}
.mlo-rows{display:flex;flex-direction:column;gap:2px;min-width:0}
.mlo-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;padding:3px 5px;border:1px solid var(--line);min-width:0;overflow:hidden}
.mlo-nm{font-size:10px;color:var(--text,#dff1ff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:8.5em}
.mlo-nm i{margin-left:5px;font-size:8px;color:var(--dim);font-style:normal}
.mlo-st{padding:1px 5px;border:1px solid var(--line2);border-radius:2px;font-size:8.5px;white-space:nowrap;color:var(--dim)}
.mlo-st.sealed{color:#ff9f43;border-color:rgba(255,159,67,.35)}
.mlo-st.div{color:var(--cyan);border-color:rgba(90,203,255,.35)}
.mlo-st.diff{color:#5ad19a;border-color:rgba(90,209,154,.35)}
.mlo-st.pull{color:#9aa9c9}.mlo-st.ext{color:#ff6b6b;border-color:rgba(255,107,107,.35)}
.mlo-st.fade{color:#8892a8}
.mlo-v{font-size:9.5px;color:var(--dim);white-space:nowrap}
.mlo-seal{padding:1px 5px;border:1px solid rgba(255,159,67,.5);border-radius:2px;font-size:8px;color:#ff9f43;white-space:nowrap}
.mlo-seal.ext{border-color:rgba(255,107,107,.5);color:#ff6b6b}
.mlo-facts{display:flex;flex-wrap:wrap;gap:3px;min-width:0}
.mlo-f{font-family:var(--mono);font-size:8px;color:var(--dim);border:1px solid var(--line);border-radius:2px;padding:0 4px;white-space:nowrap}
.mlo-f.off{opacity:.45}
.mlo-ev{font-size:8.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;flex:1 1 12em;min-width:0}
.mlo-ev.bad{color:#ff9f43}
.mlo-more,.mlo-note,.mlo-foot{font-size:8.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlo-foot.warn{color:#ffb020}
.mlo-empty{font-size:9.5px;color:var(--dim);padding:6px;border:1px dashed var(--line2);overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){
  .mlo-picks{grid-template-columns:1fr}
  .mlo-row{flex-direction:column;align-items:flex-start;gap:3px}
  .mlo-nm,.mlo-gn{max-width:100%}
  .mlo-ev{flex:none;width:100%}
}
@media (max-width:600px){
  .mlo{padding:6px}
  .mlo-facts{width:100%}
  .mlo-counts{width:100%}
}

/* ── 主线实时性 / 运行模式 / 盘前生产 / 早槽告警 ────────────────────────────
   回放与"尚未首跑"必须是整行醒目条,不能缩成一个小 chip 被忽略;
   窄屏一律单列 + 省略号,长证据文本不得把卡片撑到横向溢出。 */
.mlrt{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid var(--line2);border-radius:3px;background:rgba(10,18,30,.35);min-width:0;overflow:hidden}
.mlrt-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.mlrt-k{font-size:9px;color:var(--dim);white-space:nowrap}
.mlrt-chip{padding:1px 6px;border:1px solid var(--line2);border-radius:2px;font-size:9px;color:var(--dim);white-space:nowrap}
.mlrt-chip.ok{color:#5ad19a;border-color:rgba(90,209,154,.4)}
.mlrt-chip.warn{color:#ffb020;border-color:rgba(255,176,32,.45)}
.mlrt-chip.bad{color:#ff6b6b;border-color:rgba(255,107,107,.45)}
.mlrt-chip.insuf{color:#8892a8;border-color:var(--line)}
.mlrt-code,.mlrt-v{font-family:var(--mono);font-size:8.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0}
.mlrt-warn{padding:4px 8px;border:1px solid rgba(255,176,32,.6);border-left-width:3px;border-radius:2px;background:rgba(255,176,32,.08);color:#ffb020;font-size:10.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.mlrt-pending{padding:4px 8px;border:1px dashed var(--line2);border-radius:2px;color:#8892a8;font-size:9.5px;overflow:hidden;text-overflow:ellipsis}
.mlrt-note{font-size:8px;color:var(--dim);opacity:.75;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlpp,.mles{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid var(--line);border-radius:3px;min-width:0;overflow:hidden}
.mlpp-h,.mles-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.mlpp-t,.mles-t{font-size:10px;color:var(--text,#dff1ff);white-space:nowrap}
.mlpp-chip,.mles-chip{padding:1px 6px;border:1px solid var(--line2);border-radius:2px;font-size:8.5px;color:var(--dim);white-space:nowrap}
.mlpp-chip.ok,.mles-chip.ok{color:#5ad19a;border-color:rgba(90,209,154,.4)}
.mlpp-chip.bad,.mles-chip.bad{color:#ff6b6b;border-color:rgba(255,107,107,.45)}
.mlpp-chip.insuf,.mles-chip.insuf{color:#8892a8;border-color:var(--line)}
.mlpp-code{font-family:var(--mono);font-size:8px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlpp-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:0}
.mlpp-r{display:flex;flex-direction:column;gap:1px;padding:3px 5px;border:1px solid var(--line);border-radius:2px;min-width:0;overflow:hidden}
.mlpp-r span{font-size:8px;color:var(--dim)}
.mlpp-r b{font-size:9.5px;color:var(--text,#dff1ff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlpp-r i{font-size:8px;color:var(--dim);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlpp-next{font-size:9px;color:#ffb020;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlpp-warns{display:flex;flex-wrap:wrap;gap:3px;min-width:0}
.mlpp-w{font-family:var(--mono);font-size:8px;color:#ff9f43;border:1px solid rgba(255,159,67,.4);border-radius:2px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mlpp-w.none{color:var(--dim);border-color:var(--line)}
.mles-hl{font-size:9.5px;color:#ff9f43;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 14em}
.mles-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;min-width:0}
.mles-s{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;padding:3px 5px;border:1px solid var(--line);border-radius:2px;min-width:0;overflow:hidden}
.mles-s.miss{border-color:rgba(255,107,107,.45)}
.mles-s b{font-size:10px;color:var(--text,#dff1ff)}
.mles-st{font-size:8.5px;color:var(--dim);white-space:nowrap}
.mles-s.miss .mles-st{color:#ff6b6b}
.mles-ev,.mles-hs{font-size:8px;color:var(--dim);font-style:normal;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 10em}
.mles-hs{color:#ff9f43}
.mles-foot{font-size:8px;color:var(--dim);opacity:.8;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlo-replay{padding:4px 8px;border:1px solid rgba(255,176,32,.6);border-left-width:3px;border-radius:2px;background:rgba(255,176,32,.08);color:#ffb020;font-size:10.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mlo-pending{padding:4px 8px;border:1px dashed var(--line2);border-radius:2px;color:#8892a8;font-size:9.5px;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* 主线小池实时领涨监控:扁平状态条,5秒机械轮询,无大模型调用。 */
.mll{display:flex;flex-direction:column;gap:5px;padding:8px;border-bottom:1px solid var(--line);background:#07100b;min-width:0;overflow:hidden}
.mll-head,.mll-events,.mll-leaders{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}
.mll-live{display:inline-flex;align-items:center;gap:6px;color:#b9f46a;font-size:10.5px;font-weight:700;white-space:nowrap}
.mll-live i{width:6px;height:6px;background:#b9f46a;box-shadow:0 0 8px rgba(185,244,106,.7)}
.mll-mode{padding:1px 6px;border:1px solid rgba(185,244,106,.35);color:#b9f46a;font-size:8.5px;white-space:nowrap}
.mll-pit{padding:1px 5px;border:1px solid rgba(90,209,154,.35);color:#5ad19a;font-size:8px;white-space:nowrap}.mll-pit.bad{border-color:rgba(255,107,107,.55);color:#ff6b6b;background:rgba(255,107,107,.06)}
.mll-meta,.mll-note,.mll-foot{font-size:8px;color:var(--dim);min-width:0;overflow:hidden;text-overflow:ellipsis}
.mll-note{margin-left:auto;white-space:nowrap}.mll-foot{white-space:nowrap}
.mll-event{display:flex;align-items:center;gap:5px;padding:2px 6px;border:1px solid var(--line2);min-width:0;max-width:100%}
.mll-event b{font-size:8.5px;color:var(--fg);white-space:nowrap}.mll-event i{font-size:8px;color:var(--dim);font-style:normal;white-space:nowrap}
.mll-event.ok{border-color:rgba(90,209,154,.35)}.mll-event.hot{border-color:rgba(255,176,32,.55);background:rgba(255,176,32,.06)}
.mll-event.bad{border-color:rgba(255,107,107,.55);background:rgba(255,107,107,.06)}.mll-event.warn{border-color:rgba(255,176,32,.3)}
.mll-empty{font-size:8.5px;color:var(--dim)}
.mll-row{display:grid;grid-template-columns:18px minmax(52px,1fr) 52px 55px;align-items:center;gap:4px;padding:2px 5px;border:1px solid var(--line);min-width:185px;max-width:250px}
.mll-row i,.mll-row small{font-size:8px;color:var(--dim);font-style:normal;white-space:nowrap}.mll-row b{font-size:9px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mll-row em{font-size:8.5px;font-style:normal;text-align:right;white-space:nowrap}
@media(max-width:760px){.mll-note{margin-left:0}.mll-row{width:100%;max-width:none}.mll-foot{white-space:normal}.mll-events{align-items:stretch}.mll-event{width:100%;justify-content:space-between}}
@media (max-width:900px){
  .mlpp-rows{grid-template-columns:1fr}
  .mles-rows{grid-template-columns:1fr}
  .mlrt-line{flex-direction:column;align-items:flex-start;gap:3px}
  .mles-s{flex-direction:column;align-items:flex-start;gap:2px}
  .mles-ev,.mles-hs,.mles-hl{flex:none;width:100%}
}
@media (max-width:600px){
  .mlrt,.mlpp,.mles{padding:5px 6px}
  .mlrt-warn,.mlo-replay{font-size:10px}
  .mlpp-h,.mles-h{gap:4px}
}

/* ── 主线秒级预警:SSE状态条 / 分级开关 / 当日事件时间轴 / 事件时点详情 ──
   紧凑单层结构,放在主线雷达之下,不遮挡首屏自选雷达,也不做卡中卡。
   所有文本节点强制 min-width:0 + 断行/省略,桌面与 390px 窄屏都不溢出。 */
.mls-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#mainline-live-plate .ph .src{min-width:0;overflow:hidden;text-overflow:ellipsis}
.mls-bar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:5px 6px;border:1px solid var(--line);background:rgba(10,15,23,.6);min-width:0}
.mls-bar>span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mls-conn{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;padding:1px 6px;border:1px solid var(--line2);color:var(--dim);white-space:nowrap}
.mls-conn i{width:5px;height:5px;border-radius:50%;background:var(--dim);flex:none}
.mls-conn.ok{color:#5ad19a;border-color:rgba(90,209,154,.45)}.mls-conn.ok i{background:#5ad19a}
.mls-conn.warn{color:var(--amber);border-color:rgba(239,172,63,.45)}.mls-conn.warn i{background:var(--amber)}
.mls-conn.bad{color:#ff6b6b;border-color:rgba(255,107,107,.55);background:rgba(255,107,107,.06)}.mls-conn.bad i{background:#ff6b6b}
.mls-tier{font-size:7.5px;color:var(--dim);border:1px solid var(--line2);padding:1px 4px;white-space:nowrap}
.mls-quiet{font-size:8px;color:var(--dim);padding:1px 5px;border:1px solid var(--line);white-space:nowrap}
.mls-quiet.muted{color:var(--amber);border-color:rgba(239,172,63,.45);background:rgba(239,172,63,.06)}
.mls-switches{display:inline-flex;flex-wrap:wrap;gap:3px}
.mls-sw{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:8.5px;line-height:1.4;padding:2px 7px;cursor:pointer;
  background:transparent;border:1px solid var(--line2);color:var(--dim);white-space:nowrap}
.mls-sw i{width:14px;height:8px;border:1px solid var(--line2);position:relative;flex:none}
.mls-sw i::after{content:"";position:absolute;top:0;left:0;width:6px;height:6px;background:var(--dim)}
.mls-sw.on{color:#5ad19a;border-color:rgba(90,209,154,.5);background:rgba(90,209,154,.07)}
.mls-sw.on i{border-color:rgba(90,209,154,.6)}.mls-sw.on i::after{left:auto;right:0;background:#5ad19a}
.mls-sw:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}
.mls-perm{font-size:8px;color:var(--dim);white-space:normal;word-break:break-word}
.mls-perm.ok{color:#5ad19a}.mls-perm.bad{color:#ff6b6b}
.mls-fail{font-size:8px;color:#ff6b6b;white-space:normal;word-break:break-word}
.mls-gov{font-size:8px;color:var(--amber);flex-basis:100%;white-space:normal;word-break:break-word}
.mls-tlhead{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;min-width:0}
.mls-filters{display:inline-flex;gap:3px;flex-wrap:wrap}
.mls-f{font:inherit;font-size:8.5px;line-height:1.4;padding:2px 8px;cursor:pointer;background:transparent;border:1px solid var(--line2);color:var(--dim);white-space:nowrap}
.mls-f.cur{color:var(--cyan);border-color:rgba(90,203,255,.5);background:rgba(90,203,255,.08)}
.mls-f:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}
.mls-note{font-size:8px;color:var(--dim);margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mls-rows{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:260px;overflow-y:auto;min-width:0}
.mls-row{display:grid;grid-template-columns:32px 52px minmax(60px,1fr) minmax(70px,1.2fr) 54px minmax(0,110px);
  align-items:center;gap:5px;width:100%;text-align:left;font:inherit;padding:3px 6px;cursor:pointer;
  background:transparent;border:1px solid var(--line);color:var(--text);min-width:0}
.mls-row:hover{border-color:var(--line2);background:rgba(90,203,255,.05)}
.mls-row:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}
.mls-row.cur{border-color:rgba(90,203,255,.6);background:rgba(90,203,255,.08)}
.mls-row.red{border-left:2px solid #ff6b6b}.mls-row.yellow{border-left:2px solid var(--amber)}
.mls-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mls-sev{font-size:8px;color:var(--dim)}
.mls-row.red .mls-sev{color:#ff6b6b}.mls-row.yellow .mls-sev{color:var(--amber)}
.mls-t{font-size:8px;color:var(--dim)}
.mls-e{font-size:9px;color:var(--text)}
.mls-n{font-size:9px;color:var(--text)}.mls-n i{font-size:7.5px;color:var(--dim);font-style:normal;margin-left:3px}
.mls-p{font-size:8.5px;text-align:right}
.mls-empty{font-size:8.5px;color:var(--dim);padding:6px}
.mls-foot{font-size:8px;color:var(--dim);margin-top:4px;white-space:normal;word-break:break-word}
.mls-detail{margin-top:6px;padding:6px;border:1px solid var(--line2);background:rgba(13,19,32,.7);min-width:0}
.mls-d-h{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:8.5px;min-width:0}
.mls-d-h b{font-size:9.5px;color:var(--text)}
.mls-d-h .mono{font-size:8px;color:var(--dim);min-width:0;overflow:hidden;text-overflow:ellipsis}
.mls-x{margin-left:auto;font:inherit;font-size:9px;line-height:1;padding:2px 6px;cursor:pointer;background:transparent;border:1px solid var(--line2);color:var(--dim)}
.mls-d-g,.mls-d-pit,.mls-d-f{font-size:8px;color:var(--dim);margin-top:4px;white-space:normal;word-break:break-word}
.mls-d-f{color:var(--amber)}
.mls-top2{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;min-width:0}
.mls-top2-i{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;padding:2px 6px;border:1px solid var(--line2);color:var(--text);min-width:0;max-width:100%}
.mls-top2-i b{font-size:8px;color:var(--cyan)}.mls-top2-i i{font-size:7.5px;color:var(--dim);font-style:normal}
.mls-top2-i em{font-size:8px;font-style:normal}
.mls-top2-tag{font-size:7.5px;color:var(--amber);border:1px solid rgba(239,172,63,.4);padding:1px 5px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.mls-d-ctx{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px;min-width:0}
.mls-d-c{display:inline-flex;align-items:center;gap:4px;font-size:8px;padding:1px 5px;border:1px solid var(--line);color:var(--dim);min-width:0;max-width:100%}
.mls-d-c i{font-style:normal;font-size:7.5px}.mls-d-c em{font-style:normal}
.mls-d-empty{font-size:8px;color:var(--dim)}
/* 服务端确认态 / 降级原因:都是"诚实条",宽屏与窄屏都必须换行而不是溢出 */
.mls-sync{font-size:8px;color:var(--dim);white-space:normal;word-break:break-word;min-width:0;max-width:100%}
.mls-sync.ok{color:#5ad19a}.mls-sync.bad{color:#ff6b6b}
.mls-sw.unsynced{border-style:dashed;border-color:rgba(239,172,63,.6)}
.mls-degrade{font-size:8px;color:var(--amber);flex-basis:100%;white-space:normal;word-break:break-word}
.mls-d-src{font-size:8px;color:var(--dim);margin-top:3px;white-space:normal;word-break:break-word}
.mls-custody{font-size:8px;color:var(--dim);margin-top:5px;padding:3px 5px;border:1px solid var(--line2);white-space:normal;word-break:break-word}
.mls-custody.bad{color:var(--amber);border-color:rgba(239,172,63,.5);background:rgba(239,172,63,.06)}
/* AI 解读区:固定四格,永远四格。桌面 2×2,窄屏单列;与详情其它块纵向排开不重叠。 */
.mls-ai{margin-top:5px;padding:5px 6px;font-size:8px;color:var(--dim);border:1px dashed var(--line2);white-space:normal;word-break:break-word;min-width:0}
.mls-ai-h{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.mls-ai-t{font-size:8.5px;color:var(--text)}
.mls-ai-state{font-size:8px;color:var(--amber);white-space:normal;word-break:break-word;min-width:0}
.mls-ai-quota{font-size:8px;color:var(--dim);white-space:normal;word-break:break-word;min-width:0}
.mls-ai-btn{margin-left:auto;font:inherit;font-size:8.5px;line-height:1.4;padding:2px 8px;cursor:pointer;
  background:transparent;border:1px solid rgba(90,203,255,.5);color:var(--cyan);white-space:nowrap;flex:none}
.mls-ai-btn[disabled]{opacity:.55;cursor:default}
.mls-ai-btn:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}
.mls-ai-notice{font-size:7.5px;color:var(--amber);margin-top:3px;white-space:normal;word-break:break-word}
.mls-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:5px;min-width:0}
.mls-ai-cell{border:1px solid var(--line);padding:3px 5px;min-width:0}
.mls-ai-cell b{display:block;font-size:8px;color:var(--cyan);font-weight:400}
.mls-ai-cell p{margin:2px 0 0;font-size:8px;color:var(--text);white-space:normal;word-break:break-word}
.mls-ai-cell p.dim{color:var(--dim)}
.mls-ai-f{font-size:8px;color:var(--amber);margin-top:4px;white-space:normal;word-break:break-word}
@media (max-width:760px){
  .mls-note{margin-left:0;white-space:normal}
  .mls-row{grid-template-columns:30px 46px minmax(0,1fr) 50px;grid-auto-rows:auto}
  .mls-row .mls-n{grid-column:3/5}
  .mls-row .mls-tier{grid-column:1/5;font-size:7px}
  .mls-row>span{white-space:normal;word-break:break-word}
  .mls-rows{max-height:none}
  .mls-ai-btn{margin-left:0}
}
@media (max-width:400px){
  .mls-bar,.mls-detail{padding:4px}
  .mls-sw,.mls-f{padding:2px 5px;font-size:8px}
  .mls-row{grid-template-columns:28px minmax(0,1fr) 46px;gap:4px}
  .mls-row .mls-t{grid-column:1/4}
  .mls-row .mls-n{grid-column:1/4}
  .mls-row .mls-tier{grid-column:1/4}
  .mls-top2-i,.mls-d-c{width:100%;justify-content:space-between}
  .mls-gov,.mls-foot,.mls-perm{font-size:7.5px}
  /* 390px:四格改单列,按钮整行,任何一格都不会被挤到重叠 */
  .mls-ai-grid{grid-template-columns:minmax(0,1fr)}
  .mls-ai-btn{width:100%;margin-left:0}
  .mls-sync,.mls-degrade,.mls-custody,.mls-ai-notice,.mls-ai-f{font-size:7.5px}
}

/* ── SECONDARY-LEADER-OBSERVATION-BLOCK-START ───────────────────────────────
   次龙观察沿用现有驾驶舱的工业暗面:一像素边线、等宽数值、无阴影。
   状态仅来自后端，不以颜色表达任何交易动作或预测保证。 */
.sl{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--line);background:var(--panel);min-width:0}
.sl-wait,.sl-fail{padding:7px;font-size:9px;color:var(--dim)}.sl-fail{color:var(--danger)}
.sl-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0;font-size:8.5px}
.sl-state{padding:1px 7px;border:1px solid var(--line2);font-family:var(--mono);white-space:nowrap}
.sl-state.ok{color:var(--cyan);border-color:rgba(90,203,255,.55)}.sl-state.warn{color:var(--amber);border-color:rgba(239,172,63,.55)}.sl-state.bad{color:var(--danger);border-color:rgba(255,68,68,.55)}.sl-state.dim{color:var(--dim)}
.sl-reason{color:var(--amber);word-break:break-word;min-width:0}.sl-src{margin-left:auto;color:var(--dim);font-size:7.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;min-width:0}
.sl-cell{display:flex;flex-direction:column;gap:2px;padding:5px;border:1px solid var(--faint);background:var(--surface);min-width:0}
.sl-cell>span{font-size:7.5px;color:var(--dim);letter-spacing:.06em}.sl-cell>b{font:10px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-cell>b.ok{color:var(--cyan)}.sl-cell>b.warn{color:var(--amber)}.sl-cell>b.bad{color:var(--danger)}.sl-cell>b.dim{color:var(--dim)}
.sl-cell i,.sl-detail i{font-size:7.5px;font-style:normal;color:var(--dim);word-break:break-word}
.sl-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:5px;border:1px solid var(--line);min-width:0}
.sl-detail>div{display:flex;gap:5px;align-items:baseline;min-width:0;font-size:8px}.sl-detail span{color:var(--dim);flex:0 0 auto}.sl-detail b{font-weight:400;min-width:0;word-break:break-word}.sl-detail i{min-width:0}
.sl-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0}
.sl-candidate{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;padding:4px 5px;border:1px solid var(--line2);font-size:8.5px;min-width:0}.sl-candidate b{font-size:7.5px;color:var(--cyan)}.sl-candidate span{min-width:0;word-break:break-word}
.sl-foot{font-size:7.5px;color:var(--amber);white-space:normal;word-break:break-word}
@media (max-width:760px){.sl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-detail{grid-template-columns:minmax(0,1fr)}.sl-src{margin-left:0;max-width:100%;white-space:normal}}
@media (max-width:400px){.sl-grid,.sl-candidates{grid-template-columns:minmax(0,1fr)}.sl{padding:5px}.sl-head{align-items:flex-start}.sl-detail>div{flex-direction:column;gap:2px}.sl-cell>b{white-space:normal;word-break:break-word}}
/* ── SECONDARY-LEADER-OBSERVATION-BLOCK-END ───────────────────────────────── */

/* ── LEADER-IDENTITY-OPPORTUNITY-FUSION-BLOCK-START ─────────────────────────
   身份/机会双排名沿用同一套工业暗面语汇:一像素边线、等宽数值、无阴影。
   三栏(外部身份 / 盘中强度 / 当前可交易候选)各占一列、互不合并;窄屏改为每行
   一张卡,三栏依然分行显示,绝不折叠成一个"龙N"。颜色只表达"一致或冲突"这一
   事实档位,不表达任何交易动作或收益预期。 */
.liof{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--line);background:var(--panel);min-width:0}
.liof-wait,.liof-fail{padding:7px;font-size:9px;color:var(--dim)}.liof-fail{color:var(--danger)}
.liof-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0;font-size:8.5px}
.liof-state{padding:1px 7px;border:1px solid var(--line2);font-family:var(--mono);white-space:nowrap}
.liof-state.ok{color:var(--cyan);border-color:rgba(90,203,255,.55)}
.liof-state.warn{color:var(--amber);border-color:rgba(239,172,63,.55)}
.liof-reason{color:var(--amber);min-width:0;word-break:break-all}
.liof-src{margin-left:auto;color:var(--dim);font-size:7.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.liof-blocked{padding:5px;border:1px solid rgba(239,172,63,.45);background:rgba(239,172,63,.05);
  font-size:8px;color:var(--amber);word-break:break-word}
.liof-tbl{width:100%;border-collapse:collapse;font-size:8.5px;min-width:0;table-layout:fixed}
.liof-tbl th{text-align:left;font-weight:400;font-size:7.5px;color:var(--dim);letter-spacing:.06em;
  padding:3px 4px;border-bottom:1px solid var(--line2);word-break:break-word}
.liof-tbl td{padding:4px;border-bottom:1px solid var(--faint);vertical-align:top;word-break:break-word;min-width:0}
.liof-sym{display:flex;flex-direction:column;gap:1px}
.liof-sym b{font:10px var(--mono);font-weight:400}
.liof-sym i{font-style:normal;font-size:7.5px;color:var(--dim)}
/* 三栏语汇不同,颜色也不同:外部身份是别人的口径,不是本系统的排名。 */
.liof-ext{color:var(--amber)}
.liof-int{color:var(--cyan)}
.liof-opp{color:var(--text)}
.liof-conf{display:flex;flex-direction:column;gap:1px}
.liof-conf i{font-style:normal;font-size:7px;color:var(--dim);word-break:break-all}
.liof-conf .ok{color:var(--down)}.liof-conf .warn{color:var(--amber)}
.liof-conf .bad{color:var(--danger)}.liof-conf .dim{color:var(--dim)}
.liof-empty{font-size:8px;color:var(--dim);padding:5px;word-break:break-word}
.liof-chips{display:flex;flex-wrap:wrap;gap:5px;min-width:0}
.liof-chip{padding:1px 6px;border:1px solid var(--line2);font-size:7.5px;white-space:nowrap}
.liof-chip.ok{color:var(--down);border-color:rgba(47,221,152,.45)}
.liof-chip.warn{color:var(--amber);border-color:rgba(239,172,63,.45)}
.liof-chip.bad{color:var(--danger);border-color:rgba(255,68,68,.45)}
.liof-chip.dim{color:var(--dim)}
.liof-lat{display:flex;flex-direction:column;gap:4px;padding:5px;border:1px solid var(--line);background:var(--surface);min-width:0}
.liof-lat-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;font-size:8px;min-width:0}
.liof-lat-head .t{color:var(--dim);letter-spacing:.06em}
.liof-badge{padding:1px 6px;border:1px solid var(--line2);font-size:7.5px;white-space:nowrap}
.liof-badge.ok{color:var(--cyan);border-color:rgba(90,203,255,.5)}
.liof-badge.warn{color:var(--amber);border-color:rgba(239,172,63,.5)}
.liof-chain{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.liof-pt{display:flex;flex-direction:column;gap:1px;padding:3px 5px;border:1px solid var(--faint);min-width:0}
.liof-pt b{font-weight:400;font-size:7.5px}
.liof-pt i{font-style:normal;font-size:7px;color:var(--dim);word-break:break-all}
.liof-pt.ok b{color:var(--cyan)}.liof-pt.dim b{color:var(--dim)}
.liof-seg{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:7.5px;color:var(--dim);min-width:0}
.liof-seg b{font:9px var(--mono);font-weight:400;color:var(--text)}
.liof-total{color:var(--amber)}
.liof-lat-foot{font-size:7.5px;color:var(--dim);word-break:break-word}
.liof-foot{font-size:7.5px;color:var(--amber);white-space:normal;word-break:break-word}
@media (max-width:760px){
  .liof-tbl,.liof-tbl thead,.liof-tbl tbody,.liof-tbl tr,.liof-tbl th,.liof-tbl td{display:block;width:auto}
  .liof-tbl thead{display:none}
  .liof-row{border:1px solid var(--line2);margin-bottom:5px;padding:3px}
  .liof-tbl td{border-bottom:none;padding:2px 4px}
  .liof-src{margin-left:0;max-width:100%;white-space:normal}
}
@media (max-width:400px){
  .liof{padding:5px}
  .liof-head{align-items:flex-start}
  .liof-chain{flex-direction:column}
  .liof-seg{flex-direction:column;gap:2px}
}
/* ── LEADER-IDENTITY-OPPORTUNITY-FUSION-BLOCK-END ─────────────────────────── */

/* ── CONTINUOUS-DISCOVERY-HEALTH-BLOCK-START ─────────────────────────────────
   全市场连续发现健康面板。沿用驾驶舱既有暗色/等宽/单色强调语汇,不新增配色体系;
   只承载后端已算好的真实状态,没有任何"已交易/收益"演示样式可用。
   窄屏 390px 下八格改双列再改单列,任何一格都不重叠、不溢出。 */
.cdh{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--line);
  border-radius:6px;background:var(--panel)}
.cdh-wait,.cdh-fail{font-size:9px;color:var(--dim);padding:6px}
.cdh-fail{display:flex;flex-direction:column;gap:4px}
.cdh-bad{color:var(--danger)}
.cdh-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:8.5px}
.cdh-state{padding:1px 7px;border-radius:3px;border:1px solid var(--line2);letter-spacing:.08em}
.cdh-state.ok{color:var(--down);border-color:rgba(47,221,152,.45)}
.cdh-state.bad{color:var(--danger);border-color:rgba(255,68,68,.45)}
.cdh-state.warn{color:var(--amber);border-color:rgba(239,172,63,.45)}
.cdh-state.dim{color:var(--dim)}
.cdh-reason{color:var(--amber)}
.cdh-slot,.cdh-src{color:var(--dim)}
.cdh-src{margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52%}
.cdh-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.cdh-cell{display:flex;flex-direction:column;gap:2px;padding:5px 6px;border:1px solid var(--faint);
  border-radius:4px;background:var(--surface);min-width:0}
.cdh-k{font-size:7.5px;color:var(--dim);letter-spacing:.06em}
.cdh-v{font-family:var(--mono);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cdh-v.ok{color:var(--cyan)}
.cdh-v.warn{color:var(--amber)}
.cdh-v.bad{color:var(--danger)}
.cdh-v.dim{color:var(--dim)}
.cdh-sub{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}
.cdh-oops{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
.cdh-oop{display:inline-flex;align-items:baseline;gap:4px;padding:1px 6px;border-radius:3px;
  border:1px solid var(--line2);background:var(--surface);font-size:8.5px}
.cdh-oop b{font-family:var(--mono);color:var(--amber)}
.cdh-oop i{font-style:normal;color:var(--text)}
.cdh-oop em{font-style:normal;font-size:7.5px;color:var(--dim)}
.cdh-oop.pub b{color:var(--cyan)}
.cdh-empty{font-size:8.5px;color:var(--dim)}
.cdh-foot{font-size:7.5px;color:var(--amber);white-space:normal;word-break:break-word}
@media (max-width:760px){
  .cdh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cdh-src{margin-left:0;max-width:100%;white-space:normal}
}
@media (max-width:400px){
  .cdh-grid{grid-template-columns:minmax(0,1fr)}
  .cdh-v{white-space:normal;word-break:break-word}
  .cdh-head{font-size:8px}
}
/* ── CONTINUOUS-DISCOVERY-HEALTH-BLOCK-END ───────────────────────────────── */

/* ── MAINLINE-STATE-BLOCK-START ──────────────────────────────────────────────
   主线状态区样式。红/黄只作左侧一条 visual_urgency 色带,不承担"主线真假/强弱"
   的语义——语义全部由 .msp-state 里的六态文字承担。四类记录各自有标签底纹,
   窄屏 390px 单列铺开,长哈希与长原因码换行不溢出。 */
#mainline-state-plate .msp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding:5px 8px;border-bottom:1px solid var(--line2);font-size:8.5px}
.msp-legend{display:flex;flex-wrap:wrap;gap:5px}
.msp-legend-item{padding:1px 6px;border-radius:3px;border:1px solid var(--line2);
  background:var(--surface);font-size:8px;color:var(--dim)}
.msp-legend-item[data-msp-legend="FORMAL_EVENT"]{color:var(--cyan)}
.msp-legend-item[data-msp-legend="MAINLINE_STATE_DECISION"]{color:var(--text)}
.msp-legend-item[data-msp-legend="AI_COMMENTARY"]{color:var(--amber)}
.msp-legend-item[data-msp-legend="FEISHU_RECEIPT"]{color:var(--dim)}
.msp-row{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;
  padding:8px 10px 8px 14px;border-bottom:1px solid var(--line2)}
.msp-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line2)}
.msp-row.msp-u-high::before{background:var(--danger)}
.msp-row.msp-u-med::before{background:var(--amber)}
.msp-row.msp-u-low::before{background:var(--line2)}
.msp-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;font-size:9.5px}
.msp-state{padding:1px 6px;border-radius:3px;border:1px solid var(--line2);
  background:var(--surface);font-size:9px;color:var(--text)}
.msp-tagline{padding:1px 5px;border-radius:3px;border:1px solid var(--line2);
  background:var(--surface);font-size:7.5px;color:var(--dim);letter-spacing:.06em}
.msp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;font-size:8.5px}
.msp-grid>div{display:flex;gap:6px;min-width:0}
.msp-grid>div>span:last-child{min-width:0;word-break:break-word}
.msp-k{flex:0 0 auto;color:var(--dim);font-size:8px}
.msp-top2{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:8.5px}
.msp-top2-list{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;min-width:0}
.msp-top2-list li{display:flex;align-items:baseline;gap:5px;min-width:0}
.msp-notify,.msp-ai{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:8.5px;min-width:0}
.msp-ai-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;width:100%}
.msp-ai-cell{display:flex;gap:6px;min-width:0}
.msp-ai-cell>span:last-child{min-width:0;word-break:break-word}
.msp-note{font-size:7.5px}
.msp-foot{font-size:7.5px;white-space:normal;word-break:break-all}
.msp-row .ok{color:var(--cyan)}
.msp-row .warn{color:var(--amber)}
.msp-row .bad{color:var(--danger)}
@media (max-width:760px){
  .msp-grid{grid-template-columns:minmax(0,1fr)}
  .msp-top2-list{flex-direction:column;gap:3px}
}
@media (max-width:400px){
  .msp-head{font-size:9px}
  .msp-bar{font-size:8px}
}
/* ── MAINLINE-STATE-BLOCK-END ────────────────────────────────────────────── */

/* ═════════ 监控页 MAINLINE LIVE(2026-07-31 Phase B)· mon-前缀纯增量,不影响其他页 ═════════
   视觉基线=Cockpit/design/monitor_panel_preview_v2.html:纯黑底荧光绿/青、等宽字体、
   左轨FLIP滑动、事件淡入、进度条流光;所有动效只改呈现,不产生业务数值。 */
.mon-hide{display:none!important}
.mon-stale{position:sticky;top:0;z-index:60;background:#3a0a08;border:1px solid #ff5d55;color:#ffb3ae;
  padding:8px 12px;font-weight:700;letter-spacing:.04em;box-shadow:0 0 18px rgba(255,93,85,.35);
  font-family:ui-monospace,'Cascadia Mono',Consolas,monospace;font-size:12px;margin-bottom:8px}
.mon-root{position:relative;display:flex;flex-direction:column;border:1px solid #182b18;
  background:radial-gradient(1100px 600px at 50% -10%, rgba(62,224,106,.05), transparent 60%),#030503;
  color:#9cb695;font-family:ui-monospace,'Cascadia Mono',Consolas,'Courier New',monospace;
  font-size:11px;letter-spacing:.02em;min-height:0;overflow:visible}
.mon-glow{text-shadow:0 0 10px rgba(62,224,106,.45)}
/* 顶栏必须换行:任何窄屏都不允许把 chip 挤到横向不可达处 */
.mon-top{min-height:32px;flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:5px 12px;
  border-bottom:1px solid #182b18;background:rgba(4,7,4,.92);flex-wrap:wrap;row-gap:5px;overflow:visible}
.mon-logo{color:#e2f5dc;font-weight:700;white-space:nowrap}
.mon-logo b{color:#3ee06a}
.mon-sp{flex:1 0 0;min-width:0}
.mon-asof{color:#e2f5dc;white-space:nowrap}
.mon-chip{border:1px solid #182b18;padding:2px 7px;color:#54684f;white-space:nowrap}
.mon-chip.on{color:#3ee06a;border-color:#1d4a28}
.mon-chip.warn{color:#ecc04a;border-color:#4a3a12}
.mon-chip.bad{color:#ff5d55;border-color:#5c1a1a}
/* 治理尾注:顶部常驻条 + 底部常驻条,两处都在正常文档流,永不遮挡任何区块 */
.mon-govtop{flex:0 0 auto;padding:4px 12px;border-bottom:1px solid #182b18;background:rgba(6,10,6,.9);
  color:#54684f;font-size:10px}
.mon-govtop b{color:#ecc04a}
.mon-degrade{flex:0 0 auto;padding:4px 12px;border-bottom:1px solid #4a3a12;background:rgba(24,18,4,.72);
  color:#ecc04a;font-size:10px;word-break:break-all}
.mon-degrade b{color:#ffdc86}
.mon-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 330px;flex:1 1 auto;min-height:0;align-items:stretch}
.mon-col{border-right:1px solid #182b18;overflow:visible;display:flex;flex-direction:column;min-width:0;
  opacity:0;transform:translateY(6px);transition:opacity .5s ease,transform .5s ease}
.mon-col.in{opacity:1;transform:none}
.mon-colR{border-right:none}
.mon-hd{padding:5px 10px;color:#54684f;border-bottom:1px solid #0f1c0f;display:flex;
  justify-content:space-between;gap:8px;background:rgba(6,10,6,.9);flex-wrap:wrap;align-items:baseline}
.mon-hd>span:first-child{min-width:0;flex:1 1 auto}
.mon-hd>span+span{flex:0 0 auto}
.mon-hd b{color:#9cb695}
.mon-sub{padding:3px 10px;color:#3c4f38;font-size:10px;border-bottom:1px solid #0f1c0f;word-break:break-word}
.mon-empty{color:#54684f;padding:10px;font-size:10.5px;line-height:1.5}
.mon-off .mon-hd,.mon-off .mon-lab{opacity:.7}
/* 左轨:FLIP滑动排名 */
.mon-railscroll{flex:1 1 auto;min-height:120px;max-height:min(62vh,620px);
  overflow-y:auto;overflow-x:hidden;margin:4px 6px;position:relative;scrollbar-width:thin}
#mon-rail{position:relative}
.mon-icard{position:absolute;left:0;right:0;height:52px;border:1px solid #0f1c0f;padding:4px 7px;background:#060a06;
  transition:transform .7s cubic-bezier(.22,.9,.24,1),border-color .4s,box-shadow .4s;will-change:transform}
.mon-icard.hot{border-color:#2a5c30;box-shadow:0 0 12px rgba(62,224,106,.07) inset}
.mon-icard .r1{display:flex;justify-content:space-between;align-items:baseline}
.mon-icard .nm{color:#e2f5dc}
.mon-icard.hot .nm{color:#a8f27a;text-shadow:0 0 8px rgba(168,242,122,.4)}
.mon-icard .rk{color:#3c4f38;margin-right:5px}
.mon-icard .pc{color:#3ee06a;font-weight:700;font-variant-numeric:tabular-nums}
.mon-icard .r2{display:flex;gap:8px;color:#54684f;font-size:10px}
.mon-icard canvas{position:absolute;left:7px;right:7px;bottom:3px;width:calc(100% - 14px);height:13px;opacity:.95}
/* 中列:雷达+三席 */
.mon-focus{display:grid;grid-template-columns:280px minmax(0,1fr);border-bottom:1px solid #182b18;min-height:236px}
/* 雷达标注改为正常流(上/中/下三段),不再绝对定位压在扫描面上 */
.mon-radarwrap{border-right:1px solid #0f1c0f;display:flex;flex-direction:column;min-height:236px;min-width:0}
.mon-radarbox{flex:1 1 auto;position:relative;min-height:170px}
#mon-radar{display:block;position:absolute;inset:0;width:100%;height:100%}
.mon-radarlab{padding:5px 8px 2px;color:#54684f;font-size:10px;word-break:break-word}
.mon-radarstat{padding:2px 8px 6px;color:#54684f;font-size:10px;word-break:break-word}
.mon-seats{padding:8px 12px;display:flex;flex-direction:column;gap:6px;min-width:0;overflow:visible}
.mon-mllab{color:#54684f;font-size:10px;border-top:1px solid #0f1c0f;padding-top:5px}
.mon-mllist{max-height:190px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;border:1px solid #0f1c0f;
  background:#050805}
.mon-mlrow{display:grid;grid-template-columns:26px minmax(60px,1.4fr) minmax(52px,.7fr) auto minmax(72px,.9fr) auto;
  gap:6px;align-items:center;padding:3px 7px;border-bottom:1px solid #0b140b;font-size:10px;color:#54684f}
.mon-mlrow:last-child{border-bottom:none}
.mon-mlrow.cur{background:rgba(62,224,106,.06)}
.mon-mlrow .ix{color:#33452f}
.mon-mlrow .nm{color:#e2f5dc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mon-mlrow .cd,.mon-mlrow .ep{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* visual_urgency 是后端权威文案,窄列换行显示,绝不截断成半截枚举 */
.mon-mlrow .ur{white-space:normal;word-break:break-all;text-align:right}
.mon-mlrow .mon-st{font-size:9.5px;padding:0 4px;white-space:nowrap}
.mon-tag{color:#54684f;font-size:10px}
.mon-mline{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mon-mlname{color:#a8f27a;font-size:17px;font-weight:700;text-shadow:0 0 12px rgba(168,242,122,.5)}
.mon-st{padding:1px 6px;border:1px solid #2a5c30;color:#3ee06a}
.mon-st.st-dim{border-color:#182b18;color:#54684f}
.mon-st.st-amb{border-color:#4a3a12;color:#ecc04a}
.mon-st.st-red{border-color:#5c1a1a;color:#ff5d55}
.mon-seatrow{display:grid;grid-template-columns:minmax(74px,88px) minmax(96px,1fr) minmax(140px,1.4fr) minmax(96px,110px) minmax(112px,150px);
  gap:8px;align-items:center;border:1px solid #0f1c0f;
  background:linear-gradient(180deg,rgba(10,16,10,.9),rgba(6,10,6,.9));padding:6px 9px;margin-bottom:5px}
.mon-seatrow .role{color:#54684f;font-size:10px;display:flex;flex-direction:column;gap:1px;min-width:0}
.mon-seatrow .role i{font-style:normal;color:#3c4f38;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mon-seatrow .stk{color:#e2f5dc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mon-seatrow .stk small{color:#54684f}
.mon-seatrow .frames{display:flex;flex-direction:column;gap:2px;font-size:10px;color:#54684f;min-width:0}
.mon-seatrow .frames i{font-style:normal;color:#3c4f38}
.mon-seatrow .frames .pct{color:#3ee06a;font-size:14px;font-weight:700;
  text-shadow:0 0 10px rgba(62,224,106,.45);font-variant-numeric:tabular-nums}
/* 距限=权威字段 distance_to_limit_pct 原样呈现;契约不提供进度条算术,故此处不再是进度条 */
.mon-seatrow .dl{color:#54684f;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mon-seatrow .dl b{color:#ecc04a;font-size:12px;font-variant-numeric:tabular-nums}
.mon-seatrow .bd{text-align:right;white-space:nowrap;font-size:10px;color:#54684f;
  display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.mon-badge{padding:1px 6px;border:1px solid #182b18;color:#54684f;display:inline-block}
.mon-badge.acc{color:#3fd4de;border-color:#14494f}
.mon-badge.near{color:#ecc04a;border-color:#4a3a12}
.mon-badge.seal{color:#041004;background:#3ee06a;border-color:#3ee06a;font-weight:700}
.mon-badge.broke{color:#ff5d55;border-color:#5c1a1a}
.mon-badge.na{color:#54684f;border-style:dashed}
/* 三层采样健康 */
.mon-samp{padding:7px 12px;border-bottom:1px solid #182b18}
.mon-lab{color:#54684f;margin-bottom:5px;display:flex;justify-content:space-between;gap:8px}
.mon-lab b{color:#9cb695}
.mon-layer{display:flex;gap:10px;align-items:center;border:1px solid #0f1c0f;background:#060a06;
  padding:4px 8px;margin-bottom:3px;flex-wrap:wrap}
.mon-layer.bad{border-color:#5c1a1a}
.mon-layer.skip{border-style:dashed;border-color:#2a3a1c}
.mon-layer.skip .lc,.mon-layer.skip .lk{opacity:.62}
.mon-layer .lw{color:#ecc04a;font-size:10px;border:1px dashed #4a3a12;padding:0 5px}
.mon-layer .ln{color:#e2f5dc;min-width:86px}
.mon-layer .ls{color:#ecc04a;word-break:break-all}
.mon-layer .ls.ok{color:#3ee06a}
.mon-layer .lc{display:flex;align-items:center;gap:5px;color:#9cb695}
.mon-layer .cb{display:inline-block;width:64px;height:6px;background:#0d180d;position:relative;overflow:hidden}
.mon-layer .cb b{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#175c28,#3ee06a)}
.mon-layer .lk{color:#54684f;font-size:10px}
/* 环境观察 */
.mon-stats{padding:7px 12px;border-bottom:1px solid #182b18}
.mon-statrow{display:flex;gap:6px;flex-wrap:wrap}
.mon-stat{flex:1;min-width:74px;border:1px solid #0f1c0f;padding:5px 8px;background:#060a06}
.mon-stat .k{color:#54684f;font-size:10px}
.mon-stat .v{color:#e2f5dc;font-size:16px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.mon-stat .v.g{color:#3ee06a;text-shadow:0 0 10px rgba(62,224,106,.4)}
.mon-stat .v.r{color:#ff5d55;text-shadow:0 0 10px rgba(255,93,85,.4)}
.mon-stat .v.a{color:#ecc04a}
.mon-stat .na{color:#54684f;font-size:9px}
/* 六段延迟 */
.mon-pipe{padding:8px 12px;flex:1 1 auto;min-height:0}
.mon-stages{display:flex;align-items:stretch;gap:4px;flex-wrap:wrap}
.mon-stage{flex:1;min-width:70px;border:1px solid #0f1c0f;background:#060a06;padding:5px 7px;
  position:relative;overflow:hidden}
.mon-stage::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:var(--w,0%);
  background:#3fd4de;opacity:.7;transition:width .4s ease}
.mon-stage.na::after{background:#5c1a1a}
.mon-stage .sk{color:#54684f;font-size:10px}
.mon-stage .sv{color:#3fd4de;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.mon-stage.na .sv{color:#54684f;font-weight:400;font-size:10px}
.mon-arr{color:#274527;align-self:center}
.mon-tot{margin-top:8px;color:#54684f}
.mon-tot b{color:#a8f27a;font-size:15px;text-shadow:0 0 10px rgba(168,242,122,.4)}
.mon-tot .ok{color:#3ee06a}
.mon-tot .dim{color:#54684f}
.mon-excl{margin-top:5px;color:#3c4f38;font-size:10px}
/* 右列:交付/事件流 */
.mon-deliver{padding:6px 10px;border-bottom:1px solid #182b18}
.mon-kv{display:flex;justify-content:space-between;gap:10px;padding:2px 0;font-size:10.5px}
.mon-kv .k{color:#54684f;white-space:nowrap}
.mon-kv .v{color:#9cb695;text-align:right;overflow:hidden;text-overflow:ellipsis}
.mon-kv .v.ok{color:#3ee06a}
.mon-kv .v.bad{color:#ff5d55;font-weight:700}
.mon-tally{display:flex;gap:6px;padding:6px 8px;border-bottom:1px solid #0f1c0f}
.mon-tly{flex:1;border:1px solid #0f1c0f;padding:4px 6px;background:#060a06}
.mon-tly .k{font-size:9px;color:#54684f}
.mon-tly .v{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:#9cb695}
.mon-tly.seal .v{color:#3ee06a}
.mon-tly.near .v{color:#ecc04a}
.mon-tly.broke .v{color:#ff5d55}
.mon-tly.sw .v{color:#3fd4de}
/* 事件流:可滚动到达全部已接收事件(不再 overflow:hidden 造成横/纵向不可达) */
#mon-log{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:4px 8px;line-height:1.5;
  min-height:120px;max-height:min(48vh,460px);scrollbar-width:thin}
/* 两行栅格:首行 id/时间/事件/标记,次行主体名整行换行显示——窄列也不截断行业与个股名 */
.mon-lg{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:1px 6px;
  align-items:baseline;color:#54684f;opacity:0;padding:1px 0;
  transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;font-size:10.5px}
.mon-lg.show{opacity:1;transform:none}
.mon-lg>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mon-lg .id{color:#33452f}
.mon-lg .t{color:#3c5238;font-variant-numeric:tabular-nums}
.mon-lg .ic{display:inline-block;width:12px;text-align:center}
.mon-lg .ev{min-width:0}
.mon-lg .who{grid-column:1 / -1;color:#9cb695;min-width:0;
  white-space:normal;overflow:visible;text-overflow:clip;word-break:break-all;padding-left:2px}
.mon-lg .who:empty{display:none}
.mon-lg .tail{display:inline-flex;gap:4px;align-items:baseline;flex:0 0 auto}
.mon-lg .sev{color:#3c4f38;font-size:9px;border:1px solid #182b18;padding:0 3px}
.mon-lg .og{color:#33452f;font-size:9px}
.mon-lg .dm{color:#3fd4de;font-size:9px;border:1px solid #14494f;padding:0 3px}
.mon-lg .sup{color:#ecc04a;font-size:9px;border:1px dashed #4a3a12;padding:0 3px}
.mon-lg.sv1{color:#54684f}
.mon-lg.sv2{color:#3fd4de}
.mon-lg.sv3{color:#ecc04a}
.mon-lg.sv4{color:#ff8f88;font-weight:700;text-shadow:0 0 8px rgba(255,93,85,.35)}
.mon-lg.sv-na{color:#54684f;font-style:italic}
/* 治理尾注:常驻页面底部,正常文档流(不再绝对定位遮挡事件流) */
.mon-gov{flex:0 0 auto;color:#54684f;border-top:1px solid #182b18;
  background:rgba(3,5,3,.92);padding:5px 12px;font-size:10px;line-height:1.6;
  display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.mon-gov b{color:#ecc04a}
/* 底部留白:与 sticky 的 .deckfoot 行情带保持净空,治理尾注永不被压在其下 */
.mon-root{margin-bottom:14px}
/* 中屏:两列,右列整行铺开,避免中列被挤到不可读宽度 */
@media (max-width:1560px){
  .mon-root{height:auto;min-height:0}
  .mon-grid{grid-template-columns:250px minmax(0,1fr)}
  .mon-colR{grid-column:1 / -1;border-top:1px solid #182b18;border-right:none}
  /* 雷达与三席改上下排布:中列被压窄时三席/全表不再被挤到截断宽度 */
  .mon-focus{grid-template-columns:1fr}
  .mon-radarwrap{border-right:none;border-bottom:1px solid #0f1c0f}
  .mon-railscroll{max-height:min(52vh,520px)}
  #mon-log{max-height:min(34vh,320px)}
}
/* 窄屏:单列纵排,不重叠不溢出 */
@media (max-width:1180px){
  .mon-root{height:auto;min-height:0}
  .mon-grid{grid-template-columns:1fr}
  .mon-col{border-right:none;border-bottom:1px solid #182b18}
  .mon-railscroll{max-height:300px}
  .mon-focus{grid-template-columns:1fr}
  .mon-radarwrap{min-height:220px}
  #mon-log{max-height:260px}
}

/* 强顶逻辑门 v2 状态面板:只读消费 /api/secondary-leader-strong-chase-v2/status */
.scl{flex:0 0 auto;border-top:1px solid #182b18;background:rgba(3,5,3,.92)}
#mon-scl-body{max-height:min(38vh,380px);overflow:auto;padding:6px 10px}
.scl-row{display:flex;gap:8px;justify-content:space-between;align-items:baseline;
  padding:2px 0;border-bottom:1px dotted #101d10;font-size:10.5px;line-height:1.5}
.scl-k{color:#54684f;flex:0 0 auto}
.scl-v{color:#9cb695;text-align:right;word-break:break-all}
.scl-chip{display:inline-block;padding:0 5px;border-radius:3px;font-size:9.5px;
  border:1px solid #182b18;color:#54684f}
.scl-chip.on{color:#ecc04a;border-color:#4a3a12;background:rgba(234,192,74,.06)}
.scl-chip.bad{color:#ff8f88;border-color:#4a1f1c;background:rgba(255,93,85,.06)}
.scl-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:5px 10px}
.scl-sub{color:#54684f;font-size:9.5px;flex:1 1 auto;min-width:0}
/* ── MONITOR-PANEL-CSS-END ──────────────────────────────────────────────── */─────────────────────────────────────────────── */
/* ── MONITOR-COMMAND-PANEL-CSS-START ────────────────────────────────────────
   监控作战屏样式(2026-08-03 T04)。颜色严格按冻结语义(契约§9):
   青#3fd4de 线索观察 · 黄#ecc04a 形成 · 绿#3ee06a 确认且存在未失效观察标的 ·
   红#ff5d55 高强度事件 · 灰#54684f 失效/充分反应 · 紫#b48ce0 数据不完整。
   颜色不承载交易含义;可参与性只由 participation 栏表达。
   三尺寸 1920(内容区 max-width 1600)/1440/1180:单列六区、不横向溢出、
   不重叠、文字不截断;1180 隐藏装饰性雷达,机会行折多行。
   FX 关闭(.rm)时暂停流光/淡入等装饰动画。 */
.mc-root{max-width:1600px;margin:0 auto;padding:10px 14px 26px;display:flex;flex-direction:column;gap:10px;min-width:0}
.mc-root.mc-off{opacity:.72}
.mc-top{min-height:32px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 2px;border-bottom:1px solid rgba(63,212,222,.16)}
.mc-logo{font-size:16px;font-weight:700;color:#dce6f2;white-space:nowrap}
.mc-sp{flex:1 1 0;min-width:0}
.mc-asof{font-size:10px;color:#5e6e8c;font-family:var(--mono);white-space:nowrap}
.mc-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid #1b2536;padding:1px 7px;font-size:9px;color:#5e6e8c;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mc-chip.on{color:#3ee06a;border-color:rgba(62,224,106,.5)}
.mc-chip.warn{color:#ecc04a;border-color:rgba(236,192,74,.5)}
.mc-chip.bad{color:#ff5d55;border-color:rgba(255,93,85,.55)}
.mc-chip.c-cyan{color:#3fd4de;border-color:rgba(63,212,222,.5)}
.mc-chip.c-amber{color:#ecc04a;border-color:rgba(236,192,74,.5)}
.mc-chip.c-green{color:#3ee06a;border-color:rgba(62,224,106,.5)}
.mc-chip.c-red{color:#ff5d55;border-color:rgba(255,93,85,.55)}
.mc-chip.c-grey{color:#54684f;border-color:rgba(84,104,111,.6)}
.mc-chip.c-purple{color:#b48ce0;border-color:rgba(180,140,224,.6)}
.mc-event-chip{font-variant-numeric:tabular-nums}
.mc-safety{font-size:9px;color:#5e6e8c;line-height:1.4;padding:0 2px}
.mc-opening-watch{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center;border:1px solid rgba(63,212,222,.24);border-left:3px solid #3fd4de;background:rgba(10,28,33,.42);padding:5px 8px;font-size:9px;color:#7a93ad;min-width:0}
.mc-opening-watch span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-opening-label{color:#dce6f2;font-weight:700}
.mc-opening-watch .on{color:#3ee06a}.mc-opening-watch .warn{color:#ecc04a}
.mc-govline{font-size:9px;color:#5e6e8c;line-height:1.6;border:1px dashed rgba(180,140,224,.35);padding:3px 8px}
.mc-anomaly{font-size:10px;color:#ecc04a;background:rgba(236,192,74,.07);border:1px solid rgba(236,192,74,.45);padding:4px 10px;line-height:1.6;white-space:normal;word-break:break-word}
.mc-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.mc-answer{min-height:0}
.mc-answer-wide{grid-column:1/-1}
.mc-sec{display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid #1b2536;background:rgba(10,15,23,.55);padding:8px 10px 10px}
.mc-sec-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:11px;color:#dce6f2;padding-bottom:5px;border-bottom:1px solid rgba(63,212,222,.14);position:relative;overflow:hidden}
.mc-sec-hd strong{font-size:15px;color:#fff;font-weight:700}
.mc-sec-hd::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:linear-gradient(90deg,transparent,rgba(63,212,222,.6),transparent);background-size:220% 100%;animation:mcFlow 3.2s linear infinite;pointer-events:none}
@keyframes mcFlow{0%{background-position:220% 0}100%{background-position:-120% 0}}
.rm .mc-sec-hd::after{animation:none;background:rgba(63,212,222,.16)}
.mc-sec-sub{font-size:9px;color:#5e6e8c;min-width:0;white-space:normal;word-break:break-word}
.mc-empty{font-size:10px;color:#5e6e8c;padding:8px 2px;white-space:normal;word-break:break-word}
.mc-empty.bad{color:#ff5d55}
/* s1 当前市场结论条:8项常驻,雷达为辅助区(≤200px) */
.mc-mn-body{display:flex;gap:12px;align-items:stretch;min-height:64px}
.mc-mn-stats{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.mc-stat{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;border:1px solid rgba(27,37,54,.8);padding:5px 8px;background:rgba(13,19,32,.6);overflow:hidden}
.mc-stat span{font-size:8.5px;color:#5e6e8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-stat b{font-size:13px;font-weight:700;color:#dce6f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.mc-stat.mc-v-main b{color:#3fd4de}
.mc-stat.c-green b{color:#3ee06a}.mc-stat.c-amber b{color:#ecc04a}.mc-stat.c-red b{color:#ff5d55}.mc-stat.c-purple b{color:#b48ce0}
.mc-radarwrap{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
#mc-radar{width:96px;height:96px;max-width:96px;max-height:96px}
.mc-radarstat{font-size:8px;color:#5e6e8c;white-space:nowrap}
.mc-early-candidates{display:flex;flex-direction:column;gap:5px}
.mc-candidate-row{display:grid;grid-template-columns:minmax(0,1.4fr) auto repeat(3,minmax(0,1fr));align-items:center;gap:8px;border-left:3px solid #ecc04a;background:rgba(236,192,74,.05);padding:7px 9px;min-width:0}
.mc-candidate-row>*{min-width:0}
.mc-candidate-row>b{font-size:14px;color:#dce6f2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-candidate-row>span{font-size:9px;color:#ecc04a;border:1px solid rgba(236,192,74,.5);padding:1px 5px}
.mc-candidate-row>small{font-size:9px;color:#8fa0ba;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-candidate-row>small:last-child{grid-column:1 / -1;color:#ecc04a;white-space:normal;line-height:1.35}
/* s2 主线作战卡:已封/逼板/非涨停强势三计数,生命周期,关键时点,逻辑 */
.mc-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mc-card-name{display:flex;align-items:baseline;gap:8px;min-width:0}
.mc-card-code{font-size:9px;color:#5e6e8c;font-family:var(--mono)}
.mc-card-name b{font-size:18px;color:#dce6f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-lc{display:inline-flex;align-items:center;gap:6px;border:1px solid;padding:2px 8px;font-size:11px;border-radius:2px;white-space:nowrap}
.mc-lc i{font-style:normal;font-size:8px;opacity:.75}
.mc-lc small{font-size:8px;opacity:.75;font-family:var(--mono)}
.mc-lc.c-cyan{color:#3fd4de;border-color:rgba(63,212,222,.55)}
.mc-lc.c-amber{color:#ecc04a;border-color:rgba(236,192,74,.55)}
.mc-lc.c-green{color:#3ee06a;border-color:rgba(62,224,106,.55)}
.mc-lc.c-red{color:#ff5d55;border-color:rgba(255,93,85,.55)}
.mc-lc.c-grey{color:#54684f;border-color:rgba(84,104,111,.6)}
.mc-lc.c-purple{color:#b48ce0;border-color:rgba(180,140,224,.6)}
.mc-card-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:2px}
.mc-stage-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;margin:2px 0}
.mc-stage-rail span{position:relative;display:flex;align-items:center;gap:5px;border-top:3px solid #1b2536;padding:5px 4px 2px;color:#54684f;min-width:0}
.mc-stage-rail span.done{border-color:#3fd4de;color:#7a93ad}
.mc-stage-rail span.active{border-color:currentColor;background:rgba(63,212,222,.06)}
.mc-stage-rail span.active.c-amber{background:rgba(236,192,74,.07)}
.mc-stage-rail span.active.c-green{background:rgba(62,224,106,.07)}
.mc-stage-rail span.active.c-red{background:rgba(255,93,85,.07)}
.mc-stage-rail i{font-style:normal;font-size:8px;opacity:.7}
.mc-stage-rail b{font-size:10px;color:inherit;white-space:nowrap}
.mc-count{border:1px solid rgba(27,37,54,.8);padding:8px;display:flex;flex-direction:column;gap:2px;min-width:0;background:rgba(13,19,32,.5)}
.mc-count-k{font-size:9px;color:#5e6e8c}
.mc-count b{font-size:22px;color:#3fd4de;font-variant-numeric:tabular-nums}
.mc-card-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;font-size:9px;color:#5e6e8c;min-width:0}
.mc-card-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-card-meta b{color:#dce6f2;font-weight:600;font-family:var(--mono)}
.mc-card-logic{display:flex;flex-direction:column;gap:3px;font-size:10px;min-width:0}
.mc-logic-k{color:#5e6e8c;font-size:9px}
.mc-logic-v{color:#dce6f2;white-space:normal;word-break:break-word}
.mc-logic-neg{color:#ecc04a;font-size:9px;white-space:normal;word-break:break-word}
/* s3 当前仍可观察机会榜:身份/强度/可参与性分栏,已封板不进当前榜 */
.mc-opp-sub{font-size:9px;color:#5e6e8c;white-space:normal;word-break:break-word}
.mc-opp-row{display:grid;grid-template-columns:1.2fr repeat(5,minmax(0,1fr));gap:5px 10px;padding:8px 10px;border:1px solid rgba(62,224,106,.32);border-left:3px solid #3ee06a;margin-bottom:5px;background:rgba(8,25,14,.55);min-width:0}
.mc-oc{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}
.mc-oc i{font-style:normal;font-size:8px;color:#5e6e8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-oc b{font-size:10px;color:#dce6f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mc-oc small{font-size:8px;color:#5e6e8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mc-oc .mc-seat{display:flex;align-items:baseline;gap:5px}
.mc-opp-why{grid-column:1/-1;display:flex;gap:5px;align-items:baseline;min-width:0;font-size:9.5px;color:#dce6f2;white-space:normal;word-break:break-word}
.mc-opp-why>b{color:#3ee06a;flex:none}
.mc-opp-why>small{color:#5e6e8c;margin-left:auto;min-width:0}
.mc-opp-memory{margin-top:8px;border:1px solid rgba(63,212,222,.28);background:rgba(8,19,29,.52);min-width:0}
.mc-opp-memory-hd{display:flex;gap:8px;align-items:baseline;padding:5px 8px;border-bottom:1px solid rgba(63,212,222,.18);color:#3fd4de;font-size:9.5px}
.mc-opp-memory-hd small{color:#5e6e8c;font-size:8px;min-width:0}
.mc-opp-memory-row{display:grid;grid-template-columns:28px 1.25fr 1.2fr 2fr;gap:6px 10px;padding:5px 8px;border-top:1px solid rgba(27,37,54,.6);font-size:9.5px;min-width:0}
.mc-opp-memory-row:first-of-type{border-top:0}
.mc-opp-memory-row b,.mc-opp-memory-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-opp-memory-row b{color:#dce6f2;display:flex;flex-direction:column}
.mc-opp-memory-row small{font-size:8px;color:#5e6e8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-opp-memory-id{color:#3fd4de;font-family:var(--mono)}
.mc-opp-memory-logic{color:#aebfd0}
.mc-expired{margin-top:6px;border:1px solid rgba(84,104,111,.5)}
.mc-expired summary{cursor:pointer;font-size:9.5px;color:#54684f;padding:4px 8px;user-select:none}
.mc-exp-row{display:grid;grid-template-columns:1.2fr 1fr 2fr;gap:6px 12px;padding:4px 8px;font-size:9.5px;border-top:1px solid rgba(27,37,54,.6);min-width:0}
.mc-ex-sym{display:flex;flex-direction:column;min-width:0}
.mc-ex-sym small{font-size:8px;color:#5e6e8c}
.mc-ex-ind{color:#5e6e8c;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-ex-why{min-width:0;white-space:normal;word-break:break-word}
.mc-ex-why i{font-style:normal;color:#5e6e8c;font-size:8px;margin-right:5px}
/* s4 主线候选全景:盘前预测/盘中即时/池外升温/热点升级/已兑现退潮 五组分开 */
.mc-cand-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.mc-cand-grp{border:1px solid rgba(27,37,54,.7);min-width:0;display:flex;flex-direction:column}
.mc-cand-hd{font-size:9.5px;color:#3fd4de;padding:4px 8px;border-bottom:1px solid rgba(27,37,54,.6);background:rgba(13,19,32,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-cand-body{padding:5px 8px;min-width:0;display:flex;flex-direction:column;gap:3px}
.mc-prow{display:flex;gap:6px;align-items:baseline;font-size:9.5px;min-width:0}
.mc-pidx{color:#54684f;font-size:8px;font-family:var(--mono);flex:none}
.mc-prow b{color:#dce6f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mc-kv{display:flex;gap:6px;align-items:baseline;font-size:9px;min-width:0}
.mc-kv span{color:#5e6e8c;flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-kv b{color:#dce6f2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* s5 中文事件时间轴:事件时间/系统看到/页面投影 三段 + 后端延迟 */
.mc-tl-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr .8fr;gap:6px 12px;padding:5px 8px;border:1px solid rgba(27,37,54,.6);margin-bottom:4px;background:rgba(13,19,32,.4);min-width:0;animation:mcFadeIn .45s ease}
@keyframes mcFadeIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.rm .mc-tl-row{animation:none}
.mc-tl-ev{display:flex;flex-direction:column;min-width:0}
.mc-tl-ev b{font-size:10px;color:#dce6f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-tl-ev small{font-size:8px;color:#5e6e8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mc-tl-ev small i{font-style:normal;font-family:var(--mono);color:#2a3850}
.mc-tl-time{display:flex;flex-direction:column;font-size:9px;color:#dce6f2;font-family:var(--mono);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-tl-time i,.mc-tl-lat i{font-style:normal;font-size:7.5px;color:#5e6e8c;font-family:var(--sans)}
.mc-tl-lat{display:flex;flex-direction:column;font-size:9px;color:#ecc04a;font-family:var(--mono);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-badge{font-size:7.5px;border:1px solid;padding:0 4px;margin-left:4px}
.mc-badge.c-cyan{color:#3fd4de;border-color:rgba(63,212,222,.5)}
.mc-badge.c-grey{color:#54684f;border-color:rgba(84,104,111,.5)}
/* s6 系统诊断抽屉:默认折叠,异常向顶部投影一条 */
.mc-diag-toggle{font:inherit;font-size:9.5px;padding:2px 10px;cursor:pointer;background:transparent;border:1px solid #1b2536;color:#5e6e8c;margin-left:auto}
.mc-diag-toggle:hover{color:#dce6f2}
.mc-diag-body{display:flex;flex-direction:column;gap:10px}
.mc-diag-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.mc-diag-card{border:1px solid rgba(27,37,54,.7);padding:5px 8px;min-width:0;background:rgba(13,19,32,.4)}
.mc-diag-k{font-size:8.5px;color:#5e6e8c;margin-bottom:3px}
.mc-diag-v{font-size:9px;color:#dce6f2;min-width:0;display:flex;flex-direction:column;gap:2px;white-space:normal;word-break:break-word}
.mc-techline{display:flex;flex-wrap:wrap;gap:6px}
.mc-more{border:1px solid #1b2536;background:rgba(6,10,16,.55)}
.mc-more>summary{cursor:pointer;padding:8px 10px;color:#7a8ba7;font-size:10px;user-select:none}
.mc-more[open]>summary{border-bottom:1px solid #1b2536;color:#dce6f2}
.mc-more-body{display:flex;flex-direction:column;gap:8px;padding:8px}
.mc-na{color:#b48ce0}
#mc-opp-board{border-color:rgba(62,224,106,.45);background:rgba(8,20,13,.66)}
#mc-opp-board .mc-sec-hd{color:#3ee06a}
/* 冻结颜色语义(契约§9):颜色不承载交易含义 */
.c-cyan{color:#3fd4de}.c-amber{color:#ecc04a}.c-green{color:#3ee06a}
.c-red{color:#ff5d55}.c-grey{color:#54684f}.c-purple{color:#b48ce0}
/* 三尺寸:1440 / 1180 / 1920,不横向溢出、不重叠、文字不截断 */
@media (max-width:1440px){
  .mc-mn-body{min-height:56px}
  .mc-stat{flex-direction:row;align-items:baseline;gap:5px}
  #mc-radar{width:84px;height:84px}
  .mc-cand-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mc-diag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mc-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1180px){
  .mc-root{padding:8px 8px 20px}
  .mc-answer-grid{grid-template-columns:1fr}
  .mc-answer-wide{grid-column:auto}
  .mc-radarwrap{display:none}
  .mc-mn-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mc-opp-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mc-opp-why{grid-column:1/-1;flex-direction:column;align-items:flex-start}
  .mc-opp-why>small{margin-left:0}
  .mc-opp-memory-row{grid-template-columns:28px 1fr 1fr}
  .mc-opp-memory-logic{grid-column:2/-1}
  .mc-candidate-row{grid-template-columns:1fr auto}
  .mc-candidate-row>small{grid-column:span 1}
  .mc-tl-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mc-cand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mc-exp-row{grid-template-columns:1fr}
  .mc-stat b{font-size:11px}
  .mc-count b{font-size:18px}
  .mc-card-counts{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .mc-top{align-items:flex-start}
  .mc-asof{width:100%}
  .mc-opp-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mc-opp-memory-row{grid-template-columns:24px 1fr}
  .mc-opp-memory-row>span:nth-child(3),.mc-opp-memory-logic{grid-column:2}
  .mc-stage-rail{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:6px}
  .mc-card-counts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mc-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1920px){
  .mc-root{max-width:1600px}
}
/* ── MONITOR-COMMAND-PANEL-CSS-END ────────────────────────────────────────── */
