:root{--bg: #0e1116;--surface: #161b22;--surface-2: #1c222c;--border: #2a3340;--text: #e8edf4;--text-dim: #8b97a6;--accent: #4da3ff;--accent-strong: #2f7ad1;--danger: #d97a7a;--ok: #6ed6a0;--plot-top: 12px;--plot-right: 16px;--plot-bottom: 28px;--plot-left: 52px;color:var(--text);background:var(--bg);font-family:IBM Plex Sans,ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.45;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100dvh;overflow:hidden}body{background:var(--bg);overscroll-behavior:none}button,input,select{font:inherit}.lab{height:100dvh;overflow:hidden;display:flex;flex-direction:column;gap:.7rem;padding:.75rem 1rem}.topbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-shrink:0}.brand{display:flex;align-items:center;gap:.75rem;min-width:0}.brand h1{margin:0;font-size:1.2rem;font-weight:620;letter-spacing:-.02em;white-space:nowrap}.lab-nav{display:flex;gap:.35rem}.lab-nav a{display:inline-flex;align-items:center;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.35rem .8rem;text-decoration:none;font-size:.92rem}.lab-nav a:hover{border-color:var(--accent)}.lab-nav a.active{background:var(--accent-strong);border-color:transparent;color:var(--text)}.session{display:flex;gap:.65rem;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.field input,.field select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.35rem .55rem;min-width:8.5rem;font-size:.92rem;letter-spacing:normal;text-transform:none}.field input:focus,.field select:focus{outline:2px solid rgb(77 163 255 / .35);border-color:var(--accent)}.range-bar,.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem .75rem}.range-bar{flex-shrink:0}.range-bar-row{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap}.range-bar-row>.primary{margin-left:auto}.range-fields{display:flex;flex-wrap:wrap;gap:.55rem .75rem;align-items:end}.range-dash{color:var(--text-dim);padding-bottom:.4rem;font-size:1.1rem}.range-echo{margin:.45rem 0 0;color:var(--text);font-size:.9rem}.range-echo strong{font-weight:600}.tz-hint{color:var(--text-dim);font-weight:400}.banner{margin:0;flex-shrink:0;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text-dim)}.preview-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.saved-page{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.75rem}.saved-filters{display:flex;flex-wrap:wrap;gap:.65rem .85rem;flex-shrink:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;flex-shrink:0;margin-bottom:.45rem}.panel h2{margin:0;font-size:1rem;font-weight:600}.clip-actions{position:relative;z-index:1;display:flex;align-items:center;gap:.1rem;margin-left:auto;flex-shrink:0}.lab button.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:transparent;border-color:transparent;color:#c5d0dc;border-radius:6px}.lab button.icon-btn svg{width:1.05rem;height:1.05rem;display:block}.lab button.icon-btn:hover:not(:disabled),.lab button.icon-btn:focus-visible:not(:disabled){background:var(--surface-2);border-color:transparent;color:var(--text)}.lab button.icon-btn.danger:hover:not(:disabled),.lab button.icon-btn.danger:focus-visible:not(:disabled){color:var(--danger);background:#d97a7a1f;border-color:transparent}.lab button.icon-btn[data-tip]:after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 6px);padding:.2rem .45rem;border-radius:6px;background:#0b0e13;border:1px solid var(--border);color:var(--text);font-size:.72rem;letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease;z-index:5}.lab button.icon-btn[data-tip]:hover:after,.lab button.icon-btn[data-tip]:focus:after,.lab button.icon-btn[data-tip]:focus-visible:after{opacity:1;transform:none}.lab button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .8rem;cursor:pointer}.lab button:hover:not(:disabled){border-color:var(--accent)}.lab button:disabled{opacity:.4;cursor:not-allowed}.lab button.primary{background:var(--accent-strong);border-color:transparent}.lab button.primary:hover:not(:disabled){background:var(--accent)}.lab button.danger:hover:not(:disabled){border-color:var(--danger);color:#f0c4c4}.chart-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin-bottom:.35rem;flex-shrink:0;color:var(--text-dim);font-size:.85rem}.legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-item i,.readout-sensor i{width:.65rem;height:.65rem;border-radius:999px;display:inline-block}.legend-help{margin-left:auto;display:inline-flex;gap:.75rem;color:var(--text-dim)}.legend-help kbd{font:inherit;font-size:.78rem;letter-spacing:.02em;padding:.05rem .35rem;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--text)}.chart{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:#11161d;border:1px solid var(--border);border-radius:10px;-webkit-user-select:none;user-select:none;touch-action:none}.chart,.chart *{cursor:crosshair!important}.chart.is-pan,.chart.is-pan *{cursor:grab!important}.chart.is-panning,.chart.is-panning *{cursor:grabbing!important}.chart-yticks{position:absolute;top:var(--plot-top);bottom:var(--plot-bottom);left:0;width:var(--plot-left);z-index:1;pointer-events:none}.chart-ytick{position:absolute;right:6px;transform:translateY(-50%);color:#8b97a6;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-yunit{position:absolute;top:50%;left:2px;transform:translateY(-50%) rotate(-90deg);color:#8b97a6;font-size:12px}.chart-clip{position:absolute;top:var(--plot-top);right:var(--plot-right);bottom:var(--plot-bottom);left:var(--plot-left);overflow:hidden;z-index:0}.chart-plot{width:100%;height:100%;pointer-events:none;transform-origin:0 50%;will-change:transform}.chart-plot path{vector-effect:non-scaling-stroke}.chart-xticks{position:absolute;left:var(--plot-left);right:var(--plot-right);bottom:0;height:var(--plot-bottom);z-index:1;pointer-events:none}.chart-xticks span{position:absolute;top:6px;color:#8b97a6;font-size:12px;white-space:nowrap}.chart-brush{display:none;position:absolute;z-index:3;background:#4da3ff29;border-left:1px solid var(--accent);border-right:1px solid var(--accent);pointer-events:none}.panel-note{color:var(--text-dim);font-size:.85rem}.range-echo .link{margin-left:.6rem;padding:0;border:0;background:none;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}.chart-shield{display:none;position:absolute;inset:0;z-index:2}.chart-readout{flex-shrink:0;display:flex;flex-wrap:wrap;gap:.45rem 1rem;margin-top:.4rem;min-height:1.35rem;color:var(--text-dim);font-size:.85rem}.chart-readout [data-clock]{color:var(--text);font-variant-numeric:tabular-nums}.readout-sensor{display:inline-flex;align-items:center;gap:.35rem}.readout-sensor em{font-style:normal;color:var(--text);font-variant-numeric:tabular-nums}.empty,.muted{color:var(--text-dim)}.empty{margin:.4rem 0 0}.error{color:#f0a8a8;margin:.35rem 0 0;flex-shrink:0}.save-row{display:flex;flex-wrap:wrap;gap:.55rem .75rem;align-items:end;flex-shrink:0;margin-top:.55rem;padding-top:.55rem;border-top:1px solid var(--border)}.save-row .grow{flex:1 1 14rem}.clip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.clip{position:relative;display:flex;align-items:center;gap:.85rem;padding:.6rem .35rem;border-bottom:1px solid var(--border);cursor:pointer}.clip.is-editing{cursor:default}.clip-hit{position:absolute;inset:0;z-index:0}.clip:hover{background:#ffffff06}.clip:first-child{border-top:1px solid var(--border)}.clip-body{position:relative;z-index:1;min-width:0;flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .7rem;pointer-events:none}.clip strong{font-weight:600}.clip-range{color:var(--text-dim);font-size:.85rem}.clip-tags{display:flex;flex-wrap:wrap;gap:.3rem}.clip-tags em{font-style:normal;font-size:.72rem;letter-spacing:.03em;padding:.1rem .45rem;border-radius:999px;background:#243044;color:#c5d4e8}.clip-edit{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.4rem;flex:1 1 auto;min-width:0}.clip-edit input{flex:1 1 8rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem}
