
.songs-shell{width:min(100%,900px);margin:auto;padding:62px 23px 90px}
.songs-intro{max-width:780px;margin-bottom:34px}.songs-intro h1{font:800 clamp(2.7rem,7vw,5.1rem)/1.03 Outfit,'DM Sans',sans-serif;letter-spacing:-.055em;margin:13px 0 20px}.songs-intro h1 em{font-style:normal;color:#ad9bfd}.songs-intro>p:last-child{font-size:16px;max-width:630px;line-height:1.7;color:#cad3e4}
.search-panel{border:1px solid rgba(173,193,247,.23);border-radius:19px;background:linear-gradient(145deg,#1b2740,#111a2d);padding:24px 26px;box-shadow:0 20px 45px rgba(0,0,0,.13)}.search-label{font-size:14px;font-weight:800;display:block;margin-bottom:11px}.search-field{height:64px;position:relative;display:flex;align-items:center;background:#080f21;border:2px solid #48577a;border-radius:12px;overflow:hidden}.search-field:focus-within{border-color:#72ecdf;box-shadow:0 0 0 3px #72ecdf22}.search-field svg{width:24px;min-width:24px;height:24px;margin-left:17px;fill:none;stroke:#aeb9ce;stroke-width:2;stroke-linecap:round}.search-field input{background:transparent;color:#fff;border:0;outline:0;min-width:0;flex:1;padding:12px 13px;font:600 19px 'DM Sans',Arial,sans-serif}.search-field input::placeholder{color:#7f8aa0;font-weight:400}.search-field button{background:#273652;color:#dce9fa;padding:9px 12px;border:0;border-radius:8px;cursor:pointer;font-weight:700;margin-right:10px}.search-help{margin:10px 0 16px;font-size:12px;line-height:1.5;color:#9faac1}.search-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 20px;color:#9cb1c5;font-size:12px}.songs-results{padding-top:34px}.songs-results-head{display:flex;gap:15px;justify-content:space-between;align-items:baseline;border-bottom:1px solid #3a4560;padding-bottom:12px;margin-bottom:12px}.songs-results h2{font-size:21px;margin:0}.songs-results-head span{font-size:13px;color:#b0bfd2}.songs-list{display:grid;gap:8px}.song-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:center;border:1px solid #344258;background:#141f33;border-radius:10px;padding:15px 17px;contain:content}.song-title{font:700 16px/1.35 'DM Sans',Arial,sans-serif;color:#f6f8ff;overflow-wrap:anywhere}.song-artist{font-size:13px;color:#c4cde0;margin-top:4px;overflow-wrap:anywhere}.song-source{font-size:10px;color:#b5ffe8;background:#23423f;border:1px solid #396b66;border-radius:20px;padding:5px 8px;white-space:nowrap}.empty-state{border:1px dashed #475777;border-radius:16px;text-align:center;padding:38px 18px;margin:15px 0;color:#c8d2e6;background:#131d30}.empty-state[hidden],#show-more[hidden]{display:none}.empty-note{font-size:38px;color:#ad9bfd}.empty-state h3{color:white;font-size:19px}.empty-state p{font-size:13px;line-height:1.6}.more-button{border:1px solid #74d8cb;border-radius:999px;background:#193e45;color:#e5fffa;font-weight:700;padding:13px 25px;cursor:pointer;margin:20px auto;display:block}.more-button:hover{background:#27565d}.songs-disclaimer{margin:36px 0 25px;border-left:3px solid #7566be;padding:12px 17px;color:#b6c0d3;font-size:12px;line-height:1.75}.songs-footer-links{display:flex;gap:22px;flex-wrap:wrap}.songs-footer-links a{color:#8cece1;font-size:13px}.match{background:#43627a;color:white;border-radius:2px}.preview-tag{border:1px solid #e5b768;color:#ffd68c;border-radius:5px;padding:4px 7px;margin-left:8px;font-size:10px}
@media(max-width:640px){.songs-shell{padding:37px 17px 64px}.songs-intro h1{font-size:clamp(2.7rem,11vw,4.1rem)}.songs-intro>p:last-child{font-size:14px}.search-panel{padding:19px 16px}.search-field{height:59px}.search-field input{font-size:16px}.song-row{padding:13px 12px}.song-title{font-size:15px}.song-source{font-size:9px}}
/* v1.8: singer-friendly metadata and filters. Keep mobile results compact. */
.song-filter-group{display:flex;align-items:center;gap:11px 20px;flex-wrap:wrap;border:0;border-top:1px solid #40516d;margin:17px 0 14px;padding:15px 0 0;min-width:0}
.song-filter-group legend{font-size:12px;font-weight:800;color:#d2e3ee;padding:0 8px 0 0}
.song-filter-check{font-size:13px;color:#eef2fc;display:inline-flex;gap:9px;align-items:center;cursor:pointer;font-weight:600;min-height:42px;user-select:none}
.song-filter-check input{width:19px;height:19px;accent-color:#76e9dd;cursor:pointer}
.song-filter-select{font-size:13px;color:#eef2fc;display:inline-flex;gap:9px;align-items:center;font-weight:600}
.song-filter-select select{font-size:13px;background:#0b1425;border:1px solid #60728f;color:white;border-radius:7px;padding:10px 11px;max-width:180px;min-height:42px}
.song-filter-group :focus-visible,.sort-year:focus-visible{outline:3px solid #76e9dd;outline-offset:3px}
.song-legend{font-size:11px;display:flex;align-items:center;gap:8px;color:#c5d1e5;margin:0 0 13px}
.legend-duet,.legend-explicit{border-radius:4px;padding:1px 4px;font-weight:800;color:#fff;background:#5a467c;font-size:11px;line-height:18px;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px}
.legend-duet{color:#b7f4ec;background:#22444f}
.legend-explicit{background:#75503d;color:#ffe0bf;margin-left:12px}
.songs-columns,.song-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) 82px;gap:10px 17px;align-items:center}
.songs-columns.show-language,.songs-list.show-language .song-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 67px minmax(0,0.65fr)}
.songs-columns{padding:10px 16px;margin-bottom:10px;background:#10192b;border-radius:8px;color:#b8c9df;font-size:12px;font-weight:800;letter-spacing:.035em;align-items:center}
.songs-columns .sort-year{width:fit-content;white-space:nowrap;background:transparent;border:0;border-radius:4px;color:#9ceee4;font-size:12px;font-weight:800;cursor:pointer;padding:3px 1px}
.songs-columns .sort-year:hover{text-decoration:underline}
.song-row{padding:13px 16px;contain:layout style}
.song-title-line{display:flex;align-items:center;column-gap:6px;row-gap:5px;flex-wrap:wrap}
.song-title-cell,.song-artist-cell,.song-year-cell,.song-language-cell{min-width:0;overflow-wrap:anywhere}
.song-title{font-size:15px;font-weight:700;line-height:1.35}
.song-artist-cell{font-size:13px;color:#c4cde0}
.song-year-cell{font-size:13px;color:#d7e5f1;font-variant-numeric:tabular-nums}
.song-language-cell{font-size:12px;color:#c9d8e9}
.song-marker{display:inline-flex;align-items:center;justify-content:center;width:23px;height:20px;border-radius:5px;flex:none;font-size:12px;font-weight:850;vertical-align:middle}
.song-marker-duet{color:#8ef3e6;background:#19444d;border:1px solid #39737a}
.song-marker-explicit{color:#ffdcb8;background:#624332;border:1px solid #91654b}
.sort-tools{text-align:right;min-height:18px;margin-bottom:5px}
.sort-tools button{border:0;background:transparent;color:#9ceee4;font-size:12px;cursor:pointer;text-decoration:underline;padding:0}
.sort-tools button[hidden],.songs-columns [hidden]{display:none}
@media(max-width:720px){
.songs-columns{grid-template-columns:1fr auto!important;padding:5px 12px 7px;margin-bottom:8px}
.songs-columns>.col-title{font-size:12px}.songs-columns>.col-artist,.songs-columns>.col-language{display:none}
.songs-columns .sort-year{justify-self:end}
.song-row,.songs-list.show-language .song-row{grid-template-columns:minmax(0,1fr) 65px;grid-template-rows:auto auto;gap:4px 8px;padding:12px 13px}
.song-title-cell{grid-column:1;grid-row:1}.song-artist-cell{grid-column:1;grid-row:2}.song-year-cell{grid-column:2;grid-row:1;justify-self:end;font-size:12px;font-weight:650}
.song-language-cell{grid-column:2;grid-row:2;text-align:right;font-size:11px}
.song-title{font-size:14px}.song-filter-group{gap:4px 17px}.song-filter-group legend{width:100%}
.song-filter-check,.song-filter-select{min-height:39px}.song-filter-select{width:100%;justify-content:flex-start}
}
/* v1.9 — compact column sorting and singer suggestions */
.songs-columns .sort-column{width:fit-content;background:transparent;border:0;color:#9ceee4;border-radius:4px;font-size:12px;font-weight:800;padding:5px 0;text-align:left;cursor:pointer;white-space:nowrap}
.songs-columns .sort-column:hover{text-decoration:underline}
.songs-columns .sort-column:focus-visible,.mobile-sort-controls select:focus-visible,.song-request :focus-visible{outline:3px solid #76e9dd;outline-offset:3px}
.mobile-sort-controls{display:none}
.song-request{margin:28px 0 0;background:#172238;border:1px solid rgba(167,193,222,.23);border-radius:14px;overflow:hidden}
.song-request-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;padding:19px 21px;border:0;color:#d6faf5;background:transparent;font:800 15px/1.4 'DM Sans',Arial,sans-serif;cursor:pointer}
.song-request-toggle:hover{background:#21344a}.song-request-toggle>span{flex:none;font-size:23px;line-height:1;color:#80e9dc}
.song-request-content{padding:1px 21px 22px;border-top:1px solid rgba(167,193,222,.18)}
.song-request-content[hidden]{display:none!important}.song-request-content h3{font-size:21px;margin:20px 0 10px}
.song-request-content>p,.song-rights-note p{font-size:13px;color:#b9c6d8;line-height:1.75}
.song-request-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:21px 0}
.song-request-fields label{display:flex;flex-direction:column;gap:8px;color:#e4edf6;font-size:12px;font-weight:700}
.song-request-fields input{width:100%;padding:12px 13px;min-width:0;color:white;background:#0a1425;border:1px solid #536380;border-radius:8px;font-size:15px}
.song-request-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.song-request-actions a,.song-request-actions button{display:inline-flex;align-items:center;justify-content:center;font:750 12px/1.35 'DM Sans',Arial,sans-serif;min-height:42px;padding:10px 13px;border:1px solid #668492;border-radius:8px;background:#23374a;color:#f0faff;text-align:center;cursor:pointer}
.song-request-actions .song-request-messenger{background:#7be7d9;border-color:#7be7d9;color:#091d28}
.song-request-feedback{font-size:12px;color:#a8bfcf;margin:12px 0 0;line-height:1.6}
.song-rights-note{margin-top:24px;padding:18px;border-radius:10px;background:rgba(5,12,29,.55);border-left:3px solid #9e8ce5}
.song-rights-note strong{font-size:14px;color:white}.song-rights-note p{margin:6px 0 0}.song-rights-note a{color:#8ff0e5;text-decoration:underline}
@media(max-width:720px){
 .mobile-sort-controls{display:flex;align-items:center;gap:12px;margin:4px 0 14px;font-size:13px;color:#dce8f7;font-weight:650}
 .mobile-sort-controls select{min-height:42px;flex:1;min-width:0;background:#10192b;color:white;border:1px solid #61718c;border-radius:8px;padding:8px}
 .songs-columns .sort-column{font-size:12px}
 .song-request-toggle{padding:17px 15px;font-size:14px}
 .song-request-content{padding:1px 15px 18px}
 .song-request-fields{grid-template-columns:1fr}
 .song-request-actions a,.song-request-actions button{flex:1 1 130px}
}

/* v2.1: single-click email submission of song suggestions. */
.song-request-submit{background:#7be7d9!important;border-color:#7be7d9!important;color:#091d28!important;min-width:195px}
.song-request-submit:hover{background:#a8fff2!important}
.song-request-submit:disabled{cursor:progress;opacity:.7}
.request-honeypot{position:absolute!important;left:-9999px!important;top:-9999px!important;width:1px;height:1px;overflow:hidden}
.song-request-feedback{min-height:1.6em}

/* v2.3: count available-but-hidden songs only when a search returns nothing. */
.empty-alternatives{max-width:630px;margin:12px auto 0;color:#bdedf0;font-size:13px;line-height:1.7;}
.empty-alternatives[hidden]{display:none!important;}

/* v2.5 — Keep the query directly above live results, even at phone width. */
.search-panel{padding-bottom:17px}
.song-filter-group{border-top:0;padding-top:0;margin:0 0 7px}
.search-meta{margin:1px 0 18px;padding-top:11px;border-top:1px solid #40516d}
.search-label{margin:0 0 2px}
.search-help{margin:0 0 10px}
.songs-results{padding-top:15px}
.songs-results-head{margin-bottom:9px;padding-bottom:8px}
.song-legend{margin-bottom:8px}
@media(max-width:720px){
  /* Keep both sortable headings visible over their stacked result cells. */
  .songs-columns{grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto;column-gap:8px;row-gap:1px;padding:6px 13px 9px}
  .songs-columns>.col-title{grid-column:1;grid-row:1;display:block}
  .songs-columns>.col-artist{grid-column:1;grid-row:2;display:block}
  .songs-columns>#year-sort-header{grid-column:2;grid-row:1;justify-self:end}
  .songs-columns>.col-language:not([hidden]){grid-column:2;grid-row:2;display:block;justify-self:end}
  .mobile-sort-controls{margin:2px 0 7px}
  .search-panel{padding-bottom:14px}
  .search-meta{margin-bottom:13px}
  .songs-results{padding-top:13px}
  .song-legend{margin-bottom:7px}
}

/* v2.6 — singer-first phone layout; desktop stylesheet remains unchanged. */
.mobile-filter-toggle{display:none}
@media(max-width:720px){
  /* Stop the large site header from occupying the typing viewport. */
  .karaoke-finder .header{position:relative;top:auto}
  .karaoke-finder .songs-shell{padding:17px 12px 55px}
  .karaoke-finder .songs-intro{margin-bottom:13px}
  .karaoke-finder .songs-intro .eyebrow{font-size:10px;margin:0 0 7px;letter-spacing:.1em}
  .karaoke-finder .songs-intro h1{font-size:clamp(1.95rem,8vw,2.55rem);letter-spacing:-.04em;line-height:1.04;margin:0 0 6px}
  .karaoke-finder .songs-intro>p:last-child{font-size:12px;line-height:1.4;margin:0;max-width:none}
  /* Only the compact search panel stays visible while results scroll below. */
  .karaoke-finder .search-panel{display:flex;flex-direction:column;position:sticky;top:env(safe-area-inset-top,0px);z-index:30;padding:9px 11px 8px;border-radius:12px;background:#172338;box-shadow:0 10px 24px #060c1caa}
  .karaoke-finder .search-label{order:1;font-size:12px;margin:0 0 5px}
  .karaoke-finder .search-field{order:2;height:48px;border-radius:9px}
  .karaoke-finder .search-field svg{width:19px;min-width:19px;height:19px;margin-left:11px}
  .karaoke-finder .search-field input{padding:8px 10px;font-size:16px}
  .karaoke-finder .search-field button{padding:6px 8px;margin-right:6px;font-size:12px}
  .karaoke-finder .mobile-filter-toggle{order:3;display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 3px 2px;border:0;background:transparent;color:#a9eae4;min-height:28px;font-size:12px;font-weight:700;cursor:pointer;text-align:left}
  .karaoke-finder .mobile-filter-toggle:focus-visible{outline:2px solid #76e9dd;outline-offset:2px}
  .karaoke-finder .mobile-filter-active{color:#f4f9ff;font-weight:500}
  .karaoke-finder .mobile-filter-chevron{font-size:17px;line-height:1;transition:transform .15s}
  .karaoke-finder .search-panel.filters-open .mobile-filter-chevron{transform:rotate(180deg)}
  .karaoke-finder .song-filter-group{order:4;display:none;flex-direction:column;align-items:flex-start;gap:0;border-top:1px solid #40516d;padding:8px 0 3px;margin:4px 0 0}
  .karaoke-finder .search-panel.filters-open{position:relative;top:auto}
  .karaoke-finder .search-panel.filters-open .song-filter-group{display:flex}
  .karaoke-finder .song-filter-group legend{font-size:11px;padding-top:6px}
  .karaoke-finder .song-filter-check{min-height:37px;font-size:12px}
  .karaoke-finder .search-meta{order:5;display:none;margin:4px 0 0;padding-top:4px;flex-wrap:wrap;font-size:10px}
  .karaoke-finder .search-panel.filters-open .search-meta{display:flex}
  .karaoke-finder .search-help{order:6;display:none}
  .karaoke-finder .songs-results{padding-top:7px}
  .karaoke-finder .songs-results-head{margin:0 0 4px;padding:0 3px 4px;align-items:center}
  .karaoke-finder .songs-results-head h2{font-size:15px}
  .karaoke-finder .songs-results-head span{font-size:11px}
  .karaoke-finder .song-legend{margin:1px 0 4px;font-size:10px;min-height:19px}
  .karaoke-finder .mobile-sort-controls{margin:3px 0 5px;font-size:12px;gap:8px}
  .karaoke-finder .mobile-sort-controls select{min-height:34px;padding:5px 9px;font-size:12px}
  .karaoke-finder .songs-columns{margin-bottom:6px;padding:4px 11px 6px}
  .karaoke-finder .songs-list{gap:5px}
  .karaoke-finder .song-row{padding:9px 11px;min-height:57px}
  .karaoke-finder .empty-state{padding:16px 10px;margin:8px 0}
  .karaoke-finder .empty-note{font-size:24px}
  .karaoke-finder .empty-state h3{font-size:16px}
  /* While keyboard is open, show the first matching song instead of extra UI. */
  .karaoke-finder.karaoke-typing .songs-results-head{padding-bottom:3px}
  .karaoke-finder.karaoke-typing .song-legend,
  .karaoke-finder.karaoke-typing .mobile-sort-controls,
  .karaoke-finder.karaoke-typing .songs-columns,
  .karaoke-finder.karaoke-typing .sort-tools{display:none}
}
