@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}*{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)}.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}.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)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;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}.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}.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%}.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);border-radius:999px;padding:.2rem .45rem;display:inline-flex;align-items:center;gap:.35rem;color:var(--muted)}.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}.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}}
