*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #0a0a0a;--color-surface: #1a1a1a;--color-surface-hover: #252525;--color-border: #333;--color-text: #e0e0e0;--color-text-dim: #888;--color-primary: #4a9eff;--color-success: #4caf50;--color-warning: #ff9800;--color-error: #f44336;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--border-radius: 8px;--transition: all .2s ease}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}#app{display:flex;flex-direction:column;min-height:100vh}.container{max-width:none;margin:0 auto;padding:0 20px}.header{background:var(--color-surface);border-bottom:2px solid var(--color-border);padding:0;height:80px;overflow:visible}.header-content{display:flex;justify-content:space-between;align-items:center;gap:20px;height:100%;padding-left:0!important;flex-shrink:0}.brand{display:flex;align-items:center;gap:15px;height:100%}.brand-logo{height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));margin:0;padding:0;display:block}.title{font-size:1.8rem;font-weight:700;margin:0;background:linear-gradient(135deg,var(--color-primary),#7b2ff7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap}.header-controls{display:flex;align-items:center;gap:20px}.cassette-controls{display:flex;gap:8px;background:linear-gradient(180deg,#2a2a2a,#1a1a1a);padding:12px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 2px 4px #00000080,0 2px 6px #0000004d,inset 0 -1px #ffffff0d}.cassette-btn{width:45px;height:45px;border:1px solid rgba(0,0,0,.4);border-radius:4px;cursor:pointer;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .15s ease;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff1a;position:relative;font-family:monospace}.cassette-btn svg{width:32px;height:32px}.cassette-btn .btn-icon{font-size:32px;line-height:1}.cassette-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #0000004d,inset 0 1px #ffffff1a}.cassette-btn:disabled{opacity:.4;cursor:not-allowed}.stop-btn{background:linear-gradient(180deg,#3a2020,#2a1515);color:#ff6b6b;border-color:#f443364d}.stop-btn:hover:not(:disabled){background:linear-gradient(180deg,#ff6b6b,#d32f2f);color:#fff;box-shadow:0 2px 8px #f4433666,inset 0 1px #fff3}.play-btn{background:linear-gradient(180deg,#203a20,#152a15);color:#66bb6a;border-color:#4caf504d}.play-btn:hover:not(:disabled){background:linear-gradient(180deg,#66bb6a,#43a047);color:#fff;box-shadow:0 2px 8px #4caf5066,inset 0 1px #fff3}.pause-btn{background:linear-gradient(180deg,#20303a,#15202a);color:#42a5f5;border-color:#2196f34d}.pause-btn:hover:not(:disabled){background:linear-gradient(180deg,#42a5f5,#1976d2);color:#fff;box-shadow:0 2px 8px #2196f366,inset 0 1px #fff3}.play-pause-btn{background:linear-gradient(180deg,#303030,#222);color:#888;border-color:#ffffff26}.play-pause-btn:hover:not(:disabled){background:linear-gradient(180deg,#3a3a3a,#2a2a2a);color:#aaa}.play-pause-btn.is-running{background:linear-gradient(180deg,#1a4a1a,#0f2f0f);color:#66bb6a;border-color:#4caf504d}.play-pause-btn.is-running:hover:not(:disabled){background:linear-gradient(180deg,#225a22,#153a15);color:#81c784}.play-pause-btn.is-auto-paused{background:linear-gradient(180deg,#2a2a2a,#1a1a1a);color:#555;border-color:#ffffff14}.play-pause-btn.is-auto-paused:hover:not(:disabled){background:linear-gradient(180deg,#333,#252525);color:#777}.pp-icon{pointer-events:none}.play-pause-btn .pp-pause,.play-pause-btn.is-running .pp-play{display:none}.play-pause-btn.is-running .pp-pause{display:block}.auto-btn{background:linear-gradient(180deg,#303030,#222);color:#666;border-color:#ffffff1f}.auto-btn:hover{background:linear-gradient(180deg,#3a3a3a,#2a2a2a);color:#888}.auto-btn.active{background:linear-gradient(180deg,#1a3a5a,#0f2540);color:#42a5f5;border-color:#2196f34d}.auto-btn.active:hover{background:linear-gradient(180deg,#224a6a,#153050);color:#64b5f6}.auto-btn-icon{pointer-events:none;display:flex;align-items:center;justify-content:center}.btn-icon{display:flex;align-items:center;justify-content:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.audio-config-btn{background:linear-gradient(180deg,#303030,#222);color:#aaa;border-color:#ffffff26;font-size:18px}.audio-config-btn:hover:not(:disabled){color:#fff;background:linear-gradient(180deg,#444,#333);box-shadow:0 2px 8px #ffffff26,inset 0 1px #fff3}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:9000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-dialog{background:linear-gradient(180deg,#2a2a2a,#1a1a1a);border:1px solid rgba(255,255,255,.15);border-radius:12px;width:340px;max-width:90vw;box-shadow:0 8px 32px #0009}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.modal-header h3{margin:0;font-size:15px;color:#ddd;font-weight:500}.modal-close{background:none;border:none;color:#888;font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.modal-close:hover{color:#fff}.modal-body{padding:16px 20px}.modal-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-field label{color:#aaa;font-size:13px}.modal-field select{background:#1a1a1a;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:5px 8px;font-size:13px;cursor:pointer;min-width:140px}.modal-field select:focus{outline:none;border-color:#42a5f599}.modal-info{padding:8px 10px;background:#0000004d;border-radius:4px;font-size:12px;color:#888;margin-top:4px}.modal-info .info-label{color:#666;margin-right:6px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid rgba(255,255,255,.08)}.modal-btn{padding:7px 16px;border:1px solid rgba(255,255,255,.15);border-radius:4px;font-size:13px;cursor:pointer;transition:all .15s}.modal-btn-cancel{background:#333;color:#aaa}.modal-btn-cancel:hover{background:#444;color:#ccc}.modal-btn-apply{background:linear-gradient(180deg,#1e6b3a,#145228);color:#8f8;border-color:#4caf5066}.modal-btn-apply:hover{background:linear-gradient(180deg,#2e8b4a,#1a6830);color:#fff}.main{flex:1;padding:15px 0}.status-indicator{display:flex;align-items:center;gap:6px;padding:0 8px 0 0;border-right:1px solid rgba(255,255,255,.1);margin-right:2px}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--color-text-dim);animation:pulse 2s infinite;flex-shrink:0}.status-dot.active{background:var(--color-success)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-size:.75rem;font-weight:500;white-space:nowrap;color:#aaa}.btn{padding:12px 24px;border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);font-family:var(--font-family);box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff0d}.btn-primary{background:linear-gradient(180deg,#2a2a2a,#1a1a1a);color:var(--color-text);border-color:#ffffff26}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#353535,#252525);transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff33,inset 0 1px #ffffff1a;border-color:var(--color-primary)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:linear-gradient(180deg,#3a2020,#2a1515);color:var(--color-error);border-color:#f443364d}.btn-danger:hover{background:linear-gradient(180deg,#4a2525,#3a1a1a);border-color:var(--color-error)}.tuning-selector{display:flex;align-items:center;gap:15px;background:var(--color-surface);padding:15px 20px;border-radius:var(--border-radius);margin-bottom:20px;border:1px solid var(--color-border)}.tuning-selector label{font-weight:600;color:var(--color-text-dim)}.select{flex:1;padding:10px 15px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-size:1rem;font-family:var(--font-family);cursor:pointer;transition:var(--transition)}.select:hover{border-color:var(--color-primary)}.select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a9eff1a}.view-selector{display:flex;gap:6px;margin-bottom:12px}.view-btn{flex:1;padding:14px 8px;min-height:56px;background:linear-gradient(180deg,#2a2a2a,#1a1a1a);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--color-text);font-weight:600;font-size:clamp(.95rem,2.5vw,1.15rem);cursor:pointer;transition:var(--transition);font-family:var(--font-family);display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff0d}.view-btn:hover{background:linear-gradient(180deg,#353535,#252525);color:var(--color-text);transform:translateY(-1px);box-shadow:0 3px 6px #0006,inset 0 1px #ffffff14;border-color:#fff3}.view-btn.active{background:linear-gradient(135deg,var(--color-primary),#3a8eef);border-color:var(--color-primary);color:#fff;box-shadow:0 3px 8px #4a9eff66,inset 0 1px #fff3}.view-container{background:var(--color-surface);border-radius:var(--border-radius);padding:15px;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 6px #0000004d,inset 0 1px #ffffff08;margin-bottom:15px}.view-container.hidden{display:none!important}.view-container.drag-file-over{outline:2px dashed rgba(100,149,237,.8);outline-offset:-4px;background:#6495ed0f}.strings-container{display:flex;flex-direction:column;gap:20px}.string-display{background:var(--color-bg);border-radius:var(--border-radius);padding:20px;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff08;transition:var(--transition)}.string-display.active{border-color:var(--color-primary);box-shadow:0 2px 8px #4a9eff4d,inset 0 1px #4a9eff1a}.string-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.string-name{font-size:1.2rem;font-weight:600}.string-freq{font-size:1rem;color:var(--color-text-dim);font-family:Courier New,monospace}.tuning-meter{display:flex;align-items:center;gap:15px;margin-bottom:10px}.meter-track{flex:1;height:40px;background:linear-gradient(to right,var(--color-error) 0%,var(--color-warning) 25%,var(--color-success) 45%,var(--color-success) 55%,var(--color-warning) 75%,var(--color-error) 100%);border-radius:20px;position:relative;opacity:.3}.string-display.active .meter-track{opacity:1}.meter-center{position:absolute;left:50%;top:0;width:3px;height:100%;background:#fff;transform:translate(-50%);box-shadow:0 0 10px #ffffff80}.meter-needle{position:absolute;left:50%;top:50%;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:15px solid white;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transition:left .1s ease-out}.cents-display{font-size:1.5rem;font-weight:700;font-family:Courier New,monospace;min-width:80px;text-align:right;color:var(--color-text-dim)}.string-display.active .cents-display{color:var(--color-text)}.confidence-bar{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.confidence-fill{height:100%;background:var(--color-primary);border-radius:4px;width:0%;transition:width .2s ease}canvas{width:100%;height:400px;background:#10131a;border-radius:var(--border-radius);display:block;box-shadow:0 2px 8px #0009,inset 0 1px #ffffff0d;border:1px solid rgba(255,255,255,.1);transition:box-shadow .2s}.spectrum-info,.waveform-config-panel{margin-top:8px;padding:8px 14px;background:#14141ed9;border:1px solid rgba(255,255,255,.08);border-radius:var(--border-radius);position:relative;display:flex;flex-direction:column;gap:6px}.waveform-config-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.waveform-config-title{color:#7bb0ff;font-size:1.05rem;letter-spacing:.04em;text-shadow:0 1px 2px #000a;font-weight:600}.waveform-config-latency{color:#888;font-size:.75rem;font-family:monospace}.waveform-config-label{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#999;letter-spacing:0}.waveform-config-label input[type=range]{width:80px;accent-color:#7bb0ff}.waveform-config-label select{background:#1a1a2e;color:#bbb;border:1px solid #444;border-radius:4px;padding:2px 6px;font-size:.85rem;font-family:monospace;cursor:pointer}.waveform-config-btn{background:#1a3a5c;color:#7bb0ff;border:1px solid #4a9eff55;border-radius:4px;padding:3px 10px;font-size:.8rem;font-weight:600;cursor:pointer;letter-spacing:.03em;transition:background .15s,border-color .15s}.waveform-config-btn:hover{background:#254d74;border-color:#4a9eff}.waveform-config-btn:active{background:#4a9eff;color:#fff}.waveform-config-btn-sm{padding:2px 6px;font-size:.7rem;margin-left:4px}.waveform-config-label-tight{gap:3px!important;font-size:.75rem!important;margin-left:4px}.waveform-config-label-tight input[type=checkbox]{width:14px;height:14px;accent-color:#7bb0ff}.waveform-midi-btn{display:inline-flex;align-items:center;gap:2px}.waveform-transport{gap:6px!important;align-items:stretch!important}.transport-btn-stack{display:flex;flex-direction:row;align-items:center;gap:3px}.transport-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;background:#1e1e2db3;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#aab;cursor:pointer;padding:0;transition:background .15s,color .15s,border-color .15s}.transport-btn:hover:not(:disabled){background:#323246cc;border-color:#ffffff40;color:#dde}.transport-btn:disabled{opacity:.35;cursor:default}.transport-btn:active:not(:disabled){background:#4a9eff4d}.transport-record{color:#888}.transport-record.active{color:#f44;border-color:#f446;background:#ff44441f}.transport-play.active{color:#4c5;border-color:#4c56;background:#44cc551f}.transport-loop.active{color:#4af;border-color:#4af6;background:#44aaff1f}.transport-ab-a{color:#f94;border-color:#f946;background:#ff99441f}.transport-ab-ab{color:#4da;border-color:#4da6;background:#44ddaa1f}.follow-btn--on{color:#4cd;border-color:#4cd6;background:#44ccdd24}.follow-btn--override{color:#fa4;border-color:#fa46;background:#ffaa4424}.follow-btn--off{opacity:.4}.transport-trash:hover:not(:disabled){color:#f66;border-color:#f444}.transport-status{font-size:.7rem;color:#777;font-family:monospace;min-width:60px}.interact-mode-toggle{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}.interact-mode-label{font-size:.6rem;font-family:monospace;font-weight:700;text-transform:uppercase;letter-spacing:.04em;transition:color .15s}.interact-mode-pan{color:#7a9abf}.interact-mode-sel{color:#6b6b8a}.interact-mode-toggle input:checked~.interact-mode-label.interact-mode-sel,.interact-mode-toggle:has(input:checked) .interact-mode-sel{color:#5bc4ff}.interact-mode-toggle:has(input:checked) .interact-mode-pan{color:#4a5a6a}.interact-mode-switch{position:relative;display:inline-block;width:28px;height:14px}.interact-mode-switch input{opacity:0;width:0;height:0;position:absolute}.interact-mode-knob{position:absolute;top:0;right:0;bottom:0;left:0;background:#283246d9;border:1px solid rgba(255,255,255,.14);border-radius:7px;transition:background .18s,border-color .18s;cursor:pointer}.interact-mode-knob:after{content:"";position:absolute;top:2px;left:3px;width:8px;height:8px;background:#7a9abf;border-radius:50%;transition:transform .18s,background .18s}.interact-mode-switch input:checked+.interact-mode-knob{background:#1e508cbf;border-color:#5bc4ff73}.interact-mode-switch input:checked+.interact-mode-knob:after{transform:translate(13px);background:#5bc4ff}.recording-panel{display:flex;flex-direction:column;gap:4px;padding:4px 6px;background:#14142399;border:1px solid rgba(255,255,255,.08);border-radius:5px;flex:1;min-width:0}.rec-bottom-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rec-format-toggles{display:flex;gap:6px}.rec-format-toggle{display:inline-flex;align-items:center;gap:3px;font-size:.65rem;font-family:monospace;font-weight:600;color:#888;cursor:pointer;-webkit-user-select:none;user-select:none}.rec-format-toggle input[type=checkbox]{width:13px;height:13px;accent-color:#4a9eff;cursor:pointer;margin:0}.rec-format-toggle input[type=checkbox]:checked+.rec-format-label{color:#cde}.rec-indicator{display:flex;align-items:center;gap:4px}.rec-dot{width:10px;height:10px;border-radius:50%;background:#555;flex-shrink:0;transition:background .2s}.rec-indicator.active .rec-dot{background:#f44;animation:rec-pulse 1s ease-in-out infinite;box-shadow:0 0 6px #f449}.rec-label{font-size:.85rem;font-weight:700;font-family:monospace;color:#666;letter-spacing:.5px}.rec-indicator.active .rec-label{color:#f44}.rec-elapsed{font-size:.75rem;font-family:monospace;color:#777;min-width:32px}.rec-indicator.active .rec-elapsed{color:#f88}@keyframes rec-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.rec-download-btns{display:flex;gap:4px}.rec-dl-btn{display:inline-flex;align-items:center;gap:2px;padding:1px 5px;font-size:.6rem;font-family:monospace;font-weight:600;color:#8ab;background:#28283c80;border:1px solid rgba(255,255,255,.08);border-radius:3px;cursor:pointer;transition:background .15s,color .15s}.rec-dl-btn:hover{background:#3c3c5a99;color:#bdf}.rec-mini-preview{width:100%;height:240px;border-radius:3px;background:#0a0a1480;border:1px solid rgba(255,255,255,.06);cursor:crosshair;box-sizing:border-box}#staffTempoValue{font-family:monospace;font-weight:600;color:#bbb;min-width:24px;text-align:right}.staff-panel{width:100%;margin-bottom:6px;position:relative;display:flex;flex-direction:column}.staff-panel canvas{width:100%;background:#0a0a0ef2;display:block;border:1px solid rgba(255,255,255,.08)}#staffCanvas{height:200px;flex-shrink:0;border-radius:var(--border-radius)}#tabCanvas{height:130px;flex-shrink:0;border-radius:0 0 var(--border-radius) var(--border-radius);border-top:none;display:none;margin-top:2px}.staff-panel.has-tab #staffCanvas{border-radius:var(--border-radius) var(--border-radius) 0 0;border-bottom:none}.staff-panel.no-staff #tabCanvas{border-radius:var(--border-radius);margin-top:0}.panel-drag-handle{position:absolute;top:5px;right:6px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:grab;color:#ffffff4d;font-size:12px;letter-spacing:-2px;-webkit-user-select:none;user-select:none;z-index:10;border-radius:3px;transition:color .15s,background .15s}.panel-drag-handle:hover{color:#ffffffb3;background:#ffffff12}.panel-drag-handle:active{cursor:grabbing}.panel-dragging{opacity:.5;outline:2px dashed rgba(100,149,237,.6);outline-offset:-2px}.panel-drag-over{outline:2px solid rgba(100,149,237,.85);outline-offset:-2px}.perform-fretboard-panel{width:100%;height:145px;margin-bottom:6px;position:relative;display:block}.perform-fretboard-panel canvas{width:100%;height:100%;background:#0a0a0ef2;border-radius:var(--border-radius);display:block;border:1px solid rgba(255,255,255,.08)}.staff-gear-btn{position:absolute;top:6px;right:30px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#1e1e2ecc;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#999;cursor:pointer;z-index:10;padding:0}.staff-gear-btn:hover{color:#fff;background:#323246e6}.staff-gear-panel{position:absolute;top:34px;right:6px;background:var(--bg-card, #1e1e2e);border:1px solid var(--border-color, #444);border-radius:6px;padding:8px 12px;z-index:20;min-width:140px;box-shadow:0 4px 12px #00000080;font-size:.8rem}.staff-gear-panel.hidden{display:none}.gear-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:600;font-size:.82rem;color:var(--text-color, #ccc)}.gear-panel-close{background:none;border:none;color:var(--text-color, #ccc);font-size:1.1rem;cursor:pointer;padding:0 2px;line-height:1}.gear-panel-close:hover{color:#f44}.gear-panel-label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8rem;white-space:nowrap;color:var(--text-color, #aaa)}.gear-panel-label select{flex:1;background:var(--bg-input, #2a2a3a);color:var(--text-color, #ccc);border:1px solid var(--border-color, #555);border-radius:4px;padding:2px 4px;font-size:.78rem}.cursor-time{font-family:monospace;font-size:.85rem;font-weight:600;color:#7af;background:#1e1e3299;border:1px solid rgba(120,160,255,.2);border-radius:4px;padding:2px 8px;min-width:80px;text-align:center;white-space:nowrap}.waveform-sub-panels{display:flex;gap:12px;align-items:flex-start}.waveform-sub-panel{flex:1;min-width:0;background:var(--bg-card, #1e1e2e);border:1px solid var(--border-color, #444);border-radius:6px;padding:6px 10px;font-size:.82rem;color:var(--text-color, #ccc)}.waveform-sub-panel label{display:flex;align-items:center;gap:8px;font-size:.8rem;white-space:nowrap}.waveform-sub-panel select,.waveform-sub-panel input[type=number],.waveform-sub-panel input[type=text]{flex:1;background:var(--bg-input, #2a2a3a);color:var(--text-color, #ccc);border:1px solid var(--border-color, #555);border-radius:4px;padding:3px 6px;font-size:.8rem}.waveform-sub-panel input[type=range]{flex:1}.waveform-canvas-wrap{position:relative;width:100%;margin-bottom:6px}#waveformCanvas{display:block;width:100%;height:200px;border-radius:var(--border-radius);background:#0a0a0ef2;border:1px solid rgba(255,255,255,.08)}.spectrum-controls{margin-top:15px;padding:15px;background:#1a1a1acc;border-radius:8px;border:1px solid var(--color-border)}.control-group{margin-bottom:10px}.control-group:last-child{margin-bottom:0}.control-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--color-text);font-size:.95rem;-webkit-user-select:none;user-select:none}.control-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.control-label input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.control-label input[type=range]{cursor:pointer;accent-color:var(--color-primary);height:6px}.control-label input[type=range]::-webkit-slider-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;transition:transform .1s ease}.control-label input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.control-label input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none;transition:transform .1s ease}.control-label input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}.control-label:has(input:disabled){opacity:.6;cursor:not-allowed}.control-hint{display:block;font-size:.8rem;color:var(--color-text-dim);margin-left:28px;margin-top:-5px}.spectrum-panel{position:relative;margin:0 4px 4px;padding:2px;border:1px solid rgba(74,158,255,.25);border-radius:4px;background:#0a0a0a}.spectrum-panel canvas{display:block;width:100%}.detection-strips{display:flex;flex-direction:column;gap:2px;margin:10px 4px 0;padding:0}.detection-strip{display:flex;flex-direction:row;align-items:stretch;padding:0 42px 0 0;background:#1a1a1ad9;border:1px solid #333;border-radius:4px;min-height:32px;max-height:40px;overflow:hidden}.detection-strip:hover{border-color:#555}.detection-strip.detection-strip-tall{min-height:64px;max-height:none;height:120px;padding-right:0}.detection-strip.detection-strip-fretboard{min-height:80px;max-height:none;height:130px}.detection-strip.detection-strip-signal{min-height:32px;max-height:48px;border-color:#00c8ff4d}.detection-strip.detection-strip-signal:hover{border-color:#00c8ff99}.detection-strip.detection-strip-fusion{min-height:32px;max-height:48px;border-color:#00c8ff40}.detection-strip.detection-strip-fusion:hover{border-color:#00c8ff80}.detection-strip.detection-strip-notes{min-height:40px;max-height:none;height:80px;padding-right:0}.strip-resize-grip{flex:0 0 42px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;user-select:none;-webkit-user-select:none;transition:background .15s;border-left:1px solid #333}.strip-resize-grip:hover,.strip-resize-grip:active{background:#4a9eff26;border-left-color:#4a9eff}.strip-resize-grip .grip-icon{font-size:14px;opacity:.35;pointer-events:none;transition:opacity .15s}.strip-resize-grip:hover .grip-icon{opacity:.8}.strip-header{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px 4px;pointer-events:auto;min-width:50px;box-sizing:border-box}.detection-strip .viz-toggle{width:18px;height:16px}.detection-strip .viz-toggle .eye-icon{font-size:10px}.strip-name{font-size:9px;font-weight:700;color:#4a9eff;text-transform:uppercase;letter-spacing:0;white-space:nowrap;line-height:1;cursor:default}.strip-header{position:relative}.strip-content{flex:1 1 0;min-width:0;height:auto;overflow:hidden;position:relative}.strip-content::-webkit-scrollbar{display:none}.mini-chart{width:100%;height:100%;display:block}.strip-placeholder{font-size:10px;color:#555;font-style:italic;font-family:Courier New,monospace;padding:0 6px}.signal-flow-panel{position:relative;margin-top:8px;padding:15px;background:#1a1a1ae6;border-radius:8px;border:1px solid var(--color-border)}.signal-flow-container{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;padding:5px 0}.flow-stage{flex:1 1 110px;min-width:100px;max-width:160px;background:#28282899;border:1px solid #555;border-radius:6px;padding:8px;transition:all .2s ease;overflow:hidden}.flow-stage:hover{background:#323232cc;border-color:var(--color-primary)}.stage-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #444}.stage-header .stage-name{flex:1}.viz-toggle{background:none;border:1px solid #555;border-radius:4px;width:28px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s ease;position:relative;flex-shrink:0}.viz-toggle .eye-icon{font-size:14px;line-height:1;filter:brightness(0) invert(1);opacity:.4;transition:filter .15s ease,opacity .15s ease}.viz-toggle.active{border-color:var(--color-primary);background:#4a9eff1a}.viz-toggle.active .eye-icon{filter:brightness(0) invert(1) drop-shadow(0 0 3px rgba(74,158,255,.8));opacity:1}.viz-toggle:not(.active):after{content:"";position:absolute;width:18px;height:2px;background:#f44;transform:rotate(-45deg);border-radius:1px}.viz-toggle:hover{border-color:#888;background:#ffffff0d}.strip-select{background:#0000004d;border:1px solid #444;border-radius:3px;color:#aaa;font-size:8px;padding:1px 4px;height:16px;cursor:pointer;min-width:40px;margin-left:4px}.strip-select:hover{border-color:#666;background:#00000080}.strip-select:focus{outline:none;border-color:var(--color-primary)}.spectrum-header{display:flex;align-items:center;padding:2px 6px;background:#0000004d;border-bottom:1px solid #333}.spectrum-label{font-size:9px;font-weight:700;color:#4a9eff;text-transform:uppercase;letter-spacing:.5px}.detection-strip-fusion-sensors{border-color:#f80;background:#ff88000d}.detection-strip-fusion-sensors .strip-content{padding:6px 8px}.sensor-fusion-content{display:flex;flex-direction:column;gap:8px;font-size:9px}.sf-section{border:1px solid rgba(255,136,0,.2);border-radius:4px;padding:4px 6px;background:#0003}.sf-section-title{font-size:8px;font-weight:700;color:#f80;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.sf-row{display:flex;justify-content:space-between;padding:1px 0}.sf-label{color:#888}.sf-value{color:#aaa;font-family:monospace}.sf-tracks-list{max-height:80px;overflow-y:auto}.sf-track-row{display:flex;gap:8px;padding:2px 4px;border-bottom:1px solid rgba(255,255,255,.05)}.sf-track-row:last-child{border-bottom:none}.sf-track-freq{color:#4a9eff;font-family:monospace;min-width:50px}.sf-track-conf{font-family:monospace;min-width:30px}.sf-track-backends{color:#f80;font-size:8px}.sf-no-tracks{color:#666;font-style:italic;text-align:center;padding:4px}.sf-agreement-grid{display:flex;flex-direction:column;gap:2px}.sf-grid-header{display:flex;gap:4px;padding-bottom:2px;border-bottom:1px solid rgba(255,255,255,.1)}.sf-grid-header span{flex:1;text-align:center;color:#888;font-size:7px;text-transform:uppercase}.sf-grid-row{display:flex;gap:4px;align-items:center}.sf-grid-cell{flex:1;text-align:center;color:#444;font-size:10px}.sf-grid-cell.active{color:#0f0}.sf-grid-count{color:#f80;font-family:monospace;min-width:20px;text-align:right}.panel-toggle{background:none;border:1px solid rgba(255,255,255,.12);border-radius:3px;width:28px;height:26px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .15s,border-color .15s;color:#999;font-size:16px;line-height:1}.panel-toggle:hover{border-color:var(--color-primary);background:#4a9eff1a;color:#ddd}.panel-toggle .toggle-chevron{display:inline-block;transition:transform .2s}.panel-toggle:not(.active) .toggle-chevron{transform:rotate(-90deg)}.panel-toggle.active .toggle-chevron{transform:rotate(0)}.panel-toggle-float{position:absolute;top:4px;left:4px;z-index:10}.spectrum-panel{position:relative}.detection-strip.collapsed{min-height:20px!important;max-height:20px!important;height:20px!important}.detection-strip.collapsed .strip-content,.detection-strip.collapsed .strip-resize-grip,.signal-flow-panel.collapsed .signal-flow-container{display:none}.signal-flow-panel.collapsed{padding:4px 15px}.backend-selector-panel{margin-top:8px;padding:10px 15px;background:#1a1a1ae6;border-radius:8px;border:1px solid var(--color-border)}.backend-selector-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary, #999);margin-bottom:8px}.backend-selector-grid{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.backend-card{display:flex;flex-direction:column;gap:2px;padding:7px 10px 6px;background:#28282899;border:1px solid #555;border-radius:6px;min-width:138px;transition:border-color .2s}.backend-card:hover{border-color:var(--color-primary, #0af)}.backend-card.backend-display-active{border-color:#0af;background:#00aaff1a}.be-header{display:flex;align-items:center;gap:5px;margin-bottom:4px}.be-name{font-size:12px;font-weight:600;color:var(--color-text, #eee)}.be-status{display:inline-block;width:7px;height:7px;border-radius:50%;background:#555;flex-shrink:0;transition:background .3s,box-shadow .3s}.be-status[data-state=active]{background:#4caf50;box-shadow:0 0 4px #4caf5099}.be-status[data-state=idle]{background:#ff9800}.be-status[data-state=error]{background:#f44336;box-shadow:0 0 4px #f4433699}.be-status[data-state=off]{background:#555}.be-tip{font-size:10px;color:#888;cursor:help;opacity:.7;-webkit-user-select:none;user-select:none}.be-row{display:flex;align-items:baseline;gap:5px;line-height:1.4}.be-lbl{font-size:10px;color:var(--color-text-secondary, #888);min-width:50px;flex-shrink:0}.be-val{font-size:11px;color:var(--color-primary, #0af);font-variant-numeric:tabular-nums;min-width:0}.be-track[data-state=on]{color:#4caf50}.be-track[data-state=off]{color:#888}.be-controls{display:flex;align-items:center;gap:8px;margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.07);flex-wrap:wrap}.be-controls label{display:inline-flex;align-items:center;gap:3px;font-size:10px;color:#bbb;cursor:pointer;white-space:nowrap}.be-controls input[type=checkbox],.be-controls input[type=radio]{accent-color:var(--color-primary, #0af);cursor:pointer}.backend-card.backend-display-active .be-controls label:has(input[type=radio]){color:#0af}.be-divider{display:flex;align-items:center;gap:4px;margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.12)}.be-stage-name{font-size:10px;font-weight:600;color:#aaa;letter-spacing:.03em;flex:1}.jsv-card{min-width:152px}.tier3-card{min-width:152px;border-color:#44ee444d}.tier3-card .be-controls button{background:#44ee4426;border:1px solid rgba(68,238,68,.4);color:#4ae44a;border-radius:3px;cursor:pointer}.tier3-card .be-controls button:hover{background:#44ee4440}.cascade-card{min-width:152px;border-color:#64b4ff4d}.cascade-card select{background:#64b4ff26;border:1px solid rgba(100,180,255,.3);color:#8cc8ff;border-radius:3px}.signal-flow-panel{background:#14161cf2;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 10px;margin-top:8px;font-size:11px;color:#ccc}.sf-panel-header{margin-bottom:6px}.sf-panel-title{font-weight:700;font-size:12px;color:#eee;letter-spacing:.5px}.sf-sections{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-start}.sf-section{flex:0 0 auto;width:max-content;padding:5px 8px;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:4px}.sf-section-title{font-weight:600;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}.sf-row{display:flex;justify-content:space-between;gap:12px;padding:1px 0}.sf-lbl{color:#999}.sf-val{font-weight:500}.sf-mono{font-family:Fira Code,Consolas,monospace;font-size:10px}.sf-gate[data-active="1"]{color:#4e4}.sf-gate[data-active="0"]{color:#f44}.sf-table{width:100%;border-collapse:collapse;font-size:10px}.sf-table th{text-align:left;color:#777;font-weight:600;padding:2px 8px 2px 0;border-bottom:1px solid rgba(255,255,255,.08)}.sf-table td{padding:2px 8px 2px 0}.sf-ev-row{display:flex;justify-content:space-between;gap:12px;padding:1px 0}.sf-ev-name{color:#8cc8ff;font-family:Fira Code,Consolas,monospace;font-size:10px}.sf-ev-count{color:#ccc;font-family:Fira Code,Consolas,monospace;font-size:10px;text-align:right}.sf-toggle-btn{background:none;border:1px solid rgba(255,255,255,.15);color:#aaa;font-size:13px;cursor:pointer;border-radius:3px;padding:1px 5px;margin-left:8px;vertical-align:middle}.sf-toggle-btn:hover{color:#fff;border-color:#ffffff4d}.sf-stage-controls{display:flex;flex-direction:column;gap:2px}.sf-stage-row{display:flex;align-items:center}.sf-stage-label{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:10px;color:#aaa}.sf-stage-label input[type=checkbox]{width:11px;height:11px;cursor:pointer;accent-color:#4aff4a}body.light-theme .sf-stage-label{color:#555}.sf-pipeline-master{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:10px;margin-left:auto}.sf-pipeline-master input[type=checkbox]{width:12px;height:12px;cursor:pointer;accent-color:#4aff4a}.sf-master-label{color:#888;font-size:10px}.sf-master-state{font-size:10px;font-weight:600;font-family:Fira Code,Consolas,monospace;min-width:22px}.sf-master-state[data-active="1"]{color:#4aff4a}.sf-master-state[data-active="0"]{color:#f44}body.light-theme .sf-master-label{color:#666}.dag-node-bypassed rect{stroke-dasharray:8,3;opacity:.6}.dag-node-bypassed .dag-node-name{opacity:.6}.backend-footer{padding-top:6px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:3px}.backend-fusion-info,.backend-cpu-row{font-size:11px;color:var(--color-text-secondary, #999)}.backend-cpu-row{padding-top:0}.backend-fusion-info .label,.backend-cpu-row .label{font-weight:600}body.light-theme .backend-selector-panel{background:#f5f5f5f2}body.light-theme .backend-card{background:#e6e6e6b3;border-color:#ccc}body.light-theme .be-name{color:#333}body.light-theme .be-lbl{color:#666}.sf-dual-panel-row{display:flex;gap:8px;margin-top:8px;align-items:flex-start}.sf-dual-panel-row>.pipeline-dag-panel{flex:1 1 50%;min-width:0}.sf-dual-panel-row>.signal-flow-panel{flex:1 1 50%;min-width:0;margin-top:0}.pipeline-dag-panel{background:#14161cf2;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 10px;font-size:11px;color:#ccc}.sf-dag-container{display:flex;flex-direction:row;gap:8px;margin:4px 0}.sf-pipeline-dag{flex:1 1 auto;overflow:visible;padding:4px 0;min-height:60px}.sf-pipeline-detail{flex:0 0 200px;min-height:60px;padding:8px;border-left:1px solid rgba(255,255,255,.1);font-size:11px;color:#ccc;overflow-y:visible}.sf-pipeline-detail:empty{display:none}.sf-pipeline-detail .detail-title{font-weight:600;color:#fff;margin-bottom:6px;font-size:12px}.sf-pipeline-detail .detail-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}.sf-pipeline-detail .detail-row label{display:flex;align-items:center;gap:6px;cursor:pointer}.sf-pipeline-detail .detail-tier{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600}.sf-pipeline-dag .dag-empty{color:#777;font-size:11px;font-style:italic;padding:12px 0;text-align:center}.sf-pipeline-list{margin:4px 0;max-height:80px;overflow-y:auto}.sf-pipeline-item{display:flex;align-items:center;justify-content:space-between;padding:2px 6px;font-size:11px;cursor:pointer;border-radius:3px;color:#ccc}.sf-pipeline-item:hover{background:#ffffff0f}.sf-pipeline-item.active{background:#4a9eff26;color:#4a9eff}.sf-pipeline-item .pl-del{background:none;border:none;color:#888;cursor:pointer;font-size:12px;padding:0 2px;line-height:1}.sf-pipeline-item .pl-del:hover{color:#f44}.sf-pipeline-item .pl-edit{background:none;border:none;color:#888;cursor:pointer;font-size:16px;padding:0 4px;line-height:1;flex-shrink:0;order:-1}.sf-pipeline-item .pl-edit:hover{color:#4a9eff}.sf-pipeline-item .pl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb-readonly{opacity:.5;cursor:not-allowed}.dag-edit-toolbar{display:flex;align-items:center;gap:6px;padding:4px 6px;margin-bottom:4px;background:#4a9eff14;border:1px solid rgba(74,158,255,.2);border-radius:4px;flex-wrap:wrap}.dag-edit-label{font-size:11px;font-weight:600;color:#4a9eff;margin-right:auto}.dag-edit-add{font-size:10px;max-width:180px}.dag-edit-save{background:#4a9eff26;color:#4a9eff;border-color:#4a9eff4d}.dag-edit-save:hover{background:#4a9eff40}.dag-edit-cancel{color:#999}.dag-edit-remove{background:#f444441a;color:#f44;border-color:#f4444433;width:100%}.dag-edit-remove:hover{background:#f4444433}.detail-parent-select{max-width:140px;font-size:10px}.detail-bypass-hint{font-size:9px;color:#666}.detail-edit-row{gap:6px}.sf-pipeline-actions{display:flex;gap:4px;margin:4px 0}.sf-btn-sm{background:#ffffff14;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:2px 8px;font-size:10px;cursor:pointer;font-family:inherit}.sf-btn-sm:hover{background:#ffffff24;color:#fff}.sf-select{background:#1a1a1a;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:2px 6px;font-size:11px;font-family:inherit;outline:none}.sf-select:focus{border-color:#4a9eff}.dag-svg{display:block}.dag-node{transition:opacity .15s}.dag-node:hover rect{stroke-width:2.5;filter:brightness(1.2)}.dag-node-disabled{opacity:.35}.dag-node-disabled rect{stroke-dasharray:4,3}.dag-node-selected rect{stroke-width:3!important;filter:brightness(1.3) drop-shadow(0 0 4px rgba(74,158,255,.5))}.dag-node-name{font-size:11px;font-weight:600;font-family:Fira Code,Consolas,monospace;pointer-events:none}.dag-node-tier{font-size:9px;fill:#888;font-family:Fira Code,Consolas,monospace;pointer-events:none}.dag-port-label{font-size:7px;fill:#555;font-family:Fira Code,Consolas,monospace;pointer-events:none}.dag-edge{pointer-events:stroke}.dag-edge:hover{stroke:#999!important;stroke-width:2!important}.dag-legend-text{font-size:9px;fill:#888;font-family:Fira Code,Consolas,monospace}.pipeline-builder{padding:8px 12px;font-size:11px;color:#ccc}.pb-header{font-size:13px;font-weight:600;color:#fff;margin-bottom:8px}.pb-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.pb-label{font-size:11px;color:#aaa;min-width:40px}.pb-name-input{flex:1;background:#1a1a1a;color:#eee;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:3px 6px;font-size:11px;font-family:inherit;outline:none}.pb-name-input:focus{border-color:#4a9eff}.pb-stage-header{font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.06em;margin:6px 0 4px}.pb-stage-list{max-height:200px;overflow-y:auto;margin-bottom:6px}.pb-stage-row{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:3px}.pb-stage-row:hover{background:#ffffff0a}.pb-stage-idx{color:#666;font-size:10px;min-width:16px;text-align:right}.pb-stage-label{flex:1;color:#ddd}.pb-stage-wire{color:#4a9eff;font-size:10px;min-width:50px;text-align:right}.pb-stage-wire.pb-unwired{color:#f0a030}.pb-stage-del{background:none;border:none;color:#888;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.pb-stage-del:hover{color:#f44}.pb-stage-select{width:100%;background:#1a1a1a;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:3px 6px;font-size:11px;font-family:inherit;outline:none;cursor:pointer}.pb-stage-select:focus{border-color:#4a9eff}.pb-buttons{display:flex;gap:6px;margin-top:8px}.pb-create{background:#4a9eff26;color:#4a9eff;border-color:#4a9eff4d}.pb-create:hover{background:#4a9eff40}.pb-cancel{color:#999}.pb-status{margin-top:6px;font-size:10px;min-height:14px}.pb-status.pb-warn{color:#f0a030}.pb-status.pb-err{color:#f44}body.light-theme .pipeline-builder{color:#333}body.light-theme .pb-header{color:#111}body.light-theme .pb-name-input{background:#f5f5f5;color:#222;border-color:#ccc}body.light-theme .pb-stage-label{color:#222}body.light-theme .pb-stage-select,body.light-theme .sf-select{background:#f5f5f5;color:#333;border-color:#ccc}body.light-theme .sf-pipeline-detail{color:#333;border-left-color:#ddd}body.light-theme .sf-pipeline-detail .detail-title{color:#111}body.light-theme .sf-pipeline-detail .detail-row{border-bottom-color:#eee}body.light-theme .sf-pipeline-item{color:#333}body.light-theme .sf-pipeline-item:hover{background:#0000000a}body.light-theme .sf-pipeline-item.active{background:#4a9eff1a;color:#1a6edd}body.light-theme .sf-btn-sm{background:#eee;color:#333;border-color:#ccc}body.light-theme .sf-btn-sm:hover{background:#ddd}body.light-theme .pipeline-dag-panel{background:#f5f5f8f2;border-color:#ddd}body.light-theme .dag-edit-toolbar{background:#4a9eff0f;border-color:#4a9eff26}body.light-theme .dag-edit-label{color:#1a6edd}body.light-theme .dag-node-tier{fill:#777}body.light-theme .dag-port-label{fill:#999}body.light-theme .dag-legend-text{fill:#666}body.light-theme .dag-edge{stroke:#bbb}.dag-section-title{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#666;margin:8px 0 3px;padding-bottom:2px;border-bottom:1px solid rgba(255,255,255,.07)}.dag-stats-section,.dag-params-section,.dag-custom-section{margin-bottom:4px}.dag-stat-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04)}.dag-stat-label{font-size:10px;color:#888;flex:0 0 auto}.dag-stat-val{font-size:10px;font-family:Fira Code,Consolas,monospace;color:#ccc;text-align:right;flex:1 1 auto}.dag-param-row{display:flex;align-items:center;justify-content:space-between;margin:3px 0;gap:4px}.dag-param-label{font-size:10px;color:#999;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.dag-param-input{width:64px;flex:0 0 64px;background:#111;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:2px 4px;font-size:10px;font-family:Fira Code,Consolas,monospace;outline:none;text-align:right}.dag-param-input:focus{border-color:#4a9eff;background:#161616}.dag-param-input:hover{border-color:#ffffff40}.dag-param-btn{background:#ffffff14;color:#ccc;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:3px 10px;font-size:10px;cursor:pointer;font-family:inherit;margin-top:4px;width:100%}.dag-param-btn:hover{background:#ffffff24;color:#fff}body.light-theme .dag-section-title{color:#999;border-bottom-color:#ddd}body.light-theme .dag-stat-label{color:#666}body.light-theme .dag-stat-val{color:#333}body.light-theme .dag-stat-row{border-bottom-color:#eee}body.light-theme .dag-param-label{color:#555}body.light-theme .dag-param-input{background:#f8f8f8;color:#222;border-color:#ccc}body.light-theme .dag-param-input:focus{border-color:#26c}body.light-theme .dag-param-btn{background:#eee;color:#333;border-color:#ccc}body.light-theme .dag-param-btn:hover{background:#ddd}.signal-flow-panel.readonly-controls input,.signal-flow-panel.readonly-controls select,.signal-flow-panel.readonly-controls button,.signal-flow-panel.readonly-controls .fe-toggle,.signal-flow-panel.readonly-controls .stage-enable{display:none!important}.signal-flow-panel.readonly-controls .fe-section-label{display:none}.viz-selector-panel{flex:0 0 auto;min-width:130px;max-width:180px}.viz-selector-panel .stage-body{display:flex;flex-direction:column;gap:6px}.viz-section-title{font-size:10px;text-transform:uppercase;color:#888;margin-bottom:2px;letter-spacing:.5px}.viz-cb-label{display:flex;align-items:center;gap:4px;font-size:11px;color:#ccc;cursor:pointer;padding:1px 0}.viz-cb-label:hover{color:#fff}.viz-cb-label input[type=checkbox]{width:13px;height:13px;margin:0;cursor:pointer}.spectrum-panel.collapsed canvas{display:none}.spectrum-panel.collapsed{min-height:24px;padding:2px}.flow-select{background:#1a1a2e;color:#4a9eff;border:1px solid #444;border-radius:3px;font-size:11px;padding:1px 2px;font-family:Courier New,monospace}.flow-select-orange{color:orange}.flow-select-yellow{color:#dd0}.flow-stage-input{border-color:#4a9eff;background:#4a9eff14}.stage-header input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.stage-header input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.stage-enable{display:flex;align-items:center;gap:4px;font-size:10px;color:#888;cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none}.stage-name{font-size:12px;font-weight:700;color:#4a9eff;text-transform:uppercase;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stage-data{display:flex;flex-direction:column;gap:4px}.data-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-family:Courier New,monospace;overflow:hidden}.data-row .label{color:#aaa;margin-right:4px;flex-shrink:0}.data-row span:last-child{color:#0f0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.flow-arrow{flex:0 0 auto;font-size:16px;color:var(--color-primary);font-weight:700;-webkit-user-select:none;user-select:none;padding:0 2px;align-self:center}.nd-path-tabs{display:flex;gap:2px;margin:3px 0}.nd-tab-btn{flex:1;padding:3px 4px;font-size:9px;font-family:inherit;border:1px solid #555;border-radius:4px;background:#28282899;color:#aaa;cursor:pointer;transition:all .15s ease;white-space:nowrap}.nd-tab-btn:hover{background:#3c3c3ccc;border-color:#888;color:#ddd}.nd-tab-btn.active{background:#00a0ff40;border-color:#0af;color:#0cf;font-weight:700}.flow-stage-feature-extract{flex:2 1 200px!important;min-width:180px!important;max-width:260px!important;max-height:400px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#555 transparent}.flow-stage-feature-extract::-webkit-scrollbar{width:4px}.flow-stage-feature-extract::-webkit-scrollbar-thumb{background:#555;border-radius:2px}.fe-section-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;color:#4a9eff;text-transform:uppercase;letter-spacing:.3px;margin-top:6px;padding-top:4px;border-top:1px solid #333}.fe-toggle{display:flex;align-items:center;cursor:pointer;flex-shrink:0}.fe-toggle input[type=checkbox]{width:13px;height:13px;cursor:pointer;accent-color:var(--color-primary)}.fe-input{width:52px;background:#1a1a2e;color:#0f0;border:1px solid #444;border-radius:3px;font-size:11px;font-family:Courier New,monospace;font-weight:700;padding:1px 3px;text-align:right}.fe-input:focus{border-color:var(--color-primary);outline:none}.fe-input:hover{border-color:#666}.tuner-controls{margin-top:15px;padding:15px;background:#1a1a1acc;border-radius:8px;border:1px solid var(--color-border)}.tuner-controls h4{margin:0 0 12px;font-size:1rem;color:var(--color-primary);font-weight:600}.info-panel{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);margin-bottom:30px}.info-panel details{padding:20px}.info-panel summary{font-weight:600;font-size:1.1rem;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.info-panel summary::-webkit-details-marker{display:none}.info-content{margin-top:15px;color:var(--color-text-dim);line-height:1.8}.info-content ul{margin-left:20px;margin-top:10px}.info-content li{margin-bottom:5px}.footer{background:var(--color-surface);border-top:2px solid var(--color-border);padding:15px 0;color:var(--color-text-dim);font-size:.9rem}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.footer-content p{margin:0}.footer-buttons{display:flex;gap:10px;align-items:center}.footer-links{display:flex;gap:16px;align-items:center}.footer-links a{color:var(--color-text-dim);text-decoration:none;font-size:.85rem;transition:color .2s}.footer-links a:hover{color:var(--color-primary);text-decoration:underline}.theme-toggle-btn{background:none;border:1px solid var(--color-border);border-radius:6px;padding:4px 8px;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;font-size:16px}.theme-toggle-btn .theme-glyph{display:inline-block}.theme-toggle-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}body.light-theme{--color-bg: #f0f0f0;--color-surface: #ffffff;--color-surface-hover: #e8e8e8;--color-border: #ccc;--color-text: #1a1a1a;--color-text-dim: #666;--color-primary: #2070d0}body.light-theme .header,body.light-theme .tab-btn{background:linear-gradient(180deg,#f5f5f5,#e8e8e8)}body.light-theme .tab-btn:hover{background:linear-gradient(180deg,#eee,#ddd)}body.light-theme .tab-btn.active{background:linear-gradient(180deg,#fff,#f0f0f0);border-bottom-color:var(--color-primary)}body.light-theme .sub-tab-btn{background:linear-gradient(180deg,#f5f5f5,#e8e8e8)}body.light-theme .sub-tab-btn:hover{background:linear-gradient(180deg,#eee,#ddd)}body.light-theme .sub-tab-btn.active{background:linear-gradient(180deg,#fff,#f0f0f0)}body.light-theme .detection-strip{background:#f0f0f0f2;border-color:#ccc}body.light-theme .detection-strip:hover{border-color:#aaa}body.light-theme .strip-resize-grip{border-left-color:#ccc}body.light-theme .strip-resize-grip:hover,body.light-theme .strip-resize-grip:active{background:#2070d01a;border-left-color:var(--color-primary)}body.light-theme .strip-name{color:var(--color-primary)}body.light-theme .spectrum-controls,body.light-theme .waveform-controls{background:#f0f0f0e6;border-color:#ccc}body.light-theme .spectrum-panel{background:#f8f8f8}body.light-theme #tabCanvas{background:#fafafa}body.light-theme .perform-fretboard-panel canvas{background:#fff;border-color:#00000026}body.light-theme .footer{background:var(--color-surface);border-top-color:#ccc}body.light-theme .modal-content{background:#fff;color:#1a1a1a}body.light-theme .modal{background:#0000004d}body.light-theme input[type=range]{accent-color:var(--color-primary)}body.light-theme select,body.light-theme input[type=text],body.light-theme input[type=number]{background:#fff;color:#1a1a1a;border-color:#ccc}body.light-theme .config-block{background:#f0f0f0cc;border-color:#ccc}body.light-theme .btn{background:#e0e0e0;color:#1a1a1a;border-color:#ccc}body.light-theme .btn:hover{background:#d0d0d0}body.light-theme .btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}body.light-theme .theme-toggle-btn{border-color:#ccc}body.light-theme .theme-toggle-btn:hover{background:#e0e0e0;border-color:var(--color-primary)}body.light-theme .stop-btn{background:linear-gradient(180deg,#f0d0d0,#e0b8b8);color:#8b2020}body.light-theme .play-pause-btn{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);color:#777}body.light-theme .play-pause-btn.is-running{background:linear-gradient(180deg,#d0f0d0,#b8e0b8);color:#1a6b1a}body.light-theme .play-pause-btn.is-auto-paused{background:linear-gradient(180deg,#e8e8e8,#ddd);color:#aaa}body.light-theme .auto-btn{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);color:#999}body.light-theme .auto-btn.active{background:linear-gradient(180deg,#c8dff0,#a8c8e0);color:#1565c0}body.light-theme .audio-config-btn{background:linear-gradient(180deg,#e8e8e8,#d8d8d8);color:#333}body.light-theme .audio-config-btn:hover{background:linear-gradient(180deg,#ddd,#ccc)}body.light-theme .modal-dialog{background:linear-gradient(180deg,#fff,#f4f4f4);color:#1a1a1a}body.light-theme .modal-field select,body.light-theme .modal-field input{background:#fff;color:#1a1a1a;border-color:#ccc}body.light-theme .modal-btn-cancel{background:#ddd;color:#333}body.light-theme .modal-btn-cancel:hover{background:#ccc}body.light-theme .btn-danger{background:linear-gradient(180deg,#f0d0d0,#e0b8b8);color:#8b2020;border-color:#d0a0a0}body.light-theme .btn-danger:hover{background:linear-gradient(180deg,#e8c0c0,#d8a8a8)}body.light-theme .view-btn{background:linear-gradient(180deg,#f0f0f0,#e4e4e4);color:#333}body.light-theme .view-btn:hover{background:linear-gradient(180deg,#e8e8e8,#ddd)}body.light-theme .view-btn.active{background:linear-gradient(180deg,#fff,#f0f0f0)}body.light-theme canvas{background:#f0f2f5}body.light-theme .staff-panel canvas{background:#fff;border-color:#00000026}body.light-theme .waveform-config-panel{background:#f0f0f5e6;border-color:#0000001a}body.light-theme .waveform-config-title{color:#1a5ab8;text-shadow:none}body.light-theme .waveform-config-label{color:#555}body.light-theme .waveform-config-label select{background:#fff;color:#1a1a1a;border-color:#ccc}body.light-theme .waveform-config-btn{background:#d0e0f0;color:#1a5ab8;border-color:#a0c0e0}body.light-theme .waveform-config-btn:hover{background:#b8d4f0}body.light-theme .transport-btn{background:#e6e6f0cc;border-color:#0000001f;color:#555}body.light-theme .transport-btn:hover:not(:disabled){background:#d2d2e1e6;color:#333}body.light-theme .transport-record.active{color:#c22;background:#dc28281a}body.light-theme .transport-play.active{color:#283;background:#28a03c1a}body.light-theme .transport-loop.active{color:#17c;background:#146ec81a}body.light-theme .transport-ab-a{color:#c60;background:#c864001a}body.light-theme .transport-ab-ab{color:#175;background:#14965a1a}body.light-theme .transport-status{color:#666}body.light-theme .interact-mode-pan{color:#3a6a9a}body.light-theme .interact-mode-sel{color:#9090a0}body.light-theme .interact-mode-toggle:has(input:checked) .interact-mode-sel{color:#1a5ab8}body.light-theme .interact-mode-toggle:has(input:checked) .interact-mode-pan{color:#8aa0bb}body.light-theme .interact-mode-knob{background:#dce0ebe6;border-color:#00000026}body.light-theme .interact-mode-knob:after{background:#5580a8}body.light-theme .interact-mode-switch input:checked+.interact-mode-knob{background:#b4d2f5cc;border-color:#1a5ab873}body.light-theme .interact-mode-switch input:checked+.interact-mode-knob:after{background:#1a5ab8}body.light-theme .recording-panel{background:#e6e6f099;border-color:#00000014}body.light-theme .rec-format-toggle{color:#888}body.light-theme .rec-format-toggle input[type=checkbox]:checked+.rec-format-label{color:#1a5ab8}body.light-theme .rec-label{color:#888}body.light-theme .rec-indicator.active .rec-label{color:#c22}body.light-theme .rec-dot{background:#bbb}body.light-theme .rec-indicator.active .rec-dot{background:#c22}body.light-theme .rec-elapsed{color:#888}body.light-theme .rec-indicator.active .rec-elapsed{color:#c44}body.light-theme .rec-mini-preview{background:#f0f0fa99;border-color:#00000014}body.light-theme .rec-dl-btn{color:#1a5ab8;background:#c8d2e680;border-color:#00000014}body.light-theme .rec-dl-btn:hover{background:#b4c8e6b3}body.light-theme .track-action-btn,body.light-theme .session-toolbar-btn{color:#1a5ab8;background:#c8d2e680;border-color:#00000014}body.light-theme .track-action-btn:hover,body.light-theme .session-toolbar-btn:hover{background:#b4c8e6b3}body.light-theme .session-toolbar-sep{background:#0000001f}body.light-theme .session-name-input{background:#fff;color:#333;border-color:#ccc}body.light-theme #staffTempoValue{color:#333}body.light-theme .signal-flow-panel{background:#f0f0f0f2;border-color:#ccc}body.light-theme .flow-stage{background:#fffc;border-color:#ccc}body.light-theme .flow-stage:hover{background:#f5f5ffe6;border-color:var(--color-primary)}body.light-theme .nd-tab-btn{background:#f0f0f0cc;border-color:#ccc;color:#555}body.light-theme .nd-tab-btn:hover{background:#e6e6f5e6;border-color:#999;color:#333}body.light-theme .nd-tab-btn.active{background:#0078d726;border-color:#0078d7;color:#0078d7}body.light-theme .stage-header{border-bottom-color:#ddd}body.light-theme .stage-name{color:var(--color-primary)}body.light-theme .stage-enable,body.light-theme .data-row .label{color:#555}body.light-theme .data-row span:last-child{color:#1a6b1a}body.light-theme .fe-section-label{color:var(--color-primary);border-top-color:#ddd}body.light-theme .flow-arrow{color:var(--color-primary)}body.light-theme .flow-select{background:#fff;color:var(--color-primary);border-color:#ccc}body.light-theme .flow-select-orange{color:#b87000}body.light-theme .flow-select-yellow{color:#980}body.light-theme .fe-header{border-top-color:#ccc}body.light-theme .fe-input{background:#fff;color:#1a1a1a;border-color:#ccc}body.light-theme .panel-toggle{border-color:#0000001f;color:#666}body.light-theme .panel-toggle:hover{border-color:var(--color-primary);background:#2070d014;color:#333}.data-value-green{color:#0f0}.tune-settings-panel,.tune-chord-panel{max-width:none;margin:0;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);overflow:hidden}#tuneView{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.tune-panel{box-sizing:border-box;grid-column:1 / -1}.tune-panel--half{grid-column:span 1}.tune-panel-width-btn{background:none;border:1px solid rgba(255,255,255,.12);border-radius:3px;width:24px;height:22px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .15s,border-color .15s;color:#999;font-size:14px;line-height:1}.tune-panel-width-btn:hover{border-color:var(--color-primary);background:#4a9eff1a;color:#ddd}.tune-settings-header{display:flex;align-items:center;gap:8px;padding:6px 10px;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border);background:#ffffff05}.tune-settings-header:hover{background:#ffffff05}.tune-settings-title{flex:1;font-size:.85rem;font-weight:600;color:var(--color-text-secondary, #aaa);text-transform:uppercase;letter-spacing:.04em}.tune-settings-toggle{background:none;border:1px solid rgba(255,255,255,.12);border-radius:3px;width:38px;height:36px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .15s,border-color .15s;color:#999;font-size:32px;line-height:1}.tune-settings-toggle:hover{border-color:var(--color-primary);background:#4a9eff1a;color:#ddd}.tune-settings-toggle .toggle-chevron{display:inline-block;transition:transform .2s}.tune-settings-toggle:not(.active) .toggle-chevron{transform:rotate(-90deg)}.tune-settings-toggle.active .toggle-chevron{transform:rotate(0)}.tune-settings-grip,.tune-chord-grip,.tune-pitch-grip,.tune-instrument-grip{color:#ffffff59;font-size:18px;font-weight:700;letter-spacing:-2px;cursor:grab;padding:0 4px;touch-action:none;-webkit-user-select:none;user-select:none}.tune-settings-grip:active,.tune-chord-grip:active,.tune-pitch-grip:active,.tune-instrument-grip:active{cursor:grabbing}.tune-panel--dragging{opacity:.45;outline:2px dashed var(--color-primary, #4a9eff);outline-offset:-2px;transition:none}.tune-settings-body{overflow:hidden;max-height:2000px;transition:max-height .35s ease,opacity .25s ease,padding .35s ease;opacity:1;padding:0}.tune-settings-body.collapsed{max-height:0;opacity:0;padding:0}.tune-chord-content{padding:12px 20px 16px;text-align:center}.tune-chord-content .chord-name{font-size:2.6rem;padding:14px 12px;min-height:auto;margin-bottom:8px}.tune-chord-content .chord-confidence{font-size:.78rem;opacity:.6;margin-bottom:4px}.tune-chord-content #chordNotes{font-size:.78rem}.tune-presets-section{padding:12px 24px 0}.tune-presets-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:6px}.tune-presets-label{flex:1;font-size:.85rem;font-weight:600;color:var(--color-text-secondary, #aaa);text-transform:uppercase;letter-spacing:.04em}.tune-presets-actions{display:flex;gap:4px}.instrument-preset-list{display:flex;flex-direction:column;gap:2px;max-height:150px;overflow-y:auto;margin-bottom:8px}.instrument-preset-item{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:.8rem;background:transparent;transition:background .15s;color:var(--color-text)}.instrument-preset-item:hover{background:#ffffff0d}.instrument-preset-item.active{background:rgba(var(--color-primary-rgb, 100,149,237),.18)}.instrument-preset-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instrument-preset-meta{opacity:.5;font-size:.7rem;white-space:nowrap}.instrument-preset-btn{background:none;border:none;color:var(--text-color, #aaa);cursor:pointer;padding:2px 4px;font-size:.75rem;opacity:.6;flex-shrink:0;display:inline-flex;align-items:center}.instrument-preset-delete:hover{opacity:1;color:#f44}.instrument-preset-edit:hover{opacity:1;color:var(--color-primary, #6495ed)}.instrument-preset-name-input{flex:1;background:#ffffff14;border:1px solid rgba(var(--color-primary-rgb, 100,149,237),.5);border-radius:3px;color:var(--color-text);font-size:.8rem;padding:1px 4px;outline:none;min-width:0}.string-recal-hint{margin-top:4px;padding:4px 8px;font-size:.75rem;color:#fc0;background:#ffcc0014;border:1px solid rgba(255,204,0,.2);border-radius:4px;animation:hint-fade-in .3s ease}@keyframes hint-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes field-blink{0%{background-color:#4ae44a59}to{background-color:transparent}}.field-blink{animation:field-blink .8s ease-out}.tune-calibration-banner{margin:0 0 8px;padding:6px 10px;border-radius:5px;font-size:.75rem;line-height:1.4;animation:hint-fade-in .3s ease}.tune-calibration-banner--warn{color:#fc0;background:#ffcc0014;border:1px solid rgba(255,204,0,.25)}.tune-calibration-banner--ok{color:#5cd65c;background:#5cd65c14;border:1px solid rgba(92,214,92,.25)}.tune-calibrate-section{display:flex;align-items:center;gap:8px;margin:0 0 8px}.tune-calibrate-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 14px;font-size:.78rem;font-weight:500;border:1px solid rgba(100,149,237,.4);border-radius:5px;background:#6495ed1f;color:#6495ed;cursor:pointer;transition:background .15s,border-color .15s}.tune-calibrate-btn:hover{background:#6495ed38;border-color:#6495ed99}.tune-calibrate-btn:active{background:#6495ed52}.tune-calibrate-btn:disabled{opacity:.4;cursor:default}.tune-calibrate-status{font-size:.72rem;color:var(--color-text-secondary, #aaa)}.tune-cal-detail{background:#0000004d;border:1px solid rgba(100,149,237,.3);border-radius:6px;padding:8px 10px;margin-top:6px;font-size:.72rem}.tune-cal-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08)}.tune-cal-string-name{font-weight:600;font-size:.82rem;color:#6495ed}.tune-cal-state{font-size:.7rem;padding:1px 6px;border-radius:3px;background:#ffffff14}.tune-cal-state[data-state=waiting]{color:#fc0}.tune-cal-state[data-state=capturing]{color:#6495ed}.tune-cal-state[data-state=measured]{color:#4e4}.tune-cal-state[data-state=failed]{color:#f44}.tune-cal-state[data-state=paused]{color:#4e4}.tune-cal-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin-bottom:6px}.tune-cal-detail-grid .cal-lbl{color:var(--color-text-secondary, #888)}.tune-cal-detail-grid .cal-val{text-align:right;font-family:Courier New,monospace;color:#ddd}.tune-cal-detail-actions{display:flex;gap:8px;justify-content:flex-end}.tune-cal-btn-retry,.tune-cal-btn-next{font-size:.72rem;padding:3px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#ccc;cursor:pointer}.tune-cal-btn-retry:hover{background:#ff644433;border-color:#ff6444;color:#ff6444}.tune-cal-btn-next{background:#44ee4426;border-color:#4e46;color:#4ae44a}.tune-cal-btn-next:hover{background:#44ee4440}.tune-upgrade-prompt{padding:6px 8px;font-size:.73rem;color:var(--color-text-secondary, #aaa);border-top:1px solid rgba(255,255,255,.06);margin-top:4px;line-height:1.5}.tune-upgrade-link{color:var(--color-primary, #6495ed);text-decoration:none;font-weight:600}.tune-upgrade-link:hover{text-decoration:underline}.tune-manage-sub-link{color:var(--color-primary, #6495ed);text-decoration:none;cursor:pointer}.tune-manage-sub-link:hover{text-decoration:underline}@keyframes upgrade-flash{0%{background:#6495ed40}to{background:transparent}}.tune-upgrade-prompt--flash{animation:upgrade-flash .7s ease-out;border-radius:4px}.config-panel-minimal{max-width:480px;margin:20px auto;padding:24px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px}.config-panel-title{margin:0 0 24px;font-size:1.3rem;color:var(--color-text);text-align:center}.config-group{margin-bottom:18px}.config-group:last-child{margin-bottom:0}.config-label{display:block;margin-bottom:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary, #aaa);text-transform:uppercase;letter-spacing:.04em}.config-group .select{width:100%}.signal-flow-diagram{margin-top:20px;padding:15px;background:#2d2d2d;border-radius:8px}.signal-flow-title{margin:0 0 10px;color:#4a9eff;font-size:14px;font-weight:700}.signal-flow-desc{color:#aaa;font-size:13px;margin-bottom:15px}.signal-flow-chain{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:monospace;font-size:13px}.sf-stage{padding:6px 12px;background:#1a1a1a;border-radius:4px}.sf-stage-blue{border:1px solid #4a9eff;color:#fff}.sf-stage-orange{border:1px solid #555;color:#ff8a4a}.sf-stage-green{border:1px solid #555;color:#4aff4a}.sf-stage-map{border:1px solid #555;color:#4a9eff}.sf-arrow{color:#4a9eff}.signal-flow-footer{color:#888;font-size:12px;margin-top:10px}body.light-theme .signal-flow-diagram{background:#f5f6f8}body.light-theme .signal-flow-title{color:var(--color-primary)}body.light-theme .signal-flow-desc{color:#555}body.light-theme .sf-stage{background:#fff}body.light-theme .sf-stage-blue{border-color:var(--color-primary);color:#333}body.light-theme .sf-stage-orange{border-color:#c60;color:#c60}body.light-theme .sf-stage-green{border-color:#1a8a1a;color:#1a8a1a}body.light-theme .sf-stage-map{border-color:var(--color-primary);color:var(--color-primary)}body.light-theme .sf-arrow{color:var(--color-primary)}body.light-theme .signal-flow-footer{color:#666}body.light-theme .data-value-green{color:#1a8a1a}body.light-theme .cassette-controls{background:linear-gradient(180deg,#f0f0f0,#e0e0e0);border-color:#ccc;box-shadow:inset 0 2px 4px #00000014,0 2px 6px #0000000f}body.light-theme .status-indicator{border-right-color:#0000001f}body.light-theme .status-text{color:#555}body.light-theme .viz-toggle{border-color:#0000001f}body.light-theme .viz-toggle .eye-icon{filter:none;opacity:.5}body.light-theme .viz-toggle.active{border-color:var(--color-primary);background:#2070d014}body.light-theme .viz-toggle.active .eye-icon{filter:none;opacity:1}body.light-theme .mini-chart{background:#f0f2f5}body.light-theme .tuner-controls{background:#f0f0f0e6;border-color:#ccc}body.light-theme .dominant-note-panel{background:#f8f8fc;border-color:#ccc}body.light-theme .gauge-track{background:#e4e4e8}body.light-theme .tuner-row{background:#f8f8fc;border-color:#ccc}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:var(--color-surface);border-radius:var(--border-radius);border:2px solid var(--color-border);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;color:var(--color-primary);font-size:1.5rem}.modal-close{background:none;border:none;color:var(--color-text);font-size:2rem;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:var(--transition)}.modal-close:hover{background:var(--color-surface-hover);color:var(--color-primary)}.modal-body{padding:20px;color:var(--color-text-dim);line-height:1.8}.modal-body ul{margin-left:20px;margin-top:10px;margin-bottom:20px}.modal-body li{margin-bottom:5px}.modal-body p{margin-bottom:10px}.update-notification{position:fixed;top:20px;right:20px;background:var(--color-primary);color:#fff;padding:15px 20px;border-radius:var(--border-radius);box-shadow:0 4px 12px #0000004d;z-index:1000;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.update-content{display:flex;align-items:center;gap:10px}.update-content span{font-weight:600}.update-notification .btn,.btn-small{padding:6px 12px;font-size:.85rem}.footer-btn{background:linear-gradient(135deg,var(--color-primary),#3a8eef);color:#fff;border:1px solid rgba(74,158,255,.3);box-shadow:0 2px 6px #0000004d,inset 0 1px #ffffff1a;transition:all .3s ease}.footer-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #4a9eff66,inset 0 1px #fff3;background:linear-gradient(135deg,#3a8eef,var(--color-primary));border-color:var(--color-primary)}.footer-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0003}@media (max-width: 768px){.title{font-size:2rem}.status-bar{flex-direction:column;gap:15px}.status-bar .btn{width:100%}.tuning-selector{flex-direction:column;align-items:stretch}.view-container{padding:20px}.string-display{padding:15px}.string-info{flex-direction:column;align-items:flex-start;gap:5px}.cents-display{min-width:60px;font-size:1.2rem}canvas{height:250px}#waveformCanvas{height:125px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.string-display{animation:fadeIn .3s ease backwards}.string-display:nth-child(1){animation-delay:.05s}.string-display:nth-child(2){animation-delay:.1s}.string-display:nth-child(3){animation-delay:.15s}.string-display:nth-child(4){animation-delay:.2s}.string-display:nth-child(5){animation-delay:.25s}.string-display:nth-child(6){animation-delay:.3s}.notes-panel{display:grid;gap:30px;padding:20px}.chord-panel{padding:20px}.chord-display,.notes-display{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:30px}.chord-display h3,.notes-display h3{font-size:1.2rem;color:var(--color-text);margin-bottom:20px;text-transform:uppercase;letter-spacing:1px}.chord-name{font-size:4rem;font-weight:700;color:var(--color-text-dim);text-align:center;padding:40px 20px;min-height:150px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4a9eff0d,#7b2ff70d);border-radius:var(--border-radius);margin-bottom:15px;transition:all .4s ease}.chord-name.active{color:var(--color-primary);background:linear-gradient(135deg,#4a9eff26,#7b2ff726);box-shadow:0 0 30px #4a9eff33}.chord-name.major{color:var(--color-success)}.chord-name.minor{color:#2196f3}.chord-name.diminished{color:var(--color-error)}.chord-name.augmented{color:var(--color-warning)}.chord-name.dominant{color:#9c27b0}.chord-confidence{text-align:center;color:var(--color-text-dim);font-size:.9rem;transition:opacity .3s ease}.chord-notes-list{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}.chord-note{padding:8px 16px;background:#4a9eff1a;border:1px solid rgba(74,158,255,.3);border-radius:6px;font-weight:600;color:var(--color-primary);font-family:Courier New,monospace}.instrument-tuner{display:flex;flex-direction:column;gap:20px}.instrument-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:var(--color-bg);border-radius:var(--border-radius);border:1px solid var(--color-border);margin-bottom:10px}.instrument-header h3{margin:0;font-size:1.2rem;color:var(--color-primary)}.instrument-family{padding:4px 12px;background:#4a9eff1a;border-radius:4px;font-size:.85rem;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:1px}.tuner-elements{display:flex;flex-direction:column;gap:15px}.tuner-element{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--border-radius);padding:20px;transition:all .3s ease}.tuner-element.tuned{border-color:var(--color-success);background:#4caf500d}.tuner-element.close{border-color:var(--color-warning);background:#ff98000d}.tuner-element.far{border-color:var(--color-error);background:#f443360d}.element-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.element-label{font-size:1.2rem;font-weight:600;color:var(--color-text)}.play-tone-btn{background:linear-gradient(180deg,#66bb6a,#43a047);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#fff;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.play-tone-btn:hover{background:linear-gradient(180deg,#4caf50,#388e3c);transform:scale(1.1);box-shadow:0 4px 12px #4caf5066}.play-tone-btn:active{transform:scale(.95)}.play-tone-btn.playing{background:linear-gradient(180deg,#42a5f5,#1976d2)}.play-tone-btn.playing:hover{background:linear-gradient(180deg,#2196f3,#1565c0);box-shadow:0 4px 12px #2196f366}.tuning-display{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center}.target-note{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:100px}.target-note .note-name{font-size:2rem;font-weight:700;color:var(--color-primary);font-family:Courier New,monospace}.target-note .frequency{font-size:.85rem;color:var(--color-text-dim);font-family:Courier New,monospace}.tuning-meter{display:flex;flex-direction:column;gap:8px}.meter-bar{position:relative;height:40px;background:linear-gradient(to right,var(--color-error) 0%,var(--color-warning) 25%,var(--color-success) 45%,var(--color-success) 55%,var(--color-warning) 75%,var(--color-error) 100%);border-radius:20px;opacity:.3}.tuner-element.tuned .meter-bar,.tuner-element.close .meter-bar,.tuner-element.far .meter-bar{opacity:1}.meter-fill{position:absolute;top:0;height:100%;background:#fff;opacity:.6;transition:all .2s ease}.meter-fill.tuned{background:var(--color-success);opacity:1;box-shadow:0 0 10px var(--color-success)}.meter-fill.close{background:var(--color-warning);opacity:.8}.meter-fill.far{background:var(--color-error);opacity:.8}.meter-center{position:absolute;left:50%;top:0;width:3px;height:100%;background:#fff;transform:translate(-50%);box-shadow:0 0 10px #ffffff80;z-index:2}.meter-labels{display:flex;justify-content:space-between;padding:0 10px;font-size:.9rem;color:var(--color-text-dim)}.label-center{position:relative;left:-10px}.detected-info{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:120px;transition:opacity .3s ease}.detected-note{font-size:1.5rem;font-weight:700;color:var(--color-text);font-family:Courier New,monospace}.detected-freq{font-size:.85rem;color:var(--color-text-dim);font-family:Courier New,monospace}.cents-offset{font-size:1rem;font-weight:600;font-family:Courier New,monospace;padding:4px 12px;border-radius:12px;background:#ffffff0d;color:var(--color-text-dim)}.cents-offset.tuned{background:#4caf5033;color:var(--color-success)}.cents-offset.close{background:#ff980033;color:var(--color-warning)}.cents-offset.far{background:#f4433633;color:var(--color-error)}.no-instrument{text-align:center;padding:60px 20px;color:var(--color-text-dim);font-size:1.2rem}.loading-message{text-align:center;padding:60px 20px;color:var(--color-text-dim);font-size:1.1rem;font-style:italic}.dominant-note-panel{padding:10px 16px;margin:0 10px 16px;background:#111118;border:1px solid #333;border-radius:var(--border-radius);transition:border-color .3s ease,background .3s ease}.dominant-panel-title{font-size:.7rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.dominant-row{display:flex;align-items:center;gap:14px}.dominant-note-panel.tuned{border-color:#2a6;background:#22aa6614}.dominant-note-panel.close{border-color:#da2;background:#ddaa220f}.dominant-note-panel.far{border-color:#555;background:#5050640a}.dominant-note-name{font-size:2.2rem;font-weight:700;font-family:monospace;color:#eee;line-height:1;min-width:70px;flex-shrink:0}.dominant-gauge-col{flex:1;min-width:0;position:relative;padding-top:30px}.dominant-cents-above{position:absolute;top:-6px;font-size:1.65rem;font-weight:600;font-family:monospace;color:#aaa;text-align:center;transform:translate(-50%);white-space:nowrap;transition:left .15s ease-out;left:50%;pointer-events:none}.dominant-note-panel.tuned .dominant-cents-above{color:#6da}.dominant-note-panel.close .dominant-cents-above{color:#dc8}.dominant-note-panel.far .dominant-cents-above{color:#889}.dominant-note-panel.tuned .dominant-note-name{color:#4f8}.dominant-note-panel.close .dominant-note-name{color:#fc4}.dominant-note-panel.far .dominant-note-name{color:#aab}.dominant-gauge{width:100%}.dominant-note-freq{text-align:center;font-size:.75rem;color:#555;margin-top:2px}.gauge-track{position:relative;height:18px;border-radius:9px;overflow:hidden;display:flex;background:#181820}.gauge-zone{flex:1}.gauge-zone-far-flat{background:#f4433640}.gauge-zone-close-flat{background:#ff980033}.gauge-zone-tuned{background:#4caf5040}.gauge-zone-close-sharp{background:#ff980033}.gauge-zone-far-sharp{background:#f4433640}.gauge-center-mark{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#ffffff80;transform:translate(-50%);z-index:2}.gauge-error-bar{position:absolute;top:2px;bottom:2px;background:#ffffff1f;border-left:2px solid rgba(255,255,255,.28);border-right:2px solid rgba(255,255,255,.28);border-radius:4px;z-index:1;transition:left .15s ease-out,width .15s ease-out;pointer-events:none}.dominant-note-panel.tuned .gauge-error-bar{background:#4caf502e;border-color:#4caf5073}.dominant-note-panel.close .gauge-error-bar{background:#ff980026;border-color:#ff980066}.dominant-note-panel.far .gauge-error-bar{background:#9696aa1a;border-color:#9696aa4d}.gauge-needle{position:absolute;top:-2px;bottom:-2px;width:4px;background:#fff;border-radius:2px;transform:translate(-50%);transition:left .15s ease-out;left:50%;z-index:3;box-shadow:0 0 6px #fff9}.tuner-row.tuned .gauge-needle,.dominant-note-panel.tuned .gauge-needle{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.tuner-row.close .gauge-needle,.dominant-note-panel.close .gauge-needle{background:var(--color-warning);box-shadow:0 0 8px var(--color-warning)}.tuner-row.far .gauge-needle,.dominant-note-panel.far .gauge-needle{background:#99a;box-shadow:0 0 4px #9696aa66}.gauge-labels{display:flex;justify-content:space-between;padding:1px 2px 0;font-size:.78rem;font-family:monospace;color:#888}.gauge-label-center{color:#ccc;font-weight:700}.expression-panel{margin:8px 10px;padding:8px 10px;background:#0e0e14;border:1px solid #2a2a35;border-radius:var(--border-radius)}.expression-panel-title{font-size:.7rem;color:#667;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.expression-grid{display:flex;flex-wrap:wrap;gap:6px}.expression-empty{color:#445;font-size:.75rem;font-style:italic}.expression-note{flex:1 1 200px;min-width:180px;padding:6px 8px;background:#111118;border:1px solid #222230;border-radius:4px;font-size:.72rem;font-family:monospace}.expr-header{display:flex;gap:6px;align-items:center;margin-bottom:4px}.expr-voice{color:#8af;font-weight:700}.expr-phase{padding:1px 4px;border-radius:3px;font-size:.65rem;font-weight:700}.expr-phase-attack{background:#630;color:#fa4}.expr-phase-sustain{background:#042;color:#4d8}.expr-phase-decay{background:#332;color:#bb4}.expr-phase-release{background:#323;color:#a6b}.expr-phase-dead{background:#1a1a1a;color:#555}.expr-attack{color:#cca;font-size:.65rem}.expr-metrics,.expr-dynamics{display:flex;gap:8px;flex-wrap:wrap}.expr-dynamics{margin-top:2px}.expr-metric{display:flex;gap:3px}.expr-label{color:#556}.expr-value{color:#aab}.gauge-bend-arrow{position:absolute;top:-14px;transform:translate(-50%);font-size:.6rem;font-family:monospace;color:#f64;font-weight:700;white-space:nowrap;pointer-events:none}.tuner-string-rows{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px}.tuner-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#111118;border:1px solid #2a2a35;border-radius:var(--border-radius);transition:border-color .3s ease,background .3s ease}.tuner-row.tuned{border-color:var(--color-success);background:#4caf500f}.tuner-row.close{border-color:var(--color-warning);background:#ff98000d}.tuner-row.far{border-color:#444;background:#50506408}.tuner-row-left{display:flex;align-items:center;gap:8px;min-width:120px;flex-shrink:0}.play-tone-btn-vertical{background:linear-gradient(180deg,#66bb6a,#43a047);border:none;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#fff;font-size:17px;flex-shrink:0}.play-tone-btn-vertical:hover{transform:scale(1.1);box-shadow:0 2px 8px #4caf5066}.play-tone-btn-vertical.playing{background:linear-gradient(180deg,#42a5f5,#1976d2)}.tuner-row-label{display:flex;flex-direction:column;line-height:1.2;font-family:monospace}.string-num{font-size:.85rem;color:#bbb;text-transform:uppercase;letter-spacing:1px}.target-note{font-size:1.15rem;font-weight:700;color:var(--color-primary)}.target-hz{font-size:.85rem;color:#aaa}.target-hz:after{content:" Hz"}.tuner-gauge-wrap{flex:1;min-width:0}.tuner-gauge{width:100%}.tuner-row-right{min-width:80px;text-align:right;transition:opacity .3s ease;opacity:.3;flex-shrink:0}.detected-note-name{font-size:1.1rem;font-weight:700;font-family:monospace;color:var(--color-text)}.detected-cents{font-size:.8rem;font-weight:600;font-family:monospace;color:var(--color-text-dim);padding:1px 5px;border-radius:6px;display:inline-block}.detected-cents.tuned{color:var(--color-success);background:#4caf5026}.detected-cents.close{color:var(--color-warning);background:#ff980026}.detected-cents.far{color:#99a;background:#6464781f}@media (max-width: 640px){.tuner-row-left{min-width:90px}.tuner-row-right{min-width:60px}.dominant-note-name{font-size:2rem}.dominant-note-cents{font-size:1.1rem}}@media (max-width: 600px){.tuner-row{flex-wrap:wrap}.tuner-gauge-wrap{order:-1;flex:0 0 100%}.dominant-row{flex-direction:column}.dominant-gauge-col{width:100%;padding-top:20px}.dominant-note-name{text-align:center;min-width:unset}}.target-note:hover{text-decoration:underline dotted;text-underline-offset:3px}.tuner-row.tuner-override .target-note{color:var(--color-warning)}.tuner-note-picker{background:var(--color-bg, #1a1a24);border:1px solid #444;border-radius:6px;box-shadow:0 4px 16px #00000080;padding:4px}.tuner-note-select{background:var(--color-bg, #1a1a24);color:var(--color-text, #eee);border:none;font-family:monospace;font-size:.9rem;width:160px;outline:none}.tuner-note-select option:checked{background:var(--color-primary);color:#fff}.tuner-remove-string-btn{background:none;border:none;color:#bbb;font-size:1.43rem;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .2s,background .2s;flex-shrink:0}.tuner-remove-string-btn:hover{color:#e53935;background:#e539351f}.tuner-add-row{display:flex;justify-content:center;padding:4px 0}.tuner-add-string-btn{background:none;border:1px dashed #444;color:#888;padding:4px 16px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:color .2s,border-color .2s}.tuner-add-string-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.note-editor-vel-val{min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.note-editor-actions{float:right;display:inline-flex;gap:4px}.note-editor-action-btn{background:none;border:1px solid var(--border-color, #555);color:var(--text-color, #aaa);border-radius:4px;cursor:pointer;font-size:.85rem;line-height:1;padding:1px 6px;font-weight:700}.note-editor-action-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.note-editor-delete-btn:hover{color:#f44;border-color:#f44}.note-editor-unit{font-size:.7rem;opacity:.6;margin-left:2px}.note-editor-pos-row .note-editor-w5,.note-editor-pos-row .note-editor-w3{width:5.5em}.note-editor-vel-label{flex:1}.note-editor-fade-val{min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.note-editor-quantized-label{white-space:nowrap}.note-editor-quantized-label input[type=checkbox]{margin:0 0 0 2px;vertical-align:middle}.note-editor-pos-row{display:flex;align-items:center;gap:6px;margin:4px 0;flex-wrap:wrap}.note-editor-pos-row label{display:flex;align-items:center;gap:2px;font-size:.72rem}.note-editor-pos-label{font-weight:600;font-size:.65rem;opacity:.6;text-transform:uppercase}.note-editor-pos-row input[type=number]{width:6em}.note-editor-pos-row input[type=number].note-editor-beat,.note-editor-pos-row input[type=number].note-editor-div{width:3.5em}.note-editor-pos-row input[type=number].note-editor-measure{width:4.5em}.note-editor-pos-row select{max-width:100px;font-size:.75rem}.note-editor-offgrid{outline:1.5px solid #e8a820;outline-offset:-1px;border-radius:3px}.note-editor-offgrid-label{color:#e8a820!important;opacity:1!important}.note-editor-mixed{outline:1.5px dashed rgba(180,120,255,.7);outline-offset:-1px;border-radius:3px;opacity:.7}.note-editor-count{font-weight:400;font-size:.72rem;opacity:.7;margin-left:2px}.note-editor-pitch-name{font-weight:700;font-size:.82rem;min-width:2.5em;text-align:center;color:var(--color-primary, #4fc3f7)}input.note-editor-pitch{width:4.5em;text-align:center;font-weight:700;font-size:.82rem;color:var(--color-primary, #4fc3f7);cursor:ns-resize;caret-color:transparent}.note-editor-info-row{gap:10px;font-size:.72rem;opacity:.85}.note-editor-chord-label,.note-editor-mode-label{font-weight:600;font-size:.65rem;opacity:.6;text-transform:uppercase;margin-right:2px}.note-hover-tooltip{position:fixed;z-index:9999;background:#1e1e26f2;color:#ddd;border:1px solid rgba(120,120,160,.4);border-radius:6px;padding:6px 10px;font-size:.72rem;line-height:1.45;pointer-events:none;opacity:0;transition:opacity .12s;max-width:220px;white-space:nowrap}.note-hover-tooltip.visible{opacity:1}.fingering-toast{position:fixed;bottom:60px;left:50%;transform:translate(-50%) translateY(20px);background:#1e1e26f2;color:#ccc;border:1px solid rgba(120,120,160,.4);border-radius:8px;padding:8px 18px;font-size:.8rem;z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s,transform .3s}.fingering-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.note-editor-fing-row select{max-width:52px;font-size:.75rem}.note-editor-lock-label{font-size:.7rem;opacity:.5;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:1px}.note-editor-lock-label input[type=checkbox]{margin:0;vertical-align:middle}.note-editor-lock-label:has(input:checked){opacity:1}.note-hover-tooltip .note-tip-line{display:flex;justify-content:space-between;gap:8px}.note-hover-tooltip .note-tip-label{opacity:.55;font-size:.65rem;text-transform:uppercase}.note-hover-tooltip .note-tip-chord{color:#ffc107;font-weight:600}.note-hover-tooltip .note-tip-mode{color:#81c784;font-weight:600}.track-list{margin:4px 0;font-size:.78rem}.track-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.track-list-title{font-weight:600;opacity:.7;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.track-add-btn{background:none;border:1px dashed var(--border-color, #555);color:var(--text-color, #aaa);border-radius:4px;cursor:pointer;font-size:.8rem;padding:0 6px;line-height:1.4}.track-add-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.track-list-items{display:flex;flex-direction:column;gap:2px}.track-item{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;cursor:pointer;background:transparent;transition:background .15s}.track-item:hover{background:#ffffff0d}.track-item.active{background:rgba(var(--color-primary-rgb, 100,149,237),.18)}.track-item-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.track-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-item-btn{background:none;border:none;color:var(--text-color, #aaa);cursor:pointer;padding:0 2px;font-size:.75rem;opacity:.6}.track-item-btn:hover{opacity:1}.track-item-btn.muted{color:#f44;opacity:1}.track-item-btn.solo{color:#4f4;opacity:1}.track-format-toggle{display:inline-flex;align-items:center;gap:1px;font-size:.62rem;opacity:.7;cursor:pointer;white-space:nowrap}.track-format-toggle input[type=checkbox]{width:11px;height:11px;margin:0;accent-color:var(--color-primary, #6495ed)}.track-format-toggle span{pointer-events:none}.track-format-toggle:has(input:not(:checked)){opacity:.35}.track-item-meta{font-size:.68rem;opacity:.5;white-space:nowrap;margin-right:auto}.midi-monitor-group{display:flex;align-items:stretch;gap:4px;margin-left:auto}.midi-monitor-vu{position:relative;width:30px;height:42px;background:#ffffff14;border-radius:3px;overflow:hidden}.midi-monitor-vu-fill{position:absolute;bottom:0;left:0;right:0;height:0%;background:linear-gradient(0deg,#4f4,#ff0 60%,#f44);border-radius:0 0 3px 3px;transition:height .06s linear}.midi-monitor-vu-val{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-variant-numeric:tabular-nums;font-weight:600;color:#ffffffeb;text-shadow:0 0 3px rgba(0,0,0,.9),0 1px 1px rgba(0,0,0,.6);z-index:1;pointer-events:none}.midi-monitor-controls{display:flex;flex-direction:column;justify-content:center;gap:2px}.midi-monitor-cb{display:inline-flex;align-items:center;gap:2px;font-size:.65rem;cursor:pointer;opacity:.8;white-space:nowrap}.midi-monitor-cb input[type=checkbox]{width:11px;height:11px;margin:0;accent-color:var(--color-primary, #6495ed)}.midi-monitor-cb:has(input:not(:checked)){opacity:.4}.sub-panel-title{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-bottom:4px;padding-bottom:2px;border-bottom:1px solid var(--border-color, #333)}.note-editor-inactive{opacity:.45;pointer-events:none}.note-editor-inactive .sub-panel-title{opacity:1;pointer-events:auto}.note-editor-score-section{margin-top:6px;padding-top:6px;border-top:1px solid var(--color-border, #333)}.note-editor-score-title{font-size:.68rem;font-weight:600;color:var(--color-text-dim, #888);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.note-editor-score-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;font-size:.73rem}.note-score-lbl{color:var(--color-text-dim, #888)}.note-score-val{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text, #e0e0e0)}.note-score-val.score-correct{color:#2c5}.note-score-val.score-wrong{color:#f80}.note-score-val.score-missed{color:#d33}.note-score-val.score-extra{color:#888}.track-editor-vol-val,.track-editor-pan-val{min-width:28px;text-align:right;font-variant-numeric:tabular-nums;font-size:.78rem}.track-editor-actions{display:flex;gap:4px;margin-top:2px}.track-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;padding:0;background:#28283c80;border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#8ab;cursor:pointer;transition:background .15s,color .15s}.track-action-btn:hover{background:#3c3c5a99;color:#bdf}.track-action-btn:disabled{opacity:.35;cursor:default}.track-action-btn.processing{color:#fa4}.track-action-btn.processing .spin-icon{display:inline-flex;animation:spin-btn .8s linear infinite}@keyframes spin-btn{to{transform:rotate(360deg)}}.redetect-progress-wrap{display:flex;align-items:center;gap:6px;padding:2px 0}.redetect-progress-wrap.hidden{display:none}.redetect-progress-bar{flex:1;height:4px;background:#50508266;border-radius:2px;overflow:hidden;position:relative}.redetect-progress-bar:after{content:"";display:block;position:absolute;left:0;top:0;height:100%;width:var(--pct, 0%);background:#7af;border-radius:2px;transition:width .15s}.redetect-progress-pct{font-size:10px;color:#aaa;min-width:28px;text-align:right}#sessionEditorPanel{display:flex;flex-direction:column;gap:5px}.session-toolbar-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.session-name-input{flex:1;min-width:80px;background:var(--bg-input, #2a2a3a);color:var(--text-color, #ccc);border:1px solid var(--border-color, #555);border-radius:4px;padding:3px 6px;font-size:.8rem}.session-toolbar{display:flex;align-items:center;gap:2px;flex-shrink:0}.session-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;padding:0;background:#28283c80;border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#8ab;cursor:pointer;transition:background .15s,color .15s}.session-toolbar-btn:hover{background:#3c3c5a99;color:#bdf}.session-toolbar-btn.active{background:rgba(var(--color-primary-rgb, 100,149,237),.25);color:#7bb0ff;border-color:#7bb0ff4d}.session-toolbar-sep{width:1px;height:16px;background:#ffffff1a;margin:0 2px}.session-list-items{display:flex;flex-direction:column;gap:2px;max-height:112px;overflow-y:auto;margin-top:4px}.session-list-item{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;cursor:pointer;font-size:.75rem;background:transparent;transition:background .15s}.session-list-item:hover{background:#ffffff0d}.session-list-item.active{background:rgba(var(--color-primary-rgb, 100,149,237),.18)}.session-item-sigil{flex-shrink:0;width:14px;text-align:center;font-size:.65rem;line-height:1;cursor:default}.session-item-sigil.synced{color:#5cb85c}.session-item-sigil.cloud{color:#5bc0de}.session-item-sigil.local{color:#f0ad4e}.session-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item-date{opacity:.5;font-size:.7rem;white-space:nowrap}.session-item-btn{background:none;border:none;color:var(--text-color, #aaa);cursor:pointer;padding:0 2px;font-size:.75rem;opacity:.6}.session-item-btn:hover{opacity:1;color:#f44}.drive-sync-row{display:flex;flex-wrap:nowrap;margin-top:6px;align-items:center;gap:6px}.drive-sync-btn{width:auto!important;height:auto!important;padding:3px 10px!important;font-size:.72rem;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:var(--text-color, #ccc);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,border-color .15s}.drive-sync-btn:hover{background:#ffffff1f;border-color:#ffffff4d}.drive-sync-btn.active{color:#4ade80;border-color:#4ade8066;background:#4ade8014}.drive-restore-btn{width:auto!important;height:auto!important;padding:3px 10px!important;font-size:.72rem;white-space:nowrap;flex-shrink:0}.drive-restore-btn:hover{background:#fbbf242e;border-color:#fbbf2480;color:#fbbf24}.drive-sync-status{font-size:.68rem;opacity:.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#sessionSaveBtn.dirty{box-shadow:0 0 0 2px #f90}.session-meta-input{flex:1;min-width:60px;background:var(--bg-input, #2a2a3a);color:var(--text-color, #ccc);border:1px solid var(--border-color, #555);border-radius:4px;padding:2px 5px;font-size:.75rem}.session-meta-comments{width:100%;background:var(--bg-input, #2a2a3a);color:var(--text-color, #ccc);border:1px solid var(--border-color, #555);border-radius:4px;padding:2px 5px;font-size:.75rem;resize:vertical}@media (max-width: 768px){.tuning-display{grid-template-columns:1fr;gap:15px}.target-note,.detected-info{min-width:auto}.element-header{flex-wrap:wrap}}.notes-list{display:grid;gap:12px;min-height:450px;max-height:450px;height:450px;overflow-y:auto;overflow-x:hidden}.note-placeholder{text-align:center;color:var(--color-text-dim);padding:40px;font-style:italic;animation:fadeIn .3s ease}.note-slot{min-height:68px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);transition:all .3s ease}.note-slot.empty{background:#ffffff05;border:1px solid rgba(255,255,255,.05)}.note-slot.filled{background:#4a9eff0d;border:1px solid rgba(74,158,255,.2)}.note-placeholder-slot{color:var(--color-text-dim);font-size:1.5rem;opacity:.3}.note-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px;transition:all .3s ease}.note-slot.filled:hover{background:#4a9eff1a;border-color:#4a9eff66;transform:scale(1.02)}.note-info{display:flex;align-items:center;gap:20px}.note-name{font-size:2rem;font-weight:700;color:var(--color-primary);min-width:80px}.note-details{display:flex;flex-direction:column;gap:4px}.note-frequency{font-size:1.1rem;color:var(--color-text);font-family:monospace}.note-midi{font-size:.85rem;color:var(--color-text-dim)}.note-cents{font-size:.9rem;padding:4px 12px;border-radius:12px;font-family:monospace;font-weight:600}.note-cents.in-tune{background:#4caf5033;color:var(--color-success)}.note-cents.sharp{background:#ff980033;color:var(--color-warning)}.note-cents.flat{background:#2196f333;color:#2196f3}.note-confidence-bar{width:100px;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.note-confidence-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#7b2ff7);transition:width .4s ease}@media (max-width: 768px){.chord-name{font-size:2.5rem;min-height:100px;padding:30px 15px}.note-item{flex-direction:column;align-items:flex-start;gap:15px}.note-info,.note-confidence-bar{width:100%}}.instrument-definition-panel{max-width:1000px;margin:0 auto}.panel-header{text-align:center;margin-bottom:40px}.panel-header h2{font-size:2rem;margin-bottom:10px;background:linear-gradient(135deg,var(--color-primary),#7b2ff7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.panel-description{color:var(--color-text-dim);font-size:.95rem}.section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:25px;margin-bottom:25px}.section h3{font-size:1.3rem;margin-bottom:20px;color:var(--color-primary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{margin:0}.section-actions{display:flex;gap:10px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--color-text)}.form-input,.form-select{width:100%;padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-size:.95rem;font-family:var(--font-family);transition:var(--transition)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a9eff1a}.form-input-readonly{padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);display:flex;justify-content:space-between;align-items:center}.help-text{font-size:.85rem;color:var(--color-text-dim);font-style:italic}.frequency-range-inputs{display:flex;align-items:center;gap:15px;margin-bottom:8px}.freq-input-group{display:flex;flex-direction:column;gap:5px}.freq-input-group label{font-size:.85rem;color:var(--color-text-dim);margin-bottom:0}.form-input-small{width:120px;padding:8px 12px}.freq-separator{color:var(--color-text-dim);font-size:.9rem;margin-top:18px}@media (max-width: 768px){.frequency-range-inputs{flex-direction:column;align-items:flex-start}.freq-separator{margin-top:0;margin-left:10px}}.table-container{overflow-x:auto}.elements-table{width:100%;border-collapse:collapse}.elements-table th,.elements-table td{padding:12px;text-align:left;border-bottom:1px solid var(--color-border)}.elements-table th{background:var(--color-bg);font-weight:600;color:var(--color-primary);position:sticky;top:0}.elements-table tbody tr:hover{background:var(--color-surface-hover)}.table-input{width:100%;padding:6px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.9rem;font-family:var(--font-family)}.table-input:focus{outline:none;border-color:var(--color-primary)}.freq-display{font-family:Courier New,monospace;color:var(--color-text-dim)}.note-select-btn{padding:6px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-family:Courier New,monospace;transition:var(--transition)}.note-select-btn:hover{background:#3a89ef;transform:translateY(-1px)}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.2rem;opacity:.6;transition:var(--transition)}.btn-icon:hover{opacity:1;transform:scale(1.1)}.note-picker-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.note-picker-content{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--border-radius);padding:25px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.note-picker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.note-picker-header h4{margin:0;font-size:1.3rem;color:var(--color-primary)}.note-picker-close{background:none;border:none;font-size:2rem;color:var(--color-text-dim);cursor:pointer;line-height:1;padding:0;width:30px;height:30px;transition:var(--transition)}.note-picker-close:hover{color:var(--color-text);transform:rotate(90deg)}.note-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:10px}.note-btn{padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-weight:600;font-family:Courier New,monospace;cursor:pointer;transition:var(--transition)}.note-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #4a9eff4d}.validation-status{padding:15px;border-radius:6px;background:var(--color-bg)}.validation-message{font-weight:600;margin-bottom:10px}.validation-message.success{color:var(--color-success)}.validation-message.error{color:var(--color-error)}.validation-note{font-size:.9rem;color:var(--color-text-dim);font-style:italic}.validation-errors{list-style:none;padding:0;margin:10px 0 0}.validation-errors li{padding:8px;margin-bottom:5px;background:#f443361a;border-left:3px solid var(--color-error);border-radius:4px;font-size:.9rem}.button-group{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.btn{padding:12px 24px;border:none;border-radius:6px;font-weight:600;font-size:.95rem;cursor:pointer;transition:var(--transition);font-family:var(--font-family)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:#3a89ef;transform:translateY(-2px);box-shadow:0 4px 12px #4a9eff66}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}.btn-sm{padding:8px 16px;font-size:.85rem}.preset-selector{padding:15px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;margin-bottom:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.preset-selector label{font-weight:500;color:var(--color-text)}.preset-selector .form-select{flex:1;min-width:200px}.json-display{margin-top:20px;max-height:400px;overflow:auto;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px}.json-display pre{margin:0;padding:15px}.json-display code{font-family:Courier New,Consolas,Monaco,monospace;font-size:.85rem;line-height:1.5;color:var(--color-text)}.toast{position:fixed;bottom:30px;right:30px;padding:16px 24px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #00000080;font-weight:600;z-index:2000;opacity:0;transform:translateY(20px);transition:all .3s ease}.toast.show{opacity:1;transform:translateY(0)}.toast-success{border-color:var(--color-success);color:var(--color-success)}.toast-error{border-color:var(--color-error);color:var(--color-error)}@media (max-width: 768px){.header{height:auto;min-height:50px;padding:8px 0}.header-content{flex-direction:row;gap:6px;height:auto;padding:0 6px!important}.brand{flex-direction:row;text-align:left;gap:6px;height:auto;flex-shrink:1;min-width:0}.brand-logo{height:28px;width:auto;flex-shrink:0}.title{font-size:1.1rem;white-space:nowrap}.header-controls{width:auto;justify-content:flex-end;flex-wrap:nowrap;gap:4px;flex-shrink:0}.status-indicator{gap:0;padding:0 4px 0 0;border-right:1px solid rgba(255,255,255,.08);margin-right:0}.status-text{display:none}.status-indicator.has-message .status-text{display:block;white-space:normal;font-size:.65rem;max-width:80px;line-height:1.2}.cassette-controls{padding:4px 6px;gap:4px;border-radius:6px}.cassette-btn{width:32px;height:32px;font-size:14px}.cassette-btn svg{width:22px;height:22px}.cassette-btn .btn-icon{font-size:22px}.section{padding:15px}.section-header{flex-direction:column;align-items:flex-start;gap:15px}.button-group{flex-direction:column}.button-group .btn{width:100%}.elements-table{font-size:.85rem}.elements-table th,.elements-table td{padding:8px}.note-picker-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.preset-selector{flex-direction:column;align-items:stretch}.preset-selector .form-select{width:100%}}@media (max-width: 400px){.brand-logo{height:24px}.title{font-size:.95rem}.cassette-btn{width:28px;height:28px;font-size:12px}.cassette-controls{padding:3px 5px}.cassette-btn svg{width:18px;height:18px}.cassette-btn .btn-icon{font-size:18px}}.tracking-panels{display:flex;flex-direction:column;height:100%;gap:2px;padding:4px;box-sizing:border-box}.tracking-canvas{width:100%;flex:3;min-height:0}.tracking-canvas-adsr{flex:2}.tracking-canvas-voices{flex:1;max-height:60px}.detection-parameters-panel{background:var(--color-bg-secondary, #1a1a1a);border:1px solid var(--color-border, #333);border-radius:8px;padding:16px;margin:16px 0;font-family:Monaco,Menlo,Courier New,monospace;font-size:13px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--color-border, #333)}.panel-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text, #fff)}.toggle-btn{background:transparent;border:1px solid var(--color-border, #444);color:var(--color-text-dim, #999);padding:4px 12px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.toggle-btn:hover{background:var(--color-bg-tertiary, #2a2a2a);border-color:var(--color-primary, #4CAF50);color:var(--color-text, #fff)}.panel-content{display:block}.param-section{margin-bottom:24px}.param-section h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-primary, #4CAF50);text-transform:uppercase;letter-spacing:.5px}.param-grid,.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.param-item,.metric-item{display:flex;justify-content:space-between;padding:8px 12px;background:var(--color-bg-tertiary, #222);border-radius:4px;border-left:3px solid transparent;transition:all .2s}.param-item:hover,.metric-item:hover{background:var(--color-bg-hover, #2a2a2a)}.param-modified{border-left-color:var(--color-warning, #ff9800);background:#ff98001a}.metric-warning{border-left-color:var(--color-error, #f44336);background:#f443361a}.param-label,.metric-label{color:var(--color-text-dim, #999);font-weight:500}.param-value,.metric-value{color:var(--color-text, #fff);font-weight:600;font-family:Monaco,monospace}.no-results,.no-recommendations{color:var(--color-text-dim, #999);font-style:italic;text-align:center;padding:16px}.test-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;padding:12px;background:var(--color-bg-tertiary, #222);border-radius:6px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{color:var(--color-text-dim, #999);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.summary-value{color:var(--color-text, #fff);font-size:18px;font-weight:700;font-family:Monaco,monospace}.value-warning{color:var(--color-error, #f44336)}.test-details{display:flex;flex-direction:column;gap:8px}.test-item{padding:10px 12px;background:var(--color-bg-tertiary, #222);border-radius:4px;border-left:3px solid var(--color-primary, #4CAF50)}.test-name{font-weight:600;color:var(--color-text, #fff);margin-bottom:6px}.test-metrics{display:flex;gap:16px;font-size:12px;color:var(--color-text-dim, #999)}.test-metrics span{font-family:Monaco,monospace}.recommendations-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.recommendation-item{padding:12px;background:#ff98001a;border-left:4px solid var(--color-warning, #ff9800);border-radius:4px}.rec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.rec-param{font-weight:600;color:var(--color-warning, #ff9800);font-family:Monaco,monospace}.rec-change{font-weight:700;color:var(--color-text, #fff);font-family:Monaco,monospace;font-size:12px}.rec-reason{color:var(--color-text-dim, #bbb);font-size:12px;font-style:italic}.nylon-guitar-note{padding:16px;background:#4caf501a;border-left:4px solid var(--color-primary, #4CAF50);border-radius:4px;color:var(--color-text, #fff)}.nylon-guitar-note strong{display:block;margin-bottom:8px;color:var(--color-primary, #4CAF50)}.nylon-guitar-note ul{margin:0;padding-left:20px}.nylon-guitar-note li{margin:4px 0;color:var(--color-text-dim, #ccc);font-size:12px}.run-tests-btn{background:var(--color-primary, #4CAF50);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;margin:16px 0;width:100%;text-transform:uppercase;letter-spacing:.5px;font-size:13px}.run-tests-btn:hover{background:var(--color-primary-hover, #45a049);transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.run-tests-btn:active{transform:translateY(0)}.run-tests-btn:disabled{background:var(--color-bg-tertiary, #333);color:var(--color-text-dim, #666);cursor:not-allowed;transform:none}.test-status{text-align:center;padding:12px;margin:12px 0;border-radius:4px;font-weight:500}.test-status.running{background:#2196f31a;color:var(--color-info, #2196F3);border:1px solid var(--color-info, #2196F3)}.test-status.complete{background:#4caf501a;color:var(--color-success, #4CAF50);border:1px solid var(--color-success, #4CAF50)}.test-status.error{background:#f443361a;color:var(--color-error, #f44336);border:1px solid var(--color-error, #f44336)}@media (max-width: 768px){.param-grid,.metrics-grid,.test-summary{grid-template-columns:1fr}.rec-header{flex-direction:column;align-items:flex-start;gap:6px}}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}html{overscroll-behavior:none}body{overscroll-behavior:none;-webkit-overflow-scrolling:touch}#app{min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}@media (max-width: 479px){.header{height:56px;padding:0}.header-content{padding:0 8px!important;gap:8px}.brand-logo{height:48px}.title{font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;max-width:120px}.status-indicator{display:none}.cassette-controls{padding:6px 8px;gap:4px}.cassette-btn{width:36px;height:36px;font-size:16px}}@media (max-width: 479px){.view-selector{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;margin-bottom:8px;padding-bottom:2px;flex-wrap:nowrap}.view-selector::-webkit-scrollbar{display:none}.view-btn{flex:1;min-width:0;padding:10px 12px;min-height:44px;font-size:.78rem;white-space:nowrap}}@media (max-width: 479px){.main{padding:8px 0}.container{padding:0 8px}.view-container{border-radius:4px;padding:8px;margin-bottom:8px}}@media (max-width: 479px){.tuner-strings-vertical{gap:4px;padding:4px;min-height:350px}.tuner-string-vertical{min-width:48px;padding:6px 4px}.target-note-vertical .note-name{font-size:1.1rem}.target-note-vertical .frequency{font-size:.6rem}.string-label{font-size:.7rem}.meter-bar-vertical{width:28px;min-height:150px}.detected-info-vertical .detected-note{font-size:.9rem}.detected-info-vertical .cents-offset{font-size:.7rem;padding:1px 4px}.play-tone-btn-vertical{width:34px;height:34px;font-size:17px}.tuner-controls{padding:0}.tuner-controls h4{font-size:.85rem;margin-bottom:4px}.control-group{margin-bottom:4px}.control-label{flex-direction:column;align-items:flex-start;gap:2px;font-size:.8rem}.control-label input[type=range]{width:100%!important;margin:4px 0!important}.control-hint{display:none}}@media (max-width: 479px){.detection-strips{gap:1px;margin-top:6px}.detection-strip{padding:0;min-height:24px}.strip-header{padding:1px 2px;min-width:42px}.strip-name{font-size:8px}.detection-strip .viz-toggle{width:14px;height:12px}.detection-strip .viz-toggle .eye-icon{font-size:8px}.signal-flow-panel{padding:8px}.signal-flow-container{gap:4px}.flow-stage{flex:1 1 calc(33% - 8px);min-width:80px;max-width:none;padding:6px}.flow-arrow{display:none}.stage-name{font-size:10px;letter-spacing:0}.stage-enable,.data-row{font-size:9px}.stage-header{margin-bottom:4px;padding-bottom:4px}}@media (max-width: 479px){.chord-display{padding:12px}.chord-name{font-size:2.5rem}}@media (max-width: 479px){#spectrumCanvas,#waveformCanvas{width:100%!important;height:calc(100dvh - 56px - 44px - 60px - var(--safe-top) - var(--safe-bottom))!important;min-height:200px;max-height:400px}.spectrum-controls{padding:4px 0}.spectrum-controls .control-group{display:flex;flex-wrap:wrap;margin-bottom:2px}.spectrum-controls .control-label{font-size:.75rem}.waveform-info{font-size:.75rem;padding:4px}}@media (max-width: 479px){.config-info{padding:8px!important}.config-info pre{font-size:.7rem;padding:6px!important}#profileSelector{width:100%;font-size:.85rem}}@media (max-width: 479px){.footer{padding:8px 0}.footer-content{flex-direction:column;gap:4px;text-align:center;font-size:.75rem}.footer-buttons{display:flex;gap:8px;justify-content:center}.footer-btn{font-size:.75rem;padding:6px 12px}}@media (max-width: 479px){.modal-content{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}}@media (min-width: 480px) and (max-width: 767px){.flow-stage{flex:1 1 calc(25% - 12px);min-width:90px;max-width:none}.flow-arrow{display:none}.tuner-strings-vertical{gap:6px;min-height:400px}.tuner-string-vertical{min-width:55px;padding:8px 5px}}@media (min-width: 480px) and (max-width: 767px){.header{height:60px}.brand-logo{height:56px}.title{font-size:1.3rem}.view-selector{flex-wrap:wrap;gap:4px}.view-btn{flex:1 1 calc(33.33% - 4px);min-width:100px;min-height:44px;font-size:.82rem;padding:8px 10px}.container{padding:0 12px}.view-container{padding:10px}.control-label input[type=range]{width:150px!important}#spectrumCanvas,#waveformCanvas{height:300px!important;min-height:200px}}@media (min-width: 768px) and (max-width: 1023px){.header{height:70px}.title{font-size:1.5rem}.view-btn{min-height:50px;font-size:.88rem}.container{padding:0 16px}#spectrumCanvas,#waveformCanvas{height:350px}.flow-stage{max-width:none}.flow-arrow{display:none}}@media (max-height: 480px) and (orientation: landscape){.header{height:44px}.brand-logo{height:40px}.title{font-size:1rem}.cassette-btn{width:32px;height:32px;font-size:14px}.view-selector{margin-bottom:4px}.view-btn{min-height:36px;padding:6px 8px;font-size:.75rem}.main{padding:4px 0}.view-container{padding:6px;margin-bottom:4px}#spectrumCanvas,#waveformCanvas{height:calc(100dvh - 120px)!important;min-height:120px}.footer{display:none}}@media (pointer: coarse){*{touch-action:manipulation}.btn,.view-btn,.cassette-btn,button,input[type=checkbox],select{min-height:44px;min-width:44px}input[type=range]{height:44px}.btn:hover,.view-btn:hover,.cassette-btn:hover{transform:none}#tuneView{grid-template-columns:1fr}.tune-panel--half{grid-column:1 / -1}}@media print{.cassette-controls,.view-selector,.footer,.spectrum-controls,.tuner-controls,.waveform-info,.modal{display:none!important}}
