:root{--bg:#0f172a;--bg-card:#1e293b;--bg-card-hover:#334155;--bg-inset:#0b1220;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-soft:#818cf82e;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#64748b;--border-color:#334155;--color-error:#ef4444;--color-warning:#f59e0b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/145% -apple-system,Segoe UI,Roboto,sans-serif}body{background:#000;margin:0;overflow:hidden}#chladni-canvas{z-index:0;background:0 0;width:100vw;height:100vh;position:fixed;top:0;left:0}#control-panel{z-index:2;box-sizing:border-box;width:340px;height:100vh;color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid var(--border-color);background:#0f172ad1;flex-direction:column;gap:14px;padding:20px 16px 28px;font-family:ui-monospace,Consolas,monospace;font-size:13px;transition:transform .3s;display:flex;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(0)}#control-panel.panel-collapsed{transform:translate(-100%)}#control-panel::-webkit-scrollbar{width:8px}#control-panel::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}#control-panel::-webkit-scrollbar-track{background:0 0}#start-btn{width:100%;color:var(--bg);background:var(--accent);cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:background-color .3s,transform .1s;display:block}#start-btn:hover:not(:disabled){background:var(--accent-hover)}#start-btn:active:not(:disabled){transform:scale(.98)}#start-btn:disabled{cursor:default;opacity:.6;animation:none}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 var(--accent-soft)}50%{opacity:.85;box-shadow:0 0 18px 4px var(--accent-soft)}}#start-btn:not(:disabled){animation:1.5s ease-in-out infinite pulse}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;gap:12px;padding:14px 14px 16px;display:flex}.card>h3{color:var(--accent-hover);letter-spacing:.02em;margin:0;font-size:14px}.section-desc{color:var(--text-muted);margin:-6px 0 0;font-size:12px;line-height:1.45}.control-row{flex-direction:column;gap:6px;display:flex}.control-row-range{gap:8px}.control-label{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.range-row{align-items:center;gap:8px;display:flex}.range-row input[type=range]{flex:1;min-width:0}.range-row input[type=number]{flex:none;width:72px}.btn-row{gap:8px;display:flex}.btn-row button{flex:1}.value-display{color:var(--text-secondary);word-break:break-word;min-height:1em;font-size:12px}.sweep-params{grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:6px 8px;display:grid}.sweep-params input[type=number]{box-sizing:border-box;width:100%}.sweep-params label{color:var(--text-muted);white-space:nowrap;font-size:11px}.sweep-params label[for=sweep-duration]{grid-column:1/2}.sweep-params input#sweep-duration{grid-column:2/3}button{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:8px 12px;font-family:inherit;font-size:13px;transition:background-color .2s,transform .1s,box-shadow .2s}.btn-primary{color:var(--bg);background:var(--accent);border:1px solid #0000}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 0 12px var(--accent-soft)}.btn-primary:active{transform:scale(.97)}.btn-secondary{color:var(--text-primary);background:var(--bg-inset);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--accent)}.btn-reset{width:100%;color:var(--accent-hover);border:1px dashed var(--border-color);background:0 0;margin-top:4px}.btn-reset:hover{background:var(--bg-card-hover);border-style:solid;border-color:var(--accent)}input[type=number],select{background:var(--bg-inset);color:var(--text-primary);border:1px solid var(--border-color);box-sizing:border-box;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12px}select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;width:100%;padding-right:26px}input[type=number]:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--range-fill,50%), var(--bg-inset) var(--range-fill,50%), var(--bg-inset) 100%);border:1px solid var(--border-color);cursor:pointer;border-radius:3px;outline:none;width:100%;height:6px;margin:4px 0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);width:18px;height:18px;box-shadow:0 0 8px var(--accent-soft);cursor:pointer;border:2px solid #0b1220;border-radius:50%;transition:transform .1s,box-shadow .2s}input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 14px var(--accent);transform:scale(1.15)}input[type=range]::-moz-range-thumb{background:var(--accent);width:18px;height:18px;box-shadow:0 0 8px var(--accent-soft);cursor:pointer;border:2px solid #0b1220;border-radius:50%}input[type=range]::-moz-range-track{background:0 0}.tooltip{background:var(--bg-inset);border:1px solid var(--border-color);width:15px;height:15px;color:var(--text-secondary);cursor:help;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex;position:relative}.tooltip:after{content:attr(data-tooltip);color:var(--text-primary);border:1px solid var(--border-color);text-align:left;opacity:0;pointer-events:none;z-index:20;background:#020617;border-radius:6px;width:max-content;max-width:230px;padding:7px 10px;font-size:11px;font-weight:400;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:130%;left:0;transform:translate(0)translateY(4px);box-shadow:0 6px 20px #00000080}.tooltip:hover:after{opacity:1;transform:translate(0)translateY(0)}.hint{background:var(--bg-inset);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:7px;padding:9px 11px;font-size:11px;line-height:1.5}.status-error{font-weight:600;color:var(--color-error)!important}.card-info{border:1px dashed var(--border-color);background:0 0;padding:0}.card-info details{padding:10px 12px}.card-info summary{cursor:pointer;color:var(--accent-hover);-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;list-style:none}.card-info summary::-webkit-details-marker{display:none}.card-info summary:before{content:"▶";margin-right:8px;font-size:10px;transition:transform .2s;display:inline-block}.card-info details[open] summary:before{transform:rotate(90deg)}.card-info p{color:var(--text-secondary);margin:10px 0 0;font-size:12px;line-height:1.55}#panel-toggle-btn{z-index:3;width:32px;height:32px;color:var(--bg);background:var(--accent);cursor:pointer;border:none;border-radius:0 7px 7px 0;padding:0;font-size:14px;line-height:32px;transition:left .3s,background-color .3s;position:fixed;top:24px;left:340px}#panel-toggle-btn:hover{background:var(--accent-hover)}#control-panel.panel-collapsed+#panel-toggle-btn{left:0}.switch{flex:none;width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch-slider{cursor:pointer;background:var(--bg-inset);border:1px solid var(--border-color);border-radius:24px;transition:background-color .25s,border-color .25s;position:absolute;inset:0}.switch-slider:before{content:"";background:var(--text-muted);border-radius:50%;width:18px;height:18px;transition:transform .25s,background-color .25s;position:absolute;bottom:2px;left:2px}.switch input:checked+.switch-slider{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-slider:before{background:var(--bg);transform:translate(20px)}@media (width<=480px){#control-panel{width:100vw;padding:16px 12px 24px}#panel-toggle-btn{left:100vw}#control-panel.panel-collapsed+#panel-toggle-btn{left:0}}
