:root{--bg-primary: #0a0e27;--bg-secondary: #1a1f3a;--bg-tertiary: #2a3050;--accent-primary: #00ff88;--accent-secondary: #ff6b35;--text-primary: #ffffff;--text-secondary: #b0b8d4;--border: #3a4060}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}#root{width:100%;height:100%}.app{width:100%;height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);position:relative}.dark-theme{--bg-primary: #0a0e27;--bg-secondary: #1a1f3a;--text-primary: #ffffff;--accent-primary: #00ff88}.splash-screen{justify-content:center;align-items:center}.splash-content{text-align:center;width:90%;max-width:400px}.splash-logo h1{font-size:4rem;font-weight:900;background:linear-gradient(135deg,#0f8,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px;letter-spacing:-2px}.splash-subtitle{font-size:1.2rem;color:var(--accent-secondary);font-weight:700;letter-spacing:3px;margin-bottom:40px}.splash-text{margin:40px 0;font-size:1rem;color:var(--text-secondary);line-height:1.8}.splash-text p{margin:8px 0}.registration-screen{justify-content:flex-start;padding:20px;overflow-y:auto}.reg-container{width:100%;max-width:400px;margin:0 auto}.reg-header{text-align:center;margin-bottom:30px;margin-top:20px}.reg-header h1{font-size:2.5rem;font-weight:900;background:linear-gradient(135deg,#0f8,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:5px}.reg-header p{color:var(--text-secondary);font-size:.9rem}.reg-subtitle{color:var(--accent-primary);font-weight:700;margin-top:10px;letter-spacing:2px}.tc-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:20px;text-align:center}.tc-box p{font-size:.9rem;color:var(--text-secondary);margin-bottom:8px}.tc-box a{color:var(--accent-primary);text-decoration:none;font-weight:600;display:block;margin:10px 0}.tc-accept{width:100%;padding:12px;margin-top:15px;background:var(--bg-tertiary);border:2px solid var(--border);color:var(--text-primary);border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s ease}.tc-accept:hover{border-color:var(--accent-primary)}.tc-accept.accepted{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.form-group{margin-bottom:15px}.form-group label{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:6px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.form-group input{width:100%;padding:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:1rem;transition:all .3s ease}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00ff881a}.form-group input::placeholder{color:var(--text-secondary)}.btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-primary);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px;margin-top:10px}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #00ff884d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.large{padding:16px;font-size:1.1rem;margin-top:30px}.header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(180deg,var(--bg-secondary),var(--bg-primary));border-bottom:1px solid var(--border);gap:10px}.header-left h1{font-size:1.5rem;font-weight:900;background:linear-gradient(135deg,#0f8,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;line-height:1}.header-left .venue-name{font-size:.75rem;color:var(--text-secondary);margin:2px 0 0}.header-right{display:flex;align-items:center;gap:8px}.badge{font-size:.75rem;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-weight:600}.badge.live{color:#f44}.badge.songs{color:var(--accent-primary)}.btn-profile{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:1.2rem;transition:all .3s ease}.btn-profile:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.search-screen{flex:1;display:flex;flex-direction:column;overflow:hidden}.search-controls{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border)}.search-input{flex:1;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95rem}.search-input::placeholder{color:var(--text-secondary)}.search-input:focus{outline:none;border-color:var(--accent-primary)}.btn-venue{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .3s ease}.btn-venue:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.results-container{flex:1;overflow-y:auto;display:flex;flex-direction:column}.empty-state{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px 20px}.logo-text{font-size:2rem;font-weight:900;background:linear-gradient(135deg,#0f8,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:15px}.empty-msg{font-size:1.1rem;color:var(--text-primary);margin-bottom:10px}.empty-hint{font-size:.85rem;color:var(--text-secondary)}.results-list{padding:8px}.result-item{padding:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;margin-bottom:8px;cursor:pointer;transition:all .3s ease}.result-item:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);box-shadow:0 0 0 3px #00ff881a}.result-title{font-weight:600;color:var(--text-primary);margin-bottom:4px}.result-artist{font-size:.85rem;color:var(--text-secondary)}.loading,.no-results{padding:40px 20px;text-align:center;color:var(--text-secondary);flex:1;display:flex;align-items:center;justify-content:center}.key-screen{flex:1;display:flex;flex-direction:column;padding:20px;overflow-y:auto}.btn-back{align-self:flex-start;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;cursor:pointer;font-weight:600;margin-bottom:20px;transition:all .3s ease}.btn-back:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.song-details{text-align:center;margin-bottom:40px;padding:20px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border)}.song-details h2{font-size:1.5rem;margin-bottom:8px;color:var(--text-primary)}.song-details .artist{color:var(--text-secondary);font-size:1rem}.key-control{text-align:center;margin-bottom:40px}.key-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:15px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.key-buttons{display:flex;align-items:center;justify-content:center;gap:20px}.key-btn{width:50px;height:50px;border-radius:50%;background:var(--bg-tertiary);border:2px solid var(--border);color:var(--text-primary);font-size:1.5rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.key-btn:hover{border-color:var(--accent-primary);background:var(--bg-secondary);box-shadow:0 0 0 3px #00ff881a}.key-display{font-size:2rem;font-weight:900;color:var(--accent-primary);min-width:60px}.btn-request{width:100%;padding:16px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-primary);border:none;border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:2px;margin-top:auto}.btn-request:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #00ff884d}.btn-request:disabled{opacity:.6;cursor:not-allowed}.profile-screen{padding:0}.profile-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.profile-header h2{flex:1;margin:0;font-size:1.3rem}.profile-form{padding:20px;overflow-y:auto}.tip-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px;text-align:center;margin:20px 0}.tip-title{font-size:1rem;color:var(--text-primary);margin-bottom:12px;font-weight:600}.btn-tip{width:100%;padding:12px;background:var(--bg-tertiary);border:2px solid var(--accent-secondary);color:var(--accent-secondary);border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;margin:10px 0}.btn-tip:hover{background:var(--accent-secondary);color:var(--bg-primary)}.tip-hint{font-size:.85rem;color:var(--text-secondary);margin-top:10px}.venue-select{padding:20px;overflow-y:auto;flex:1}.venue-select h2{margin-bottom:20px;font-size:1.5rem}.venue-list{display:grid;gap:10px}.venue-btn{padding:16px;background:var(--bg-secondary);border:2px solid var(--border);color:var(--text-primary);border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center;text-transform:uppercase;letter-spacing:1px}.venue-btn:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.venue-btn.active{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}@media (max-width: 480px){.splash-logo h1{font-size:3rem}.btn-primary{padding:12px;font-size:.95rem}.key-buttons{gap:15px}.key-btn{width:45px;height:45px;font-size:1.3rem}.key-display{font-size:1.8rem}.header-left h1{font-size:1.2rem}.result-item{padding:10px;margin-bottom:6px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}
