*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a1a;--bg2:#0f0f2a;--surface:#1a1a3a;--border:#2a2a5a;--cyan:#00f0ff;--magenta:#f0f;--gold:gold;--green:#0f8;--red:#f04;--text:#d0d0ff;--text2:#8080cc;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;min-height:100vh;padding-top:var(--sat);padding-bottom:var(--sab);padding-left:var(--sal);padding-right:var(--sar);font-family:Noto Sans SC,Microsoft YaHei,sans-serif;overflow:hidden}#game-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}#app{z-index:1;max-width:780px;padding:10px 12px;padding-bottom:calc(10px + var(--sab));flex-direction:column;height:100dvh;margin:0 auto;display:flex;position:relative}.tab-bar{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-shrink:0;gap:4px;margin-bottom:6px;padding:4px;display:flex}.tab-btn{cursor:pointer;color:var(--text2);touch-action:manipulation;background:0 0;border:none;border-radius:9px;flex:1;padding:8px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.tab-btn.active{background:var(--surface);color:var(--cyan);box-shadow:0 0 12px #00f0ff14}.header{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;padding:8px 14px;display:flex}.header .title{background:linear-gradient(135deg,var(--cyan),var(--magenta));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:14px;font-weight:900}.header .stats{flex-wrap:wrap;gap:6px;font-size:11px;display:flex}.header .stats .stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px 8px}.header .stats .stat .val{color:var(--cyan);font-weight:700}.header .stats .stat .val.hp-ok{color:var(--green)}.header .stats .stat .val.hp-warn{color:var(--gold)}.header .stats .stat .val.hp-danger{color:var(--red)}.header .stats .stat .val.combo-fire{color:#f80;text-shadow:0 0 8px #f809}.game-area{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex:none;height:48vh;min-height:260px;margin:6px 0;position:relative;overflow:hidden}#monster-lane{background:linear-gradient(#0000 60%,#00f0ff05);position:absolute;inset:0;overflow:hidden}.monster{text-align:center;z-index:10;will-change:top;width:80px;padding:6px;position:absolute}.monster .m-img{width:50px;height:50px;image-rendering:pixelated;margin:0 auto;display:block}.monster .m-img-fallback{border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;margin:0 auto;font-size:22px;font-weight:900;display:flex}.monster .m-hp-wrapper{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}.monster .m-hp-fill{border-radius:2px;height:100%;transition:width .15s}.monster.taking-damage .m-img{animation:.25s dmgBounce}@keyframes dmgBounce{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.defense-line{text-align:center;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;bottom:0;left:0;right:0}.defense-line .license-icon{align-items:center;padding:4px;display:inline-flex}.defense-line .license-icon img{width:60px;height:60px;image-rendering:pixelated}.defense-line .license-icon .fallback-text{font-size:48px;line-height:120px}.defense-line .license-icon{font-size:20px;display:block}.question-area{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-shrink:0;padding:10px 14px}.q-number{color:var(--text2);margin-bottom:3px;font-size:11px}.q-text{min-height:38px;margin-bottom:8px;font-size:14px;font-weight:700;line-height:1.5}.options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.option-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:10px;min-height:40px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.3;transition:all .15s}.option-btn:hover{background:var(--bg);border-color:var(--cyan)}.option-btn.disabled{pointer-events:none;opacity:.6}.option-btn.correct{border-color:var(--green);background:#00ff881a}.option-btn.wrong{border-color:var(--red);background:#ff00441a}.upgrade-panel{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-shrink:0;margin-top:4px;padding:8px 12px}.upgrade-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.upgrade-gold{color:var(--gold);font-size:13px;font-weight:700}.upgrade-btns{flex-wrap:wrap;gap:6px;display:flex}.upgrade-btn-sm{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:center;border-radius:8px;padding:6px 12px;font-family:inherit;font-size:11px;line-height:1.2}.upgrade-btn-sm:hover{background:var(--bg);border-color:var(--gold)}.upgrade-btn-sm.disabled{opacity:.4;cursor:not-allowed}.upgrade-btn-sm .cost{color:var(--gold);font-weight:700}.upgrade-btn-sm .lbl{color:var(--text2);font-size:9px;display:block}.footer{color:var(--text2);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:6px 4px 2px;font-size:10px;display:flex}.footer input[type=file]{display:none}.import-btn,.reset-btn{background:var(--surface);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:10px}.import-btn:hover,.reset-btn:hover{background:var(--bg);border-color:var(--cyan);color:var(--text)}.reset-btn:hover{border-color:var(--red);color:var(--red)}.combo-notify{z-index:50;pointer-events:none;text-shadow:0 0 20px #ffd70080;font-size:24px;font-weight:900;animation:1s ease-out forwards comboPop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes comboPop{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)}50%{opacity:1;transform:translate(-50%,-60%)scale(1.2)}to{opacity:0;transform:translate(-50%,-80%)scale(1)}}.game-over-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:none;position:absolute;inset:0}.game-over-overlay.show{display:flex}.go-title{color:var(--red);font-size:28px;font-weight:900}.go-stats{text-align:center;font-size:14px;line-height:2}.go-stats span{color:var(--cyan);font-weight:700}.restart-btn{background:linear-gradient(135deg,var(--cyan),var(--magenta));color:#fff;cursor:pointer;border:none;border-radius:12px;padding:12px 36px;font-family:inherit;font-size:14px;font-weight:700}.start-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000e0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;inset:0}.start-overlay .start-title{text-align:center;background:linear-gradient(135deg,var(--cyan),var(--magenta));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:32px;font-weight:900}.start-overlay .start-sub{color:var(--text2);text-align:center;font-size:12px;line-height:1.8}.start-overlay .start-btn{background:linear-gradient(135deg,var(--cyan),var(--magenta));color:#fff;cursor:pointer;border:none;border-radius:12px;padding:14px 40px;font-family:inherit;font-size:16px;font-weight:700;box-shadow:0 4px 20px #00f0ff4d}.defense-name{color:var(--text2);text-align:center;margin-top:2px;font-size:10px;display:block}.start-features{flex-wrap:wrap;justify-content:center;gap:8px;margin:4px 0;display:flex}.start-feature{background:var(--surface);color:var(--text2);border-radius:8px;padding:3px 10px;font-size:11px}.start-pokemon{color:var(--cyan);margin:4px 0;font-size:14px;font-weight:700}.confirm-overlay{z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.confirm-overlay.show{display:flex}.confirm-box{background:var(--bg2);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:340px;padding:20px 24px}.confirm-box .confirm-text{margin-bottom:16px;font-size:14px;line-height:1.6}.confirm-box .confirm-btns{justify-content:center;gap:10px;display:flex}.confirm-box button{cursor:pointer;border:none;border-radius:10px;min-height:40px;padding:8px 24px;font-family:inherit;font-size:13px;font-weight:700}.confirm-box .btn-cancel{background:var(--surface);color:var(--text2);border:1px solid var(--border)}.confirm-box .btn-confirm{background:linear-gradient(135deg,var(--cyan),var(--magenta));color:#fff}.pokedex-area{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:1;min-height:0;margin:6px 0;display:none;overflow:hidden}.pokedex-area.active{display:flex}.pokedex-header{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;display:flex}.pokedex-header .info{color:var(--text2);font-size:11px}.pokedex-header .info span{color:var(--cyan);font-weight:700}.pokedex-gacha{align-items:center;gap:6px;display:flex}.gacha-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ff6d00,#f04);border:none;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:700;box-shadow:0 2px 10px #ff00444d}.gacha-btn:active{transform:scale(.97)}.gacha-btn:disabled{opacity:.4;cursor:not-allowed}.pokedex-grid{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));align-content:start;gap:4px;padding:6px;display:grid;overflow-y:auto}.pokedex-grid::-webkit-scrollbar{width:4px}.pokedex-grid::-webkit-scrollbar-track{background:0 0}.pokedex-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pkm-card{background:var(--surface);border:1px solid var(--border);text-align:center;cursor:pointer;touch-action:manipulation;border-radius:8px;padding:4px;transition:all .15s;position:relative}.pkm-card:hover{border-color:var(--cyan)}.pkm-card.active{border-color:var(--gold);box-shadow:0 0 12px #ffd70026}.pkm-card.locked{opacity:.5}.pkm-card .pkm-id{color:var(--text2);font-size:8px;position:absolute;top:2px;left:4px}.pkm-card .pkm-img{width:48px;height:48px;image-rendering:pixelated;object-fit:contain;margin:4px auto;display:block}.pkm-card .pkm-img-fallback{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:4px auto;font-size:20px;font-weight:900;display:flex}.pkm-card .pkm-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.pkm-card .pkm-progress{color:var(--gold);margin-top:1px;font-size:7px}.pkm-card .pkm-using{color:var(--green);font-size:9px;position:absolute;top:2px;right:4px}.pkm-card .pkm-rarity{font-size:8px;position:absolute;bottom:2px;right:3px}.pkm-card.rarity-u{border-color:#00f0ff4d}.pkm-card.rarity-r{border-color:#ffd7004d}.pkm-card.rarity-l{border-color:#ff00444d}.bank-area{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:1;min-height:0;margin:6px 0;display:none;overflow:hidden}.bank-area.active{display:flex}.bank-search{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.bank-search input{background:var(--surface);border:1px solid var(--border);min-width:100px;color:var(--text);border-radius:8px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:12px}.bank-search input:focus{border-color:var(--cyan)}.bank-search .bank-count{color:var(--text2);white-space:nowrap;font-size:10px}.bank-list{scrollbar-width:thin;flex:1;padding:4px 8px;overflow-y:auto}.bank-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;margin-bottom:4px;overflow:hidden}.bank-item:hover,.bank-item.expanded{border-color:var(--cyan)}.bank-item-header{align-items:flex-start;gap:6px;padding:8px 10px;display:flex}.bank-item .q-num{color:var(--text2);background:var(--bg);border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:10px;font-weight:700}.bank-item .q-preview{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.bank-item .q-toggle{color:var(--text2);flex-shrink:0;font-size:12px;transition:transform .2s}.bank-item.expanded .q-toggle{transform:rotate(180deg)}.bank-item-detail{border-top:1px solid var(--border);padding:0 10px 10px;display:none}.bank-item.expanded .bank-item-detail{display:block}.bank-item-detail .detail-opt{border-radius:4px;margin:1px 0;padding:3px 6px;font-size:12px}.bank-item-detail .detail-opt.is-ans{color:var(--green);background:#00ff8814}.bank-item-detail .detail-ans{color:var(--green);margin:3px 0;font-size:11px;font-weight:700}.bank-pagination{border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:6px 10px;display:flex}.bank-pagination button{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:4px 12px;font-family:inherit;font-size:11px}.bank-pagination button:disabled{opacity:.3;cursor:not-allowed}.bank-pagination .page-info{color:var(--text2);font-size:10px}@media (max-width:480px){#app{padding:6px 8px;padding-bottom:calc(6px + var(--sab))}.options{grid-template-columns:1fr}.pokedex-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.header .title{font-size:12px}.tab-btn{padding:6px;font-size:11px}.defense-line .license-icon img{width:50px;height:50px}.defense-line .license-icon .fallback-text{font-size:40px;line-height:100px}}@media (min-width:481px) and (max-width:767px){.pokedex-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}@media (min-width:768px){.pokedex-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}}.filter-btn{background:var(--surface);border:1px solid var(--border);color:var(--text2);cursor:pointer;touch-action:manipulation;border-radius:6px;padding:3px 10px;font-family:inherit;font-size:11px;transition:all .15s}.filter-btn.active{background:var(--surface);border-color:var(--cyan);color:var(--cyan)}.filter-btn:hover{border-color:var(--cyan)}.pkm-tier-badge{z-index:2;border-radius:4px;padding:1px 4px;font-size:9px;font-weight:900;line-height:1.3;position:absolute;top:2px;right:2px}.pkm-tier-badge.t1{color:#f04;background:#f043;border:1px solid #ff00444d}.pkm-tier-badge.t2{color:gold;background:#ffd70026;border:1px solid #ffd7004d}.pkm-tier-badge.myth{color:#f0f;background:#ff00ff26;border:1px solid #ff00ff4d}#skill-btn{z-index:20;border:2px solid var(--border);background:var(--surface);width:48px;height:48px;color:var(--text2);cursor:pointer;touch-action:manipulation;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;font-family:inherit;font-size:20px;line-height:1;transition:all .3s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}#skill-btn .charge-bar{background:var(--bg);border-radius:2px;height:4px;position:absolute;bottom:-3px;left:-3px;right:-3px;overflow:hidden}#skill-btn .charge-fill{background:linear-gradient(90deg,var(--cyan),var(--magenta));border-radius:2px;width:0%;height:100%;transition:width .3s}#skill-btn .charge-text{color:var(--text2);font-size:8px;font-weight:700;line-height:1}#skill-btn.ready{border-color:var(--gold);animation:.8s ease-in-out infinite alternate skillPulse;box-shadow:0 0 20px #ffd70066}#skill-btn.ready .charge-fill{background:linear-gradient(90deg,var(--gold),#f80)}#skill-btn.ready .charge-text{color:var(--gold)}#skill-btn:active{transform:translateY(-50%)scale(.9)}@keyframes skillPulse{0%{box-shadow:0 0 10px #ffd7004d}to{box-shadow:0 0 30px #ffd700b3}}#screen-flash{z-index:999;pointer-events:none;opacity:0;transition:opacity .15s;position:fixed;inset:0}#screen-flash.show{opacity:1;background:radial-gradient(circle,#ffd70099,#ff00444d)}
