/* 分栏和右侧浮窗共用：位置固定，主体优先，附加设置不挤压候选。 */
.editor-v2 .library-side{position:relative;container-type:size;font-size:13px}
.library-side [hidden]{display:none!important}
.library-side .context-bar{position:sticky;top:0;z-index:12;flex:none;min-height:40px;padding:4px 14px;background:var(--v2-paper);border-bottom:1px solid #dfe5da}
.library-side .context-bar strong{font-size:13px;line-height:1.5}
.library-side .context-bar small{font-size:11px;color:#70816c}
.library-side .context-bar>button{min-width:32px;min-height:32px;padding:0;font-size:20px}
.library-side .library-page{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.library-side .library-page>.candidates{flex:1;min-height:0;overflow:auto;padding:8px 12px;scrollbar-gutter:stable}
.library-side .library-page>.context-bar,.library-side .library-tabs,.library-side .finder,.library-side .rhythm-controls,.library-side .progression-search,.library-side .apply-area{flex:none}
.library-side .library-tabs{min-height:32px;padding:0 12px}
.library-side .library-tabs>button{min-height:32px;font-size:13px;padding:4px 10px}
.library-side #context-kind{display:none}
.library-side .finder{padding:2px 12px!important}
.library-side .results-head{font-size:11px;line-height:18px;min-height:20px;padding:0;margin:0}
.library-side .results-head button{font-size:11px;min-height:20px;padding:0 4px}
.library-side .filter-cards{margin:0!important;gap:2px}
.library-side .filter-cards button{min-height:28px!important;padding:3px 6px!important}
.library-side .filter-cards strong{font-size:12px}
.library-side .filter-cards small,.library-side .quick-searches{display:none}
.library-side #pattern-filters[open]{position:absolute;z-index:15;right:12px;top:108px;width:calc(100% - 24px);max-height:50%;overflow:auto;padding:12px!important;background:#fffefa;border:1px solid #cad7c5;border-radius:8px;box-shadow:0 8px 24px #173c3020}
.library-side #pattern-filters summary{min-height:28px;line-height:28px}
.library-side .filter-row{margin:4px 0;gap:6px}
.library-side .filter-row select{min-height:30px}
.library-side .rhythm-controls{padding:4px 12px!important}
.library-side .rhythm-route button{min-height:28px;padding:3px 8px;font-size:12px}
.library-side .rhythm-reference{grid-template-columns:1fr;margin:4px 0;gap:0;position:relative}
.library-side .reference-label{position:absolute;right:0;top:0;font-size:10px;z-index:1;background:#fffefa}
.library-side .reference-stage{justify-self:center;padding-bottom:26px}
.library-side .reference-svg svg{max-height:58px}
.library-side .reference-beats button>span{font-size:11px;padding:3px 2px}
.library-side .rhythm-mode-buttons{flex-wrap:nowrap;gap:3px;margin:4px 0 0}
.library-side .rhythm-mode-buttons button{flex:1;padding:4px 2px;font-size:12px;min-height:28px}
.library-side .apply-area{position:relative;padding:8px 12px!important;background:#fafbf7;border-top:1px solid #dce4d7}
.library-side .apply-target{display:flex!important;align-items:baseline;gap:8px;font-size:12px}
.library-side .apply-target strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-side .apply-target span{font-size:11px!important;max-width:none;line-height:1.4}
.library-side #apply-options{font-size:11px;margin:2px 0}
.library-side #apply-options[open]{position:absolute;z-index:16;bottom:66px;left:12px;right:12px;padding:12px;max-height:220px;overflow:auto;background:#fffefa;border:1px solid #cad7c5;border-radius:8px;box-shadow:0 -6px 24px #173c3020}
.library-side .apply-actions{display:flex;gap:6px;margin-top:6px!important}
.library-side .apply-actions button{min-height:44px!important;font-size:12px!important;padding:6px 8px!important}
.library-side #apply{flex:1}
.library-side #adjust-selected{font-size:11px!important;max-width:94px}
.library-side #eligibility{font-size:11px;line-height:1.5;margin:4px 0}
.library-side .progression-mode{margin-bottom:6px}
.library-side .progression-mode button{min-height:32px;font-size:12px}
.library-side .progression-search{padding:6px 12px}
.library-side .progression-search>label{font-size:12px;margin-bottom:4px}
.library-side .progression-search small{font-size:11px}
.library-side .finder-search{margin:2px 0 4px}
.library-side .finder-search input{min-height:34px;font-size:13px}
.library-side .empty-results{font-size:13px;line-height:1.8;padding:16px;grid-column:1/-1}
.library-side .context-body{padding:14px}
.library-side .context-body h2{font:600 17px/1.5 system-ui;margin:4px 0 14px}
.library-side .context-kicker{display:none}
.library-side .context-body p{font-size:12px;line-height:1.7;margin:10px 0}
.library-side .context-body label{margin:12px 0;align-items:center;font-size:13px}
.library-side .context-body input,.library-side .context-body select{width:62%;max-width:62%;min-height:36px}
.library-side .context-actions{gap:8px;margin:12px 0}
.library-side .context-actions button{padding:12px;gap:4px}
.library-side .context-actions strong{font-size:14px}
.library-side .idle-page{padding:20px 16px}
.library-side .idle-page h2{font:600 18px/1.5 system-ui;margin:8px 0}
.library-side .idle-page small{margin-top:12px}
.library-side.chord-split{overflow:auto}
.library-side.chord-split #context-page,.library-side.chord-split #library-page{height:auto;overflow:visible;display:block}
.library-side.chord-split #context-page{display:contents}
.library-side.chord-split #context-page>.context-bar{position:sticky;top:0}
.library-side.chord-split #library-page>.context-bar{position:static;min-height:36px}
.library-side.chord-split .candidates{min-height:0;overflow:visible}
.library-side.chord-split .apply-area{position:sticky;bottom:0;z-index:13}
.library-side .chord-family-grid button{min-height:28px;font-size:14px}
.library-side .chord-status{margin-bottom:6px}
.library-side .chord-status strong{font-size:16px}
.library-side .chord-candidate{padding-block:6px;min-height:58px}
.library-side .object-editor-tabs{padding:4px 12px;gap:4px}
.library-side .object-editor-tabs button{min-height:32px;font-size:13px;padding:4px 8px}
.library-side .note-editor-body{padding:8px 12px;gap:4px}
.library-side .note-graphic,.library-side .note-graphic>svg{height:180px}
.library-side .note-graphic{margin-bottom:0}
.library-side .graphic-note{top:94px}
.library-side .graphic-grace{top:65px}
.library-side .graphic-link{top:59px}
.library-side .graphic-grace-link{top:66px}
.library-side .vibrato,.library-side .bend{top:36px}
.library-side .accent{top:136px;min-height:20px;height:20px}
.library-side .simultaneous-notes{padding-top:4px}
.library-side .simultaneous-notes summary{font-size:11px;min-height:20px}
.library-side .same-beat-staff>div{height:42px;gap:0}
.library-side .same-beat-staff button{min-height:26px;height:26px}
.library-side .same-beat-staff small:last-child{display:none}
.library-side .note-editor-tip{margin:0;font-size:11px;line-height:1.4}
.library-side .object-editor-footer{padding:8px 12px;gap:6px}
.library-side .object-editor-footer button{min-height:44px;font-size:13px}
.library-side .note-palette{padding:6px 0 0!important}
.library-side .note-palette-title{font-size:12px;margin-bottom:4px}
.library-side .fret-grid{gap:4px}
.library-side .fret-grid button{min-height:28px;font-size:16px;padding:2px}
.library-side .connection-choices button{min-height:34px;font-size:12px}
.library-side .event-rhythm-editor{padding:10px 12px;height:auto}
.library-side .event-rhythm-options{gap:4px;margin:8px 0}
.library-side .event-rhythm-options button{min-height:34px;font-size:12px;padding:4px 7px}
.library-side .event-rhythm-options strong{font-size:12px}
.library-side .event-rhythm-tip{font-size:11px;line-height:1.6}
@media(pointer:coarse){.library-side .fret-grid button,.library-side .connection-choices button,.library-side .event-rhythm-options button{min-height:40px}.library-side .rhythm-mode-buttons button,.library-side .filter-cards button{min-height:36px!important}}

.library-side .library-page>.context-bar{order:0}.library-side .library-tabs{order:1}.library-side .rhythm-controls{order:2}.library-side .finder{order:3}.library-side .progression-search{order:4}.library-side .candidates{order:5}.library-side .apply-area{order:6}
.library-page:is([data-rhythm-view=beat],[data-rhythm-view=neighbor]) .rhythm-route{position:absolute;right:48px;top:7px;z-index:13}.library-page:is([data-rhythm-view=beat],[data-rhythm-view=neighbor]) .rhythm-route strong{display:none}
.library-side .note-editor-body>.note-editor-tip{display:none}.library-side .note-graphic .harmonic{top:94px}.library-side .graphic-foot{bottom:4px}
.library-side .filter-cards{display:flex;flex-wrap:wrap}.library-side .empty-results button{display:block;margin-top:10px;font-size:12px;min-height:32px}
@media(min-width:901px) and (pointer:fine){.editor-v2 .library-side.editing-popover{position:relative}}
@container(max-height:380px){.library-side .note-graphic,.library-side .note-graphic>svg{height:148px}.library-side .graphic-note,.library-side .note-graphic .harmonic{top:78px}.library-side .graphic-grace{top:53px}.library-side .graphic-link{top:48px}.library-side .vibrato,.library-side .bend{top:27px}.library-side .accent{top:106px}}


/* 每一级一行：基础和弦突出，扩展和弦用同一尺寸的点选块。 */
.library-side .chord-family-grid{display:flex;flex-direction:column;gap:0}
.library-side .chord-family-column{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid #e8ece3}
.library-side .chord-family-column:last-child{border-bottom:0}
.library-side .chord-family-column>small{font-size:11px;color:#73826d;margin:0;text-align:left}
.library-side .chord-family-choices{display:flex;flex-wrap:wrap;gap:5px}
.library-side .chord-family-choices button,.library-side .chord-shortcuts button,.library-side .root-chord-choices button{min-height:30px!important;padding:4px 8px;font:500 14px/1.3 Georgia,serif;color:#546b57;border:1px solid #dce3d6;background:#fffefa;border-radius:5px}
.library-side .chord-family-choices button:first-of-type{min-width:52px;min-height:30px!important;font-size:15px;font-weight:700;color:#28554c;background:#eef3e9;border-color:#cbd9c4;margin:0}
.library-side .chord-family-choices button:hover{border-color:#789574;background:#eff4e9}
.library-side .chord-family-choices button[aria-pressed=true]{background:#dfead7!important;border-color:#6d8d68;outline:1px solid #6d8d68}
.library-side .chord-shortcuts{align-items:flex-start;gap:6px;margin-top:10px}
.library-side .chord-shortcuts>span{line-height:30px;font-size:11px}
@media(pointer:coarse){.library-side .chord-family-choices button,.library-side .chord-shortcuts button,.library-side .root-chord-choices button{min-height:40px!important}}

.chord-keyboard-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;color:var(--muted,#65716c);font-size:11px}.chord-keyboard-tools button{flex-shrink:0;padding:5px 9px;font-size:12px}.beat-slot:focus-visible,.fractional-chord:focus-visible{outline:2px solid var(--accent,#35775e);outline-offset:2px}

.library-side[data-context-kind=beat] #context-page>.context-bar{min-height:48px;height:48px;padding:0 16px;border-bottom:1px solid #e3e7df}.library-side[data-context-kind=beat] .chord-status{min-height:32px}.chord-status strong{white-space:nowrap}.library-side{scrollbar-gutter:stable}.context-bar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 两种编辑容器和所有对象共用一行，避免挤占标题及返回按钮。 */
.library-side .context-bar{height:48px;min-height:48px;padding:4px 14px;box-sizing:border-box}
.library-side .score-tab-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;order:0;position:sticky;top:48px;z-index:13;height:42px;min-height:42px;padding:5px 14px;box-sizing:border-box;background:#fafbf7;border-bottom:1px solid #e3e8df}
.score-operation-group{display:flex;align-items:center;gap:2px;white-space:nowrap}.score-operation-group>span{margin-right:5px;font-size:11px;color:#798578}
.library-side .score-operation-group>button{flex:none;min-width:38px;height:30px;min-height:30px;padding:4px 7px;font-size:12px;border:0;border-radius:4px;background:transparent;color:#536b5b;white-space:nowrap}
.library-side .score-operation-group>button[aria-pressed=true]{background:#e3ebdc;color:#274e3c;font-weight:600}.score-operation-group+.score-operation-group{border-left:1px solid #e0e5da;padding-left:12px}

.library-side .context-bar>div{min-width:0;flex:1}.library-side .context-bar strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
