:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#12100f;--panel:#171412;--panel-2:#201b17;--line:#4b4036;--text:#f2eadc;--muted:#a79a8b;--rhythm:#f5b83d;--harmony:#00d4aa;--drum:#9aa4b2;--danger:#ff6b6b}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.app-topbar{display:flex;border-bottom:1px solid var(--line);position:sticky;z-index:30;backdrop-filter:blur(10px);background:0 0;justify-content:space-between;align-items: center;gap:1rem;margin-bottom:1.2rem;padding:.85rem 0;top:0}.topbar-left{display:flex;align-items: center;gap:.9rem;min-width:0}.brand-mark{color:var(--rhythm);letter-spacing:.24em;font-size:.95rem;font-weight:800}.mode-switch{display:inline-flex;border:1px solid var(--line);background:var(--panel);border-radius:.5rem;gap:.1rem;padding:.1rem}.mode-switch button{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;background:0 0;border:0;border-radius:.4rem;padding:.25rem .5rem;font-size:.7rem;font-weight:600}.mode-switch button.active{color:var(--rhythm);background:#f5b83d24}.topbar-actions{display:flex;justify-content:flex-end;align-items: center;gap:.5rem;min-width:0}.save-button{letter-spacing:.14em;text-transform:uppercase;border-color:#f5b83d85;min-width:6rem;font-weight:800}.save-button.dirty{border-color:var(--rhythm);color:var(--rhythm);background:#f5b83d29;box-shadow:0 0 0 2px #f5b83d1a}button,input,select{font:inherit}button{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:.9rem;padding:.65rem .95rem;transition:border-color .12s,background-color .12s,color .12s,box-shadow .12s}button:hover{background:#ffffff05;border-color:#a79a8bb8}button:focus-visible{outline:0;border-color:#f5b83db3;box-shadow:0 0 0 2px #f5b83d2e}button.active{border-color:var(--rhythm);color:#fff;background:#f5b83d1f}button:disabled{cursor:not-allowed;opacity:.5}input,select{border:1px solid var(--line);color:var(--text);background:0 0;border-radius:.7rem;padding:.45rem .6rem}input[type=range]{accent-color:var(--rhythm);width:8rem}.app{width:calc(100vw - 2rem);margin:0 auto;padding:.5rem 0 3rem}.workspace{display:grid;grid-template-columns:minmax(15rem,17rem)minmax(0,1fr);align-items: start;gap:1rem}.sidebar{display:grid;position:sticky;overflow:auto;gap:1rem;max-height:calc(100vh - 5.5rem);padding-right:.15rem;top:4.75rem}.sequencers{display:grid;gap:1rem;min-width:0}header.hero,.panel{border:1px solid var(--line);background:var(--panel);box-shadow:none;border-radius:1.15rem}header.hero{display:grid;grid-template-columns:9rem minmax(0,1fr)auto;align-items: start;gap:1.25rem;margin-bottom:1rem;padding:1.5rem}.hero-media{display:flex;justify-content:center;align-items: center}.hero-disc{display:grid;background:#ffffff08;border:1px solid #ffffff1f;border-radius:1.2rem;place-items: center;width:8.8rem;height:8.8rem}.hero-disc-ring{background:conic-gradient(var(--rhythm)0%,var(--rhythm)var(--progress,0%),#f5b83d33 var(--progress,0%));display:block;border-radius:999px;width:3.5rem;height:3.5rem}.hero-copy{display:flex;flex-direction:column;flex:1;gap:.5rem;min-width:0}.hero-projects{display:flex;flex-flow:wrap;justify-content:flex-end;align-items: flex-start;gap:.5rem}.hero-projects select{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:.5rem;min-width:10rem;padding:.35rem .5rem;font-size:.85rem}.hero-projects .project-actions{display:flex;gap:.15rem}.hero-projects .project-actions .icon-button{display:flex;border:1px solid var(--line);cursor:pointer;color:var(--muted);background:0 0;border-radius:.4rem;justify-content:center;align-items: center;width:1.8rem;height:1.8rem;padding:0;transition:all .15s}.hero-projects .project-actions .icon-button svg{width:.9rem;height:.9rem}.hero-projects .project-actions .icon-button:hover{background:var(--surface);color:var(--text);border-color:var(--muted)}.save-url-song{background:var(--rhythm);color:#000;cursor:pointer;border:none;border-radius:.4rem;width:100%;margin-top:.35rem;padding:.35rem .5rem;font-size:.8rem;font-weight:600}.save-url-song:hover{opacity:.9}.hero-title-input{outline:none;resize:none;background:0 0;border:none;width:100%;height:48px;padding:0;font-family:inherit;font-size:48px;line-height:.87}.hero-title-input:invalid{outline:2px solid red}.hero-copy .hero-note-input{resize:none;box-sizing:border-box;outline:none;color:var(--muted);background:0 0;border:none;height:auto;min-height:0;padding:0;font-family:inherit;font-size:.85rem;line-height:1.4}.chord-pattern-preview,.chord-pool-preview,.bass-pattern-preview,.bass-notes-preview,.drum-pattern-preview,.chord-pattern-input,.chord-pool-input,.bass-pattern-input,.bass-notes-input,.drum-pattern-input{font-size:1.33rem!important}.foundation-probe{display:grid;border-top:1px solid #a79a8b2e;gap:.9rem;margin-top:1rem;padding-top:1rem}.foundation-probe-head{margin-bottom:0}.probe-summary{display:flex;flex-wrap:wrap;gap:.45rem}.probe-pill{color:var(--muted);background:#ffffff05;border:1px solid #a79a8b3d;border-radius:999px;padding:.32rem .68rem;font-size:.78rem}.probe-pill strong{color:var(--text);font-weight:700}.probe-pill.warn strong{color:var(--rhythm)}.probe-pill.error strong{color:var(--danger)}.probe-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.probe-card{background:var(--panel-2);border:1px solid #a79a8b29;border-radius:.95rem;min-width:0;padding:.85rem}.probe-card h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .55rem;font-size:.85rem}.probe-pre{white-space:pre-wrap;word-break:break-word;color:var(--text);min-height:10rem;margin:0;font:.8rem/1.45 SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}@media (max-width:960px){.probe-columns{grid-template-columns:1fr}}.hero-note-input::placeholder{color:var(--muted);font-style:italic}.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem}.hero-tag{display:inline-flex;border:1px solid var(--line);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-radius:.6rem;align-items: center;padding:.28rem .68rem;font-size:.76rem;font-weight:700}h1,h2,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:.35rem}p{color:var(--muted);line-height:1.5}.status-pill{border:1px solid var(--line);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:.8rem;flex-shrink:1;min-width:0;max-width:min(32rem,100%);padding:.45rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.write-panel{display:none}body.mode-write .write-panel{display:block}body.mode-write .sequencers>.panel:not(.write-panel){display:none}.write-actions{display:flex;flex-wrap:wrap;gap:.5rem}.transport-inline{display:flex;flex-wrap:wrap;align-items: center;gap:.5rem}.transport-icon-button{display:inline-flex;border-radius:.75rem;justify-content:center;align-items: center;width:2.2rem;height:2.2rem;padding:0}.transport-icon-button svg{width:.95rem;height:.95rem}.transport-step-button svg{width:.9rem;height:.9rem}.bpm-inline{gap:.35rem}.bpm-inline label{font-size:.78rem}.write-dub{resize:vertical;color:var(--text);background:#0f1115;border-radius:1rem;width:100%;min-height:22rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;line-height:1.45}.controls,.scene-tabs,.volumes{display:flex;flex-wrap:wrap;align-items: center;gap:.65rem}.panel{margin-top:1rem;padding:1rem 1rem 1.1rem}.project-actions{display:flex;justify-content:center;gap:.25rem}.project-actions button{padding:.35rem .5rem;font-size:1rem;line-height:1}.sidebar select#project-select{width:100%;margin-bottom:.5rem}.workspace .panel{margin-top:0}.controls{display:grid;justify-content:stretch}.control-group{display:flex;flex-wrap:wrap;align-items: center;gap:.55rem}.control-group label,.track-label{color:var(--muted);font-size:.88rem}#bpm{text-align:center;width:4.5rem}.scene-tabs button.pending{border-color:var(--harmony);box-shadow:0 0 0 2px #00d4aa29}.scene-loop-control{color:var(--muted);display:flex;align-items: center;gap:.45rem;margin-bottom:.65rem;font-size:.88rem}.scene-loop-control input{width:auto}.scene-tab-row{display:grid;grid-template-columns:minmax(0,1fr)auto auto;gap:.25rem}.scene-tab-row.dragging{opacity:.6}.scene-tab-row.drag-over>button:first-child{border-color:var(--rhythm);box-shadow:inset 0 0 0 2px #f5b83d52}.scene-tab-row .scene-move{border-radius:.55rem;width:auto;min-width:0;padding:.34rem .48rem}.scene-tab-row>button:first-child{text-align:left;border-radius:.7rem;padding:.45rem .62rem}.scene-tab-row>button.empty{opacity:.4}.scene-list-action{border-radius:.7rem;padding:.45rem .62rem}.grid-head{display:flex;justify-content:space-between;align-items: flex-start;gap:1rem;margin-bottom:.9rem}.grid-head h2,.sidebar h2{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9rem;font-weight:800}.sidebar h2{margin-bottom:.65rem}.scene-status{color:var(--muted);text-align:left;padding:.25rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem}.scene-status .status-icon{display:inline-block;vertical-align:middle;width:.9rem;height:.9rem;margin:-.15rem .1rem 0}.sidebar .control-group,.sidebar .volumes,.sidebar .scene-tabs{display:grid;grid-template-columns:1fr;align-items:stretch}.sidebar .scene-tabs{gap:.35rem}.sidebar .control-group.transport{grid-template-columns:1fr 1fr}.sidebar .control-group.bpm-control{grid-template-columns:auto 1fr 1fr 1fr;align-items: center}.sidebar .volumes label{display:grid;gap:.25rem}.sidebar input[type=range],.sidebar input[type=text],.sidebar button{width:100%}.step-grid{display:grid;grid-template-columns:repeat(16,minmax(3.2rem,1fr));gap:.28rem}.chord-grid-stack{display:grid;gap:.75rem}.chord-grid-part-shell{display:grid;gap:.6rem}.chord-cell{position:relative;border:1px solid var(--line);overflow:hidden;background:#12151a;border-radius:.55rem;min-height:3.65rem}.chord-cell{cursor:grab;user-select:none;padding:.34rem}.chord-cell.beat{border-left-width:3px}.chord-cell.playing{outline:2px solid #fff;outline-offset:2px}.chord-cell.dragging{opacity:.55}.chord-cell.drag-over{border-color:var(--rhythm);box-shadow:inset 0 0 0 2px #f5b83d52}.chord-input{cursor:text}.step-number{display:block;color:var(--muted);margin-bottom:.22rem;font-size:.56rem}.layer-row{display:grid;grid-template-columns:minmax(0,1fr);align-items: center;min-height:1rem;font-size:.72rem;font-weight:700;line-height:1.1}.layer-row.rhythm{color:var(--rhythm)}.layer-row.harmony{color:var(--harmony)}.chord-display{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}.chord-display.empty{visibility:hidden}.chord-display.invalid{color:var(--danger)}.chord-input{color:currentColor;font:inherit;line-height:inherit;outline:0;display:none;background:0 0;border:0;border-radius:0;width:100%;min-width:0;height:1.2em;padding:0;box-shadow:inset 0 -1px}.chord-input.invalid{color:var(--danger)}body.mode-edit .chord-display{display:none}body.mode-edit .chord-input{display:block}body.mode-edit .drum-roll,body.mode-edit .bassline-roll,body.mode-edit .layer-row.rhythm,body.mode-edit .layer-row.harmony{filter:grayscale(1);opacity:.72}body.mode-edit .layer-row.rhythm:has(.chord-input.invalid){filter:none;opacity:1}body.mode-edit .layer-row.harmony:has(.chord-input.invalid){filter:none;opacity:1}.drum-grid{display:grid;gap:.55rem}.preset-panel{display:none;border:1px solid var(--line);background:#12151a;border-radius:1rem;gap:.75rem;margin:0 0 1rem;padding:.85rem}.preset-panel.open{display:grid}.preset-tabs,.preset-buttons,.dna-tags{display:flex;flex-wrap:wrap;gap:.45rem}.preset-tabs button,.preset-buttons button{padding:.45rem .65rem}.preset-description{margin:0}.dna-tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.25rem .5rem;font-size:.78rem}.user-preset-tools{display:grid;border-top:1px solid var(--line);gap:.7rem;padding-top:.8rem}.user-preset-tools h3{margin:0;font-size:1rem}.user-preset-actions{display:flex;flex-wrap:wrap;gap:.55rem}.user-preset-actions input{flex:1;min-width:14rem}.user-preset-list{display:flex;flex-wrap:wrap;gap:.45rem}.user-preset-export{resize:vertical;width:100%;min-height:9rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.78rem}.drum-row,.beat-label-row{display:grid;grid-template-columns:4.5rem minmax(18rem,1fr)minmax(13.5rem,max-content);align-items: center;gap:.5rem;padding:0 .5rem}.drum-row .step-grid,.beat-label-row .step-grid{grid-template-columns:repeat(32,minmax(.8rem,1fr));gap:0}.beat-label-row .step-grid{grid-column:2}.beat-label-spacer{min-height:1rem}.beat-label-actions-spacer{grid-column:3;min-width:13.5rem}.beat-label{color:var(--muted);display:flex;text-align:center;justify-content:center;align-items: center;font-size:.7rem;font-weight:600}.beat-label.downbeat{color:var(--text);font-weight:800}.track-head{display:contents}.track-head strong{grid-column:1;color:var(--drum);white-space:nowrap;padding:.4rem 0 .4rem .5rem;font-size:.9rem}.track-surface{grid-column:2;position:relative;width:100%;transition:opacity .12s,filter .12s}.drum-pattern-input{letter-spacing:.04em;width:100%;font-family:SFMono-Regular,Consolas,monospace;font-size:.78rem}.drum-pattern-input.invalid{color:#ffffff03}.track-surface .drum-pattern-overlay-wrap,.drum-roll{width:100%}.bassline-roll,.drum-roll{overflow:hidden;position:relative;background:repeating-linear-gradient(90deg,#9aa4b21f 0 1px,#0000 1px 3.125%),linear-gradient(#9aa4b214,#9aa4b205);border-radius:.45rem;width:100%;height:1.5rem}.drum-roll{display:block}.track-actions{grid-column:3;display:flex;justify-content:flex-end;align-items: center;gap:.35rem}.icon-button{display:inline-flex;justify-content:center;align-items: center;min-width:2rem;padding:.42rem .58rem;line-height:0}.icon-button svg{width:.92rem;height:.92rem}.compact-button{border-radius:.55rem;min-width:0;padding:.34rem .42rem}.bass-octave-control{display:flex;align-items: center;gap:.5rem}.bass-octave-control label{margin-right:auto}.bass-octave-control span{text-align:center;min-width:1.2rem;font-size:.9rem;font-weight:600}.icon-button.danger{color:var(--danger)}.icon-button.record-button.active{color:#ff8f8f;background:#ff6b6b24;border-color:#ff6b6bcc}.icon-button.record-button:hover{border-color:#ff6b6b8c}.icon-button.record-button:focus-visible{border-color:#ff6b6bcc;box-shadow:0 0 0 2px #ff6b6b2e}.drum-roll-pulse{position:absolute;background:var(--drum);border-radius:999px;min-width:.22rem;bottom:20%}.drum-roll-pulse[data-track=kick]{background:#b87836}.drum-roll-pulse[data-track=snare]{background:#2d8b8b}.drum-roll-pulse[data-track=hihat]{background:#4f77a8}.drum-roll-pulse[data-track=openhat]{background:#6aa370}.bassline-roll-playhead,.drum-roll-playhead{position:absolute;background:var(--rhythm);opacity:.92;width:2px;top:0;bottom:0;box-shadow:0 0 0 1px #f5b83db3,0 0 0 3px #f5b83d29}.drum-inline-editor{grid-column:1/-1;display:grid;gap:.55rem;margin-top:.45rem}.drum-inline-row{display:grid;grid-template-columns:1rem minmax(0,1fr);align-items: center;gap:.45rem}body.mode-listen .drum-inline-editor,body.mode-write .drum-inline-editor{display:none}.drum-pattern-help{color:var(--muted);font-size:.72rem;line-height:1.35}.drum-volume-label{display:grid;grid-template-columns:auto 5rem;white-space:nowrap;align-items: center;gap:.35rem}.drum-volume-label input[type=range]{width:5rem}.track-mute-label{color:var(--muted);display:flex;white-space:nowrap;align-items: center;gap:.3rem;font-size:.78rem}.track-mute-label input{width:auto}.drum-row.muted .track-surface,.drum-row.muted strong,.drum-row.muted .track-mute-label,.layer-row.muted,[data-chord-layer].muted{opacity:.42}.drum-row.muted .track-surface,[data-chord-layer].muted{filter:saturate(.6)}.chord-lane-mutes{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.bass-panel{display:grid;gap:.75rem}.bass-panel label{display:grid;color:var(--muted);gap:.3rem;font-size:.88rem}.bass-panel select,.bass-panel input{width:100%}.bass-keyboard-map{display:grid;gap:.18rem}.bass-key-row{display:grid;grid-template-columns:repeat(17,minmax(.9rem,1fr));gap:.12rem}.bass-key{border:1px solid var(--line);text-align:center;border-radius:.4rem;padding:.18rem .32rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.72rem}.bass-key.black{color:var(--muted);background:#0f1115}.bass-key.white{color:#16191f;background:#f0ead6}.bass-key.pressed{border-color:var(--rhythm);transform:translateY(1px);box-shadow:0 0 0 2px #f5b83d59}.bass-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.bassline-roll-note{background:var(--harmony);position:absolute;border-radius:999px;min-width:.35rem;height:.25rem;box-shadow:0 0 0 1px #4ade8059}.bassline-help{border:1px solid var(--line);color:var(--muted);border-radius:.75rem;padding:.45rem .6rem;font-size:.72rem;line-height:1.35}.bass-inline-editor{grid-column:1/-1;display:grid;gap:.55rem}.chord-inline-part-editor{display:grid;gap:.55rem}.bass-inline-row,.chord-inline-row{display:grid;grid-template-columns:1rem minmax(0,1fr);align-items: center;gap:.45rem}.inline-label-icon{color:var(--muted);display:inline-flex;justify-content:center;align-items: center;width:.95rem;height:.95rem}.inline-label-icon svg{width:100%;height:100%}.sr-only{clip:rect(0 0 0 0);overflow:hidden;position:absolute;border:0;width:1px;height:1px;margin:-1px;padding:0}.bass-inline-head{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items: center;gap:.75rem}.bass-inline-part{border-top:0;padding-top:0}.bass-inline-row>span:first-child,.bass-inline-row>.bass-text-overlay-wrap{min-width:0}.compact-track-toggle{gap:.22rem;font-size:.72rem}body.mode-listen .bass-inline-head,body.mode-listen .bass-inline-part,body.mode-listen .bassline-help,body.mode-write .bass-inline-head,body.mode-write .bass-inline-part,body.mode-write .bassline-help,body.mode-listen .chord-inline-part-editor,body.mode-write .chord-inline-part-editor{display:none}.bass-editor{display:grid;gap:.35rem}.bass-editor-head{display:flex;align-items:baseline;gap:.6rem}.bass-editor-head strong{color:var(--harmony);font-size:.9rem}.bass-editor-fields{display:grid;gap:.75rem}.bass-editor-part{border-top:1px solid var(--line);display:grid;gap:.65rem;padding-top:.75rem}.bass-editor-part:first-child{border-top:0;padding-top:0}.bass-editor-part-head{display:flex;align-items:baseline;gap:.7rem}.bass-editor-part-head strong{color:var(--harmony)}.bass-editor-stats{color:var(--muted);text-align:right;flex:1;font-family:SFMono-Regular,Consolas,monospace;font-size:.76rem}.bass-editor-stats.invalid{color:var(--danger)}.bass-editor-fields label{display:grid;gap:.3rem}.bass-editor-fields input{letter-spacing:.04em;width:100%;font-family:SFMono-Regular,Consolas,monospace}.bass-text-overlay-wrap{display:grid;letter-spacing:.04em;position:relative;min-height:1.4em;font-family:SFMono-Regular,Consolas,monospace;font-size:.78rem;line-height:1.4em;box-shadow:inset 0 -1px #9aa4b22e}.bass-text-overlay-wrap:focus-within{box-shadow:inset 0 -1px #4ade8073}.bass-text-overlay-wrap.invalid{box-shadow:inset 0 -1px #ff6b6bcc}.bass-text-overlay-wrap input{box-shadow:none;caret-color:var(--text);color:#ffffff03;display:block;font:inherit;letter-spacing:inherit;outline:0;position:relative;z-index:2;background:0 0;border:0;border-radius:0;width:100%;height:1.4em;padding:0;line-height:1.4em}.bass-text-overlay-wrap input.invalid{color:#ffffff03}.bass-pattern-input.invalid,.bass-notes-input.invalid,.chord-pool-input.invalid,.chord-pattern-input.invalid{border:0;border-bottom:1px solid var(--danger)}.bass-text-preview{box-sizing:border-box;color:var(--muted);font:inherit;letter-spacing:inherit;overflow:hidden;pointer-events:none;position:absolute;user-select:none;white-space:pre;z-index:1;height:1.4em;padding:0;line-height:1.4em;inset:0}.bass-text-overlay-wrap:has(.bass-notes-input.invalid) .bass-text-preview{color:var(--danger)}.bass-text-overlay-wrap:has(.chord-pool-input.invalid) .bass-text-preview{color:var(--danger)}.bass-text-preview span{border-radius:.25rem}.bass-text-preview .substep-group{display:inline;background:#ffffff14;border-radius:.25rem;padding:0 .1rem}.bass-text-preview .substep-group .bracket{color:var(--muted);opacity:.6}.bass-text-preview .substep-group span{margin:0 -.05rem}.drum-pattern-overlay-wrap .drum-pattern-preview,.bass-text-overlay-wrap .chord-pattern-preview{z-index:3}.drum-pattern-preview span[data-step],.chord-pattern-preview span[data-step]{pointer-events:auto;cursor:pointer;user-select:none;border-radius:.2rem}.drum-pattern-preview span[data-step]:hover,.chord-pattern-preview span[data-step]:hover,.drum-pattern-preview span[data-step].input-hover,.chord-pattern-preview span[data-step].input-hover{background:#ffffff1a}.bass-text-preview span.on{color:var(--harmony);font-weight:800}.bass-text-overlay-wrap:has(.bass-notes-input.invalid) .bass-text-preview span.on{color:var(--danger)}.bass-text-overlay-wrap:has(.chord-pool-input.invalid) .bass-text-preview span.on{color:var(--danger)}.bass-text-preview span.accent{color:var(--rhythm);font-weight:900}.bass-text-preview span.sustain{color:#4ade80b3}.bass-text-preview span.rest{color:#9aa4b261}.bass-text-preview span.extra,.bass-text-preview span.invalid{color:var(--danger)}.catalog-dialog.bass-editor-dialog[open],.catalog-dialog.chord-editor-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)auto}.catalog-dialog.bass-editor-dialog,.catalog-dialog.chord-editor-dialog{width:80vw;height:80vh}.bass-editor-dialog .bass-editor,.chord-editor-dialog .bass-editor{overflow:auto;min-height:0}.bass-text-preview span.playing{background:var(--rhythm);color:#0b0d10;font-weight:900;box-shadow:0 0 0 1px #f5b83dbf,0 0 0 3px #f5b83d33}.hint{color:var(--muted);margin:.8rem 0 0;font-size:.9rem}.catalog-dialog{border:1px solid var(--line);background:var(--panel);color:var(--text);overflow:hidden;border-radius:1rem;width:min(760px,100vw - 2rem);height:min(680px,100vh - 2rem);padding:1rem}.catalog-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)auto auto}.sound-dialog[open]{grid-template-rows:auto minmax(0,1fr)auto}.dialog-columns{display:grid;grid-template-columns:minmax(0,1.3fr)minmax(15rem,.9fr);gap:1rem;min-height:0;margin:1rem 0}.dialog-column{display:grid;align-content: start;gap:.85rem;min-width:0;min-height:0}.dialog-column h3{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.dialog-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content: start;gap:.65rem}.dialog-tool-grid button{width:100%}.catalog-dialog::backdrop{background:#000000ad}.paste-dialog[open]{grid-template-rows:auto minmax(0,1fr)auto}.paste-input{resize:none;border:1px solid var(--line);outline:none;background:var(--bg);color:var(--text);box-sizing:border-box;border-radius:.5rem;width:100%;padding:.75rem;font-family:monospace;font-size:13px;line-height:1.6}.paste-error{color:#f87171;flex:1}.paste-error:empty{display:none}.catalog-head,.catalog-actions{display:flex;justify-content:space-between;align-items: center;gap:.75rem}.catalog-rows{display:grid;grid-auto-rows:max-content;overflow-y:auto;align-content: start;margin:1rem 0;padding-right:.25rem}.sound-rows{display:grid;overflow-y:auto;align-content: start;gap:.85rem;min-height:0}.sound-rows label{display:grid;color:var(--muted);gap:.35rem;font-size:.88rem}.sound-rows select{width:100%}.mixer-sound-rows{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}.mixer-sound-rows .sound-fieldset{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}.mixer-sound-rows .sound-fieldset legend{grid-column:1/-1}.sound-fieldset{display:grid;border:0;gap:.85rem;margin:0;padding:0}.sound-fieldset legend{color:var(--text);margin-bottom:.35rem;font-weight:700}.catalog-row,.catalog-table-head{display:grid;grid-template-columns:minmax(5rem,.7fr)minmax(10rem,2fr)5.75rem;border-bottom:1px solid var(--line);align-items: center;gap:.4rem;padding:.35rem 0}.catalog-table-head{position:sticky;z-index:1;background:var(--panel);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;height:2rem;font-size:.78rem;font-weight:700;top:0}.catalog-row{height:2.6rem}.catalog-row input{background:#12151a;border-color:#0000;width:100%;padding-block-start:.35rem;padding-block-end:.35rem}.catalog-row button{padding:.45rem .55rem}.catalog-row input.invalid{border-color:var(--danger);color:var(--danger);box-shadow:0 0 0 2px #ff6b6b29}@media (max-width:820px){.app{width:min(100vw - 1rem,100%);padding-top:.5rem}.app-topbar,header.hero{display:grid}.topbar-left,.topbar-actions{justify-content:flex-start}.workspace{grid-template-columns:1fr}.sidebar{position:static;overflow:visible;max-height:none;padding-right:0}.step-grid{grid-template-columns:repeat(8,minmax(2.6rem,1fr))}.drum-row .step-grid,.beat-label-row .step-grid{grid-template-columns:repeat(32,minmax(.7rem,1fr));gap:0}.catalog-row,.catalog-table-head,.dialog-columns,.dialog-tool-grid,.mixer-sound-rows,.mixer-sound-rows .sound-fieldset,.drum-row{grid-template-columns:1fr}.beat-label-row{grid-template-columns:1fr;padding:0}.track-head{grid-template-columns:1fr}.beat-label-spacer,.beat-label-actions-spacer,.track-actions{display:none}header.hero,.grid-head{display:block}.status-pill{display:inline-flex;margin-top:0}}body.mode-text .track-surface,body.mode-text .chord-grid-row{display:none}body.mode-text .drum-row,body.mode-text .bass-row{grid-template-columns:1fr}body.mode-text .track-head{display:grid;grid-template-columns:4.5rem 1fr auto}body.mode-text .drum-inline-editor,body.mode-text .bass-inline-editor,body.mode-text .chord-inline-part-editor{padding-top:0}#text-mode-toggle{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}#text-mode-toggle:hover{background:var(--line);color:var(--text)}#text-mode-toggle.active{background:var(--rhythm);color:var(--bg);border-color:var(--rhythm)}
