:root{--bg-primary:#060a13;--bg-secondary:#0c1220;--bg-card:#0c1220d9;--bg-card-hover:#121a2ce6;--border-color:#ffffff0f;--glass-border:#ffffff14;--team1-color:#3b9eff;--team1-light:#60b3ff;--team1-dark:#1a4a8a;--team1-glow:#3b9eff80;--team1-bg:#3b9eff0f;--team1-gradient:linear-gradient(135deg, #1a4a8a, #3b9eff);--team2-color:#ff3b5c;--team2-light:#ff6080;--team2-dark:#8a1a2e;--team2-glow:#ff3b5c80;--team2-bg:#ff3b5c0f;--team2-gradient:linear-gradient(135deg, #8a1a2e, #ff3b5c);--accent-green:#00e676;--accent-yellow:#ffea00;--accent-red:#ff3b5c;--accent-cyan:#00e5ff;--text-primary:#eef0f6;--text-secondary:#8a8fa8;--text-muted:#4a4f65;--transition-fast:.15s ease;--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 20%,#3b9eff0a 0%,#0000 60%),radial-gradient(at 80%,#ff3b5c0a 0%,#0000 60%),linear-gradient(#ffffff03 1px,#0000 1px),linear-gradient(90deg,#ffffff03 1px,#0000 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px;min-height:100vh;font-family:-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;overflow-x:hidden}#app{min-height:100vh}.bp-container{max-width:1100px;min-height:100vh;margin:0 auto;padding:16px}.bp-header{text-align:center;padding:28px 0 18px}.bp-header h1{letter-spacing:8px;background:linear-gradient(90deg, var(--team1-color) 0%, #fff 50%, var(--team2-color) 100%);-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 20px #3b9eff4d)drop-shadow(0 0 20px #ff3b5c4d);-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:900}.bp-header .subtitle{color:var(--text-muted);letter-spacing:3px;text-transform:uppercase;margin-top:8px;font-size:12px;font-weight:600}.bp-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);transition:var(--transition-normal);border-radius:12px;margin-bottom:16px;padding:22px}.bp-card:hover{border-color:#ffffff1f;box-shadow:0 8px 32px #0000004d}.bp-btn{cursor:pointer;transition:var(--transition-fast);letter-spacing:1px;text-transform:uppercase;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;padding:12px 32px;font-size:14px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.bp-btn:before{content:"";pointer-events:none;background:linear-gradient(#ffffff1a 0%,#0000 50%);position:absolute;inset:0}.bp-btn:active:not(:disabled){transform:scale(.97)}.bp-btn:disabled{opacity:.4;cursor:not-allowed}.bp-btn-primary{background:var(--team1-gradient);color:#fff;box-shadow:0 4px 20px var(--team1-glow)}.bp-btn-primary:hover:not(:disabled){box-shadow:0 6px 30px var(--team1-glow);transform:translateY(-1px)}.bp-btn-danger{background:var(--team2-gradient);color:#fff;box-shadow:0 4px 20px var(--team2-glow)}.bp-btn-danger:hover:not(:disabled){box-shadow:0 6px 30px var(--team2-glow);transform:translateY(-1px)}.bp-btn-success{background:linear-gradient(135deg, #00a854, var(--accent-green));color:#000;box-shadow:0 4px 20px #00e6764d}.bp-btn-success:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 30px #00e67680}.bp-btn-ghost{border:1px solid var(--glass-border);color:var(--text-secondary);background:#ffffff0a}.bp-btn-ghost:hover:not(:disabled){color:#fff;background:#ffffff14}.team-label{letter-spacing:.5px;border-radius:6px;padding:4px 14px;font-size:12px;font-weight:700;display:inline-block}.team-label.team1{background:var(--team1-bg);color:var(--team1-color);border:1px solid #3b9eff40;box-shadow:0 0 10px #3b9eff1a}.team-label.team2{background:var(--team2-bg);color:var(--team2-color);border:1px solid #ff3b5c40;box-shadow:0 0 10px #ff3b5c1a}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.online{background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.status-dot.offline{background:var(--text-muted)}.loading-spinner{border:3px solid #ffffff14;border-top-color:var(--team1-color);border-right-color:var(--team2-color);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite espin;display:inline-block}@keyframes espin{to{transform:rotate(360deg)}}.loading-page{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.loading-page .loading-spinner{width:40px;height:40px}.character-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin:14px 0;display:grid}.character-card{background:var(--bg-secondary);text-align:center;cursor:pointer;transition:var(--transition-normal);border:2px solid #ffffff0d;border-radius:10px;padding:8px;position:relative;overflow:hidden}.character-card:before{content:"";pointer-events:none;background:linear-gradient(#ffffff08 0%,#0000 40%);border-radius:8px;position:absolute;inset:0}.character-card:hover:not(.disabled):not(.banned){border-color:var(--accent-cyan);transform:translateY(-3px);box-shadow:0 8px 25px #00e5ff26}.character-card.selected{border-color:var(--team1-color);box-shadow:0 0 0 1px var(--team1-color), 0 0 25px var(--team1-glow), inset 0 0 20px #3b9eff14;animation:2s infinite card-glow}@keyframes card-glow{0%,to{box-shadow:0 0 0 1px var(--team1-color), 0 0 20px var(--team1-glow)}50%{box-shadow:0 0 0 1px var(--team1-color), 0 0 35px var(--team1-glow)}}.character-card.banned{opacity:.3;cursor:not-allowed;border-color:#ff3b5c66}.character-card.banned:after{content:"BANNED";color:#fff;letter-spacing:3px;background:linear-gradient(135deg,#ff1432e6,#c8001ee6);border-radius:3px;padding:3px 12px;font-size:10px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-12deg);box-shadow:0 0 15px #ff3b5c80}.character-card.disabled{opacity:.4;cursor:not-allowed}.character-card .char-image{object-fit:cover;background:var(--bg-primary);border:1px solid #ffffff0f;border-radius:8px;width:80px;height:80px;margin:0 auto 6px;display:block}.character-card .char-image.placeholder{color:var(--text-muted);justify-content:center;align-items:center;font-size:26px;display:flex}.character-card .char-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.countdown-bar{background:#ffffff0a;border-radius:2px;height:4px;margin:10px 0;overflow:hidden}.countdown-bar .bar-fill{border-radius:2px;height:100%;transition:width 1s linear}.countdown-bar .bar-fill.safe{background:var(--accent-green);box-shadow:0 0 10px #00e67666}.countdown-bar .bar-fill.warning{background:var(--accent-yellow);box-shadow:0 0 10px #ffea0066}.countdown-bar .bar-fill.danger{background:var(--accent-red);box-shadow:0 0 10px #ff3b5c66}.countdown-text{text-align:center;font-variant-numeric:tabular-nums;font-size:36px;font-weight:900}.countdown-text.safe{color:var(--accent-green);text-shadow:0 0 20px #00e6764d}.countdown-text.warning{color:var(--accent-yellow);text-shadow:0 0 20px #ffea004d}.countdown-text.danger{color:var(--accent-red);text-shadow:0 0 20px #ff3b5c4d;animation:.8s infinite danger-pulse}@keyframes danger-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}.toast{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;padding:12px 24px;font-size:13px;font-weight:600;animation:.3s toast-slide;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast.error{color:var(--accent-red);background:#ff3b5c26;border:1px solid #ff3b5c4d}.toast.success{color:var(--accent-green);background:#00e67626;border:1px solid #00e6764d}.toast.info{color:var(--team1-color);background:#3b9eff26;border:1px solid #3b9eff4d}@keyframes toast-slide{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.vs-divider{justify-content:center;align-items:center;padding:10px 0;display:flex}.vs-divider span{letter-spacing:6px;background:linear-gradient(90deg, var(--team1-color), #fff, var(--team2-color));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 8px #fff3);-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:900}@media (width<=768px){.bp-container{padding:10px}.bp-header h1{letter-spacing:4px;font-size:24px}.bp-header .subtitle{font-size:10px}.character-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.character-card .char-image{width:64px;height:64px}.countdown-text{font-size:28px}.bp-btn{padding:10px 20px;font-size:12px}}
