:root{--bg: #0c0e14;--bg-2: #161a23;--bg-3: #1d222c;--line: #262d3a;--line-2: #333c4d;--fg: #e2e8f0;--fg-2: #8b98ab;--fg-3: #5a6678;--fg-4: #3d4655;--green: #22c55e;--green-d: rgba(34, 197, 94, .18);--green-l: #4ade80;--red: #ef4444;--red-d: rgba(239, 68, 68, .18);--red-l: #f87171;--blue: #3b82f6;--blue-d: rgba(59, 130, 246, .16);--amber: #f59e0b;--violet: #8b5cf6;--neutral: #64748b;--font-ui: "Segoe UI", Inter, -apple-system, "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "Cascadia Mono", "JetBrains Mono", Consolas, "DejaVu Sans Mono", ui-monospace, monospace;--radius: 4px;--radius-2: 6px;--gap: 8px;--pad: 10px;--wm-h: 22px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden}.num,.mono,.kpi-v,.pnl,[data-mono]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fg-4)}.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-height:0}.panel-hd{flex:0 0 auto;height:24px;display:flex;align-items:center;gap:6px;padding:0 var(--pad);border-bottom:1px solid var(--line);color:var(--fg-3);font-size:12px;letter-spacing:.08em;text-transform:uppercase;user-select:none}.panel-hd b{color:var(--fg);font-weight:600;letter-spacing:.04em}.panel-bd{flex:1 1 auto;min-height:0;overflow:hidden;position:relative}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex:0 0 auto}.dot.g{background:var(--green);box-shadow:0 0 5px var(--green-d)}.dot.r{background:var(--red);box-shadow:0 0 5px var(--red-d)}.dot.n{background:var(--neutral)}.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:8px;font-size:12px;border:1px solid var(--line-2);color:var(--fg-2);background:var(--bg-3)}#cockpit{width:100vw;height:100vh;display:grid;grid-template-rows:76px 1fr 196px var(--wm-h);grid-template-columns:340px 1fr 380px;grid-template-areas:"top   top   top" "left  mid   right" "bot   bot   bot" "wm    wm    wm";gap:var(--gap);padding:var(--gap);background:var(--bg)}#slot-top{grid-area:top}#slot-left{grid-area:left}#slot-mid{grid-area:mid}#slot-right{grid-area:right}#slot-bot{grid-area:bot}#slot-wm{grid-area:wm}#cockpit>[id^=slot-]{position:relative;min-width:0;min-height:0;overflow:hidden}#cockpit>[id^=slot-]:not(#slot-wm){background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius)}#slot-mid{background:transparent;border:0;border-radius:0}#slot-wm{display:flex;align-items:center;justify-content:center;gap:10px;background:#0a0c11;border:1px dashed #2a3140;border-radius:var(--radius);font-family:var(--font-mono);font-size:12.5px;color:var(--fg-3);letter-spacing:.06em;user-select:none}#slot-wm .wm-badge{color:var(--amber);border:1px solid rgba(245,158,11,.4);background:#f59e0b14;border-radius:3px;padding:0 5px;font-weight:700}#slot-wm .wm-sep{color:var(--fg-4)}@media (max-width: 1600px){#cockpit{grid-template-columns:300px 1fr 340px}}@media (max-height: 1000px){#cockpit{grid-template-rows:72px 1fr 178px var(--wm-h)}}#boot-hint{position:fixed;right:14px;bottom:calc(var(--wm-h) + 14px);z-index:50;padding:6px 10px;border-radius:var(--radius);background:#0c0e14eb;border:1px solid var(--line-2);color:var(--fg-3);font-family:var(--font-mono);font-size:12.5px;display:none}#boot-hint.show{display:block}#boot-hint b{color:var(--amber)}#boot-hint.loading{color:var(--fg-3)}#boot-hint.demo{border-color:var(--amber);color:var(--fg-2)}#boot-hint.demo b{color:var(--amber)}:root{--nav-h: 44px;--nav-bg: var(--bg-2, #161a23);--nav-bd: var(--line, #232a36);--nav-fg: var(--fg, #e2e8f0);--nav-dim: var(--fg-dim, #8b98ab);--nav-accent: var(--accent, #22c55e)}#appnav{position:fixed;inset:0 0 auto;height:var(--nav-h);z-index:9000;display:flex;align-items:center;gap:4px;padding:0 10px;background:var(--nav-bg);border-bottom:1px solid var(--nav-bd);font:500 13px/1 system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;color:var(--nav-fg);user-select:none}#appnav .nav-brand{font-weight:700;font-size:13px;letter-spacing:.5px;margin-right:12px;color:var(--nav-fg);white-space:nowrap}#appnav .nav-brand em{font-style:normal;color:var(--nav-accent)}#appnav .nav-btn{appearance:none;border:1px solid transparent;background:transparent;color:var(--nav-dim);font:inherit;padding:6px 14px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}#appnav .nav-btn:hover{color:var(--nav-fg);background:#ffffff0d}#appnav .nav-btn[aria-current=page]{color:var(--nav-fg);background:#ffffff14;border-color:var(--nav-bd)}#appnav .nav-btn[aria-current=page]:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--nav-accent);margin-right:7px;vertical-align:1px}#appnav .nav-disclaimer{margin-left:auto;color:var(--nav-dim);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-view{display:none}.app-view.is-active{display:block}body.has-nav #view-cockpit{padding-top:var(--nav-h)}body.has-nav #cockpit{height:calc(100vh - var(--nav-h))}body.has-nav #view-botfloor,body.has-nav #view-capital{padding-top:0;height:100vh;box-sizing:border-box}.app-frame{width:100%;height:100%;border:0;display:block;background:#0b0d12}body.has-nav #view-botfloor,body.has-nav #view-capital{height:100vh}.app-fallback{display:none;height:100%;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--nav-dim);font:400 13px/1.7 system-ui,Microsoft YaHei,sans-serif;text-align:center;padding:24px}.app-frame.is-failed+.app-fallback{display:flex}.app-fallback b{color:var(--nav-fg);font-weight:600}.app-fallback code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;color:var(--nav-dim);background:#ffffff0d;padding:2px 6px;border-radius:4px}@media (max-width: 1600px){#appnav{font-size:12px}#appnav .nav-btn{padding:5px 10px}#appnav .nav-disclaimer{font-size:10px}}
