.push-flutuante{position:fixed;right:18px;bottom:18px;z-index:9997;border:0;border-radius:999px;background:#111827;color:#fff;padding:12px 17px;font-weight:800;box-shadow:0 10px 30px #0003}.push-modal{position:fixed;inset:0;background:#0009;z-index:9998;display:grid;place-items:center;padding:18px}.push-modal-card{width:min(620px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;position:relative}.push-modal-card h2{margin:0 35px 5px 0}.push-modal-card h3{margin:20px 0 8px}.push-fechar{position:absolute;right:15px;top:12px;border:0;background:none;font-size:30px}.push-opcoes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.push-opcoes label{border:1px solid #e5e7eb;border-radius:10px;padding:10px}.push-salvar{width:100%;margin-top:22px;border:0;border-radius:12px;background:#16a34a;color:#fff;padding:13px;font-weight:900}@media(max-width:560px){.push-opcoes{grid-template-columns:1fr}.push-flutuante{right:12px;bottom:12px}}

.push-flutuante:disabled{opacity:.72;cursor:wait}.push-flutuante:focus-visible{outline:3px solid #86efac;outline-offset:3px}

/* Botão de push mais discreto no celular e sem cobrir os cards */
@media(max-width:560px){
  .push-flutuante{
    right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    max-width:156px;
    min-height:40px;
    padding:9px 13px;
    font-size:12px;
    line-height:1.1;
    box-shadow:0 8px 22px rgba(0,0,0,.2);
  }
  /* O botão é fixo e não deve criar uma faixa vazia depois do rodapé. */
  body{padding-bottom:0}
}


/* Convite amigável antes da permissão oficial do navegador */
.push-convite{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.48);backdrop-filter:blur(2px)}
.push-convite-card{position:relative;width:min(520px,100%);border-radius:22px;background:#fff;padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.28);display:grid;grid-template-columns:auto 1fr;gap:14px 16px;animation:pushConviteEntrada .22s ease-out}
.push-convite-icone{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#ecfdf3;font-size:25px}
.push-convite-texto h2{margin:0 32px 8px 0;font-size:24px;line-height:1.15;color:#111827}
.push-convite-texto p{margin:0;color:#4b5563;font-size:16px;line-height:1.45}
.push-convite-fechar{position:absolute;top:10px;right:13px;width:36px;height:36px;border:0;background:transparent;color:#6b7280;font-size:30px;line-height:1;cursor:pointer}
.push-convite-acoes{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.45fr;gap:12px;margin-top:10px}
.push-convite-acoes button{min-height:52px;border-radius:14px;padding:12px 16px;font-weight:900;font-size:16px;cursor:pointer}
.push-convite-depois{border:1px solid #d1d5db;background:#f9fafb;color:#374151}
.push-convite-ativar{border:0;background:#16a34a;color:#fff}
.push-convite-ativar:focus-visible,.push-convite-depois:focus-visible,.push-convite-fechar:focus-visible{outline:3px solid #86efac;outline-offset:2px}
@keyframes pushConviteEntrada{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:560px){
  .push-convite{align-items:end;padding:14px}
  .push-convite-card{grid-template-columns:1fr;padding:22px 18px 18px;border-radius:22px}
  .push-convite-icone{width:44px;height:44px}
  .push-convite-texto h2{font-size:21px;margin-right:24px}
  .push-convite-texto p{font-size:15px}
  .push-convite-acoes{grid-template-columns:1fr;gap:9px}
  .push-convite-ativar{order:-1}
}
