/* Jam is intentionally scoped: the original design studio keeps its own layout. */
#jamApp{--jam-ink:#07090c;--jam-paper:#eef0e9;--jam-muted:#939a9c;--jam-line:rgba(220,231,223,.14);--jam-accent:#d7edb1;position:fixed;inset:0;z-index:120;background:var(--jam-ink);color:var(--jam-paper);font-family:'Space Grotesk',Arial,sans-serif;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;width:100%;max-width:100%;min-width:0;height:100dvh;-webkit-tap-highlight-color:transparent}
#jamApp[hidden],#jamApp [hidden]{display:none!important}
#jamApp *{box-sizing:border-box}
#jamApp button,#jamApp input,#jamApp select{font:inherit;letter-spacing:inherit}
#jamApp button{color:inherit;background:none;border:0;cursor:pointer;min-height:42px;box-shadow:none;border-radius:0}
#jamApp button:disabled{opacity:.3;cursor:default}
#jamApp button:focus-visible,#jamApp input:focus-visible,#jamApp select:focus-visible,#jamApp canvas:focus-visible{outline:1px solid var(--jam-accent);outline-offset:4px}
#jamApp svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#jamApp .jam-header{position:absolute;left:0;right:0;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:calc(12px + env(safe-area-inset-top)) 28px 12px;background:linear-gradient(#07090cdd,#07090c00);pointer-events:none}
#jamApp .jam-header>*{pointer-events:auto}
#jamApp .jam-brand{display:flex;min-width:0;align-items:baseline;gap:17px;white-space:nowrap;letter-spacing:-.8px;font-size:20px;font-weight:400}
#jamApp .jam-brand span{font-size:9px;letter-spacing:3px;color:var(--jam-muted);text-transform:uppercase}
#jamApp .jam-top-actions{display:flex;flex:none;gap:6px;align-items:center}
#jamApp .jam-top-actions button{padding:8px 12px;font-size:11px;letter-spacing:.3px;border-radius:24px;background:#080b10a0;backdrop-filter:blur(10px)}
#jamApp .jam-top-actions .jam-icon{width:42px;padding:12px;display:grid;place-items:center}
#jamApp .jam-bpm-number{font-variant-numeric:tabular-nums;color:var(--jam-paper)}
#jamApp .jam-bpm-unit{color:var(--jam-muted);font-size:9px;margin-left:4px}
#jamApp .jam-stage{display:grid;gap:1px;flex:1;min-height:0;width:100%;background:#22292b;grid-template-columns:1fr;grid-template-rows:1fr;padding:0}
#jamApp .jam-stage[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
#jamApp .jam-stage[data-count="3"],#jamApp .jam-stage[data-count="4"],#jamApp .jam-stage[data-count="5"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}
#jamApp .jam-stage[data-count="3"] .jam-field:last-child,#jamApp .jam-stage[data-count="5"] .jam-field:last-child{grid-column:span 2}
#jamApp .jam-field{position:relative;min-width:0;min-height:0;overflow:hidden;background:#07090c;isolation:isolate}
#jamApp .jam-field canvas{position:absolute;width:100%;height:100%;inset:0;display:block;touch-action:none;cursor:crosshair}
#jamApp .jam-field.selected:after{position:absolute;inset:0;pointer-events:none;content:'';box-shadow:inset 0 0 0 1px rgba(215,237,177,.19);z-index:2}
#jamApp .jam-field.muted canvas{opacity:.45}
#jamApp .jam-field-head{position:absolute;z-index:4;top:16px;left:22px;right:16px;display:flex;align-items:center;gap:4px;pointer-events:none}
#jamApp .jam-stage[data-count="1"] .jam-field-head,#jamApp .jam-stage[data-count="2"] .jam-field-head,#jamApp .jam-stage[data-count="3"] .jam-field:nth-child(-n+2) .jam-field-head,#jamApp .jam-stage[data-count="4"] .jam-field:nth-child(-n+2) .jam-field-head,#jamApp .jam-stage[data-count="5"] .jam-field:nth-child(-n+2) .jam-field-head{top:calc(76px + env(safe-area-inset-top))}
#jamApp .jam-field-head button{pointer-events:auto;display:flex;align-items:center;gap:9px;min-height:38px;font-size:10px;letter-spacing:1.15px;padding:5px 8px;background:#07090c50;border-radius:20px}
#jamApp .jam-field-head .jam-material-name{padding-left:0;margin-right:auto}
#jamApp .jam-field-head .jam-indicator{height:4px;width:4px;border-radius:50%;background:#56615f;box-shadow:none;flex:none}
#jamApp .jam-field.selected .jam-indicator{background:var(--field-color);box-shadow:0 0 12px var(--field-color)}
#jamApp .jam-field-head .jam-tiny-icon{width:36px;justify-content:center;padding:9px}
#jamApp .jam-field-head .jam-tiny-icon svg{width:14px;height:14px}
#jamApp .jam-field-head button[aria-pressed="true"]{color:#c5d1c1}
#jamApp .jam-start-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none;z-index:3;text-shadow:0 2px 20px #000}
#jamApp .jam-start-hint strong{font-weight:300;font-size:23px;letter-spacing:-.7px;color:#edf1e7c9}
#jamApp .jam-start-hint small{font-size:10px;letter-spacing:1.5px;color:#9da8a6}
#jamApp .jam-field.playing .jam-start-hint{opacity:0;transition:opacity 1.2s}
#jamApp .jam-entry-scale{display:flex;align-items:center;gap:18px;position:absolute;z-index:3;bottom:115px;left:9%;right:9%;pointer-events:none;font-size:9px;letter-spacing:1px;color:#afbcb29c}
#jamApp .jam-entry-scale:before{content:'';height:1px;background:linear-gradient(90deg,transparent,#bdd0c149,#bdd0c186);order:1;flex:1}
#jamApp .jam-entry-scale span:last-child{order:2}
#jamApp .jam-field.playing .jam-entry-scale{opacity:0;transition:opacity .8s}
#jamApp .jam-stage:not([data-count="1"]) .jam-entry-scale{bottom:30px;left:8%;right:8%}
#jamApp .jam-stage:not([data-count="1"]) .jam-field:last-child .jam-entry-scale{bottom:100px}
#jamApp .jam-phase{position:absolute;bottom:25px;left:24px;right:24px;display:flex;gap:4px;z-index:3;pointer-events:none;opacity:0;transition:opacity .4s}
#jamApp .jam-field.playing .jam-phase{opacity:.7}
#jamApp .jam-phase i{display:block;height:2px;flex:1;background:#ffffff18;transition:background .12s}
#jamApp .jam-phase i.in-region{background:#ffffff30}
#jamApp .jam-phase i.current{background:var(--field-color);box-shadow:0 0 10px var(--field-color)}
#jamApp .jam-stage[data-count="1"] .jam-phase,#jamApp .jam-stage[data-count="2"] .jam-phase,#jamApp .jam-stage[data-count="3"] .jam-field:last-child .jam-phase,#jamApp .jam-stage[data-count="4"] .jam-field:nth-child(n+3) .jam-phase,#jamApp .jam-stage[data-count="5"] .jam-field:last-child .jam-phase{bottom:calc(91px + env(safe-area-inset-bottom))}
#jamApp .jam-dock{position:absolute;z-index:10;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:5px 10px;background:#101519ad;border:1px solid #d6e3d520;border-radius:50px;backdrop-filter:blur(24px);box-shadow:0 8px 45px #0004;max-width:calc(100vw - 28px);gap:1px}
#jamApp .jam-dock button{min-width:72px;min-height:43px;padding:9px 16px;font-size:11px;letter-spacing:.3px;color:#b7bfbb;border-radius:30px}
#jamApp .jam-dock button.active{background:#d9e7cf;color:#172015}
#jamApp .jam-dock .jam-more{min-width:38px;padding:9px 10px;display:grid;place-items:center}
#jamApp .jam-material-strip{position:absolute;z-index:7;bottom:calc(148px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;justify-content:center;gap:6px;max-width:calc(100vw - 30px)}
#jamApp .jam-material-strip button{font-size:10px;letter-spacing:.3px;color:#a8b5af;min-height:36px;padding:7px 14px;border:1px solid #d7e9d318;border-radius:30px;background:#070b0dcc;backdrop-filter:blur(20px);white-space:nowrap}
#jamApp .jam-material-strip button.active{color:#eef3e4;border-color:#cadf9c77;background:#afc18a16}
#jamApp .jam-popover{position:absolute;z-index:20;width:min(520px,calc(100vw - 28px));left:50%;bottom:calc(85px + env(safe-area-inset-bottom));transform:translateX(-50%);max-height:min(68dvh,570px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:22px;background:#0e1418f5;border:1px solid #c5d7c326;border-radius:20px;backdrop-filter:blur(30px);box-shadow:0 20px 120px #000a;scrollbar-width:thin;scrollbar-color:#42504a transparent}
#jamApp .jam-popover header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
#jamApp .jam-popover h2{font-size:15px;font-weight:400;letter-spacing:-.2px;margin:0;display:flex;gap:12px;align-items:baseline}
#jamApp .jam-popover h2 small{font-size:9px;color:var(--jam-muted);letter-spacing:.6px}
#jamApp .jam-popover header button{min-height:30px;width:30px;display:grid;place-items:center;padding:6px;color:#a8b3ad}
#jamApp .jam-popover p{font-size:11px;line-height:1.7;color:#a3afa8;margin:12px 0}
#jamApp .jam-popover button.jam-action{border:1px solid #d3dfc830;border-radius:24px;padding:9px 15px;min-height:40px;font-size:11px}
#jamApp .jam-popover button.jam-action.active{background:#d3dfc8;color:#142014}
#jamApp .jam-popover .jam-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#89968f;margin:20px 0 10px}
#jamApp .jam-popover .jam-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#jamApp .jam-popover .jam-row.between{justify-content:space-between}
#jamApp .jam-material-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#jamApp .jam-material-card{position:relative;text-align:left;border:1px solid #d3dfc81d;border-radius:12px!important;padding:15px 12px!important;min-height:96px!important;overflow:hidden;font-size:11px}
#jamApp .jam-material-card:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 90% 5%,var(--material-glow),transparent 76%);opacity:.45;pointer-events:none}
#jamApp .jam-material-card b{position:relative;font-weight:400;display:block;margin-bottom:9px}
#jamApp .jam-material-card small{position:relative;font-size:9px;line-height:1.5;color:#aab5ac;display:block}
#jamApp .jam-material-card.active{border-color:#cbd9b5!important}
#jamApp .jam-palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#jamApp .jam-swatch{min-height:91px!important;border-radius:12px!important;border:1px solid #ffffff12!important;padding:15px 12px!important;text-align:left;position:relative;overflow:hidden}
#jamApp .jam-swatch:before{content:'';width:55px;height:55px;position:absolute;right:0;top:-10px;border-radius:50%;background:var(--swatch);filter:blur(22px);opacity:.55;pointer-events:none}
#jamApp .jam-swatch span{height:11px;width:11px;display:block;border-radius:50%;background:var(--swatch);margin-bottom:10px;box-shadow:0 0 15px color-mix(in srgb,var(--swatch),transparent 65%)}
#jamApp .jam-swatch b{font-weight:400;position:relative;font-size:11px}
#jamApp .jam-swatch small{display:block;font-size:9px;color:#b6bdb4;line-height:1.5;margin-top:3px}
#jamApp .jam-swatch.active{border-color:#c5dab194!important}
#jamApp input[type="color"]{padding:0;width:38px;height:38px;border:0;border-radius:50%;overflow:hidden;background:none;cursor:pointer}
#jamApp .jam-keyboard{display:flex;position:relative;height:155px;margin:12px -3px 18px;user-select:none;touch-action:none;gap:4px}
#jamApp .jam-key-row{display:flex;position:relative;flex:1;min-width:0;gap:2px;height:100%}
#jamApp .jam-key-size{display:flex;border:1px solid #c5d7c327;border-radius:20px;overflow:hidden}
#jamApp .jam-key-size button{font-size:9px;min-height:34px;padding:7px 10px;color:#aab6a6}
#jamApp .jam-key-size button.active{background:#c6d9af;color:#192516}
#jamApp .jam-selected-notes{display:flex;flex-wrap:wrap;gap:5px;flex:1;min-width:100px;align-items:center}
#jamApp .jam-selected-notes button{min-height:34px;font-size:10px;padding:6px 9px;border:1px solid #c5d7c32a;border-radius:20px;background:#bacfac08}
#jamApp .jam-key{padding:0!important;flex:1;min-width:0;position:relative;border-radius:0 0 4px 4px!important;background:#cfd7ce!important;color:#25302a!important;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px!important;font-size:8px;min-height:100%;border:1px solid #18231e!important}
#jamApp .jam-key.black{position:absolute;top:0;height:63%;min-height:0;width:10%;background:#151c20!important;color:#b6c6b2!important;z-index:2;border:1px solid #455449!important}
#jamApp .jam-key.selected{background:#abc784!important;box-shadow:inset 0 -4px #e3fbc3}
#jamApp .jam-key.black.selected{background:#63854a!important}
#jamApp .jam-loop-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;margin:15px 0}
#jamApp .jam-loop-step{border:1px solid #b9cdb01b!important;border-radius:7px!important;min-height:53px!important;font-size:10px!important;background:#b7cead07!important;padding:6px 1px!important;display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center}
#jamApp .jam-loop-step small{font-size:8px;color:#809087}
#jamApp .jam-loop-step.selected{border-color:#d4e5b8!important;background:#bbcfa515!important}
#jamApp .jam-loop-step.out-region{opacity:.35}
#jamApp .jam-loop-step.current{box-shadow:inset 0 -2px #c3e49a!important}
#jamApp .jam-region{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;padding:10px 0;touch-action:none;user-select:none;cursor:ew-resize}
#jamApp .jam-region i{height:16px;background:#c6d5be14;border-radius:2px}
#jamApp .jam-region i.in-region{background:#adbf8e8c}
#jamApp .jam-region i:first-child,#jamApp .jam-region i:last-child{border-left:1px solid #d1e2be88}
#jamApp .jam-compact-control{display:flex;gap:4px;align-items:center;font-size:10px;color:#aab6ac}
#jamApp .jam-compact-control button{min-height:36px;min-width:33px;font-size:15px;background:#c6d5be09;border-radius:5px}
#jamApp .jam-compact-control output{min-width:22px;text-align:center;color:#e4edda;font-variant-numeric:tabular-nums}
#jamApp .jam-beat-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;align-items:end;margin:18px 0}
#jamApp .jam-beat-step{min-height:36px!important;border:1px solid #bdcfac21!important;background:#b8cc9710!important;border-radius:4px!important;padding:6px 0!important;font-size:9px;align-self:end}
#jamApp .jam-beat-step.active{background:#bdcfaa!important;color:#182015!important;box-shadow:0 0 18px #c5dca11a}
#jamApp .jam-beat-step.current{border-color:white!important;transform:translateY(-3px)}
#jamApp .jam-node-chain{display:flex;flex-direction:column;gap:0;margin-top:12px}
#jamApp .jam-node{border:1px solid #c6d5be20;border-radius:10px;padding:10px 12px;position:relative}
#jamApp .jam-node+.jam-node{margin-top:17px}
#jamApp .jam-node+.jam-node:before{content:'';height:17px;width:1px;background:#bdcfaa55;position:absolute;left:25px;top:-18px}
#jamApp .jam-node.enabled{border-color:#bdcfaa77;background:#bdcfaa08}
#jamApp .jam-node-main{display:flex;gap:12px;align-items:center;justify-content:space-between}
#jamApp .jam-node-main>button{display:flex;align-items:center;gap:10px;font-size:11px;min-height:32px}
#jamApp .jam-node-main i{display:block;height:8px;width:8px;border:1px solid #b6c2b0;border-radius:50%;background:transparent}
#jamApp .jam-node.enabled .jam-node-main i{background:#c2d6aa;box-shadow:0 0 9px #c2d6aa55}
#jamApp .jam-node p{margin:2px 0 0 25px;font-size:10px}
#jamApp .jam-select{appearance:none;background:#162019;color:#d2dcc9;border:1px solid #b8c6aa2b;border-radius:7px;padding:9px 13px;min-height:37px;font-size:11px}
#jamApp .jam-range-row{display:grid;grid-template-columns:65px 1fr 40px;gap:12px;align-items:center;margin:18px 0;font-size:10px;color:#aab5ae}
#jamApp .jam-range-row input{width:100%;accent-color:#c8dda9;min-height:30px;background:transparent}
#jamApp .jam-range-row output{text-align:right;font-size:11px;color:#e1ead7;font-variant-numeric:tabular-nums}
#jamApp .jam-message{position:absolute;z-index:30;left:50%;transform:translateX(-50%);bottom:calc(94px + env(safe-area-inset-bottom));padding:11px 18px;border:1px solid #b9cead27;border-radius:25px;background:#101912ee;color:#d7e1cb;max-width:90vw;text-align:center;pointer-events:none;font-size:11px}
#jamApp .jam-panel-note{font-size:10px!important;color:#8c9a91!important}
#jamApp .jam-shortcut-list{display:grid;grid-template-columns:100px 1fr;gap:13px 15px;margin:15px 0 20px;font-size:11px;line-height:1.7}
#jamApp .jam-shortcut-list dt{color:#e2ebd5}
#jamApp .jam-shortcut-list dd{margin:0;color:#9fac9f}
#jamReopen{border:1px solid #a3ba8c66;background:#acc28d20;color:inherit;border-radius:20px;padding:7px 13px;font-size:11px;min-height:37px}
@media(min-width:1200px){#jamApp .jam-popover{bottom:100px}#jamApp .jam-material-strip{bottom:170px}#jamApp .jam-stage[data-count="5"]{grid-template-columns:repeat(3,minmax(0,1fr))}#jamApp .jam-stage[data-count="5"] .jam-field:last-child{grid-column:span 1}#jamApp .jam-stage[data-count="5"] .jam-field:nth-child(-n+3) .jam-field-head{top:calc(76px + env(safe-area-inset-top))}#jamApp .jam-stage[data-count="5"] .jam-field:nth-child(n+4) .jam-phase{bottom:calc(91px + env(safe-area-inset-bottom))}#jamApp .jam-stage[data-count="5"] .jam-field:nth-child(4){grid-column:span 2}}
@media(max-width:650px){#jamApp .jam-header{padding:calc(9px + env(safe-area-inset-top)) 14px 8px;gap:5px}#jamApp .jam-brand{font-size:17px;letter-spacing:-.7px;gap:7px}#jamApp .jam-brand span{display:none}#jamApp .jam-top-actions{gap:1px}#jamApp .jam-top-actions button{padding:7px 9px;font-size:10px}#jamApp .jam-top-actions .jam-icon{width:36px;padding:9px;min-height:39px}#jamApp .jam-field-head{left:13px;right:8px;top:10px;gap:0}#jamApp .jam-field-head button{font-size:9px;letter-spacing:.4px}#jamApp .jam-field-head .jam-tiny-icon{width:31px;padding:8px}#jamApp .jam-stage[data-count="2"]{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}#jamApp .jam-stage[data-count="2"] .jam-field:nth-child(2) .jam-field-head{top:10px}#jamApp .jam-stage[data-count="2"] .jam-field:nth-child(1) .jam-phase{bottom:20px}#jamApp .jam-stage[data-count="3"] .jam-start-hint strong,#jamApp .jam-stage[data-count="4"] .jam-start-hint strong,#jamApp .jam-stage[data-count="5"] .jam-start-hint strong{font-size:15px;letter-spacing:-.4px}#jamApp .jam-stage:not([data-count="1"]) .jam-start-hint small{font-size:8px;letter-spacing:.6px}#jamApp .jam-stage[data-count="5"] .jam-field-head{left:8px;right:4px}#jamApp .jam-stage[data-count="5"] .jam-field-head .jam-tiny-icon{width:26px;padding:6px}#jamApp .jam-dock{bottom:calc(14px + env(safe-area-inset-bottom));padding:4px 5px}#jamApp .jam-dock button{min-width:62px;font-size:10px;padding:9px 13px}#jamApp .jam-dock .jam-more{min-width:33px;padding:8px}#jamApp .jam-material-strip{bottom:calc(140px + env(safe-area-inset-bottom));width:min(370px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#jamApp .jam-material-strip button{padding:8px 13px}#jamApp .jam-entry-scale{bottom:230px}#jamApp .jam-popover{padding:19px 17px;bottom:calc(79px + env(safe-area-inset-bottom));max-height:70dvh}#jamApp .jam-popover header{margin-bottom:15px}#jamApp .jam-material-card{padding:13px 10px!important}#jamApp .jam-palette-grid{gap:6px}#jamApp .jam-swatch{min-height:84px!important;padding:12px 9px!important}#jamApp .jam-phase{left:14px;right:14px;gap:3px}#jamApp .jam-keyboard{height:140px}#jamApp .jam-shortcut-list{grid-template-columns:86px 1fr;gap:12px 9px}}
@media(prefers-reduced-motion:reduce){#jamApp *,#jamApp *:before,#jamApp *:after{transition:none!important;animation:none!important}}
@media(max-width:650px){#jamApp .jam-keyboard{height:auto;flex-direction:column;gap:9px}#jamApp .jam-key-row{flex:none;height:118px;width:100%;gap:2px}#jamApp .jam-key{font-size:10px}#jamApp .jam-keyboard[data-octaves="1"] .jam-key-row{height:156px}#jamApp .jam-key-size button{padding:7px 8px}#jamApp .jam-selected-notes{min-width:140px}#jamApp .jam-popover[data-panel="keys"]{padding-bottom:13px}}
/* Shared studio instrument, mixer and performance recording. */
#jamApp .jam-stage[data-count="6"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}
#jamApp .jam-stage:not([data-count="1"]){padding-top:calc(66px + env(safe-area-inset-top));padding-bottom:calc(80px + env(safe-area-inset-bottom));background:#07090c}
#jamApp .jam-stage:not([data-count="1"]) .jam-field-head{top:6px;left:10px;right:8px}
#jamApp .jam-stage:not([data-count="1"]) .jam-phase{bottom:8px}
#jamApp .jam-field-head .jam-material-name{min-width:0;max-width:calc(100% - 61px)}
#jamApp .jam-material-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#jamApp .jam-field-volume{position:absolute;z-index:4;left:20px;right:20px;bottom:106px;margin:0;grid-template-columns:1fr 29px;gap:10px;padding:0 8px;border-radius:20px;background:#071012a8;backdrop-filter:blur(14px);min-height:38px}
#jamApp .jam-field-volume>span{display:none}
#jamApp .jam-field-volume input{min-height:38px;touch-action:pan-x;accent-color:var(--field-color);cursor:pointer}
#jamApp .jam-field-volume output{font-size:9px;color:#c7d1c6}
#jamApp .jam-stage:not([data-count="1"]) .jam-field-volume{left:8px;right:8px;bottom:18px;min-height:32px}
#jamApp .jam-dock{width:min(460px,calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right))}
#jamApp .jam-dock button{flex:1;min-width:0;padding:9px 8px}
#jamApp .jam-dock .jam-more{flex:0 0 30px;min-width:0;padding:8px 6px}
#jamApp .jam-top-actions .jam-capture{display:flex;align-items:center;gap:6px;min-width:55px;font-variant-numeric:tabular-nums}
#jamApp .jam-capture:before,#jamApp .jam-take-record:before,#jamApp .jam-pad-record:before{content:'';display:inline-block;flex:none;height:7px;width:7px;border:1px solid #d38f92;border-radius:50%;margin-right:5px}
#jamApp .recording{color:#f1afb2!important;border-color:#bd6c6f88!important}
#jamApp .recording:before{background:#e79c9f;border-radius:2px}
#jamApp .jam-take-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px}
#jamApp .jam-take-controls .jam-action{padding:8px 13px}
#jamApp .jam-take-status{font-size:10px;color:#a3b29f;font-variant-numeric:tabular-nums;min-height:16px}
#jamApp .jam-take-controls .jam-take-status{flex-basis:100%;margin-top:3px}
#jamApp .jam-key-source{width:100%;margin-bottom:14px}
#jamApp .jam-key.pressed{background:#ecffd0!important;box-shadow:inset 0 -5px #92b471,0 0 25px #c6e7a82b;transform:translateY(2px)}
#jamApp .jam-key.black.pressed{background:#81a95e!important}
#jamApp .jam-note-roll{position:relative;height:135px;overflow:hidden;background:repeating-linear-gradient(90deg,#bbd89713 0,#bbd89713 1px,transparent 1px,transparent 6.25%);border:1px solid #c6d8b41c;border-radius:8px;margin:14px 0}
#jamApp .jam-note-roll i{position:absolute;height:5px;border-radius:3px;background:#c6d9a8;box-shadow:0 0 10px #a3c57f22}
#jamApp .jam-beat-pads{position:absolute;z-index:5;width:min(350px,80%);left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:1fr 1fr;gap:10px;pointer-events:auto}
#jamApp .jam-drum-pad{min-height:94px;touch-action:none;user-select:none;border:1px solid #d9c18e50;border-radius:15px;background:#32281852;backdrop-filter:blur(12px);font-size:12px;letter-spacing:1px;color:#e6d9b7}
#jamApp .jam-drum-pad.pressed{background:#cfb16f9c;border-color:#edd7a1;box-shadow:0 0 38px #d8ba722c;transform:scale(.97)}
#jamApp .jam-beat-pads .jam-pad-record{grid-column:1/-1;justify-self:center;min-height:38px;padding:5px 14px;font-size:10px;border:1px solid #d9c18e36;border-radius:25px;background:#12130cba}
#jamApp .jam-beat-pads .jam-take-status{grid-column:1/-1;text-align:center}
#jamApp .jam-stage:not([data-count="1"]) .jam-beat-pads{width:calc(100% - 22px);gap:5px;top:47%}
#jamApp .jam-stage:not([data-count="1"]) .jam-drum-pad{min-height:40px;border-radius:8px;font-size:10px}
#jamApp .jam-stage:not([data-count="1"]) .jam-pad-record{min-height:28px;padding:3px 10px;font-size:9px}
#jamApp .jam-stage:not([data-count="1"]) .jam-beat-pads .jam-take-status{display:none}
#jamApp .jam-recording-file{padding:10px 0;border-bottom:1px solid #c6d8b41c;display:flex;align-items:center;gap:10px}
#jamApp .jam-recording-file audio{min-width:0;width:100%;height:34px;color-scheme:dark}
#jamApp .jam-download{color:#d6e4c6;font-size:11px;white-space:nowrap;text-decoration:none;padding:9px}
#jamApp[data-view="studio-keys"]{pointer-events:none;background:transparent;isolation:auto}
#jamApp[data-view="studio-keys"]>:not(.jam-popover):not(.jam-message){display:none!important}
#jamApp[data-view="studio-keys"] .jam-popover{pointer-events:auto;bottom:calc(16px + env(safe-area-inset-bottom));max-height:calc(100dvh - 100px);border-color:#c5d7c34a}
#studioKeysOpen{border:1px solid #afc79042;border-radius:20px;padding:8px 13px;color:inherit;font:inherit;min-height:38px;background:#afc79014}
@media(min-width:1200px){#jamApp .jam-stage[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){#jamApp .jam-header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}#jamApp .jam-brand{font-size:15px}#jamApp .jam-top-actions button{padding-left:7px;padding-right:7px}#jamApp .jam-top-actions .jam-capture{min-width:48px;font-size:10px;gap:0}#jamApp .jam-top-actions .jam-icon{width:32px;min-height:40px}#jamApp .jam-bpm-unit{display:none}#jamApp .jam-stage[data-count="6"] .jam-start-hint strong{font-size:14px}#jamApp .jam-stage:not([data-count="1"]) .jam-start-hint small{display:none}#jamApp .jam-field-head .jam-material-name{max-width:calc(100% - 54px)}#jamApp .jam-popover[data-panel="keys"]{max-height:calc(100dvh - 154px);padding:16px 17px 12px}#jamApp .jam-popover[data-panel="keys"] header{margin-bottom:10px}#jamApp .jam-take-controls .jam-action{min-height:38px;font-size:10px;padding:7px 11px}#jamApp .jam-select{min-height:38px;padding:7px 10px}#jamApp .jam-key-row{height:108px}#jamApp .jam-keyboard{margin-bottom:12px}#jamApp[data-view="studio-keys"] .jam-popover[data-panel="keys"]{max-height:calc(100dvh - 96px)}}
@media(max-height:640px){#jamApp .jam-popover[data-panel="keys"] .jam-key-row{height:82px}#jamApp .jam-stage[data-count="6"] .jam-beat-pads{grid-template-columns:repeat(2,1fr);gap:2px;top:45%}#jamApp .jam-stage[data-count="6"] .jam-drum-pad{min-height:28px;font-size:8px}#jamApp .jam-stage[data-count="6"] .jam-pad-record{min-height:22px}#jamApp .jam-stage[data-count="6"] .jam-field-volume{bottom:10px;min-height:27px}#jamApp .jam-stage[data-count="6"] .jam-field-volume input{min-height:27px}#jamApp .jam-stage[data-count="6"] .jam-field-head button{min-height:28px}}

#jamApp .jam-stage:not([data-count="1"]) .jam-field .jam-field-head{top:6px}
#jamApp .jam-stage:not([data-count="1"]) .jam-field .jam-phase{bottom:8px}


/* Piano roll: the viewport bounds the controls; only the score scrolls. */
#jamApp .jam-popover[data-panel="sequencer"]{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));width:auto;min-width:0;height:auto;min-height:0;max-height:none;transform:none;padding:12px 14px;border-radius:15px;z-index:30;display:flex;flex-direction:column;overflow:hidden;touch-action:pan-x pan-y}
#jamApp .jam-popover[data-panel="sequencer"]>header{flex:none;min-width:0;min-height:44px;margin:0 0 6px;gap:12px}
#jamApp .jam-popover[data-panel="sequencer"]>header h2{min-width:0;flex:1;flex-wrap:wrap;gap:4px 10px;line-height:1.35}
#jamApp .jam-popover[data-panel="sequencer"]>header button{flex:0 0 44px;width:44px;min-height:44px}
#jamApp .jam-popover[data-panel="sequencer"]>.jam-panel-note{flex:none;margin:5px 0 8px;max-height:3.4em;overflow-y:auto;line-height:1.6;overflow-wrap:anywhere}
#jamApp .jam-seq-toolbar{flex:none;min-width:0;display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;margin-bottom:4px;font-size:11px;color:#aeb9b1;max-height:24dvh;overflow-y:auto;overscroll-behavior:contain}
#jamApp .jam-seq-toolbar>.jam-action{min-height:40px!important;padding:7px 11px!important;white-space:nowrap}
#jamApp .jam-seq-toolbar .jam-select{min-width:0;max-width:100%;min-height:40px;padding:7px 10px;font-size:16px}
#jamApp .jam-seq-loop{display:flex;align-items:center;gap:6px;min-height:40px;font-size:11px;color:#aeb9b1;white-space:nowrap}
#jamApp .jam-seq-loop input{accent-color:#b9d889;width:18px;height:18px;margin:0}
#jamApp .jam-seq-scroll{--seq-step:28px;--seq-row:32px;--seq-key:72px;flex:1 1 0;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid #c7d9c31c;border-radius:9px;background:#090d10;touch-action:pan-x pan-y;scrollbar-color:#506056 transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;isolation:isolate}
#jamApp .jam-seq-roll{position:relative;width:max-content;min-width:100%;background:#090d10}
#jamApp .jam-seq-ruler{position:sticky;top:0;z-index:9;display:grid;grid-template-columns:var(--seq-key) repeat(var(--seq-bars),calc(var(--seq-step) * 16));height:32px;width:max-content;min-width:100%;background:#0d1316;border-bottom:1px solid #d4e3d220}
#jamApp .jam-seq-ruler>span{display:flex;align-items:center;padding-left:8px;border-left:1px solid #d9e7d51a;font-size:10px;color:#8d9993;letter-spacing:.6px}
#jamApp .jam-seq-ruler .jam-seq-corner{position:sticky;left:0;z-index:11;background:#0d1316;border-left:0;color:#aeb7b0}
#jamApp .jam-seq-row{display:grid;grid-template-columns:var(--seq-key) max-content;width:max-content;min-width:100%;height:var(--seq-row);border-bottom:1px solid #d1dfd10b}
#jamApp .jam-seq-label{position:sticky;left:0;z-index:7;display:flex;align-items:center;justify-content:flex-end;width:auto;min-width:0;min-height:0;height:100%;padding:0 10px 0 5px;background:#cbd2cc;color:#273129;border-right:1px solid #111a15;border-radius:0;font-size:11px;font-variant-numeric:tabular-nums;box-shadow:6px 0 12px #0005;touch-action:none;user-select:none;transition:none}
#jamApp .jam-seq-label.black{margin-right:16px;background:#151b1f;color:#aab7ad;border-right:1px solid #405047;z-index:8;border-radius:0 4px 4px 0}
#jamApp .jam-seq-label.c-note{font-weight:600}
#jamApp .jam-seq-label.pressed{background:#a9d785!important;color:#152b18;box-shadow:inset 0 0 12px #659842}
#jamApp .jam-seq-cells{display:grid;grid-template-columns:repeat(var(--seq-steps),var(--seq-step));min-height:0;height:100%}
#jamApp .jam-seq-cell{position:relative!important;min-height:0!important;height:100%!important;width:var(--seq-step);padding:0!important;border-right:1px solid #d5e4d50b!important;border-radius:0!important;background:transparent!important;overflow:visible}
#jamApp .jam-seq-cell.beat-start{border-left:1px solid #d5e4d51b!important}
#jamApp .jam-seq-cell.bar-start{border-left:1px solid #d5e4d546!important}
#jamApp .jam-seq-cell:hover{background:#c9ddb608!important}
#jamApp .jam-seq-cell.has-note{z-index:3}
#jamApp .jam-seq-note,#jamApp .jam-seq-hit{position:absolute;left:2px;top:4px;height:calc(var(--seq-row) - 9px);min-width:8px;display:block;border:1px solid #d5edaf5c;border-radius:3px;background:#4f8a55;box-shadow:0 2px 8px #0005;z-index:4;touch-action:none;cursor:grab;overflow:visible}
#jamApp .jam-seq-cell.picked .jam-seq-note{background:#75bb67;border-color:#e5f7c3;box-shadow:0 0 0 1px #d9efb550,0 3px 12px #0007}
#jamApp .jam-seq-hit{left:15%;top:7px;height:calc(var(--seq-row) - 15px);background:#798a55;border-radius:2px;cursor:pointer}
#jamApp .jam-seq-resize{position:absolute;right:-3px;top:-1px;width:10px;height:calc(100% + 2px);border-radius:4px;background:#dff3be;opacity:.76;cursor:ew-resize;touch-action:none}
#jamApp .jam-seq-resize.left{left:-3px;right:auto;background:#b7d8af}
#jamApp .jam-seq-edit{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0;min-height:0;max-height:26dvh;padding-top:8px;overflow-y:auto;overscroll-behavior:contain;font-size:11px}
#jamApp .jam-seq-edit:empty{display:none}
#jamApp .jam-seq-edit strong{font-weight:500;min-width:44px;color:#d8e8d3}
#jamApp .jam-seq-edit label{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;color:#95a29b}
#jamApp .jam-seq-edit input[type="number"]{width:72px;min-width:0;height:40px;border:1px solid #d0dfcc24;border-radius:6px;background:#0a0f12;color:#dfe7df;padding:5px 6px;font-size:16px}
#jamApp .jam-seq-edit .jam-action{min-height:40px!important;padding:7px 11px!important}
@media(max-width:700px),(pointer:coarse){
  #jamApp .jam-popover[data-panel="sequencer"]{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));top:calc(6px + env(safe-area-inset-top));bottom:calc(6px + env(safe-area-inset-bottom));padding:8px 10px;border-radius:12px}
  #jamApp .jam-seq-scroll{--seq-step:32px;--seq-row:40px;--seq-key:64px}
  #jamApp .jam-seq-label{padding-right:7px}
  #jamApp .jam-seq-resize{width:12px}
}
@media(max-width:600px){
  #jamApp .jam-seq-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}
  #jamApp .jam-seq-edit strong{grid-column:1}
  #jamApp .jam-seq-edit label{justify-content:space-between;gap:4px}
  #jamApp .jam-seq-edit input[type="number"]{width:64px}
  #jamApp .jam-seq-edit .jam-action{grid-column:2;grid-row:1}
}
@media(max-height:500px) and (orientation:landscape){
  #jamApp .jam-popover[data-panel="sequencer"]{padding:4px 10px}
  #jamApp .jam-popover[data-panel="sequencer"]>header{margin:0;min-height:40px}
  #jamApp .jam-popover[data-panel="sequencer"]>.jam-panel-note{margin:2px 0 4px;max-height:1.6em}
  #jamApp .jam-seq-toolbar{max-height:23dvh}
  #jamApp .jam-seq-edit{max-height:22dvh;padding-top:5px}
}
/* Visual reactive instrument controls */
#jamApp .jam-motion-readout{position:absolute;left:24px;top:124px;pointer-events:none;font:10px monospace;letter-spacing:1px;color:#afc3c3;opacity:.7}
#jamApp .jam-stage:not([data-count="1"]) .jam-motion-readout{top:50px;left:14px;font-size:9px}
#jamApp .jam-phase{pointer-events:auto;min-height:28px;padding:10px 0;background:none;border:0;border-radius:0;touch-action:none}
#jamApp .jam-phase:focus-visible{outline:1px solid #b9d889}
#jamApp .jam-field-head .jam-field-fx{font-size:10px;letter-spacing:1px;padding:7px 10px;min-width:36px}
#jamApp .jam-fx-pad{height:230px;border:1px solid #a3cbc740;border-radius:16px;position:relative;overflow:hidden;touch-action:none;margin:15px 0;background:radial-gradient(ellipse at center,#50706c30,transparent 70%),repeating-linear-gradient(0deg,transparent 0 28px,#b5c8c810 29px 30px),repeating-linear-gradient(90deg,transparent 0 28px,#b5c8c810 29px 30px)}
#jamApp .jam-fx-pad i{position:absolute;width:24px;height:24px;margin:-12px;border:1px solid #d4efd7;border-radius:50%;background:#a5d8c050;box-shadow:0 0 25px #d3efd360;pointer-events:none}
#jamApp .jam-fx-pad output{position:absolute;bottom:12px;left:12px;font:10px monospace;color:#9cb1ad}
#jamApp .jam-seq-note.moving{background:#a1cb78;box-shadow:0 0 12px #b4db9660;z-index:6}
#jamApp .jam-note-roll{touch-action:pan-y;cursor:pointer}
#jamApp .jam-beat-pads,#jamApp .jam-stage:not([data-count="1"]) .jam-beat-pads{display:flex;flex-direction:column;width:min(calc(310px * var(--pad-scale,1)),calc(100% - 24px));gap:8px;max-height:calc(100% - 155px);top:52%;touch-action:none}
#jamApp .jam-drum-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-height:0}
#jamApp .jam-beat-pads .jam-drum-pad,#jamApp .jam-stage:not([data-count="1"]) .jam-drum-pad{aspect-ratio:1;min-height:0;height:auto;padding:5px;font-size:10px;border-radius:10px;letter-spacing:0}
#jamApp .jam-pad-tools{display:flex;gap:6px;justify-content:flex-end}
#jamApp .jam-pad-tools button{min-width:38px;min-height:34px;border:1px solid #ccb78840;border-radius:10px;background:#121813d9;font-size:11px}
#jamApp .jam-beat-pads.collapsed{width:auto;max-height:none;top:auto;bottom:105px;transform:translateX(-50%)}
#jamApp .jam-beat-pads.collapsed .jam-drum-grid,#jamApp .jam-beat-pads.collapsed .jam-pad-record,#jamApp .jam-beat-pads.collapsed .jam-take-status{display:none}
#jamApp .jam-beat-pads.expanded{z-index:12;background:#11191be8;backdrop-filter:blur(20px);padding:12px;border:1px solid #dac58a40;border-radius:18px}
#jamApp .jam-popover .jam-beat-pads{position:relative;left:auto;top:auto;transform:none;margin:15px auto;max-height:none}
@media(max-width:650px){#jamApp .jam-motion-readout{left:16px;top:119px}#jamApp .jam-beat-pads.expanded,#jamApp .jam-stage:not([data-count="1"]) .jam-beat-pads.expanded{position:fixed;left:12px;top:calc(95px + env(safe-area-inset-top));width:calc(100vw - 24px);max-height:calc(100dvh - 190px);transform:none;overflow:auto}#jamApp .jam-beat-pads.expanded .jam-drum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#jamApp .jam-beat-pads.expanded .jam-drum-pad{max-height:calc((100dvh - 305px)/4);width:auto;justify-self:stretch}#jamApp .jam-beat-pads.expanded .jam-drum-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#jamApp .jam-beat-pads.expanded .jam-drum-pad{max-height:none}#jamApp .jam-field-head .jam-material-name{max-width:calc(100% - 98px)}#jamApp .jam-pad-tools button{min-height:40px}}
@media(prefers-reduced-motion:reduce){#jamApp .jam-seq-note,#jamApp .jam-fx-pad i{transition:none}}


/* Keys and Beat become performance surfaces; touch labels cannot select text. */
#jamApp .jam-popover[data-panel="keys"],#jamApp .jam-popover[data-panel="beat"],#jamApp[data-view] .jam-popover[data-panel="keys"],#jamApp[data-view] .jam-popover[data-panel="beat"]{width:min(1240px,96vw);height:min(880px,94dvh);max-height:94dvh;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%);padding:20px 24px;z-index:30;border-radius:18px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
#jamApp .jam-popover[data-panel="keys"]>header,#jamApp .jam-popover[data-panel="beat"]>header{margin:0;flex:none;min-height:36px}
#jamApp .jam-popover[data-panel="keys"]>header button,#jamApp .jam-popover[data-panel="beat"]>header button{width:44px;min-height:44px}
#jamApp .jam-popover[data-panel="keys"] .jam-take-controls,#jamApp .jam-key-tools{flex:none;margin:0;gap:8px}
#jamApp .jam-key-gestures{display:flex;gap:5px;flex:none;padding:4px;border:1px solid #a9bba830;border-radius:11px;background:#040a0d}
#jamApp .jam-key-gestures button{flex:1;min-height:48px;border-radius:7px;padding:6px 12px;font-size:11px;line-height:1.4;letter-spacing:.8px}
#jamApp .jam-key-gestures b{font-weight:500;display:block}#jamApp .jam-key-gestures small{font-size:9px;color:#8e9c94;letter-spacing:0}
#jamApp .jam-key-gestures button[aria-pressed="true"]{background:#cfdfb5;color:#14200f}#jamApp .jam-key-gestures button[aria-pressed="true"] small{color:#354c2a}
#jamApp .jam-key-range{font:11px monospace;color:#87958d;letter-spacing:1px;flex:none}
#jamApp .jam-popover[data-panel="keys"] .jam-play-keyboard{height:auto;min-height:210px;flex:1;flex-direction:row;display:block;margin:0;gap:0;overflow-x:hidden;overflow-y:hidden;border-radius:5px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#jamApp .jam-play-keyboard .jam-key-track{display:flex;gap:3px;min-width:100%;height:100%;touch-action:none}
#jamApp .jam-play-keyboard .jam-key-track .jam-key-row{flex:1;min-width:0;width:auto;height:100%;gap:2px}
#jamApp .jam-popover[data-panel="keys"] .jam-play-keyboard[data-layout="stacked"]{min-height:240px}
#jamApp .jam-play-keyboard[data-layout="stacked"] .jam-key-track{flex-direction:column;gap:20px}
#jamApp .jam-play-keyboard[data-layout="stacked"] .jam-key-row{height:0;min-height:100px}
#jamApp .jam-play-keyboard[data-layout="stacked"] .jam-key-row:before{content:attr(data-range);position:absolute;right:7px;bottom:7px;z-index:3;font:10px monospace;color:#344239;pointer-events:none}
#jamApp .jam-play-keyboard .jam-key-row[hidden]{display:none}
#jamApp .jam-key,#jamApp .jam-key *,#jamApp .jam-drum-pad,#jamApp .jam-drum-pad *,#jamApp .jam-seq-label{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important;touch-action:none}
#jamApp .jam-key{flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;transition:background .05s}
#jamApp .jam-key .jam-key-note{font-size:11px;pointer-events:none}#jamApp .jam-pc-hint{font:12px monospace;border:1px solid currentColor;opacity:.55;min-width:23px;min-height:23px;display:grid;place-items:center;border-radius:4px;pointer-events:none}
#jamApp .jam-pc-hint:empty{display:none}#jamApp .jam-key-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}#jamApp .jam-key-footer p{margin:0}
#jamApp .jam-popover[data-panel="beat"] .jam-beat-pads{position:relative;left:auto;top:auto;bottom:auto;transform:none;width:auto;max-width:100%;max-height:none;margin:0 auto;padding:0;background:none;border:0;backdrop-filter:none;flex:none}
#jamApp .jam-popover[data-panel="beat"] .jam-drum-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#jamApp .jam-popover[data-panel="beat"] .jam-drum-pad{width:min(calc((94dvh - 310px)/2),calc((96vw - 110px)/4));aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0;font-size:13px}
#jamApp .jam-drum-pad svg{width:34%;height:34%;max-width:70px;max-height:70px;stroke-width:1.3}#jamApp .jam-drum-pad .jam-pc-hint{display:inline-grid}
#jamApp .jam-popover[data-input="touch"] .jam-key-note,#jamApp .jam-popover[data-input="touch"] .jam-pc-hint{display:none}
@media(max-width:700px),(pointer:coarse){
 #jamApp .jam-popover[data-panel="keys"],#jamApp .jam-popover[data-panel="beat"],#jamApp[data-view] .jam-popover[data-panel="keys"],#jamApp[data-view] .jam-popover[data-panel="beat"]{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));top:calc(6px + env(safe-area-inset-top));bottom:calc(6px + env(safe-area-inset-bottom));transform:none;width:auto;height:auto;min-width:0;max-height:none;padding:10px 12px;border-radius:12px;gap:7px}
 #jamApp input:not([type="range"]):not([type="checkbox"]):not([type="color"]),#jamApp select{font-size:16px}
 #jamApp .jam-popover[data-panel="keys"] .jam-play-keyboard{min-height:180px}
 #jamApp .jam-key-gestures button{padding:5px 3px;font-size:9px;letter-spacing:.4px;min-height:46px}#jamApp .jam-key-gestures small{font-size:8px}
 #jamApp .jam-key-footer{align-items:flex-start;flex-direction:column;gap:2px}#jamApp .jam-key-footer p{font-size:9px}
 #jamApp .jam-popover[data-panel="beat"] .jam-drum-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #jamApp .jam-popover[data-panel="beat"] .jam-drum-pad{width:min(calc((100dvh - 290px)/4),calc((100vw - 57px)/2));font-size:11px}
 #jamApp .jam-popover[data-panel="keys"] .jam-take-controls{gap:6px}#jamApp .jam-popover[data-panel="keys"] .jam-take-status{font-size:9px}
}
@media(max-height:500px) and (orientation:landscape){#jamApp .jam-popover[data-panel="keys"] .jam-play-keyboard{min-height:140px}#jamApp .jam-key-gestures small,#jamApp .jam-key-footer p,#jamApp .jam-popover[data-panel="keys"] .jam-take-status{display:none}#jamApp .jam-key-gestures button{min-height:35px}#jamApp .jam-popover[data-panel="beat"] .jam-drum-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#jamApp .jam-popover[data-panel="beat"] .jam-drum-pad{width:min(calc((100dvh - 180px)/2),calc((100vw - 110px)/4))}}


/* Audio Chromatography: the same living fields, two ways to touch them. */
#jamApp .jam-upload-card{width:100%;text-align:left;padding:20px;border:1px solid #c8dfb541;border-radius:16px;background:linear-gradient(130deg,#bacdac18,#4c6c7011);font-size:17px;line-height:1.6;margin:8px 0 3px}
#jamApp .jam-upload-card small{display:block;font-size:11px;color:#aebdb7;font-weight:400;letter-spacing:.2px;margin-top:6px}
#jamApp .jam-viewbar{position:absolute;z-index:9;bottom:calc(66px + env(safe-area-inset-bottom));left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}
#jamApp .jam-viewbar>*{pointer-events:auto;background:#080b12d6;backdrop-filter:blur(14px);border:1px solid #bccbb822;border-radius:24px}
#jamApp .jam-view-toggle{font-size:11px;padding:9px 17px;min-height:42px}
#jamApp .jam-view-toggle[aria-pressed=true]{color:#dfefc8;border-color:#cfe3b34d}
#jamApp .jam-viewbar .jam-range-row{width:260px;max-width:49%;display:flex;gap:10px;padding:9px 14px;margin:0;min-height:42px}
#jamApp .jam-viewbar .jam-range-row>span{font-size:10px;white-space:nowrap}
#jamApp .jam-viewbar .jam-range-row input{flex:1;width:70px;min-width:20px;accent-color:#d7edb1}
#jamApp .jam-viewbar .jam-range-row output{min-width:34px;font-size:11px;white-space:nowrap}
#jamApp .jam-import-status{position:absolute;z-index:30;top:50%;left:50%;transform:translate(-50%,-50%);max-width:88%;padding:23px 28px;border:1px solid #bacfa340;border-radius:18px;background:#111b20e8;backdrop-filter:blur(20px);font-size:13px;line-height:1.8;box-shadow:0 20px 80px #0009;text-align:center}
#jamApp .jam-chaos-layers{position:absolute;left:24px;right:24px;top:calc(76px + env(safe-area-inset-top));z-index:10;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;align-items:center;padding:3px 0 10px}
#jamApp .jam-chaos-chip,#jamApp .jam-chaos-fx{white-space:nowrap;border:1px solid #c5d2bf30;background:#0b111be0;border-radius:22px;padding:8px 13px;font-size:11px;max-width:200px;text-overflow:ellipsis;overflow:hidden;flex:none}
#jamApp .jam-chaos-chip.active{border-color:var(--field-color,#daeac7);color:var(--field-color,#daeac7);background:#182329e3}
#jamApp .jam-chaos-touch{position:absolute;inset:125px 0 120px;z-index:5;touch-action:none;cursor:crosshair;outline-offset:-5px}
#jamApp[data-layout=chaotic] .jam-stage{display:block;position:relative;background:#000;isolation:isolate}
#jamApp[data-layout=chaotic] .jam-field{position:absolute;inset:0;background:transparent;isolation:auto;pointer-events:none;overflow:hidden;mix-blend-mode:normal}
#jamApp[data-layout=chaotic] .jam-field canvas{pointer-events:none;opacity:1}
/* Audio mute keeps the layered artwork visible; the layer chip carries its audio state. */
#jamApp[data-layout=chaotic] .jam-field.muted canvas{opacity:1}
#jamApp[data-layout=chaotic] .jam-field:after,#jamApp[data-layout=chaotic] .jam-field-head,#jamApp[data-layout=chaotic] .jam-start-hint,#jamApp[data-layout=chaotic] .jam-entry-scale,#jamApp[data-layout=chaotic] .jam-phase,#jamApp[data-layout=chaotic] .jam-field-volume,#jamApp[data-layout=chaotic] .jam-beat-pads,#jamApp[data-layout=chaotic] .jam-motion-readout{display:none}
#jamApp[data-layout=chaotic] .jam-material-strip{display:none}
#jamApp .jam-field-volume{bottom:calc(145px + env(safe-area-inset-bottom))}
#jamApp .jam-stage:not([data-count="1"]) .jam-field-volume{bottom:45px}
#jamApp .jam-stage:not([data-count="1"]) .jam-field:last-child .jam-field-volume{bottom:calc(145px + env(safe-area-inset-bottom))}
#jamApp[data-view^=studio] .jam-viewbar,#jamApp[data-view^=studio] .jam-chaos-layers,#jamApp[data-view^=studio] .jam-chaos-touch{display:none}
@media(max-width:600px){
 #jamApp .jam-viewbar{left:12px;right:12px;gap:6px;bottom:calc(64px + env(safe-area-inset-bottom))}
 #jamApp .jam-view-toggle{font-size:10px;padding:8px 12px}
 #jamApp .jam-viewbar .jam-range-row{padding:8px 10px;gap:6px;max-width:50%}
 #jamApp .jam-chaos-layers{left:12px;right:12px;top:calc(65px + env(safe-area-inset-top))}
 #jamApp .jam-chaos-touch{top:115px}
 #jamApp .jam-upload-card{font-size:16px;padding:16px}
 #jamApp .jam-chaos-chip{max-width:155px}
}
@media(prefers-reduced-motion:reduce){#jamApp .jam-field canvas{transition:none}}
#jamApp .jam-pad-effect{position:absolute;z-index:4;left:22px;top:64px;max-width:calc(100% - 44px);border:1px solid #bccbb824;border-radius:18px;background:#091016c9;color:#c6d1ca;padding:7px 12px;min-height:36px;font-size:10px;outline-offset:2px}
#jamApp .jam-stage[data-count="1"] .jam-pad-effect,#jamApp .jam-stage[data-count="2"] .jam-pad-effect,#jamApp .jam-stage[data-count="3"] .jam-field:nth-child(-n+2) .jam-pad-effect,#jamApp .jam-stage[data-count="4"] .jam-field:nth-child(-n+2) .jam-pad-effect,#jamApp .jam-stage[data-count="5"] .jam-field:nth-child(-n+2) .jam-pad-effect{top:calc(122px + env(safe-area-inset-top))}
#jamApp[data-layout=chaotic] .jam-pad-effect{display:none}
@media(max-width:600px){#jamApp .jam-pad-effect{left:12px;max-width:calc(100% - 24px);font-size:9px;padding:5px 9px}}
/* Reserve separate lanes for local loops, master control, and navigation. */
#jamApp[data-layout=split] .jam-stage{padding-bottom:calc(136px + env(safe-area-inset-bottom))}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-volume{bottom:36px;min-height:32px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-phase{bottom:4px;min-height:28px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-motion-readout{top:auto;bottom:80px;font-size:9px}
#jamApp .jam-viewbar{bottom:calc(80px + env(safe-area-inset-bottom))}
#jamApp .jam-material-strip{bottom:calc(230px + env(safe-area-inset-bottom))}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]) .jam-field .jam-pad-effect{top:45px;min-height:30px}
#jamApp[data-layout=chaotic] .jam-stage{padding:0}
@media(max-height:700px){#jamApp[data-layout=split] .jam-stage[data-count="6"] .jam-motion-readout{display:none}#jamApp[data-layout=split] .jam-stage[data-count="6"] .jam-pad-effect{top:37px;font-size:8px;min-height:28px;padding:4px 7px}}


@media(max-width:700px),(pointer:coarse){#jamApp select.jam-select,#jamApp select.jam-pad-effect{font-size:16px}}

/* Split pads share one viewport, with the original count-based composition. */
#jamApp{max-width:100vw;min-height:0}
#jamApp .jam-header{min-width:0;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:#07090cf2}
#jamApp .jam-brand{flex:1 1 auto;overflow:hidden}
#jamApp .jam-top-actions{min-width:0;gap:2px}
#jamApp .jam-top-actions button{flex-shrink:0}
#jamApp[data-layout=split] .jam-stage{
 position:absolute;inset:calc(66px + env(safe-area-inset-top)) 0 calc(136px + env(safe-area-inset-bottom));
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);grid-auto-rows:minmax(0,1fr);
 align-content:stretch;gap:1px;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);
 width:100%;min-width:0;min-height:0;overflow:hidden;
}
#jamApp[data-layout=split] .jam-stage[data-count="1"]{grid-template-columns:minmax(0,1fr)}
#jamApp[data-layout=split] .jam-stage[data-count="3"],#jamApp[data-layout=split] .jam-stage[data-count="4"]{grid-template-rows:repeat(2,minmax(0,1fr))}
#jamApp[data-layout=split] .jam-stage[data-count="5"],#jamApp[data-layout=split] .jam-stage[data-count="6"]{grid-template-rows:repeat(3,minmax(0,1fr))}
#jamApp[data-layout=split] .jam-stage .jam-field{min-height:0;border:0;border-radius:0}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-head{top:4px;left:8px;right:4px;min-width:0}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-head .jam-material-name{flex:1;max-width:none;min-width:0}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-head .jam-tiny-icon{flex:0 0 32px;width:32px;min-height:36px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-head .jam-field-fx{flex:0 0 32px;min-height:36px;padding:6px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-pad-effect{top:44px;left:8px;max-width:calc(100% - 54px);min-height:32px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-motion-readout{display:block;top:auto;bottom:66px;left:12px;font-size:9px;pointer-events:none}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-field-volume{left:8px;right:8px;bottom:28px;min-height:32px;min-width:0}
#jamApp .jam-field-volume input{min-width:0;width:100%}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-phase{left:12px;right:12px;bottom:0;min-height:28px}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-entry-scale{bottom:110px}
#jamApp .jam-chaos-layers{top:calc(66px + env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));padding:3px 0 7px;min-height:48px;touch-action:pan-x}
#jamApp .jam-chaos-chip,#jamApp .jam-chaos-fx{min-height:40px}
#jamApp .jam-popover{min-width:0;max-width:calc(100% - 24px);overflow-x:hidden}
#jamApp .jam-popover>header{min-width:0}
#jamApp .jam-popover h2{min-width:0;overflow-wrap:anywhere}
#jamApp .jam-popover h2 small{min-width:0;overflow-wrap:anywhere}
#jamApp .jam-upload-card{display:grid;place-items:center;width:100%;min-height:64px;margin:0 0 12px;padding:12px;border:1px solid #c8dfb541;border-radius:12px;background:linear-gradient(130deg,#bacdac18,#4c6c7011)}
#jamApp .jam-upload-card svg{width:24px;height:24px;stroke-width:1.2}
#jamApp .jam-popover[data-panel=add],#jamApp .jam-popover[data-panel=material]{top:calc(12px + env(safe-area-inset-top));bottom:calc(12px + env(safe-area-inset-bottom));height:max-content;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
#jamApp .jam-material-card{min-width:0;overflow-wrap:anywhere}
/* Beat tools, pads and recording fit inside the field's reserved control lanes. */
#jamApp[data-layout=split] .jam-stage .jam-field .jam-beat-pads,
#jamApp[data-layout=split] .jam-stage .jam-field .jam-beat-pads.expanded{
 position:absolute;inset:82px auto 66px 50%;transform:translateX(-50%);
 width:min(calc(310px * var(--pad-scale,1)),calc(100% - 28px));height:auto;max-height:none;min-height:0;
 display:flex;flex-direction:column;gap:8px;padding:0;border:0;border-radius:0;background:none;backdrop-filter:none;overflow:visible;z-index:5;
}
#jamApp[data-layout=split] .jam-stage .jam-beat-pads .jam-drum-grid{flex:1;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px}
#jamApp[data-layout=split] .jam-stage .jam-beat-pads .jam-drum-pad{aspect-ratio:auto;width:100%;height:100%;min-height:28px;max-height:none;padding:4px;font-size:10px}
#jamApp .jam-pad-tools{flex:none;flex-wrap:wrap;gap:4px;min-width:0}
#jamApp .jam-pad-tools button{min-width:40px;min-height:40px;padding:6px 8px}
#jamApp[data-layout=split] .jam-stage .jam-beat-pads .jam-pad-record{flex:none;min-height:36px;padding:5px 14px}
#jamApp .jam-beat-pads .jam-take-status:empty{display:none}
#jamApp[data-layout=split] .jam-stage .jam-field .jam-beat-pads.collapsed{top:auto;bottom:110px;height:auto;max-height:none}
#jamApp[data-layout=split] .jam-stage .jam-beat-pads.collapsed .jam-drum-grid{display:none}
#jamApp .jam-popover[data-panel=beat]{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
#jamApp .jam-popover[data-panel=beat]>*{flex-shrink:0;min-width:0}
#jamApp .jam-popover[data-panel=beat] .jam-beat-pads,
#jamApp .jam-popover[data-panel=beat] .jam-beat-pads.expanded{
 position:relative;inset:auto;transform:none;width:min(100%,560px);max-width:100%;max-height:none;margin:0 auto;padding:0;
 display:flex;gap:8px;overflow:visible;background:none;border:0;backdrop-filter:none;
}
#jamApp .jam-popover[data-panel=beat] .jam-drum-grid{width:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#jamApp .jam-popover[data-panel=beat] .jam-drum-pad{width:100%;height:auto;aspect-ratio:1;min-height:64px;max-height:none;font-size:11px;gap:8px}
#jamApp .jam-popover[data-panel=beat] .jam-beat-pads.collapsed .jam-drum-grid{display:none}
@media(min-width:1200px){
 #jamApp[data-layout=split] .jam-stage[data-count="5"],#jamApp[data-layout=split] .jam-stage[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 #jamApp[data-layout=split] .jam-stage[data-count="2"]{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}
 #jamApp .jam-brand{font-size:15px;letter-spacing:-.7px;gap:0}
 #jamApp .jam-brand span{display:none}
 #jamApp .jam-top-actions{gap:0}
 #jamApp .jam-top-actions button{padding-left:6px;padding-right:6px;font-size:10px}
 #jamApp .jam-top-actions .jam-capture{min-width:43px}
 #jamApp .jam-top-actions .jam-icon{width:32px}
 #jamApp .jam-popover[data-panel=beat] .jam-drum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #jamApp .jam-popover[data-panel=beat] .jam-drum-pad{height:clamp(64px,calc((100dvh - 320px)/4),116px);aspect-ratio:auto;min-height:64px}
 #jamApp .jam-material-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}
/* The field overlay is never a drum-control surface in Chaotic Pad. */
#jamApp[data-layout=chaotic] .jam-stage .jam-field .jam-beat-pads,
#jamApp[data-layout=chaotic] .jam-stage .jam-field .jam-field-refresh{display:none}
#jamApp .jam-field-refresh{position:absolute;top:44px;right:6px;z-index:4;display:grid;place-items:center;width:36px;min-height:36px;border:1px solid #bccbb824;border-radius:50%;background:#091016c9;color:#c6d1ca}
#jamApp .jam-message .jam-refresh-undo{min-height:36px;padding:4px 12px;margin-left:12px;border:1px solid #d7edb144;border-radius:20px;font-size:12px;pointer-events:auto}
/* Compact Beat tiles keep quick hits and a route to the full-size instrument. */
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-field[data-material=beat] .jam-pad-effect{display:none}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-beat-pads{
 inset:44px 44px 62px 8px;transform:none;width:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:28px minmax(0,1fr);gap:4px;
}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-beat-pads .jam-pad-tools{grid-column:1;grid-row:1;display:block}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-pad-tools button:not(:last-child){display:none}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-pad-tools button:last-child{width:100%;min-width:0;min-height:28px;padding:3px;font-size:9px;white-space:nowrap}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-beat-pads .jam-pad-record{grid-column:2;grid-row:1;min-height:28px;width:100%;padding:3px;font-size:9px}
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) .jam-beat-pads .jam-drum-grid{grid-column:1/-1;grid-row:2}
@media(max-height:780px){
 #jamApp[data-layout=split] .jam-stage[data-count="5"] .jam-motion-readout,
 #jamApp[data-layout=split] .jam-stage[data-count="6"] .jam-motion-readout{display:none}
}
@media(max-height:500px) and (orientation:landscape){
 #jamApp .jam-popover[data-panel=beat] .jam-drum-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 #jamApp .jam-popover[data-panel=beat] .jam-drum-pad{height:76px;aspect-ratio:auto}
 #jamApp .jam-popover[data-panel=beat]>header{position:sticky;top:-4px;z-index:8;background:#0e1418}
}

/* Split, one selected field, and the shared field keep the same live canvases. */
#jamApp{--jam-view-footer:136px}
#jamApp .jam-viewbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:12px;min-width:0}
#jamApp .jam-layout-switch{display:flex;flex:0 1 auto;min-width:0;gap:2px;padding:3px;border-radius:25px}
#jamApp .jam-layout-switch .jam-view-toggle{flex:1 1 auto;min-width:0;min-height:40px;padding:8px 15px;white-space:nowrap;border:1px solid transparent;border-radius:22px;font-size:11px;letter-spacing:0}
#jamApp .jam-layout-switch .jam-view-toggle[aria-pressed=true]{background:#dbe8cc;color:#172015;border-color:#dbe8cc}
#jamApp .jam-view-options{display:flex;flex:1 1 440px;justify-content:flex-end;align-items:center;gap:10px;min-width:0;max-width:620px;padding:2px 10px;border-radius:25px}
#jamApp .jam-view-selection{display:block;flex:1 1 110px;min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;letter-spacing:.2px;color:#b9c7bf}
#jamApp .jam-beat-visibility{flex:none;min-height:40px;max-width:135px;padding:6px 12px;border:1px solid #d2bb7d45;border-radius:20px;white-space:nowrap;font-size:10px;color:#e2d7ba;background:#baa76813}
#jamApp .jam-beat-visibility[aria-pressed=true]{border-color:#e0ce8b80;background:#c5b27820}
#jamApp .jam-view-options .jam-range-row{flex:1 1 210px;width:auto;min-width:140px;max-width:245px;min-height:40px;gap:8px;padding:2px 0;margin:0;background:none;border:0}
#jamApp .jam-view-options .jam-range-row input{flex:1 1 40px;min-width:26px;width:100%;min-height:36px}
#jamApp .jam-view-options .jam-range-row output{min-width:37px}
#jamApp[data-layout=split] .jam-stage{bottom:calc(var(--jam-view-footer) + env(safe-area-inset-bottom))}
#jamApp[data-layout=focus] .jam-stage{
 position:absolute;inset:calc(118px + env(safe-area-inset-top)) env(safe-area-inset-right) calc(var(--jam-view-footer) + env(safe-area-inset-bottom)) env(safe-area-inset-left);
 display:block;flex:none;width:auto;min-width:0;min-height:0;padding:0;overflow:hidden;background:var(--jam-ink);
}
#jamApp[data-layout=focus] .jam-stage .jam-field{position:absolute;inset:0;width:100%;height:100%;min-height:0;overflow:hidden;grid-column:auto;grid-row:auto}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-head{top:4px;left:16px;right:12px;min-width:0}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-head .jam-material-name{flex:1;max-width:none;min-width:0}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-head button{min-height:38px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-head .jam-tiny-icon{flex:0 0 36px;width:36px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-pad-effect{display:block;top:46px;left:16px;max-width:calc(100% - 76px);min-height:36px;padding:6px 12px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-refresh{display:grid;top:46px;right:14px;width:36px;min-height:36px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-volume{left:16px;right:16px;bottom:30px;min-height:40px;gap:10px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-volume input{min-height:40px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-phase{left:20px;right:20px;bottom:0;min-height:28px;pointer-events:auto}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-motion-readout{display:block;top:auto;bottom:76px;left:20px;font-size:10px;pointer-events:none}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-entry-scale{left:8%;right:8%;bottom:115px}
#jamApp[data-layout=focus] .jam-material-strip{display:none}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-beat-pads,
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-beat-pads.expanded{
 position:absolute;inset:88px auto 80px 50%;transform:translateX(-50%);z-index:5;
 display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:40px minmax(0,1fr) auto;gap:8px;
 width:min(calc(620px * var(--pad-scale,1)),calc(100% - 32px));height:auto;min-width:0;min-height:0;max-height:none;
 padding:0;border:0;border-radius:0;background:none;backdrop-filter:none;overflow:visible;
}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-tools{grid-column:1;grid-row:1;min-width:0;flex-wrap:nowrap;justify-content:flex-start;gap:4px}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-tools button{flex:0 1 auto;min-width:30px;min-height:40px;padding:6px 7px;font-size:10px;white-space:nowrap}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-tools button:last-child{display:block;min-width:0}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-record{grid-column:2;grid-row:1;min-width:64px;min-height:40px;padding:6px 9px;font-size:10px;align-self:stretch}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-drum-grid{
 grid-column:1/-1;grid-row:2;justify-self:stretch;align-self:stretch;
 width:100%;height:100%;min-height:0;
 grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;
}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-drum-pad{aspect-ratio:auto;width:100%;height:100%;min-width:0;min-height:40px;max-height:none;padding:6px;border-radius:12px;font-size:11px;gap:7px;display:flex;flex-direction:column;align-items:center;justify-content:center}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-drum-pad svg{width:38%;height:38%;min-width:18px;min-height:18px}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-take-status{display:block;grid-column:1/-1;grid-row:3;min-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-take-status:empty{display:none}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-beat-pads.collapsed{top:auto;bottom:82px;height:auto;grid-template-rows:40px}
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads.collapsed .jam-drum-grid,
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads.collapsed .jam-pad-record,
#jamApp[data-layout=focus] .jam-stage .jam-beat-pads.collapsed .jam-take-status{display:none}
@media(max-width:900px){
 #jamApp{--jam-view-footer:170px}
 #jamApp .jam-viewbar{bottom:calc(70px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
 #jamApp .jam-layout-switch{width:100%;padding:2px;min-height:44px}
 #jamApp .jam-layout-switch .jam-view-toggle{flex:1 1 0;padding:6px 8px;min-height:38px;font-size:10px}
 #jamApp .jam-view-options{width:100%;max-width:none;min-height:40px;gap:6px;padding:0 9px}
 #jamApp .jam-view-selection{flex:1 1 60px;max-width:105px;font-size:9px}
 #jamApp .jam-beat-visibility{min-height:38px;max-width:114px;padding:5px 8px;font-size:9px}
 #jamApp .jam-view-options .jam-range-row{flex:1 1 165px;max-width:210px;min-width:130px;min-height:38px;gap:5px}
 #jamApp .jam-view-options .jam-range-row>span{font-size:9px}
 #jamApp .jam-view-options .jam-range-row output{font-size:10px;min-width:33px}
 #jamApp .jam-view-options .jam-range-row input{min-width:20px;min-height:36px}
 #jamApp[data-layout=chaotic] .jam-chaos-touch{bottom:calc(170px + env(safe-area-inset-bottom))}
}
@media(max-width:360px){
 #jamApp .jam-viewbar{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}
 #jamApp .jam-view-options{gap:4px;padding:0 7px}
 #jamApp .jam-view-selection{flex-basis:36px;max-width:64px}
 #jamApp .jam-beat-visibility{max-width:105px;padding:5px 7px;font-size:9px}
 #jamApp .jam-view-options .jam-range-row{flex-basis:145px;min-width:125px}
}
@media(max-height:650px){
 #jamApp[data-layout=focus] .jam-stage .jam-field .jam-beat-pads,
 #jamApp[data-layout=focus] .jam-stage .jam-field .jam-beat-pads.expanded{top:84px;bottom:70px;grid-template-rows:36px minmax(0,1fr);gap:6px}
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-tools button,
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pad-record{min-height:36px;padding-top:4px;padding-bottom:4px}
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-drum-grid{gap:4px}
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-take-status,
 #jamApp[data-layout=focus] .jam-stage .jam-field[data-material=beat] .jam-motion-readout{display:none}
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-drum-pad{font-size:9px;gap:3px;padding:3px}
 #jamApp[data-layout=focus] .jam-stage .jam-beat-pads .jam-pc-hint{min-width:18px;min-height:18px;font-size:10px}
}
@media(max-height:500px) and (orientation:landscape){
 #jamApp{--jam-view-footer:126px}
 #jamApp .jam-viewbar{display:flex;bottom:calc(70px + env(safe-area-inset-bottom));gap:7px}
 #jamApp .jam-layout-switch{flex:0 1 285px;width:auto;min-height:42px}
 #jamApp .jam-view-options{flex:1 1 290px;min-width:0;width:auto}
 #jamApp .jam-view-selection{display:none}
 #jamApp[data-layout=focus] .jam-stage{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#66705e #101719}
 #jamApp[data-layout=focus] .jam-stage .jam-field{position:relative;inset:auto;min-height:300px;height:100%}
}

/* A short six-field composition gives Beat one header, two hit rows, and
   independent volume/loop lanes. Full screen exposes its complete controls. */
@media(max-height:780px){
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown]{--jam-compact-full-width:clamp(44px,calc(50vw - 122px),60px)}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-field-head{top:2px}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-material-name{max-width:calc(100% - var(--jam-compact-full-width) - 55px);min-height:28px;padding:2px 0;font-size:9px;letter-spacing:0;gap:5px}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-field-head>button:not(.jam-material-name),
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-field-refresh,
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pad-effect,
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-motion-readout,
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-entry-scale{display:none}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-beat-pads,
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-beat-pads.expanded{position:absolute;inset:34px 8px 48px;transform:none;width:auto;height:auto;display:block;gap:0;overflow:visible}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pad-tools{position:absolute;top:-32px;right:47px;width:var(--jam-compact-full-width);height:28px;display:block}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pad-tools button:last-child{display:block;width:100%;height:28px;min-height:28px;padding:2px 3px;font-size:8px;line-height:11px;white-space:normal;overflow-wrap:normal}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pad-record{position:absolute;top:-32px;right:0;display:block;width:43px;height:28px;min-height:28px;padding:2px;font-size:8px;line-height:12px;white-space:nowrap}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pad-record:before{height:5px;width:5px;margin-right:3px}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-drum-grid{display:grid;width:100%;height:100%;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:2px}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-drum-pad{width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;padding:2px;font-size:8px;line-height:10px;gap:1px;border-radius:6px;overflow:hidden}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-drum-pad svg{width:16px;height:16px;max-width:70%;max-height:80%}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-pc-hint,
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-take-status{display:none}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-field-volume{bottom:18px;height:26px;min-height:26px;padding-top:0;padding-bottom:0}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-field-volume input{height:26px;min-height:26px;margin-top:0;margin-bottom:0}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=shown] .jam-phase{bottom:0;height:16px;min-height:16px;padding:7px 0}
 #jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-field[data-material=beat][data-beat-pads=hidden] .jam-pad-effect{display:block}
}


/* In focused view the picture owns the field. Per-field gain lives below it. */
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-field-volume{display:none}
#jamApp[data-layout=focus] .jam-view-options .jam-range-row{flex:1 1 180px;max-width:260px}
#jamApp[data-layout=focus] .jam-view-options{justify-content:flex-end}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-motion-readout{bottom:38px}
#jamApp[data-layout=focus] .jam-stage .jam-field .jam-entry-scale{bottom:76px}
@media(max-width:900px){
 #jamApp[data-layout=focus] .jam-view-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 10px;padding:0 10px}
 #jamApp[data-layout=focus] .jam-view-options .jam-range-row{width:100%;max-width:none;min-width:0}
 #jamApp[data-layout=focus] .jam-view-options .jam-range-row>span{max-width:72px;overflow:hidden;text-overflow:ellipsis}
}

/* Split volume lanes: the final grid item must not inherit the legacy raised last-child position. */
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]) .jam-field .jam-field-volume,
#jamApp[data-layout=split] .jam-stage:not([data-count="1"]) .jam-field:last-child .jam-field-volume{
  left:8px;
  right:8px;
  bottom:28px;
}


/* Theremin reference stays at the edge; the entire surface remains playable. */
#jamApp .jam-field[data-instant-entry=true] .jam-entry-scale{display:none}
#jamApp .jam-theremin-reference{position:absolute;z-index:3;left:0;right:0;bottom:68px;height:28px;pointer-events:none;user-select:none;color:#cbd7ce8c;font:9px/12px ui-monospace,monospace;letter-spacing:.2px}
#jamApp .jam-theremin-line{position:absolute;left:0;right:0;top:10px;height:1px;background:#cbd7ce26}
#jamApp .jam-theremin-line>i{position:absolute;top:-1px;width:1px;height:3px;background:#cbd7ce40}
#jamApp .jam-theremin-line>i.octave{top:-2px;height:5px;background:#cbd7ce75}
#jamApp .jam-theremin-labels{position:absolute;top:16px;left:0;right:0;display:flex;justify-content:space-between;padding:0 8px}
#jamApp .jam-theremin-marker{position:absolute;top:7px;width:5px;height:5px;transform:translateX(-50%);border-radius:50%;background:#e2eedcbf;opacity:0}
#jamApp .jam-theremin-note{position:absolute;left:0;right:0;top:-6px;text-align:center;color:#dde8dccc;opacity:0;white-space:nowrap}
#jamApp .jam-theremin-reference[data-playing=true] .jam-theremin-marker,#jamApp .jam-theremin-reference[data-playing=true] .jam-theremin-note{opacity:1}
#jamApp .jam-field[data-theremin=true] .jam-motion-readout{display:none!important}
#jamApp[data-layout=focus] .jam-theremin-reference{bottom:37px}
#jamApp[data-layout=chaotic] .jam-theremin-reference{bottom:calc(var(--jam-view-footer,136px) + env(safe-area-inset-bottom) + 20px)}
#jamApp[data-layout=chaotic] .jam-field:not(.selected) .jam-theremin-reference{display:none}
@media(max-height:700px){#jamApp[data-layout=split] .jam-stage:is([data-count="5"],[data-count="6"]) .jam-theremin-reference{bottom:63px;font-size:8px}}

#jamApp .jam-layer-muted{display:none;width:12px;height:12px;margin-left:5px;vertical-align:-2px;flex:none;pointer-events:none}
#jamApp .jam-layer-muted svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3}
#jamApp .jam-chaos-chip[data-muted=true] .jam-layer-muted{display:inline-block}
