/* 左下浮动控制台；只列表滚动，纸面与播放区域不参与布局。 */
.dock-start { display:flex; gap:8px; align-items:center; pointer-events:auto; }
.mixer-entry-host { position:relative; display:flex; align-items:center; pointer-events:auto; }
.mixer-entry-host .score-track-entry { background:var(--material-paper); color:var(--ink); border:1px solid var(--material-line); border-radius:12px; }
#v2-track-panel.mixer-console { inset:auto auto calc(64px + env(safe-area-inset-bottom,0px)) 12px; width:min(1080px,calc(100vw - 24px)); height:auto; max-height:min(440px,calc(100dvh - 150px)); padding:12px 18px; overflow:hidden; display:flex; flex-direction:column; gap:8px; color:var(--ink); background:var(--material-paper); border-color:var(--material-line); translate:0 12px; }
#v2-track-panel[hidden] { display:none; }
#v2-track-panel:not([data-window-open=true]) { display:none; }
#v2-track-panel[data-window-open=true] { translate:0 0; }
#v2-track-panel::backdrop { background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; width:0; pointer-events:none; }
#v2-track-panel>header { flex:none; display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:0; padding:0; background:var(--material-paper); }
#v2-track-panel [data-track-close] { order:2; flex:none; margin-left:auto; }
#v2-track-panel>header strong { font-size:18px; color:var(--ink); }
#v2-track-panel .track-content { min-height:60px; overflow:auto; overscroll-behavior:contain; }
#v2-track-panel :is(.track-row,.track-columns) { display:grid; grid-template-columns:minmax(130px,1fr) 60px 60px 64px minmax(150px,1.1fr) 100px 60px; gap:12px; min-width:790px; align-items:center; }
#v2-track-panel .track-columns { flex:none; margin:0; padding:4px 0; color:var(--muted); font-size:12px; }
#v2-track-panel .track-columns>span:not(:first-child) { text-align:center; }
#v2-track-panel .track-row { padding:4px 0; min-height:52px; row-gap:0; }
#v2-track-panel .track-group { min-width:790px; border-color:var(--material-line); }
#v2-track-panel .track-row>* { grid-column:auto; grid-row:auto; }
#v2-track-panel .track-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; color:var(--ink); }
#v2-track-panel .track-name small { overflow:hidden; text-overflow:ellipsis; color:var(--muted); }
#v2-track-panel .track-check { justify-content:center; min-height:44px; }
#v2-track-panel .track-check { position:relative; }
#v2-track-panel .track-check input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
#v2-track-panel .track-control-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:6px; color:var(--muted); opacity:.45; }
#v2-track-panel .track-control-icon .icon,#v2-track-panel .track-solo .icon { width:20px; height:20px; }
#v2-track-panel .track-check:has(input:checked) .track-control-icon { color:var(--material-green); opacity:1; background:var(--material-soft); }
#v2-track-panel .track-check:has(input:focus-visible) .track-control-icon { outline:2px solid var(--material-green); }
#v2-track-panel .track-check input { accent-color:var(--material-green); }
#v2-track-panel .track-volume input::-webkit-slider-runnable-track { background:var(--material-line); }
#v2-track-panel .track-volume input::-webkit-slider-thumb { background:var(--material-green); border-color:var(--material-paper); }
#v2-track-panel .track-volume input::-moz-range-track { background:var(--material-line); }
#v2-track-panel .track-volume input::-moz-range-thumb { background:var(--material-green); border-color:var(--material-paper); }
#v2-track-panel .track-mobile-label,#v2-track-panel .track-volume>span,#v2-track-panel .track-pan>span:first-child { display:none; }
#v2-track-panel .track-volume { display:flex; gap:6px; min-width:0; font-size:12px; }
#v2-track-panel .track-volume input { flex:1; min-width:0; width:100%; }
#v2-track-panel .track-volume output { width:38px; text-align:right; }
#v2-track-panel .track-solo { min-height:44px; color:var(--material-green); }
#v2-track-panel .track-solo[aria-pressed=true] { background:var(--material-soft); }
#v2-track-panel .track-pan { display:flex; align-items:center; gap:4px; width:100px; font-size:11px; }
.track-pan-rail { position:relative; display:flex; gap:4px; align-items:center; }
.track-pan-rail::before { content:''; position:absolute; top:-3px; left:50%; width:1px; height:5px; background:var(--muted); }
.track-pan-rail>span { display:none; }
.mixer-pan-knob { position:relative; width:36px; height:36px; min-height:36px; padding:0; border:2px solid var(--material-line); border-radius:50%; background:var(--material-soft); touch-action:none; user-select:none; }
.mixer-pan-knob::after { content:''; position:absolute; left:calc(50% - 1px); top:4px; width:2px; height:11px; border-radius:2px; background:var(--material-green); transform-origin:1px 12px; transform:rotate(var(--pan-angle)); }
.track-pan>button { min-height:22px; border:0; padding:0; background:transparent; color:var(--muted); font:inherit; }
#v2-track-panel .track-row>.track-settings { grid-column:1/-1; grid-row:2; position:relative; font-size:12px; }
#v2-track-panel .track-settings>summary { position:absolute; top:-44px; right:0; width:60px; min-height:44px; display:grid; place-items:center; cursor:pointer; color:var(--material-green); }
#v2-track-panel .track-settings[open] { background:var(--material-soft); border-radius:6px; }
#v2-track-panel .track-settings-content { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:8px 12px; }
#v2-track-panel .track-settings .track-voice { display:flex; flex-direction:row; align-items:center; gap:8px; }
#v2-track-panel .track-settings select { width:140px; min-height:40px; padding:4px 8px; }
#v2-track-panel .track-source-level { display:block; color:var(--muted); font-size:12px; }
#v2-track-panel .track-display-items { flex:none; width:auto; flex-wrap:wrap; padding:0; margin:0; border:0; gap:6px; background:transparent; }
#v2-track-panel .track-display-items label { flex:none; min-height:32px; padding:4px 10px; }
#v2-track-panel .track-display-items legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#v2-track-panel .track-display-items .unavailable { display:none; }
#v2-track-panel :is(.track-panel-intro,.track-prototype-note,.track-display-mode-note) { flex:none; margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
#v2-track-panel .track-panel-intro { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#v2-track-panel .track-prototype-note { display:inline; }
#v2-track-panel .track-prototype-note[data-notice=true] { color:var(--ink); }
.track-console-footer { display:flex; align-items:center; gap:12px; flex-wrap:wrap; flex:none; }
.track-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; flex:1; }
#v2-track-panel .track-toolbar .track-display-items { flex:1; gap:3px; }
#v2-track-panel .track-toolbar .track-display-items label { padding:3px 6px; min-height:30px; }
.track-toolbar>button { min-height:36px; padding:4px 8px; border:1px solid var(--material-line); border-radius:6px; background:var(--material-paper); color:var(--material-green); font:inherit; font-size:12px; }
#v2-track-panel .track-toolbar>button[aria-pressed=true] { background:var(--material-soft); color:var(--material-green); }
.track-mix-presets { display:flex; flex:none; }
.track-mix-presets button { min-height:36px; border:1px solid var(--material-line); border-radius:6px; background:var(--material-paper); color:var(--material-green); font:inherit; font-size:12px; }
#v2-track-panel :is(button,input,select):disabled { opacity:.45; }
#v2-track-panel .track-check input:disabled { opacity:0; }
#v2-track-panel .track-display-items input:disabled { opacity:0; }
#v2-track-panel .track-display-items label { border-radius:20px; gap:6px; }
#v2-track-panel .track-display-items span { display:flex; align-items:center; gap:6px; position:relative; }
#v2-track-panel .track-display-items span::before { content:''; width:28px; height:16px; border:1px solid var(--material-line); border-radius:20px; background:var(--material-soft); transition:background-color 350ms var(--material-ease); }
#v2-track-panel .track-display-items span::after { content:''; position:absolute; left:3px; top:calc(50% - 5px); width:10px; height:10px; border-radius:50%; background:var(--material-paper); transition:translate 350ms cubic-bezier(.34,1.56,.64,1); }
#v2-track-panel .track-display-items input:checked+span::before { background:var(--material-green); }
#v2-track-panel .track-display-items input:checked+span::after { translate:14px 0; }
#v2-track-panel .track-display-items input[data-animated=true]:checked+span::after { animation:appearance-jelly-on 350ms var(--material-ease); }
#v2-track-panel .track-display-items input[data-animated=true]:not(:checked)+span::after { animation:appearance-jelly-off 350ms var(--material-ease); }
:root[data-reduced-motion=true] #v2-track-panel .track-display-items span::before,:root[data-reduced-motion=true] #v2-track-panel .track-display-items span::after { transition:none!important; animation:none!important; }
@media(prefers-reduced-motion:reduce) { #v2-track-panel .track-display-items span::before,#v2-track-panel .track-display-items span::after { transition:none!important; animation:none!important; } }
#v2-track-panel .track-group[data-available=false] .score-only .track-control-icon { opacity:.3; }
#v2-track-panel .track-display-items label:not(.unavailable):has(input:disabled) { opacity:1; }
#v2-track-panel .show-sounding-tracks { align-self:flex-start; width:auto; min-height:24px; margin:0; padding:0; border:0; background:transparent; color:var(--material-green); font-size:11px; }
#v2-track-panel :is(button,input,select,summary):focus-visible { outline:2px solid var(--material-green); outline-offset:2px; }
@media(pointer:coarse) { .mixer-pan-knob { width:44px; height:44px; min-height:44px; } .mixer-pan-knob::after { transform-origin:1px 16px; } }
@media(prefers-reduced-motion:reduce) { #v2-track-panel { transition:none; translate:none; } }
