:root{--bg-primary:#0a0a1a;--bg-secondary:#12122a;--card-bg:#1a1a3e;--border-color:#ffffff14;--accent-color:#8b5cf6;--accent-hover:#7c3aed;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--gradient-1:linear-gradient(135deg,#8b5cf6,#ec4899);--gradient-2:linear-gradient(135deg,#06b6d4,#8b5cf6)}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a1a;background:var(--bg-primary);color:#f1f5f9;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#12122a;background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#8b5cf6;background:var(--accent-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#7c3aed;background:var(--accent-hover)}::selection{background:color-mix(in srgb,#8b5cf6 40%,#0000);background:color-mix(in srgb,var(--accent-color) 40%,#0000)}.mood-selector{margin-bottom:1.5rem}.mood-selector h3{font-size:1.1rem;margin-bottom:1rem}.mood-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.mood-btn{align-items:center;background:var(--card-bg);border:2px solid #0000;border-radius:16px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem .75rem;transition:all .3s ease}.mood-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.mood-btn.active{background:color-mix(in srgb,var(--mood-color) 15%,var(--card-bg));border-color:var(--mood-color);box-shadow:0 0 20px color-mix(in srgb,var(--mood-color) 30%,#0000)}.mood-emoji{font-size:2rem}.mood-label{font-size:.9rem;font-weight:600}.activity-selector{margin-bottom:1.5rem}.activity-selector h3{font-size:1.1rem;margin-bottom:1rem}.activity-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.activity-btn{align-items:center;background:var(--card-bg);border:2px solid #0000;border-radius:16px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem .75rem;transition:all .3s ease}.activity-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.activity-btn.active{background:color-mix(in srgb,var(--activity-color) 15%,var(--card-bg));border-color:var(--activity-color);box-shadow:0 0 20px color-mix(in srgb,var(--activity-color) 30%,#0000)}.activity-emoji{font-size:2rem}.activity-label{font-size:.9rem;font-weight:600}.genre-selector{margin-bottom:1.5rem}.genre-selector h3{font-size:1.1rem;margin-bottom:1rem}.genre-grid{display:flex;flex-wrap:wrap;gap:.75rem}.genre-btn{background:var(--card-bg);border:2px solid #0000;border-radius:50px;color:var(--text-primary);cursor:pointer;font-weight:600;padding:.6rem 1.2rem;transition:all .3s ease}.genre-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.genre-btn.active{background:color-mix(in srgb,var(--genre-color) 15%,var(--card-bg));border-color:var(--genre-color);box-shadow:0 0 20px color-mix(in srgb,var(--genre-color) 30%,#0000)}.custom-rules{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;margin-bottom:1.5rem;padding:1.25rem}.custom-rules h3{font-size:1.1rem;margin-bottom:1rem}.rules-grid{display:flex;flex-direction:column;gap:1rem}.rule-group label{color:var(--text-secondary);display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.rule-options{display:flex;flex-wrap:wrap;gap:.5rem}.rule-btn{align-items:center;background:#0000;border:2px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;gap:.15rem;padding:.5rem 1rem;transition:all .2s ease}.rule-btn small{color:var(--text-secondary);font-size:.7rem}.rule-btn.active,.rule-btn:hover{border-color:var(--accent-color)}.rule-btn.active{background:color-mix(in srgb,var(--accent-color) 15%,#0000);color:var(--accent-color)}.song-card{align-items:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:1rem;padding:.75rem;position:relative;transition:all .3s ease}.song-card:hover{box-shadow:0 2px 12px #0000001a;transform:translateX(4px)}.song-card.playing{background:color-mix(in srgb,var(--accent-color) 10%,var(--card-bg));border-color:var(--accent-color)}.song-cover{border-radius:8px;cursor:pointer;flex-shrink:0;height:56px;overflow:hidden;position:relative;width:56px}.song-cover img{height:100%;object-fit:cover;width:100%}.play-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .2s}.song-cover:hover .play-overlay{opacity:1}.play-icon{color:#fff;font-size:1.2rem}.song-info{flex:1 1;min-width:0}.song-title{font-size:.95rem;margin:0}.song-artist,.song-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-artist{color:var(--text-secondary);font-size:.85rem;margin:.15rem 0}.song-meta{color:var(--text-tertiary);display:flex;font-size:.75rem;gap:.5rem}.song-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.tag{background:color-mix(in srgb,var(--accent-color) 10%,#0000);border-radius:4px;color:var(--accent-color);font-size:.65rem;padding:.15rem .4rem}.remove-btn{align-items:center;background:color-mix(in srgb,#ef4444 15%,#0000);border:none;border-radius:50%;color:#ef4444;cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:28px;justify-content:center;transition:all .2s;width:28px}.remove-btn:hover{background:#ef4444;color:#fff}.playlist-view{margin-bottom:1.5rem}.playlist-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.playlist-header h3{font-size:1.1rem}.save-btn{background:var(--accent-color);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.save-btn:hover{opacity:.9;transform:translateY(-1px)}.playlist-songs{display:flex;flex-direction:column;gap:.5rem}.playlist-empty{color:var(--text-secondary);padding:3rem;text-align:center}.empty-icon{font-size:3rem;margin-bottom:1rem}.music-player{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0f0f1ef2;border-top:1px solid #ffffff1a;bottom:0;left:0;position:fixed;right:0;z-index:1000}.player-blur{background-position:50%;background-size:cover;filter:blur(40px) saturate(1.5);inset:0;opacity:.2;position:absolute;z-index:-1}.player-content{gap:1.5rem;margin:0 auto;max-width:1400px;padding:.75rem 1.5rem}.player-content,.player-left{align-items:center;display:flex}.player-left{flex-shrink:0;gap:1rem;min-width:250px}.player-cover{border-radius:8px;height:52px;object-fit:cover;width:52px}.player-song-info{min-width:0}.player-title{color:#fff;font-size:.9rem;margin:0}.player-artist,.player-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-artist{color:#ffffffb3;font-size:.8rem;margin:.1rem 0}.player-album{color:#ffffff80;font-size:.7rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-center{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem}.player-controls{align-items:center;display:flex;gap:1.25rem}.ctrl-btn{background:none;border:none;border-radius:50%;color:#fffc;cursor:pointer;font-size:1rem;line-height:1;padding:.4rem;transition:all .2s}.ctrl-btn:hover{color:#fff;transform:scale(1.1)}.play-btn{align-items:center;background:var(--accent-color);border-radius:50%;color:#fff!important;display:flex;font-size:1rem;height:40px;justify-content:center;width:40px}.play-btn:hover{transform:scale(1.1)}.progress-bar{align-items:center;display:flex;gap:.5rem;max-width:500px;width:100%}.time{color:#ffffff80;font-size:.7rem;min-width:35px;text-align:center}.progress-track{background:#fff3;border-radius:2px;flex:1 1;height:4px;overflow:hidden}.progress-fill{background:var(--accent-color);border-radius:2px;height:100%;transition:width .1s linear}.player-right{flex-shrink:0;gap:.5rem}.player-right,.volume-control{align-items:center;display:flex}.volume-control{gap:.35rem}.volume-slider{-webkit-appearance:none;background:#fff3;border-radius:2px;height:4px;outline:none;width:80px}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;cursor:pointer;height:12px;width:12px}.close-btn{color:#fff6!important}.close-btn:hover{color:#fffc!important}@media (max-width:768px){.player-content{flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem}.player-left{flex:1 1;min-width:auto}.player-center{order:3;width:100%}.player-right{flex-shrink:1}.volume-slider{width:60px}}.theme-playlists{margin-bottom:1.5rem}.theme-playlists h3{font-size:1.1rem;margin-bottom:1rem}.theme-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.theme-btn{align-items:center;background:var(--card-bg);border:2px solid var(--border-color);border-radius:12px;color:var(--text-primary);cursor:pointer;display:flex;font-weight:600;gap:.75rem;padding:1rem;transition:all .3s ease}.theme-btn:hover{border-color:var(--accent-color);transform:translateY(-2px)}.theme-btn.active{background:color-mix(in srgb,var(--accent-color) 10%,var(--card-bg));border-color:var(--accent-color)}.theme-emoji{font-size:1.5rem}.playlist-library{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;margin-bottom:1.5rem;padding:1.25rem}.playlist-library h3{font-size:1.1rem;margin-bottom:1rem}.empty-library{color:var(--text-secondary);padding:2rem;text-align:center}.empty-library .empty-icon{font-size:2.5rem;margin-bottom:.75rem}.empty-library .hint{color:var(--text-tertiary);font-size:.85rem}.library-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.filter-btn{background:#0000;border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.4rem .9rem;transition:all .2s}.filter-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.library-list{display:flex;flex-direction:column;gap:.75rem}.library-item{align-items:center;background:color-mix(in srgb,var(--accent-color) 5%,#0000);border:1px solid var(--border-color);border-radius:12px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.library-item:hover{border-color:var(--accent-color)}.library-item-info h4{font-size:.95rem;margin:0}.library-item-info p{color:var(--text-secondary);font-size:.8rem;margin:.2rem 0}.library-item-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.lib-tag{background:color-mix(in srgb,var(--accent-color) 15%,#0000);border-radius:10px;color:var(--accent-color);font-size:.7rem;padding:.15rem .5rem}.library-item-actions{display:flex;gap:.5rem}.load-btn{background:var(--accent-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;padding:.4rem .9rem;transition:all .2s}.load-btn:hover{opacity:.9}.delete-btn{background:#0000;border:1px solid #ef44444d;border-radius:8px;cursor:pointer;font-size:.85rem;padding:.4rem .6rem;transition:all .2s}.delete-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}.music-discovery{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;margin-bottom:1.5rem;padding:1.25rem}.music-discovery h3{font-size:1.1rem;margin-bottom:1.25rem}.discovery-section{margin-bottom:1.5rem}.discovery-section:last-child{margin-bottom:0}.discovery-section h4{font-size:1rem;margin-bottom:.75rem}.discovery-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.discovery-card{align-items:center;background:color-mix(in srgb,var(--accent-color) 5%,#0000);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;position:relative;transition:all .2s}.discovery-card:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.discovery-card .rank{background:var(--accent-color);border-radius:6px;color:#fff;font-size:.7rem;font-weight:700;left:-.25rem;padding:.1rem .4rem;position:absolute;top:-.25rem}.discovery-card img{border-radius:8px;flex-shrink:0;height:48px;object-fit:cover;width:48px}.discovery-info{min-width:0}.discovery-title{font-size:.85rem;margin:0}.discovery-artist,.discovery-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discovery-artist{color:var(--text-secondary);font-size:.75rem;margin:.15rem 0 0}.artist-select select{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-size:.9rem;padding:.6rem 1rem;width:100%}.recommendations{background:color-mix(in srgb,var(--accent-color) 8%,#0000);border-radius:12px;margin-top:1rem;padding:1rem}.rec-intro{font-size:.9rem;margin:0 0 .75rem}.rec-artists{display:flex;flex-wrap:wrap;gap:.5rem}.rec-artist{background:color-mix(in srgb,var(--accent-color) 20%,#0000);border-radius:20px;color:var(--accent-color);font-size:.85rem;font-weight:600;padding:.4rem 1rem}.social-share{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-top:1rem;padding:1rem}.social-share h4{font-size:.95rem;margin:0 0 .75rem}.share-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.share-btn{border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.share-btn:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.share-btn.twitter{background:#1da1f2}.share-btn.facebook{background:#4267b2}.share-btn.copy{background:var(--accent-color)}.app{margin:0 auto;max-width:1200px;padding:0 1.5rem 5rem}.app-header{margin-bottom:1rem;padding:2rem 0 1.5rem;text-align:center}.app-header h1{-webkit-text-fill-color:#0000;background:var(--gradient-1);-webkit-background-clip:text;background-clip:text;font-size:2rem;margin:0}.app-header p{color:var(--text-secondary);font-size:1rem;margin:.5rem 0 0}.app-nav{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.nav-btn{background:#0000;border:2px solid var(--border-color);border-radius:50px;color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem;transition:all .3s}.nav-btn:hover{border-color:var(--accent-color);color:var(--text-primary)}.nav-btn.active{background:var(--gradient-1);border-color:#0000;color:#fff}.generator-section{align-items:flex-start;display:flex;gap:2rem}.generator-controls{flex:0 0 380px;max-height:calc(100vh - 2rem);overflow-y:auto;padding-right:.5rem;position:sticky;top:1rem}.generator-controls::-webkit-scrollbar{width:4px}.generator-result{flex:1 1;min-width:0}.generate-btn{background:var(--gradient-1);border:none;border-radius:14px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;letter-spacing:.5px;margin-bottom:1.5rem;padding:1rem;transition:all .3s;width:100%}.generate-btn:hover{box-shadow:0 8px 25px #8b5cf666;transform:translateY(-2px)}.generate-btn:active{transform:translateY(0)}.save-modal-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.save-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;max-width:420px;padding:2rem;width:90%}.save-modal h3{margin:0 0 1rem}.save-modal input{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;color:var(--text-primary);font-size:1rem;margin-bottom:.75rem;outline:none;padding:.75rem 1rem;width:100%}.save-modal input:focus{border-color:var(--accent-color)}.save-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.save-modal .modal-actions button{border:none;border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem;transition:all .2s}.modal-cancel{background:#0000;border:1px solid var(--border-color)!important;color:var(--text-secondary)}.modal-save{background:var(--accent-color);color:#fff}.discovery-page,.library-page{padding:0 0 2rem}@media (max-width:900px){.generator-section{flex-direction:column}.generator-controls{flex:none;max-height:none;padding-right:0;position:static}}@media (max-width:600px){.app{padding:0 .75rem 5rem}.app-header h1{font-size:1.5rem}.nav-btn{font-size:.8rem;padding:.5rem .9rem}}
/*# sourceMappingURL=main.d2e29de4.css.map*/