*{box-sizing:border-box}body{color:#e0e0e0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#080c14;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{width:100%}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2a3040;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a4050}.arena-container{position:relative}.arena-grid{background:#0d1117;border:1px solid #1e2a3a;border-radius:10px;gap:2px;width:560px;height:560px;padding:6px;display:grid;box-shadow:0 0 30px #4ecdc40d,inset 0 0 20px #0000004d}.tile{border-radius:3px;justify-content:center;align-items:center;font-size:14px;transition:background-color .2s;display:flex;position:relative;overflow:visible}.tile-empty{background:#131a27}.tile-wall{background:#2a2d35;border:1px solid #3a3d45;border-radius:2px}.tile-resource{background:#0f2a1a;border:1px solid #4ecdc426}.tile-powerup{background:#1a1030;border:1px solid #a064ff33}.tile-fog{opacity:.35}.tile-danger{animation:1.5s ease-in-out infinite danger-pulse;background:#b4141440!important}.tile-zone-border{box-shadow:inset 0 0 6px #ff282899}@keyframes danger-pulse{0%,to{background-color:#b4141433}50%{background-color:#dc1e1e59}}.tile-hit{animation:.3s ease-out tile-flash}@keyframes tile-flash{0%{background:#e9456080}to{background:inherit}}.bot-marker{color:#fff;z-index:2;box-sizing:border-box;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:85%;height:85%;font-size:11px;font-weight:700;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:visible}.bot-number-label{text-shadow:0 1px 3px #000c;font-size:13px;font-weight:800}.bot-emoji-label{filter:drop-shadow(0 1px 2px #0009);font-size:20px;line-height:1}.bot-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.bot-dead{opacity:.2;filter:grayscale()}.bot-defending{border:2px solid gold!important;box-shadow:0 0 12px #ffd70080!important}.resource-marker{z-index:1;background:#4ecdc4;border-radius:50%;width:8px;height:8px;box-shadow:0 0 6px #4ecdc499}.powerup-marker{z-index:1;filter:drop-shadow(0 0 3px #ffffff4d);font-size:15px;animation:1.5s ease-in-out infinite powerup-bob}@keyframes powerup-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.05)}}.powerup-damage_boost{filter:drop-shadow(0 0 5px #e94560)}.powerup-shield{filter:drop-shadow(0 0 5px #4ea8de)}.powerup-speed_boost{filter:drop-shadow(0 0 5px gold)}.powerup-vision_boost{filter:drop-shadow(0 0 5px #a064ff)}.powerup-energy_pack{filter:drop-shadow(0 0 5px #4ecf4e)}.bot-shielded{border:2px solid #4ea8de!important;box-shadow:0 0 14px #4ea8de99!important}.bot-dmg-boost{animation:.8s ease-in-out infinite dmg-pulse}@keyframes dmg-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.5)drop-shadow(0 0 4px #e94560)}}.bot-speed-boost{animation:.4s ease-in-out infinite speed-glow}@keyframes speed-glow{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.bot-vision-boost{box-shadow:0 0 14px #a064ff99,0 0 28px #a064ff33!important}.stack-badge{color:#fff;z-index:3;background:#e94560;border-radius:4px;padding:1px 3px;font-size:8px;font-weight:900;line-height:1;position:absolute;top:-4px;right:-4px;box-shadow:0 1px 3px #00000080}.bot-name-tag{white-space:nowrap;text-shadow:0 1px 3px #000000e6,0 0 6px #000000b3;pointer-events:none;z-index:5;letter-spacing:.3px;text-overflow:ellipsis;max-width:60px;font-size:8px;font-weight:700;position:absolute;bottom:-14px;left:50%;overflow:hidden;transform:translate(-50%)}.speech-bubble{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;z-index:15;pointer-events:none;background:#111827ee;border:1px solid;border-radius:8px 8px 8px 2px;max-width:120px;padding:3px 7px;font-size:9px;font-weight:500;animation:.3s ease-out bubble-pop,4s ease-in forwards bubble-fade;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 8px #0009}.speech-bubble:after{content:"";border-top:5px solid #111827ee;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;bottom:-5px;left:8px}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%)scale(.5)translateY(4px)}to{opacity:1;transform:translate(-50%)scale(1)translateY(0)}}@keyframes bubble-fade{0%,75%{opacity:1}to{opacity:0}}.damage-floater{text-shadow:0 1px 4px #000000e6,0 0 8px;z-index:10;pointer-events:none;white-space:nowrap;letter-spacing:.5px;font-size:11px;font-weight:900;animation:.8s ease-out forwards float-up;position:absolute;top:-4px;left:50%;transform:translate(-50%)}@keyframes float-up{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}30%{opacity:1;transform:translate(-50%)translateY(-8px)scale(1.2)}to{opacity:0;transform:translate(-50%)translateY(-22px)scale(.8)}}.animation-overlay{pointer-events:none;z-index:20;width:560px;height:560px;position:absolute;top:0;left:0}.anim-projectile{z-index:21;border-radius:50%;width:10px;height:10px;margin-top:-5px;margin-left:-5px;animation:.35s ease-in forwards projectile-fly;position:absolute}.anim-projectile:after{content:"";background:inherit;opacity:.3;filter:blur(4px);border-radius:50%;width:16px;height:16px;margin-top:-8px;margin-left:-8px;animation:.35s ease-in forwards projectile-trail;position:absolute;top:50%;left:50%}@keyframes projectile-fly{0%{opacity:1;transform:translate(0)scale(1.3)}60%{opacity:1;transform:translate(calc(var(--proj-dx) * .6), calc(var(--proj-dy) * .6)) scale(1)}to{transform:translate(var(--proj-dx), var(--proj-dy)) scale(1.8);opacity:0}}@keyframes projectile-trail{0%{opacity:.4;transform:translate(0)scale(1)}to{transform:translate(calc(var(--proj-dx) * .8), calc(var(--proj-dy) * .8)) scale(.3);opacity:0}}.anim-defend{z-index:21;filter:drop-shadow(0 0 8px #ffd70099);animation:.6s ease-out forwards shield-flash;position:absolute;transform:translate(-50%,-50%)}@keyframes shield-flash{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.4)}50%{opacity:.9;transform:translate(-50%,-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}.anim-collect{z-index:21;filter:drop-shadow(0 0 6px);animation:.5s ease-out forwards collect-sparkle;position:absolute;transform:translate(-50%,-50%)}@keyframes collect-sparkle{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)rotate(0)}25%{opacity:1;transform:translate(-50%,-50%)scale(1.5)rotate(120deg)}to{opacity:0;transform:translate(-50%,-120%)scale(.6)rotate(360deg)}}.bot-panel{background:#111827;border:1px solid #1e2a3a;border-radius:10px;flex-direction:column;gap:10px;width:230px;padding:16px;transition:opacity .3s;display:flex}.bot-panel-dead{opacity:.4}.bot-header{border-bottom:2px solid;align-items:center;gap:10px;padding-bottom:10px;display:flex}.bot-avatar{object-fit:cover;border:2px solid;border-radius:50%;flex-shrink:0;width:36px;height:36px}.bot-number{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:flex}.bot-emoji-avatar{flex-shrink:0;font-size:24px;line-height:1}.bot-mood{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-style:italic;font-weight:600}.bot-name-block{flex-direction:column;gap:2px;min-width:0;display:flex}.bot-name{color:#f0f0f0;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.bot-dead-badge{color:#fff;letter-spacing:.5px;background:#e94560;border-radius:3px;width:fit-content;padding:1px 6px;font-size:9px;font-weight:800}.progress-bar-container{flex-direction:column;gap:3px;display:flex}.progress-meta{justify-content:space-between;align-items:baseline;display:flex}.progress-label{color:#6b7280;text-transform:uppercase;letter-spacing:.8px;font-size:10px;font-weight:600}.progress-value{color:#9ca3af;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.progress-fill{border-radius:3px;height:100%;transition:width .25s}.bot-stats{gap:12px;display:flex}.stat{flex-direction:column;flex:1;gap:2px;display:flex}.stat-label{color:#6b7280;text-transform:uppercase;letter-spacing:.8px;font-size:9px;font-weight:600}.stat-value{color:#f0f0f0;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.action-value{color:#9ca3af;font-size:11px;font-weight:600}.bot-buffs{flex-wrap:wrap;gap:4px;display:flex}.buff-badge{letter-spacing:.3px;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700}.buff-damage{color:#e94560;background:#e9456026;border:1px solid #e945604d}.buff-shield{color:#4ea8de;background:#4ea8de26;border:1px solid #4ea8de4d}.buff-speed{color:gold;background:#ffd70026;border:1px solid #ffd7004d}.buff-vision{color:#a064ff;background:#a064ff26;border:1px solid #a064ff4d}.bot-defending-badge{color:gold;text-align:center;letter-spacing:1px;background:#ffd70026;border:1px solid #ffd7004d;border-radius:4px;padding:4px 10px;font-size:10px;font-weight:800}.bot-error-badge{color:#f87171;text-align:center;letter-spacing:.3px;background:#ef44441f;border:1px solid #ef444440;border-radius:4px;flex-direction:column;gap:2px;padding:5px 10px;font-size:10px;font-weight:700;display:flex}.bot-error-detail{color:#9ca3af;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-style:italic;font-weight:500;display:block;overflow:hidden}.bot-info{background:#0a0f1a;border-radius:6px;flex-direction:column;gap:3px;padding:8px 10px;font-size:12px;display:flex}.bot-strategy{color:gold;text-transform:uppercase;letter-spacing:1.5px;font-size:9px;font-weight:700}.bot-status{color:#4ecdc4;font-size:11px}.bot-message{color:#9ca3af;font-size:11px;font-style:italic}.event-feed{background:#111827;border:1px solid #1e2a3a;border-radius:10px;flex-direction:column;gap:6px;max-height:200px;padding:12px;display:flex}.feed-title{color:#6b7280;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #1e2a3a;padding-bottom:4px;font-size:10px;font-weight:700}.feed-entries{scrollbar-width:thin;scrollbar-color:#2a3040 transparent;flex-direction:column;gap:3px;display:flex;overflow-y:auto}.feed-entry{border-radius:4px;align-items:center;gap:6px;padding:3px 6px;font-size:11px;animation:.2s ease-out feed-slide-in;display:flex}@keyframes feed-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.feed-normal{color:#d1d5db}.feed-critical{color:#f87171;background:#f871711a;border-left:2px solid #e94560;font-weight:700;animation:.2s ease-out feed-slide-in,.6s ease-out feed-flash}@keyframes feed-flash{0%{background:#e9456040}to{background:#f871711a}}.feed-info{color:#93c5fd}.feed-turn{color:#4b5563;font-variant-numeric:tabular-nums;min-width:24px;font-size:9px;font-weight:700}.feed-icon{flex-shrink:0;font-size:12px}.feed-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.kill-banner{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a1aeb;border:1px solid #e9456066;border-radius:10px;align-items:center;gap:14px;padding:12px 28px;transition:opacity .3s,transform .3s;display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 30px #e9456033}.kill-banner-show{opacity:1;animation:.4s ease-out kill-enter,.8s ease-in-out .3s kill-glow-pulse;transform:translate(-50%)translateY(0)}.kill-banner-hide{opacity:0;pointer-events:none;transform:translate(-50%)translateY(-10px)}@keyframes kill-enter{0%{opacity:0;transform:translate(-50%)translateY(-20px)scale(1.3)}50%{opacity:1;transform:translate(-50%)translateY(4px)scale(1.02)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes kill-glow-pulse{0%{box-shadow:0 4px 30px #e9456033}50%{box-shadow:0 4px 50px #e9456080,0 0 80px #e9456026}to{box-shadow:0 4px 30px #e9456033}}.kill-actor{align-items:center;gap:8px;display:flex}.kill-avatar{object-fit:cover;border:2px solid;border-radius:50%;width:28px;height:28px}.kill-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.kill-name{letter-spacing:.3px;font-size:15px;font-weight:800}.kill-verb{color:#e94560;letter-spacing:3px;text-transform:uppercase;text-shadow:0 0 10px #e9456080;font-size:13px;font-weight:900}.match-header{background:#111827;border:1px solid #1e2a3a;border-radius:10px;flex-direction:column;gap:8px;padding:14px 18px;display:flex}.header-top-row{justify-content:space-between;align-items:center;display:flex}.turn-info{align-items:baseline;gap:4px;display:flex}.turn-label{color:#6b7280;text-transform:uppercase;letter-spacing:1px;margin-right:4px;font-size:10px;font-weight:700}.turn-number{color:#f0f0f0;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.turn-divider{color:#4b5563;font-size:16px;font-weight:300}.turn-max{color:#6b7280;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.header-right{align-items:center;gap:8px;display:flex}.alive-count{color:#4ecdc4;background:#4ecdc41a;border:1px solid #4ecdc433;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.btn-stop{color:#e94560;cursor:pointer;letter-spacing:.5px;background:#e945601a;border:1px solid #e945604d;border-radius:6px;padding:4px 14px;font-size:11px;font-weight:700;transition:background .2s}.btn-stop:hover{background:#e9456033}.turn-progress{background:#1e2a3a;border-radius:2px;height:3px;overflow:hidden}.turn-progress-fill{background:linear-gradient(90deg,#4ecdc4,#e94560);border-radius:2px;height:100%;transition:width .25s}.match-result-banner{text-align:center;padding:12px 0 4px}.winner-info{justify-content:center;align-items:center;gap:12px;display:flex}.winner-avatar{object-fit:cover;border:2px solid gold;border-radius:50%;width:44px;height:44px;box-shadow:0 0 16px #ffd7004d}.winner-text{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.winner-label{color:gold;letter-spacing:2px;font-size:10px;font-weight:800}.winner-name{font-size:20px;font-weight:800}.draw-banner{color:#4ecdc4;letter-spacing:3px;font-size:18px;font-weight:800}.lobby{flex-direction:column;gap:16px;width:100%;display:flex}.lobby-container{grid-template-columns:1fr 1fr 1fr;gap:16px;width:100%;display:grid}.lobby-panel{background:#111827;border:1px solid #1e2a3a;border-radius:10px;flex-direction:column;gap:14px;padding:18px;display:flex}.lobby-panel h3{color:#f0f0f0;letter-spacing:.3px;margin:0;font-size:15px;font-weight:700}.lobby-registry{min-width:0}.registry-form{flex-direction:column;gap:8px;display:flex}.registry-form input{color:#e0e0e0;background:#0a0f1a;border:1px solid #1e2a3a;border-radius:6px;padding:8px 10px;font-size:13px;transition:border-color .2s}.registry-form input:focus{border-color:#4ecdc4;outline:none}.registry-form input:disabled{opacity:.6;cursor:not-allowed}.btn-register{color:#0a0e17;cursor:pointer;background:#4ecdc4;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:700;transition:background .2s,transform .1s}.btn-register:hover:not(:disabled){background:#3dbdb3;transform:translateY(-1px)}.btn-register:disabled{opacity:.5;cursor:not-allowed}.registry-search{color:#e0e0e0;box-sizing:border-box;background:#0a0f1a;border:1px solid #1e2a3a;border-radius:6px;width:100%;padding:8px 10px;font-size:13px;transition:border-color .2s}.registry-search:focus{border-color:#4ecdc4;outline:none}.registry-search::placeholder{color:#4b5563}.registry-list{flex-direction:column;gap:8px;max-height:500px;display:flex;overflow-y:auto}.registry-section{flex-direction:column;gap:6px;display:flex}.registry-section-header{color:inherit;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:6px 4px;display:flex}.registry-section-header.clickable{cursor:pointer;border-radius:6px;transition:background .15s}.registry-section-header.clickable:hover{background:#ffffff08}.section-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.section-dot.online{background:#0f8;box-shadow:0 0 6px #0f86}.section-dot.offline{opacity:.5;background:#f46}.section-title{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.section-count{color:#6b7280;margin-left:-2px;font-size:11px;font-weight:600}.section-chevron{color:#6b7280;margin-left:auto;font-size:12px;transition:transform .2s}.section-chevron.expanded{transform:rotate(90deg)}.empty-state-small{text-align:center;color:#4b5563;padding:10px;font-size:12px}.registry-item.offline{opacity:.6}.registry-item{background:#0a0f1a;border:1px solid #1e2a3a;border-radius:8px;flex-direction:column;gap:6px;padding:10px;transition:border-color .2s;display:flex}.registry-item:hover{border-color:#2a3a50}.registry-item-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.registry-item-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.online-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-dot.online{background:#0f8;box-shadow:0 0 8px #00ff8880}.online-dot.offline{opacity:.5;background:#f46}.registry-item-info{flex-direction:column;gap:2px;min-width:0;display:flex}.registry-item-name{color:#e0e0e0;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.registry-item-meta{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.registry-item-elo{align-items:center;gap:6px;display:flex}.elo-label{color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:600}.elo-value{color:#4ecdc4;font-size:12px;font-weight:700}.btn-unregister{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #6b7280;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;transition:border-color .2s,color .2s;display:flex}.btn-unregister:hover:not(:disabled){color:#f46;border-color:#f46}.btn-unregister:disabled{opacity:.5;cursor:not-allowed}.lobby-setup{min-width:0}.mode-tabs{border-bottom:1px solid #1e2a3a;gap:8px;padding-bottom:12px;display:flex}.mode-tab{color:#6b7280;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 8px;font-size:12px;font-weight:700;transition:color .2s,border-color .2s}.mode-tab:hover{color:#e0e0e0}.mode-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.ranked-setup,.practice-setup{flex-direction:column;gap:12px;display:flex}.bots-selection{flex-direction:column;gap:8px;display:flex}.selection-header{justify-content:space-between;align-items:center;display:flex}.selection-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:600}.selection-actions{gap:6px;display:flex}.btn-select-action{color:#4ecdc4;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;transition:background .2s}.btn-select-action:hover{background:#4ecdc41a}.selected-chips{flex-wrap:wrap;gap:6px;display:flex}.bot-chip{color:#e0e0e0;white-space:nowrap;background:#1a2535;border:1px solid #2a3a50;border-radius:16px;align-items:center;gap:5px;padding:4px 6px 4px 8px;font-size:11px;display:inline-flex}.chip-name{font-weight:600}.chip-elo{color:#4ecdc4;font-size:10px;font-weight:500}.chip-remove{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:10px;line-height:1;transition:color .2s}.chip-remove:hover{color:#f46}.bot-dropdown{position:relative}.bot-search-input{color:#e0e0e0;box-sizing:border-box;background:#0a0f1a;border:1px solid #1e2a3a;border-radius:6px;width:100%;padding:8px 10px;font-size:12px;transition:border-color .2s}.bot-search-input:focus{border-color:#4ecdc4;outline:none}.bot-search-input:disabled{opacity:.6;cursor:not-allowed}.bot-dropdown-list{z-index:10;background:#111827;border:1px solid #2a3a50;border-top:none;border-radius:0 0 6px 6px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.bot-dropdown-item{color:#e0e0e0;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;font-size:12px;transition:background .15s;display:flex}.bot-dropdown-item:hover{background:#1a2535}.dropdown-name{font-weight:500}.dropdown-elo{color:#6b7280;font-size:11px}.practice-setup{flex-direction:column;gap:10px;display:flex}.practice-bot{background:#0a0f1a;border:1px solid #1e2a3a;border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.practice-bot-header{justify-content:space-between;align-items:center;display:flex}.practice-bot-label{color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.btn-remove-bot{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #6b7280;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;transition:border-color .2s,color .2s;display:flex}.btn-remove-bot:hover:not(:disabled){color:#f46;border-color:#f46}.btn-add-bot{color:#6b7280;cursor:pointer;background:0 0;border:1px dashed #1e2a3a;border-radius:8px;padding:8px 16px;font-size:12px;font-weight:600;transition:border-color .2s,color .2s}.btn-add-bot:hover:not(:disabled){color:#4ecdc4;border-color:#4ecdc4}.btn-add-bot:disabled{opacity:.5;cursor:not-allowed}.practice-bot label{color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.practice-bot input{color:#e0e0e0;background:#0a0f1a;border:1px solid #1e2a3a;border-radius:6px;padding:7px 10px;font-size:12px;transition:border-color .2s}.practice-bot input:focus{border-color:#4ecdc4;outline:none}.practice-bot input:disabled{opacity:.6;cursor:not-allowed}.btn-start-match{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:8px;grid-column:1/-1;padding:10px 16px;font-size:13px;font-weight:700;transition:background .2s,transform .1s}.btn-start-match:hover:not(:disabled){background:#d63850;transform:translateY(-1px)}.btn-start-match:disabled{opacity:.5;cursor:not-allowed}.config-row{border-top:1px solid #1e2a3a;flex-wrap:wrap;gap:12px;padding-top:12px;display:flex}.config-control{color:#9ca3af;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.config-control label{text-transform:uppercase;letter-spacing:.3px}.config-control input{color:#e0e0e0;background:#0a0f1a;border:1px solid #1e2a3a;border-radius:6px;width:50px;padding:5px 7px;font-size:12px;transition:border-color .2s}.config-control input:focus{border-color:#4ecdc4;outline:none}.config-control input:disabled{opacity:.6;cursor:not-allowed}.lobby-active{min-width:0}.matches-list{flex-direction:column;gap:10px;max-height:500px;display:flex;overflow-y:auto}.match-item{background:#0a0f1a;border:1px solid #1e2a3a;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px;transition:border-color .2s;display:flex}.match-item:hover{border-color:#2a3a50}.match-info{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.match-bots{color:#e0e0e0;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.match-progress{flex-direction:column;gap:4px;display:flex}.progress-text{color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.progress-bar{background:#111827;border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#4ecdc4,#0f8);border-radius:3px;height:100%;transition:width .3s}.btn-watch{color:#0a0e17;cursor:pointer;white-space:nowrap;background:#4ecdc4;border:none;border-radius:6px;flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:700;transition:background .2s,transform .1s}.btn-watch:hover{background:#3dbdb3;transform:translateY(-1px)}.empty-state{text-align:center;color:#4b5563;padding:20px 10px;font-size:13px}@media (width<=1200px){.lobby-container{grid-template-columns:1fr 1fr}.lobby-active,.btn-start-match{grid-column:1/-1}}@media (width<=768px){.lobby-container{grid-template-columns:1fr}.lobby-active{grid-column:auto}.config-row{flex-direction:column}.config-control{flex-direction:column;align-items:flex-start}}.leaderboard{flex-direction:column;gap:24px;width:100%;display:flex}.leaderboard-section{flex-direction:column;gap:12px;display:flex}.leaderboard-section h2{color:#f0f0f0;letter-spacing:.3px;margin:0;font-size:16px;font-weight:700}.leaderboard-table-wrapper{background:#111827;border:1px solid #1e2a3a;border-radius:10px;overflow:hidden}.leaderboard-table{border-collapse:collapse;width:100%;font-size:13px}.leaderboard-table thead{background:#0a0f1a;border-bottom:2px solid #1e2a3a}.leaderboard-table thead th{text-align:left;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;padding:12px;font-size:11px;font-weight:700}.leaderboard-table tbody tr{border-bottom:1px solid #1e2a3a;transition:background-color .2s}.leaderboard-table tbody tr:hover{background-color:#0f1420}.leaderboard-table tbody tr.bot-row td{padding:12px}.leaderboard-table tbody tr.unranked-header{color:#9ca3af;background:#111827;font-weight:700}.leaderboard-table tbody tr.unranked-header td{text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;font-size:10px}.leaderboard-table tbody tr.ranked{background:#4ecdc405}.leaderboard-table tbody tr.unranked{opacity:.7}.bot-row.unranked:hover{background-color:#4ecdc40d}.empty-row{text-align:center;color:#4b5563;padding:40px 12px!important}.col-rank{width:70px}.col-name{flex:1;min-width:120px}.col-team{width:100px}.col-elo{text-align:right;width:90px}.col-games{text-align:center;width:70px}.col-winrate{text-align:right;width:90px}.col-streak{text-align:right;width:80px}.rank-badge{color:#fff;background:linear-gradient(135deg,#e94560,#f39c12);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:inline-flex}.leaderboard-table tbody tr.unranked .rank-badge{color:#6b7280;background:#2a3a50}.elo-number{color:#4ecdc4;font-variant-numeric:tabular-nums;font-weight:700}.win-rate{color:#f0f0f0;font-variant-numeric:tabular-nums;font-weight:600}.streak{font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 6px;font-weight:700;display:inline-block}.streak.positive{color:#0f8;background:#00ff8814}.streak.positive:before{content:"▲ "}.streak.negative{color:#f46;background:#ff446614}.streak.negative:before{content:"▼ "}.match-history{flex-direction:column;gap:10px;display:flex}.history-item{background:#111827;border:1px solid #1e2a3a;border-radius:10px;flex-direction:column;gap:10px;padding:14px;transition:border-color .2s;display:flex}.history-item:hover{border-color:#2a3a50}.history-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.history-bots{color:#f0f0f0;font-size:13px;font-weight:700}.practice-badge{color:#a064ff;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;background:#a064ff26;border:1px solid #a064ff4d;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700}.history-details{flex-direction:column;gap:8px;display:flex}.history-result{align-items:center;gap:8px;font-size:12px;display:flex}.winner-label{color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-weight:600}.winner-name{color:#f0f0f0;font-weight:700}.draw-label{color:#6b7280;font-weight:600}.history-meta{flex-wrap:wrap;gap:16px;display:flex}.meta-item{align-items:center;gap:4px;font-size:12px;display:flex}.meta-label{color:#6b7280;font-weight:600}.meta-value{color:#9ca3af;font-variant-numeric:tabular-nums}.history-elo{border-top:1px solid #1e2a3a;flex-wrap:wrap;gap:12px;padding-top:8px;display:flex}.elo-change{align-items:center;gap:6px;display:flex}.elo-bot{color:#9ca3af;font-size:11px;font-weight:600}.elo-delta{font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 6px;font-size:12px;font-weight:700}.elo-delta.gain{color:#0f8;background:#00ff8814}.elo-delta.loss{color:#f46;background:#ff446614}.empty-state{text-align:center;color:#4b5563;background:#111827;border:1px solid #1e2a3a;border-radius:10px;padding:40px 20px;font-size:13px}@media (width<=1024px){.col-team,.leaderboard-table thead th.col-team,.leaderboard-table tbody td.col-team{display:none}}@media (width<=768px){.leaderboard-table{font-size:12px}.leaderboard-table thead th,.leaderboard-table tbody tr.bot-row td{padding:10px 8px}.col-rank{width:50px}.col-games{width:60px}.col-elo,.col-winrate{width:80px}.col-streak{width:70px}.rank-badge{width:24px;height:24px;font-size:11px}.history-meta{flex-direction:column;gap:4px}.history-elo{gap:8px}}.how-to-play{max-width:1000px;margin:0 auto;padding:1rem}.docs-container{flex-direction:column;gap:2rem;display:flex}.docs-section h2{color:#00f0ff;border-bottom:1px solid #00f0ff33;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.5rem}.hero-section{text-align:center}.btn-download-kit{color:#0a0e17;background:linear-gradient(135deg,#00f0ff,#0080ff);border-radius:8px;margin-bottom:.75rem;padding:.75rem 2rem;font-size:1rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-block;box-shadow:0 4px 15px #00f0ff4d}.btn-download-kit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00f0ff66}.kit-description{color:#888;max-width:600px;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;font-size:.85rem;line-height:1.5}.steps-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.step-card{text-align:center;background:#00f0ff0d;border:1px solid #00f0ff26;border-radius:12px;padding:1.5rem 1rem}.step-number{color:#0a0e17;background:linear-gradient(135deg,#00f0ff,#0080ff);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin:0 auto .75rem;font-size:1.2rem;font-weight:700;display:flex}.step-card h3{color:#e0e0e0;margin-bottom:.5rem;font-size:1rem}.step-card p{color:#888;font-size:.85rem;line-height:1.5}.rules-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.rule-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:10px;padding:1.25rem}.rule-card h3{color:#00f0ff;margin-bottom:.75rem;font-size:1rem}.rule-card ul{margin:0;padding:0;list-style:none}.rule-card li{color:#ccc;padding:.3rem 0 .3rem 1rem;font-size:.85rem;line-height:1.5;position:relative}.rule-card li:before{content:">";color:#00f0ff;font-weight:700;position:absolute;left:0}.rule-card p{color:#ccc;font-size:.85rem;line-height:1.5}.energy-badge{color:#00f0ff;vertical-align:middle;background:#00f0ff26;border-radius:10px;margin:0 .2rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.openapi-link{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.btn-openapi{color:#00f0ff;background:#00f0ff1a;border:1px solid #00f0ff66;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.btn-openapi:hover{background:#00f0ff33}.btn-openapi.secondary{color:#aaa;background:#ffffff0d;border-color:#ffffff26}.btn-openapi.secondary:hover{color:#ddd;background:#ffffff1a}.api-intro{color:#bbb;margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.api-block{background:#ffffff08;border:1px solid #ffffff14;border-radius:10px;margin-bottom:1.5rem;padding:1.25rem}.api-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.api-method{color:#0a0e17;background:#00f0ff;border-radius:4px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.api-path{color:#e0e0e0;font-family:monospace;font-size:1rem;font-weight:600}.api-note{color:#888;font-size:.8rem}.api-block h4{color:#aaa;margin:1rem 0 .5rem;font-size:.85rem}.api-notes ul{padding:0;list-style:none}.api-notes li{color:#bbb;padding:.25rem 0 .25rem 1rem;font-size:.83rem;line-height:1.5;position:relative}.api-notes li:before{content:">";color:#00f0ff;position:absolute;left:0}.code-block{background:#0d1117;border:1px solid #ffffff14;border-radius:8px;padding:1rem;position:relative;overflow-x:auto}.code-block.small{padding:.5rem .75rem}.code-block pre{color:#c9d1d9;white-space:pre;margin:0;font-size:.8rem;line-height:1.5}.code-block code{font-family:SF Mono,Fira Code,Consolas,monospace}.code-actions{gap:.5rem;margin-bottom:.75rem;display:flex}.copy-btn,.download-btn{color:#00f0ff;cursor:pointer;background:#00f0ff1a;border:1px solid #00f0ff4d;border-radius:4px;padding:.3rem .7rem;font-size:.75rem;transition:all .2s;position:relative}.copy-btn:hover,.download-btn:hover{background:#00f0ff33}.download-btn{color:#0f8;background:#00ff881a;border-color:#00ff884d}.download-btn:hover{background:#0f83}.sample-tabs{flex-direction:column;gap:.75rem;display:flex}.sample-bot-card{border:1px solid #ffffff14;border-radius:10px;overflow:hidden}.sample-bot-header{cursor:pointer;background:#ffffff08;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;transition:background .2s;display:flex}.sample-bot-header:hover{background:#ffffff0f}.sample-bot-header h3{color:#e0e0e0;margin:0;font-size:.95rem}.expand-icon{color:#00f0ff;font-size:1.2rem}.sample-bot-content{border-top:1px solid #ffffff0d;padding:1rem 1.25rem}.run-cmd{color:#888;margin-top:.75rem;font-size:.8rem}.run-cmd code{color:#00f0ff;background:#00f0ff1a;border-radius:3px;padding:.2rem .4rem;font-size:.8rem}.tips-list{flex-direction:column;gap:.75rem;display:flex}.tip{color:#ccc;background:#ffc8000a;border-left:3px solid #ffc80066;border-radius:0 8px 8px 0;padding:.75rem 1rem;font-size:.85rem;line-height:1.5}.tip strong{color:#ffc800}.docs-section code{font-family:SF Mono,Fira Code,Consolas,monospace}p code,li code{color:#00f0ff;background:#00f0ff14;border-radius:3px;padding:.1rem .35rem;font-size:.85em}@media (width<=768px){.steps-grid,.rules-grid{grid-template-columns:1fr}.api-header{flex-direction:column;align-items:flex-start;gap:.3rem}}.app{color:#e0e0e0;background:#080c14;flex-direction:column;gap:16px;max-width:1200px;min-height:100vh;margin:0 auto;padding:20px 24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.app-header{justify-content:space-between;align-items:center;display:flex}.header-controls{align-items:center;gap:10px;display:flex}.mute-btn{cursor:pointer;background:0 0;border:1px solid #2a2d35;border-radius:6px;padding:4px 8px;font-size:16px;line-height:1;transition:background .15s}.mute-btn:hover{background:#1e2a3a}.mute-btn.muted{opacity:.5}.app-header h1{background:linear-gradient(135deg,#e94560 0%,#f39c12 50%,#4ecdc4 100%);-webkit-text-fill-color:transparent;letter-spacing:.5px;-webkit-background-clip:text;background-clip:text;margin:0;font-size:22px;font-weight:800}.connection-status{color:#6b7280;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.connected{background:#4ecdc4;animation:2s ease-in-out infinite status-pulse;box-shadow:0 0 8px #4ecdc480}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.6}}.status-dot.disconnected{background:#4b5563}.tab-navigation{border-bottom:2px solid #1e2a3a;gap:8px;padding-bottom:12px;display:flex}.tab-button{color:#6b7280;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-14px;padding:8px 16px;font-size:13px;font-weight:700;transition:color .2s,border-color .2s}.tab-button:hover{color:#e0e0e0}.tab-button.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.config-section{flex-direction:column;gap:0;display:flex}.config-toggle{color:#6b7280;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #1e2a3a;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:700;transition:color .2s,border-color .2s;display:flex}.config-toggle:hover{color:#e0e0e0;border-color:#4ecdc4}.config-chevron{font-size:8px;transition:transform .25s;display:inline-block}.config-chevron.open{transform:rotate(90deg)}.config-body{opacity:1;max-height:600px;margin-top:10px;transition:max-height .35s,opacity .25s,margin-top .25s;overflow:hidden}.config-body.collapsed{opacity:0;max-height:0;margin-top:0}.arena-layout{justify-content:center;align-items:flex-start;gap:16px;display:flex}.side-column{flex-direction:column;gap:12px;min-width:230px;max-width:240px;display:flex}.center-column{flex-direction:column;align-items:center;gap:12px;display:flex}.arena-shake{animation:.4s ease-out shake}@keyframes shake{0%{transform:translate(0)}10%{transform:translate(-6px,3px)}20%{transform:translate(5px,-4px)}30%{transform:translate(-4px,2px)}40%{transform:translate(3px,-2px)}50%{transform:translate(-2px,1px)}60%{transform:translate(2px,-1px)}70%{transform:translate(-1px,1px)}80%{transform:translate(1px)}to{transform:translate(0)}}.waiting,.welcome{text-align:center;color:#4b5563;padding:60px 20px}.welcome-icon{opacity:.3;margin-bottom:12px;font-size:48px}.welcome p{margin:0;font-size:15px}
