.mode-choice-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:9999}.mode-choice-box{background:#111;border:1px solid #333;border-radius:12px;padding:3rem;max-width:600px;width:90%}.mode-choice-box h2{font-size:2rem;margin-bottom:.5rem;text-align:center}.mode-choice-subtitle{text-align:center;color:#888;margin-bottom:2rem}.mode-choice-subtitle strong{color:#fff}.mode-choice-buttons{display:flex;flex-direction:column;gap:1rem}.mode-btn{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background:#1a1a1a;border:2px solid #333;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.mode-btn:hover{border-color:#666;background:#222;transform:translateY(-2px)}.mode-btn-admin:hover{border-color:#0f0}.mode-btn-fan:hover{border-color:#fff}.mode-btn-icon{font-size:3rem;flex-shrink:0}.mode-btn-content h3{margin:0 0 .25rem;font-size:1.25rem}.mode-btn-content p{margin:0;color:#888;font-size:.9rem}.admin-dashboard{min-height:100vh;background:var(--color-bg)}.admin-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 0}.admin-nav-content{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.admin-title{font-size:1.5rem;margin:0;color:var(--color-text)}.admin-container{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:200px 1fr;gap:1rem;padding:1rem}.admin-sidebar{display:flex;flex-direction:column;gap:.5rem}.sidebar-btn{background:transparent;border:none;color:var(--color-text-muted);padding:1rem;text-align:left;cursor:pointer;border-radius:4px;font-size:1rem;transition:all .2s}.sidebar-btn:hover{background:var(--color-surface);color:var(--color-text)}.sidebar-btn.active{background:var(--color-primary);color:var(--color-bg);font-weight:600}.admin-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem}.admin-section h2{margin-bottom:.5rem;color:var(--color-text)}.section-description{color:var(--color-text-muted);margin-bottom:1rem}.form-group{margin-bottom:.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-group input[type=text],.form-group input[type=email],.form-group textarea,.form-group select{width:100%;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);padding:.75rem;border-radius:4px;font-size:1rem;font-family:inherit}.form-group textarea{resize:vertical}.form-group small{display:block;margin-top:.25rem;color:var(--color-text-muted);font-size:.875rem}.color-input-group{display:flex;gap:1rem;align-items:center}.color-input-group input[type=color]{width:60px;height:40px;border:1px solid var(--color-border);background:transparent;cursor:pointer}.color-input-group input[type=text]{flex:1}.save-message{background:#00ff001a;border:1px solid #00ff00;color:#0f0;padding:1rem;border-radius:4px;margin-bottom:1.5rem}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;margin-top:1.5rem}.album-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;transition:transform .2s}.album-card:hover{transform:translateY(-2px)}.album-artwork{width:100%;aspect-ratio:1;overflow:hidden;background:var(--color-surface)}.album-artwork img{width:100%;height:100%;object-fit:cover;display:block}.album-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.875rem}.album-info{padding:1rem}.album-info h3{margin:0 0 .5rem;font-size:1rem;color:var(--color-text)}.album-artist{margin:0;font-size:.875rem;color:var(--color-text-muted)}.album-date{margin:.25rem 0 0;font-size:.75rem;color:var(--color-text-muted)}.album-actions{padding:0 1rem 1rem}.upload-btn{width:100%;text-align:center;cursor:pointer;display:block}.upload-btn:hover{opacity:.9}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content.album-editor{max-width:800px}.modal-content h3{margin-top:0;color:var(--color-text)}.form-group input[type=number],.form-group input[type=date]{width:100%;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);padding:.75rem;border-radius:4px;font-size:1rem;font-family:inherit}.album-editor-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.album-editor-section h4{margin-top:0;margin-bottom:1rem;color:var(--color-text)}.album-artwork-editor{display:flex;gap:1rem;align-items:center}.album-artwork-preview{width:150px;height:150px;object-fit:cover;border-radius:4px;border:1px solid var(--color-border)}.album-artwork-placeholder-large{width:150px;height:150px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted)}.track-list{display:flex;flex-direction:column;gap:.5rem}.track-item-editor{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px}.track-info-editor{display:flex;gap:.5rem;align-items:center;flex:1}.track-number{color:var(--color-text-muted);min-width:30px}.track-title{color:var(--color-text);flex:1}.track-controls{display:flex;gap:1rem;align-items:center}.single-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--color-text);white-space:nowrap}.single-checkbox input[type=checkbox]{width:auto;cursor:pointer}.track-price-input{width:80px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:.5rem;border-radius:4px;text-align:right;font-size:.875rem}.album-status{margin:.5rem 0 0;font-size:.75rem;color:var(--color-text-muted)}.album-card{cursor:pointer}.album-card:hover{transform:translateY(-4px)}.track-title-input{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);padding:.25rem .5rem;border-radius:4px;font-size:.875rem;flex:1}.btn-delete{background:transparent;border:1px solid var(--color-border);color:var(--color-text);width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:1.25rem;line-height:1;transition:all .2s}.btn-delete:hover{background:#f44;border-color:#f44;color:#fff}.track-play-btn{background:transparent;border:1px solid var(--color-border);color:var(--color-text);width:32px;height:32px;border-radius:4px;cursor:pointer;font-size:.875rem;margin-right:.5rem;transition:all .2s}.track-play-btn:hover:not(:disabled){background:var(--color-primary);color:var(--color-bg)}.track-play-btn:disabled{opacity:.3;cursor:not-allowed}.track-drag-handle{cursor:grab;color:var(--color-text-muted);font-size:1.2rem;padding:0 .5rem;-webkit-user-select:none;user-select:none;display:flex;align-items:center}.track-drag-handle:active{cursor:grabbing}.track-item-editor.track-dragging{opacity:.5;background:var(--color-surface)}.track-item-editor{transition:transform .2s,opacity .2s}.btn-delete-album{background:transparent;border:2px solid #ff4444;color:#f44;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s;width:100%}.btn-delete-album:hover{background:#f44;color:#fff}:root{--color-bg: #000000;--color-surface: #1a1a1a;--color-border: #333333;--color-text: #ffffff;--color-text-muted: #999999;--color-primary: #ffffff;--color-primary-hover: #e0e0e0;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}.app{min-height:100vh}.landing-page{max-width:600px;margin:0 auto;padding:var(--spacing-md)}.landing-header{text-align:center;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.site-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem}.site-tagline{font-size:.875rem;color:var(--color-text-muted)}.landing-content{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.auth-container{display:flex;justify-content:center}.auth-box{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.auth-box h2{margin-bottom:.5rem;font-size:1.5rem}.auth-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:var(--spacing-md)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.875rem;font-weight:600;color:var(--color-text)}.form-group input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;color:var(--color-text);font-size:.9375rem}.form-group input:focus{outline:none;border-color:var(--color-text)}.form-group input::placeholder{color:var(--color-text-muted);opacity:.5}.password-strength{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:.375rem}.strength-bar{flex:1;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.strength-fill{height:100%;transition:all .3s ease}.strength-label{font-size:.75rem;font-weight:600;min-width:60px}.error-message{background:#ff44441a;border:1px solid #ff4444;color:#f44;padding:var(--spacing-sm);border-radius:var(--radius);font-size:.875rem}.btn-primary{background:var(--color-primary);color:var(--color-bg);border:none;padding:.875rem var(--spacing-md);font-size:.9375rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:background .2s;width:100%}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-toggle{margin-top:var(--spacing-sm);text-align:center;padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.btn-text{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs) 0;font-size:.875rem;text-decoration:none}.btn-text:hover{color:var(--color-text)}.radio-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.radio-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.radio-header h2{font-size:1.5rem;margin-bottom:.25rem}.radio-subtitle{color:var(--color-text-muted);font-size:.875rem}.radio-player{display:flex;flex-direction:column;gap:var(--spacing-md)}.now-playing{background:#000;border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.now-playing-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.5rem}.track-info{display:flex;flex-direction:column;gap:.25rem}.track-title{font-size:1.125rem;font-weight:600}.track-artist{color:var(--color-text-muted);font-size:.9375rem}.radio-controls{display:flex;justify-content:center}.info-section{padding:var(--spacing-md) 0}.info-section h2{text-align:center;font-size:1.25rem;margin-bottom:var(--spacing-md)}.info-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-sm)}.info-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.info-item h3{font-size:1rem;margin-bottom:.25rem}.info-item p{color:var(--color-text-muted);font-size:.875rem}.landing-footer{text-align:center;padding:var(--spacing-md) 0;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem}.main-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--spacing-sm) 0}.nav-content{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;justify-content:space-between;align-items:center}.catalog-view{max-width:1200px;margin:0 auto;padding:var(--spacing-md)}.catalog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.catalog-header h1{font-size:2rem}.user-mode{font-size:.875rem;color:var(--color-text-muted)}.mode-badge{display:inline-block;background:var(--color-surface);border:1px solid var(--color-border);padding:.25rem .75rem;border-radius:4px;color:var(--color-text);font-weight:600;margin-left:var(--spacing-xs)}.albums-grid{display:grid;gap:var(--spacing-lg)}.album-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.album-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.album-header h2{font-size:1.5rem;margin-bottom:.25rem}.album-meta{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-muted)}.artist-name{font-size:.875rem}.album-price{font-size:1rem;font-weight:600;color:var(--color-text)}.track-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:var(--spacing-md)}.track-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs);border-radius:4px;transition:background .2s}.track-item:hover{background:#ffffff0d}.track-number{color:var(--color-text-muted);min-width:2rem;font-size:.875rem}.track-title{flex:1;font-size:.875rem}.track-duration{color:var(--color-text-muted);font-size:.875rem;min-width:3rem;text-align:right}.track-action{margin-left:var(--spacing-sm)}.track-status{font-size:.875rem;padding:.5rem 1rem;border-radius:var(--radius)}.track-status.unavailable{color:var(--color-text-muted);background:transparent}.album-actions{display:flex;justify-content:flex-end;padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.btn-secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--color-surface);border-color:var(--color-text-muted)}.btn-play{background:transparent;border:1px solid var(--color-text);color:var(--color-text);padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.875rem}.btn-play:hover{background:var(--color-text);color:var(--color-bg)}.loading{text-align:center;padding:var(--spacing-md);color:var(--color-text-muted);font-size:.875rem}@media (max-width: 768px){.site-title{font-size:1.5rem}}.radio-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.mute-btn{background:transparent;border:1px solid var(--color-border);color:var(--color-text);font-size:1.5rem;padding:.5rem;border-radius:var(--radius);cursor:pointer;transition:all .2s;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.mute-btn:hover{background:var(--color-surface);border-color:var(--color-text)}.track-info h3{font-size:1.125rem;font-weight:600;margin-bottom:.25rem}.track-info p{color:var(--color-text-muted);font-size:.9375rem}.btn-secondary-outline{background:transparent;color:var(--color-text);border:1px solid var(--color-border);padding:.875rem var(--spacing-md);font-size:.9375rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:all .2s;width:100%;margin-top:var(--spacing-sm)}.btn-secondary-outline:hover{background:var(--color-surface);border-color:var(--color-text)}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2rem;padding:2rem 0}.album-card{cursor:pointer;transition:transform .2s}.album-card:not(.expanded):hover{transform:translateY(-4px)}.album-cover{position:relative;aspect-ratio:1;background:#1a1a1a;border-radius:var(--radius);overflow:hidden}.album-cover img{width:100%;height:100%;object-fit:cover}.album-cover-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#333,#1a1a1a);display:flex;align-items:center;justify-content:center}.album-title-overlay{color:#fff;font-size:1.5rem;font-weight:600;text-align:center;padding:2rem}.album-info-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000e6);padding:1.5rem 1rem 1rem;color:#fff}.album-info-overlay h3{margin:0 0 .25rem;font-size:1.1rem}.album-info-overlay p{margin:0;color:#aaa;font-size:.9rem}.album-card.expanded{grid-column:1 / -1}.album-expanded{cursor:default}.btn-collapse{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--color-text-muted);font-size:1.5rem;cursor:pointer;padding:.5rem;z-index:1}.btn-collapse:hover{color:var(--color-text)}.album-expanded-container{position:relative;width:100%;min-height:500px;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:2rem}.album-artwork-frame{position:absolute;top:0;left:0;right:0;bottom:0;filter:blur(1px) brightness(.4);transform:scale(1.1);z-index:0}.tracklist-overlay{position:relative;z-index:1;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:2rem;width:100%;max-width:600px;box-shadow:0 20px 60px #00000080}.album-header-compact{text-align:center;margin-bottom:1.5rem;position:relative}.btn-close{position:absolute;top:-.5rem;right:-.5rem;background:transparent;border:none;color:var(--color-text-muted);font-size:2rem;cursor:pointer;padding:0;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.btn-close:hover{color:var(--color-text)}.album-header-compact h3{margin:0 0 .5rem;font-size:1.5rem}.artist-name-compact{color:var(--color-text-muted);font-size:.9rem;display:block;margin-bottom:.75rem}.album-price-badge{display:inline-block;background:var(--color-primary);color:var(--color-bg);padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:1.1rem}.album-owned-badge{display:inline-block;background:#0f03;color:#0f0;border:1px solid #00ff00;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem}.track-list-compact{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;max-height:400px;overflow-y:auto}.track-item-compact{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#ffffff0d;border-radius:6px;transition:background .2s}.track-item-compact:hover{background:#ffffff14}.track-item-compact.is-single{border-left:3px solid var(--color-primary)}.track-main{display:flex;align-items:center;gap:.75rem;flex:1}.track-num{color:var(--color-text-muted);font-size:.875rem;min-width:1.5rem}.track-info-compact{flex:1;display:flex;flex-direction:column;gap:.25rem}.track-title-row{display:flex;align-items:center;gap:.5rem}.track-title-compact{font-size:.95rem;color:var(--color-text)}.single-badge{background:var(--color-primary);color:var(--color-bg);padding:.125rem .5rem;border-radius:10px;font-size:.65rem;font-weight:600;text-transform:uppercase}.track-duration-compact{color:var(--color-text-muted);font-size:.8rem}.track-actions-compact{display:flex;align-items:center;gap:.5rem}.btn-play-compact{background:var(--color-primary);color:var(--color-bg);border:none;padding:.5rem;border-radius:50%;cursor:pointer;font-size:.875rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.btn-play-compact:hover:not(:disabled){transform:scale(1.1)}.btn-play-compact:disabled{opacity:.3;cursor:not-allowed}.btn-preview-compact{background:transparent;border:1px solid var(--color-border);color:var(--color-text);padding:.4rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;white-space:nowrap;transition:all .2s}.btn-preview-compact:hover:not(:disabled){background:#ffffff1a;border-color:var(--color-text)}.btn-preview-compact:disabled{opacity:.3;cursor:not-allowed}.btn-buy-track-compact{background:var(--color-primary);color:var(--color-bg);border:none;padding:.4rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;white-space:nowrap;transition:transform .2s}.btn-buy-track-compact:hover{transform:scale(1.05)}.album-buy-section{text-align:center;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.btn-buy-album{background:var(--color-primary);color:var(--color-bg);border:none;padding:1rem 2rem;border-radius:var(--radius);cursor:pointer;font-size:1rem;font-weight:600;transition:transform .2s;width:100%}.btn-buy-album:hover{transform:scale(1.02)}
