*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;font-weight:400;color:#fff;background:#0d0d0d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#0d0d0d,#1a1a2e,#2d1b69);position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 80%,rgba(29,185,84,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.1) 0%,transparent 50%);pointer-events:none;z-index:-1}.app-container{min-height:100vh;display:flex;flex-direction:column;background:transparent}.app-header{padding:1rem;text-align:center;background:#1a1a1acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #374151;position:sticky;top:0;z-index:100}.app-header h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:0}.app-header p{display:none}.app-main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:1.5rem}.app-footer{padding:2rem 1.5rem;text-align:center;background:#1a1a1acc;border-top:1px solid #374151;color:#9ca3af;font-size:.875rem}.text-center{text-align:center}.text-primary{color:#8b5cf6!important}.text-muted{color:#9ca3af!important;padding-bottom:10px!important}.text-secondary{color:#d1d5db!important}.text-sm{font-size:.875rem}.flex{display:flex}.gap-1{gap:1rem}.card{background:#252525;border:1px solid #374151;border-radius:20px;padding:2rem;transition:all .3s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#8b5cf6,#ec4899);opacity:0;transition:opacity .3s ease}.card:hover{border-color:#8b5cf680;box-shadow:0 12px 40px #8b5cf626;transform:translateY(-2px)}.card:hover:before{opacity:1}.section{margin-bottom:2rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner{display:inline-block;width:2rem;height:2rem;border:3px solid rgba(139,92,246,.3);border-top-color:#ec4899;border-radius:50%;animation:spin .8s linear infinite}.loading-message{display:flex;align-items:center;gap:1rem;justify-content:center;padding:3rem;color:#d1d5db;font-size:1.125rem}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;padding:1rem 1.5rem;color:#ef4444}.error-message strong{display:block;margin-bottom:.25rem}@media(max-width:768px){.app-header{padding:1rem}.app-header h1{font-size:1.5rem}.app-header p{font-size:1rem}.app-main{padding:1.5rem 1rem}.card{padding:1.5rem}}@media(max-width:480px){.app-header h1{font-size:1.75rem}}.btn{padding:.875rem 1.75rem;border-radius:24px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 4px 16px #8b5cf64d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#a78bfa,#8b5cf6);transform:translateY(-2px);box-shadow:0 6px 24px #8b5cf666}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#252525;color:#fff;border:1px solid #374151}.btn-secondary:hover:not(:disabled){border-color:#ec4899;background:#8b5cf61a;transform:translateY(-2px)}.btn-lg{padding:1.125rem 2.25rem;font-size:1.125rem}.btn-icon-sm{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:50%;background:#8b5cf633;border:none;color:#ec4899;cursor:pointer;font-size:1.125rem;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.btn-icon-sm:hover{background:#8b5cf64d;transform:scale(1.1)}.btn-remove{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;border-radius:12px;padding:.75rem;min-width:44px;font-size:1.125rem;cursor:pointer;transition:all .2s ease}.btn-remove:hover{background:#ef444433;transform:scale(1.05)}.form{display:flex;flex-direction:column;gap:2rem}.form-group{display:flex;flex-direction:row;gap:2rem;align-items:flex-start}.form-label{font-size:1.125rem;font-weight:600;color:#fff}.how-it-works-section{flex:1;background:#8b5cf60d;border:1px solid #374151;border-radius:12px;padding:2.5rem}.how-it-works-title{font-size:1.125rem;font-weight:600;color:#fff;margin-bottom:1rem}.how-it-works-content p{margin:.5rem 0;color:#d1d5db;font-size:.875rem}.artist-input{background:#252525;border:1px solid #374151;border-radius:12px;padding:.875rem 1rem;font-size:1rem;font-family:inherit;color:#fff;transition:all .2s ease}.artist-input:focus{outline:none;border-color:#ec4899;box-shadow:0 0 0 3px #8b5cf61a}.artist-input::placeholder{color:#9ca3af}.artist-input:disabled{opacity:.5;cursor:not-allowed}.artists-list{display:flex;flex-direction:column;gap:.75rem}.artist-input-group{display:flex;gap:.75rem;align-items:stretch}.recommendations-container{margin-top:2rem;margin-bottom:2rem}.recommendations-header-top{background:#252525;border:1px solid #374151;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}.header-info{flex:1;min-width:250px}.header-info h2{margin:0 0 .5rem;font-size:1.75rem;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-info p{margin:0;color:#d1d5db}.header-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.recommendations-table{background:#252525;border:1px solid #374151;border-radius:16px;overflow:hidden}.table-header{display:grid;grid-template-columns:80px 2fr 1.5fr 1fr 120px;padding:1rem 1.5rem;background:#8b5cf61a;border-bottom:1px solid #374151;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:#d1d5db}.table-row{display:grid;grid-template-columns:80px 2fr 1.5fr 1fr 120px;padding:1rem 1.5rem;border-bottom:1px solid #374151;transition:all .2s ease;align-items:center}.table-row:last-child{border-bottom:none}.table-row:hover{background:#8b5cf60d}.table-row.selected{background:#8b5cf61a}.col-select{display:flex;align-items:center;gap:.75rem}.row-number{color:#9ca3af;font-size:.875rem;min-width:24px}.song-checkbox{width:20px;height:20px;cursor:pointer;accent-color:#8b5cf6}.col-title strong{color:#fff;font-size:1rem;display:block;margin-bottom:.25rem}.song-description{font-size:.875rem;color:#9ca3af;margin:0}.col-artist{color:#d1d5db}.genre-tag{display:inline-block;padding:.375rem .75rem;background:#8b5cf633;border:1px solid rgba(139,92,246,.3);border-radius:16px;font-size:.875rem;color:#ec4899;font-weight:500}.col-actions{display:flex;gap:.5rem;justify-content:flex-end}.success-container{background:#252525;border:1px solid #374151;border-radius:24px;padding:3rem 2rem;text-align:center;max-width:600px;margin:2rem auto}.success-icon{font-size:5rem;line-height:1;margin-bottom:1.5rem;animation:successPop .5s ease-out}@keyframes successPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.success-title{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.75rem}.success-description{font-size:1.125rem;color:#d1d5db;margin-bottom:2rem}.success-actions{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.success-stats{display:flex;justify-content:center;gap:3rem;padding-top:2rem;border-top:1px solid #374151}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-number{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.stat-label{font-size:.875rem;color:#d1d5db;text-transform:uppercase;letter-spacing:.05em}.playlist-container{background:#252525;border:1px solid #374151;border-radius:16px;padding:2rem}.playlist-header{margin-bottom:2rem}.playlist-header h2{font-size:1.75rem;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.playlist-stats{display:flex;gap:2rem;margin-bottom:2rem}.stat span{display:block}.stat span:first-child{font-size:2rem;font-weight:700;color:#8b5cf6}.stat span:last-child{font-size:.875rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.playlist-songs{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.playlist-songs::-webkit-scrollbar{width:8px}.playlist-songs::-webkit-scrollbar-track{background:#1a1a1a;border-radius:4px}.playlist-songs::-webkit-scrollbar-thumb{background:#374151;border-radius:4px}.playlist-songs::-webkit-scrollbar-thumb:hover{background:#ec4899}.playlist-song{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#8b5cf60d;border:1px solid #374151;border-radius:12px;transition:all .2s ease}.playlist-song:hover{background:#8b5cf61a;transform:translate(4px)}.song-info{flex:1}.song-info .song-title{color:#fff;font-weight:600;margin-bottom:.25rem}.song-info .song-artist{color:#d1d5db;font-size:.875rem}.song-number{margin-right:1rem;color:#8b5cf6;font-weight:700;min-width:30px;font-size:1rem}.song-genre{font-size:.85rem;color:#ec4899;margin-top:.25rem}.playlist-preview{background:#252525;border:1px solid #374151;border-radius:16px;padding:2rem;margin-bottom:2rem}.playlist-title{font-size:1.75rem;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700;color:#8b5cf6}.stat-label{font-size:.875rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.song-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#8b5cf60d;border:1px solid #374151;border-radius:12px;transition:all .2s ease}.song-item:hover{background:#8b5cf61a;transform:translate(4px)}.song-title{color:#fff;font-weight:600;margin-bottom:.25rem}.song-artist{color:#d1d5db;font-size:.875rem}.song-actions{display:flex;gap:.5rem}.btn-icon{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:50%;background:#ec489933;border:none;color:#ec4899;cursor:pointer;font-size:1.125rem;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:#ec48994d;transform:scale(1.1)}.export-section{text-align:center;margin-top:2rem}.export-title{font-size:1.25rem;color:#fff;margin-bottom:1rem}.export-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.form-actions{display:flex;gap:1rem;align-items:stretch}.btn-add{flex:1}.btn-submit{flex:2}.btn-export{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;box-shadow:0 4px 16px #ec48994d}.btn-export:hover:not(:disabled){background:linear-gradient(135deg,#f472b6,#ec4899);transform:translateY(-2px);box-shadow:0 6px 24px #ec489966}@media(max-width:768px){.form-group{flex-direction:column}.recommendations-header-top{flex-direction:column;align-items:stretch}.header-info{text-align:center}.header-actions{flex-direction:column}.header-actions button{width:100%}.table-header{display:none}.table-row{grid-template-columns:1fr;gap:.75rem;padding:1.25rem 1rem}.col-select{grid-column:1/-1;justify-content:space-between}.col-title,.col-artist,.col-genre,.col-actions{grid-column:1/-1}.col-actions{justify-content:flex-start}.success-container{padding:2rem 1.5rem}.success-icon{font-size:4rem}.success-title{font-size:1.5rem}.success-stats{gap:2rem}.stat-number{font-size:2rem}.playlist-stats{gap:1.5rem}.export-actions,.form-actions{flex-direction:column}.btn-add,.btn-submit{flex:none;width:100%}}@media(max-width:480px){.btn{width:100%}.artist-input-group{flex-direction:row}}
