:root{--bg:#c7ccd4;--panel:#dde1e7;--panel-raised:#eef1f5;--line:#98a1ad;--line-strong:#767f8c;--text:#1a2029;--text-dim:#46525f;--accent:#ff6b35;--accent-glow:#ff6b3573;--accent-inset:#ff6b3533;--accent-dim:#ff6b3526;--danger:#c63b3b;--success:#2f9e63;--lcd-bg:#0d1218;--lcd-text:#5fe3ff;--lcd-dim:#2c7f9c;--radius-s:6px;--radius-m:8px;--radius-l:12px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--label-width:140px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,sans-serif;overflow-x:hidden}.app{flex-direction:column;height:100%;display:flex}.start-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;height:100%;padding:2rem;display:flex}.start-logo{border-radius:28px;width:132px;height:132px;box-shadow:0 8px 24px #00000040}.app-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100vh;padding:2rem;display:flex}.app-error pre{max-width:90vw;color:var(--text-dim);white-space:pre-wrap;word-break:break-word;font-size:.8rem;overflow:auto}.app-error-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.app-error button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--text);border-radius:8px;padding:0 1rem}.start-gate button{border-radius:var(--radius-l);background:var(--accent);color:#fff;min-width:220px;min-height:64px;box-shadow:0 0 18px var(--accent-glow);border:none;font-size:1.2rem}.notice{background:var(--accent-dim);border-bottom:1px solid var(--line);margin:0;padding:.6rem .75rem;font-size:.9rem;line-height:1.3}.transport{border-bottom:1px solid var(--line);padding:.5rem .75rem;padding-top:max(.5rem, env(safe-area-inset-top));scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:.5rem;display:flex;overflow-x:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}button:disabled{opacity:.45;cursor:default}.transport button{border:1px solid var(--line);background:var(--panel);min-width:52px;min-height:44px;color:var(--text);border-radius:8px;flex:none;font-size:1rem}.transport .bpm{align-items:center;gap:.5rem;margin-left:auto;display:flex}.transport .bpm span{text-align:right;min-width:74px}.transport .swing{align-items:center;gap:.5rem;font-size:.8rem;display:flex}.transport .swing span{text-align:right;min-width:78px;color:var(--text-dim)}.transport .swing input[type=range]{width:90px}.transport .bpm input[type=range]{width:110px}.load{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.load-bar{background:var(--panel);border-radius:4px;width:48px;height:8px;overflow:hidden}.load-bar-fill{background:var(--accent);height:100%}.load[data-critical=true] .load-bar-fill{background:var(--danger)}.load-hint{color:var(--danger)}.grid{flex:1;padding:.5rem;overflow:auto}.pattern-bar{flex-wrap:wrap;align-items:center;gap:.4rem;padding:0 0 .5rem;display:flex}.pattern-bar-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-right:.25rem;font-size:.75rem}.pattern-chip{border:1px solid var(--line-strong);min-width:44px;min-height:44px;color:var(--text);background:linear-gradient(#f5f7fa 0%,#d9dee5 45%,#c4cad3 100%);border-radius:8px;padding:0 .8rem;font-weight:600}.pattern-chip-active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 10px var(--accent-glow)}.pattern-chip:disabled{opacity:.45}.song-hint{color:var(--text-dim);margin:.25rem 0;font-size:.75rem}.grid-row{align-items:flex-start;gap:.5rem;width:max-content;min-width:100%;margin-bottom:.4rem;display:flex}.grid-row .label{width:var(--label-width);background:var(--bg);z-index:2;flex-direction:column;flex:none;justify-content:center;gap:.2rem;font-size:.8rem;line-height:1.1;display:flex;position:sticky;left:0}.grid-row .label .track-row{gap:.25rem;display:flex}.grid-row .label .track-dot{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex:1;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.grid-row .label.mixer-open{z-index:20}.dot{border-radius:50%;flex:none;width:14px;height:14px}.grid-row .label button{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--text);border-radius:4px;font-size:.7rem}.steps{flex:1;gap:3px;display:flex}.step{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex:1 0 44px;min-width:44px;height:44px;padding:0}.step[data-beat=true]{border-color:var(--line-strong)}.step:disabled{opacity:.55;cursor:default}.step[data-playing=true]{outline:2px solid var(--accent);outline-offset:-2px;opacity:1}.track-menu{border-bottom:1px solid var(--line);background:var(--panel);gap:1rem;max-height:calc(100vh - 140px);padding:.5rem .75rem;display:flex;overflow-y:auto}.track-menu-head{justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-height:44px;display:flex}.track-menu-title{font-size:.9rem;font-weight:700}.track-menu-close{border:1px solid var(--line-strong);min-width:44px;min-height:44px;color:var(--text);background:linear-gradient(#f5f7fa 0%,#d9dee5 45%,#c4cad3 100%);border-radius:8px;font-size:1.1rem}.track-menu-section{flex-direction:column;gap:.25rem;display:flex}.track-menu-heading{text-transform:uppercase;color:var(--text-dim);font-size:.7rem}.track-menu button{text-align:left;border:1px solid var(--line);background:var(--bg);min-width:132px;min-height:44px;color:var(--text);border-radius:6px;padding:0 .75rem;font-size:.9rem}.mixer .pitch{align-items:center;gap:.25rem;font-size:.8rem;display:flex}.mixer .pitch button{min-width:44px;min-height:44px}.mixer button.delete{color:var(--danger)}.mixer-head{align-items:center;gap:.4rem;min-height:44px;display:flex}.mixer-head button{min-width:48px;min-height:48px;font-size:.8rem}.mixer-head button.delete{min-width:96px}.mixer-head button:first-of-type{margin-left:auto}.mixer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.mixer-name-input{border:1px solid var(--line);background:var(--bg);min-width:96px;min-height:44px;color:var(--text);border-radius:6px;flex:0 200px;padding:0 .5rem;font-size:.9rem;font-weight:600}.mixer-missing{color:var(--text-dim);font-size:.75rem}.mixer{z-index:40;background:var(--panel-raised);border:none;border-radius:0;flex-direction:column;gap:.25rem;padding:.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}.mixer button.delete{min-width:72px}.mixer button.mixer-close{min-width:44px;font-size:1.1rem}.mixer .sends{align-items:center;gap:.25rem;font-size:.8rem;display:flex}.mixer .sends button{min-width:44px;min-height:44px}.mixer .send-label{width:.8rem;color:var(--text-dim)}.mixer .send-value{text-align:center;font-variant-numeric:tabular-nums;min-width:2rem}.value-reset{min-width:44px;min-height:44px;color:var(--text-dim);background:0 0;border:none;flex:none;font-size:1rem}.value-row{flex-direction:column;gap:2px;display:flex}.value-slider{touch-action:none;cursor:pointer;flex:1;align-items:center;min-width:120px;height:44px;display:flex;position:relative}.value-track{background:var(--panel);border:1px solid var(--line);border-radius:5px;height:10px;position:absolute;left:16px;right:16px}.value-fill{background:var(--accent-inset);border-radius:5px;position:absolute;top:0;bottom:0;left:0}.value-thumb{background:var(--accent);border:3px solid var(--bg);pointer-events:none;border-radius:50%;width:32px;height:32px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0006}.value-display{border:1px solid var(--line);background:var(--panel);min-width:64px;min-height:44px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:6px;flex:none}.value-fine{align-items:center;gap:6px;padding-left:calc(92px + .4rem);display:flex}.value-fine button{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--text);border-radius:6px}.value-fine-value{text-align:center;font-variant-numeric:tabular-nums;min-width:64px}.mixer .sound-toggle{width:100%;min-height:44px;margin-top:.25rem}.mixer .sound-params{flex-direction:column;gap:.25rem;padding:.25rem 0 .5rem;display:flex}.mixer-panel{max-height:80vh;overflow-y:auto}.mixer-tracks{flex-direction:column;gap:.5rem;display:flex}.mixer-strip{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex-direction:column;gap:.35rem;padding:.5rem;display:flex}.mixer-strip-head{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.mixer-strip-head .mixer-name-input{flex:1;min-width:5rem}.mixer-strip-head button{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--text);border-radius:6px;font-size:.7rem}.mixer-strip-head button.delete{color:var(--danger)}.mixer-strip-quick{flex-direction:column;gap:.2rem;display:flex}.mixer-more-toggle{border:1px dashed var(--line-strong);min-height:36px;color:var(--text-dim);background:0 0;border-radius:6px;font-size:.8rem}.mixer-more{flex-direction:column;gap:.2rem;display:flex}.mixer-master{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex-direction:column;gap:.35rem;padding:.5rem;display:flex}.mixer-master-head{align-items:center;gap:.5rem;display:flex}.mixer-master-title{margin-right:auto;font-size:.95rem}.mixer-master-head button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.step{position:relative}.step-note{pointer-events:none;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;inset:0}.playhead{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:.5rem;padding:.35rem .75rem .35rem .5rem;display:flex}.playhead-bar{background:var(--bg);border:1px solid var(--line);height:10px;margin-left:calc(var(--label-width) + .5rem);border-radius:5px;flex:1;align-items:stretch;gap:2px;display:flex;position:relative;overflow:hidden}.playhead-segment{background:var(--line);opacity:.45;flex:1}.playhead-marker{background:var(--accent);width:2px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.playhead-label{text-align:right;min-width:3.2rem;font-size:.75rem}.playhead-badge{min-width:var(--label-width);color:var(--accent);text-align:right;white-space:nowrap;font-size:.75rem}.playhead.has-badge .playhead-bar{margin-left:.5rem}.meter{font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap;padding:0 .35rem;font-size:.75rem}.transport .bpm span,.transport .swing span,.meter,.playhead-label,.value-display{font-variant-numeric:tabular-nums;letter-spacing:.04em;background:var(--lcd-bg);color:var(--lcd-text);border:1px solid var(--line-strong);text-shadow:0 0 6px #5ee3ff80;border-radius:6px;padding:2px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;box-shadow:inset 0 2px 6px #00000073}.live-status{right:max(.5rem, env(safe-area-inset-right));bottom:max(.5rem, env(safe-area-inset-bottom));z-index:40;background:var(--panel-raised);border:1px solid var(--line-strong);pointer-events:none;border-radius:8px;flex-direction:column;align-items:flex-end;gap:2px;padding:6px 10px;display:flex;position:fixed;box-shadow:0 4px 12px #00000073}.automation{border-top:1px solid var(--line);flex-direction:column;gap:.35rem;padding:.35rem 0;display:flex}.automation-head{justify-content:space-between;align-items:center;display:flex}.automation-params{gap:2px;display:flex}.automation-params button{min-width:40px;min-height:40px;padding:0 .3rem;font-size:.75rem}.automation-params button[data-active=true]{background:var(--accent-inset);color:var(--text)}.automation-clip{gap:2px;display:flex}.automation-clip button{min-width:40px;min-height:40px;padding:0 .3rem;font-size:.7rem}.automation-steps{touch-action:none;align-items:flex-end;gap:2px;height:28px;display:flex}.auto-step{background:var(--bg);border:1px solid var(--line);border-radius:3px;flex:1;justify-content:center;align-items:flex-end;height:100%;padding:0;display:flex;position:relative}.auto-step[data-selected=true]{outline:2px solid var(--accent);outline-offset:-1px}.auto-step[data-has-value=false] .auto-bar{height:2px}.auto-bar{background:var(--accent);opacity:.85;border-radius:1px 1px 0 0;width:60%}.automation .master-label{width:auto;min-width:4rem}.automation .value-slider{flex:0 150px;min-width:100px}.automation-presets{gap:4px;display:flex}.automation-presets button{flex:1;min-height:44px;font-size:.7rem}.set-panel{border-bottom:1px solid var(--line);background:var(--panel-raised);flex-direction:column;gap:.5rem;padding:.5rem .75rem;display:flex}.set-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.set-actions button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.set-save{gap:.5rem;display:flex}.set-save input{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:6px;flex:1;padding:0 .75rem;font-size:.9rem}.set-save button,.set-panel>button{border:1px solid var(--line);background:var(--bg);min-width:110px;min-height:44px;color:var(--text);border-radius:6px;font-size:.9rem}.set-list{flex-direction:column;gap:.25rem;display:flex}.set-row{gap:.25rem;display:flex}.set-load{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:6px;flex:1;justify-content:space-between;align-items:center;padding:0 .75rem;font-size:.9rem;display:flex}.set-date{color:var(--text-dim);font-size:.75rem}.set-row button.delete{min-width:44px;min-height:44px;color:var(--danger)}.ki-panel{border-bottom:1px solid var(--line);background:var(--panel-raised);flex-direction:column;gap:.5rem;padding:.5rem .75rem;display:flex}.ki-panel input{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:6px;flex:1;padding:0 .75rem;font-size:.9rem}.ki-kinds{gap:.25rem;display:flex}.ki-kinds button{border:1px solid var(--line);background:var(--bg);min-width:88px;min-height:44px;color:var(--text);border-radius:6px;font-size:.9rem}.ki-panel>button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:6px;font-size:.9rem}.ki-error{color:var(--danger);margin:0;font-size:.85rem}.ki-notice{color:var(--success);margin:0;font-size:.85rem}.ki-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ki-row button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.export-panel{border-bottom:1px solid var(--line);background:var(--panel-raised);flex-direction:column;gap:.5rem;padding:.5rem .75rem;display:flex}.export-panel .export-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.export-panel .export-label{font-size:.9rem}.export-kinds{gap:.25rem;display:flex}.export-panel label{align-items:center;gap:.4rem;min-height:44px;font-size:.9rem;display:flex}.export-panel input[type=number]{border:1px solid var(--line);background:var(--bg);width:64px;min-height:44px;color:var(--text);border-radius:8px;padding:0 .5rem;font-size:1rem}.export-panel input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.export-panel .export-meta{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.85rem;line-height:1.3}.export-panel .export-stem-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.export-panel .export-stem-name{min-width:5rem;font-size:.9rem;font-weight:600}.export-panel .export-hint{color:var(--text-dim);margin:0;font-size:.85rem;line-height:1.3}.export-panel .export-error{color:var(--danger);margin:0;font-size:.85rem}.export-panel button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.export-panel button:disabled{opacity:.6}.library-overlay{background:var(--bg);flex-direction:column;max-height:72vh;display:flex}.library-head{padding:.5rem .75rem;padding-top:max(.5rem, env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.library-title{margin-right:auto;font-size:.95rem}.library-content{min-height:0;padding:.5rem .75rem;padding-bottom:max(.5rem, env(safe-area-inset-bottom));flex:1;overflow:auto}.library-head input{border:1px solid var(--line);background:var(--bg);min-width:160px;min-height:44px;color:var(--text);border-radius:8px;flex:1;padding:0 .75rem;font-size:.9rem}.library-head button,.library-pack-toggle,.library-preview,.library-adopt{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;font-size:.9rem}.library-head button{padding:0 .9rem}.library-pack{border:1px solid var(--line);border-radius:8px;margin-bottom:.5rem}.library-pack-toggle{text-align:left;background:var(--bg);justify-content:space-between;align-items:center;width:100%;padding:.35rem .75rem;display:flex}.library-pack-toggle small{opacity:.75;font-size:.75rem}.library-categories{flex-direction:column;gap:.4rem;padding:.4rem .6rem;display:flex}.library-category-name{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin:.25rem 0 .2rem;font-size:.75rem;display:block}.library-sample{align-items:center;gap:.5rem;min-height:44px;display:flex}.library-preview{flex:none;width:48px}.library-sample-name{overflow-wrap:anywhere;flex:1;font-size:.9rem}.library-adopt{flex:none;padding:0 .75rem}.library-adopt:disabled{opacity:.55}.library-hint{opacity:.75;margin:0;font-size:.85rem}.track-menu-group{flex-direction:column;gap:.25rem;display:flex}.track-menu-group-name{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-top:.4rem;font-size:.75rem}.master-panel{border-bottom:1px solid var(--line);background:var(--panel-raised);flex-direction:column;gap:.75rem;padding:.5rem .75rem;display:flex}.master-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.master-title{margin-right:auto;font-size:.95rem}.master-head button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.master-section{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex-direction:column;gap:.25rem;padding:.5rem;display:flex}.master-section-name{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-bottom:.2rem;font-size:.75rem}.master-row{align-items:center;gap:.6rem;min-height:44px;display:flex}.master-label{flex:none;width:92px;font-size:.9rem}.master-row input[type=range]{min-width:120px;accent-color:var(--accent);flex:1}.master-value{text-align:right;font-variant-numeric:tabular-nums;flex:none;width:64px;font-size:.85rem}.master-hint{opacity:.7;margin:0;font-size:.8rem;line-height:1.3}.song-panel{border-bottom:1px solid var(--line);background:var(--panel-raised);flex-direction:column;gap:.75rem;padding:.5rem .75rem;display:flex}.song-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.song-title{margin-right:auto;font-size:.95rem}.song-head button,.song-section button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--text);border-radius:8px;padding:0 .9rem;font-size:.9rem}.song-section{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex-direction:column;gap:.35rem;padding:.5rem;display:flex}.song-section-name{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-bottom:.2rem;font-size:.75rem}.song-row{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:44px;display:flex}.song-pattern-name{flex:1;font-size:.9rem}.song-active{color:var(--accent);margin-left:.3rem}.song-append{gap:.4rem}.song-hint{opacity:.75;margin:0;font-size:.85rem;line-height:1.3}.song-section-item{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:.3rem;padding:.35rem;display:flex}.song-section-name-input{border:1px solid var(--line);background:var(--bg);min-width:6rem;min-height:40px;color:var(--text);border-radius:6px;flex:1;padding:0 .5rem;font-size:.9rem}.song-section-patterns{flex-wrap:wrap;gap:.3rem;display:flex}.song-section-patterns button{min-height:36px;padding:0 .6rem;font-size:.8rem}.song-section-patterns button[data-on=true]{background:var(--accent-inset);color:var(--text)}.timeline{position:relative}.timeline-scroll{padding-bottom:2px;position:relative;overflow-x:auto}.timeline-bands{height:18px;margin-bottom:4px;position:relative}.timeline-band{background:var(--accent-inset);border:1px solid var(--line);border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0}.timeline-band-name{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:9px}.timeline-blocks{align-items:center;gap:4px;min-height:46px;display:flex;position:relative}.timeline-block{color:#fff;cursor:grab;touch-action:none;border-radius:8px;flex:1 0 54px;height:42px;font-size:12px;font-weight:600}.timeline-block.dragging{z-index:5;border-style:dashed;transform:translateY(-6px);box-shadow:0 8px 18px #0000008c}.timeline-block.drop-target{outline:2px solid var(--success);outline-offset:-2px}.timeline-block[data-active=true]{outline:2px solid var(--accent);outline-offset:-2px}.timeline-empty{color:var(--text-dim);padding:8px;font-size:12px}.timeline-playhead{background:var(--accent);width:2px;box-shadow:0 0 10px var(--accent-glow);pointer-events:none;position:absolute;top:22px;bottom:22px}.timeline-tags{height:16px;margin-top:4px;position:relative}.timeline-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;position:absolute;overflow:hidden}.timeline-menu-overlay{z-index:40;position:fixed;inset:0}.timeline-menu{z-index:45;background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:10px;min-width:170px;padding:6px;position:absolute;top:70px;right:10px;box-shadow:0 12px 28px #0000008c}.timeline-menu div{cursor:pointer;border-radius:6px;padding:9px 10px;font-size:12px}.timeline-menu div+div{margin-top:2px}.timeline-menu .timeline-menu-danger{color:var(--danger)}.clip-timeline{--clip-label-width:92px;--clip-row-gap:6px;flex-direction:column;gap:4px;display:flex;position:relative}.clip-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.clip-toolbar button{min-height:44px}.clip-toolbar .clip-hint{margin-left:auto}.clip-hint{color:var(--text-dim);font-size:10px}.clip-row{align-items:center;gap:var(--clip-row-gap);min-height:44px;display:flex;position:relative}.clip-row-target{background:var(--accent-inset);outline:1px solid var(--accent);outline-offset:2px;border-radius:8px}.clip-track-name{width:var(--clip-label-width);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;text-align:left;cursor:pointer;background:0 0;border:none;flex:none;min-height:44px;padding:0;font-size:12px;overflow:hidden}.clip-row-delete{border:1px solid var(--line);width:44px;min-height:44px;color:var(--text-dim);background:0 0;border-radius:6px;flex:none;font-size:16px}.clip-lane{background:var(--bg);border:1px solid var(--line);touch-action:pan-y;border-radius:6px;flex:1;height:44px;position:relative;overflow:hidden}.clip-block{color:#fff;cursor:grab;touch-action:none;border:1px solid #00000038;border-radius:5px;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex;position:absolute;top:3px;bottom:3px}.clip-block.dragging{z-index:4;border-style:dashed;box-shadow:0 4px 12px #00000080}.clip-block.clip-selected{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:0 0 12px var(--accent-glow)}.clip-resize{cursor:ew-resize;width:10px;position:absolute;top:0;bottom:0;right:0}.clip-add{border:1px dashed var(--line-strong);width:36px;color:var(--text-dim);background:0 0;border-radius:5px;font-size:14px;position:absolute;top:0;bottom:0;right:2px}.clip-add-sample{right:42px}.clip-sample-picker{z-index:20;background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:8px;flex-wrap:wrap;gap:4px;max-width:420px;padding:6px;display:flex;position:absolute;top:100%;left:98px}.clip-sample-picker button{min-height:34px;padding:0 .6rem;font-size:12px}.clip-sample-picker-row{max-width:none;margin-bottom:6px;position:static}.loop-browser{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:4px;padding:6px;display:flex}.loop-browser-section{flex-direction:column;gap:4px;display:flex}.loop-browser-title{letter-spacing:.04em;color:var(--text-dim);text-transform:uppercase;font-size:11px;font-weight:700}.loop-group{flex-direction:column;gap:4px;display:flex}.loop-group-name{color:var(--text-dim);border-top:1px solid var(--line);padding-top:4px;font-size:11px}.loop-browser-items{flex-wrap:wrap;gap:4px;display:flex}.loop-chip{color:#fff;cursor:grab;touch-action:manipulation;border:1px solid #00000038;border-radius:6px;min-height:44px;padding:8px 12px;font-size:12px}.loop-chip-active{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 10px var(--accent-glow)}.loop-chip-sample{background:var(--panel-raised);color:var(--text)}.clip-playhead-layer{top:0;bottom:0;left:calc(var(--clip-label-width) + var(--clip-row-gap));pointer-events:none;z-index:5;position:absolute;right:0}.clip-playhead{background:var(--accent);width:2px;box-shadow:0 0 10px var(--accent-glow);pointer-events:none;position:absolute;top:0;bottom:0}.arrangement-panel{border-bottom:2px solid var(--line-strong);overscroll-behavior:contain;min-height:45vh;max-height:60vh;overflow-y:auto}.view-toggle{border:1px solid var(--line-strong);min-width:0;min-height:44px;color:var(--text);background:linear-gradient(#f5f7fa 0%,#d9dee5 45%,#c4cad3 100%);border-radius:8px;flex:none;padding:0 .7rem;font-size:.85rem;font-weight:600}.view-tab-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.view-tab-content .arrangement-panel{border-bottom:none;flex:1;min-height:0;max-height:none}.view-tab-content .step-editor{flex-direction:column;flex:1;min-height:0;max-height:none;display:flex;overflow:hidden}.app.panel-open>.song-panel,.app.panel-open>.mixer-panel,.app.panel-open>.ki-panel,.app.panel-open>.export-panel,.app.panel-open>.set-panel,.app.panel-open>.library-overlay{flex:1;min-height:0;max-height:none}.export-head{align-items:center;gap:.5rem;padding:.25rem 0 .5rem;display:flex}.export-title{margin-right:auto;font-size:.95rem;font-weight:700}.export-head button,.library-close{border:1px solid var(--line-strong);min-height:44px;color:var(--text);background:linear-gradient(#f5f7fa 0%,#d9dee5 45%,#c4cad3 100%);border-radius:8px;padding:0 .9rem}.arrangement-expanded{flex:auto;min-height:0;max-height:none}.editor-context{color:var(--text-dim);border-bottom:1px solid var(--line);padding:.35rem .75rem;font-size:.75rem}.step-editor{border-top:2px solid var(--line-strong);max-height:34vh;overflow-y:auto}.step-editor-hint{flex-direction:column;gap:.35rem;display:flex}.step-editor-hint .editor-hint{color:var(--text-dim);margin:0;padding:.5rem .75rem 0;font-size:.85rem}.step-editor-hint button{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:34px;color:var(--text);border-radius:8px;align-self:flex-start;margin:0 .75rem .5rem;padding:0 .75rem;font-size:.85rem}.transport button,.grid-row .label button,.mixer button,.mixer-strip-head button,.mixer-master-head button,.export-panel button,.set-panel button,.set-actions button,.song-panel button,.ki-panel button,.master-panel button{border-color:var(--line-strong);background:linear-gradient(#f5f7fa 0%,#d9dee5 45%,#c4cad3 100%);box-shadow:inset 0 1px #ffffffe6,0 1px 2px #0000002e}.transport button:active,.grid-row .label button:active,.mixer button:active,.mixer-strip-head button:active,.mixer-master-head button:active,.export-panel button:active,.set-panel button:active,.set-actions button:active,.song-panel button:active,.ki-panel button:active,.master-panel button:active{background:linear-gradient(#c4cad3 0%,#d9dee5 60%);box-shadow:inset 0 2px 5px #0000004d}.mixer .auto-step{background:var(--bg);border-color:var(--line)}.step[data-on=true],.grid-row .label button[data-on=true],.mixer button[data-on=true],.mixer-strip-head button[data-on=true],.transport button[data-active=true],.song-panel .song-row button[data-active=true],.ki-kinds button[data-active=true],.export-kinds button[data-active=true],.library-pack-toggle[data-active=true],.library-preview[data-active=true]{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow), inset 0 0 0 1px #ffffff14}
