:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a1a1d;--panel:#4e4e50;--panel-border:#1a1a1d;--input-bg:#1a1a1d;--input-border:#6b6b6d;--text:#f2f0f0;--text-dim:#d3d0d1;--accent:#c3073f;--accent-soft:#c3073f38;--play-bg:#6f2232;--play-bg-hover:#950740;--stop-bg:#4a1220;--stop-bg-hover:#5c1729;--error:#ffb454;font:15px/1.4 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0}.app{width:100vw;height:100vh;position:relative;overflow:hidden}.canvas-wrap{position:absolute;inset:0}.waveform-dock{pointer-events:none;z-index:15;width:50%;height:100px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.waveform-box{background:0 0;border:1.5px solid #ff2b4d;border-radius:14px;width:100%;height:100%;overflow:hidden;box-shadow:0 0 10px 1px #ff2b4d99,0 0 26px 6px #8b000066,inset 0 0 18px #ff2b4d1a}.waveform-canvas{width:100%;height:100%;display:block}.sidebar-dock{z-index:10;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;top:210px;bottom:24px;right:24px}.sidebar-toggle{background:var(--panel);cursor:pointer;border:none;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;display:flex;box-shadow:0 2px 8px #0006}.sidebar-toggle span{background:var(--text);border-radius:1px;width:18px;height:2px;display:block}.sidebar-toggle:hover span{background:var(--accent)}.trajectory-toggle{color:var(--text)}.trajectory-toggle:hover{color:var(--accent)}.sidebar-dock.dock-left{align-items:flex-start;top:320px;left:24px;right:auto}.settings-toggle{color:var(--text)}.settings-toggle:hover{color:var(--accent)}.settings-dock{z-index:20;align-items:flex-start;gap:10px;display:flex;position:fixed;top:24px;left:24px}.settings-panel{background:var(--panel);border:5px solid var(--accent);border-radius:18px;width:300px;transition:width .35s cubic-bezier(.4,0,.2,1),opacity .25s,border-width .35s;overflow:hidden;box-shadow:0 4px 24px #00000080}.settings-panel.collapsed{opacity:0;pointer-events:none;border-width:0;width:0;height:0}.settings-panel-inner{flex-direction:column;gap:.9rem;width:300px;padding:1rem;display:flex}.settings-action{justify-content:center;align-items:center;gap:.4rem;display:flex}.account-dock{z-index:20;align-items:flex-start;gap:10px;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.account-tabs{gap:.4rem;display:flex}.account-tab{border:1px solid var(--input-border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;flex:1;padding:.4rem;font-size:.8rem}.account-tab.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.account-form{flex-direction:column;gap:.6rem;display:flex}.sidebar{background:var(--panel);border:5px solid var(--accent);border-radius:18px;flex:auto;width:320px;min-width:0;transition:width .35s cubic-bezier(.4,0,.2,1),opacity .25s,border-width .35s;overflow:hidden;box-shadow:0 4px 24px #00000080}.sidebar.collapsed{opacity:0;pointer-events:none;border-width:0;width:0}.sidebar-inner{flex-direction:column;gap:1rem;width:320px;height:100%;padding:1rem;display:flex;overflow-y:auto}.top-bar{background:var(--panel);border:1px solid var(--panel-border);z-index:20;border-radius:14px;width:280px;padding:.85rem 1rem;position:fixed;top:24px;right:24px;box-shadow:0 4px 24px #0006}.top-bar h1,.sidebar-header h1{margin:0 0 .75rem;font-size:1.1rem;font-weight:600}.source-list{flex-direction:column;gap:.4rem;display:flex}.source-row{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.source-row:hover{background:#0000001f}.source-row.selected{border-color:var(--accent);background:var(--accent-soft)}.source-swatch{border-radius:50%;flex-shrink:0;width:10px;height:10px}.source-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.remove-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1rem;line-height:1}.remove-btn:hover{color:var(--accent)}.mute-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:0 .25rem;line-height:1;display:flex}.mute-btn:hover{color:var(--text)}.mute-btn[aria-pressed=true]{color:var(--accent)}.add-btn{border:1px dashed var(--input-border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;margin-top:.25rem;padding:.5rem;font-size:.85rem}.add-btn:hover{border-color:var(--accent);color:var(--text)}a.add-btn{text-align:center;text-decoration:none;display:block}.inspector{border-top:1px solid var(--panel-border);flex-direction:column;gap:.6rem;padding-top:1rem;display:flex}.inspector h2{margin:0;font-size:.95rem;font-weight:600}.field-group-label{color:var(--text-dim);margin:.4rem 0 -.2rem;font-size:.75rem}.field{color:var(--text-dim);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.field input,.field select{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text);border-radius:4px;padding:.35rem .5rem;font-size:.85rem}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.waypoint-list{flex-direction:column;gap:.4rem;display:flex}.waypoint-row{grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:.35rem;display:grid}.waypoint-row input{background:var(--input-bg);border:1px solid var(--input-border);width:100%;color:var(--text);border-radius:4px;padding:.3rem .4rem;font-size:.8rem}.waypoint-row input:focus{border-color:var(--accent);outline:none}.play-panel{margin-top:.5rem}.play-row{gap:.5rem;display:flex}.play-btn{background:var(--play-bg);color:var(--text);cursor:pointer;border:none;border-radius:6px;flex:4 1 0;padding:.6rem;font-size:.9rem;font-weight:600;transition:background .15s}.play-btn:hover:not(:disabled){background:var(--play-bg-hover)}.play-btn:disabled{opacity:.6;cursor:default}.stop-btn{background:var(--stop-bg);color:var(--text);cursor:pointer;border:none;border-radius:6px;flex:1 1 0;justify-content:center;align-items:center;transition:background .15s;display:flex}.stop-btn:hover{background:var(--stop-bg-hover)}.stop-icon{gap:3px;display:flex}.stop-icon span{background:currentColor;border-radius:1px;width:3px;height:12px}.error{color:var(--error);font-size:.8rem}.source-label{color:var(--text);white-space:nowrap;background:#1a1a1dbf;border-radius:4px;padding:1px 6px;font-size:11px}
