dialog{width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:20px;overscroll-behavior:contain}dialog::backdrop{background:#211f1b99}#picker-results{display:grid;gap:8px}#picker-results button{text-align:left;overflow-wrap:anywhere}#picker-close{float:none}#picker-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}#picker-title{grid-column:1;grid-row:1;margin:0}#picker-close{grid-column:2;grid-row:1}#picker-dialog>label,#picker-search,#picker-hint,#picker-results{grid-column:1 / -1}#picker-dialog>label,#picker-hint{margin:0}#guest-preference{min-width:0;margin:16px 0;padding:10px;border:1px solid var(--line)}#guest-preference input{width:auto;min-height:0;vertical-align:middle}#guest-preference label{display:flex;gap:8px;align-items:center;min-height:44px}.moment-row{border-top:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.moment-row h4{margin:0}.moment-row button{min-height:44px}.moment-row p{margin:8px 0}
#mobile-actions{display:none}#picker-request-open{margin-bottom:12px}dialog h2{overflow-wrap:anywhere}.moment-note{resize:vertical}.moment-row label{margin-top:10px}
/* Bound the results, not the entire picker: search and Cancel stay reachable. */
#picker-dialog{width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:16px;overflow:hidden}
#picker-dialog[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr) auto;gap:12px}
#picker-title{grid-column:1;grid-row:1}
#picker-dialog>label{grid-row:2}#picker-search{grid-row:3}#picker-hint{grid-row:4}
#picker-results{grid-row:5;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding:0}
#picker-close{grid-column:1;grid-row:6;justify-self:end}
@media(max-width:767px){
  body:has(#mobile-actions:not([hidden])){padding-bottom:calc(var(--mobile-actions-height,72px) + 16px)}
  html{scroll-padding-top:calc(var(--sticky-header-height,0px) + 16px);scroll-padding-bottom:calc(var(--mobile-actions-height,72px) + 16px)}
  #mobile-actions{position:fixed;bottom:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-around;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line)}
  #mobile-actions a,#mobile-actions button{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:.85rem;text-align:center}
  body:has(dialog[open]) #mobile-actions{display:none}
  input,textarea{scroll-margin-bottom:calc(var(--mobile-actions-height,72px) + 16px)}
}
:root{--paper:#f4efe6;--surface:#fbf8f2;--ink:#211f1b;--muted:#625a50;--clay:#964422;--line:#d8cdbd;--pad:24px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.5}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}a{color:var(--clay);text-underline-offset:.2em}button,input,textarea{font:inherit;max-width:100%;min-height:44px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}input,textarea{width:100%;padding:.6rem}button{padding:.5rem .7rem;cursor:pointer}button:disabled{opacity:.55;cursor:default}:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.sticky-bar{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}.masthead{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:10px;border-bottom:1px solid var(--line);width:min(820px,calc(100% - var(--pad)*2));margin-inline:auto}.wordmark{font:600 1.2rem Georgia,serif;color:var(--ink);text-decoration:none}.shortlist-jump{font-size:.8rem;min-height:44px;display:flex;align-items:center;gap:5px}
.filter-bar{width:min(820px,calc(100% - var(--pad)*2));margin-inline:auto;padding-block:8px}
main,footer{width:min(820px,calc(100% - var(--pad)*2));margin-inline:auto}
h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.2}h1{font-size:2rem;margin:24px 0 12px}h2{font-size:1.5rem;margin:0 0 12px}.preview-note,.small,footer{font-size:.8rem;color:var(--muted)}.preview-note{margin-bottom:18px}label{display:block;font-size:.85rem;margin-bottom:6px}.text-button{border:0;background:transparent;color:var(--clay);text-decoration:underline;text-underline-offset:.2em}#language-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
@media(min-width:768px){:root{--pad:32px}.sticky-bar .masthead,.sticky-bar .filter-bar,main,footer{width:min(1120px,calc(100% - var(--pad)*2))}main:has(#shortlist:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr)300px;gap:32px;align-items:start}#repertoire{min-width:0}.shortlist{position:sticky;top:calc(var(--sticky-header-height, 0px) + 16px);margin-top:24px;max-height:calc(100dvh - var(--sticky-header-height, 0px) - 32px);overflow-y:auto;min-width:0}}
.language-pill,.theme-pill{border-radius:999px;font-size:.8rem;padding:.4rem .8rem}
.language-pill[aria-pressed=true],.theme-pill[aria-pressed=true]{background:var(--clay);border-color:var(--clay);color:var(--surface)}
.extra-filters,#theme-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.extra-filters{margin-top:8px}.extra-filters:empty{display:none}
#view-controls{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.view-pill{border-radius:999px;font-size:.8rem;padding:.4rem .8rem;font-weight:600}
.view-pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.filter-pill{border-radius:999px;font-size:.78rem;padding:.35rem .7rem;color:var(--clay);border-color:var(--line)}
.filter-pill[aria-pressed=true]{background:var(--clay);border-color:var(--clay);color:var(--surface)}
.pick-badge,.duet-badge,.theme-badge{display:inline-block;vertical-align:middle;white-space:nowrap;font:600 .65rem/1.3 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--clay);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 5px;margin-left:3px}.picks-view .pick-badge{display:none}
#request-route{margin-top:28px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.request-prompt{font-size:.95rem;margin:0 0 10px;color:var(--ink)}#request-open{padding-left:0;margin-bottom:8px}#request-form{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:5px}#request-status{font-size:.85rem}.result-count{font-size:.8rem;color:var(--muted);margin:10px 0}.song-list{list-style:none;padding:0;margin:0}.song-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.song-info{flex:1;min-width:0}.song-card h3{font-size:1.08rem;margin:0 0 3px}.artist{font-size:.8rem;color:var(--muted);margin:0}.song-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;max-width:48%}.video-link{font-size:.75rem;min-height:44px;display:inline-flex;align-items:center}.add-song{font-size:.75rem;white-space:nowrap;color:var(--clay)}.add-song[aria-pressed=true]{background:var(--clay);color:var(--surface)}.shortlist{margin-top:24px;padding:20px;border:1px solid var(--line);background:var(--surface);scroll-margin-top:calc(var(--sticky-header-height, 0px) + 16px);border-radius:8px}.shortlist p{font-size:.85rem}.shortlist ol{padding-left:22px}.shortlist li{position:relative;padding:8px 68px 8px 0;min-height:60px;overflow-wrap:anywhere}.shortlist li span{display:block;font-size:.9rem}.shortlist li .pending{font-size:.78rem;color:var(--clay)}.shortlist li button{position:absolute;right:0;top:8px;font-size:.8rem;min-width:44px;padding-inline:4px}.shortlist-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}#copy-shortlist,#add-request{background:var(--clay);color:var(--surface)}.request-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}footer{margin-top:24px;padding-block:20px;border-top:1px solid var(--line);overflow-wrap:anywhere}.skip-link{position:absolute;top:-100px;left:24px;padding:12px;background:var(--surface)}.skip-link:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript-note{font-size:.85rem}summary{cursor:pointer;min-height:44px}@media(max-width:420px){.song-actions{flex-direction:column;gap:0;align-items:flex-end}.masthead .wordmark{max-width:50%}h1{font-size:1.5rem;margin:12px 0 6px}.preview-note{margin-bottom:8px;font-size:.75rem}.noscript-note{font-size:.8rem}#language-pills{margin-top:6px}.result-count{margin:4px 0}.masthead{padding-block:8px}.masthead,.shortlist-jump{min-height:36px}label[for=search]{margin-bottom:2px}#search{padding:.35rem;min-height:36px}button,.add-song,.video-link,.view-pill,.language-pill{min-height:36px}.song-card{padding:10px 0}#request-route{padding:16px;margin-top:20px}.shortlist{padding:16px}}
/* Planning controls stay above the song list; notes remain optional. */
#march-in-cards{display:grid;gap:10px}.march-in-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;padding:12px;border:1px solid var(--clay);border-radius:6px;background:#f4eadb}.march-in-card h3,.march-in-card p{grid-column:1 / -1}.march-in-card .choose-moment{grid-column:1 / -1}.march-in-card:has(.clear-moment) .choose-moment{grid-column:1}.march-in-card:has(.clear-moment) button{font-size:.85rem;padding-inline:8px;white-space:nowrap}.march-in-card h3{font-size:1.2rem;font-weight:600;margin:0}.march-in-card p{margin:6px 0 10px;overflow-wrap:anywhere}.choose-moment{width:100%;font-weight:600}.moment-choices{display:grid;gap:10px;margin-bottom:16px}.moment-choices button{min-height:56px;text-align:left;font-weight:600}#guest-options #guest-preference{margin:14px 0 8px}#guest-options p{margin:8px 0}#guest-options{padding-bottom:12px;border-bottom:1px solid var(--line)}
@media(min-width:768px){.sticky-bar .masthead,.sticky-bar .filter-bar,main,footer{width:min(1280px,calc(100% - var(--pad)*2))}main:has(#shortlist:not([hidden])){grid-template-columns:minmax(0,1fr) clamp(300px,32vw,420px);gap:24px}}
/* Copy belongs to the shortlist column, never the global phone bar. */
#shortlist-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--surface);padding-bottom:12px;position:static;min-width:0}
#shortlist-header h2{flex:1 1 160px;min-width:0;margin:0;font-size:1.3rem;overflow-wrap:anywhere}
#shortlist-header #copy-shortlist{flex:0 1 auto;font-size:.85rem;min-height:44px}
#shortlist-header #copy-status{flex-basis:100%;margin:0;font-size:.78rem;overflow-wrap:anywhere}
.clear-moment{grid-column:2;width:100%;margin-top:0;min-height:44px}
@media(min-width:768px){#shortlist-header{position:sticky;top:-20px;z-index:2;margin:-20px -20px 0;padding:16px 20px 12px;border-bottom:1px solid var(--line)}}
/* Shortlist-first: search and views stay visible; optional detail folds. */
button,.add-song,.video-link,.view-pill,.language-pill,#search{min-height:44px}.masthead .wordmark{max-width:none}
.search-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}.search-row input{flex:1;min-width:0}.search-row button{flex:none}
.view-row{display:flex;align-items:center;gap:4px}.view-row #view-controls{margin:0;flex-wrap:nowrap}.view-row #clear-filters{margin-left:auto;padding-inline:8px}
.filter-bar{padding-block:6px}.masthead{padding-block:0;min-height:44px}.wordmark{display:flex;align-items:center;min-height:44px}
#filter-summary{font-size:.75rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#filter-panel{max-height:min(42dvh,340px);overflow-y:auto;overscroll-behavior:contain;padding:4px 3px 8px}#filter-close{margin-top:8px}
/* Contain stale wide pills even before resize dispatch. Six pixels of inset
   preserve the 3px focus outline plus its 3px offset without changing layout. */
#filter-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;contain:paint;padding:6px;margin:-2px -6px -6px}
#filter-pills button{flex:none;white-space:nowrap;max-width:none;min-height:44px}
#filter-toggle{border-radius:999px;font-size:.8rem;background:#e5dbcb;border-color:#b7a58d;color:var(--ink);font-weight:600;inline-size:8em;text-align:center;font-variant-numeric:tabular-nums}
.language-pill[data-filter-language=""]{font-weight:700;border:2px solid var(--ink);color:var(--ink)}
.language-pill[data-filter-language=""][aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
#copy-status.copy-toast{position:fixed;z-index:100;top:16px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);margin:0;padding:12px 18px;border:1px solid #86c99e;border-radius:8px;background:#dcfce7;color:#14532d;box-shadow:0 4px 16px #0002;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere;pointer-events:none}
#language-pills:empty,#theme-pills:empty,.extra-filters:not(:has(button)){display:none;margin:0;padding:0}
#shortlist-items{padding:0;list-style:none;margin:0 0 12px}.shortlist li{display:grid;grid-template-columns:44px minmax(0,1fr) 44px max-content;gap:6px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);touch-action:pan-y}
.shortlist li .drag-handle{grid-column:1;grid-row:1;touch-action:none;cursor:grab;color:var(--muted);background:transparent;user-select:none;-webkit-user-select:none}
.shortlist li .shortlist-song-title{grid-column:2;grid-row:1;min-width:0;overflow-wrap:anywhere}.shortlist li .must-play{grid-column:3;grid-row:1}.shortlist li .remove-song{grid-column:4;grid-row:1;white-space:nowrap}.shortlist li .moment-badges,.shortlist li .pending{grid-column:2 / -1}.shortlist li .moment-badges:empty{display:none}.shortlist li .moment-badges{font-size:.78rem;color:var(--clay)}
.shortlist li.is-dragging{background:#f4eadb;box-shadow:inset 0 0 0 2px var(--clay)}.shortlist li.is-dragging .drag-handle{cursor:grabbing;background:#e5dbcb;color:var(--ink)}
@media(hover:hover){.drag-handle:hover{background:#e5dbcb!important;color:var(--ink)!important}}
.drag-handle:focus-visible{background:#e5dbcb;color:var(--ink)}
.song-card{flex-wrap:wrap}.song-info{flex:1 1 12rem}.song-actions{display:flex;flex:0 1 auto;flex-flow:row wrap;max-width:100%;align-items:stretch}.song-actions .video-link{flex:none;white-space:nowrap}.selection-actions{display:flex;flex:none;gap:inherit;align-items:stretch}.selection-actions:has(.add-song[hidden]){display:none}.song-actions .must-play{padding-inline:4px}
#back-to-top{position:fixed;right:16px;bottom:16px;z-index:55;min-width:44px;box-shadow:0 2px 8px #0002;background:var(--surface)}
body:has(dialog[open]) #back-to-top{display:none}
@media(max-width:767px){#back-to-top{bottom:calc(var(--mobile-actions-height,72px) + 12px + env(safe-area-inset-bottom,0px))}}
.shortlist li button{position:static;padding:6px;min-height:44px}.must-play{min-width:44px;min-height:44px;font-size:1.25rem;color:var(--clay)}.must-play[aria-pressed=true]{background:#f2dfb8;border-color:var(--clay)}
select{font:inherit;min-height:44px;max-width:100%;min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:6px;font-size:.8rem}
#request-open{padding:8px 12px;margin:0}#desktop-request{margin:12px 0}.shortlist p:empty{display:none}.progress p{font-size:.75rem;margin:4px 0;color:var(--muted)}.progress strong{font-weight:700}.progress .below-recommendation{color:#8a5300}
summary{min-height:44px;cursor:pointer;padding-block:10px;font-size:.85rem}#guest-options{margin:8px 0}#saved-moment-details{margin-block:10px}.shortlist-actions{gap:8px}
@media(max-width:767px){:root{--pad:16px}.shortlist-jump{display:none}.masthead{min-height:44px}.wordmark{font-size:1.08rem}.view-pill{padding-inline:10px}.filter-bar{padding-block:4px}.view-row{margin-top:4px}h1{font-size:1.65rem;margin-top:18px}.preview-note{margin-block:8px}.shortlist{padding:16px}.song-actions{gap:4px}.song-card{gap:8px}}
