.shared-info-trigger{appearance:none;border:0;background:transparent;color:inherit;margin:0;padding:0;border-radius:4px;cursor:help;text-decoration:none;font-family:inherit;position:relative;display:inline-flex;align-items:center;gap:3px}.shared-info-trigger:not(.type-badge):not(.buff-tag):not(.tag-pill):not(.ability-chip):not(.shared-info-pill){border:1px solid rgba(245,166,35,.28);background:#f5a6231a;padding:0 4px;border-radius:5px}.shared-info-trigger:hover:not(.type-badge):not(.buff-tag):not(.tag-pill):not(.ability-chip):not(.shared-info-pill){color:var(--primary-dark);background:#f5a62333;border-color:#f5a6238c}.shared-info-trigger:focus-visible{outline:2px solid rgba(245,166,35,.38);outline-offset:2px}.shared-info-trigger.type-badge{color:#fff;text-decoration:none}.shared-info-trigger.t-electric,.shared-info-trigger.t-ice,.shared-info-trigger.t-ground,.shared-info-trigger.t-steel,.shared-info-trigger.t-light{color:#5a4000}.shared-info-trigger.t-steel{color:#444}.shared-info-trigger[data-tip]:hover:after,.shared-info-trigger[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 7px);z-index:140;width:max-content;max-width:280px;white-space:normal;background:var(--bg-page);color:var(--text-primary);border:2px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:7px 10px;font-size:11px;font-weight:600;line-height:1.45;pointer-events:none}.shared-info-trigger[data-tip]:hover:before,.shared-info-trigger[data-tip]:focus-visible:before{content:"";position:absolute;left:10px;bottom:calc(100% + 2px);z-index:141;border:6px solid transparent;border-top-color:var(--border);pointer-events:none}.shared-info-trigger.info-tip-below:hover:after,.shared-info-trigger.info-tip-below:focus-visible:after{left:0;bottom:auto;top:calc(100% + 5px);width:220px;max-width:220px;font-size:10px;padding:6px 8px}.shared-info-trigger.info-tip-below:hover:before,.shared-info-trigger.info-tip-below:focus-visible:before{left:10px;bottom:auto;top:calc(100% + 0px);border-top-color:transparent;border-bottom-color:var(--border)}.shared-info-mark{display:inline;color:currentColor;font-size:10px;font-weight:900;line-height:1;opacity:.72}.shared-info-overlay{position:fixed;inset:0;z-index:240;background:#4a372880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.shared-info-card{background:var(--bg-page);border:2px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:min(440px,calc(100vw - 28px));max-height:80vh;overflow:auto;padding:16px}.shared-info-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:12px}.shared-info-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:15px;font-weight:900;color:var(--text-primary);margin:0}.shared-info-close{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}.shared-info-close:hover{color:var(--text-primary)}.shared-info-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.shared-info-body{display:grid;gap:6px}.shared-info-pill{background:#f5a6231f;border:1px solid rgba(245,166,35,.28);border-radius:999px;color:var(--primary-dark);font-size:10px;font-weight:700;line-height:1.4;padding:2px 8px;white-space:nowrap}.shared-info-section-title{font-size:11px;font-weight:800;color:var(--text-muted);margin-bottom:6px}.shared-info-desc{color:var(--text-primary);font-size:13px;line-height:1.65}.shared-info-popover{position:fixed;z-index:140;width:min(300px,calc(100vw - 18px));max-height:min(460px,calc(100vh - 18px));overflow:auto;padding:12px;border-radius:var(--r-xl);background:var(--bg-page);border:2px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text-primary)}.shared-info-popover-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border)}.battle-page{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-page)}#top-bar{background:var(--bg-topbar);padding:0 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:48px;box-shadow:0 3px 12px #c896324d;position:relative;z-index:100}#top-bar .logo{height:28px;filter:brightness(10);margin-right:4px}#top-bar h1{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:16px;font-weight:700;color:var(--text-light);text-shadow:1px 2px 4px rgba(0,0,0,.15);letter-spacing:1px;display:flex;align-items:center;gap:8px;white-space:nowrap;flex-shrink:0}#turn-info{font-size:12px;color:var(--text-primary);background:#ffffffb3;padding:3px 12px;border-radius:var(--r-pill);border:1px solid var(--border);font-weight:600;white-space:nowrap;flex-shrink:0}#conn-status{font-size:11px;padding:3px 10px;border-radius:var(--r-pill);background:#ffffffb3;border:1px solid var(--border);white-space:nowrap;flex-shrink:0}#conn-status.connected{color:var(--hp-green);border-color:#5cb85c80}#conn-status.disconnected{color:var(--hp-red);border-color:#d9534f66}#wasm-ai-status{--gpu-progress: 0%;font-size:11px;padding:3px 10px;border-radius:var(--r-pill);min-width:108px;text-align:center;background:linear-gradient(90deg,rgba(92,184,92,.2) var(--gpu-progress),rgba(255,255,255,.7) var(--gpu-progress));border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;transition:background .18s ease,color .18s ease,border-color .18s ease}#wasm-ai-status.ready{color:var(--hp-green);border-color:#5cb85c80}#wasm-ai-status.loading{color:var(--primary-dark);border-color:#f5a62373}#wasm-ai-status.fallback{color:var(--status-orange);border-color:#e67e2259}.topbar-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.topbar-select-pill{display:flex;align-items:center;gap:6px;min-width:0;background:#ffffffc2;border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 6px 3px 9px;color:var(--text-primary);font-size:11px;font-weight:700;white-space:nowrap}.topbar-select-pill .ai-strategy-select{width:190px;max-width:20vw;border:none;outline:none;background:transparent;color:var(--text-primary);font-family:RocoBody,system-ui,sans-serif;font-size:11px;font-weight:700}.topbar-select-pill .battle-mode-select{width:88px;max-width:12vw}#ai-restart-btn{border:1px solid rgba(245,166,35,.45);border-radius:var(--r-pill);background:#ffffffe0;color:var(--primary-dark);font-family:RocoBody,system-ui,sans-serif;font-size:11px;font-weight:800;padding:3px 9px;cursor:pointer}#ai-restart-btn:hover{background:#fff7e8}@media(max-width:900px){#top-bar{padding:0 10px;gap:8px}#top-bar h1{font-size:13px}.topbar-select-pill span{display:none}.topbar-select-pill .ai-strategy-select{width:135px;max-width:27vw}.topbar-select-pill .battle-mode-select{width:80px;max-width:18vw}#ai-restart-btn{padding:3px 7px}#wasm-ai-status{min-width:92px;padding:3px 7px}}@media(max-width:760px){.battle-page{width:100%;max-width:100vw;overflow:hidden}.battle-page #top-bar{height:auto;min-height:0;padding:8px 10px 10px;flex-direction:column;align-items:stretch;gap:8px;overflow:hidden}.battle-page #top-bar h1{justify-content:center;min-width:0;font-size:15px;line-height:1.15;letter-spacing:0;text-align:center;white-space:normal}.battle-page #top-bar .logo{display:none}.battle-page #turn-info{align-self:center;max-width:100%;padding:3px 10px;font-size:11px;overflow:hidden;text-overflow:ellipsis}.battle-page .topbar-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;min-width:0}.battle-page .topbar-select-pill{width:100%;min-width:0;padding:4px 7px}.battle-page .topbar-select-pill span{display:inline;flex:0 0 auto;font-size:10px}.battle-page .topbar-select-pill .ai-strategy-select,.battle-page .topbar-select-pill .battle-mode-select{width:100%;max-width:none;min-width:0;font-size:11px}.battle-page #ai-restart-btn,.battle-page #wasm-ai-status,.battle-page #conn-status{width:100%;min-width:0;padding:4px 6px;font-size:10px;text-align:center;overflow:hidden;text-overflow:ellipsis}}#main{display:grid;grid-template-columns:1fr 300px;flex:1;min-height:0;overflow:hidden}.battle-page #main{grid-template-columns:minmax(0,1fr) 300px}@media(max-width:760px){.battle-page #main{display:flex;flex-direction:column;width:100%;max-width:100vw;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}}#battlefield{display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--bg-page);overscroll-behavior:contain}#arena{position:relative;height:320px;flex-shrink:0;overflow:hidden;background:linear-gradient(180deg,#87ceeb,#b0dcf0 30%,#c8e6c9 55%,#7cb342 68%,#558b2f 85%,#33691e)}#arena:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 35% 12% at 15% 18%,rgba(255,255,255,.55) 0%,transparent 70%),radial-gradient(ellipse 25% 10% at 60% 12%,rgba(255,255,255,.45) 0%,transparent 70%),radial-gradient(ellipse 18% 8% at 82% 22%,rgba(255,255,255,.35) 0%,transparent 70%),radial-gradient(ellipse 22% 9% at 40% 25%,rgba(255,255,255,.3) 0%,transparent 70%);pointer-events:none}#arena:after{content:"";position:absolute;bottom:0;left:0;right:0;height:38%;background:linear-gradient(180deg,#7cb342,#689f38 40%,#558b2f);pointer-events:none}.platform{position:absolute;bottom:30%;width:180px;height:28px;border-radius:50%;pointer-events:none;z-index:1}#plat-a{left:18%;transform:translate(-50%);background:radial-gradient(ellipse,rgba(76,175,80,.5) 0%,rgba(56,142,60,.3) 50%,transparent 70%);box-shadow:0 2px 12px #0003}#plat-b{right:18%;transform:translate(50%);background:radial-gradient(ellipse,rgba(76,175,80,.5) 0%,rgba(56,142,60,.3) 50%,transparent 70%);box-shadow:0 2px 12px #0003}.field-line{position:absolute;bottom:38%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(100,200,120,.25),transparent);pointer-events:none}.hp-panel{position:absolute;top:10px;width:224px;background:#fffdf9eb;border:2px solid var(--border);border-radius:var(--r-md);padding:6px 10px;box-shadow:var(--shadow-md);color:var(--text-primary);z-index:2}#hpbar-a{left:10px}#hpbar-b{right:10px}.hpbar-top{display:flex;align-items:center;gap:5px;margin-bottom:4px}.hpbar-name{font-size:12px;font-weight:700;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-page button.info-link:not(.type-badge):not(.buff-tag):not(.tag-pill),.battle-page button.skill-link,.battle-page button.condition-label{appearance:none;border:0;box-shadow:none;background:transparent;margin:0;padding:0;font-family:inherit;text-align:inherit}.battle-page button.type-badge,.battle-page button.buff-tag,.battle-page button.tag-pill{appearance:none;margin:0;font-family:inherit;cursor:pointer}.type-badge{font-size:9px;padding:1px 6px;border-radius:5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;color:#fff}.energy-row{display:flex;gap:4px;margin-bottom:4px;align-items:center;min-width:0}.energy-label{font-size:8px;color:var(--text-secondary);margin-right:4px}#energy-a,#energy-b,.energy-dots{display:flex;gap:2px;min-width:0;flex:1;overflow:hidden}.energy-count{margin-left:auto;min-width:34px;text-align:right;font-size:8px;font-weight:800;color:var(--primary-dark)}.e-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--border);border:1px solid var(--border-strong);transition:background .2s,box-shadow .2s}.e-dot.on{background:var(--energy-blue);border-color:#0288d1;box-shadow:0 0 4px #4fc3f799}.hp-track{height:8px;background:var(--border);border:1px solid var(--border-strong);border-radius:4px;overflow:hidden;margin-bottom:2px;position:relative}.hp-fill{height:100%;border-radius:3px;transition:width .45s ease,background .45s;background:linear-gradient(180deg,#00dd60,#00bb51,#007734)}.hp-fill.hp-yellow{background:linear-gradient(180deg,#f8e379,#f5d538,#be9f0a)}.hp-fill.hp-red{background:linear-gradient(180deg,#f37f67,#ee4928,#a3260d)}.hp-text{font-size:9px;color:var(--text-secondary);display:flex;justify-content:space-between}.buff-row{display:grid;gap:2px;margin-top:5px;min-height:46px}.condition-line{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:4px;min-height:14px}.condition-label{font-size:8px;color:var(--text-muted);font-weight:700;line-height:15px}.condition-tags{display:flex;flex-wrap:wrap;gap:2px;min-width:0}.buff-tag{font-size:8px;padding:1px 5px;border-radius:6px;font-weight:600;line-height:1.5;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buff-up{background:#3498db1f;color:#2980b9;border:1px solid rgba(52,152,219,.3)}.buff-down{background:#c0392b1a;color:#c0392b;border:1px solid rgba(192,57,43,.25)}.buff-ability{background:#9b59b61f;color:#8e44ad;border:1px solid rgba(155,89,182,.3)}.buff-runtime{background:#27ae601f;color:#1e7e50;border:1px solid rgba(39,174,96,.28)}.buff-status{background:#e67e221f;color:#d35400;border:1px solid rgba(230,126,34,.3)}.buff-cute{background:#f472b626;color:#e91e9c;border:1px solid rgba(244,114,182,.3)}.buff-empty{background:#aa967814;color:var(--text-muted);border:1px solid rgba(170,150,120,.18)}.poke-slot,.mini-poke{cursor:help}.poke-popover-layer{position:fixed;inset:0;z-index:210;pointer-events:none}.poke-popover-layer .poke-popover{pointer-events:auto}.poke-popover{position:fixed;width:min(300px,calc(100vw - 18px));max-height:min(460px,calc(100vh - 18px));overflow:auto;padding:12px;border-radius:var(--r-xl);background:var(--bg-page);border:2px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text-primary)}.shared-info-popover.poke-popover{overflow:hidden;padding:12px 6px 12px 12px}.poke-popover-scroll{max-height:min(432px,calc(100vh - 44px));overflow-y:auto;padding-right:6px;scrollbar-gutter:stable}.poke-popover-scroll::-webkit-scrollbar{width:8px}.poke-popover-scroll::-webkit-scrollbar-track{background:#e2d5c36b;border-radius:999px}.poke-popover-scroll::-webkit-scrollbar-thumb{background:#b09a7eb8;border-radius:999px}.poke-popover[hidden]{display:none}.pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border)}.pop-name{font-weight:900;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pop-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pop-side{font-size:10px;color:var(--text-muted);font-weight:700;white-space:nowrap}.poke-popover-close{display:none;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--r-pill);background:#ffffffb8;color:var(--text-muted);cursor:pointer;font-family:RocoBody,system-ui,sans-serif;font-size:15px;font-weight:900;line-height:1}.poke-popover-close:hover{color:var(--text-primary);border-color:var(--primary);background:#f5a6231a}.pop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:8px}.pop-stat{min-height:24px;padding:4px 7px;border-radius:var(--r-sm);background:#ffffff9e;border:1px solid var(--border);font-size:10px;display:flex;align-items:center;gap:4px}.pop-ability{grid-column:1 / -1}.pop-section{margin-top:8px;padding-top:8px;border-top:1px solid rgba(226,213,195,.75)}.pop-title{color:var(--text-muted);font-size:10px;font-weight:900;margin-bottom:4px}.pop-title .info-link{color:inherit;text-decoration:none}.pop-tags{display:flex;flex-wrap:wrap;gap:3px}.pop-skills{display:grid;gap:4px}.pop-skill{display:grid;gap:3px;padding:6px 7px;border-radius:var(--r-sm);background:#ffffffa8;border:1px solid var(--border);font-size:10px}.pop-skill-main{display:flex;align-items:center;justify-content:space-between;gap:6px}.pop-skill-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pop-skill-meta{display:flex;flex-wrap:wrap;gap:4px;color:var(--text-secondary);align-items:center}.pop-skill.unknown{color:var(--text-muted);background:#aa967814;border-style:dashed}.mp-wrap{position:absolute;top:14px;display:flex;gap:5px;align-items:center}#mp-a{left:250px}#mp-b{right:250px;flex-direction:row-reverse}.mp-gem{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#7dd3fc,#0284c7);box-shadow:0 0 6px #4fc3f799;transition:all .3s}.mp-gem.lost{background:#c8beaa4d;box-shadow:none}.poke-slot{position:absolute;bottom:calc(30% - 5px);display:flex;flex-direction:column;align-items:center;gap:4px;transition:transform .18s ease;z-index:2}#slot-a{left:18%;transform:translate(-50%)}#slot-b{right:18%;transform:translate(50%)}.sprite-img{width:120px;height:120px;object-fit:contain;filter:drop-shadow(2px 4px 6px rgba(0,0,0,.4));transition:opacity .35s,filter .35s;image-rendering:-webkit-optimize-contrast}#sprite-a .sprite-img{transform:scaleX(-1)}.sprite-glow{position:absolute;bottom:-8px;width:100px;height:24px;border-radius:50%;pointer-events:none;border:2px solid transparent}#slot-a .sprite-glow{border-color:#3498dbb3;background:radial-gradient(ellipse,rgba(52,152,219,.2) 0%,transparent 70%);box-shadow:0 0 12px #3498db80,0 0 24px #3498db33}#slot-b .sprite-glow{border-color:#e74c3cb3;background:radial-gradient(ellipse,rgba(231,76,60,.2) 0%,transparent 70%);box-shadow:0 0 12px #e74c3c80,0 0 24px #e74c3c33}.sprite-emoji{width:120px;height:120px;display:flex;align-items:center;justify-content:center;font-size:64px;filter:drop-shadow(0 6px 16px rgba(0,0,0,.5))}#sprite-a .sprite-emoji{transform:scaleX(-1)}.sprite-label{font-size:10px;font-weight:700;color:var(--text-primary);text-shadow:0 1px 2px rgba(255,255,255,.8);background:#fffdf9bf;padding:1px 8px;border-radius:8px}.shield-overlay{position:absolute;width:64px;height:84px;border-radius:50% 50% 40% 40%;border:2px solid;opacity:0;pointer-events:none;z-index:5;transition:opacity .2s}#shield-a{left:calc(18% + 28px);bottom:34%;border-color:#3498dbe6;background:#3498db1a;box-shadow:0 0 20px #3498db80;transform:translate(-50%)}#shield-b{right:calc(18% + 28px);bottom:34%;border-color:#e74c3ce6;background:#e74c3c1a;box-shadow:0 0 20px #e74c3c80;transform:translate(50%)}.shield-overlay.show{opacity:1}.shield-overlay:before{content:"🛡";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;filter:drop-shadow(0 0 4px currentColor)}.t-normal{background:#a8a878}.t-electric{background:#f8d030;color:#5a4000}.t-ice{background:#98d8d8;color:#2a5a5a}.t-fighting{background:#c03028}.t-poison{background:#a040a0}.t-ground{background:#e0c068;color:#5a4000}.t-flying{background:#a890f0}.t-psychic{background:#f85888}.t-bug{background:#a8b820}.t-rock{background:#b8a038}.t-ghost{background:#705898}.t-dragon{background:#7038f8}.t-dark{background:#705848}.t-steel{background:#b8b8d0;color:#444}.t-fairy{background:#ee99ac}.t-light{background:#ffd966;color:#5a4000}#team-overview{display:flex;justify-content:space-between;align-items:center;padding:7px 14px;background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-shrink:0}.team-strip{display:flex;gap:5px;align-items:center}.strip-label{font-size:9px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-right:4px}.mini-poke{width:38px;height:38px;border-radius:var(--r-sm);background:var(--bg-input);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .2s,box-shadow .2s;cursor:default;overflow:hidden}.mini-poke.active{border-color:var(--primary);box-shadow:0 0 8px #f5a6234d}.mini-poke.fainted{opacity:.2;filter:grayscale(1)}.mini-poke img{width:32px;height:32px;object-fit:contain}.mini-poke .mini-emoji{font-size:18px}.mini-energy{position:absolute;top:1px;right:1px;min-width:13px;height:13px;padding:0 3px;border-radius:999px;border:1px solid rgba(2,136,209,.38);background:#eef8ffeb;color:#075985;font-size:8px;font-weight:800;line-height:12px;text-align:center;box-shadow:0 1px 3px #0000001f}.mini-hp-wrap{position:absolute;bottom:0;left:0;right:0;height:3px;background:#00000026}.mini-hp-fill{height:100%;transition:width .4s}#action-panel{flex:1 0 auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:visible;position:relative;background:var(--bg-page)}#battle-ui{min-height:0;display:flex;flex:0 0 auto;flex-direction:column;gap:8px;position:relative}#action-title{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:6px}#action-title:before{content:"";width:3px;height:12px;background:var(--primary);border-radius:2px}#skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.skill-btn{background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:9px 11px;cursor:pointer;text-align:left;color:var(--text-primary);transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.skill-btn:hover:not(.skill-disabled){background:var(--bg-card);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.skill-btn.bloodline-armed{border-color:var(--status-purple);box-shadow:0 0 0 3px #9b59b61f}.skill-btn:focus-visible{outline:3px solid rgba(245,166,35,.28);outline-offset:2px}.skill-btn:active:not(.skill-disabled){transform:translateY(0)}.skill-btn.skill-disabled{opacity:.35;cursor:not-allowed}.skill-btn .sname{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.skill-btn .scost{font-size:11px;font-weight:800;color:var(--primary-dark);background:#f5a6231f;padding:1px 5px;border-radius:4px}.skill-link{color:var(--primary-dark);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px;cursor:pointer;border-radius:4px}.skill-link:hover{color:var(--status-orange);background:#f5a6231f}.skill-link:focus-visible{outline:2px solid rgba(245,166,35,.38);outline-offset:2px}.log-skill-link{font-weight:800}.info-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer;border-radius:4px}.info-link:hover{filter:brightness(.92);background:#f5a6231a}.info-link:focus-visible{outline:2px solid rgba(245,166,35,.38);outline-offset:2px}.buff-tag.info-link,.tag-pill.info-link,.type-badge.info-link{display:inline-flex;align-items:center}.type-badge.info-link{color:#fff;text-decoration:none}.t-electric.type-badge.info-link,.t-ice.type-badge.info-link,.t-ground.type-badge.info-link,.t-steel.type-badge.info-link,.t-light.type-badge.info-link{color:#5a4000}.t-steel.type-badge.info-link{color:#444}.tag-pill.info-link{text-decoration:none}.ability-link{font-weight:800;color:var(--primary-dark)}.skill-btn .smeta{font-size:9px;color:var(--text-secondary);display:flex;gap:3px;flex-wrap:wrap;align-items:center}.skill-btn .spower{font-weight:700;color:var(--dmg-phys)}.sdamage{display:inline-flex;align-items:center;font-weight:800;color:var(--dmg-red);text-decoration:none;background:#e74c3c1a;border:1px solid rgba(231,76,60,.22);border-radius:3px;padding:0 4px}.tag-pill{background:#f5a6231a;border:1px solid rgba(245,166,35,.25);border-radius:3px;padding:0 3px;font-size:8px;color:var(--primary-dark)}.tag-counter{background:#9b59b61a;border:1px solid rgba(155,89,182,.25);color:var(--status-purple)}.skill-btn.cd-btn{border-color:#f0ad4e80}.skill-btn.cd-btn .sname{color:var(--hp-yellow)}#util-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.util-btn{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--r-md);padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--text-primary);font-size:12px;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.util-btn:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--primary);transform:translateY(-1px)}.util-btn.active{border-color:var(--status-purple);background:#9b59b61a}.util-btn:disabled{opacity:.35;cursor:not-allowed}.util-btn .icon{font-size:15px}.util-note{margin-left:auto;font-size:9px;color:var(--text-muted)}.auto-battle-panel{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--r-md);padding:12px;display:grid;gap:8px;color:var(--text-primary)}.auto-battle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--text-secondary)}.auto-battle-row b{color:var(--text-primary);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-step-btn{width:100%;justify-content:center;margin-top:2px}.auto-step-btn:disabled{opacity:.45;cursor:not-allowed}#switch-panel{display:none;flex-direction:column;gap:5px;overflow-y:auto;max-height:150px}#switch-panel.open{display:flex}.sw-card{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:7px 10px;cursor:pointer;transition:background .15s,border-color .15s;color:var(--text-primary);font-size:11px}.sw-card:hover:not(:disabled){background:var(--bg-card);border-color:var(--hp-green)}.sw-card:disabled{opacity:.3;cursor:not-allowed}.sw-icon-wrap{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sw-icon-wrap img{width:32px;height:32px;object-fit:contain}.sw-icon{font-size:22px}.sw-info{flex:1;min-width:0}.sw-name{font-weight:700;font-size:12px}.sw-hp{font-size:9px;color:var(--text-secondary)}.adv-badge{font-size:8px;padding:1px 5px;border-radius:3px;font-weight:700;white-space:nowrap;flex-shrink:0}.adv-super{background:#5cb85c26;border:1px solid rgba(92,184,92,.4);color:var(--hp-green)}.adv-weak{background:#d9534f1f;border:1px solid rgba(217,83,79,.3);color:var(--hp-red)}.adv-norm{background:#c8beaa26;border:1px solid var(--border);color:var(--text-secondary)}#switch-back{font-size:10px;color:var(--text-secondary);cursor:pointer;text-decoration:none;background:none;border:none;padding:3px 0;opacity:.7}#switch-back:hover{opacity:1}.force-title{font-size:11px;font-weight:800;color:var(--hp-red);padding:2px 0 4px}#wait-mask{display:none;position:absolute;inset:0;background:#fffdf9bf;border-radius:var(--r-md);align-items:center;justify-content:center;flex-direction:column;gap:8px;z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#wait-mask.show{display:flex}#wait-mask .wtext{font-size:13px;font-weight:600;color:var(--text-secondary)}.spinner{width:28px;height:28px;border:3px solid rgba(245,166,35,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}#start-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:var(--bg-card);border-radius:var(--r-lg);border:2px solid var(--border)}#start-screen h2{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:20px;color:var(--primary-dark);font-weight:800}#start-screen p{font-size:12px;color:var(--text-secondary);text-align:center;line-height:1.7}.start-control{width:min(360px,100%);display:flex;flex-direction:column;gap:6px}.start-control label{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.7px}.start-select{width:100%;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-size:12px;font-weight:600;padding:8px 10px;outline:none;font-family:RocoBody,system-ui,sans-serif}.start-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f5a6231f}.starter-control{width:min(520px,100%)}.starter-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.starter-select-label{display:flex;flex-direction:column;gap:4px;min-width:0;text-transform:none;letter-spacing:0}.starter-select-label span{font-size:10px;font-weight:700;color:var(--text-secondary);letter-spacing:.3px}.start-note{font-size:10px;color:var(--text-muted);line-height:1.4;text-align:center;min-height:28px}.start-btn{background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:10px 28px;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;box-shadow:0 4px 16px #f5a62359;font-family:RocoBody,system-ui,sans-serif}.start-btn:hover{opacity:.9;transform:translateY(-1px)}.battle-back-link{color:var(--text-secondary);font-size:11px;font-weight:700;text-decoration:none}.battle-back-link:hover{color:var(--primary-dark)}#gameover-banner{display:none;background:#fffdf9f2;border:2px solid var(--border);border-radius:var(--r-lg);padding:20px;text-align:center;flex-direction:column;gap:12px;flex-shrink:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-lg)}#gameover-banner.show{display:flex}#gameover-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:20px;font-weight:900}.winner-a{color:var(--hp-green)}.winner-b{color:var(--hp-red)}.again-btn{background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:9px 22px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #f5a6234d;font-family:RocoBody,system-ui,sans-serif}.again-btn:hover{opacity:.85}#side-panel{background:var(--bg-card);border-left:2px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow:hidden}#log-header{padding:10px 14px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:#f5a6230f}#log-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;transition:color .15s}#log-clear:hover{color:var(--text-secondary)}#battle-log{flex:1;min-height:0;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:1px;font-size:11px;line-height:1.6;color:var(--text-primary)}.log-line{padding:1px 0}.log-sep{border-top:1px solid var(--border);margin:5px 0;color:var(--text-muted);font-weight:600;font-size:10px;padding-top:4px}.log-win{color:var(--hp-green);font-weight:700}.log-lose{color:var(--hp-red);font-weight:700}.log-dmg{color:var(--dmg-red)}.log-heal{color:var(--heal-green)}.log-status{color:var(--status-purple)}.log-mp{color:var(--status-orange)}.log-cute{color:#e91e9c}.skill-modal-effects{display:flex;flex-wrap:wrap;gap:4px}@media(max-width:760px){.battle-page #battlefield{flex:none;min-height:auto;overflow:visible}.battle-page #arena{height:300px}.battle-page .hp-panel{top:8px;width:calc(50% - 12px);max-width:184px;padding:6px 7px;border-radius:var(--r-sm)}.battle-page #hpbar-a{left:6px}.battle-page #hpbar-b{right:6px}.battle-page .hpbar-name{font-size:11px}.battle-page .type-badge{font-size:8px;padding:1px 5px}.battle-page .energy-label,.battle-page .energy-count,.battle-page .condition-label,.battle-page .buff-tag,.battle-page .hp-text{font-size:8px}.battle-page .condition-line{grid-template-columns:24px minmax(0,1fr)}.battle-page .buff-row{min-height:42px}.battle-page .mp-wrap{top:122px}.battle-page #mp-a{left:10px}.battle-page #mp-b{right:10px}.battle-page .mp-gem{width:9px;height:9px}.battle-page .platform{width:128px;height:22px;bottom:25%}.battle-page #plat-a,.battle-page #slot-a{left:26%}.battle-page #plat-b,.battle-page #slot-b{right:26%}.battle-page .poke-slot{bottom:calc(25% - 4px)}.battle-page .sprite-img,.battle-page .sprite-emoji{width:84px;height:84px}.battle-page .sprite-emoji{font-size:46px}.battle-page .sprite-glow{width:72px;height:18px}.battle-page .sprite-label{max-width:112px;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-page #shield-a{left:calc(26% + 18px)}.battle-page #shield-b{right:calc(26% + 18px)}.battle-page #team-overview{align-items:stretch;padding:8px 10px;flex-direction:column;gap:8px}.battle-page .team-strip{width:100%;min-width:0}.battle-page #team-overview>.team-strip{justify-content:space-between}.battle-page .strip-label{width:34px;flex:0 0 auto;margin-right:2px;font-size:9px}.battle-page .mini-poke{width:34px;height:34px}.battle-page .mini-poke img{width:28px;height:28px}.battle-page #action-panel{padding:10px}.battle-page #start-screen{padding:18px 14px;gap:12px;border-radius:var(--r-md)}.battle-page #start-screen h2{font-size:17px;line-height:1.3;text-align:center;overflow-wrap:anywhere}.battle-page #start-screen p{font-size:11px}.battle-page .start-control{width:100%}.battle-page .start-select{font-size:12px}.battle-page .starter-select-grid{grid-template-columns:1fr}.battle-page #skill-grid{gap:6px}.battle-page .skill-btn{padding:8px}.battle-page .skill-btn .sname{align-items:flex-start;gap:5px;font-size:11px}.battle-page .skill-btn .scost{font-size:10px}.battle-page .skill-btn .smeta{font-size:8px}.battle-page #util-row{grid-template-columns:1fr}.battle-page .util-btn{justify-content:flex-start;padding:9px 10px;font-size:12px}.battle-page #switch-panel{max-height:none}.battle-page .auto-battle-panel{padding:10px}.battle-page #side-panel{flex:0 0 auto;min-height:220px;max-height:280px;border-left:0;border-top:2px solid var(--border)}.battle-page #log-header{padding:9px 12px;font-size:10px}.battle-page #battle-log{min-height:160px;font-size:11px}.battle-page .poke-popover-layer{display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 10px) 10px calc(env(safe-area-inset-bottom) + 10px);pointer-events:auto;background:#4a372861;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.battle-page .poke-popover-layer .poke-popover{position:relative;left:auto!important;top:auto!important;width:min(420px,100%);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);overflow:hidden;display:flex;flex-direction:column;border-radius:var(--r-lg)}.battle-page .poke-popover-scroll{flex:1;min-height:0;max-height:none;overflow-y:auto}.battle-page .pop-head{position:sticky;top:0;z-index:1;background:var(--bg-page)}.battle-page .poke-popover-close{display:inline-flex}.battle-page .pop-grid{grid-template-columns:1fr}.battle-page .pop-skill{padding:8px 9px}.battle-page .pop-skill-main{align-items:flex-start}.battle-page .pop-skill-link{font-size:13px;line-height:1.25}}@keyframes atk-a{0%{transform:translate(-50%) translate(0)}40%{transform:translate(-50%) translate(42px)}70%{transform:translate(-50%) translate(-4px)}to{transform:translate(-50%) translate(0)}}@keyframes atk-b{0%{transform:translate(50%) translate(0)}40%{transform:translate(50%) translate(-42px)}70%{transform:translate(50%) translate(4px)}to{transform:translate(50%) translate(0)}}@keyframes hit-flash{0%,to{filter:drop-shadow(0 6px 20px rgba(0,0,0,.5))}35%{filter:drop-shadow(0 0 22px rgba(231,76,60,1)) brightness(2.5)}65%{filter:drop-shadow(0 6px 20px rgba(0,0,0,.5)) brightness(1.5)}}@keyframes shield-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}@keyframes shield-b-pulse{0%,to{transform:translate(50%) scale(1)}50%{transform:translate(50%) scale(1.1)}}@keyframes faint-drop{to{opacity:0;transform:translateY(24px) scale(.75)}}@keyframes float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-36px)}}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes entry-bounce{0%{transform:translateY(20px) scale(.85);opacity:0}60%{transform:translateY(-5px) scale(1.04)}to{transform:translateY(0) scale(1);opacity:1}}@keyframes switch-out-a{0%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%) translate(-30px) scale(.7);opacity:0}}@keyframes switch-out-b{0%{transform:translate(50%) scale(1);opacity:1}to{transform:translate(50%) translate(30px) scale(.7);opacity:0}}@keyframes switch-in-a{0%{transform:translate(-50%) translate(30px) scale(.7);opacity:0}60%{transform:translate(-50%) translate(-4px) scale(1.06)}to{transform:translate(-50%) translate(0) scale(1);opacity:1}}@keyframes switch-in-b{0%{transform:translate(50%) translate(-30px) scale(.7);opacity:0}60%{transform:translate(50%) translate(4px) scale(1.06)}to{transform:translate(50%) translate(0) scale(1);opacity:1}}.slot-atk-a{animation:atk-a .44s ease}.slot-atk-b{animation:atk-b .44s ease}.sprite-hit{animation:hit-flash .5s ease}.sprite-faint{animation:faint-drop .6s ease forwards}.shield-pulse-a{animation:shield-pulse .5s ease}.shield-pulse-b{animation:shield-b-pulse .5s ease}.sprite-switch-out-a{animation:switch-out-a .35s ease forwards}.sprite-switch-out-b{animation:switch-out-b .35s ease forwards}.sprite-switch-in-a{animation:switch-in-a .5s cubic-bezier(.34,1.56,.64,1) forwards}.sprite-switch-in-b{animation:switch-in-b .5s cubic-bezier(.34,1.56,.64,1) forwards}.float-dmg{position:absolute;font-size:20px;font-weight:900;pointer-events:none;animation:float-up .9s ease forwards;text-shadow:0 0 4px #fff,0 0 4px #fff,1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;z-index:20;color:#c0392b}.float-heal{color:var(--heal-green)!important;text-shadow:0 0 4px #fff,0 0 4px #fff,1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff}.sprite-entry{animation:entry-bounce .55s cubic-bezier(.34,1.56,.64,1) forwards}.damage-cal-page{min-height:100vh;padding:22px clamp(14px,3vw,34px) 42px;background:linear-gradient(180deg,#f5f7faf5,#f0f6f3fa),var(--bg-page);color:#17202a}.dc-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;max-width:1380px;margin:0 auto 18px}.dc-kicker{margin:0 0 4px;color:#55706a;font-size:12px;font-weight:800}.dc-header h1{margin:0;font-size:30px;letter-spacing:0}.dc-mode{display:inline-flex;padding:3px;border:1px solid #cbd5df;border-radius:8px;background:#fff}.dc-mode button,.dc-panel-title button,.dc-run,.dc-icon-btn{border:0;border-radius:6px;cursor:pointer;font-weight:800}.dc-mode button{min-width:92px;padding:9px 12px;background:transparent;color:#49616f}.dc-mode button.active{background:#1d7a72;color:#fff}.dc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1380px;margin:0 auto 14px}.dc-panel,.dc-result-row,.dc-final-pokemon{border:1px solid #d5dde5;border-radius:8px;background:#fff;box-shadow:0 8px 22px #18304814}.dc-panel{padding:16px}.dc-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:15px;font-weight:900}.dc-panel-title button{padding:7px 11px;background:#e9f4ef;color:#12615b}.dc-muted{color:#6b7c89;font-size:12px;font-weight:800}.dc-field,.dc-step label{display:grid;gap:5px;min-width:0}.dc-field span,.dc-step label span,.dc-aptitude span,.dc-modifier-value span{color:#52616d;font-size:11px;font-weight:900}.dc-field select,.dc-field input,.dc-step select,.dc-step input{width:100%;min-height:36px;border:1px solid #ccd6df;border-radius:6px;background:#fbfcfd;color:#17202a;font:inherit;font-size:13px;font-weight:700}.dc-field select,.dc-step select{padding:0 9px}.dc-field input,.dc-step input{padding:0 8px}.dc-picker{display:grid;gap:10px}.dc-picker+.dc-row,.dc-modifier-grid+.dc-subtitle{margin-top:12px}.dc-picker-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.dc-search{display:grid;gap:5px}.dc-search span,.dc-count{color:#52616d;font-size:11px;font-weight:900}.dc-search input{width:100%;min-height:36px;border:1px solid #ccd6df;border-radius:6px;background:#fbfcfd;color:#17202a;font:inherit;font-size:13px;font-weight:800;padding:0 10px}.dc-selected-pokemon{display:grid;gap:10px;padding:10px;border:1px solid #cfd9e2;border-radius:8px;background:#f6faf8}.dc-selected-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dc-selected-head>div{display:grid;gap:3px;min-width:0}.dc-selected-pokemon strong{font-size:15px}.dc-selected-pokemon span{color:#5b6e78;font-size:12px;font-weight:800}.dc-select-btn{min-height:34px;flex-shrink:0;border:1px solid #1d7a72;border-radius:6px;background:#fff;color:#12615b;cursor:pointer;font:inherit;font-size:12px;font-weight:900;padding:0 12px}.dc-select-btn:hover{background:#e9f4ef}.dc-stat-section{display:grid;gap:6px}.dc-stat-title,.dc-subtitle{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#52616d;font-size:11px;font-weight:900}.dc-subtitle em{font-style:normal}.dc-subtitle-action{border:0;border-radius:6px;background:#eef1f4;color:#52616d;cursor:pointer;font:inherit;font-size:11px;font-weight:900;padding:5px 8px}.dc-subtitle-action:disabled{opacity:.45;cursor:default}.dc-stat-title em{overflow:hidden;color:#6b7c89;font-size:10px;font-style:normal;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dc-subtitle{margin-top:12px}.dc-pokemon-list,.dc-skill-list{display:grid;gap:8px;max-height:278px;overflow:auto;padding-right:2px}.dc-pokemon-card,.dc-skill-card,.dc-skill-slot{width:100%;border:1px solid #d7e0e7;border-radius:8px;background:#fff;color:#17202a;cursor:pointer;text-align:left}.dc-pokemon-card{display:grid;gap:8px;padding:10px}.dc-pokemon-card.active,.dc-skill-card.active,.dc-skill-slot.active{border-color:#1d7a72;box-shadow:0 0 0 2px #1d7a7224}.dc-pokemon-name{font-size:14px;font-weight:900}.dc-pokemon-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center;color:#52616d;font-size:12px;font-weight:800}.dc-pokemon-meta b,.dc-pokemon-meta strong{color:#12615b;font-style:normal}.dc-pokemon-meta em{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal}.dc-base-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.dc-base-stats span,.dc-combat-stats span{display:grid;gap:2px;min-width:0;border-radius:6px;background:#eef3f6;padding:6px}.dc-combat-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.dc-combat-stats span.up{background:#e7f4ed}.dc-combat-stats span.down{background:#fceeea}.dc-base-stats b,.dc-combat-stats b{color:#62717c;font-size:10px;font-weight:900}.dc-base-stats strong,.dc-combat-stats strong{color:#17202a;font-size:13px;font-weight:900}.dc-combat-stats span.up strong{color:#12615b}.dc-combat-stats span.down strong{color:#b42318}.dc-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dc-skill-slot{display:grid;gap:4px;min-height:58px;padding:8px}.dc-skill-slot span{color:#52616d;font-size:11px;font-weight:900}.dc-skill-slot strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:900}.dc-skill-slot em{overflow:hidden;color:#657782;font-size:10px;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.dc-skill-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:230px}.dc-skill-card{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:54px;padding:8px 10px}.dc-skill-card span{display:grid;gap:3px;min-width:0}.dc-skill-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:900}.dc-skill-card em,.dc-skill-card b{color:#5b6e78;font-size:11px;font-style:normal;font-weight:900}.dc-skill-card b{flex-shrink:0}.dc-selector-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:18px;background:#161f2a6b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dc-selector-dialog{display:flex;flex-direction:column;width:min(760px,100%);max-height:min(720px,calc(100vh - 36px));overflow:hidden;border:1px solid #cfd9e2;border-radius:8px;background:#fff;box-shadow:0 20px 48px #1830483d}.dc-selector-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #dbe3ea}.dc-selector-header strong{font-size:15px;font-weight:900}.dc-selector-close{width:34px;height:34px;border:0;border-radius:6px;background:#eef1f4;color:#41505c;cursor:pointer;font-size:20px;font-weight:900}.dc-selector-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #dbe3ea;background:#f8fafb}.dc-selector-search input{width:100%;min-height:38px;border:1px solid #ccd6df;border-radius:6px;background:#fff;color:#17202a;font:inherit;font-size:13px;font-weight:800;padding:0 10px}.dc-selector-search span{color:#52616d;font-size:11px;font-weight:900;white-space:nowrap}.dc-selector-list{flex:1;min-height:0;overflow:auto;padding:12px 14px}.dc-selector-list>.dc-pokemon-card+.dc-pokemon-card{margin-top:8px}.dc-selector-list .dc-skill-list{max-height:none;overflow:visible;padding-right:0}.dc-selector-empty{padding:18px;border:1px dashed #cfd9e2;border-radius:8px;color:#657782;font-size:13px;font-weight:800;text-align:center}.dc-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.dc-row-three{grid-template-columns:repeat(3,minmax(0,1fr))}.dc-aptitude-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0}.dc-aptitude{display:grid;gap:4px;min-height:48px;border:1px solid #d7e0e7;border-radius:8px;background:#fff;color:#17202a;cursor:pointer;text-align:left;padding:8px}.dc-aptitude strong{color:#7a8791;font-size:13px;font-weight:900}.dc-aptitude.active{border-color:#1d7a72;background:#e9f4ef;box-shadow:0 0 0 2px #1d7a721f}.dc-aptitude.active strong{color:#12615b}.dc-aptitude:disabled{opacity:.48;cursor:not-allowed}.dc-modifier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.dc-modifier-card{display:grid;gap:8px;min-width:0;border:1px solid #d7e0e7;border-radius:8px;background:#fff;padding:8px}.dc-modifier-card.up{border-color:#a7d8be;background:#f2fbf5}.dc-modifier-card.down{border-color:#efc2b7;background:#fff7f4}.dc-modifier-value{display:flex;align-items:center;justify-content:space-between;gap:6px}.dc-modifier-value strong{color:#17202a;font-size:13px;font-weight:900}.dc-modifier-card.up .dc-modifier-value strong{color:#12615b}.dc-modifier-card.down .dc-modifier-value strong{color:#b42318}.dc-modifier-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.dc-modifier-controls button{min-height:28px;border:1px solid #d7e0e7;border-radius:6px;background:#f8fafb;color:#41505c;cursor:pointer;font:inherit;font-size:13px;font-weight:900}.dc-modifier-controls button:hover:not(:disabled){border-color:#1d7a72;color:#12615b}.dc-modifier-controls button:disabled{opacity:.42;cursor:default}.dc-combat-stats-modified span{border:1px solid transparent}.dc-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dc-sequence,.dc-results{max-width:1380px;margin:0 auto 14px}.dc-step-list{display:grid;gap:9px}.dc-step{display:grid;grid-template-columns:34px 110px minmax(180px,1fr) 86px minmax(180px,1fr) 34px;align-items:end;gap:9px;padding:10px;border:1px solid #e1e7ec;border-radius:8px;background:#f8fafb}.dc-step-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#25313b;color:#fff;font-size:12px;font-weight:900}.dc-icon-btn{width:32px;height:36px;background:#eef1f4;color:#41505c;font-size:20px}.dc-icon-btn:disabled{opacity:.35;cursor:default}.dc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}.dc-run{min-width:120px;min-height:38px;padding:0 18px;background:#d95d39;color:#fff}.dc-run:disabled{background:#b6c0c8;cursor:default}.dc-error{color:#b42318;font-weight:800}.dc-source{margin:0 0 10px;color:#5b6e78;font-size:12px;font-weight:800}.dc-timeline{display:grid;gap:9px}.dc-result-row{padding:12px 14px}.dc-result-main,.dc-result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.dc-result-main strong{font-size:14px}.dc-result-meta{margin-top:8px;color:#5b6e78;font-size:12px;font-weight:800}.dc-badge{border-radius:999px;background:#e7f1ff;color:#185a9d;padding:4px 8px;font-size:11px;font-weight:900}.dc-badge-soft{background:#e9f4ef;color:#12615b}.dc-badge-warn{background:#fff2d6;color:#8a5600}.dc-badge-ko{background:#fce7e3;color:#b42318}.dc-final{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.dc-final-pokemon{padding:14px}.dc-hpbar{height:10px;overflow:hidden;border-radius:999px;background:#eef1f4}.dc-hpbar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d7a72,#63b36b)}.dc-final-pokemon p{margin:8px 0 0;color:#40505c;font-weight:900}.dc-runtime{margin-top:8px;color:#5b6e78;font-size:12px;font-weight:800}.dc-ko-text{color:#b42318;font-size:12px;font-weight:900}@media(max-width:980px){.dc-header,.dc-grid,.dc-final{grid-template-columns:1fr}.dc-header{align-items:stretch;flex-direction:column}.dc-mode{align-self:flex-start}.dc-step{grid-template-columns:32px 1fr 1fr}.dc-step label:nth-of-type(2),.dc-step label:nth-of-type(4){grid-column:span 2}}@media(max-width:640px){.damage-cal-page{padding:14px 10px 28px}.dc-skills,.dc-slot-grid,.dc-skill-list,.dc-base-stats,.dc-combat-stats,.dc-row,.dc-aptitude-grid,.dc-modifier-grid,.dc-selected-head,.dc-selector-search{grid-template-columns:1fr}.dc-selected-head{align-items:stretch;flex-direction:column}.dc-select-btn{width:100%}.dc-stat-title{align-items:flex-start;flex-direction:column;gap:3px}.dc-stat-title em{text-align:left;white-space:normal}.dc-selector-backdrop{align-items:flex-end;padding:0}.dc-selector-dialog{width:100%;max-height:88vh;border-right:0;border-bottom:0;border-left:0;border-radius:12px 12px 0 0}.dc-selector-list{padding:10px}.dc-step{grid-template-columns:1fr}.dc-step-index{width:100%;border-radius:6px}.dc-step label:nth-of-type(2),.dc-step label:nth-of-type(4){grid-column:auto}.dc-icon-btn{width:100%}}html.predict-document-scroll,body.predict-document-scroll{min-height:100vh;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important}body.predict-document-scroll #root{min-height:100vh;height:auto}.app-frame.app-frame-predict{display:block!important;height:auto!important;min-height:100vh;overflow:visible!important;overflow-x:hidden!important;background:var(--bg-page)}.app-frame.app-frame-predict>.app-content{display:block!important;flex:none!important;min-height:auto;height:auto!important;overflow:visible!important}.app-frame-predict .global-thanks{position:static}.predict-page{min-height:calc(100vh - 28px);background:var(--bg-page);color:var(--text-primary);display:flex;flex-direction:column;font-family:RocoBody,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.predict-topbar{min-height:52px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:var(--bg-topbar);border-bottom:2px solid rgba(122,78,8,.18);box-shadow:0 3px 12px #c8963247;color:var(--text-light)}.predict-topbar h1{margin:0;font-size:18px;letter-spacing:0}.predict-topbar p{margin:3px 0 0;color:#fffdf9d1;font-size:12px}.predict-status{display:flex;align-items:center;gap:10px;padding:7px 11px;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.5);background:#ffffffc2;color:var(--text-primary);font-size:12px}.predict-status.running{color:#16643f;border-color:#a8d6bf;background:#eefaf4}.predict-status.finished{color:#7a2f12;border-color:#f2b98a;background:#fff2df}.predict-shell{flex:0 0 auto;min-height:auto;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;padding:14px;align-items:start;overflow:visible}.predict-main,.predict-side{min-height:auto;overflow:visible;display:flex;flex-direction:column;gap:14px}.predict-side{position:sticky;top:14px}.predict-panel{background:#fffdf9f0;border:2px solid var(--border);border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-sm)}.panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.panel-head h2{margin:0;font-size:14px;letter-spacing:0;color:var(--text-primary)}.panel-head span{color:var(--text-secondary);font-size:12px}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,160px));gap:10px;align-items:end}.control-grid label,.player-team-loader label,.override-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-secondary)}.control-grid input,.player-team-loader select,.override-grid input,.override-grid select{height:34px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 10px;color:var(--text-primary);background:#fffdf9;min-width:0}.player-team-loader{margin-top:12px;display:grid;grid-template-columns:minmax(220px,320px) 92px minmax(0,1fr);gap:10px;align-items:end}.player-team-loader button{height:34px;border:1px solid rgba(122,78,8,.24);border-radius:var(--r-sm);background:#fffdf9e6;color:var(--text-primary);font-weight:700;cursor:pointer}.player-team-loader button:disabled{opacity:.45;cursor:not-allowed}.player-team-summary{min-width:0;min-height:34px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:6px 9px;border:1px solid rgba(170,150,120,.22);border-radius:var(--r-sm);background:#fff8e885;color:var(--text-secondary);font-size:12px}.player-team-summary b,.player-team-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-team-summary b{color:var(--text-primary)}.button-row{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.hook-button-row{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.button-row button,.hook-button-row button,.override-grid button{border:1px solid rgba(122,78,8,.24);background:#fffdf9e6;border-radius:var(--r-sm);height:34px;padding:0 14px;color:var(--text-primary);font-weight:700;cursor:pointer}.button-row button:disabled,.hook-button-row button:disabled,.override-grid button:disabled{opacity:.45;cursor:not-allowed}.button-row .primary,.override-grid .primary{color:#fff;border-color:var(--primary-dark);background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%)}.hook-message{margin-top:8px;color:#16643f;font-size:12px}.file-line,.jsonl-path{margin-top:10px;color:var(--text-secondary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gm-debug-line{margin-top:8px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:1px solid rgba(170,150,120,.24);border-radius:var(--r-sm);background:#fff8e880;color:var(--text-secondary);font-size:12px}.gm-debug-line>div:first-child{min-width:0;display:flex;align-items:center;gap:7px}.gm-debug-line strong{min-width:0;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gm-debug-line.ok{border-color:#a8d6bf;background:#eefaf4}.gm-debug-line.warn{border-color:#f0c7c3;background:#fff1f0}.gm-debug-commands{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.gm-debug-commands span{padding:3px 6px;border-radius:999px;background:#7a4e0814;color:var(--text-secondary);white-space:nowrap}.gm-debug-commands span.ok{color:#16643f;background:#3a966324}.gm-debug-commands span.warn{color:#a8322a;background:#cc40301a}.predict-error{margin-top:10px;padding:9px 10px;border-radius:6px;background:#fff1f0;color:#a8322a;border:1px solid #f0c7c3;font-size:12px}.recommendation{display:grid;gap:5px;padding:14px;border:1px solid rgba(245,166,35,.36);background:#fff7e8;border-radius:var(--r-md)}.recommendation span,.recommendation small{color:var(--text-secondary);font-size:12px}.recommendation strong{font-size:20px;letter-spacing:0}.mcts-loading{min-height:58px;display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;border:1px solid rgba(38,136,92,.28);background:#f0fbf5;border-radius:var(--r-md);color:#17543b}.mcts-loading div{display:grid;gap:3px;min-width:0}.mcts-loading strong{font-size:14px;letter-spacing:0}.mcts-loading small{color:#4d745f;font-size:12px}.mcts-spinner{width:18px;height:18px;flex:0 0 18px;border-radius:999px;border:2px solid rgba(38,136,92,.24);border-top-color:#26885c;animation:mcts-spin .8s linear infinite}.mcts-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;color:var(--text-secondary);font-size:12px}.mcts-meta span{padding:4px 7px;border-radius:var(--r-pill);background:#26885c1a;color:#37604a}@keyframes mcts-spin{to{transform:rotate(360deg)}}.finished-state{min-height:84px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px;border:1px solid #f0b37d;background:linear-gradient(180deg,#fff6e8,#fff1dc);border-radius:var(--r-md)}.finished-state span,.finished-state small{color:var(--text-secondary);font-size:12px}.finished-state strong{color:#7a2f12;font-size:20px}.rank-list{margin-top:12px;display:grid;gap:8px}.rank-row{display:grid;grid-template-columns:minmax(120px,1fr) 130px 44px;gap:8px;align-items:center;font-size:12px}.rank-row meter{width:100%}.note-row{margin-top:10px;display:flex;gap:7px;flex-wrap:wrap}.note-row span{padding:4px 7px;border-radius:999px;background:#f5a6231f;color:var(--primary-dark);font-size:11px}.predict-battle-panel{padding:12px;overflow:visible}.predict-battle-surface{height:auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;overflow:visible;background:transparent}.predict-battle-layout{min-width:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);gap:10px}.predict-battle-left{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card)}.predict-battle-surface #arena.predict-arena{height:300px;border-radius:var(--r-md) var(--r-md) 0 0}.predict-battle-surface #team-overview.predict-team-overview{border-bottom:0;border-radius:0 0 var(--r-md) var(--r-md);gap:8px}.predict-battle-surface #action-panel.predict-action-panel{min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card)}.predict-battle-surface #skill-grid{grid-template-columns:1fr}.predict-battle-surface .skill-btn{padding:8px 10px}.predict-battle-surface .skill-btn .smeta{gap:4px}.predict-battle-surface #util-row.predict-util-row{grid-template-columns:1fr;margin-top:2px}.predict-next-action{display:grid;gap:4px;margin-top:2px;padding:9px 10px;border:1px solid rgba(245,166,35,.28);border-radius:var(--r-sm);background:#fff8e8a3}.predict-next-action span{color:var(--text-secondary);font-size:10px;font-weight:800;text-transform:uppercase}.predict-next-action strong{color:var(--text-primary);font-size:13px}.predict-battle-surface .empty-state{min-height:48px}.parsed-panel{display:grid;gap:12px}.parsed-panel .panel-head{margin-bottom:0}.parsed-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.parsed-summary>div{min-width:0;display:grid;gap:4px;padding:8px 0;border-bottom:1px solid rgba(170,150,120,.28)}.parsed-summary span,.parsed-summary small{color:var(--text-secondary);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parsed-summary strong{min-width:0;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parsed-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.parsed-list{min-width:0;display:grid;gap:6px}.parsed-list-head,.parsed-row{display:grid;grid-template-columns:44px minmax(0,1fr) 54px;gap:6px;align-items:center}.parsed-list-head{color:var(--text-secondary);font-size:11px}.parsed-list-head b{grid-column:span 2;color:var(--text-primary)}.parsed-list-head span{text-align:right}.parsed-row{min-height:28px;padding:5px 7px;border:1px solid rgba(170,150,120,.2);border-radius:6px;background:#fff8e880;font-size:11px}.parsed-row span,.parsed-row em{color:var(--text-secondary);font-style:normal}.parsed-row em{text-align:right}.parsed-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parsed-empty{padding:8px;color:var(--text-secondary);font-size:12px;border-radius:6px;background:#aa967814;text-align:center}.team-grid-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pet-list{display:grid;gap:9px}.pet-card{border:1px solid var(--border);background:#fffdf9;border-radius:var(--r-md);padding:10px}.pet-card.active{border-color:#f5a62394;background:#fff7e8}.pet-card.fainted{border-color:#d9534f66;background:#fff6f4}.pet-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center}.pet-head img,.pet-fallback{width:36px;height:36px;border-radius:6px;object-fit:contain;background:#f6ead6}.pet-head strong,.pet-head span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pet-head strong{font-size:13px}.pet-head span,.pet-meta{color:var(--text-secondary);font-size:11px}.pet-meta{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.source-badge{border-radius:999px;padding:4px 7px;font-size:11px;border:1px solid #d2dce7;color:var(--text-secondary);white-space:nowrap}.source-badge.observed{color:#12643d;border-color:#a8d6bf;background:#eefaf4}.source-badge.imported{color:#285c8f;border-color:#b8d5f0;background:#f2f8ff}.source-badge.inferred{color:#765317;border-color:#ead29a;background:#fff8e8}.source-badge.guessed{color:#77524f;border-color:#e0c4c0;background:#fff6f4}.skill-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.skill-chip{max-width:100%;padding:4px 7px;border-radius:6px;background:#aa96781f;color:var(--text-primary);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-chip.observed{background:#eaf8f0}.skill-chip.inferred{background:#fff5db}.skill-chip.guessed{background:#f1f4f8}.override-grid{display:grid;grid-template-columns:86px 110px minmax(160px,1fr) minmax(220px,1.4fr) 92px;gap:9px}.timeline-list,.replay-list,.conflict-list{display:grid;gap:8px;max-height:calc(50vh - 110px);overflow:auto}.side-tab-panel{padding:10px}.side-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}.side-tabs button{min-width:0;height:30px;border:1px solid var(--border);border-radius:var(--r-sm);background:#fffdf9d1;color:var(--text-secondary);font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-tabs button.active{color:var(--primary-dark);border-color:var(--primary);background:#f5a62324}.side-tabs button.has-conflict,.side-tabs button.conflict-active{color:#a8322a;border-color:#e3aaa4;background:#fff1f0}.compact-panel{display:grid;gap:10px}.compact-panel .panel-head{margin-bottom:0}.timeline-row{display:grid;grid-template-columns:40px minmax(90px,1fr) minmax(110px,1fr) 52px;align-items:center;gap:7px;padding:8px;border-radius:6px;background:#fff8e8ad;font-size:12px}.timeline-row span,.timeline-row em{color:var(--text-secondary);font-style:normal}.timeline-row.terminal{border:1px solid #f0b37d;background:#fff2df}.timeline-row.terminal strong{color:#7a2f12}.timeline-row.terminal.exit{background:#f7f1e8}.timeline-row.switch{border:1px solid #b9d8dd;background:#f0fbfc}.replay-row{padding:9px;border-radius:6px;border:1px solid var(--border);background:#fffdf9}.replay-row>div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.replay-row p{margin:6px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.35}.replay-row.matched{border-color:#b7dec7;background:#f1fbf5}.replay-row.mismatch,.replay-row.error{border-color:#f0c7c3;background:#fff6f4}.conflict-row{padding:9px;border-radius:6px;border:1px solid #f0c7c3;background:#fff6f4}.conflict-row>div{display:flex;justify-content:space-between;gap:8px;color:#a8322a;font-size:12px}.conflict-row p{margin:6px 0 0;color:var(--text-primary);font-size:12px;line-height:1.35}.conflict-row small{display:block;margin-top:5px;color:var(--text-secondary);font-size:11px;overflow-wrap:anywhere}.empty-state{padding:18px 10px;color:#718297;font-size:13px;text-align:center;background:#aa967814;border-radius:var(--r-md)}@media(max-width:980px){.predict-shell{grid-template-columns:1fr;overflow:auto}.predict-main,.predict-side{overflow:visible}.predict-side{position:static}.predict-battle-surface,.predict-battle-layout,.team-grid-panel,.control-grid,.parsed-summary,.parsed-detail-grid,.gm-debug-line,.player-team-loader,.override-grid{grid-template-columns:1fr}.gm-debug-line{align-items:stretch;flex-direction:column}.gm-debug-commands{justify-content:flex-start}}.team-page{height:100%;min-height:0;display:flex;flex-direction:column}.team-page button,.team-page input,.team-page select,.team-page textarea{font-family:RocoBody,system-ui,sans-serif}#topbar{background:var(--bg-topbar);padding:0 24px;height:48px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 3px 12px #c896324d;position:relative;z-index:100}#topbar h1{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:16px;font-weight:700;color:var(--text-light);text-shadow:1px 2px 4px rgba(0,0,0,.15);letter-spacing:1px;display:flex;align-items:center;gap:8px}#topbar .logo{height:28px;filter:brightness(10)}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-action{background:#fff1c8;color:#7a4e08;border:1px solid rgba(122,78,8,.18);border-radius:var(--r-pill);padding:7px 16px;font-size:12px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-width:108px;box-shadow:var(--shadow-sm);font-family:RocoBody,system-ui,sans-serif;transition:background .15s,transform .1s,box-shadow .15s}.topbar-action:hover{background:#ffe2a0;transform:translateY(-1px);box-shadow:0 3px 10px #7a4e082e}#btn-start{background:var(--title-bg);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:7px 22px;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;display:flex;align-items:center;gap:6px;font-family:RocoBody,system-ui,sans-serif;box-shadow:var(--shadow-sm)}#btn-start:hover:not(:disabled){opacity:.88;transform:translateY(-1px);background:var(--title-bg-hover)}#btn-start:disabled{opacity:.4;cursor:not-allowed}#team-count{font-size:12px;color:#fffc}#main{display:grid;grid-template-columns:1fr 340px;flex:1;min-height:0;overflow:hidden;gap:0}#left{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:2px solid var(--border);background:var(--bg-page)}#search-bar{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-shrink:0;background:#f5ede080}#search-input{flex:1;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:7px 12px;font-size:13px;color:var(--text-primary);outline:none;transition:border-color .15s;font-family:RocoBody,system-ui,sans-serif}#search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f5a62326}#search-input::placeholder{color:var(--text-muted)}#filter-bar{padding:8px 16px;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:5px;flex-shrink:0}.filter-btn{background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--r-pill);padding:2px 10px;font-size:10px;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:all .15s}.filter-btn:hover,.filter-btn.active{border-color:var(--primary);color:var(--primary-dark);background:#f5a62314}.filter-btn.active{font-weight:700;background:#f5a62326}#pokemon-list{flex:1;min-height:0;overflow-y:auto;padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;align-content:start}.poke-card{background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:10px;cursor:pointer;transition:all .15s;position:relative;text-align:left}.poke-card:hover{background:var(--bg-card);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.poke-card.in-team{border-color:var(--hp-green);background:#5cb85c0f}.poke-card.in-team:after{content:"✓";position:absolute;top:4px;right:6px;color:var(--hp-green);font-weight:700;font-size:12px}.poke-card .pname{font-size:12px;font-weight:700;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.poke-card .pmeta{font-size:9px;color:var(--text-secondary);display:flex;gap:4px;align-items:center;flex-wrap:wrap}.poke-card .pbst{font-size:9px;color:var(--status-orange);font-weight:600;margin-left:auto}#right{display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--bg-card);overscroll-behavior:contain}#team-controls{padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:10px}.team-control-section{background:#ffffff47;border:1px solid var(--border);border-radius:var(--r-md);padding:9px}.team-control-section label{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.7px;display:block;margin-bottom:7px}.team-select-row{display:flex;gap:6px;align-items:stretch}.team-select{flex:1;min-width:0;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-size:11px;font-weight:600;padding:7px 8px;outline:none;font-family:RocoBody,system-ui,sans-serif}.team-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f5a6231f}.mini-btn{background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);color:var(--primary-dark);font-size:11px;font-weight:700;padding:0 10px;cursor:pointer;font-family:RocoBody,system-ui,sans-serif;white-space:nowrap}.mini-btn:hover{border-color:var(--primary);background:#f5a62314}.mini-btn.secondary{color:var(--text-secondary)}.control-note{margin-top:6px;font-size:9px;color:var(--text-muted);line-height:1.35}.bloodline-magic-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.team-source-panel{margin:8px 12px 0;padding:9px;border:1px solid rgba(245,166,35,.34);border-radius:var(--r-md);background:#fffdf9bd;box-shadow:inset 0 1px #ffffff8c;flex-shrink:0}.team-source-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.team-source-title{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-primary);font-size:11px;font-weight:900}.team-source-title strong{border:1px solid rgba(245,166,35,.36);border-radius:999px;background:#fff1c88c;color:var(--primary-dark);font-size:10px;padding:1px 7px;white-space:nowrap}.team-source-side-switch,.team-source-mode-tabs{display:grid;gap:4px}.team-source-side-switch{grid-template-columns:1fr 1fr;min-width:128px}.team-source-mode-tabs{grid-template-columns:repeat(3,1fr);margin-top:7px}.team-source-side-btn,.team-source-mode-btn,.team-source-action-btn{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;font-family:RocoBody,system-ui,sans-serif;font-size:10px;font-weight:850;line-height:1;padding:7px 8px;transition:border-color .15s,background .15s,color .15s,transform .1s;white-space:nowrap}.team-source-side-btn.active,.team-source-mode-btn.active{border-color:var(--primary);background:#f5a62321;color:var(--primary-dark)}.team-source-side-btn:hover,.team-source-mode-btn:hover,.team-source-action-btn:hover:not(:disabled){border-color:var(--primary);background:#f5a62314;transform:translateY(-1px)}.team-source-body{margin-top:7px}.team-source-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:stretch}.team-source-file-btn{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:34px;border:2px solid rgba(75,160,190,.38);border-radius:var(--r-md);background:#fff;color:#28738d;box-shadow:var(--shadow-sm);cursor:pointer;font-size:11px;font-weight:900;padding:7px 12px;transition:border-color .15s,background .15s,transform .1s}.team-source-file-btn:hover{border-color:#4ba0beb3;background:#e8f9fff2;transform:translateY(-1px)}.team-source-file-btn.loading{opacity:.68;cursor:progress;transform:none}.team-source-file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.team-share-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:stretch}.team-source-action-btn{border-color:#657ebe57;background:#fff;color:#405c9e;box-shadow:var(--shadow-sm);font-weight:900;padding-inline:10px}.team-source-action-btn.secondary{color:#28738d;border-color:#4ba0be61}.team-source-action-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.team-share-code-input{width:100%;min-height:45px;resize:vertical;background:var(--bg-input);border:2px solid rgba(101,126,190,.22);border-radius:var(--r-md);color:var(--text-primary);font-size:10px;line-height:1.45;padding:8px;outline:none;word-break:break-all;min-width:0}.team-share-code-input:focus{border-color:#657ebe9e;box-shadow:0 0 0 3px #657ebe1f}.team-share-code-output{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:6px}.team-share-code-result{min-width:0;width:100%;background:#ffffffad;border:2px solid rgba(101,126,190,.2);border-radius:var(--r-md);color:var(--text-primary);font-size:10px;line-height:1.3;padding:7px 8px;outline:none}.team-assist-panel{margin:8px 12px 0;padding:10px;border:1px solid rgba(245,166,35,.35);border-radius:var(--r-md);background:#fff1c86b;box-shadow:inset 0 1px #ffffff73;flex-shrink:0}.team-assist-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.assist-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--primary-dark);font-size:11px;font-weight:800;cursor:pointer;-webkit-user-select:none;user-select:none}.assist-toggle input{width:14px;height:14px;accent-color:var(--primary)}.assist-complete-btn{background:var(--title-bg);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:7px 12px;font-size:11px;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap}.assist-complete-btn:hover:not(:disabled){background:var(--title-bg-hover);transform:translateY(-1px)}.assist-complete-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.assist-status{margin-top:7px;font-size:10px;color:var(--text-secondary);line-height:1.35}.assist-result{margin-top:7px;display:grid;gap:3px;color:var(--text-primary);font-size:10px;line-height:1.35}#team-slots{flex:1 0 auto;min-height:0;overflow:visible;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.team-slot{background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:10px;min-height:64px;position:relative;transition:border-color .15s,background .15s,transform .1s;flex:0 0 auto}.team-slot.filled{border-color:var(--primary);cursor:pointer}.team-slot.filled:hover{background:#fffdf9eb;transform:translateY(-1px)}.team-slot.filled:focus-visible{outline:3px solid rgba(245,166,35,.22);outline-offset:2px}.team-slot.empty{border-style:dashed;opacity:.5}.team-slot .slot-num{position:absolute;top:6px;left:8px;font-size:9px;color:var(--text-muted);font-weight:700}.team-slot .slot-remove{position:absolute;top:4px;right:6px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:2px}.team-slot .slot-remove:hover{color:var(--hp-red)}.team-slot .slot-pname{font-size:12px;font-weight:700;color:var(--text-primary);margin-left:20px;margin-bottom:4px}.team-slot .slot-type{font-size:9px;margin-left:20px;margin-bottom:6px}.slot-skills{display:flex;flex-wrap:wrap;gap:3px;margin-left:20px;margin-top:5px}.slot-skill-tag{background:var(--bg-card);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:9px;line-height:1.4;color:var(--text-secondary);cursor:default}.team-dialog-backdrop{display:none;position:fixed;inset:0;background:#4a372880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;align-items:center;justify-content:center}.team-dialog-backdrop.open{display:flex}.team-dialog-panel{background:var(--bg-page);border:2px solid var(--border);border-radius:var(--r-xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.team-dialog-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.team-dialog-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:14px;font-weight:700;color:var(--text-primary)}.team-dialog-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}.team-dialog-close:hover{color:var(--text-primary)}.team-dialog-footer{border-top:1px solid var(--border);display:flex;align-items:center;flex-shrink:0}#skill-search{padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0}#skill-search input{width:100%;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--r-md);padding:6px 10px;font-size:12px;color:var(--text-primary);outline:none;font-family:RocoBody,system-ui,sans-serif}#skill-search input:focus{border-color:var(--primary)}#skill-selected-bar{padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0;min-height:36px}#skill-selected-bar .hint{font-size:10px;color:var(--text-secondary);margin-bottom:4px}.skill-selected-hint{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.bloodline-skill-count,.fixed-bloodline-skill{border:1px solid rgba(155,89,182,.22);background:#9b59b614;border-radius:3px;color:var(--status-purple);font-weight:700;padding:1px 5px}.bloodline-skill-count.full{background:#9b59b624;border-color:#9b59b661}#skill-selected-tags{display:flex;flex-wrap:wrap;gap:4px}.sel-skill-tag{background:#f5a6231f;border:1px solid rgba(245,166,35,.35);border-radius:3px;padding:2px 7px;font-size:10px;color:var(--primary-dark);cursor:pointer;display:flex;align-items:center;gap:3px}.bloodline-mini-label{border:1px solid rgba(155,89,182,.3);background:#9b59b61f;border-radius:2px;color:var(--status-purple);font-size:9px;font-weight:800;line-height:1;padding:1px 3px}.sel-skill-tag .rm{color:var(--hp-red);font-size:11px;font-weight:700}#skill-list-wrap{flex:1;overflow-y:auto;padding:8px}.skill-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s;width:100%;border:0;background:transparent;text-align:left}.skill-row:hover{background:var(--bg-card)}.skill-row.selected-skill{background:#f5a6231f;box-shadow:inset 3px 0 0 var(--primary)}.skill-row.disabled-skill{cursor:not-allowed;background:#aa967809}.skill-row.disabled-skill:hover{background:#aa96780f}.skill-row .sr-name{font-size:12px;font-weight:600;min-width:80px;color:var(--text-primary)}.skill-row .sr-type{font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600;color:#fff}.skill-row .sr-cat{font-size:9px;color:var(--text-secondary);min-width:24px}.skill-row .sr-bloodline-need{border:1px solid rgba(217,83,79,.24);background:#d9534f14;border-radius:3px;color:var(--hp-red);flex-shrink:0;font-size:9px;font-weight:700;padding:1px 5px}.skill-row .sr-bloodline-need.matched{border-color:#9b59b64d;background:#9b59b61a;color:var(--status-purple)}.skill-row .sr-cost{font-size:10px;font-weight:700;color:var(--primary-dark);min-width:28px}.skill-row .sr-power{font-size:10px;color:var(--status-orange);min-width:32px}.skill-row .sr-desc{font-size:9px;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-row .sr-lock{font-size:9px;color:var(--hp-red);border:1px solid rgba(217,83,79,.22);background:#d9534f14;border-radius:3px;padding:1px 5px;flex-shrink:0}.skill-row .sr-effects{display:flex;gap:3px;max-width:160px;overflow:hidden;flex-shrink:0}.skill-row.disabled-skill .sr-name{color:var(--text-secondary)}.skill-row.disabled-skill .sr-desc{color:var(--text-muted)}.skill-row.disabled-skill .sr-lock{color:var(--hp-red);border-color:#d9534f57;background:#d9534f1a}.skill-row.disabled-skill .shared-info-trigger{background-color:#f5a62314;border-color:#f5a62338}.skill-row.disabled-skill .sr-type.shared-info-trigger{color:#fff}.bloodline-source{color:var(--status-purple)!important;font-weight:700}.sel-skill-tag.bloodline-tag{background:#9b59b61f;border-color:#9b59b659;color:var(--status-purple)}.t-normal{background:#a8a878;color:#fff}.t-fire{background:#f08030}.t-water{background:#6890f0}.t-electric,.t-电{background:#f8d030;color:#5a4000}.t-grass{background:#78c850}.t-ice,.t-冰{background:#98d8d8;color:#2a5a5a}.t-fighting,.t-武{background:#c03028}.t-poison,.t-毒{background:#a040a0}.t-ground,.t-地{background:#e0c068;color:#5a4000}.t-flying,.t-翼{background:#a890f0}.t-psychic,.t-幻{background:#f85888}.t-bug,.t-虫{background:#a8b820}.t-rock,.t-岩{background:#b8a038}.t-ghost,.t-幽{background:#705898}.t-dragon,.t-龙{background:#7038f8}.t-dark,.t-恶{background:#705848}.t-steel,.t-机械{background:#b8b8d0;color:#444}.t-fairy,.t-萌{background:#ee99ac}.t-光,.t-light{background:#ffd966;color:#5a4000}.t-火{background:#f08030}.t-水{background:#6890f0}.t-草{background:#78c850}.t-岩石{background:#b8a038}.t-普通{background:#a8a878;color:#fff}.team-page .sr-type{font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600;color:#fff}.team-page .poke-list-count{font-size:10px;color:var(--text-muted);white-space:nowrap}.team-page .pokemon-ability{font-size:9px;color:var(--text-secondary);flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-page .team-empty-note{color:var(--text-muted);font-size:12px;padding:16px;text-align:center}.team-page .team-empty-slot{font-size:11px;color:var(--text-muted);padding-left:20px}.team-page .slot-ability{font-size:9px;color:var(--text-secondary);margin-left:4px}.team-page .slot-config-note{font-size:9px;color:var(--text-muted);margin-left:20px;margin-top:4px;display:flex;align-items:center;gap:3px;flex-wrap:wrap}.team-page .slot-skill-warning{font-size:9px;color:var(--hp-red)}.team-page .slot-actions{margin-left:20px;margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.team-page .slot-actions button{background:none;border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:9px;color:var(--primary-dark);cursor:pointer}.team-page .skill-count-error{color:var(--hp-red)!important}.team-page .team-item{width:100%;text-align:left}.team-page .team-item-actions{display:flex;align-items:center;gap:8px}.team-page .info-link{appearance:none;border:1px solid rgba(245,166,35,.28);background:#f5a6231a;color:inherit;padding:0 4px;border-radius:5px;cursor:help;text-decoration:none;font:inherit;position:relative;display:inline-flex;align-items:center;gap:3px}.team-page .info-link:hover{color:var(--primary-dark);background:#f5a62333;border-color:#f5a6238c}.team-page .sr-type.info-link,.team-page .sr-cat.info-link,.team-page .sr-cost.info-link,.team-page .sr-power.info-link{text-decoration:none}.team-page .inline-term{color:var(--primary-dark);font-weight:700;padding:0 3px;margin:0 1px}.team-page .term-chip{flex-shrink:0;font-weight:700}.team-page .nature-chip{color:var(--primary-dark);background:#f5a6231f;border-color:#f5a62359;font-size:9px;line-height:1.4}.team-page .nature-bonus.nature-chip{margin-top:0;display:inline-flex;font-size:11px;color:var(--primary-dark)}.team-page .bloodline-chip{color:#6b4a8f;background:#9b59b61a;border:1px solid rgba(155,89,182,.28);border-radius:6px;font-size:9px;font-weight:800;line-height:1.35;padding:0 5px}.team-page .bloodline-chip.leader{color:var(--status-purple);background:#9b59b629;border-color:#9b59b66b}.team-page .ability-chip{display:inline-flex;width:auto;max-width:170px;padding:0 5px;border-radius:4px;background:transparent;border-color:transparent;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-page .ability-chip:hover{background:#f5a6231f;border-color:#f5a62347}.team-page .poke-card .ability-chip{flex:0 1 auto}.team-page .slot-ability.ability-chip{margin-left:4px;max-width:190px}.team-page .term-chip-mark{display:inline;color:currentColor;font-size:10px;font-weight:900;line-height:1;opacity:.72}.team-page .sr-type.info-link .term-chip-mark{color:currentColor}.team-page .info-link:hover:after,.team-page .info-link:focus-visible:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 7px);z-index:140;width:max-content;max-width:280px;white-space:normal;background:var(--bg-page);color:var(--text-primary);border:2px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:7px 10px;font-size:11px;font-weight:600;line-height:1.45;pointer-events:none}.team-page .info-link:hover:before,.team-page .info-link:focus-visible:before{content:"";position:absolute;left:10px;bottom:calc(100% + 2px);z-index:141;border:6px solid transparent;border-top-color:var(--border);pointer-events:none}.team-page .poke-card .info-link:hover:after,.team-page .poke-card .info-link:focus-visible:after,.team-page .team-slot .info-link:hover:after,.team-page .team-slot .info-link:focus-visible:after{left:0;bottom:auto;top:calc(100% + 5px);width:220px;max-width:220px;font-size:10px;padding:6px 8px}.team-page .poke-card .info-link:hover:before,.team-page .poke-card .info-link:focus-visible:before,.team-page .team-slot .info-link:hover:before,.team-page .team-slot .info-link:focus-visible:before{left:10px;bottom:auto;top:calc(100% + 0px);border-top-color:transparent;border-bottom-color:var(--border)}.team-page .tag-pill{background:#f5a6231f;border:1px solid rgba(245,166,35,.28);border-radius:999px;color:var(--primary-dark);font-size:9px;font-weight:700;line-height:1.4;padding:1px 6px;white-space:nowrap}.team-page .tag-pill.mini{max-width:74px;overflow:hidden;text-overflow:ellipsis}#load-no-teams{color:var(--text-muted);font-size:12px;padding:20px;text-align:center}#validate-hint{font-size:11px;color:var(--hp-red);min-height:16px;padding:0 16px 8px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}#loading{position:fixed;inset:0;background:var(--bg-page);display:flex;align-items:center;justify-content:center;z-index:200;flex-direction:column;gap:12px}#loading.hide{display:none}#loading .sp{width:32px;height:32px;border:3px solid rgba(245,166,35,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}#loading p{font-size:13px;color:var(--text-secondary)}@keyframes spin{to{transform:rotate(360deg)}}#config-modal-bg{z-index:110}#config-modal{width:min(720px,calc(100vw - 48px));height:min(720px,calc(100vh - 48px));max-height:calc(100vh - 48px)}#config-modal-content{flex:1;min-height:0;overflow:hidden;padding:16px;display:flex;flex-direction:column}#config-modal-footer{padding:12px 16px;justify-content:space-between;gap:12px}#config-count-hint{font-size:11px;color:var(--text-secondary)}#config-confirm{background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:7px 24px;font-size:12px;font-weight:700;cursor:pointer;font-family:RocoBody,system-ui,sans-serif;box-shadow:0 3px 8px #f5a6234d}#config-confirm:hover{opacity:.88}#config-pokemon-info{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-md);padding:10px;margin-bottom:12px;flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:12px;align-items:stretch}.config-pokemon-details{min-width:0;align-self:center}#config-pokemon-info .info-row{display:flex;font-size:12px;margin-bottom:4px}#config-pokemon-info .info-row:last-child{margin-bottom:0}#config-pokemon-info .info-label{color:var(--text-secondary);min-width:48px}#config-pokemon-info .info-value{color:var(--text-primary);font-weight:600}.config-pokemon-portrait{position:relative;min-height:104px;border:1px solid rgba(245,166,35,.3);border-radius:var(--r-md);background:radial-gradient(circle at 50% 34%,#ffffffeb,#fff1c873 54%,#f5a6231f),var(--bg-card);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.config-pokemon-portrait img{position:relative;z-index:1;max-width:112px;max-height:98px;object-fit:contain;image-rendering:-webkit-optimize-contrast;filter:drop-shadow(0 6px 8px rgba(74,55,40,.18))}.portrait-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#7a4e0847;font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:42px;font-weight:800}.config-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0;margin-bottom:12px}.config-tab{border:2px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--r-md);padding:8px 10px;font-size:12px;font-weight:700;font-family:RocoBody,system-ui,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.config-tab:hover{border-color:var(--primary);color:var(--primary-dark);background:#f5a62314}.config-tab.active{border-color:var(--primary);color:var(--primary-dark);background:#f5a62324}.config-tab-count{background:#f5a62329;border:1px solid rgba(245,166,35,.28);border-radius:var(--r-pill);padding:1px 6px;font-size:10px;color:var(--primary-dark)}.config-tab-panel{flex:1;min-height:0;overflow:hidden}.config-stats-panel{height:100%;overflow-y:auto;padding-right:2px}.config-skill-panel{height:100%;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:#fffdf98c}.config-skill-panel #skill-list-wrap{min-height:0}.config-section{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-md);padding:10px;margin-bottom:10px}.config-section:last-child{margin-bottom:0}.section-title{font-size:11px;font-weight:700;color:var(--text-primary);margin-bottom:8px;display:flex;align-items:center;gap:6px}.section-hint{font-size:9px;color:var(--text-muted);font-weight:400}.section-count{margin-left:auto;color:var(--primary-dark);font-size:10px;font-weight:700}.iv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.iv-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-sm);padding:6px 8px;min-height:32px;transition:border-color .15s,background .15s,color .15s;-webkit-user-select:none;user-select:none}.iv-checkbox:hover{border-color:var(--primary);background:#f5a6230f}.iv-checkbox input{cursor:pointer;width:13px;height:13px;accent-color:var(--primary)}.iv-checkbox input:disabled{cursor:not-allowed;opacity:.5}.iv-checkbox:has(input:checked){border-color:var(--primary);background:#f5a62324;color:var(--primary-dark)}.iv-checkbox:has(input:disabled){opacity:.55;cursor:not-allowed}.iv-checkbox:has(input:disabled):hover{border-color:var(--border);background:var(--bg-card)}.iv-label{font-size:11px;color:var(--text-primary);font-weight:600}.error-msg{font-size:10px;color:var(--hp-red);min-height:14px;margin-top:4px}.nature-selector{display:flex;flex-direction:column;gap:4px}#cfg-nature{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-md);padding:6px 8px;font-size:11px;color:var(--text-primary);outline:none;font-family:RocoBody,system-ui,sans-serif}#cfg-nature:focus{border-color:var(--primary)}.nature-bonus{font-size:10px;color:var(--text-secondary)}.bloodline-config-row{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:8px;align-items:stretch}#cfg-bloodline-type{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-md);padding:6px 8px;font-size:11px;color:var(--text-primary);outline:none}#cfg-bloodline-type:focus{border-color:var(--primary)}.bloodline-config-note{display:flex;align-items:center;min-height:32px;background:#9b59b614;border:1px solid rgba(155,89,182,.2);border-radius:var(--r-sm);color:var(--text-secondary);font-size:10px;font-weight:650;line-height:1.35;padding:6px 8px}.stats-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.stat-row{display:flex;justify-content:space-between;padding:4px 8px;background:var(--bg-card);border-radius:var(--r-sm)}.stat-label{font-size:10px;color:var(--text-secondary)}.stat-value{font-size:10px;color:var(--text-primary);font-weight:700;min-width:48px;text-align:right}@media(max-width:640px){#config-pokemon-info{grid-template-columns:1fr}.config-pokemon-portrait{min-height:96px}.config-pokemon-portrait img{max-height:88px}}#save-modal-bg{display:none;position:fixed;inset:0;background:#4a372880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;align-items:center;justify-content:center}#save-modal-bg.open{display:flex}#save-modal{background:var(--bg-page);border:2px solid var(--border);border-radius:var(--r-xl);width:400px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}#save-modal-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}#save-modal-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:14px;font-weight:700;color:var(--text-primary)}#save-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}#save-modal-close:hover{color:var(--text-primary)}#save-modal-content{padding:16px}#save-modal-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;flex-shrink:0}.save-row{margin-bottom:12px}.save-row:last-child{margin-bottom:0}.save-label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:6px;font-weight:600}#save-team-name{width:100%;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--r-md);padding:8px 10px;font-size:13px;color:var(--text-primary);outline:none;font-family:RocoBody,system-ui,sans-serif}#save-team-name:focus{border-color:var(--primary)}#save-confirm{background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:var(--r-pill);padding:7px 24px;font-size:12px;font-weight:700;cursor:pointer;font-family:RocoBody,system-ui,sans-serif;box-shadow:0 3px 8px #f5a6234d}#save-confirm:hover{opacity:.88}#load-modal-bg{display:none;position:fixed;inset:0;background:#4a372880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;align-items:center;justify-content:center}#load-modal-bg.open{display:flex}#load-modal{background:var(--bg-page);border:2px solid var(--border);border-radius:var(--r-xl);width:480px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}#load-modal-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}#load-modal-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:14px;font-weight:700;color:var(--text-primary)}#load-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}#load-modal-close:hover{color:var(--text-primary)}#load-modal-content{padding:0;flex:1;overflow-y:auto}#load-modal-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;flex-shrink:0}#load-cancel{background:var(--bg-input);color:var(--text-light);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 20px;font-size:12px;font-weight:700;cursor:pointer;font-family:RocoBody,system-ui,sans-serif}#load-cancel:hover{opacity:.88}.team-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:background .15s}.team-item:hover{background:var(--bg-card)}.team-item-info{flex:1}.team-item-name{font-size:13px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.team-item-meta{font-size:10px;color:var(--text-secondary)}.team-item-action{font-size:11px;color:var(--primary-dark);font-weight:600}.team-item-delete{background:none;border:none;color:var(--hp-red);cursor:pointer;font-size:16px;line-height:1;padding:4px 8px;margin-left:8px}.team-item-delete:hover{opacity:.7}@media(max-width:760px){.team-page{overflow:hidden}.team-page #topbar{height:auto;min-height:0;width:100%;max-width:100vw;padding:8px 10px 10px;flex-direction:column;align-items:stretch;gap:8px;overflow:hidden}.team-page #topbar h1{min-width:0;justify-content:center;gap:7px;font-size:15px;line-height:1.15;letter-spacing:0;text-align:center;white-space:normal}.team-page #topbar .logo{display:none}.team-page .topbar-right{width:100%;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.team-page #team-count{min-width:0;grid-column:1 / -1;font-size:12px;text-align:center}.team-page .topbar-action,.team-page #btn-start{min-width:0;width:100%;justify-content:center;padding:7px 4px;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-page #main{width:100%;max-width:100vw;display:flex;flex-direction:column;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.team-page #right{order:1;width:100%;max-width:100%;min-width:0;min-height:auto;overflow:visible;border-left:0;border-bottom:2px solid var(--border)}.team-page #left{order:2;width:100%;max-width:100%;min-width:0;min-height:auto;overflow:visible;border-right:0}.team-page #search-bar{position:sticky;top:0;z-index:40;flex-direction:column;align-items:stretch;padding:10px 12px;gap:6px;background:#f5ede0f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.team-page #search-input{width:100%;padding:9px 12px;font-size:14px}.team-page .poke-list-count{align-self:flex-end;font-size:11px}.team-page #filter-bar{padding:8px 12px;gap:6px}.team-page .filter-btn{padding:3px 10px;font-size:11px}.team-page #pokemon-list{flex:none;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;overflow:visible;padding:10px 12px 16px}.team-page .poke-card{min-height:72px;padding:10px}.team-page .poke-card .pname{font-size:13px;margin-bottom:6px}.team-page .poke-card .pmeta,.team-page .poke-card .pbst{font-size:10px}.team-page #team-controls{padding:10px 12px;gap:8px}.team-page .team-control-section{padding:10px}.team-page .team-control-section label{font-size:11px;margin-bottom:7px}.team-page .team-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;width:100%;min-width:0}.team-page .team-select{width:100%;min-width:0;padding:8px;font-size:12px}.team-page .mini-btn{min-width:0;padding:0 9px;font-size:11px}.team-page .control-note{font-size:10px;line-height:1.45}.team-page .bloodline-magic-row{grid-template-columns:1fr}.team-page .bloodline-magic-row .team-select{width:100%}.team-page .team-source-panel,.team-page .team-assist-panel{margin:8px 12px 0;padding:10px}.team-page .team-source-top,.team-page .team-assist-head{align-items:stretch}.team-page .team-source-title,.team-page .assist-toggle{font-size:12px}.team-page .team-source-side-btn,.team-page .team-source-mode-btn,.team-page .team-source-action-btn,.team-page .team-source-file-btn,.team-page .assist-complete-btn{padding:7px 10px;font-size:11px}.team-page .assist-status,.team-page .assist-result{font-size:10px}.team-page .team-share-line{grid-template-columns:minmax(0,1fr) auto auto}.team-page .team-share-code-input{min-height:50px;font-size:10px}.team-page #team-slots{flex:none;gap:8px;overflow:visible;padding:10px 12px}.team-page .team-slot{min-height:68px;padding:10px}.team-page .team-slot .slot-pname{font-size:13px}.team-page .team-empty-slot{font-size:12px}.team-page .slot-config-note{font-size:10px;line-height:1.45}.team-page .slot-skill-tag,.team-page .tag-pill,.team-page .nature-chip,.team-page .bloodline-chip,.team-page .ability-chip,.team-page .slot-ability{font-size:10px}.team-page #validate-hint{padding:2px 12px 12px;font-size:11px}.team-page #config-modal{width:calc(100vw - 16px);height:calc(100dvh - 18px);max-height:calc(100dvh - 18px);border-radius:var(--r-lg)}.team-page #config-modal-content{padding:10px}.team-page #config-modal-footer,.team-page .team-dialog-header{padding:10px 12px}.team-page .config-tabs{gap:6px;margin-bottom:10px}.team-page .config-tab{padding:7px 8px;font-size:11px}.team-page #config-pokemon-info{gap:8px;padding:9px}.team-page .config-section{padding:9px}.team-page .bloodline-config-row,.team-page .stats-preview{grid-template-columns:1fr}.team-page .iv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-page .skill-row{flex-wrap:wrap;gap:5px;padding:7px}.team-page .skill-row .sr-name{flex:1 1 130px;min-width:0;font-size:12px}.team-page .skill-row .sr-desc{flex:1 0 100%;white-space:normal;line-height:1.45}.team-page .skill-row .sr-effects{max-width:100%;flex-wrap:wrap}.team-page #save-modal,.team-page #load-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:var(--r-lg)}}@media(min-width:1440px){.team-page #topbar{height:60px;padding:0 34px}.team-page #topbar h1{font-size:20px;gap:10px}.team-page #topbar .logo{height:36px}.team-page .topbar-right{gap:16px}.team-page .topbar-action{min-width:132px;padding:9px 20px;font-size:14px}.team-page #btn-start{padding:9px 28px;font-size:15px}.team-page #team-count{font-size:14px}.team-page #main{grid-template-columns:minmax(0,1fr) 430px}.team-page #search-bar{padding:18px 20px;gap:12px}.team-page #search-input{padding:10px 16px;font-size:16px}.team-page .poke-list-count{font-size:13px}.team-page #filter-bar{padding:12px 20px;gap:8px}.team-page .filter-btn{padding:4px 14px;font-size:13px}.team-page #pokemon-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:18px 20px}.team-page .poke-card{min-height:86px;padding:14px 16px}.team-page .poke-card .pname{font-size:15px;margin-bottom:7px}.team-page .poke-card .pmeta{gap:6px;font-size:12px}.team-page .poke-card .pbst{font-size:12px}.team-page #team-controls{padding:16px 18px;gap:14px}.team-page .team-control-section{padding:13px}.team-page .team-control-section label{margin-bottom:9px;font-size:13px}.team-page .team-select-row{gap:8px}.team-page .team-select{padding:9px 10px;font-size:14px}.team-page .mini-btn{padding:0 14px;font-size:13px}.team-page .control-note{margin-top:8px;font-size:12px;line-height:1.45}.team-page .team-source-panel,.team-page .team-assist-panel{margin:10px 16px 0;padding:13px}.team-page .team-source-title,.team-page .assist-toggle{font-size:14px}.team-page .team-source-title strong{font-size:12px;padding:2px 8px}.team-page .team-source-side-btn,.team-page .team-source-mode-btn,.team-page .team-source-action-btn,.team-page .team-source-file-btn,.team-page .assist-complete-btn{padding:8px 14px;font-size:13px}.team-page .assist-toggle input{width:17px;height:17px}.team-page .assist-status,.team-page .assist-result{font-size:12px;line-height:1.45}.team-page .team-share-code-input{font-size:12px}.team-page #team-slots{gap:10px;padding:14px 16px}.team-page .team-slot{min-height:82px;padding:14px}.team-page .team-slot .slot-num{font-size:11px}.team-page .team-slot .slot-remove{top:6px;right:8px;font-size:18px}.team-page .team-slot .slot-pname{margin-bottom:6px;font-size:15px}.team-page .team-empty-slot{font-size:13px}.team-page .slot-config-note{margin-top:6px;font-size:12px;line-height:1.45}.team-page .slot-skill-tag,.team-page .tag-pill,.team-page .nature-chip,.team-page .bloodline-chip,.team-page .ability-chip,.team-page .slot-ability{font-size:12px}.team-page .slot-actions button{padding:2px 8px;font-size:12px}.team-page .sr-type,.team-page .skill-row .sr-type,.team-page .skill-row .sr-cat,.team-page .skill-row .sr-bloodline-need,.team-page .skill-row .sr-lock{font-size:11px}.team-page .team-empty-note,.team-page #load-no-teams,.team-page #validate-hint,.team-page #loading p{font-size:13px}.team-page .team-dialog-title,.team-page #save-modal-title,.team-page #load-modal-title{font-size:17px}.team-page #config-pokemon-info .info-row,.team-page .config-tab,.team-page #skill-search input,.team-page .skill-row .sr-name,.team-page #cfg-nature,.team-page #cfg-bloodline-type,.team-page #save-team-name{font-size:14px}.team-page #skill-selected-bar .hint,.team-page .section-title,.team-page .iv-label,.team-page .save-label,.team-page .team-item-action{font-size:13px}.team-page .section-hint,.team-page .section-count,.team-page .error-msg,.team-page .nature-bonus,.team-page .bloodline-config-note,.team-page .stat-label,.team-page .stat-value,.team-page .team-item-meta,.team-page .skill-row .sr-cost,.team-page .skill-row .sr-power,.team-page .skill-row .sr-desc,.team-page .sel-skill-tag{font-size:12px}.team-page .team-item-name{font-size:15px}}@font-face{font-family:RocoTitle;src:url(/assets/fonts/HYXiaoBoHeiQiShiW.ttf) format("truetype");font-display:swap}@font-face{font-family:RocoBody;src:url(/assets/fonts/皇室战争\ B.otf) format("opentype");font-weight:700;font-display:swap}@font-face{font-family:RocoBody;src:url(/assets/fonts/皇室战争\ L.otf) format("opentype");font-weight:400;font-display:swap}:root{--primary: #F5A623;--primary-light: #FFC85C;--primary-dark: #E0931A;--primary-gradient: linear-gradient(135deg, #FFC85C 0%, #F5A623 50%, #E0931A 100%);--bg-page: #FFFDF9;--bg-card: #F5EDE0;--bg-card-hover: #EDE4D3;--bg-panel: rgba(245, 237, 224, .85);--bg-input: #FFFFFF;--bg-topbar: linear-gradient(135deg, #FFC85C 0%, #F5A623 40%, #E8961E 100%);--title-bg: #3A3A3A;--title-bg-hover: #4A4A4A;--accent-star: #FFC000;--accent-blue: #5BA8D5;--text-primary: #4A3728;--text-secondary: #8B7355;--text-muted: #B8A88A;--text-light: #FFFFFF;--text-on-primary: #FFFFFF;--border: #E8DFD0;--border-strong: #D4C4AA;--shadow-sm: 0 2px 6px rgba(180, 160, 130, .15);--shadow-md: 0 4px 12px rgba(180, 160, 130, .2);--shadow-lg: 0 8px 24px rgba(180, 160, 130, .25);--shadow-glow: 0 0 20px rgba(245, 166, 35, .3);--r-xs: 6px;--r-sm: 8px;--r-md: 14px;--r-lg: 22px;--r-xl: 30px;--r-pill: 45px;--hp-green: #5CB85C;--hp-yellow: #F0AD4E;--hp-red: #D9534F;--heal-green: #2ECC71;--dmg-red: #E74C3C;--dmg-phys: #E67E22;--dmg-magic: #9B59B6;--status-purple: #9B59B6;--status-orange: #E67E22;--buff-blue: #3498DB;--debuff-red: #C0392B;--energy-blue: #4FC3F7;--type-fire: #F08030;--type-water: #6890F0;--type-grass: #78C850;--type-electric: #F8D030;--type-ice: #98D8D8;--type-poison: #A040A0;--type-rock: #B8A038;--type-flying: #A890F0;--type-psychic: #F85888;--type-ghost: #705898;--type-fighting: #C03028;--type-dark: #705848;--type-fairy: #EE99AC;--type-steel: #B8B8D0;--type-dragon: #7038F8;--type-bug: #A8B820;--type-normal: #A8A878;--type-ground: #E0C068;--type-light: #FFD966;--ease: cubic-bezier(.4, 0, .2, 1);--duration: .2s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:RocoBody,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg-page);color:var(--text-primary);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url(/assets/img/star-bg.png);background-repeat:repeat;background-size:80px;opacity:.08}body>*{position:relative;z-index:1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-card);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.roco-topbar{background:var(--bg-topbar);padding:10px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 3px 12px #c896324d;position:relative;z-index:100}.roco-topbar:after{content:"";position:absolute;bottom:-12px;left:0;right:0;height:12px;background:url(/assets/img/swoosh.png) center / 100% 100% no-repeat;opacity:.3;pointer-events:none}.roco-topbar .logo{height:32px;filter:brightness(10)}.roco-topbar h1,.roco-topbar .title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;color:var(--text-light);font-size:18px;text-shadow:1px 2px 4px rgba(0,0,0,.2);letter-spacing:1px}.roco-topbar .info{color:#ffffffd9;font-size:13px;margin-left:auto}.roco-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:16px;transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.roco-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.roco-pill-title{display:inline-flex;align-items:center;gap:6px;background:var(--title-bg);color:var(--text-light);padding:6px 16px;border-radius:var(--r-pill);font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:14px;letter-spacing:.5px}.roco-pill-title:before{content:"★";color:var(--accent-star);font-size:12px}.roco-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 20px;border:none;border-radius:var(--r-pill);background:var(--primary-gradient);color:var(--text-light);font-family:RocoBody,system-ui,sans-serif;font-weight:700;font-size:14px;cursor:pointer;transition:all var(--duration) var(--ease);box-shadow:0 3px 8px #f5a6234d;text-shadow:0 1px 2px rgba(0,0,0,.15)}.roco-btn:hover{transform:translateY(-1px);box-shadow:0 5px 15px #f5a62366;filter:brightness(1.05)}.roco-btn:active{transform:translateY(0);box-shadow:0 2px 4px #f5a6234d}.roco-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.roco-btn-secondary{background:var(--bg-card);color:var(--text-primary);border:2px solid var(--border-strong);box-shadow:var(--shadow-sm);text-shadow:none}.roco-btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--primary);box-shadow:var(--shadow-md)}.roco-btn-dark{background:var(--title-bg);color:var(--text-light);box-shadow:var(--shadow-sm)}.roco-btn-dark:hover{background:var(--title-bg-hover);box-shadow:var(--shadow-md)}.roco-btn-lg{padding:14px 40px;font-size:18px;border-radius:var(--r-pill)}.roco-input{padding:8px 14px;border:2px solid var(--border);border-radius:var(--r-md);background:var(--bg-input);color:var(--text-primary);font-family:RocoBody,system-ui,sans-serif;font-size:14px;outline:none;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.roco-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f5a62326}.roco-input::placeholder{color:var(--text-muted)}.type-badge{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2);white-space:nowrap}.t-fire{background:var(--type-fire)}.t-water{background:var(--type-water)}.t-grass{background:var(--type-grass)}.t-electric{background:var(--type-electric);color:#5a4000;text-shadow:none}.t-ice{background:var(--type-ice);color:#2a5a5a;text-shadow:none}.t-poison{background:var(--type-poison)}.t-rock{background:var(--type-rock)}.t-flying{background:var(--type-flying)}.t-psychic{background:var(--type-psychic)}.t-ghost{background:var(--type-ghost)}.t-fighting{background:var(--type-fighting)}.t-dark{background:var(--type-dark)}.t-fairy{background:var(--type-fairy)}.t-steel{background:var(--type-steel);color:#444;text-shadow:none}.t-dragon{background:var(--type-dragon)}.t-bug{background:var(--type-bug)}.t-normal{background:var(--type-normal)}.t-ground{background:var(--type-ground);color:#5a4000;text-shadow:none}.t-light{background:var(--type-light);color:#5a4000;text-shadow:none}.t-machine{background:#b8b8d0;color:#444;text-shadow:none}.t-holy{background:#ffd966;color:#5a4000;text-shadow:none}.hp-bar-wrap{background:var(--border);border-radius:6px;height:10px;overflow:hidden;border:1px solid var(--border-strong)}.hp-bar-fill{height:100%;border-radius:5px;transition:width .4s var(--ease),background .4s var(--ease)}.hp-green{background:var(--hp-green)}.hp-yellow{background:var(--hp-yellow)}.hp-red{background:var(--hp-red)}.energy-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--bg-card);transition:all .3s var(--ease)}.energy-dot.filled{background:var(--energy-blue);border-color:var(--accent-blue);box-shadow:0 0 6px #4fc3f780}.buff-tag{display:inline-block;padding:1px 6px;border-radius:var(--r-sm);font-size:10px;font-weight:700}.buff-up{background:#3498db26;color:var(--buff-blue);border:1px solid rgba(52,152,219,.3)}.buff-down{background:#c0392b1a;color:var(--debuff-red);border:1px solid rgba(192,57,43,.25)}.float-num{position:absolute;font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:22px;font-weight:700;pointer-events:none;animation:float-up .95s var(--ease) forwards;z-index:50;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 8px rgba(0,0,0,.15)}.float-dmg{color:var(--dmg-red)}.float-heal{color:var(--heal-green)}.float-status{color:var(--status-purple)}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(1.2)}60%{opacity:1;transform:translateY(-40px) scale(1)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.roco-modal-bg{position:fixed;inset:0;background:#4a372880;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center}.roco-modal{background:var(--bg-page);border:2px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);max-width:90vw;max-height:85vh;overflow-y:auto;padding:24px}.conn-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.conn-dot.online{background:var(--hp-green);box-shadow:0 0 6px var(--hp-green)}.conn-dot.offline{background:var(--hp-red);box-shadow:0 0 6px var(--hp-red)}.roco-tooltip{background:var(--title-bg);color:var(--text-light);padding:6px 12px;border-radius:var(--r-sm);font-size:12px;box-shadow:var(--shadow-md);max-width:250px;z-index:200}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.flex-center{display:flex;align-items:center;justify-content:center}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}a{color:inherit}#root{min-height:100vh}.app-frame{min-height:100vh;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-page)}.app-content{flex:1;min-height:0;overflow:hidden}.app-frame.app-frame-damage-cal,.app-frame.app-frame-predict{display:block!important;height:auto!important;min-height:100vh;overflow:visible!important}.app-frame.app-frame-damage-cal>.app-content,.app-frame.app-frame-predict>.app-content{display:block!important;flex:none!important;height:auto!important;min-height:auto;overflow:visible!important}html.predict-document-scroll,body.predict-document-scroll{height:auto!important;min-height:100vh;overflow-x:hidden!important;overflow-y:auto!important}.global-thanks{min-height:28px;flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:5px 14px;border-top:1px solid var(--border);background:#fffdf9f0;color:var(--text-secondary);font-size:11px;font-weight:700;line-height:1.2;text-align:center;box-shadow:0 -2px 8px #b4a08214;position:relative;z-index:200}.global-thanks a{color:var(--primary-dark);text-decoration:none;border-bottom:1px solid rgba(224,147,26,.35)}.global-thanks a:hover{color:var(--text-primary);border-bottom-color:currentColor}.app-frame-rules .global-thanks{background:#0a1628;border-top-color:var(--rules-border, #2a3a55);color:var(--rules-dim, #94a3b8);box-shadow:none}.app-frame-rules .global-thanks a{color:var(--rules-accent, #4fc3f7);border-bottom-color:#4fc3f773}.shell{min-height:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center}.shell-logo{height:42px;object-fit:contain}.shell-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7a4e08}.shell h1{margin:0;font-size:32px}.shell-description{margin:0;max-width:520px;color:#6b5a4a;line-height:1.6}.shell-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}.shell-nav a{border:1px solid rgba(122,78,8,.22);border-radius:999px;background:#fffdf9d1;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none}.shell-nav a.active{background:#f5a623;color:#fffdf9;border-color:#f5a623}.landing-page{min-height:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}.landing-page:before{opacity:.05}.hero-bg{position:fixed;inset:0;z-index:0;background:url(/assets/img/banner.png) center / cover no-repeat;filter:blur(2px) brightness(.85)}.hero-overlay{position:fixed;inset:0;z-index:0;background:linear-gradient(180deg,#fffdf94d,#fffdf999 40%,#f5a62333)}.landing-card{position:relative;z-index:2;background:#fffdf9eb;border:2px solid var(--border);border-radius:var(--r-xl);padding:48px 56px;text-align:center;box-shadow:var(--shadow-lg),0 0 60px #f5a62326;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:480px;width:90%}.landing-logo{height:40px;margin-bottom:8px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.landing-title{font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:32px;color:var(--primary-dark);margin-bottom:8px;text-shadow:0 2px 4px rgba(245,166,35,.15);letter-spacing:2px}.landing-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:32px;line-height:1.6}.landing-btns{display:flex;flex-direction:column;gap:12px;align-items:center}.landing-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 48px;background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:var(--r-pill);font-family:RocoTitle,RocoBody,system-ui,sans-serif;font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 4px 20px #f5a62366;transition:all .2s var(--ease);text-decoration:none;letter-spacing:1px}.landing-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px #f5a62380;filter:brightness(1.05)}.landing-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 32px;background:var(--bg-card);color:var(--text-primary);border:2px solid var(--border-strong);border-radius:var(--r-pill);font-family:RocoBody,system-ui,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s var(--ease);text-decoration:none}.landing-btn-secondary:hover{border-color:var(--primary);background:var(--bg-card-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.landing-footer{margin-top:24px;font-size:11px;color:var(--text-muted)}.landing-footer a{color:var(--text-secondary);text-decoration:none}.landing-footer a:hover{color:var(--primary-dark)}.landing-license{margin-top:4px}.star-deco{position:fixed;z-index:1;color:var(--accent-star);font-size:24px;opacity:.3;animation:star-float 6s ease-in-out infinite;pointer-events:none}.star-deco:nth-of-type(1){top:15%;left:10%;animation-delay:0s;font-size:20px}.star-deco:nth-of-type(2){top:25%;right:12%;animation-delay:1.5s;font-size:28px}.star-deco:nth-of-type(3){bottom:20%;left:8%;animation-delay:3s;font-size:16px}.star-deco:nth-of-type(4){bottom:30%;right:15%;animation-delay:4.5s;font-size:22px}@keyframes star-float{0%,to{transform:translateY(0) rotate(0);opacity:.3}50%{transform:translateY(-12px) rotate(15deg);opacity:.5}}.rules-page{--rules-bg: #0a0e1a;--rules-bg2: #111827;--rules-bg3: #1a2235;--rules-border: #2a3a55;--rules-accent: #4fc3f7;--rules-green: #4ade80;--rules-red: #f87171;--rules-yellow: #fbbf24;--rules-orange: #fb923c;--rules-purple: #c084fc;--rules-pink: #f472b6;--rules-text: #e2e8f0;--rules-dim: #94a3b8;background:var(--rules-bg);color:var(--rules-text);font-family:Segoe UI,system-ui,sans-serif;height:100%;min-height:0;overflow-y:auto}.rules-page:before{display:none}.rules-header{background:linear-gradient(90deg,#0a1628,#111e3a);border-bottom:1px solid var(--rules-border);padding:14px 24px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:100}.rules-header h1{font-size:16px;font-weight:700;color:var(--rules-accent);letter-spacing:.5px}.rules-page .subtitle{font-size:11px;color:var(--rules-dim)}.rules-nav{background:var(--rules-bg2);border-bottom:1px solid var(--rules-border);padding:0 24px;display:flex;gap:4px;overflow-x:auto;flex-shrink:0}.rules-page .tab{appearance:none;background:transparent;border:0;padding:10px 16px;font:inherit;font-size:12px;font-weight:600;color:var(--rules-dim);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .2s}.rules-page .tab:hover{color:var(--rules-text)}.rules-page .tab.active{color:var(--rules-accent);border-bottom-color:var(--rules-accent)}.rules-content{max-width:1100px;margin:0 auto;padding:24px}.rules-page .section{display:none}.rules-page .section.active{display:block}.rules-page .block{margin-bottom:28px}.rules-page .block-title{font-size:13px;font-weight:700;color:var(--rules-accent);margin-bottom:10px;display:flex;align-items:center;gap:8px}.rules-page .block-title:before{content:"";width:3px;height:14px;background:var(--rules-accent);border-radius:2px}.rules-page table{width:100%;border-collapse:collapse;font-size:12px}.rules-page th{background:var(--rules-bg3);color:var(--rules-dim);font-weight:600;padding:8px 12px;text-align:left;border-bottom:1px solid var(--rules-border);white-space:nowrap}.rules-page td{padding:8px 12px;border-bottom:1px solid rgba(42,58,85,.5);vertical-align:top;line-height:1.5}.rules-page tr:hover td{background:#4fc3f70a}.rules-page .code{font-family:monospace;font-size:11px;color:var(--rules-yellow);background:#fbbf2414;padding:1px 5px;border-radius:3px}.rules-page .badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;margin-right:4px}.rules-page .badge-green{background:#4ade8026;color:var(--rules-green);border:1px solid rgba(74,222,128,.3)}.rules-page .badge-red{background:#f8717126;color:var(--rules-red);border:1px solid rgba(248,113,113,.3)}.rules-page .badge-yellow{background:#fbbf2426;color:var(--rules-yellow);border:1px solid rgba(251,191,36,.3)}.rules-page .badge-blue{background:#4fc3f726;color:var(--rules-accent);border:1px solid rgba(79,195,247,.3)}.rules-page .badge-purple{background:#c084fc26;color:var(--rules-purple);border:1px solid rgba(192,132,252,.3)}.rules-page .badge-orange{background:#fb923c26;color:var(--rules-orange);border:1px solid rgba(251,146,60,.3)}.rules-page .flow{display:flex;flex-direction:column;gap:4px}.rules-page .flow-step{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;background:var(--rules-bg3);border-radius:6px;border-left:3px solid var(--rules-border)}.rules-page .flow-step.highlight{border-left-color:var(--rules-accent);background:#4fc3f70f}.rules-page .flow-step.warn{border-left-color:var(--rules-yellow)}.rules-page .flow-num{color:var(--rules-accent);font-weight:700;font-size:11px;min-width:18px;margin-top:1px}.rules-page .flow-arrow{text-align:center;color:var(--rules-border);font-size:12px;padding:2px 0}.rules-page .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rules-page .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}@media(max-width:700px){.rules-page .grid2,.rules-page .grid3{grid-template-columns:1fr}}.rules-page .card{background:var(--rules-bg3);border-radius:8px;padding:14px;border:1px solid var(--rules-border)}.rules-page .card-title{font-size:11px;font-weight:700;color:var(--rules-dim);text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}.rules-page .card-val{font-size:22px;font-weight:800;color:var(--rules-accent)}.rules-page .card-desc{font-size:11px;color:var(--rules-dim);margin-top:4px}.rules-page .tip{padding:8px 12px;border-radius:6px;font-size:11px;margin-bottom:8px;display:flex;align-items:flex-start;gap:8px}.rules-page .tip-icon{font-size:14px;flex-shrink:0;margin-top:1px}.rules-page .tip.info{background:#4fc3f714;border:1px solid rgba(79,195,247,.2);color:var(--rules-accent)}.rules-page .tip.warn{background:#fbbf2414;border:1px solid rgba(251,191,36,.2);color:var(--rules-yellow)}.rules-page .tip.danger{background:#f8717114;border:1px solid rgba(248,113,113,.2);color:var(--rules-red)}@media(max-width:760px){html,body,#root{width:100%;min-width:0;overflow-x:hidden}.app-frame{height:100svh;min-height:100svh;max-width:100vw}.app-content{max-width:100vw}.global-thanks{min-height:40px;padding:6px 10px;gap:4px;font-size:10px;line-height:1.35}.shell{height:100%;padding:24px 16px;overflow-y:auto}.shell h1{font-size:26px}.shell-description{max-width:100%;font-size:13px}.shell-nav{width:100%}.shell-nav a{flex:1 1 120px;text-align:center}.landing-page{justify-content:flex-start;min-height:100%;height:100%;padding:24px 14px;overflow-y:auto}.hero-bg,.hero-overlay{position:absolute}.landing-card{width:min(100%,420px);margin:auto 0;padding:28px 20px;border-radius:var(--r-lg)}.landing-logo{height:34px}.landing-title{font-size:28px;letter-spacing:1px}.landing-subtitle{margin-bottom:24px;font-size:13px}.landing-btn-primary,.landing-btn-secondary{width:min(100%,260px)}.landing-btn-primary{padding:13px 20px;font-size:17px}.landing-btn-secondary{padding:10px 18px;font-size:13px}.landing-footer{font-size:10px;line-height:1.45}.star-deco{display:none}.rules-page{max-width:100vw;overflow-x:hidden}.rules-header{align-items:flex-start;padding:12px 14px}.rules-header h1{font-size:15px;line-height:1.35}.rules-page .subtitle{margin-top:4px;font-size:10px;line-height:1.45}.rules-nav{padding:0 10px;gap:2px;scrollbar-width:thin}.rules-page .tab{padding:10px 12px;font-size:12px}.rules-content{width:100%;max-width:100%;padding:16px 12px 24px}.rules-page .block{margin-bottom:20px}.rules-page .block-title{align-items:flex-start;font-size:13px;line-height:1.35}.rules-page table{display:block;width:100%;max-width:100%;overflow-x:auto;white-space:nowrap;font-size:11px}.rules-page th,.rules-page td,.rules-page .flow-step{padding:8px 10px}.rules-page .card{padding:12px}.rules-page .tip{padding:8px 10px;line-height:1.5}}
