:root{--surface:#fcfcfb;--plane:#f9f9f7;--ink:#0b0b0b;--ink2:#52514e;--muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--border:#0b0b0b1f;--marker:#0b0b0b;--accent:#2a78d6;--sel:#2a78d61a}@media (prefers-color-scheme:dark){:root{--surface:#1a1a19;--plane:#0d0d0d;--ink:#fff;--ink2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:#ffffff1f;--marker:#fff;--accent:#3987e5;--sel:#3987e529}}:root[data-theme=light]{--surface:#fcfcfb;--plane:#f9f9f7;--ink:#0b0b0b;--ink2:#52514e;--muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--border:#0b0b0b1f;--marker:#0b0b0b;--accent:#2a78d6;--sel:#2a78d61a}:root[data-theme=dark]{--surface:#1a1a19;--plane:#0d0d0d;--ink:#fff;--ink2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:#ffffff1f;--marker:#fff;--accent:#3987e5;--sel:#3987e529}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--plane);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.loading{height:100%;color:var(--ink2);place-items:center;font-size:15px;display:grid}.loading.err{color:#d03b3b;text-align:center;padding:24px}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.brand{color:var(--ink2);letter-spacing:.2px;font-size:15px}.brand strong{color:var(--ink);margin-right:6px;font-weight:700}.brand .date{border:1px solid var(--border);color:var(--ink2);font-variant-numeric:tabular-nums;border-radius:6px;margin-left:10px;padding:2px 8px}.topctl{align-items:center;gap:12px;display:flex}.field{color:var(--ink2);align-items:center;gap:6px;font-size:12px;display:flex}.field select{background:var(--surface);color:var(--ink);border:1px solid var(--border);font:inherit;border-radius:6px;padding:4px 6px}.seg{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--ink2);font:inherit;cursor:pointer;text-transform:capitalize;border:0;padding:5px 10px}.seg button+button{border-left:1px solid var(--border)}.seg button.active{background:var(--accent);color:#fff}.timebar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:10px 16px;display:flex}.play{border:1px solid var(--border);background:var(--accent);color:#fff;cursor:pointer;border-radius:50%;flex:none;width:40px;height:40px;font-size:13px}.clock{flex:none;align-items:baseline;gap:6px;min-width:190px;display:flex}.clock-time{font-variant-numeric:tabular-nums;letter-spacing:.5px;font-size:26px;font-weight:600}.clock-utc{color:var(--muted);font-size:11px}.scrub{accent-color:var(--accent);flex:1;height:4px}.speeds{flex:none;gap:4px;display:inline-flex}.speeds button{background:var(--surface);color:var(--ink2);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:6px;padding:5px 8px}.speeds button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.grid{flex:1;grid-template-columns:minmax(0,1fr) 468px;align-items:start;gap:14px;padding:14px 16px;display:grid}.col-main{flex-direction:column;gap:14px;min-width:0;display:flex}@media (width<=1040px){.grid{grid-template-columns:1fr}}.bidgrid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;display:grid}.empty-note{color:var(--muted);text-align:center;padding:28px}.statrow{gap:8px;margin-top:10px;display:flex}.stat{background:var(--plane);border:1px solid var(--border);border-radius:6px;flex:1;min-width:0;padding:5px 8px}.stat-label{color:var(--muted);white-space:nowrap;font-size:10px;display:block}.stat-val{font-variant-numeric:tabular-nums;color:var(--ink2);font-size:15px}.stat-val.strong{color:var(--ink);font-weight:700}.stat-caption{color:var(--muted);margin-top:6px;font-size:10px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.panel-head h2{color:var(--ink);margin:0;font-size:13px;font-weight:600}.hint{color:var(--muted);font-size:11px}.legend{color:var(--ink2);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.legend-item{align-items:center;gap:5px;display:inline-flex}.legend-sw{border-radius:2px;width:10px;height:10px;display:inline-block}.legend-item b{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:2px}.legend-dash{border-top:1.5px dashed var(--muted);width:14px;height:0;display:inline-block}.uchart{width:100%;height:300px;position:relative}.svg-host{width:100%;height:600px;position:relative}.svg-host.empty{color:var(--muted);place-items:center;font-size:13px;display:grid}.u-timemarker{background:var(--marker);opacity:.55;pointer-events:none;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.u-tooltip,.svg-tt{pointer-events:none;z-index:10;background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:7px;padding:6px 8px;font-size:11px;position:absolute;box-shadow:0 4px 14px #00000024}.svg-tt{position:static}.tt-time{color:var(--muted);margin-bottom:3px}.tt-row,.svg-tt div{white-space:nowrap;align-items:center;gap:6px;display:flex}.tt-row b{font-variant-numeric:tabular-nums;margin-left:auto}.tt-sw{border-radius:2px;flex:none;width:9px;height:9px;display:inline-block}.table-panel{position:sticky;top:14px}.table-scroll{max-height:calc(100vh - 190px);overflow:auto}.ztable{border-collapse:collapse;width:100%;font-size:12px}.ztable thead th{background:var(--surface);text-align:left;color:var(--muted);border-bottom:1px solid var(--border);z-index:1;padding:6px 8px;font-weight:500;position:sticky;top:0}.ztable th.num,.ztable td.num{text-align:right;font-variant-numeric:tabular-nums}.ztable td{border-bottom:1px solid var(--grid);padding:4px 8px}.ztable tbody tr{cursor:pointer}.ztable tbody tr:hover,.ztable tbody tr.sel{background:var(--sel)}.th-zone{white-space:nowrap;align-items:center;gap:7px;display:flex}.dot{border:1px solid var(--border);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.cell-div{min-width:104px}.cell-num{text-align:right;font-variant-numeric:tabular-nums;width:38px;color:var(--ink2);margin-right:6px;display:inline-block}.bar-track{vertical-align:middle;width:calc(100% - 48px);height:12px;display:inline-block;position:relative}.bar-mid{background:var(--baseline);width:1px;position:absolute;top:0;bottom:0;left:50%}.bar-fill{border-radius:2px;height:8px;position:absolute;top:2px}
