:root{--bg:#0E1626;--card:#17222F;--line:#24334A;--ink:#EAF1F7;--dim:#7E93AC;
 --green:#48D597;--gold:#F5B84C;--coral:#F0654F;--gl:#5B8DEF;--ul:#F5B84C}
*{box-sizing:border-box;margin:0}
body{background:linear-gradient(180deg,#0B1220 0%,#0E1626 40%,#101A2E 100%);min-height:100vh;
 color:var(--ink);font:15px/1.5 -apple-system,system-ui,sans-serif;
 padding:14px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(84px + env(safe-area-inset-bottom))}
h1{font-family:Sora,sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;
 display:flex;align-items:center;gap:9px}
h1 svg{flex:none}
.sub{color:var(--dim);font-size:12.5px;margin:2px 0 16px}
.row{display:flex;gap:10px;align-items:center;margin:10px 0;flex-wrap:wrap}
label{font-size:13px;color:var(--dim)}
input[type=number]{width:64px;background:var(--card);border:1px solid var(--line);
 border-radius:10px;color:var(--ink);padding:8px;font-size:16px}
select{background:var(--card);color:var(--ink);border:1px solid var(--line);
 border-radius:10px;padding:8px 10px;font-size:16px}
/* iOS Safari zooms the page when a focused field's text is under 16px, so every typing or picking control is 16px on touch
   screens; only mouse-and-keyboard devices get the compact sizes */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{font-size:16px}
@media (hover:hover) and (pointer:fine){
  select{font-size:14px}
  .add input,#q{font-size:14px}
  .kv .v input,#tname,#sort{font-size:15px}
  .kv .v .mvsel{font-size:14.5px}
  .mv select{font-size:12px}
}
.btn{display:block;width:100%;text-align:center;border:none;border-radius:14px;
 padding:14px;font-size:15.5px;font-weight:700;font-family:Sora,sans-serif;
 background:linear-gradient(135deg,#3BC489,#2BA8A0);color:#062018;margin:8px 0}
.btn.sec{background:var(--card);color:var(--dim);border:1px solid var(--line);font-weight:600}
.tools{display:flex;gap:8px;margin:8px 0}
.tools .btn{margin:0;padding:10px;font-size:13px;border-radius:11px}
#panel{display:none;background:var(--card);border:1px solid var(--line);
 border-radius:16px;padding:4px 14px 12px;margin:8px 0}
#panel.open{display:block!important}
#prog{display:none;margin:12px 0}
#implog{margin:6px 0 4px}#implog .hd{font-size:12px;color:var(--dim);cursor:pointer;display:flex;justify-content:space-between}#implog .hd a{color:var(--dim)}
.il{display:grid;grid-template-columns:44px 1fr;gap:8px;font-size:12px;color:var(--dim);padding:6px 0;border-top:1px solid var(--line);line-height:1.45}
.il .t{font-variant-numeric:tabular-nums}.il .r.ok{color:#7FE3B6}.il .r.err{color:#F59A8B}.il .f{color:var(--ink)}.il .d{font-family:ui-monospace,monospace;font-size:11px;word-break:break-word}
.bar{height:6px;background:var(--card);border-radius:3px;overflow:hidden}
.bar>div{height:100%;background:linear-gradient(90deg,#3BC489,#2BA8A0);width:0%;transition:width .3s}
#stat{font-size:12.5px;color:var(--dim);margin-top:6px}
#count{color:var(--dim);font-size:13px}

.mon{background:var(--card);border:1px solid var(--line);border-radius:18px;
 padding:14px 15px 12px;margin:10px 0}
.mon .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.mon .name{font-family:Sora,sans-serif;font-weight:600;font-size:17px;letter-spacing:-.01em}
.mon .cp{color:var(--dim);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.mon .cp b{color:var(--ink);font-size:15px}
.del{color:var(--dim);padding:2px 0 2px 10px;font-size:15px}
.pctbig{font-family:Sora,sans-serif;font-weight:800;font-size:21px;letter-spacing:-.02em;
 font-variant-numeric:tabular-nums}
.g .pctbig{color:var(--green)}.m .pctbig{color:var(--gold)}.b .pctbig{color:var(--coral)}
.bars{display:grid;grid-template-columns:32px 1fr 22px;gap:4px 8px;align-items:center;
 margin:9px 0 2px;font-size:11px;color:var(--dim)}
.tr{height:7px;background:#0E1626;border-radius:4px;overflow:hidden}
.tr>i{display:block;height:100%;border-radius:4px;background:var(--gold)}
.tr>i.max{background:linear-gradient(90deg,#F0654F,#F5885B)}
.iv{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right}
.meta{font-size:12.5px;color:var(--dim);margin-top:7px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.chip{font-size:12px;font-weight:600;padding:4px 9px;border-radius:999px;
 font-variant-numeric:tabular-nums;white-space:nowrap}
.chip.gl{background:rgba(91,141,239,.16);color:#9DBCF7}
.chip.ul{background:rgba(245,184,76,.14);color:#F5CE8A}
.chip.meta1{background:rgba(72,213,151,.13);color:#7FE3B6}
.chip.warn{background:rgba(240,101,79,.13);color:#F59A8B}
.chip.gold{background:rgba(245,184,76,.14);color:#F5CE8A}.chip.ok{background:rgba(72,213,151,.13);color:#7FE3B6}
.moves{font-size:12.5px;margin-top:8px;color:var(--dim)}
.moves b{color:var(--green);font-weight:600}
.moves s{color:var(--coral);text-decoration:none}
.alts{font-size:12.5px;color:var(--dim);margin-top:8px;font-family:ui-monospace,monospace;
 white-space:pre-wrap;display:none}
.mon.editing .alts{display:block}
.flag{font-size:11.5px;color:var(--gold)}
.mon.compact{padding:12px 15px 12px;cursor:pointer}
.ivrow{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr) minmax(0,1.3fr);gap:10px;margin-top:8px;font-size:13.5px;align-items:end}
.ivrow>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chips.row2{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:8px}.chips.row2>span:first-child{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.chips.row2>.chip{flex:none}
.ivrow small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
.ivrow b{font-family:Sora,sans-serif;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.ivrow .okc{color:var(--green);font-weight:700}.g .pctc{color:var(--green)}.m .pctc{color:var(--gold)}.b .pctc{color:var(--coral)}
.scanhero{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 15px;margin:8px 0}
.scanhero .bars{margin-top:10px}.scanhero .kpis{margin-top:10px}
.gloss{font-size:12px;color:var(--dim);line-height:1.5;margin:6px 0 0}
.kv{display:grid;grid-template-columns:78px minmax(0,1fr);gap:9px 12px;align-items:start;font-size:13.5px;margin-top:12px;line-height:1.45}
.kv .k{color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding-top:3px}.kv .v{min-width:0}.kv .v .mv{margin:0}.kv .v b{font-weight:600}.kv .v .okc{color:var(--green);font-weight:700}
.kv .v input{background:#0E1626;border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:8px 10px}
.kv .v .mvsel{width:100%;min-width:0;padding:9px 10px;background:#0E1626;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.kv .v .mvsel.empty{color:var(--dim);border-style:dashed}
.kv .v.cont{margin-top:-4px}
.kv .k:has(+ .v > .mvsel),.kv .k:has(+ .v > input){align-self:center;padding-top:0}
.team.row{display:flex;align-items:center;gap:10px;padding:9px 12px}.team.row .sc{margin:0;min-width:34px}.team.row .tx{flex:1;min-width:0}.team.row .nm{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team.row .dt{margin-top:1px}.team.row .go{color:var(--dim);font-size:18px;flex:none}
.team.row .dt b{font-weight:600}.team.row .dt .good{color:var(--green)}
.srch{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.srchs .srch:first-child{border-top:none;padding-top:2px}.srch .lb{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);width:64px;flex:none;overflow:hidden;text-overflow:ellipsis}.srch .tx{flex:1;min-width:0}.srch code,.srchi code{font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);overflow-wrap:anywhere;background:#0E1626;border:1px solid var(--line);border-radius:8px;padding:5px 8px;display:inline-block;max-width:100%}.srch .dt{margin-top:2px}
.srch button,.srchi button{flex:none;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-size:13px;font-weight:600}.srchi{display:flex;align-items:center;gap:8px;margin:0 0 6px}.srchi code{flex:1;min-width:0}
.tchips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;margin:6px 0 2px;-webkit-overflow-scrolling:touch}.tchips .chip{flex:none;cursor:pointer;text-transform:capitalize}.tchips .chip.sel{border:1px solid #3BC489;color:var(--ink);background:rgba(72,213,151,.16)}
.tog{display:flex;align-items:center;gap:6px;color:var(--dim);font-size:12.5px;white-space:nowrap}.tog input{accent-color:#3BC489}
.rank.pve .rb{cursor:default}.pvb{display:grid;grid-template-columns:auto minmax(0,1fr) 38px auto minmax(0,1fr) 38px;gap:4px 6px;align-items:center;margin-top:6px;font-size:11.5px}.pvb .lb{color:var(--dim);letter-spacing:.06em;font-size:10px}.pvb .bar{height:6px;background:#0E1626;border-radius:3px;overflow:hidden}.pvb .bar i{display:block;height:100%;background:linear-gradient(90deg,#3BC489,#2BA8A0)}.pvb .bar i.t{background:linear-gradient(90deg,#5B8DEF,#7FA6F5)}.pvb .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.meter{margin:4px 0 0}.meter svg{width:100%;max-width:330px;height:auto;display:block;margin:0 auto;touch-action:none;cursor:pointer;overflow:visible}
.meter .track{fill:none;stroke:#1E2A3D;stroke-width:8;stroke-linecap:round}.meter .fill{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round}.meter .fill.over{stroke:var(--coral)}
.meter .capt{stroke:#F5CE8A;stroke-width:2}.meter .capl{fill:#F5CE8A;font-size:8px;font-weight:700}.meter .cur{fill:#0E1626;stroke:var(--ink);stroke-width:2}.meter .knob{fill:#fff;stroke:var(--green);stroke-width:3}
.meter text.lbl{fill:var(--dim);font-size:9px;letter-spacing:.12em;font-weight:600}.meter text.cp{fill:var(--ink);font:800 32px Sora,sans-serif;letter-spacing:-.02em}.meter text.lv{fill:var(--dim);font-size:8px}
.meter .mi{text-align:center;font-size:12.5px;color:var(--dim);margin-top:2px;min-height:18px}.meter .mi.over{color:#F59A8B}
.use.raid .ur{grid-template-columns:18px minmax(0,1fr) 60px 54px}.use.raid .ur .nm{white-space:normal;line-height:1.25}.use.raid .ur .nm span{display:block}.use.raid .ur .nm .c{color:var(--dim);font-size:12px}.use.raid .ur.mine .nm .c{color:var(--ink)}
.typerow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.typerow .chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.chip.weak{background:rgba(240,101,79,.13);color:#F59A8B}
.chip.t-normal{background:rgba(168,168,120,.2);color:#D6D6B8}.chip.t-fire{background:rgba(240,128,48,.2);color:#F7B27A}.chip.t-water{background:rgba(104,144,240,.2);color:#A9C0F7}.chip.t-grass{background:rgba(120,200,80,.2);color:#B3E39B}.chip.t-electric{background:rgba(248,208,48,.2);color:#F8E28A}.chip.t-ice{background:rgba(152,216,216,.2);color:#BFEAEA}.chip.t-fighting{background:rgba(192,48,40,.22);color:#F09A94}.chip.t-poison{background:rgba(160,64,160,.22);color:#D9A0D9}.chip.t-ground{background:rgba(224,192,104,.2);color:#EBD9A8}.chip.t-flying{background:rgba(168,144,240,.2);color:#CEC2F7}.chip.t-psychic{background:rgba(248,88,136,.2);color:#F7A6C0}.chip.t-bug{background:rgba(168,184,32,.2);color:#D3DC8A}.chip.t-rock{background:rgba(184,160,56,.22);color:#E0D3A0}.chip.t-ghost{background:rgba(112,88,152,.25);color:#C2B3DB}.chip.t-dragon{background:rgba(112,56,248,.22);color:#C3AEF8}.chip.t-dark{background:rgba(112,88,72,.3);color:#CDBDB2}.chip.t-steel{background:rgba(184,184,208,.2);color:#DCDCE8}.chip.t-fairy{background:rgba(238,153,172,.2);color:#F5C6D2}
.team.card .kv{margin-top:2px}.team.card .use{margin-top:8px}.team.card>.note{margin:8px 0 0}
.todo{list-style:none;margin:0;padding:10px 12px;background:#0E1626;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px}.todo li{display:flex;flex-direction:column;gap:1px;padding-left:18px;position:relative;font-size:13.5px}.todo li::before{content:'';position:absolute;left:2px;top:7px;width:8px;height:8px;border-radius:50%;background:var(--gold)}.todo li.scan::before,.todo li.check::before{background:#9DBCF7}.todo li.xl::before{background:var(--coral)}.todo li b{font-weight:600}.todo li span{color:var(--dim);font-size:12px}
.todo.ok{color:var(--ink);font-size:13.5px;border-color:#3BC489;flex-direction:row;gap:6px}
.tile.moves{border-color:var(--gold)}.tile.moves .st{color:#F5CE8A}
.tabs.sub.seg{margin:0;gap:4px}.tabs.sub.seg button{padding:5px 10px;font-size:12px;flex:none}
.btn.ai{margin:10px 0 0;background:linear-gradient(135deg,#8B6CFF 0%,#3BC489 100%);color:#0B1220}.btn .sub{display:block;font-weight:500;font-size:12px;opacity:.8;color:inherit;margin:2px 0 0}.btn.ai:disabled{opacity:.7}.btn.sec:disabled{opacity:.6}
.chat .msg{display:flex;flex-direction:column;gap:2px;margin:8px 0}.chat .msg.me{align-items:flex-end}.chat .msg.me .b{background:rgba(72,213,151,.14);border:1px solid rgba(72,213,151,.35);border-radius:14px 14px 4px 14px;padding:8px 12px;max-width:85%;font-size:13.5px}.chat .msg.ai .b{background:#0E1626;border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:10px 12px;max-width:95%}.chat .msg .dt{margin:0 4px}
.pn{color:var(--green);text-decoration:underline dotted;font-weight:600}
.sec a{color:var(--dim);text-decoration:underline dotted;font-weight:500;font-family:-apple-system,system-ui,sans-serif}
.more{margin:8px 0 0;padding:10px 12px;border:1px dashed var(--line);border-radius:14px;color:var(--dim);font-size:13px;cursor:pointer}.more b{color:var(--ink);font-weight:600}
.members .mb{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.members .mb:first-child{border-top:none;padding-top:2px}.members .rl{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);width:52px;flex:none}.members .mn{flex:1;min-width:0}.members .mn b{font-weight:600;cursor:pointer}.members .mn .dt{margin-top:1px}
.use{font-size:13px;color:var(--ink);margin-top:8px;background:#0E1626;border-radius:12px;padding:8px 10px 10px;line-height:1.4}
.use .uh{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:6px 0 4px}.use .uh:first-child{margin-top:0}
.use .ur{display:grid;grid-template-columns:18px minmax(0,1fr) 72px 40px;gap:8px;align-items:center;padding:4px 0;border-top:1px solid var(--line)}
.use .ur .n{color:var(--dim);font-size:11.5px;font-variant-numeric:tabular-nums}.use .ur .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.use .ur.mine .nm{font-weight:600}
.use .bar{height:6px;background:var(--card);border-radius:3px;overflow:hidden}.use .bar i{display:block;height:100%;background:linear-gradient(90deg,#3BC489,#2BA8A0)}.use .ur:not(.mine) .bar i{opacity:.55}
.use .pc{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px}.use em{font-style:normal;font-weight:700}.use em.y{color:var(--green)}.use em.s{color:#9DBCF7}
.ctx{position:relative;flex:none}.ctx .dots{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:18px;font-weight:700;line-height:1;cursor:pointer;padding:0}
.ctx .menu{position:absolute;right:0;top:34px;background:#0E1626;border:1px solid var(--line);border-radius:12px;min-width:220px;z-index:6;box-shadow:0 10px 28px rgba(0,0,0,.45);padding:4px}
.ctx .menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--ink);padding:10px 12px;font-size:14px;border-radius:8px}.ctx .menu button:active{background:var(--card)}.ctx .menu button.danger{color:#F59A8B}
.acts button.primary{background:linear-gradient(135deg,#3BC489,#2BA8A0);color:#062018;border:none;font-weight:700}
.monhead{gap:8px}.monhead .chips{flex:1;justify-content:flex-end}
.fix{margin-top:10px;display:none;gap:6px;flex-wrap:wrap}
.mon.editing .fix{display:flex}
.fix input{width:74px;background:#0E1626;border:1px solid var(--line);border-radius:9px;
 color:var(--ink);padding:7px;font-size:14px}
.fix button{background:var(--green);border:none;border-radius:9px;padding:7px 13px;
 font-weight:700;color:#062018}
canvas{display:none}
video{position:fixed;right:0;bottom:0;width:2px;height:2px;opacity:.01;pointer-events:none}
.tabs{display:flex;gap:6px;margin:0 0 10px}
.tabs button{flex:1;background:var(--card);border:1px solid var(--line);color:var(--dim);border-radius:12px;
 padding:10px 4px;font-weight:700;font-family:Sora,sans-serif;font-size:13.5px;min-width:0}
.tabs button.on{color:var(--ink);border-color:#3BC489;background:rgba(72,213,151,.10)}
.tabs.sub{margin:0 0 8px}.tabs.sub button{padding:8px;font-size:13px;border-radius:10px}
.role.slot{position:relative;cursor:pointer}.role.slot .x{position:absolute;top:4px;right:8px;color:var(--dim);font-size:12px}
.role.slot.empty{border:1px dashed var(--line);background:transparent}.role .rn.dim{color:var(--dim);font-size:20px}
.rank{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:5px 0}
.rank .rk{font-family:Sora,sans-serif;font-weight:700;color:var(--dim);min-width:40px;font-size:13px}
.rank .rb{flex:1;min-width:0}.rank .rn{font-size:14px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rank .dt{font-size:11.5px;color:var(--dim)}
.rank .ra{display:flex;flex-direction:column;gap:4px}.rank .ra button{background:#0E1626;color:var(--dim);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:11.5px}
.view{display:none}.view.on{display:block}
.sec{margin:16px 0 6px;font-family:Sora,sans-serif;font-weight:700;font-size:14px;color:var(--ink);
 display:flex;justify-content:space-between;align-items:baseline}
.sec small{color:var(--dim);font-weight:500;font-family:-apple-system,system-ui,sans-serif}
.team{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:6px 0;font-size:13.5px}
.team .sc{font-family:Sora,sans-serif;font-weight:800;font-size:17px;color:var(--green);font-variant-numeric:tabular-nums;margin-right:8px}
.team .nm{font-weight:600}
.team .dt{color:var(--dim);font-size:12px;margin-top:3px}
.team .dt b{color:var(--coral);font-weight:600}
.rlist{display:flex;flex-wrap:wrap;gap:6px}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:999px;
 padding:5px 10px;font-size:12.5px}
.pill .x{color:var(--dim);cursor:pointer}
.pill.auto{border-style:dashed}
.add{display:flex;gap:6px;margin:6px 0;flex-wrap:wrap}
.add input{flex:1;min-width:120px;background:var(--card);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:8px}
.add button{background:var(--green);border:none;border-radius:9px;padding:7px 13px;font-weight:700;color:#062018}
.mv{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;margin:4px 0 8px}
.mv select{padding:5px;min-width:0;width:100%}
.own{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:6px 0}
.own .h{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;flex-wrap:wrap}
.own .h span{text-align:right;flex:1}
.own .h b{font-weight:600}
.own .h span{color:var(--dim);font-size:12px}
.plan{font-size:12px;color:var(--dim);margin-top:7px;line-height:1.55}
.plan b{color:var(--ink);font-weight:600}.plan .ok{color:var(--green)}.plan .no{color:var(--coral)}
.note{font-size:12px;color:var(--dim);margin:4px 0 8px}
h1 .help.prof{margin-left:auto;width:auto;padding:0 10px;gap:5px;font-size:12px;border-radius:15px}h1 .help.prof+.help{margin-left:0}
h1 .help.sync{margin-left:0}h1 .help.sync.on{color:var(--green);border-color:#3BC489}h1 .help.sync.err{color:#F59A8B;border-color:#F0654F}
h1 .help.sync+.help{margin-left:0}
h1 .help{margin-left:auto;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card);
 color:var(--dim);font:700 15px Sora,sans-serif;display:flex;align-items:center;justify-content:center}
#help{display:none;position:fixed;inset:0;background:rgba(6,10,20,.82);z-index:20;overflow:auto;
 padding:calc(14px + env(safe-area-inset-top)) 14px 40px}
#help.open{display:block}
#help .box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;max-width:560px;margin:0 auto;font-size:14px}
#help h2{font-family:Sora,sans-serif;font-size:18px;margin:0 0 6px;display:flex;justify-content:space-between}
#help h3{font-family:Sora,sans-serif;font-size:14px;margin:16px 0 4px;color:var(--green)}
#help p,#help li{color:var(--ink);margin:4px 0;line-height:1.5}
#help ul{padding-left:18px}
#help .dim{color:var(--dim)}
div.empty{background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:16px;margin:10px 0;font-size:14px;color:var(--dim);line-height:1.6}
.star{color:var(--dim);margin-right:6px;font-size:16px;cursor:pointer}.star.on{color:var(--gold)}
.mon.benched{opacity:.55}
.fix .sec2{background:var(--card);color:var(--dim);border:1px solid var(--line)}
.hero{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 15px;margin:8px 0}
.hero .chip{white-space:normal;line-height:1.35}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.role{background:#0E1626;border-radius:14px;padding:10px 6px;text-align:center;display:flex;flex-direction:column;gap:3px;min-width:0}
.role .rl{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.role .rn{font-family:Sora,sans-serif;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role .rm{font-size:11px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scorebar{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:11.5px}
.scorebar .big{font-family:Sora,sans-serif;font-weight:800;font-size:26px;color:var(--green);letter-spacing:-.02em}
.track{flex:1;height:8px;background:#0E1626;border-radius:4px;position:relative;overflow:hidden}
.track .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#3BC489,#2BA8A0);border-radius:4px}
.track .tick{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--dim)}
.team.move{display:flex;align-items:center;gap:10px;cursor:default}.team.move .mvt{flex:1;min-width:0}.team.faded{opacity:.65}.team.move .side{display:flex;align-items:center;gap:6px;flex:none}.team.move .side .chip{white-space:nowrap}
.team{cursor:pointer}
.core{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:6px 0}
.core .ch{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:600}
.core .sc{font-family:Sora,sans-serif;font-weight:800;color:var(--green)}
.thirds{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:2px}
.third{flex:none;background:#0E1626;border:1px solid var(--line);border-radius:10px;padding:6px 10px;display:flex;flex-direction:column;font-size:13px;min-width:84px}
.third small{color:var(--dim)}.third.best{border-color:#3BC489;background:rgba(72,213,151,.10)}.third.best small{color:#7FE3B6}
#profile{display:none;position:fixed;inset:0;background:rgba(6,10,20,.85);z-index:21;overflow:auto;padding:calc(14px + env(safe-area-inset-top)) 12px 40px}
#profile.open{display:block}#profile .box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px;max-width:560px;margin:0 auto;font-size:14px}
#profile h2{font-family:Sora,sans-serif;font-size:16px;margin:0 0 8px;display:flex;justify-content:space-between}#profile .x{color:var(--dim);cursor:pointer}
#profile h3{font-family:Sora,sans-serif;font-size:13px;margin:14px 0 4px;color:var(--green)}
.thr{font-size:12.5px;color:var(--dim);margin-top:5px;line-height:1.45}.thr b{color:#F59A8B;font-weight:600}.thr .good,.dt .good{color:var(--green)}
.thr.av b{color:var(--ink)}.thr.av span:not(.good):not(.dim){color:#F5CE8A}.thr.av.now span:not(.good):not(.dim){color:#7FE3B6}
.avb{padding:8px 0 4px;border-top:1px solid var(--line);cursor:pointer}.team>.avb:first-of-type,.team.avb{border-top:none;padding-top:4px}
.avh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px}.avh b{font-weight:600}.avh .dim{font-size:12px}
.avl{display:grid;grid-template-columns:64px 1fr;gap:8px;font-size:12.5px;color:var(--dim);margin-top:3px;line-height:1.45}
.avl .lb{color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding-top:2px}.avl .tx span:not(.good):not(.dim){color:#F5CE8A}.avl.now .tx span:not(.good):not(.dim){color:#7FE3B6}.avl .tx .dim{color:var(--dim)}
.monhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:2px 0 6px}
.back{background:none;border:none;color:var(--green);font:600 15px Sora,sans-serif;padding:6px 0;cursor:pointer}
.acts button.danger{color:#F59A8B;border-color:rgba(240,101,79,.5)}
.team .nm a,.note a{color:var(--ink);text-decoration:underline dotted var(--dim)}.note a{color:var(--green)}
.coach .ctx{font:11px/1.4 ui-monospace,monospace;background:#0E1626;border-radius:10px;padding:8px;max-height:260px;overflow:auto;white-space:pre-wrap;color:var(--dim);margin:4px 0}
.coach{cursor:default}.coach code{font-family:ui-monospace,monospace;font-size:12px;background:#0E1626;padding:1px 5px;border-radius:5px;color:var(--ink)}.coach .ans{font-size:13.5px;color:var(--ink);line-height:1.55;margin-top:8px}.coach .ans p{margin:6px 0}.coach .ans ul{padding-left:18px;margin:4px 0}.coach .ans li{margin:2px 0}.coach .ans b{color:var(--green)}
#syncbox{display:none;position:fixed;inset:0;background:rgba(6,10,20,.85);z-index:21;overflow:auto;padding:calc(14px + env(safe-area-inset-top)) 12px 40px}
#syncbox.open{display:block}#syncbox .box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px;max-width:560px;margin:0 auto;font-size:14px}
#syncbox h2{font-family:Sora,sans-serif;font-size:16px;margin:0 0 8px;display:flex;justify-content:space-between}#syncbox .x{color:var(--dim);cursor:pointer}#syncbox p{margin:6px 0;line-height:1.5}
#sheet{display:none;position:fixed;inset:0;background:rgba(6,10,20,.85);z-index:20;overflow:auto;padding:calc(14px + env(safe-area-inset-top)) 12px 40px}
#sheet.open{display:block}
#sheet .box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;max-width:560px;margin:0 auto}
#sheet h2{font-family:Sora,sans-serif;font-size:16px;margin:0 0 10px;display:flex;justify-content:space-between;gap:10px}
#sheet h2 .sc{color:var(--green);margin-left:6px}#sheet .x{color:var(--dim);cursor:pointer}
.cov{display:flex;flex-direction:column;gap:5px;font-size:13px}
.cr{display:grid;grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:6px;align-items:center}
.cr.head{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:6px}
.cr.head span:not(:first-child){text-align:center;text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:var(--ink);font-family:Sora,sans-serif}
.cr.tint{background:rgba(240,101,79,.10);border-radius:10px;margin:0 -4px;padding:0 4px}.cr.tint>span{color:#F59A8B}
.cr i{display:block;height:28px;border-radius:8px}
.cr i.w{background:rgba(72,213,151,.65)}.cr i.e{background:rgba(126,147,172,.25)}.cr i.l{background:rgba(240,101,79,.55)}.cr i.est{opacity:.45}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--dim);margin-top:6px;align-items:center}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px}
.legend i.w{background:rgba(72,213,151,.65)}.legend i.e{background:rgba(126,147,172,.25)}.legend i.l{background:rgba(240,101,79,.55)}.legend i.est{opacity:.45}
.swaps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.swap{background:#0E1626;border:1px solid var(--line);border-radius:12px;padding:9px 11px;display:flex;flex-direction:column;gap:2px;font-size:12px}
.swap .up{color:var(--green);font-weight:700;font-family:Sora,sans-serif}.swap .down{color:#F59A8B;font-weight:700;font-family:Sora,sans-serif}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer}
.tile b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .ivl{align-self:flex-start;font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink);background:#0E1626;border:1px solid var(--line);border-radius:6px;padding:1px 6px;letter-spacing:.02em}
.tile small{color:var(--dim);font-size:11.5px}.tile .st{font-size:11px;color:var(--dim)}
.tile.ready{border-color:#3BC489}.tile.ready .st{color:#7FE3B6}
.tile.power{border-color:var(--gold)}.tile.power .st{color:#F5CE8A}
.tile.pending{border-style:dashed;border-color:#5B8DEF}.tile.pending b,.tile.pending .st{color:#9DBCF7}
.tile.wanted{border-style:dashed}.tile.wanted b{color:var(--dim)}
.tile.xl .st,.tile.bench .st{color:#F59A8B}.tile.bench,.tile.xl{opacity:.6}
.tile.add{align-items:center;justify-content:center;border-style:dashed;color:var(--dim)}.tile.add b{font-size:22px;line-height:1;color:var(--dim)}
.tile.sel{outline:2px solid var(--ink)}
.pb{height:5px;background:#0E1626;border-radius:3px;overflow:hidden}.pb>div{height:100%;background:var(--gold)}
.detail{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 15px;margin:10px 0;display:flex;flex-direction:column;gap:10px}
.detail .dh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.detail .nm{font-family:Sora,sans-serif;font-weight:700;font-size:15px}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.kpis>div{background:#0E1626;border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;min-width:0}
.kpis small{color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}
.kpis b{font-family:Sora,sans-serif;font-weight:700;font-size:15px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.kpis .sub{display:block;font-family:-apple-system,system-ui,sans-serif;font-weight:500;font-size:11.5px;color:var(--dim);margin-top:2px}
.acts{display:flex;gap:6px;flex-wrap:wrap}
.acts button{background:#0E1626;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:13px}
.acts.small{margin-top:7px}.acts.small button{padding:5px 9px;font-size:12px;color:var(--dim)}
.team.done{display:flex;gap:10px;align-items:flex-start;cursor:default}
.tick{font-family:Sora,sans-serif;font-weight:800;font-size:16px;width:22px;text-align:center;flex:none}.tick.full{color:var(--green)}.tick.hollow{color:var(--dim)}
.team .dt a{color:var(--green)}
.empty b{color:var(--ink)}

/* ---------- navigation: bottom bar + side drawer ---------- */
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;justify-content:center;gap:4px;padding:6px 10px calc(8px + env(safe-area-inset-bottom));
 background:rgba(11,18,32,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.navbar button{flex:1;max-width:170px;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--dim);font-size:11.5px;font-weight:600;padding:6px 4px;border-radius:12px}
.navbar button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.navbar button.on{color:var(--green)}
h1 .help.menu{margin-left:0;margin-right:2px}
#drawer{display:none;position:fixed;inset:0;background:rgba(6,10,20,.6);z-index:30}
#drawer.open{display:block}
.dr{position:absolute;left:0;top:0;bottom:0;width:min(84vw,320px);background:#0E1626;border-right:1px solid var(--line);padding:calc(14px + env(safe-area-inset-top)) 10px calc(14px + env(safe-area-inset-bottom));overflow:auto;
 box-shadow:14px 0 40px rgba(0,0,0,.5);animation:drin .18s ease-out;display:flex;flex-direction:column}
@keyframes drin{from{transform:translateX(-30px);opacity:0}to{transform:none;opacity:1}}
.dr .ttl{font-family:Sora,sans-serif;font-weight:800;font-size:18px;padding:4px 10px 10px;display:flex;align-items:center;justify-content:space-between}
.dr .ttl .x{color:var(--dim);font-weight:400;font-size:18px;cursor:pointer;padding:0 4px}
.dr .grp{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:12px 10px 4px}
.dr a{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;padding:10px 10px;border-radius:12px;font-size:14.5px}
.dr a .ic{width:22px;text-align:center;color:var(--dim);font-size:15px;flex:none}
.dr a.on{background:rgba(72,213,151,.10);color:var(--green)}.dr a.on .ic{color:var(--green)}
.dr a:active{background:var(--card)}
.dr a small{margin-left:auto;color:var(--dim);font-size:11.5px}
.dr .ft{margin-top:auto;padding:14px 10px 0;color:var(--dim);font-size:11.5px;line-height:1.5}

/* ---------- lineage offer on a fresh scan ---------- */
.lin{background:rgba(72,213,151,.08);border:1px solid rgba(72,213,151,.35);border-radius:12px;padding:8px 10px;margin:0 0 8px;font-size:13px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between}
.lin .q{flex:1;min-width:160px}.lin .a{display:flex;gap:6px}
.lin button{border:none;border-radius:9px;padding:6px 10px;font-size:12.5px;font-weight:700}
.lin .yes{background:var(--green);color:#062018}.lin .no{background:var(--card);color:var(--dim);border:1px solid var(--line)}

/* ---------- AI review card ---------- */
.team.card.review .verdict{font-size:14px;line-height:1.45;margin:0 0 6px}.team.card.review .verdict p{margin:0}
.team.card.review .rsec{font-size:13px;color:var(--dim);margin:6px 0 0;line-height:1.45}.team.card.review .rsec>b{display:block;color:var(--ink);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.team.card.review .rsec ul,.team.card.review .verdict ul{margin:2px 0 0;padding-left:18px}.team.card.review p{margin:2px 0}
.team.row .dt .ai{color:var(--ink);opacity:.85;margin-top:3px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- Matchups page ---------- */
.mut{display:grid;gap:4px;align-items:stretch;margin:6px 0}
.mut .mh{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);text-align:center;padding:0 2px 2px;align-self:end}
.mut .mn{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0;cursor:pointer}
.mut .mn b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mut .mn small{color:var(--dim);font-size:11.5px}.mut .mn .good{color:var(--green)}.mut .mn .bad{color:#F59A8B}
.mut .mc{border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:Sora,sans-serif;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.mut .mc.w{background:rgba(72,213,151,.22);color:#7FE3B6}.mut .mc.e{background:rgba(240,192,96,.18);color:#F0C060}.mut .mc.l{background:rgba(240,101,79,.2);color:#F59A8B}

/* ---------- Battle log ---------- */
.spark{display:block;width:100%;height:44px;margin-top:6px}.spark polyline{fill:none;stroke:var(--green);stroke-width:2;vector-effect:non-scaling-stroke}.spark circle{fill:var(--green)}
.wl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.wl button{border:none;border-radius:14px;padding:16px 10px;font-family:Sora,sans-serif;font-weight:800;font-size:18px}
.wl .win{background:linear-gradient(135deg,#3BC489,#2BA8A0);color:#062018}.wl .loss{background:rgba(240,101,79,.22);color:#F59A8B;border:1px solid rgba(240,101,79,.4)}

/* ---------- How to get: routes ---------- */
.avb .rt{padding:8px 0;border-top:1px solid var(--line)}.avb .rt:first-child{border-top:none;padding-top:2px}
.avb .rh{font-weight:700;font-size:14px;margin-bottom:4px}.avb .rh small{color:var(--dim);font-weight:500;font-size:12px;margin-left:4px}
.avb .rf{font-size:13px;line-height:1.45;margin:3px 0}.avb .rf.dim{color:var(--dim);font-size:12.5px}.avb .rf.good{color:var(--green)}
.avb .rf a{color:var(--green)}

/* ---------- roster cards for pieces you do not hold yet ---------- */
.mon.compact.ghost{border-style:dashed;padding:10px 15px}.mon.compact.ghost .name{font-size:15px;color:var(--dim)}
.chip.sel{outline:2px solid var(--ink)}
