/* D' Champions Lab - DCL Web. Restrained, muted earth/steel, subtle glass. Motion communicates hierarchy, not spectacle. */
:root{
  --ink:#f4f6f2;--soft:rgba(238,242,235,.74);--faint:rgba(238,242,235,.48);
  --glass:rgba(12,18,19,.5);--glass2:rgba(18,27,27,.66);--line:rgba(238,242,235,.15);--line2:rgba(238,242,235,.3);
  --shadow:0 18px 55px rgba(0,0,0,.28);--good:#b9d9c2;--warn:#e0cf98;--bad:#e8a9a9;--accent:#d7ddd4;
  --radius:20px;--hdr:56px;
}
*{box-sizing:border-box}
html{background:#111}
html,body{margin:0;min-height:100%;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;background:transparent}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid #cfe8d6;outline-offset:2px}
body:before{content:"";position:fixed;inset:-55px;z-index:-3;background:
 radial-gradient(circle at 18% 15%,rgba(190,202,173,.72),transparent 28%),radial-gradient(circle at 74% 22%,rgba(73,102,91,.88),transparent 31%),
 radial-gradient(circle at 67% 78%,rgba(135,111,84,.68),transparent 34%),radial-gradient(circle at 18% 80%,rgba(49,68,64,.92),transparent 36%),
 linear-gradient(135deg,#617268,#233b38 42%,#5c5141 74%,#1c2928);filter:blur(34px) saturate(.78);transform:scale(1.12)}
body:after{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(5,9,10,.3),rgba(4,8,9,.7)),radial-gradient(circle at 50% 10%,transparent,rgba(0,0,0,.32) 78%)}
#app{min-height:100dvh;background:transparent}
.spacer{flex:1}
.unk{color:var(--warn)}.unk-text{color:var(--warn);font-size:10px}.err{color:var(--bad)}.warn-text{color:var(--warn)}
.small{font-size:11px;line-height:1.55;color:var(--soft)}.sub{margin:4px 0 0;font-size:12px;color:var(--soft)}
.srcline{font-size:10px;line-height:1.55;color:var(--faint);margin:8px 0}
.note{font-size:10px;line-height:1.6;color:var(--faint);margin-top:12px}
.label{font-size:9px;letter-spacing:.16em;color:var(--soft)}
h1,h2,h3{font-weight:300;margin:0}

/* ---------- controls */
.btn{border:1px solid var(--line);background:rgba(255,255,255,.06);border-radius:999px;padding:8px 14px;font-size:12px;letter-spacing:.02em;white-space:nowrap;transition:background .18s,border-color .18s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn:hover{background:rgba(255,255,255,.12)}.btn.primary{background:rgba(238,242,235,.92);color:#17201e;border-color:transparent}.btn.primary:hover{background:#fff}
.btn.sm{padding:5px 11px;font-size:11px}.btn.ghost{background:transparent;border-color:transparent}.btn:disabled{opacity:.4;cursor:not-allowed}
select,.inp{border:1px solid var(--line);background:rgba(255,255,255,.07);border-radius:12px;padding:8px 10px;outline:0;font-size:12px;min-height:34px}
select option{background:#1d2a29;color:#f4f6f2}
.inp::placeholder,textarea::placeholder{color:var(--faint)}
textarea{border:1px solid var(--line);background:rgba(255,255,255,.06);border-radius:14px;padding:10px 12px;outline:0;resize:none}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--soft)}
.pill{display:inline-block;font-size:9px;letter-spacing:.1em;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--soft);white-space:nowrap}
.pill.cur{color:var(--good);border-color:rgba(185,217,194,.45)}.pill.hist{color:var(--warn);border-color:rgba(224,207,152,.45)}.pill-prop{color:var(--warn);border:1.5px dashed rgba(224,207,152,.8)}
.tag{font-size:9px;letter-spacing:.13em;color:var(--soft);border:1px solid var(--line);border-radius:999px;padding:2px 8px;vertical-align:middle}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:rgba(238,242,235,.96);color:#17201e;padding:9px 16px;border-radius:999px;font-size:12px;z-index:90}

/* ---------- state semantics: five operational states + reference/verified, each with its own shape */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.1em;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap;line-height:1.3}
.badge i{font-style:normal;font-size:11px}.badge.sm{font-size:8.5px;padding:2px 7px}
.st-accepted{background:rgba(185,217,194,.22);border-color:rgba(185,217,194,.75);color:#d3ecdb}
.st-proposed{background:transparent;border:1.5px dashed rgba(224,207,152,.95);color:#ecdca6}
.st-unknown{background:rgba(160,175,190,.1);border:1px dotted rgba(190,200,215,.6);color:#bcc8d6}
.st-invalid{background:rgba(232,150,150,.16);border-color:rgba(232,150,150,.75);color:#f2bcbc}
.st-error{background:repeating-linear-gradient(135deg,rgba(255,120,90,.26) 0 6px,rgba(255,120,90,.1) 6px 12px);border-color:#ff8a6b;color:#ffb8a6}
.st-reference{background:transparent;border-color:rgba(180,200,232,.5);color:#c6d4ec}
.st-verified{background:rgba(120,190,170,.15);border-color:rgba(120,190,170,.65);color:#acdfd0}

/* ---------- artwork */
.art{display:block;object-fit:contain}
.art.ctx-dense{width:40px;height:40px}.art.ctx-builder{width:84px;height:84px}.art.ctx-profile{width:min(300px,64vw);height:auto;aspect-ratio:1}
.art-missing{display:inline-grid;place-items:center;text-align:center;border:1px dashed var(--line2);border-radius:12px;background:rgba(255,255,255,.04);color:var(--faint);font-size:8px;line-height:1.25;padding:3px;flex:none}
.art-missing b{font-weight:500}.art-missing.ctx-dense{width:40px;height:40px}.art-missing.ctx-dense b{display:none}.art-missing.ctx-dense:before{content:"∅";font-size:15px}
.art-missing.ctx-builder{width:84px;height:84px}.art-missing.ctx-profile{width:min(300px,64vw);aspect-ratio:1;font-size:12px;border-radius:24px}
.art-missing.loading{width:40px;height:40px;background:linear-gradient(110deg,rgba(255,255,255,.04) 30%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.04) 70%);background-size:200% 100%;animation:shim 1.2s linear infinite;border-style:solid}
@keyframes shim{to{background-position:-200% 0}}
.shim,.shimmer{display:inline-block;min-width:60px;height:12px;border-radius:6px;background:linear-gradient(110deg,rgba(255,255,255,.05) 30%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.05) 70%);background-size:200% 100%;animation:shim 1.2s linear infinite}
.tpi{vertical-align:middle;margin-right:4px}.tpi-compact{height:18px;width:auto}.tpi-standard{height:20px;width:auto}.tp-text{font-size:10px;margin-right:4px}
.iico{object-fit:contain;vertical-align:middle;flex:none;margin-right:4px}.iico-compact{width:26px;height:26px}.iico-regular{width:auto;height:64px;max-width:72px}.iico.ph{display:inline-block;width:26px;height:26px}

/* ---------- header / navigation */
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;min-height:var(--hdr);padding:6px 18px;border-bottom:1px solid var(--line);background:rgba(8,13,14,.55);backdrop-filter:blur(24px)}
.brand{font-size:13px;letter-spacing:.18em;font-weight:500;text-decoration:none;white-space:nowrap}
.nav{display:flex;gap:4px;align-items:center;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}
.navlink{font-size:12px;color:var(--soft);text-decoration:none;padding:7px 13px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.navlink:hover{background:rgba(255,255,255,.08)}.navlink.active{color:var(--ink);background:rgba(255,255,255,.1);border-color:var(--line)}
.navlink.soon{opacity:.55}.navlink small{font-size:8px;letter-spacing:.1em;margin-left:5px;color:var(--faint)}
.regsel{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--soft)}.regsel select{max-width:230px}
.status{font-size:11px;color:var(--soft);white-space:nowrap}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b9d9c2;margin-right:7px}
main{display:block}

/* ---------- opening page: the tool row never reflows; a focused card scales about its own centre and overlaps */
.home{max-width:1320px;margin:0 auto;padding:clamp(24px,5vw,56px) 20px 60px}
.mast{text-align:center;margin-bottom:22px}.mast .mark{font-size:12px;letter-spacing:.24em;color:var(--soft);margin-bottom:13px}
.mast h1{font-size:clamp(38px,6vw,72px);line-height:.98;letter-spacing:-.04em}.mast p{font-size:15px;color:var(--soft);font-weight:300;margin:16px 0 0}
.question{text-align:center;font-size:12px;letter-spacing:.12em;color:var(--soft);margin-bottom:6px}
.tool-row{display:flex;justify-content:center;align-items:center;gap:16px;padding:78px 28px 86px}
.tool{position:relative;flex:0 0 clamp(158px,15.8vw,212px);height:292px;padding:20px;border-radius:24px;background:rgba(10,17,17,.5);border:1px solid var(--line);backdrop-filter:blur(22px);color:var(--ink);
  transform-origin:50% 50%;transition:transform .34s cubic-bezier(.2,.75,.25,1),box-shadow .3s,background .3s,border-color .3s;z-index:1;outline:0;cursor:pointer}
.tool.focus{transform:scale(1.22);z-index:20;background:rgba(22,32,31,.88);border-color:var(--line2);box-shadow:0 28px 70px rgba(0,0,0,.5)}
.tool:focus-visible{border-color:#cfe8d6}
.tool.off{opacity:.62}.tool.off.focus{opacity:.92}
.tool-face{display:flex;flex-direction:column;height:100%}
.tool-icon{font-size:22px;font-weight:300;color:var(--soft)}.tool-tag{position:absolute;top:18px;right:16px;font-size:8px;letter-spacing:.13em;color:var(--soft);border:1px solid var(--line);border-radius:999px;padding:2px 7px}
.tool h2{font-size:19px;margin:auto 0 7px;font-weight:400}.tool-face p{font-size:12px;line-height:1.5;color:var(--soft);margin:0;transition:opacity .2s}
.tool.focus .tool-face p{opacity:0}.tool.focus h2{margin-bottom:0;margin-top:10px}
.tool-more{position:absolute;left:18px;right:18px;bottom:18px;display:flex;flex-direction:column;gap:12px;opacity:0;pointer-events:none;transition:opacity .25s .08s}
.tool-more p{font-size:11px;line-height:1.45;color:var(--soft);margin:0}.tool.focus .tool-more{opacity:1;pointer-events:auto}
.tool-hint{text-align:center;font-size:11px;color:var(--faint);margin:0}

/* ---------- pages */
.tb,.coach,.others,.bd{max-width:1320px;margin:0 auto;padding:22px 18px 64px}
.fail{max-width:640px;margin:60px auto;padding:20px}
.tb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.tb-head h1{font-size:28px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:rgba(255,255,255,.05);gap:2px}
.seg button{border:0;background:transparent;border-radius:999px;padding:8px 16px;font-size:12px;color:var(--soft)}.seg button.on{background:rgba(238,242,235,.92);color:#17201e}
.tb-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.team-list{list-style:none;margin:10px 0;padding:0;max-height:50dvh;overflow:auto}.team-list li{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid rgba(238,242,235,.08)}.tl-main{flex:1;min-width:0;display:flex;flex-direction:column}.tl-main b{font-weight:450;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-main small{font-size:10px;color:var(--faint)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* the current team's name: reads as a title, edits in place (a quiet underline on hover and focus; the stored name is never shortened) */
.team-name{flex:0 1 360px;min-width:140px;max-width:100%;font-size:15px;font-weight:450;letter-spacing:.01em;color:var(--ink);background:transparent;border:0;border-bottom:1px solid transparent;border-radius:0;padding:4px 2px;outline:0;text-overflow:ellipsis}
.team-name:hover{border-bottom-color:var(--line2)}.team-name:focus,.team-name:focus-visible{border-bottom-color:#cfe8d6;background:rgba(255,255,255,.04)}.team-name::placeholder{color:var(--faint)}
.assetnote{font-size:10px;line-height:1.5;color:var(--warn);border:1px solid rgba(224,207,152,.35);background:rgba(224,207,152,.07);border-radius:12px;padding:7px 12px;margin:6px 0 12px}

/* ---------- Team Builder: a FIXED team strip (slot order, the selected tile is wider and summarises its build) over ONE permanent workspace.
   Every region has a fixed height and nothing animates, so loading data or choosing another Pokémon never changes the page height
   (a changing height clamped the scroll position and made the viewport creep upward on every edit). */
.tb-meta{min-height:34px}
.team-strip{display:flex;gap:8px;margin-bottom:12px;align-items:stretch}
.tile{flex:1 1 0;min-width:0;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);backdrop-filter:blur(20px);color:var(--ink);position:relative;text-align:center;cursor:pointer;overflow:hidden}
.tile:hover{background:var(--glass2);border-color:var(--line2)}
.tile.sel{flex:3.6 1 0;background:var(--glass2);border-color:rgba(238,242,235,.7)}
.tile.proposed{border:1.5px dashed rgba(224,207,152,.85);background:rgba(61,52,33,.32)}.tile.proposed.sel{border-color:rgba(224,207,152,1)}
.tile.empty{border:1.5px dashed var(--line2);background:rgba(255,255,255,.03);color:var(--soft)}.tile.empty .plus{font-size:22px}.tile.empty small{font-size:9px;letter-spacing:.12em;color:var(--faint)}
.t-art{flex:none;display:grid;place-items:center;width:56px;height:56px}.t-art .art,.t-art .art-missing{width:56px;height:56px}
.t-txt{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;max-width:100%}
.t-txt small,.s-id small,.s-moves small,.s-stats small{font-size:8px;letter-spacing:.12em;color:var(--faint)}
.t-name{font-size:12px;font-weight:450;line-height:1.15;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-item{display:flex;align-items:center;justify-content:center;gap:4px;height:26px;font-size:10px;color:var(--soft);min-width:0;max-width:100%}.t-item .iico{max-height:24px;width:auto}
.t-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-item.none{color:var(--faint)}
.t-st{position:absolute;top:5px;right:5px;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:9px;border:1px solid}
/* selected tile: a compact, READ-ONLY build summary in the tile's own width (sprite, name/item/ability, moves, six stat bars) */
.tile.sel.summary{display:grid;grid-template-columns:68px minmax(0,1.05fr) minmax(0,.9fr) minmax(0,1.1fr);gap:10px;align-items:center;justify-items:stretch;text-align:left;padding:8px 22px 8px 12px}
.tile.sel.summary .t-art,.tile.sel.summary .t-art .art,.tile.sel.summary .t-art .art-missing{width:68px;height:68px}
.tile.sel.summary .t-art{position:relative;overflow:visible}
.t-shiny{position:absolute;right:-2px;top:-6px;width:18px;height:18px;display:grid;place-items:center;font-size:15px;line-height:1;color:var(--faint);opacity:.4;pointer-events:none}.t-shiny.on{color:#f3d36a;opacity:1}
.t-itemico{position:absolute;left:-6px;top:-4px;width:24px;height:24px;display:grid;place-items:center}.t-itemico .iico{max-width:18px;max-height:18px;width:auto;height:auto}
.s-id,.s-moves,.s-stats{display:flex;flex-direction:column;gap:2px;min-width:0}
.s-id .t-name{font-size:15px;line-height:1.15}.s-line{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;max-width:100%}.s-item{font-size:11px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.s-item.none{color:var(--faint)}.s-item{max-width:100%}.s-ab{font-size:11px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-ab.unk{color:var(--faint)}
.s-types{display:flex;align-items:center;gap:3px;flex:none}.s-types .tpi{height:15px;width:auto}
.s-moves span:not(small){font-size:11px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-moves .none{color:var(--faint)}
.sb-row{display:grid;grid-template-columns:22px minmax(0,1fr) 26px;gap:5px;align-items:center;height:14px;font-size:9.5px}.sb-row em{font-style:normal;color:var(--faint)}.sb-row b{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.sb-bar{display:block;height:5px;border-radius:9px;background:rgba(255,255,255,.1);overflow:hidden}.sb-bar i{display:block;height:100%;background:linear-gradient(90deg,#9fb6a4,#d7ddd4)}
.pc-types{display:flex;flex-wrap:wrap;gap:2px}
.iss{font-size:9px;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid}.iss-bad{color:#f2bcbc;border-color:rgba(232,150,150,.7);background:rgba(232,150,150,.14)}.iss-unk{color:#bcc8d6;border:1px dotted rgba(190,200,215,.6)}
.btn.on{background:rgba(238,242,235,.92);color:#17201e;border-color:transparent}
/* the permanent workspace: LEFT art + identity + item/ability/nature, MIDDLE the four moves, RIGHT the six stat sliders; DCL CHECK below */
.bench{position:relative;margin-bottom:14px;padding:10px 18px 14px;border:1px solid var(--line2);border-radius:22px;background:var(--glass2);backdrop-filter:blur(20px)}
.bench.proposed{border:1.5px dashed rgba(224,207,152,.9);background:rgba(61,52,33,.32)}
.bench-empty{min-height:340px;display:grid;place-items:center;color:var(--soft);font-size:13px;text-align:center}.bench-hint{display:flex;flex-direction:column;align-items:center;gap:12px}
.bench-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:36px;margin-bottom:8px}.bar-id{font-size:9px;letter-spacing:.14em;color:var(--faint)}
.bar-prop{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--warn)}.pc-shift{display:flex}
.bench-cols{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(290px,1fr) minmax(360px,1.4fr);gap:24px;align-items:start;min-height:390px}
.col{min-width:0;display:flex;flex-direction:column;gap:12px}
.b-artbtns{display:flex;align-items:center;justify-content:center;gap:8px;align-self:center}
.shiny-btn{flex:none;width:34px;height:34px;display:grid;place-items:center;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--faint);opacity:.6;font-size:20px;line-height:1;cursor:pointer;transition:color .18s,opacity .18s;-webkit-tap-highlight-color:transparent}
.shiny-btn:hover:not([disabled]){opacity:.95}.shiny-btn.on,.shiny-btn.on:hover{color:#f3d36a;opacity:1}.shiny-btn[disabled]{opacity:.25;cursor:not-allowed}.shiny-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.shiny-btn:focus:not(:focus-visible){outline:0}
/* Team Builder Mega: the logo itself, left of the item. Same 40px row as the item chip; ON / OFF only change the image's colour. */
.tb-mega{flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;-webkit-tap-highlight-color:transparent}
.tb-mega{position:relative}
.tb-mega img{display:block;position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;filter:grayscale(1) opacity(.65);transition:filter .18s}
.tb-mega.on img{width:49px;height:49px;margin:-24.5px 0 0 -24.5px}.tb-mega:hover img{filter:grayscale(1) opacity(.95)}.tb-mega.on img,.tb-mega.on:hover img{filter:none}
.mega-fx{position:relative;z-index:6}
.mega-fx img{transform-origin:50% 50%;pointer-events:none;will-change:transform,opacity;animation:mega-power 1200ms cubic-bezier(.22,.7,.3,1) var(--fx-delay,0ms) both}
@keyframes mega-power{0%{transform:scale(.68);opacity:1}10%{transform:scale(1.6);opacity:1}30%{transform:scale(1.4);opacity:.9}50%{transform:scale(1.25);opacity:.62}68%{transform:scale(1.08);opacity:.32}82%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.mega-fx img{animation:none}}
.shiny-fx span{display:inline-block;background:linear-gradient(105deg,#f3d36a 0%,#f3d36a 40%,#fffdf0 50%,#f3d36a 60%,#f3d36a 100%) 100% 0/280% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shiny-glint 800ms cubic-bezier(.3,.6,.3,1) var(--fx-delay,0ms) both}
@keyframes shiny-glint{0%{background-position:100% 0;transform:scale(1);filter:brightness(1)}50%{background-position:48% 0;transform:scale(1.22);filter:brightness(1.35)}62%{background-position:40% 0;transform:scale(1.32);filter:brightness(1.7)}100%{background-position:0 0;transform:scale(1);filter:brightness(1)}}
@media (prefers-reduced-motion:reduce){.shiny-fx span{animation:none;background:none;-webkit-text-fill-color:currentColor}}
.tb-mega:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.tb-mega:focus:not(:focus-visible){outline:0}
.b-art{display:grid;place-items:center;height:170px}.b-art .art,.b-art .art-missing{width:160px;height:160px}.b-change{align-self:center}
.b-name{font-size:32px;line-height:1.1;margin:0;font-weight:400;overflow-wrap:anywhere}
.b-types{gap:6px}
.b-ability{display:flex;align-items:center;gap:10px;min-width:0;min-height:36px}.b-ability label{font-size:9px;letter-spacing:.14em;color:var(--faint);flex:none}.b-ability select{flex:1;min-width:0;min-height:34px}.b-ability .fixed-val{font-size:14px}
.b-itemrow{display:flex;align-items:flex-end;gap:12px}.b-field{display:flex;flex-direction:column;gap:4px;min-width:0}.b-field.grow{flex:1}
.b-field label,.b-moves h3,.b-stats-head h3{font-size:9px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;font-weight:500;margin:0}
.b-field select{width:100%;min-height:34px}
.item-chip{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:5px 12px;border:1px solid var(--line2);border-radius:12px;background:rgba(255,255,255,.07);font-size:13px;text-align:left;color:var(--ink);cursor:pointer}
.item-chip span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-chip.none span{color:var(--faint)}.item-chip i{font-style:normal;color:var(--faint)}.item-chip.on,.item-chip:hover{background:rgba(255,255,255,.13)}
.fixed-val{min-height:34px;display:flex;align-items:center;font-size:12px}
.b-moves{display:flex;flex-direction:column;gap:8px}.move-cell{position:relative;min-width:0}
.move-chip{width:100%;display:flex;align-items:center;gap:10px;padding:0 32px 0 12px;height:64px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.05);text-align:left;color:var(--ink);cursor:pointer}
.move-chip small{font-size:9px;color:var(--faint);width:10px;flex:none}.mc-type{flex:none;display:flex}.mc-type .tpi{height:18px;width:auto}
.mc-main{display:flex;flex-direction:column;gap:2px;min-width:0}.mc-main b{font-size:13px;font-weight:450;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-main em{font-style:normal;font-size:10px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.move-chip.none .mc-main b{color:var(--faint)}.move-chip.on,.move-chip:hover{background:rgba(255,255,255,.12);border-color:var(--line2)}
.move-x{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;background:none;color:var(--faint);font-size:11px;cursor:pointer}.move-x:hover{background:rgba(255,255,255,.12);color:var(--ink)}
.b-mega{display:flex;flex-direction:column;gap:4px;flex:none}.b-mega-l{font-size:9px;letter-spacing:.14em;color:var(--faint);text-align:center}
.b-mega .mega-sw{min-height:40px;padding:3px 14px 3px 3px;font-size:12px}.b-mega .mega-sw .knob{width:32px;height:32px}
.b-stats-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.b-presets{display:flex;gap:6px;margin-left:auto}
.sp-rem{font-size:12px;color:var(--soft);text-align:left;white-space:nowrap}.sp-rem b{font-size:22px;font-weight:400;color:var(--ink)}.sp-rem.full b{color:var(--good)}
.sp-table{display:flex;flex-direction:column;gap:2px}
.col-right{--spcols:50px minmax(90px,1fr) 54px 48px;--spgap:10px}
.sp-cols,.sp-table .sp-row{display:grid;grid-template-columns:var(--spcols);gap:var(--spgap);align-items:center}
.sp-cols{font-size:9px;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}.sp-cols span:nth-child(n+3){text-align:center}.sp-cols{min-height:14px}
.sp-table .sp-row{min-height:38px;border-bottom:1px solid rgba(238,242,235,.06)}
.sp-track{min-width:0}.sp-table .spin{width:100%;min-width:0}.sfin{text-align:right;font-size:14px;font-variant-numeric:tabular-nums}
.b-natrow{display:grid;grid-template-columns:var(--spcols);gap:var(--spgap);align-items:end;margin-top:6px}.b-natrow .b-field{grid-column:1 / 3}.b-natrow>.btn{grid-column:3;justify-self:center;white-space:nowrap}
/* DCL CHECK: always present at a fixed height; its content scrolls inside, so loading or new messages cannot move anything */
.dcl-check{height:112px;overflow:auto;margin-top:12px;padding-top:8px;border-top:1px solid var(--line)}.dcl-check .issue.muted{color:var(--faint);font-size:12px}
/* choosers open over the page (item, move, Pokémon/form): they never push the workspace around */
.picker-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);backdrop-filter:blur(3px)}
.picker-dialog{position:fixed;z-index:61;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 24px));max-height:min(86dvh,700px);display:flex;flex-direction:column;border:1px solid var(--line2);border-radius:20px;background:rgba(14,22,22,.98);padding:12px 14px}
.picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px}.picker-body{overflow:auto;min-height:0}
.picker-dialog .itemlist,.picker-dialog .mlist,.picker-dialog .idlist{max-height:min(52dvh,420px)}
/* Battledex base stats: label | value | bar, one fixed scale for every Pokémon */
.bs-table{display:flex;flex-direction:column;gap:2px}
.bs-row{display:grid;grid-template-columns:92px 38px minmax(0,1fr);gap:12px;align-items:center;height:28px}
.bs-row>span:first-child{font-size:12px;color:var(--soft)}.bs-row b{text-align:right;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
.bs-bar{display:block;height:9px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.bs-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#9fb6a4,#d7ddd4)}
.bs-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12px;color:var(--soft)}.bs-total b{font-size:16px;color:var(--ink);font-weight:500}

/* ---------- panels, tabs, forms */
.tb-panel{margin-top:4px}
.panel{border:1px solid var(--line);border-radius:22px;background:var(--glass);backdrop-filter:blur(20px);padding:16px}.panel.hint{color:var(--soft);font-size:13px}
.ed-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.ed-head h2{font-size:22px}.ed-art{flex:none}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tabs button{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:999px;padding:7px 14px;font-size:12px;color:var(--soft)}.tabs button.on{background:rgba(238,242,235,.92);color:#17201e;border-color:transparent}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.fld{margin-bottom:12px}.fld label{display:block;font-size:9px;letter-spacing:.13em;color:var(--faint);margin-bottom:6px;text-transform:uppercase}.fld select,.fld .inp{width:100%}
.plist{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:14px;margin-top:8px;background:rgba(0,0,0,.12)}
.empty-note{padding:14px;font-size:12px;color:var(--soft)}.more{margin:8px}
.issues{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:rgba(9,15,16,.35)}.issue{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:11px;line-height:1.55;color:var(--soft);padding:3px 0}.issue small{color:var(--faint);font-size:9px}

/* identity search */
.search-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-bar .inp{flex:1;min-width:180px}
.type-chips{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.tchip{border:1px solid transparent;background:rgba(255,255,255,.04);border-radius:8px;padding:3px 4px;opacity:.6}.tchip.on{opacity:1;border-color:#cfe8d6;background:rgba(255,255,255,.12)}
.idlist{max-height:420px}
.idrow{display:grid;grid-template-columns:48px minmax(0,1.4fr) auto minmax(90px,auto);gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(238,242,235,.06);background:none;padding:6px 10px;font-size:12px}
.idrow:hover{background:rgba(255,255,255,.07)}.idrow.cur{background:rgba(238,242,235,.13)}.idrow-main{display:flex;flex-direction:column;min-width:0}.idrow-main b{font-weight:450}.idrow-main small{font-size:9px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.idrow-types{display:flex;gap:2px;flex-wrap:wrap}.idrow-lst{text-align:right}.idrow-note{display:block;color:var(--warn);font-size:9px}
.ftag,.ftag.warn{font-style:normal;font-size:8px;letter-spacing:.1em;border:1px solid var(--line2);border-radius:999px;padding:1px 6px;color:var(--soft)}.ftag.warn{color:var(--warn);border-color:rgba(224,207,152,.5)}
.lst{font-size:9px;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid;white-space:nowrap}.lst-ok{color:#c6d4ec;border-color:rgba(180,200,232,.5)}.lst-no{color:#f2bcbc;border-color:rgba(232,150,150,.6)}.lst-unk{color:#bcc8d6;border:1px dotted rgba(190,200,215,.6)}

/* items, moves */
.itemlist{max-height:260px}.itemrow{display:flex;gap:8px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(238,242,235,.06);background:none;padding:6px 10px;font-size:12px}
.itemrow:hover{background:rgba(255,255,255,.07)}.itemrow.cur{background:rgba(238,242,235,.13)}.itemrow.dis{opacity:.4;cursor:not-allowed}.itemrow small{display:block;color:var(--soft);font-size:10px;margin-top:1px}.itemrow.clear{color:var(--warn)}
.fam{margin-top:12px}.famrow{display:flex;gap:12px;margin-top:6px}.famart{margin:0;text-align:center;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:rgba(255,255,255,.04);min-width:96px}.famart>div{min-height:64px;display:grid;place-items:center}.famart figcaption{font-size:9px;letter-spacing:.1em;color:var(--soft);margin-top:4px}.fam-none{font-size:9px;color:var(--faint)}
.mslots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.mslot{border:1px solid var(--line);border-radius:14px;padding:8px 10px;background:rgba(255,255,255,.04);cursor:pointer;min-width:0}.mslot.on{border-color:rgba(238,242,235,.75);background:rgba(255,255,255,.12)}
.mslot small{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.12em;color:var(--faint)}.mslot b{display:block;font-size:12px;font-weight:450;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mslot .x{padding:0 4px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters .inp{flex:1;min-width:160px}
.mlist{max-height:420px}.mrow{display:grid;grid-template-columns:minmax(110px,1.3fr) 56px 22px 38px 38px 32px minmax(0,2.4fr);gap:8px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(238,242,235,.06);background:none;padding:6px 10px;font-size:11px}
.mrow:hover{background:rgba(255,255,255,.07)}.mrow.picked{background:rgba(185,217,194,.16)}.mrow.mhead{position:sticky;top:0;z-index:1;font-size:8px;letter-spacing:.12em;color:var(--faint);background:rgba(14,22,22,.96);cursor:default}.mrow .desc{color:var(--soft);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat{display:inline-block;width:18px;height:18px;border-radius:5px;text-align:center;line-height:18px;font-size:9px;font-weight:700;color:#10171a}.cat-Physical{background:#e9a07a}.cat-Special{background:#8fb0ee}.cat-Status{background:#c4c8c2}

/* stat points */
.sp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.sp-head h3{font-size:20px;margin-top:4px}.sp-rem{text-align:right;font-size:11px;color:var(--soft)}.sp-rem b{font-size:26px;font-weight:300;color:var(--ink)}.sp-rem.full b{color:var(--good)}
.sp-row{display:grid;grid-template-columns:96px 44px 58px minmax(100px,1fr) 56px;gap:10px;align-items:center;min-height:44px;border-bottom:1px solid rgba(238,242,235,.07);font-size:12px}.sp-row.hdr{min-height:0;padding-bottom:7px;font-size:8px;letter-spacing:.12em;color:var(--faint);border-bottom:1px solid var(--line)}
.sn b{font-weight:500}.nat{font-style:normal;margin-left:4px;font-size:10px}.nat.up{color:#f0b9a0}.nat.dn{color:#a9c4ea}
.spin{width:56px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.07);padding:6px 4px;text-align:center;outline:0}.spr{width:100%;accent-color:#d7ddd4}.sfin{text-align:right;font-variant-numeric:tabular-nums;font-size:15px}
.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}

/* chat */
.chatbox{border:1px solid var(--line);border-radius:22px;background:var(--glass);backdrop-filter:blur(20px);overflow:hidden;display:flex;flex-direction:column}
.chat-note{padding:9px 16px;font-size:11px;color:var(--soft);border-bottom:1px solid var(--line)}.quick{display:flex;gap:8px;flex-wrap:wrap;padding:10px 14px}
.messages{max-height:380px;min-height:150px;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:16px}
.msg{max-width:680px}.msg.you{align-self:flex-end;text-align:right}.who{font-size:9px;letter-spacing:.16em;color:var(--faint);margin-bottom:6px}.bubble{font-size:13px;line-height:1.6;font-weight:300;background:rgba(12,19,20,.45);border:1px solid var(--line);border-radius:18px;padding:12px 15px;white-space:pre-wrap;text-align:left}.you .bubble{background:rgba(217,223,211,.11)}
.composer{display:flex;gap:8px;padding:10px 14px 14px;border-top:1px solid var(--line)}.composer textarea{flex:1;height:44px}

/* review */
.rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ritem{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--glass);min-width:0}.ritem.wide{grid-column:1/-1}.ritem h3{font-size:10px;letter-spacing:.12em;font-weight:500;margin:0 0 10px;color:var(--soft)}.ritem p{font-size:12px;line-height:1.55;color:var(--soft);margin:0 0 6px}
.scroll{overflow-x:auto}.tt{border-collapse:collapse;font-size:11px;width:100%}.tt th,.tt td{padding:5px 6px;text-align:center;border-bottom:1px solid rgba(238,242,235,.07)}.tt th{font-weight:400;color:var(--soft);font-size:10px}.tt td:first-child,.tt th:first-child{text-align:left}.th-art{margin:0 auto}
.tt td.w{color:#f0b9a0}.tt td.r{color:#a9c4ea}.tt td.i{color:#b8c4d2}.tt td.w2{color:#f0b9a0}.tt td.w3{color:#ff8f8f}.tt td:nth-last-child(2){font-weight:600}.tt td.w2,.tt td.w3{font-weight:700}
.cov{display:flex;flex-wrap:wrap;gap:6px}.cv{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:2px 6px}.cv.none{opacity:.4}.cv b{font-size:11px;font-weight:500}
.spd{display:flex;align-items:center;gap:10px;padding:3px 0;font-size:12px}.spd b{width:46px;font-variant-numeric:tabular-nums}

/* inspector (desktop: right panel; mobile: bottom sheet) */
.inspector{position:fixed;right:0;top:var(--hdr);bottom:0;width:min(360px,92vw);z-index:60;overflow:auto;padding:16px 18px;background:rgba(9,15,16,.92);backdrop-filter:blur(26px);border-left:1px solid var(--line);box-shadow:-20px 0 50px rgba(0,0,0,.35)}
.insp-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.15em;color:var(--soft);margin-bottom:12px}.insp-id{display:flex;gap:12px;align-items:center;margin-bottom:6px}.insp-id h2{font-size:24px;margin-bottom:4px}
.ib{padding:11px 0;border-top:1px solid var(--line);font-size:11px;line-height:1.6;color:var(--soft)}.ib b{display:block;color:var(--ink);font-weight:400;margin:6px 0 2px}.ib b:first-child{margin-top:0}.ib small{display:block;color:var(--faint)}.ib.prop{border:1.5px dashed rgba(224,207,152,.7);border-radius:14px;padding:10px 12px;margin:10px 0}.im{margin:3px 0}

/* battledex */
.bd{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:18px;align-items:start}
.bd-list{position:sticky;top:calc(var(--hdr) + 12px);border:1px solid var(--line);border-radius:22px;background:var(--glass);backdrop-filter:blur(20px);padding:14px}.bd-list .idlist{max-height:calc(100dvh - 330px);min-height:240px}.bd-team{margin:0 0 10px;text-align:center}.bd-team-h{font-size:9px;letter-spacing:.14em;font-weight:600;color:var(--soft);margin:0}.bd-team-sub{font-size:10px;color:var(--faint);margin:2px 0 0}.bd-team-name{font-size:13px;font-weight:450;margin:3px 0 7px;overflow-wrap:anywhere;white-space:normal;line-height:1.25}
.bd-team-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.bd-slot{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:2px;margin:0;border:0;border-radius:10px;background:rgba(255,255,255,.06);color:var(--ink);overflow:visible}
button.bd-slot:hover{background:rgba(255,255,255,.12)}.bd-slot.sel,button.bd-slot.sel:hover{background:rgba(207,232,214,.28)}.bd-slot.proposed{background:rgba(224,207,152,.12)}
.bd-slot.empty{opacity:.5;background:rgba(255,255,255,.03)}.bd-slot.empty .plus{font-size:14px;color:var(--faint)}.bd-slot .art,.bd-slot .art-missing{width:100%;height:100%;max-width:34px;max-height:34px}
.bd-slot .bs-item{position:absolute;left:-3px;bottom:-3px;width:15px;height:15px;display:grid;place-items:center}.bd-slot .bs-item .iico{max-width:13px;max-height:13px;width:auto;height:auto}.bd-slot .bs-item i{width:6px;height:6px;border-radius:50%;background:var(--soft);display:block}
.bd-slot .bs-shiny{position:absolute;right:-1px;top:-5px;font-size:11px;line-height:1;color:#f3d36a;pointer-events:none}.bd-slot-wait{width:60%;height:60%;border-radius:50%;background:rgba(255,255,255,.08)}
.idrow.compact{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:3px 8px;min-height:46px}.idrow.compact .idrow-art .art{width:36px;height:36px}
.idrow.compact .idrow-main{gap:1px}.idrow.compact .idrow-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.idrow-sub{display:flex;align-items:center;gap:6px;min-width:0}.idrow-sub small{font-size:9px;color:var(--faint);flex:none}.idrow.compact .idrow-types{flex-wrap:nowrap}
.lst-mark{flex:none;width:16px;text-align:center;font-size:11px;line-height:1}.lst-mark.lst-ok{color:#c6d4ec}.lst-mark.lst-no{color:#f2bcbc}.lst-mark.lst-unk{color:#bcc8d6}
.bd-main{min-width:0}.bd-empty{border:1px dashed var(--line2);border-radius:22px;padding:48px 24px;text-align:center;color:var(--soft)}.bd-empty h2{font-size:24px;margin-bottom:8px;color:var(--ink)}
.bd-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:8px;align-items:center;min-height:400px;margin-bottom:14px;border:1px solid var(--line);border-radius:24px;background:var(--glass);backdrop-filter:blur(20px);padding:20px 32px 46px}.bd-head .back{display:none;grid-column:1/-1;justify-self:start}
.bd-art{display:flex;align-items:center;justify-content:center;min-width:0}
/* Battledex form controls: the Mega logo and the shiny symbol are the controls themselves - no label, frame, fill or container. The row has a fixed height so toggling never moves anything. */
.bd-ctl{display:flex;align-items:center;justify-content:center;gap:10px;height:36px;position:relative;z-index:3}
.bd-mega,.bd-shiny{flex:none;display:grid;place-items:center;width:36px;height:36px;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;-webkit-tap-highlight-color:transparent}
.bd-mega-wrap{position:relative;display:inline-flex}
.bd-mega{position:relative}
.bd-mega img{display:block;position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;filter:grayscale(1) opacity(.65);transition:filter .18s}
.bd-mega.on img{width:49px;height:49px;margin:-24.5px 0 0 -24.5px}
.bd-mega:hover img{filter:grayscale(1) opacity(.95)}.bd-mega.on img,.bd-mega.on:hover img{filter:none}
.bd-shiny{font-size:24px;line-height:1;color:var(--faint);opacity:.55;transition:color .18s,opacity .18s}
.bd-shiny:hover:not([disabled]){opacity:.9}.bd-shiny.on,.bd-shiny.on:hover{color:#f3d36a;opacity:1}.bd-shiny[disabled]{opacity:.22;cursor:not-allowed}
.bd-mega:focus-visible,.bd-shiny:focus-visible,.filter-btn:focus-visible{outline:2px solid #cfe8d6;outline-offset:2px;border-radius:8px}.bd-mega:focus:not(:focus-visible),.bd-shiny:focus:not(:focus-visible){outline:0}
.mega-menu{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;min-width:150px;border:1px solid var(--line2);border-radius:14px;background:rgba(18,26,24,.96);backdrop-filter:blur(16px);padding:4px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.mega-menu button{border:0;background:none;text-align:left;padding:8px 12px;border-radius:10px;font-size:12px;white-space:nowrap}.mega-menu button:hover,.mega-menu button:focus-visible{background:rgba(255,255,255,.1)}
/* compact Battledex filter */
.filter-btn{position:relative;flex:none;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.05);color:var(--soft)}
.filter-btn:hover,.filter-btn.open{background:rgba(255,255,255,.12);color:var(--ink)}.filter-btn.active::after{content:'';position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:#f3d36a}
.filter-panel{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.04);padding:8px 10px;margin:8px 0}.filter-panel .type-chips{margin:8px 0 0}
.bd-list .search-bar{flex-wrap:nowrap;gap:8px}.bd-list .search-bar .inp{min-width:0}
.bd-id{min-width:0;display:flex;flex-direction:column;align-self:start;margin-top:32px;min-height:262px}.bd-id .actions{margin-top:auto}.bd-numrow{display:flex;align-items:center;gap:10px;height:32px}.bd-sub{font-size:12px;color:var(--soft);margin:0;letter-spacing:.02em}
.bd-id h1{font-size:34px;line-height:1.1;margin:-2px 0 4px;font-weight:300}.bd-types{margin-bottom:10px}.bd-head .art.ctx-profile{width:min(282px,64vw)}
/* hero abilities (the one ability presentation) */
.bd-abil{margin:0 0 10px}.bd-abil-h{font-size:9px;letter-spacing:.14em;font-weight:600;color:var(--soft);margin:0 0 6px}
.bd-ab{margin:0 0 5px}.bd-ab b{font-size:12px;font-weight:600}.bd-ab p{margin:2px 0 0;font-size:10px;line-height:1.45;color:var(--soft)}.bd-abil-unk{font-size:12px;color:var(--soft)}
.bd-id .actions{display:flex;gap:8px;flex-wrap:wrap}
/* moves card: compact, scrollable */
.bd-moves{grid-row:span 2}.bd-moves h3{display:flex;align-items:center;gap:8px}.mv-count{color:var(--faint);font-weight:400}
.mv-head,.mv-row{display:grid;grid-template-columns:minmax(0,1fr) 58px 44px 34px 34px 28px;gap:6px;align-items:center}
.mv-head{font-size:9px;letter-spacing:.08em;color:var(--faint);text-transform:uppercase;padding:0 4px 4px;border-bottom:1px solid var(--line)}
.mv-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}
.mv-row{font-size:11px;padding:4px;border-bottom:1px solid rgba(238,242,235,.06)}.mv-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:450}.mv-t img{height:14px;width:auto}.mv-c,.mv-p,.mv-a,.mv-pp{color:var(--soft)}
.bd-unk-line{font-size:12px;color:var(--soft);margin:6px 0 0}
.evidence .ev-row{padding:6px 0;border-top:1px solid rgba(238,242,235,.07)}.evidence .ev-row:first-of-type{border-top:0}.evidence small{color:var(--faint)}
.bd-tabs{overflow-x:auto;flex-wrap:nowrap}.bd-tabs button{white-space:nowrap}
.bd-body{min-height:200px}.prof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bd-unk{border:1px dotted rgba(190,200,215,.5);border-radius:18px;padding:18px;background:rgba(160,175,190,.07)}.bd-unk.sys{border:1px solid #ff8a6b;background:repeating-linear-gradient(135deg,rgba(255,120,90,.12) 0 8px,rgba(255,120,90,.04) 8px 16px)}.bd-unk p{margin:10px 0 4px;font-size:13px;color:var(--soft)}.bd-unk small{color:var(--faint);font-size:11px}
.explain{font-size:11px;color:var(--soft);margin:0 0 10px}.intel{border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:10px;background:var(--glass)}.intel p{font-size:13px;line-height:1.6;color:var(--ink);margin:6px 0 4px}.intel-k{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.intel-k small{color:var(--faint);font-size:10px}
.kind{font-size:9px;letter-spacing:.1em;font-weight:600;padding:2px 9px;border-radius:6px;border:1px solid}.k-fact{color:#acdfd0;border-color:rgba(120,190,170,.65)}.k-derived{color:#c6d4ec;border-color:rgba(180,200,232,.55)}.k-observed{color:#d9d3b8;border-color:rgba(217,211,184,.5)}.k-hyp{color:#ecdca6;border:1px dashed rgba(224,207,152,.85)}.k-prop{color:#ecdca6;border:1.5px dashed rgba(224,207,152,.95);background:rgba(61,52,33,.3)}.k-unk{color:#bcc8d6;border:1px dotted rgba(190,200,215,.6)}
.prov{margin-top:6px;font-size:10px;color:var(--faint)}.prov summary{cursor:pointer;color:var(--soft)}.prov div{margin:5px 0}.roles{list-style:none;margin:0;padding:0;font-size:12px;color:var(--soft)}.roles li{padding:2px 0}

/* coach, others */
.coach-team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}.ct{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);border-radius:14px;padding:8px 4px;font-size:10px;background:var(--glass);text-align:center;position:relative}.ct.proposed{border:1.5px dashed rgba(224,207,152,.8)}.ct.empty{opacity:.5;border-style:dashed}.ct b{font-weight:450;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ct .pc-st{position:absolute;top:4px;right:4px;width:16px;height:16px;font-size:9px}
.o-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.o-card{display:block;border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--glass);text-decoration:none}.o-card:hover{background:var(--glass2)}.o-card b{font-size:16px;font-weight:450}.o-card p{font-size:12px;color:var(--soft);margin:8px 0 0;line-height:1.5}
.gl-h{font-size:14px;letter-spacing:.1em;margin-bottom:10px;color:var(--soft)}.glossary{display:grid;gap:8px}.gl{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--soft)}

/* modal */
.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px}.mbox{width:min(720px,100%);max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:22px;background:rgba(14,22,22,.97);padding:18px;display:flex;flex-direction:column;gap:8px}.mbox textarea{font-family:ui-monospace,Consolas,monospace;font-size:12px;width:100%}

/* ---------- responsive */
@media (max-width: 1100px) and (min-width: 821px){.bench-cols{grid-template-columns:minmax(240px,1fr) minmax(260px,1fr)}.col-right{grid-column:1/-1}.tile.sel.summary{grid-template-columns:68px minmax(0,1fr) minmax(0,1.2fr)}.s-moves{display:none}.bd{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}}
@media (max-width: 820px){
  :root{--hdr:auto}
  .top{flex-wrap:wrap;gap:6px 10px;padding:8px 12px}.nav{order:3;width:100%}.regsel select{max-width:150px}.status{margin-left:auto}
  .tool-row{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:60px calc(50% - 92px) 70px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tool-row::-webkit-scrollbar{display:none}
  .tool{flex:0 0 190px;height:290px;scroll-snap-align:center}.tool.focus{transform:scale(1.12)}
  .team-strip{flex-wrap:wrap;gap:6px}.tile{flex:0 0 calc(33.333% - 4px);height:76px;padding:5px 4px;gap:2px}.tile.sel{flex:0 0 calc(66.666% - 3px)}.tile:not(.sel) .t-txt small{display:none}
  .tile.sel.summary{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;padding:5px 16px 5px 10px}.s-moves,.s-stats,.s-ab,.s-id small{display:none}.tile.sel.summary .t-art,.tile.sel.summary .t-art .art,.tile.sel.summary .t-art .art-missing{width:52px;height:52px}
  .bench{padding:10px 12px 14px}.bench-cols{grid-template-columns:1fr;gap:16px;min-height:0}.col-right{grid-column:auto}.b-art{height:150px}.b-art .art,.b-art .art-missing{width:140px;height:140px}.b-name{font-size:26px}.b-itemrow{flex-wrap:wrap}
  .two,.rgrid,.prof-grid,.o-grid{grid-template-columns:1fr}
  .inspector{top:auto;height:78dvh;width:100%;border-left:0;border-top:1px solid var(--line);border-radius:22px 22px 0 0}
  .sp-row{grid-template-columns:80px 36px 52px minmax(70px,1fr) 46px;gap:6px}.mslots{grid-template-columns:1fr 1fr}
  .bd{grid-template-columns:minmax(0,1fr)}.bd[data-has-sel="true"] .bd-list{display:none}.bd[data-has-sel="false"] .bd-main{display:none}.bd-list{position:static}.bd-list .idlist{max-height:60dvh}.bd-head{grid-template-columns:1fr;justify-items:center;text-align:center}.bd-head .back{display:inline-flex}.bd-head .actions{justify-content:center}.bd-head{min-height:0;padding:20px;gap:12px}.bd-numrow{justify-content:center}.bd-id h1{font-size:32px}.bd-moves{grid-row:auto}.bd-id{margin-top:0;min-height:0;align-self:center;align-items:center}.bd-id .actions{margin-top:8px}
  .coach-team{grid-template-columns:repeat(3,minmax(0,1fr))}
  .idrow{grid-template-columns:44px minmax(0,1fr)}.idrow-types,.idrow-lst{grid-column:2/3;text-align:left}.idrow.compact{grid-template-columns:40px minmax(0,1fr) auto}
}
@media (max-width: 600px){
  .tb,.coach,.others,.bd{padding:14px 12px 56px}.tb-head h1{font-size:24px}.seg{width:100%}.seg button{flex:1;padding:8px 6px;font-size:11px}
  .mrow{grid-template-columns:minmax(90px,1.4fr) 50px 20px 34px 34px 0 0}.mrow .pp,.mrow .desc{display:none}
  .t-art,.t-art .art,.t-art .art-missing{width:36px;height:36px}.tile.sel.summary .t-art,.tile.sel.summary .t-art .art,.tile.sel.summary .t-art .art-missing{width:44px;height:44px}.s-id .t-name{font-size:14px}.t-st{top:3px;right:3px;width:14px;height:14px;font-size:8px}.t-item{height:22px}
  .sp-cols,.sp-table .sp-row{grid-template-columns:40px minmax(70px,1fr) 48px 42px;gap:6px}.bs-row{grid-template-columns:80px 34px minmax(0,1fr);gap:8px}
  .col-right{--spcols:40px minmax(70px,1fr) 48px 42px;--spgap:6px}
  .sp-row{grid-template-columns:70px 30px 50px minmax(60px,1fr) 42px}.famrow{flex-wrap:wrap}
  .mast h1{font-size:43px}
}
@media (prefers-reduced-motion: reduce){.tool{transition:none}.shim,.shimmer,.art-missing.loading{animation:none}}

/* U4/345 internal-trial fallback: preserve identity even when copyrighted art is intentionally not deployed. */
.art-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.35rem;padding:.45rem;overflow:hidden}
.art-missing .art-fallback-name{font-size:.78rem;line-height:1.05;max-width:100%;overflow-wrap:anywhere}
.art-missing b{font-size:.58rem;line-height:1.05;opacity:.7;font-weight:600}

/* Mega Evolution switch (Team Builder > Details). OFF / ON are distinct by label and knob position, not by colour alone. */
.mega-sw{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line2);background:rgba(255,255,255,.06);border-radius:999px;padding:5px 14px 5px 5px;font-size:12px;letter-spacing:.04em;cursor:pointer;min-height:34px;color:var(--ink)}
.mega-sw .knob{width:24px;height:24px;border-radius:50%;background:var(--faint);transition:transform .18s,background .18s;display:block}
.mega-sw.on{background:rgba(185,217,194,.18);border-color:var(--good)}
.mega-sw.on .knob{transform:translateX(0);background:var(--good);box-shadow:0 0 0 3px rgba(185,217,194,.2)}
.mega-sw:not(.on) .knob{transform:translateX(0)}
.mega-sw[disabled]{opacity:.5;cursor:not-allowed}
.mega-sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mega-ctl.can .mega-sw:not(.on){border-style:dashed}
/* Stat sliders: a comfortable grab area and no browser gesture stealing the horizontal drag on touch screens. */
.spr{touch-action:pan-y;height:28px;cursor:pointer;margin:0}
.spr::-webkit-slider-thumb{cursor:grab}.spr:active::-webkit-slider-thumb{cursor:grabbing}
.spr::-moz-range-thumb{cursor:grab}
/* Import / Export: one readable text area */
.io-box textarea{display:block;width:100%;min-height:240px;max-height:55dvh;resize:vertical;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;overflow:auto}
.io-box .label{display:block;margin:10px 0 6px}.io-msg{min-height:0;font-size:12px;color:var(--soft)}.io-msg p{margin:6px 0 0}.io-msg.err{color:#ffb4a2}.io-box .actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}

/* Controlled Nursery trial pages (#/trial, #/owner) */
.trial{max-width:640px;margin:48px auto;padding:20px 22px;border:1px solid var(--line);border-radius:22px;background:var(--glass)}.trial h2{margin:0 0 12px;font-weight:450;letter-spacing:.01em}.trial h3{margin:0 0 6px;font-size:14px;font-weight:550}
.trial-grid{display:grid;gap:6px;margin:10px 0 14px}.trial-row{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.05);font-size:13px}.trial-k{color:var(--soft)}.trial-v{font-weight:550;letter-spacing:.04em;text-align:right}.trial-row.good .trial-v{color:#cfe8d6}.trial-row.wait .trial-v{color:#f3d36a}
.trial-live{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin:6px 0 12px;border-radius:14px;border:1px solid #cfe8d6;background:rgba(207,232,214,.12);font-size:15px;letter-spacing:.06em}.trial-live span{color:#cfe8d6;font-weight:650}
.trial-notice{padding:14px 16px;border-radius:14px;background:rgba(243,211,106,.08);border:1px solid rgba(243,211,106,.35)}.trial-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.trial-note{margin:8px 0;padding:8px 12px;border-radius:12px;font-size:13px;background:rgba(255,255,255,.06)}.trial-note.fail{border:1px solid rgba(255,140,120,.5)}
.trial input[type=password]{display:block;width:100%;margin-top:6px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ink)}
