:root{--bg:#0a0a0a;--surface:#141414;--surface-hover:#1a1a1a;--border:#222;--text:#e5e5e5;--text-dim:#888;--accent:#1DB954;--accent-dim:rgba(29,185,84,0.15)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.container{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.header{text-align:center;margin-bottom:2.5rem}.header h1{font-size:2rem;font-weight:700;letter-spacing:-.02em}.subtitle{color:var(--text-dim);font-size:.95rem;margin-top:.5rem}.playlist-grid{display:flex;flex-direction:column;gap:2rem}.playlist-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.playlist-card-header{padding:1.5rem 1.5rem 1rem}.playlist-card-header h2{font-size:1.3rem;font-weight:600;margin-bottom:.3rem}.date,.vibe{color:var(--text-dim);font-size:.85rem}.vibe{margin-top:.4rem;font-style:italic}.track-list{padding:0 .75rem .75rem}.track{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:10px;text-decoration:none;color:var(--text);transition:background .15s}.track:hover{background:var(--surface-hover)}.track-art{border-radius:6px;flex-shrink:0;object-fit:cover}.track-info{min-width:0;flex:1 1}.track-name{font-size:.9rem;font-weight:500}.track-artist,.track-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{font-size:.8rem;color:var(--text-dim)}.track-new{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-dim);padding:2px 6px;border-radius:4px;margin-bottom:2px}.track-overflow{text-align:center;color:var(--text-dim);font-size:.8rem;padding:.5rem}.spotify-link{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem;margin:0 1rem 1rem;background:var(--accent);color:#000;font-weight:600;font-size:.9rem;text-decoration:none;border-radius:10px;transition:opacity .15s}.spotify-link:hover{opacity:.9}.footer{font-size:.8rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.empty-state,.footer{text-align:center;color:var(--text-dim)}.empty-state{padding:4rem 2rem}.empty-state h2{font-size:1.5rem;color:var(--text);margin-bottom:.5rem}@media (max-width:600px){.container{padding:1.5rem 1rem}.header h1{font-size:1.5rem}.track-art{width:40px!important;height:40px!important}}