:root{--paper:#e9e9e1;--ink:#346366;--muted:#768a87;--line:#bcc8c0;--accent:#d9418b;--screen:#173d40;--light:#dfe9c9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:12px 'Consolas','Courier New',monospace}button,input,select{font:inherit;color:inherit}button{border:0;background:transparent;cursor:pointer;padding:7px 9px}button:hover{background:#34636612}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,select{background:transparent;border:0}input[type=range]{accent-color:var(--ink);height:12px;cursor:pointer;min-width:0}header{height:92px;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line);margin:0 4%;}.wordmark{font-size:25px;font-weight:900;letter-spacing:-1.8px;text-decoration:none;color:var(--ink)}.wordmark span{font-size:12px;letter-spacing:3px;margin-left:17px;vertical-align:middle}.edition{font-size:10px;letter-spacing:1px}.version{margin-left:auto;font-size:10px;color:var(--muted)}main{max-width:1500px;margin:36px auto 30px;padding:0 4%;display:grid;grid-template-columns:minmax(560px,1.35fr) minmax(310px,1fr);gap:4%}.instrument{min-width:0}.projectbar{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.projectbar input{width:175px;font-size:14px;font-weight:bold}.projectbar span{font-size:10px;margin-left:auto;color:var(--muted)}.projectbar button{font-size:11px;padding:4px}.transport{display:flex;align-items:center;gap:18px;height:88px}.play{width:45px;height:45px;background:var(--ink);color:var(--paper);font-size:19px}.play:hover{background:var(--accent)}.play.playing{background:var(--accent)}.transportInfo{display:flex;flex-direction:column;gap:8px;font-size:10px;min-width:95px}.transportInfo span{color:var(--muted)}.tempo{font-size:10px;display:flex;flex-direction:column;gap:5px}.tempo input{width:55px;font-size:22px;font-weight:bold}.swing,.master{font-size:10px;display:flex;flex-direction:column;gap:6px}.swing{position:relative}.swing input{width:80px;margin:0}.swing output{position:absolute;right:0;top:0}.master{margin-left:auto}.master input{width:80px;margin:0}.sectionhead{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;min-height:35px;border-top:1px solid var(--ink);margin-top:4px}.sectionhead small{font-size:9px;color:var(--muted);margin-left:12px;letter-spacing:.2px}.patterns{display:flex;gap:3px}.patterns button{padding:4px 9px}.patterns button.active,.tabs button.active{background:var(--ink);color:var(--paper)}.grid{display:grid;grid-template-columns:repeat(8,1fr);gap:9px 12px;padding:18px 0 14px}.step{height:58px;border-bottom:1px solid #7f9a95;text-align:left;padding:3px 4px;position:relative;display:flex;flex-direction:column;justify-content:space-between;transition:background .08s}.step small{font-size:8px;color:var(--muted)}.step .value{font-weight:bold;font-size:13px;letter-spacing:-.5px}.step .glyph{position:absolute;right:5px;bottom:9px;width:9px;height:9px;background:var(--ink)}.step.off .value{color:#95aaa3}.step.off .glyph{display:none}.step.selected{background:#34636610;outline:1px solid #809b96;outline-offset:2px}.step.current{border-bottom:3px solid var(--accent);color:var(--accent)}.step.current .glyph{background:var(--accent)}.gridtools{display:flex;gap:7px;align-items:center;font-size:10px;padding:8px 0}.tabs{display:flex;gap:3px}.tabs button{padding:6px 9px;font-size:10px}.gridtools #stepLabel{margin-left:auto;color:var(--muted)}.gridtools>button{padding:5px}.stepedit{border-top:1px dotted var(--line);display:flex;align-items:center;gap:12px;padding:14px 0 22px;font-size:10px;flex-wrap:wrap}.stepedit label{display:flex;align-items:center;gap:5px}.stepedit input{width:60px}.stepedit select{font-weight:bold}.stepedit span{color:var(--muted);font-size:9px;margin-left:auto}.stepedit output{width:25px}.tracks{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin:12px 0 16px}.track{text-align:left;padding:8px 6px;border-bottom:2px solid var(--line);position:relative}.track b{font-size:15px}.track span{display:block;font-size:8px;margin-top:7px;white-space:nowrap;overflow:hidden}.track.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.track.muted{opacity:.4}.track.hit{border-color:var(--accent)}.soundhead{display:flex;gap:8px;margin-bottom:18px}.soundhead select{font-weight:bold;max-width:180px}.soundhead #audition{margin-left:auto}.soundhead button{font-size:10px}.soundhead .active{color:var(--paper);background:var(--accent)}.parameters{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 20px}.param{min-width:0}.param>div{display:flex;justify-content:space-between;font-size:10px;gap:3px}.param output{font-weight:bold}.param input{width:100%;margin:12px 0 0}.param .hint{font-size:9px;color:var(--muted);margin-top:4px}.param.disabled{opacity:.35}.instrumentFoot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:23px;padding-top:12px;font-size:9px;color:var(--muted)}.instrumentFoot button{font-size:10px;color:var(--ink)}.visualPanel{border-left:1px solid var(--line);padding-left:8%;min-width:0}.visualPanel .sectionhead{margin-top:0}.liveDot{color:var(--muted)}.liveDot.active{color:var(--accent)}.visualTitle h1{font-family:Georgia,'Times New Roman',serif;font-weight:normal;font-size:clamp(26px,2.7vw,43px);line-height:1.1;letter-spacing:-1.5px;margin:30px 0 14px}.visualTitle p{font-size:11px;letter-spacing:2px;color:var(--muted);margin-bottom:28px}.visualScreen{background:var(--screen);padding:13px 12px 0}canvas{width:100%;height:auto;display:block;image-rendering:pixelated}.screenCaption{border-top:1px solid #789b7e40;padding:13px 0;display:flex;justify-content:space-between;color:#b4c9a1;font-size:8px;letter-spacing:.3px;gap:5px}.visualcontrols{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.visualcontrols label{display:flex;align-items:center;font-size:10px;gap:8px}.visualcontrols input{width:70px}.meter{display:flex;gap:15px;align-items:center;font-size:9px;margin-top:25px}.meter>div{height:5px;background:#bcc8c0;flex:1}.meter i{display:block;width:0;height:100%;background:var(--accent)}.meter output{width:48px}.fieldNote{margin-top:34px;border-top:1px solid var(--line);padding-top:20px}.fieldNote>span{font-size:9px;letter-spacing:1px}.fieldNote p{font:11px/2 'Consolas','Microsoft YaHei',sans-serif;color:var(--muted)}.fieldNote b{color:var(--accent)}.visualFooter{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;margin-top:30px}footer{margin:0 4%;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:18px 0;color:var(--muted);font-size:9px;letter-spacing:.4px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);padding:12px 22px;background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}#toast.show{opacity:1}
@media(min-width:1500px){main{margin-top:48px}.grid{gap:14px}.step{height:70px}.parameters{gap:25px}.visualTitle{margin-bottom:38px}}
@media(max-width:980px){header{gap:12px}.edition{display:none}main{grid-template-columns:1fr;max-width:760px}.visualPanel{border:0;padding:0;margin-top:35px}.visualTitle h1{font-size:32px}.visualTitle h1 br{display:none}.visualScreen{max-width:600px;margin:auto}.visualFooter{margin-bottom:20px}}
@media(max-width:520px){header{height:70px}.version{font-size:8px}.wordmark{font-size:21px}.wordmark span{display:none}main{padding:0 5%;margin-top:20px}.projectbar input{width:130px}.projectbar span{display:none}.projectbar button:first-of-type{margin-left:auto}.transport{gap:12px}.transportInfo{min-width:65px;font-size:8px}.swing input{width:55px}.master input{width:45px}.grid{gap:8px}.step{height:52px}.step .value{font-size:11px}.step .glyph{width:5px;height:5px;right:1px}.step small{font-size:7px}.gridtools{gap:3px;flex-wrap:wrap}.gridtools button{font-size:9px}.gridtools #stepLabel{display:none}.stepedit{gap:8px}.stepedit span{width:100%;margin-top:5px}.tracks{gap:2px}.track{padding:7px 3px}.track span{font-size:7px}.parameters{gap:18px 12px}.param>div{font-size:9px;flex-wrap:wrap}.instrumentFoot{gap:10px}.instrumentFoot span{max-width:150px;line-height:1.6}.sectionhead small{font-size:8px;margin-left:5px}footer{font-size:8px;gap:20px}}

@font-face{font-family:'Loop Pixel';src:url('./fonts/fusion-pixel-12px-proportional-zh_hans.otf.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
body,button,input,select,.visualTitle h1,.fieldNote p{font-family:'Loop Pixel',monospace;font-synthesis:none}
.wordmark{font-size:24px;letter-spacing:0}
.visualTitle h1{font-size:36px;line-height:1.25;letter-spacing:0}
.fieldNote p{font-size:12px}
.fxPanel{margin-top:26px}.fxRow{display:grid;grid-template-columns:110px repeat(3,minmax(0,1fr));gap:16px;align-items:center;padding:16px 0;border-bottom:1px dotted var(--line)}.fxToggle{display:flex;align-items:center;gap:8px;text-align:left;padding:4px 0;font-size:12px}.fxToggle small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.fxLed{color:var(--line);font-size:10px}.fxRow.enabled .fxLed{color:var(--accent)}.fxParam{min-width:0}.fxParam>span{display:flex;justify-content:space-between;font-size:10px;gap:4px}.fxParam output{color:var(--ink)}.fxParam input{width:100%;margin:10px 0 0}.fxRoute{font-size:10px;color:var(--muted);margin:12px 0;line-height:1.6}.fxPanel .sectionhead>span:last-child{font-size:10px;letter-spacing:0}@media(max-width:520px){.fxRow{grid-template-columns:80px repeat(3,minmax(0,1fr));gap:10px}.fxToggle{font-size:10px;gap:4px}.fxParam>span{flex-direction:column;font-size:10px}}
.sceneSettings{display:flex;gap:20px;justify-content:space-between;margin:0 0 18px}.sceneSettings label{display:flex;flex-direction:column;gap:9px;font-size:12px;flex:1;min-width:0}.sceneSettings select{border-bottom:1px solid var(--line);padding:8px 0;width:100%;font-size:12px}.sceneSettings option,select option{background:var(--paper);color:var(--ink)}.screenCaption{color:var(--light);border-color:var(--shade)}.meter>div{background:var(--line)}.step{border-color:var(--muted)}.step.off .value{color:var(--muted)}.step.selected{background:color-mix(in srgb,var(--ink) 8%,transparent);outline-color:var(--muted)}button:hover{background:color-mix(in srgb,var(--ink) 9%,transparent)}.play:hover{background:var(--accent)}.play,.track.active,.patterns button.active,.tabs button.active{background:var(--ink);color:var(--paper)}.play.playing{background:var(--accent)}
.soloTracks{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin:-10px 0 18px}.soloTracks button{padding:4px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.soloTracks .active{background:var(--accent);color:var(--paper)}.track.soloed b:after{content:' S';color:var(--accent);font-size:10px}.pitchTools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:10px 0;border-top:1px dotted var(--line);font-size:12px}.pitchTools select{max-width:150px}.pitchTools button{border:1px solid var(--line);padding:6px}.fxTargetLabel{display:flex;justify-content:space-between;align-items:center;border-bottom:1px dotted var(--line);padding:12px 0;font-size:12px}.fxTargetLabel select{padding:5px;border-bottom:1px solid var(--line)}
.mobileNav,.mobileTrackBar{display:none}.sequencePanel,.soundPanel{display:contents}
@media(max-width:760px){
  body{padding:0 0 calc(80px + env(safe-area-inset-bottom));-webkit-text-size-adjust:100%}
  header{position:fixed;top:0;left:0;right:0;z-index:20;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;margin:0;background:var(--paper)}
  header .wordmark{font-size:24px}header .version{font-size:9px}header .edition{display:none}
  main{display:block;max-width:none;margin:0;padding:calc(192px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-left)) 20px}
  .transport{position:fixed;top:calc(52px + env(safe-area-inset-top));left:0;right:0;z-index:20;background:var(--paper);height:80px;padding:10px 14px;border-bottom:1px solid var(--line);gap:12px}
  .transport .play{width:48px;height:48px;flex-shrink:0;font-size:24px}
  .transportInfo{min-width:40px;flex:1;font-size:10px}.transportInfo b{display:none}.transportInfo span{font-size:12px}
  .tempo{font-size:10px}.tempo input{font-size:24px;width:62px;min-height:36px}
  .transport .swing{display:none}.transport .master{margin-left:0;font-size:10px}.transport .master input{width:66px;min-height:32px}
  .mobileTrackBar{position:fixed;top:calc(132px + env(safe-area-inset-top));left:0;right:0;height:50px;padding:0 14px;background:var(--paper);z-index:20;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink);font-size:12px}
  .mobileTrackBar label{display:flex;align-items:center;gap:12px}.mobileTrackBar select{font-size:16px;min-height:44px;max-width:235px}.mobileTrackBar>span{font-size:12px;color:var(--muted)}
  [data-mobile-panel]{display:none!important}
  body[data-mobile-tab=sequence] [data-mobile-panel=sequence],body[data-mobile-tab=sound] [data-mobile-panel=sound],body[data-mobile-tab=fx] [data-mobile-panel=fx],body[data-mobile-tab=visual] [data-mobile-panel=visual],body[data-mobile-tab=project] [data-mobile-panel=project]{display:block!important}
  .mobileNav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:30;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--ink)}
  .mobileNav button{min-height:52px;font-size:12px;padding:5px 0;color:var(--muted)}.mobileNav button span{display:block;font-size:18px;margin-bottom:5px}.mobileNav button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
  .sectionhead{min-height:48px;font-size:12px}.sectionhead small{display:none}.patterns button{min-width:40px;min-height:44px;font-size:16px;padding:8px}
  .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 12px;padding:12px 0 18px}
  .step{height:55px;padding:4px 7px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y}
  .step small{font-size:10px}.step .value{font-size:16px;letter-spacing:0}.step .glyph{right:7px;width:8px}.step.touchEditing{outline:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--paper))}
  .gridtools{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 12px}.gridtools .tabs{display:grid;grid-template-columns:repeat(4,1fr);width:100%}.gridtools .tabs button{min-height:44px;font-size:12px;padding:8px 3px}.gridtools>button{min-height:44px;font-size:12px;padding:8px}.gridtools #stepLabel{display:none}
  .stepedit{position:sticky;bottom:calc(65px + env(safe-area-inset-bottom));z-index:10;background:var(--paper);border:1px solid var(--line);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:0 0 14px;box-shadow:0 -5px 12px color-mix(in srgb,var(--paper) 90%,transparent)}
  .stepedit label{min-height:44px;min-width:0;font-size:12px;gap:5px}.stepedit input{width:100%;min-width:25px;flex:1;min-height:36px}.stepedit select{font-size:16px;min-height:44px;max-width:100px}.stepedit output{font-size:12px;width:32px;flex-shrink:0}.stepedit>span{display:none}
  .pitchTools{gap:8px;padding:12px 0;font-size:12px}.pitchTools button{min-height:44px;padding:8px}.pitchTools select{font-size:16px;min-height:44px;max-width:170px}
  .tracks{grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;margin-top:12px}.track{min-height:48px;text-align:center;padding:8px 0}.track b{font-size:16px}.track span{display:none}.soloTracks{gap:2px}.soloTracks button{min-height:44px;font-size:16px}.track.soloed b:after{display:none}
  .soundhead{flex-wrap:wrap;gap:8px}.soundhead select{font-size:16px;min-height:44px;max-width:100%;width:100%;border-bottom:1px solid var(--line)}.soundhead button{min-height:44px;font-size:12px}.soundhead #audition{margin-left:0;margin-right:auto}
  .parameters{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.param>div{font-size:12px}.param input{min-height:36px;margin-top:6px}.param .hint{font-size:12px}
  .fxPanel{margin-top:0}.fxTargetLabel{font-size:12px;gap:8px}.fxTargetLabel select{font-size:16px;min-height:44px;max-width:210px}.fxRow{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 0}.fxToggle{grid-column:1/-1;min-height:44px;font-size:16px;gap:10px}.fxToggle>span:last-child{display:flex;gap:12px;align-items:center}.fxToggle small{margin-top:0}.fxParam>span{flex-direction:column;font-size:12px;gap:7px}.fxParam input{min-height:36px;margin-top:3px}.fxRoute{font-size:12px}
  .visualPanel{margin:0;padding:0;border:0}.visualTitle h1{font-size:24px;line-height:1.3;margin:16px 0}.visualTitle p{font-size:12px;margin-bottom:20px}.sceneSettings{gap:14px}.sceneSettings select{font-size:16px;min-height:44px}.visualScreen{padding:8px 8px 0}.screenCaption{font-size:9px;flex-wrap:wrap}.visualcontrols .tabs button{min-height:44px;font-size:12px}.visualcontrols label{font-size:12px}.visualcontrols input{min-height:36px}.fieldNote{margin-top:20px}.fieldNote p{font-size:12px}.meter{margin-top:16px}.visualFooter{margin-bottom:15px}
  body[data-mobile-tab=project] .projectbar{display:flex!important;flex-wrap:wrap;gap:12px;padding:18px 0}.projectbar input{width:100%;font-size:16px;min-height:44px;border-bottom:1px solid var(--line)}.projectbar span{display:block;margin:0;width:100%;font-size:12px}.projectbar button{min-height:48px;font-size:16px;padding:10px;border:1px solid var(--line);margin:0!important}
  .instrumentFoot{margin-top:16px;padding:0}.instrumentFoot>span{display:none}.instrumentFoot button{font-size:16px;min-height:48px;width:100%;text-align:left;border:1px solid var(--line);padding:12px}
  footer{display:none}#toast{bottom:calc(80px + env(safe-area-inset-bottom));max-width:90%;width:max-content;font-size:12px;line-height:1.6}
  button{touch-action:manipulation}input,select{font-size:16px}input[type=range]{touch-action:pan-y}
}
.mobileHint,.mobileProjectSettings{display:none}@media(max-width:760px){.mobileHint{display:block;font-size:12px;color:var(--muted);margin:10px 0}.mobileProjectSettings label{display:flex;gap:12px;align-items:center;font-size:16px;margin:20px 0}.mobileProjectSettings input{flex:1;min-width:0;min-height:44px}}

.patternBar{display:flex;align-items:center;gap:8px;margin:8px 0}.patternBar .patterns{display:flex;flex-wrap:wrap;flex:1;gap:3px}.patternBar>button{border:1px solid var(--line)}#patternSelect{font-size:16px;padding:8px;min-width:60px;border-bottom:1px solid var(--line)}.stepPages{display:none}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--ink);max-width:560px;width:calc(100% - 28px);padding:20px}dialog::backdrop{background:#0007}.dialogHead{display:flex;align-items:center;justify-content:space-between;font-size:16px;margin-bottom:18px}.dialogHead button{min-height:44px}#mobileActions{display:flex;gap:8px;flex-wrap:wrap}#mobileActions button{min-height:44px}.songPanel{margin-top:24px;border-top:1px solid var(--line)}.songToolbar{display:flex;gap:14px;align-items:center;justify-content:space-between;margin:12px 0}.songToolbar label{display:flex;align-items:center;gap:8px}.songToolbar select{padding:8px;border:1px solid var(--line)}.songToolbar button{border:1px solid var(--line);min-height:44px}.songHelp{color:var(--muted);font-size:12px}.songRow{display:grid;grid-template-columns:28px 1fr 1fr 40px 40px 40px;gap:6px;align-items:center;border-bottom:1px dotted var(--line);padding:6px}.songRow select{min-height:44px;font-size:16px}.songRow button{min-height:44px;font-size:16px}.songRow.playing{background:color-mix(in srgb,var(--accent) 16%,var(--paper));border-color:var(--accent)}#songStatus{color:var(--accent);font-size:12px}
@media(max-width:760px){
  body{height:100dvh;overflow:hidden;padding:0;overscroll-behavior:none}
  header{height:calc(32px + env(safe-area-inset-top));padding-left:12px;padding-right:12px}header .wordmark{font-size:18px}header .version{font-size:8px}
  .transport{top:calc(32px + env(safe-area-inset-top));height:58px;padding:5px 12px;gap:8px}.transport .play{height:44px;width:44px}.tempo input{font-size:22px}.transportInfo{flex:1}
  .mobileTrackBar{top:calc(90px + env(safe-area-inset-top));height:40px;padding:0 12px}.mobileTrackBar select{min-height:36px}
  main{position:fixed;top:calc(130px + env(safe-area-inset-top));bottom:calc(60px + env(safe-area-inset-bottom));left:0;right:0;padding:0 12px;margin:0;overflow:hidden}
  main>.instrument{height:100%;min-height:0}.mobileNav{grid-template-columns:repeat(6,1fr);height:calc(60px + env(safe-area-inset-bottom));padding-top:3px;padding-bottom:calc(3px + env(safe-area-inset-bottom))}.mobileNav button{min-height:48px}.mobileNav button span{font-size:16px;margin-bottom:3px}
  body[data-mobile-tab=sequence] .sequencePanel{display:flex!important;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0 1px}
  .sequencePanel .sectionhead{min-height:34px;flex-shrink:0;margin:0;font-size:11px}.sequencePanel #patternSelect{padding:4px;min-height:32px}
  .patternBar{margin:0;gap:6px;height:36px;flex-shrink:0}.patternBar .patterns{display:none}.patternBar>button{min-height:32px;padding:4px 10px;font-size:12px}.patternBar #openTools{margin-left:auto}
  .stepPages{display:flex;gap:6px;align-items:center;height:32px;flex-shrink:0}.stepPages button{min-height:30px;min-width:65px;font-size:12px;padding:4px}.stepPages button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.stepPages span{margin-left:auto;color:var(--muted);font-size:10px}
  .sequencePanel .grid{flex:1;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:6px 10px;padding:7px 0;margin:0}.step.otherPage{display:none}.sequencePanel .step{height:auto;min-height:0;padding:4px 7px;touch-action:none}.step .value{font-size:16px}
  .sequencePanel .gridtools{height:38px;min-height:38px;flex-shrink:0;padding:0;gap:0}.sequencePanel .gridtools .tabs button{min-height:36px;padding:5px;font-size:11px}
  .sequencePanel .stepedit{position:static;box-shadow:none;flex-shrink:0;min-height:92px;margin:4px 0 5px;padding:4px 7px;gap:0 10px}.stepedit label{min-height:40px;font-size:11px}.stepedit select{min-height:36px;max-width:85px}.stepedit input{min-height:32px}
  body[data-mobile-tab=song] [data-mobile-panel=song]{display:block!important}
  .soundPanel,.fxPanel,.songPanel{height:100%;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px;margin-top:0}.songPanel{border:0}.songPanel .sectionhead{min-height:40px}.songToolbar{font-size:12px;gap:8px}.songRow{grid-template-columns:22px 1fr 1fr 36px 36px 36px;gap:3px;padding:5px 0}.songRow button{padding:3px}.songHelp{font-size:10px}.songToolbar label{gap:5px}
  body[data-mobile-tab=visual] .instrument{display:none}.visualPanel{height:100%;overflow:auto}.visualTitle,.fieldNote,.visualFooter{display:none}.visualPanel .sectionhead{min-height:35px}.sceneSettings{margin-bottom:8px;gap:10px}.sceneSettings label{gap:3px;font-size:10px}.sceneSettings select{min-height:36px}.visualScreen{max-width:440px}.visualcontrols{margin-top:6px}.meter{margin-top:8px}
  body[data-mobile-tab=project] .instrument{overflow-y:auto}.instrumentFoot{display:flex;flex-wrap:wrap;gap:10px}.instrumentFoot select{min-height:44px;width:100%}
  #toolsDialog{max-height:calc(100dvh - 40px);overflow:auto;padding:14px}.pitchTools{margin-bottom:0}
}
@media(max-width:760px) and (max-height:600px){.sequencePanel .sectionhead{min-height:28px}.patternBar{height:32px}.stepPages{height:28px}.sequencePanel .grid{gap:4px 8px;padding:4px 0}.step small{font-size:8px}.step .value{font-size:13px}.sequencePanel .stepedit{min-height:80px}.stepedit label{min-height:35px}.sequencePanel .gridtools{height:32px;min-height:32px}.sequencePanel .gridtools .tabs button{min-height:30px}}

#allReset{color:var(--accent)}#resetDialog{max-width:440px;max-height:calc(100dvh - 40px);overflow:auto}#resetDialog h2{font-size:20px;font-weight:normal}#resetDialog p{font-size:14px;line-height:1.8}.resetActions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.resetActions button{min-height:44px;border:1px solid var(--line);padding:10px 16px}#confirmReset{background:var(--accent);color:var(--paper)}

@media(max-width:760px){.sequencePanel .gridtools .tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.sequencePanel .gridtools .tabs button{font-size:10px;padding:4px 1px}.stepedit .gateControl{grid-column:1/-1}.stepedit .gateControl output{width:42px}.sequencePanel .stepedit{min-height:126px}.visualScreen{padding-bottom:8px}}
@media(max-width:760px) and (max-height:600px){.sequencePanel .stepedit{min-height:112px}.stepedit label{min-height:32px}.stepedit input{min-height:28px}}

@media(max-width:760px){body[data-mobile-tab=visual] .instrument{display:block;height:0!important}}
@media(max-width:760px) and (max-height:600px){.sequencePanel .step{flex-direction:row;align-items:center;justify-content:center;padding:2px 12px}.sequencePanel .step small{position:absolute;top:2px;left:3px;font-size:8px;line-height:1}.sequencePanel .step .value{font-size:12px;line-height:1}.sequencePanel .step .glyph{right:3px;bottom:3px;width:5px;max-height:18px}}
