.setlist-controls{display:flex;align-items:center;gap:8px;padding:8px 12px;min-width:0}.setlist-controls[hidden]{display:none}.setlist-controls select{min-width:0;flex:1;background:#20262c;color:inherit;border:1px solid #51545a;border-radius:8px;padding:10px;font:inherit}.setlist-controls button{flex-shrink:0;min-height:42px}.setlist-controls select:focus-visible,.setlist-controls button:focus-visible{outline:2px solid #d9ad58;outline-offset:2px}.quick-list-mode [data-setlist-controls]{grid-column:1/-1}.setlist-controls:has(select:disabled){opacity:.8}
html,body{overscroll-behavior-x:none}.paper-wrap{overscroll-behavior-x:none}

/* Fixed page slots survive bitmap eviction: scrolling never depends on rendering. */
.bounded-pdf-pages { overflow-anchor: none; }
.bounded-pdf-slot { position: relative; flex: none; overflow: hidden; contain: layout paint; }
.bounded-pdf-slot > .bounded-pdf-canvas { position: absolute; inset: 0; z-index: 1; }
.bounded-pdf-canvas { display: block; max-width: 100%; background: white; }
.bounded-pdf-single { width: 100%; height: 100%; min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; }
.bounded-pdf-frame { position: relative; flex: none; max-width: 100%; max-height: 100%; overflow: hidden; container-type: inline-size; }
.bounded-pdf-frame > canvas { position: absolute; inset: 0; z-index: 1; max-width: 100%; max-height: 100%; }
.live-score-page { position: relative; overflow: hidden; container-type: inline-size; }
.live-score-page.single-page { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.live-score-page.single-page > img { position: absolute; inset: 0; }
.continuous-page.live-score-page { aspect-ratio: 1489 / 2105; }
.continuous-page.live-score-page > img { width: 100%; height: 100%; object-fit: contain; }
.bounded-pdf-slot { container-type: inline-size; }
.live-annotation-layer { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.live-annotation-chord { position: absolute; display: block; padding: 2px 4px; border-radius: 4px; background: transparent; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 850; line-height: 1; white-space: nowrap; transform: translate(-50%, -50%); user-select: none; text-shadow: 0 1px 1px #fff8; }
.live-annotation-chord[data-size="s"] { font-size: 11px; font-size: clamp(9px, 1.02cqw, 14px); }
.live-annotation-chord[data-size="m"] { font-size: 15px; font-size: clamp(12px, 1.35cqw, 18px); }
.live-annotation-chord[data-size="l"] { font-size: 20px; font-size: clamp(16px, 1.8cqw, 24px); }
.live-annotation-chord[data-size="xl"] { font-size: 26px; font-size: clamp(20px, 2.35cqw, 31px); }
.live-annotation-chord[data-color="black"] { color: #08090a; }
.live-annotation-chord[data-color="red"] { color: #b31e24; text-shadow: 0 1px 1px #fff; }
.live-annotation-chord[data-color="white"] { color: #fff; text-shadow: 0 1px 3px #000, 0 0 2px #000; }
.annotation-layer-quick-toggle { display: flex; width: 38px; padding: 0 6px; }
.annotation-layer-quick-toggle[hidden] { display: none !important; }
.annotation-layer-quick-toggle > span { color: #efc777; font-weight: 900; font-style: italic; }
.annotation-layer-quick-toggle.active { border-color: #8b6424; background: #4a3618; }
.pdf-page-placeholder { position: absolute; inset: 0; display: grid; place-content: center; color: #777; font: 14px system-ui; }
.pdf-render-error { padding: 24px; color: #832f26; background: #fff4ec; overflow-wrap: anywhere; }
.viewer-shell.width-mode:has(.bounded-pdf-pages) { overflow-anchor: none; }

.library:has(> .setlist-controls:not([hidden])){grid-template-rows:auto auto auto auto auto minmax(0,1fr) auto auto}
@media (orientation:portrait){.app.quick-list-mode .library>.setlist-controls{display:none}.quick-results-column:has(>.setlist-controls:not([hidden])){grid-template-rows:auto minmax(0,1fr)}.quick-results-column .setlist-controls{padding:2px 0 6px;gap:5px}.quick-results-column .setlist-controls button{font-size:11px}.quick-results-column .setlist-controls select{padding:8px 4px}}

/* Test16: the import review is a complete editor without horizontal clipping. */
.import-workspace .import-review-list{overflow-x:hidden;overflow-y:auto;padding:1px 0 140px}
.import-review-row{
  min-width:0;
  width:100%;
  grid-template-columns:28px 64px minmax(205px,1.18fr) minmax(235px,1.28fr) repeat(3,minmax(74px,.52fr)) minmax(145px,.82fr) minmax(135px,.78fr);
  align-items:end;
}
.review-artist-field{position:relative;z-index:4}
.import-artist-combobox{position:relative;min-width:0;text-transform:none;letter-spacing:0}
.import-artist-control{min-height:32px;display:flex;align-items:center;gap:4px;padding:3px 54px 3px 5px;border:1px solid #393d43;border-radius:7px;background:#22252a}
.import-artist-control:focus-within{border-color:#89682f;box-shadow:0 0 0 2px #d7a44a18}
.import-artist-chips{display:flex;align-items:center;gap:3px;min-width:0;overflow-x:auto;scrollbar-width:none}
.import-artist-chips::-webkit-scrollbar{display:none}
.import-artist-chip{display:inline-flex;align-items:center;gap:3px;max-width:150px;min-height:23px;padding:0 3px 0 7px;border:1px solid #765b2c;border-radius:999px;background:#3b2d18;color:#f1cd7e;font-size:9px;white-space:nowrap}
.import-artist-chip b{overflow:hidden;text-overflow:ellipsis}
.import-artist-chip button,.import-artist-toggle,.import-artist-commit{border:0;background:transparent;color:inherit;cursor:pointer}
.import-artist-chip button{width:18px;height:18px;padding:0;font-size:14px}
.import-artist-control>input{flex:1 1 90px;width:90px!important;height:24px!important;padding:0 3px!important;border:0!important;background:transparent!important;box-shadow:none!important;-webkit-appearance:none;appearance:none}
.import-artist-control>input::-webkit-search-cancel-button{display:none}
.import-artist-toggle,.import-artist-commit{position:absolute;top:4px;width:24px;height:24px}
.import-artist-toggle{right:4px;color:#aaa}
.import-artist-commit{right:28px;color:#e7b64f;font-size:16px;font-weight:800}
.import-artist-commit:disabled{opacity:.28;cursor:default}
.import-artist-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:220px;overflow:auto;padding:5px;border:1px solid #4b4f55;border-radius:8px;background:#f4f2ee;color:#242424;box-shadow:0 14px 34px #0009}
.import-artist-suggestions[hidden]{display:none}
.import-artist-suggestions button{width:100%;min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border:0;border-radius:5px;background:transparent;color:inherit;text-align:left;cursor:pointer}
.import-artist-suggestions button:hover,.import-artist-suggestions button:focus-visible{background:#dfaa4d;color:#17120b;outline:0}
.import-artist-suggestions strong{font-size:9px}.import-artist-suggestions span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}

.bulk-setlists-field{min-width:210px;max-width:430px;margin:0;padding:4px 8px 6px;border:1px solid #3a3e44;border-radius:8px;background:#202329;color:#c9c5bd}
.bulk-setlists-field legend{padding:0 3px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.5px}
.bulk-setlist-options{display:flex;align-items:center;gap:5px;overflow-x:auto;white-space:nowrap}
.bulk-setlist-options label{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 6px;border-radius:6px;background:#292c31;font-size:9px;cursor:pointer}
.bulk-setlist-options input{accent-color:#d7a44a}.bulk-setlist-empty{font-size:9px;color:var(--muted)}
.web-fullscreen-button.active{border-color:#8d6a2f;background:#3c2d18;color:#efc66e}
.web-fullscreen-resume{position:fixed;z-index:99999;top:max(16px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);min-height:44px;padding:9px 18px;border:1px solid #b58736;border-radius:999px;background:#17120b;color:#f0c66e;box-shadow:0 12px 32px #000a;font:700 14px system-ui,sans-serif;cursor:pointer}
.web-fullscreen-resume[hidden]{display:none!important}
.web-fullscreen-resume:hover,.web-fullscreen-resume:focus-visible{background:#3b2c17;outline:2px solid #e2b250;outline-offset:2px}

@media (max-width:1100px){
  .import-review-row{grid-template-columns:24px 52px minmax(160px,1.08fr) minmax(205px,1.2fr) repeat(3,minmax(62px,.48fr)) minmax(125px,.75fr)}
  .import-review-row .file-state{display:none}
}

@media (orientation:portrait){
  .import-workspace .import-review-list{padding-bottom:180px}
  .import-review-row{grid-template-columns:24px 48px repeat(3,minmax(0,1fr));align-items:end}
  .import-review-row .review-field:nth-of-type(n+3),.import-review-row .file-state{display:grid}
  .import-review-row>.import-check{grid-column:1;grid-row:1}
  .import-review-row>.file-preview-tile{grid-column:2;grid-row:1}
  .import-review-row>.review-title-field{grid-column:3/-1;grid-row:1}
  .import-review-row>.review-artist-field{grid-column:1/-1;grid-row:2}
  .import-review-row>.review-transpose-field{grid-column:1/2;grid-row:3}
  .import-review-row>.review-key-field{grid-column:2/4;grid-row:3}
  .import-review-row>.review-tempo-field{grid-column:4/-1;grid-row:3}
  .import-review-row>.review-category{grid-column:1/-1;grid-row:4}
  .import-review-row>.file-state{grid-column:1/-1;grid-row:5}
  .bulk-setlists-field{min-width:0;max-width:none}
}

/* M3.3.12: choose individual scores or append an ordered Playlist to a setlist. */
.collection-source-column{grid-template-rows:auto minmax(0,1fr)}
.collection-source-header{min-width:0}
.collection-source-switch{display:flex;gap:4px;margin:9px;padding:3px;border:1px solid #3c4046;border-radius:10px;background:#101215}
.collection-source-switch[hidden],.collection-source-hint[hidden]{display:none}
.collection-source-switch button{flex:1;min-width:0;min-height:38px;padding:6px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:#b7b5b0;font:600 12px system-ui;cursor:pointer}
.collection-source-switch button[aria-pressed="true"]{background:#47351b;border-color:#9e7a31;color:#f0c771}
.collection-source-switch button:focus-visible,.editor-playlist-row button:focus-visible{outline:2px solid #d9ad58;outline-offset:2px}
.collection-source-hint{margin:0 12px 10px;color:var(--muted);font-size:11px;line-height:1.45}
/* Playlist actions use the same .mini-action sizing as individual songs. */

.setlist-block{display:flex;align-items:center;gap:10px;width:100%;min-height:58px;padding:12px;text-align:left;color:var(--accent,#d4a43e);background:#1a1d21;border:1px solid transparent;border-radius:10px;margin:5px 0;cursor:pointer;font:inherit}.setlist-block-info{min-width:0;flex:1}.setlist-block .song-title{color:inherit}.setlist-block .song-subtitle{display:block;text-overflow:ellipsis}.setlist-block-arrow{flex:none;display:grid;place-items:center;width:32px;font-size:2em;line-height:1;color:inherit}.setlist-block[aria-expanded="true"] .setlist-block-arrow{color:#a7dac2}.setlist-block:focus-visible{outline:2px solid #d4a43e;outline-offset:2px}.song-list.compact-list .setlist-block .song-subtitle{display:block}

/* Expanded Playlist membership is visible in regular and compact setlists.
   Indentation and an ending bracket also identify groups without relying on colour. */
.setlist-block[aria-expanded="true"]{color:#a7dac2;background:#20352c;border-color:#48745f;border-left:3px solid #70a78e;margin-bottom:4px}
.song-row.setlist-child{margin-left:12px;border-left:3px solid #334b40;border-radius:0 9px 9px 0}
.song-row.setlist-child:not(.active):not(.previewing){background:#1b2020;border-top-color:#292f2e;border-right-color:#292f2e;border-bottom-color:#292f2e}
.song-row.setlist-child-last{margin-bottom:12px;border-bottom-left-radius:10px;border-bottom-width:2px}

/* Playlist headers need intrinsic height; the six equal song slots otherwise
   allow their label and count to overlap the first linked song. */
.quick-song-list:has(>.setlist-block){grid-auto-rows:auto;align-content:start}
.quick-song-list:has(>.setlist-block)>.quick-song-row{height:auto;min-height:40px}
.quick-song-list>.setlist-block{min-height:58px}
