.v2-header-actions .library-entry { display:flex; align-items:center; gap:6px; min-height:44px; padding:0; border:0; background:transparent; color:#164c40; font-size:13px; white-space:nowrap; }
.library-layer { position:fixed; z-index:19; inset:0; }
.library-scrim { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; border-radius:0; background:transparent; }
.library-scrim:hover { filter:none; background:transparent; }
.library-scrim::after { content:""; position:absolute; top:calc(var(--v2-navigation-height) + 10px); right:calc(min(560px,100vw - 24px) + 12px); bottom:84px; width:12px; pointer-events:none; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); -webkit-mask-image:linear-gradient(to left,#000,transparent); mask-image:linear-gradient(to left,#000,transparent); }
.library-panel { position:absolute; top:calc(var(--v2-navigation-height) + 10px); right:12px; bottom:84px; width:min(560px,calc(100vw - 24px)); display:flex; flex-direction:column; padding:18px 24px 0; border:1px solid var(--material-line); border-radius:12px; background:var(--material-paper); box-shadow:-2px 0 5px #263b300a,-10px 0 28px #263b3012; animation:library-enter 260ms cubic-bezier(.2,.75,.25,1); color:#263f36; }
:is(.workbench-v2:fullscreen,.v2-fullscreen) :is(.library-panel,.library-scrim::after) { top:12px; }
.library-panel header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.library-panel h2 { margin:0; font:700 25px/1.3 "Songti SC","STSong",serif; }
.panel-library-heading { flex:1; min-width:0; }
.panel-library-title { display:flex; align-items:center; gap:16px; }
.panel-library-title h2 { flex-shrink:0; }
.panel-library-title nav { min-width:0; }
.panel-collection-shortcuts { display:flex; gap:10px; flex-wrap:wrap; }
#workbench-library [data-panel-collections] button { min-height:36px; padding:4px 0; border:0; background:transparent; color:var(--ink); font-size:14px; white-space:nowrap; }
#workbench-library [data-panel-collections] button[aria-pressed=true] { color:var(--material-green); text-decoration:underline; text-underline-offset:5px; }
.panel-collection-overflow { display:none; position:relative; }
.panel-collection-overflow summary { cursor:pointer; min-height:36px; padding:8px 0; font-size:14px; line-height:20px; }
.panel-collection-overflow>div { position:absolute; top:100%; right:0; z-index:2; display:grid; min-width:130px; padding:8px 14px; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); box-shadow:0 8px 24px #173c3020; }
.library-panel header button { border:0; padding:8px; min-height:40px; background:transparent; }
.panel-tabs { display:flex; justify-content:space-between; border-bottom:1px solid #e1e5de; gap:6px; }
.panel-tabs button { padding:10px 2px; min-height:44px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:#52665e; font-size:14px; white-space:nowrap; }
.panel-tabs button[aria-selected=true] { color:#006052; border-bottom-color:#006052; font-weight:650; }
.panel-search { display:flex; flex-direction:row; align-items:center; gap:10px; margin:6px 0 8px; padding:0 12px; border:1px solid #cdd8d1; border-radius:8px; background:#fafbf7; }
.panel-search input { min-width:0; width:100%; min-height:42px; padding:8px 0; margin:0; border:0; background:transparent; font-size:14px; }
.panel-filter { display:flex; align-items:center; justify-content:flex-end; gap:12px; padding-bottom:4px; }
#workbench-library .panel-playable-only { margin:0; min-height:36px; gap:6px; justify-content:flex-start; font-size:12px; }
#workbench-library .panel-playable-only input { flex:0 0 38px; width:38px; height:22px; margin:0; }
#workbench-library .panel-playable-only input::after { width:16px; height:16px; margin:2px; }
#workbench-library .panel-playable-only input:checked::after { translate:16px 0; }
.panel-filter>div { display:flex; gap:6px; }
.panel-filter button { min-height:32px; padding:5px 12px; border:0; border-radius:7px; background:#f0f1ed; color:#62736b; font-size:12px; }
.panel-filter button[aria-pressed=true] { background:#deebe4; color:#006052; }
.panel-count { color:#748179; white-space:nowrap; }
.panel-song-list { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding-bottom:16px; scrollbar-color:#c7d2ca transparent; }
.panel-song-list[aria-busy=true] { visibility:hidden; pointer-events:none; }
.panel-song { border-top:1px solid #eaede7; }
.panel-song-line { display:flex; align-items:center; min-height:67px; }
.panel-song-select { display:flex; flex:1; align-items:center; gap:12px; min-width:0; min-height:60px; padding:8px 0; border:0; background:transparent; text-align:left; }
.panel-song-select>span:not(.format) { min-width:0; flex:1; }
.panel-song-select strong { display:block; color:#243e35; font-size:16px; }
.panel-song-select small { display:block; margin-top:4px; color:#6d7c73; font-size:12px; }
.panel-song-select em { padding:4px 6px; border-radius:5px; background:#e6f0ea; color:#397666; font-size:10px; font-style:normal; white-space:nowrap; }
.panel-star,.panel-expand,.panel-detail-entry { flex:0 0 36px; min-height:44px; padding:8px; border:0; background:transparent; color:#68796e; }
.panel-star[aria-pressed=true] { color:#b77a18; }
.panel-song-line:hover { background:#f2f6f0; }
.panel-versions { margin:0 0 12px 40px; padding:6px 8px; background:#f4f5f0; border-radius:6px; }
.panel-version { display:flex; align-items:center; gap:7px; min-height:46px; }
.panel-version-open { display:flex; flex:1; align-items:center; gap:8px; min-width:0; min-height:44px; padding:7px 4px; border:0; background:transparent; text-align:left; font-size:12px; color:#314f42; }
.panel-version-open>span:not(.format):not(.icon) { flex:1; }
.panel-version-open:hover { background:#e8efe7; }
.panel-details { margin:0 0 12px 40px; padding:12px; border-radius:6px; background:#f4f5f0; font-size:13px; }
.panel-details p { margin:6px 0; color:#6d7c73; }
.panel-details small { color:#6d7c73; }
.panel-empty { padding:40px 12px; text-align:center; font-size:14px; color:#708177; }
.dock-player .mute-toggle { min-width:44px; }
.dock-player .mute-toggle span { display:inline!important; }
.dock-player .dock-utility .icon,.dock-player .fullscreen-button .icon { display:inline-block; }
@keyframes library-enter { from { opacity:0; translate:24px 0; } to { opacity:1; translate:0 0; } }
@media (max-width:1100px) { .v2-header-actions .library-entry { font-size:12px; } }
@media (max-width:900px), (pointer:coarse) {
  .library-panel { padding:16px 22px 0; }
  .panel-song-line { min-height:74px; }
  .panel-filter button { min-height:40px; }
  .panel-version { min-height:52px; }
  .library-panel .panel-star,.library-panel .panel-expand,.library-panel .panel-detail-entry { flex-basis:44px; }
}
@media (max-width:720px) {
  .panel-collection-shortcuts { display:none; }
  .panel-collection-overflow { display:block; }
  .v2-header-actions .library-entry { gap:3px; }
  .library-panel { padding:14px 14px 0; }
  .panel-tabs button { font-size:12px; }
  .panel-versions { margin-left:22px; }
  .dock-player .mute-toggle { display:flex; }
}
@media (prefers-reduced-motion:reduce) { .library-panel { animation:none; } }
.format { display:inline-flex; align-items:center; color:var(--green); flex-shrink:0; }
.format .icon { width:31px; height:36px; }
.format.gtp { color:var(--violet); }.format.pdf { color:#ab3334; }.format.native { color:#86734e; }
.panel-pagination { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 0 12px; border-top:1px solid #eaede7; }
.panel-pagination button { min-height:40px; padding:6px 12px; font-size:12px; }
.panel-pagination { flex-wrap:wrap; }
.panel-pagination form { display:flex; align-items:center; gap:6px; margin:0; }
.panel-pagination label { white-space:nowrap; font-size:12px; }
.panel-pagination input { width:58px; min-height:40px; border:1px solid #dce3da; border-radius:6px; text-align:center; font:inherit; }
.panel-pagination output,.panel-message { color:#748179; font-size:12px; }
.panel-message:empty { display:none; }
.panel-tabs { overflow-x:auto; flex-shrink:0; }
.panel-curated-filter { display:flex; justify-content:space-between; gap:8px; padding-bottom:8px; }
.panel-curated-filter [data-panel-collection-heading] { display:flex; align-items:center; gap:12px; }
.panel-curated-filter strong { font-size:14px; color:var(--ink); }
.panel-curated-filter button { min-height:40px; padding:8px 12px; font-size:12px; color:var(--ink); background:var(--material-paper); border-color:var(--material-line); }
.panel-curated-filter button:hover,.panel-collection-tag { background:var(--material-soft); }
.v2-song-info { position:relative; flex-shrink:0; font-size:12px; }
.v2-song-info summary { cursor:pointer; padding:10px 6px; }
.v2-song-info>div { position:absolute; z-index:20; top:100%; right:0; width:240px; padding:16px; border:1px solid #e1e5de; border-radius:10px; background:#fffefa; box-shadow:0 12px 36px #173c301c; }
.collect-layer { width:min(480px,calc(100% - 32px)); max-height:80vh; padding:22px; border:1px solid #e1e5de; border-radius:14px; background:#fffefa; color:#263f36; }
.collect-layer::backdrop { background:#253a3040; }
.collect-layer header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.collect-layer h2 { margin:0; font-size:22px; }
.collect-layer p { font-size:13px; }
.collect-layer[data-collection-members] { overflow:auto; }
.collect-layer[data-collection-members] article { padding-block:10px; border-bottom:1px solid var(--material-line); overflow-wrap:anywhere; }
.collect-layer button,.panel-details [data-public-collect],.current-collect button { min-height:44px; padding:8px 12px; }
.collect-choices { display:flex; flex-wrap:wrap; gap:8px; }
.collect-choices button[aria-pressed=true] { background:#deebe4; color:#006052; }
.collect-create { display:flex; align-items:flex-end; gap:8px; margin-top:16px; }
.collect-create label { flex:1; min-width:0; font-size:13px; }
.collect-create input { display:block; width:100%; min-height:44px; margin-top:6px; }

.quick-identity-dialog{border:1px solid var(--material-line);border-radius:12px;background:var(--material-paper);color:var(--ink);padding:20px;width:min(400px,calc(100vw - 32px));box-sizing:border-box}
.quick-identity-dialog form{display:grid;gap:12px}.quick-identity-dialog h2,.quick-identity-dialog p{margin:0}.quick-identity-dialog label{display:grid;gap:4px}.quick-identity-dialog input{min-height:36px;padding:6px;border:1px solid var(--material-line);border-radius:6px}.quick-identity-dialog footer{display:flex;justify-content:flex-end;gap:8px}.quick-identity-dialog button,.score-switch nav [data-quick-identity]{padding:7px 10px;border:1px solid var(--material-line);border-radius:6px;background:var(--material-paper);color:var(--material-green)}
