:root{--bg-primary: #ffffff;--bg-secondary: #f1f5f9;--bg-card: #ffffff;--bg-elevated: #e2e8f0;--bg-input: #f1f5f9;--accent: #ea580c;--accent-muted: rgba(234, 88, 12, .08);--accent-hover: #c2410c;--accent-light: #ffedd5;--accent-gradient: linear-gradient(135deg, #ea580c 0%, #f97316 50%, #fb923c 100%);--accent-gradient-subtle: linear-gradient(135deg, #ea580c 0%, #f97316 100%);--gold: #f59e0b;--gold-muted: rgba(245, 158, 11, .08);--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--text-subtle: #94a3b8;--text-inverse: #ffffff;--border: #e2e8f0;--border-light: #f1f5f9;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--spotify-green: #1db954}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body.main-app{overflow:hidden}body.mobile-app{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-secondary);color:var(--text-primary);line-height:1.5}#root{height:100%}@media(pointer:coarse){*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-elevated)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input{font-family:inherit}@media(orientation:portrait)and (max-width:768px){body.main-app{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}}.ad-banner-container{position:relative;background:#0000004d;border-radius:8px;overflow:hidden;min-height:50px}.ad-placeholder{background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border:1px solid rgba(99,102,241,.3)}.ad-placeholder-content{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;min-height:50px}.ad-placeholder-icon{font-size:1.5rem}.ad-placeholder-text{color:#a5b4fc;font-size:.9rem;font-weight:500}.ad-demo{background:linear-gradient(135deg,#000c,#1e1e32e6);border:1px solid var(--ad-color, #6366f1);border-left:3px solid var(--ad-color, #6366f1)}.ad-demo-content{display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:50px}.ad-demo-icon{font-size:1.8rem;flex-shrink:0}.ad-demo-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ad-demo-title{color:#fff;font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-demo-desc{color:#94a3b8;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-demo-cta{padding:6px 14px;border:none;border-radius:6px;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:transform .15s,opacity .15s}.ad-demo-cta:hover{transform:scale(1.05);opacity:.9}.ad-demo-cta:active{transform:scale(.98)}.ad-banner{display:block;width:100%}.ad-label{position:absolute;top:4px;right:8px;font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.bottom-ad-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:8px;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,transparent 100%);pointer-events:none}.bottom-ad-wrapper .ad-banner-container{pointer-events:all;max-width:728px;margin:0 auto}.bottom-ad-wrapper .ad-label{color:#888}.search-ad{margin:15px 0;border:1px solid rgba(255,255,255,.1)}.library-header .library-ad{margin:0!important;margin-top:.5rem!important;border-radius:8px;flex-shrink:0;display:block!important;min-height:50px!important;visibility:visible!important;opacity:1!important;width:100%}.library-footer .library-ad .ad-banner-container,.library-footer .library-ad.ad-banner-container{padding:6px 10px!important;min-height:45px!important}.library-footer .library-ad span[style*="fontSize: '1.8rem'"],.library-footer .library-ad span:first-child{font-size:1.4rem!important}.library-footer .library-ad span[style*="fontSize: '0.95rem'"]{font-size:.85rem!important}.library-footer .library-ad span[style*="fontSize: '0.8rem'"]{font-size:.75rem!important}.library-footer .library-ad button{padding:4px 10px!important;font-size:.7rem!important}.mobile-footer-ad{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:8px;background:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.8) 50%,transparent 100%)}.mobile-footer-ad .footer-ad{margin:0 auto;max-width:100%;border-radius:8px}.ad-banner-container:empty{display:none}.ad-banner-container{animation:fadeIn .3s ease}@media(max-width:768px){.bottom-ad-wrapper{padding:5px}.bottom-ad-wrapper .ad-banner-container{min-height:50px}}.cast-button{display:flex;align-items:center;justify-content:center;gap:.4rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.25);border-radius:var(--radius-sm);padding:.6rem .75rem;color:var(--accent);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cast-button:hover{background:#ea580c26;border-color:#ea580c66;color:var(--accent-hover);transform:translateY(-1px)}.cast-button.casting{background:#10b98126;border-color:#10b98166;color:var(--success)}.cast-button.casting:hover{background:#ef44441a;border-color:#ef44444d;color:var(--error)}.cast-button svg{width:18px;height:18px}.cast-label{font-size:.8rem}@media(orientation:portrait)and (max-width:768px){.cast-button{padding:.5rem .6rem;font-size:.75rem}.cast-button svg{width:16px;height:16px}.cast-label{font-size:.75rem}}.song-library{width:320px;height:100%;max-height:100vh;background:var(--bg-primary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}@media(max-width:1024px),(pointer:coarse){.song-library{overflow-y:auto;-webkit-overflow-scrolling:touch}}.library-header{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;border-bottom:1px solid var(--border)}.library-header h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary)}.library-tabs{display:flex;gap:2px;background:var(--bg-elevated);padding:3px;border-radius:var(--radius-sm)}.library-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.library-tab svg{width:16px;height:16px;flex-shrink:0}.library-tab:hover{color:var(--text-primary)}.library-tab.active{background:var(--bg-card);color:var(--text-primary)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--accent-muted);border-radius:9px;font-size:.7rem;font-weight:600;color:var(--accent)}.tab-badge.mp3{background:var(--accent-muted);color:var(--accent)}.add-song-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent);color:var(--text-inverse);border:none;padding:8px 14px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.add-song-btn svg{width:18px;height:18px}.add-song-btn:hover{background:var(--accent-hover)}.library-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted);text-align:center}.empty-icon{width:64px;height:64px;margin-bottom:1rem;opacity:.5;color:var(--accent)}.empty-hint{font-size:.85rem;color:var(--text-subtle);margin-top:.5rem}.song-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem;min-height:0}.song-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.song-item:hover{background:var(--bg-elevated)}.song-item.active{background:var(--accent-muted)}.song-item-icon{width:44px;height:44px;background:var(--accent-gradient);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.song-item-icon svg{width:24px;height:24px;color:var(--text-inverse)}.song-item-album-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}.song-item.active .song-item-icon{background:var(--accent)}.song-item.active .song-item-icon svg{color:var(--text-inverse)}.song-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.song-item-title{font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item-artist{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item-requester{font-size:.7rem;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.song-item-duration{font-size:.8rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.song-item-delete{background:transparent;border:none;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);opacity:0;transition:all .15s ease}.song-item:hover .song-item-delete{opacity:1}.song-item-delete:hover{background:#ef44441a;color:var(--error)}.song-item-delete svg{width:18px;height:18px}.song-item-playpause{background:#10b9811a;border:none;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--success);opacity:1;transition:all .15s ease}.song-item-playpause:hover{background:#10b98126;transform:scale(1.05)}.song-item-playpause svg{width:18px;height:18px}.song-item-restart{background:transparent;border:none;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--accent);opacity:0;transition:all .15s ease}.song-item:hover .song-item-restart,.song-item.active .song-item-restart{opacity:1}.song-item-restart:hover{background:var(--accent-muted)}.song-item-restart svg{width:18px;height:18px}.song-list::-webkit-scrollbar{width:6px}.song-list::-webkit-scrollbar-track{background:transparent}.song-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.song-list::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.header-buttons{display:flex;gap:.5rem;width:100%}.add-spotify-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--spotify-green);color:var(--text-inverse);border:none;padding:8px 14px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.add-spotify-btn svg{width:18px;height:18px}.add-spotify-btn:hover{background:#1ed760}.add-local-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent-gradient);color:var(--text-inverse);border:none;padding:8px 14px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.add-local-btn svg{width:18px;height:18px}.add-local-btn:hover{opacity:.9}.import-mp3-btn,.import-folder-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;background:var(--accent-gradient);color:var(--text-inverse);border:none;padding:8px 12px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.import-mp3-btn svg,.import-folder-btn svg{width:16px;height:16px}.import-mp3-btn:hover,.import-folder-btn:hover{opacity:.9}.import-folder-btn{background:var(--accent-gradient-subtle)}.mp3-tab-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;transition:background .15s ease;display:flex;flex-direction:column}.mp3-import-buttons{display:flex;gap:.5rem;padding:.75rem;flex-shrink:0}.mp3-tab-content.drag-over{background:var(--accent-muted);border:2px dashed var(--accent);border-radius:var(--radius-lg);margin:.5rem}.library-empty.mp3-empty{border:none;border-radius:var(--radius-lg);margin:0;background:transparent;flex:1}.empty-formats{font-size:.75rem;color:var(--text-subtle);margin-top:.5rem}.mp3-list{padding:.5rem}.mp3-item{background:var(--bg-elevated);border:1px solid var(--border-light)}.mp3-item:hover{background:var(--border-light);border-color:var(--border)}.mp3-icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent-gradient-subtle);border-radius:var(--radius-sm)}.mp3-icon-placeholder svg{width:24px;height:24px;color:var(--text-inverse)}.mp3-item-actions{display:flex;align-items:center;gap:.25rem}.mp3-add-btn{background:#10b9811a;border:none;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--success);transition:all .15s ease}.mp3-add-btn:hover{background:#10b98126;transform:scale(1.05)}.mp3-add-btn svg{width:18px;height:18px}.mp3-item .song-item-delete{opacity:1}.qr-btn{display:flex;align-items:center;justify-content:center;background:var(--accent-muted);color:var(--accent);border:none;padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.qr-btn svg{width:18px;height:18px}.qr-btn:hover,.qr-btn.active{background:var(--accent);color:var(--text-inverse)}.qr-inline-header{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.qr-inline-header svg{border-radius:var(--radius-md)}.qr-inline-header .qr-hint{margin:.5rem 0 0;font-size:.75rem;color:var(--text-muted);text-align:center}.qr-control-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:.75rem;padding:8px 14px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--text-inverse);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.qr-control-btn svg{width:16px;height:16px}.qr-control-btn:hover{background:var(--accent-hover)}.qr-inline{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.qr-inline svg{border-radius:var(--radius-md)}.qr-inline .qr-hint{margin:.5rem 0 0;font-size:.8rem;color:var(--text-muted);text-align:center}.library-footer{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border-top:1px solid var(--border);background:var(--bg-primary)}.footer-info{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-light)}.footer-user{display:flex;align-items:center;gap:.5rem}.footer-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--text-inverse);font-weight:600;font-size:.8rem}.footer-user-name{color:var(--text-primary);font-weight:600;font-size:.85rem}.footer-room{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.8rem}.footer-room svg{width:14px;height:14px;color:var(--accent)}.footer-room-name{color:var(--text-secondary);max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-room-code{padding:.15rem .4rem;background:var(--accent-muted);border-radius:var(--radius-sm);color:var(--accent);font-weight:600;font-size:.7rem;letter-spacing:.5px}.footer-volume{display:flex;align-items:center;gap:.5rem;padding:.5rem 0}.footer-volume .volume-icon{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}.footer-volume-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elevated);border-radius:2px;outline:none;cursor:pointer}.footer-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer;transition:transform .15s ease,background .15s ease}.footer-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2);background:var(--accent-hover)}.footer-volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border:none;border-radius:50%;cursor:pointer}.footer-buttons{display:flex;align-items:center;gap:.5rem}.footer-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;flex:1;padding:8px 6px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:500;transition:all .15s ease}.footer-btn svg{width:16px;height:16px;flex-shrink:0}.footer-btn span{white-space:nowrap}.rooms-btn{background:var(--accent-muted);color:var(--accent);border:1px solid transparent}.rooms-btn:hover{background:var(--accent);color:var(--text-inverse)}.participants-btn{background:#10b9811a;color:var(--success);border:1px solid transparent}.participants-btn:hover{background:var(--success);color:var(--text-inverse)}.settings-btn-footer{flex:0 0 auto;width:38px;padding:8px;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.settings-btn-footer:hover{background:var(--border);color:var(--text-primary)}.settings-btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-elevated);color:var(--text-muted);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;flex-shrink:0}.settings-btn-icon svg{width:20px;height:20px}.settings-btn-icon:hover{background:var(--border);color:var(--text-primary)}.settings-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:var(--bg-elevated);color:var(--text-muted);border:none;padding:10px;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;transition:all .15s ease}.settings-btn svg{width:20px;height:20px}.settings-btn:hover{background:var(--border);color:var(--text-primary)}.now-playing{padding:1rem;background:var(--accent-muted);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem}.now-playing-info{display:flex;flex-direction:column;gap:.2rem}.now-playing-label{font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.now-playing-title{font-size:.95rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing-artist{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-control{display:flex;align-items:center;gap:.5rem;background:var(--bg-primary);padding:.5rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border)}.sync-label{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-right:auto}.sync-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--accent-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--accent);font-size:1rem;font-weight:600;transition:all .15s ease}.sync-value{min-width:50px;text-align:center;color:var(--text-primary);font-weight:600;font-size:.85rem;font-variant-numeric:tabular-nums;padding:.25rem .5rem;background:var(--bg-elevated);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.library-title-row{display:flex;align-items:center;gap:.5rem}.help-btn{background:transparent;border:none;color:var(--text-muted);padding:.35rem;border-radius:50%;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.help-btn:hover{color:var(--accent);background:var(--accent-muted)}.help-btn svg{width:20px;height:20px}.help-modal h2{color:var(--text-primary);font-size:1.4rem;font-weight:700;margin-bottom:1.5rem;padding-right:2rem;display:flex;align-items:center;gap:.75rem}@media(orientation:portrait)and (max-width:768px){.song-library{width:100%!important;max-width:100%;height:auto;max-height:none;border-right:none;border-bottom:1px solid var(--border);overflow:visible}.library-header{padding:1rem;gap:.75rem}.library-header h2{font-size:1.1rem}.header-buttons{flex-wrap:wrap}.add-spotify-btn,.add-local-btn{padding:.5rem .75rem;font-size:.8rem}.qr-btn,.qr-inline-header{padding:.5rem}.qr-inline-header svg{width:80vw!important;height:80vw!important;max-width:300px!important;max-height:300px!important}.library-tabs{padding:.2rem}.library-tab{padding:.5rem;font-size:.75rem}.song-list{padding:.25rem;max-height:none;overflow:visible}.song-item{padding:.5rem;gap:.5rem}.song-item-icon{width:36px;height:36px}.song-item-title{font-size:.85rem}.song-item-artist{font-size:.7rem}.library-footer{padding:.5rem}.footer-info{padding:.4rem .5rem}.footer-btn{padding:.5rem .4rem;font-size:.7rem}}.autoplay-toggle{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;margin-top:.5rem;border-top:1px solid var(--border)}.autoplay-label{font-size:.85rem;color:var(--text-secondary)}.toggle-switch{position:relative;width:44px;height:24px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .3s ease;padding:0}.toggle-switch.active{background:var(--accent);border-color:var(--accent)}.toggle-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--text-muted);border-radius:50%;transition:transform .3s ease,background .3s ease;pointer-events:none}.toggle-switch.active .toggle-slider{transform:translate(20px);background:var(--text-inverse)}.lyrics-display{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;padding-bottom:0;position:relative;overflow:hidden;background:var(--bg-secondary)}.lyrics-empty{color:var(--text-muted);text-align:center}.lyrics-hint{font-size:1.2rem;color:var(--text-subtle);margin-top:.5rem}.lyrics-scroll{justify-content:flex-start;padding:0}.lyrics-track{--lyrics-offset: 40vh;--line-height: 120px;display:flex;flex-direction:column;align-items:center;width:100%;padding:0 2rem;transition:transform .3s ease}.lyric-line{text-align:center;width:100%;min-height:100px;display:flex;align-items:center;justify-content:center;padding:.5rem 1rem;transition:all .4s ease}.lyric-line{--text-scale: 1;--base-font-size: clamp(1.5rem, 5vw, 3.5rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important;font-weight:700!important;line-height:1.3;letter-spacing:-.02em;min-height:120px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:95vw}.lyric-line.past{opacity:.25!important;color:var(--text-subtle)!important}.lyric-line.current{color:var(--text-primary)!important;opacity:1!important}.lyric-line.next{opacity:.5!important;color:var(--text-secondary)!important}.lyric-line.future{opacity:.3!important;color:var(--text-muted)!important}.lyric-highlight-container{display:inline}.lyric-gradient-text{--progress: 0%;color:var(--text-primary)}.lyrics-scroll:before,.lyrics-scroll:after{content:"";position:absolute;left:0;right:0;height:120px;pointer-events:none;z-index:10}.lyrics-scroll:before{top:0;background:linear-gradient(to bottom,var(--bg-secondary) 0%,transparent 100%)}.lyrics-scroll:after{bottom:0;background:linear-gradient(to top,var(--bg-secondary) 0%,transparent 100%)}@media(min-width:768px){.lyric-line{--base-font-size: clamp(2rem, 4vw, 4rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important}}@media(max-height:600px){.lyric-line{min-height:70px}.lyric-line.current{--base-font-size: clamp(1.6rem, 8vh, 2.5rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important;min-height:80px}.lyric-line.next{--base-font-size: clamp(1.2rem, 5vh, 1.8rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important}.lyric-line.past,.lyric-line.future{--base-font-size: clamp(1rem, 4vh, 1.4rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important}.lyrics-scroll:before,.lyrics-scroll:after{height:60px}}@media(orientation:portrait)and (max-width:768px){.lyrics-display{padding:3rem .5rem .5rem;height:40vh;min-height:40vh;max-height:40vh;width:100%!important;max-width:100vw!important;overflow:visible;display:flex;align-items:center;justify-content:center;position:relative}.lyrics-display.lyrics-scroll{align-items:center;justify-content:center;width:100%!important}.lyrics-track{display:flex;flex-direction:column;align-items:center;justify-content:center;transform:none!important;padding:0;width:100%!important;max-width:100vw!important;height:auto;position:absolute;top:6rem;left:0;right:0;bottom:0}.lyric-line{display:none!important}.lyric-line.current{display:flex!important;width:100%!important;max-width:100vw!important;--base-font-size: clamp(1.2rem, 5vw, 1.8rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important;min-height:auto!important;height:auto!important;max-height:none!important;white-space:normal!important;overflow:visible!important;line-height:1.3;padding:.5rem 1rem;text-align:center;justify-content:center;color:var(--text-primary)!important}.lyric-line.next{display:flex!important;width:100%!important;max-width:100vw!important;--base-font-size: clamp(.9rem, 4vw, 1.2rem);font-size:calc(var(--base-font-size) * var(--text-scale))!important;min-height:auto!important;height:auto!important;white-space:normal!important;overflow:visible!important;opacity:.5!important;color:var(--text-muted)!important;padding:.3rem 1rem;text-align:center;justify-content:center}.lyrics-scroll:before,.lyrics-scroll:after{display:none}}.player-controls{position:absolute;bottom:0;left:0;right:0;padding:3rem 2rem 1.5rem;display:flex;flex-direction:column;gap:1rem;background:linear-gradient(180deg,transparent 0%,var(--bg-primary) 30%);transition:transform .3s ease,opacity .3s ease;z-index:100}.player-controls.visible{transform:translateY(0);opacity:1}.player-controls.hidden{transform:translateY(100%);opacity:0;pointer-events:none;visibility:hidden}.player-qr{display:none}.player-qr svg{border-radius:var(--radius-sm)}.player-qr-label{font-size:11px;color:var(--text-muted);font-weight:500}.song-info{display:flex;flex-direction:column;align-items:center;gap:.25rem}.song-title{font-size:1.2rem;font-weight:600;color:var(--text-primary)}.song-artist{font-size:.9rem;color:var(--text-muted)}.controls-center{display:flex;justify-content:center;align-items:center;gap:1.5rem}.control-btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;color:var(--text-primary)}.control-btn svg{width:24px;height:24px}.control-btn:hover{background:var(--border);border-color:var(--text-subtle)}.control-btn:active{transform:scale(.95)}.control-btn-main{width:72px;height:72px;background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.control-btn-main svg{width:36px;height:36px}.control-btn-main:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.autoplay-btn{position:relative}.autoplay-btn.active{background:var(--accent-muted);color:var(--accent);border-color:var(--accent)}.autoplay-btn.active svg{color:var(--accent)}.progress-container{display:flex;align-items:center;gap:1rem}.time-display{font-size:.85rem;color:var(--text-muted);min-width:45px;text-align:center;font-variant-numeric:tabular-nums}.progress-bar{flex:1;height:6px;background:var(--bg-elevated);border-radius:3px;cursor:pointer;position:relative}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .1s linear}.progress-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;background:var(--accent);border-radius:50%;box-shadow:var(--shadow-sm);opacity:0;transition:opacity .15s ease}.progress-bar:hover .progress-thumb{opacity:1}@media(max-width:1200px){.player-qr svg{width:70px!important;height:70px!important}}@media(max-width:768px){.player-controls{padding:2rem 1rem 1rem}.player-qr{position:static;flex-direction:row;gap:10px;order:-1;margin-bottom:.5rem}.player-qr svg{width:50px!important;height:50px!important}.song-title{font-size:1rem}.control-btn-main{width:56px;height:56px}.control-btn-main svg{width:28px;height:28px}}@media(orientation:portrait)and (max-width:768px){.player-controls{position:relative;padding:1.5rem 1rem 1rem;background:linear-gradient(180deg,transparent 0%,var(--bg-primary) 20%)}.player-qr{display:flex}.song-info{margin-bottom:.5rem}.song-title{font-size:.95rem}.song-artist{font-size:.8rem}.controls-center{gap:1rem}.control-btn{width:42px;height:42px}.control-btn svg{width:20px;height:20px}.control-btn-main{width:52px;height:52px}.control-btn-main svg{width:26px;height:26px}.progress-container{gap:.75rem}.time-display{font-size:.75rem;min-width:40px}.progress-bar{height:5px}}@media(max-height:350px){.player-qr{display:none}}.spotify-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000}.spotify-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:80vh;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.spotify-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--spotify-green)}.spotify-logo{display:flex;align-items:center;gap:.75rem;color:var(--text-inverse);font-size:1.3rem;font-weight:700}.spotify-logo svg{width:32px;height:32px}.spotify-close{background:#0003;border:none;padding:.5rem;border-radius:50%;cursor:pointer;color:var(--text-inverse);transition:background .15s}.spotify-close:hover{background:#0006}.spotify-close svg{width:24px;height:24px}.spotify-content{padding:1.5rem}.spotify-setup{color:var(--text-secondary)}.spotify-setup h3{color:var(--text-primary);margin-bottom:1rem}.spotify-setup ol{margin:1rem 0;padding-left:1.5rem}.spotify-setup li{margin:.5rem 0}.spotify-setup a{color:var(--spotify-green)}.spotify-setup code{background:var(--bg-elevated);padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.85rem}.spotify-login{text-align:center;padding:2rem 0}.spotify-login p{color:var(--text-secondary);margin-bottom:1.5rem}.spotify-connect-btn{display:inline-flex;align-items:center;gap:.75rem;background:var(--spotify-green);color:var(--text-inverse);border:none;padding:1rem 2rem;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .15s}.spotify-connect-btn:hover{background:#1ed760;transform:scale(1.02)}.spotify-connect-btn svg{width:24px;height:24px}.spotify-note{color:var(--text-muted);font-size:.85rem;margin-top:1rem}.spotify-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;color:var(--text-secondary)}.spinner{width:40px;height:40px;border:3px solid rgba(29,185,84,.2);border-top-color:var(--spotify-green);border-radius:50%;animation:spin 1s linear infinite}.spinner.small{width:20px;height:20px;border-width:2px}.spotify-search{display:flex;flex-direction:column;gap:1rem}.spotify-status{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-dot.ready{background:var(--spotify-green)}.status-dot.pending{background:var(--warning);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.spotify-logout{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:.4rem .8rem;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all .15s}.spotify-logout:hover{border-color:var(--text-primary);color:var(--text-primary)}.spotify-search-box{display:flex;gap:.5rem}.spotify-search-box input{flex:1;background:var(--bg-input);border:1px solid var(--border);padding:.75rem 1rem;border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem}.spotify-search-box input:focus{outline:none;border-color:var(--spotify-green)}.spotify-search-box input::placeholder{color:var(--text-subtle)}.spotify-search-box button{background:var(--spotify-green);border:none;padding:.75rem 1rem;border-radius:var(--radius-md);cursor:pointer;color:var(--text-inverse);transition:background .15s;display:flex;align-items:center;justify-content:center}.spotify-search-box button:hover{background:#1ed760}.spotify-search-box button:disabled{background:var(--bg-elevated);cursor:not-allowed}.spotify-search-box button svg{width:20px;height:20px}.spotify-results{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.spotify-track{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.spotify-track:hover{background:var(--bg-elevated)}.track-name{color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{color:var(--text-secondary);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums}.spotify-results::-webkit-scrollbar{width:8px}.spotify-results::-webkit-scrollbar-track{background:transparent}.spotify-results::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.spotify-results::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.spotify-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}.spotify-tab{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-secondary);padding:.75rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-size:.95rem;font-weight:500;transition:all .15s}.spotify-tab:hover{background:var(--bg-elevated);color:var(--text-primary)}.spotify-tab.active{background:var(--spotify-green);color:var(--text-inverse)}.spotify-tab svg{width:18px;height:18px}.spotify-connected{display:flex;flex-direction:column;gap:1rem}.spotify-playlists{min-height:200px}.playlists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;max-height:350px;overflow-y:auto;padding-right:.5rem}.playlist-card{background:var(--bg-elevated);border-radius:var(--radius-md);padding:.75rem;cursor:pointer;transition:all .15s;border:1px solid var(--border-light)}.playlist-card:hover{background:var(--border-light);border-color:var(--border)}.playlist-cover{width:100%;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:.75rem}.playlist-cover-placeholder{width:100%;height:100%;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.playlist-cover-placeholder svg{width:40px;height:40px}.playlist-name{color:var(--text-primary);font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-count{color:var(--text-secondary);font-size:.8rem}.no-playlists{color:var(--text-muted);text-align:center;padding:2rem;grid-column:1 / -1}.playlist-tracks-view{display:flex;flex-direction:column;gap:1rem}.playlist-back{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-secondary);padding:.5rem;margin:-.5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;transition:all .15s;width:fit-content}.playlist-back:hover{color:var(--text-primary);background:var(--bg-elevated)}.playlist-back svg{width:20px;height:20px}.playlist-header-info{display:flex;align-items:center;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.playlist-header-cover{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover}.playlist-header-text{display:flex;flex-direction:column;gap:.25rem}.playlist-header-text h3{color:var(--text-primary);margin:0;font-size:1.1rem}.playlist-header-text span{color:var(--text-secondary);font-size:.85rem}.playlists-grid::-webkit-scrollbar{width:8px}.playlists-grid::-webkit-scrollbar-track{background:transparent}.playlists-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.playlists-grid::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.karaoke-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem 0;-webkit-user-select:none;user-select:none}.karaoke-toggle input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;position:relative;transition:all .15s}.karaoke-toggle input[type=checkbox]:checked{background:var(--spotify-green);border-color:var(--spotify-green)}.karaoke-toggle input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700}.karaoke-toggle-label{display:flex;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.9rem}.karaoke-toggle-label svg{width:16px;height:16px;color:var(--spotify-green)}.karaoke-badge{display:inline-flex;align-items:center;gap:.25rem;background:var(--spotify-green);color:#fff;font-size:.65rem;font-weight:600;padding:.15rem .4rem;border-radius:var(--radius-sm);margin-left:.5rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.karaoke-badge svg{width:10px;height:10px}.spotify-track.karaoke-track{background:#1db95414;border-left:3px solid var(--spotify-green)}.spotify-track.karaoke-track:hover{background:#1db9541f}.track-name{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}.spotify-help-btn{background:transparent;border:none;color:var(--text-secondary);padding:.5rem;border-radius:50%;cursor:pointer;transition:all .15s;margin-left:auto;display:flex;align-items:center;justify-content:center}.spotify-help-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.spotify-help-btn svg{width:22px;height:22px}.help-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.help-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:550px;max-height:85vh;overflow-y:auto;border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:2rem;position:relative}.help-modal-close{position:absolute;top:1rem;right:1rem;background:var(--bg-elevated);border:none;padding:.5rem;border-radius:50%;cursor:pointer;color:var(--text-muted);transition:all .15s}.help-modal-close:hover{background:var(--border);color:var(--text-primary)}.help-modal-close svg{width:20px;height:20px;display:block}.help-modal h2{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-right:2rem;display:flex;align-items:center;gap:.75rem}.help-modal h2:before{content:"?";display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent);color:var(--text-inverse);border-radius:50%;font-size:1.2rem;font-weight:700}.help-section{background:var(--bg-elevated);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1rem;border-left:3px solid var(--accent)}.help-section h3{color:var(--accent);font-size:1rem;margin-bottom:.5rem;font-weight:600}.help-section p{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:.5rem 0}.help-section p:last-child{margin-bottom:0}.help-section em{color:var(--text-muted);font-size:.85rem}.help-section strong{color:var(--text-primary)}.help-badge{display:inline-flex;align-items:center;gap:4px;background:var(--spotify-green);color:var(--text-inverse);padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;vertical-align:middle}.help-section.help-tip{background:var(--accent-muted);border-left-color:var(--accent)}.help-section.help-tip strong{color:var(--accent)}.add-all-playlist-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--spotify-green);border:none;border-radius:var(--radius-md);color:var(--text-inverse);font-size:.9rem;font-weight:600;cursor:pointer;margin:1rem 0;transition:all .15s ease}.add-all-playlist-btn:hover:not(:disabled){background:#1ed760}.add-all-playlist-btn:disabled{background:var(--bg-elevated);color:var(--text-muted);cursor:not-allowed}.settings-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000}.settings-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:95%;max-width:800px;max-height:90vh;overflow-y:auto;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:var(--accent-muted);border-bottom:1px solid var(--border)}.settings-header h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.settings-close{background:var(--bg-elevated);border:none;padding:.5rem;border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all .15s ease}.settings-close:hover{background:var(--border);color:var(--text-primary)}.settings-close svg{width:20px;height:20px}.settings-content{padding:1.5rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:600px){.settings-content{grid-template-columns:1fr}.settings-modal{max-width:400px}}.setting-item{display:flex;flex-direction:column;gap:.75rem;background:var(--bg-elevated);padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border-light)}.setting-item.full-width{grid-column:span 2}@media(max-width:600px){.setting-item.full-width{grid-column:span 1}}.setting-label{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:600}.setting-icon{width:20px;height:20px;color:var(--accent)}.setting-info{color:var(--text-muted);font-size:.9rem;margin:0}.volume-control{display:flex;align-items:center;gap:.75rem;background:var(--bg-primary);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border)}.volume-btn{background:transparent;border:none;padding:.5rem;border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.volume-btn:hover{background:var(--accent-muted);color:var(--accent)}.volume-btn svg{width:20px;height:20px}.volume-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:var(--bg-elevated);border-radius:3px;outline:none}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;transition:transform .15s ease}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-slider::-moz-range-thumb{width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;border:none}.volume-value{min-width:45px;text-align:right;color:var(--accent);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums}.invite-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1rem;background:var(--accent);border:none;border-radius:var(--radius-md);color:var(--text-inverse);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.invite-btn:hover{background:var(--accent-hover)}.invite-btn svg{width:22px;height:22px}.setting-hint{color:var(--text-subtle);font-size:.85rem;margin:0;text-align:center}.toggle-container{display:flex;align-items:center;gap:.75rem}.toggle-btn{position:relative;width:52px;height:28px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .3s ease;padding:0}.toggle-btn:hover{background:var(--border-light)}.toggle-btn.active{background:var(--accent-muted);border-color:var(--accent)}.toggle-slider{position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--text-muted);border-radius:50%;transition:all .3s ease}.toggle-btn.active .toggle-slider{left:27px;background:var(--accent)}.toggle-label{color:var(--text-muted);font-size:.9rem}.toggle-btn.active+.toggle-label{color:var(--accent)}.spotify-icon{color:var(--spotify-green)!important}.spotify-account{display:flex;flex-direction:column;gap:.75rem}.spotify-user-info{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#1db95414;border-radius:var(--radius-md);border:1px solid rgba(29,185,84,.2)}.spotify-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.spotify-user-details{display:flex;flex-direction:column;gap:2px;flex:1}.spotify-user-name{color:var(--text-primary);font-weight:500;font-size:.95rem}.spotify-user-type{color:var(--spotify-green);font-size:.8rem}.spotify-logout-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.7rem 1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:.9rem;cursor:pointer;transition:all .15s ease}.spotify-logout-btn:hover{background:#ef44441a;border-color:#ef44444d;color:var(--error)}.spotify-logout-btn svg{width:18px;height:18px}.spotify-login-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1rem;background:var(--spotify-green);border:none;border-radius:var(--radius-md);color:var(--text-inverse);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.spotify-login-btn:hover{background:#1ed760}.spotify-login-btn svg{width:22px;height:22px}.sync-control{display:flex;align-items:center;justify-content:center;gap:.75rem;background:var(--bg-primary);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border)}.sync-btn{background:var(--accent-muted);border:1px solid var(--border);padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600;transition:all .15s ease}.sync-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.sync-btn:active{transform:scale(.95)}.sync-value{min-width:60px;text-align:center;color:var(--text-primary);font-weight:600;font-size:1.1rem;font-variant-numeric:tabular-nums;padding:.5rem;background:var(--bg-elevated);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.sync-value:hover{background:var(--border);color:var(--accent)}.session-info{display:flex;align-items:center;justify-content:center;padding:.75rem;background:var(--accent-muted);border-radius:var(--radius-md);border:1px solid var(--border)}.session-code{font-size:1.5rem;font-weight:700;letter-spacing:.3rem;color:var(--accent);font-family:monospace}.new-session-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--error);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.new-session-btn:hover{background:#ef444426;border-color:var(--error)}.new-session-btn svg{width:20px;height:20px}.karaco-account{display:flex;flex-direction:column;gap:.75rem}.karaco-user-info{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--accent-muted);border-radius:var(--radius-md);border:1px solid var(--border)}.karaco-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--text-inverse);font-weight:700;font-size:1.2rem}.karaco-user-details{display:flex;flex-direction:column;gap:2px;flex:1}.karaco-user-name{color:var(--text-primary);font-weight:500;font-size:.95rem}.karaco-user-email{color:var(--text-muted);font-size:.8rem}.karaco-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.karaco-rooms-btn,.karaco-participants-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:var(--radius-sm);color:var(--text-inverse);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.karaco-rooms-btn{background:var(--accent)}.karaco-rooms-btn:hover{background:var(--accent-hover)}.karaco-participants-btn{background:var(--success)}.karaco-participants-btn:hover{opacity:.9}.karaco-rooms-btn svg,.karaco-participants-btn svg{width:16px;height:16px}.karaco-logout-btn{grid-column:span 2;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:all .15s ease}.karaco-logout-btn:hover{background:#ef44441a;border-color:#ef44444d;color:var(--error)}.karaco-logout-btn svg{width:16px;height:16px}.karaco-login-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1rem;background:var(--accent);border:none;border-radius:var(--radius-md);color:var(--text-inverse);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.karaco-login-btn:hover{background:var(--accent-hover)}.karaco-login-btn svg{width:22px;height:22px}.subscription-info{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border)}.plan-badge{padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.plan-badge.plan-free{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.plan-badge.plan-premium{background:var(--accent-muted);color:var(--accent);border:1px solid var(--border)}.plan-badge.plan-pro{background:var(--gold-muted);color:#b45309;border:1px solid rgba(245,158,11,.3)}.upgrade-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--text-inverse);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease}.upgrade-btn:hover{background:var(--accent-hover)}.upgrade-btn svg{width:16px;height:16px}.manage-sub-btn{flex:1;padding:.6rem 1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s ease}.manage-sub-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.qr-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.qr-modal{background:#1a1a2e;border-radius:16px;width:90%;max-width:380px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.qr-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:#6366f11a;border-bottom:1px solid rgba(255,255,255,.1)}.qr-header h2{margin:0;font-size:1.2rem;color:#fff}.qr-close{background:#ffffff1a;border:none;padding:.5rem;border-radius:8px;cursor:pointer;color:#aaa;transition:all .2s ease}.qr-close:hover{background:#fff3;color:#fff}.qr-close svg{width:20px;height:20px}.qr-content{padding:1.5rem;text-align:center}.qr-instructions{color:#888;font-size:.95rem;margin:0 0 1rem;line-height:1.5}.session-code{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.25rem;padding:.75rem 1rem;background:#6366f126;border-radius:10px;border:1px solid rgba(99,102,241,.3)}.session-label{color:#888;font-size:.9rem}.session-id{font-size:1.4rem;font-weight:700;letter-spacing:.15em;color:#6366f1;font-family:Monaco,Consolas,monospace}.qr-code-container{background:#fff;border-radius:16px;padding:1rem;display:inline-block;margin-bottom:1.5rem}.qr-url{display:flex;align-items:center;gap:.5rem;background:#0000004d;padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem}.qr-url span{flex:1;font-size:.8rem;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.qr-url button{background:#6366f133;border:none;padding:.5rem;border-radius:6px;cursor:pointer;color:#6366f1;transition:all .2s ease;flex-shrink:0}.qr-url button:hover{background:#6366f14d}.qr-url button svg{width:18px;height:18px;display:block}.qr-hint{color:#666;font-size:.85rem;margin:0;line-height:1.5}.qr-url button.copied{background:#22c55e4d;color:#22c55e}.copy-toast{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:#22c55ee6;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:500;animation:toastIn .3s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.qr-modal{position:relative}.spotify-activate-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.spotify-activate-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:20px;padding:40px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1)}.spotify-activate-icon{width:80px;height:80px;margin:0 auto 24px;background:#1db954;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pulse 2s infinite}.spotify-activate-icon svg{width:50px;height:50px;color:#fff}@keyframes pulse{0%{box-shadow:0 0 #1db95466}70%{box-shadow:0 0 0 20px #1db95400}to{box-shadow:0 0 #1db95400}}.spotify-activate-modal h2{color:#fff;font-size:24px;margin:0 0 16px;font-weight:600}.spotify-activate-description{color:#ffffffb3;font-size:16px;line-height:1.5;margin:0 0 24px}.spotify-activate-error{background:#ff3b3033;border:1px solid rgba(255,59,48,.3);color:#ff6b6b;padding:12px 16px;border-radius:10px;margin-bottom:20px;font-size:14px}.spotify-activate-btn{background:#1db954;color:#fff;border:none;padding:16px 32px;font-size:18px;font-weight:600;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s ease;min-width:200px;justify-content:center}.spotify-activate-btn:hover:not(:disabled){background:#1ed760;transform:scale(1.05)}.spotify-activate-btn:disabled{opacity:.7;cursor:not-allowed}.spotify-activate-btn svg{width:24px;height:24px}.spinner-small{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.spotify-activate-hint{color:#fff6;font-size:13px;margin:20px 0 0;line-height:1.4}.alert-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:alertOverlayIn .2s ease}@keyframes alertOverlayIn{0%{opacity:0}to{opacity:1}}.alert-modal{background:linear-gradient(145deg,#1e1e3f,#151530);border-radius:20px;width:90%;max-width:380px;padding:2rem 1.5rem 1.5rem;text-align:center;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080;animation:alertModalIn .3s ease}@keyframes alertModalIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.alert-icon-container{width:64px;height:64px;margin:0 auto 1.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:iconPulse .5s ease}@keyframes iconPulse{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.alert-icon-container svg{width:36px;height:36px}.alert-icon-success{background:#22c55e33;color:#22c55e}.alert-icon-error{background:#ef444433;color:#ef4444}.alert-icon-warning{background:#fbbf2433;color:#fbbf24}.alert-icon-info{background:#6366f133;color:#6366f1}.alert-content{margin-bottom:1.5rem}.alert-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#fff}.alert-message{margin:0;font-size:.95rem;color:#a0a0b0;line-height:1.5}.alert-actions{display:flex;gap:.75rem;justify-content:center}.alert-btn{flex:1;padding:.85rem 1.5rem;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.alert-btn-cancel{background:#ffffff1a;color:#888}.alert-btn-cancel:hover{background:#ffffff26;color:#aaa}.alert-btn-confirm{color:#fff}.alert-btn-success{background:linear-gradient(135deg,#22c55e,#16a34a)}.alert-btn-success:hover{background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-2px);box-shadow:0 4px 15px #22c55e66}.alert-btn-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.alert-btn-error:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:0 4px 15px #ef444466}.alert-btn-warning{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1a2e}.alert-btn-warning:hover{background:linear-gradient(135deg,#f59e0b,#d97706);transform:translateY(-2px);box-shadow:0 4px 15px #fbbf2466}.alert-btn-info{background:linear-gradient(135deg,#6366f1,#4f46e5)}.alert-btn-info:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);transform:translateY(-2px);box-shadow:0 4px 15px #6366f166}.alert-actions:has(.alert-btn:only-child) .alert-btn{max-width:200px}@media(max-width:480px){.alert-modal{padding:1.5rem 1rem 1rem;margin:1rem;width:calc(100% - 2rem)}.alert-icon-container{width:56px;height:56px}.alert-icon-container svg{width:32px;height:32px}.alert-title{font-size:1.1rem}.alert-message{font-size:.9rem}.alert-btn{padding:.75rem 1rem;font-size:.9rem}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:14px;box-shadow:var(--shadow-lg);animation:toast-slide-in .3s ease-out;cursor:pointer;border-left:4px solid}.toast:hover{transform:translate(-5px)}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left-color:var(--error)}.toast-error .toast-icon{color:var(--error)}.toast-warning{border-left-color:var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left-color:var(--accent)}.toast-info .toast-icon{color:var(--accent)}.toast-icon{font-size:18px;font-weight:700;flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0;line-height:1;flex-shrink:0}.toast-close:hover{color:var(--text-primary)}@media(max-width:768px){.toast-container{top:auto;bottom:20px;left:20px;right:20px;max-width:none}.toast{font-size:13px;padding:12px 14px}}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.auth-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:28px;max-width:420px;width:100%;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.auth-close{position:absolute;top:15px;right:15px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:50%;transition:all .15s}.auth-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.auth-close svg{width:24px;height:24px}.auth-header{text-align:center;margin-bottom:25px}.auth-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 10px}.auth-header p{color:var(--text-muted);font-size:.9rem;margin:0}.auth-tabs{display:flex;gap:2px;padding:3px;background:var(--bg-elevated);border-radius:var(--radius-sm);margin-bottom:20px}.auth-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.auth-tab:hover{color:var(--text-primary)}.auth-tab.active{background:var(--bg-card);color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.auth-field input{padding:12px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;transition:all .15s}.auth-field input::placeholder{color:var(--text-subtle)}.auth-field input:focus{outline:none;border-color:var(--accent);background:var(--bg-card)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:45px}.password-toggle{position:absolute;right:10px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:color .15s}.password-toggle:hover{color:var(--text-secondary)}.password-toggle svg{width:20px;height:20px}.auth-field.has-error input{border-color:var(--error);background:#ef44440d}.auth-field.is-valid input{border-color:var(--success);background:#10b9810d}.field-error{color:var(--error);font-size:.8rem;margin-top:4px;display:flex;align-items:center;gap:4px}.field-error:before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--error);color:#fff;border-radius:50%;font-size:.7rem;font-weight:700}.field-valid{color:var(--success);font-size:.85rem;margin-top:4px;font-weight:700}.password-strength{display:flex;align-items:center;gap:10px;margin-top:8px}.strength-bar{flex:1;height:4px;background:var(--bg-elevated);border-radius:2px;position:relative;overflow:hidden}.strength-bar:after{content:"";position:absolute;top:0;left:0;height:100%;width:0%;background:var(--error);border-radius:2px;transition:all .3s ease}.strength-bar.weak:after{width:33%;background:var(--error)}.strength-bar.medium:after{width:66%;background:var(--warning)}.strength-bar.strong:after{width:100%;background:var(--success)}.strength-text{font-size:.75rem;color:var(--text-muted);min-width:70px}.strength-bar.weak+.strength-text{color:var(--error)}.strength-bar.medium+.strength-text{color:var(--warning)}.strength-bar.strong+.strength-text{color:var(--success)}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--error);padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;text-align:center}.auth-success{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:var(--success);padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;text-align:center}.auth-submit{padding:12px 20px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--text-inverse);font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s;margin-top:5px}.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-loading{display:flex;align-items:center;justify-content:center;gap:10px}.auth-loading .spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-divider{display:flex;align-items:center;gap:15px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{color:var(--text-muted);font-size:.85rem}.auth-guest{width:100%;padding:12px 20px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.95rem;cursor:pointer;transition:all .15s}.auth-guest:hover{background:var(--bg-elevated);border-color:var(--text-muted);color:var(--text-primary)}.auth-info{text-align:center;color:var(--text-muted);font-size:.8rem;margin-top:20px;line-height:1.5}.auth-forgot-link,.auth-back-link{background:none;border:none;color:var(--accent);font-size:.9rem;cursor:pointer;padding:8px;transition:color .15s;text-align:center;width:100%}.auth-forgot-link:hover,.auth-back-link:hover{color:var(--accent-hover);text-decoration:underline}.auth-back-link{color:var(--text-secondary)}.auth-back-link:hover{color:var(--text-primary)}@media(max-width:480px){.auth-modal{padding:20px 16px;margin:10px}.auth-header h2{font-size:1.3rem}.auth-tabs{flex-direction:column}.auth-field input{padding:10px 12px}.auth-submit{padding:12px 18px;font-size:.95rem}}.room-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.room-modal{background:var(--bg-card);border-radius:20px;padding:30px;max-width:500px;width:100%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.room-close{position:absolute;top:15px;right:15px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:50%;transition:all .2s}.room-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.room-close svg{width:24px;height:24px}.room-header{text-align:center;margin-bottom:25px}.room-header h2{color:var(--text-primary);font-size:1.8rem;margin:0 0 10px}.room-header p{color:var(--text-secondary);font-size:.95rem;margin:0}.room-not-logged{text-align:center;padding:40px 20px;color:var(--text-secondary)}.room-create-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;background:var(--accent-gradient);border:none;border-radius:12px;color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-bottom:20px}.room-create-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #ea580c4d}.room-create-btn svg{width:24px;height:24px}.room-create-form{background:var(--bg-secondary);border-radius:15px;padding:20px;margin-bottom:20px;border:1px solid var(--border)}.room-create-form h3{color:var(--text-primary);font-size:1.2rem;margin:0 0 20px}.room-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.room-field label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.room-field input,.room-field select{padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:1rem;transition:all .2s}.room-field input::placeholder{color:var(--text-muted)}.room-field input:focus,.room-field select:focus{outline:none;border-color:var(--accent);background:var(--bg-card)}.room-field select{cursor:pointer}.room-field select option{background:var(--bg-card);color:var(--text-primary)}.room-checkbox{display:flex;align-items:center;gap:10px;margin-bottom:20px}.room-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.room-checkbox label{color:var(--text-secondary);font-size:.9rem;cursor:pointer}.room-form-actions{display:flex;gap:12px}.room-cancel-btn{flex:1;padding:12px 20px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s}.room-cancel-btn:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.room-submit-btn{flex:1;padding:12px 20px;background:var(--accent-gradient);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.room-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 20px #ea580c4d}.room-submit-btn:disabled{opacity:.7;cursor:not-allowed}.room-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error);padding:12px 16px;border-radius:10px;font-size:.9rem;text-align:center;margin-bottom:15px}.room-list{display:flex;flex-direction:column;gap:12px}.room-loading{display:flex;flex-direction:column;align-items:center;gap:15px;padding:40px;color:var(--text-secondary)}.room-loading .spinner{width:40px;height:40px;border:3px solid rgba(234,88,12,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.room-empty{text-align:center;padding:40px 20px;color:var(--text-secondary)}.room-empty p{margin:5px 0}.room-item{display:flex;align-items:center;gap:15px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.room-item:hover{background:var(--bg-secondary);border-color:var(--accent);transform:translate(5px)}.room-item-info{flex:1}.room-item-info h4{color:var(--text-primary);font-size:1.1rem;margin:0 0 4px}.room-code{color:var(--text-muted);font-size:.85rem;font-family:monospace}.room-item-badges{display:flex;gap:8px}.room-badge{padding:4px 10px;background:var(--accent-muted);border-radius:6px;color:var(--accent);font-size:.75rem;display:flex;align-items:center;gap:4px;font-weight:500}.room-badge.locked svg{width:14px;height:14px}.room-item-arrow{width:24px;height:24px;color:var(--text-muted);transition:transform .2s}.room-item:hover .room-item-arrow{transform:translate(3px);color:var(--accent)}.room-item-actions{display:flex;gap:6px;opacity:0;transition:opacity .2s}.room-item:hover .room-item-actions{opacity:1}.room-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;transition:all .2s;background:var(--bg-elevated);color:var(--text-muted)}.room-action-btn svg{width:16px;height:16px}.room-action-btn.edit:hover{background:var(--accent-muted);color:var(--accent)}.room-action-btn.delete:hover{background:#ef444426;color:var(--error)}.room-edit-overlay,.room-delete-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100}.room-edit-modal,.room-delete-modal{background:var(--bg-card);border-radius:16px;padding:25px;width:90%;max-width:400px;border:1px solid var(--border)}.room-edit-modal h3,.room-delete-modal h3{color:var(--text-primary);font-size:1.3rem;margin:0 0 20px;text-align:center}.room-delete-icon{width:60px;height:60px;margin:0 auto 15px;background:#ef444426;border-radius:50%;display:flex;align-items:center;justify-content:center}.room-delete-icon svg{width:32px;height:32px;color:var(--error)}.room-delete-modal p{color:var(--text-secondary);text-align:center;margin:10px 0;font-size:.95rem}.room-delete-modal p strong{color:var(--text-primary)}.room-delete-warning{color:var(--error)!important;font-size:.85rem!important}.room-delete-btn{flex:1;padding:12px 20px;background:var(--error);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.room-delete-btn:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.room-delete-btn:disabled{opacity:.7;cursor:not-allowed}@media(max-width:480px){.room-modal{padding:20px;max-height:90vh}.room-header h2{font-size:1.5rem}.room-create-btn{padding:14px 20px;font-size:1rem}.room-form-actions{flex-direction:column}.room-item{padding:14px 16px}.room-item-badges{flex-direction:column;gap:4px}}.participants-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.participants-modal{background:var(--bg-card);border-radius:20px;padding:30px;max-width:500px;width:100%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.participants-close{position:absolute;top:15px;right:15px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:50%;transition:all .2s}.participants-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.participants-close svg{width:24px;height:24px}.participants-header{text-align:center;margin-bottom:25px}.participants-header h2{color:var(--text-primary);font-size:1.8rem;margin:0 0 10px}.participants-header p{color:var(--text-secondary);font-size:.95rem;margin:0}.participants-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error);padding:12px 16px;border-radius:10px;font-size:.9rem;text-align:center;margin-bottom:15px}.participants-content{display:flex;flex-direction:column;gap:20px}.participants-loading{display:flex;flex-direction:column;align-items:center;gap:15px;padding:40px;color:var(--text-secondary)}.participants-loading .spinner{width:40px;height:40px;border:3px solid rgba(234,88,12,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.participants-empty{text-align:center;padding:40px 20px;color:var(--text-secondary)}.participants-empty svg{width:60px;height:60px;margin-bottom:15px;opacity:.5}.participants-empty p{margin:0;font-size:1rem}.participants-section h3{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:1rem;font-weight:600;margin:0 0 12px}.participants-section h3 svg{width:20px;height:20px}.participants-section.banned h3{color:var(--error)}.participants-section.pending h3{color:var(--warning)}.participant-item.pending{background:#f59e0b14;border-color:#f59e0b33}.participant-avatar.pending{background:linear-gradient(135deg,#f59e0b,#d97706)}.participant-actions{display:flex;gap:8px;flex-shrink:0}.participant-action.approve{background:#22c55e1a;color:var(--text-muted)}.participant-action.approve:hover:not(:disabled){background:#22c55e33;color:var(--success)}.participant-action.reject{background:#ef44441a;color:var(--text-muted)}.participant-action.reject:hover:not(:disabled){background:#ef444433;color:var(--error)}.participant-action.delete{background:#ea580c1a;color:var(--text-muted)}.participant-action.delete:hover:not(:disabled){background:#ea580c33;color:var(--accent)}.participants-none{color:var(--text-muted);font-size:.9rem;padding:10px 0;margin:0}.participants-list{display:flex;flex-direction:column;gap:8px}.participant-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;transition:all .2s}.participant-item:hover{background:var(--bg-secondary);border-color:var(--accent)}.participant-item.banned{background:#ef44440d;border-color:#ef444433}.participant-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;flex-shrink:0}.participant-avatar.banned{background:linear-gradient(135deg,#ef4444,#dc2626)}.participant-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.participant-name{color:var(--text-primary);font-size:1rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-meta{color:var(--text-muted);font-size:.8rem}.participant-ban-reason{color:var(--error);font-size:.8rem;font-style:italic}.participant-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;transition:all .2s;flex-shrink:0}.participant-action svg{width:20px;height:20px}.participant-action.ban{background:#ef44441a;color:var(--text-muted)}.participant-action.ban:hover:not(:disabled){background:#ef444433;color:var(--error)}.participant-action.unban{background:#22c55e1a;color:var(--text-muted)}.participant-action.unban:hover:not(:disabled){background:#22c55e33;color:var(--success)}.participant-action:disabled{opacity:.7;cursor:not-allowed}.participant-action .spinner.small{width:18px;height:18px;border-width:2px}.ban-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100}.ban-modal{background:var(--bg-card);border-radius:16px;padding:25px;width:90%;max-width:380px;border:1px solid var(--border);text-align:center}.ban-icon{width:60px;height:60px;margin:0 auto 15px;background:#ef444426;border-radius:50%;display:flex;align-items:center;justify-content:center}.ban-icon svg{width:32px;height:32px;color:var(--error)}.ban-modal h3{color:var(--text-primary);font-size:1.3rem;margin:0 0 10px}.ban-modal p{color:var(--text-secondary);font-size:.95rem;margin:0 0 20px}.ban-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;text-align:left}.ban-field label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.ban-field input{padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:1rem;transition:all .2s}.ban-field input::placeholder{color:var(--text-muted)}.ban-field input:focus{outline:none;border-color:var(--error);background:var(--bg-card)}.ban-actions{display:flex;gap:12px}.ban-cancel{flex:1;padding:12px 20px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s}.ban-cancel:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.ban-confirm{flex:1;padding:12px 20px;background:var(--error);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.ban-confirm:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.ban-confirm:disabled{opacity:.7;cursor:not-allowed}.ban-confirm.delete{background:var(--accent)}.ban-confirm.delete:hover:not(:disabled){background:var(--accent-hover)}.ban-icon.delete{background:var(--accent-gradient)}@media(max-width:480px){.participants-modal{padding:20px;max-height:90vh}.participants-header h2{font-size:1.5rem}.participant-item{padding:10px 12px}.participant-avatar{width:36px;height:36px;font-size:.9rem}.ban-actions{flex-direction:column}}.pricing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:flex-start;justify-content:center;z-index:1100;padding:20px;overflow-y:auto}.pricing-page{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:24px;padding:40px;max-width:1100px;width:100%;position:relative;box-shadow:0 25px 80px #0009;border:1px solid rgba(255,255,255,.1);margin:40px 0}.pricing-close{position:absolute;top:20px;right:20px;background:none;border:none;color:#888;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s}.pricing-close:hover{background:#ffffff1a;color:#fff}.pricing-close svg{width:28px;height:28px}.pricing-header{text-align:center;margin-bottom:30px}.pricing-header h1{color:#fff;font-size:2.2rem;margin:0 0 10px}.pricing-header p{color:#888;font-size:1.1rem;margin:0}.billing-toggle{display:flex;justify-content:center;gap:8px;margin-bottom:30px;background:#ffffff0d;border-radius:12px;padding:6px;width:fit-content;margin-left:auto;margin-right:auto}.billing-toggle button{padding:12px 24px;background:transparent;border:none;border-radius:8px;color:#888;font-size:.95rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.billing-toggle button:hover{color:#fff}.billing-toggle button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.discount-badge{background:#22c55e;color:#fff;padding:2px 8px;border-radius:20px;font-size:.75rem;font-weight:600}.pricing-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:12px 20px;border-radius:10px;text-align:center;margin-bottom:20px}.pricing-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:50px}.pricing-card{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:30px;position:relative;transition:all .3s}.pricing-card:hover{transform:translateY(-5px);border-color:#fff3}.pricing-card.popular{background:linear-gradient(145deg,#667eea1a,#764ba21a);border-color:#667eea4d;transform:scale(1.02)}.pricing-card.popular:hover{transform:scale(1.02) translateY(-5px)}.pricing-card.current{border-color:#22c55e}.popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 16px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.current-badge{position:absolute;top:15px;right:15px;background:#22c55e33;color:#22c55e;padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:500}.event-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:6px 16px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pricing-card.event{border-color:#f59e0b4d}.pricing-card.event:hover{border-color:#f59e0b}.plan-btn.event-btn{background:linear-gradient(135deg,#f59e0b,#d97706)}.plan-btn.event-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f59e0b66}.pricing-card h2{color:#fff;font-size:1.4rem;margin:0 0 20px}.pricing-card .price{display:flex;align-items:baseline;gap:4px;margin-bottom:5px}.pricing-card .amount{color:#fff;font-size:3rem;font-weight:700}.pricing-card .currency{color:#888;font-size:1rem}.pricing-card .period{color:#666;font-size:.9rem}.price-period{color:#666;font-size:.85rem;margin:0 0 25px}.features-list{list-style:none;padding:0;margin:0 0 25px}.features-list li{display:flex;align-items:center;gap:10px;padding:10px 0;color:#ccc;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.05)}.features-list li:last-child{border-bottom:none}.features-list li svg{width:18px;height:18px;flex-shrink:0}.features-list li.included svg{color:#22c55e}.features-list li.excluded{color:#666}.features-list li.excluded svg{color:#666}.features-list li.negative{color:#f59e0b}.features-list li.negative svg{color:#f59e0b}.plan-btn{width:100%;padding:16px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.plan-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.plan-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.plan-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #667eea66}.plan-btn:disabled{opacity:.6;cursor:not-allowed}.pricing-faq{border-top:1px solid rgba(255,255,255,.1);padding-top:40px}.pricing-faq h3{color:#fff;font-size:1.4rem;text-align:center;margin:0 0 30px}.faq-item{background:#ffffff08;border-radius:12px;padding:20px;margin-bottom:15px}.faq-item h4{color:#fff;font-size:1rem;margin:0 0 10px}.faq-item p{color:#888;font-size:.9rem;margin:0;line-height:1.6}@media(max-width:1200px){.pricing-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.pricing-cards{grid-template-columns:1fr;max-width:400px;margin-left:auto;margin-right:auto}.pricing-card.popular{transform:none;order:-1}.pricing-card.popular:hover{transform:translateY(-5px)}}@media(max-width:600px){.pricing-page{padding:25px 20px;margin:10px 0}.pricing-header h1{font-size:1.6rem}.pricing-card .amount{font-size:2.5rem}.billing-toggle button{padding:10px 16px;font-size:.85rem}}.upgrade-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px;animation:fadeIn .2s ease}.upgrade-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:24px;padding:35px;max-width:520px;width:100%;position:relative;box-shadow:0 25px 80px #0009;border:1px solid rgba(255,255,255,.1);animation:slideUp .3s ease;max-height:90vh;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.upgrade-close{position:absolute;top:15px;right:15px;background:none;border:none;color:#888;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s}.upgrade-close:hover{background:#ffffff1a;color:#fff}.upgrade-close svg{width:24px;height:24px}.upgrade-icon{width:70px;height:70px;background:linear-gradient(135deg,#f59e0b,#f97316);border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.upgrade-icon svg{width:40px;height:40px;color:#fff}.upgrade-title{color:#fff;font-size:1.6rem;text-align:center;margin:0 0 12px}.upgrade-description{color:#888;font-size:1rem;text-align:center;margin:0 0 10px;line-height:1.5}.upgrade-benefit{color:#f59e0b;font-size:1.1rem;text-align:center;margin:0 0 25px;font-weight:600}.upgrade-comparison{background:#ffffff08;border-radius:16px;padding:20px;margin-bottom:25px}.upgrade-comparison h3{color:#ccc;font-size:1rem;margin:0 0 15px;text-align:center}.upgrade-comparison table{width:100%;border-collapse:collapse;font-size:.85rem}.upgrade-comparison th,.upgrade-comparison td{padding:10px 8px;text-align:center;border-bottom:1px solid rgba(255,255,255,.05)}.upgrade-comparison th{color:#888;font-weight:500}.upgrade-comparison th:first-child,.upgrade-comparison td:first-child{text-align:left;color:#ccc}.upgrade-comparison td{color:#999}.upgrade-comparison th.current,.upgrade-comparison td.current{background:#667eea1a;color:#667eea}.upgrade-pricing{display:flex;gap:15px;margin-bottom:25px}.price-card{flex:1;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;text-align:center;position:relative}.price-card.recommended{background:linear-gradient(145deg,#667eea1a,#764ba21a);border-color:#667eea4d}.price-card .badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase}.price-card h4{color:#fff;font-size:1.1rem;margin:10px 0 15px}.price-card .price{display:flex;align-items:baseline;justify-content:center;gap:2px}.price-card .amount{color:#fff;font-size:2rem;font-weight:700}.price-card .currency{color:#888;font-size:.9rem}.price-card .period{color:#666;font-size:.85rem}.price-card p{color:#666;font-size:.8rem;margin:10px 0 0}.upgrade-actions{display:flex;flex-direction:column;gap:12px}.upgrade-btn{padding:16px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;border:none}.upgrade-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.upgrade-btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px #667eea66}.upgrade-btn.secondary{background:transparent;color:#888;border:1px solid rgba(255,255,255,.15)}.upgrade-btn.secondary:hover{background:#ffffff0d;color:#fff;border-color:#ffffff4d}@media(max-width:520px){.upgrade-modal{padding:25px 20px;margin:10px}.upgrade-title{font-size:1.4rem}.upgrade-comparison{padding:15px}.upgrade-comparison table{font-size:.75rem}.upgrade-comparison th,.upgrade-comparison td{padding:8px 4px}.upgrade-pricing{flex-direction:column}.price-card .amount{font-size:1.8rem}}.interstitial-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}.interstitial-container{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:20px;width:90%;max-width:450px;padding:0;border:2px solid var(--ad-color, #6366f1);box-shadow:0 0 60px #6366f14d;animation:scaleIn .3s ease;overflow:hidden}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.interstitial-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1)}.interstitial-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:1px;font-weight:600}.interstitial-loading{display:flex;align-items:center;gap:.5rem;color:#aaa;font-size:.85rem}.interstitial-loading .check-icon{width:16px;height:16px;color:#22c55e}.loading-spinner{width:16px;height:16px;border:2px solid rgba(99,102,241,.3);border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}.interstitial-content{display:flex;flex-direction:column;align-items:center;padding:2.5rem 2rem;text-align:center}.interstitial-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 2s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.interstitial-title{font-size:1.8rem;font-weight:700;color:#fff;margin:0 0 .75rem}.interstitial-description{font-size:1.1rem;color:#b3b3b3;margin:0 0 2rem;line-height:1.5}.interstitial-cta{padding:1rem 2.5rem;border:none;border-radius:50px;color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 20px #0000004d}.interstitial-cta:hover{transform:scale(1.05);box-shadow:0 6px 30px #0006}.interstitial-cta:active{transform:scale(.98)}.interstitial-footer{padding:1rem 1.5rem;background:#0000004d;border-top:1px solid rgba(255,255,255,.1);text-align:center}.interstitial-skip-hint{font-size:.85rem;color:#666}@media(max-width:480px){.interstitial-container{width:95%;max-width:none;margin:1rem}.interstitial-content{padding:2rem 1.5rem}.interstitial-icon{font-size:3rem}.interstitial-title{font-size:1.5rem}.interstitial-description{font-size:1rem}.interstitial-cta{padding:.875rem 2rem;font-size:1rem}}.local-audio-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;padding:20px}.local-audio-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:16px;max-width:600px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.local-audio-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.local-audio-header h2{margin:0;font-size:1.4rem;color:#fff}.local-audio-header .close-btn{background:#ffffff1a;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.local-audio-header .close-btn:hover{background:#fff3}.local-audio-header .close-btn svg{width:20px;height:20px;color:#fff}.local-audio-content{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.drop-zone{border:2px dashed rgba(139,92,246,.4);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s;background:#8b5cf60d}.drop-zone:hover,.drop-zone.drag-over{border-color:#8b5cf6;background:#8b5cf626}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px}.upload-icon{width:48px;height:48px;color:#8b5cf6;margin-bottom:8px}.drop-zone-text{font-size:1.1rem;color:#fff;margin:0}.drop-zone-hint{font-size:.9rem;color:#ffffff80;margin:0}.drop-zone-formats{font-size:.8rem;color:#fff6;margin:8px 0 0}.import-errors{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:12px 16px}.import-errors-header{display:flex;align-items:center;gap:10px;color:#f87171;font-size:.95rem;font-weight:500}.import-errors-header svg{width:20px;height:20px;flex-shrink:0}.import-errors-header span{flex:1}.dismiss-errors{background:transparent;border:none;color:#ffffff80;font-size:1.4rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.dismiss-errors:hover{color:#fff}.import-errors-list{margin:10px 0 0;padding-left:30px;color:#ffffffb3;font-size:.85rem;max-height:100px;overflow-y:auto}.import-errors-list li{margin-bottom:4px}.tracks-list h3{margin:0 0 12px;font-size:1rem;color:#ffffffb3}.tracks-container{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow-y:auto}.track-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0d;border-radius:8px;transition:background .2s}.track-item:hover{background:#ffffff1a}.track-art{width:44px;height:44px;border-radius:6px;overflow:hidden;flex-shrink:0}.track-art img{width:100%;height:100%;object-fit:cover}.track-art-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#8b5cf6,#6366f1);display:flex;align-items:center;justify-content:center}.track-art-placeholder svg{width:24px;height:24px;color:#fff}.track-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.track-title{color:#fff;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{color:#ffffff80;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{color:#fff6;font-size:.85rem;flex-shrink:0}.track-actions{display:flex;gap:4px;flex-shrink:0}.track-actions button{background:#ffffff1a;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.track-actions button svg{width:16px;height:16px;color:#fff}.track-actions .play-btn:hover{background:#1db954}.track-actions .remove-btn:hover{background:#ef4444}.local-mode-info{display:flex;gap:12px;padding:16px;background:#3b82f61a;border-radius:10px;border:1px solid rgba(59,130,246,.2)}.local-mode-info>svg{width:24px;height:24px;color:#3b82f6;flex-shrink:0;margin-top:2px}.local-mode-info strong{display:block;color:#fff;margin-bottom:4px;font-size:.95rem}.local-mode-info p{margin:0;color:#fff9;font-size:.85rem;line-height:1.5}@media(max-width:600px){.local-audio-modal-overlay{padding:10px}.local-audio-modal{max-height:90vh}.local-audio-content{padding:16px}.drop-zone{padding:30px 15px}.track-item{padding:8px 10px}.track-art{width:40px;height:40px}.track-duration{display:none}}.chatbot-button{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #8b5cf666;transition:all .3s ease;z-index:1000}.chatbot-button:hover{transform:scale(1.1);box-shadow:0 6px 25px #8b5cf680}.chatbot-button:active{transform:scale(.95)}.chatbot-button svg{width:28px;height:28px;color:#fff}.chatbot-badge{position:absolute;top:-2px;right:-2px;width:14px;height:14px;background:#ef4444;border-radius:50%;border:2px solid #1a1a2e;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media(max-width:768px){.chatbot-button{bottom:80px;right:15px;width:50px;height:50px}.chatbot-button svg{width:24px;height:24px}}.chatbot-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:flex-end;justify-content:flex-end;padding:20px;z-index:1001;animation:fadeIn .2s ease}.chatbot-panel{width:380px;max-width:calc(100vw - 40px);height:550px;max-height:calc(100vh - 100px);background:#1e1e2e;border-radius:16px;display:flex;flex-direction:column;box-shadow:0 10px 40px #0006;animation:slideUp .3s ease;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.chatbot-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff}.chatbot-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}.ai-badge{background:#10b981;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;animation:pulse-badge 2s infinite}@keyframes pulse-badge{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 4px #10b98100}}.chatbot-icon{width:24px;height:24px}.chatbot-icon svg{width:100%;height:100%}.chatbot-close{background:#fff3;border:none;border-radius:8px;padding:6px;cursor:pointer;color:#fff;transition:background .2s}.chatbot-close:hover{background:#ffffff4d}.chatbot-close svg{width:20px;height:20px}.chatbot-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chatbot-message{max-width:85%;animation:messageIn .3s ease}@keyframes messageIn{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.chatbot-message.user{align-self:flex-end}.chatbot-message.assistant{align-self:flex-start}.message-content{padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.5;word-wrap:break-word}.chatbot-message.user .message-content{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border-bottom-right-radius:4px}.chatbot-message.assistant .message-content{background:#2a2a3e;color:#e0e0e0;border-bottom-left-radius:4px}.validate-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px 8px;margin-top:4px;opacity:.6;transition:all .2s}.validate-btn:hover{opacity:1;transform:scale(1.2)}.validate-btn.validated{color:#10b981;opacity:1}.cache-badge{font-size:12px;margin-left:8px;opacity:.7}.message-content.typing{display:flex;gap:4px;padding:16px 20px}.message-content.typing span{width:8px;height:8px;background:#8b5cf6;border-radius:50%;animation:typing 1.4s infinite ease-in-out}.message-content.typing span:nth-child(1){animation-delay:0s}.message-content.typing span:nth-child(2){animation-delay:.2s}.message-content.typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.chatbot-search-results{background:#2a2a3e;border-radius:12px;padding:12px;animation:messageIn .3s ease}.results-title{font-size:12px;color:#888;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.result-item{display:flex;align-items:center;gap:10px;padding:8px;background:#1e1e2e;border-radius:8px;margin-bottom:8px}.result-item:last-child{margin-bottom:0}.result-image{width:40px;height:40px;border-radius:6px;object-fit:cover}.result-info{flex:1;min-width:0}.result-title{font-size:13px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-artist{font-size:11px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-add-btn{width:32px;height:32px;border-radius:50%;background:#8b5cf6;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.result-add-btn:hover{background:#7c3aed;transform:scale(1.1)}.chatbot-input-container{display:flex;gap:10px;padding:16px;background:#161622;border-top:1px solid #2a2a3e}.chatbot-input{flex:1;background:#2a2a3e;border:none;border-radius:24px;padding:12px 18px;color:#fff;font-size:14px;outline:none;transition:box-shadow .2s}.chatbot-input:focus{box-shadow:0 0 0 2px #8b5cf680}.chatbot-input::placeholder{color:#666}.chatbot-send{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.chatbot-send:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 15px #8b5cf666}.chatbot-send:disabled{opacity:.5;cursor:not-allowed}.chatbot-send svg{width:20px;height:20px;color:#fff}@media(max-width:768px){.chatbot-overlay{padding:0;align-items:stretch;justify-content:stretch}.chatbot-panel{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}}.app{display:flex;height:100vh;background:var(--bg-secondary);overflow:hidden}.app.app-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;height:-webkit-fill-available;z-index:9999;overflow:hidden;touch-action:none}.app.app-fullscreen .main-content,.app.app-fullscreen .sidebar{touch-action:auto}.app.app-fullscreen .sidebar{transform:translate(-100%)}.app.app-fullscreen .sidebar.open{transform:translate(0)}.fullscreen-btn{position:fixed;top:1rem;right:1rem;z-index:200;background:var(--bg-card);border:1px solid var(--border);padding:.75rem;border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all .15s ease}.fullscreen-btn:hover{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent)}.fullscreen-btn svg{width:24px;height:24px;display:block}.sidebar{transition:all .3s ease;overflow:hidden}.sidebar.open{width:320px}.sidebar.closed{width:0}.sidebar-toggle{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:100;background:var(--accent);border:none;border-radius:0 var(--radius-md) var(--radius-md) 0;padding:1rem .5rem;cursor:pointer;color:var(--text-inverse);transition:all .15s ease}.sidebar.open~.sidebar-toggle{left:320px}.sidebar-toggle:hover{background:var(--accent-hover);padding-right:.75rem}.sidebar-toggle svg{width:24px;height:24px}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.main-content.controls-hidden .lyrics-track{--lyrics-offset: 45vh}.main-content.controls-hidden .lyrics-scroll:after{content:none}.no-song{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4rem 2rem 2rem;text-align:center;color:var(--text-muted);overflow-y:auto}.no-song-icon{width:100px;height:100px;margin-bottom:2rem;opacity:.5;color:var(--accent)}.no-song h2{color:var(--text-primary);font-size:2rem;margin-bottom:.5rem;font-weight:700}.no-song p{font-size:1.1rem;margin-bottom:2rem;max-width:400px}.btn-primary{display:flex;align-items:center;gap:.75rem;background:var(--accent);color:var(--text-inverse);border:none;padding:1rem 2rem;border-radius:var(--radius-md);font-size:1.1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary svg{width:24px;height:24px}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:translateY(0)}.no-song-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.welcome-qr{margin-top:2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.welcome-qr svg{border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.welcome-qr-label{font-size:.9rem;color:var(--text-muted)}.fixed-qr{position:fixed;top:1rem;left:1rem;z-index:150;display:flex;flex-direction:column;align-items:center;gap:4px;opacity:.9;transition:all .3s ease}.fixed-qr.sidebar-open{left:calc(320px + 1rem)}.fixed-qr:hover{opacity:1}.fixed-qr svg{border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.fixed-qr-label{font-size:11px;color:var(--text-muted);font-weight:500}.btn-spotify{display:flex;align-items:center;gap:.75rem;background:var(--spotify-green);color:var(--text-inverse);border:none;padding:1rem 2rem;border-radius:var(--radius-md);font-size:1.1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-spotify svg{width:24px;height:24px}.btn-spotify:hover{background:#1ed760}.btn-local-audio{display:flex;align-items:center;gap:.75rem;background:var(--accent-gradient);color:var(--text-inverse);border:none;padding:1rem 2rem;border-radius:var(--radius-md);font-size:1.1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-local-audio svg{width:24px;height:24px}.btn-local-audio:hover{opacity:.9}.spotify-fab{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;background:var(--spotify-green);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-inverse);box-shadow:var(--shadow-lg);transition:all .15s ease;z-index:50}.spotify-fab svg{width:32px;height:32px}.spotify-fab:hover{background:#1ed760;transform:scale(1.05)}@media(max-width:768px){.sidebar.open{position:absolute;left:0;top:0;bottom:0;z-index:50;width:100%;max-width:320px}.sidebar.open~.sidebar-toggle{left:100%;max-left:320px}}@media(orientation:portrait)and (max-width:768px){.app{flex-direction:column;height:auto;min-height:100vh;min-height:100dvh;overflow-y:auto}.sidebar,.sidebar.closed,.sidebar.open{width:100%!important;max-width:100%;height:auto!important;max-height:none;position:relative;order:1;overflow:visible!important;display:block!important}.sidebar-toggle{display:none!important}.main-content{display:flex!important;flex:none;width:100%!important;height:auto;min-height:auto;max-height:none;order:2;align-items:center;justify-content:center;position:relative}.main-content:has(.lyrics-display){height:40vh;min-height:40vh;max-height:40vh;width:100%!important}.app.app-fullscreen .main-content{display:flex!important;flex:1;min-height:100vh;order:2}.app.app-fullscreen .sidebar,.app.app-fullscreen .sidebar.closed,.app.app-fullscreen .sidebar.open{display:none!important}.fixed-qr{display:none}.fullscreen-btn{position:absolute;top:.5rem;right:.5rem;z-index:10;padding:.4rem}.fullscreen-btn svg{width:18px;height:18px}.no-song{padding:2rem 1.5rem 1.5rem;padding-bottom:100px}.no-song-icon{width:60px;height:60px;margin-bottom:1rem}.no-song h2{font-size:1.5rem}.no-song p{font-size:.95rem;margin-bottom:1.5rem}.no-song-actions{flex-direction:column;width:100%;gap:.75rem}.btn-primary,.btn-spotify,.btn-local-audio{width:100%;padding:.9rem 1.5rem;font-size:1rem;justify-content:center}.welcome-qr{margin-top:1.5rem}.welcome-qr svg{width:80vw!important;height:80vw!important;max-width:300px!important;max-height:300px!important}.welcome-qr-label{font-size:.9rem}}@media(pointer:coarse){.btn-primary{padding:1.2rem 2.5rem;font-size:1.2rem}.sidebar-toggle{padding:1.5rem .75rem}}@media(orientation:portrait)and (max-width:768px)and (pointer:coarse){.btn-primary,.btn-spotify,.btn-local-audio{padding:.9rem 1.5rem;font-size:1rem}.sidebar-toggle{padding:0}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000;gap:1rem}.loading-overlay p{color:var(--text-primary);font-size:1.2rem}.loading-spinner{width:50px;height:50px;border:4px solid var(--accent-muted);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.mobile-add-song{min-height:100vh;min-height:100dvh;height:auto;background:var(--bg-secondary);color:var(--text-primary);padding:1rem 1rem 5rem;overflow-y:visible;position:relative}.pull-refresh-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;overflow:hidden;color:var(--accent);font-size:.8rem;transition:opacity .2s ease}.pull-refresh-spinner{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.pull-refresh-spinner svg{width:24px;height:24px;transition:transform .1s ease}.pull-refresh-spinner.spinning svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-header{padding:1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.mobile-header-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.mobile-header h1{font-size:1.5rem;margin:0;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1}.toggle-lyrics-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.6rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;transition:all .2s ease}.toggle-lyrics-btn svg{width:16px;height:16px}.toggle-lyrics-btn.active{background:var(--accent-muted);border-color:#ea580c4d;color:var(--accent)}.mobile-content{max-width:500px;margin:0 auto}.mobile-error{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.mobile-error svg{width:64px;height:64px;color:var(--error);margin-bottom:1rem}.mobile-error p{margin:.5rem 0}.user-input{margin-bottom:1.5rem}.user-input label{display:block;font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.user-input input{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;outline:none;transition:all .2s ease}.user-input input:focus{border-color:var(--accent);background:var(--bg-card)}.search-section{margin-bottom:1.5rem}.search-input{display:flex;gap:.5rem;position:relative}.search-input input{flex:1;padding:.75rem 2.5rem .75rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;outline:none;transition:all .2s ease}.clear-btn{position:absolute;right:60px;top:50%;transform:translateY(-50%);background:transparent;border:none;padding:.5rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.clear-btn:hover{color:var(--text-primary)}.clear-btn svg{width:20px;height:20px}.search-input input:focus{border-color:var(--accent);background:var(--bg-card)}.search-input button{padding:.75rem 1rem;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.search-input button:hover:not(:disabled){background:var(--accent-hover)}.search-input button:disabled{opacity:.6;cursor:not-allowed}.search-input button svg{width:24px;height:24px}.message{padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;text-align:center;font-size:.95rem}.search-results{display:flex;flex-direction:column;gap:.5rem;padding-bottom:2rem}.track-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .2s ease}.track-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.track-cover{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover}.track-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;flex-shrink:0}.track-icon svg{width:24px;height:24px;color:#fff}.track-album{font-size:.8rem;color:var(--text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-info{font-size:.85rem;color:var(--text-subtle);text-align:center;margin:0 0 1rem}.track-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.track-duration{font-size:.85rem;color:var(--text-subtle);font-variant-numeric:tabular-nums}.add-btn{width:40px;height:40px;background:var(--accent);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.add-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.1)}.add-btn:disabled{opacity:.6;cursor:not-allowed}.add-btn svg{width:24px;height:24px}.track-item.local-track{background:var(--gold-muted);border:1px solid rgba(245,158,11,.2)}.track-cover-placeholder{background:var(--gold-muted);display:flex;align-items:center;justify-content:center}.track-cover-placeholder svg{width:28px;height:28px;color:var(--gold)}.local-badge{display:inline-block;background:var(--gold);color:#fff;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);margin-right:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px}.song-added-notification{margin:0 1rem 1rem;padding:1rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:var(--radius-md);display:flex;align-items:center;gap:1rem;animation:notificationSlideIn .4s ease-out,notificationPulse 2s ease-in-out infinite;box-shadow:0 0 20px #ea580c33,0 0 40px #14b8a61a}@keyframes notificationSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes notificationPulse{0%,to{box-shadow:0 0 20px #ea580c33,0 0 40px #14b8a61a}50%{box-shadow:0 0 30px #ea580c4d,0 0 60px #14b8a633}}.notification-icon{width:48px;height:48px;background:var(--accent-gradient);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:iconBounce .6s ease-out}@keyframes iconBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.notification-icon svg{width:24px;height:24px;color:#fff}.notification-content{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.notification-title{font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-artist{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-requester{font-size:.8rem;color:var(--accent);margin-top:.25rem}.notification-requester strong{color:var(--text-primary);font-weight:600}.mobile-lyrics-section{background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-md);margin:0 1rem 1rem;overflow:hidden}.mobile-lyrics-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-elevated);border-bottom:1px solid rgba(234,88,12,.15)}.mobile-lyrics-header-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.mobile-fullscreen-btn{width:36px;height:36px;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.mobile-fullscreen-btn:hover{background:#ea580c33;color:var(--accent-hover)}.mobile-fullscreen-btn svg{width:20px;height:20px}.now-playing-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.now-playing-song{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-lyrics-container{height:180px;overflow:hidden;position:relative;background:var(--bg-card)}.mobile-lyrics-track{position:absolute;left:0;right:0;transition:top .3s ease-out}.mobile-lyric-line{height:36px;font-size:.95rem;line-height:36px;color:var(--text-subtle);text-align:center;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 1rem}.mobile-lyric-line.past{color:var(--text-subtle);opacity:.5}.mobile-lyric-line.active{font-size:1.1rem;font-weight:600}.mobile-lyric-line .lyric-highlighted,.mobile-lyric-line .lyric-remaining{color:var(--text-primary)}.exit-fullscreen-btn{position:absolute;top:calc(1rem + env(safe-area-inset-top));right:calc(1rem + env(safe-area-inset-right));width:44px;height:44px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.fullscreen-lyric-line{height:80px;font-size:1.5rem;line-height:80px;color:#ffffff4d;text-align:center;transition:all .3s ease;padding:0 2rem}.fullscreen-lyric-line.active{font-size:2rem;font-weight:700}@media screen and (orientation:landscape){.fullscreen-lyric-line{height:60px;font-size:1.3rem;line-height:60px}.fullscreen-lyric-line.active{font-size:1.8rem}}.header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.qr-scan-btn{width:36px;height:36px;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:50%;color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.qr-scan-btn:hover{background:#ea580c33;color:var(--accent-hover)}.qr-scan-btn svg{width:18px;height:18px}.qr-scanner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172ae6;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem}.qr-scanner-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;overflow:hidden;box-shadow:var(--shadow-lg)}.qr-scanner-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.qr-scanner-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.qr-scanner-close{width:36px;height:36px;background:var(--bg-elevated);border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.qr-scanner-close:hover{background:#ef44441a;color:var(--error)}.qr-scanner-close svg{width:20px;height:20px}.qr-scanner-body{padding:1.25rem}#qr-reader{width:100%;border-radius:var(--radius-md);overflow:hidden}#qr-reader video{border-radius:var(--radius-md)}#qr-reader__scan_region{background:transparent!important}#qr-reader__dashboard,#qr-reader__dashboard_section{padding:.5rem!important}#qr-reader__dashboard_section_csr button{background:var(--accent)!important;border:none!important;border-radius:var(--radius-sm)!important;color:#fff!important;padding:.75rem 1.5rem!important;font-size:.9rem!important;cursor:pointer!important}.qr-scan-error{margin-top:1rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--error);text-align:center;font-size:.9rem}.qr-scanner-hint{margin-top:1rem;text-align:center;color:var(--text-muted);font-size:.85rem;line-height:1.4}.reconnect-hint{color:var(--text-muted);font-size:.85rem;margin-top:.5rem}.reconnect-content{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px)}.reconnect-box{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);text-align:center;max-width:320px}.reconnect-icon{width:60px;height:60px;color:var(--accent);margin-bottom:.5rem}.reconnect-box h2{margin:0;font-size:1.3rem;color:var(--text-primary)}.reconnect-box p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.5}.scan-qr-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.9rem 1.25rem;background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.scan-qr-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ea580c4d}.qr-scanner-container{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.qr-reader{width:100%;max-width:300px;border-radius:var(--radius-md);overflow:hidden}.qr-error{color:var(--error);font-size:.85rem;margin:0}.cancel-scan-btn{padding:.7rem 1.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease}.retry-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-md);color:var(--accent);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.retry-btn:hover{background:#ea580c26;border-color:#ea580c4d}.retry-btn svg{width:20px;height:20px}.welcome-content{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px)}.welcome-box{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);text-align:center;max-width:320px;width:100%}.welcome-icon{width:80px;height:80px;background:var(--accent-gradient);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.welcome-icon svg{width:40px;height:40px;color:#fff}.welcome-box h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.welcome-box p{margin:0;color:var(--text-muted);font-size:.95rem;line-height:1.5}.welcome-input{width:100%;margin-top:.5rem}.welcome-input input{width:100%;padding:.9rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1.1rem;text-align:center;outline:none;transition:all .2s ease}.welcome-input input::placeholder{color:var(--text-subtle)}.welcome-input input:focus{border-color:var(--accent);background:var(--bg-card)}.welcome-error{color:var(--error);font-size:.85rem;margin:0}.welcome-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.9rem 1.25rem;background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.welcome-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ea580c4d}.welcome-btn svg{width:24px;height:24px}.mobile-user-bar{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding:.6rem .75rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-md)}.mobile-user-info{display:flex;align-items:center;gap:.6rem}.mobile-user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.95rem}.mobile-user-name{color:var(--text-primary);font-weight:500;font-size:.95rem}.mobile-user-actions{display:flex;align-items:center;gap:.5rem}.mobile-control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;transition:all .2s ease}.mobile-control-btn:hover,.mobile-control-btn:active{background:#ea580c33;border-color:#ea580c80;color:var(--accent-hover)}.mobile-control-btn svg{width:18px;height:18px}.mobile-logout-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .2s ease}.mobile-logout-btn:hover{background:#ef44441a;border-color:#ef444433;color:var(--error)}.mobile-logout-btn svg{width:18px;height:18px}.mobile-controller{min-height:100vh;min-height:100dvh;background:var(--bg-secondary);color:var(--text-primary);padding:1rem 1rem 5rem;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.controller-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.back-btn{width:36px;height:36px;border:none;border-radius:50%;background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.back-btn:hover{background:#ef44441a;color:var(--error)}.back-btn svg{width:18px;height:18px}.controller-header h1{font-size:1.5rem;margin:0;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1;text-align:center}.header-actions{display:flex;align-items:center;gap:.5rem}.spotify-btn,.toggle-lyrics-btn{width:36px;height:36px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.spotify-btn{background:var(--spotify-green);color:#fff}.spotify-btn:hover{background:#1ed760;transform:scale(1.05)}.spotify-btn svg{width:20px;height:20px}.controller-content{max-width:600px;margin:0 auto}.connecting-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1.5rem}.connecting-spinner .spinner{width:48px;height:48px;border:3px solid var(--accent-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.connecting-spinner p{color:var(--text-muted);font-size:1rem}.connection-status{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:20px;font-size:.75rem;font-weight:500}.connection-status.connected{background:#10b9811a;color:var(--success)}.connection-status.disconnected{background:#ef44441a;color:var(--error)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.message{padding:.75rem 1rem;border-radius:var(--radius-md);margin:0 1rem 1rem;text-align:center;font-size:.95rem}.message.success{background:#10b9811a;color:var(--success);border:1px solid rgba(16,185,129,.2)}.message.error{background:#ef44441a;color:var(--error);border:1px solid rgba(239,68,68,.2)}.message.info{background:var(--accent-muted);color:var(--accent);border:1px solid rgba(234,88,12,.2)}.queue-title{display:flex;align-items:center;gap:.75rem;font-size:1.2rem;font-weight:600;margin:0 0 1.5rem;color:var(--accent)}.queue-title svg{width:24px;height:24px}.empty-queue{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.empty-queue svg{width:64px;height:64px;color:var(--accent);margin-bottom:1rem;opacity:.5}.empty-queue p{margin:.5rem 0}.empty-queue .hint{font-size:.85rem;color:var(--text-subtle)}.queue-list{display:flex;flex-direction:column;gap:.75rem}.queue-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .2s ease;gap:.75rem;overflow:hidden}.queue-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.queue-item.playing{background:var(--accent-muted);border:1px solid rgba(234,88,12,.3)}.song-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;cursor:pointer;overflow:hidden}.playing-indicator{display:flex;align-items:flex-end;gap:2px;height:20px}.playing-indicator span{width:3px;background:var(--accent);border-radius:2px;animation:soundWave .5s ease-in-out infinite alternate}.playing-indicator span:nth-child(1){height:8px;animation-delay:0s}.playing-indicator span:nth-child(2){height:16px;animation-delay:.1s}.playing-indicator span:nth-child(3){height:12px;animation-delay:.2s}@keyframes soundWave{0%{height:4px}to{height:20px}}.song-details{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.song-title{font-weight:500;word-break:break-word;color:var(--text-primary)}.song-artist{font-size:.85rem;color:var(--text-muted);word-break:break-word}.song-requester{font-size:.75rem;color:var(--accent)}.song-actions{display:flex;gap:.5rem;flex-shrink:0}.play-btn,.delete-btn{width:40px;height:40px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.play-btn{background:var(--accent);color:#fff}.play-btn:hover{background:var(--accent-hover);transform:scale(1.1)}.play-btn svg{width:20px;height:20px}.delete-btn{background:#ef44441a;color:var(--error)}.delete-btn:hover{background:#ef444433;transform:scale(1.1)}.delete-btn svg{width:20px;height:20px}.rotate-device{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-secondary);display:none;align-items:center;justify-content:center;z-index:9999}@media screen and (orientation:landscape){.rotate-device:not(.hidden){display:flex}.mobile-controller:not(.fullscreen-mode){display:none}}@media screen and (orientation:portrait){.rotate-device{display:none!important}}.mobile-controller.fullscreen-mode{display:block!important}.rotate-device.hidden{display:none!important}.rotate-content{text-align:center;padding:2rem;color:var(--text-primary)}.rotate-icon{width:80px;height:80px;color:var(--accent);margin-bottom:1.5rem;animation:rotateHint 2s ease-in-out infinite}@keyframes rotateHint{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.rotate-content h2{font-size:1.5rem;margin:0 0 .5rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.rotate-content p{color:var(--text-muted);margin:0 0 2rem;font-size:.95rem}.phone-animation{display:inline-block;animation:phoneRotate 2s ease-in-out infinite}.phone-animation svg{width:60px;height:60px;color:var(--accent);opacity:.7}@keyframes phoneRotate{0%,to{transform:rotate(90deg)}50%{transform:rotate(0)}}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:90%;max-width:320px;padding:1.5rem;text-align:center;border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:scaleIn .3s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirm-icon{width:56px;height:56px;margin:0 auto 1rem;border-radius:50%;background:#ef44441a;display:flex;align-items:center;justify-content:center}.confirm-icon svg{width:28px;height:28px;color:var(--error)}.confirm-modal h3{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-primary)}.confirm-modal p{margin:0 0 1.25rem;font-size:.9rem;color:var(--text-muted)}.confirm-actions{display:flex;gap:.75rem}.confirm-btn{flex:1;padding:.75rem 1rem;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.confirm-btn.cancel{background:var(--bg-elevated);color:var(--text-muted)}.confirm-btn.cancel:hover{background:var(--border);color:var(--text-secondary)}.confirm-btn.delete{background:var(--error);color:#fff}.confirm-btn.delete:hover{background:#dc2626}.mobile-now-playing{margin:0 0 1rem;padding:1rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:.75rem}.mobile-now-playing-info{display:flex;flex-direction:column;gap:.2rem}.mobile-now-playing-label{font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.mobile-now-playing-title{font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-now-playing-artist{font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sync-control{display:flex;align-items:center;gap:.5rem;background:var(--bg-elevated);padding:.5rem .75rem;border-radius:var(--radius-sm)}.mobile-sync-label{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-right:auto}.mobile-sync-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:var(--radius-sm);cursor:pointer;color:var(--accent);font-size:1.2rem;font-weight:600;transition:all .15s ease}.mobile-sync-btn:hover{background:#ea580c26;border-color:var(--accent)}.mobile-sync-btn:active{transform:scale(.95);background:#ea580c33}.mobile-sync-value{min-width:60px;text-align:center;color:var(--text-primary);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums;padding:.4rem .75rem;background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.mobile-sync-value:hover{background:var(--bg-elevated);color:var(--accent)}.mobile-sync-value:active{background:var(--accent-muted)}.mobile-volume-control{display:flex;align-items:center;gap:.5rem;background:var(--bg-elevated);padding:.5rem .75rem;border-radius:var(--radius-sm)}.mobile-volume-icon{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.mobile-volume-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:3px;outline:none;cursor:pointer}.mobile-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;transition:transform .15s ease,background .15s ease}.mobile-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.15);background:var(--accent-hover)}.mobile-volume-slider::-moz-range-thumb{width:18px;height:18px;background:var(--accent);border:none;border-radius:50%;cursor:pointer}.toggle-lyrics-btn{background:var(--bg-elevated);color:var(--text-muted)}.toggle-lyrics-btn svg{width:18px;height:18px}.toggle-lyrics-btn.active{background:var(--accent-muted);color:var(--accent)}.toggle-lyrics-btn:hover{background:#ea580c26;color:var(--accent)}.controller-lyrics-section{background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-md);margin:0 1rem 1rem;overflow:hidden}.controller-lyrics-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-elevated);border-bottom:1px solid rgba(234,88,12,.15)}.controller-lyrics-header-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.lyrics-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:600}.controller-fullscreen-btn{width:36px;height:36px;background:var(--accent-muted);border:1px solid rgba(234,88,12,.3);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.controller-fullscreen-btn:hover{background:#ea580c33;color:var(--accent-hover)}.controller-fullscreen-btn svg{width:20px;height:20px}.controller-lyrics-container{height:180px;overflow:hidden;position:relative;background:var(--bg-card)}.controller-lyrics-track{position:absolute;left:0;right:0;transition:top .3s ease-out}.controller-lyric-line{height:36px;font-size:.95rem;line-height:36px;color:var(--text-subtle);text-align:center;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 1rem}.controller-lyric-line.past{color:var(--text-subtle);opacity:.5}.controller-lyric-line.active{font-size:1.1rem;font-weight:600}.controller-lyric-line .lyric-highlighted,.controller-lyric-line .lyric-remaining{color:var(--text-primary)}.fullscreen-lyrics{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);z-index:99999;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.exit-fullscreen-btn{position:absolute;top:calc(1rem + env(safe-area-inset-top));right:calc(1rem + env(safe-area-inset-right));width:44px;height:44px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:100000}.exit-fullscreen-btn:hover{background:#fff3}.exit-fullscreen-btn svg{width:24px;height:24px}.fullscreen-lyrics-container{flex:1;position:relative;overflow:hidden}.fullscreen-lyrics-track{position:absolute;left:0;right:0;transition:top .3s ease-out}.fullscreen-lyric-line{height:60px;font-size:1.5rem;line-height:60px;color:#ffffff4d;text-align:center;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2rem}@media screen and (orientation:portrait){.fullscreen-lyric-line{height:80px;font-size:1.8rem;line-height:80px}}.fullscreen-lyric-line.past{color:#ffffff26}.fullscreen-lyric-line.active{font-size:2rem;font-weight:600}@media screen and (orientation:portrait){.fullscreen-lyric-line.active{font-size:2.5rem}}.fullscreen-lyric-line .lyric-highlighted,.fullscreen-lyric-line .lyric-remaining{color:#fff}.spotify-btn:not(.connected){background:var(--text-subtle);opacity:.7}.spotify-btn:not(.connected):hover{background:var(--text-muted);opacity:.85}.spotify-btn.connected{background:var(--spotify-green);animation:spotifyPulse 2s infinite}.spotify-btn.connected:hover{background:#1ed760;animation:none}@keyframes spotifyPulse{0%,to{box-shadow:0 0 #1db95466}50%{box-shadow:0 0 0 8px #1db95400}}.search-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:10001;padding:2rem 1rem;overflow-y:auto}.search-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:calc(100vh - 4rem);display:flex;flex-direction:column;border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.search-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.search-modal-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.close-modal-btn{width:32px;height:32px;border:none;border-radius:50%;background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-modal-btn:hover{background:#ef44441a;color:var(--error)}.close-modal-btn svg{width:18px;height:18px}.search-modal-not-connected{padding:3rem 2rem;text-align:center;color:var(--text-muted)}.search-modal-not-connected svg{width:64px;height:64px;color:var(--text-subtle);margin-bottom:1rem}.search-modal-not-connected p{margin:.5rem 0}.search-modal-not-connected .hint{font-size:.85rem;color:var(--text-subtle)}.search-input-container{display:flex;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-light)}.search-input-container input{flex:1;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:1rem;outline:none;transition:all .2s ease}.search-input-container input:focus{border-color:var(--accent);background:var(--bg-card)}.search-input-container input::placeholder{color:var(--text-subtle)}.search-btn{width:48px;height:48px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.search-btn:hover:not(:disabled){background:var(--accent-hover)}.search-btn:disabled{background:var(--text-subtle);cursor:not-allowed}.search-btn svg{width:24px;height:24px}.mini-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.search-results{flex:1;overflow-y:auto;padding:.5rem 0;max-height:400px}.no-results{padding:2rem;text-align:center;color:var(--text-subtle)}.search-result-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;cursor:pointer;transition:all .2s ease}.search-result-item:hover{background:var(--accent-muted)}.search-result-item:active{background:#ea580c26}.track-cover{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;background:var(--bg-elevated);flex-shrink:0}.track-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.track-name{font-size:.95rem;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{font-size:.8rem;color:var(--text-subtle);flex-shrink:0}.reconnect-content{display:flex;align-items:center;justify-content:center;min-height:60vh}.reconnect-box{text-align:center;padding:2rem;max-width:320px}.reconnect-icon{width:64px;height:64px;color:var(--accent);margin-bottom:1.5rem}.reconnect-box h2{margin:0 0 .75rem;font-size:1.5rem;color:var(--text-primary)}.reconnect-box p{color:var(--text-muted);font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}.scan-qr-btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:1rem}.scan-qr-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ea580c4d}.scan-qr-btn:active{transform:translateY(0)}.scan-qr-btn svg{width:24px;height:24px}.qr-scanner-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.qr-reader{width:280px;height:280px;border-radius:var(--radius-md);overflow:hidden;background:#000}.qr-error{color:var(--error);font-size:.9rem;margin:0;padding:.5rem 1rem;background:#ef44441a;border-radius:var(--radius-sm)}.cancel-scan-btn{padding:.75rem 1.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:.95rem;cursor:pointer;transition:all .2s ease}.cancel-scan-btn:hover{background:var(--border);color:var(--text-primary)}.retry-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--accent);font-size:.9rem;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.retry-btn:hover{background:var(--accent-muted);border-color:#ea580c4d}.retry-btn svg{width:18px;height:18px}.search-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.search-tab{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.9rem;cursor:pointer;transition:all .2s ease}.search-tab:hover{background:var(--bg-elevated);color:var(--text-secondary)}.search-tab.active{background:var(--accent-muted);color:var(--accent)}.search-tab svg{width:18px;height:18px}.playlists-content{flex:1;overflow-y:auto}.playlists-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted);gap:1rem}.playlists-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:.5rem 0}.playlist-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:.5rem}.playlist-card:hover{background:var(--accent-muted);border-color:#ea580c4d;transform:translateY(-2px)}.playlist-card:active{transform:scale(.98)}.playlist-cover{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-elevated)}.playlist-cover img{width:100%;height:100%;object-fit:cover}.playlist-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent-muted)}.playlist-cover-placeholder svg{width:40%;height:40%;color:var(--accent);opacity:.5}.playlist-info{display:flex;flex-direction:column;gap:.2rem}.playlist-name{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-count{font-size:.75rem;color:var(--text-muted)}.no-playlists{text-align:center;color:var(--text-muted);padding:2rem;grid-column:1 / -1}.playlist-tracks-view{display:flex;flex-direction:column;gap:.75rem}.playlist-back-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);font-size:.85rem;cursor:pointer;transition:all .2s ease;width:fit-content}.playlist-back-btn:hover{background:var(--accent-muted);border-color:#ea580c4d}.playlist-back-btn svg{width:18px;height:18px}.playlist-header-info{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.5rem}.playlist-header-cover{width:60px;height:60px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.playlist-header-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.playlist-header-text h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-header-text span{font-size:.8rem;color:var(--text-muted)}.add-all-playlist-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--spotify-green);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;margin-bottom:1rem;transition:all .2s ease}.add-all-playlist-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1db95466}.add-all-playlist-btn:active:not(:disabled){transform:translateY(0)}.add-all-playlist-btn:disabled{background:var(--text-subtle);cursor:not-allowed}.add-all-playlist-btn svg{width:20px;height:20px}.add-all-playlist-btn .mini-spinner{width:18px;height:18px;border-width:2px}.local-track{border-left:3px solid var(--gold)}.local-badge{display:inline-flex;align-items:center;padding:.15rem .4rem;background:var(--gold-muted);color:var(--gold);font-size:.65rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;margin-left:.4rem;flex-shrink:0}.track-cover-placeholder{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--gold-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0}.track-cover-placeholder svg{width:24px;height:24px;color:var(--gold);opacity:.7}.admin-layout{display:flex;min-height:100vh;background:#0f0f1a}.admin-sidebar{width:260px;background:linear-gradient(180deg,#1a1a2e,#16213e);border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.sidebar-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#1db954,#1ed760);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem}.sidebar-logo-text{font-size:1.2rem;font-weight:600}.sidebar-logo-text span{color:#1db954}.sidebar-nav{flex:1;padding:20px 12px}.nav-section{margin-bottom:24px}.nav-section-title{color:#fff6;font-size:.7rem;text-transform:uppercase;letter-spacing:1.5px;padding:0 12px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#ffffffb3;text-decoration:none;border-radius:10px;margin-bottom:4px;cursor:pointer;transition:all .2s;border:none;background:none;width:100%;font-size:.95rem}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:#1db95426;color:#1db954}.nav-item-icon{font-size:1.2rem;width:24px;text-align:center}.nav-item-badge{margin-left:auto;background:#ffffff1a;padding:2px 8px;border-radius:10px;font-size:.75rem}.nav-item.active .nav-item-badge{background:#1db9544d}.sidebar-footer{padding:16px 12px;border-top:1px solid rgba(255,255,255,.1)}.back-to-app{display:flex;align-items:center;gap:10px;padding:12px 16px;color:#fff9;text-decoration:none;border-radius:10px;transition:all .2s;cursor:pointer;background:none;border:none;width:100%;font-size:.9rem}.back-to-app:hover{background:#ffffff0d;color:#fff}.admin-main{flex:1;margin-left:260px;padding:30px;overflow-y:auto}.admin-page-header{margin-bottom:30px}.admin-page-header h1{color:#fff;font-size:1.8rem;font-weight:600;margin:0 0 8px}.admin-page-header p{color:#ffffff80;margin:0}.free-mode-banner{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#ffffff0d,#ffffff05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px 24px;margin-bottom:24px;transition:all .3s ease}.free-mode-banner.active{background:linear-gradient(135deg,#1db95426,#1db9540d);border-color:#1db95466}.free-mode-info{display:flex;align-items:center;gap:16px}.free-mode-icon{width:48px;height:48px;background:#ffffff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.free-mode-banner.active .free-mode-icon{background:#1db95433}.free-mode-text h3{color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 4px}.free-mode-text p{color:#fff9;font-size:.9rem;margin:0}.free-mode-toggle{padding:12px 24px;border-radius:10px;border:none;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;background:#ffffff1a;color:#fff}.free-mode-toggle:hover:not(:disabled){background:#fff3}.free-mode-toggle.active{background:#1db954;color:#fff}.free-mode-toggle.active:hover:not(:disabled){background:#1ed760}.free-mode-toggle:disabled{opacity:.6;cursor:not-allowed}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#ffffff0d,#ffffff05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1db954,#1ed760);opacity:0;transition:opacity .3s}.stat-card:hover:before{opacity:1}.stat-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stat-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-card-icon.users{background:#6366f133}.stat-card-icon.active{background:#1db95433}.stat-card-icon.premium{background:#ffd70033}.stat-card-icon.pro{background:#9d4edd33}.stat-card-icon.rooms{background:#ec489933}.stat-card-icon.songs{background:#3b82f633}.stat-card-trend{font-size:.8rem;padding:4px 8px;border-radius:20px;background:#1db95433;color:#1db954}.stat-card-value{font-size:2.5rem;font-weight:700;color:#fff;line-height:1;margin-bottom:8px}.stat-card-label{color:#ffffff80;font-size:.9rem}.dashboard-charts{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:30px}.chart-card{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px}.chart-card h3{color:#fff;font-size:1.1rem;margin:0 0 20px}.plan-distribution{display:flex;flex-direction:column;gap:16px}.plan-bar{display:flex;align-items:center;gap:12px}.plan-bar-label{width:80px;color:#ffffffb3;font-size:.9rem}.plan-bar-track{flex:1;height:24px;background:#ffffff1a;border-radius:12px;overflow:hidden}.plan-bar-fill{height:100%;border-radius:12px;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-size:.8rem;font-weight:500;color:#fff;min-width:fit-content}.plan-bar-fill.free{background:linear-gradient(90deg,#6b7280,#9ca3af)}.plan-bar-fill.premium{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.plan-bar-fill.pro{background:linear-gradient(90deg,#9d4edd,#c77dff)}.plan-bar-count{width:50px;text-align:right;color:#fff;font-weight:500}.recent-activity{max-height:300px;overflow-y:auto}.activity-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}.activity-item:last-child{border-bottom:none}.activity-icon{width:36px;height:36px;border-radius:50%;background:#1db95433;display:flex;align-items:center;justify-content:center;font-size:1rem}.activity-info{flex:1}.activity-text{color:#fff;font-size:.9rem}.activity-time{color:#fff6;font-size:.8rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2{color:#fff;font-size:1.3rem;margin:0}.search-box{display:flex;align-items:center;gap:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 16px}.search-box input{background:none;border:none;color:#fff;font-size:.9rem;outline:none;width:200px}.search-box input::placeholder{color:#fff6}.search-box svg{width:18px;height:18px;color:#fff6}.data-table{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden}.data-table table{width:100%;border-collapse:collapse}.data-table th{background:#ffffff0d;padding:16px;text-align:left;color:#fff9;font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.data-table td{padding:16px;color:#fff;border-bottom:1px solid rgba(255,255,255,.05)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#ffffff05}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem}.user-info{display:flex;flex-direction:column}.user-name{font-weight:500}.user-email{color:#ffffff80;font-size:.85rem}.plan-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:500;text-transform:uppercase}.plan-badge.free{background:#6b728033;color:#9ca3af}.plan-badge.premium{background:#f59e0b33;color:#fbbf24}.plan-badge.pro{background:#9d4edd33;color:#c77dff}.action-buttons{display:flex;gap:8px}.btn-icon{width:36px;height:36px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:1rem}.btn-icon.edit{background:#6366f133;color:#818cf8}.btn-icon.edit:hover{background:#6366f14d}.btn-icon.delete{background:#ef444433;color:#f87171}.btn-icon.delete:hover{background:#ef44444d}.add-plan-btn{display:flex;align-items:center;gap:8px;background:#1db954;border:none;color:#fff;padding:10px 20px;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s}.add-plan-btn:hover{background:#1ed760;transform:translateY(-1px)}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.plan-card{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;transition:all .2s}.plan-card:hover{transform:translateY(-2px);box-shadow:0 10px 40px #0000004d}.plan-card.free{border-top:3px solid #6b7280}.plan-card.premium{border-top:3px solid #f59e0b}.plan-card.pro{border-top:3px solid #9d4edd}.plan-card-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.plan-card-icon{font-size:2.5rem}.plan-card-title h3{color:#fff;margin:0 0 4px;font-size:1.3rem}.plan-card-price{color:#1db954;font-size:1.1rem;font-weight:600}.plan-card-features{margin-bottom:24px}.feature-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}.feature-item:last-child{border-bottom:none}.feature-label{color:#fff9}.feature-value{color:#fff;font-weight:500}.plan-card-actions{display:flex;gap:10px}.plan-card-actions button{flex:1;padding:10px;border-radius:8px;border:none;cursor:pointer;font-weight:500;transition:all .2s}.btn-edit{background:#6366f133;color:#818cf8}.btn-edit:hover{background:#6366f14d}.btn-delete{background:#ef444433;color:#f87171}.btn-delete:hover{background:#ef44444d}.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;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#1a1a2e;border-radius:20px;padding:30px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1)}.modal h3{color:#fff;margin:0 0 24px;font-size:1.3rem}.form-group{margin-bottom:20px}.form-group label{display:block;color:#ffffffb3;margin-bottom:8px;font-size:.9rem}.form-group input,.form-group select{width:100%;padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#ffffff0d;color:#fff;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1db954}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-section{color:#fff6;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;margin:24px 0 12px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.checkbox-group{display:flex;align-items:center;gap:10px}.checkbox-group input[type=checkbox]{width:20px;height:20px;cursor:pointer}.checkbox-group label{margin:0;cursor:pointer}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions button{flex:1;padding:14px;border-radius:10px;border:none;cursor:pointer;font-weight:600;font-size:1rem;transition:all .2s}.btn-cancel{background:#ffffff1a;color:#fff}.btn-cancel:hover{background:#ffffff26}.btn-confirm{background:#1db954;color:#fff}.btn-confirm:hover{background:#1ed760}.plan-options{display:flex;flex-direction:column;gap:10px}.plan-option{display:flex;align-items:center;gap:14px;padding:16px;background:#ffffff0d;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.plan-option:hover{background:#ffffff14}.plan-option.selected{border-color:#1db954;background:#1db9541a}.plan-option input{display:none}.plan-option-icon{font-size:1.5rem}.plan-option-info{flex:1}.plan-option-name{color:#fff;font-weight:500;margin-bottom:2px}.plan-option-desc{color:#ffffff80;font-size:.85rem}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#0f0f1a}.spinner{width:50px;height:50px;border:3px solid rgba(255,255,255,.1);border-top-color:#1db954;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.admin-loading p{color:#fff9}.admin-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#0f0f1a;text-align:center}.admin-denied .denied-icon{font-size:5rem;margin-bottom:24px}.admin-denied h2{color:#fff;margin-bottom:12px;font-size:1.5rem}.admin-denied p{color:#fff9;margin-bottom:24px}.admin-denied button{background:#1db954;border:none;color:#fff;padding:12px 24px;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s}.admin-denied button:hover{background:#1ed760}@media(max-width:1200px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-charts{grid-template-columns:1fr}}@media(max-width:768px){.admin-sidebar{transform:translate(-100%);transition:transform .3s}.admin-sidebar.open{transform:translate(0)}.admin-main{margin-left:0;padding:20px}.dashboard-stats,.plans-grid,.form-row{grid-template-columns:1fr}.data-table{overflow-x:auto}.data-table table{min-width:800px}}.cast-page{min-height:100vh;height:100vh;max-height:100vh;background:linear-gradient(135deg,#f8fafc,#f1f5f9,#e2e8f0);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;padding:2rem;position:relative}.cast-page,.cast-page *{scrollbar-width:none;-ms-overflow-style:none}.cast-page::-webkit-scrollbar,.cast-page *::-webkit-scrollbar{display:none}.cast-qr-container{position:absolute;top:1rem;left:1rem;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:10;opacity:.9;transition:all .3s ease}.cast-qr-container:hover{opacity:1}.cast-qr-container svg{border-radius:8px;box-shadow:0 4px 15px #0000001a}.cast-qr-label{font-size:11px;color:var(--text-secondary);font-weight:500}.cast-fullscreen-btn{position:absolute;top:1.5rem;right:1.5rem;background:var(--accent-muted);border:1px solid rgba(234,88,12,.2);border-radius:8px;padding:.75rem;cursor:pointer;color:var(--accent);transition:all .2s ease;z-index:10}.cast-fullscreen-btn:hover{background:#ea580c26;border-color:#ea580c66;color:var(--accent-hover)}.cast-fullscreen-btn svg{width:24px;height:24px;display:block}.cast-song-info{position:absolute;top:2rem;left:50%;transform:translate(-50%);text-align:center;opacity:.8}.cast-song-title{color:var(--text-primary);font-size:1.5rem;font-weight:600}.cast-song-artist{color:var(--text-secondary);font-size:1.1rem;margin-top:.3rem}.cast-lyrics-container{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:95vw;overflow:hidden;position:relative}.cast-lyrics-track{display:flex;flex-direction:column;align-items:center;width:100%;transition:transform .4s ease}.cast-lyric-line{--text-scale: 1;--base-font-size: clamp(2rem, 4vw, 4rem);font-size:calc(var(--base-font-size) * var(--text-scale));font-weight:700;line-height:1.3;text-align:center;width:100%;min-height:140px;display:flex;align-items:center;justify-content:center;padding:.5rem 2rem;transition:all .4s ease}.cast-lyric-line.past{opacity:.25;color:var(--text-muted)}.cast-lyric-line.current{color:var(--accent);opacity:1;text-shadow:0 2px 10px rgba(234,88,12,.2)}.cast-lyric-line.current.waiting,.cast-lyric-line.next{opacity:.5;color:var(--text-secondary)}.cast-lyric-line.future{opacity:.3;color:var(--text-muted)}.cast-no-lyrics{color:var(--text-muted);font-size:2rem}.cast-logo{position:absolute;bottom:2rem;right:2rem;color:var(--text-muted);font-size:1.2rem;font-weight:600}.cast-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);color:var(--text-muted);font-size:.9rem;display:flex;align-items:center;gap:.5rem}.cast-hint kbd{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:.2rem .5rem;font-family:inherit;font-size:.85rem;color:var(--text-primary)}.cast-connecting,.cast-error{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--text-secondary)}.cast-error h2{color:var(--error);font-size:1.5rem}.spinner{width:50px;height:50px;border:4px solid rgba(234,88,12,.2);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.cast-lyric-line{--base-font-size: clamp(1.5rem, 6vw, 2.5rem);min-height:100px}.cast-song-title{font-size:1.2rem}.cast-song-artist{font-size:.9rem}}
