@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--bg-color: #08090d;--panel-bg: rgba(13, 17, 28, .7);--panel-border: rgba(255, 255, 255, .06);--text-primary: #f8fafc;--text-secondary: #64748b;--text-muted: #475569;--spotify-green: #1db954;--spotify-hover: #1ed760;--accent-purple: #7c3aed;--accent-blue: #2563eb;--accent-purple-glow: rgba(124, 58, 237, .15);--glow-green: rgba(29, 185, 84, .1);--danger: #e11d48;--danger-glow: rgba(225, 29, 72, .08);--font-family: "Plus Jakarta Sans", sans-serif;--transition-smooth: all .3s cubic-bezier(.16, 1, .3, 1);--transition-fast: all .15s ease}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;position:relative}body:before,body:after{content:"";position:fixed;width:40vw;height:40vw;border-radius:50%;filter:blur(160px);z-index:-1;pointer-events:none;opacity:.06;animation:float 25s ease-in-out infinite alternate}body:before{top:-5%;left:-5%;background:radial-gradient(circle,var(--accent-purple) 0%,transparent 70%)}body:after{bottom:-5%;right:-5%;background:radial-gradient(circle,var(--spotify-green) 0%,transparent 70%);animation-delay:-12s}#root{min-height:100vh;display:flex;flex-direction:column}.glass-panel{background:var(--panel-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 12px 32px -8px #00000080;transition:var(--transition-smooth)}.glass-panel:hover{border-color:#ffffff1a;box-shadow:0 16px 40px -8px #0009}@keyframes float{0%{transform:translateY(0) scale(1)}to{transform:translateY(20px) scale(1.02)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinRecord{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-slideup{animation:slideUp .5s cubic-bezier(.16,1,.3,1) forwards}.app-container{max-width:960px;width:100%;margin:0 auto;padding:110px 24px 40px;display:flex;flex-direction:column;align-items:center;flex-grow:1;gap:24px}.main-nav{position:fixed;top:0;left:0;right:0;height:70px;background:#08090dcc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.05);z-index:100;display:flex;justify-content:center}.nav-container{max-width:960px;width:100%;height:100%;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.logo-link{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer}.logo-icon{color:var(--spotify-green)}.logo-text{font-size:1.4rem;font-weight:800;letter-spacing:-.6px;color:var(--text-primary)}.nav-tabs{display:flex;gap:4px;background:#ffffff08;padding:3px;border-radius:12px;border:1px solid rgba(255,255,255,.04)}.nav-tab{padding:8px 16px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;font-size:.85rem;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;gap:6px}.nav-tab:hover{color:var(--text-primary)}.nav-tab.active{background:#ffffff0f;color:var(--text-primary);border:1px solid rgba(255,255,255,.04)}.nav-auth-actions{display:flex;align-items:center;gap:10px}.user-badge-container{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.04)}.user-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--spotify-green)}.user-badge-email{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.btn-nav-auth{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-weight:700;font-size:.8rem;cursor:pointer;transition:var(--transition-fast);text-decoration:none}.btn-nav-auth.btn-login{background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--text-primary)}.btn-nav-auth.btn-login:hover{background:#ffffff0a;border-color:#fff3}.btn-nav-auth.btn-logout{background:#e11d4814;border:1px solid rgba(225,29,72,.15);color:#fda4af}.btn-nav-auth.btn-logout:hover{background:#e11d4824}.hero-header{text-align:center;margin:10px 0;animation:slideUp .5s cubic-bezier(.16,1,.3,1) forwards;max-width:600px}.hero-header h1{font-size:2.2rem;font-weight:800;letter-spacing:-.6px;margin-bottom:8px;line-height:1.25;color:var(--text-primary)}.hero-header h1 span{color:var(--spotify-green)}.hero-header p{color:var(--text-secondary);font-size:.95rem;line-height:1.5}.downloader-box{width:100%;padding:24px;border-radius:16px}.input-group{display:flex;gap:12px}.url-input-wrapper{position:relative;flex-grow:1}.url-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none;transition:var(--transition-fast)}.url-input{width:100%;padding:16px 16px 16px 48px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#08090d80;color:var(--text-primary);font-size:.95rem;outline:none;transition:var(--transition-smooth)}.url-input:focus{border-color:var(--spotify-green);box-shadow:0 0 0 2px #1db95426;background:#08090dcc}.url-input:focus+.url-icon{color:var(--spotify-green)}.btn-fetch{padding:0 24px;border-radius:12px;border:none;background:var(--spotify-green);color:#08090d;font-weight:700;font-size:.95rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:var(--transition-smooth)}.btn-fetch:hover:not(:disabled){background:var(--spotify-hover);transform:translateY(-1px)}.btn-fetch:active:not(:disabled){transform:translateY(0)}.btn-fetch:disabled{opacity:.4;cursor:not-allowed}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%;margin-top:8px}.feature-card{padding:20px;border-radius:14px;background:#ffffff03;border:1px solid rgba(255,255,255,.04);text-align:left;transition:var(--transition-smooth)}.feature-card:hover{background:#ffffff05;border-color:#ffffff14}.feature-icon-wrapper{width:38px;height:38px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--text-secondary)}.feature-card h3{font-size:.95rem;font-weight:700;margin-bottom:6px;color:var(--text-primary)}.feature-card p{color:var(--text-secondary);font-size:.8rem;line-height:1.45}.auth-only-page{width:100%;display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 240px);padding:24px 18px}.auth-landing{min-height:calc(100vh - 180px)}.auth-panel{width:100%;max-width:980px;padding:0;border-radius:32px;overflow:hidden;box-shadow:0 30px 80px #080b1940}.auth-grid{display:grid;grid-template-columns:1fr 1fr;min-height:560px}.auth-hero,.auth-form-card{padding:40px}.auth-hero{display:flex;flex-direction:column;justify-content:center;gap:24px;background:radial-gradient(circle at top left,rgba(102,126,234,.16),transparent 35%),#0c0e17fa}.auth-hero-badge{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:999px;background:#2ed5731f;color:#9bf3c7;font-size:.85rem;font-weight:700}.auth-hero h2{margin:0;font-size:clamp(2rem,2.5vw,3rem);line-height:1.02;color:var(--text-primary)}.auth-hero p{margin:0;max-width:22rem;line-height:1.8;color:var(--text-secondary)}.auth-benefits{list-style:none;padding:0;margin:0;display:grid;gap:14px}.auth-benefits li{display:flex;align-items:center;gap:10px;color:var(--text-primary);font-weight:600}.auth-benefits li:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:10px;background:#2ed57329;color:#81e6d9;font-size:.9rem}.auth-form-card{background:#07080efa;border-left:1px solid rgba(255,255,255,.06)}.auth-form-card .auth-tabs{margin-bottom:24px}.auth-form{display:grid;gap:18px}.input-label{display:flex;flex-direction:column;gap:10px;font-size:.92rem;font-weight:600;color:var(--text-secondary)}.login-form input{width:100%;padding:14px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);outline:none;font-size:.95rem;transition:var(--transition-smooth)}.login-form input:focus{border-color:#667eeab3;box-shadow:0 0 0 4px #667eea1f;background:#ffffff14}.btn-auth{width:100%;margin-top:10px;padding:14px 18px;border-radius:14px;border:none;background:linear-gradient(135deg,#5355eff2,#7951e1f2);color:#fff;font-weight:700;font-size:.95rem;cursor:pointer;transition:transform .2s ease,filter .2s ease}.btn-auth:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}.btn-auth-full{min-height:52px}.divider-row{display:flex;align-items:center;text-align:center;gap:12px;margin:8px 0 18px}.divider-row span{color:var(--text-secondary);font-size:.85rem}.divider-row:before,.divider-row:after{content:"";flex:1;height:1px;background:#ffffff14}.btn-secondary,.btn-guest{width:100%;padding:12px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-primary);font-weight:700;transition:background .2s ease}.btn-guest:hover,.btn-secondary:hover{background:#ffffff14}.auth-footer-note{margin-top:18px;color:var(--text-secondary);font-size:.84rem;line-height:1.7}.auth-error-msg{background:#f43f5e24;border-color:#f43f5e2e}@media (max-width: 980px){.auth-grid{grid-template-columns:1fr}.auth-hero,.auth-form-card{padding:28px}}@media (max-width: 640px){.auth-only-page{min-height:calc(100vh - 140px)}.auth-hero h2{font-size:2.2rem}.auth-benefits li{font-size:.9rem}}.saved-credentials-suggestion{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);color:var(--text-primary);font-size:.85rem}.saved-credentials-actions{display:flex;gap:8px}.btn-secondary{padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--text-primary);font-weight:600;font-size:.8rem;cursor:pointer;transition:var(--transition-fast)}.btn-secondary:hover{background:#ffffff0f}.error-msg{display:flex;align-items:center;gap:8px;color:#fda4af;font-size:.85rem;padding:10px 14px;border-radius:10px;background:#e11d4814;border:1px solid rgba(225,29,72,.15);margin-top:12px}.spinner{animation:spin 1s linear infinite}.dashboard-panel{width:100%;padding:28px;border-radius:20px}.dashboard-title{font-size:1.3rem;font-weight:800;margin-bottom:18px}.settings-user-info{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;color:var(--text-secondary);font-size:.85rem;padding:12px 18px;background:#00000026;border-radius:12px;border:1px solid rgba(255,255,255,.03)}.settings-user-info p strong{color:var(--text-primary)}.dashboard-empty{color:var(--text-secondary);text-align:center;padding:30px 0;font-size:.85rem}.history-list{display:flex;flex-direction:column;gap:16px}.history-item{padding:20px;border-radius:16px;background:#ffffff03;border:1px solid rgba(255,255,255,.04);transition:var(--transition-smooth)}.history-item:hover{background:#ffffff05;border-color:#ffffff14}.history-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.history-item h3{font-size:1rem;font-weight:700;margin-bottom:4px}.history-meta{color:var(--text-secondary);font-size:.8rem}.history-tracks{display:grid;gap:6px;padding:10px 14px;border-left:2px solid rgba(255,255,255,.05);background:#0000001a;border-radius:0 8px 8px 0}.history-track{color:var(--text-secondary);font-size:.8rem;display:flex;gap:8px}.history-track span{font-weight:700;color:var(--text-primary)}.btn-history-download,.history-badge{padding:8px 16px;border-radius:8px;font-size:.8rem;font-weight:700;text-decoration:none;transition:var(--transition-fast)}.btn-history-download{color:#08090d;background:var(--spotify-green)}.btn-history-download:hover{background:var(--spotify-hover)}.btn-history-download-small{padding:5px 10px;font-size:.7rem;border-radius:6px}.history-download-multiple{display:flex;gap:6px;flex-wrap:wrap}.history-badge{display:inline-flex;align-items:center;justify-content:center;background:#ffffff08;color:var(--text-secondary);border:1px solid rgba(255,255,255,.04)}.preview-container{width:100%;animation:slideUp .5s cubic-bezier(.16,1,.3,1) forwards;display:flex;flex-direction:column;gap:20px}.collection-card{display:flex;gap:24px;padding:24px;align-items:center;border-radius:20px;position:relative;overflow:hidden}.cover-art-container{position:relative;width:130px;height:130px;flex-shrink:0}.cover-art{width:100%;height:100%;border-radius:10px;object-fit:cover;box-shadow:0 10px 24px #00000080;border:1px solid rgba(255,255,255,.08);position:relative;z-index:2}.vinyl-record{position:absolute;top:5px;right:-20px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#222,#111 40%,#000,#111,#333);z-index:1;box-shadow:0 8px 18px #0006;transition:var(--transition-smooth);animation:spinRecord 15s linear infinite;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.04)}.vinyl-center{width:40px;height:40px;border-radius:50%;background:var(--text-secondary);border:3px solid #000;display:flex;align-items:center;justify-content:center}.vinyl-dot{width:6px;height:6px;border-radius:50%;background:#000}.collection-card:hover .vinyl-record{right:-30px}.collection-info{display:flex;flex-direction:column;justify-content:center;flex-grow:1;z-index:2;margin-left:10px}.badge{align-self:flex-start;font-size:.7rem;text-transform:uppercase;font-weight:800;letter-spacing:1px;padding:4px 10px;border-radius:99px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);margin-bottom:10px}.badge.youtube-badge{background:#e11d4814;border-color:#e11d4833;color:#fda4af}.collection-title{font-size:1.6rem;font-weight:800;line-height:1.25;margin-bottom:8px;letter-spacing:-.4px}.collection-meta{color:var(--text-secondary);font-size:.85rem;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.track-list-container{border-radius:20px;box-shadow:0 12px 24px -8px #00000080}.track-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding:0 4px}.track-list-title{font-weight:800;font-size:1.15rem}.select-all-label{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-weight:600;font-size:.8rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-fast);padding:4px 10px;border-radius:6px;background:#ffffff05;border:1px solid rgba(255,255,255,.04)}.select-all-label:hover{color:var(--text-primary);background:#ffffff0d}.track-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto;padding-right:8px;margin-bottom:20px}.track-list::-webkit-scrollbar{width:5px}.track-list::-webkit-scrollbar-track{background:transparent}.track-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:99px}.track-item{display:flex;align-items:center;gap:14px;padding:10px 16px;border-radius:10px;background:#ffffff03;border:1px solid rgba(255,255,255,.02);transition:var(--transition-smooth)}.track-item:hover{background:#ffffff08;border-color:#ffffff0d}.checkbox-container{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}.checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{height:18px;width:18px;border-radius:5px;border:2px solid rgba(255,255,255,.12);background-color:#0003;display:flex;align-items:center;justify-content:center;transition:var(--transition-smooth)}.checkbox-container:hover input~.checkmark{border-color:#ffffff40}.checkbox-container input:checked~.checkmark{background-color:var(--spotify-green);border-color:var(--spotify-green)}.checkmark:after{content:"";display:none;width:4px;height:8px;border:solid #08090d;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.checkbox-container input:checked~.checkmark:after{display:block}.track-number{color:var(--text-secondary);font-size:.8rem;width:20px;text-align:center;font-weight:600}.track-item-img{width:36px;height:36px;border-radius:6px;object-fit:cover}.track-details{flex-grow:1}.track-title{font-weight:600;font-size:.9rem;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px;color:var(--text-primary)}.track-artist{color:var(--text-secondary);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.track-duration{color:var(--text-secondary);font-size:.8rem}.download-action-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}.btn-download,.btn-download-all{padding:12px 20px;border-radius:10px;border:none;font-weight:700;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:var(--transition-smooth)}.btn-download-all{background:#ffffff08;border:1px solid rgba(255,255,255,.06);color:var(--text-primary)}.btn-download-all:hover:not(:disabled){background:#ffffff0f;border-color:#ffffff26}.btn-download{background:var(--spotify-green);color:#08090d}.btn-download:hover:not(:disabled){background:var(--spotify-hover)}.btn-download:disabled,.btn-download-all:disabled{opacity:.35;cursor:not-allowed;transform:none!important}.progress-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#06080ed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.progress-card{width:100%;max-width:440px;padding:32px;text-align:center;border-radius:20px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.progress-title{font-size:1.3rem;font-weight:800;margin-bottom:24px}.radial-progress-container{position:relative;width:140px;height:140px;margin:0 auto 24px}.radial-progress-svg{transform:rotate(-90deg);width:100%;height:100%}.radial-progress-bg{fill:none;stroke:#ffffff08;stroke-width:8}.radial-progress-bar{fill:none;stroke:var(--spotify-green);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.progress-text-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;font-weight:800;color:var(--text-primary)}.status-label{font-weight:700;font-size:1rem;margin-bottom:8px;color:var(--text-primary)}.status-sublabel{color:var(--text-secondary);font-size:.85rem;margin-bottom:24px;min-height:40px;line-height:1.45}.btn-complete-download{width:100%;padding:14px;border-radius:10px;border:none;background:var(--spotify-green);color:#08090d;font-weight:700;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:var(--transition-smooth)}.btn-complete-download:hover{background:var(--spotify-hover)}.btn-complete-download-small{padding:8px 14px;font-size:.8rem;border-radius:8px}.download-links-list{display:flex;flex-direction:column;gap:8px;margin-top:14px;max-height:180px;overflow-y:auto;padding-right:4px}.download-links-label{font-size:.85rem;color:var(--text-secondary);text-align:left;margin-bottom:4px;font-weight:600}footer{text-align:center;color:var(--text-secondary);font-size:.8rem;padding:40px 0 20px;margin-top:auto;border-top:1px solid rgba(255,255,255,.04);width:100%;max-width:960px}footer a{color:var(--spotify-green);text-decoration:none;font-weight:600}footer a:hover{text-decoration:underline}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:99px}@media (max-width: 768px){.features-grid{grid-template-columns:1fr;gap:12px}.collection-card{flex-direction:column;text-align:center;padding:20px;gap:16px}.collection-info{margin-left:0;align-items:center}.cover-art-container{width:120px;height:120px}.vinyl-record{display:none}.badge{align-self:center}}@media (max-width: 640px){.app-container{padding:90px 16px 20px}.hero-header h1{font-size:1.6rem}.downloader-box{padding:16px}.input-group{flex-direction:column;gap:10px}.btn-fetch{padding:14px;justify-content:center;width:100%}.track-title{max-width:150px}.track-artist{max-width:130px}.nav-container{padding:0 12px;gap:8px}.logo-text{font-size:1.1rem}.nav-tab{padding:8px}.nav-tab span{display:none}.user-badge-container{padding:6px}.user-badge-email{display:none}.btn-nav-auth{padding:8px}.btn-nav-auth span{display:none}.download-action-bar{flex-direction:column;width:100%;gap:8px}.download-action-bar button,.download-action-bar a{width:100%;justify-content:center;padding:14px}.progress-card{padding:20px 16px}.track-item{padding:8px 12px;gap:10px}.track-details{max-width:calc(100% - 100px)}}
