:root{--bg: #0e1116;--panel: #0b0e12;--panel-2: #13181f;--border: #232a33;--border-2: #2b333d;--line: #14181e;--text: #c9d1d9;--bright: #e6edf3;--muted: #8a93a0;--dim: #6e7681;--dimmer: #5b626c;--amber: #f5a623;--green: #3fb950;--red: #f85149;--blue: #58a6ff;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}@keyframes livepulse{0%,to{opacity:1}50%{opacity:.25}}.mono{font-family:var(--mono)}.shell{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;height:54px;padding:0 18px;border-bottom:1px solid var(--border);background:var(--panel);flex:0 0 auto}.body{display:flex;flex:1;min-height:0}.nav{width:184px;flex:0 0 auto;border-right:1px solid var(--border);background:var(--panel);padding:12px 10px;overflow-y:auto}.main{flex:1;min-width:0;padding:16px;overflow-y:auto}.logo{width:22px;height:22px;border-radius:5px;background:var(--amber);display:flex;align-items:center;justify-content:center;color:#0b0e12;font-weight:700;font-family:var(--mono);font-size:13px}.brand{font-family:var(--mono);font-weight:700;letter-spacing:.5px;font-size:14px;color:var(--bright)}.pill{font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--border);border-radius:4px;padding:2px 6px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.menu-btn{display:none;align-items:center;justify-content:center;width:30px;height:30px;margin-right:6px;flex:0 0 auto;background:var(--panel-2);color:var(--muted);font-size:17px;line-height:1;border:1px solid var(--border-2);border-radius:6px;cursor:pointer}.menu-btn:hover{color:var(--bright)}.nav-backdrop{display:none}.nav-head{font-family:var(--mono);font-size:10px;color:var(--dimmer);letter-spacing:1px;padding:10px 8px 8px}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 9px;border-radius:6px;color:#9aa3ad;font-size:13px;cursor:pointer}.nav-item:hover{background:#11161c}.nav-item.active{background:#161b22;color:var(--amber);font-weight:600;border:1px solid var(--border-2)}.nav-item.active .nav-mark{background:var(--amber)}.nav-mark{width:6px;height:6px;border-radius:1px;background:transparent}.nav-badge{font-family:var(--mono);font-size:11px;color:var(--dim)}.nav-badge.blue{background:#1f2630;border-radius:4px;padding:1px 5px;color:var(--blue)}.nav-badge.red{background:#3a1d1d;border-radius:4px;padding:1px 5px;color:var(--red)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.panel-head{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border)}.panel-title{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.5px}.panel-note{font-family:var(--mono);font-size:11px;color:var(--dim);margin-left:auto}.panel-body{padding:12px 14px}.panel-body.flush{padding:0}.card{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px}.kpi-label{font-family:var(--mono);font-size:10px;letter-spacing:.5px;color:var(--dim)}.kpi-value{font-family:var(--mono);font-size:26px;font-weight:700;color:var(--bright);margin-top:6px}.kpi-sub{font-size:11px;margin-top:2px;color:var(--dim)}.grid{display:grid;gap:10px}.row5{grid-template-columns:repeat(5,1fr)}.row4{grid-template-columns:repeat(4,1fr)}.two-col{display:grid;grid-template-columns:1.55fr 1fr;gap:14px}.trow{display:grid;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}.thead{padding:8px 14px;font-family:var(--mono);font-size:10px;color:var(--dimmer);letter-spacing:.5px;border-bottom:1px solid #1a1f26}.thead span,.trow>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-name{font-size:12px;color:var(--bright)}.cell-mono{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.dim{color:var(--dim)}.status-live{color:var(--green)}.status-lock{color:var(--blue)}.status-flag{color:var(--red)}.row-flag{background:#150f0f}.att{padding:10px 14px;border-bottom:1px solid var(--line)}.att.high{border-left:2px solid var(--red)}.att.med{border-left:2px solid var(--amber)}.att-kind{font-family:var(--mono);font-size:10px}.att-sev{font-family:var(--mono);font-size:10px;margin-left:auto}.att-body{font-size:12px;color:var(--text);margin-top:4px}.meter{height:5px;background:#1a1f26;border-radius:3px;margin-top:6px;overflow:hidden}.meter>span{display:block;height:100%}.future{font-family:var(--mono);font-size:9px;letter-spacing:.5px;color:var(--amber);border:1px dashed #4a3a18;background:#1c1709;border-radius:4px;padding:1px 5px;margin-left:8px}.kvrow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.kvrow span:first-child{font-size:12px;color:#9aa3ad}.kvrow span:last-child{font-family:var(--mono);font-size:13px;color:var(--bright)}.stack{display:flex;flex-direction:column;gap:14px}.empty{padding:28px 14px;text-align:center;color:var(--dim);font-size:12px}.loading{padding:40px;text-align:center;color:var(--dim);font-family:var(--mono);font-size:12px}.section-title{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.5px;margin:2px 0 12px}@media (max-width: 900px){.row5{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:1fr}}@media (max-width: 720px){.menu-btn{display:inline-flex}.topbar{padding:0 12px}.topbar-phase,.pill{display:none}.brand{font-size:13px;letter-spacing:.2px;white-space:nowrap}.main{padding:12px}.nav{position:fixed;top:54px;left:0;bottom:0;z-index:40;width:232px;max-width:82vw;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 16px #00000080}.nav.open{transform:translate(0)}.nav-backdrop{display:block;position:fixed;top:54px;right:0;bottom:0;left:0;z-index:30;background:#0000008c}.row5,.row4{grid-template-columns:repeat(2,1fr)}.panel-body.flush{overflow-x:auto;-webkit-overflow-scrolling:touch}.panel-body.flush .thead,.panel-body.flush .trow{min-width:540px}}@media (max-width: 440px){.row5,.row4{grid-template-columns:1fr 1fr}.kpi-value{font-size:22px}.op-avatar{display:none!important}}
