/* Navigation owns content entries; tempo stays immediately before metronome. */
.workbench-v2[data-empty-reader=true] :is(.v2-dock,.page-turner) { display:none; }
:root { --v2-navigation-height:66px; --v2-dock-inset:env(safe-area-inset-bottom,0px); }
.workbench-v2-header { display:flex; height:var(--v2-navigation-height); gap:clamp(8px,1vw,16px); padding-inline:clamp(10px,1.8vw,24px); }
.workbench-v2 { height:calc(100dvh - var(--v2-navigation-height)); }
.workbench-v2-header .brand-lockup { width:132px; height:48px; }
.v2-score-title { flex:0 1 auto; width:max-content; max-width:40vw; min-width:0; gap:6px; padding-left:12px; }
.v2-score-title .score-switch { flex:0 1 auto; min-width:0; }
.score-switch summary { display:grid; grid-template-columns:minmax(0,1fr) 14px; gap:3px 8px; padding:4px 0; }
.score-switch summary>strong { max-width:none; font-size:22px; }
.score-switch summary>.icon { grid-column:2; grid-row:1/3; }
.score-switch nav { grid-template-columns:minmax(0,1fr) 36px; max-height:calc(100dvh - var(--v2-navigation-height) - 24px); overflow-y:auto; box-sizing:border-box; }
.score-switch nav p { grid-column:1/-1; }
.score-switch nav a { min-width:0; gap:10px; box-sizing:border-box; }
.score-switch nav a:not(:has(+ [data-quick-identity])) { grid-column:1/-1; }
.score-switch nav [data-quick-identity] { width:36px; min-width:36px; min-height:36px; padding:0; border:0; background:transparent; color:var(--material-green); font-size:12px; cursor:pointer; }
.score-switch nav [data-quick-identity]:hover { background:var(--material-soft); }
.score-switch nav [data-quick-identity]:focus-visible { outline:2px solid var(--material-green); outline-offset:-2px; }

.score-switch nav a strong { flex:1 1 0; min-width:0; }
.recent-type-dot { flex:0 0 6px; width:6px; height:6px; border-radius:50%; background:var(--v2-brass); }
.recent-type-dot[data-source="GTP"] { background:var(--material-green); }
.score-credits { grid-column:1; display:flex; gap:8px; overflow:hidden; }
.score-credits small { max-width:65%; font-size:11px; }
.favorite-tools { display:flex; align-items:center; gap:0; flex:0 0 auto; }
.favorite-tools .v2-favorite { display:grid; place-items:center; flex:0 0 44px; width:44px; min-height:44px; }
.v2-score-facts { flex:0 0 auto; width:auto; margin:0; border:0; justify-content:initial; }
.v2-track-controls { position:relative; }
.workbench-v2-header .score-track-entry { width:128px; min-height:44px; }
.workbench-v2-header .score-track-entry .icon:first-child { width:18px; height:18px; }
.workbench-v2-header .hidden-track-hint { top:-4px; right:-4px; }
.v2-header-actions .new-score-entry { display:flex; justify-content:center; align-items:center; gap:6px; min-height:44px; border-radius:10px; color:var(--material-green); border:1px solid var(--material-line); background:var(--material-paper); box-shadow:inset 0 1px #fff,0 2px 4px #173c300d; }
.favorites-entry { display:grid; place-items:center; flex:0 0 24px; width:24px; min-height:44px; padding:0; border:0; color:var(--material-green); }
.favorites-entry .icon { width:14px; height:14px; }
.v2-header-actions { display:flex; flex:0 0 auto; gap:8px; margin-left:auto; }
.v2-header-actions :is(.library-entry,.import-entry,.new-score-entry) { flex-shrink:0; padding:8px; font-size:13px; white-space:nowrap; justify-content:center; }
:root .workbench-v2-header nav.v2-header-actions .library-entry { width:112px; height:40px; min-height:40px; background:var(--material-green); color:var(--material-paper); }
:root .workbench-v2-header nav.v2-header-actions .library-entry:hover:not(:disabled) { background:var(--material-hover); color:var(--material-paper); }
:root .workbench-v2-header .v2-header-actions .import-entry { width:84px; height:40px; min-height:40px; background:var(--material-paper); }
.creation-menu { position:relative; flex:0 0 84px; }
.creation-menu>summary { display:flex; justify-content:center; align-items:center; gap:6px; height:40px; box-sizing:border-box; padding:8px; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); color:var(--material-green); cursor:pointer; list-style:none; font-size:13px; }
.creation-menu>summary::-webkit-details-marker { display:none; }
.creation-menu>nav { position:absolute; right:0; top:calc(100% + 10px); z-index:80; width:min(320px,calc(100vw - 20px)); max-height:calc(100dvh - var(--v2-navigation-height) - 20px); overflow:auto; padding:8px; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); box-shadow:0 12px 32px #173c3020; }
.creation-menu nav :is(a,button) { display:flex; align-items:center; gap:12px; width:100%; min-height:40px; padding:8px; color:var(--ink); text-decoration:none; text-align:left; border:0; border-radius:6px; background:transparent; font-size:13px; }
.creation-menu nav :is(a,button):hover { background:var(--material-soft); }
.creation-menu nav strong { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.creation-menu nav :is(time,p) { color:var(--muted); font-size:12px; }
.creation-menu nav p { margin:6px 8px; }
.creation-menu nav .creation-heading { padding-top:8px; border-top:1px solid var(--material-line); }
.v2-header-actions .creation-menu .new-score-entry { width:100%; box-shadow:none; justify-content:flex-start; color:var(--material-green); }
.v2-header-actions .new-score-entry .icon { width:18px; height:18px; }
.workbench-v2-header>.account-entry { position:relative; flex:0 0 44px; margin-left:4px; }
.account-entry .account-menu>nav { position:absolute; right:0; top:calc(100% + 10px); display:grid; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); box-shadow:0 12px 32px #173c3020; }
.dock-player .bpm-control { flex:0 0 auto; padding:0 6px 0 0; margin-right:4px; border-left:0; border-right:1px solid var(--material-line); }
.dock-player .tempo-trigger { min-height:42px; padding:6px 8px; gap:3px; }
.dock-player .tempo-trigger strong { font-size:15px; }
.dock-player .tempo-drag-hint { display:none; }
.v2-dock { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:clamp(4px,1vw,18px); overflow:visible; bottom:0; height:54px; align-items:stretch; }
.v2-dock>:is(.dock-organize,.section-nav,.dock-player) { height:100%; padding-bottom:0; }
.v2-score-stage { padding-bottom:calc(74px + var(--v2-dock-inset)); }
.v2-batch-note { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.workbench-v2[data-playback-state=error] .v2-batch-note { width:auto; height:auto; margin:0; overflow:visible; clip-path:none; white-space:normal; }
.section-nav { max-width:none; overflow:hidden; padding:0; }
.section-nav button { max-width:100%; overflow:hidden; text-overflow:ellipsis; padding-inline:clamp(0px,1vw,12px); }
.dock-player { min-width:0; justify-content:flex-end; }
.dock-player>* { flex-shrink:0; }
.dock-player .metronome-tone { margin-left:0; }
.favorites-entry:hover:not(:disabled) { background:var(--material-soft); filter:none; }
@media(max-width:1100px) {
  .dock-player { gap:2px; padding-inline:4px; }
  .dock-player :is(.dock-utility,.fullscreen-button)>span { display:none!important; }
  .dock-player .dock-utility { min-width:36px; width:36px; padding:7px; gap:0; }
  .dock-player .fullscreen-button { width:36px; padding:7px!important; gap:0; }
  .workbench-v2-header .brand-lockup { width:68px; height:44px; }

  .workbench-v2-header .score-track-entry { width:44px; flex-basis:44px; padding:0; }
  .workbench-v2-header .score-track-entry .track-entry-label,.workbench-v2-header .score-track-entry .icon:last-child { display:none; }
  .score-switch summary>strong { font-size:20px; }
}
@media(max-width:680px) {
  :root { --v2-navigation-height:104px; }
  .workbench-v2-header { display:grid; grid-template-columns:56px minmax(0,1fr) auto 44px; grid-template-rows:52px 52px; gap:0 6px; padding-inline:10px; }
  .workbench-v2-header .brand-lockup { width:56px; }

  .workbench-v2-header>.brand { grid-column:1; grid-row:1; }
  .workbench-v2-header>.v2-score-title { grid-column:2; grid-row:1; width:auto; max-width:none; border:0; padding:0; }
  .workbench-v2-header>.favorite-tools { grid-column:3; grid-row:1; }
  .workbench-v2-header>.account-entry { grid-column:4; grid-row:1; margin:0; }
  .workbench-v2-header .avatar { width:44px; height:44px; font-size:23px; }
  .workbench-v2-header>.v2-header-actions { grid-column:2/5; grid-row:2; width:100%; min-width:0; margin:0; }
  .workbench-v2-header>.v2-score-facts { grid-column:1; grid-row:2; }
  :root .workbench-v2-header nav.v2-header-actions :is(.library-entry,.import-entry) { width:auto; min-width:0; flex:1; }
  :root .workbench-v2-header nav.v2-header-actions .library-entry { flex-grow:1.25; }
  .v2-header-actions .creation-menu { flex:.85; min-width:0; }
  .v2-header-actions .import-entry span { display:inline; }
  .score-switch summary>strong { font-size:18px; }
  .score-credits small:first-child { max-width:100%; font-size:10px; }
  .score-credits small:last-child { display:none; }
  .v2-song-info summary { padding-inline:2px; font-size:11px; }
  .dock-player .score-track-entry { width:44px; padding:0; }
  .dock-player .score-track-entry :is(.track-entry-label,.icon:last-child) { display:none; }
}
@media(max-width:900px) {
  .dock-organize button { width:44px; min-height:44px; padding:0; }
  .dock-organize button span { display:none; }
}
@media(max-width:760px) {
  .v2-dock { grid-template-columns:auto minmax(0,1fr); left:10px; right:10px; gap:8px; }
  .v2-dock>.section-nav { display:none; }
  .dock-player { justify-self:end; max-width:100%; }
}
@media(max-width:480px) {
  .v2-dock { left:6px; right:6px; gap:4px; }
  .dock-organize button { width:32px; }
  .dock-player { gap:1px; padding-inline:3px; overflow-x:auto; scrollbar-width:none; }
  .dock-player :is(.dock-utility,.fullscreen-button) { width:28px; min-width:28px; padding:4px!important; }
  .dock-player :is(.dock-utility,.fullscreen-button) .icon { width:18px; height:18px; }
  .dock-player .transport-button { width:36px; height:36px; min-height:36px; }
  .dock-player .metronome-tone { width:28px; padding:4px 1px; }
  .dock-player .bpm-control { padding-right:3px; margin-right:0; }
  .dock-player .tempo-trigger { width:36px; min-height:40px; padding:4px 0; flex-direction:column; gap:0; }
  .dock-player .tempo-trigger strong { font-size:14px; }
  .dock-player .tempo-trigger span { font-size:9px; line-height:12px; }
}

/* Match existing navigation feedback without changing control dimensions. */
@media (hover:hover) {
  .creation-menu>summary:hover { background:var(--material-soft); border-color:var(--material-line); box-shadow:inset 0 1px #ffffff40,0 3px 7px #173c3015; }
  .v2-favorite:hover:not(:disabled) { background:var(--material-soft); filter:none; }
  .account-entry :is(summary.avatar,a.avatar):hover { box-shadow:0 0 0 3px var(--material-soft); filter:brightness(1.08); }
  .account-entry .account-menu>nav :is(a,button):hover:not(:disabled) { background:var(--material-soft); border-radius:8px; filter:none; }
}
:is(.creation-menu>summary,.v2-favorite,.account-entry summary.avatar,.account-entry .account-menu>nav a,.account-entry .account-menu>nav button):focus-visible { outline:2px solid var(--material-green); outline-offset:2px; }

/* Approved 点点 lockup: compact paper symbol fills the available header height. */
.workbench-v2-header .brand-lockup{width:168px;height:48px}
.brand-lockup .brand-night{display:none}
:root[data-night=true] .brand-lockup .brand-day{display:none}
:root[data-night=true] .brand-lockup .brand-night{display:block}
:root[data-night=true] .brand-lockup img{filter:none}
@media(max-width:1100px){.workbench-v2-header .brand-lockup{width:50px;height:44px}}
@media(max-width:600px){.workbench-v2-header .brand-lockup{width:44px;height:40px}}
