:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#fff;background-color:#121212;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}.vinyl{border-radius:50%;background:conic-gradient(from 0deg,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111 360deg);position:relative;box-shadow:0 0 0 3px #222,0 0 30px #00000080;flex-shrink:0}.vinyl-spinning{animation:spin 2s linear infinite}.vinyl-grooves{position:absolute;inset:10%;border-radius:50%;border:1px solid rgba(255,255,255,.03);box-shadow:inset 0 0 0 8px #ffffff05,inset 0 0 0 16px #ffffff03,inset 0 0 0 24px #ffffff05}.vinyl-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40%;height:40%;border-radius:50%;overflow:hidden;background:var(--bg-elevated);border:2px solid #333}.vinyl-art{width:100%;height:100%;object-fit:cover}.vinyl-dot{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,var(--accent-coral) 0%,var(--bg-elevated) 70%)}.countdown-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000e6;z-index:100}.da-gate{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:1.5rem;color:#fff;font-family:inherit;overflow:hidden;background-image:url(/assets/loading.png);background-size:cover;background-position:center}.da-gate:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#04040cc7,#04040ce0);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.da-gate:after{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.07) 0%,transparent 65%);top:-200px;left:-180px;pointer-events:none}.da-card{position:relative;z-index:1;width:min(400px,100%);padding:2.25rem 2rem 2rem;border-radius:24px;background:#080812d1;border:1px solid rgba(255,255,255,.08);box-shadow:0 32px 80px #000000b3,0 0 0 1px #00e5ff12,inset 0 1px #ffffff0f;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);text-align:center}.da-brand{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .85rem .3rem .65rem;border-radius:999px;background:#5865f22e;border:1px solid rgba(88,101,242,.35);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#c8cdffd9;margin-bottom:1.5rem}.da-brand-icon{width:14px;height:14px;color:#7289da;flex-shrink:0}.da-vinyl-wrap{display:flex;justify-content:center;margin-bottom:1.25rem;filter:drop-shadow(0 0 20px rgba(0,229,255,.18))}.da-title{font-size:2rem;font-weight:900;margin:0 0 .3rem;letter-spacing:-.04em;background:linear-gradient(135deg,#ff6b6b,#00e5ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.da-subtitle{margin:0 0 1.75rem;font-size:.85rem;color:#ffffff73;letter-spacing:.01em}.da-progress-bar{height:5px;border-radius:999px;background:#ffffff12;overflow:hidden;position:relative;margin-bottom:.6rem}.da-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff6b6b,#00e5ff);box-shadow:0 0 12px #00e5ff66;transition:width .4s cubic-bezier(.22,1,.36,1)}.da-step-row{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;margin-bottom:1.25rem}.da-step-label{color:#ffffffb3;text-align:left;font-weight:500}.da-step-percent{color:#00e5ff;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem}.da-steps{display:flex;flex-direction:column;gap:.4rem;text-align:left;margin-bottom:1rem}.da-step{display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);font-size:.82rem;color:#ffffff4d;transition:all .24s ease}.da-step[data-state=active]{background:#00e5ff12;border-color:#00e5ff38;color:#ffffffe6}.da-step[data-state=done]{background:#00e5ff0a;border-color:#00e5ff1a;color:#ffffff73}.da-step-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.68rem;font-weight:700;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffff4d;transition:all .24s ease}.da-step[data-state=active] .da-step-num{background:#00e5ff33;border-color:#00e5ff80;color:#00e5ff}.da-step[data-state=active] .da-step-num-inner{display:inline-block;width:7px;height:7px;border:1.5px solid rgba(0,229,255,.4);border-top-color:#00e5ff;border-radius:50%;animation:da-spin .7s linear infinite}.da-step[data-state=done] .da-step-num{background:#00e5ff26;border-color:#00e5ff4d;color:#00e5ff}.da-step[data-state=done] .da-step-num svg{width:11px;height:11px;stroke-width:3}@keyframes da-spin{to{transform:rotate(360deg)}}.da-hint{margin:0;font-size:.75rem;color:#ffffff4d;line-height:1.5;min-height:1em}.da-error{text-align:left}.da-error-icon{width:48px;height:48px;margin:0 auto 1rem;border-radius:50%;background:#ff4d4d1f;border:1px solid rgba(255,77,77,.25);color:#ff6b6b;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:900}.da-error-lead{margin:0 0 .5rem;text-align:center;color:#ffffffb3;font-size:.9rem;font-weight:600}.da-error-message{background:#ff4d4d12;border:1px solid rgba(255,77,77,.18);border-radius:10px;padding:.65rem .85rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.73rem;color:#ff9d9d;word-break:break-word;margin:0 0 1.25rem;line-height:1.5}.da-retry{width:100%;padding:.75rem 1rem;border-radius:12px;background:linear-gradient(135deg,#ff6b6be6,#ff4d4de6);color:#fff;border:none;font-weight:700;font-size:.9rem;font-family:inherit;cursor:pointer;letter-spacing:.02em;transition:opacity .2s,transform .15s;box-shadow:0 4px 20px #ff4d4d4d}.da-retry:hover{opacity:.92;transform:translateY(-1px)}.da-retry:active{transform:translateY(0)}.daily-activity-section{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.activity-title{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:var(--text-muted);text-align:center;text-transform:uppercase;letter-spacing:.5px}.activity-bars-container{position:relative}.activity-bars{display:flex;gap:.5rem;justify-content:center;align-items:flex-end;height:80px;padding:.5rem;background:transparent}.activity-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transition:transform .2s ease}.activity-bar-wrapper:hover{transform:translateY(-2px)}.activity-bar-container{width:100%;height:50px;display:flex;align-items:flex-end;justify-content:center}.activity-bar{width:100%;max-width:20px;background:#ffffff0d;border-radius:4px 4px 0 0;position:relative;transition:all .3s ease}.activity-bar-fill{position:absolute;inset:0;background:linear-gradient(180deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);border-radius:4px 4px 0 0;opacity:.8}.activity-bar-wrapper:hover .activity-bar-fill{opacity:1;box-shadow:0 0 12px #ff4d4d80}.activity-day-label{font-size:.65rem;color:var(--text-muted);text-align:center;white-space:nowrap}.activity-tooltip{position:absolute;top:-100px;left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.75rem;min-width:200px;box-shadow:0 4px 12px #0000004d;z-index:10}.tooltip-date{font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.tooltip-stats{display:flex;flex-direction:column;gap:.3rem}.tooltip-stat{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem}.stat-label{color:var(--text-muted)}.stat-value{color:var(--accent-cyan);font-weight:600}@media(max-width:600px){.activity-bars{gap:.3rem}.activity-bar{max-width:16px}.activity-day-label{font-size:.55rem}}.home-page{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:520px;margin:0 auto;padding:2.5rem 0 2.2rem}.home-greeting{text-align:center}.home-greeting-text{color:var(--text-muted);font-size:.95rem;margin:0 0 .3rem}.home-greeting-title{font-size:2.4rem;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.home-main-cards{display:flex;flex-direction:column;gap:.85rem;width:100%}.home-card{display:flex;align-items:center;gap:1.1rem;width:100%;padding:1.25rem 1.4rem;border-radius:var(--radius);border:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;transition:all .2s;font-family:inherit;text-align:left}.home-card:hover{transform:translateY(-2px)}.home-card-create{background:linear-gradient(135deg,#ff4d4d1f,#ff4d4d0a);border-color:#ff4d4d40}.home-card-create:hover{background:linear-gradient(135deg,#ff4d4d2e,#ff4d4d12);border-color:#ff4d4d66;box-shadow:0 8px 32px #ff4d4d26}.home-card-join{background:linear-gradient(135deg,#00e5ff1a,#00e5ff08);border-color:#00e5ff33}.home-card-join:hover{background:linear-gradient(135deg,#00e5ff26,#00e5ff0f);border-color:#00e5ff59;box-shadow:0 8px 32px #00e5ff1f}.home-card-icon-wrap{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;flex-shrink:0}.home-card-icon-create{background:#ff4d4d26;color:var(--accent-coral)}.home-card-icon-join{background:#00e5ff1f;color:var(--accent-cyan)}.home-card-body{flex:1;display:flex;flex-direction:column;gap:.25rem}.home-card-title{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.home-card-desc{font-size:.82rem;color:var(--text-muted);line-height:1.4}.home-card-arrow{color:var(--text-dim);flex-shrink:0;transition:transform .2s}.home-card:hover .home-card-arrow{transform:translate(3px)}.home-card-join-active{cursor:default;align-items:flex-start}.home-join-inline{flex:1;display:flex;flex-direction:column;gap:.7rem}.home-join-input{background:#00e5ff12;border:1px solid rgba(0,229,255,.3);border-radius:var(--radius-sm);color:var(--accent-cyan);font-family:Courier New,monospace;font-size:1.3rem;font-weight:700;padding:.6rem .9rem;letter-spacing:.2em;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.home-join-input:focus{border-color:var(--accent-cyan);box-shadow:var(--glow-cyan)}.home-join-input::placeholder{color:var(--text-dim);font-size:.85rem;letter-spacing:.1em}.home-join-btns{display:flex;gap:.5rem}.home-join-confirm{flex:1;padding:.6rem 1rem;background:var(--accent-cyan);color:#000;border:none;border-radius:var(--radius-sm);font-weight:700;font-size:.9rem;font-family:inherit;cursor:pointer;transition:opacity .2s}.home-join-confirm:disabled{opacity:.4;cursor:not-allowed}.home-join-confirm:not(:disabled):hover{opacity:.88}.home-join-cancel{padding:.6rem 1rem;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.9rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.home-join-cancel:hover{color:var(--text-primary);border-color:#ffffff26}.home-secondary-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.home-secondary-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.85rem 1.5rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.home-secondary-btn:hover{color:var(--text-primary);border-color:#ffffff26;background:var(--bg-elevated)}.home-ghost-btn{background:none;border:none;color:var(--text-dim);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.3rem .75rem;transition:color .15s}.home-ghost-btn:hover{color:var(--text-muted)}.join-form{display:flex;gap:.5rem;width:100%;max-width:320px}.join-input{flex:1;background:var(--bg-elevated);border:1px solid var(--accent-cyan);border-radius:var(--radius-sm);color:var(--accent-cyan);font-family:Courier New,monospace;font-size:1.2rem;padding:.75rem 1rem;text-align:center;letter-spacing:.15em;outline:none}.join-input::placeholder{color:var(--text-dim);letter-spacing:.1em;font-size:.9rem}.join-input:focus{box-shadow:var(--glow-cyan)}.home-divider{display:flex;align-items:center;width:100%;max-width:320px;gap:1rem;color:var(--text-dim);font-size:.8rem}.home-divider:before,.home-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.guest-banner{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:#ffc10714;border:1px solid rgba(255,193,7,.2);border-radius:var(--radius);box-sizing:border-box}.guest-banner-icon{flex-shrink:0;color:#ffc107;display:flex;align-items:center}.guest-banner-text{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.guest-banner-text strong{color:var(--text-primary);font-size:.88rem;font-weight:600}.guest-banner-text span{color:var(--text-muted);font-size:.8rem}.guest-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.guest-banner-cta{padding:.35rem .85rem;background:#ffc10726;border:1px solid rgba(255,193,7,.35);border-radius:50px;color:#ffc107;font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.guest-banner-cta:hover{background:#ffc10740;border-color:#ffc1078c}.guest-banner-dismiss{background:none;border:none;color:var(--text-dim);font-size:.75rem;cursor:pointer;padding:.2rem;line-height:1;transition:color .15s}.guest-banner-dismiss:hover{color:var(--text-muted)}.convert-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.convert-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg, 16px);padding:2rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1rem}.convert-title{font-size:1.35rem;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.02em}.convert-subtitle{color:var(--text-muted);font-size:.88rem;margin:0;line-height:1.5}.convert-fields{display:flex;flex-direction:column;gap:.6rem}.convert-input{width:100%;padding:.75rem 1rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s;box-sizing:border-box}.convert-input:focus{border-color:var(--accent-coral)}.convert-error{color:var(--accent-coral);font-size:.85rem;margin:0}.convert-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.convert-btn-primary{width:100%;padding:.8rem;background:linear-gradient(135deg,var(--accent-coral) 0%,#e03535 100%);border:none;border-radius:50px;color:#fff;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #ff4d4d4d}.convert-btn-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.convert-btn-primary:disabled{opacity:.6;cursor:default}.convert-btn-ghost{width:100%;padding:.6rem;background:none;border:none;color:var(--text-muted);font-size:.88rem;font-family:inherit;cursor:pointer;transition:color .15s}.convert-btn-ghost:hover{color:var(--text-primary)}.library-stats-bar{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.25rem;background:linear-gradient(135deg,#00e5ff0d,#ff4d4d0d);border:1px solid rgba(0,229,255,.15);border-radius:var(--radius)}.library-stat-item{display:flex;align-items:center;gap:.75rem;flex:1}.library-stat-item svg{color:var(--accent-cyan);flex-shrink:0}.library-stat-info{display:flex;flex-direction:column;gap:.25rem}.library-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.library-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.library-sources-section{margin-bottom:2rem}.library-sources-divider{padding:.75rem 0;margin:1.5rem 0 1rem;font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center}.library-sources-divider-left{display:flex;flex-direction:column;gap:.25rem;flex:1}.library-sources-hint{font-size:.75rem;color:var(--text-dim);text-transform:none;font-weight:400;letter-spacing:0}.library-bulk-actions{display:flex;gap:.5rem}.library-bulk-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.35rem;text-transform:none;letter-spacing:normal}.library-bulk-btn:hover{background:var(--bg-elevated);border-color:var(--accent-cyan);color:var(--accent-cyan)}.library-bulk-btn svg{flex-shrink:0}.library-sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.library-card{background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);padding:1rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.library-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent;transition:background .2s ease}.library-card:hover{background:var(--bg-elevated);border-color:#ffffff26;transform:translateY(-2px)}.library-card-active{border-color:var(--accent-cyan)}.library-card-active:before{background:linear-gradient(90deg,var(--accent-cyan),var(--accent-pink))}.library-card-active .library-card-status svg{color:var(--accent-cyan)}.library-card-excluded{opacity:.5}.library-card-excluded:hover{opacity:.7}.library-card-excluded .library-card-status svg{color:var(--text-muted)}.library-card-liked .library-card-icon svg{color:var(--accent-pink)}.library-card-recent .library-card-icon svg{color:var(--accent-cyan)}.library-special-sources{margin-bottom:0}.library-card-status{flex-shrink:0;display:flex;align-items:center;justify-content:center}.library-card-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent-cyan)}.library-card-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.library-card-name{font-size:.95rem;font-weight:600;color:var(--text-primary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.library-card-count{font-size:.8rem;color:var(--text-muted)}.library-card-refresh{flex-shrink:0;width:32px;height:32px;border:none;background:var(--bg-elevated);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--accent-cyan);margin-left:auto}.library-card-refresh:hover:not(:disabled){background:var(--accent-cyan);color:var(--bg-deep);transform:scale(1.1)}.library-card-refresh:disabled{opacity:.5;cursor:not-allowed}.refresh-spinner{display:inline-block;animation:spin 1s linear infinite;font-size:18px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.library-refresh-progress{background:linear-gradient(135deg,#00e5ff14,#ff4d4d14);border:1px solid rgba(0,229,255,.3);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem}.refresh-progress-content{display:flex;align-items:center;gap:1rem}.refresh-progress-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:50%;color:var(--accent-cyan);font-size:24px}.refresh-progress-text{display:flex;flex-direction:column;gap:.25rem;flex:1}.refresh-progress-stage{font-size:.95rem;font-weight:600;color:var(--text-primary)}.refresh-progress-count{font-size:.85rem;color:var(--text-muted)}.library-empty-message{text-align:center;color:var(--text-muted);padding:2rem;line-height:1.6}.loading-spinner{text-align:center;padding:2rem;color:var(--text-muted)}.playlist-detail-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.playlist-detail-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.playlist-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle)}.playlist-detail-header h3{font-size:1.3rem;margin:0;color:var(--text-primary)}.playlist-detail-body{flex:1;overflow-y:auto;padding:1.5rem}.playlist-detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1rem;color:var(--text-muted)}.playlist-detail-stats{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-muted);font-size:.9rem}.playlist-songs-list{display:flex;flex-direction:column;gap:.5rem}.playlist-song-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-elevated);border-radius:var(--radius-sm);transition:all .2s ease}.playlist-song-item:hover{background:var(--bg-surface);border-color:#ffffff1a;transform:translate(4px)}.playlist-song-number{width:30px;text-align:center;color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums;flex-shrink:0}.playlist-song-artwork{width:48px;height:48px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-deep)}.playlist-song-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.playlist-song-name{font-size:.95rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-song-artist{font-size:.85rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-song-meta{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;min-width:80px}.playlist-song-duration{font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.playlist-song-added{font-size:.75rem;color:var(--text-muted);opacity:.6;white-space:nowrap}.playlist-detail-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}@media(max-width:600px){.playlist-detail-modal{max-height:90vh}.playlist-song-number{width:24px;font-size:.8rem}.playlist-song-artwork{width:40px;height:40px}.playlist-song-name{font-size:.9rem}.playlist-song-artist{font-size:.8rem}.playlist-song-meta{min-width:60px}.playlist-song-duration{font-size:.8rem}.playlist-song-added{font-size:.7rem}}.setting-chip-wide{min-width:140px;display:flex;align-items:center;justify-content:center;gap:.4rem}.setting-chip-wide svg{width:14px;height:14px;opacity:.7}.setting-chip-active svg{opacity:1}.customization-panel{max-width:950px;width:95vw}.customization-section{margin-bottom:2rem}.customization-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.customization-section-title svg{color:var(--accent-primary, var(--accent-cyan))}.customization-mode-toggle{display:flex;gap:1rem}.mode-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-toggle-btn:hover{background:var(--bg-elevated);border-color:#ffffff26}.mode-toggle-btn.active{background:linear-gradient(135deg,var(--accent-primary, var(--accent-coral)) 0%,var(--accent-secondary, var(--accent-cyan)) 100%);border-color:transparent;color:#fff}.mode-toggle-btn svg{width:20px;height:20px}.customization-mode-special{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.75rem}.mode-special-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.875rem .5rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-special-btn:hover{background:var(--bg-elevated);border-color:#ffffff26;transform:translateY(-1px)}.mode-special-btn.active{background:var(--bg-elevated);border-color:var(--accent-primary, var(--accent-cyan));color:var(--accent-primary, var(--accent-cyan));box-shadow:0 0 15px rgba(var(--accent-primary),.2)}.mode-special-btn svg{width:18px;height:18px}.mode-special-midnight.active{background:linear-gradient(135deg,#1a1433,#251f47);border-color:#8a63ff;color:#e8e4ff;box-shadow:0 0 20px #8a63ff66}.mode-special-midnight.active svg{filter:drop-shadow(0 0 8px rgba(138,99,255,.6))}.customization-themes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.theme-card{display:flex;flex-direction:column;gap:.75rem;padding:0;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;overflow:hidden}.theme-card:hover{border-color:#fff3;transform:translateY(-2px)}.theme-card.active{border-color:var(--accent-primary, var(--accent-cyan));box-shadow:0 0 20px #00e5ff4d}.theme-preview{width:100%;height:80px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);position:relative}.theme-preview svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.theme-name{padding:.75rem;font-size:.9rem;font-weight:500;color:var(--text-primary);text-align:center}.theme-card.active .theme-name{color:var(--accent-primary, var(--accent-cyan))}.customization-language-list{display:flex;flex-direction:column;gap:.5rem}.customization-language-btn{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.customization-language-btn:hover{background:var(--bg-elevated);border-color:#ffffff26;color:var(--text-primary)}.customization-language-btn.active{border-color:var(--accent-primary, var(--accent-cyan));color:var(--text-primary)}.customization-language-native{font-weight:600;color:var(--text-primary)}.customization-language-label{color:var(--text-muted);font-size:.85rem;margin-left:auto}.customization-language-btn.active .customization-language-label{margin-left:auto;margin-right:.25rem}.customization-language-btn svg{margin-left:auto;color:var(--accent-primary, var(--accent-cyan));flex-shrink:0}.customization-language-btn.active svg{margin-left:0}@media(max-width:600px){.customization-themes-grid{grid-template-columns:repeat(2,1fr)}.customization-mode-toggle{flex-direction:column}.customization-mode-special{grid-template-columns:repeat(2,1fr)}.customization-panel{width:100vw;max-width:100vw}}.result-correct-artist{display:block;font-size:.95rem;color:var(--accent-primary, var(--accent-coral));font-weight:600;margin-top:.5rem}.header-import{width:100%;flex-basis:100%;display:flex;flex-direction:column;gap:0;overflow:hidden;animation:header-import-enter .3s ease-out}.header-import-hide{animation:header-import-exit .4s ease-in forwards}@keyframes header-import-enter{0%{max-height:0;opacity:0}to{max-height:40px;opacity:1}}@keyframes header-import-exit{0%{max-height:40px;opacity:1}to{max-height:0;opacity:0}}.header-import-info{display:flex;align-items:center;justify-content:space-between;padding:.3rem 0;font-size:.75rem}.header-import-label{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-import-done .header-import-label{color:var(--accent-green)}.header-import-count{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:1rem}.header-import-track{width:100%;height:3px;background:var(--bg-elevated);border-radius:2px;overflow:hidden}.header-import-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent-coral),var(--accent-cyan));background-size:200% 100%;animation:header-import-shimmer 1.8s ease-in-out infinite;transition:width .25s ease-out;width:0%}.header-import-fill-done{background:var(--accent-green);animation:none;transition:width .5s ease-out,background .3s}@keyframes header-import-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.header-import-error .header-import-label{color:var(--accent-coral)}.header-import-fill-error{background:var(--accent-coral);animation:none}.header-restart{width:100%;flex-basis:100%;display:flex;flex-direction:column;gap:0;overflow:hidden;animation:header-restart-enter .3s ease-out}@keyframes header-restart-enter{0%{max-height:0;opacity:0}to{max-height:40px;opacity:1}}.header-restart-info{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.75rem;color:var(--accent-coral)}.header-restart-label{font-weight:600;font-variant-numeric:tabular-nums}.header-restart-track{width:100%;height:3px;background:#ff4d4d26;border-radius:2px;overflow:hidden}.header-restart-fill{height:100%;border-radius:2px;background:var(--accent-coral);transition:width .9s linear}.device-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.device-selected{display:flex;align-items:center;justify-content:space-between;background:var(--accent-green);color:#000;padding:1rem 1.25rem;border-radius:var(--radius-sm);font-weight:600}.device-info{display:flex;align-items:center;gap:.75rem;font-size:1rem}.device-icon{font-size:1.5rem}.device-empty{text-align:center;padding:2rem 1rem;background:var(--bg-elevated);border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted)}.device-empty p{margin:0;font-size:.9rem}.device-empty-hint{color:var(--text-dim);font-size:.8rem;margin-top:.5rem}.device-list{display:flex;flex-direction:column;gap:.5rem}.device-item{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;text-align:left;font-size:1rem;justify-content:flex-start}.device-item:hover{border-color:var(--accent-green);color:var(--accent-green)}.header{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:.75rem 0 0;position:sticky;top:0;background:var(--bg-deep);z-index:50;border-bottom:1px solid var(--border-subtle)}.header>.header-left,.header>.header-right-group{padding-bottom:.75rem}.header-right-group{display:flex;align-items:center;gap:.75rem}.header-user-wrapper{position:relative}.header-left{display:flex;align-items:center;gap:.75rem}.header-breadcrumb{display:flex;align-items:center;gap:.3rem;padding:.3rem .55rem .3rem .4rem;background:none;border:none;cursor:pointer;border-radius:8px;transition:background .15s;margin-left:.1rem}.header-breadcrumb:hover{background:var(--bg-elevated)}.header-breadcrumb-sep{color:var(--text-muted);font-size:.85rem;opacity:.45;font-weight:300;-webkit-user-select:none;user-select:none}.header-breadcrumb-label{font-size:.85rem;font-weight:500;color:var(--text-muted);transition:color .15s}.header-breadcrumb-label-short{display:none}.header-breadcrumb-label-full{display:inline}.header-breadcrumb:hover .header-breadcrumb-label{color:var(--text-primary)}.header-breadcrumb-arrow{color:var(--text-muted);opacity:.6;transition:opacity .15s,transform .15s}.header-breadcrumb:hover .header-breadcrumb-arrow{opacity:1;transform:translate(-2px)}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;border-radius:6px;transition:opacity .15s}.header-logo-btn:hover{opacity:.75}.header-logo-icon{display:flex;color:var(--accent-coral)}.header-logo-text{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{position:relative}.header-user{display:flex;align-items:center;gap:.5rem;height:36px;box-sizing:border-box;padding:0 .6rem 0 .75rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:24px;cursor:pointer;transition:all .2s;color:var(--text-primary);font-family:inherit}.header-user:hover{background:var(--bg-surface);border-color:#ffffff26}.header-user-name{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-playback-mobile-toggle{display:none;align-items:center;gap:3px;padding:0 2px;background:none;border:none;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:color .15s}.header-playback-mobile-toggle:hover{color:var(--text-muted)}.header-pmob-icon{display:flex;align-items:center;color:var(--text-muted)}.header-playback-control{position:relative;display:flex;align-items:center}@media(max-width:600px){.header-logo-back-active,.header-breadcrumb-label-full{display:none}.header-breadcrumb-label-short{display:inline}.header-user-name,.header-device-name,.header--playback-active .header-device,.header-playback-play{display:none}.header-playback-mobile-toggle{display:flex}.header-device-dropdown{position:fixed;top:58px;right:.75rem;left:auto;min-width:220px}.header-playback-dropdown{position:fixed;top:58px;right:.75rem;left:auto}}.header-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;background:var(--bg-surface)}.header-avatar-img{width:100%;height:100%;object-fit:cover}.header-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem;color:var(--text-muted);background:var(--bg-surface)}.header-chevron{color:var(--text-muted);transition:transform .2s}.header-chevron-open{transform:rotate(180deg)}.header-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px #0006;overflow:hidden;animation:dropdown-enter .15s ease-out}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header-dropdown-profile{display:flex;align-items:center;gap:.75rem;padding:1rem}.header-dropdown-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--bg-surface)}.header-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.header-dropdown-avatar span{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-muted)}.header-dropdown-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.header-dropdown-name{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-dropdown-email{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-dropdown-name-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.tier-badge{font-size:.6rem;font-weight:700;padding:.15rem .45rem;border-radius:12px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;line-height:1.4}.tier-badge--backstage{background:#3b82f62e;color:#60a5fa;border:1px solid rgba(59,130,246,.35)}.tier-badge--headliner{background:#f59e0b2e;color:#f59e0b;border:1px solid rgba(245,158,11,.35)}.tier-badge--stadium{background:linear-gradient(90deg,#8b5cf626,#ec489926);color:#a78bfa;border:1px solid rgba(139,92,246,.35)}.header-avatar-ring{display:inline-flex;border-radius:50%;padding:2px;background:transparent}.header-avatar-ring--backstage{background:linear-gradient(135deg,#3b82f6,#06b6d4);box-shadow:0 0 8px #3b82f680}.header-avatar-ring--headliner{background:linear-gradient(135deg,#f59e0b,#f97316);box-shadow:0 0 8px #f59e0b80}.header-avatar-ring--stadium{background:linear-gradient(135deg,#8b5cf6,#ec4899);box-shadow:0 0 10px #8b5cf68c;animation:stadium-ring-pulse 2.5s ease-in-out infinite}@keyframes stadium-ring-pulse{0%,to{box-shadow:0 0 8px #8b5cf680}50%{box-shadow:0 0 16px #ec489999}}.header-avatar-ring--lg{padding:2.5px}.header-user--backstage{background:#3b82f614!important;border-color:#3b82f64d!important}.header-user--headliner{background:#f59e0b14!important;border-color:#f59e0b4d!important}.header-user--stadium{background:linear-gradient(90deg,#8b5cf614,#ec489914)!important;border-color:#8b5cf659!important}.header-dropdown-profile--backstage{background:linear-gradient(135deg,rgba(59,130,246,.08) 0%,transparent 70%);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-profile--headliner{background:linear-gradient(135deg,rgba(245,158,11,.08) 0%,transparent 70%);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-profile--stadium{background:linear-gradient(135deg,#8b5cf61a,#ec48990f);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-name--backstage{color:#93c5fd}.header-dropdown-name--headliner{color:#fbbf24}.header-dropdown-name--stadium{background:linear-gradient(90deg,#c4b5fd,#f9a8d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-dropdown-item--sub{color:var(--text-secondary)}.header-dropdown-item--sub svg{color:var(--text-muted)}.header-dropdown-item--sub-active-backstage{color:#60a5fa!important}.header-dropdown-item--sub-active-headliner{color:#f59e0b!important}.header-dropdown-item--sub-active-stadium{background:linear-gradient(90deg,#8b5cf60f,#ec48990f);color:#a78bfa!important}.header-dropdown-divider{height:1px;background:var(--border-subtle)}.header-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.header-dropdown-item:hover{background:#ffffff0d}.header-dropdown-logout{color:var(--accent-coral)}.header-dropdown-logout:hover{background:#ff4d4d1a}.header-device{position:relative}.header-device-btn{display:flex;align-items:center;gap:.5rem;height:36px;box-sizing:border-box;padding:0 .6rem 0 .75rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:20px;cursor:pointer;transition:all .2s;color:var(--text-primary);font-family:inherit;font-size:.85rem}.header-device-btn:hover{background:var(--bg-surface);border-color:#ffffff26}.header-device-icon{display:flex;color:var(--accent-green)}.header-device-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.header-chevron-small{color:var(--text-dim);transition:transform .2s}.header-device-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px #0006;overflow:hidden;animation:dropdown-enter .15s ease-out;z-index:100}.header-device-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.header-device-refresh{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:color .15s;border-radius:4px}.header-device-refresh:hover{color:var(--text-primary);background:#ffffff0d}.header-device-refresh:disabled{opacity:.5;cursor:not-allowed}.header-device-dropdown-list{max-height:240px;overflow-y:auto}.header-device-empty{padding:1.5rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem}.header-device-empty-hint{color:var(--text-dim);font-size:.75rem;margin-top:.25rem}.header-device-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.header-device-item:hover{background:#ffffff0d}.header-device-item-active{background:#1db9541a}.header-device-item-active:hover{background:#1db95426}.header-device-item-icon{display:flex;color:var(--text-muted)}.header-device-item-active .header-device-item-icon{color:var(--accent-green)}.header-device-item-icon-yt{color:red!important}.header-device-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-device-item svg:last-child{color:var(--accent-green);flex-shrink:0}.header-playback{display:flex;align-items:center;gap:.35rem;height:36px;box-sizing:border-box;padding:0 .6rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:20px}.header-playback-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:none;color:var(--text-primary);cursor:pointer;border-radius:50%;transition:background .15s,color .15s;flex-shrink:0}.header-playback-btn:hover{background:#ffffff14;color:var(--accent-cyan)}.header-vol{display:flex;align-items:center;gap:.3rem}.header-vol-slider{-webkit-appearance:none;appearance:none;width:72px;height:3px;border-radius:2px;outline:none;cursor:pointer;background-image:linear-gradient(var(--accent-cyan),var(--accent-cyan));background-color:var(--border-subtle);background-repeat:no-repeat}.header-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);cursor:pointer;transition:transform .1s,background .1s}.header-vol-slider::-webkit-slider-thumb:hover{transform:scale(1.3);background:var(--accent-cyan)}.header-vol-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-primary);cursor:pointer;border:none}.header-vol-slider::-moz-range-progress{background:var(--accent-cyan);height:3px;border-radius:2px}.header-playback-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px #0006;overflow:hidden;animation:dropdown-enter .15s ease-out;z-index:100}.header-pd-play{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.65rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s}.header-pd-play:hover{background:#ffffff0d}.app-links{position:fixed;bottom:1.5rem;left:1.5rem;display:flex;flex-direction:column;gap:.9rem;z-index:200}@media(max-width:600px){.app-links{flex-direction:row;left:50%;transform:translate(-50%);gap:1.4rem}.app-links-divider{display:none}}.app-link{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;color:#fff3;cursor:pointer;transition:color .2s,transform .18s;position:relative;text-decoration:none;line-height:0}.app-link:hover{color:#ffffffb3;transform:scale(1.2)}.app-link--soon{cursor:default}.app-link--soon:hover{color:#ffffff59;transform:none}.app-links-divider{width:16px;height:1px;background:#ffffff14;align-self:center;margin:.1rem 0}.app-link-tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-xs);padding:.3rem .6rem;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;box-shadow:0 4px 16px #0006}.maintenance-screen{position:fixed;inset:0;background:var(--bg-deep);display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem}.maintenance-card{display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center;max-width:420px}.maintenance-icon{width:96px;height:96px;border-radius:50%;background:#ff4d4d14;border:1px solid rgba(255,77,77,.18);display:flex;align-items:center;justify-content:center;color:var(--accent-coral);animation:maintenance-pulse 3s ease-in-out infinite}@keyframes maintenance-pulse{0%,to{box-shadow:0 0 #ff4d4d00}50%{box-shadow:0 0 0 12px #ff4d4d14}}.maintenance-title{font-size:2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em;margin:0}.maintenance-sub{font-size:.95rem;color:var(--text-muted);line-height:1.7;margin:0}.maintenance-reload{display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.7rem 1.6rem;background:#ff4d4d1a;border:1px solid rgba(255,77,77,.3);border-radius:12px;color:var(--accent-coral);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.maintenance-reload:hover{background:#ff4d4d2e;border-color:#ff4d4d80}.server-offline,.room-not-found{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;padding:3rem 1.5rem;max-width:400px;margin:0 auto}.offline-icon{color:var(--accent-coral);animation:offline-pulse 2s ease-in-out infinite}.offline-icon-circle{stroke:var(--accent-coral);opacity:.3}.offline-icon-x{stroke:var(--accent-coral)}@keyframes offline-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.offline-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin:0}.offline-message{color:var(--text-muted);font-size:.95rem;line-height:1.5;margin:0}.offline-status{min-height:32px;display:flex;align-items:center;justify-content:center}.offline-retrying{display:flex;align-items:center;gap:.75rem;color:var(--accent-cyan);font-size:.9rem}.offline-spinner{width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin .8s linear infinite}.offline-countdown{color:var(--text-muted);font-size:.9rem;margin:0}.offline-countdown-number{color:var(--accent-cyan);font-weight:700;font-variant-numeric:tabular-nums}.offline-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.offline-retry-btn{width:100%;max-width:200px}.offline-auto-toggle{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem;cursor:pointer}.offline-auto-toggle input{accent-color:var(--accent-green);width:16px;height:16px}.offline-tips{padding:1rem 1.25rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;text-align:left}.offline-tips-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 .75rem}.offline-tips ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.85rem;line-height:1.8}.offline-tips li::marker{color:var(--text-dim)}.kicked-page{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;max-width:500px;margin:3rem auto;padding:2rem}.kicked-icon{color:var(--accent-coral);animation:kicked-pulse 2s ease-in-out infinite}.kicked-icon-circle{stroke:var(--accent-coral);opacity:.3}.kicked-icon-slash{stroke:var(--accent-coral)}@keyframes kicked-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.kicked-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin:0}.kicked-reason{color:var(--accent-coral);font-size:1rem;font-weight:600;margin:0;padding:.75rem 1.5rem;background:#ff4d4d14;border:1px solid rgba(255,77,77,.2);border-radius:var(--radius)}.kicked-message{color:var(--text-muted);font-size:.95rem;line-height:1.6;margin:0}.kicked-actions{display:flex;gap:1rem;margin-top:1rem}.kicked-home-btn{display:flex;align-items:center;gap:.5rem}.kicked-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-subtle);width:100%}.kicked-info-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.kicked-info ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.85rem;line-height:1.8;text-align:left}.kicked-info li::marker{color:var(--text-dim)}.spotify-error-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem}.spotify-error-modal{background:var(--surface);border:1px solid var(--border);border-radius:1.25rem;padding:2rem 2.25rem;max-width:480px;width:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center}.spotify-error-icon{color:#fa0;display:flex;align-items:center;justify-content:center}.spotify-error-title{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin:0}.spotify-error-body{color:var(--text-secondary);font-size:.9rem;line-height:1.6;text-align:left;width:100%}.spotify-error-body p{margin:0 0 .75rem}.spotify-error-body ul{margin:0 0 .75rem;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem}.spotify-error-hint{background:#00e5ff14;border-left:3px solid var(--accent-cyan);padding:.6rem .75rem;border-radius:0 .5rem .5rem 0;margin-top:.5rem}.spotify-error-actions{display:flex;flex-direction:column;gap:.6rem;width:100%}.spotify-error-yt-btn{background:linear-gradient(135deg,red,#c00);color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:.75rem;font-weight:600;font-size:.95rem;border:none;cursor:pointer}.spotify-error-yt-btn:hover{opacity:.9}.spotify-error-continue-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border);padding:.65rem 1.5rem;border-radius:.75rem;font-size:.9rem;cursor:pointer}.spotify-error-continue-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.bs-root{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-base, #0e0e0e);z-index:9999;padding:2rem 1.5rem;overflow-y:auto}.bs-glow{position:fixed;top:0;left:50%;transform:translate(-50%);width:700px;height:420px;background:radial-gradient(ellipse at 50% 0%,rgba(239,68,68,.18) 0%,transparent 65%);pointer-events:none}.bs-watermark{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(8rem,22vw,18rem);font-weight:900;letter-spacing:.06em;color:#ef44440b;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.bs-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.4rem;width:100%;max-width:480px}.bs-icon{color:var(--accent-coral, #ff4d4d);animation:bs-icon-pulse 2.5s ease-in-out infinite}.bs-icon-ring{stroke:var(--accent-coral, #ff4d4d);opacity:.28}.bs-icon-slash{stroke:var(--accent-coral, #ff4d4d)}@keyframes bs-icon-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}.bs-title{font-size:2rem;font-weight:800;color:var(--text-primary, #e8e8e8);margin:0;letter-spacing:-.03em}.bs-reason-badge{color:var(--accent-coral, #ff4d4d);font-size:.95rem;font-weight:600;padding:.6rem 1.4rem;background:#ff4d4d14;border:1px solid rgba(255,77,77,.22);border-radius:999px;line-height:1.4}.bs-body{color:var(--text-muted, #808080);font-size:.9rem;line-height:1.65;margin:0;max-width:380px}.bs-meta{display:flex;align-items:center;gap:.75rem;font-size:.82rem;color:var(--text-secondary, #999)}.bs-meta-item{display:flex;align-items:center;gap:.35rem}.bs-meta-sep{width:3px;height:3px;border-radius:50%;background:var(--text-dim, #505050)}.bs-meta-status{color:var(--accent-coral, #ff4d4d)}.bs-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-coral, #ff4d4d);box-shadow:0 0 6px var(--accent-coral, #ff4d4d);animation:bs-dot-blink 1.8s ease-in-out infinite}@keyframes bs-dot-blink{0%,to{opacity:1}50%{opacity:.35}}.bs-actions{display:flex;justify-content:center;margin-top:.4rem}.bs-appeal-btn{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.4rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm, 8px);color:var(--text-secondary, #999);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.bs-appeal-btn:hover{background:#ffffff17;border-color:#ffffff2e;color:var(--text-primary, #e8e8e8)}.bs-form{width:100%;text-align:left;border-top:1px solid rgba(255,255,255,.07);padding-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.bs-form-header{text-align:center}.bs-form-title{font-size:1rem;font-weight:700;color:var(--text-primary, #e8e8e8);margin:0 0 .3rem}.bs-form-sub{font-size:.82rem;color:var(--text-muted, #808080);margin:0}.bs-field{display:flex;flex-direction:column;gap:.35rem;position:relative}.bs-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, #999)}.bs-input,.bs-textarea{width:100%;box-sizing:border-box;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm, 8px);padding:.55rem .75rem;color:var(--text-primary, #e8e8e8);font-size:.875rem;font-family:inherit;resize:vertical;transition:border-color .15s}.bs-input:focus,.bs-textarea:focus{outline:none;border-color:#ff4d4d73}.bs-char-count{align-self:flex-end;font-size:.72rem;color:var(--text-muted, #808080);opacity:.6}.bs-error{font-size:.82rem;color:var(--accent-coral, #ff4d4d);margin:0}.bs-form-actions{display:flex;gap:.6rem;justify-content:flex-end}.bs-cancel-btn{padding:.55rem 1rem;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm, 8px);color:var(--text-secondary, #999);font-size:.85rem;cursor:pointer;transition:background .15s}.bs-cancel-btn:hover{background:#ffffff0f}.bs-submit-btn{padding:.55rem 1.2rem;background:var(--accent-coral, #ff4d4d);border:none;border-radius:var(--radius-sm, 8px);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}.bs-submit-btn:hover:not(:disabled){opacity:.85}.bs-submit-btn:disabled{opacity:.45;cursor:not-allowed}.bs-submitted{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding-top:.5rem;color:var(--text-secondary, #999);font-size:.875rem;line-height:1.6}.bs-submitted svg{color:#22c55e}.bs-submitted p{margin:0}.game-chat{position:fixed;bottom:1rem;left:1.5rem;z-index:1000;width:340px;display:flex;flex-direction:column;pointer-events:none}.game-chat:hover{pointer-events:auto}.game-chat-messages{display:flex;flex-direction:column;gap:.25rem;max-height:300px;overflow-y:auto;padding:.5rem;border-radius:var(--radius) var(--radius) 0 0;transition:background .2s ease;pointer-events:none;scrollbar-width:none}.game-chat-messages::-webkit-scrollbar{display:none}.game-chat:hover .game-chat-messages{background:#000000b3;pointer-events:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.game-chat:hover .game-chat-messages::-webkit-scrollbar{display:block;width:4px}.game-chat:hover .game-chat-messages::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.game-chat-msg{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem;font-size:.8rem;line-height:1.4;padding:.15rem .4rem;border-radius:3px;background:#0000008c;transition:opacity .5s ease}.game-chat:hover .game-chat-msg{background:#00000059}.game-chat-msg-faded{opacity:0;transition:opacity 1s ease}.game-chat:hover .game-chat-msg-faded{opacity:1;transition:opacity .2s ease}.game-chat-msg-system{justify-content:center}.game-chat-msg-system-text{color:var(--text-dim);font-style:italic;font-size:.75rem}.game-chat-msg-sender{font-weight:600;color:var(--accent-cyan);flex-shrink:0}.game-chat-msg-sender:after{content:":"}.game-chat-msg-text{color:var(--text-primary);word-break:break-word;text-shadow:0 1px 2px rgba(0,0,0,.8)}.game-chat-input-row{display:flex;gap:.5rem;padding:.4rem;background:#0000008c;border-radius:0 0 var(--radius) var(--radius);pointer-events:auto;transition:background .2s ease}.game-chat-input-row--empty{border-radius:var(--radius)}.game-chat:hover .game-chat-input-row{background:#000000b3}.game-chat-input{flex:1;background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);color:var(--text-primary);padding:.4rem .6rem;font-size:.8rem;outline:none;font-family:inherit}.game-chat-input:focus{border-color:var(--accent-cyan);background:#0009}.game-chat-input::placeholder{color:var(--text-dim)}.game-chat-send{background:var(--accent-cyan);border:none;border-radius:var(--radius-sm);color:var(--bg-deep);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s;flex-shrink:0;font-family:inherit}.game-chat-send:disabled{opacity:.4;cursor:default}.game-chat-send:hover:not(:disabled){opacity:.8}.game-chat-toggle,.game-chat-header{display:none}@media(max-width:768px){.game-chat-toggle{position:fixed;bottom:1rem;left:1rem;z-index:1001;width:56px;height:56px;border-radius:50%;background:var(--accent-coral);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #0006;transition:opacity .2s,transform .2s}.game-chat-toggle:active{transform:scale(.95)}.game-chat-toggle-hidden{opacity:0;pointer-events:none}.game-chat-badge{position:absolute;top:-4px;right:-4px;background:#ff3b3b;color:#fff;font-size:.7rem;font-weight:600;padding:.15rem .4rem;border-radius:10px;min-width:20px;text-align:center;box-shadow:0 2px 6px #0000004d}.game-chat{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:60vh;pointer-events:auto;transition:transform .3s ease}.game-chat-collapsed{transform:translateY(100%);pointer-events:none}.game-chat-expanded{transform:translateY(0)}.game-chat-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#000000e6;border-top:2px solid var(--accent-cyan);font-weight:600;color:var(--text-primary)}.game-chat-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.game-chat-close:hover{color:var(--text-primary)}.game-chat-messages{background:#000000d9;max-height:calc(60vh - 120px);overflow-y:auto;pointer-events:auto}.game-chat:hover .game-chat-messages{background:#000000d9}.game-chat-input-row{background:#000000e6;padding:.75rem 1rem}}.ssl-page{display:flex;flex:1;min-height:0;width:100%;overflow:hidden;background:var(--bg-deep, #0a0a0a)}.ssl-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:#111;border-right:1px solid rgba(255,255,255,.06);overflow-y:auto;padding:1.5rem 0 2rem}.ssl-sidebar-section{padding:0 1rem}.ssl-sidebar-section--playlists{flex:1;margin-top:1.5rem;display:flex;flex-direction:column;min-height:0}.ssl-sidebar-label{display:flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted, #666);padding:0 .5rem;margin-bottom:.75rem}.ssl-new-pl-btn{margin-left:auto;background:transparent;border:none;color:var(--text-muted, #666);cursor:pointer;padding:.2rem;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s}.ssl-new-pl-btn:hover{color:#fff;background:#ffffff1a}.ssl-nav{display:flex;flex-direction:column;gap:2px}.ssl-nav-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;background:transparent;border:none;color:var(--text-muted, #888);cursor:pointer;font-size:.875rem;font-weight:500;width:100%;text-align:left;transition:background .15s,color .15s}.ssl-nav-item:hover{background:#ffffff12;color:#fff}.ssl-nav-item--active{color:#fff;background:#ffffff1a}.ssl-nav-item--active svg{color:var(--accent-coral, #FF4D4D)}.ssl-nav-count{margin-left:auto;font-size:.7rem;color:var(--text-muted, #666);background:#ffffff12;padding:.1rem .5rem;border-radius:99px}.ssl-playlist-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.ssl-sidebar-empty{font-size:.75rem;color:var(--text-muted, #666);padding:.5rem .75rem;margin:0;font-style:italic}.ssl-pl-nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:8px;background:transparent;border:none;color:var(--text-muted, #999);cursor:pointer;font-size:.8rem;width:100%;text-align:left;transition:background .15s,color .15s}.ssl-pl-nav-item:hover{background:#ffffff12;color:#ddd}.ssl-pl-nav-item--active{background:#ffffff1a;color:#fff}.ssl-pl-nav-emoji{font-size:1.1rem;flex-shrink:0;width:1.5rem;text-align:center}.ssl-pl-nav-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ssl-pl-nav-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-pl-nav-meta{font-size:.7rem;color:var(--text-muted, #666)}.ssl-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-width:0}.ssl-hero{display:flex;align-items:flex-end;gap:1.5rem;padding:2.5rem 2rem 1.5rem;background:linear-gradient(to bottom,rgba(255,255,255,.04) 0%,transparent 100%);border-bottom:1px solid rgba(255,255,255,.04);position:relative}.ssl-hero--liked{background:linear-gradient(135deg,rgba(255,77,77,.25) 0%,rgba(255,100,50,.1) 50%,transparent 100%)}.ssl-hero-back{position:absolute;top:1.5rem;left:1.5rem;background:#ffffff1a;border:none;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.ssl-hero-back:hover{background:#fff3}.ssl-hero-art{width:140px;height:140px;border-radius:8px;background:#ffffff0f;display:flex;align-items:center;justify-content:center;font-size:4rem;flex-shrink:0;box-shadow:0 8px 32px #00000080}.ssl-hero-art--liked{background:linear-gradient(135deg,#ff4d4d,#ff7043);border-radius:4px}.ssl-hero-meta{display:flex;flex-direction:column;gap:.375rem;padding-bottom:.25rem}.ssl-hero-type{font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--text-muted, #888);text-transform:uppercase}.ssl-hero-title{margin:0;font-size:2.25rem;font-weight:800;color:#fff;line-height:1.1}.ssl-hero-sub{font-size:.875rem;color:var(--text-muted, #888)}.ssl-hero-actions{display:flex;gap:.5rem;margin-top:.25rem}.ssl-hero-action{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#ccc;padding:.375rem .875rem;border-radius:6px;font-size:.78rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:background .15s,color .15s}.ssl-hero-action:hover{background:#ffffff26;color:#fff}.ssl-hero-action--danger:hover{background:#ff4d4d33;border-color:#ff4d4d66;color:#ff6b6b}.ssl-toolbar{display:flex;align-items:center;gap:1rem;padding:1.25rem 2rem .75rem;flex-shrink:0}.ssl-search-wrap{position:relative;flex:1;max-width:400px}.ssl-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--text-muted, #666);pointer-events:none}.ssl-search{width:100%;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:99px;color:#fff;padding:.5rem 2.5rem;font-size:.85rem;outline:none;transition:border-color .2s,background .2s;box-sizing:border-box}.ssl-search::placeholder{color:var(--text-muted, #666)}.ssl-search:focus{border-color:#ffffff40;background:#ffffff1a}.ssl-search-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-muted, #666);cursor:pointer;padding:.2rem;border-radius:50%;display:flex;align-items:center;transition:color .15s}.ssl-search-clear:hover{color:#fff}.ssl-sort-wrap{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ssl-sort-label{font-size:.75rem;color:var(--text-muted, #666)}.ssl-sort{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ccc;padding:.375rem .625rem;font-size:.8rem;outline:none;cursor:pointer;transition:border-color .2s}.ssl-sort:focus{border-color:#ffffff40}.ssl-table-head{display:grid;grid-template-columns:48px 1fr 200px 140px 100px;padding:0 2rem .5rem;border-bottom:1px solid rgba(255,255,255,.07);margin:0 0 .25rem}.ssl-table-head span{font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted, #666)}.ssl-table-body{flex:1;padding:0 1rem 2rem}.ssl-song-row{display:grid;grid-template-columns:48px 1fr 200px 140px 100px;align-items:center;padding:.5rem 1rem;border-radius:8px;transition:background .12s;cursor:default}.ssl-song-row--hovered{background:#ffffff0f}.ssl-col-num{display:flex;align-items:center;justify-content:center}.ssl-row-num{font-size:.8rem;color:var(--text-muted, #888);font-variant-numeric:tabular-nums}.ssl-col-title{display:flex;align-items:center;gap:.75rem;min-width:0}.ssl-row-art{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#ffffff0f}.ssl-row-art--placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted, #666)}.ssl-row-name{font-size:.875rem;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-row-artist{font-size:.82rem;color:var(--text-muted, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-row-date{font-size:.78rem;color:var(--text-muted, #666)}.ssl-col-actions{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.ssl-row-actions{opacity:0;transition:opacity .15s}.ssl-song-row--hovered .ssl-row-actions{opacity:1}.ssl-icon-btn{background:transparent;border:none;color:var(--text-muted, #888);cursor:pointer;padding:.375rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.ssl-icon-btn:hover{background:#ffffff1a;color:#fff}.ssl-icon-btn--danger:hover{background:#ff4d4d26;color:#ff6b6b}.ssl-icon-btn--add:hover{background:#1db95426;color:var(--accent-green, #1DB954)}.ssl-pl-menu-wrap{position:relative}.ssl-pl-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:#1e1e1e;border:1px solid rgba(255,255,255,.12);border-radius:10px;min-width:200px;z-index:100;box-shadow:0 8px 32px #0009;overflow:hidden}.ssl-pl-dropdown-header{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted, #666);padding:.75rem 1rem .5rem;border-bottom:1px solid rgba(255,255,255,.07)}.ssl-pl-option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem 1rem;background:transparent;border:none;color:#ccc;font-size:.85rem;cursor:pointer;text-align:left;transition:background .1s}.ssl-pl-option:hover{background:#ffffff0f;color:#fff}.ssl-pl-option--active{color:#fff}.ssl-pl-option-emoji{font-size:1rem}.ssl-pl-page{padding:2rem}.ssl-pl-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.ssl-pl-page-header h1{margin:0;font-size:1.75rem;font-weight:800;color:#fff}.ssl-create-btn{display:flex;align-items:center;gap:.375rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#ccc;padding:.5rem 1rem;border-radius:99px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.ssl-create-btn:hover{background:#ffffff26;color:#fff}.ssl-pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.ssl-pl-card{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:background .15s}.ssl-pl-card:hover{background:#ffffff0f}.ssl-pl-card-art{width:100%;aspect-ratio:1;border-radius:8px;background:#ffffff0f;border:none;display:flex;align-items:center;justify-content:center;font-size:3rem;cursor:pointer;transition:background .15s}.ssl-pl-card-art:hover{background:#ffffff1a}.ssl-pl-card-info{display:flex;flex-direction:column;gap:2px}.ssl-pl-card-name{background:transparent;border:none;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ssl-pl-card-name:hover{text-decoration:underline}.ssl-pl-card-meta{font-size:.75rem;color:var(--text-muted, #666)}.ssl-pl-card-actions{display:flex;gap:.375rem;margin-top:auto}.ssl-pl-edit{padding:.5rem 0}.ssl-create-form{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.ssl-create-form-inner{display:flex;flex-direction:column;gap:.875rem}.ssl-emoji-picker{display:flex;flex-wrap:wrap;gap:.375rem}.ssl-emoji-opt{background:#ffffff0f;border:1px solid transparent;border-radius:8px;padding:.375rem;font-size:1.25rem;cursor:pointer;transition:background .1s,border-color .1s;line-height:1}.ssl-emoji-opt:hover{background:#ffffff1f}.ssl-emoji-opt--active{border-color:var(--accent-green, #1DB954);background:#1db9541f}.ssl-create-row{display:flex;gap:.5rem;align-items:center}.ssl-input{flex:1;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fff;padding:.5rem .75rem;font-size:.875rem;outline:none;transition:border-color .2s}.ssl-input::placeholder{color:var(--text-muted, #666)}.ssl-input:focus{border-color:#ffffff4d}.ssl-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:#ccc;padding:.5rem .875rem;border-radius:8px;font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.ssl-btn:hover{background:#ffffff1f;color:#fff}.ssl-btn--primary{background:var(--accent-green, #1DB954);border-color:transparent;color:#000;font-weight:700}.ssl-btn--primary:hover:not(:disabled){background:#1ed760}.ssl-btn:disabled{opacity:.4;cursor:not-allowed}.ssl-songs-section{display:flex;flex-direction:column;flex:1;min-height:0}.ssl-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:var(--text-muted, #666);text-align:center}.ssl-empty-state svg{opacity:.4}.ssl-empty-state p{margin:0;font-size:.9rem;max-width:280px;line-height:1.5}.ssl-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-green, #1DB954);border-radius:50%;animation:ssl-spin .8s linear infinite}@keyframes ssl-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.ssl-page{flex-direction:column}.ssl-sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid rgba(255,255,255,.06);padding:1rem 0 .5rem;flex-direction:row;overflow-x:auto;overflow-y:hidden}.ssl-sidebar-section{flex-shrink:0}.ssl-sidebar-section--playlists{margin-top:0;margin-left:1rem}.ssl-sidebar-label{display:none}.ssl-playlist-nav{flex-direction:row;overflow-x:auto;overflow-y:hidden;flex:unset}.ssl-pl-nav-item{flex-direction:column;gap:.25rem;padding:.5rem;min-width:80px;text-align:center}.ssl-pl-nav-info{align-items:center}.ssl-pl-nav-meta,.ssl-table-head{display:none}.ssl-song-row{grid-template-columns:1fr auto;grid-template-rows:auto auto}.ssl-col-num,.ssl-col-artist,.ssl-col-date{display:none}.ssl-col-title{grid-column:1}.ssl-col-actions{grid-column:2;grid-row:1 / 3;opacity:1}.ssl-row-actions{opacity:1}.ssl-hero-title{font-size:1.5rem}.ssl-hero-art{width:90px;height:90px;font-size:2.5rem}}.ssl-shell{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;overflow:hidden;background:var(--bg-deep, #0a0a0a)}.ssl-tabs{display:flex;align-items:stretch;background:#0d0d0d;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;padding:0 1rem;gap:0}.ssl-tab-btn{display:flex;align-items:center;gap:.5rem;padding:.9rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted, #808080);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;margin-bottom:-1px}.ssl-tab-btn svg{flex-shrink:0;opacity:.6;transition:opacity .15s}.ssl-tab-btn:hover{color:var(--text-primary, #e8e8e8)}.ssl-tab-btn:hover svg{opacity:.9}.ssl-tab-btn--active{color:var(--text-primary, #e8e8e8);border-bottom-color:var(--accent-cyan, #00e5ff)}.ssl-tab-btn--active svg{opacity:1;color:var(--accent-cyan, #00e5ff)}.ssl-tab-content{flex:1;min-height:0;overflow-y:auto;padding:2rem}.ssl-spotify-lib{display:flex;flex-direction:column;gap:1.5rem}.ssl-lib-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.ssl-lib-stat{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius, 12px)}.ssl-lib-stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ssl-lib-stat-icon--cyan{background:#00e5ff1a;color:var(--accent-cyan, #00e5ff)}.ssl-lib-stat-icon--coral{background:#ff4d4d1a;color:var(--accent-coral, #ff4d4d)}.ssl-lib-stat-value{font-size:1.6rem;font-weight:700;color:var(--text-primary, #e8e8e8);line-height:1}.ssl-lib-stat-label{font-size:.75rem;color:var(--text-muted, #808080);margin-top:.3rem;text-transform:uppercase;letter-spacing:.05em}.ssl-lib-progress{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:#00e5ff0d;border:1px solid rgba(0,229,255,.2);border-radius:var(--radius, 12px);font-size:.875rem;color:var(--accent-cyan, #00e5ff)}.ssl-lib-section{display:flex;flex-direction:column;gap:1rem}.ssl-lib-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.ssl-lib-section-title{font-size:1rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-lib-section-sub{font-size:.8rem;color:var(--text-muted, #808080);margin-top:.2rem}.ssl-lib-sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.ssl-lib-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--bg-surface, #141414);border:2px solid rgba(255,255,255,.06);border-radius:var(--radius, 12px);cursor:pointer;transition:all .2s;text-align:left;position:relative;overflow:hidden}.ssl-lib-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:transparent;transition:background .2s}.ssl-lib-card:hover{background:var(--bg-elevated, #1a1a1a);border-color:#ffffff1f}.ssl-lib-card--active{border-color:var(--accent-cyan, #00e5ff)}.ssl-lib-card--active:before{background:linear-gradient(90deg,var(--accent-cyan, #00e5ff),var(--accent-coral, #ff4d4d))}.ssl-lib-card--excluded{opacity:.5}.ssl-lib-card--excluded:hover{opacity:.7}.ssl-lib-card--expanded{border-color:var(--accent-cyan, #00e5ff);background:var(--bg-elevated, #1a1a1a)}.ssl-lib-card-status{flex-shrink:0;color:var(--accent-cyan, #00e5ff)}.ssl-lib-card--excluded .ssl-lib-card-status{color:var(--text-muted, #808080)}.ssl-lib-card-icon{flex-shrink:0}.ssl-lib-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.ssl-lib-card-name{font-size:.9rem;font-weight:600;color:var(--text-primary, #e8e8e8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-card-count{font-size:.78rem;color:var(--text-muted, #808080)}.ssl-lib-card-refresh{flex-shrink:0;width:30px;height:30px;border:none;background:var(--bg-elevated, #1a1a1a);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent-cyan, #00e5ff);transition:all .2s;margin-left:auto}.ssl-lib-card-refresh:hover:not(:disabled){background:var(--accent-cyan, #00e5ff);color:#000;transform:scale(1.1)}.ssl-lib-card-refresh:disabled{opacity:.4;cursor:not-allowed}.ssl-lib-song-panel{background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius, 12px);overflow:hidden}.ssl-lib-song-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06)}.ssl-lib-song-panel-title{font-size:.95rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-lib-song-panel-meta{padding:.5rem 1.25rem;font-size:.8rem;color:var(--text-muted, #808080);border-bottom:1px solid rgba(255,255,255,.04)}.ssl-lib-song-list{max-height:400px;overflow-y:auto}.ssl-lib-song-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;transition:background .15s}.ssl-lib-song-row:hover{background:var(--bg-elevated, #1a1a1a)}.ssl-lib-song-num{width:28px;text-align:right;font-size:.8rem;color:var(--text-muted, #808080);flex-shrink:0}.ssl-lib-song-art{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-elevated, #1a1a1a)}.ssl-lib-song-info{flex:1;min-width:0}.ssl-lib-song-name{font-size:.875rem;font-weight:500;color:var(--text-primary, #e8e8e8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-song-artist{font-size:.78rem;color:var(--text-muted, #808080);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-song-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.ssl-lib-song-dur{font-size:.8rem;color:var(--text-muted, #808080);font-variant-numeric:tabular-nums}.ssl-lib-song-date{font-size:.72rem;color:var(--text-dim, #505050);white-space:nowrap}.ssl-compare{display:flex;flex-direction:column;gap:1.5rem;max-width:860px;margin:0 auto;width:100%}.ssl-compare-search-section{display:flex;flex-direction:column;gap:.75rem}.ssl-compare-search-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #e8e8e8)}.ssl-compare-search-sub{font-size:.85rem;color:var(--text-muted, #808080)}.ssl-user-search{display:flex;align-items:center;gap:.75rem;background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius, 12px);padding:.75rem 1rem;color:var(--text-muted, #808080);transition:border-color .2s}.ssl-user-search:focus-within{border-color:var(--accent-cyan, #00e5ff)}.ssl-user-search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary, #e8e8e8);font-size:.95rem}.ssl-user-search-input::placeholder{color:var(--text-muted, #808080)}.ssl-user-results{display:flex;flex-direction:column;gap:.4rem}.ssl-user-no-results{padding:.75rem 1rem;font-size:.875rem;color:var(--text-muted, #808080)}.ssl-user-card{display:flex;align-items:center;gap:.875rem;padding:.75rem 1rem;background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm, 8px);cursor:pointer;transition:all .15s;text-align:left}.ssl-user-card:hover{background:var(--bg-elevated, #1a1a1a);border-color:#ffffff1f}.ssl-user-card--selected{border-color:var(--accent-cyan, #00e5ff);background:#00e5ff0d}.ssl-user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-cyan, #00e5ff),var(--accent-coral, #ff4d4d));display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#000;flex-shrink:0;overflow:hidden}.ssl-user-avatar img{width:100%;height:100%;object-fit:cover}.ssl-user-name{font-size:.9rem;font-weight:500;color:var(--text-primary, #e8e8e8)}.ssl-compare-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#ff4d4d14;border:1px solid rgba(255,77,77,.25);border-radius:var(--radius, 12px);font-size:.875rem;color:var(--accent-coral, #ff4d4d)}.ssl-compare-results{display:flex;flex-direction:column;gap:1.5rem}.ssl-compare-hero{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:2rem;background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius, 12px)}.ssl-compare-hero-side{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.ssl-compare-hero-side--them{align-items:center}.ssl-compare-hero-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#000;overflow:hidden;flex-shrink:0}.ssl-compare-hero-avatar img{width:100%;height:100%;object-fit:cover}.ssl-compare-hero-avatar--you{background:linear-gradient(135deg,var(--accent-cyan, #00e5ff),#0080ff);border:2px solid var(--accent-cyan, #00e5ff)}.ssl-compare-hero-avatar--them{background:linear-gradient(135deg,var(--accent-coral, #ff4d4d),#ff8c00);border:2px solid var(--accent-coral, #ff4d4d)}.ssl-compare-hero-name{font-size:.95rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-compare-hero-count{font-size:.8rem;color:var(--text-muted, #808080)}.ssl-compare-hero-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:140px}.ssl-compare-score{font-size:3.5rem;font-weight:800;background:linear-gradient(135deg,var(--accent-cyan, #00e5ff),var(--accent-coral, #ff4d4d));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.ssl-compare-score-label{font-size:.8rem;font-weight:600;color:var(--text-muted, #808080);text-transform:uppercase;letter-spacing:.07em}.ssl-compare-score-bar{width:100%;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.ssl-compare-score-fill{height:100%;background:linear-gradient(90deg,var(--accent-cyan, #00e5ff),var(--accent-coral, #ff4d4d));border-radius:2px;transition:width .6s ease}.ssl-compare-score-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.ssl-compare-stat-card{padding:1.25rem;background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius, 12px);display:flex;flex-direction:column;gap:.25rem;text-align:center}.ssl-compare-stat-value{font-size:2rem;font-weight:800;line-height:1}.ssl-compare-stat-value--cyan{color:var(--accent-cyan, #00e5ff)}.ssl-compare-stat-value--coral{color:var(--accent-coral, #ff4d4d)}.ssl-compare-stat-label{font-size:.8rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-compare-stat-sub{font-size:.73rem;color:var(--text-muted, #808080)}.ssl-compare-section{background:var(--bg-surface, #141414);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius, 12px);padding:1.5rem}.ssl-compare-section-title{font-size:.95rem;font-weight:700;color:var(--text-primary, #e8e8e8);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.ssl-compare-section-badge{background:#ffffff14;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;color:var(--text-muted, #808080);text-transform:none;letter-spacing:0}.ssl-era-legend{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-muted, #808080);font-weight:400;text-transform:none;letter-spacing:0;margin-left:auto}.ssl-era-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.ssl-era-dot--you{background:var(--accent-cyan, #00e5ff)}.ssl-era-dot--them{background:var(--accent-coral, #ff4d4d);margin-left:.75rem}.ssl-era-chart{display:flex;flex-direction:column;gap:.6rem}.ssl-era-row{display:grid;grid-template-columns:40px 1fr 60px;align-items:center;gap:.75rem}.ssl-era-label{font-size:.78rem;font-weight:600;color:var(--text-muted, #808080);text-align:right}.ssl-era-bars{display:flex;flex-direction:column;gap:3px}.ssl-era-bar-wrap{height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden}.ssl-era-bar{height:100%;border-radius:4px;min-width:2px;transition:width .4s ease}.ssl-era-bar--you{background:var(--accent-cyan, #00e5ff)}.ssl-era-bar--them{background:var(--accent-coral, #ff4d4d)}.ssl-era-counts{font-size:.75rem;color:var(--text-dim, #505050);font-variant-numeric:tabular-nums;text-align:right}.ssl-artist-chips{display:flex;flex-wrap:wrap;gap:.5rem}.ssl-artist-chip{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .875rem;background:var(--bg-elevated, #1a1a1a);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm, 8px);min-width:0}.ssl-artist-chip-name{font-size:.82rem;font-weight:600;color:var(--text-primary, #e8e8e8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.ssl-artist-chip-counts{font-size:.72rem;display:flex;gap:.25rem;align-items:center}.ssl-compare-songs{display:flex;flex-direction:column}.ssl-compare-show-more{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.85rem;background:none;border:1px dashed rgba(255,255,255,.1);border-radius:var(--radius-sm, 8px);color:var(--text-muted, #808080);font-size:.85rem;cursor:pointer;transition:all .2s;margin-top:.5rem}.ssl-compare-show-more:hover{border-color:var(--accent-cyan, #00e5ff);color:var(--accent-cyan, #00e5ff)}.ssl-spinner--sm{width:16px;height:16px;border-width:2px;flex-shrink:0}.ssl-empty-state--centered{flex:1;justify-content:center}@media(max-width:700px){.ssl-compare-score-cards{grid-template-columns:repeat(2,1fr)}.ssl-compare-hero{grid-template-columns:1fr;gap:1rem;padding:1.25rem}.ssl-compare-hero-center{order:-1}.ssl-compare-score{font-size:2.5rem}.ssl-tab-content{padding:1rem}.ssl-lib-stats-row{grid-template-columns:repeat(2,1fr)}.ssl-tabs{overflow-x:auto;padding:0 .5rem}.ssl-tab-btn{padding:.75rem .875rem;font-size:.8rem}}.survey-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:survey-overlay-in .3s ease-out both}@keyframes survey-overlay-in{0%{opacity:0}to{opacity:1}}.survey-content{max-width:460px;width:100%;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.survey-gate-heading{font-size:2.2rem;font-weight:900;letter-spacing:.06em;text-align:center;line-height:1.15;margin:0;background:linear-gradient(135deg,var(--accent-coral, #FF4D4D),var(--accent-cyan, #00E5FF));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.survey-gate-sub{font-size:.95rem;color:var(--text-muted, #aaa);text-align:center;margin:0;line-height:1.5}.survey-btn-primary{display:flex;align-items:center;justify-content:center;width:100%;padding:1rem 2rem;background:linear-gradient(135deg,var(--accent-coral, #FF4D4D),#e03a3a);color:#fff;border:none;border-radius:50px;font-size:1.05rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #ff4d4d4d}.survey-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 28px #ff4d4d73;filter:brightness(1.07)}.survey-btn-primary:active:not(:disabled){transform:translateY(0)}.survey-btn-primary:disabled{opacity:.55;cursor:not-allowed}.survey-btn-ghost{background:none;border:none;color:var(--text-dim, #666);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.4rem 1rem;transition:color .15s;width:100%;text-align:center}.survey-btn-ghost:hover{color:var(--text-muted, #aaa)}.survey-btn-nope{background:none;border:none;color:var(--text-dim, #555);font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem .5rem;opacity:.6;transition:opacity .15s;width:100%;text-align:center}.survey-btn-nope:hover{opacity:1}.survey-gate-actions{display:flex;flex-direction:column;gap:.65rem;width:100%}.survey-progress-track{width:100%;height:3px;background:var(--border-subtle, rgba(255,255,255,.08));border-radius:2px;overflow:hidden}.survey-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-coral, #FF4D4D),var(--accent-cyan, #00E5FF));border-radius:2px;transition:width .4s ease}.survey-q-header{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.survey-q-label{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim, #555)}.survey-q-text{font-size:1.5rem;font-weight:900;letter-spacing:.04em;text-align:center;color:var(--text-primary, #fff);margin:0;line-height:1.2}.survey-q-sub{font-size:.85rem;color:var(--text-muted, #aaa);text-align:center;margin:0;line-height:1.4}.survey-options{display:flex;flex-direction:column;gap:.5rem;width:100%}.survey-option{display:flex;align-items:center;justify-content:center;width:100%;padding:.85rem 1.25rem;border:1px solid var(--border-subtle, rgba(255,255,255,.08));border-radius:var(--radius, 10px);background:var(--bg-elevated, rgba(255,255,255,.04));color:var(--text-primary, #fff);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:center;transition:border-color .18s,background .18s,box-shadow .18s}.survey-option:hover{border-color:var(--accent-coral, #FF4D4D);box-shadow:0 0 0 1px #ff4d4d33}.survey-option.selected{border-color:var(--accent-coral, #FF4D4D);background:#ff4d4d14;box-shadow:0 0 0 1px #ff4d4d33}.survey-multi-hint{font-size:.75rem;color:var(--text-dim, #555);text-align:center;letter-spacing:.04em}.survey-textarea{width:100%;min-height:120px;background:var(--bg-elevated, rgba(255,255,255,.04));border:1px solid var(--border-subtle, rgba(255,255,255,.08));border-radius:var(--radius, 10px);color:var(--text-primary, #fff);padding:1rem 1.25rem;font-size:.95rem;font-family:inherit;outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.survey-textarea:focus{border-color:var(--accent-coral, #FF4D4D);box-shadow:0 0 0 3px #ff4d4d1f}.survey-textarea::placeholder{color:var(--text-dim, #555)}.survey-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.survey-back-btn{background:none;border:none;color:var(--text-dim, #666);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.4rem 1rem;transition:color .15s;width:100%;text-align:center}.survey-back-btn:hover{color:var(--text-muted, #aaa)}.survey-back-btn:disabled{opacity:.4;cursor:not-allowed}.survey-skip-link{background:none;border:none;color:var(--text-dim, #555);font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem 0;text-align:center;transition:color .15s;text-decoration:underline}.survey-skip-link:hover{color:var(--text-muted, #aaa)}@keyframes survey-q-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.survey-question-body{display:contents}.survey-question-animate{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;animation:survey-q-in .28s ease-out both}.survey-success-wrap{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;animation:survey-q-in .4s ease-out both;text-align:center}.survey-success-ring{position:relative;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#00e5ff1f,#00c86424);border:1.5px solid rgba(0,229,255,.28);display:flex;align-items:center;justify-content:center;animation:survey-ring-pop .5s cubic-bezier(.34,1.56,.64,1) both;box-shadow:0 0 30px #00e5ff26}.survey-success-ring:before{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.07) 0%,transparent 70%);animation:survey-ring-pulse 2.6s ease-in-out infinite}@keyframes survey-ring-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes survey-ring-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.5}}.survey-success-heading{font-size:1.75rem;font-weight:900;letter-spacing:.05em;color:var(--text-primary, #fff);margin:0}.survey-success-sub{font-size:.9rem;color:var(--text-muted, #aaa);margin:0;line-height:1.5}html{font-size:clamp(14px,.45vw + 12px,20px);scrollbar-gutter:stable}@media(max-width:600px){html{scrollbar-gutter:auto;font-size:calc(clamp(14px,.45vw + 12px,20px)*.95)}}:root{--bg-deep: #0a0a0a;--bg-base: #0a0a0a;--bg-surface: #141414;--bg-elevated: #1a1a1a;--border-subtle: rgba(255, 255, 255, .06);--accent-coral: #FF4D4D;--accent-cyan: #00E5FF;--accent-green: #1DB954;--danger: #FF4D4D;--text-primary: #E8E8E8;--text-secondary: #999999;--text-muted: #808080;--text-dim: #505050;--glow-coral: 0 0 20px rgba(255, 77, 77, .4);--glow-cyan: 0 0 20px rgba(0, 229, 255, .4);--radius-xs: 4px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 9999px;--text-xs: .65rem;--text-sm: .75rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 3rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--z-overlay: 400}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;background:var(--bg-deep);color:var(--text-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;background-image:radial-gradient(ellipse at 20% 50%,rgba(255,77,77,.03) 0%,transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(0,229,255,.03) 0%,transparent 50%)}#root{max-width:min(1000px,92vw);margin:0 auto;min-height:100vh;min-height:100dvh}.app{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.app--fullpage{gap:0;height:100vh;overflow:hidden}.header-left,.header-right{display:flex;align-items:center;gap:1rem;min-width:200px}.header-right{justify-content:flex-end}.header-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-green)}.header-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);color:var(--text-muted);font-weight:600;font-size:.9rem}@media(max-width:600px){.header-left,.header-right{min-width:auto}}.btn{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;font-family:inherit;padding:.75rem 1.5rem;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-subtle);transition:all .2s ease}.btn:hover{background:#222;border-color:#ffffff1a}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-green);color:#000;font-weight:600;border-color:transparent}.btn-primary:hover{background:#1ed760}.btn-small{font-size:.8rem;padding:.4rem .8rem}.btn-back{font-size:.9rem;padding:.5rem .8rem;background:transparent;border-color:transparent}.btn-back:hover{background:var(--bg-elevated)}.btn-hero{font-size:1.1rem;padding:1rem 2rem;border-radius:var(--radius);font-weight:600;width:100%;max-width:360px;letter-spacing:.01em}.btn-create{background:var(--accent-coral);color:#fff;border-color:transparent;box-shadow:var(--glow-coral)}.btn-create:hover{background:#f66;box-shadow:0 0 30px #ff4d4d80}.btn-join{background:var(--bg-elevated);border:1px solid var(--accent-cyan);color:var(--accent-cyan)}.btn-join:hover{background:#00e5ff14;box-shadow:var(--glow-cyan)}.btn-start{background:var(--accent-green);color:#000;border-color:transparent;box-shadow:0 0 20px #1db9544d}.btn-start:hover{background:#1ed760;box-shadow:0 0 30px #1db95480}.btn-error{background:var(--danger)!important;color:#fff!important;box-shadow:0 0 20px #ff4d4d4d!important}.btn-error:hover{background:#ff6b6b!important;box-shadow:0 0 30px #ff4d4d80!important}.btn-solo{background:transparent;border:1px solid var(--border-subtle);color:var(--text-muted);padding:.75rem 2rem;font-size:.95rem}.btn-solo:hover{color:var(--text-primary);border-color:#ffffff26}.btn-control{font-size:1.1rem;padding:.8rem 2rem}.loading{color:var(--text-muted);text-align:center;margin-top:4rem}.error-banner{background:#ff4d4d1a;border:1px solid rgba(255,77,77,.3);color:var(--accent-coral);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;width:100%;text-align:center}.premium-warning{display:flex;align-items:flex-start;gap:1rem;background:linear-gradient(135deg,#ffc10726,#ff98001a);border:2px solid rgba(255,193,7,.4);border-radius:12px;padding:1.25rem;margin:1rem 0;width:100%;max-width:600px;box-shadow:0 4px 12px #ffc10733}.premium-warning svg{flex-shrink:0;color:#ffc107;margin-top:.25rem}.premium-warning-content{flex:1;color:#fffffff2}.premium-warning-content strong{display:block;font-size:1.05rem;margin-bottom:.5rem;color:#ffc107}.premium-warning-content p{margin:0;font-size:.9rem;line-height:1.5;color:#fffc}.error{color:var(--danger);font-size:.9rem}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;max-width:360px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px #0006;animation:toast-enter .2s ease-out;position:relative;overflow:hidden;pointer-events:auto}.toast-exit{animation:toast-exit .2s ease-in forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-icon{display:flex;flex-shrink:0;margin-top:1px}.toast-message{flex:1;font-size:.9rem;color:var(--text-primary);line-height:1.4}.toast-dismiss{display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;color:var(--text-dim);cursor:pointer;transition:color .15s;flex-shrink:0}.toast-dismiss:hover{color:var(--text-primary)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.3;transition:width .05s linear}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 0%,var(--bg-surface) 50%,var(--bg-elevated) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;width:100%;max-width:200px}.skeleton-avatar{border-radius:50%}.skeleton-card{height:80px;width:100%;border-radius:var(--radius)}.skeleton-button{height:44px;width:120px;border-radius:var(--radius-sm)}.skeleton-playlist-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.6rem}.skeleton-playlist-img{width:100%;aspect-ratio:1;border-radius:6px}.skeleton-playlist-name{height:.9rem;width:80%}.skeleton-playlist-count{height:.7rem;width:50%}.skeleton-device-item{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.skeleton-device-icon{width:24px;height:24px;border-radius:4px}.skeleton-device-name{height:1rem;width:150px}.error-banner-enhanced{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ff4d4d1a;border:1px solid rgba(255,77,77,.3);border-radius:var(--radius);width:100%;animation:error-banner-enter .2s ease-out}@keyframes error-banner-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.error-banner-icon{display:flex;flex-shrink:0;color:var(--accent-coral)}.error-banner-message{flex:1;color:var(--accent-coral);font-size:.9rem}.error-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.error-banner-retry{padding:.4rem .8rem;background:var(--accent-coral);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.error-banner-retry:hover{background:#f66}.error-banner-dismiss{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;color:var(--accent-coral);opacity:.7;cursor:pointer;transition:opacity .15s}.error-banner-dismiss:hover{opacity:1}.app-loading,.app-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}@media(max-width:600px){.header-device-name{display:none}.header-device-btn{padding:.4rem .5rem}.header-right-group{gap:.5rem}.header-logo-text{font-size:1rem}.login-title{font-size:2.4rem}.login-features{gap:.75rem}.login-feature{padding:.875rem 1rem}.login-feature-icon{width:40px;height:40px}.login-steps{flex-direction:column;gap:.75rem}.login-step-arrow{transform:rotate(90deg)}.home-greeting-title{font-size:2rem}.device-selector,.settings-panel{padding:1rem}.toast-container{left:1rem;right:1rem;bottom:1rem;max-width:none}.game-chat{bottom:.5rem;left:.5rem;width:260px}.header-dropdown{min-width:200px}}@media(max-width:480px){#root{padding:.75rem .5rem}.header{padding:.5rem 0}.header-avatar{width:32px;height:32px}.login-page{padding:1rem 0 2rem;gap:1.5rem}.login-title{font-size:2rem}.login-subtitle{font-size:1rem}.login-feature-title{font-size:.9rem}.login-feature-desc{font-size:.8rem}.login-spotify-btn,.login-connect-btn{font-size:1rem;padding:.875rem 1.5rem}.home-page{gap:1.25rem;padding:1.5rem 0 2rem}.home-greeting-title{font-size:1.75rem}.home-card{padding:1rem 1.1rem}.home-card-icon-wrap{width:44px;height:44px}.join-input{font-size:1.1rem;padding:.625rem .75rem}.device-selector{padding:.875rem}.device-header h3{font-size:.9rem}.device-item{padding:.875rem 1rem;font-size:.9rem}.party-code-value{font-size:1.6rem}.lobby-page{gap:1rem}.settings-panel{padding:.875rem}.option-card{padding:.75rem 1rem;font-size:.9rem}.scoreboard{padding:.75rem}.scoreboard-row{font-size:.85rem}.results-page{padding-top:1rem;gap:1.5rem}.winner-name{font-size:1.6rem}.final-score-row{padding:.625rem .75rem}.playlist-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem}.playlist-card{padding:.4rem}.source-option{padding:.875rem 1rem;font-size:1rem}.album-art{width:200px;height:200px}.track-name{font-size:1.1rem}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);max-width:600px;width:90vw;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.modal-large{max-width:1100px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.modal-close:hover{background:var(--bg-surface);color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{padding:1.5rem;border-top:1px solid var(--border-subtle);display:flex;gap:1rem;justify-content:flex-end}@media(min-width:1100px){.library-settings-hint{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem;line-height:1.5}.library-stats-bar{gap:.4rem}.setting-chip-wide svg{width:14px;height:14px;opacity:.7}.setting-chip-active svg{opacity:1}.customization-panel{max-width:950px;width:95vw}.customization-section{margin-bottom:2rem}}.result-imposter-info{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem;background:#ff4d4d1a;border-left:3px solid var(--accent-primary, var(--accent-coral));border-radius:var(--radius-sm)}.imposter-theme{font-size:.85rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-weight:600}.imposter-answer{font-size:1rem;color:var(--accent-primary, var(--accent-coral));font-weight:600}.result-mixed-mode{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,var(--accent-primary, var(--accent-coral)) 0%,var(--accent-secondary, var(--accent-cyan)) 100%);color:#fff;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:.5rem}.avatar{border-radius:var(--radius-full);overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:2px solid var(--border-subtle);flex-shrink:0}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full)}.avatar-initial{font-weight:700;color:var(--text-primary);text-transform:uppercase;line-height:1}.avatar-xs .avatar-initial{font-size:.55rem}.avatar-sm .avatar-initial{font-size:.7rem}.avatar-md .avatar-initial{font-size:.85rem}.avatar-lg .avatar-initial{font-size:1.1rem}.avatar-xl .avatar-initial{font-size:1.5rem}.logo{display:flex;align-items:center;gap:.5rem}.logo-sm{gap:.5rem}.logo-lg{flex-direction:column;gap:1rem;text-align:center}.logo-icon{color:var(--accent-primary, var(--accent-cyan));display:flex;align-items:center}.logo-text{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.logo-text-short{display:none}.logo-text-full{display:inline}@media(max-width:600px){.logo-text-full{display:none}.logo-text-short{display:inline}}.logo-title{font-size:var(--text-3xl);font-weight:800;background:linear-gradient(135deg,var(--accent-primary, var(--accent-coral)),var(--accent-secondary, var(--accent-cyan)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
