:root{--bg: #14161a;--fg: #e8e8e8;--dim: #8b93a1;--line: #2c3038;--card: #1c1f26;--hp: #3fa45b;--sp: #3b7dd8;--part: #b8863b;--POWER: #d1524a;--TECHNIQUE: #9a6fd1;--SPEED: #3fa8a0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,Noto Sans TC,sans-serif}button{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:4px;padding:6px 10px;cursor:pointer}button:hover:not(:disabled){border-color:var(--dim)}button:disabled{opacity:.35;cursor:not-allowed}button.on{border-color:var(--fg);background:#2a3040}input,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:3px 5px;width:72px;min-height:32px}button{min-height:32px}h1{font-size:20px}h3{font-size:15px;margin:12px 0 6px}h4{font-size:13px;color:var(--dim);margin:12px 0 4px}table{border-collapse:collapse}td,th{padding:2px 8px 2px 0;text-align:left;font-weight:400}.app{display:flex;min-height:100vh}.main{flex:1;max-width:720px;margin:0 auto;padding:16px}.fam{font-size:11px;padding:1px 6px;border-radius:3px;color:#fff}.fam.POWER,.famtitle.POWER{background:var(--POWER)}.fam.TECHNIQUE,.famtitle.TECHNIQUE{background:var(--TECHNIQUE)}.fam.SPEED,.famtitle.SPEED{background:var(--SPEED)}.counter{color:var(--dim)}.picker{display:flex;gap:16px}.roster{flex:1}.famtitle{font-size:11px;padding:1px 6px;border-radius:3px;display:inline-block;margin:6px 0 3px}.sp{display:block;width:100%;text-align:left;margin:2px 0}.sp small{color:var(--dim);float:right}.preview{display:flex;gap:16px;margin:16px 0}.statbars{flex:1;background:var(--card);padding:8px;border-radius:4px}.sbar{display:flex;align-items:center;gap:6px}.sbar .k{width:34px;color:var(--dim);font-size:12px}.sbar .v{width:34px;text-align:right;font-variant-numeric:tabular-nums}.track{flex:1;height:8px;background:#000;border-radius:2px;overflow:hidden}.track .fill{height:100%;background:var(--dim)}.derived{color:var(--dim);font-size:12px;margin-top:4px}.startrow{display:flex;gap:8px;align-items:center;margin:12px 0;flex-wrap:wrap}.startrow label{display:flex;gap:6px;align-items:center;color:var(--dim)}button.start{background:#2f4f7a;border-color:#4a7ab5;padding:8px 16px}.panel{position:relative;background:var(--card);border-radius:4px;padding:8px;margin:6px 0}.panel.foe{border-top:2px solid var(--POWER)}.panel.self{border-top:2px solid var(--sp)}.panel .head{display:flex;gap:8px;align-items:center;margin-bottom:4px}.combo{color:#e0b040;font-size:12px}.bar{position:relative;height:16px;background:#000;border-radius:2px;margin:2px 0;overflow:hidden}.bar .ghost,.bar .fill{position:absolute;inset:0 auto 0 0}.bar .ghost{background:#7a2f2f;transition:width .45s ease-in .18s}.bar.sp .ghost{background:#24406b}.bar .fill{transition:width .18s ease-out}.bar span{position:absolute;inset:0;padding-left:6px;font-size:11px;line-height:16px}.shock{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:4px;background:var(--POWER);opacity:0;animation:flash .34s ease-out}.panel.self .shock{background:#d1524a}@keyframes flash{0%{opacity:.3}to{opacity:0}}.pop{position:absolute;right:10px;top:-2px;z-index:3;font-style:normal;font-weight:700;font-size:18px;color:#ff8a80;text-shadow:0 1px 3px #000;opacity:0;animation:pop .9s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.85)}18%{opacity:1;transform:translateY(0) scale(1.1)}60%{opacity:1;transform:translateY(-6px) scale(1)}to{opacity:0;transform:translateY(-16px) scale(1)}}.bar.hp .fill{background:var(--hp)}.bar.sp .fill{background:var(--sp)}.bar.part{height:12px}.bar.part .fill{background:var(--part)}.bar.part span{line-height:12px}.bar.part.broke .fill{background:#5a3030}.parts{display:flex;gap:4px}.parts .bar{flex:1}.stats{display:flex;gap:10px;font-size:12px;color:var(--dim);margin-top:4px;flex-wrap:wrap}.stats .down{color:var(--POWER)}.mid{background:#0f1114;border:1px solid var(--line);border-radius:4px;padding:8px;min-height:130px}.roundno{color:var(--dim);font-size:12px}.hint{color:var(--dim);padding:20px 0;text-align:center}.acts{display:flex;justify-content:space-between;margin:4px 0}.ev{padding:1px 0;animation:evin .22s ease-out backwards}@keyframes evin{0%{opacity:0;transform:translate(-6px)}}.ev.ULTIMATE{color:#e0b040}.result.ult{animation:ultflash .5s ease-out}@keyframes ultflash{0%{background:#e0b04055}to{background:transparent}}.ev.PART_DAMAGE{color:var(--part)}.ev.BATTLE_END{color:#fff;font-weight:700}.link{background:none;border:none;padding:2px 0;color:var(--dim)}.calc td{font-size:12px;color:var(--dim)}.calc td:first-child{color:var(--fg);width:90px}.history{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--dim);margin-top:6px}.controls .row{display:flex;gap:6px;align-items:center;margin:6px 0;flex-wrap:wrap}.rowlabel{width:32px;color:var(--dim);font-size:12px}.bet{min-width:84px}.controls button small,.startrow button small{display:block;color:var(--dim);font-size:11px}.note{color:var(--dim);font-size:11px}.help{cursor:help;outline:none;text-decoration:underline dotted var(--dim);text-underline-offset:2px}.help:focus-visible{text-decoration-color:var(--fg)}.help .tip{position:fixed;z-index:50;width:max-content;max-width:min(300px,calc(100vw - 16px));white-space:pre-line;text-align:left;background:#1b1f27;border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-size:11px;line-height:1.6;color:var(--fg);text-decoration:none;box-shadow:0 4px 14px #000a;cursor:default;pointer-events:none}.sbarnote{margin-top:6px;color:var(--dim);font-size:11px}.trait.dead{opacity:.5}.help:has(>.bar){display:block;text-decoration:none}.help:has(>.bar) .fill{border-bottom:1px dotted var(--dim)}.techs .tech{flex:1;padding:14px 0;font-size:16px}.tune{border-right:1px solid var(--line);background:#101318}.tune .toggle{border:none;border-radius:0;width:100%;color:var(--dim)}.tune .body{width:260px;padding:10px}.tune input{width:62px}.field{display:flex;justify-content:space-between;align-items:center;margin:3px 0;font-size:13px}.warn{color:#e0a040;font-size:12px;border-left:2px solid #e0a040;padding-left:6px}.summary td{padding:3px 12px 3px 0}.stats ul{padding-left:18px;margin:4px 0}.stats li{color:var(--dim)}.stats .note,.statgroup{flex-basis:100%}.statgroup+.statgroup{border-top:1px solid var(--line);padding-top:6px}.bettable{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:2px 0 6px 18px}.bettable th,.bettable td{padding:1px 12px 1px 0;text-align:left;font-weight:400}.bettable th{color:var(--fg)}header{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:6px}nav{display:flex;gap:4px;flex-wrap:wrap}.tab{border-radius:4px 4px 0 0}.tab.on{background:#2a3040;border-color:var(--fg)}.trait{font-size:11px;border:1px solid var(--line);border-radius:3px;padding:0 4px;margin-right:3px;color:#c9b06a}.trait.gRARE{border-color:#8c9ac4;box-shadow:0 0 0 1px #8c9ac433}.trait.gLEGENDARY{border-color:#c9b06a;box-shadow:0 0 0 2px #c9b06a2e}.statchip{font-size:11px;border:1px solid #2f4a72;border-radius:3px;padding:0 4px;margin-right:3px;color:#7fa6dd}.resbar{background:var(--card);border-radius:4px;padding:6px 10px;margin:8px 0;font-variant-numeric:tabular-nums}.resbar select{width:auto;margin-left:10px}.statbars-wrap{flex:1;background:var(--card);padding:8px;border-radius:4px}.statbars-wrap .head{display:flex;gap:8px;align-items:center;margin-bottom:4px}.track{position:relative}.track .cap{position:absolute;inset:0 auto 0 0;background:#333a47}.track .fill{position:relative}.sbar .v small{color:var(--dim)}.row .chip{min-width:0;display:inline-flex;align-items:center;gap:4px;min-height:32px}.weather{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;border:1px solid var(--line);border-left:3px solid var(--dim);border-radius:4px;padding:6px 10px;margin:8px 0}.weather.RAIN{border-left-color:#4f7fb5}.weather.HOT{border-left-color:#c46a3a}.weather.COOL{border-left-color:#5aa39b}.weather.CLEAR{border-left-color:#c9b06a}.blocked{color:var(--dim)}.track .fill.blur{background:repeating-linear-gradient(90deg,#3a4150 0 4px,#2a303c 4px 8px)}.encounter.special{border-color:#c9b06a;box-shadow:0 0 0 1px #c9b06a33}.specialtag{font-size:11px;border:1px solid #c9b06a;border-radius:3px;padding:0 5px;color:#c9b06a}.encounter{background:var(--card);border:1px solid var(--part);border-radius:4px;padding:10px;margin:10px 0}.encounter .head{display:flex;gap:8px;align-items:center}.encounter .head small{color:var(--dim)}.hutch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hutch .card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:8px}.hutch .card.on{border-color:var(--sp)}.hutch .head{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.hutch .head small{color:var(--dim);font-size:11px}.hutch .startrow{margin:6px 0 0}label.note{display:flex;align-items:center;gap:4px}label.note input{width:auto}.trained{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:4px 0}.trained .fill{background:#4a5262}.trained .fill.lead{background:#c9b06a}.intel{background:#0f1114;border:1px solid var(--line);border-left:2px solid var(--sp);border-radius:4px;padding:6px 8px;margin:6px 0;font-size:12px}.intel .head{display:flex;gap:8px;align-items:baseline;margin-bottom:2px}.intel .head small{color:var(--dim);font-size:11px}.intel .note{margin:2px 0}.intel.none{color:var(--dim);border-left-color:var(--line)}.intel .linkish{margin-left:auto;background:none;border:none;color:var(--dim);text-decoration:underline;cursor:pointer;font-size:11px;padding:0}.tournament .mid{margin:8px 0;min-height:0}.tournament .mid.locked{opacity:.45}.tournament .hutch{grid-template-columns:1fr 1fr 1fr;margin-top:6px}.raise .controls .row button{min-width:56px}.raise .controls select{width:auto}.branches .head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}.branches .head small{color:var(--dim)}.branch{border:1px solid var(--line);border-left:2px solid var(--line);border-radius:4px;padding:6px 8px;margin:4px 0;opacity:.55}.branch.open{opacity:1;border-left-color:var(--hp);background:var(--card)}.branch.rare{border-color:#6d5f38}.branch.rare.open{border-color:#c9b06a;border-left-color:#c9b06a}.branch .head{margin-bottom:2px}.branch .head b{font-size:13px}.branch .use{margin:2px 0;font-size:11px}.branch .checks{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px}.branch .checks span{margin-right:0}.traitpick{border-left:2px solid var(--part)}.traitpick .head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.traitpick .head small{color:var(--dim)}.traitpick .chip{border:1px solid var(--line);border-radius:4px;padding:2px 8px}.traitpick .chip.on{border-color:var(--hp);background:var(--card)}.traitpick .chip.off{opacity:.45}.genes{margin:4px 0}.genes>.note{margin:2px 0}.genes .note.dim{color:var(--dim)}.gene{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;border-left:2px solid var(--line);padding:2px 0 2px 6px;margin:2px 0;font-size:12px}.gene .note{margin:0;font-size:11px}.gene .odds{margin-left:auto;display:flex;gap:6px;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}.gene .odds b{font-weight:400}.gene .odds b.on{color:var(--hp);font-weight:700}.gene.asSIRE,.gene.asDAM{border-left-color:var(--sp)}.gene .note.hidden,.genes .note.caution{color:var(--part)}.log{flex-direction:column;gap:2px;align-items:flex-start;margin-top:8px}.ok{color:var(--hp);margin-right:8px}.no{color:var(--POWER);margin-right:8px}select.wide{width:300px}.npcpool h4{display:flex;align-items:baseline;flex-wrap:wrap}.npcpool .mid{margin:6px 0;min-height:0}.npcpool .mid.locked{opacity:.45}.npcpool .hutch{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));margin-top:6px}.npcpool .card .head{gap:5px;margin-bottom:3px}.npcpool .card .note{font-size:11px;margin:2px 0}.cardpage h4{margin:14px 0 6px}.cardtext{width:100%;box-sizing:border-box;resize:vertical;background:#0f1114;color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;word-break:break-all}.note.bad{color:var(--POWER)}.qr{display:block;width:100%;max-width:260px;height:auto;margin:8px 0;border-radius:4px;background:#fff}.scanner video{width:100%;max-width:360px;border-radius:4px;background:#000;display:block;aspect-ratio:3 / 4;object-fit:cover}.transfer{margin-top:24px;border-top:1px solid var(--line)}.transfer .diff th,.transfer .backups th{width:92px;color:var(--dim);font-size:12px}.transfer .diff td{font-size:12px}.transfer .backups td{padding-right:8px}.transfer table{width:100%}.transfer .backups td:last-child{width:1%;padding-right:0}.transfer .backups button{white-space:nowrap}.hall .hutch{grid-template-columns:1fr}.hall .card .head{margin:6px 0 2px}.hall .card .note{margin:4px 0}.hall .mid{margin-top:12px;min-height:0}.sbar .v.spread{width:96px}.outlook{background:var(--card);border:1px solid var(--line);border-left:2px solid var(--sp);border-radius:4px;padding:8px 10px;margin:10px 0}.outlook .head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.outlook .head small{color:var(--dim)}.outlook .odds{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin:4px 0}.outlook .odds b{font-weight:400;color:var(--fg);font-variant-numeric:tabular-nums}.track.stack{display:flex;align-items:stretch}.track.stack .seg{display:block;height:100%}.seg.base{background:#6b6b6b}.seg.lineage{background:#3f7f5f}.seg.resonance{background:#3f6fbf}.seg.mutation{background:#8f5fbf}.seg.items{background:#bf9f3f}.sbarnote .legend{margin-right:10px;display:inline-flex;align-items:center;gap:4px}.sbarnote .legend .seg{width:10px;height:10px;border-radius:2px}.dexgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.dexentry.lv0{opacity:.35}.dexentry.lv1{opacity:.6}.dexentry.lv4{border-color:#bf9f3f}.dexentry .got{color:#d8d8d8}.dexentry .miss{color:#6b6b6b}.warn{color:#d88}.sbar.duo{align-items:center;gap:10px;padding:6px 0}.sbar.duo+.sbar.duo{border-top:1px solid rgba(255,255,255,.06)}.sbar.duo .tracks{flex:1;display:flex;flex-direction:column;gap:3px}.sbar.duo .tracks>.track{flex:0 0 auto;height:8px}.seg.born{filter:brightness(1.85) saturate(1.1)}.sbar .v.range{width:132px;font-size:12px;white-space:nowrap}.sbar .v.range small{font-size:11px}@media(prefers-reduced-motion:reduce){.bar .ghost,.bar .fill{transition:none}.shock,.pop,.ev,.result.ult{animation:none}}@media(max-width:480px){.picker,.preview{flex-direction:column;gap:8px}.trained{grid-template-columns:1fr}.tournament .hutch{grid-template-columns:1fr 1fr}select.wide{width:100%;min-width:0}.transfer .diff th,.transfer .backups th{width:64px}.sbar.duo{gap:6px}.sbar.duo .k{width:28px;font-size:11px}.sbar .v.range{width:92px;font-size:11px}.sbar .v.range small{font-size:10px}}
