:root{--bg:#0d0d12;--surface:#17171f;--surface-2:#1f1f2a;--border:#2a2a38;--text:#f2f2f7;--text-dim:#9d9dad;--accent:#fa233b;--accent-2:#fb5c74;--good:#34c759;--warn:#ffd60a;--bad:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(60rem 30rem at 80% -10%, #fa233b24, transparent 60%), radial-gradient(50rem 25rem at 0% 0%, #5856d61f, transparent 55%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{flex-direction:column;max-width:860px;min-height:100vh;margin:0 auto;padding:0 20px 60px;display:flex}main{flex:1}.topbar{justify-content:space-between;align-items:center;padding:20px 0;display:flex}.brand{letter-spacing:-.01em;font-size:17px;font-weight:700}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;margin-right:2px;display:inline-block}.pill{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;transition:border-color .15s}.pill:hover:not(:disabled){border-color:var(--accent-2)}.pill.signed-in{color:var(--good);cursor:default}.hero{text-align:center;padding:48px 0 12px}.hero h1{letter-spacing:-.03em;margin:0 0 10px;font-size:clamp(28px,5vw,44px);font-weight:800}.hero h1 em{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.sub{color:var(--text-dim);max-width:480px;margin:0 auto 28px;font-size:16px;line-height:1.5}.urlform{gap:10px;max-width:620px;margin:0 auto;display:flex}.urlform input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;outline:none;flex:1;padding:14px 16px;font-size:15px;transition:border-color .15s}.urlform input:focus{border-color:var(--accent-2)}.urlform button,.create{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:12px;padding:14px 22px;font-size:15px;font-weight:700;transition:filter .15s,opacity .15s}.urlform button:hover:not(:disabled),.create:hover:not(:disabled){filter:brightness(1.1)}.urlform button:disabled,.create:disabled{opacity:.45;cursor:default}.error{color:var(--bad);margin-top:16px;font-size:14px}.setlist-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;margin-top:36px;overflow:hidden}.setlist-meta{border-bottom:1px solid var(--border);background:linear-gradient(#fa233b14,#0000);padding:22px 24px 18px}.setlist-meta h2{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.setlist-meta p{color:var(--text-dim);margin:0;font-size:14px}.songs{counter-reset:song;margin:0;padding:6px 0;list-style:none}.songrow{counter-increment:song;border-bottom:1px solid #2a2a3880;grid-template-columns:40px minmax(140px,1fr) minmax(220px,1.4fr) 32px;align-items:center;gap:10px;padding:10px 16px 10px 8px;display:grid;position:relative}.songrow:last-child{border-bottom:none}.songrow.excluded .setlist-song,.songrow.excluded .match{opacity:.38}.include{justify-content:center;display:flex}.include input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.setlist-song{flex-direction:column;gap:3px;min-width:0;display:flex}.setlist-song:before{content:counter(song) ".";position:absolute;left:-9999px}.song-name{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.song-tags{gap:6px;display:flex}.tag{text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:700}.tag.cover{color:#b9b8ff;background:#5856d638}.tag.tape{color:var(--text-dim);background:#9d9dad2e}.tag.encore{color:var(--warn);background:#ffd60a24}.match{align-items:center;gap:10px;min-width:0;display:flex}.match-loading,.match-none{color:var(--text-dim);font-size:13px}.match-none{color:var(--bad)}.searching .match-loading{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.match-song{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.match-song img,.alt img{border-radius:6px;flex-shrink:0}.match-song.playing img{outline:2px solid var(--accent-2)}.match-text{flex-direction:column;min-width:0;display:flex}.match-title{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.match-sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.match-duration{color:var(--text-dim);margin-left:auto;padding-left:8px;font-size:12px}.quality{text-transform:uppercase;letter-spacing:.04em;border-radius:5px;flex-shrink:0;padding:2px 6px;font-size:10.5px;font-weight:700}.quality.uncertain{color:var(--warn);background:#ffd60a24}.quality.poor,.quality.none{color:var(--bad);background:#ff6b6b24}.alt-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;font-size:13px}.alt-toggle:hover{color:var(--text);background:var(--surface-2)}.alternates{background:var(--surface-2);border-radius:12px;flex-direction:column;grid-column:2/-1;gap:2px;margin:4px 0 6px;padding:6px;list-style:none;display:flex}.alt{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;padding:6px 8px;display:flex}.alt:hover{background:#fa233b14}.alt.selected{border-color:var(--accent-2)}.results{margin-top:28px}.results-empty{text-align:center;color:var(--text-dim);font-size:14.5px}.showlist{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.show{background:var(--surface);border:1px solid var(--border);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:14px;padding:13px 16px;transition:border-color .15s,background .15s;display:flex}.show:hover:not(:disabled){border-color:var(--accent-2);background:var(--surface-2)}.show:disabled{opacity:.45;cursor:default}.show-date{color:var(--accent-2);white-space:nowrap;min-width:92px;font-size:13px;font-weight:700}.show-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.show-venue{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.show-tour{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.show-count{color:var(--text-dim);white-space:nowrap;font-size:12.5px}.back-to-results{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-top:20px;padding:6px 0;font-size:13.5px;font-weight:600}.back-to-results:hover{color:var(--text)}@media (width<=640px){.show{flex-wrap:wrap;gap:4px 12px}.show-date{min-width:0}.show-count{margin-left:auto}.show-text{flex-basis:100%;order:3}}.createbar{border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;display:flex}.playlist-name{background:var(--surface);border:1px solid var(--border);min-width:240px;color:var(--text);border-radius:10px;outline:none;flex:1;padding:11px 14px;font-size:14px;font-weight:600}.playlist-name:focus{border-color:var(--accent-2)}.createbar-right{align-items:center;gap:14px;margin-left:auto;display:flex}.count{color:var(--text-dim);white-space:nowrap;font-size:13px}.create{padding:12px 20px;font-size:14px}.created{border-top:1px solid var(--border);background:#34c75914;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.created p{margin:0;font-size:14.5px;line-height:1.5}.setlist-card>.error{margin:8px 0 0;padding:0 20px 16px}.foot{text-align:center;color:var(--text-dim);margin-top:48px;font-size:12.5px}@media (width<=640px){.songrow{grid-template-columns:32px 1fr 28px;grid-template-areas:"check song alt"".match alt"}.include{grid-area:check}.setlist-song{grid-area:song}.match{grid-area:match}.alt-toggle{grid-area:alt}.alternates{grid-column:1/-1}.urlform{flex-direction:column}}
