
/* v7.3.982 — PERF: blur por linha era o lag do scroll. Fundo solido. */
html .shop-shell .shop-card{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(9,10,13,.72)!important;
  /* v733831b — `content-visibility:auto` saiu daqui pelo mesmo motivo de
     gates/profile.php:7516 (ver v733831): 104 px declarados contra 167 px
     reais faziam a altura do documento pular durante a rolagem, e cada
     entrada/saída da tela repintava a foto do produto. */
  grid-template-columns:82px minmax(0,1fr) 44px!important}
/* as duas acoes do marketplace, na linha */
html .idmk-row-acoes{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
html .idmk-row-acoes button{width:36px;height:36px;border-radius:999px;display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:950;cursor:pointer;transition:transform .14s ease,background .14s ease;line-height:1}
html .idmk-row-acoes button:active{transform:scale(.92)}
/* ═══════════════════════════════════════════════════════════════════════════
   v733907b — OS BOTÕES VIRAM VIDRO, E O LIMA SAI DA FOTO DO PRODUTO.

   José: "o botão +, deixe ele transparente e o sinal branco, desde que dê para
   ver com qualquer fundo (…) ícones premium, leves, não quero que fique a
   nossa cor do IDLINK tão forte, prefiro estilo Apple Vision Pro: vidro,
   transparente e branco."

   O disco lima cheio era a coisa mais forte do card — mais que a foto do
   produto e mais que o preço. Num card de 308 px ele roubava a atenção do
   que a pessoa veio ver.

   Vidro resolve os dois lados do problema de legibilidade, que é o que ele
   pediu ("dê para ver com qualquer fundo"):
     · sobre fundo ESCURO  → o preenchimento branco a 14% clareia e o brilho
       interno na borda de cima desenha o contorno;
     · sobre fundo CLARO   → a sombra externa escura recorta a peça, e a borda
       branca semitransparente escurece por contraste.

   O `backdrop-filter` faz o conteúdo atrás desfocar, que é o que dá a
   impressão de espessura — a mesma leitura do Vision Pro. Onde ele não existe
   (celular, onde o gate o desliga por desempenho), o preenchimento e a borda
   sozinhos ainda garantem contraste; por isso os valores foram escolhidos para
   funcionarem SEM o desfoque também.

   O lima não some da loja: ele continua no preço, no CTA da dock e no botão de
   pagar — onde ele significa "esta é a ação que fecha". No card, o papel do
   botão é estar disponível, não gritar.
   ═══════════════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════════════
   v733909 — MENOR E MAIS FINO: O BOTÃO PARA DE DISPUTAR COM O PRODUTO.

   José: "o + dá para ficar menor, mais premium?"

   Dá, e o que faz parecer premium não é o tamanho sozinho — é a espessura.
   Peça cara tem traço fino e contraste baixo; peça barata tem borda grossa e
   cor cheia. Três mudanças, nessa lógica:

     · 44 px → 32 px de disco. Some a sensação de "botão de aplicativo".
     · o "+" deixa de ser o caractere de texto (que herdava peso 900 e vinha
       gordo) e vira um traço desenhado de 1,3 px, do tamanho exato do círculo.
     · a borda cai de 34% para 22% de branco e o preenchimento de 14% para 10%.
       Menos presença, mesma legibilidade.

   🔴 A ÁREA DE TOQUE NÃO ENCOLHE. O disco fica com 32 px, mas um `::before`
   invisível estende o alvo para 44 px — o mínimo que a Apple e o Google pedem
   para o dedo. Encolher o desenho é estética; encolher o alvo seria transformar
   um pedido de acabamento em erro de compra, e num card de produto cada toque
   perdido é um item que não entra no carrinho.

   A sombra externa também afina (de 18 px para 10 px de raio): sombra grande
   em peça pequena parece adesivo colado.
   ═══════════════════════════════════════════════════════════════════════════ */
/* v733914b — o seletor precisa vencer `.shop-shell .idmk-row-acoes button`,
   que cravava 34 px com três classes. Por isso ele entra aqui também: é a
   única forma de o tamanho ser UM, e não o resultado de quem carregou por
   último. */
html .shop-shell .idmk-row-acoes button.idmk-row-add,
html #bio-shop-panel .idmk-row-acoes button.idmk-row-add,
html .idmk-row-acoes button.idmk-row-add,
html .idmk-row-add{
  position:relative;
  width:30px!important;height:30px!important;
  min-width:30px!important;min-height:30px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  background:rgba(255,255,255,.10)!important;
  color:transparent!important;            /* o "+" de texto some… */
  font-size:0!important;
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 3px 10px rgba(0,0,0,.26)!important;
  transition:background .16s ease, transform .12s ease, border-color .16s ease;
  display:grid!important;place-items:center!important;padding:0!important;
}
/* v733914b — o ícone é um SVG: o `viewBox` centra por definição, sem depender
   de `place-items`, de line-height nem de quem venceu o cascade. */
html .idmk-row-add > svg{
  width:15px;height:15px;display:block;
  color:#fff;opacity:.88;
  pointer-events:none;
}
html .idmk-row-add::after{content:none!important}
html .idmk-row-olho-v733914 > svg{width:14px;height:14px;opacity:.8}
/* alvo de 44 px, invisível, para o dedo não perder o toque */
html .idmk-row-add::before{
  content:'';position:absolute;top:50%;left:50%;
  width:44px;height:44px;transform:translate(-50%,-50%);
  border-radius:999px;
}
html .idmk-row-add:hover{
  background:rgba(255,255,255,.18)!important;
  border-color:rgba(255,255,255,.34)!important;
}
html .idmk-row-add:active{transform:scale(.9)}

/* v733914b — "+" em cima, olho embaixo, os dois centrados na coluna. */
html .idmk-row-acoes{
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;gap:8px!important;
}
/* limpa qualquer raio que tenha ficado numa aba aberta desde antes */
html .idmk-row-raio-v733907{display:none!important}
html .idmk-row-buy{border:1px solid rgba(215,255,1,.4);background:rgba(215,255,1,.08);color:#d7ff01}
html .idmk-row-buy:hover{background:rgba(215,255,1,.18)}
html .idmk-row-acoes button.is-ok{background:#3ddc97;color:#050607;border-color:#3ddc97}
/* v731670 — o caminho do botão: indo → check → volta. O check é maior que o
   "+" porque ele é a recompensa; o tremor do erro é curto para avisar sem
   assustar. */
html .idmk-row-acoes button{position:relative}
/* o ícone original some e o ✓ é desenhado por cima, em CSS */
html .idmk-row-acoes button.is-ok > *{opacity:0!important}
html .idmk-row-acoes button.is-ok::after{
  content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:21px;line-height:1;font-weight:900;color:#050607;
  animation:idmkCheckV731672 .26s cubic-bezier(.2,1.5,.4,1)
}
@keyframes idmkCheckV731672{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
html .idmk-row-acoes button.is-ok{transform:scale(1.06)}
html .idmk-row-acoes button.is-indo-v731670{opacity:.75;animation:idmkPulsoV731670 .7s ease-in-out infinite}
html .idmk-row-acoes button.is-erro-v731670{background:rgba(255,99,121,.18)!important;border-color:#ff6379!important;color:#ff6379!important;animation:idmkTremorV731670 .32s ease}
@keyframes idmkPulsoV731670{0%,100%{transform:scale(1)}50%{transform:scale(.9)}}
@keyframes idmkTremorV731670{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
/* reserva/imovel/servico: cartao grande empilhado, como no app */
html .shop-shell .idv-grid{display:flex!important;flex-direction:column!important;gap:14px!important;grid-template-columns:none!important}
html .shop-shell .idv-card{border-radius:22px!important;border:1px solid rgba(255,255,255,.11)!important;background:rgba(9,10,13,.72)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;overflow:hidden;content-visibility:auto;contain-intrinsic-size:auto 320px;
  transition:transform .16s ease,border-color .16s ease}
html .shop-shell .idv-card:hover{transform:translateY(-2px);border-color:rgba(215,255,1,.3)!important}
html .shop-shell .idv-media{aspect-ratio:16/10!important;width:100%!important;height:auto!important}
html .shop-shell .idv-media img{width:100%;height:100%;object-fit:cover;display:block}
html .shop-shell .idv-body{padding:13px 14px 15px!important;display:flex;flex-direction:column;gap:7px}
html .shop-shell .idv-tit{font-size:16px!important;font-weight:950!important;color:#fff!important;line-height:1.22!important}
html .shop-shell .idv-loc{font-size:12px!important;font-weight:800!important;color:rgba(255,255,255,.55)!important}
html .shop-shell .idv-preco{font-size:16px!important;font-weight:950!important;letter-spacing:-.2px}
html .shop-shell .idv-specs{display:flex;flex-wrap:wrap;gap:6px}
html .shop-shell .idv-spec{border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:900;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.66)}
html .shop-shell .idv-host{display:flex;align-items:center;gap:8px}
html .shop-shell .idv-host img{width:28px;height:28px;border-radius:50%;object-fit:cover}
