:root{--bg-dark:#0f111a;--bg-surface:#1e212c99;--bg-surface-hover:#2b2f3ccc;--glass-border:#ffffff14;--pill-bg:#0000002e;--ctrl-bg-soft:#ffffff08;--ctrl-bg:#ffffff0d;--ctrl-hover:#ffffff12;--ctrl-track:#ffffff1f;--primary:#0067b9;--primary-glow:#0067b966;--secondary:#0088d1;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--text-main:#f8fafc;--text-muted:#94a3b8;--radius:16px;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--titlebar-height:34px}html[data-theme=light]{--bg-dark:#eef2ff;--bg-surface:#ffffffdb;--bg-surface-hover:#f7fafff2;--glass-border:#0f172a26;--pill-bg:#0f172a0f;--ctrl-bg-soft:#0f172a05;--ctrl-bg:#0f172a09;--ctrl-hover:#0f172a0d;--ctrl-track:#0f172a1f;--text-main:#0f172a;--text-muted:#475569}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-dark);color:var(--text-main);background-image:radial-gradient(at 0 0,#0067b929 0,#0000 50%),radial-gradient(at 100% 100%,#0088d121 0,#0000 50%);background-attachment:fixed;min-height:100vh;font-family:Inter,sans-serif;overflow:hidden}h1,h2,h3{font-family:Outfit,sans-serif}.app-container{flex-direction:column;gap:.45rem;max-width:1600px;height:100vh;margin:0 auto;padding:.65rem;display:flex}.app-container.desktop-host{padding-top:.3rem}.desktop-titlebar{min-height:var(--titlebar-height);border:1px solid var(--glass-border);border-radius:calc(var(--radius) - 2px);-webkit-backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;background:linear-gradient(#ffffff0b,#ffffff05);justify-content:space-between;align-items:center;gap:.55rem;padding:.18rem .35rem .12rem;display:none;box-shadow:0 4px 20px #00000029}.desktop-host .desktop-titlebar{display:flex}.desktop-titlebar__drag{flex:auto;align-items:center;gap:.5rem;min-width:0;display:flex}.desktop-titlebar__drag:active{cursor:grabbing}.desktop-titlebar__drag *{pointer-events:none}.desktop-titlebar__wordmark{letter-spacing:-.1px;background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:.84rem;font-weight:500}.desktop-titlebar__badge{border:1px solid var(--glass-border);background:var(--pill-bg);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.14rem .38rem;font-size:.62rem;font-weight:600;display:inline-flex}.desktop-titlebar__controls{-webkit-app-region:no-drag;flex:none;align-items:center;gap:.22rem;display:inline-flex}.desktop-titlebar__btn{border:1px solid var(--glass-border);width:28px;height:24px;color:var(--text-muted);font:inherit;cursor:pointer;transition:var(--transition);background:#ffffff0a;border-radius:6px;justify-content:center;align-items:center;font-size:.82rem;line-height:1;display:inline-flex}.desktop-titlebar__btn:hover{color:var(--text-main);background:#ffffff14;border-color:#ffffff24}.desktop-titlebar__btn--close:hover{color:#fff;background:#ef4444d1;border-color:#ef444473}.desktop-titlebar__btn:focus-visible{outline-offset:2px;outline:2px solid #0067b980}.desktop-titlebar__btn:disabled{opacity:.45;cursor:default;pointer-events:none}.glass-header{display:none}.glass-panel{background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius);padding:.9rem;box-shadow:0 4px 30px #0003}.glass-header{background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);border-radius:var(--radius);flex-shrink:0;justify-content:space-between;align-items:center;padding:.45rem .7rem;transition:padding .2s;display:flex}.logo h1{letter-spacing:-.2px;background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.15rem;font-weight:700}.status-bar{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}.status-indicator{border:1px solid var(--glass-border);background:var(--pill-bg);color:var(--text-muted);border-radius:999px;flex-shrink:0;align-items:center;gap:.45rem;padding:.25rem .55rem;font-size:.8rem;line-height:1;display:inline-flex}.btn-header-sweep{width:auto;min-width:84px;box-shadow:0 3px 10px var(--primary-glow);flex-shrink:0;padding:.35rem .8rem;font-size:.82rem;line-height:1}.theme-toggle{justify-content:center;align-items:center;width:30px;min-width:30px;height:28px;padding:0;font-size:.9rem;display:inline-flex}.dot{border-radius:50%;width:10px;height:10px}.dot.connected{background:var(--success);box-shadow:0 0 10px var(--success)}.dot.disconnected{background:var(--error);box-shadow:0 0 10px var(--error)}.dot.warn{background:var(--warn,#e0a44c);box-shadow:0 0 10px var(--warn,#e0a44c)}.if-pill{font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help}.dashboard{flex:1;grid-template-columns:clamp(290px,26vw,340px) minmax(0,1fr);gap:.9rem;height:100%;min-height:0;transition:grid-template-columns .3s ease-out;display:grid}.dashboard.settings-collapsed{grid-template-columns:74px minmax(0,1fr)}.controls-panel{flex-direction:row;align-items:stretch;gap:.45rem;display:flex;overflow:hidden}.panel-header-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sidebar-footer{border-top:1px solid var(--glass-border);margin-top:auto;padding-top:.75rem}.sidebar-footer .theme-toggle{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.sidebar-footer .theme-label{font-size:.85rem}.stats-spacer{flex:auto}.btn-reboot{margin-right:1rem;padding:.25rem .5rem;font-size:.75rem}.panel-title{color:var(--text-main);border-bottom:1px solid var(--glass-border);margin-bottom:.55rem;padding-bottom:.5rem;font-size:1.2rem}.btn-small{padding:.35rem .6rem;font-size:.8rem}.icon-toggle-btn{justify-content:center;align-items:center;width:30px;min-width:30px;height:30px;padding:0;font-size:1rem;font-weight:700;display:flex}.controls-panel.collapsed .panel-title,.controls-panel.collapsed .accordion,.controls-panel.collapsed .divider,.controls-panel.collapsed .action-row{display:none}.controls-panel.collapsed{justify-content:center;align-items:flex-start;padding:.3rem .4rem;overflow:hidden}.controls-panel.collapsed .sidebar-icons{margin:0 auto;padding-top:2.55rem}.controls-panel.collapsed .panel-header-row{justify-content:center;width:100%}.sidebar-icons{flex-direction:column;flex:0 0 40px;align-items:center;gap:.5rem;width:40px;min-width:40px;padding:.15rem 0;display:none}.controls-panel.collapsed .sidebar-icons{display:flex}.controls-panel:not(.collapsed) .sidebar-icons{display:none}.sidebar-icons-spacer{flex:auto}#sidebar-content{flex-direction:column;flex:auto;min-width:0;height:100%;display:flex;overflow:hidden}.controls-panel.collapsed #sidebar-content{display:none}.sidebar-icon-btn{border:1.5px solid var(--glass-border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:1.1rem;transition:all .2s;display:flex;position:relative}.sidebar-icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none;width:18px;height:18px}.sidebar-icon-btn:hover{border-color:var(--primary);color:var(--primary);background:#0067b914}.sidebar-icon-btn.active{border-color:var(--primary);color:var(--primary);background:#0067b926}.sidebar-icon-btn[title]{cursor:pointer}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.accordion{flex:1 1 0;min-height:0;padding-right:.5rem;overflow-y:auto}.accordion::-webkit-scrollbar{width:6px}.accordion::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.accordion-item{border:1px solid var(--glass-border);background:var(--ctrl-bg-soft);border-radius:8px;margin-bottom:.35rem;overflow:hidden}.accordion-header{text-align:left;width:100%;color:var(--text-main);cursor:pointer;transition:var(--transition);background:0 0;border:none;justify-content:space-between;padding:.7rem .8rem;font-size:.95rem;font-weight:600;display:flex}.accordion-header:hover{background:var(--ctrl-hover)}.accordion-item.active .accordion-header{color:var(--primary);border-bottom:1px solid var(--glass-border);background:#0067b91a}.accordion-header span{transition:transform .3s}.accordion-item.active .accordion-header span{transform:rotate(180deg)}.accordion-icon{opacity:.8;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-right:.5rem;display:inline-flex}.accordion-item.active .accordion-icon{opacity:1}.accordion-body{max-height:0;padding:0 .7rem;transition:max-height .3s ease-out,padding .3s;overflow:hidden}.accordion-item.active .accordion-body{max-height:800px;padding:.35rem .5rem}.header-with-tabs{border-bottom:1px solid var(--glass-border);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;padding-bottom:.35rem;transition:max-height .2s,opacity .2s;display:flex}.header-with-tabs.collapsed{opacity:0;max-height:0;margin-bottom:0;padding-bottom:0;overflow:hidden}.header-left{flex-wrap:nowrap;flex:auto;align-items:center;gap:.75rem;min-width:0;display:flex;overflow-x:auto}.app-wordmark{letter-spacing:-.1px;background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:500}.desktop-host .app-wordmark{display:none}.header-actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.header-with-tabs .panel-title{border:none;margin:0;padding:0}.tab-list{gap:.5rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:500}.tab-btn:hover{background:#ffffff1a}.tab-btn.active{color:var(--primary);background:#0067b926}.tab-content{visibility:hidden;pointer-events:none;height:100%;position:absolute;inset:0}.tab-content.active{visibility:visible;pointer-events:auto}.control-group{margin-bottom:.3rem}.control-group label{color:var(--text-muted);margin-bottom:.25rem;font-size:.85rem;font-weight:500;display:block}.val-display{color:var(--primary);float:right;font-family:monospace}.modern-slider{-webkit-appearance:none;background:var(--ctrl-track);border-radius:2px;outline:none;width:100%;height:4px}.modern-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--primary);cursor:pointer;width:18px;height:18px;box-shadow:0 0 10px var(--primary-glow);transition:var(--transition);border-radius:50%}.modern-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.modern-select{background:var(--ctrl-bg);border:1px solid var(--glass-border);width:100%;color:var(--text-main);transition:var(--transition);border-radius:6px;outline:none;padding:.5rem;font-family:inherit}.modern-select:focus,.modern-input:focus,.modern-input-small:focus{border-color:var(--primary)}.modern-input{background:var(--ctrl-bg);border:1px solid var(--glass-border);width:100%;color:var(--text-main);transition:var(--transition);border-radius:6px;outline:none;padding:.5rem;font-family:inherit}.combo-group{flex-direction:column;display:flex}.combo-inputs{align-items:center;gap:10px;display:flex}.modern-input-small{background:var(--ctrl-bg);border:1px solid var(--glass-border);width:70px;color:var(--text-main);text-align:right;transition:var(--transition);border-radius:4px;outline:none;padding:.25rem .5rem;font-family:monospace;font-size:.85rem}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.btn{cursor:pointer;transition:var(--transition);border:none;border-radius:6px;outline:none;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;box-shadow:0 4px 15px var(--primary-glow);width:100%}.btn-primary.btn-header-sweep{width:auto}.btn-primary:hover{box-shadow:0 6px 20px var(--primary-glow);transform:translateY(-2px)}.btn-outline{border:1px solid var(--glass-border);color:var(--text-main);background:0 0}.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:#ffffff0d}.btn-danger{color:#fff;background:#ef4444;border:1px solid #dc2626}.freeze-bubble-layer{pointer-events:none;z-index:5;flex-direction:column;gap:4px;display:flex;position:absolute;top:56px;right:18px}.freeze-bubble{color:#fff;text-align:center;white-space:nowrap;border-radius:12px;min-width:1.4rem;padding:.18rem .55rem;font-family:Outfit,sans-serif;font-size:.85rem;font-weight:700;line-height:1;box-shadow:0 2px 6px #00000040}.btn-freeze{position:relative;overflow:hidden}.btn-freeze-fill{pointer-events:none;border-radius:inherit;background:#ef44448c;width:0;transition:width linear;position:absolute;top:0;bottom:0;left:0}.btn-freeze.holding .btn-freeze-fill{width:100%;transition:width .7s linear}.btn-freeze.flash{animation:.24s ease-out btn-freeze-flash}.btn-freeze-label{z-index:1;position:relative}@keyframes btn-freeze-flash{0%{background:#ef444466}to{background:0 0}}.btn-hold{--hold-ms:1.2s;--hold-fill:#6366f18c;position:relative;overflow:hidden}.btn-hold-fill{background:var(--hold-fill);pointer-events:none;border-radius:inherit;width:0;transition:width linear;position:absolute;top:0;bottom:0;left:0}.btn-hold.holding .btn-hold-fill{width:100%;transition:width var(--hold-ms) linear}.btn-hold.flash{animation:.24s ease-out btn-hold-flash}.btn-hold-label{z-index:1;position:relative}.stat-box.btn-hold{cursor:pointer;-webkit-user-select:none;user-select:none}.stat-box.btn-hold .stat-label,.stat-box.btn-hold .stat-value{z-index:1;position:relative}.stat-box.btn-hold:hover{border-color:#6366f18c}.stat-box.btn-hold:focus-visible{outline-offset:2px;outline:2px solid #6366f1cc}@keyframes btn-hold-flash{0%{background:#6366f166}to{background:0 0}}.status-indicator.btn-hold{--hold-ms:2s;--hold-fill:#ef44448c;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.status-indicator.btn-hold>.dot,.status-indicator.btn-hold>span:not(.btn-hold-fill){z-index:1;position:relative}.status-indicator.btn-hold:focus-visible{outline-offset:2px;outline:2px solid #ef4444cc}.ctf-sectors{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.78rem}.ctf-sectors th,.ctf-sectors td{border:1px solid var(--border-color,#80808059);text-align:center;padding:.2rem .15rem}.ctf-sectors th{color:var(--text-color,inherit);background:#6366f11f;font-weight:600}.ctf-sectors td{color:var(--text-muted)}.btn-danger:hover{background:#dc2626;border-color:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed;background:#6b7280;border-color:#4b5563}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.taper-buttons{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.action-row{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.calibration-feedback{flex-direction:column;gap:.35rem;margin-top:.55rem;display:flex}.calibration-status-pill{border:1px solid var(--glass-border);background:var(--pill-bg);border-radius:999px;align-self:flex-start;align-items:center;gap:.32rem;padding:.2rem .52rem;font-size:.72rem;font-weight:600;line-height:1;display:inline-flex}.calibration-status-pill.idle{color:var(--text-muted)}.calibration-status-pill.running{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b66}.calibration-status-pill.running:before{content:"";border:2px solid #f59e0b59;border-top-color:#f59e0b;border-radius:50%;width:.58rem;height:.58rem;animation:.85s linear infinite cal-spin}.calibration-status-pill.ok{color:#10b981;background:#10b9811a;border-color:#10b98166}.calibration-status-pill.error{color:#ef4444;background:#ef44441a;border-color:#ef444466}.calibration-status-text{min-height:1.05rem;color:var(--text-muted);white-space:pre-wrap;font-family:Consolas,Courier New,monospace;font-size:.74rem;line-height:1.32}@keyframes cal-spin{to{transform:rotate(360deg)}}.toggle-container{cursor:pointer;color:var(--text-muted);justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.toggle-container input{display:none}.checkmark{background:var(--ctrl-track);width:36px;height:18px;transition:var(--transition);border-radius:9px;flex-shrink:0;position:relative}.checkmark:after{content:"";width:14px;height:14px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle-container input:checked~.checkmark{background:var(--primary)}.toggle-container input:checked~.checkmark:after{left:20px}.toggle-container.compact{gap:.4rem;font-size:.75rem}.toggle-container.compact .checkmark{border-radius:7px;width:28px;height:14px}.toggle-container.compact .checkmark:after{width:10px;height:10px}.toggle-container.compact input:checked~.checkmark:after{left:16px}.divider{background:var(--glass-border);border:none;height:1px;margin:.55rem 0}.lab-presets-list{flex-direction:column;gap:.4rem;display:flex}.lab-presets-list .lab-btn{text-align:left;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.lab-num{width:1.4rem;height:1.4rem;color:var(--primary);background:#0067b926;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.sliders-list{flex-direction:column;gap:.5rem;display:flex}.dense-list{gap:.18rem}#elements-gain-container{grid-template-columns:1fr;gap:.18rem;display:grid}#elements-gain-container .element-row,#elements-phase-container .element-row{gap:.6rem;padding:.28rem .5rem}.element-row{background:var(--ctrl-bg);border:1px solid var(--glass-border);border-radius:6px;grid-template-columns:30px 1fr;align-items:center;gap:1rem;padding:.4rem .75rem;display:grid}.element-header{width:25px;height:25px;color:var(--primary);background:#ffffff0d;border-radius:6px;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.graph-panel{flex-direction:column;min-height:0;display:flex}.plots-stack{flex:auto;height:0;min-height:0;position:relative}.chart-wrapper{width:100%;height:100%;min-height:0;position:absolute;inset:0}.logs-pane{flex-direction:column;gap:.45rem;height:100%;min-height:0;display:flex}.logs-toolbar{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.logs-title{color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;font-size:.82rem}.log-console{border:1px solid var(--glass-border);min-height:0;color:var(--text-main);background:#00000038;border-radius:8px;flex:1;padding:.5rem;font-family:Consolas,Courier New,monospace;font-size:.76rem;line-height:1.35;overflow:auto}.log-line{white-space:pre-wrap;word-break:break-word;margin-bottom:.22rem}.log-line:last-child{margin-bottom:0}.log-line.warn{color:#fcd34d}.log-line.error{color:#f44;text-shadow:0 0 1px #ff444480;font-weight:600}.cal-log{border:1px solid var(--glass-border);min-height:56px;max-height:140px;color:var(--text-muted);white-space:pre-wrap;background:#0003;border-radius:6px;padding:.5rem;font-family:monospace;font-size:.78rem;overflow:auto}.flex-grow{flex-grow:1}.chart-stats{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.7rem;display:flex}.stat-box{background:var(--pill-bg);border:1px solid var(--glass-border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;padding:.55rem .8rem;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.stat-value{color:var(--success);font-family:monospace;font-size:1.05rem;font-weight:700}.stat-box.compact{border-radius:8px;padding:.35rem .6rem}.stat-box.compact .stat-label{letter-spacing:.5px;font-size:.65rem}.stat-box.compact .stat-value{font-size:.9rem}.backend-status-pill{border:1px solid var(--glass-border);background:var(--pill-bg);color:var(--text-muted);border-radius:999px;flex-shrink:0;align-items:center;gap:.3rem;padding:.22rem .55rem;font-size:.72rem;font-weight:600;line-height:1;display:inline-flex}.backend-status-pill.state-starting{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b66}.backend-status-pill.state-ready{color:#10b981;background:#10b9811a;border-color:#10b98166}.backend-status-pill.state-error{color:#ef4444;background:#ef44441a;border-color:#ef444466}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-body p{color:var(--text-main);margin:0 0 .75rem;line-height:1.45}.confirm-body ul{color:var(--text-main);margin:0 0 .75rem;padding-left:1.25rem;line-height:1.45}.confirm-body .confirm-note{color:var(--text-muted);font-size:.9em}#confirm-modal{z-index:1001}.modal-overlay[hidden]{display:none}.modal{border-radius:16px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;padding:1.25rem;display:flex;box-shadow:0 25px 50px -12px #00000080}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-title{color:var(--text-main);margin:0;font-size:1.25rem;font-weight:600}.modal-body{flex:1;overflow-y:auto}.modal-footer{border-top:1px solid var(--glass-border);justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.cal-status-indicator{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.cal-spinner{border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:none}.cal-spinner.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cal-status-text{color:var(--text-main);font-size:1rem}.cal-status-text.success{color:#10b981}.cal-status-text.error{color:#ef4444}.cal-output{border:1px solid var(--glass-border);color:var(--text-muted);white-space:pre-wrap;word-break:break-word;background:#0003;border-radius:8px;max-height:200px;padding:.75rem;font-family:Consolas,Monaco,monospace;font-size:.8rem;overflow-y:auto}.cal-output:empty{display:none}.chart-stats{--stat-row-h:2.75rem;--stat-row-radius:10px;margin-top:.6rem}.plot-stats,.status-pills{align-items:center;gap:.55rem;display:flex}.plot-stats{flex-wrap:wrap}.status-pills{flex-wrap:nowrap;align-items:stretch;margin-left:auto}.plot-stats .stat-box{height:var(--stat-row-h);border-radius:var(--stat-row-radius);justify-content:center;gap:.1rem;padding:.3rem .7rem}.plot-stats .stat-label{letter-spacing:.5px;white-space:nowrap;font-size:.66rem}.plot-stats .stat-value{white-space:nowrap;font-size:.95rem}.stat-toggle{font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-width:8.2rem}.stat-toggle:hover{border-color:#6366f18c}.stat-toggle:focus-visible{outline-offset:2px;outline:2px solid #6366f1cc}.stat-toggle-icon{opacity:.6}@media (width<=900px){body{overflow:hidden auto}.app-container{height:auto;min-height:100dvh;padding:.5rem}.dashboard,.dashboard.settings-collapsed{grid-template-columns:1fr;height:auto}.graph-panel{order:1}.controls-panel{order:2}.plots-stack{flex:none;height:min(52dvh,95vw);min-height:260px}.controls-panel{overflow:visible}.accordion{flex:none;height:auto;overflow-y:visible}.header-with-tabs{flex-wrap:wrap}.header-left{flex-wrap:wrap;overflow-x:visible}.header-actions{flex-wrap:wrap}.sidebar-icons{display:none!important}.controls-panel.collapsed #sidebar-content{display:flex}.controls-panel.collapsed .panel-title{display:block}.controls-panel.collapsed{padding:.9rem}.controls-panel.collapsed .panel-header-row{justify-content:space-between}#sidebar-content{height:auto;overflow:visible}.panel-header-row{z-index:5;background-color:var(--bg-dark);background-image:linear-gradient(var(--bg-surface), var(--bg-surface));border-bottom:1px solid var(--glass-border);border-radius:var(--radius) var(--radius) 0 0;margin:-.9rem -.9rem 0;padding:.9rem .9rem .5rem;position:sticky;top:0}}@media (width<=600px){.chart-stats{--stat-row-h:2.5rem}.plot-stats,.status-pills{flex-basis:100%;justify-content:space-evenly;gap:.4rem}.status-pills{margin-left:0}.status-pills .status-indicator{gap:.35rem;padding:.22rem .45rem;font-size:.74rem}.status-pills .dot{width:8px;height:8px}.plots-stack:has(#tab-polar.active){height:min(34dvh,62vw);min-height:190px}}.interferer-badge[hidden],#interferer-phase-group[hidden],.plot-stats .stat-box[hidden]{display:none}.interferer-toggle{width:100%}.interferer-toggle[aria-pressed=true]{background:var(--warning);border-color:var(--warning);color:#111}.interferer-toggle[aria-pressed=true]:hover{color:#111;border-color:var(--warning);background:var(--warning);filter:brightness(1.08)}.interferer-note{color:var(--text-muted);margin:.5rem 0 0;font-size:.75rem;line-height:1.35}.interferer-badge{z-index:5;pointer-events:none;background:var(--warning);color:#111;letter-spacing:1px;text-transform:uppercase;border-radius:999px;padding:.2rem .7rem;font-size:.72rem;font-weight:700;position:absolute;top:.5rem;left:50%;transform:translate(-50%)}#chart-polar.polar-source-hover,#chart-polar.polar-source-hover *{cursor:grab!important}#chart-polar.polar-source-dragging,#chart-polar.polar-source-dragging *{cursor:grabbing!important}.scene-svg{--scene-target:var(--success);--scene-interferer:var(--warning);--scene-beam:var(--error);touch-action:none;-webkit-user-select:none;user-select:none;font-family:inherit}.scene-field{fill:var(--ctrl-bg-soft)}.scene-grid path,.scene-grid line{fill:none;stroke:var(--ctrl-track);stroke-width:.8px}.scene-grid .scene-field{stroke:var(--ctrl-track)}.scene-pattern{fill:#10b98124;stroke:var(--success);stroke-width:2.4px;stroke-linejoin:round}.scene-beam-ray{stroke:var(--scene-beam);stroke-width:2.4px;stroke-dasharray:4 3}.scene-source-ray{stroke-width:1px;stroke-dasharray:1 3;stroke-linecap:round}.scene-source-ray.scene-target{stroke:var(--scene-target)}.scene-source-ray.scene-interferer{stroke:var(--scene-interferer)}.scene-array .scene-sub0{fill:var(--primary)}.scene-array .scene-sub1{fill:var(--secondary)}.scene-handle{cursor:grab;outline:none}.scene-handle.dragging{cursor:grabbing}.scene-hit{fill:#0000}.scene-handle .scene-icon{stroke:var(--bg-dark);stroke-width:1.2px}.scene-handle.scene-target .scene-icon{fill:var(--scene-target)}.scene-handle.scene-interferer .scene-icon{fill:var(--scene-interferer)}.scene-icon-face{fill:var(--bg-dark);opacity:.55}.scene-handle:focus-visible .scene-hit,.scene-handle.dragging .scene-hit{fill:var(--ctrl-hover);stroke:var(--text-muted);stroke-width:.8px}.scene-handle-value{pointer-events:none;font-size:22px;font-weight:600}.scene-handle.scene-target text{fill:var(--scene-target)}.scene-handle.scene-interferer text{fill:var(--scene-interferer)}.scene-mini{z-index:6;border:1px solid var(--glass-border);background:var(--bg-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;width:240px;position:absolute;top:.4rem;right:.4rem;overflow:hidden;box-shadow:0 4px 14px #00000040}.scene-mini[hidden]{display:none}.scene-mini svg{width:100%;height:auto;padding:0 4px 2px;display:block}.scene-mini-bar{justify-content:space-between;align-items:center;padding:2px 4px 0 8px;display:flex}.scene-mini-open,.scene-mini-close{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;font-size:.72rem;font-weight:600}.scene-mini-open:hover,.scene-mini-close:hover{color:var(--text-main)}.scene-mini-close{padding:0 4px;font-size:1rem;line-height:1}@media (width<=600px){.scene-mini{width:150px}}#chart-rect.rect-source-hover,#chart-rect.rect-source-hover *,#chart-rect.rect-source-dragging,#chart-rect.rect-source-dragging *{cursor:ew-resize!important}
