.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg:#1a1a2e;--surface:#16213e;--border:#0f3460;--text:#e0e0e0;--text-dim:#888;--accent:#0ea5e9}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}.app{flex-direction:column;height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.app-header h1{white-space:nowrap;font-size:1rem;font-weight:600}.error-banner{color:#fca5a5;background:#7f1d1d;padding:.5rem 1rem;font-size:.85rem}.loading{text-align:center;color:var(--text-dim);padding:2rem}.app-body{flex:1;display:flex;overflow:hidden}.main-panel{flex:1;padding:.5rem;overflow-y:auto}.side-panel{border-left:1px solid var(--border);background:var(--surface);width:260px;min-width:200px;padding:.5rem;overflow-y:auto}.cameras-row{gap:.5rem;height:100%;display:flex}.cameras-row .camera-viewer{flex:1;min-width:0}.camera-viewer img{object-fit:contain;background:#000;border-radius:4px;width:100%;height:100%;display:block}.camera-viewer .camera-label{color:var(--text-dim);margin-bottom:2px;font-size:.75rem}.resize-sash{cursor:ns-resize;background:var(--border);border-radius:3px;height:6px;margin:2px 0 4px;transition:background .15s}.resize-sash:hover{background:var(--accent)}.signal-section{margin-bottom:.5rem}.signal-section-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin:0 0 2px;font-size:.75rem;display:flex}.signal-section-header:hover{color:var(--text)}.collapse-arrow{font-size:.55rem;transition:transform .15s;display:inline-block;transform:rotate(0)}.collapse-arrow.open{transform:rotate(90deg)}.signal-plot-container{background:var(--surface);border:1px solid var(--border);border-radius:4px;overflow:hidden}.transport-bar{background:var(--surface);border-top:1px solid var(--border);align-items:center;gap:.5rem;padding:.4rem 1rem;display:flex}.transport-bar button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .5rem;font-size:.85rem}.transport-bar button:hover{background:var(--border)}.transport-bar .time-display{text-align:center;min-width:180px;font-family:Menlo,Consolas,monospace;font-size:.85rem}.transport-bar .scrubber{accent-color:var(--accent);flex:1}.transport-bar .speed-control{color:var(--text-dim);align-items:center;gap:.25rem;font-size:.8rem;display:flex}.transport-bar .speed-control select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.15rem;font-size:.8rem}.offset-panel h3{margin-bottom:.5rem;font-size:.8rem}.offset-panel table{border-collapse:collapse;width:100%;font-size:.8rem}.offset-panel td,.offset-panel th{text-align:left;border-bottom:1px solid var(--border);padding:.2rem .4rem}.offset-panel .offset-value{text-align:right;font-family:Menlo,Consolas,monospace}.session-selector select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;min-width:200px;padding:.3rem .5rem;font-size:.85rem}.uplot .u-wrap{background:0 0!important}.uplot .u-legend{font-size:.7rem!important}.uplot .u-legend .u-label{color:var(--text-dim)!important}
