#ensemble-display{display:flex;flex-direction:column;flex:1;min-height:520px;min-width:0;background:var(--paper);color:var(--ink);color-scheme:light}
.ensemble-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ensemble-families,.ensemble-views{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ensemble-toolbar button,.ensemble-toolbar summary{border:0;background:none;color:var(--muted);font-size:12px;padding:10px 9px;min-height:38px}
.ensemble-families button{border-bottom:2px solid transparent}
.ensemble-families button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
.ensemble-views .options-panel{gap:3px;width:200px}
.ensemble-views .options-panel button{text-align:left;color:var(--ink)}
.ensemble-scene{position:relative;flex:1;min-height:230px;overflow:hidden;background:var(--paper)}
.ensemble-scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.ensemble-caption,.ensemble-hint{position:absolute;left:12px;right:12px;font-size:11px;color:var(--muted);pointer-events:none}
.ensemble-caption{top:10px}.ensemble-hint{bottom:8px}
.ensemble-message{font-size:12px;color:var(--muted)}.ensemble-message:not(:empty){padding:12px}
.ensemble-retry{align-self:start;margin:8px 12px}
.ensemble-scene .stage-label{position:absolute;transform:translate(-50%,-50%);font:11px/1.3 'Segoe UI',sans-serif;max-width:140px;border:1px solid transparent;border-radius:3px;padding:4px 7px;background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #2c252210;white-space:nowrap}
.ensemble-scene .stage-label.selected{border-color:var(--accent);color:var(--accent)}
.ensemble-scene .stage-label.sounding{background:var(--peach)}.ensemble-scene .stage-label.quiet{opacity:.55}
.ensemble-inspector{border-top:1px solid var(--line);background:var(--surface);padding:12px 16px 8px}
.ensemble-part-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ensemble-part-controls>.field{flex-direction:row;align-items:center;gap:10px}
.ensemble-part-controls select{width:200px;height:36px;font-size:13px;padding:5px 8px}
.ensemble-mix{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ensemble-mix .button{min-height:34px;padding:6px 11px;font-size:12px}
.ensemble-mix [data-listen]{color:var(--accent);border-color:var(--accent)}
.ensemble-mix label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.ensemble-mix input{width:72px}.ensemble-mix .text-button{font-size:11px;margin-left:8px}
.ensemble-score{height:240px;padding-top:4px}
#ensemble-display .score-ribbon{border-radius:0}
#ensemble-display .ribbon-tools,#ensemble-display .ribbon-legend,#ensemble-display .ribbon-reading-status{display:none}
#ensemble-display .ribbon-viewport{min-height:110px}
#ensemble-display .ribbon-bottom{padding:3px 0;min-height:20px}
.ensemble-part-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--muted)}
.ensemble-part-footer button{color:var(--accent);font-size:11px}
.ensemble-credit{font-size:10px;color:var(--muted);padding-top:5px}
.ensemble-scene[data-context-lost=true]::after{content:'The stage display was interrupted. Use Retry ensemble to restore the view.';position:absolute;inset:0;display:grid;place-items:center;background:var(--paper);padding:24px;color:var(--muted)}
.recording-row{grid-template-columns:minmax(0,1fr) 60px auto}
.recording-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
#ensemble-settings{display:grid;gap:14px}
.expanded #ensemble-display .ensemble-toolbar{padding-inline:16px}
.music-route.showing-ensemble{height:auto;min-height:100dvh;grid-template-rows:auto auto minmax(520px,1fr) auto auto}
.music-route.showing-ensemble.expanded{grid-template-rows:minmax(520px,1fr) auto auto}
@media(min-width:1100px) and (min-height:900px){.music-route.showing-ensemble{height:100dvh}}
@media(max-width:700px){
 .ensemble-toolbar{gap:0}.ensemble-families{width:100%;gap:0;justify-content:space-between}.ensemble-families button{font-size:11px;padding-inline:5px}
 .ensemble-views{margin-left:auto;gap:2px}.ensemble-views button,.ensemble-views summary{font-size:11px}
 .ensemble-scene{height:300px;flex:auto;min-height:300px}.ensemble-hint{display:none}
 .ensemble-inspector{padding:12px}.ensemble-part-controls>.field{width:100%;justify-content:space-between}.ensemble-mix{width:100%;gap:6px;justify-content:space-between}.ensemble-mix input{width:48px}
 .ensemble-mix .text-button{margin-left:0}.ensemble-mix .button{padding-inline:8px}
 .recording-row{grid-template-columns:minmax(0,1fr) auto}.recording-row>div:first-child{grid-column:1/-1;grid-row:1}.recording-row time{grid-column:1;grid-row:2}.recording-row>.recording-actions{grid-column:2;grid-row:2;justify-content:flex-end}
 .music-route.waveform-transport .display-tabs button{padding-inline:9px;font-size:11px}
}
@media(max-width:360px){.music-route.showing-ensemble .player-main{grid-template-columns:minmax(0,1fr) auto}.music-route.showing-ensemble .now-playing{grid-column:1/-1!important;grid-row:1!important}.music-route.showing-ensemble .display-tabs{grid-column:1/-1!important;grid-row:2!important;justify-self:start!important}.music-route.showing-ensemble .transport-buttons,.music-route.showing-ensemble .player-actions{grid-row:3!important}.recording-row>.recording-actions{grid-column:1/-1;grid-row:3;justify-content:flex-start}}
@media(pointer:coarse){.ensemble-toolbar button,.ensemble-toolbar summary,.ensemble-mix button{min-height:44px}.ensemble-part-controls select{font-size:16px;min-height:44px}.ensemble-part-footer button{min-height:44px}}
