:root {
  /* Paleta verde e amarela (cores da bandeira), com azul escuro só em detalhes. */
  --azul:#009c3b;         /* verde principal: botões, barras, links de ação */
  --azul-escuro:#006b2b;  /* verde escuro: cabeçalho e hover */
  --amarelo-forte:#ffdf00;/* amarelo da bandeira: destaque e chamada principal */
  --amarelo-escuro:#b38f00;
  --marinho:#002776;      /* azul da bandeira: títulos */
  --fundo:#f4f7f4; --cartao:#fff; --texto:#111827; --cinza:#6b7280; --borda:#e3e8e3;
  --verde:#15803d; --vermelho:#b91c1c; --amarelo:#fff7c2; --laranja:#b45309;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--fundo); color:var(--texto); font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
header { background:#fff; color:var(--texto); border-bottom:5px solid var(--amarelo-forte); box-shadow:0 1px 3px rgba(0,0,0,.08); }
header nav { max-width:900px; margin:0 auto; padding:12px 16px; display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
header a { color:var(--azul-escuro); text-decoration:none; font-weight:600; opacity:.9; }
header a:hover { opacity:1; text-decoration:underline; }
header .marca { margin-right:auto; display:inline-flex; align-items:center; }
header .marca img { height:48px; width:auto; max-width:60vw; display:block; object-fit:contain; }
main { max-width:900px; margin:24px auto; padding:0 16px; }
h1 { font-size:1.7em; margin:0 0 16px; line-height:1.25; color:var(--marinho); }
h2 { font-size:1.25em; margin:0 0 10px; }
h3 { font-size:1.05em; margin:24px 0 8px; color:var(--cinza); text-transform:uppercase; letter-spacing:.04em; }
.cartao { background:var(--cartao); border:1px solid var(--borda); border-radius:12px; padding:20px 22px; margin-bottom:18px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.erro, .aviso { border-radius:8px; padding:12px 14px; margin-bottom:16px; }
.erro { background:#fee2e2; color:var(--vermelho); border:1px solid #fca5a5; }
.aviso { background:var(--amarelo); color:#5c4a00; border:1px solid var(--amarelo-forte); }
label { display:block; font-weight:600; margin-bottom:4px; }
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input:not([type]), select, textarea, input[type=datetime-local] { width:100%; max-width:420px; padding:10px 12px; font:inherit; border:1px solid #cbd5e1; border-radius:8px; background:#fff; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--azul); outline-offset:1px; border-color:var(--azul); }
.campo { margin-bottom:16px; }
.check { display:flex; gap:10px; align-items:flex-start; font-weight:normal; }
.check input { margin-top:5px; }
.codigo { max-width:180px; font-size:1.4em; letter-spacing:.3em; text-align:center; }
button, .botao { display:inline-block; background:var(--azul); color:#fff; border:0; border-radius:8px; padding:11px 20px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none; }
button:hover, .botao:hover { background:var(--azul-escuro); }
button.sec, .botao.sec { background:#fff; color:var(--azul); border:1px solid var(--azul); }
button.perigo { background:var(--vermelho); }
button.min { padding:6px 12px; font-size:.9em; }
.acoes { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:8px; }
.mudo { color:var(--cinza); font-size:.92em; }
.passos { list-style:none; display:flex; gap:6px; padding:0; margin:0 0 18px; flex-wrap:wrap; }
.passos li { flex:1 1 120px; text-align:center; font-size:.85em; padding:8px 6px; border-radius:8px; background:#e5e7eb; color:var(--cinza); }
.passos li.feito { background:#dcfce7; color:var(--verde); }
.passos li.atual { background:var(--amarelo-forte); color:var(--marinho); font-weight:600; }
.passos li span { display:block; font-size:1.2em; font-weight:700; }
.opcao { display:flex; align-items:center; gap:14px; border:2px solid var(--borda); border-radius:10px; padding:14px 16px; margin-bottom:10px; cursor:pointer; font-weight:600; font-size:1.05em; background:#fff; }
.opcao:hover { border-color:var(--azul); }
.opcao:has(input:checked) { border-color:var(--azul); background:#eaf7ee; }
.opcao input { width:20px; height:20px; margin:0; }
.sociais { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.resultado-linha { margin-bottom:14px; }
.resultado-linha .nome { display:flex; justify-content:space-between; font-weight:600; }
.barra { height:14px; background:#e5e7eb; border-radius:7px; overflow:hidden; margin-top:4px; }
.barra div { height:100%; background:var(--azul); border-radius:7px; transition:width .6s ease; }
.destaque { font-size:2em; font-weight:700; color:var(--marinho); }
.destaque small { font-size:.5em; font-weight:normal; color:var(--cinza); }
.recibo { font:700 1.5em/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.06em; background:var(--amarelo); border:2px dashed var(--amarelo-escuro); color:var(--marinho); border-radius:10px; padding:14px; text-align:center; word-break:break-all; }
.ao-vivo { display:inline-flex; align-items:center; gap:6px; font-size:.85em; color:var(--verde); font-weight:600; }
.ao-vivo::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--verde); animation:pulsar 1.5s infinite; }
@keyframes pulsar { 50% { opacity:.3; } }
table { width:100%; border-collapse:collapse; background:#fff; font-size:.95em; }
th, td { padding:9px 10px; border-bottom:1px solid var(--borda); text-align:left; vertical-align:top; }
th { background:#f9fafb; font-weight:600; color:var(--cinza); font-size:.85em; text-transform:uppercase; letter-spacing:.03em; }
td.num, th.num { text-align:right; }
.rolagem { overflow-x:auto; }
.tag { display:inline-block; padding:2px 8px; border-radius:999px; font-size:.8em; font-weight:600; background:#e5e7eb; white-space:nowrap; }
.tag.aberta, .tag.valido { background:#dcfce7; color:var(--verde); }
.tag.em_analise, .tag.nao_aberta, .tag.rascunho { background:var(--amarelo); color:var(--amarelo-escuro); }
.tag.encerrada, .tag.anulado, .tag.cancelada { background:#fee2e2; color:var(--vermelho); }
.lista-enquetes .cartao h2 a { color:var(--texto); text-decoration:none; }
form.inline { display:inline; }
.grade { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.filtros { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.filtros input, .filtros select { width:auto; min-width:120px; }
.paginacao { display:flex; gap:8px; align-items:center; margin-top:12px; }
footer { max-width:900px; margin:30px auto; padding:0 16px; color:var(--cinza); font-size:.85em; }
code { font-family:ui-monospace,Menlo,monospace; }
main a { color:var(--azul-escuro); }
.botao, main a.botao { color:#fff; }
main a.botao.sec { color:var(--azul); }
main a.botao.grande { color:var(--marinho); }
.chamada { border-top:6px solid var(--amarelo-forte); }
.topo-marca { display:flex; align-items:center; justify-content:center; gap:28px; flex-wrap:wrap; margin-bottom:14px; }
.logo-topo { display:block; width:100%; max-width:420px; height:auto; aspect-ratio:3/1; object-fit:contain; }
.doacao { display:flex; align-items:center; gap:16px; padding:14px 16px; border-radius:16px; background:linear-gradient(135deg, var(--azul-escuro), var(--azul)); color:#fff; box-shadow:0 6px 18px rgba(0,107,43,.25); max-width:420px; }
.doacao-qr { flex:0 0 auto; background:#fff; padding:8px; border-radius:12px; border:3px solid var(--amarelo-forte); }
.doacao-qr img { display:block; width:134px; height:134px; }
.doacao-texto { display:flex; flex-direction:column; gap:6px; min-width:0; }
.doacao-titulo { font-weight:800; font-size:1.05em; line-height:1.2; color:var(--amarelo-forte); }
.doacao-sub { font-size:.82em; line-height:1.3; color:#e6f4ea; }
.doacao-chave { display:flex; align-items:center; gap:8px; margin-top:2px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35); color:#fff; font:inherit; font-size:.78em; cursor:pointer; text-align:left; max-width:100%; }
.doacao-chave span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:ui-monospace,Menlo,monospace; }
.doacao-chave em { font-style:normal; font-weight:700; color:var(--amarelo-forte); flex:0 0 auto; }
.doacao-chave:hover { background:rgba(255,255,255,.22); }
.doacao .botao.sec.min { background:transparent; color:#fff; border-color:rgba(255,255,255,.6); align-self:flex-start; }
@media (max-width:600px) { .doacao { flex-direction:column; text-align:center; } .doacao-texto { align-items:center; } }
main:has(.logo-topo) h1 { text-align:center; }

.chamada::after { content:""; display:block; clear:both; }
.chamada h2 { font-size:1.35em; color:var(--azul-escuro); }
.chamada p { font-size:1.05em; }
.como { padding-left:22px; margin:10px 0 18px; }
.como li { margin-bottom:6px; }
.botao.grande { font-size:1.15em; padding:14px 26px; background:var(--amarelo-forte); color:var(--marinho); }
.botao.grande:hover { background:#f2d400; }
.contador { font-size:1.15em; background:var(--amarelo); border-radius:8px; padding:10px 14px; display:inline-block; }
.galeria { display:grid; grid-template-columns:repeat(auto-fill, minmax(58px, 1fr)); gap:4px; }
@media (min-width:1200px) { .galeria { grid-template-columns:repeat(auto-fill, minmax(62px, 1fr)); } }
.galeria figure { position:relative; margin:0; border-radius:6px; overflow:hidden; background:#eee; border:2px solid var(--amarelo-forte); cursor:pointer; transition:transform .15s ease, box-shadow .15s ease; }
.galeria figure:hover, .galeria figure:focus-within { transform:translateY(-3px) scale(1.6); box-shadow:0 8px 20px rgba(0,0,0,.18); z-index:1; }
.galeria img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; }
.galeria figcaption { position:absolute; left:0; right:0; bottom:0; padding:12px 4px 4px; background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.55) 60%, transparent); color:#fff; font-size:.5em; line-height:1.25; opacity:0; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease; }
.galeria figure:hover figcaption, .galeria figure:focus-within figcaption { opacity:1; transform:none; }
.galeria figcaption b { display:block; font-size:1.05em; }
.galeria figcaption .mudo { color:#e5e7eb; }
.galeria figcaption a { color:var(--amarelo-forte); font-weight:600; text-decoration:none; }
.galeria figcaption a:hover { text-decoration:underline; }
@media (hover:none) { .galeria figcaption { opacity:1; transform:none; padding-top:18px; } }
.galeria.moderacao { grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); }
.galeria.moderacao figcaption { position:static; opacity:1; transform:none; background:#fff; color:var(--texto); padding:8px; }
.galeria.moderacao figcaption .mudo { color:var(--cinza); }
.galeria.moderacao form { padding:0 8px 8px; }
.galeria.moderacao input { width:100%; padding:5px; margin:4px 0; font-size:.9em; }
input[type=file] { font:inherit; }
[hidden] { display:none !important; }
.selfie .moldura { position:relative; width:100%; max-width:280px; aspect-ratio:3/4; border-radius:16px; overflow:hidden; background:#1f2937; border:3px solid var(--amarelo-forte); margin-bottom:10px; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.selfie video, .selfie img.previa { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.selfie video { transform:scaleX(-1); }
.selfie .vazio { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#cbd5e1; font-size:.95em; text-align:center; padding:12px; }
.selfie .vazio .icone { font-size:2.4em; }
.selfie .acoes { margin-top:0; }
button:disabled { background:#9ca3af; cursor:not-allowed; }
.compartilhar { border-top:1px solid var(--borda); margin-top:16px; padding-top:12px; }
.compartilhar h3 { margin-top:0; }
.card-previa { display:block; width:180px; aspect-ratio:9/16; object-fit:cover; border-radius:12px; border:3px solid var(--amarelo-forte); margin:8px 0 12px; }
.doacao-porque { background:none; border:0; padding:0; margin-top:4px; color:#fff; font:inherit; font-size:.85em; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; text-align:left; }
.doacao-porque:hover { color:var(--amarelo-forte); background:none; }
.dialogo { border:0; border-radius:16px; padding:26px 28px; max-width:560px; width:calc(100% - 32px); box-shadow:0 20px 60px rgba(0,0,0,.35); border-top:6px solid var(--amarelo-forte); }
.dialogo::backdrop { background:rgba(0,40,20,.55); }
.dialogo h2 { color:var(--azul-escuro); font-size:1.1em; margin:14px 0 6px; }
.dialogo h2:first-of-type { margin-top:0; padding-right:36px; }
.dialogo ul { margin:0; padding-left:22px; }
.dialogo li { margin-bottom:6px; }
.dialogo li::marker { color:var(--azul); }
.dialogo form[method=dialog] { position:absolute; top:10px; right:12px; margin:0; }
.dialogo .fechar { background:none; border:0; color:var(--cinza); font-size:1.8em; line-height:1; padding:4px 8px; cursor:pointer; }
.dialogo .fechar:hover { color:var(--texto); background:none; }
.dialogo-pix { margin:18px 0 0; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-weight:600; }
.doacao-chave.escuro { background:#eaf7ee; border-color:var(--azul); color:var(--texto); }
.doacao-chave.escuro em { color:var(--azul-escuro); }

/* Verificação de segurança (Turnstile): linha de status + nota, como um campo do formulário */
.seguranca { margin:4px 0 18px; }
.seguranca .cf-turnstile:empty { display:none; }
.seguranca .cf-turnstile { margin-bottom:8px; }
.seguranca-status { display:flex; align-items:center; gap:8px; margin:0; font-size:.95em; color:var(--cinza); }
.seguranca-status .seguranca-icone { flex:0 0 auto; }
.seguranca-status .ok { opacity:0; }
.seguranca-status[data-estado=verificando] .seguranca-icone { animation:pulsar 1.4s infinite; }
.seguranca-status[data-estado=ok] { color:var(--verde); font-weight:600; }
.seguranca-status[data-estado=ok] .ok { opacity:1; }
.seguranca-status[data-estado=erro] { color:var(--vermelho); }
.seguranca-nota { margin:4px 0 0; font-size:.8em; }
.seguranca-nota a { color:inherit; text-decoration:underline; }

/* Mural na inicial: uma única linha de fotos sorteadas; o que não cabe rola de lado */
.galeria.linha { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-start; padding:14px 2px 4px; margin:-6px 0 0; }
.galeria.linha figure { flex:0 0 68px; width:68px; }
.galeria.linha figure[hidden] { display:none; }
.galeria.linha figure:hover, .galeria.linha figure:focus-within { transform:translateY(-2px) scale(1.5); }
@media (max-width:600px) { .galeria.linha figure { flex-basis:60px; width:60px; } }

/* Mural: rolagem infinita */
.carregar { text-align:center; padding:14px 0 4px; min-height:48px; color:var(--cinza); font-size:.9em; }
.carregar.ocupado::after { content:"Carregando mais fotos…"; }

/* 2FA do admin */
.qr-2fa { display:flex; justify-content:center; margin:12px 0 16px; }
.qr-2fa img { background:#fff; padding:10px; border:3px solid var(--amarelo-forte); border-radius:12px; max-width:100%; height:auto; }
details.mudo summary { cursor:pointer; margin:8px 0; }
details.mudo .recibo { margin:10px 0 6px; font-size:1.1em; }

/* Admin: navegação e tabela de participantes */
.admin-nav { margin:0 0 14px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.admin-nav a { font-weight:600; }
.participantes td { vertical-align:top; }
.participantes .ia { max-width:260px; font-size:.85em; }
.participantes tr.removida td { opacity:.6; }
.miniatura { width:56px; height:74px; object-fit:cover; border-radius:6px; border:2px solid var(--amarelo-forte); display:block; }
.cartao.destaque { border:2px solid var(--amarelo-forte); background:var(--amarelo); }
main.largo { max-width:1320px; }
.admin-nav .inline { display:inline-flex; }
.participantes { font-size:.9em; }
.participantes th, .participantes td { padding:8px 6px; }
.participantes .ia { max-width:300px; }
.participantes .ia span { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.participantes td:last-child form { flex-wrap:nowrap; }

.resumo-grade { margin:12px 0 8px; color:var(--cinza); }
.resumo-grade b { color:var(--marinho); font-size:1.15em; }
.rodape-grade { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; justify-content:space-between; padding:12px 4px 2px; border-top:1px solid #e5e7eb; margin-top:4px; font-size:.92em; color:var(--cinza); }
.rodape-grade b { color:var(--texto); }
.por-pagina { display:inline-flex; align-items:center; gap:8px; font-weight:normal; }
.por-pagina select { width:auto; min-width:70px; padding:6px 8px; }
.paginas { display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.pag { display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 8px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:var(--azul-escuro); text-decoration:none; font-weight:600; }
a.pag:hover { border-color:var(--azul); background:#eff6ff; }
.pag.atual { background:var(--marinho); border-color:var(--marinho); color:#fff; }
.pag.off { color:#9ca3af; border-color:#e5e7eb; background:#f8fafc; cursor:default; }
@media (max-width:700px) { .rodape-grade { justify-content:center; } }

.dialogo .campo input { max-width:none; }
.dialogo .acoes { margin-top:14px; }
.participantes .acoes-linha { white-space:nowrap; }

/* Chamada para marcar os perfis ao postar a foto */
.chamada-marcar { display:flex; gap:12px; align-items:center; margin:14px 0 6px; padding:14px 16px; border-radius:12px; background:linear-gradient(135deg, var(--amarelo-forte), #ffe94d); border:2px solid var(--amarelo-escuro); color:var(--marinho); box-shadow:0 6px 18px rgba(179,143,0,.25); animation:chamar 1.6s ease-in-out 3; }
.chamada-marcar p { margin:0; font-weight:700; font-size:1.05em; line-height:1.4; }
.chamada-marcar a { color:var(--marinho); text-decoration:underline; text-decoration-thickness:2px; white-space:nowrap; }
.chamada-marcar-icone { font-size:1.8em; flex:0 0 auto; }
@keyframes chamar { 0%,100% { transform:scale(1); } 50% { transform:scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .chamada-marcar { animation:none; } }

.dialogo-card { max-width:420px; text-align:center; }
.dialogo-card img { width:100%; max-width:360px; height:auto; border-radius:12px; border:3px solid var(--amarelo-forte); margin:8px auto 0; display:block; }
.dialogo-card .acoes { justify-content:center; }
.participantes .miniatura { cursor:zoom-in; }

/* Contador grande da inicial */
.contador { display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; background:var(--amarelo); border:1px solid var(--amarelo-forte); border-radius:12px; padding:16px 14px 12px; margin:14px 0; }
.contador-rotulo { font-weight:600; color:var(--marinho); font-size:1.05em; }
.contador-numero { font-size:clamp(2.6em, 9vw, 4.6em); line-height:1; font-weight:800; letter-spacing:.04em; color:var(--marinho); font-variant-numeric:tabular-nums; }

/* Botão do Instagram no topo */
header nav a.instagram { display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:999px; color:#fff; background:linear-gradient(45deg, #f58529, #dd2a7b 55%, #8134af); font-weight:700; text-decoration:none; box-shadow:0 2px 8px rgba(221,42,123,.3); transition:transform .15s ease, box-shadow .15s ease; }
header nav a.instagram:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(221,42,123,.4); color:#fff; }
header nav a.instagram svg { flex:0 0 auto; }
@media (max-width:520px) { header nav a.instagram span { display:none; } header nav a.instagram { padding:7px 9px; } }

/* Imagens das páginas públicas: sem arrastar nem menu de salvar no toque longo */
main:not(.largo) img { -webkit-user-drag:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
