:root{
  --desk:#ECEEF4; --sheet:#FFFFFF; --pocket:#F3F5F9; --line:#CBD1DC; --line-2:#DDE2EA;
  --ink:#121A2B; --ink-2:#55607A; --ink-3:#8791A6;
  --red:#D63A2F; --red-d:#B22B22; --gold:#C99A1E; --gold-bg:#FBF3DC; --ok:#2E7D5B;
  --rail:#0F1830; --rail-2:#1B2A4E;
  --acc:#F0B010; --acc-d:#D99A00; --acc-ink:#121A2B; --purple:#6D3FD9; --purple-d:#4B24A8; --purple-bg:#EFE8FF; --purple-ln:#CDBBFA;
  --tile:150px;
  --display:'Archivo','Arial Narrow',system-ui,sans-serif;
  --body:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--desk);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
img{display:block}
:focus-visible{outline:3px solid #2F6FEB;outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.rail{background:linear-gradient(180deg,#16244A 0%,#0F1830 38%,#0A1124 100%);box-shadow:inset -1px 0 0 rgba(240,176,16,.22);color:#E8ECF5;padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;margin:-22px -16px 16px;padding:18px 16px 15px;background:#fff;border-bottom:3px solid var(--acc);box-shadow:0 6px 18px -10px rgba(0,0,0,.55)}
.bmark{flex:none;width:54px;display:grid;place-items:center}
.bmark img{width:54px;height:auto}
.btext{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.btext b{font:800 18px/1 var(--display);font-stretch:82%;letter-spacing:.01em;color:#0F1830;white-space:nowrap}
.btext i{font-style:normal;font:800 11px/1 var(--body);letter-spacing:.34em;color:#D99A00;margin-top:5px}
.rail a.nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#C6D0E8;font-weight:600;border-left:4px solid transparent}
.rail a.nav:hover{background:var(--rail-2)}
.rail a.nav.on{background:var(--rail-2);color:#fff;border-left-color:var(--acc)}
.rail a.nav.on svg{color:var(--acc)}
.rail svg{width:18px;height:18px;flex:none}
.rail .foot{margin-top:auto;padding:12px 10px;font-size:12.5px;color:#9FB0D6;line-height:1.45}
.rail .foot strong{color:#E8ECF5;font-weight:600}

main{padding:28px clamp(16px,3vw,44px) 80px;min-width:0}
.top{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
h1{margin:0;font:800 clamp(34px,4vw,48px)/1 var(--display);font-stretch:80%;letter-spacing:.005em}
h2{margin:0;font:800 24px/1.1 var(--display);font-stretch:85%}
h3{margin:0;font:700 16px/1.3 var(--body)}
.lead{color:var(--ink-2);margin:6px 0 0;max-width:62ch}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

.field{height:40px;border:1px solid var(--line);background:var(--sheet);border-radius:10px;padding:0 12px;min-width:0}
input.field{min-width:200px}
textarea.field{height:auto;padding:10px 12px;width:100%;resize:vertical}
.seg{display:inline-flex;background:var(--sheet);border:1px solid var(--line);border-radius:10px;padding:3px}
.seg button{border:0;background:transparent;padding:7px 14px;border-radius:7px;font-weight:600;color:var(--ink-2);cursor:pointer}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--sheet);font-weight:600;cursor:pointer}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--acc);border-color:var(--acc-d);color:var(--acc-ink);font-weight:700}
.btn.primary:hover{background:var(--acc-d)}
.btn.small{height:32px;padding:0 12px;font-size:13.5px}
.btn.danger{color:var(--red-d)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.summary{display:flex;flex-wrap:wrap;gap:10px 28px;padding:14px 18px;background:var(--sheet);border:1px solid var(--line);border-radius:14px;margin-bottom:18px}
.summary div{display:flex;flex-direction:column}
.summary b{font:800 28px/1.05 var(--display);font-stretch:75%;font-variant-numeric:tabular-nums}
.summary span{font-size:13px;color:var(--ink-2)}

.tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 14px;margin-bottom:6px;scrollbar-width:thin}
.tabs button{flex:none;border:1px solid var(--line);background:var(--sheet);padding:7px 14px;border-radius:999px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tabs button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}

.series{margin:10px 0 34px}
.series-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.series-head small{color:var(--ink-2);font-size:13.5px}
.sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.set{display:flex;flex-direction:column;gap:10px;background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:14px;transition:border-color .15s,transform .15s}
.set:hover{border-color:var(--ink);transform:translateY(-2px)}
.set .logo{height:84px;display:flex;align-items:center;justify-content:center;background:var(--pocket);border-radius:10px;padding:8px}
.set .logo img{max-height:68px;max-width:100%;object-fit:contain}
.set .noimg{font:800 18px/1.1 var(--display);font-stretch:80%;text-align:center;color:var(--ink-2)}
.set .meta{display:flex;align-items:center;gap:8px;min-height:36px}
.set .sym{width:22px;height:22px;object-fit:contain;flex:none}
.set .sname{font-weight:700;line-height:1.2;display:block}
.set .sdate{font-size:12.5px;color:var(--ink-3);display:block}
.count{display:flex;align-items:baseline;gap:6px}
.count strong{font:800 30px/1 var(--display);font-stretch:75%;font-variant-numeric:tabular-nums}
.count span{color:var(--ink-2);font-size:13.5px}
.bar{height:7px;background:var(--line-2);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--acc);border-radius:99px;transition:width .4s}
.bar.done i{background:var(--ok)}
.set .sub{font-size:12.5px;color:var(--ink-2)}
.set.done{border-color:var(--gold);background:linear-gradient(0deg,var(--gold-bg),var(--sheet) 55%)}
.badge{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--line-2);color:var(--ink-2)}
.badge.gold{background:var(--gold-bg);color:#7A5B08}

.back{display:inline-flex;gap:6px;align-items:center;color:var(--ink-2);font-weight:600;margin-bottom:14px}
.back svg{width:16px;height:16px;flex:none}
.back:hover{color:var(--ink)}
.hero{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;background:var(--sheet);border:1px solid var(--line);border-radius:18px;padding:18px 22px;margin-bottom:16px}
.hero .hlogo{width:200px;height:96px;display:flex;align-items:center;justify-content:center}
.hero .hlogo img{max-width:100%;max-height:96px;object-fit:contain}
.hero .htext{flex:1 1 220px;min-width:0}
.hero .hstats{display:flex;gap:26px;flex-wrap:wrap}
.hstat{min-width:150px}
.hstat .count strong{font-size:38px}
.hstat .lbl{font-weight:700;font-size:13.5px;margin-bottom:2px}
.hstat.active .lbl{color:var(--purple-d)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:14px}
.toolbar .grow{flex:1}
.size{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13.5px}
.size input[type=range]{width:110px}
.note{padding:10px 14px;border-radius:10px;background:#EAF0FD;border:1px solid #BCD0F7;color:#1D3F85;margin-bottom:14px;font-size:14px}
.note.warn{background:#FFF4E0;border-color:#F0C98A;color:#7A4A06}
.note.err{background:#FDECEA;border-color:#F2B4AE;color:#8A1F17}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--tile),1fr));gap:12px}
.divider{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:14px 0 2px;font-weight:700;color:var(--ink-2)}
.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.slot{position:relative;cursor:pointer;display:flex;flex-direction:column;gap:6px}
.pocket{position:relative;aspect-ratio:245/337;background:var(--pocket);border:1px solid var(--line-2);border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.pocket img{width:100%;height:100%;object-fit:contain;transition:filter .2s,opacity .2s}
.slot.off .pocket img{filter:grayscale(1) contrast(.9);opacity:.38}
.slot.on .pocket{border-color:var(--ink-3);background:#fff}
.slot:hover .pocket{border-color:var(--ink)}
.slot .ph{padding:8px;text-align:center;font-size:12.5px;color:var(--ink-3);font-weight:600}
.slot .num{display:flex;justify-content:space-between;gap:4px;font-size:12px;color:var(--ink-2);line-height:1.2;padding:0 2px}
.slot .num b{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot.off .num b{color:var(--ink-3)}
.chip{position:absolute;left:6px;top:6px;font-size:11px;font-weight:800;background:var(--ink);color:#fff;border-radius:6px;padding:1px 6px}
.chip.R{background:#2F6FEB}.chip.H{background:#7A3FD1}
.qty{position:absolute;right:6px;bottom:6px;background:var(--rail);color:#fff;border:2px solid #fff;border-radius:99px;font-size:12px;font-weight:700;padding:1px 8px}
.tg{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:99px;border:1.5px solid var(--ink-3);background:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .12s}
.slot:hover .tg,.tg:focus-visible,.slot.on .tg{opacity:1}
.slot.on .tg{background:var(--ok);border-color:var(--ok);color:#fff}
.tg svg{width:14px;height:14px}
.more{grid-column:1/-1;text-align:center;padding:14px}

.facts{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.fin{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px;background:var(--pocket)}
.fin.has{background:#fff;border-color:var(--ink-3)}
.fin-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.step{display:inline-flex;align-items:center;gap:2px;background:var(--sheet);border:1px solid var(--line);border-radius:10px}
.step button{width:34px;height:34px;border:0;background:transparent;font-size:20px;font-weight:700;cursor:pointer;border-radius:8px}
.step button:hover{background:var(--line-2)}
.step output{min-width:28px;text-align:center;font-weight:800}
.fin-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.fin-opts .field{height:36px;width:100%}
.lbl2{font-size:12.5px;color:var(--ink-2);display:block;margin-bottom:3px}
.chk{display:flex;gap:10px;align-items:center;padding:6px 0}
.chk input{width:18px;height:18px;accent-color:var(--purple)}
.scrim{position:fixed;inset:0;background:rgba(18,26,43,.35);z-index:48;display:none}
.scrim.on{display:block}

.binders{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.binder{display:flex;flex-direction:column;gap:10px;background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:16px;border-left:8px solid var(--acc)}
.binder:hover{border-color:var(--ink);border-left-color:var(--acc)}
.binder p{margin:0;color:var(--ink-2);font-size:13.5px}
.empty{background:var(--sheet);border:1px dashed var(--ink-3);border-radius:16px;padding:30px;text-align:center;color:var(--ink-2)}
.empty h3{color:var(--ink);margin-bottom:6px}

.modal{position:fixed;inset:0;z-index:40;background:rgba(18,26,43,.5);display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:4vh 14px}
.modal.on{display:flex}
.dialog{background:var(--sheet);border-radius:18px;width:min(760px,100%);padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.dialog h2{margin-bottom:14px}
.rule{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(130px,1fr) minmax(140px,1.4fr) auto;gap:8px;margin-bottom:8px;align-items:center}
.rule .field{width:100%}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.actions{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:18px;align-items:center}
.preview{font-weight:700}
.panel-sec{background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:16px}
.panel-sec p{color:var(--ink-2);margin:6px 0 12px;max-width:70ch}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.mark{display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:#fff;border-radius:10px;padding:4px 6px 4px 12px;font:800 18px/1 var(--display)}
.mark button{border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:7px;width:24px;height:24px;cursor:pointer}
.prog{height:10px;background:var(--line-2);border-radius:99px;overflow:hidden;margin:10px 0 6px}
.prog i{display:block;height:100%;width:0;background:var(--acc);transition:width .3s}

.skel{background:linear-gradient(90deg,var(--line-2),#EEF1F6,var(--line-2));background-size:200% 100%;animation:sh 1.4s linear infinite;border-radius:14px;height:210px}
@keyframes sh{to{background-position:-200% 0}}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;z-index:60;display:none;gap:14px;align-items:center;max-width:92vw}
.toast.on{display:flex}
.toast button{background:transparent;border:0;color:#9DC1FF;font-weight:700;cursor:pointer}

@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .rule{grid-template-columns:1fr 1fr}
  .panel{width:96vw;max-height:94vh;border-radius:16px}
  .pgrid{grid-template-columns:1fr!important;gap:14px!important}
  .pcol{position:static!important}
  .tilt{width:min(250px,62vw)!important}
  .panel .inner{padding:16px 14px 22px!important}
  .hero .hlogo{width:150px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Minhas expansões */
.series-head .grow{flex:1}
.sets.pick{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.pk{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:left;background:var(--sheet);border:2px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;font:inherit;color:inherit;min-height:44px}
.pk:hover{border-color:var(--ink-3)}
.pk.on{border-color:var(--ink);background:linear-gradient(0deg,var(--line-2),var(--sheet) 70%)}
.pk .logo{height:64px;display:flex;align-items:center;justify-content:center;background:var(--pocket);border-radius:8px;padding:6px}
.pk .logo img{max-height:50px;max-width:100%;object-fit:contain}
.pk .noimg{font:800 15px/1.1 var(--display);font-stretch:80%;text-align:center;color:var(--ink-2)}
.pk .sname{font-weight:700;line-height:1.2}
.pk .sdate{font-size:12.5px;color:var(--ink-3)}
.pk .tick{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;border:2px solid var(--ink-3);background:var(--sheet);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;z-index:1}
.pk.on .tick{background:var(--ink);border-color:var(--ink)}
.pickbar{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:var(--sheet);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-top:12px;box-shadow:0 -6px 20px rgba(18,26,43,.08);z-index:5}
.pickinfo small{color:var(--ink-3)}
.symlogo{max-height:36px!important;opacity:.85}
@media (max-width:860px){.sets.pick{grid-template-columns:repeat(2,1fr)}.pickbar{bottom:64px}}

/* Geração, Pokédex */
.genchips{display:flex;flex-wrap:wrap;gap:6px}
.gc{border:1px solid var(--line);background:var(--sheet);padding:8px 12px;min-height:40px;border-radius:999px;font-weight:700;color:var(--ink-2);cursor:pointer}
.gc[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.opfix{font-size:13.5px;color:var(--ink-2);padding:0 6px}
.rule .genchips{grid-column:1/-1}
.slot.dexempty{cursor:default}
.slot.dexempty .pocket{background:var(--line-2);border-style:dashed}
.slot.dexempty .ph{color:var(--ink-3);font-size:15px}
.dexno{position:absolute;left:6px;top:6px;background:rgba(18,26,43,.78);color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:99px}
.dexcand{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.cand{padding:0;border:2px solid transparent;border-radius:6px;background:none;cursor:pointer;aspect-ratio:5/7;overflow:hidden}
.cand img{width:100%;height:100%;object-fit:cover;display:block}
.cand.sel{border-color:var(--purple)}

/* Visual de fichário */
.bookctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fullctl:empty{display:none}
.field.mini{width:64px;padding:6px 8px}
.bookwrap{outline:none}
.booknav{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 12px;flex-wrap:wrap}
.booknav .btn{min-height:40px}
.booklbl{font-weight:700;color:var(--ink-2);min-width:130px;text-align:center}
.bookrange{width:min(260px,40vw)}
.spread{display:flex;justify-content:center;gap:0;touch-action:pan-y}
.bpage{flex:1 1 0;max-width:calc(var(--cols)*230px);display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px;align-content:start;background:var(--sheet);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 1px 0 var(--line-2),0 8px 24px -16px rgba(18,26,43,.35)}
.spread.two .bpage:first-child{border-radius:14px 0 0 14px;border-right:1px dashed var(--ink-3)}
.spread.two .bpage:last-child{border-radius:0 14px 14px 0;border-left:0}
.bpage.ghost{visibility:hidden}
.bempty{aspect-ratio:245/337;border:1.5px dashed var(--line);border-radius:9px}
.bpage .slot{gap:3px;min-width:0}
.bpage .slot .num{font-size:11px}
.bpage .slot .num span.no{font-size:10px}
.bpage .tg{width:24px;height:24px;right:4px;top:4px}
.bpage .qty{font-size:11px;right:4px;bottom:4px}
@media (max-width:899px){.wide-only{display:none!important}.booklbl{min-width:0}}

/* Popup centralizado da carta */
.panel{position:fixed;left:50%;top:50%;width:min(940px,94vw);max-height:92vh;background:var(--sheet);border:1px solid var(--line);border-radius:20px;transform:translate(-50%,-48%) scale(.97);opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility 0s .18s;z-index:52;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 30px 80px -20px rgba(18,26,43,.5)}
.panel.open{transform:translate(-50%,-50%);opacity:1;visibility:visible;transition-delay:0s}
.panel .inner{padding:18px 24px 26px}
.phead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.pn{display:flex;align-items:center;gap:8px}
.pn button,.phead .close{min-height:40px;min-width:40px}
.pn span{font-weight:700;color:var(--ink-2);min-width:70px;text-align:center;font-size:13.5px}
.pgrid{display:grid;grid-template-columns:minmax(250px,330px) 1fr;gap:28px;align-items:start}
.pcol{position:sticky;top:0}
.tilt{perspective:900px;display:block;width:min(320px,100%);margin:0 auto;touch-action:pan-y;--rx:0deg;--ry:0deg;--mx:50%;--my:50%;cursor:grab}
.tcard{position:relative;aspect-ratio:245/337;border-radius:12px;transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .3s;box-shadow:0 20px 34px -20px rgba(18,26,43,.6);overflow:hidden;background:var(--pocket)}
.tilt.hot .tcard{transition:transform .08s linear,box-shadow .3s;box-shadow:0 30px 44px -22px rgba(18,26,43,.7)}
.tcard img,.tcard .ph{width:100%;height:100%;object-fit:contain;display:block}
.glare{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.62),rgba(255,255,255,.12) 38%,rgba(255,255,255,0) 62%);mix-blend-mode:soft-light}
.tilt.hot .glare{opacity:1}
.phint{text-align:center;color:var(--ink-3);font-size:12.5px;margin:10px 0 0}
.pinfo h2{margin-top:0}

/* Celular: menu embaixo, alvos de toque maiores */
@media (hover:none){.tg{opacity:1}.slot .tg{background:rgba(255,255,255,.95)}}
@media (max-width:860px){
  .rail{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;flex-direction:row;justify-content:space-around;align-items:stretch;gap:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:20;box-shadow:0 -8px 24px rgba(18,26,43,.25)}
  .brand,.rail .foot,.rail .ver,.rail .acct{display:none}
  .rail a.nav{flex:1;flex-direction:column;justify-content:center;gap:3px;min-height:54px;padding:6px 4px;border-left:0;border-radius:12px;font-size:11.5px;text-align:center;line-height:1.15}
  .rail a.nav.on{background:var(--rail-2);color:#fff;box-shadow:inset 0 3px 0 var(--acc)}
  .rail svg{width:22px;height:22px}
  main{padding:18px 14px calc(96px + env(safe-area-inset-bottom))}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
  .btn,.field{height:44px}
  .btn.small{height:40px}
  .seg button{min-height:40px;padding:8px 14px}
  .tabs button{min-height:40px}
  input.field{min-width:0;flex:1 1 160px}
  .top{flex-direction:column;align-items:stretch}
  .tools{flex-wrap:wrap}
  .toolbar{flex-wrap:wrap}
  .size input[type=range]{width:96px}
  .step button{width:44px;height:44px}
  .fin-opts{grid-template-columns:1fr}
  .pickbar{bottom:calc(72px + env(safe-area-inset-bottom))}
  .modal .dialog{max-height:92vh;overflow:auto}
}

/* Pokédex: arte nos espaços vazios e janela de cartas do Pokémon */
.slot.dexempty{cursor:pointer}
.slot.dexempty:hover .pocket{border-color:var(--ink-3)}
.dexph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;padding:8% 6%;text-align:center}
.dexph img{width:76%;aspect-ratio:1;object-fit:contain;filter:none!important;opacity:1!important}
.dexph b{font-size:clamp(11px,1.4vw,15px);color:var(--ink-2);font-weight:800}
.slot.dexempty .dexname{justify-content:center;text-align:center}
.slot.dexempty .dexname b{color:var(--ink-2)}
.dexhead{display:flex;align-items:center;gap:14px}
.dexart{width:72px;height:72px;flex:none}
.dexart img{width:100%;height:100%;object-fit:contain}
.dexhead h2{margin:0}.dexhead h2 small{font-weight:600;color:var(--ink-3);font-size:.6em}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.dtile{position:relative;display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0;outline-offset:3px}
.dtile.off .pocket img{filter:grayscale(1) contrast(.9);opacity:.4}
.dtile.on .pocket{border-color:var(--ok);border-width:2px}
.dtile .num{display:flex;font-size:11.5px;color:var(--ink-2);line-height:1.2;padding:0 2px}
.dtile .num b{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dtile .num span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dchk{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:99px;border:1.5px solid var(--ink-3);background:rgba(255,255,255,.92);display:grid;place-items:center;font-weight:800;color:transparent}
.dtile.on .dchk{background:var(--ok);border-color:var(--ok);color:#fff}
.dtile .dd{margin-top:4px;height:30px;font-size:12.5px;justify-content:center}
.dialog .actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}

/* logo sem imagem: bloco com o nome e a cor da série */
.lgfb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;height:100%;min-height:44px;padding:6px 10px;border-radius:8px;text-align:center;background:linear-gradient(135deg,hsl(var(--h) 70% 55%/.22),hsl(var(--h) 70% 55%/.07));border:1px solid hsl(var(--h) 45% 55%/.35);color:var(--ink)}
.lgfb b{font:800 15px/1.1 var(--display);font-stretch:80%;overflow-wrap:anywhere}
.lgfb small{font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:.03em;text-transform:uppercase}
.set .noimg.lgfb b{font-size:17px}
.hero .hlogo{flex-direction:column;gap:6px;height:auto;min-height:96px}
.logoctl{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
/* carta sem imagem: cartão com nome e número */
.ph[data-noimg]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;aspect-ratio:63/88;border-radius:6px;background:repeating-linear-gradient(135deg,var(--line-2) 0 8px,var(--pocket) 8px 16px);border:1px dashed var(--ink-3);padding:10px}
.ph[data-noimg] b{font-size:13px;font-weight:800;color:var(--ink-2);line-height:1.15}
.ph[data-noimg] small{font-size:12px;color:var(--ink-3);font-weight:700}
.tcard .ph[data-noimg] b{font-size:22px}
.pocket .ph[data-noimg]{aspect-ratio:auto;border:0;border-radius:0}

/* Expansões: logo em miniatura à esquerda, dados ao lado (layout em linha) */
.sets{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}
.set{display:grid;grid-template-columns:136px minmax(0,1fr);grid-template-areas:"logo meta" "logo count" "logo bar" "logo sub";column-gap:14px;row-gap:5px;align-content:center;align-items:center;padding:12px}
.set .logo{grid-area:logo;width:136px;height:116px;padding:6px;background:linear-gradient(135deg,hsl(var(--h,220) 55% 93%),hsl(var(--h,220) 35% 97%))}
.set .logo img{max-height:100px}
.set .meta{grid-area:meta;min-height:0}
.set .count{grid-area:count}
.set .bar{grid-area:bar}
.set .sub{grid-area:sub}
.sets.pick{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.sets.pick .set{display:flex}
@media (max-width:480px){.sets{grid-template-columns:1fr}}

/* Fichários: capa + dados */
.binders{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}
.binder{flex-direction:row;align-items:center;gap:14px;padding:12px;border-left:0}
.binder .cover{flex:none;width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--pocket);display:flex;align-items:center;justify-content:center}
.binder .cover img,.binder .cover svg{width:100%;height:100%;object-fit:contain;display:block}
.binder .cover,.cover.sm{position:relative}
.cover .fitbox img{object-fit:cover!important;padding:0!important;background:none!important}
.cover svg{object-fit:cover}
.binder .bmeta{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.binder h3{margin:0;overflow-wrap:anywhere}
.cover.sm{width:44px;height:44px;border-radius:10px;overflow:hidden;display:inline-flex;background:var(--pocket);flex:none}
.cover.sm img,.cover.sm svg{width:100%;height:100%;object-fit:contain}
.covpick{display:inline-flex;gap:8px}
.covp{width:56px;height:56px;padding:0;border:2px solid var(--line);border-radius:10px;overflow:hidden;background:none;cursor:pointer}
.covp[aria-pressed=true]{border-color:var(--ink)}
.covp svg{width:100%;height:100%;display:block}
.quickadd{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.sortctl{display:inline-flex;gap:8px;align-items:center}

/* Resumo do fichário */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--sheet);border:1px solid var(--line);border-radius:14px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.stat.ring{flex-direction:row;align-items:center;gap:16px}
.stat .big{display:block;font:800 34px/1 var(--display);font-stretch:75%;font-variant-numeric:tabular-nums}
.stat.ring span{display:block;font-size:13px;color:var(--ink-2)}
.rg{--p:0;flex:none;width:74px;height:74px;border-radius:50%;background:conic-gradient(var(--acc) calc(var(--p)*1%),var(--line-2) 0);display:grid;place-items:center;position:relative}
.rg::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--sheet)}
.rg b{position:relative;font-size:15px}
.mini{display:grid;grid-template-columns:minmax(70px,auto) 1fr auto;gap:8px;align-items:center;font-size:13px}
.mini .mk{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini .mb{height:7px;border-radius:99px;background:var(--line-2);overflow:hidden}
.mini .mb i{display:block;height:100%;background:var(--ink);border-radius:99px}
.mini .mv{color:var(--ink-3);font-variant-numeric:tabular-nums}
.set .logo .lgfb{padding:4px 6px}
.set .logo .lgfb b{font-size:13.5px;overflow-wrap:break-word;word-break:normal}
.set .logo .lgfb small{font-size:9.5px}

.tabs.scope{margin-bottom:8px}

/* legenda: número + bandeira */
.slot .num{align-items:center}
.slot .num .no,.dtile .num .fl{display:inline-flex;align-items:center;gap:5px;flex:none;white-space:nowrap}
.flag{display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.18);flex:none}
.dtile .num{justify-content:space-between;gap:6px}
.dtile.here .pocket{border-color:var(--ok);border-width:3px}
.dtile.have .pocket{border-color:var(--ink-3);border-width:2px}
.qty.havechip{background:#e8edf7;color:#2b3b63}
.qty.here{background:var(--ok);color:#fff}
.slot.dexempty.hashave .pocket{border-color:var(--ink-3)}
.slot.dexempty .pocket .qty{left:50%;right:auto;transform:translateX(-50%);bottom:8px;top:auto;white-space:nowrap}

/* realce mais grosso ao passar o mouse (sem mexer no tamanho do cartão) */
.set:hover,.set:focus-visible,.binder:hover,.binder:focus-visible{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}

/* conta e login */
.rail .ver{padding:0 10px 4px;font-size:11.5px;color:#7F90B8}
.acct{margin:0 4px 8px;padding:10px;border:1px solid #2A3753;border-radius:12px;background:#18233A;display:flex;flex-direction:column;gap:8px}
.acct[hidden]{display:none}
.acct-mail{font-size:12.5px;color:#E8ECF5;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-st{display:flex;align-items:center;gap:7px;font-size:12px;color:#9FB0D6}
.acct-st .dot{width:8px;height:8px;border-radius:50%;background:#7F90B8;flex:none}
.acct-st.idle .dot{background:#3CCB7F}
.acct-st.syncing .dot{background:#F2B23A;animation:pulse 1s infinite}
.acct-st.offline .dot,.acct-st.error .dot{background:#E5484D}
@keyframes pulse{50%{opacity:.35}}
.acct .btn.small{align-self:flex-start;background:transparent;color:#E8ECF5;border-color:#3A4A6C}
.acct .btn.small:hover{border-color:#E8ECF5}
.panel-sec .acct-st{color:var(--ink-2)}
.panel-sec .acct-st.idle .dot{background:#1E9E5C}
body.locked{overflow:hidden}
.auth{position:fixed;inset:0;z-index:100;background:var(--bg,#E3E7F0);display:none;align-items:center;justify-content:center;padding:16px;overflow:auto}
.auth.on{display:flex}
.acard{width:min(420px,100%);background:var(--sheet,#fff);border:1px solid var(--line,#D5DAE6);border-radius:20px;padding:28px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 20px 50px rgba(18,26,43,.18)}
.acard img{max-width:118px;height:auto;margin-bottom:2px}
.acard .asub{margin:0 0 6px;color:var(--ink-2)}
.acard #aform,.acard form{width:100%;display:flex;flex-direction:column;gap:8px}
.acard h2{margin:6px 0 0;text-align:center}
.acard .lead{text-align:center;margin:0 0 6px}
.acard .field{width:100%}
.acard .btn.primary{margin-top:6px;width:100%;justify-content:center}
.atabs{display:flex;gap:6px;margin-bottom:6px}
.atabs button{flex:1;padding:9px;border-radius:10px;border:1px solid var(--line,#D5DAE6);background:transparent;font:inherit;font-weight:600;cursor:pointer;color:var(--ink-2)}
.atabs button[aria-selected="true"]{background:var(--ink,#121A2B);color:#fff;border-color:var(--ink,#121A2B)}
.aerr{min-height:20px;font-size:13.5px;color:#B3261E}
.aerr.ok{color:#1E7A4C}
.linkbtn{background:none;border:0;padding:6px;font:inherit;color:var(--ink-2);text-decoration:underline;cursor:pointer}
.afoot{margin:8px 0 0;font-size:12px;color:var(--ink-3);text-align:center}

/* imagens das cartas: aparecem com um fade quando carregam */
.pocket img.lz{opacity:0}

/* ---------- Tela cheia (só as cartas) ---------- */
body.immersive{overflow:hidden;background:#000}
.immersive .bookwrap{--sheet:#1A1B20;--line:#34363E;--line-2:#2A2C33;--ink:#F1F3F8;--ink-2:#C3C8D4;--ink-3:#8E94A3;--pocket:#23252C;color:#F1F3F8}
.immersive .rail,.immersive #view>*:not(#grid):not(#bgrid){display:none!important}
.immersive main{padding:0}
.immersive .app{display:block;min-height:100dvh}
.immersive #view{min-height:100dvh;display:flex;align-items:center;justify-content:center}
.immersive #grid,.immersive #bgrid{width:100%}
.immersive .bookwrap{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:10px}
.immersive .spread{width:auto}
.immersive .bpage{--cw:min(calc((100vw - 28px - 24px - (var(--cols) - 1)*8px)/var(--cols)/var(--sp)),calc((100dvh - 20px - 24px - (var(--rows) - 1)*8px - var(--rows)*34px)/var(--rows)*.727));flex:none;max-width:none;width:calc(var(--cols)*var(--cw) + (var(--cols) - 1)*8px + 24px);align-content:center}
.immersive .bpage .tg{width:30px;height:30px}
.immersive .booknav{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;margin:0;padding:8px 12px;border-radius:14px;background:rgba(0,0,0,.82);border:1px solid #2E3036;color:#fff;backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s;max-width:calc(100vw - 20px)}
.immersive .booknav .booklbl{color:#fff}
.immersive .booknav .imsel{height:40px;width:auto;min-width:0;padding:0 8px}
.immersive.ui-on .booknav{opacity:1;pointer-events:auto}
.bside{display:none}
.immersive .bside{display:flex;position:fixed;top:50%;transform:translateY(-50%);z-index:55;width:46px;height:96px;align-items:center;justify-content:center;border:0;border-radius:12px;background:rgba(232,236,245,.88);color:#1C2742;font-size:34px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s}
.immersive .bside.l{left:6px}.immersive .bside.r{right:6px}
.immersive.ui-on .bside{opacity:1;pointer-events:auto}
.immersive .bside:disabled{opacity:.25!important}
.immersive .booknav .btn,.immersive .booknav .imsel{background:#E8ECF5;color:#1C2742;border:1px solid #fff}
.immersive .booknav .btn:hover{background:#fff;border-color:#fff}
.immersive .booknav .btn:disabled{opacity:.35}
.immersive .booknav .bookrange{accent-color:#E8ECF5}
.immersive .toast{bottom:auto;top:calc(14px + env(safe-area-inset-top));max-width:min(92vw,520px)}
.immersive .toast{width:max-content}
@media (max-width:700px){
 .immersive .booknav{width:calc(100vw - 20px);justify-content:space-between;gap:8px;flex-wrap:nowrap}
 .immersive .booknav .bookrange,.immersive .booknav [data-act=book-go]{display:none}
 .immersive .booknav .booklbl{flex:1;font-size:14px}
}

/* ---------- Negociação e exportar imagem ---------- */
.tradeslot .qty{left:50%;right:auto;transform:translateX(-50%);bottom:6px;font-size:14px;padding:3px 12px;border-radius:999px}
.tradeslot .stepper{display:flex;gap:6px;justify-content:center;margin-top:2px}
.tradeslot .stepper .btn{min-width:44px;padding:0 10px;font-size:18px;line-height:1}
.exres{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;max-height:58vh;overflow:auto}
.exitem img{width:100%;border-radius:10px;border:1px solid var(--line);display:block;margin-bottom:6px}
.exitem .row{display:flex;gap:6px;flex-wrap:wrap}
.ttag{display:inline-block;font-size:12px;font-weight:800;color:#fff;border-radius:999px;padding:2px 10px;line-height:1.5}
.ttag.sell{background:#D93A2B}.ttag.want{background:#2F6FDE}
.plslot .pocket{transition:box-shadow .12s}
.plslot.sel .pocket{box-shadow:0 0 0 3px var(--rail)}
.plcheck{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:#1F9D55;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.45),0 0 0 3px #fff;pointer-events:none}
.rail .ver{line-height:1.3}

/* janelas de negociação: cabeçalho fixo com Concluir */
.tdlg{display:flex;flex-direction:column;max-height:calc(92vh - 48px)}
.tdhead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line);flex:none}
.tdhead h2{margin:0}
.tdcount{font-size:13px;font-weight:700;color:var(--ink-2)}
.tdhead .btn{min-height:44px;padding:0 22px}
.tdbody{overflow:auto;flex:1;min-height:0;padding:2px}
.tvgrid{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:18px;margin-top:12px;align-items:start}
.tvimg .pocket{position:relative;border-radius:10px;overflow:hidden}
.tvimg img{width:100%;display:block}
.tvlang{display:flex;flex-wrap:wrap;gap:2px}
.tvlang button{padding:6px 10px;display:inline-flex;align-items:center;gap:5px}
.tvrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.tvrow .stepper{display:flex;align-items:center;gap:10px}
.tvrow .stepper .btn{min-width:44px;min-height:44px;font-size:20px;padding:0}
.tvq{min-width:28px;text-align:center;font-weight:800;font-size:18px}
@media (max-width:600px){.tvgrid{grid-template-columns:1fr}.tvimg{max-width:220px;margin:0 auto}}

/* decks */
.ttag.fmt{background:#4A5578}
.dstat{font-size:13px;font-weight:700;color:var(--ink-2)}.dstat.ok{color:#1F7A44}.dstat.bad{color:#B3261E}
.dcount{font-weight:800;font-size:15px;color:var(--ink-2)}.dcount.full{color:#1F7A44}
.dval{border-radius:12px;padding:12px 16px;margin:0 0 16px;border:1px solid var(--line);background:var(--sheet)}
.dval ul{margin:8px 0 0;padding-left:20px;font-size:14px}
.dval.ok{background:#E8F6EE;border-color:#A9DDBF;color:#14532D}
.dval.bad{background:#FDECEA;border-color:#F2B4AE;color:#8A1F17}
.dval.warn{background:#FFF4E0;border-color:#F0C98A;color:#7A4A06}
.dval li.info{opacity:.75}
.dsec{margin:18px 0 8px;font-size:16px}.dsec span{color:var(--ink-2);font-weight:600;margin-left:6px}
.lgl{position:absolute;left:6px;top:6px;font-size:11px;font-weight:800;color:#fff;border-radius:999px;padding:2px 8px;line-height:1.4;z-index:2}
.lgl.no{background:#B3261E}.lgl.rp{background:#C27A06}
.dslot.illegal .pocket img{opacity:.55}
.tradeslot .qty.over{background:#B3261E}

/* página de impressão do deck (Imprimir → Salvar como PDF) */
#printsheet{display:none}
@media print{
 body>*:not(#printsheet){display:none!important}
 #printsheet{display:block!important;color:#000;background:#fff;font:14px/1.45 -apple-system,"Segoe UI",Helvetica,Arial,sans-serif;padding:0}
 #printsheet h1{font-size:24px;margin:0 0 2px}
 #printsheet .meta{margin:0 0 14px;color:#444}
 #printsheet h2{font-size:15px;margin:16px 0 4px;border-bottom:2px solid #000;padding-bottom:2px}
 #printsheet h2 span{font-weight:400;color:#444;margin-left:6px}
 #printsheet table{width:100%;border-collapse:collapse}
 #printsheet td{padding:3px 6px;border-bottom:1px solid #ddd}
 #printsheet td.q{width:34px;font-weight:700;text-align:right}
 #printsheet td.c{width:90px;text-align:right;color:#333;white-space:nowrap}
 #printsheet small{color:#666}
 #printsheet .foot{margin-top:22px;font-size:11px;color:#666}
 @page{margin:16mm}
}

/* página pública (link compartilhado): sem menu lateral */
body.public .app{grid-template-columns:1fr}
body.public .rail{display:none}
.pubwrap{max-width:1200px;margin:0 auto}
.pubfoot{margin-top:28px;font-size:12.5px;color:var(--ink-2)}

/* Fundo abstrato: o próprio logo da coleção, ampliado e bem desfocado, por trás do logo nítido */
.set .logo,.pk .logo,.coverpage .cvlogo,.hero .hlogo{position:relative;overflow:hidden;isolation:isolate}
.coverpage .cvlogo,.hero .hlogo{border-radius:12px;padding:6px}
img.lgbg,.set .logo img.lgbg,.pk .logo img.lgbg,.coverpage .cvlogo img.lgbg,.hero .hlogo img.lgbg{position:absolute;left:50%;top:50%;width:250%;height:250%;max-width:none;max-height:none;transform:translate(-50%,-50%);object-fit:contain;filter:blur(16px) saturate(1.2);opacity:.4;pointer-events:none;z-index:0}
.set .logo img.lgbg:not([src]),.pk .logo img.lgbg:not([src]),.coverpage .cvlogo img.lgbg:not([src]),.hero .hlogo img.lgbg:not([src]){visibility:hidden}
.set .logo>img[data-role="logo"],.pk .logo>img[data-role="logo"],.coverpage .cvlogo>img[data-role="logo"],.hero .hlogo>img[data-role="logo"]{position:relative;z-index:1}
.set .logo::after,.pk .logo::after,.coverpage .cvlogo::after,.hero .hlogo::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(closest-side,rgba(255,255,255,.35),rgba(255,255,255,0) 80%);pointer-events:none}

/* Valor e condição nas listas de negociação */
.tprice{font:800 13px/1.2 var(--display);color:var(--ink)}
.tnop{font-weight:600;color:var(--ink-2)}
.bkrow{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;text-align:left;padding:9px 6px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;min-height:44px;color:inherit;font:inherit}
.bkrow.on{background:hsl(220 80% 60%/.10)}
.bkchk{width:22px;height:22px;border:2px solid var(--line);border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:14px}
.bkrow.on .bkchk{background:var(--ink);border-color:var(--ink);color:#fff}
.bkname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bkname small{color:var(--ink-2)}
.bkq,.bkp{font-weight:700;font-size:13px;white-space:nowrap}
.bkctl{display:grid;gap:10px;margin-top:6px}
.bkctl .size{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* ---------- v4.0: menu retrátil em celular/tablet deitado ---------- */
.menubtn,.menuscrim{display:none}
@media (orientation:landscape) and (hover:none) and (pointer:coarse){
 body:not(.public) .app{grid-template-columns:1fr}
 body:not(.public) .rail{display:flex;position:fixed;left:0;top:0;bottom:0;right:auto;width:min(272px,78vw);height:auto;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px;padding:18px 14px calc(14px + env(safe-area-inset-bottom));overflow-y:auto;z-index:90;transform:translateX(-105%);transition:transform .22s ease;box-shadow:none}
 body.menu-open:not(.public) .rail{transform:none;box-shadow:12px 0 32px rgba(0,0,0,.4)}
 body:not(.public) .brand{display:flex;margin:-18px -14px 12px}body:not(.public) .rail .foot,body:not(.public) .rail .ver{display:block}
 body:not(.public) .rail .acct:not([hidden]){display:block}
 body:not(.public) .rail a.nav{flex:none;flex-direction:row;justify-content:flex-start;gap:10px;min-height:44px;padding:10px 12px;border-left:4px solid transparent;border-radius:10px;font-size:inherit;text-align:left}
 body:not(.public) .rail a.nav.on{box-shadow:none;border-left-color:var(--acc)}
 body:not(.public) main{padding:18px 18px 28px;padding-left:max(64px,calc(18px + env(safe-area-inset-left)))}
 body:not(.public) .toast{bottom:20px}
 body:not(.public) .menubtn{display:flex;position:fixed;left:max(8px,env(safe-area-inset-left));top:max(8px,env(safe-area-inset-top));z-index:95;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(18,26,43,.82);color:#fff;font-size:22px;line-height:1;cursor:pointer;opacity:.9;backdrop-filter:blur(6px)}
 body.menu-open:not(.public) .menuscrim{display:block;position:fixed;inset:0;z-index:85;background:rgba(10,14,24,.5)}
 body.immersive .menubtn{display:none!important}
}

/* ---------- v4.0: efeito de inclinação nas cartas das grades ---------- */
.pocket{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;transform:perspective(800px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.pocket::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.55),rgba(255,255,255,.1) 40%,rgba(255,255,255,0) 65%);mix-blend-mode:soft-light}
.pocket.hot{transition:transform .08s linear,box-shadow .3s;box-shadow:0 14px 22px -12px rgba(18,26,43,.6);position:relative;z-index:3}
.pocket.hot::after{opacity:1}
@media (prefers-reduced-motion:reduce){.pocket{transform:none!important}.pocket::after{display:none}}
/* botões − / + sempre centralizados */
.step button{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}
.tradeslot .stepper .btn,.tvrow .stepper .btn,.stepper .btn{justify-content:center;padding-left:0;padding-right:0;line-height:1;text-align:center}
.stepper .btn{padding-bottom:2px}

/* ---------- v4.1: capa na primeira página (página dupla) ---------- */
.bpage.coverpage{position:relative;overflow:hidden;padding:0;border:0;background:var(--rail-2)}
.coverpage .bempty{visibility:hidden;border:0}
.coverpage .covabs{position:absolute;inset:0;display:block}
.coverpage .covbody{position:absolute;inset:0}
.coverpage .covbody>img,.coverpage .covbody>svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;display:block;padding:0;background:none;border-radius:0}
.coverpage h2{position:absolute;left:0;right:0;bottom:0;margin:0;padding:34px 14px 16px;font-size:clamp(18px,2.2vw,28px);line-height:1.15;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));text-shadow:0 1px 3px rgba(0,0,0,.6)}
.coverpage .cvlogo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:0;padding:0;background:linear-gradient(135deg,hsl(var(--h,220) 55% 88%),hsl(var(--h,220) 35% 97%))}
.coverpage .cvlogo img[data-role="logo"]{position:relative;max-width:82%;max-height:46%;object-fit:contain}
.coverpage .cvlogo .lgfb b{font-size:clamp(22px,3vw,38px)}
.covgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;max-height:52vh;overflow:auto;padding:2px}
.covc{border:2px solid transparent;border-radius:8px;background:var(--pocket);padding:0;cursor:pointer;overflow:hidden;aspect-ratio:245/337}
.covc img{width:100%;height:100%;object-fit:contain;display:block}
.covc.sel{border-color:var(--purple)}

/* ---------- v4.3: janela de capa com enquadramento ---------- */
.coverpage .covbody{overflow:hidden}
.fitbox{position:absolute;inset:0;transform-origin:50% 50%;transform:translate(var(--tx,0%),var(--ty,0%)) scale(var(--z,1));will-change:transform}
.fitbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none;max-height:none;padding:0;border-radius:0;background:none;user-select:none;-webkit-user-drag:none;pointer-events:none}
.cvprev{position:relative;aspect-ratio:3/4;width:min(260px,100%);margin:0 auto;overflow:hidden;border-radius:12px;background:var(--rail-2);box-shadow:0 10px 24px -14px rgba(18,26,43,.6)}
.cvprev.drag{cursor:grab;touch-action:none}
.cvprev.drag:active{cursor:grabbing}
.cvwrap{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr);gap:18px;align-items:start;margin-top:8px}
.cvright{display:flex;flex-direction:column;gap:12px;min-width:0}
.cvright .seg{flex-wrap:wrap}
.cvsub .covgrid{max-height:34vh}
.cvzoom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cvzoom input[type=range]{width:min(220px,50vw)}
@media (max-width:720px){.cvwrap{grid-template-columns:1fr}.cvprev{width:min(220px,60vw)}}

.cvprev.sq{aspect-ratio:1/1;width:min(200px,100%)}
.cvtabs{margin:6px 0 4px}

/* ---------- v4.5: juntar listas da Negociação em uma imagem ---------- */
.tmbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--sheet);position:sticky;top:8px;z-index:5}
.tmrow{position:relative;cursor:pointer;user-select:none}
.tmrow .tmchk{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--ink-3);display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:var(--sheet);margin-right:2px}
.tmrow.on{border-color:var(--purple);box-shadow:0 0 0 2px var(--purple) inset}
.tmrow.on .tmchk{background:var(--purple);border-color:var(--purple)}
.tmrow:focus-visible{outline:3px solid var(--purple);outline-offset:2px}

/* v5.0: Menor da Liga */
.tliga{display:inline-block;font-size:11.5px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--purple-bg);color:var(--purple-d);border:1px solid var(--purple-ln);white-space:nowrap}
.ttag.liga{background:var(--purple-bg);color:var(--purple-d);border:1px solid var(--purple-ln)}
.lgchk{display:flex;align-items:flex-start;gap:10px;grid-column:1/-1;cursor:pointer;padding:6px 0}
.lgchk input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--purple)}
.lgchk span{display:flex;flex-direction:column;gap:2px}
.lgchk small{color:var(--ink-2);font-size:12px;line-height:1.35}

/* v5.0: arrastar cartas da lista de Negociação */
#tgrid .tradeslot{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
#tgrid .tradeslot img{-webkit-user-drag:none;pointer-events:none}
.tdraghint{margin:0 0 10px;font-size:12.5px}
.tradeslot.dragging{opacity:.28;outline:2px dashed var(--purple);outline-offset:3px;border-radius:14px}
.dragghost{position:fixed;z-index:200;pointer-events:none;margin:0;opacity:.94;transform:scale(1.05) rotate(2deg);box-shadow:0 18px 40px rgba(0,0,0,.35);border-radius:14px;background:var(--sheet);transition:none}
body.is-reordering{cursor:grabbing;-webkit-user-select:none;user-select:none}
body.is-reordering *{cursor:grabbing!important}

/* v5.0: filtros por raridade e tipo */
.fbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px}
.fbar .flab{font-size:.85rem;color:var(--muted,#667)}
.fbtn[aria-pressed="true"]{background:var(--accent,#2f6fe4);color:#fff;border-color:transparent}
.fpanel{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px;padding:10px;border:1px solid var(--line,#d8dce6);border-radius:12px;background:var(--card,#fff)}
.fchip{border:1px solid var(--line,#d8dce6);background:transparent;color:inherit;border-radius:999px;padding:5px 12px;font:inherit;font-size:.88rem;cursor:pointer}
.fchip small{opacity:.65;margin-left:2px}
.fchip[aria-pressed="true"]{background:var(--accent,#2f6fe4);color:#fff;border-color:transparent}
.fempty,.fnote{font-size:.88rem;color:var(--muted,#667)}
.fnote{margin:4px 0 8px}

/* v5.1: desconto sobre o menor da Liga */
.lgdisc{margin:8px 0 2px}
.lgdisc .lgbtns{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.lgdisc .lgother{display:flex;align-items:center;gap:8px;font-size:.88rem}
.lgdisc .lgother input{width:90px}
/* v6: link com várias listas */
.pubsec{margin:18px 0 6px}
.pubsech{font-size:18px;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
