:root{--pokemon-blue-primary: #3b82f6;--pokemon-blue-secondary: #1e40af;--pokemon-yellow-primary: #fbbf24;--pokemon-yellow-secondary: #f59e0b;--pokemon-red-primary: #ef4444;--pokemon-red-secondary: #dc2626;--pokemon-green-primary: #10b981;--pokemon-green-secondary: #059669;--glass-bg-primary: rgba(255, 255, 255, .12);--glass-bg-secondary: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: rgba(0, 0, 0, .25);--bg-gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--bg-gradient-secondary: linear-gradient(145deg, #4f46e5 0%, #7c3aed 50%, #db2777 100%);--bg-gradient-accent: radial-gradient(ellipse at center, rgba(255, 215, 0, .15) 0%, transparent 70%);font-family:Kosugi,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#fffffff2;background:var(--bg-gradient-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}*:before,*:after{box-sizing:border-box}html{height:100%;overflow-x:hidden}body{margin:0;padding:0;min-height:100vh;width:100%;background:var(--bg-gradient-primary);background-attachment:fixed;font-family:Kosugi,system-ui,-apple-system,sans-serif;overflow-x:hidden}#root,.app{min-height:100vh;width:100%;display:flex;flex-direction:column}a{font-weight:600;color:var(--pokemon-blue-primary);text-decoration:none;transition:all .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.2)}a:hover{color:var(--pokemon-yellow-primary);text-shadow:0 2px 8px rgba(251,191,36,.4)}h1{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;line-height:1.1;margin:0;color:#fffffff2;text-shadow:0 4px 12px rgba(0,0,0,.5);letter-spacing:-.02em}h2{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;line-height:1.2;margin:0 0 1rem;color:#ffffffe6;text-shadow:0 2px 8px rgba(0,0,0,.4)}h3{font-size:clamp(1.125rem,2vw,1.5rem);font-weight:600;line-height:1.3;margin:0 0 .75rem;color:#ffffffe6;text-shadow:0 1px 4px rgba(0,0,0,.3)}p{color:#fffc;text-shadow:0 1px 2px rgba(0,0,0,.2);line-height:1.6}button{position:relative;border-radius:12px;border:2px solid transparent;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;font-family:"Kosugi",inherit;background:linear-gradient(145deg,var(--glass-bg-primary),var(--glass-bg-secondary));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fffffff2;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 4px 15px #0003,inset 0 1px #fff3;border:1px solid var(--glass-border);overflow:hidden}button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease}button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d,inset 0 1px #ffffff4d,0 0 20px #3b82f666;border-color:var(--pokemon-blue-primary)}button:hover:before{left:100%}button:active{transform:translateY(0);transition-duration:.1s}button:focus,button:focus-visible{outline:none;box-shadow:0 8px 25px #0000004d,inset 0 1px #ffffff4d,0 0 0 3px #3b82f680}button:disabled{opacity:.6;cursor:not-allowed;transform:none}.accent-blue{background:linear-gradient(145deg,var(--pokemon-blue-primary),var(--pokemon-blue-secondary))}.accent-yellow{background:linear-gradient(145deg,var(--pokemon-yellow-primary),var(--pokemon-yellow-secondary));color:#000000e6}.accent-red{background:linear-gradient(145deg,var(--pokemon-red-primary),var(--pokemon-red-secondary))}.accent-green{background:linear-gradient(145deg,var(--pokemon-green-primary),var(--pokemon-green-secondary))}.glass-surface{background:var(--glass-bg-primary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:0 8px 32px var(--glass-shadow),inset 0 1px #fff3}.glass-surface-alt{background:var(--glass-bg-secondary);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border:1px solid var(--glass-border);box-shadow:0 12px 40px var(--glass-shadow),inset 0 2px #ffffff26}@media (max-width: 768px){:root{font-size:14px}button{padding:.6rem 1.2rem;font-size:.85rem}}@media (max-width: 480px){:root{font-size:13px}button{padding:.5rem 1rem;font-size:.8rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.animate-fade-in{animation:fadeInUp .6s ease-out}.animate-slide-in{animation:slideInFromLeft .5s ease-out}.pokemon-card{position:relative;border-radius:4px;cursor:pointer;overflow:hidden;background:#2a3f5f;border:2px solid #4a6f8f;font-family:Inter,Source Sans Pro,system-ui,sans-serif}.pokemon-card:hover{border-color:#6a9fbf;background:#3a5f8f}.pokemon-card.size-small{width:65px;height:85px;font-size:9px}.pokemon-card.size-medium{width:80px;height:105px;font-size:10px}.pokemon-card.size-large{width:90px;height:120px;font-size:10px}.pokemon-card.selected{border:3px solid #4a9eff;background:#4a6f9f}.pokemon-card.opponent{border-color:#ff6b6b;background:#5f3a3a}.pokemon-card.opponent:hover{border-color:#ff8b8b;background:#7f4a4a}.pokemon-card.knocked-out{opacity:.5;filter:grayscale(50%)}.card-image-container{width:100%;height:100%;position:relative;border-radius:inherit;overflow:hidden;background:#3a5f8f}.card-main-image{width:100%;height:100%;object-fit:cover;border-radius:inherit}.energy-type-indicator{width:100%;height:100%;border-radius:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:700;position:absolute;top:0;left:0;gap:4px}.energy-symbol{font-size:18px;font-weight:700}.energy-name{font-size:8px;text-transform:uppercase;letter-spacing:.5px}.pokemon-card.size-medium .energy-symbol{font-size:20px}.pokemon-card.size-large .energy-symbol{font-size:24px}.pokemon-card.size-large .energy-name{font-size:9px}.energy-type-indicator.hidden{display:none}.click-overlay{position:absolute;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;opacity:0;border-radius:inherit;pointer-events:none;transition:opacity .2s ease}.pokemon-card:hover .click-overlay{opacity:1}.click-hint{font-size:20px;color:#fff;background:#4a9fffcc;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.knocked-out-overlay{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;border-radius:inherit}.ko-text{color:#ff6b6b;font-weight:700;font-size:14px;text-transform:uppercase}.pokemon-card:focus{outline:2px solid #4a9eff;outline-offset:2px}@media (max-width: 768px){.pokemon-card.size-small{width:70px;height:90px;font-size:9px}.pokemon-card.size-medium{width:90px;height:120px;font-size:10px}.pokemon-card.size-large{width:110px;height:150px;font-size:11px}.click-hint{width:28px;height:28px;font-size:18px}}.game-controls{background:linear-gradient(145deg,var(--glass-bg-primary),var(--glass-bg-secondary)),radial-gradient(ellipse at center,rgba(255,255,255,.05) 0%,transparent 70%);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border:2px solid var(--glass-border);border-radius:20px;padding:20px;max-width:100%;overflow-y:auto;max-height:600px;box-shadow:0 8px 30px #0000004d,inset 0 2px #fff3;font-family:Kosugi,sans-serif}.controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--glass-border)}.controls-header h3{margin:0;color:#fffffff2;font-size:20px;font-weight:700;text-shadow:0 2px 6px rgba(0,0,0,.4)}.turn-status{font-weight:800;font-size:14px;text-shadow:0 1px 3px rgba(0,0,0,.5)}.your-turn{color:var(--pokemon-green-primary);background:linear-gradient(145deg,#10b98133,#10b9811a),radial-gradient(ellipse,rgba(16,185,129,.1) 0%,transparent 70%);padding:6px 12px;border-radius:12px;border:1px solid var(--pokemon-green-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.opponent-turn{color:var(--pokemon-red-primary);background:linear-gradient(145deg,#ef444433,#ef44441a),radial-gradient(ellipse,rgba(239,68,68,.1) 0%,transparent 70%);padding:6px 12px;border-radius:12px;border:1px solid var(--pokemon-red-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.phase-info{display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px;background:linear-gradient(145deg,var(--glass-bg-secondary),rgba(255,255,255,.05)),radial-gradient(ellipse,var(--pokemon-blue-primary) 0%,transparent 80%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:14px;font-size:14px;border:1px solid var(--glass-border);box-shadow:0 4px 15px #0003,inset 0 1px #ffffff26}.phase-name{font-weight:800;color:var(--pokemon-blue-primary);text-transform:capitalize;text-shadow:0 1px 3px rgba(0,0,0,.4)}.turn-number{color:#fffc;text-shadow:0 1px 2px rgba(0,0,0,.3)}.section-label{font-weight:800;color:#fffffff2;margin-bottom:12px;font-size:15px;border-bottom:2px solid var(--pokemon-yellow-primary);padding-bottom:6px;text-shadow:0 2px 4px rgba(0,0,0,.4);text-transform:uppercase;letter-spacing:.5px}.manual-controls{display:flex;flex-direction:column;gap:24px}.pokemon-actions h4{margin:0 0 16px;color:#fffffff2;font-size:17px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.4)}.attack-section{margin-bottom:20px}.attack-btn{width:100%;background:linear-gradient(145deg,var(--glass-bg-primary),var(--glass-bg-secondary)),radial-gradient(ellipse,rgba(239,68,68,.1) 0%,transparent 70%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid var(--glass-border);border-radius:14px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:left;font-family:Kosugi,sans-serif;position:relative;overflow:hidden;box-shadow:0 4px 15px #0003,inset 0 1px #ffffff26}.attack-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.attack-btn:hover:not(.disabled){border-color:var(--pokemon-red-primary);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff3,0 0 20px #ef44444d;transform:translateY(-2px)}.attack-btn:hover:not(.disabled):before{left:100%}.attack-btn.selected{border-color:var(--pokemon-red-primary);background:linear-gradient(145deg,#ef444426,#ef444414),radial-gradient(ellipse,rgba(239,68,68,.15) 0%,transparent 70%);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff3,0 0 25px #ef444466}.attack-btn.disabled{opacity:.5;cursor:not-allowed;background:linear-gradient(145deg,#ffffff0d,#ffffff05);border-color:#ffffff1a}.attack-name{font-weight:800;color:#fffffff2;margin-bottom:6px;font-size:16px;text-shadow:0 2px 4px rgba(0,0,0,.5)}.attack-details{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.attack-damage{color:var(--pokemon-red-primary);font-weight:900;font-size:18px;text-shadow:0 2px 4px rgba(0,0,0,.5)}.attack-cost{color:#fffc;font-size:13px;background:linear-gradient(145deg,#0000004d,#00000026),radial-gradient(ellipse,var(--pokemon-yellow-primary) 0%,transparent 80%);padding:4px 10px;border-radius:8px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.attack-effect{font-size:12px;color:#fffc;font-style:italic;max-height:48px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.3);line-height:1.4}.energy-section{margin-bottom:20px}.energy-btn{width:100%;background:linear-gradient(145deg,var(--pokemon-yellow-primary),var(--pokemon-yellow-secondary));color:#000000e6;border:2px solid var(--pokemon-yellow-primary);border-radius:12px;padding:14px;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-bottom:12px;font-family:Kosugi,sans-serif;box-shadow:0 4px 15px #0003,inset 0 2px #ffffff4d;text-shadow:0 1px 2px rgba(0,0,0,.2)}.energy-btn:hover:not(:disabled){background:linear-gradient(145deg,var(--pokemon-yellow-secondary),#e97b00);transform:translateY(-2px);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff6,0 0 20px #fbbf2466}.energy-btn:disabled{background:linear-gradient(145deg,#ffffff1a,#ffffff0d);color:#ffffff80;cursor:not-allowed;border-color:#fff3}.energy-info{font-size:13px;color:#fffc;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.bench-actions{margin-bottom:20px}.switch-btn{width:100%;background:linear-gradient(145deg,var(--pokemon-green-primary),var(--pokemon-green-secondary));color:#fff;border:2px solid var(--pokemon-green-primary);border-radius:12px;padding:14px;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;gap:6px;font-family:Kosugi,sans-serif;box-shadow:0 4px 15px #0003,inset 0 2px #ffffff4d;text-shadow:0 1px 2px rgba(0,0,0,.3)}.switch-btn:hover:not(:disabled){background:linear-gradient(145deg,var(--pokemon-green-secondary),#047857);transform:translateY(-2px);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff6,0 0 20px #10b98166}.switch-btn:disabled{background:linear-gradient(145deg,#ffffff1a,#ffffff0d);color:#ffffff80;cursor:not-allowed;border-color:#fff3}.switch-target{font-size:13px;font-weight:600;opacity:.95}.turn-controls{margin-bottom:20px}.pass-turn-btn{width:100%;background:linear-gradient(145deg,var(--glass-bg-primary),var(--glass-bg-secondary)),radial-gradient(ellipse,rgba(255,255,255,.1) 0%,transparent 70%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fffffff2;border:2px solid var(--glass-border);border-radius:12px;padding:14px;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:Kosugi,sans-serif;box-shadow:0 4px 15px #0003,inset 0 2px #fff3;text-shadow:0 1px 2px rgba(0,0,0,.3)}.pass-turn-btn:hover:not(:disabled){border-color:var(--pokemon-blue-primary);box-shadow:0 8px 25px #0000004d,inset 0 2px #ffffff4d,0 0 20px #3b82f64d;transform:translateY(-2px)}.pass-turn-btn:disabled{background:linear-gradient(145deg,#ffffff0d,#ffffff05);cursor:not-allowed;opacity:.5}.auto-sim-controls{display:flex;flex-direction:column;gap:20px;padding:20px;background:linear-gradient(145deg,var(--glass-bg-secondary),rgba(255,255,255,.05)),radial-gradient(ellipse at center,var(--pokemon-blue-primary) 0%,transparent 80%);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:16px;border:1px solid var(--glass-border);box-shadow:0 6px 20px #00000040,inset 0 2px #ffffff26}.auto-sim-status{display:flex;justify-content:space-between;align-items:center}.status-indicator{display:flex;align-items:center;gap:10px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.3)}.status-indicator.running{color:var(--pokemon-green-primary)}.speed-display{color:#fffc;font-size:15px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.sim-controls{display:flex;gap:12px}.pause-btn,.step-btn{flex:1;background:linear-gradient(145deg,var(--pokemon-blue-primary),var(--pokemon-blue-secondary));color:#fff;border:2px solid var(--pokemon-blue-primary);border-radius:12px;padding:12px;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:Kosugi,sans-serif;box-shadow:0 4px 15px #0003,inset 0 2px #ffffff4d;text-shadow:0 1px 2px rgba(0,0,0,.3)}.pause-btn:hover,.step-btn:hover{background:linear-gradient(145deg,var(--pokemon-blue-secondary),#1d4ed8);transform:translateY(-2px);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff6,0 0 20px #3b82f666}.hand-preview{margin-top:24px;padding-top:20px;border-top:2px solid var(--glass-border)}.hand-cards{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--pokemon-blue-primary) transparent}.hand-cards::-webkit-scrollbar{width:6px}.hand-cards::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.hand-cards::-webkit-scrollbar-thumb{background:var(--pokemon-blue-primary);border-radius:3px}.hand-card{background:linear-gradient(145deg,var(--glass-bg-secondary),rgba(255,255,255,.05)),radial-gradient(ellipse,rgba(255,255,255,.08) 0%,transparent 70%);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid var(--glass-border);border-radius:12px;padding:12px;font-size:13px;transition:all .2s ease;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff1a}.hand-card:hover{transform:translate(4px);border-color:var(--pokemon-blue-primary);box-shadow:0 4px 15px #0003,inset 0 1px #ffffff26}.hand-card .card-name{font-weight:800;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.hand-card .card-type{color:#fffc;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.2)}.card-overflow{text-align:center;color:#fffc;font-size:13px;padding:8px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.game-status{margin-top:24px;padding-top:20px;border-top:2px solid var(--glass-border)}.winner-announcement{text-align:center;font-size:20px;font-weight:900;padding:16px;border-radius:16px;background:linear-gradient(145deg,#10b98133,#10b9811a),radial-gradient(ellipse,var(--pokemon-green-primary) 0%,transparent 80%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:var(--pokemon-green-primary);margin-bottom:16px;border:2px solid var(--pokemon-green-primary);text-shadow:0 2px 4px rgba(0,0,0,.4);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff3}.tie-announcement{text-align:center;font-size:20px;font-weight:900;padding:16px;border-radius:16px;background:linear-gradient(145deg,#fbbf2433,#fbbf241a),radial-gradient(ellipse,var(--pokemon-yellow-primary) 0%,transparent 80%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:var(--pokemon-yellow-primary);margin-bottom:16px;border:2px solid var(--pokemon-yellow-primary);text-shadow:0 2px 4px rgba(0,0,0,.4);box-shadow:0 8px 25px #0000004d,inset 0 2px #fff3}.loading-status{display:flex;align-items:center;justify-content:center;gap:12px;color:#fffc;font-size:15px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.loading-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.2);border-top:3px solid var(--pokemon-blue-primary);border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.game-controls{padding:16px;border-radius:16px}.controls-header h3{font-size:18px}.attack-btn{padding:14px}.attack-details{flex-direction:column;align-items:flex-start;gap:6px}.auto-sim-status{flex-direction:column;align-items:flex-start;gap:12px}.sim-controls{gap:8px}}@media (max-width: 480px){.game-controls{padding:12px}.phase-info{flex-direction:column;gap:8px;text-align:center}.controls-header{flex-direction:column;gap:8px}}.battle-log{background:#16213e;border:1px solid #2a3f5f;border-radius:4px;display:flex;flex-direction:column;height:100%;font-family:Inter,Source Sans Pro,system-ui,monospace;font-size:11px;color:#fff}.log-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #2a3f5f;background:#0f1419}.log-header h4{margin:0;color:#fff;font-size:14px;font-family:Inter,Source Sans Pro,system-ui,sans-serif}.log-controls{display:flex;align-items:center;gap:6px}.entry-count{color:#ccc;font-size:10px;background:#2a3f5f;padding:2px 6px;border-radius:3px}.clear-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:3px;color:#ccc}.clear-btn:hover{background:#2a3f5f;color:#fff}.log-container{flex:1;overflow-y:auto;padding:8px;background:#16213e}.log-entries{display:flex;flex-direction:column;gap:4px}.empty-log{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;text-align:center}.empty-message{font-size:12px;font-weight:500;margin-bottom:4px}.empty-hint{font-size:10px;opacity:.7}.log-entry{background:#1a2332;border:1px solid #2a3f5f;border-radius:3px;padding:6px;border-left:3px solid #2a3f5f;font-size:10px;line-height:1.3}.log-entry:hover{background:#1f2937}.log-entry.action{border-left-color:#4a9eff}.log-entry.effect{border-left-color:#a855f7}.log-entry.damage{border-left-color:#ff6b6b}.log-entry.status{border-left-color:#fbbf24}.log-entry.game{border-left-color:#4ade80}.log-entry.error{border-left-color:#dc2626}.log-entry.warning{border-left-color:#f59e0b}.log-entry.info{border-left-color:#6b7280}.log-entry-header{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:9px}.entry-icon{font-size:10px}.entry-timestamp{color:#888;font-weight:500;min-width:50px}.entry-type{color:#ccc;font-weight:700;font-size:8px;background:#ffffff1a;padding:1px 3px;border-radius:2px}.log-entry-content{font-size:10px;line-height:1.3}.entry-message{color:#fff;word-wrap:break-word}.entry-details{margin-top:4px}.details-toggle{background:none;border:1px solid #2a3f5f;color:#ccc;font-size:8px;padding:2px 4px;border-radius:2px;cursor:pointer}.details-toggle:hover{background:#2a3f5f;color:#fff}.details-content{margin-top:4px;padding:4px;background:#0003;border-radius:2px;border:1px solid #2a3f5f;font-family:monospace}.detail-item{display:flex;margin-bottom:1px;font-size:9px}.detail-key{color:#888;font-weight:700;min-width:60px;margin-right:6px}.detail-value{color:#fff;flex:1;word-break:break-all}.log-filters{display:flex;align-items:center;gap:4px;padding:6px 12px;border-top:1px solid #2a3f5f;background:#0f1419;flex-wrap:wrap}.filter-label{color:#888;font-size:10px;font-weight:500;margin-right:4px}.filter-btn{background:#2a3f5f;border:1px solid #4a6f8f;color:#ccc;font-size:9px;padding:3px 6px;border-radius:3px;cursor:pointer;font-family:Inter,Source Sans Pro,system-ui,sans-serif}.filter-btn:hover{background:#3a5f8f;color:#fff}.filter-btn.active{background:#4a9eff;border-color:#4a9eff;color:#fff}.log-container::-webkit-scrollbar{width:4px}.log-container::-webkit-scrollbar-track{background:#16213e}.log-container::-webkit-scrollbar-thumb{background:#2a3f5f;border-radius:2px}.log-container::-webkit-scrollbar-thumb:hover{background:#4a6f8f}@media (max-width: 768px){.battle-log{font-size:10px}.log-header{padding:6px 8px}.log-header h4{font-size:12px}.log-filters{padding:4px 8px;gap:3px}.filter-btn{padding:2px 4px;font-size:8px}.log-entry{padding:4px}.entry-message{font-size:9px}}.effect-display{position:relative;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:10}.effect-popup{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;background:#fffffff2;border:2px solid #e5e5e5;border-radius:12px;padding:8px 12px;box-shadow:0 4px 16px #0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:700;animation:effectPopup 2s ease-in-out forwards;z-index:100}.effect-popup.damage{border-color:#ef4444;background:#fef2f2f2;color:#dc2626}.effect-popup.heal{border-color:#10b981;background:#f0fdf4f2;color:#059669}.effect-popup.status{border-color:#f59e0b;background:#fffbebf2;color:#d97706}.effect-popup.energy{border-color:#eab308;background:#fefce8f2;color:#ca8a04}.effect-popup.coin_flip{border-color:#6b7280;background:#f9fafbf2;color:#374151}.effect-popup.card_draw{border-color:#3b82f6;background:#f0f7fff2;color:#2563eb}.effect-icon{font-size:20px;line-height:1}.effect-content{display:flex;flex-direction:column;align-items:center;gap:2px}.effect-message{font-size:12px;font-weight:600;white-space:nowrap}.effect-value{font-size:16px;font-weight:700;line-height:1}.central-effects{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:120px;display:flex;align-items:center;justify-content:center}.effect-stage{width:100%;height:100%;border:2px dashed #e5e5e5;border-radius:16px;background:#f8fafccc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;transition:all .3s ease}.effect-stage:hover{border-color:#d1d5db;background:#f3f4f6e6}.stage-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.stage-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.5}.placeholder-icon{font-size:24px}.placeholder-text{font-size:12px;color:#6b7280;font-weight:500}@keyframes effectPopup{0%{opacity:0;transform:translate(-50%,-50%) scale(.5) translateY(20px)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1) translateY(-10px)}30%{transform:translate(-50%,-50%) scale(1) translateY(0)}85%{opacity:1;transform:translate(-50%,-50%) scale(1) translateY(0)}to{opacity:0;transform:translate(-50%,-50%) scale(.8) translateY(-30px)}}@keyframes damageShake{0%,to{transform:translate(-50%,-50%) translate(0)}10%,30%,50%,70%,90%{transform:translate(-50%,-50%) translate(-2px)}20%,40%,60%,80%{transform:translate(-50%,-50%) translate(2px)}}@keyframes healPulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}@keyframes coinFlip{0%{transform:translate(-50%,-50%) rotateY(0)}50%{transform:translate(-50%,-50%) rotateY(180deg)}to{transform:translate(-50%,-50%) rotateY(360deg)}}.effect-popup.damage{animation:effectPopup 1.5s ease-in-out forwards,damageShake .5s ease-in-out}.effect-popup.heal{animation:effectPopup 2s ease-in-out forwards,healPulse .8s ease-in-out}.effect-popup.coin_flip{animation:effectPopup 3s ease-in-out forwards,coinFlip 1s ease-in-out}.floating-number{position:absolute;font-size:24px;font-weight:700;pointer-events:none;z-index:200;animation:floatNumber 2s ease-out forwards}.floating-number.damage{color:#dc2626;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.floating-number.heal{color:#059669;text-shadow:2px 2px 4px rgba(0,0,0,.3)}@keyframes floatNumber{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.coin-flip-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:12px;z-index:150}.coin{width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,gold,#ffed4a);border:2px solid #d97706;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#92400e;box-shadow:0 4px 8px #0003;animation:spinCoin 1s ease-in-out}@keyframes spinCoin{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.status-effect{position:absolute;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;animation:statusPulse 2s ease-in-out}.status-effect.burn{background:radial-gradient(circle,#ef44444d,#ef44441a)}.status-effect.poison{background:radial-gradient(circle,#a855f74d,#a855f71a)}@keyframes statusPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}}@media (max-width: 768px){.central-effects{width:160px;height:100px}.effect-popup{padding:6px 10px;font-size:11px}.effect-icon{font-size:16px}.effect-value{font-size:14px}.floating-number{font-size:20px}.coin{width:32px;height:32px;font-size:14px}}.testing-panel{width:350px;max-width:350px;min-width:300px;display:flex;flex-direction:column;gap:16px;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.1);overflow-y:auto;max-height:calc(100vh - 160px);font-size:14px;color:#fff}.testing-header{text-align:center;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.testing-header h3{margin:0;color:#fff;font-size:16px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.testing-header small{color:#ffffffb3;font-size:11px;font-weight:500;display:block;margin-bottom:8px}.load-mock-btn{background:#10b981;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;transition:background .2s ease}.load-mock-btn:hover{background:#059669}.card-search h4,.state-manipulation h4,.controls-section h4,.log-section h4{margin:0 0 8px;font-size:14px;color:#ffffffe6;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:4px}.search-input{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;color:#fff;font-size:12px;margin-bottom:8px}.search-input::placeholder{color:#fff9}.search-input:focus{outline:none;border-color:#3b82f6;background:#ffffff26}.card-list{max-height:150px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0003}.card-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .2s ease}.card-item:hover{background:#ffffff1a}.card-item.selected{background:#3b82f64d;border-color:#3b82f680}.card-item:last-child{border-bottom:none}.card-info{display:flex;flex-direction:column;gap:2px}.card-name{font-weight:700;font-size:12px;color:#fff}.card-type{font-size:10px;color:#ffffffb3}.details-btn{background:none;border:none;font-size:14px;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s ease}.details-btn:hover{background:#ffffff1a}.card-details{background:#0000004d;border-radius:8px;padding:12px;border:1px solid rgba(255,255,255,.1)}.card-details h4{margin:0 0 8px;color:#fff;font-size:14px}.card-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:11px;color:#fffc}.card-stats span{background:#ffffff1a;padding:2px 6px;border-radius:4px}.abilities,.attacks{margin-bottom:12px}.abilities h5,.attacks h5{margin:0 0 6px;font-size:12px;color:#ffffffe6}.ability,.attack{background:#ffffff0d;border-radius:6px;padding:8px;margin-bottom:6px;border:1px solid rgba(255,255,255,.1)}.ability-header,.attack-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.ability-name,.attack-name{font-weight:700;font-size:11px;color:#fff}.attack-damage{font-size:11px;color:#ef4444;font-weight:700}.trigger-btn{background:#3b82f6;color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:10px;cursor:pointer;transition:background .2s ease}.trigger-btn:hover{background:#2563eb}.ability-text,.attack-text{font-size:10px;color:#fffc;margin:0;line-height:1.3}.hp-controls{background:#0003;border-radius:8px;padding:10px}.hp-controls h5{margin:0 0 8px;font-size:12px;color:#ffffffe6}.pokemon-hp-control{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px}.pokemon-hp-control span{color:#ffffffe6}.hp-buttons{display:flex;gap:4px}.hp-buttons button{background:#6b7280;color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:10px;cursor:pointer;transition:background .2s ease}.hp-buttons button:hover{background:#4b5563}.controls-section,.log-section{background:#0003;border-radius:8px;padding:10px}@media (max-width: 1200px){.testing-panel{width:300px;min-width:280px}}@media (max-width: 900px){.testing-panel{width:100%;max-width:none;min-width:auto;max-height:300px}.card-list{max-height:120px}}.testing-panel::-webkit-scrollbar,.card-list::-webkit-scrollbar{width:6px}.testing-panel::-webkit-scrollbar-track,.card-list::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.testing-panel::-webkit-scrollbar-thumb,.card-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.testing-panel::-webkit-scrollbar-thumb:hover,.card-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}.card-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:modalFadeIn .3s ease-out;padding:20px}@keyframes modalFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.card-modal-container{position:relative;max-width:900px;max-height:90vh;width:100%;background:linear-gradient(145deg,#fffffff2,#f8fafce6);border-radius:20px;border:2px solid;border-image:linear-gradient(45deg,gold,orange,tomato,gold) 1;box-shadow:0 20px 60px #0006,inset 0 1px #fff9,0 0 0 1px #ffd7004d;overflow:hidden;animation:modalSlideIn .3s ease-out;transform-origin:center}@keyframes modalSlideIn{0%{transform:scale(.8) translateY(50px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.card-modal-close{position:absolute;top:15px;right:20px;background:#0000001a;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-modal-close:hover{background:#ef44441a;color:#ef4444;transform:scale(1.1)}.card-modal-content{display:flex;height:100%;max-height:600px;min-height:500px}.card-modal-image-section{flex:0 0 300px;display:flex;align-items:center;justify-content:center;padding:30px;background:radial-gradient(ellipse at center,#ffffffe6,#e2e8f0cc);position:relative}.card-modal-image{width:240px;height:320px;border-radius:15px;overflow:hidden;position:relative;box-shadow:0 15px 40px #0000004d,0 0 0 3px #ffffff80,0 0 20px #ffd70033;transition:transform .3s ease;background:linear-gradient(135deg,#e0f2fe,#bae6fd,#7dd3fc,#38bdf8);display:flex;align-items:center;justify-content:center}.card-modal-image:hover{transform:scale(1.02) rotateY(5deg)}.card-modal-image img{width:100%;height:100%;object-fit:cover;border-radius:15px}.modal-energy-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);border-radius:15px;width:100%;height:100%;gap:10px}.modal-energy-indicator.hidden{display:none}.energy-symbol{font-size:48px;text-shadow:0 4px 8px rgba(0,0,0,.6)}.energy-name{font-size:18px;text-transform:uppercase;letter-spacing:2px}.modal-status-overlay{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:5px;z-index:5}.modal-status-effect{display:flex;align-items:center;gap:5px;background:#000c;color:#fff;padding:5px 10px;border-radius:15px;font-size:12px;font-weight:700;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2)}.modal-status-effect.burned{background:#dc2626e6}.modal-status-effect.poisoned{background:#a855f7e6}.modal-status-effect.asleep{background:#3b82f6e6}.modal-status-effect.paralyzed{background:#eab308e6}.modal-status-effect.confused{background:#ec4899e6}.modal-damage-counter{position:absolute;top:10px;right:10px;background:linear-gradient(145deg,#dc2626,#b91c1c);color:#fff;padding:8px 12px;border-radius:10px;font-weight:700;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 12px #dc262666;border:2px solid rgba(255,255,255,.3)}.damage-amount{font-size:16px;line-height:1}.damage-label{font-size:10px;opacity:.8}.modal-ko-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;border-radius:15px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ko-text{color:#ef4444;font-weight:700;font-size:24px;text-shadow:0 0 10px rgba(239,68,68,.8),0 2px 4px rgba(0,0,0,.5);letter-spacing:2px}.card-modal-details-section{flex:1;padding:30px;overflow-y:auto;background:#ffffff0d}.card-modal-details-section::-webkit-scrollbar{width:8px}.card-modal-details-section::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.card-modal-details-section::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.card-modal-details-section::-webkit-scrollbar-thumb:hover{background:#0000004d}.card-modal-header{margin-bottom:25px;border-bottom:2px solid rgba(255,215,0,.3);padding-bottom:15px}.card-name{font-size:28px;font-weight:800;color:#1f2937;margin:0 0 8px;text-shadow:0 2px 4px rgba(255,255,255,.5)}.card-type-info{display:flex;gap:15px;font-size:14px;color:#6b7280}.card-type{font-weight:600}.evolution-stage{font-style:italic;color:#7c3aed}.hp-section{margin-bottom:25px;background:#ffffff80;border-radius:12px;padding:15px;border:1px solid rgba(255,215,0,.2)}.hp-display{display:flex;align-items:baseline;gap:5px;margin-bottom:10px}.hp-current{font-size:32px;font-weight:800;color:#1f2937}.hp-separator{font-size:24px;color:#6b7280}.hp-max{font-size:24px;font-weight:600;color:#6b7280}.hp-label{font-size:16px;font-weight:700;color:#ef4444;margin-left:10px}.hp-bar-container{width:100%;height:8px;background:linear-gradient(90deg,#e5e5e5cc,#d1d5dbe6);border-radius:4px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.hp-bar-fill{height:100%;border-radius:4px;transition:width .5s ease,background-color .3s ease;box-shadow:inset 0 1px #ffffff4d,0 0 8px #0003}.energy-section{margin-bottom:25px}.energy-section h3{margin:0 0 15px;color:#1f2937;font-size:18px;font-weight:700}.energy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:8px;max-width:300px}.energy-card{width:50px;height:50px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px;border:2px solid rgba(255,255,255,.3);box-shadow:0 4px 8px #0003,inset 0 1px #ffffff4d;transition:transform .2s ease}.energy-card:hover{transform:scale(1.1)}.abilities-section,.attacks-section{margin-bottom:25px}.abilities-section h3,.attacks-section h3{margin:0 0 15px;color:#1f2937;font-size:18px;font-weight:700}.abilities-list,.attacks-list{display:flex;flex-direction:column;gap:15px}.ability-item,.attack-item{background:#ffffffb3;border-radius:12px;padding:15px;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #0000000d;transition:transform .2s ease,box-shadow .2s ease}.ability-item:hover,.attack-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.ability-header,.attack-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ability-name,.attack-name{font-weight:700;color:#1f2937;font-size:16px}.ability-type{font-size:12px;color:#7c3aed;font-style:italic}.attack-damage{font-weight:800;color:#dc2626;font-size:18px;background:#dc26261a;padding:4px 8px;border-radius:6px}.energy-cost{display:flex;gap:4px;margin:8px 0}.energy-cost-pip{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;border:1px solid rgba(255,255,255,.3);box-shadow:0 2px 4px #0003}.ability-description,.attack-description{color:#374151;font-size:14px;line-height:1.5;margin:8px 0 0;font-style:italic}.ability-action-btn,.attack-action-btn{margin-top:12px;padding:8px 16px;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s ease;font-size:14px}.ability-action-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.ability-action-btn:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.attack-action-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.attack-action-btn:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.ability-action-btn:disabled,.attack-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.card-info-section{background:#ffffff4d;border-radius:8px;padding:15px;margin-top:20px;font-size:14px;color:#374151}.weakness-info,.retreat-cost-info,.rarity-info{margin-bottom:8px}.weakness-info:last-child,.retreat-cost-info:last-child,.rarity-info:last-child{margin-bottom:0}@media (max-width: 768px){.card-modal-overlay{padding:10px}.card-modal-container{max-height:95vh}.card-modal-content{flex-direction:column;max-height:none;min-height:auto}.card-modal-image-section{flex:0 0 auto;padding:20px}.card-modal-image{width:200px;height:280px}.card-modal-details-section{padding:20px;max-height:400px}.card-name{font-size:24px}.hp-current{font-size:28px}.energy-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.energy-card{width:40px;height:40px;font-size:16px}}@media (max-width: 480px){.card-modal-image{width:160px;height:220px}.card-modal-details-section{padding:15px}.card-name{font-size:20px}.hp-current{font-size:24px}.abilities-section h3,.attacks-section h3{font-size:16px}.ability-name,.attack-name{font-size:14px}}.ability-item,.attack-item{transform-origin:center}.ability-action-btn:active,.attack-action-btn:active{transform:translateY(0) scale(.95)}.card-modal-image-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,215,0,.1) 0%,transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s ease}.card-modal-image-section:hover:before{opacity:1}.battle-field{width:100%;height:100%;min-height:calc(100vh - 80px);background:#1a1a2e;display:flex;flex-direction:column;font-family:Inter,Source Sans Pro,system-ui,-apple-system,sans-serif;overflow:hidden;color:#fff;margin:0;padding:0;box-sizing:border-box}.battle-field.loading{display:flex;align-items:center;justify-content:center}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.battle-content{display:grid;grid-template-columns:1fr 280px;width:100%;height:100%;gap:8px;padding:8px;box-sizing:border-box;max-width:100%;overflow:hidden}.mobile-game-area{display:flex;flex-direction:column;gap:4px;background:#16213e;border:2px solid #2a3f5f;border-radius:4px;padding:4px;height:calc(100% - 16px);overflow:hidden;box-sizing:border-box;justify-content:space-between;min-width:0}.game-area{flex:1;display:flex;flex-direction:column;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.2);position:relative}.pokemon-slot{position:relative}.empty-slot{width:65px;height:85px;border:2px dashed #666;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#ccc;font-size:10px;background:#2a3f5f;cursor:pointer}.empty-slot:hover{border-color:#4a9eff;background:#3a5f8f}.active-slot .empty-slot{width:90px;height:120px;border-color:gold;color:gold;background:#3a3f2f}.active-slot .empty-slot:hover{background:#4a4f3f}.opponent-bench,.player-bench{display:flex;align-items:center;justify-content:center;gap:4px;background:#0f1419;border:1px solid #2a3f5f;border-radius:4px;padding:4px}.bench-slots.horizontal{display:flex;gap:8px;justify-content:center}.opponent-active,.player-active{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;background:#1a2332;border:2px solid #3a5f8f;border-radius:4px}.opponent-active{border-color:#ff6b6b;background:#2d1a1a}.player-active{border-color:#4ade80;background:#1a2d1a}.center-battle-area{display:flex;justify-content:center;padding:4px;background:#0f1419;border:1px solid #2a3f5f;border-radius:4px}.deck-counters{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.deck-pile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:#2a3f5f;border:2px solid #ffd700;border-radius:4px;min-width:60px;cursor:pointer}.pile-count{font-size:18px;font-weight:700;color:gold}.pile-label{font-size:10px;color:#ccc;text-align:center;font-weight:600;text-transform:uppercase}.pokemon-slot.large .empty-slot{width:120px;height:160px;font-size:12px}.pokemon-slot.bench-slot .empty-slot{width:80px;height:100px;font-size:11px}.score{color:gold;font-weight:700;background:#2a3f5f;padding:6px 12px;border-radius:4px;font-size:12px;border:1px solid #ffd700}.testing-panel{display:flex;flex-direction:column;gap:8px;background:#16213e;border:1px solid #2a3f5f;border-radius:4px;padding:12px;overflow-y:auto;height:100%}.testing-header{text-align:center;padding-bottom:8px;border-bottom:1px solid #2a3f5f}.testing-header h3{margin:0;color:#fff;font-size:14px}.testing-header small{color:#ccc;font-size:11px}.side-panel{display:flex;flex-direction:column;gap:16px;overflow-y:auto;height:100%}.connection-status{position:fixed;bottom:16px;right:16px;padding:6px 12px;border-radius:4px;font-weight:700;font-size:11px;z-index:1000}.connection-status.disconnected{background:#dc2626;color:#fff;border:1px solid #ef4444}@media (min-width: 1200px){.battle-content{grid-template-columns:1fr 300px;padding:12px;gap:12px}}@media (max-width: 1400px){.mobile-game-area{gap:4px;padding:4px}.opponent-bench,.player-bench{padding:4px}.opponent-active,.player-active{padding:4px;gap:3px}.center-battle-area{padding:4px}.battle-content{grid-template-columns:1fr 260px;padding:6px;gap:6px}}@media (max-width: 1200px){.battle-content{grid-template-columns:1fr 250px;gap:8px;padding:6px}}@media (max-width: 900px){.battle-content{grid-template-columns:1fr;grid-template-rows:1fr auto;padding:4px;gap:6px}.mobile-game-area{gap:6px;padding:6px}.testing-panel,.side-panel{max-height:150px}}@media (max-width: 768px){.battle-content,.mobile-game-area{padding:8px;gap:8px}}@media (max-width: 480px){.empty-slot{width:60px;height:80px;font-size:10px}.active-slot .empty-slot{width:100px;height:130px}.pile-count{font-size:16px}}.deck-pile:hover{background:#3a5f8f}.app{width:100vw;height:100vh;margin:0;padding:0;overflow:auto;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:auto;background:linear-gradient(135deg,#1e3a8a,#3730a3,#7c3aed,#3730a3,#1e3a8a);background-size:400% 400%;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}button{border:none;outline:none;cursor:pointer;font-family:inherit}button:focus{outline:2px solid #3b82f6;outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}::-webkit-scrollbar-thumb{background:#0000004d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000080}.app{position:relative}@media print{.app{display:none}}
