.error-container{min-height:100vh;background-color:var(--background);display:flex;align-items:center;justify-content:center}.error-content{text-align:center}.error-message{color:#dc2626;margin-bottom:1rem}.error-description{color:var(--foreground)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;cursor:pointer;text-decoration:none;transition:.2s ease;font-family:inherit;padding:.75rem 1rem;font-size:1rem;font-weight:500;border-radius:1000px;background:blue;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn:hover:not(:disabled){background:#00c;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.btn-sm{padding:.5rem .75rem;font-size:.875rem;font-weight:500;border-radius:1000px}.btn.btn-sm svg{width:14px;height:14px}.btn.btn-md{padding:.75rem 1rem;font-size:1rem;font-weight:500;border-radius:1000px}.btn.btn-md svg{width:16px;height:16px}.btn.btn-lg{padding:.75rem 1.25rem;font-size:1.125rem;font-weight:600;border-radius:1000px}.btn.btn-lg svg{width:18px;height:18px}.btn.btn-xl{padding:1rem 1.5rem;font-size:1.25rem;font-weight:600;border-radius:1000px}.btn.btn-xl svg{width:20px;height:20px}.btn.btn-primary{background:blue;color:#fff}.btn.btn-primary:hover:not(:disabled){background:#00c;transform:translateY(-1px)}.btn.btn-primary:active:not(:disabled){transform:translateY(0)}.btn.btn-secondary{background:#f3f4f6;color:#1f2937}.btn.btn-secondary:hover:not(:disabled){background:#e5e7eb;transform:translateY(-1px)}.btn.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn.btn-spotify{background:#1db954;color:#fff}.btn.btn-spotify:hover:not(:disabled){background:#1ed760;transform:translateY(-1px)}.btn.btn-spotify:active:not(:disabled){transform:translateY(0)}.btn.btn-discogs{background:#333;color:#fff}.btn.btn-discogs:hover:not(:disabled){background:#1a1a1a;transform:translateY(-1px)}.btn.btn-discogs:active:not(:disabled){transform:translateY(0)}.btn.btn-full{width:100%}.btn.btn-pulse{animation:pulse 2s infinite}.btn.btn-pulse:hover{animation:none}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,0,255,.4)}50%{box-shadow:0 0 0 10px rgba(0,0,255,0)}to{box-shadow:0 0 0 0 rgba(0,0,255,0)}}.details-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000;animation:fadeIn .2s ease}.album-details-flyout{position:fixed;top:0;right:0;height:100vh;width:400px;background:var(--background);border-left:1px solid #e5e7eb;box-shadow:0 20px 25px rgba(0,0,0,.15);z-index:1001;animation:slideInRight .3s ease-out;display:flex;flex-direction:column}.details-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-bottom:1px solid #e5e7eb}.details-header h3{font-size:1.25rem;font-weight:600;color:var(--foreground);margin:0}.details-close-btn{background:none;border:none;padding:.5rem;cursor:pointer;border-radius:.25rem;color:var(--foreground);opacity:.7;transition:.2s ease}.details-close-btn:hover{opacity:1;background:#f3f4f6}.details-content{padding:1.25rem;flex:1 1;display:flex;flex-direction:column;gap:1.5rem}.details-album-info{display:flex;gap:1rem;align-items:flex-start}.details-album-cover{width:120px;height:120px;border-radius:.5rem;overflow:hidden;flex-shrink:0}.details-album-cover img{width:100%;height:100%;object-fit:cover}.details-cover-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:2.25rem}.details-album-text{flex:1 1;min-width:0}.details-album-text h4{font-size:1.125rem;font-weight:600;color:var(--foreground);margin:0 0 .25rem;line-height:1.3}.details-album-text p{font-size:1rem;color:var(--foreground);opacity:.8;margin:0 0 .5rem}.details-year{display:inline-block;background:#f3f4f6;color:var(--foreground);opacity:.7;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.recommendation-section{background:#f9fafb;border-radius:.75rem;padding:1.25rem;border:1px solid #e5e7eb}.recommendation-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.recommendation-header h5{font-size:1rem;font-weight:600;color:var(--foreground);margin:0}.recommendation-icon{width:18px;height:18px;color:blue}.reasoning-content p{font-size:.875rem;line-height:1.6;color:var(--foreground);opacity:.8;margin:0;font-style:italic}.details-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@media(max-width:640px){.album-details-flyout{width:100vw;left:0;right:0;border-left:none;border-top:1px solid #e5e7eb}}.main-nav{background:#fff;border-bottom:1px solid #e5e7eb;position:-webkit-sticky;position:sticky;top:0;z-index:1001;padding:.75rem 0}.nav-container{max-width:1400px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}@media(max-width:640px){.nav-container{padding:0 16px}}.nav-logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem .75rem;border-radius:22px;transition:.2s ease;background:none;border:none}.nav-logo:hover{background-color:#f9fafb}.nav-logo-text{font-family:Saans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1.25rem;font-weight:700;color:#000;letter-spacing:letter-spacing(nav)}.nav-right{display:flex;align-items:center;gap:1rem;justify-content:flex-end}.nav-host-link{background:none;border:none;font-size:.875rem;font-weight:600;color:#222;padding:.5rem .75rem;border-radius:22px;cursor:pointer;transition:.2s ease;white-space:nowrap}.nav-host-link:hover{background-color:#f9fafb}.nav-user-menu{position:relative}.nav-user-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid #ddd;border-radius:21px;background:#fff;cursor:pointer;transition:.2s ease}.nav-user-button:hover{box-shadow:0 1px 2px rgba(0,0,0,.05)}.user-avatar{width:24px;height:24px;border-radius:50%;background:blue;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:#fff;border:1px solid #ddd;border-radius:.75rem;box-shadow:0 20px 25px rgba(0,0,0,.15);overflow:hidden;z-index:1003;animation:slideDownAndFade .2s cubic-bezier(.16,1,.3,1)}.menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0);z-index:1001}@keyframes slideDownAndFade{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;cursor:pointer;transition:.2s ease;font-size:.875rem;color:#222;outline:none;border-radius:0}.menu-item:hover{background-color:#f9fafb}.menu-item:focus{outline:2px solid #3b82f6;outline-offset:-2px;border-radius:.75rem}.menu-item.user-info{font-weight:600;cursor:default}.menu-item.user-info:hover{background:none}.menu-divider{height:1px;background:#e5e7eb;margin:.25rem 0}@media(max-width:768px){.nav-container{padding:0 1rem}.nav-host-link,.nav-logo-text{display:none}}.recommendations-section{margin:3rem 0 0}.recommendations-title{font-size:1.25rem;font-weight:600;color:var(--foreground);margin-bottom:1.5rem;text-align:left;line-height:1.4;padding:0}.recommendations-grid{display:flex;flex-wrap:wrap;gap:24px;justify-content:flex-start;padding:0;max-width:none;margin:0}.recommendations-grid>*{flex-grow:0;flex-shrink:0;flex-basis:calc(20% - 19.2px);max-width:calc(20% - 19.2px)}@media(max-width:1100px){.recommendations-grid>*{flex-grow:0;flex-shrink:0;flex-basis:calc(25% - 18px);max-width:calc(25% - 18px)}}@media(max-width:900px){.recommendations-grid>*{flex-grow:0;flex-shrink:0;flex-basis:calc(33.333% - 16px);max-width:calc(33.333% - 16px)}}@media(max-width:640px){.recommendations-grid{gap:16px}.recommendations-grid>*{flex-grow:0;flex-shrink:0;flex-basis:calc(50% - 8px);max-width:calc(50% - 8px)}}@media(max-width:480px){.recommendations-grid>*{flex:0 0 100%;max-width:100%}}@media(max-width:640px){.recommendations-section{margin:2rem auto 0}.recommendations-title{font-size:1.25rem;margin-bottom:1rem}}