:root{--bg: #f6f5f4;--surface: #ffffff;--border: #dcd8d4;--text: #1c1a19;--text-muted: #5f5955;--accent: #8c2f2f;--heart: #c0392b;--star: #b8860b;--focus: #1a56c4;--radius: 14px;--gap: .75rem;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #17161a;--surface: #211f25;--border: #38343d;--text: #f0eeec;--text-muted: #b1a9a4;--accent: #e8907f;--heart: #f06c5b;--star: #e8c05a;--focus: #8ab4ff}}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;padding:0 1rem 3rem;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;overflow-x:hidden}.app-header h1{font-size:1.4rem;margin:1.25rem 0 1rem}.app-main{max-width:72rem;margin:0 auto}.controls{display:flex;flex-direction:column;gap:var(--gap);margin-bottom:1.25rem}.search-label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.search-input,.select{width:100%;padding:.6rem .75rem;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap)}.sort-group{display:flex;align-items:center;gap:.4rem}.sort-group .select{width:auto}.result-count{margin:0 0 0 auto;font-size:.9rem;color:var(--text-muted);white-space:nowrap}.button{padding:.55rem .9rem;font-size:.95rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.button:hover{border-color:var(--text-muted)}.button-icon{padding:.55rem .7rem;line-height:1}.button-quiet{border-color:transparent;background:transparent;text-decoration:underline}.filters{display:grid;grid-template-columns:1fr;gap:var(--gap);padding:var(--gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.filter label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.filter-checkboxes{display:flex;flex-wrap:wrap;gap:1rem}.checkbox{display:flex;align-items:center;gap:.4rem;font-size:.95rem}.status,.notice,.empty{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.9rem;color:var(--text-muted)}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;text-align:left}.empty p,.status p{margin:0}.error{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.error-message{font-weight:600}.error-detail{color:var(--text-muted);font-size:.9rem}.song-grid{display:grid;grid-template-columns:1fr;gap:var(--gap)}@media(min-width:40rem){.song-grid,.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.song-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filters{grid-template-columns:repeat(4,minmax(0,1fr))}}.song-card{padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.song-card-header{display:flex;align-items:flex-start;gap:.5rem}.song-title{flex:1;margin:0;font-size:1.02rem;font-weight:600;overflow-wrap:anywhere}.host-star{flex:none;color:var(--star);font-size:1.05rem;line-height:1.4}.heart{flex:none;padding:.15rem .35rem;font-size:1.3rem;line-height:1;color:var(--text-muted);background:none;border:1px solid transparent;border-radius:999px;cursor:pointer}.heart.is-favorite{color:var(--heart)}.heart:hover{border-color:var(--border)}.song-credits,.song-meta{margin:.3rem 0 0;overflow-wrap:anywhere}.song-credits{font-size:.92rem;color:var(--text)}.song-artist{font-weight:500}.song-album{color:var(--text-muted)}.song-meta{font-size:.82rem;color:var(--text-muted)}.sentinel{height:1px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
