:root{--bg: #12121c;--panel: #1c1c2a;--panel2: #23233a;--line: rgba(255, 255, 255, .09);--text: #eceaf6;--dim: #9a97b0;--p1: #ff6b6b;--p1b: #ffa06b;--p2: #4dd0ff;--p2b: #7c8cff;--gold: #ffd24a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 500px at 70% -10%,rgba(124,140,255,.14),transparent),radial-gradient(900px 420px at 10% 110%,rgba(255,107,107,.1),transparent),var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif}button{font-family:inherit}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:14px 28px;border-bottom:1px solid var(--line);background:#12121ccc;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.logo{font-size:20px;font-weight:900;letter-spacing:1px}.logo .sub{font-size:12px;color:var(--dim);font-weight:400;margin-left:8px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:transparent;color:var(--dim);padding:8px 16px;border-radius:999px;cursor:pointer;font-size:14px;transition:all .15s}.tab:hover{color:var(--text);border-color:#ffffff4d}.tab.on{background:linear-gradient(135deg,#6d5df6,#b04df0);color:#fff;border-color:transparent}.content{flex:1;width:min(1240px,94%);margin:0 auto;padding:26px 0 60px}.foot{text-align:center;color:var(--dim);font-size:12px;padding:14px;border-top:1px solid var(--line)}.sec-title{font-size:22px;font-weight:800;margin:6px 0 18px}.sec-title small{display:block;font-size:13px;color:var(--dim);font-weight:400;margin-top:6px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:900px){.two-col{grid-template-columns:1fr}}.forge-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:980px){.forge-grid{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ptag{font-weight:800;font-size:14px;padding:4px 12px;border-radius:8px;background:#ffffff14}.p1 .ptag{background:linear-gradient(135deg,var(--p1),var(--p1b))}.p2 .ptag{background:linear-gradient(135deg,var(--p2),var(--p2b));color:#0d2233}.ptag.neutral{background:#ffffff14}.picked{font-size:13px;color:var(--dim)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.tools{margin-top:14px}.center-row{display:flex;justify-content:center;gap:14px;margin-top:26px}.center-row.gap{margin-top:12px}.btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:9px 16px;border-radius:10px;cursor:pointer;font-size:14px;transition:all .15s}.btn:hover:not(:disabled){border-color:#ffffff59;transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,#6d5df6,#b04df0);border:none;font-weight:700}.btn.ghost{background:transparent}.btn.ghost.on{border-color:var(--gold);color:var(--gold)}.btn.big{font-size:17px;padding:13px 34px;border-radius:14px}.btn.tiny{padding:4px 10px;font-size:12px;border-radius:8px}.btn.danger{color:#ff8080;border-color:#ff6b6b66}.input{flex:1;min-width:140px;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:10px 14px;border-radius:10px;font-size:14px;outline:none}.input:focus{border-color:#8a7bf8}.tol{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dim)}input[type=range]{accent-color:#8a7bf8}.hint{color:var(--dim);font-size:12.5px;margin:10px 0 0}.checker{background-image:linear-gradient(45deg,#2a2a3a 25%,transparent 25%),linear-gradient(-45deg,#2a2a3a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a3a 75%),linear-gradient(-45deg,transparent 75%,#2a2a3a 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.dropzone{border:2px dashed rgba(255,255,255,.18);border-radius:14px;min-height:230px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s;overflow:hidden}.dropzone:hover{border-color:#8a7bf8}.drop-hint{text-align:center;color:var(--dim);font-size:15px;line-height:2}.drop-hint small{font-size:12px}.drop-hint.small{font-size:13px;padding:30px 10px}.preview-img{max-height:230px;max-width:100%;object-fit:contain}.draw-canvas{width:100%;border-radius:12px;border:1px solid var(--line);touch-action:none;cursor:crosshair;display:block}.draw-canvas.erasing{cursor:cell}.swatch{width:26px;height:26px;border-radius:8px;cursor:pointer;border:2px solid transparent;padding:0}.swatch.on{border-color:#fff;transform:scale(1.12)}.ai-row{display:flex;gap:10px}.ai-preview{margin-top:14px;min-height:180px;border:1px dashed rgba(255,255,255,.14);border-radius:12px;padding:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ai-img{height:150px;width:150px;object-fit:contain}.ai-loading{color:var(--dim);width:100%;text-align:center;padding:40px 0}.ai-meta{flex:1;min-width:180px}.ai-meta .flavor{color:var(--gold);font-size:13px;margin:6px 0}.lib-mini{margin-top:18px}.mini-title{font-size:13px;color:var(--dim);margin-bottom:10px}.mini-grid{display:flex;flex-wrap:wrap;gap:8px}.mini-cell{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim);background:var(--panel2);border-radius:8px;padding:4px 8px 4px 4px}.mini-cell img{width:30px;height:30px;object-fit:contain}.lib-h{margin:26px 0 12px;font-size:17px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.lib-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.lib-card img{width:100%;height:130px;object-fit:contain;border-radius:8px}.lib-card .wpn-img{height:100px}.lib-name{font-weight:700;display:flex;align-items:center;gap:6px}.flavor{color:var(--gold);font-size:12px}.badge{font-size:10px;background:#ffffff1f;border-radius:6px;padding:2px 6px;color:var(--dim)}.badge.ai{background:linear-gradient(135deg,#6d5df6,#b04df0);color:#fff}.stat-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:11.5px;padding:3px 8px;border-radius:6px;background:#ffffff12;color:var(--dim)}.chip.dmg{color:#ff9c9c}.chip.spd{color:#ffe08c}.chip.rch{color:#9cd0ff}.chip.kb{color:#d0b0ff}.empty-hint{border:1px dashed rgba(255,255,255,.15);border-radius:12px;padding:22px;text-align:center;color:var(--dim);font-size:14px}.rounds-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}.round-btns{display:flex;gap:6px;flex-wrap:wrap}.round-btn{padding:7px 13px}.round-btn.on{background:linear-gradient(135deg,#6d5df6,#b04df0);border:none;color:#fff;font-weight:700}.pick-label{font-size:13px;color:var(--dim);margin:14px 0 8px}.pick-label.inline{margin:0}.thumb-grid{display:flex;flex-wrap:wrap;gap:10px}.thumb-grid.compact{max-height:260px;overflow:auto}.thumb{width:86px;padding:6px;border-radius:10px;cursor:pointer;border:2px solid var(--line);background:var(--panel2);display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--dim);font-size:11px}.thumb img{width:100%;height:60px;object-fit:contain;border-radius:6px}.thumb .wpn-img{height:46px}.thumb:hover{border-color:#fff6}.thumb.on{border-color:var(--gold);color:var(--text)}.setup-card .wpn-stats{margin-top:14px}.arena-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:18px}.arena-toolbar{width:min(1000px,96%);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.arena-vs{display:flex;gap:12px;align-items:center;font-size:14px;color:var(--dim)}.arena-vs b{color:var(--gold)}.arena-vs .p1c{color:var(--p1)}.arena-vs .p2c{color:var(--p2)}.arena-stage{position:relative;width:min(1000px,96%)}.arena-canvas{width:100%;display:block;border-radius:16px;border:1px solid var(--line);box-shadow:0 20px 60px #00000080;background:#1b2340}.modal-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#0a0a12b8;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:16px}.modal{background:var(--panel);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:24px;max-width:94%;max-height:92%;overflow:auto;box-shadow:0 24px 80px #0009}.modal-title{margin:0 0 6px;font-size:20px}.modal-sub{color:var(--dim);font-size:13px;margin:0 0 16px}.sum-row{display:flex;gap:18px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}.sum-row.p1{border-left:4px solid var(--p1)}.sum-row.p2{border-left:4px solid var(--p2)}.sum-left{flex:1;min-width:220px}.sum-left small{color:var(--dim);display:block;margin-top:4px}.sum-hp{display:flex;align-items:center;gap:10px;margin:8px 0}.hp-track{flex:1;height:14px;border-radius:7px;background:#00000073;overflow:hidden}.hp-fill{height:100%;background:linear-gradient(90deg,#5dd66b,#ffd24a);border-radius:7px}.sum-wpn{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.wpn-now{display:flex;align-items:center;gap:8px;font-size:13px}.wpn-now img{width:44px;height:44px;object-fit:contain}.victory-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:radial-gradient(700px 380px at 50% 40%,#6d5df640,#0a0a12d1);display:flex;align-items:center;justify-content:center;border-radius:16px}.victory-card{text-align:center;padding:20px}.victory-emoji{font-size:46px}.victory-img{height:130px;object-fit:contain;margin:8px 0}.bounce{animation:bounce .7s ease-in-out infinite alternate}@keyframes bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-16px) scale(1.04)}}.victory-title{font-size:30px;margin:6px 0}.victory-title.p1{color:var(--p1)}.victory-title.p2{color:var(--p2)}.victory-sub{color:var(--text);font-size:14px;margin:4px 0}.victory-sub.dim{color:var(--dim)}.toast{position:fixed;top:74px;right:26px;z-index:99;background:#1e1e30f2;border:1px solid rgba(255,255,255,.16);color:var(--text);padding:12px 18px;border-radius:12px;font-size:14px;box-shadow:0 10px 34px #00000073;animation:slidein .25s ease-out}@keyframes slidein{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}
