@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;700&display=swap";html,body,#root{width:100%;min-height:100%}:root{--bg: #061018;--panel: #0d1c2a;--panel-alt: #10283b;--text: #e7f6ff;--muted: #8fb2c5;--line: #1f3b4f;--accent: #39d2ff;--accent-2: #ffd166;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 20% 10%,#153450 0,transparent 35%),radial-gradient(circle at 80% 0%,#12303f 0,transparent 40%),linear-gradient(170deg,#041019,#081821 55%,#041019);overflow:hidden}.app-shell{padding:1rem;max-width:1700px;margin:0 auto;display:flex;flex-direction:column;gap:.9rem;height:100vh;position:relative;overflow:hidden}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.topbar h1{margin:0;letter-spacing:.02em;font-size:clamp(1.2rem,2vw,1.7rem)}.topbar p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}.file-controls{display:flex;gap:.5rem}.import-errors{border:1px solid #5b2a2a;background:#3c141499;border-radius:10px;padding:.6rem .8rem}.import-errors-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.import-errors strong{color:#ffd7d7}.import-errors ul{margin:.4rem 0 0;padding-left:1rem}.import-errors li{color:#ffd0d0;font-size:.85rem}input[type=file]{display:none}.btn,.link,input,select,button{border:1px solid var(--line);background:var(--panel-alt);color:var(--text);border-radius:8px;padding:.4rem .7rem;font-size:.9rem}.btn{cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.btn:hover:not(:disabled){border-color:#3c6a83;background:#17354a}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn.muted{background:#213445}.link{background:transparent;color:var(--accent);border:none;padding:0;cursor:pointer}.window-drop-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;pointer-events:none;background:#030b118c;border:3px dashed rgba(57,210,255,.45)}.window-drop-overlay-card{border:1px solid #2f596e;border-radius:12px;background:#081621f2;color:#d9f5ff;padding:1rem 1.2rem;font-size:1rem;font-weight:600}.empty-workspace{flex:1;min-height:calc(100vh - 140px);border:1px dashed #2a4d64;border-radius:12px;display:grid;place-items:center;background:radial-gradient(circle at 16% 10%,rgba(86,207,225,.1) 0,transparent 28%),radial-gradient(circle at 84% 0%,rgba(255,209,102,.08) 0,transparent 36%),#0915219e}.empty-workspace-card{width:min(760px,92%);text-align:center;border:1px solid #234155;border-radius:14px;padding:2rem 1.6rem;background:#07121be6}.empty-workspace-card h2{margin:0 0 .5rem}.empty-workspace-card p{margin:.35rem 0;color:var(--muted)}.empty-sample-button{margin-top:1rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .9rem;padding:.65rem;border:1px solid var(--line);border-radius:10px;background:#0d1c2ab8}.toolbar label{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;color:var(--muted)}.layout{display:grid;grid-template-columns:280px minmax(560px,1fr) 360px;gap:.8rem;flex:1;min-height:0}.panel{background:#0d1c2ad1;border:1px solid var(--line);border-radius:12px;padding:.75rem}.files{min-height:0;overflow:auto}.file-row{padding:.45rem 0;border-bottom:1px solid #173145;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.file-row.active{background:#39d2ff14;box-shadow:inset 3px 0 var(--accent)}.file-row label{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.center{min-height:0;display:flex;flex-direction:column;gap:.6rem;overflow:hidden}.plot-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.plot-header p{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}.plot-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}.reset-view-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:34px;padding:.45rem .75rem;border-color:#31566c;background:linear-gradient(180deg,#203b4d,#172e3e);color:#dff5ff;font-weight:600;box-shadow:inset 0 1px #ffffff0d,0 4px 12px #0000002e}.reset-view-button:hover:not(:disabled){border-color:var(--accent);background:linear-gradient(180deg,#26495e,#1a3547)}.reset-view-icon{display:block;flex:0 0 16px;width:16px;height:16px;color:var(--accent);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.reset-view-label{line-height:1}.cursor-readout{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.25rem .8rem;font-size:.79rem;color:#d0e9f7;font-family:IBM Plex Mono,Menlo,monospace}.waveform-canvas{width:100%;height:420px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#07121b;position:relative}.waveform-canvas canvas{display:block;width:100%;height:100%;cursor:crosshair}.waveform-canvas.is-inspecting canvas{cursor:help}.point-tooltip{position:absolute;z-index:4;width:max-content;min-width:210px;max-width:min(330px,calc(100% - 16px));padding:.55rem .65rem;border:1px solid rgba(92,151,181,.65);border-radius:8px;background:#07121bd6;box-shadow:0 8px 24px #00000059;color:#e7f6ff;font-family:IBM Plex Mono,Menlo,monospace;font-size:.75rem;line-height:1.35;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.point-tooltip-left{transform:translate(-100%)}.point-tooltip-time{padding-bottom:.35rem;margin-bottom:.3rem;border-bottom:1px solid rgba(92,151,181,.35);color:#b9dced;font-weight:600}.point-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.16rem 0}.point-tooltip-label{display:flex;min-width:0;align-items:center;gap:.4rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.point-tooltip-row strong{flex:none;font-weight:600}.point-tooltip-empty{color:var(--muted)}.axis-scroll{position:absolute;z-index:2;background:#07121be6}.axis-scroll-x{left:58px;right:24px;bottom:6px;height:16px;display:flex;align-items:center}.axis-scroll-y{top:18px;right:6px;bottom:30px;width:16px;display:flex;justify-content:center}.axis-slider{width:100%;margin:0;accent-color:#4ba3c7}.axis-slider-y{width:16px;height:100%;writing-mode:vertical-lr;direction:rtl}.trace-legend{display:flex;flex-wrap:wrap;gap:.35rem}.trace-chip{font-size:.8rem;border:1px solid var(--line);background:transparent;border-radius:999px;padding:.2rem .45rem;display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}.trace-chip:hover{color:var(--text);border-color:#3c6a83;background:#39d2ff0f}.trace-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.trace-chip.is-hidden{opacity:.48;background:#07121bb3;text-decoration:line-through}.trace-chip.is-hidden .swatch{background:transparent!important;border:2px solid currentColor}.swatch{width:10px;height:10px;border-radius:50%}.fft-panel{border:1px solid var(--line);border-radius:10px;padding:.5rem;background:#061018e6}.fft-controls{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.fft-output{margin-top:.45rem;border:1px solid #1b3a4f;border-radius:8px;background:#060f16;min-height:180px;display:flex;align-items:center;justify-content:center}.fft-output svg{width:100%;height:180px}.details{min-height:0;overflow:auto}.submenu{margin-top:.8rem;border:1px solid var(--line);border-radius:10px;background:#07121bd1}.submenu summary{list-style:none;cursor:pointer;padding:.55rem .65rem;font-size:.88rem;color:#d7edf8}.submenu summary::-webkit-details-marker{display:none}.submenu summary:before{content:"▸";display:inline-block;margin-right:.4rem;transition:transform .15s ease}.submenu[open] summary:before{transform:rotate(90deg)}.submenu-body{padding:0 .55rem .55rem}.submenu-body table:last-child{margin-bottom:0}.measurement-note{margin:0 0 .55rem;color:var(--muted);font-size:.78rem;line-height:1.4}button:focus-visible,select:focus-visible,input:focus-visible,.btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.fft-submenu .fft-panel{margin-top:0}.kv-grid{display:grid;grid-template-columns:132px 1fr;gap:.35rem .65rem;margin-bottom:.8rem;font-size:.85rem}.kv-grid>div:nth-child(odd){color:var(--muted)}h2,h3{margin:.2rem 0 .55rem}table{width:100%;border-collapse:collapse;margin-bottom:.8rem;font-size:.8rem}th,td{padding:.3rem;border-bottom:1px solid #173145;text-align:left}th{color:var(--muted);font-weight:600}.export-actions{display:flex;gap:.5rem;margin-bottom:.7rem}.export-actions input{flex:1}.muted-text{color:var(--muted)}ul{margin:.4rem 0;padding-left:1rem}@media(max-width:1200px){body{overflow:auto}.app-shell{height:auto;min-height:100vh;overflow:visible}.layout{grid-template-columns:1fr;flex:none;min-height:auto}.files,.details{max-height:none}.center{overflow:visible}.waveform-canvas{height:360px}.plot-actions{width:100%;align-items:stretch}}@media(max-width:640px){.app-shell{padding:.65rem}.topbar,.plot-header{flex-direction:column}.file-controls,.file-controls .btn{width:100%}.file-controls .btn{text-align:center}.cursor-readout{grid-template-columns:1fr 1fr}}
