*{margin:0;padding:0;box-sizing:border-box}#root{width:100%;min-height:100vh;background:linear-gradient(180deg,#121212,#191919)}.App{min-height:100vh;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(circle at center,#1db954,#121212)}.app-title{font-size:72px;font-weight:900;margin-bottom:16px;background:linear-gradient(135deg,#1db954,#1ed760);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-subtitle{font-size:18px;color:#ffffffb3;margin-bottom:48px}.spotify-login-btn{background:#1db954;color:#fff;padding:14px 48px;font-size:16px;font-weight:600;border:none;border-radius:500px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:1px}.spotify-login-btn:hover{background:#1ed760;transform:scale(1.04);box-shadow:0 8px 24px #1db9544d}.spotify-icon{width:24px;height:24px}.dashboard{min-height:100vh;padding:24px;max-width:1400px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-header h1{font-size:48px;font-weight:900;background:linear-gradient(135deg,#1db954,#1ed760);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-info{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#ffffff0d;border-radius:500px;font-size:14px;color:#ffffffe6}.logout-btn{background:transparent;color:#fff9;border:1px solid rgba(255,255,255,.2);padding:6px 16px;border-radius:500px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease}.logout-btn:hover{color:#fff;border-color:#ffffff80}.tab-navigation{display:flex;gap:8px;margin-bottom:32px;background:#ffffff0d;padding:4px;border-radius:12px;width:fit-content}.tab-button{padding:12px 24px;background:transparent;color:#fff9;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.tab-button:hover{color:#ffffffe6}.tab-button.active{background:#1db954;color:#fff}.dashboard-content{animation:fadeIn .5s ease}.loading{position:fixed;top:24px;right:24px;padding:8px 16px;background:#1db954;border-radius:8px;font-size:12px;font-weight:600;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.currently-playing-section{display:flex;justify-content:center;padding:48px 0}.now-playing-card{display:flex;gap:32px;align-items:center;background:linear-gradient(135deg,rgba(29,185,84,.1) 0%,transparent 100%);padding:32px;border-radius:16px;border:1px solid rgba(29,185,84,.2);max-width:800px;width:100%;animation:slideUp .5s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.album-art-large{width:240px;height:240px;border-radius:8px;box-shadow:0 16px 48px #00000080}.track-info{flex:1}.track-info h2{font-size:32px;font-weight:700;margin-bottom:12px}.artist-name{font-size:20px;color:#1db954;margin-bottom:8px;font-weight:500}.album-name{font-size:16px;color:#fff9;margin-bottom:24px}.playback-bar{display:flex;align-items:center;gap:12px}.duration{font-size:12px;color:#fff9;font-weight:600}.no-playback{text-align:center;padding:64px}.no-playback p{font-size:24px;color:#fff9;margin-bottom:8px}.hint{font-size:16px!important;color:#fff6!important}.recently-played-section{padding:24px 0}.track-list{display:flex;flex-direction:column;gap:12px;max-width:900px;margin:0 auto}.track-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#ffffff0d;border-radius:8px;transition:all .2s ease;cursor:pointer}.track-item:hover{background:#ffffff1a;transform:translate(4px)}.album-art-small{width:48px;height:48px;border-radius:4px}.track-details{flex:1}.track-name{font-size:16px;font-weight:500;margin-bottom:4px}.track-artist{font-size:14px;color:#fff9}.track-meta{text-align:right}.played-at{font-size:12px;color:#fff6;font-weight:500}.top-artists-section{padding:24px 0;max-width:900px;margin:0 auto}.top-artists-section h3{font-size:24px;margin-bottom:24px;text-align:center;color:#ffffffe6}.artist-list{display:flex;flex-direction:column;gap:16px}.artist-item{display:grid;grid-template-columns:48px 1fr 200px;align-items:center;gap:24px;padding:20px;background:#ffffff0d;border-radius:12px;transition:all .2s ease}.artist-item:hover{background:#ffffff14;transform:translateY(-2px)}.rank{font-size:24px;font-weight:900;color:#1db954;text-align:center}.artist-info{display:flex;flex-direction:column;gap:4px}.artist-info .artist-name{font-size:18px;font-weight:600;color:#fff}.listening-time{font-size:14px;color:#ffffff80}.artist-bar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.artist-bar-fill{height:100%;background:linear-gradient(90deg,#1db954,#1ed760);border-radius:4px;transition:width .5s ease}.no-data{text-align:center;padding:48px;color:#fff6;font-size:16px}@media (max-width: 768px){.dashboard{padding:16px}.dashboard-header h1{font-size:32px}.now-playing-card{flex-direction:column;text-align:center}.album-art-large{width:180px;height:180px}.track-info h2{font-size:24px}.artist-item{grid-template-columns:40px 1fr;gap:16px}.artist-bar{display:none}.tab-navigation{width:100%}.tab-button{flex:1;padding:10px 12px;font-size:12px}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
