:root{--bg:#060708;--panel:#0b0d10e0;--panel-solid:#0d0f11;--line:#ffffff14;--line-strong:#ffffff24;--grid:#ffffff0d;--text:#f2f4f5;--text-dim:#8b9299;--text-faint:#5a6169;--trace:#c9d4dc;--tick-on:#ffffffd9;--tick-off:#ffffff29;--hover:#ffffff12;--scrim:#06090e2e;--accent:#4da3ff;--good:#35c88a;--warn:#f5a524;--bad:#f2585b;--r:14px;--r-sm:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#eef1f4;--panel:#fcfdfeeb;--panel-solid:#fff;--line:#0a0e141a;--line-strong:#0a0e142e;--grid:#0a0e1412;--text:#12171c;--text-dim:#5b656e;--text-faint:#8d959d;--trace:#2c353d;--tick-on:#0c1218cc;--tick-off:#0c121829;--hover:#0a0e140f;--scrim:#ffffff1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-feature-settings:"ss01", "cv01";-webkit-font-smoothing:antialiased;margin:0;font-family:General Sans,Geist,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.app{width:100vw;height:100vh;position:relative}.map-root,.map-canvas{position:absolute;inset:0}.map-root:before{content:"";z-index:1;pointer-events:none;background:var(--scrim);position:absolute;inset:0}.map-root:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg, var(--bg) 0%, transparent 30%), linear-gradient(270deg, var(--bg) 0%, transparent 26%), linear-gradient(180deg, var(--bg) 0%, transparent 16%), linear-gradient(0deg, var(--bg) 0%, transparent 24%);opacity:.82;position:absolute;inset:0}.map-error{z-index:2;border-radius:var(--r-sm);background:#f2585b1f;border:1px solid #f2585b4d;padding:14px 18px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-root .gmnoprint,.map-root .gm-style-cc{opacity:.65}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);-webkit-backdrop-filter:blur(26px)saturate(150%);isolation:isolate;transform:translateZ(0)}.topbar{z-index:40;align-items:center;gap:18px;height:64px;padding:0 22px;display:flex;position:absolute;top:0;left:0;right:0}.brand{background:var(--panel);border:1px solid var(--line-strong);width:38px;height:38px;color:var(--text);border-radius:11px;flex:none;place-items:center;display:grid}.nav{align-items:center;gap:2px;display:flex}.nav button{color:var(--text-dim);letter-spacing:-.01em;border-radius:999px;padding:9px 16px;font-size:13.5px;transition:color .18s}.nav button:hover,.nav button[data-on=true]{color:var(--text)}.nav-pill{background:var(--hover);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;position:absolute;inset:0}.search{min-width:300px;height:40px;color:var(--text-faint);border-radius:999px;align-items:center;gap:10px;margin-left:auto;padding:0 16px;font-size:13px;display:flex}.theme-toggle{width:40px;height:40px;color:var(--text-dim);border-radius:999px;place-items:center;font-size:16px;display:grid}.theme-toggle:hover{color:var(--text)}.theme-toggle span{place-items:center;display:grid}.icon-btn{color:var(--text-dim)}.icon-btn:hover{color:var(--text)}.chip-count{background:var(--bad);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:grid}.rail{z-index:30;scrollbar-width:none;flex-direction:column;gap:12px;width:300px;display:flex;position:absolute;top:76px;bottom:22px;left:22px;overflow-y:auto}.rail::-webkit-scrollbar{display:none}.seg{flex:none;gap:4px;padding:4px;display:flex}.seg button{border-radius:var(--r-sm);color:var(--text-dim);white-space:nowrap;flex:1;padding:9px 6px;font-size:12.5px}.seg button[data-on=true]{background:var(--hover);color:var(--text)}.seg button:disabled{color:var(--text-faint);cursor:not-allowed}.stat-pair{flex:none;grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{justify-content:space-between;align-items:flex-start;padding:16px;display:flex}.stat .label{color:var(--text-dim);margin-top:6px;font-size:13px}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:300;line-height:1}.stat .dot{border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:grid}.dot-good{color:var(--good);background:#35c88a29}.dot-warn{color:var(--warn);background:#f5a52429}.card{flex:none;padding:16px}.card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title{letter-spacing:-.01em;font-size:14px}.card-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:10.5px}.card-note{color:var(--text-dim);margin:10px 0 6px;font-size:12.5px}.big-num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:300;line-height:1}.big-num sub{color:var(--text-dim);vertical-align:baseline;margin-left:6px;font-size:15px}.instrument-grid{flex:none;grid-template-columns:1fr 1fr;gap:12px;padding-bottom:4px;display:grid}.instrument{aspect-ratio:1/1.06;flex-direction:column;padding:14px;display:flex}.instrument .who{margin-top:2px;font-size:15px}.instrument .viz{flex:1;place-items:center;min-height:0;display:grid}.live-tag{color:var(--text-dim);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.live-tag i{background:var(--good);border-radius:50%;width:6px;height:6px}.live-tag[data-idle=true] i{background:var(--text-faint)}.i-accent{background:var(--accent)!important}.stage{z-index:20;pointer-events:none;position:absolute;top:76px;left:340px;right:340px}.stage>*{pointer-events:auto}.title{letter-spacing:-.035em;margin:0 0 22px;font-size:58px;font-weight:300;line-height:1}.selectors{gap:12px;display:flex}.selector{border-radius:999px;align-items:center;gap:10px;padding:11px 16px;font-size:13.5px;display:flex}.selector .muted{color:var(--text-faint)}.zoom-cluster{z-index:25;gap:10px;display:flex;position:absolute;bottom:300px;left:340px}.zoom-cluster button{width:44px;height:44px;color:var(--text-dim);border-radius:50%;place-items:center;font-size:17px;transition:color .16s,border-color .16s;display:grid}.zoom-cluster button:hover{color:var(--text)}.zoom-cluster button[data-on=true]{color:var(--warn);border-color:#f5a52480}.camera{width:330px;padding:20px}.slider-row{grid-template-columns:62px 1fr 48px;align-items:center;gap:12px;margin-bottom:14px;display:grid}.slider-row label{color:var(--text-dim);font-size:13px}.slider-row output{text-align:right;font-variant-numeric:tabular-nums;font-size:13px}input[type=range]{appearance:none;background:var(--line-strong);height:4px;accent-color:var(--warn);border-radius:2px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--warn);cursor:pointer;border-radius:50%;width:14px;height:14px}.coord-pair{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 16px;display:grid}.coord{border-radius:var(--r-sm);background:var(--hover);border:1px solid var(--line);padding:11px 13px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.coord span{color:var(--text-faint);margin-bottom:5px;font-size:10.5px;display:block}.btn-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn{border-radius:var(--r-sm);border:1px solid var(--line-strong);padding:12px;font-size:13.5px;transition:background .16s}.btn:hover{background:var(--hover)}.btn-primary{background:var(--warn);color:#16110a;border-color:#0000;font-weight:500}.btn-primary:hover{background:#ffb838}.alerts{z-index:30;scrollbar-width:none;flex-direction:column;width:300px;max-height:calc(100vh - 340px);padding:18px;display:flex;position:absolute;top:76px;right:22px;overflow-y:auto}.alerts::-webkit-scrollbar{display:none}.alert-group{margin-top:14px;overflow:hidden}.alert{border-radius:var(--r-sm);background:#f2585b12;border:1px solid #f2585b47;gap:11px;padding:13px;display:flex}.alert[data-sev=warn]{background:#f5a52412;border-color:#f5a52447}.alert .sev{background:var(--bad);color:#fff;border-radius:50%;flex:none;place-items:center;width:19px;height:19px;font-size:11px;font-weight:600;display:grid}.alert[data-sev=warn] .sev{background:var(--warn);color:#16110a}.alert .body{min-width:0}.alert .headline{font-size:13.5px;line-height:1.35}.alert .when{color:var(--text-faint);margin-top:3px;font-size:12px}.alert .detail{border-left:1px solid var(--line-strong);margin-top:9px;padding-left:11px}.alert .detail div{color:var(--text-dim);margin-bottom:5px;font-size:12.5px}.empty-note{color:var(--text-faint);padding:10px 0;font-size:12.5px;line-height:1.5}.empty-state{color:var(--text-faint);align-items:center;gap:10px;padding:26px 0 30px;font-size:13px;display:flex}.empty-pulse{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.deck{z-index:30;grid-template-columns:1fr 1fr;gap:12px;display:grid;position:absolute;bottom:22px;left:340px;right:22px}.deck .card{padding:18px}.offset-grid{border-collapse:collapse;width:100%;margin-top:14px}.offset-grid th{text-align:left;color:var(--text-faint);padding:0 0 9px;font-size:12px;font-weight:400}.offset-grid td{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;padding:9px 0;font-size:13px}.offset-grid td:first-child{color:var(--text-dim)}.pill{background:var(--hover);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12.5px;display:inline-flex}.pill i{background:var(--warn);border-radius:50%;width:6px;height:6px}.axis{color:var(--text-faint);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.bus-marker{background:var(--accent);cursor:pointer;border:2.5px solid #ffffffe6;border-radius:50%;place-items:center;width:30px;height:30px;animation:2.6s ease-in-out infinite bus-pulse;display:grid;position:relative;box-shadow:0 0 0 6px #4da3ff38,0 4px 14px #0009}.bus-marker[data-stale=true]{background:var(--text-faint);animation:none;box-shadow:0 0 0 5px #8b929929}@keyframes bus-pulse{0%,to{box-shadow:0 0 0 5px #4da3ff33,0 4px 14px #0000008c}50%{box-shadow:0 0 0 11px #4da3ff0f,0 4px 14px #0000008c}}.bus-label{background:var(--panel-solid);border:1px solid var(--line-strong);color:var(--text);white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:11.5px;position:absolute;top:-26px;left:50%;transform:translate(-50%)}.view{z-index:22;scrollbar-width:none;padding:22px;position:absolute;inset:76px 340px 22px;overflow-y:auto}.view::-webkit-scrollbar{display:none}.view h2{letter-spacing:-.02em;margin:0 0 4px;font-size:26px;font-weight:300}.view .sub{color:var(--text-dim);margin-bottom:20px;font-size:13px}.kpi-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.kpi{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--hover);padding:16px}.kpi .k{color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.kpi .v{font-variant-numeric:tabular-nums;margin-top:8px;font-size:28px;font-weight:300}.table-scroll{scrollbar-width:thin;max-height:46vh;overflow-y:auto}@media (width<=1500px){.rail,.alerts{width:262px}.stage,.view{left:300px;right:300px}.zoom-cluster,.deck{left:300px}.title{font-size:42px}.kpi-row{grid-template-columns:repeat(2,1fr)}}@media (width<=1100px){html,body,#root{overflow:auto}.app{flex-direction:column;gap:12px;height:auto;min-height:100vh;padding:76px 14px 14px;display:flex}.map-root{border-radius:var(--r);order:1;height:46vh;min-height:300px;position:relative;inset:auto;overflow:hidden}.map-root:after{display:none}.topbar{background:var(--bg);border-bottom:1px solid var(--line);scrollbar-width:none;gap:12px;height:60px;padding:0 14px;position:fixed;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}.search{display:none}.nav{flex:none}.stage{flex-direction:column;order:2;gap:12px;display:flex;position:static}.title{margin:0;font-size:30px}.selectors{flex-wrap:wrap}.camera{width:100%}.zoom-cluster{order:3;justify-content:center;position:static}.rail{order:4;width:auto;position:static;overflow:visible}.alerts{order:5;width:auto;max-height:none;position:static}.deck{order:6;grid-template-columns:1fr;position:static}.view{order:2;height:auto;position:static;overflow:visible}.instrument-grid{grid-template-columns:repeat(2,1fr)}.table-scroll{max-height:none;overflow-x:auto}}@media (width<=620px){.stat-pair,.instrument-grid,.kpi-row{grid-template-columns:1fr 1fr}.title{font-size:24px}.map-root{height:40vh}.nav button{padding:8px 11px;font-size:12.5px}}
