.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{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;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.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{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;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-app: #eef2f4;--bg-panel: rgba(255, 255, 255, .92);--bg-panel-strong: #ffffff;--bg-topbar: linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(246, 249, 251, .96) 100%);--border-subtle: rgba(96, 115, 129, .18);--border-strong: rgba(73, 93, 108, .28);--text-strong: #17242c;--text-muted: #5d707d;--text-soft: #7b8c98;--accent: #2868e6;--accent-soft: rgba(40, 104, 230, .1);--event-band: rgba(232, 129, 48, .14);--threshold: #ef6d35;--shadow-panel: 0 10px 24px rgba(25, 38, 49, .05);--radius-lg: 16px;--radius-md: 12px;--radius-sm: 9px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Aptos,Segoe UI Variable Text,Segoe UI,sans-serif;background:linear-gradient(180deg,#f8fafb,#eef2f4);color:var(--text-strong)}body{min-height:100vh;line-height:1.35}button,select,input{font:inherit}button,select{min-height:34px}button{border:1px solid var(--border-subtle);background:var(--bg-panel-strong);color:var(--text-strong);border-radius:999px;padding:6px 11px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}button:hover:not(:disabled){border-color:var(--border-strong);background:#f7fafc}button:disabled{cursor:not-allowed;opacity:.5}select{border:1px solid var(--border-subtle);background:var(--bg-panel-strong);color:var(--text-strong);border-radius:999px;padding:6px 11px}input[type=checkbox]{inline-size:14px;block-size:14px;margin:1px 0 0;accent-color:var(--accent)}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr;gap:8px;padding:10px}.app-shell.topbar-hidden{grid-template-rows:1fr;gap:0;padding-top:6px}.app-topbar{grid-row:1;z-index:20}.app-body{position:relative;min-width:0}.app-main{min-width:0}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#121c2414;border:0;border-radius:0;padding:0}.sidebar-backdrop:hover:not(:disabled){background:#121c2414;border:0}.app-sidebar{position:absolute;top:0;left:44px;width:min(264px,calc(100vw - 64px));z-index:40;opacity:0;pointer-events:none;transform:translate3d(0,-6px,0);transition:opacity .14s ease,transform .14s ease}.app-sidebar.open{opacity:1;pointer-events:auto;transform:translateZ(0)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--bg-topbar);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.topbar-main{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar h1{margin:0;font-size:1rem;line-height:1.1;font-weight:650;white-space:nowrap}.topbar-meta{display:flex;flex-wrap:wrap;gap:5px}.topbar-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid rgba(96,115,129,.14);border-radius:999px;background:#ffffffc7;color:var(--text-muted);font-size:.74rem;white-space:nowrap}.topbar-chip-range{color:var(--text-strong);font-weight:600}.topbar-chip-status{font-weight:600}.status-ready{color:#1b6b47;background:#1fa75e14;border-color:#1fa75e29}.status-loading{color:#795400;background:#e7ad2c1f;border-color:#e7ad2c33}.status-error{color:#9d2b2b;background:#dc4f4f1a;border-color:#dc4f4f33}.topbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.topbar-toggle{min-height:30px;padding-inline:10px;font-size:.8rem}.controls-toggle{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 14px;border-color:#2f6bff6b;background:linear-gradient(180deg,#fff,#eef4ff);color:var(--accent);font-weight:700;box-shadow:0 8px 18px #2f6bff24,0 0 0 3px #2f6bff14}.controls-toggle:after{content:"";position:absolute;top:6px;right:8px;width:6px;height:6px;border-radius:999px;background:#ef6d35;box-shadow:0 0 0 3px #ef6d3524}.controls-toggle:hover:not(:disabled){border-color:var(--accent);background:linear-gradient(180deg,#fff,#e4edff);box-shadow:0 10px 22px #2f6bff2e,0 0 0 4px #2f6bff1a}.controls-toggle-icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#2f6bff1f;font-size:.9rem;line-height:1}.topbar-toggle.active,.controls-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 9px 20px #2f6bff3d}.controls-toggle.active:after{display:none}.controls-toggle.active .controls-toggle-icon{background:#ffffff2e}.controls-edge-bar{position:fixed;top:50%;left:0;z-index:85;display:inline-flex;align-items:center;transform:translateY(-50%)}.controls-edge-tab{display:grid;place-items:center;min-width:20px;min-height:150px;padding:14px 1px;border:1px solid rgba(47,107,255,.32);border-left:0;border-radius:0 999px 999px 0;background:linear-gradient(180deg,#fff,#eef4ff);box-shadow:8px 0 22px #121c241a,0 0 0 3px #2f6bff14;color:var(--accent);font-size:.68rem;font-weight:850;letter-spacing:.08em;line-height:1;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controls-edge-tab:hover:not(:disabled),.controls-edge-tab:focus-visible,.controls-edge-tab.active{border-color:var(--accent);background:var(--accent);box-shadow:10px 0 28px #2f6bff38,0 0 0 4px #2f6bff1f;color:#fff}.controls-edge-tab span{writing-mode:vertical-rl;transform:rotate(180deg)}.instructions-toggle{min-height:36px;padding:7px 13px;color:#315064;font-weight:700}.instructions-toggle.active{background:#315064;border-color:#315064}.header-hide-toggle{min-height:36px;padding:7px 12px;color:#4b6474;font-weight:700}.header-hide-toggle:hover:not(:disabled){border-color:#2f6bff47;background:#2f6bff0f;color:var(--accent)}.instructions-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:start center;padding:78px 14px 14px}.instructions-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-radius:0;background:#121c242e}.instructions-backdrop:hover:not(:disabled){border:0;background:#121c242e}.instructions-dialog{position:relative;width:min(720px,100%);max-height:calc(100vh - 96px);overflow:auto;padding:16px;border:1px solid rgba(96,115,129,.2);border-radius:22px;background:radial-gradient(circle at top left,rgba(47,107,255,.12),transparent 34%),linear-gradient(180deg,#fffffffa,#f6f9fbfa);box-shadow:0 24px 70px #121c2438,0 1px #ffffffd9 inset}.instructions-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.instructions-kicker{margin:0 0 2px;color:var(--accent);font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.instructions-header h2{margin:0;font-size:1.25rem;line-height:1.1}.instructions-close{min-height:30px;padding:5px 10px;color:var(--accent);font-size:.78rem;font-weight:700}.instructions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.instructions-grid article{padding:12px;border:1px solid rgba(96,115,129,.14);border-radius:16px;background:#ffffffb8}.instructions-grid h3{margin:0 0 5px;font-size:.88rem}.instructions-grid p{margin:0;color:var(--text-muted);font-size:.8rem}.panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.sidebar-panel{overflow:hidden;max-height:min(78vh,760px)}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 0}.panel-header h2{margin:0;font-size:.9rem;font-weight:650}.panel-header p{margin:0;font-size:.74rem;color:var(--text-muted)}.panel-header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:1;flex-wrap:wrap}.chrome-toggle-button{min-height:28px;padding:4px 10px;color:#4b6474;font-size:.74rem;font-weight:750}.focus-bar-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:4px 10px;color:#4b6474;font-size:.74rem;font-weight:750;white-space:nowrap}.focus-bar-icon{flex:0 0 auto;font-size:.9rem;line-height:1}.chrome-toggle-button:hover:not(:disabled),.focus-bar-button:hover:not(:disabled){border-color:#2f6bff47;background:#2f6bff12;color:var(--accent)}.chart-zoom-controls{display:inline-flex;align-items:center;gap:4px}.timeline-density-controls{display:inline-flex;align-items:center;gap:3px;padding:2px;border:1px solid rgba(96,115,129,.14);border-radius:999px;background:#ffffffb8}.density-button{overflow:hidden;min-height:24px;max-width:72px;padding:3px 8px;border-color:transparent;background:transparent;color:var(--text-muted);font-size:.7rem;font-weight:700;white-space:nowrap;transition:max-width .14s ease,padding .14s ease,opacity .12s ease,background-color .12s ease,border-color .12s ease,color .12s ease}.timeline-density-controls:not(:hover):not(:focus-within) .density-button:not(.active){max-width:0;padding-inline:0;border-width:0;opacity:0;pointer-events:none}.density-button:hover:not(:disabled){border-color:#2f6bff3d;background:#2f6bff0f}.density-button.active{border-color:var(--accent);background:var(--accent);color:#fff}.chart-reset-button,.chart-zoom-button{min-height:28px;font-size:.74rem;color:var(--accent)}.chart-reset-button{padding:4px 10px}.chart-zoom-button{width:28px;padding:0;font-size:1rem;font-weight:700;line-height:1}.panel-body{padding:8px 10px 10px}.control-group+.control-group{margin-top:12px}.section-label{margin-bottom:6px;color:var(--text-muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.preset-bar{display:flex;flex-wrap:wrap;gap:6px}.preset-button{padding:5px 10px;font-size:.8rem}.preset-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.signal-list{display:grid;gap:6px;max-height:min(44vh,420px);overflow:auto;padding-right:2px}.signal-row,.toggle-row{display:flex;gap:8px;align-items:flex-start;padding:7px 9px;border-radius:var(--radius-sm);background:#ffffffb8;border:1px solid rgba(96,115,129,.12)}.signal-row strong{display:block;font-size:.84rem;line-height:1.15}.signal-row small{display:block;margin-top:2px;color:var(--text-muted);font-size:.72rem}.signal-row .signal-plot-title{color:var(--text-strong);font-weight:650}.date-navigator{display:flex;gap:5px;align-items:center}.date-navigator button{min-width:30px;width:30px;min-height:30px;padding:0;font-size:.9rem;line-height:1}.date-navigator select{min-width:112px;max-width:124px;min-height:30px;padding-inline:10px 28px;font-size:.8rem}.workspace{position:relative;display:flex;flex-direction:column;gap:8px}.workspace-focus-bar{position:fixed;top:0;left:50%;z-index:80;display:inline-flex;justify-content:center;transform:translate(-50%)}.focus-bar-tab{display:grid;place-items:center;min-width:92px;min-height:20px;padding:2px 12px 3px;border:1px solid rgba(47,107,255,.32);border-top:0;border-radius:0 0 999px 999px;background:linear-gradient(90deg,#fff,#eef4ff);box-shadow:0 8px 22px #121c241a,0 0 0 3px #2f6bff14;color:var(--accent);font-size:.64rem;font-weight:850;letter-spacing:.08em;line-height:1;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.focus-bar-menu{position:absolute;top:100%;left:50%;display:inline-flex;gap:5px;padding:4px;border:1px solid rgba(96,115,129,.16);border-radius:999px;background:#fffffff0;box-shadow:0 10px 28px #121c2424;opacity:0;pointer-events:none;transform:translate(-50%,-8px) scale(.96);transform-origin:top center;transition:opacity .12s ease,transform .12s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.workspace-focus-bar:hover .focus-bar-menu,.workspace-focus-bar:focus-within .focus-bar-menu{opacity:1;pointer-events:auto;transform:translate(-50%) scale(1)}.workspace-focus-bar:hover .focus-bar-tab,.workspace-focus-bar:focus-within .focus-bar-tab{border-color:var(--accent);background:var(--accent);box-shadow:0 10px 28px #2f6bff38,0 0 0 4px #2f6bff1f;color:#fff}.chart-panel{overflow:hidden}.chart-panel .panel-header{padding-bottom:4px}.chart-panel-header-hidden .timeline-body{padding-top:6px}.door-event-notice{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 12px;color:var(--text-muted);font-size:.8rem}.door-event-unavailable{color:#854a10;background:#fff7e8;border-block:1px solid #e8cda8}.door-event-notice button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.timeline-body{position:relative;padding:0 6px 6px}.timeline-body.loading .uplot-stacked-timeline{opacity:.55}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at center,rgba(47,107,255,.16),rgba(248,250,251,.66) 34%,rgba(238,242,244,.28) 56%,transparent 76%)}.loading-card{display:inline-flex;align-items:center;gap:14px;padding:18px 24px;border:2px solid rgba(47,107,255,.34);border-radius:999px;background:#fffffff7;box-shadow:0 0 0 8px #2f6bff14,0 26px 72px #121c2447,var(--shadow-panel);color:var(--text-strong);font-size:1.02rem;font-weight:800;letter-spacing:.01em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.timeline-error{min-height:280px;display:grid;place-items:center;padding:32px}.timeline-error-card{max-width:520px;padding:24px;border:1px solid rgba(190,52,52,.28);border-radius:12px;background:#fff;box-shadow:var(--shadow-panel);text-align:center}.timeline-error-card strong{color:#8f2525;font-size:1.05rem}.timeline-error-card p{margin:10px 0 18px;color:var(--text-muted)}.timeline-error-card button{padding:8px 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.chart-error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.loading-spinner{width:26px;height:26px;border:3px solid rgba(47,107,255,.18);border-top-color:var(--accent);border-radius:999px;animation:loading-spin .7s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}}.uplot-empty{display:grid;place-items:center;width:100%;min-height:280px;color:#678;font-size:.88rem}.uplot-stacked-timeline{display:flex;flex-direction:column;gap:8px;width:100%;min-width:0;padding:8px 4px 4px}.uplot-panel-stack{display:grid;gap:8px;min-width:0}.uplot-signal-panel{position:relative;overflow:hidden;min-width:0;border:1px solid transparent;border-radius:8px;background:#eef6fd}.uplot-panel-title{position:absolute;top:3px;left:52px;right:14px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none;color:#21323d;font-size:.68rem;font-weight:700;opacity:0;transition:opacity .1s ease}.uplot-signal-panel.title-visible .uplot-panel-title{opacity:1}.uplot-chart-host,.uplot-chart-host .uplot,.uplot-chart-host .u-wrap{width:100%;height:100%}.uplot-chart-host .uplot{background:transparent}.uplot-chart-host .u-over{cursor:grab}.uplot-chart-host .u-over.panning{cursor:grabbing}.uplot-tooltip{position:absolute;z-index:4;max-width:min(260px,calc(100% - 16px));padding:7px 9px;border-radius:10px;background:#0f1a21f0;color:#f5f8fb;box-shadow:0 10px 24px #121c2438;font-size:.72rem;line-height:1.35;white-space:pre-line;opacity:0;pointer-events:none;transition:opacity 80ms ease}.uplot-tooltip.visible{opacity:1}.uplot-range-slider{display:grid;grid-template-columns:minmax(46px,auto) minmax(120px,1fr) minmax(46px,auto);align-items:center;gap:8px;min-height:24px;color:var(--text-soft);font-size:.68rem;font-weight:700}.uplot-range-label{white-space:nowrap}.uplot-range-label.end{text-align:right}.uplot-range-rail{position:relative;height:16px;border:1px solid #d6dfe6;border-radius:999px;background:linear-gradient(90deg,#60738114,#6073810a),#ffffffc7;cursor:pointer;touch-action:none}.uplot-range-rail:focus-visible{outline:2px solid rgba(47,107,255,.36);outline-offset:2px}.uplot-range-window{position:absolute;top:2px;bottom:2px;min-width:8px;border-radius:999px;background:#2f6bff29;cursor:grab}.uplot-range-window:active{cursor:grabbing}.uplot-range-grip{position:absolute;inset:2px calc(50% - 13px);border-radius:999px;background:repeating-linear-gradient(90deg,rgba(47,107,255,.18) 0 2px,transparent 2px 5px)}.uplot-range-handle{position:absolute;top:50%;width:10px;height:18px;border:1px solid rgba(47,107,255,.42);border-radius:999px;background:#fff;box-shadow:0 4px 10px #2f6bff29;cursor:ew-resize;transform:translate(-50%,-50%)}@media(max-width:980px){.topbar{flex-direction:column;align-items:stretch}.topbar-actions{width:100%;justify-content:space-between}}@media(max-width:720px){.app-shell{padding:8px;gap:8px}.topbar-actions{flex-wrap:wrap}.topbar-main{align-items:flex-start}.date-navigator{width:100%}.date-navigator select{min-width:0;flex:1}.topbar-meta{gap:4px}.topbar-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}}
