:root{--bg-dark: #1a1a2e;--bg-medium: #16213e;--bg-light: #0f3460;--accent: #e94560;--accent-glow: #ff6b81;--gold: #ffd700;--text-primary: #eaeaea;--text-secondary: #a0a0b0;--type-normal: #a8a878;--type-fire: #f08030;--type-water: #6890f0;--type-grass: #78c850;--type-electric: #f8d030;--type-ice: #98d8d8;--type-fighting: #c03028;--type-poison: #a040a0;--type-ground: #e0c068;--type-flying: #a890f0;--type-psychic: #f85888;--type-bug: #a8b820;--type-rock: #b8a038;--type-ghost: #705898;--type-dragon: #7038f8;--type-dark: #705848;--type-steel: #b8b8d0;--type-fairy: #ee99ac}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:"Press Start 2P",monospace;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.room-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-medium);border-bottom:3px solid var(--gold);-webkit-user-select:none;user-select:none}.room-header-info{display:flex;align-items:center;gap:.6rem;cursor:pointer}.room-header-label{font-size:.45rem;color:var(--text-secondary);text-transform:uppercase}.room-header-code{font-size:.8rem;color:var(--gold);letter-spacing:.25rem}.room-header-copied{font-size:.45rem;color:var(--gold);animation:fadeIn .3s ease}.screen{display:flex;flex-direction:column;align-items:center;padding:3.5rem 2rem 2rem;max-width:800px;width:100%;margin:0 auto;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}h1{font-size:1.2rem;color:var(--gold);text-shadow:2px 2px 0 rgba(0,0,0,.5);margin-bottom:.5rem;text-align:center;line-height:1.6}.subtitle{font-size:.6rem;color:var(--text-secondary);margin-bottom:2rem;text-align:center}form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px}.pixel-input{font-family:"Press Start 2P",monospace;font-size:.7rem;padding:.75rem 1rem;background:var(--bg-medium);color:var(--text-primary);border:3px solid var(--bg-light);outline:none;transition:border-color .2s}.pixel-input:focus{border-color:var(--gold)}.pixel-input.room-code{text-transform:uppercase;letter-spacing:.3rem;text-align:center;font-size:1rem}.pixel-btn{font-family:"Press Start 2P",monospace;font-size:.7rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;cursor:pointer;transition:all .2s;text-transform:uppercase;position:relative}.pixel-btn:hover:not(:disabled){background:var(--accent-glow);transform:translateY(-2px);box-shadow:0 4px #0000004d}.pixel-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.pixel-btn:disabled{opacity:.5;cursor:not-allowed}.pixel-btn.secondary{background:var(--bg-light)}.pixel-btn.secondary:hover:not(:disabled){background:var(--bg-medium);box-shadow:0 4px #0000004d}.home-buttons{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px}.room-code-display{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:1rem 0;cursor:pointer}.room-code-display .label{font-size:.5rem;color:var(--text-secondary);text-transform:uppercase}.room-code-display .code{font-size:1.5rem;color:var(--gold);letter-spacing:.3rem;padding:.5rem 1rem;border:3px dashed var(--gold)}.room-code-copied{font-size:.7rem;color:var(--gold);animation:fadeIn .3s ease}.player-list{width:100%;max-width:400px;margin:1.5rem 0}.player-list h3{font-size:.6rem;color:var(--text-secondary);margin-bottom:.75rem;text-align:center}.player-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:2px solid var(--bg-light);margin-bottom:.25rem;font-size:.6rem;background:var(--bg-medium)}.player-list-inline{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin:.75rem 0 1rem;width:100%;max-width:600px}.player-pill{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:2px solid var(--bg-light);background:var(--bg-medium);font-size:.5rem;transition:border-color .3s,background .3s}.player-pill.voted{border-color:var(--gold);background:#ffd70014}.player-pill.pending{border-color:var(--text-secondary)}.player-pill-name{text-transform:capitalize}.you-badge{font-size:.4rem;color:var(--text-secondary)}.vote-status{font-size:.55rem;font-weight:700}.vote-done{color:var(--gold)}.vote-waiting{color:var(--text-secondary);animation:blink 1.5s infinite}.host-badge{font-size:.45rem;background:var(--gold);color:var(--bg-dark);padding:.15rem .4rem}.start-btn{margin-top:1rem}.restart-btn{margin-top:1.5rem}.room-restart-btn{font-size:.5rem;padding:.4rem .8rem}.waiting-text{font-size:.5rem;color:var(--text-secondary);text-align:center;margin-top:1rem;animation:blink 1.5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.slot-header{text-align:center;margin-bottom:1rem}.vote-progress{font-size:.5rem;color:var(--text-secondary);margin-top:.5rem}.candidates-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;width:100%;max-width:600px}@media (min-width: 600px){.current-team-bar{display:flex;gap:.4rem;width:100%;max-width:600px;padding:.5rem 0;margin-bottom:.75rem}.current-team-slot{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.3rem;background:var(--bg-medium);border:2px solid var(--bg-light);min-width:0}.current-team-slot.won-pokemon{border-color:var(--gold);background:#ffd70014}.current-team-slot.active-slot{border-color:var(--gold);animation:slotPulse 1.5s infinite}@keyframes slotPulse{0%,to{box-shadow:0 0 4px #ffd7004d}50%{box-shadow:0 0 12px #ffd70099}}.current-team-slot.future-slot{opacity:.5}.current-team-label{font-size:.3rem;color:var(--text-secondary);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.current-team-sprite{width:40px;height:40px;image-rendering:pixelated}.current-team-name{font-size:.35rem;text-transform:capitalize;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.current-team-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-secondary)}.current-team-sprite{width:48px;height:48px}.current-team-placeholder{width:48px;height:48px;font-size:1.2rem}.current-team-label{font-size:.35rem}.current-team-name{font-size:.4rem}.candidates-grid{grid-template-columns:repeat(4,1fr)}}.pokemon-card{background:var(--bg-medium);border:3px solid var(--bg-light);padding:.75rem;cursor:pointer;transition:all .2s;display:flex;justify-content:center}.pokemon-card:hover:not(.voted){border-color:var(--gold);transform:translateY(-4px);box-shadow:0 4px #0000004d}.pokemon-card.winner{border-color:var(--gold);background:#ffd70026;animation:winnerPulse 1s infinite}@keyframes winnerPulse{0%,to{box-shadow:0 0 10px #ffd7004d}50%{box-shadow:0 0 20px #ffd70099}}.pokemon-card.loser{opacity:.4}.pokemon-card.fade-out{opacity:0;transform:scale(.8);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.pokemon-card.winner.fade-out{opacity:1;transform:scale(1)}.candidates-grid-reveal .pokemon-card.winner{opacity:0;transition:opacity .3s ease;pointer-events:none}.pokemon-card.voted-for{border-color:var(--gold);box-shadow:0 0 12px #ffd70066}.pokemon-card-inner{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%}.pokemon-sprite{width:96px;height:96px;image-rendering:pixelated}.pokemon-name{font-size:.55rem;text-align:center;text-transform:capitalize}.pokemon-types{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:center}.type-badge{font-size:.4rem;padding:.15rem .35rem;text-transform:uppercase;color:#fff;font-family:"Press Start 2P",monospace}.vote-bar-container{width:100%;background:var(--bg-dark);height:12px;position:relative;margin-top:.25rem}.vote-bar{background:var(--gold);height:100%;transition:width .5s ease}.vote-count{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.4rem;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.8)}.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;width:100%;max-width:600px;margin-top:1rem}@media (min-width: 600px){.team-grid{grid-template-columns:repeat(3,1fr)}}.team-slot{background:var(--bg-medium);border:3px solid var(--bg-light);padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.4rem}.team-slot.starter-slot{grid-column:1 / -1;border-color:var(--gold);max-width:220px;margin:0 auto}.slot-label{font-size:.45rem;color:var(--text-secondary);text-transform:uppercase}.team-sprite{width:96px;height:96px;image-rendering:pixelated}.team-pokemon-name{font-size:.6rem;text-align:center;text-transform:capitalize}.empty-slot{width:96px;height:96px;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text-secondary);border:2px dashed var(--bg-light)}.error-banner{background:var(--accent);color:#fff;padding:1rem;font-size:.6rem;text-align:center;width:100%;max-width:400px}.exclusion-section{width:100%;max-width:400px;margin:.5rem 0}.edition-section{width:100%;max-width:400px;margin-bottom:1rem}.pixel-dropdown{position:relative;width:100%}.pixel-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;font-family:"Press Start 2P",monospace;font-size:.55rem;padding:.6rem .75rem;background:var(--bg-medium);color:var(--text-primary);border:3px solid var(--bg-light);outline:none;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .2s}.pixel-dropdown-trigger:hover{transform:translateY(-2px);box-shadow:0 4px #0000004d}.pixel-dropdown-trigger:active{transform:translateY(0);box-shadow:none}.pixel-dropdown-trigger.open,.pixel-dropdown-trigger:focus-visible{border-color:var(--gold)}.pixel-dropdown-value{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pixel-dropdown-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-primary);flex-shrink:0;transition:transform .2s}.pixel-dropdown-trigger.open .pixel-dropdown-arrow{transform:rotate(180deg)}.pixel-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:300px;overflow-y:auto;background:var(--bg-medium);border:3px solid var(--bg-light);z-index:100;margin:0;padding:0;list-style:none;animation:dropdownOpen .15s ease}@keyframes dropdownOpen{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pixel-dropdown-menu::-webkit-scrollbar{width:8px}.pixel-dropdown-menu::-webkit-scrollbar-track{background:var(--bg-dark)}.pixel-dropdown-menu::-webkit-scrollbar-thumb{background:var(--bg-light);border:1px solid var(--bg-dark)}.pixel-dropdown-group{list-style:none;margin:0;padding:0}.pixel-dropdown-group-label{font-family:"Press Start 2P",monospace;font-size:.45rem;color:var(--gold);text-align:center;padding:.5rem .75rem .25rem;border-bottom:2px solid var(--bg-light);position:relative;display:flex;align-items:center;gap:.5rem}.pixel-dropdown-group-label:before,.pixel-dropdown-group-label:after{content:"";flex:1;height:1px;background:var(--bg-light)}.pixel-dropdown-option{font-family:"Press Start 2P",monospace;font-size:.5rem;padding:.5rem .75rem;color:var(--text-primary);background:var(--bg-medium);cursor:pointer;transition:background .15s,color .15s,border-color .15s;border-left:3px solid transparent;list-style:none}.pixel-dropdown-option:hover{background:var(--bg-light);border-left-color:var(--gold);color:var(--gold)}.pixel-dropdown-option.selected{background:#ffd70014;color:var(--gold);border-left-color:var(--gold)}.edition-info{font-size:.45rem;color:var(--text-secondary);text-align:center;margin-top:.4rem}.exclusion-title{font-size:.55rem;color:var(--gold);margin-bottom:.5rem;text-align:center}.exclusion-option{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;cursor:pointer;background:var(--bg-medium);border:2px solid var(--bg-light);margin-bottom:.25rem;transition:border-color .2s}.exclusion-option:hover{border-color:var(--text-secondary)}.exclusion-option input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid var(--text-secondary);background:var(--bg-dark);cursor:pointer;flex-shrink:0;margin-top:2px;position:relative}.exclusion-option input[type=checkbox]:checked{background:var(--gold);border-color:var(--gold)}.exclusion-option input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.5rem;color:var(--bg-dark);font-family:"Press Start 2P",monospace}.exclusion-option-text{display:flex;flex-direction:column;gap:.15rem}.exclusion-label{font-size:.55rem;color:var(--text-primary)}.exclusion-desc{font-size:.4rem;color:var(--text-secondary);line-height:1.4}.exclusion-tags{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center;margin-bottom:1rem}.exclusion-tag{font-size:.4rem;padding:.2rem .5rem;background:var(--bg-light);color:var(--gold);border:1px solid var(--gold)}.winner-reveal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a1a2eeb;display:flex;align-items:center;justify-content:center;z-index:200;animation:overlayFadeIn .3s ease}.winner-reveal-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:winnerZoomIn .5s cubic-bezier(.34,1.56,.64,1)}.winner-reveal-sprite{width:192px;height:192px;image-rendering:pixelated;animation:spritePulse 1.5s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(255,215,0,.6))}.winner-reveal-name{font-size:1.4rem;color:var(--gold);text-transform:capitalize;text-shadow:2px 2px 0 rgba(0,0,0,.5);animation:textSlideUp .4s ease .2s both}.winner-reveal-types{display:flex;gap:.35rem;animation:textSlideUp .4s ease .3s both}.winner-reveal-chosen-text{font-size:.7rem;color:var(--text-primary);animation:textSlideUp .4s ease .4s both}.winner-reveal-votes{font-size:.5rem;color:var(--text-secondary);animation:textSlideUp .4s ease .5s both}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes winnerZoomIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes spritePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes textSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bmc-link{position:fixed;bottom:1rem;right:1rem;z-index:150;text-decoration:none}.bmc-btn{display:flex;align-items:center;gap:.5rem;font-family:"Press Start 2P",monospace;font-size:.5rem;padding:.6rem 1rem;background:#fd0;color:#000;border:3px solid #000000;box-shadow:4px 4px #000;cursor:pointer;transition:all .2s;text-transform:uppercase}.bmc-btn:hover{transform:translateY(-2px);box-shadow:6px 6px #000}.bmc-btn:active{transform:translateY(0);box-shadow:2px 2px #000}.bmc-emoji{font-size:1.1rem;line-height:1}.bmc-text{line-height:1.4}
