
.bmjlab{
  --bg:#15171c; --card:#1d2027; --card2:#242833; --bd:#2c313c;
  --tx:#eef0f3; --mut:#9aa0a8; --ac:#32C8E0;
  --ok:#5ec26a; --err:#ff8f7a; --avi:#d7b45a;
}
.bmjlab *{box-sizing:border-box;margin:0;padding:0}
.bmjlab{background:var(--bg);color:var(--tx);font:14px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.bmjlab button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.bmjlab input, .bmjlab select, .bmjlab textarea{font:inherit;color:#cfd3d9;background:#161920;border:1px solid var(--bd);border-radius:8px;padding:6px 10px;outline:0}
.bmjlab input:focus, .bmjlab select:focus, .bmjlab textarea:focus{border-color:var(--ac)}
.bmjlab select{cursor:pointer;font-size:12.5px;font-weight:600}
.bmjlab ::-webkit-scrollbar{width:9px;height:9px}
.bmjlab ::-webkit-scrollbar-thumb{background:#333a46;border-radius:9px}
.bmjlab ::-webkit-scrollbar-track{background:transparent}
.bmjlab code{background:#0e1015;padding:1px 5px;border-radius:4px;font-size:12px}

.bmjlab #app{display:flex;flex-direction:column;height:calc(100dvh - var(--bmjTopo,0px));min-height:480px}
/* Textura do jogo atrás da bancada (option bmj_lab_bgs, injetada pelo
   shortcode como --labbg). Fica presa no topo, some antes da área de
   trabalho e nunca briga com o texto: é identidade, não decoração. */
.bmjlab.com-fundo #app{position:relative;isolation:isolate}
.bmjlab.com-fundo #app::before{content:"";position:absolute;left:0;right:0;top:0;height:340px;
	z-index:-1;pointer-events:none;background:var(--labbg) top right/cover no-repeat;opacity:.55;
	-webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%);
	mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%)}
/* Cabeçalho e subhead ficam translúcidos pra textura passar, mas com fundo
   escuro suficiente pra não comer o contraste do texto. */
.bmjlab.com-fundo header{background:linear-gradient(180deg,rgba(36,40,51,.74),rgba(29,32,39,.74));
	backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bmjlab.com-fundo .subhead{background:rgba(29,32,39,.74);
	backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
@media(max-width:1099px){ .bmjlab.com-fundo #app::before{height:210px;opacity:.45} }
/* No modo gravação o fundo sai: a tela é da carta, não da textura. */
body.rec .bmjlab.com-fundo #app::before{display:none}
.bmjlab .avisoMobile{display:none}
.bmjlab .abasMob{display:none}

/* ---------------- barra do site ---------------- */
/* ---- barra do site ------------------------------------------------------
   Fina de propósito: num deckbuilder, altura é o recurso mais escasso — é ela
   que decide quantas cartas cabem sem rolar. Mas fala a mesma língua do site:
   mesmo logo, mesma paleta, mesmo menu, e mostra quem está logado. */
.bmjlab .barraSite{display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;flex:0 0 auto;
  background:#0f1115;border-bottom:1px solid var(--bd);font-size:12.5px}
.bmjlab .barraSite .marca{display:flex;align-items:center;gap:6px;text-decoration:none;flex:0 0 auto}
.bmjlab .barraSite .marca img{height:20px;width:auto;display:block}
.bmjlab .barraSite .marca .txt{font-weight:800;color:#fff;letter-spacing:.3px;white-space:nowrap}
.bmjlab .barraSite .marca .volta{color:var(--mut);font-size:14px;line-height:1}
.bmjlab .barraSite .marca:hover .volta{color:var(--ac)}
.bmjlab .barraSite .itens{display:flex;gap:2px;overflow:hidden;flex:1;min-width:0}
.bmjlab .barraSite .itens a{color:var(--mut);text-decoration:none;padding:6px 9px;border-radius:6px;white-space:nowrap}
.bmjlab .barraSite .itens a:hover{color:#cfd3d9;background:rgba(255,255,255,.04)}
/* onde você está agora */
.bmjlab .barraSite .itens a.aqui{color:var(--ac);background:rgba(255,255,255,.04);
  box-shadow:inset 0 -2px 0 var(--ac);font-weight:700}
.bmjlab .barraSite .beta{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
  color:var(--ac);border:1px solid var(--ac);border-radius:99px;padding:2px 9px;
  box-shadow:0 0 10px -3px var(--ac);white-space:nowrap}
/* quem está logado */
.bmjlab .quem{position:relative;flex:0 0 auto}
.bmjlab .quem .eu{display:flex;align-items:center;gap:7px;padding:3px 8px 3px 3px;border-radius:99px;
  cursor:pointer;color:#cfd3d9;border:1px solid transparent}
.bmjlab .quem .eu:hover{border-color:var(--bd);background:#161920}
.bmjlab .quem .av{width:24px;height:24px;border-radius:50%;object-fit:cover;display:block;
  background:#232833;border:1px solid var(--bd)}
.bmjlab .quem .av.ini{display:flex;align-items:center;justify-content:center;font-size:11px;
  font-weight:800;color:var(--ac);letter-spacing:.2px}
.bmjlab .quem .nm{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.bmjlab .quem .seta{font-size:9px;color:var(--mut)}
.bmjlab .quem .entrar{color:var(--ac);text-decoration:none;font-weight:700;padding:5px 10px;
  border:1px solid var(--ac);border-radius:99px;box-shadow:0 0 10px -4px var(--ac)}
.bmjlab .quem .entrar:hover{background:rgba(255,255,255,.05)}
.bmjlab .quemMenu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:190px;
  background:var(--card2);border:1px solid var(--bd);border-radius:11px;padding:5px;
  box-shadow:0 12px 36px #000c}
.bmjlab .quemMenu[hidden]{display:none}
.bmjlab .quemMenu a{display:block;padding:8px 10px;border-radius:8px;color:#dfe3e9;
  text-decoration:none;font-size:12.5px}
.bmjlab .quemMenu a:hover{background:#1b1f27;color:var(--ac)}
.bmjlab .quemMenu .sep{height:1px;background:var(--bd);margin:4px 2px}
body.rec .bmjlab .barraSite{display:none}

/* ---------------- header ---------------- */
.bmjlab header{display:flex;align-items:center;gap:11px;padding:0 14px;height:50px;flex:0 0 auto;
  background:linear-gradient(180deg,var(--card2),var(--card));border-bottom:1px solid var(--bd)}
/* ---- Seletor de jogo: logo + dropdown ----------------------------------
   Antes eram 5 abas. O problema não era o espaço: era que clicar numa aba
   trocava de jogo e o deck da anterior sumia. Agora cada jogo tem a sua
   bancada, e o menu mostra quantas cartas estão guardadas em cada uma. */
.bmjlab .selJogo{position:relative;display:flex;align-items:center;gap:8px}
.bmjlab #jogoBt{display:flex;align-items:center;gap:9px;padding:5px 11px 5px 8px;border-radius:10px;
  background:#161920;border:1px solid var(--bd);cursor:pointer;min-height:38px}
.bmjlab #jogoBt:hover{border-color:var(--ac)}
.bmjlab #jogoBt.aberto{border-color:var(--ac);box-shadow:0 0 14px -4px var(--ac)}
.bmjlab #jogoBt img{height:22px;width:auto;max-width:70px;object-fit:contain;display:block}
.bmjlab #jogoBt .rot{font-size:13px;font-weight:800;color:#eef0f3;white-space:nowrap}
.bmjlab #jogoBt .seta{font-size:10px;color:var(--mut);margin-left:1px}
.bmjlab #jogoBt .qtd{font-size:10.5px;font-weight:800;color:var(--ac);background:rgba(255,255,255,.05);
  border:1px solid var(--ac);border-radius:20px;padding:1px 7px;line-height:1.5}
.bmjlab .jogoMenu{position:absolute;left:0;top:calc(100% + 6px);z-index:60;min-width:270px;
  background:var(--card2);border:1px solid var(--bd);border-radius:12px;padding:6px;
  box-shadow:0 14px 44px #000c}
.bmjlab .jogoMenu[hidden]{display:none}
.bmjlab .jogoMenu .tit{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--mut);
  padding:6px 9px 7px;font-weight:800}
.bmjlab .jogoMenu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 9px;border-radius:9px;
  text-align:left;cursor:pointer;color:#dfe3e9}
.bmjlab .jogoMenu button:hover{background:#1b1f27}
.bmjlab .jogoMenu button.on{box-shadow:inset 0 0 0 1px var(--ac)}
.bmjlab .jogoMenu button img{height:26px;width:52px;object-fit:contain;flex:0 0 52px}
.bmjlab .jogoMenu button .nm{font-size:13px;font-weight:700;flex:1}
.bmjlab .jogoMenu button .st{font-size:11px;color:var(--mut);white-space:nowrap}
.bmjlab .jogoMenu button .st.tem{color:var(--ac);font-weight:700}
/* o antigo, mantido pro caso de o JS não montar o novo */
.bmjlab .selJogo .abas{display:flex;gap:2px;background:#161920;border:1px solid var(--bd);border-radius:9px;padding:3px}
.bmjlab .selJogo button{padding:5px 10px;border-radius:6px;font-size:12px;font-weight:700;color:var(--mut);
  border:1px solid transparent;transition:.14s}
.bmjlab .selJogo button:hover{color:#cfd3d9}
.bmjlab .selJogo button.on{color:var(--ac);border-color:var(--ac);background:rgba(255,255,255,.02);
  box-shadow:0 0 10px -3px var(--ac),inset 0 0 12px -9px var(--ac);text-shadow:0 0 9px var(--ac)}
.bmjlab #nomeDeck{background:transparent;border:1px solid transparent;color:#fff;font-size:18px;font-weight:800;min-width:230px;padding:4px 8px}
.bmjlab #nomeDeck:hover, .bmjlab #nomeDeck:focus{border-color:var(--bd);background:#161920}
.bmjlab header .dir{margin-left:auto;display:flex;align-items:center;gap:5px}
.bmjlab header .dir button{padding:6px 11px;border-radius:8px;font-size:12.5px;color:#cfd3d9;border:1px solid transparent}
.bmjlab header .dir button:hover{background:#161920;border-color:var(--bd)}
.bmjlab header .dir .pri{color:var(--ac);font-weight:700;border-color:var(--ac);background:rgba(255,255,255,.02);
  box-shadow:0 0 12px -4px var(--ac),inset 0 0 14px -10px var(--ac);text-shadow:0 0 9px var(--ac)}
.bmjlab header .dir .pri:hover{background:rgba(255,255,255,.05);border-color:var(--ac);
  box-shadow:0 0 16px -3px var(--ac),inset 0 0 14px -8px var(--ac)}

/* ---------------- subhead ---------------- */
.bmjlab .subhead{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px 14px;flex:0 0 auto;
  background:var(--card);border-bottom:1px solid var(--bd);font-size:12.5px;color:var(--mut)}
.bmjlab .subhead.off{display:none}
.bmjlab .cont{background:#161920;border:1px solid var(--bd);border-radius:8px;padding:5px 11px}
.bmjlab .cont b{color:#fff;font-size:14px}
.bmjlab .cont.ruim b{color:var(--err)}
.bmjlab .pips{display:flex;gap:4px;align-items:center}
.bmjlab .pip{width:15px;height:15px;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.35)}
.bmjlab .pip.quad{border-radius:4px;width:auto;padding:2px 6px;font-size:10px;font-weight:800;color:#10131a;height:auto}
.bmjlab .alerta{color:var(--err);font-weight:700;font-size:11px;margin-left:4px}
.bmjlab .val{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:12px}
.bmjlab .val .ok{color:var(--ok);font-weight:800;border-radius:8px;padding:5px 11px;border:1px solid var(--ok);
  background:rgba(255,255,255,.02);box-shadow:0 0 12px -4px var(--ok);text-shadow:0 0 9px rgba(94,194,106,.8)}
.bmjlab .val .ruim{color:var(--err);font-weight:700;border-radius:8px;padding:5px 11px;cursor:pointer;user-select:none;border:1px solid var(--err);
  background:rgba(255,255,255,.02);box-shadow:0 0 12px -4px var(--err);text-shadow:0 0 9px rgba(255,143,122,.8)}

/* ---------------- 3 colunas ---------------- */
.bmjlab main{flex:1;display:grid;grid-template-columns:var(--cp,370px) 1fr var(--cb,320px);min-height:0}
@media(min-width:1650px){.bmjlab main{--cp:430px;--cb:350px}}

/* ------- col 1: preview persistente ------- */
.bmjlab #prev{border-right:1px solid var(--bd);background:var(--card);display:flex;flex-direction:column;min-height:0}
.bmjlab .prevNav{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid var(--bd);font-size:11.5px;color:var(--mut)}
.bmjlab .prevNav button{padding:2px 10px;border-radius:5px;font-size:16px;line-height:1}
.bmjlab .prevNav button:hover{background:#161920;color:#fff}
.bmjlab .prevArte{padding:14px 16px 8px;display:flex;justify-content:center;position:relative}
.bmjlab .prevArte img{width:100%;max-width:340px;border-radius:14px;box-shadow:0 8px 30px #000a;background:#161920;aspect-ratio:.716;object-fit:cover}
.bmjlab .prevArte img.wide{aspect-ratio:1.4}
/* Botão redondo de virar a carta — fica montado na borda de baixo da arte,
   grande o bastante pra achar de longe (e pra gravar vídeo). */
.bmjlab .flip{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);
  width:58px;height:58px;border-radius:50%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1px;cursor:pointer;
  background:#0f1116;border:2px solid var(--ac);color:var(--ac);
  box-shadow:0 0 0 4px #0f1116,0 0 18px -2px var(--ac),0 6px 18px #000a;
  transition:transform .18s,box-shadow .18s;z-index:3}
.bmjlab .flip:hover{transform:translateX(-50%) scale(1.09);box-shadow:0 0 0 4px #0f1116,0 0 26px 0 var(--ac),0 6px 18px #000a}
.bmjlab .flip:active{transform:translateX(-50%) scale(.95)}
.bmjlab .flip svg{width:26px;height:26px;display:block}
.bmjlab .flip b{font-size:9.5px;font-weight:700;letter-spacing:.4px;line-height:1}
.bmjlab .flipRot{text-align:center;font-size:11.5px;color:var(--mut);padding:22px 0 2px;letter-spacing:.4px}
.bmjlab .prevQtd{display:flex;align-items:center;padding:0 16px 10px}
.bmjlab .prevQtd button{width:48px;height:38px;background:#161920;border:1px solid var(--bd);font-size:18px;font-weight:800}
.bmjlab .prevQtd button:first-child{border-radius:8px 0 0 8px}
.bmjlab .prevQtd button:last-child{border-radius:0 8px 8px 0}
.bmjlab .prevQtd button:hover:not(:disabled){background:var(--ac);border-color:var(--ac);color:#10131a}
.bmjlab .prevQtd button:disabled{opacity:.3;cursor:not-allowed}
.bmjlab .prevQtd .n{flex:1;height:38px;display:flex;align-items:center;justify-content:center;gap:5px;background:#161920;
  border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);font-size:12px;color:var(--mut)}
.bmjlab .prevQtd .n b{color:#fff;font-size:15px}
.bmjlab .prevInfo{padding:0 16px 8px}
.bmjlab .prevInfo h2{font-size:17px;line-height:1.25;margin-bottom:4px}
.bmjlab .prevMeta{font-size:12px;color:var(--mut);display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.bmjlab .prevMeta .s{opacity:.35}
.bmjlab .prevTxt{flex:1;overflow-y:auto;padding:11px 16px 18px;border-top:1px solid var(--bd);margin-top:8px;font-size:13px}
.bmjlab .prevTxt .bl{margin-bottom:10px}
.bmjlab .prevTxt .bl b{display:block;color:#fff;margin-bottom:2px}
.bmjlab .prevTxt .bl span{color:#c3cede}
.bmjlab .prevTxt .fonte{font-size:11px;color:var(--avi);margin-top:10px;line-height:1.4}
.bmjlab .prevTxt .dica{font-size:11px;color:var(--mut);margin-top:12px}
.bmjlab .prevVazio{flex:1;display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:13px;text-align:center;padding:30px}
.bmjlab .tag{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:99px;background:#161920;border:1px solid var(--bd);color:var(--mut)}
.bmjlab .tag.err{border-color:#ff8f7a55;color:var(--err)}
.bmjlab .tag.avi{border-color:#d7b45a55;color:var(--avi)}
.bmjlab .tag.ok{border-color:#5ec26a55;color:var(--ok)}

/* ------- col 2: deck ------- */
.bmjlab #deck{display:flex;flex-direction:column;min-height:0}
.bmjlab .deckBar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--bd);flex:0 0 auto;flex-wrap:wrap}
.bmjlab .deckBar input[type=search]{width:150px;font-size:12.5px;padding:5px 9px}
.bmjlab .vista{display:flex;gap:2px;background:#161920;border:1px solid var(--bd);border-radius:8px;padding:2px}
.bmjlab .vista button{padding:4px 9px;border-radius:6px;font-size:11.5px;color:var(--mut);transition:.14s}
.bmjlab .vista button.on{color:var(--ac);box-shadow:inset 0 0 0 1px var(--ac),0 0 9px -3px var(--ac);text-shadow:0 0 8px var(--ac)}
.bmjlab .mini{background:#161920;border:1px solid var(--bd);border-radius:8px;padding:5px 9px;font-size:11.5px;color:#cfd3d9}
.bmjlab .mini:hover{border-color:var(--ac)}
.bmjlab .curva{display:flex;align-items:flex-end;gap:2px;height:22px}
.bmjlab .curva i{width:9px;background:#3a4557;border-radius:2px 2px 0 0;min-height:2px;display:block}
.bmjlab .curva i.on{background:var(--ac)}
.bmjlab .rolo{flex:1;overflow-y:auto;padding:12px 14px 70px}
.bmjlab .grupo{margin-bottom:16px}
.bmjlab .grupo h3{font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--mut);margin-bottom:8px;display:flex;align-items:center;gap:7px}
.bmjlab .grupo h3 em{font-style:normal;color:#5b6878}
.bmjlab .grupo h3 .fora{background:#161920;border:1px solid var(--bd);border-radius:99px;padding:1px 7px;font-size:9.5px;color:var(--mut)}
/* Alça de arraste da seção: o cabeçalho inteiro puxa, mas o pontilhado é
   o sinal visual de que dá pra arrastar (só aparece de verdade no hover). */
.bmjlab .grupo h3{cursor:grab}
.bmjlab .grupo h3:active{cursor:grabbing}
.bmjlab .grupo h3 .pega{color:#3f4756;font-size:13px;letter-spacing:-1px;transition:color .12s}
.bmjlab .grupo h3:hover .pega{color:var(--ac)}
.bmjlab .grupo.puxando{opacity:.45}
.bmjlab .grupo h3 .x{margin-left:auto;color:#5b6878;font-size:15px;padding:0 4px}
.bmjlab .grupo h3 .x:hover{color:var(--err)}
.bmjlab .grupo.premier h3{color:var(--ac)}
.bmjlab .grupo.alvo{outline:2px dashed var(--ac);outline-offset:6px;border-radius:8px}
.bmjlab .grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--cw,110px),1fr));gap:10px}
.bmjlab .grade.wide{--cw:170px}
.bmjlab .ct{position:relative;border-radius:8px;cursor:pointer;transition:transform .09s}
/* só a ARTE (filha direta) — os símbolos ficam dentro de .marca e não herdam isso */
.bmjlab .ct>img{width:100%;display:block;border-radius:8px;aspect-ratio:.716;object-fit:cover;background:#161920}
.bmjlab .ct.wide>img{aspect-ratio:1.4}
.bmjlab .ct:hover{transform:translateY(-3px)}
.bmjlab .ct.sel>img{box-shadow:0 0 0 1.5px var(--ac),0 0 18px -2px var(--ac)}
.bmjlab .ct.oculta{opacity:.16}
.bmjlab .ct.bloq>img{filter:grayscale(1) brightness(.55)}
.bmjlab .ct .badge{position:absolute;right:-5px;bottom:10px;width:26px;height:26px;background:#0c0f14;transform:rotate(45deg);
  border-radius:4px;border:1.5px solid var(--ac);display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 12px -2px var(--ac),0 2px 7px #000a}
.bmjlab .ct .badge b{transform:rotate(-45deg);font-size:13px;font-weight:900;color:var(--ac);text-shadow:0 0 8px var(--ac)}
.bmjlab .ct .acoes{position:absolute;inset:auto 0 0 0;display:none}
.bmjlab .ct:hover .acoes{display:flex}
.bmjlab .ct .acoes button{flex:1;background:#000c;padding:5px 0;font-size:14px;font-weight:800;backdrop-filter:blur(2px)}
.bmjlab .ct .acoes button:hover{background:var(--ac);color:#10131a}
.bmjlab .ct .selo{position:absolute;left:4px;top:4px;background:#c8102e;color:#fff;font-size:9px;font-weight:800;padding:2px 5px;border-radius:4px;max-width:92%}
.bmjlab .ct .selo.avi{background:#b98a1e}
.bmjlab .ct .cst{position:absolute;left:4px;top:4px;background:#000b;color:#fff;font-size:10.5px;font-weight:800;
  width:19px;height:19px;border-radius:50%;display:flex;align-items:center;justify-content:center}
/* lista */
.bmjlab .lista .li{display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:7px;cursor:pointer;font-size:13px}
.bmjlab .lista .li:hover{background:var(--card)}
.bmjlab .lista .li.sel{background:var(--card2);outline:1px solid var(--ac)}
.bmjlab .lista .li .q{font-weight:800;color:var(--ac);width:24px}
.bmjlab .lista .li .nm{flex:1}
.bmjlab .lista .li .mt{color:var(--mut);font-size:11.5px}
.bmjlab .vaziod{padding:60px 20px;text-align:center;color:var(--mut);font-size:13px}

/* ------- col 3: busca ------- */
.bmjlab #busca{border-left:1px solid var(--bd);background:var(--card);display:flex;flex-direction:column;min-height:0}
.bmjlab #busca .campo{padding:10px 12px 8px;flex:0 0 auto}
.bmjlab #busca .campo input{width:100%}
.bmjlab .filtros{border-bottom:1px solid var(--bd);flex:0 0 auto}
.bmjlab .filtros summary{padding:7px 12px 9px;font-size:12px;color:var(--mut);cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}
.bmjlab .filtros summary::-webkit-details-marker{display:none}
.bmjlab .filtros summary::before{content:"›";display:inline-block;transition:transform .15s;font-size:15px}
.bmjlab .filtros[open] summary::before{transform:rotate(90deg)}
.bmjlab .filtros summary b{color:#cfd3d9;font-weight:700}
.bmjlab .chips{padding:0 12px 10px}
.bmjlab .chips .lin{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.bmjlab .chip{font-size:11px;padding:4px 9px;border-radius:99px;border:1px solid var(--bd);background:#161920;color:var(--mut);
  display:inline-flex;align-items:center;gap:5px;transition:.14s}
.bmjlab .chip:hover{color:#cfd3d9;border-color:#3c4453}
.bmjlab .chip i{width:10px;height:10px;border-radius:50%;display:inline-block}
.bmjlab .chip svg{width:14px;height:14px;display:block;flex:0 0 auto}
.bmjlab .chip.on{background:rgba(255,255,255,.03);border-color:var(--ac);color:var(--ac);font-weight:700;
  box-shadow:0 0 11px -3px var(--ac),inset 0 0 14px -10px var(--ac);text-shadow:0 0 8px var(--ac)}
.bmjlab .chip.tog{width:100%;justify-content:center}
/* Early Test — cartas japonesas ainda sem versão ocidental */
.bmjlab .early{border-top:1px dashed var(--bd);padding-top:9px}
.bmjlab .early .tit{font-size:11px;font-weight:800;color:#ff9fb0;margin-bottom:6px;display:block}
.bmjlab .early .chip.on{background:rgba(255,159,176,.08);border-color:#ff9fb0;color:#ff9fb0;
  box-shadow:0 0 11px -3px #ff9fb0;text-shadow:0 0 8px #ff9fb0}
.bmjlab .ct .jp{position:absolute;left:4px;bottom:4px;background:rgba(255,159,176,.92);color:#2a0a12;
  font-size:8.5px;font-weight:900;padding:1px 5px;border-radius:4px;letter-spacing:.3px}
.bmjlab .resWrap{flex:1;overflow-y:auto;padding:8px 12px 40px}
.bmjlab .resWrap .grade{--cw:76px;gap:7px}
.bmjlab .nres{font-size:11px;color:var(--mut);padding:0 0 8px;line-height:1.4}

/* ------- painéis (importar/exportar/mão) ------- */
.bmjlab .painel{position:fixed;inset:0;background:#000b;display:none;align-items:center;justify-content:center;z-index:20;padding:30px}
.bmjlab .painel.on{display:flex}
.bmjlab .painel .cx{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:18px;width:min(680px,100%);max-height:86vh;overflow:auto}
.bmjlab .painel h4{font-size:15px;margin-bottom:10px}
.bmjlab .painel textarea{width:100%;min-height:210px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5}
.bmjlab .painel .pe{display:flex;gap:8px;margin-top:11px;align-items:center;flex-wrap:wrap}
.bmjlab .mao{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}
.bmjlab .mao img{width:118px;border-radius:8px;box-shadow:0 4px 14px #0008}

/* ------- neon: selos, símbolos e destaques ------- */
.bmjlab .ct .selo{background:rgba(12,15,20,.88);color:#ff8f7a;border:1px solid #ff8f7a;
  box-shadow:0 0 10px -3px #ff8f7a;text-shadow:0 0 7px rgba(255,143,122,.7)}
.bmjlab .ct .selo.avi{color:var(--avi);border-color:var(--avi);box-shadow:0 0 10px -3px var(--avi);
  text-shadow:0 0 7px rgba(215,180,90,.7);background:rgba(12,15,20,.88)}
.bmjlab .ct .cst{background:rgba(8,10,14,.85);border:1px solid rgba(255,255,255,.28);width:auto;min-width:19px;padding:0 4px}
.bmjlab .ct .cst.sim{background:none;border:0;padding:0;width:22px;height:22px;position:static}
.bmjlab .ct .marca{position:absolute;left:4px;top:4px;display:flex;align-items:center;gap:2px;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.9))}
.bmjlab .ct .marca .cst{position:static}
.bmjlab .ct .marca .simImg, .bmjlab .ct .marca .sim svg{width:17px!important;height:17px!important;aspect-ratio:1!important;
  object-fit:contain!important;border-radius:0!important}
.bmjlab .ct .marca .custoNum{width:18px!important;height:18px!important;line-height:16px!important;font-size:10.5px}
.bmjlab .grade .ct .marca .simLinha{gap:1px}
/* símbolos nunca herdam o recorte da arte */
.bmjlab .simImg, .bmjlab .sim svg{aspect-ratio:1;object-fit:contain;border-radius:0}
.bmjlab .grupo.alvo{outline:none;box-shadow:0 0 0 1px var(--ac),0 0 22px -6px var(--ac);border-radius:10px}
.bmjlab .ct.alvoCarta>img{box-shadow:-4px 0 0 var(--ac),0 0 18px -3px var(--ac)}
.bmjlab .ct.alvoCarta{transform:translateX(4px)}
.bmjlab .lista .li.sel{background:transparent;outline:none;box-shadow:inset 0 0 0 1px var(--ac),0 0 14px -6px var(--ac)}
.bmjlab .cont.ruim{border-color:var(--err);box-shadow:0 0 12px -5px var(--err)}
.bmjlab .cont.ruim b{text-shadow:0 0 8px rgba(255,143,122,.7)}
.bmjlab .mini.on{color:var(--ac);border-color:var(--ac);box-shadow:0 0 10px -3px var(--ac)}
.bmjlab .tag.err{box-shadow:0 0 10px -4px var(--err)}
.bmjlab .tag.avi{box-shadow:0 0 10px -4px var(--avi)}
.bmjlab .tag.ok{box-shadow:0 0 10px -4px var(--ok)}
/* símbolos */
.bmjlab .sim{display:inline-block;vertical-align:-3px}
.bmjlab .sim svg{display:block}
.bmjlab .pips .sim{filter:drop-shadow(0 0 5px rgba(255,255,255,.25))}
.bmjlab .simLinha{display:inline-flex;align-items:center;gap:3px;vertical-align:-3px}
.bmjlab .prevMeta .simLinha{gap:4px}
.bmjlab .simImg{display:inline-block;vertical-align:-3px;object-fit:contain}
.bmjlab .simLinha .simImg{vertical-align:middle}
.bmjlab .custoNum{display:inline-flex;align-items:center;justify-content:center;background:rgba(8,10,14,.9);
  border:1px solid rgba(255,255,255,.32);border-radius:50%;font-size:11px;font-weight:900;color:#fff;
  text-shadow:0 1px 2px #000;vertical-align:middle}

/* ------- botão ⋯ e menu da carta ------- */
/* ⋯ no ALTO da carta: embaixo a barra de +/− cobre tudo no hover */
.bmjlab .ct .opt{position:absolute;right:4px;top:4px;width:22px;height:22px;border-radius:50%;
  background:rgba(8,10,14,.9);border:1px solid rgba(255,255,255,.35);font-size:13px;line-height:1;
  display:none;align-items:center;justify-content:center;z-index:2}
.bmjlab .ct:hover .opt{display:flex}
.bmjlab .ct .opt:hover{border-color:var(--ac);color:var(--ac);box-shadow:0 0 10px -3px var(--ac)}
.bmjlab #menuCarta{position:fixed;z-index:40;background:var(--card2);border:1px solid var(--bd);border-radius:11px;
  padding:6px;min-width:236px;box-shadow:0 12px 40px #000b;font-size:13px}
.bmjlab #menuCarta[hidden]{display:none}
.bmjlab #menuCarta .it{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;cursor:pointer;white-space:nowrap}
.bmjlab #menuCarta .it:hover{background:#161920;color:var(--ac)}
.bmjlab #menuCarta .it .ic{width:17px;text-align:center;opacity:.85}
.bmjlab #menuCarta .it small{color:var(--mut);margin-left:auto}
.bmjlab #menuCarta .it.perigo:hover{color:var(--err)}
.bmjlab #menuCarta .sep{height:1px;background:var(--bd);margin:5px 2px}
.bmjlab #menuCarta .tt{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);padding:4px 10px 2px}
.bmjlab #menuCarta .rol{max-height:190px;overflow-y:auto}

/* ------- modal de impressões ------- */
.bmjlab #pnPrints .cx{width:min(1080px,100%)}
.bmjlab .prCab{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.bmjlab .prCab h4{flex:0 0 auto}
.bmjlab .prCab input{flex:1;max-width:280px}
.bmjlab .prGrade{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:10px;
  max-height:64vh;overflow-y:auto;padding-right:4px}
.bmjlab .pr{cursor:pointer;border-radius:8px;transition:transform .09s}
.bmjlab .pr:hover{transform:translateY(-3px)}
.bmjlab .pr img{width:100%;border-radius:8px;display:block;background:#161920;aspect-ratio:.716;object-fit:cover;
  border:1px solid var(--bd)}
.bmjlab .pr small{display:block;font-size:10.5px;color:var(--mut);text-align:center;margin-top:4px;line-height:1.25}
.bmjlab .pr.atual img{border-color:var(--ac);box-shadow:0 0 0 1px var(--ac),0 0 16px -4px var(--ac)}
.bmjlab .pr.atual small{color:var(--ac)}
.bmjlab .aviso2{color:var(--mut);font-size:12.5px;padding:20px 2px}

/* ------- faixa de tokens no pé do deck ------- */
.bmjlab .faixaTokens{flex:0 0 auto;border-top:1px solid var(--bd);background:var(--card);padding:8px 14px 10px}
.bmjlab .faixaTokens .cabT{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.bmjlab .faixaTokens .cabT b{font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ac);
  text-shadow:0 0 9px var(--ac)}
.bmjlab .faixaTokens .cabT span{font-size:11px;color:var(--mut)}
.bmjlab .faixaTokens .cabT .mini{margin-left:auto;padding:2px 9px}
.bmjlab .faixaTokens.min .tiraT{display:none}
.bmjlab .faixaTokens.min .cabT .mini{transform:rotate(180deg)}
.bmjlab .tiraT{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.bmjlab .tokC{flex:0 0 auto;width:72px;cursor:pointer;transition:transform .09s}
.bmjlab .tokC:hover{transform:translateY(-3px)}
.bmjlab .tokC img{width:72px;border-radius:6px;display:block;background:#161920;aspect-ratio:.716;object-fit:cover;
  border:1px solid var(--bd)}
.bmjlab .tokC.sel img, .bmjlab .tokC.sel .sem{box-shadow:0 0 0 1.5px var(--ac),0 0 16px -3px var(--ac);border-color:var(--ac)}
.bmjlab .tokC.sel .lb{color:var(--ac)}
.bmjlab .tokC .sem{width:72px;aspect-ratio:.716;border:1px dashed var(--bd);border-radius:6px;display:flex;
  align-items:center;justify-content:center;font-size:9.5px;color:var(--mut);text-align:center;padding:4px}
.bmjlab .tokC .lb{font-size:10px;color:var(--mut);margin-top:3px;line-height:1.2;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bmjlab .tokC .de{font-size:9px;color:#5b6878;text-align:center;line-height:1.2}
body.rec .bmjlab .faixaTokens{padding:10px 16px 12px}
body.rec .bmjlab .tokC, body.rec .bmjlab .tokC img, body.rec .bmjlab .tokC .sem{width:92px}

/* ------- painel de análise (Magic) ------- */
.bmjlab .painel .cx.larga{width:min(1040px,100%)}
.bmjlab .abasCab{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.bmjlab .abas{display:flex;gap:3px;background:#161920;border:1px solid var(--bd);border-radius:9px;padding:3px}
.bmjlab .abas button{padding:6px 13px;border-radius:6px;font-size:12.5px;color:var(--mut);transition:.14s}
.bmjlab .abas button.on{color:var(--ac);box-shadow:inset 0 0 0 1px var(--ac),0 0 9px -3px var(--ac);text-shadow:0 0 8px var(--ac)}
.bmjlab .abasCab .mini{margin-left:auto}
.bmjlab .blocos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-bottom:14px}
.bmjlab .bloco{background:#161920;border:1px solid var(--bd);border-radius:10px;padding:11px 13px}
.bmjlab .bloco .rot{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.bmjlab .bloco .num{font-size:22px;font-weight:800;line-height:1.1}
.bmjlab .bloco .num small{font-size:12px;color:var(--mut);font-weight:600}
.bmjlab #tamCarta, .bmjlab #zoomUI{display:none}
.bmjlab .linhaProb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12.5px;color:var(--mut);margin-bottom:14px}
.bmjlab .linhaProb b{color:#fff;font-size:14px;min-width:18px;text-align:center}
.bmjlab .linhaProb .mini{padding:3px 9px;font-size:13px;line-height:1}
.bmjlab .barP{height:9px;background:#20262f;border-radius:99px;overflow:hidden}
.bmjlab .barP i{display:block;height:100%;background:var(--ac);border-radius:99px;box-shadow:0 0 10px -2px var(--ac)}
.bmjlab .barraCor{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:5px;border:1px solid var(--bd)}
.bmjlab .barraCor span{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#10131a}
.bmjlab .curvaG{display:flex;align-items:flex-end;gap:7px;height:120px;padding:8px 0 0;border-bottom:1px solid var(--bd);margin-bottom:6px}
.bmjlab .curvaG .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.bmjlab .curvaG .b{width:100%;background:var(--ac);border-radius:4px 4px 0 0;opacity:.85;min-height:2px}
.bmjlab .curvaG .v{font-size:11px;color:var(--mut);margin-bottom:3px}
.bmjlab .eixo{display:flex;gap:7px;font-size:11px;color:var(--mut)}
.bmjlab .eixo span{flex:1;text-align:center}
.bmjlab .tab{width:100%;border-collapse:collapse;font-size:12.5px}
.bmjlab .tab th{text-align:left;color:var(--mut);font-weight:600;font-size:11px;text-transform:uppercase;
  letter-spacing:.4px;padding:6px 8px;border-bottom:1px solid var(--bd)}
.bmjlab .tab td{padding:6px 8px;border-bottom:1px solid #20262f}
.bmjlab .tab td.n{text-align:right;font-weight:700}
.bmjlab .combo{border:1px solid var(--bd);border-radius:10px;padding:12px;margin-bottom:9px;background:#161920}
.bmjlab .combo h5{font-size:13px;margin-bottom:6px;display:flex;align-items:center;gap:7px}
.bmjlab .combo ol, .bmjlab .combo ul{margin:0 0 0 18px;font-size:12.5px;color:#c3cede;line-height:1.5}
.bmjlab .combo .cols{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-top:8px}
.bmjlab .selo2{font-size:10px;font-weight:800;padding:2px 8px;border-radius:99px;border:1px solid var(--ok);color:var(--ok)}
.bmjlab .selo2.parcial{border-color:var(--avi);color:var(--avi)}
.bmjlab .nivelBr{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bmjlab .nivelBr .n{width:58px;height:58px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:900;color:var(--ac);border:1.5px solid var(--ac);box-shadow:0 0 18px -6px var(--ac)}
.bmjlab .gradeMini{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:9px}
.bmjlab .gradeMini figure{margin:0}
.bmjlab .gradeMini img{width:100%;border-radius:7px;display:block;background:#161920;aspect-ratio:.716;object-fit:cover}
.bmjlab .gradeMini figcaption{font-size:10.5px;color:var(--mut);margin-top:3px;line-height:1.25}
.bmjlab .carregando{color:var(--mut);font-size:12.5px;padding:18px 2px}
.bmjlab .soNoSite{border:1px dashed var(--avi);border-radius:10px;padding:14px;color:var(--avi);font-size:12.5px;line-height:1.55}

/* ------- listas de decks / histórico ------- */
.bmjlab .linha{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--bd);border-radius:10px;
  margin-bottom:7px;background:#161920}
.bmjlab .linha:hover{border-color:#3c4453}
.bmjlab .linha b{flex:0 0 auto}
.bmjlab .linha .meta{color:var(--mut);font-size:11.5px;flex:1}
.bmjlab .linha .mini{padding:4px 9px}
.bmjlab .linha.atual{border-color:var(--ac);box-shadow:0 0 12px -5px var(--ac)}
.bmjlab .vazioLista{color:var(--mut);font-size:12.5px;padding:14px 2px}
.bmjlab .grupoLista{color:var(--mut);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:12px 2px 6px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.bmjlab .grupoLista:first-child{padding-top:2px}

/* ------- carta pendente (importada e ainda não resolvida) ------- */
.bmjlab .ct.pend{display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px dashed var(--avi);border-radius:8px;aspect-ratio:.716;padding:8px;background:#171a21}
.bmjlab .ct.pend .nm{font-size:11px;color:var(--avi);line-height:1.25;word-break:break-word}
.bmjlab .ct.pend .aviso{position:absolute;left:4px;top:4px;font-size:9px;font-weight:800;color:var(--avi)}

/* ------- botão de virar (frente/verso) na miniatura -------
   Mesmo círculo do preview, em escala. Fica SEMPRE visível: é ele que avisa
   de longe que a carta tem dois lados — e é o que aparece na gravação. */
.bmjlab .ct .vira{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);
  width:var(--viraW,30px);height:var(--viraW,30px);border-radius:50%;padding:0;
  display:flex;align-items:center;justify-content:center;
  background:#0f1116;border:2px solid var(--ac);color:var(--ac);
  box-shadow:0 0 0 2px #0f1116,0 0 12px -2px var(--ac);
  transition:transform .16s,box-shadow .16s;z-index:5}
.bmjlab .ct .vira svg{width:60%;height:60%;display:block}
.bmjlab .ct .vira:hover{transform:translateX(-50%) scale(1.16);
  box-shadow:0 0 0 2px #0f1116,0 0 20px 0 var(--ac)}
.bmjlab .ct .vira:active{transform:translateX(-50%) scale(.92)}
/* vão no meio da barra +/− pro círculo não roubar o clique dos botões */
.bmjlab .ct .acoes .vg{flex:0 0 var(--viraW,30px)}

/* =====================================================================
   MOBILE (< 1100px) — três painéis viram abas no rodapé.
   O deckbuilder antigo (#1371) continua cuidando de /deckbuilder/{jogo}/;
   isto aqui é só do lab e não compartilha CSS com ele.
   ===================================================================== */
@media(max-width:1099px){
  /* =====================================================================
     MOBILE v3 — redesenho.
     O que mudou em relação ao v2 e por quê:
       · SEM zoom:1.3. Escalar a interface inteira era gambiarra: borrava a
         arte e quebrava conta de vw. Agora os tamanhos nascem certos.
       · Topo enxuto: logo do jogo + nome + contador. Ação nenhuma em cima —
         a precisão de toque no topo da tela é 61%, contra 96% embaixo.
       · Tudo que é ação desce pro rodapé (zona do polegar).
       · Alvos: 48px mínimo, 56px nas ações primárias.
       · dvh + safe-area: a barra do navegador e o notch param de comer a tela.
     ===================================================================== */
  .bmjlab{font-size:17px}                    /* tipografia base maior, sem zoom */

  /* =====================================================================
     A PÁGINA ROLA INTEIRA — igual Moxfield, igual qualquer site.
     ---------------------------------------------------------------------
     Era aqui a raiz de tudo que deu errado. O lab nasceu como "casca de app":
     body travado em 100dvh, painéis de altura fixa, cada um com rolagem
     própria. Esse modelo é ótimo no desktop e péssimo no celular — foi ele
     que produziu o painel de 921px espremido em 666px, e é ele que mata o
     puxar-pra-atualizar (o Safari do iPhone não oferece o gesto quando o
     documento não rola).
     Agora o documento rola de ponta a ponta: cabeçalho sai de cena ao rolar,
     nada de rolagem dentro de rolagem, e o refresh nativo volta de graça.
     ===================================================================== */
  .bmjlab{height:auto;overflow:visible}
  .bmjlab #app{display:flex;flex-direction:column;height:auto;min-height:0}
  /* a navegação sobe pro topo: ordem visual = marca, cabeçalho, abas, conteúdo */
  .bmjlab .barraSite{order:0} .bmjlab header{order:1} .bmjlab .subhead{order:2}
  .bmjlab .abasMob{order:3} .bmjlab main{order:4}

  /* ---------- barra do site: só a marca, altura mínima ---------- */
  .bmjlab .barraSite{height:auto;min-height:38px;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 4px) 10px 4px}
  .bmjlab .barraSite .itens, .bmjlab .barraSite .quem{display:none}
  .bmjlab .barraSite .marca img{height:19px}
  .bmjlab .barraSite .beta{font-size:9.5px;padding:2px 7px}

  /* ---------- topo do deck: uma linha só, sem ação ---------- */
  .bmjlab header{height:auto;min-height:52px;flex-wrap:nowrap;padding:6px 8px;gap:8px}
  .bmjlab .selJogo{order:0;flex:0 0 auto}
  .bmjlab #jogoBt{padding:6px 8px 6px 6px;min-height:44px;gap:6px}
  .bmjlab #jogoBt img{height:24px;max-width:52px}
  .bmjlab #jogoBt .rot{display:none}              /* o logo já diz qual é o jogo */
  .bmjlab #jogoBt .qtd{font-size:11px;padding:1px 7px}
  .bmjlab #btDecksTopo{display:none}              /* vive no rodapé agora */
  .bmjlab #nomeDeck{order:1;flex:1;min-width:0;font-size:17px;font-weight:800;
    padding:8px 4px;margin:0;width:auto;border:0;background:none}
  .bmjlab header .dir{order:2;margin-left:0;gap:4px;flex:0 0 auto}
  /* no celular só sobra Salvar; o resto está no "Mais" do rodapé */
  .bmjlab header .dir button{display:none}
  .bmjlab header .dir #btSalvar{display:flex;align-items:center;min-height:44px;padding:0 16px;
    font-size:14px;font-weight:800}

  /* ---------- subhead: formato + contador + validação ---------- */
  .bmjlab .subhead{padding:6px 10px 8px;gap:8px;font-size:13px;flex-wrap:wrap}
  .bmjlab .subhead #regraTxt, .bmjlab .subhead .pips{display:none}
  .bmjlab .subhead select{padding:0 10px;min-height:44px;font-size:15px;flex:1;min-width:0;max-width:200px}
  .bmjlab .cont{padding:0 14px;min-height:44px;display:flex;align-items:center;font-size:14px}
  .bmjlab .cont b{font-size:17px}
  .bmjlab .val{margin-left:auto}
  .bmjlab .val .ok, .bmjlab .val .ruim{padding:0 14px;min-height:44px;display:flex;align-items:center;font-size:13px}

  /* ---------- um painel por vez, mas sem caixa de altura fixa ---------- */
  .bmjlab main{display:block;grid-template-columns:1fr;overflow:visible;min-height:0;flex:none}
  .bmjlab main>#deck, .bmjlab main>#busca{display:none;height:auto;min-height:0;overflow:visible;border:0}
  .bmjlab main>#deck.mob, .bmjlab main>#busca.mob{display:block}
  /* nada mais rola por dentro: quem rola é a página */
  .bmjlab .rolo, .bmjlab .resWrap{flex:none;height:auto;max-height:none;overflow:visible}
  .bmjlab .rolo{padding:10px 10px 32px}

  /* ---------- a CARTA vira overlay, não uma aba ----------
     Antes o preview era o terceiro painel e você tinha que ir na aba "Carta"
     pra ver a arte. Agora tocar na carta abre a tela cheia por cima, e o X
     fecha — que é o que o Moxfield faz e o que a mão espera. */
  .bmjlab main>#prev{position:fixed;inset:0;z-index:45;display:none;background:var(--bg);
    border:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding:calc(env(safe-area-inset-top,0px) + 46px) 0 calc(env(safe-area-inset-bottom,0px) + 20px)}
  .bmjlab main>#prev.mob{display:block}
  .bmjlab #fecharPrev{display:none;position:fixed;z-index:46;right:12px;
    top:calc(env(safe-area-inset-top,0px) + 8px);
    width:44px;height:44px;border-radius:50%;background:#0f1116e6;border:1px solid var(--bd);
    color:var(--tx);font-size:22px;line-height:1;align-items:center;justify-content:center;
    backdrop-filter:blur(8px)}
  body.vendoCarta .bmjlab #fecharPrev{display:flex}
  body.vendoCarta{overflow:hidden}        /* trava o fundo enquanto a carta está aberta */

  /* ---------- grade de cartas: mais respiro, alvo maior ---------- */
  /* ---------- barra de ações do deck: SEM rolagem lateral ----------
     O overflow-x escondia "+ Categoria", "Analisar deck" e "Limpar" atrás de
     um arrasto horizontal que ninguém adivinha — e ainda cortava os botões nas
     bordas. Agora os botões quebram linha e tudo fica visível de cara. */
  .bmjlab .deckBar{gap:8px;padding:9px 10px;overflow-x:visible;flex-wrap:wrap}
  .bmjlab .deckBar>*{flex:0 0 auto}
  .bmjlab .deckBar input[type=search]{flex:1 1 130px;width:auto;min-width:118px;min-height:44px}
  /* desfazer/refazer: quadrados, com o glifo centrado (estavam cortados) */
  .bmjlab #btUndo, .bmjlab #btRedo{width:50px;padding:0;justify-content:center;align-items:center;
    font-size:19px;line-height:1}
  .bmjlab .rolo{padding:10px 10px 14px}
  /* No celular o padrão é 2 COLUNAS: carta grande, dá pra ler o nome e ver a
     arte sem abrir. Quem quiser mais densidade troca em "Mais" (P = 3, XP = 4). */
  /* ---------- A CARTA, DO JEITO DO MOXFIELD ----------
     Nada por cima da arte. O que sujava era nosso: losango de quantidade com
     neon, botões pretos cobrindo a base da carta, e object-fit:cover cortando
     a imagem. Agora a arte aparece inteira e limpa, e os controles descem pra
     uma faixa discreta ABAIXO dela — dá pra editar sem estragar a leitura,
     que era exatamente o pedido: o visual deles com a edição do nosso. */
  .bmjlab .grade, .bmjlab .resWrap .grade{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
  body[data-tam="p"] .bmjlab .grade, body[data-tam="p"] .bmjlab .resWrap .grade{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  body[data-tam="g"] .bmjlab .grade, body[data-tam="g"] .bmjlab .resWrap .grade{grid-template-columns:repeat(1,minmax(0,1fr));gap:16px}
  .bmjlab .grade.wide{grid-template-columns:repeat(2,minmax(0,1fr))}

  .bmjlab .ct{border-radius:12px;background:none}
  .bmjlab .ct>img{border-radius:11px;object-fit:contain;background:#0d1016;
    box-shadow:0 4px 14px -5px #000d}
  .bmjlab .ct:hover{transform:none}
  .bmjlab .ct.sel>img{box-shadow:0 0 0 2px var(--ac),0 4px 14px -5px #000d}

  /* quantidade: etiqueta sóbria no canto, como o "x1" da LigaMagic */
  .bmjlab .ct .badge{position:absolute;left:7px;top:7px;right:auto;bottom:auto;
    width:auto;height:auto;min-width:28px;padding:3px 9px;transform:none;
    background:#0b0e13f2;border:0;border-radius:8px;
    box-shadow:0 2px 7px #0009}
  .bmjlab .ct .badge b{transform:none;font-size:13.5px;font-weight:800;color:#fff;text-shadow:none}

  /* controles: faixa fina EMBAIXO da carta, sempre visível, fora da arte */
  .bmjlab .ct .acoes{position:static;inset:auto;display:flex;gap:6px;margin-top:7px}
  .bmjlab .ct:hover .acoes{display:flex}
  .bmjlab .ct .acoes button{flex:1;height:40px;padding:0;font-size:20px;font-weight:800;
    background:#171b23;color:#93a0b4;border-radius:9px;backdrop-filter:none}
  .bmjlab .ct .acoes button:active{background:var(--ac);color:#10131a}
  .bmjlab .ct .opt{position:absolute;right:7px;top:7px;width:32px;height:32px;font-size:15px;
    background:#0b0e13f2;border-radius:8px;color:#b9c4d4}
  /* o navegador pula o desenho das cartas fora da tela; a altura reservada
     evita que a barra de rolagem fique pulando */
  .bmjlab .ct{content-visibility:auto;contain-intrinsic-size:auto 305px}
  .bmjlab .ct .selo{left:7px;top:auto;bottom:54px}

  /* ---------- cabeçalho de seção: legível, com contagem ---------- */
  .bmjlab .grupo{margin-bottom:24px}
  .bmjlab .grupo h3{font-size:15.5px;text-transform:none;letter-spacing:0;color:var(--tx);
    font-weight:700;margin-bottom:12px;padding-bottom:8px;min-height:0;
    border-bottom:1px solid var(--bd)}
  .bmjlab .grupo h3 em{color:var(--mut);font-weight:600;font-size:15px}

  /* controles na carta — 48px é o piso */
  .bmjlab .ct .acoes{display:flex;gap:2px}
  .bmjlab .ct .acoes button{padding:0;height:48px;font-size:22px;font-weight:900;background:#000d}
  .bmjlab .ct .opt{display:flex;width:38px;height:38px;font-size:17px}
  .bmjlab .ct{--viraW:44px}
  .bmjlab .ct .badge{width:34px;height:34px;bottom:16px}
  .bmjlab .ct .badge b{font-size:16px}
  body[data-tam="p"] .bmjlab .ct .acoes button{height:40px;font-size:18px}
  body[data-tam="p"] .bmjlab .ct .opt{width:30px;height:30px;font-size:14px}
  body[data-tam="p"] .bmjlab .ct{--viraW:34px}
  body[data-tam="p"] .bmjlab .ct .badge{width:28px;height:28px}
  body[data-tam="p"] .bmjlab .ct .badge b{font-size:13px}
  .bmjlab .ct .selo{font-size:10.5px;padding:3px 7px}
  .bmjlab .ct .marca .simImg, .bmjlab .ct .marca .sim svg{width:20px!important;height:20px!important}
  .bmjlab .ct .marca .custoNum{width:21px!important;height:21px!important;line-height:19px!important;font-size:12px}
  body[data-tam="p"] .bmjlab .ct .marca .simImg, body[data-tam="p"] .bmjlab .ct .marca .sim svg{width:15px!important;height:15px!important}
  body[data-tam="p"] .bmjlab .ct .marca .custoNum{width:16px!important;height:16px!important;line-height:14px!important;font-size:9.5px}
  body[data-tam="p"] .bmjlab .ct .selo{font-size:9px;padding:1px 4px}

  /* ---------- preview: a carta ocupa a tela ---------- */
  .bmjlab .prevArte img{max-width:min(78vw,340px)}
  .bmjlab .prevInfo h2{font-size:21px}
  .bmjlab .prevMeta{font-size:13.5px}
  .bmjlab .prevTxt{font-size:15.5px;line-height:1.55}
  .bmjlab .prevQtd button{height:56px;font-size:26px}     /* ação primária: 56px */
  .bmjlab .prevQtd .n{height:56px;font-size:14px}
  .bmjlab .prevQtd .n b{font-size:19px}
  .bmjlab .prevNav{font-size:13px}
  .bmjlab .prevNav button{padding:10px 18px;font-size:20px}

  /* ---------- campos: 16px+ evita o zoom automático do iOS ---------- */
  .bmjlab input, .bmjlab select, .bmjlab textarea{font-size:16px}
  .bmjlab #busca .campo input{padding:14px;min-height:52px}
  /* BUSCA NO CELULAR: UMA rolagem só, do painel inteiro.
     ---------------------------------------------------------------------
     Aqui estava o bug do "não rola". No desktop o #busca é uma caixa de
     altura fixa onde só a .resWrap rola por dentro. No celular isso quebra:
     medido num viewport de 412x880, os filhos do #busca somavam 921px dentro
     de uma caixa de 666px — .campo 71 + .filtros 445 + .resWrap 405 (o piso
     de 46dvh que eu mesmo tinha posto). Como .filtros e .resWrap eram
     inencolhíveis e o #busca não rolava, a grade de resultados começava em
     y=669 e terminava em 1074: INTEIRA embaixo do bottom nav (819). Não é que
     rolava errado — não havia o que ver na tela, e nada pra arrastar.
     A correção é parar de aninhar rolagem: o painel todo rola de uma vez,
     como qualquer página de celular, e o campo de busca fica grudado no topo.
     Rolagem aninhada no toque é ruim mesmo quando cabe — o dedo nunca sabe
     qual caixa vai se mexer. */
  /* o campo de busca gruda logo abaixo da barra de navegação (60px dela) */
  .bmjlab #busca .campo{position:sticky;top:60px;z-index:6;background:var(--card);
    box-shadow:0 8px 14px -12px #000}
  .bmjlab .filtros{flex:0 0 auto;max-height:none}
  .bmjlab .filtros[open] .chips{max-height:none;overflow:visible}
  .bmjlab .resWrap{padding:8px 10px 32px}
  .bmjlab .chip{padding:0 16px;min-height:44px;display:inline-flex;align-items:center;font-size:14px;gap:7px}
  .bmjlab .chip svg, .bmjlab .chip img.simImg{width:19px!important;height:19px!important}
  .bmjlab .chips .lin{gap:8px;margin-bottom:9px}
  .bmjlab .mini{padding:0 15px;min-height:46px;display:inline-flex;align-items:center;font-size:14.5px}
  .bmjlab .vista button{padding:0 14px;min-height:44px;font-size:14px}
  .bmjlab #tamCarta button{padding:0 16px;min-height:44px;font-size:15px}
  .bmjlab #zoomUI{display:none}                   /* sem zoom de interface: não é mais preciso */
  .bmjlab .filtros summary{padding:13px 12px;font-size:14.5px;min-height:48px}
  .bmjlab .nres{font-size:13px;line-height:1.5}
  .bmjlab .grupo h3{font-size:13.5px;min-height:44px}
  .bmjlab .grupo h3 em{font-size:13px}
  .bmjlab .lista .li{padding:13px 10px;font-size:15.5px;min-height:52px}
  .bmjlab .linha{padding:14px 12px;font-size:15px}
  .bmjlab .abas button{padding:0 17px;min-height:48px;font-size:14.5px}
  .bmjlab .tab td, .bmjlab .tab th{padding:11px 8px;font-size:13.5px}

  /* ---------- painéis viram bottom sheet ---------- */
  .bmjlab .painel{padding:0;align-items:flex-end}
  .bmjlab .painel .cx, .bmjlab .painel .cx.larga{width:100%;max-height:88dvh;border-radius:20px 20px 0 0;
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}
  .bmjlab .painel .cx::before{content:"";display:block;width:44px;height:5px;border-radius:99px;
    background:#39404e;margin:0 auto 12px}     /* alça, como app nativo */
  .bmjlab .painel textarea{min-height:32dvh;font-size:16px}
  .bmjlab .painel .cx .pe .mini{min-height:48px}
  .bmjlab .abas{overflow-x:auto;-webkit-overflow-scrolling:touch}

  .bmjlab #menuCarta{min-width:min(320px,92vw);max-width:92vw;font-size:16px;
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + 6px)}
  .bmjlab #menuCarta .it{padding:15px 14px;gap:12px;min-height:54px}
  .bmjlab #menuCarta .it .ic{font-size:19px;width:23px}
  .bmjlab #menuCarta .tt{font-size:12px;padding:9px 14px 4px}
  .bmjlab #menuCarta .rol{max-height:42dvh}

  .bmjlab .faixaTokens{padding:8px 10px 10px}
  .bmjlab .faixaTokens .cabT b{font-size:12.5px}
  .bmjlab .faixaTokens .cabT .mini{min-height:40px;padding:0 13px}
  .bmjlab .tokC, .bmjlab .tokC img, .bmjlab .tokC .sem{width:62px}
  .bmjlab .tokC .lb{font-size:12px}
  .bmjlab .tokC .de{display:none}
  .bmjlab .early .tit{font-size:12.5px}

  /* ---------- navegação NO TOPO, grudada ----------
     Saiu do rodapé e virou uma barra de segmentos que fica colada no alto
     enquanto você rola. Some o botão "Carta": a carta agora é overlay. */
  .bmjlab .abasMob{display:flex;flex:0 0 auto;position:sticky;top:0;z-index:12;gap:4px;
    padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px) * 0);
    background:rgba(13,16,23,.94);backdrop-filter:blur(14px);
    border-top:0;border-bottom:1px solid var(--bd)}
  .bmjlab .abasMob button{flex:1;min-height:46px;padding:0 8px;display:flex;flex-direction:row;
    align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:700;
    color:var(--mut);border:1px solid transparent;border-radius:10px;background:#161920}
  .bmjlab .abasMob button i{font-style:normal;font-size:17px;line-height:1}
  .bmjlab .abasMob button.on{color:var(--ac);border-color:var(--ac);background:#12161d;
    box-shadow:0 0 12px -5px var(--ac)}
  .bmjlab .abasMob button.on i{filter:drop-shadow(0 0 6px var(--ac))}
  .bmjlab .abasMob button:active{transform:scale(.97)}
  .bmjlab .abasMob button[data-mob="prev"]{display:none}   /* a carta virou overlay */
  .bmjlab .abasMob .cont{background:none;border:0;padding:0;min-height:0;font-size:12.5px;font-weight:800;
    display:block;color:inherit;opacity:.85}
  body.rec .bmjlab .abasMob{display:none}
  body.vendoCarta .bmjlab .abasMob{display:none}
}
@media(max-width:1099px) and (orientation:landscape){
  .bmjlab .grade{--cw:15vw}
  .bmjlab .prevArte img{max-width:min(38vw,300px)}
}

/* ------- modo gravação ------- */
body.rec .bmjlab header, body.rec .bmjlab .subhead, body.rec .bmjlab #busca{display:none}
body.rec .bmjlab main{grid-template-columns:min(48vw,760px) 1fr}
body.rec .bmjlab .prevArte img{max-width:100%}
body.rec .bmjlab .prevInfo h2{font-size:24px}
body.rec .bmjlab .prevTxt{font-size:15.5px}
body.rec .bmjlab .grade{--cw:130px}
body.rec .bmjlab .deckBar{padding:10px 16px}
.bmjlab #sairRec{display:none;position:fixed;right:14px;top:12px;z-index:9;background:#000b;border:1px solid var(--bd);
  padding:7px 13px;border-radius:8px;font-size:12.5px;backdrop-filter:blur(4px)}
body.rec .bmjlab #sairRec{display:block}

/* ---------- PUXAR PRA ATUALIZAR (nosso, nao o do navegador) ----------
   O gesto nativo do Chrome/Safari nao funciona aqui: o lab e uma casca de
   tela cheia (body com overflow:hidden e altura travada), e nesse layout o
   Safari do iPhone simplesmente nao tem puxar-pra-atualizar. Em vez de ficar
   brigando com o navegador, o gesto e nosso — igual em Android e iOS. */
.bmjlab #ptr{position:fixed;left:50%;top:8px;transform:translateX(-50%);z-index:60;
  width:42px;height:42px;border-radius:50%;background:#0f1116;
  border:1px solid var(--bd);display:none;align-items:center;justify-content:center;
  box-shadow:0 6px 18px #000a;pointer-events:none}
.bmjlab #ptr.on{display:flex}
.bmjlab #ptr .aro{width:19px;height:19px;border-radius:50%;
  border:2.5px solid var(--mut);border-top-color:transparent;transition:border-color .12s}
.bmjlab #ptr.pronto .aro{border-color:var(--ac);border-top-color:transparent}
.bmjlab #ptr.girando .aro{animation:ptrGira .7s linear infinite}
@keyframes ptrGira{to{transform:rotate(360deg)}}


/* =====================================================================
   EMBED — regras que só existem porque o builder vive DENTRO do site.
   ===================================================================== */

/* ---------------- busca avançada (Magic) ---------------- */
.bmjlab #btAvancada{width:100%;margin-top:7px;justify-content:center;color:var(--mut);
  border:1px solid var(--bd);background:#161920;min-height:34px}
.bmjlab #btAvancada:hover{color:var(--tx);border-color:var(--ac)}
/* fita da consulta ativa, logo abaixo do campo simples */
.bmjlab #avAtiva{display:flex;align-items:center;gap:8px;margin-top:7px;padding:6px 8px;
  background:rgba(247,135,58,.08);border:1px solid color-mix(in srgb,var(--ac) 45%,var(--bd));border-radius:9px}
.bmjlab #avAtiva code{flex:1;min-width:0;font-size:11.5px;color:var(--tx);word-break:break-all;line-height:1.35}
.bmjlab #avAtiva .x{color:var(--mut);font-size:16px;padding:0 4px;flex:0 0 auto}
.bmjlab #avAtiva .x:hover{color:var(--err)}
/* campos do painel: duas colunas no desktop, uma no celular */
.bmjlab .av{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:14px}
.bmjlab .av .l{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--mut)}
.bmjlab .av .l b{font-weight:700;color:var(--mut)}
.bmjlab .av .l input,.bmjlab .av .l select{background:#161920;border:1px solid var(--bd);border-radius:8px;
  color:var(--tx);font-size:13.5px;padding:8px 10px;min-height:38px;width:100%}
.bmjlab .av .l input:focus,.bmjlab .av .l select:focus{outline:none;border-color:var(--ac)}
.bmjlab .av .l .par{display:flex;gap:7px}
.bmjlab .av .l .par select{flex:0 0 74px}
.bmjlab .av .chips{display:flex;flex-wrap:wrap;gap:6px}
.bmjlab .av .chips .chip{font-size:12px;padding:5px 10px;min-height:30px}
.bmjlab .avQ{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--mut)}
.bmjlab .avQ textarea{background:#0f1116;border:1px solid var(--bd);border-radius:9px;color:var(--ac);
  font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:9px 11px;resize:vertical;width:100%}
.bmjlab .avQ textarea:focus{outline:none;border-color:var(--ac)}
.bmjlab .avQ .dica{font-size:11px;color:#5b6878}
.bmjlab .avQ .dica a{color:var(--ac)}
@media(max-width:1099px){ .bmjlab .av{grid-template-columns:1fr;gap:11px} }

/* No celular, a página é do builder: mata o pull-to-refresh nativo (o
   gesto calibrado do lab assume). Só vale nas páginas com o shortcode. */
@media(max-width:1099px){
  body.bmjlab-pagina{overscroll-behavior-y:contain}
}
/* O Elementor põe overflow-x:hidden no body por um motivo real: o letreiro de
   notícias do header vaza 1.700px pro lado. Mas overflow HIDDEN no body cria
   contêiner de rolagem e MATA o position:sticky (a nav do celular descolava).
   Já tentei "visible": o letreiro vazou, o documento foi a 570px e o celular
   deu zoom out na página inteira. O que atende os dois é CLIP — corta o
   vazamento como o hidden, sem criar contêiner de rolagem. */
body.bmjlab-pagina{overflow-x:clip!important;overflow-y:visible!important}

/* Sheets/painéis do builder ficam ACIMA do chrome do site (a barra fixa de
   navegação inferior do tema cobria os botões Importar/Fechar — "travado"). */
.bmjlab .painel,body .bmjlab #menuCarta{z-index:100000}
.bmjlab #fecharPrev,.bmjlab #ptr{z-index:100001}
@media(max-width:1099px){
  /* o sheet respeita a área segura mas cobre a barra do site enquanto aberto */
  .bmjlab .painel .cx,.bmjlab .painel .cx.larga{
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + 22px)}
}

/* ---------------------------------------------------------------------
   CELULAR COMPACTO (pedido do Bruno vendo no aparelho: "muita informação,
   muito grande"). A barra de ferramentas do deck tinha 13 controles
   empilhados ANTES da primeira carta. Agora: filtro + um botão ⚙ que abre
   o resto sob demanda. Cabeçalho e subhead encolhem junto.
   --------------------------------------------------------------------- */
.bmjlab #btFerr{display:none}
@media(max-width:1099px){
  .bmjlab .deckBar{gap:7px;padding:7px 10px}
  .bmjlab .deckBar>*{display:none}
  /* atalho de busca com cara de campo; o filtro do deck mora no engrenagem */
  .bmjlab .deckBar #btBuscaAtalho{display:flex;flex:1 1 auto;min-width:0;
    align-items:center;gap:8px;min-height:46px;padding:0 14px;
    background:#161920;border:1px solid var(--bd);border-radius:10px;
    color:var(--mut);font-size:15px;text-align:left}
  .bmjlab .deckBar #btFerr{display:inline-flex;align-items:center;gap:5px}
  body.bmjFerr .bmjlab .deckBar #filtroDeck{display:block;flex:1 1 100%;min-width:0}
  body.bmjFerr .bmjlab .deckBar>*{display:inline-flex}
  body.bmjFerr .bmjlab .deckBar select{display:inline-block}
  body.bmjFerr .bmjlab .deckBar #tamCarta{display:flex}
  .bmjlab .deckBar .curva{display:none!important}

  /* topo mais baixo: menos rolagem até a primeira carta */
  .bmjlab header{min-height:46px;padding:4px 8px;gap:6px}
  .bmjlab #nomeDeck{font-size:16px;padding:6px 4px}
  .bmjlab #jogoBt{min-height:40px}
  .bmjlab header .dir #btSalvar{min-height:40px;padding:0 13px;font-size:13.5px}
  .bmjlab .subhead{padding:4px 10px 6px;gap:6px}
  /* formato e visibilidade LEGIVEIS: cada um leva ~metade da linha e o
     contador/problemas quebram pra linha de baixo (estavam "Com~ Priv~") */
  .bmjlab .subhead select{flex:1 1 40%;max-width:none;min-width:0;
    min-height:42px;font-size:14.5px}
  .bmjlab .subhead .cont{flex:0 1 auto}
  .bmjlab .subhead .val{margin-left:auto}
  .bmjlab .cont{min-height:40px;font-size:13px;padding:0 10px}
  .bmjlab .cont b{font-size:15px}
  .bmjlab .val .ok,.bmjlab .val .ruim{min-height:40px;font-size:12px;padding:0 10px}
  .bmjlab .abasMob button{min-height:42px;font-size:13.5px}
}
/* Modo Gravação: esconde o chrome do TEMA e ocupa a tela toda. */
body.rec #wpadminbar,
body.rec .elementor-location-header,
body.rec [data-elementor-type="header"],
body.rec .elementor-location-footer,
body.rec [data-elementor-type="footer"],
body.rec #masthead,body.rec .site-header{display:none!important}
body.rec{overflow:hidden}
body.rec .bmjlab{--bmjTopo:0px}
body.rec .bmjlab #app{position:fixed;inset:0;z-index:99;height:100dvh;background:var(--bg)}
html{margin-top:0!important}

/* botão ⋯ (opções) na carta em tela cheia — irmão do X de fechar */
.bmjlab #prevOpt{display:none;position:fixed;z-index:100001;right:64px;
  top:calc(env(safe-area-inset-top,0px) + 8px);
  width:44px;height:44px;border-radius:50%;background:#0f1116e6;border:1px solid var(--bd);
  color:var(--tx);font-size:20px;line-height:1;align-items:center;justify-content:center}
body.vendoCarta .bmjlab #prevOpt{display:flex}


/* arrasto por toque: fantasma sob o dedo + carta de origem apagada */
.bmjlab .ctGhost{position:fixed;z-index:100002;opacity:.9;pointer-events:none;
  transform:rotate(3deg);box-shadow:0 14px 34px #000d;border-radius:11px}
.bmjlab .ctGhost .acoes,.bmjlab .ctGhost .opt,.bmjlab .ctGhost .lupaM{display:none!important}
.bmjlab .ct.arrastandoToque{opacity:.35}
/* sem "copiar imagem" nem seleção no segurar */
.bmjlab .ct,.bmjlab .ct img,.bmjlab .li{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.bmjlab .ct>img{-webkit-user-drag:none}
/* lupa: abre o zoom da carta sem depender do toque duplo */
.bmjlab .lupaM{display:none}
@media(max-width:1099px){
  .bmjlab #rolo .lupaM{display:flex;position:absolute;right:7px;bottom:54px;
    width:34px;height:34px;border-radius:8px;background:#0b0e13f2;
    align-items:center;justify-content:center;font-size:15px;color:#b9c4d4;
    box-shadow:0 2px 7px #0009}
}

/* ---------------------------------------------------------------------------
   CARTA SEM ARTE
   Promo recém-saída, subconjunto antigo e coleção japonesa às vezes não têm
   imagem em fonte nenhuma. Antes o navegador desenhava o ícone de imagem
   quebrada e o alt vazava por cima do card. Aqui a carta vira um retângulo
   do mesmo tamanho, com o nome legível — a grade não desalinha e o jogador
   ainda identifica e adiciona a carta.
   --------------------------------------------------------------------------- */
.bmjlab .semArte{
  width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;text-align:center;padding:10px;border-radius:8px;aspect-ratio:.716;
  background:linear-gradient(160deg,#1b1f27,#12151b);
  border:1px dashed #363c48;box-sizing:border-box;
}
.bmjlab .semArte b{font-size:11px;line-height:1.25;color:#c8cdd6;font-weight:700;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.bmjlab .semArte i{font-size:9px;font-style:normal;color:#6d7583;letter-spacing:.03em}
.bmjlab .ct.wide .semArte{aspect-ratio:1.4}
/* no preview a carta é grande: o nome acompanha */
.bmjlab .semArte.grande{max-width:340px;border-radius:14px}
.bmjlab .semArte.grande b{font-size:15px}
.bmjlab .semArte.grande i{font-size:11px}

/* Sentinela do carregamento em lotes: ocupa a linha inteira do grid (sem o
   grid-column ela vira mais uma "carta" e desalinha a última fileira). */
.bmjlab .grade .maisRes{
  grid-column:1/-1;display:flex;align-items:center;justify-content:center;
  gap:8px;padding:14px 8px;color:var(--mut);font-size:11.5px;letter-spacing:.02em;
  /* é um <button>: some com a cara de botão do navegador */
  background:transparent;border:1px dashed #2c313c;border-radius:10px;
  font-family:inherit;cursor:pointer;width:100%;transition:.14s;
}
.bmjlab .grade .maisRes:hover{border-color:var(--ac);color:#e6e8ec}
.bmjlab .grade .maisRes::before{
  content:"";width:13px;height:13px;border-radius:50%;
  border:2px solid currentColor;border-top-color:transparent;
  animation:bmjGira .7s linear infinite;opacity:.65;
}
@keyframes bmjGira{to{transform:rotate(360deg)}}
