:root{--bg: #0a0a12;--bg2: #10101e;--bg3: #16162a;--card: #1a1a2e;--card2: #1f1f38;--border: rgba(255, 255, 255, .07);--border2: rgba(255, 255, 255, .13);--text: #f0f0ff;--muted: rgba(240, 240, 255, .5);--muted2: rgba(240, 240, 255, .25);--accent: #e040fb;--accent2: #7c4dff;--gold: #ffd740;--teal: #00e5cc;--pink: #ff4081;--green: #69f0ae;--red: #ff5252;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--r: 16px;--r2: 24px;--bottom-nav-height: 104px;--bottom-nav-safe: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px))}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;overflow:hidden}#app{width:100%;max-width:430px;height:100vh;height:100dvh;margin:0 auto;position:relative;overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.app-stage{flex:1;min-height:0;position:relative;overflow:hidden}.screen{position:absolute;top:0;left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;display:none;flex-direction:column;background:var(--bg);scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.screen.active{display:flex;z-index:2}.screen{z-index:1;opacity:0;transform:translate(30px);transition:none}.screen.active{opacity:1;transform:translate(0);animation:slideIn .35s cubic-bezier(.4,0,.2,1) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 20px;border-radius:var(--r);font-family:var(--font-display);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .2s;letter-spacing:.3px}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 24px #e040fb59}.btn-primary:hover{box-shadow:0 6px 32px #e040fb80}.btn-secondary{background:var(--card2);color:var(--text);border:1px solid var(--border2)}.btn-secondary:hover{background:var(--bg3)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-teal{background:linear-gradient(135deg,var(--teal),#00b8d4);color:#001a1a;box-shadow:0 4px 24px #00e5cc4d}.btn-danger{background:linear-gradient(135deg,var(--pink),#f50057);color:#fff;box-shadow:0 4px 24px #ff40814d}.input-field{width:100%;padding:14px 16px;border-radius:var(--r);background:var(--card2);border:1px solid var(--border);color:var(--text);font-family:var(--font-body);font-size:15px;outline:none;transition:border-color .2s}.input-field::placeholder{color:var(--muted2)}.input-field:focus{border-color:var(--accent)}.label{font-size:12px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}.back-btn{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;cursor:pointer;background:none;border:none;font-family:var(--font-body);padding:8px 0}.back-btn:hover{color:var(--text)}.back-btn svg{width:18px;height:18px}#home{position:relative;overflow:hidden}.home-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse 80% 50% at 50% 30%,rgba(124,77,255,.25) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 20% 70%,rgba(224,64,251,.15) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(0,229,204,.1) 0%,transparent 60%);animation:bgPulse 6s ease-in-out infinite alternate}@keyframes bgPulse{0%{opacity:.8}to{opacity:1}}.stars{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.star{position:absolute;background:#fff;border-radius:50%;animation:twinkle var(--d, 3s) ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.1;transform:scale(1)}50%{opacity:.8;transform:scale(1.3)}}.home-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:100vh;padding:80px 28px 48px}.logo-area{text-align:center}.logo-icon{width:80px;height:80px;border-radius:24px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 0 60px #e040fb80,0 0 120px #7c4dff4d;animation:logoFloat 4s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.logo-icon svg{width:44px;height:44px}.logo-text{font-family:var(--font-display);font-size:36px;font-weight:800;background:linear-gradient(135deg,#fff 30%,var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-1px}.logo-sub{color:var(--muted);font-size:14px;margin-top:6px;letter-spacing:.5px}.home-visual{display:flex;align-items:center;margin:20px 0}.flag-bubble{width:48px;height:48px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--card);margin-left:-10px;animation:bubblePop .5s ease-out var(--delay, 0s) both}@keyframes bubblePop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.home-buttons{width:100%;display:flex;flex-direction:column;gap:12px}.live-badge{display:inline-flex;align-items:center;gap:6px;background:#ff408126;border:1px solid rgba(255,64,129,.3);color:var(--pink);border-radius:100px;padding:6px 14px;font-size:12px;font-weight:600;letter-spacing:1px;margin-bottom:12px}.live-dot{width:6px;height:6px;background:var(--pink);border-radius:50%;animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.auth-screen{padding:56px 28px 40px}.auth-header{margin-bottom:36px}.auth-title{font-family:var(--font-display);font-size:28px;font-weight:800;margin-bottom:8px}.auth-sub{color:var(--muted);font-size:15px;line-height:1.5}.field-group{margin-bottom:16px}.avatar-pick{display:flex;gap:12px;margin-top:8px}.avatar-opt{width:48px;height:48px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;transition:all .2s;background:var(--card2)}.avatar-opt.selected{border-color:var(--accent);box-shadow:0 0 16px #e040fb66}.divider{display:flex;align-items:center;gap:12px;margin:20px 0}.divider-line{flex:1;height:1px;background:var(--border)}.divider span{color:var(--muted2);font-size:13px}.auth-switch{text-align:center;margin-top:24px;color:var(--muted);font-size:14px}.auth-switch a,.auth-link{color:var(--accent);cursor:pointer;font-weight:500;background:none;border:none;padding:0;font-family:inherit;font-size:inherit}.auth-link:hover{text-decoration:underline}.auth-error{color:var(--red);font-size:13px;margin-top:8px;display:none}.empty-hint{color:var(--muted);font-size:14px;padding:0 24px 12px}#vote-section.vote-locked .vote-btn{pointer-events:none;opacity:.4}.dash-header{padding:56px 24px 20px;background:linear-gradient(180deg,rgba(124,77,255,.12) 0%,transparent 100%)}.dash-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.btn-logout{flex-shrink:0;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r);background:transparent;color:var(--muted);font-family:var(--font-body);font-size:12px;font-weight:500;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.btn-logout:hover{color:var(--text);border-color:var(--border2);background:var(--card2)}.dash-greeting{color:var(--muted);font-size:14px;margin-bottom:4px}.dash-name{font-family:var(--font-display);font-size:26px;font-weight:800}.dash-live-banner{margin:0 20px;padding:16px 20px;border-radius:var(--r2);background:linear-gradient(135deg,#ff408133,#7c4dff33);border:1px solid rgba(255,64,129,.3);display:flex;align-items:center;justify-content:space-between}.dash-live-text{font-family:var(--font-display);font-size:15px;font-weight:700}.dash-live-sub{color:var(--muted);font-size:12px;margin-top:2px}.section-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 12px}.section-title{font-family:var(--font-display);font-size:18px;font-weight:700}.section-action{color:var(--accent);font-size:13px;cursor:pointer}.lobby-card{margin:0 20px 12px;display:flex;align-items:stretch;gap:8px;background:var(--card);border-radius:var(--r2);border:1px solid var(--border);padding:12px 12px 12px 20px;transition:all .2s}.lobby-card:hover{border-color:var(--border2);transform:translateY(-2px)}.lobby-card-body{flex:1;min-width:0;cursor:pointer;padding:4px 0}.lobby-meta--action{margin-top:6px;font-size:12px;font-weight:600;color:var(--accent)}.lobby-delete-btn{flex-shrink:0;align-self:center;width:40px;height:40px;border:1px solid var(--border);border-radius:var(--r1);background:transparent;color:var(--muted);font-size:16px;cursor:pointer;transition:all .2s}.lobby-delete-btn:hover{border-color:#ff408166;color:var(--pink);background:#ff408114}.lobby-card-top{display:flex;justify-content:space-between;align-items:flex-start}.lobby-card-name{font-family:var(--font-display);font-size:16px;font-weight:700}.lobby-badge{padding:4px 10px;border-radius:100px;font-size:11px;font-weight:600;letter-spacing:.5px}.badge-live{background:#ff408126;color:var(--pink);border:1px solid rgba(255,64,129,.3)}.badge-wait{background:#ffd7401a;color:var(--gold);border:1px solid rgba(255,215,64,.2)}.badge-done{background:#69f0ae1a;color:var(--green);border:1px solid rgba(105,240,174,.2)}.lobby-meta{color:var(--muted);font-size:13px;margin-top:8px}.quick-actions{display:flex;gap:12px;padding:0 20px 16px}.quick-btn{flex:1;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--border);background:var(--card);cursor:pointer;text-align:center;transition:all .2s;font:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}button.quick-btn{display:block;width:100%}.quick-btn:hover{border-color:var(--border2)}.quick-btn-icon{font-size:24px;margin-bottom:6px}.quick-btn-label{font-size:13px;font-weight:500;color:var(--muted)}.create-screen{padding:56px 24px 40px}.code-box{background:var(--card2);border-radius:var(--r);border:1px solid var(--border2);padding:20px;text-align:center;margin:8px 0}.invite-code{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:8px;color:var(--accent)}.code-hint{color:var(--muted);font-size:12px;margin-top:6px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--card2);border-radius:var(--r);border:1px solid var(--border)}.toggle-info{font-size:15px}.toggle-sub{color:var(--muted);font-size:12px;margin-top:2px}.toggle-switch{width:44px;height:24px;background:var(--border2);border-radius:100px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-switch.on{background:var(--accent)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s}.toggle-switch.on:after{left:22px}.waiting-bg{background:radial-gradient(ellipse 100% 40% at 50% 0%,rgba(124,77,255,.15) 0%,transparent 60%)}.waiting-header{padding:56px 24px 20px}.waiting-title{font-family:var(--font-display);font-size:24px;font-weight:800;margin-bottom:4px}.participants-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 24px}.participant{display:flex;flex-direction:column;align-items:center;gap:8px;animation:participantIn .4s ease-out both}@keyframes participantIn{0%{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.participant-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;position:relative;border:2px solid var(--border2)}.participant-avatar.ready{border-color:var(--green);box-shadow:0 0 16px #69f0ae4d}.participant-ready-dot{position:absolute;bottom:0;right:0;width:14px;height:14px;border-radius:50%;background:var(--green);border:2px solid var(--bg)}.participant-name{font-size:11px;color:var(--muted);text-align:center}.waiting-actions{padding:16px 20px;display:flex;flex-direction:column;gap:10px}.waiting-start-btn{background:linear-gradient(135deg,var(--green),#00c853);color:#001a0a;font-weight:700;border:none;width:100%}.waiting-start-btn:hover:not(:disabled){filter:brightness(1.08)}.waiting-start-btn--disabled,.waiting-start-btn:disabled{opacity:.45;cursor:not-allowed}.ready-status{text-align:center;color:var(--muted);font-size:13px}.waiting-invite{margin:0 24px;padding:16px 20px;border-radius:var(--r2);background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.invite-label{color:var(--muted);font-size:12px;margin-bottom:4px}.invite-code-sm{font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:4px;color:var(--accent)}.copy-btn{width:36px;height:36px;border-radius:10px;background:var(--card2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}.mini-chat{margin:16px 24px;border-radius:var(--r2);background:var(--card);border:1px solid var(--border);overflow:hidden}.chat-msgs{padding:12px 16px;max-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.chat-msg{display:flex;gap:8px;align-items:flex-start}.chat-sender{font-size:12px;font-weight:600;color:var(--accent);flex-shrink:0}.chat-text{font-size:12px;color:var(--muted)}.chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.chat-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;font-family:var(--font-body)}.chat-input-row input::placeholder{color:var(--muted2)}.chat-send{width:28px;height:28px;border-radius:8px;background:var(--accent);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vote-screen{background:var(--bg)}.vote-header{padding:20px 20px 0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.vote-body{flex:1;display:flex;flex-direction:column;min-height:0}.performance-num{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.5px}.lobby-members{display:flex;gap:0;flex-shrink:0}.member-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg);font-size:14px;display:flex;align-items:center;justify-content:center;background:var(--card2);margin-left:-6px}.country-card{margin:16px 20px;border-radius:var(--r2);background:linear-gradient(135deg,var(--card),var(--card2));border:1px solid var(--border2);overflow:hidden;position:relative}.country-inner{padding:20px;display:flex;align-items:center;gap:16px}.country-flag{flex-shrink:0;width:80px;min-height:60px;display:flex;align-items:center;justify-content:center}.flag-icon{display:block;border-radius:6px;object-fit:cover;box-shadow:0 2px 8px #00000059;background:#00000026}.flag-fallback{display:block;border-radius:6px;background:linear-gradient(135deg,var(--card2),rgba(255,255,255,.08));box-shadow:0 2px 8px #0003}.country-flag.flag-fallback,.country-flag .flag-fallback,.flag-icon--lg{width:80px;height:60px}.flag-icon--rank{width:48px;height:36px}.flag-icon--podium{width:56px;height:42px}.flag-icon--admin,.flag-icon--admin-sm{width:40px;height:30px}.flag-icon--score{width:56px;height:42px}.flag-icon--inline{width:32px;height:24px;vertical-align:middle;display:inline-block;margin-right:6px}.rank-flag,.podium-flag,.admin-perf-flag-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0}#results-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#admin-perf-flag{display:flex;align-items:center}.country-info{flex:1}.country-name{font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:-.5px}.artist-name{color:var(--muted);font-size:14px;margin-top:2px}.song-name{color:var(--accent);font-size:13px;margin-top:2px;font-style:italic}.timer-area{padding:0 20px}.timer-display{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.timer-label{color:var(--muted);font-size:12px;letter-spacing:.5px}.timer-value{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--text)}.timer-value.warning{color:var(--gold);animation:timerWarn .5s ease-in-out infinite alternate}.timer-value.danger{color:var(--red);animation:timerWarn .3s ease-in-out infinite alternate}@keyframes timerWarn{0%{opacity:1}to{opacity:.6}}.progress-bar{height:6px;background:var(--card2);border-radius:100px;overflow:hidden}.progress-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--accent2),var(--accent),var(--teal));transition:width 1s linear;box-shadow:0 0 12px #e040fb80}.progress-fill.warning{background:linear-gradient(90deg,var(--gold),#ff9800)}.progress-fill.danger{background:var(--red);box-shadow:0 0 16px #ff525299}.vote-buttons{padding:20px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.vote-btn{aspect-ratio:1;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:var(--font-display);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.vote-btn:hover{border-color:var(--border2);transform:scale(1.08)}.vote-btn.neg{color:var(--red)}.vote-btn.neutral{color:var(--muted)}.vote-btn.pos{color:var(--green)}.vote-btn.selected.neg{background:#ff525233;border-color:var(--red);box-shadow:0 0 16px #ff52524d;transform:scale(1.15)}.vote-btn.selected.neutral{background:var(--card2);border-color:var(--border2);transform:scale(1.15)}.vote-btn.selected.pos{background:#69f0ae26;border-color:var(--green);box-shadow:0 0 16px #69f0ae4d;transform:scale(1.15)}.vote-confirmed{margin:0 20px;padding:20px;border-radius:var(--r2);background:#69f0ae14;border:1px solid rgba(105,240,174,.2);text-align:center;display:none}.vote-confirmed.show{display:block;animation:confirmPop .4s cubic-bezier(.4,0,.2,1)}@keyframes confirmPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.vote-confirmed-icon{font-size:32px;margin-bottom:8px}.vote-confirmed-text{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--green)}.vote-confirmed-sub{color:var(--muted);font-size:13px;margin-top:4px}.reveal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:none;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:40px 0 32px;animation:revealIn .5s ease-out}@keyframes revealIn{0%{opacity:0}to{opacity:1}}.reveal-overlay.active{display:flex}.reveal-title{font-family:var(--font-display);font-size:32px;font-weight:800;text-align:center;background:linear-gradient(135deg,var(--gold),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.reveal-sub{color:var(--muted);font-size:15px;margin-bottom:24px;text-align:center;padding:0 20px}.vote-reveal-list{width:100%;max-width:360px;display:flex;flex-direction:column;gap:10px;padding:0 20px;flex-shrink:0}.reveal-empty{color:var(--muted);font-size:14px;text-align:center;padding:16px 20px}.vote-reveal-item{display:flex;align-items:center;justify-content:space-between;background:var(--card);border-radius:var(--r);border:1px solid var(--border);padding:12px 16px;animation:revealSlide .5s ease-out both}@keyframes revealSlide{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.reveal-user{display:flex;align-items:center;gap:10px}.reveal-avatar{font-size:20px}.reveal-name{font-size:14px;font-weight:500}.reveal-score{font-family:var(--font-display);font-size:22px;font-weight:800}.reveal-score.pos{color:var(--green)}.reveal-score.neg{color:var(--red)}.reveal-score.zero{color:var(--muted)}.reveal-score.pending{font-size:13px;font-weight:600;color:var(--muted2)}.vote-reveal-item--pending{opacity:.65;border-style:dashed}.reveal-avg{margin-top:24px;text-align:center;padding:16px 32px;background:linear-gradient(135deg,#e040fb26,#7c4dff26);border-radius:var(--r2);border:1px solid rgba(224,64,251,.2);width:100%;max-width:300px}.reveal-avg-label{color:var(--muted);font-size:13px;margin-bottom:4px}.reveal-avg-val{font-family:var(--font-display);font-size:40px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.results-screen{display:flex;flex-direction:column;overflow:hidden}.results-screen .results-header{flex-shrink:0}.results-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:24px}.results-header{padding:56px 24px 20px;background:linear-gradient(180deg,rgba(224,64,251,.1) 0%,transparent 100%)}.results-title{font-family:var(--font-display);font-size:28px;font-weight:800;margin-bottom:4px}.score-card{margin:0 20px 16px;padding:20px;border-radius:var(--r2);background:linear-gradient(135deg,#e040fb1f,#7c4dff1f);border:1px solid rgba(224,64,251,.2);text-align:center}.score-label{color:var(--muted);font-size:13px;margin-bottom:6px}.score-big{font-family:var(--font-display);font-size:48px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.score-flag{font-size:24px}.vote-dist{margin:0 20px 16px}.results-actions{margin-bottom:8px}.results-actions .btn{width:100%}.dist-title{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--muted)}.dist-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dist-label{width:24px;text-align:right;font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--muted)}.dist-bar{flex:1;height:8px;background:var(--card2);border-radius:100px;overflow:hidden}.dist-fill{height:100%;border-radius:100px;transition:width 1s cubic-bezier(.4,0,.2,1)}.dist-count{width:20px;font-size:12px;color:var(--muted2)}.ranking-list{padding:0 20px}.ranking-item{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:var(--r);background:var(--card);border:1px solid var(--border);margin-bottom:8px}.rank-num{width:24px;font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--muted);text-align:center}.rank-num.gold{color:#ffd740}.rank-num.silver{color:#b0bec5}.rank-num.bronze{color:#a1887f}.rank-flag{width:52px}.rank-country{flex:1;font-size:15px;font-weight:500}.rank-score{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--accent)}.rank-votes-muted{font-size:12px;font-weight:400;color:var(--muted2)}.screen.final-screen{overflow:hidden;background:var(--bg)}.screen.final-screen.active{transform:none;animation:none;display:flex;flex-direction:column}.final-content{position:relative;z-index:2;flex:1;min-height:0;width:100%;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding-bottom:24px;box-sizing:border-box}.screen.export-screen.active{overflow:hidden;display:flex;flex-direction:column}.export-body{flex:1;min-height:0;width:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding:56px 24px 24px;box-sizing:border-box}.export-actions-bottom{margin-bottom:8px}.export-bottom-spacer{flex-shrink:0;height:calc(32px + env(safe-area-inset-bottom,0px));width:100%;pointer-events:none}.prediction-block,#prediction-block{margin:0 20px 28px;padding:24px 20px 28px;border-radius:var(--r2);background:#ffd7400f;border:1px solid rgba(255,215,64,.22);box-sizing:border-box}.prediction-recap-btn{width:100%;margin:0 0 16px;padding:12px 16px;font-size:13px;border-color:#ffd74059;color:var(--gold)}.prediction-recap-btn:hover{border-color:#ffd7408c;background:#ffd74014}.prediction-title{font-family:var(--font-display);font-size:16px;font-weight:800;margin:0 0 10px}.prediction-hint{font-size:12px;color:var(--muted2);margin:0 0 16px;line-height:1.45}.prediction-block .input-field{margin-bottom:4px}.prediction-save-btn{width:100%;margin-top:16px}.final-content>.user-prediction-section:first-child,.final-content>.user-winner-section:first-child{padding-top:56px}.user-prediction-section{position:relative;z-index:2;padding:0 24px 8px;text-align:center}.user-prediction-heading{font-family:var(--font-display);font-size:22px;font-weight:800;margin:0 0 12px;color:var(--gold)}.user-prediction-text{font-family:var(--font-display);font-size:26px;font-weight:800;margin:0;line-height:1.2}.user-prediction-result{margin:12px 0 0;font-size:14px;color:var(--muted)}.user-prediction-result--ok{color:var(--gold);font-weight:600}.final-actions{display:flex;flex-direction:column;gap:10px;padding:20px 20px 8px;margin-top:8px}.final-ranking-header{padding-top:56px}.final-top10{margin:0 0 20px;flex-shrink:0}.final-compact-header{padding-top:12px;padding-bottom:8px}#final-ranking-compact,.final-ranking-compact{padding:0 20px;margin:0;min-height:0;overflow:visible}#final-ranking-compact .ranking-item,.final-ranking-compact .ranking-item{margin-bottom:8px}#final-ranking-compact .ranking-item:last-child,.final-ranking-compact .ranking-item:last-child{margin-bottom:0}.final-ranking-empty{text-align:center;color:var(--muted);font-size:14px;margin:16px 20px 0}.podium-item--compact .podium-block{height:64px;width:72px;font-size:20px}.final-content .section-header{padding-top:8px}.final-content .ranking-list:not(.final-ranking-compact){padding-bottom:24px}.confetti-area{position:absolute;top:0;left:0;right:0;height:300px;overflow:hidden;pointer-events:none;z-index:1}.confetti-piece{position:absolute;width:8px;height:8px;animation:confettiFall var(--d) ease-in var(--delay) infinite;border-radius:2px}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(320px) rotate(720deg);opacity:0}}.user-winner-section{position:relative;z-index:2;padding:24px 24px 8px;text-align:center}.user-winner-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}.user-winner-heading{font-family:var(--font-display);font-size:28px;font-weight:800;margin:0 0 20px;background:linear-gradient(135deg,var(--gold),#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.user-winner-card{display:flex;align-items:center;gap:18px;text-align:left;margin:0 auto;max-width:420px;padding:18px 20px;border-radius:var(--r2);background:linear-gradient(135deg,#ffd7401f,#e040fb14);border:1px solid rgba(255,215,64,.35);box-shadow:0 8px 32px #00000040}.user-winner-flag{flex-shrink:0;width:96px;min-height:72px;display:flex;align-items:center;justify-content:center}.user-winner-flag .flag-icon--lg{width:96px;height:72px}.user-winner-details{flex:1;min-width:0}.user-winner-country{font-family:var(--font-display);font-size:22px;font-weight:800;line-height:1.15}.user-winner-artist{color:var(--muted);font-size:14px;margin-top:4px}.user-winner-song{color:var(--accent);font-size:13px;font-style:italic;margin-top:6px}.user-winner-your-score{display:inline-block;margin-top:10px;font-family:var(--font-display);font-size:15px;font-weight:700}.user-winner-your-score.pos{color:var(--green)}.user-winner-your-score.neg{color:var(--red)}.user-winner-your-score.zero{color:var(--muted)}.user-winner-agree{margin:14px 0 0;font-size:13px;font-weight:700;color:var(--gold)}.user-winner-caption{margin:12px 0 0;font-size:12px;color:var(--muted2)}.final-general-divider{display:flex;align-items:center;gap:12px;margin:28px 20px 0;color:var(--muted2);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.final-general-divider:before,.final-general-divider:after{content:"";flex:1;height:1px;background:var(--border2)}.podium-area{position:relative;z-index:2;padding:8px 12px 16px;margin:0;text-align:center;max-width:100%;box-sizing:border-box}.final-title{font-family:var(--font-display);font-size:32px;font-weight:800;background:linear-gradient(135deg,var(--gold),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px}.podium-row{display:flex;align-items:flex-end;justify-content:center;gap:clamp(4px,2vw,10px);margin:8px 0 0;padding:0;max-width:100%;box-sizing:border-box}.podium-item{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;flex:1 1 0;min-width:0;max-width:120px}.podium-flag{flex-shrink:0}.final-content .flag-icon--podium{width:clamp(36px,11vw,52px);height:clamp(27px,8vw,39px)}.podium-country{font-family:var(--font-display);font-size:13px;font-weight:700}.podium-score{color:var(--muted);font-size:12px}.podium-block{border-radius:10px 10px 0 0;width:100%;max-width:88px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:clamp(18px,5vw,24px);font-weight:900;flex-shrink:0}.podium-1{background:linear-gradient(180deg,#ffd740,#ff9800);height:clamp(56px,16vw,88px);color:#fff}.podium-2{background:linear-gradient(180deg,#b0bec5,#78909c);height:clamp(44px,12vw,64px);color:#fff}.podium-3{background:linear-gradient(180deg,#a1887f,#795548);height:clamp(32px,9vw,48px);color:#fff}.final-content .stats-grid{padding:0 20px 8px;margin:0 0 16px;flex-shrink:0}.final-content .final-actions{flex-shrink:0;margin-bottom:8px}.final-scroll-end{flex-shrink:0;height:16px;width:100%;pointer-events:none}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px 16px}.stat-card{background:var(--card);border-radius:var(--r);border:1px solid var(--border);padding:14px 16px}.stat-emoji{font-size:20px;margin-bottom:6px}.stat-title{font-size:11px;color:var(--muted);letter-spacing:.5px;margin-bottom:4px}.stat-val{font-family:var(--font-display);font-size:16px;font-weight:700}.admin-header{padding:56px 24px 20px;background:linear-gradient(180deg,rgba(255,215,64,.08) 0%,transparent 100%);display:flex;align-items:center;justify-content:space-between}.admin-badge{padding:4px 12px;border-radius:100px;background:#ffd74026;color:var(--gold);border:1px solid rgba(255,215,64,.3);font-size:11px;font-weight:600;letter-spacing:1px}.admin-perf-card{margin:0 20px 16px;padding:20px;border-radius:var(--r2);background:var(--card);border:1px solid var(--border)}.admin-perf-top{display:flex;align-items:center;gap:16px;margin-bottom:16px}.admin-perf-flag{font-size:40px}.admin-controls{display:flex;gap:10px}.admin-btn{flex:1;padding:12px;border-radius:var(--r);font-family:var(--font-display);font-size:13px;font-weight:700;cursor:pointer;border:none;text-align:center;transition:all .2s}.admin-btn:active{transform:scale(.95)}.admin-start{background:linear-gradient(135deg,var(--green),#00c853);color:#001a0a}.admin-next{background:var(--card2);color:var(--text);border:1px solid var(--border2)}.admin-stop{background:#ff525226;color:var(--red);border:1px solid rgba(255,82,82,.3)}.admin-perf-list{padding:0 20px;display:flex;flex-direction:column;gap:8px}.admin-perf-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--card);border-radius:var(--r);border:1px solid var(--border);cursor:pointer;transition:all .2s}.admin-perf-item:hover{border-color:var(--border2)}.admin-perf-item.current{border-color:var(--accent);background:#e040fb14}.admin-perf-order{width:24px;height:24px;border-radius:8px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:12px;font-weight:700}.bottom-nav{position:relative;flex-shrink:0;width:100%;box-sizing:border-box;background:#0a0a12e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);padding:12px 0 calc(16px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-around;align-items:flex-end;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--muted2);transition:color .2s;font-size:11px;font-weight:500;padding:4px 16px;border-radius:12px}.nav-item.active{color:var(--accent)}.nav-item--disabled{opacity:.35;pointer-events:none;cursor:default}.nav-icon{font-size:22px;line-height:1}.spacer{height:100px}.page-pad{padding:0 20px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-8{margin-top:8px}.particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.particle{position:absolute;border-radius:50%;animation:particleDrift var(--d) ease-in-out infinite alternate}@keyframes particleDrift{0%{transform:translate(0) rotate(0);opacity:.3}to{transform:translate(var(--tx),var(--ty)) rotate(180deg);opacity:.7}}.recap-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1150;display:none;align-items:center;justify-content:center;padding:16px}.recap-modal.active{display:flex}.recap-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.recap-modal-panel{position:relative;width:100%;max-width:400px;max-height:min(88vh,640px);display:flex;flex-direction:column;padding:20px 18px 18px;border-radius:var(--r2);background:var(--card);border:1px solid var(--border2);box-shadow:0 24px 64px #0000008c;animation:confirmIn .25s ease-out}.recap-modal-title{font-family:var(--font-display);font-size:20px;font-weight:800;margin-bottom:6px;flex-shrink:0}.recap-modal-sub{color:var(--muted);font-size:13px;line-height:1.45;margin:0 0 14px;flex-shrink:0}.recap-modal-list{flex:1;min-height:0;overflow-y:auto;margin:0 -4px 14px;padding:0 4px;-webkit-overflow-scrolling:touch}.recap-row{border-radius:var(--r);border:1px solid var(--border);background:var(--card2);margin-bottom:8px;overflow:hidden}.recap-row-main{display:flex;align-items:center;gap:10px;padding:10px 12px}.recap-order{flex-shrink:0;width:22px;font-family:var(--font-display);font-size:12px;font-weight:800;color:var(--muted2);text-align:center}.recap-meta{flex:1;min-width:0}.recap-artist{font-size:14px;font-weight:600;line-height:1.2}.recap-song{font-size:12px;color:var(--accent);margin-top:2px;line-height:1.25}.recap-country{font-size:11px;color:var(--muted2);margin-top:2px}.recap-score-pill{flex-shrink:0;min-width:40px;padding:6px 10px;border-radius:10px;border:1px solid var(--border2);background:var(--bg3);font-family:var(--font-display);font-size:14px;font-weight:800;cursor:pointer;transition:border-color .15s,transform .15s}.recap-score-pill:hover{border-color:var(--accent);transform:scale(1.04)}.recap-score-pill.pos{color:var(--green);border-color:#69f0ae59}.recap-score-pill.neg{color:var(--red);border-color:#ff525259}.recap-score-pill.zero{color:var(--muted)}.recap-row-edit{padding:0 10px 10px;border-top:1px solid var(--border)}.recap-row-edit[hidden]{display:none}.recap-vote-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px}.recap-vote-btn{aspect-ratio:1;min-height:32px;border-radius:8px;font-size:11px;padding:0}.recap-modal-continue{flex-shrink:0;width:100%}.confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:24px}.confirm-modal.active{display:flex}.confirm-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-modal-panel{position:relative;width:100%;max-width:360px;padding:24px;border-radius:var(--r2);background:var(--card);border:1px solid var(--border2);box-shadow:0 24px 64px #00000080;animation:confirmIn .25s ease-out}@keyframes confirmIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-modal-title{font-family:var(--font-display);font-size:20px;font-weight:800;margin-bottom:12px}.confirm-modal-message{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 24px}.confirm-modal-actions{display:flex;gap:10px}.confirm-modal-actions .btn{flex:1;padding:14px 16px;font-size:14px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:var(--card2);border:1px solid var(--border2);padding:12px 20px;border-radius:100px;font-size:14px;font-weight:500;z-index:1000;opacity:0;transition:opacity .3s;white-space:nowrap}.toast.show{opacity:1}
