/* Desktop candidate cards: one grid and one scale owner; touch UI keeps its own sheet. */
.library-side .library-page[data-finder=patterns] .candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:8px;padding:8px 12px 14px}
.library-side .library-page[data-rhythm-view=beat] .candidates{grid-template-columns:repeat(3,minmax(0,1fr))}
.pattern-card{display:block;position:relative;min-width:0;min-height:0;margin:0;padding:0!important;border:1px solid #dce2d6;border-radius:6px;background:#fffefa;overflow:hidden}
.pattern-card:hover{background:#f7f8f1;border-color:#9caf99}
.pattern-card.selected{background:#edf3e7;border-color:#608968;box-shadow:inset 0 0 0 1px #608968}
.pattern-card.multi-bar,.pattern-card[data-preview-wide=true]{grid-column:1/-1}
.pattern-card .candidate-select{display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-rows:20px auto;gap:3px 4px;width:100%;height:100%;min-width:0;min-height:0;padding:6px!important;text-align:left}
.pattern-card .candidate-select[data-shortcut]::before{content:attr(data-shortcut-label);position:static;grid-column:1;grid-row:1;align-self:center;color:#657b68;font:500 11px/1 system-ui;text-align:center}
.pattern-card .pattern-heading{grid-column:2;grid-row:1;display:block;min-width:0;height:20px;overflow:hidden;line-height:20px;white-space:nowrap}
.pattern-card .pattern-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}
.pattern-card .pattern-heading small{display:none}
.pattern-measures{grid-column:1/-1;grid-row:2;display:block;min-width:0;padding:0}
.pattern-measure{display:flex;align-items:center;justify-content:center;min-width:0;height:66px}
.pattern-measure svg{display:block;width:100%;height:66px;overflow:visible;mix-blend-mode:multiply}
.pattern-card[data-preview-wide=true] .pattern-measure,.pattern-card[data-preview-wide=true] .pattern-measure svg{height:78px}
.pattern-measure .at{font-family:alphaTab;font-size:36px}
.multi-bar .pattern-measure{height:auto;min-height:66px}
.multi-bar .pattern-measure svg{height:auto;max-height:none}
.rhythm-more,.library-page[data-finder=patterns] .empty-results{grid-column:1/-1}
.pattern-card .candidate-select:focus-visible{outline:2px solid #426e54;outline-offset:-2px}
@container(min-width:560px){.library-side .library-page[data-rhythm-view=measure] .candidates{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:300px){.library-side .library-page[data-finder=patterns] .candidates{grid-template-columns:minmax(0,1fr)}.library-side .library-page[data-rhythm-view=beat] .candidates{grid-template-columns:repeat(2,minmax(0,1fr))}}
