:root{--t55-trackpanel-w: 232px;--t55-font-ui: "Inter", "Segoe UI", system-ui, sans-serif;--t55-font-mono: "JetBrains Mono", "Cascadia Code", ui-monospace, monospace;--t55-font-lcd: "JetBrains Mono", ui-monospace, monospace}:root[data-theme=dark-studio]{--t55-bg-app: #16181d;--t55-bg-panel: #1e2128;--t55-bg-panel-raised: #262a33;--t55-bg-inset: #101216;--t55-border: #32363f;--t55-border-strong: #454a55;--t55-text: #d6d9e0;--t55-text-dim: #8b909c;--t55-text-bright: #ffffff;--t55-accent: #4f9cf7;--t55-accent-soft: #2a4a73;--t55-danger: #e5484d;--t55-record: #e5484d;--t55-play: #46c078;--t55-lcd-bg: #0d1117;--t55-lcd-text: #7ee2a8;--t55-lcd-dim: #2c4a38;--t55-grid-bg: #191c22;--t55-grid-line: #23262e;--t55-grid-beat: #2a2e37;--t55-grid-bar: #3a3f4b;--t55-grid-row-alt: #1d2027;--t55-grid-row-drum: #1b1e25;--t55-playhead: #f0f0f0;--t55-loop-region: rgba(79, 156, 247, .15);--t55-selection-box: rgba(79, 156, 247, .25);--t55-selection-border: #4f9cf7;--t55-note-border: rgba(0, 0, 0, .55);--t55-note-selected: #ffffff;--t55-ghost-note: #3a3f4b;--t55-key-white: #2c303a;--t55-key-black: #14161b;--t55-key-label: #6c7280;--t55-track-1: #4f9cf7;--t55-track-2: #46c078;--t55-track-3: #e8a33d;--t55-track-4: #e5646c;--t55-track-5: #b479e8;--t55-track-6: #3fc4c4;--t55-track-7: #e86fb4;--t55-track-8: #a8b653;--t55-radius: 6px;--t55-radius-small: 4px;--t55-bevel-light: transparent;--t55-bevel-dark: transparent;--t55-knob-track: #32363f;--t55-knob-fill: #4f9cf7;--t55-shadow: 0 4px 16px rgba(0, 0, 0, .4)}:root[data-theme=sc55-retro]{--t55-bg-app: #1d1e1f;--t55-bg-panel: #303132;--t55-bg-panel-raised: #3b3c3e;--t55-bg-inset: #161718;--t55-border: #47484a;--t55-border-strong: #5a5b5e;--t55-text: #d6d7d4;--t55-text-dim: #939491;--t55-text-bright: #f2f3f0;--t55-accent: #e8963c;--t55-accent-soft: #5f4520;--t55-danger: #d6544a;--t55-record: #d6544a;--t55-play: #8fb949;--t55-lcd-bg: #1a2b1a;--t55-lcd-text: #8ee08e;--t55-lcd-dim: #33502f;--t55-grid-bg: #242526;--t55-grid-line: #2c2d2e;--t55-grid-beat: #343536;--t55-grid-bar: #48494b;--t55-grid-row-alt: #28292a;--t55-grid-row-drum: #262728;--t55-playhead: #ededec;--t55-loop-region: rgba(232, 150, 60, .15);--t55-selection-box: rgba(232, 150, 60, .22);--t55-selection-border: #e8963c;--t55-note-border: rgba(0, 0, 0, .5);--t55-note-selected: #fdf4e2;--t55-ghost-note: #48494b;--t55-key-white: #38393b;--t55-key-black: #17181a;--t55-key-label: #808179;--t55-track-1: #e8963c;--t55-track-2: #8fb949;--t55-track-3: #d6a832;--t55-track-4: #d6544a;--t55-track-5: #a878c8;--t55-track-6: #4fb0a0;--t55-track-7: #cc6f9e;--t55-track-8: #9aa04e;--t55-radius: 3px;--t55-radius-small: 2px;--t55-bevel-light: rgba(255, 255, 255, .12);--t55-bevel-dark: rgba(0, 0, 0, .45);--t55-knob-track: #1f2021;--t55-knob-fill: #e8963c;--t55-shadow: 0 3px 10px rgba(0, 0, 0, .5)}:root[data-theme=retro-mono]{--t55-font-ui: ui-monospace, "Cascadia Mono", "JetBrains Mono", "Courier New", monospace;--t55-font-lcd: ui-monospace, "Cascadia Mono", "JetBrains Mono", "Courier New", monospace;--t55-bg-app: #ffffff;--t55-bg-panel: #ffffff;--t55-bg-panel-raised: #ffffff;--t55-bg-inset: #ffffff;--t55-border: #000000;--t55-border-strong: #000000;--t55-text: #000000;--t55-text-dim: #4a4a4a;--t55-text-bright: #000000;--t55-accent: #000000;--t55-accent-soft: #c8c8c8;--t55-danger: #000000;--t55-record: #000000;--t55-play: #c8c8c8;--t55-lcd-bg: #ffffff;--t55-lcd-text: #000000;--t55-lcd-dim: #b0b0b0;--t55-grid-bg: #ffffff;--t55-grid-line: #d6d6d6;--t55-grid-beat: #ababab;--t55-grid-bar: #000000;--t55-grid-row-alt: #f3f3f3;--t55-grid-row-drum: #f3f3f3;--t55-playhead: #000000;--t55-loop-region: rgba(0, 0, 0, .1);--t55-selection-box: rgba(0, 0, 0, .08);--t55-selection-border: #000000;--t55-note-border: rgba(0, 0, 0, .9);--t55-note-selected: #8a8a8a;--t55-ghost-note: #c9c9c9;--t55-key-white: #ffffff;--t55-key-black: #000000;--t55-key-label: #000000;--t55-track-1: #000000;--t55-track-2: #000000;--t55-track-3: #000000;--t55-track-4: #000000;--t55-track-5: #000000;--t55-track-6: #000000;--t55-track-7: #000000;--t55-track-8: #000000;--t55-radius: 0px;--t55-radius-small: 0px;--t55-bevel-light: #ffffff;--t55-bevel-dark: #9a9a9a;--t55-knob-track: #dcdcdc;--t55-knob-fill: #000000;--t55-shadow: 4px 4px 0 rgba(0, 0, 0, .85)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--t55-font-ui);font-size:13px;background:var(--t55-bg-app);color:var(--t55-text);user-select:none;-webkit-user-select:none;touch-action:manipulation}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit;color:var(--t55-text);background:var(--t55-bg-inset);border:1px solid var(--t55-border);border-radius:var(--t55-radius-small);padding:3px 6px}input:focus,select:focus{outline:1px solid var(--t55-accent)}canvas{display:block;touch-action:none}.app{display:flex;flex-direction:column;height:100%}.app-main{display:flex;flex-direction:column;flex:1;min-height:0}.arranger-pane{flex:1;min-height:80px;display:flex;overflow:hidden;border-bottom:1px solid var(--t55-border)}.editor-pane{display:flex;flex-direction:column;min-height:0;background:var(--t55-bg-panel)}.splitter{height:5px;background:var(--t55-bg-panel-raised);border-top:1px solid var(--t55-border);border-bottom:1px solid var(--t55-border);cursor:row-resize;flex-shrink:0}.panel-bar{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--t55-bg-panel);border-bottom:1px solid var(--t55-border);flex-shrink:0;min-height:40px;flex-wrap:wrap}.bar-group{display:flex;align-items:center;gap:4px;padding:0 6px;border-right:1px solid var(--t55-border);height:32px}.bar-group:last-child{border-right:none}.spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:30px;height:30px;padding:0 8px;border-radius:var(--t55-radius-small);background:var(--t55-bg-panel-raised);border:1px solid var(--t55-border);box-shadow:inset 0 1px 0 var(--t55-bevel-light),inset 0 -1px 0 var(--t55-bevel-dark);color:var(--t55-text);font-size:13px;white-space:nowrap}.btn:hover{border-color:var(--t55-border-strong);color:var(--t55-text-bright)}.btn:active{transform:translateY(1px)}.btn.active{background:var(--t55-accent-soft);border-color:var(--t55-accent);color:var(--t55-text-bright)}.btn.play.active{background:var(--t55-play);border-color:var(--t55-play);color:#10251a}.btn.record.active{background:var(--t55-record);border-color:var(--t55-record);color:#fff}.btn.small{min-width:22px;height:22px;padding:0 5px;font-size:11px}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--t55-bg-panel-raised)}.btn:disabled{opacity:.4;pointer-events:none}.lcd{font-family:var(--t55-font-lcd);background:var(--t55-lcd-bg);color:var(--t55-lcd-text);border:1px solid var(--t55-border);border-radius:var(--t55-radius-small);box-shadow:inset 0 2px 4px #0006;padding:3px 8px;font-size:15px;letter-spacing:.08em;white-space:nowrap}.lcd .lcd-dim{color:var(--t55-lcd-dim)}.lcd-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t55-text-dim);margin-bottom:1px}.lcd-stack{display:flex;flex-direction:column;align-items:flex-start}.track-panel{width:var(--t55-trackpanel-w);flex-shrink:0;overflow-y:auto;background:var(--t55-bg-panel);border-right:1px solid var(--t55-border);scrollbar-width:thin}.arranger-corner{width:var(--t55-trackpanel-w);flex-shrink:0;background:var(--t55-bg-panel);border-right:1px solid var(--t55-border)}.time-scrollbar{overflow-x:scroll;overflow-y:hidden;height:14px;flex:1;min-width:0;background:var(--t55-bg-inset);scrollbar-width:thin}.track-strip{height:100px;overflow:hidden;border-bottom:1px solid var(--t55-border);padding:5px 8px 5px 6px;display:flex;flex-direction:column;gap:4px;cursor:pointer;border-left:3px solid transparent;background:var(--t55-bg-panel)}.track-strip.selected{background:var(--t55-bg-panel-raised);border-left-color:var(--t55-accent)}.track-strip .strip-row{display:flex;align-items:center;gap:4px;min-height:20px}.track-strip .track-name{flex:1;font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t55-text-bright)}.track-strip .track-color{width:8px;height:8px;border-radius:50%;flex-shrink:0}.track-strip .instrument-btn{flex:1;text-align:left;font-size:11px;color:var(--t55-text-dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:2px 4px;border-radius:var(--t55-radius-small);border:1px solid transparent}.track-strip .instrument-btn:hover{border-color:var(--t55-border);color:var(--t55-text)}.track-strip .channel-badge{font-family:var(--t55-font-mono);font-size:10px;color:var(--t55-text-dim);border:1px solid var(--t55-border);border-radius:var(--t55-radius-small);padding:0 4px;flex-shrink:0}.mute-btn,.solo-btn{width:20px;height:20px;font-size:10px;font-weight:700;border-radius:var(--t55-radius-small);border:1px solid var(--t55-border);color:var(--t55-text-dim);flex-shrink:0}.mute-btn.active{background:var(--t55-danger);border-color:var(--t55-danger);color:#fff}.solo-btn.active{background:var(--t55-accent);border-color:var(--t55-accent);color:#fff}.knob-row{display:flex;gap:6px;align-items:flex-end}.knob-widget{display:flex;flex-direction:column;align-items:center;gap:1px;width:32px}.knob-widget .knob-label{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--t55-text-dim)}.add-track-btn{width:100%;padding:8px;color:var(--t55-text-dim);font-size:12px}.add-track-btn:hover{color:var(--t55-text-bright)}.canvas-fill{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}.canvas-fill>canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.editor-body{display:flex;flex:1;min-height:0}.keys-column{width:64px;flex-shrink:0;position:relative}.keys-column>canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--t55-bg-panel);border:1px solid var(--t55-border-strong);border-radius:var(--t55-radius);box-shadow:var(--t55-shadow);min-width:320px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column}.dialog-title{padding:10px 14px;font-weight:600;border-bottom:1px solid var(--t55-border);color:var(--t55-text-bright)}.dialog-body{padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.dialog-footer{padding:10px 14px;border-top:1px solid var(--t55-border);display:flex;justify-content:flex-end;gap:8px}.field-row{display:flex;align-items:center;gap:8px}.field-row label{min-width:110px;color:var(--t55-text-dim)}.status-bar{display:flex;align-items:center;gap:12px;padding:2px 10px;font-size:11px;color:var(--t55-text-dim);background:var(--t55-bg-panel);border-top:1px solid var(--t55-border);min-height:22px;flex-shrink:0}.midi-led{width:8px;height:8px;border-radius:50%;background:var(--t55-lcd-dim);transition:background .12s}.midi-led.lit{background:var(--t55-lcd-text)}.mobile-tabs{display:none}@media(max-width:900px){:root{--t55-trackpanel-w: 168px}.mobile-tabs{display:flex;gap:4px}.app-main.mobile-arranger .editor-pane,.app-main.mobile-arranger .splitter,.app-main.mobile-editor .arranger-pane,.app-main.mobile-editor .splitter{display:none}.app-main.mobile-editor .editor-pane{flex:1}}
