/* The instrument stays central; one visual language for all six workspaces. */
#music-floating{z-index:60}
.lab-tabs{display:flex;gap:4px;padding:5px;background:#e9eef3;border-radius:18px;margin:8px 0 18px}
.lab-tabs button{flex:1;min-height:44px;border:0;border-radius:13px;background:transparent;color:#586e81;font-size:14px;font-weight:600;transition:background .2s,box-shadow .2s,transform .2s}
.lab-tabs button[aria-pressed=true]{background:#fff;color:var(--accent-ink);box-shadow:0 3px 14px #34495c12}
.lab-tabs button:active,.create-choices button:active,.chord-action:active{transform:scale(.96)}
.lab-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px;margin:12px 0}
.lab-fields label{font-size:14px;font-weight:550;color:#546779;display:grid;gap:7px}
.lab-fields select{width:100%;min-width:0;font-size:15px}
.lab-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.lab-chips button{border:1px solid #dce4ea;background:#f7f9fb;border-radius:12px;padding:10px 12px;font-size:14px;min-height:44px;color:#526a7b}
.lab-chips button[aria-pressed=true]{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent)}
.lab-player{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:16px 0 4px}
.lab-player .button{flex:1}.lab-player .check-row{font-size:14px;margin:0}
.tempo-chip{border:1px solid #e4e9ee;border-radius:15px;background:#f7fafb;display:flex;align-items:center;gap:4px;justify-content:center;min-height:44px;min-width:75px;padding:8px 11px;color:var(--accent-ink)}
.tempo-chip b{font-size:17px;font-variant-numeric:tabular-nums}.tempo-chip small{font-size:12px}
.discover-settings{background:#ffffff8c;border:1px solid #e6ebee;border-radius:20px;padding:14px}
.chord-list{display:grid;gap:9px;margin:14px 0 20px}.chord-card{display:flex;align-items:stretch;background:linear-gradient(130deg,#fff,#f5f8fa);border:1px solid #dfe7ec;border-radius:18px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.chord-card.selected{border-color:var(--accent);box-shadow:0 3px 16px color-mix(in srgb,var(--accent) 12%,transparent)}
.chord-scene-scope{display:flex;align-items:center;gap:7px;width:fit-content;max-width:100%;margin:9px 0 0;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 20%,#e5ebee);border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;line-height:1.4}.chord-scene-scope svg{flex:none}
.chord-audition{flex:1;min-width:0;border:0;background:none;text-align:left;padding:14px;color:#2b4052;display:grid;grid-template-columns:1fr auto;gap:5px}
.chord-audition strong{font-size:23px;letter-spacing:-.6px}.chord-audition>span{font-size:13px;color:#687c8c;align-self:center}.chord-audition small{grid-column:1/-1;font-size:13px;line-height:1.6;color:#657b8c}
.chord-action{width:50px;flex:none;border:0;border-left:1px solid #e8edf0;background:var(--accent-soft);color:var(--accent-ink);font-size:25px}
.arp-progression{display:flex;flex-wrap:wrap;gap:9px;min-height:65px;padding:14px;border-radius:18px;background:linear-gradient(120deg,#fbf1f5,#f1f5fd);border:1px solid #eddfe8}
.arp-slot{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ead8e2;border-radius:13px;padding:9px 8px 9px 14px;transition:box-shadow .15s}
.arp-slot button{border:0;background:none;color:#8f6475;min-width:28px;min-height:30px;font-size:20px}.arp-slot.playing{outline:2px solid #df6583;box-shadow:0 0 16px #e9657e20}.arp-slot.unavailable{border-style:dashed;color:#986b38}
.arp-actions{display:flex;justify-content:space-between;margin:12px 0}
.arp-library-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;flex-wrap:wrap}.arp-library-row h3{font-size:16px;line-height:1.3;min-width:0;overflow-wrap:anywhere;flex:1 1 115px;margin:0;color:#79435e}.arp-library-row .button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 12px;font-size:13px;flex-shrink:0}.arp-library-row svg{flex-shrink:0}
.music-floating{position:absolute;z-index:35;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 20px);display:flex;align-items:center;gap:5px;border-radius:21px;padding:6px;background:#fffffff2;box-shadow:0 8px 28px #415f7815}
.music-floating>button{border:0;min-height:44px;border-radius:14px;padding:9px 12px;white-space:nowrap;color:var(--accent-ink);font-size:14px;background:#f5f7fa}.music-floating>button.primary{background:var(--accent);color:#fff}
.music-tempo-popup{position:fixed;z-index:100;width:min(280px,calc(100vw - 20px));display:flex;gap:10px;padding:16px;border-radius:20px;background:#fffffffa;box-shadow:0 12px 50px #3a53682a}.music-tempo-popup label{flex:1;font-size:15px}.music-tempo-popup output{float:right;color:var(--accent-ink);font-weight:650}.music-tempo-popup input{display:block;width:100%;margin:18px 0 4px}.music-tempo-popup .icon-button{width:32px;height:32px;min-width:32px}
body[data-view=play] #instrument-view .workspace-edge-controls,body[data-view=inspire][data-inspire-source=arps] #instrument-view .workspace-edge-controls{display:none}
body[data-view=play] #instrument-view:not(.controls-open) #stage-canvas,body[data-view=inspire][data-inspire-source=arps] #instrument-view:not(.controls-open) #stage-canvas{bottom:80px}
body[data-view=play] #fullscreen-controls,body[data-view=inspire] #fullscreen-controls{display:none!important}
body[data-view=play] #connections,body[data-view=inspire][data-inspire-source=arps] #connections{display:none}
body[data-view=inspire][data-inspire-source=arps] #inspire-floating-transport,body[data-view=inspire][data-inspire-source=arps] #inspire-tempo-popover{display:none!important}
body:not([data-view=dance]):not([data-view=stage]) #dance-quick-tempo,body:not([data-view=dance]):not([data-view=stage]) #dance-inline-tempo{display:none}
#random-duos,#random-options,.sequence-tabs,#possibilities-section{display:none!important}
#playback-section .dance-playback-row{grid-template-columns:1fr}
#harmony-section #pair-list{margin-top:8px;max-height:380px;overflow:auto}
.create-intro{display:flex;gap:12px;align-items:center;margin:10px 0 20px}.create-intro p{font-size:15px;line-height:1.5;margin:0;color:#546e7c}.quentin-mark{width:42px;height:42px;flex:none;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#15bda7,#087b70);color:white;font-size:22px}
.create-choices{display:grid;gap:12px}.create-choices button{position:relative;display:grid;grid-template-columns:40px 1fr;gap:5px 12px;text-align:left;border:1px solid #cfe6e2;border-radius:21px;padding:18px;background:linear-gradient(125deg,#fff,#edf9f6);color:#245849;transition:transform .2s,box-shadow .2s;min-height:94px}.create-choices button:hover{box-shadow:0 5px 24px #087f7514}.create-choices button>span{grid-row:span 2;align-self:center;font-size:30px;color:#168c7e}.create-choices strong{font-size:17px}.create-choices small{font-size:14px;color:#6a827b}
.create-steps{display:flex;gap:5px;margin:12px 0 18px}.create-steps button{flex:1;display:grid;justify-items:center;gap:8px;background:none;border:0;font-size:12px;min-height:64px;padding:6px 2px;color:#708490}.create-steps button>span{height:30px;width:30px;border-radius:50%;background:#edf1f4;display:grid;place-items:center;font-size:14px}.create-steps button[aria-current=step]{color:#078777;font-weight:650}.create-steps button[aria-current=step]>span{background:#099d8b;color:white;box-shadow:0 4px 14px #099d8b24}
#create-shape-actions{display:grid;gap:9px}#create-back{margin:8px 0 0}
#create-panel .journey-section{border:0;background:none;padding:0;box-shadow:none}#create-panel .journey-section>summary{display:none}#create-panel .journey-section>.section-content{padding:0}
#create-panel .journey-section .photo-drop{padding:16px;border-radius:20px}#create-panel #finish-edit{margin-top:16px}
#mic-candidate{background:#eaf8f3;border:1px solid #c2e6dc;border-radius:20px;padding:16px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}#mic-note{font-size:38px;color:#177d6b}#mic-note-detail{color:#6a827b;font-size:13px}#mic-candidate .button-row{flex-basis:100%;flex-wrap:wrap}#mic-accept{flex:1}#mic-level{display:block;width:100%;height:9px;margin:8px 0 15px;accent-color:#13bba1}#guide-active .button-row{margin-bottom:10px}#guide-active #guide-finish{margin-top:10px}
.image-export-dialog{width:min(600px,calc(100vw - 24px));max-height:90dvh;padding:24px;border-radius:26px}.image-export-dialog img{display:block;max-width:100%;max-height:60dvh;object-fit:contain;margin:16px auto}.image-export-dialog .button-row{flex-wrap:wrap}.image-export-dialog a{text-decoration:none}#export-image{margin-top:10px}
#inspire-float-settings{display:none}.inspire-topline>div:first-child{display:none}
@media(min-width:900px){body[data-view=inspire] #instrument-view[data-inspire-sheet=hidden] #stage-canvas{bottom:calc(82px + env(safe-area-inset-bottom))}body[data-view=inspire] #instrument-view[data-inspire-sheet=hidden] .workspace-edge-controls{display:none}body[data-view=inspire] #instrument-view[data-inspire-sheet=hidden] #inspire-float-settings{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#f2f5f8;color:#566b7d}.inspire-floating-transport{bottom:max(14px,env(safe-area-inset-bottom));padding:6px;border-radius:21px;white-space:nowrap}}
@media(max-width:420px){.lab-player .check-row{flex-basis:100%;margin-top:8px}.music-floating>button{padding:8px}.create-choices strong{font-size:16px}.chord-audition{padding:12px}.chord-action{width:44px}}
@media(prefers-reduced-motion:reduce){.lab-tabs button,.create-choices button,.chord-card,.arp-slot{transition:none}}
[hidden]{display:none!important}

/* Compact composition desk: four tactile parts and small chord tiles. */
.loop-arranger{padding:12px;border:1px solid #eedbe3;border-radius:20px;background:linear-gradient(120deg,#fff,#fff6f9);margin:12px 0 18px}
.loop-arranger-top,.loop-arranger-bottom{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.loop-arranger-bottom{margin-top:10px;justify-content:space-between}
.loop-parts{display:flex;gap:6px;flex:1}.loop-parts button{flex:1;display:grid;gap:3px;justify-items:center;min-width:43px;min-height:55px;padding:7px 9px;border:1px solid #eddce4;border-radius:14px;background:#fff;color:#79596a;transition:background .18s,transform .18s,box-shadow .18s}.loop-parts strong{font-size:19px}.loop-parts small{font-size:12px;white-space:nowrap}.loop-parts button[aria-pressed=true]{background:#e65d81;color:white;border-color:#e65d81;box-shadow:0 4px 13px #e65d8130}.loop-parts button.playing{outline:2px solid #9d345b;outline-offset:2px}.loop-parts button:active,.chord-tile button:active{transform:scale(.95)}
.loop-add{width:42px;min-height:44px;flex:none;border:1px solid #eadbe2;border-radius:13px;background:#fff;color:#b74567;font-size:23px}.loop-add:disabled{opacity:.35}
.loop-play-mode{display:flex;gap:3px;background:#f1e8ee;padding:4px;border-radius:13px}.loop-play-mode button{min-height:36px;padding:7px 11px;border:0;border-radius:10px;background:transparent;color:#826574;font-size:14px}.loop-play-mode button[aria-pressed=true]{background:#fff;color:#a33156;box-shadow:0 2px 5px #71526110}.loop-arranger-bottom>.button{font-size:14px;padding:9px 12px;min-height:42px;margin-left:auto}
.inspire-grid-tools>span{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.loop-gesture-hint{font-size:12px;color:#896f7d;font-weight:400}
.loop-library{width:min(520px,calc(100vw - 24px));max-height:90dvh;border:1px solid #fff;padding:22px;border-radius:25px;overflow:auto;background:#fffafdf5}.loop-library::backdrop{background:#28334645;backdrop-filter:blur(7px)}.loop-library header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.loop-library h2{margin:0;font-size:23px}.loop-save-label{display:grid;gap:8px;font-size:14px;margin-bottom:12px}.loop-save-label input{width:100%;font-size:16px}.loop-library .button-row{flex-wrap:wrap}.loop-library .button-row .button{font-size:14px;min-height:44px;padding:10px 14px}
.loop-saved-list{display:grid;gap:8px;margin:15px 0}.loop-saved-item{display:grid;grid-template-columns:1fr 24px;gap:5px;text-align:left;padding:14px 15px;border:1px solid #eadde4;border-radius:16px;background:#fff;color:#4d3b4b;min-height:72px}.loop-saved-item strong{font-size:16px;overflow-wrap:anywhere}.loop-saved-item span:nth-child(2){grid-column:1;font-size:13px;color:#8b7888}.loop-saved-item span:last-child{grid-column:2;grid-row:1/3;align-self:center;color:#d3587b}
.loop-name-field{display:flex;align-items:flex-end;gap:10px;margin-bottom:16px}.loop-name-field .loop-save-label{flex:1;min-width:0;margin:0}.loop-new-name{width:46px;height:46px;flex:0 0 46px;color:#ba426b;background:linear-gradient(135deg,#fceaf0,#f2ebfb);border-color:#efdee8;transition:transform .2s,background .2s}.loop-new-name:active{transform:scale(.94)}.loop-new-name svg{vertical-align:middle}.loop-name-field input:focus{outline:2px solid #d96794;outline-offset:2px}.loop-library .button:disabled{opacity:.45;cursor:default}@media(prefers-reduced-motion:reduce){.loop-new-name{transition:none}.loop-new-name:active{transform:none}}
#arp-chord-list{grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:8px}.chord-tile{border:1px solid #e6dce6;border-radius:15px;background:linear-gradient(135deg,#fff,#fff5f9);overflow:hidden;display:flex;align-items:stretch;transition:box-shadow .2s}.chord-tile:focus-within,.chord-tile:hover{box-shadow:0 4px 15px #96557918;border-color:#df90ad}.chord-tile button{border:0;background:none;color:#753f5b;min-height:54px;transition:transform .15s}.chord-tile button[data-add-chord]{display:flex;align-items:center;justify-content:center;gap:4px;flex:1;padding:8px 5px 8px 9px;min-width:0}.chord-tile strong{font-size:17px}.chord-tile button[data-add-chord]>span{font-size:13px;color:#c982a0}.chord-tile .chord-tile-hear{min-width:29px;padding:4px;border-left:1px solid #f0e5eb;font-size:19px;color:#b06685}
.arp-slot{padding:2px 3px 2px 2px;gap:0}.arp-slot .chord-drag-handle{display:flex;align-items:center;gap:5px;padding:9px 8px;min-height:42px;font-size:16px;touch-action:none;cursor:grab;color:#714157;user-select:none;-webkit-user-select:none}.chord-drag-handle>span{font-size:18px;color:#b28a9e}.arp-slot [data-remove-chord]{min-height:42px;min-width:32px}.arp-slot.dragging{opacity:.3}.arp-slot.drop-target{box-shadow:inset 3px 0 #dd5c86;background:#fff3f8}.chord-drag-ghost{position:fixed;z-index:150;pointer-events:none;margin:0;box-shadow:0 12px 26px #66395035;opacity:.96;border:1px solid #d889a6}
.create-quick-actions{display:flex;justify-content:flex-end;margin:0 0 8px}.create-play-shortcut{background:#ff963f;color:white;padding:9px 20px;min-height:42px;font-size:15px;border-radius:14px;box-shadow:0 4px 12px #ff963f20}
.chord-tile button[data-add-chord]>span{display:none}.chord-tile strong{font-size:16px}
@media(min-width:900px){#arp-chord-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.loop-arranger{padding:14px}.loop-gesture-hint{font-size:13px}}
@media(max-width:420px){.loop-arranger{padding:10px}.loop-add{width:36px}.loop-parts button{padding:6px 4px;min-width:38px}.loop-parts{gap:5px}.loop-arranger-bottom{gap:8px}.loop-arranger-bottom>.button{flex:1}.inspire-grid-tools{align-items:center;gap:4px}.inspire-grid-tools>span{gap:2px;flex-direction:column}#arp-chord-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.loop-parts button,.chord-tile,.chord-tile button{transition:none}}

/* A single gesture adds a musical phrase; rose glass keeps it in Inspire. */
.loop-part-actions{display:flex;gap:6px;align-items:center;flex:none}.loop-remove{display:grid;place-items:center}.loop-remove:hover:not(:disabled){background:#fff0f2;border-color:#e889a1;color:#bc3058}#loop-undo-remove{display:block;min-height:44px;font-size:14px;margin:4px 0 -6px;color:#a33760}
.magic-chord-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px}.magic-chord-heading h3{font-size:18px;margin:0;line-height:1.35}
.magic-chords,#music-floating .magic-chords{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:46px;padding:10px 15px;border:1px solid #ffffff95;border-radius:16px;background:linear-gradient(125deg,#ce3e71 2%,#a14792 60%,#6856b5);box-shadow:0 5px 18px #a8467b26,inset 0 1px 1px #ffffff55;color:#fff;font-size:14px;font-weight:650;transition:transform .18s,box-shadow .18s;cursor:pointer}
.magic-chords:before{content:'';position:absolute;z-index:-1;inset:-100% -50%;background:linear-gradient(110deg,transparent 40%,#ffffff35 50%,transparent 60%);transform:translateX(-60%);pointer-events:none}.magic-chords:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px #a8467b38}.magic-chords:focus-visible{outline:3px solid #784da9;outline-offset:4px}.magic-chords:active:not(:disabled){transform:scale(.96)}.magic-chords:disabled{opacity:.45;cursor:default;box-shadow:none}.magic-chords .magic-wand{flex:none}
.magic-pulse:before{animation:magic-shine .7s ease-out}.magic-pulse .magic-wand{animation:magic-touch .55s ease-out}.magic-info{margin:10px 0 0;color:#7d6274;font-size:13px}.magic-suggestion{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:linear-gradient(105deg,#fbe9f0,#f0ecfa);color:#7c385e;font-size:14px;line-height:1.5}.arp-slot .chord-drag-handle b{display:grid;gap:2px;justify-items:start}.arp-degree{font-size:12px;font-weight:550;line-height:1.2;color:#9f6c84}.arp-actions{align-items:center;gap:12px}.arp-actions .text-button{min-height:44px;font-size:14px}#arp-clear{margin-left:auto}#music-floating .magic-compact{width:44px;min-width:44px;padding:9px}
@keyframes magic-shine{to{transform:translateX(60%)}}@keyframes magic-touch{40%{transform:rotate(-15deg) scale(1.13)}70%{transform:rotate(7deg)}to{transform:none}}
@media(max-width:560px){.loop-parts{flex-basis:100%}.loop-part-actions{margin-left:auto}.loop-part-actions .loop-add{width:44px}.magic-chord-heading{gap:8px}.magic-chord-heading h3{font-size:16px}.magic-chords{padding:10px 12px;gap:6px}}
@media(prefers-reduced-motion:reduce){.magic-chords{transition:none}.magic-pulse:before,.magic-pulse .magic-wand{animation:none}.magic-chords:hover:not(:disabled){transform:none}}

/* Landscape phones: use the wide edge for transport and keep the full playing height. */
@media(orientation:landscape) and (any-pointer:coarse) and (max-width:1100px) and (max-height:600px){
 #instrument-view{--transport-rail-width:104px;--transport-rail-edge:max(12px,env(safe-area-inset-right))}
 #instrument-view:not(.controls-open) #music-floating,
 #instrument-view:not(.controls-open) #inspire-floating-transport{
  left:auto;right:var(--transport-rail-edge);top:50%;bottom:auto;transform:translateY(-50%);
  flex-direction:column;align-items:stretch;gap:5px;width:var(--transport-rail-width);max-width:none;
  max-height:calc(100% - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  padding:6px;overflow-y:auto;overscroll-behavior:contain;animation:none;
 }
 #instrument-view:not(.controls-open) #music-floating>button,
 #instrument-view:not(.controls-open) #inspire-floating-transport>button{
  flex:none;width:100%;min-width:0;min-height:44px;height:44px;padding:6px;font-size:13px;border-radius:14px;
 }
 #instrument-view:not(.controls-open) #music-floating .tempo-chip{flex-direction:column;gap:0;line-height:1.1}
 #instrument-view:not(.controls-open) #music-floating .tempo-chip small{font-size:10px}
 #instrument-view:not(.controls-open) #inspire-float-settings{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;background:#f2f5f8;color:#566b7d}
 body[data-view=inspire] #instrument-view:not(.controls-open) .workspace-edge-controls{display:none}
 body[data-view=play] #instrument-view:not(.controls-open) #stage-canvas,
 body[data-view=inspire] #instrument-view[data-inspire-sheet=hidden]:not(.controls-open) #stage-canvas{
  bottom:env(safe-area-inset-bottom);right:calc(var(--transport-rail-width) + var(--transport-rail-edge) + 12px);
 }
 #instrument-view:not(.controls-open) .music-tempo-popup,
 #instrument-view:not(.controls-open) #inspire-tempo-popover{
  position:absolute;left:auto!important;top:50%!important;bottom:auto;transform:translateY(-50%);
  right:calc(var(--transport-rail-width) + var(--transport-rail-edge) + 12px);
  max-width:calc(100% - var(--transport-rail-width) - var(--transport-rail-edge) - 24px - env(safe-area-inset-left));
 }
}
/* With browser bars visible, a compact two-column rail keeps every control reachable. */
@media(orientation:landscape) and (any-pointer:coarse) and (max-width:1100px) and (max-height:330px){
 #instrument-view:not(.controls-open) #music-floating,
 #instrument-view:not(.controls-open) #inspire-floating-transport{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #instrument-view:not(.controls-open) #music-floating [data-music-play],
 #instrument-view:not(.controls-open) #inspire-float-play{grid-column:1/-1;order:-1}
 #instrument-view:not(.controls-open) #inspire-float-random,
 #instrument-view:not(.controls-open) #inspire-float-settings{font-size:0}
 #instrument-view:not(.controls-open) #inspire-float-random:after{content:'⤨';font-size:22px}
 #instrument-view:not(.controls-open) #inspire-float-settings>span{font-size:22px}
}
/* Compact editing and recognition: primary actions remain beside the instrument. */
#note-palette{min-width:0;width:100%}.palette-scroll{overflow-x:visible}.octave-row{grid-template-columns:18px repeat(12,minmax(0,1fr));gap:2px}.palette-note{min-width:0;font-size:11px}.palette-note small{font-size:10px}.palette-note span{white-space:nowrap}
.delete-saved{color:#a84652!important}.pair-button.active{background:#e0d9ef;border-color:#b9a7d7}
#dance-source-tabs{margin:4px 0 14px}#dance-source-tabs button{font-size:13px}
.photo-entry-active .create-name-field,.photo-entry-active .create-quick-actions,.photo-entry-active .create-steps,.photo-entry-active #create-step-tip{display:none}
#photo-drop{padding:14px!important;display:grid;gap:9px}#photo-drop .helper{margin:0 0 4px;font-size:14px;line-height:1.4}#photo-drop button{margin:0}#photo-drop .photo-desktop-hint{margin:0;font-size:12px}
body.guiding #instrument-settings,body.guiding #create-panel>.create-guide,body.guiding #identify-panel>summary,body.guiding #identify-panel>.section-content>.helper,body.guiding #identify-panel>.section-content>.small,body.guiding #guide-active>.helper:not(#guide-progress),body.guiding #control-panel>.app-footer{display:none!important}
body.guiding #identify-panel{margin:0;border:0}body.guiding #identify-panel>.section-content{padding:0}#guide-active #guide-progress{margin:0 0 5px;font-size:12px}#guide-active #mic-status{font-size:13px;line-height:1.35;margin:4px 0;min-height:0}#guide-active #mic-level{margin:3px 0;height:6px}#guide-active>.button-row{margin:3px 0}#guide-active>.button-row button{min-height:30px;padding:5px 10px;font-size:12px}
#guide-active #mic-candidate{margin:6px 0;padding:8px 10px;gap:7px;display:grid;grid-template-columns:auto 1fr auto}#guide-active #mic-note{font-size:26px;grid-row:1/3}#guide-active #mic-note-detail{font-size:11px}#guide-active #mic-listen{grid-column:2;grid-row:2;padding:6px;min-height:36px}#guide-active #mic-new-take{grid-column:3;grid-row:1;padding:0;font-size:11px}#guide-active #mic-candidate>.button-row{display:contents}#guide-active #mic-accept{grid-column:3;grid-row:2;min-height:36px;padding:6px 9px;font-size:12px}#guide-active #guide-finish:disabled{display:none}#guide-active #guide-finish{margin:5px 0;min-height:36px;padding:6px}
.mic-extras{margin:5px 0}.mic-extras>summary{font-size:12px;color:var(--accent-ink);cursor:pointer}.mic-extra-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}.mic-extra-actions button{min-height:36px;font-size:12px;flex:1 1 auto;width:auto}
.settings-resizer{display:none}
@media(min-width:900px) and (hover:hover){.settings-resizer{display:block;position:sticky;float:left;top:45%;margin-left:-16px;margin-right:-4px;width:12px;height:70px;border:0;border-radius:8px;background:linear-gradient(90deg,transparent 4px,#b8cbd4 4px,#b8cbd4 7px,transparent 7px);cursor:ew-resize;touch-action:none;z-index:6}.resizing-settings #control-panel,.resizing-settings #stage-canvas{transition:none!important}.resizing-settings{cursor:ew-resize;user-select:none}}
@media(hover:none){.section-chevron,.dock-arrow,#fullscreen-settings>span:first-child,.inspire-sheet-arrow{animation:none!important;transition:none!important}}

body[data-view=create].photo-entry-active #instrument-settings{display:none}body[data-view=dance]:has(#play-panel:not([hidden])) #duo-card,body[data-view=dance]:has(#play-panel:not([hidden])) #floating-play{display:none!important}

#guide-active #mic-status{padding:7px 10px}#guide-active #mic-note{margin-top:0}@media(max-aspect-ratio:1/1) and (max-width:1099px){body.guiding #instrument-view{--sheet-height:clamp(300px,50%,360px)}}
/* Instrument folders and chord families keep dense controls easy to scan. */
.saved-folders{position:sticky;top:58px;z-index:3;background:#f4f7fa;padding:5px;border-radius:16px}.saved-category-label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);margin:10px 0}.saved-category-label select{width:auto;min-height:34px;padding:4px 25px 4px 9px;margin-left:auto}.save-name-field{display:grid;gap:8px;margin-bottom:14px;font-size:14px}.chord-group{grid-column:1/-1;margin:13px 0 3px;font-size:14px;font-weight:650;color:var(--accent-ink)}.chord-list>.chord-group:first-child{margin-top:0}
#photo-drop .photo-bottom-count{margin:0;padding:10px;border-radius:13px}#photo-drop .photo-bottom-count label{font-size:14px;margin:0 0 6px}#photo-drop .photo-bottom-count select{min-height:40px}
#instrument-view[data-sheet=full] #control-panel{top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));height:auto;max-height:none}#instrument-view[data-sheet=full] #stage-canvas{visibility:hidden;pointer-events:none}#instrument-view[data-sheet=full] .workspace-panel-heading{padding-left:65px;gap:6px}#instrument-view[data-sheet=full] #wheel-dock .dock-toggle{width:44px;min-width:44px;height:44px;padding:4px;border-radius:15px}#instrument-view[data-sheet=full] #wheel-dock .dock-toggle span{display:none}.workspace-panel-heading .inspire-sheet-arrow{display:block;color:var(--accent-ink);background:var(--accent-soft);font-size:25px}.workspace-panel-heading .inspire-sheet-arrow:disabled{opacity:.3}
@media(min-width:700px){.settings-resizer{display:grid;place-items:center;position:sticky;float:left;top:46%;margin-left:-15px;margin-right:0;width:25px;height:32px;border:1px solid #dae4eb;border-radius:10px;background:#fff;color:#6e8594;font-size:21px;cursor:ew-resize;touch-action:none;z-index:6}}
body:not([data-view=dance]) #dance-dock-mode,body:not([data-view=dance]) #dance-dock-play{display:none}body[data-view=dance] #music-floating,body[data-view=dance] #floating-play{display:none!important}body[data-view=dance] .workspace-edge-controls{background:#fffffff2;box-shadow:0 6px 25px #47617a18;border-radius:20px;padding:5px;gap:4px;max-width:calc(100% - 20px)}body[data-view=dance] #dance-dock-play{min-width:44px;padding:8px;border-radius:14px}#dance-dock-mode{width:auto;max-width:122px;min-height:44px;font-size:13px;border:0;padding:6px 20px 6px 8px;background:#f3f1fa}body[data-view=dance] .workspace-edge-controls .settings-toggle{min-width:44px;font-size:0;padding:6px;box-shadow:none}body[data-view=dance] .workspace-edge-controls .settings-toggle>span:first-child{font-size:25px}body[data-view=dance] #dance-quick-tempo{box-shadow:none;padding:6px;min-width:63px}
@media(orientation:landscape) and (max-height:600px) and (hover:none){body[data-view=dance] .workspace-edge-controls{flex-direction:column;right:max(8px,env(safe-area-inset-right));left:auto;top:50%;bottom:auto;transform:translateY(-50%)}#dance-dock-mode{max-width:105px;font-size:12px}body[data-view=dance] #instrument-view:not(.controls-open) #stage-canvas{right:120px}}

#instrument-view[data-sheet=full] #control-panel{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto}.photo-review-bottom{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:14px}.photo-review-bottom select{width:auto;max-width:180px;margin-left:auto}
/* Compact splitter: generous hit area, quiet conventional grip. */
.settings-resizer{display:none!important;float:none;margin:0;border:0;box-shadow:none;background:transparent!important;position:absolute;top:50%;height:48px;width:20px;padding:0;transform:translateY(-50%);z-index:41;touch-action:none;cursor:col-resize}
.settings-resizer::after{content:"";display:block;margin:auto;width:3px;height:24px;border-radius:3px;background:#9cb1bc88;transition:background .15s,height .15s}
.settings-resizer:hover::after,.settings-resizer:focus-visible::after,.resizing-settings .settings-resizer::after{background:var(--accent);height:32px}
@media(min-width:900px){#instrument-view.controls-open:not([data-sheet=full])>.settings-resizer{display:block!important;right:calc(var(--drawer-width,420px) + 2px);left:auto}}
body[data-view=inspire] .settings-resizer{display:none!important}
#playback-section,#palette-help,#sound-status,#slap-button,body[data-view=create] #stage-caption{display:none!important}
.slap-toggle{border:1px solid #dbe4e9;border-radius:12px;background:#f6f9fa;color:#617583;padding:8px 10px;min-height:36px;font-size:12px;font-weight:600;white-space:nowrap}
.slap-toggle[aria-pressed=true]{background:var(--accent-soft,#e1f5ef);border-color:var(--accent);color:var(--accent-ink)}
.slap-zone{position:absolute;transform:translate(-50%,-50%);padding:0;display:grid;place-items:center;border:1px solid #63879666;border-radius:50%;background:#f4faf85c;color:#6b8792;z-index:3;touch-action:none;user-select:none;transition:background .1s,box-shadow .1s}
.slap-zone span{font-size:clamp(9px,1.3vw,16px);line-height:1}.slap-zone:active,.slap-zone.sounding{background:#c5e9df;box-shadow:0 0 0 3px #b5dace44}
.arp-links{margin:10px 0 16px}.inspire-wheel-actions{flex-wrap:wrap}
#harmony-section .dance-playback-row{grid-template-columns:1fr}#harmony-section .play-options{flex-wrap:wrap}#harmony-section .play-options select{min-width:180px}
.workspace-edge-controls>.slap-toggle{flex-shrink:0}
@media(max-width:430px){
 .inspire-floating-transport{gap:4px}.inspire-floating-transport button{min-width:32px;padding:6px;font-size:12px}.inspire-floating-transport .inspire-float-play{min-width:60px}.inspire-floating-transport .slap-toggle{min-width:38px}
 body[data-view=dance] #dance-dock-mode{max-width:100px;font-size:12px}body[data-view=dance] .workspace-edge-controls .slap-toggle{padding:6px}
 .inspire-transport{grid-template-columns:28px 1fr 1fr 45px 38px 28px!important}.inspire-transport .slap-toggle{padding:5px;font-size:11px}
}
/* Movable percussion surfaces, cut around note fields instead of following the ding. */
.slap-surfaces{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.slap-surfaces .slap-zone{position:static;transform:none;display:inline;fill:#60778330;stroke:#71859066;stroke-width:1;pointer-events:visiblePainted;cursor:pointer;touch-action:none;transition:fill .12s,stroke .12s;background:none;box-shadow:none}
.slap-surfaces .slap-zone.sounding,.slap-surfaces .slap-zone:active{fill:#50697865;stroke:#536e80;box-shadow:none}
.slap-surfaces .slap-zone:focus-visible{outline:none;stroke:var(--accent);stroke-width:3}
body[data-view=create] .slap-surfaces .slap-zone{cursor:grab}body[data-view=create] .slap-surfaces .slap-zone:active{cursor:grabbing}
.slap-controls{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;min-width:0}
.slap-controls,.slap-controls *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.slap-controls .slap-toggle,.slap-controls .volume-button{display:grid;place-items:center;flex-shrink:0;min-width:0;width:40px;height:44px;min-height:44px;padding:0;border-radius:12px;touch-action:manipulation}
.slap-controls svg{width:24px;height:24px;pointer-events:none}
.slap-controls .volume-button{width:32px;background:transparent;border:0;color:var(--accent-ink,#456b72)}
.slap-controls .volume-button svg{width:18px;height:18px}
.volume-button:hover,.volume-button[aria-expanded=true]{background:var(--accent-soft,#e1f5ef)}
@media(max-width:430px){.inspire-transport{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 45px auto 28px!important}.music-floating{gap:3px}.music-floating>[data-music-play]{min-width:0;padding-inline:9px}.music-floating>[data-music-random]{min-width:32px;padding-inline:5px}}
.volume-popup{position:fixed;z-index:110;width:min(280px,calc(100vw - 20px));padding:12px 16px 16px;border:1px solid #e1e8ed;border-radius:22px;background:#fffffff5;box-shadow:0 12px 38px #40556926;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.volume-popup-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:15px}.volume-popup-heading button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:#edf2f5;color:#627482;font-size:21px}
.volume-channel{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:3px 9px;font-size:14px}.volume-channel+.volume-channel{margin-top:12px;padding-top:12px;border-top:1px solid #e7edf1}.volume-channel svg{width:26px;height:26px;color:var(--accent-ink,#456b72);grid-row:1/3;align-self:center}.volume-channel label{font-weight:550}.volume-channel output{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.volume-channel input{grid-column:2/-1;width:100%;min-width:0;height:24px;margin:0;accent-color:var(--accent)}
/* Settings leave only the wheel visible, with a comfortable transparent tap area. */
#instrument-view.controls-open #wheel-dock.is-floating{top:max(6px,env(safe-area-inset-top))!important;left:max(6px,env(safe-area-inset-left))}
#instrument-view.controls-open #wheel-dock .dock-toggle{width:44px;min-width:44px;height:44px;padding:5px;gap:0;border:0;border-radius:50%;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none}
#instrument-view.controls-open #wheel-dock .dock-toggle svg{width:34px;height:34px}
#instrument-view.controls-open #wheel-dock .dock-toggle span{display:none!important}
/* A new instrument is one deliberate action away from every player. */
.reset-handpan-button,#music-floating>.reset-handpan-button,.inspire-floating-transport>.reset-handpan-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-width:40px;min-height:44px;padding:8px 10px;border:1px solid #dde6eb;border-radius:14px;background:#f4f7f9;color:#536d7c;font-size:14px;font-weight:550;line-height:1;white-space:nowrap;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.reset-handpan-button svg{width:20px;height:20px;flex:none;pointer-events:none}
.reset-handpan-button:hover{background:#eaf1f5;border-color:#becdd7}.reset-handpan-button:active{background:#dce9ee}
.reset-handpan-button:focus-visible,.reset-handpan-actions button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.reset-handpan-dialog{box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:26px;border:1px solid #e1e8ed;border-radius:26px;background:#fffffff7;box-shadow:0 20px 80px #1a35432b;color:#263646;text-align:start}
.reset-handpan-dialog::backdrop{background:#1a35433b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.reset-handpan-mark{width:48px;height:48px;display:grid;place-items:center;margin-bottom:18px;border-radius:16px;background:#e5f5f1;color:#087f71}.reset-handpan-mark svg{width:29px;height:29px}
.reset-handpan-dialog h2{margin:0 0 14px;font-size:1.4rem;line-height:1.25;letter-spacing:-.025em}
.reset-handpan-dialog p{margin:0 0 12px;font-size:1rem;line-height:1.5;color:#536b79}
.reset-handpan-dialog #reset-handpan-kept{color:#22746a}
.reset-handpan-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.reset-handpan-actions button{white-space:normal;min-height:46px;padding:12px 8px;font-size:14px}.reset-handpan-actions .primary{background:#087f71;color:#fff}
@media(max-width:600px){
 .reset-handpan-button span{display:none}
 .reset-handpan-button,#music-floating>.reset-handpan-button,.inspire-floating-transport>.reset-handpan-button{width:36px;min-width:36px;padding:0}
 .inspire-transport{display:flex!important;flex-wrap:wrap;justify-content:center;gap:5px}
 .music-floating>[data-music-play]{flex-shrink:1;min-width:44px;overflow:hidden;text-overflow:ellipsis}
 .reset-handpan-dialog{padding:22px}.reset-handpan-dialog h2{font-size:1.3rem}
}
@media(max-width:380px) and (orientation:portrait){
 .music-floating,.inspire-floating-transport,body[data-view=dance] .workspace-edge-controls{flex-wrap:wrap;justify-content:center}
 body[data-view=play] #instrument-view:not(.controls-open) #stage-canvas,body[data-view=inspire] #instrument-view:not(.controls-open) #stage-canvas,body[data-view=dance] #instrument-view:not(.controls-open) #stage-canvas{bottom:112px}
}
/* Secondary actions stay quiet; the coloured Play button remains dominant. */
.reset-handpan-button,#music-floating>.reset-handpan-button,.inspire-floating-transport>.reset-handpan-button,
.slap-controls .slap-toggle{width:32px;min-width:32px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:#697d89;box-shadow:none}
.reset-handpan-button span{display:none}
#control-panel .fullscreen-controls>.reset-handpan-button{flex:0 0 32px}
.reset-handpan-button svg,.slap-controls .slap-toggle svg{width:17px;height:17px}
.slap-controls .slap-toggle[aria-pressed=true]{background:var(--accent-soft,#e1f5ef);color:var(--accent-ink,#087f71)}
.reset-handpan-button:hover,.slap-controls .slap-toggle:hover{background:#edf2f5}
.create-quick-actions{display:flex;justify-content:space-between;gap:8px}
.scene-file-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.scene-file-actions .button{flex:1;min-height:44px;font-size:14px}
.scene-file-actions svg{width:18px;height:18px;flex:none}
@media(max-width:380px){.scene-file-actions .button{padding-inline:10px}}
