:root{
  --fundo:#f4f1ea; --papel:#fffdf8; --tinta:#1d2433; --suave:#5d6577; --linha:#e3ddd0;
  --pri:#1f4d46; --pri-escuro:#163a35; --acento:#e0a526; --ok:#2e7d4f; --erro:#b3402a; --info:#2c5d8f;
  --raio:14px; --sombra:0 1px 2px rgba(29,36,51,.06),0 8px 24px rgba(29,36,51,.06);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--fundo);color:var(--tinta);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--pri)}
.topo{background:var(--pri);color:#fff}
.topo-in{max-width:1100px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.marca-icone{font-size:26px;color:var(--acento)}
.marca strong{display:block;font-size:17px;letter-spacing:.2px}
.marca small{display:block;opacity:.8;font-size:12.5px}
.nav-admin{display:flex;gap:4px;flex-wrap:wrap}
.nav-admin a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:8px;font-size:14px}
.nav-admin a:hover{background:rgba(255,255,255,.12)}
main{flex:1;width:100%;margin:0 auto;padding:24px 16px 40px}
main.estreito{max-width:560px}
main.largo{max-width:1100px}
.rodape{text-align:center;color:var(--suave);font-size:13px;padding:18px 16px}
.aviso-teste{background:#fff3cd;border:1px dashed #d6a400;color:#6b5200;padding:8px 12px;border-radius:10px;font-size:14px;margin-bottom:16px;text-align:center}

h1{font-size:26px;line-height:1.2;margin:4px 0 6px}
h2{font-size:19px;margin:0 0 12px}
.sub{color:var(--suave);margin:0 0 20px}
.cartao-box{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);padding:22px;margin-bottom:18px}

label{display:block;font-weight:600;font-size:14px;margin:14px 0 6px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=search],select{
  width:100%;padding:12px 13px;border:1px solid var(--linha);border-radius:10px;background:#fff;font:inherit;color:inherit}
input:focus,select:focus{outline:2px solid var(--acento);outline-offset:1px;border-color:transparent}
.dica{font-size:13px;color:var(--suave);margin-top:4px}
.grade2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media (max-width:520px){.grade2{grid-template-columns:1fr}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;padding:13px 18px;font:600 16px/1 inherit;cursor:pointer;text-decoration:none;background:var(--pri);color:#fff}
.btn:hover{background:var(--pri-escuro)}
.btn.bloco{width:100%;margin-top:18px}
.btn.sec{background:#fff;color:var(--pri);border:1px solid var(--linha)}
.btn.sec:hover{background:#f7f4ec}
.btn.acento{background:var(--acento);color:#2a1f00}
.btn.pequeno{padding:8px 12px;font-size:14px;border-radius:9px}

.valores{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.valores input{position:absolute;opacity:0;pointer-events:none}
.valores label{margin:0;border:1.5px solid var(--linha);background:#fff;border-radius:11px;text-align:center;padding:13px 6px;cursor:pointer;font-size:17px}
.valores input:checked+label{border-color:var(--pri);background:#e8f0ee;color:var(--pri)}
.valores input:focus-visible+label{outline:2px solid var(--acento)}

.alerta{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:15px}
.alerta.erro{background:#fbe9e5;color:var(--erro);border:1px solid #f0c8bf}
.alerta.ok{background:#e6f3ea;color:var(--ok);border:1px solid #c3e2cd}
.alerta.info{background:#e8f0f8;color:var(--info);border:1px solid #c9dbee}

.escolha{display:grid;gap:12px}
.escolha a{display:block;text-decoration:none;color:inherit;background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);padding:18px 20px;box-shadow:var(--sombra)}
.escolha a:hover{border-color:var(--pri)}
.escolha strong{display:block;font-size:18px;color:var(--pri)}
.escolha span{color:var(--suave);font-size:14.5px}

/* PIX */
.pix-qr{display:flex;justify-content:center;margin:8px 0 14px}
.pix-qr img,.pix-qr canvas{width:240px;height:240px;image-rendering:pixelated;border:8px solid #fff;border-radius:10px;box-shadow:var(--sombra)}
.copia{display:flex;gap:8px}
.copia input{font-family:ui-monospace,Consolas,monospace;font-size:13px}
.valor-grande{font-size:32px;font-weight:700;text-align:center;margin:2px 0}
.status{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--suave);margin-top:14px;font-size:15px}
.pulso{width:10px;height:10px;border-radius:50%;background:var(--acento);animation:p 1.2s infinite}
@keyframes p{0%{transform:scale(.8);opacity:.6}50%{transform:scale(1.2);opacity:1}100%{transform:scale(.8);opacity:.6}}

/* Cartão digital */
.cartao-digital{background:linear-gradient(145deg,#1f4d46,#2d6a5f);color:#fff;border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(31,77,70,.35);text-align:center}
.cartao-digital .cd-topo{display:flex;justify-content:space-between;align-items:center;font-size:13px;opacity:.9;margin-bottom:10px}
.cartao-digital .cd-nome{font-size:20px;font-weight:700;margin:2px 0 14px}
.cd-codigos{background:#fff;border-radius:12px;padding:16px 12px 10px;color:var(--tinta)}
.cd-codigos canvas,.cd-codigos svg{max-width:100%}
#qr{display:flex;justify-content:center}
.cd-num{font-family:ui-monospace,Consolas,monospace;font-size:20px;letter-spacing:2px;margin-top:4px}
.acoes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}

/* Tabelas (admin / histórico) */
.tabela-wrap{overflow-x:auto;background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra)}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--linha);white-space:nowrap}
th{font-size:12.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--suave);background:#faf7f0}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.selo{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:600}
.selo.aprovado{background:#e6f3ea;color:var(--ok)}
.selo.pendente{background:#fff3d6;color:#8a6100}
.selo.cancelado,.selo.expirado{background:#eee;color:#666}
.selo.estornado{background:#fbe9e5;color:var(--erro)}
.selo.sync{background:#e8f0f8;color:var(--info)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
@media (max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}}
.kpi{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);padding:14px 16px}
.kpi small{color:var(--suave);font-size:13px}
.kpi strong{display:block;font-size:22px;font-variant-numeric:tabular-nums}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.filtros input,.filtros select{width:auto;flex:1 1 180px;padding:9px 11px}
.paginacao{display:flex;gap:6px;justify-content:center;margin-top:14px}
.login{max-width:380px;margin:30px auto}
/* células que podem quebrar linha (admin) */
td.quebra{white-space:normal}
td.acoes{white-space:normal;min-width:150px}
.acoes-flex{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.selos-col .selo{margin:0 0 4px 0;display:inline-block}
