/* Abertura, manifesto e avaliações. Usa os tokens de estilo.css. */

/* ---------- Abertura ---------- */
html.abertura-aberta, html.abertura-aberta body { overflow: hidden; }
.abertura {
  position: fixed; inset: 0; z-index: 100;
  background: radial-gradient(120% 90% at 50% 40%, #2A0C0F 0%, #0E0708 70%);
  color: #F5ECEB; display: grid; place-items: center; overflow: hidden;
  padding: env(safe-area-inset-top, 0px) max(16px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(16px, env(safe-area-inset-left, 0px));
  transition: opacity .7s ease, transform .7s ease;
}
.abertura.saindo { opacity: 0; transform: scale(1.04); pointer-events: none; }
.ab-tela { position: absolute; inset: 0; }
.ab-palco { position: relative; z-index: 2; text-align: center; max-width: 900px; pointer-events: none; }
.ab-palco button, .ab-palco a { pointer-events: auto; }
.ab-frase {
  font: 700 clamp(30px, 5.6vw, 68px)/1.04 var(--f-display); letter-spacing: -0.035em; text-wrap: balance;
  opacity: 0; transform: translateY(18px); filter: blur(10px);
  transition: opacity .7s ease, transform .9s cubic-bezier(.2,.7,.2,1), filter .7s ease;
  text-shadow: 0 2px 30px rgba(0,0,0,.6);
}
.ab-frase.on { opacity: 1; transform: none; filter: none; }
.ab-final { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.ab-estrela {
  position: relative; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  background: #D3121B; font-size: 32px; color: #fff;
  box-shadow: 0 0 0 10px rgba(211,18,27,.18), 0 0 60px rgba(255,77,82,.5);
}
/* pulso: uma camada de brilho que cresce e some (transform + opacity, sem redesenhar a sombra) */
.ab-estrela::after {
  content: ""; position: absolute; inset: -18px; border-radius: 50%; z-index: -1;
  background: radial-gradient(closest-side, rgba(255,77,82,.55), rgba(211,18,27,.12) 60%, rgba(211,18,27,0));
  animation: ab-pulso 2.4s ease-in-out infinite; will-change: transform, opacity;
}
.ab-rotulo { font: 500 13px/1 var(--f-mono); letter-spacing: .3em; text-transform: uppercase; color: #F7C437; }
.ab-titulo { font: 800 clamp(52px, 11vw, 140px)/.88 var(--f-display); letter-spacing: -0.05em; text-shadow: 0 4px 40px rgba(0,0,0,.7); }
.ab-titulo span { display: inline-block; animation: ab-entra 1s cubic-bezier(.2,.7,.2,1) both; }
.ab-titulo span + span { color: #FF4D52; animation-delay: .25s; }
.ab-sub { font-size: clamp(16px, 2.2vw, 20px); color: rgba(245,236,235,.82); animation: ab-entra 1s .5s both; }
.ab-sub b { color: #fff; font-family: var(--f-display); }
.ab-botoes { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; animation: ab-entra 1s .7s both; }
.ab-btn-claro { border-color: rgba(245,236,235,.7); color: #F5ECEB; }
.ab-btn-claro:hover { background: #F5ECEB; color: #1B1315; }
.ab-dica { font: 500 12px/1.5 var(--f-mono); color: rgba(245,236,235,.55); animation: ab-entra 1s 1.2s both; }
.ab-pular {
  position: absolute; z-index: 3;
  top: calc(16px + env(safe-area-inset-top, 0px)); right: max(16px, env(safe-area-inset-right, 0px));
  background: rgba(255,255,255,.08); color: #F5ECEB; border: 1px solid rgba(245,236,235,.3); border-radius: 99px;
  font: 500 13px var(--f-mono); padding: 9px 14px; cursor: pointer;
}
.ab-pular:hover { background: rgba(255,255,255,.18); }
.ab-avancar {
  position: absolute; z-index: 2; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); left: 0; right: 0;
  text-align: center; font: 500 12px var(--f-mono); letter-spacing: .2em; text-transform: uppercase;
  color: rgba(245,236,235,.45); animation: ab-piscar 2s ease-in-out infinite; pointer-events: none;
}
.ab-cartela {
  position: absolute; z-index: 4; width: 260px; max-width: calc(100vw - 32px); text-decoration: none;
  background: #F5ECEB; color: #1B1315; border-radius: 12px; padding: 12px 14px;
  display: flex; flex-direction: column; gap: 4px; box-shadow: 0 12px 40px rgba(0,0,0,.5); font-size: 14px; line-height: 1.3;
}
.ab-cartela b { font: 700 17px/1.15 var(--f-display); }
.ab-cartela-cat { font: 500 11px var(--f-mono); text-transform: uppercase; letter-spacing: .06em; color: #D3121B; }
.ab-cartela span:last-child { color: #66565A; }
.abertura { background: radial-gradient(110% 85% at 50% 45%, #2B070B 0%, #120406 60%, #070203 100%); }
.ab-vinheta { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%); }
.abertura.no-fim .ab-vinheta { background: radial-gradient(ellipse at center, rgba(7,2,3,.62) 0%, rgba(7,2,3,.35) 45%, rgba(0,0,0,.6) 100%); transition: background 1.2s ease; }
.ab-palco { z-index: 3; }
.ab-portao {
  position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
  text-align: center; padding: 24px; transition: opacity .6s ease;
}
.ab-portao.saindo { opacity: 0; pointer-events: none; }
/* respiro entre a estrela e o texto (o brilho da estrela precisa de espaço) */
.ab-portao .ab-estrela { margin-bottom: clamp(14px, 3vh, 30px); }
.ab-final .ab-estrela { margin-bottom: clamp(8px, 1.5vh, 16px); }
.ab-portao-titulo { font: 800 clamp(40px, 8vw, 96px)/.92 var(--f-display); letter-spacing: -0.05em; color: #F5ECEB; text-shadow: 0 0 40px rgba(255,42,53,.45); }
.ab-botoes-portao { animation: none; }
.ab-legenda {
  position: absolute; z-index: 4; left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 18px)) scale(.98);
  width: min(90vw, 940px); text-align: center; pointer-events: none;
  font: 800 clamp(34px, 6.4vw, 84px)/1.0 var(--f-display); letter-spacing: -0.04em; text-wrap: balance; color: #FFF6F5;
  text-shadow: 0 4px 40px rgba(0,0,0,.95), 0 0 3px rgba(0,0,0,.9);
  opacity: 0; filter: blur(12px); transition: opacity .8s ease, transform 1.1s cubic-bezier(.2,.7,.2,1), filter .8s ease;
}
.ab-legenda.on { opacity: 1; transform: translate(-50%, -50%) scale(1); filter: none; }
/* halo escuro atrás do texto: o mapa continua visível em volta */
.ab-halo {
  position: absolute; z-index: 3; left: 50%; top: 50%; width: min(120vw, 1300px); height: min(70vh, 560px);
  transform: translate(-50%, -50%); pointer-events: none; opacity: 0; transition: opacity 1.2s ease;
  background: radial-gradient(closest-side, rgba(10,2,4,.78) 0%, rgba(10,2,4,.5) 45%, rgba(10,2,4,0) 100%);
}
.abertura.em-cena .ab-halo { opacity: 1; }
.abertura.no-fim .ab-halo { opacity: .85; }
.ab-lema { font: 600 clamp(20px, 3vw, 30px)/1.2 var(--f-display); color: #F7C437; letter-spacing: -0.01em; animation: ab-entra 1s .4s both; text-shadow: 0 2px 20px rgba(0,0,0,.8); }
.ab-som {
  position: absolute; z-index: 6; top: calc(16px + env(safe-area-inset-top, 0px)); left: max(16px, env(safe-area-inset-left, 0px));
  background: rgba(255,255,255,.08); color: #F5ECEB; border: 1px solid rgba(245,236,235,.3); border-radius: 99px;
  font: 500 13px var(--f-mono); padding: 9px 14px; cursor: pointer;
}
.ab-pular { z-index: 6; }
.ab-credito { position: absolute; z-index: 2; right: max(12px, env(safe-area-inset-right, 0px)); bottom: calc(8px + env(safe-area-inset-bottom, 0px)); font: 500 10px var(--f-mono); color: rgba(245,236,235,.35); pointer-events: none; }
.ab-avancar { z-index: 4; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
@keyframes ab-entra { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes ab-pulso { 0%, 100% { transform: scale(.85); opacity: .55; } 50% { transform: scale(1.25); opacity: 1; } }
@keyframes ab-piscar { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) {
  .ab-frase, .abertura { transition: none; }
  .ab-titulo span, .ab-sub, .ab-botoes, .ab-dica, .ab-estrela::after, .ab-avancar { animation: none; }
}

/* ---------- Blocos "cartaz" (Quem fez, capa e fim do manifesto) ----------
   Sempre escuros, nos dois temas: redefinem as cores só dentro do bloco.
   (Antes, no tema escuro, eles ficavam claros e o dourado e o vermelho perdiam contraste.) */
.criadora, .mani-capa, .mani-fim {
  --tinta: #1B1315; --papel: #F5ECEB; --tinta-2: #C9B8B9;
  --vermelho: #FF4D52; --sobre-vermelho: #1A0708; --sol: #F7C437;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) :is(.criadora, .mani-capa, .mani-fim) { --tinta: #2A1214; } }
:root[data-theme="dark"] :is(.criadora, .mani-capa, .mani-fim) { --tinta: #2A1214; }
.criadora { color: var(--papel); }

/* ---------- Manifesto ---------- */
.mani { display: flex; flex-direction: column; }
.miolo {
  max-width: var(--largura); margin: 0 auto; width: 100%;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px));
}
.mani-capa { background: var(--tinta); color: var(--papel); }
.mani-capa .miolo { padding-block: clamp(48px, 9vw, 120px); display: flex; flex-direction: column; gap: 24px; }
.mani-capa .rotulo { color: var(--sol); }
.mani-capa h1 { font-size: clamp(52px, 11vw, 150px); font-weight: 800; line-height: .88; letter-spacing: -0.05em; max-width: 12ch; }
.mani-capa h1 em { font-style: normal; color: var(--vermelho); }
.mani-capa p { font-size: clamp(18px, 2.3vw, 24px); max-width: 44ch; color: color-mix(in srgb, var(--papel) 82%, transparent); }
.mani-bloco .miolo { padding-block: clamp(48px, 7vw, 96px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(20px, 5vw, 64px); }
.mani-bloco + .mani-bloco .miolo { border-top: 1px solid var(--linha); }
.mani-bloco h2 { font-size: clamp(32px, 4.6vw, 58px); font-weight: 800; letter-spacing: -0.04em; }
.mani-texto { display: flex; flex-direction: column; gap: 18px; font-size: clamp(18px, 1.9vw, 21px); line-height: 1.6; max-width: 62ch; }
.mani-texto strong { color: var(--vermelho); font-weight: 700; }
@media (max-width: 760px) { .mani-bloco .miolo { grid-template-columns: 1fr; } }
.mani-citacao { background: var(--vermelho); color: var(--sobre-vermelho); }
.mani-citacao .miolo { padding-block: clamp(56px, 9vw, 120px); }
.mani-citacao blockquote { margin: 0; font: 800 clamp(30px, 5.4vw, 72px)/1 var(--f-display); letter-spacing: -0.04em; text-wrap: balance; max-width: 20ch; }
.mani-citacao cite { display: block; margin-top: 20px; font: 500 13px var(--f-mono); letter-spacing: .08em; text-transform: uppercase; font-style: normal; opacity: .85; }
.combinados { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); border-top: 2px solid var(--tinta); }
.combinado { padding: 22px 20px 26px 0; display: flex; flex-direction: column; gap: 10px; border-bottom: 1px solid var(--linha); }
.combinado h3 { font-size: 24px; font-weight: 700; }
.combinado p { color: var(--tinta-2); }
.mani-fim { background: var(--tinta); color: var(--papel); }
.mani-fim .miolo { padding-block: clamp(56px, 8vw, 110px); display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.mani-fim h2 { font-size: clamp(36px, 6vw, 80px); font-weight: 800; letter-spacing: -0.045em; max-width: 16ch; }
.mani-fim p { font-size: 19px; max-width: 52ch; color: color-mix(in srgb, var(--papel) 80%, transparent); }
.mani-fim .ficha { width: min(100%, 520px); border-top-color: var(--papel); }
.mani-fim .ficha span { color: color-mix(in srgb, var(--papel) 65%, transparent); }
.mani-fim .btn { border-color: var(--papel); color: var(--papel); }
.mani-fim .btn:hover { background: var(--papel); color: var(--tinta); }
.mani-fim .btn-primario { background: var(--vermelho); border-color: var(--vermelho); color: var(--sobre-vermelho); }
.creditos .miolo { padding-block: 48px 56px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 24px; }
.creditos h2 { font-size: 26px; }
.creditos-texto { display: flex; flex-direction: column; gap: 14px; max-width: 62ch; }
.creditos dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; margin: 0; }
.creditos dt { font: 500 12px/1.9 var(--f-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); }
.creditos dd { margin: 0; font-weight: 600; }
@media (max-width: 760px) { .creditos .miolo { grid-template-columns: 1fr; } }
.revela { transition: opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.revela.fora { opacity: .15; transform: translateY(28px); }
@media (prefers-reduced-motion: reduce) { .revela, .revela.fora { transition: none; opacity: 1; transform: none; } }

/* Menu com 4 itens no celular */
@media (max-width: 480px) {
  .marca-texto { display: none; }
  .menu { gap: 0; }
  .menu a { padding: 8px 9px; font-size: 14px; }
}
@media (max-width: 360px) { .menu a { padding: 7px 6px; font-size: 13px; } }

/* ---------- Avaliações ---------- */
.estrelas { color: var(--sol); letter-spacing: 1px; white-space: nowrap; }
.estrelas i { font-style: normal; color: color-mix(in srgb, var(--tinta-2) 55%, transparent); }
.nota-linha { display: inline-flex; align-items: center; gap: 6px; font: 500 13px var(--f-mono); color: var(--tinta-2); }
.nota-linha b { color: var(--tinta); font-family: var(--f-texto); font-weight: 700; }
.selo-top { background: var(--tinta); color: var(--sol); }
.avaliacoes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 40px; align-items: start; border-top: 2px solid var(--tinta); padding-top: 28px; }
.avaliacoes h2 { font-size: clamp(28px, 4vw, 40px); }
.aval-lado { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.resumo-nota { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.resumo-nota b { font: 800 64px/1 var(--f-display); font-variant-numeric: tabular-nums; }
.resumo-nota .estrelas { font-size: 24px; }
.lista-aval { display: flex; flex-direction: column; min-width: 0; }
.aval { padding: 16px 0; border-bottom: 1px solid var(--linha); display: flex; flex-direction: column; gap: 6px; }
.aval p { white-space: pre-line; overflow-wrap: anywhere; }
.aval small { font: 500 12px var(--f-mono); color: var(--tinta-2); }
.form-aval { display: flex; flex-direction: column; gap: 14px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; }
.form-aval .campo input[type="text"], .form-aval .campo textarea { width: 100%; }
.escolha { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.escolha legend { font-weight: 600; padding: 0; margin-bottom: 6px; }
.escolha-estrelas { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.escolha-estrelas input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.escolha-estrelas label { font-size: 38px; line-height: 1; color: color-mix(in srgb, var(--tinta-2) 55%, transparent); cursor: pointer; padding: 2px; }
.escolha-estrelas label:hover, .escolha-estrelas label:hover ~ label,
.escolha-estrelas input:checked ~ label { color: var(--sol); }
.escolha-estrelas input:focus-visible + label { outline: 3px solid var(--sol); border-radius: 6px; }
@media (max-width: 800px) { .avaliacoes { grid-template-columns: 1fr; gap: 24px; } }
/* ---------- Botões com ícone, abas por tipo, novos ---------- */
.ico { width: 17px; height: 17px; flex: none; }
.cartao-pe .btn { gap: 6px; padding-inline: 10px; min-width: 0; }
.abas-tipo { display: flex; gap: 0; border: 1.5px solid var(--tinta); border-radius: 99px; padding: 4px; width: fit-content; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.abas-tipo button { flex: none; font: 600 14px/1 var(--f-texto); padding: 10px 14px; border-radius: 99px; border: 0; background: transparent; color: var(--tinta); cursor: pointer; white-space: nowrap; }
.abas-tipo button small { font: 500 11px var(--f-mono); color: var(--tinta-2); margin-left: 5px; }
.abas-tipo button[aria-pressed="true"] { background: var(--vermelho); color: var(--sobre-vermelho); }
.abas-tipo button[aria-pressed="true"] small { color: inherit; opacity: .8; }
.confirmado { display: inline-grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: var(--ok); color: var(--superficie); font-size: 11px; font-weight: 700; vertical-align: 1px; }
.confirmado-texto { font: 500 12px var(--f-mono); color: var(--ok); margin-left: 6px; white-space: nowrap; }
.novos { display: flex; flex-direction: column; gap: 12px; }
.novos-lista { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.novo { flex: none; width: 230px; display: flex; gap: 10px; align-items: center; text-decoration: none; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px; }
.novo:hover { border-color: var(--tinta); }
.novo-img { width: 52px; height: 52px; border-radius: 8px; overflow: hidden; background: var(--vermelho-fundo); position: relative; flex: none; }
.novo-img img { width: 100%; height: 100%; object-fit: cover; }
.novo-img .iniciais { font-size: 20px; }
.novo-txt { display: flex; flex-direction: column; min-width: 0; }
.novo-txt b { font-size: 14px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.novo-txt small { color: var(--tinta-2); font-size: 13px; }

/* ---------- Formulário: fotos atuais e link pessoal ---------- */
.fotos-atuais { display: flex; gap: 12px; flex-wrap: wrap; }
.foto-atual { display: flex; flex-direction: column; gap: 4px; font-size: 13px; cursor: pointer; }
.foto-atual img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; }
.foto-atual span { display: inline-flex; gap: 6px; align-items: center; }
.link-pessoal, .link-gerado { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--raio); background: var(--vermelho-fundo); }
.link-pessoal input, .link-gerado input, .painel-convite input, .painel-convite textarea {
  width: 100%; font: 13px/1.4 var(--f-mono); padding: 10px 12px; border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta);
}
.link-gerado { margin-top: 8px; padding: 12px; }
.painel-convite { border: 1.5px solid var(--tinta); border-radius: var(--raio); background: var(--superficie); }
.painel-convite summary { cursor: pointer; padding: 14px 16px; list-style-position: inside; }
.painel-convite-corpo { display: flex; flex-direction: column; gap: 12px; padding: 0 16px 16px; }
.painel-convite textarea { resize: vertical; }

/* ---------- Apoiar ---------- */
.titulo-secao { font-size: clamp(28px, 4vw, 44px); font-weight: 800; letter-spacing: -0.035em; margin-bottom: 16px; }
.conta-aberta { display: flex; flex-direction: column; gap: 14px; }
.lista-apoio li { flex-direction: column; justify-content: flex-start; gap: 4px; }
.lista-apoio li span:last-child { font: 400 14px var(--f-texto, inherit); text-align: left; }
.lista-custos li.total { font-weight: 700; border-bottom: 2px solid var(--tinta); }
.lista-custos li.total span:last-child { color: var(--tinta); font-size: 15px; }
.meta { display: flex; flex-direction: column; gap: 8px; }
.meta-barra { height: 14px; border-radius: 99px; background: var(--vermelho-fundo); overflow: hidden; }
.meta-barra span { display: block; height: 100%; min-width: 6px; background: var(--vermelho); border-radius: 99px; }
.meta p { font: 500 14px var(--f-mono); color: var(--tinta-2); }
.meta p b { color: var(--tinta); }
.ajudar { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); border-top: 2px solid var(--tinta); }
.ajuda { padding: 20px 20px 24px 0; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; border-bottom: 1px solid var(--linha); }
.ajuda h3 { font-size: 23px; font-weight: 700; }
.ajuda p { color: var(--tinta-2); }
.mural { display: flex; flex-direction: column; gap: 6px; }
.mural-lista { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.mural-lista li { padding: 8px 14px; border-radius: 99px; background: var(--vermelho-fundo); color: var(--vinho); font-weight: 600; }
.servicos { margin: 4px 0 0; padding-left: 18px; display: grid; gap: 4px; color: color-mix(in srgb, var(--papel) 85%, transparent); }
.desconto { color: var(--sol) !important; font-weight: 600; }
.quem-fez { scroll-margin-top: 90px; }
#pix { scroll-margin-top: 90px; }

/* ---------- Mural da rede ---------- */
@media (max-width: 480px) { .menu-manifesto { display: none; } }
.mural-capa { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.mural-capa > div { display: flex; flex-direction: column; gap: 10px; max-width: 60ch; }
.mural-capa h1 { font-size: clamp(36px, 6vw, 68px); font-weight: 800; letter-spacing: -0.045em; }
.mural-grade { columns: 3 300px; column-gap: 20px; }
.mural-grade > .vazio { column-span: all; }
.mural-regras { font-size: 13px; }
.post {
  break-inside: avoid; margin-bottom: 20px; display: flex; flex-direction: column;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden;
}
.post-unico { max-width: 620px; }
.post-unico .post { margin: 0; }
.post-fotos { display: grid; gap: 2px; background: var(--linha); }
.post-fotos.n1 { grid-template-columns: 1fr; }
.post-fotos.n2 { grid-template-columns: 1fr 1fr; }
.post-fotos.n3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.post-fotos.n3 img:first-child { grid-row: span 2; }
.post-fotos img { width: 100%; height: 100%; max-height: 360px; object-fit: cover; aspect-ratio: 4 / 3; }
.post-fotos.n3 img:not(:first-child) { aspect-ratio: auto; }
.post-corpo { padding: 16px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.post-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.post-tempo { font: 500 12px var(--f-mono); color: var(--tinta-2); }
.post h3 { font-size: 21px; font-weight: 700; }
.post h3 a { text-decoration: none; }
.post h3 a:hover { color: var(--vermelho); }
.post-quando { font-size: 14px; color: var(--tinta-2); }
.post-quando b { color: var(--tinta); }
.post-preco { font: 700 18px var(--f-display); color: var(--vermelho); }
.post-texto { white-space: pre-line; overflow-wrap: anywhere; }
.post-texto.curto { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.post-autor { display: flex; gap: 10px; align-items: center; text-decoration: none; padding-top: 10px; border-top: 1px solid var(--linha); }
.post-autor > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.post-autor b { font-size: 14px; }
.post-autor small { font-size: 12px; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.post-av { width: 34px; height: 34px; border-radius: 50%; overflow: hidden; background: var(--vermelho-fundo); position: relative; flex: none; }
.post-av img { width: 100%; height: 100%; object-fit: cover; }
.post-av .iniciais { font-size: 13px; }
.post-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.post-acoes .denunciar { margin-left: auto; font-size: 13px; color: var(--tinta-2); }
.etiqueta-post { font: 500 11px/1 var(--f-mono); text-transform: uppercase; letter-spacing: .06em; padding: 6px 9px; border-radius: 99px; background: var(--vermelho-fundo); color: var(--vinho); }
.etiqueta-post.t-doacao { background: color-mix(in srgb, var(--ok) 18%, transparent); color: var(--ok); }
.etiqueta-post.t-procuro { background: color-mix(in srgb, var(--sol) 28%, transparent); color: var(--tinta); }
.etiqueta-post.t-evento, .etiqueta-post.t-voluntariado { background: var(--tinta); color: var(--papel); }
.etiqueta-post.t-oferta { background: var(--vermelho); color: var(--sobre-vermelho); }
.tipos-post { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.tipo-post { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1.5px solid var(--linha); border-radius: var(--raio); cursor: pointer; background: var(--superficie); }
.tipo-post:has(input:checked) { border-color: var(--vermelho); background: var(--vermelho-fundo); }
.tipo-post input { accent-color: var(--vermelho); margin-top: 3px; }
.tipo-post span { display: flex; flex-direction: column; gap: 2px; }
.tipo-post small { color: var(--tinta-2); font-size: 13px; }
.escolha-tipo { border: 0; padding: 0; margin: 0; }
.escolha-tipo legend { font-weight: 600; margin-bottom: 8px; padding: 0; }
.campo input[type="date"] { font: 16px var(--f-texto); padding: 12px 14px; border-radius: 8px; border: 1.5px solid var(--linha); background: var(--superficie); color: var(--tinta); }
.no-mural { display: flex; flex-direction: column; gap: 6px; }

/* ---------- Conta, barra inferior e comunidade ---------- */
.topo-in { gap: 12px; }
.marca-texto small { white-space: nowrap; }
@media (max-width: 900px) and (min-width: 641px) { .marca-texto small { display: none; } }
.menu { margin-left: auto; }
.conta {
  flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 40px;
  font-weight: 700; font-size: 15px; text-decoration: none; padding: 0 14px; border-radius: 99px;
  border: 1.5px solid var(--tinta); color: var(--tinta);
}
.conta:has(.av) { padding: 0; border: 0; }
.tema-botao {
  flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); cursor: pointer;
}
.tema-botao:hover { border-color: var(--tinta); }
.tema-botao .ico { width: 20px; height: 20px; }
@media (max-width: 640px) { .tema-botao { margin-left: auto; } }
.conta:hover { background: var(--tinta); color: var(--papel); }
.av { position: relative; display: inline-grid; place-items: center; border-radius: 50%; overflow: hidden; background: var(--vermelho-fundo); flex: none; width: 40px; height: 40px; }
.av img { width: 100%; height: 100%; object-fit: cover; }
.av .iniciais { font-size: 15px; }
.av-topo { width: 40px; height: 40px; box-shadow: 0 0 0 2px var(--vermelho); }
.av-barra { width: 26px; height: 26px; }
.av-barra .iniciais { font-size: 10px; }
.av-g { width: 64px; height: 64px; }
.av-g .iniciais { font-size: 24px; }
.av-xl { width: clamp(110px, 18vw, 160px); height: clamp(110px, 18vw, 160px); box-shadow: 0 0 0 4px var(--papel), 0 0 0 6px var(--vermelho); }
.av-xl .iniciais { font-size: 52px; }
.post-av.av, .post-av { width: 34px; height: 34px; }

.barra-inferior { display: none; }
@media (max-width: 640px) {
  .menu { display: none; }
  .marca-texto { display: flex; }
  .barra-inferior {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    background: color-mix(in srgb, var(--papel) 94%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--linha);
    padding: 6px max(6px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(6px, env(safe-area-inset-left, 0px));
  }
  .barra-inferior a { display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none; font: 600 11px/1.1 var(--f-texto); color: var(--tinta-2); padding: 6px 2px; border-radius: 10px; }
  .barra-inferior a[aria-current="page"] { color: var(--vermelho); background: var(--vermelho-fundo); }
  .barra-inferior .barra-apoiar { color: var(--vermelho); }
  .barra-ico { font-size: 19px; line-height: 26px; height: 26px; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .aviso { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}

.nota-privada { font-size: 14px; color: var(--tinta-2); border-left: 3px solid var(--vermelho); padding: 6px 0 6px 12px; max-width: 62ch; }
.com-capa { display: flex; flex-direction: column; gap: 18px; max-width: 760px; padding-block: 20px; }
.com-capa h1 { font-size: clamp(42px, 7vw, 88px); font-weight: 800; letter-spacing: -0.045em; line-height: .95; }
.com-capa h1 em { font-style: normal; color: var(--vermelho); }
.com-capa > p { font-size: 19px; color: var(--tinta-2); max-width: 52ch; }
.membros-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.membro { display: flex; gap: 14px; align-items: center; padding: 14px; text-decoration: none; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.membro:hover { border-color: var(--tinta); }
.membro-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.membro-txt b { font-size: 17px; }
.membro-txt small { color: var(--tinta-2); font-size: 13px; }
.causas-mini { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.causas-mini span { font: 500 10.5px/1 var(--f-mono); padding: 4px 7px; border-radius: 99px; background: var(--vermelho-fundo); color: var(--vinho); }
.perfil-membro { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(20px, 4vw, 40px); align-items: start; }
.perfil-membro-info { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.perfil-membro-info h1 { font-size: clamp(34px, 5vw, 56px); font-weight: 800; letter-spacing: -0.04em; }
@media (max-width: 560px) { .perfil-membro { grid-template-columns: 1fr; } }
.causas { display: flex; flex-wrap: wrap; gap: 6px; }
.causa { font: 600 13px var(--f-texto); padding: 7px 12px; border-radius: 99px; border: 1px solid var(--vermelho); background: transparent; color: var(--vermelho); cursor: pointer; }
.causa:hover { background: var(--vermelho); color: var(--sobre-vermelho); }
.anuncio-ligado { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: var(--raio); background: var(--superficie); border: 1.5px solid var(--tinta); text-decoration: none; max-width: 420px; }
.anuncio-ligado b { font-size: 17px; }
.anuncio-ligado small { color: var(--tinta-2); }
.causas-escolha { display: flex; flex-wrap: wrap; gap: 8px; }
.causa-op { cursor: pointer; }
.causa-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.causa-op span { display: inline-block; font: 600 14px var(--f-texto); padding: 9px 13px; border-radius: 99px; border: 1px solid var(--linha); background: var(--superficie); }
.causa-op input:checked + span { background: var(--vermelho); border-color: var(--vermelho); color: var(--sobre-vermelho); }
.causa-op input:disabled + span { opacity: .45; cursor: not-allowed; }
.causa-op input:focus-visible + span { outline: 3px solid var(--sol); outline-offset: 2px; }
.bloco-conta { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--linha); padding-top: 24px; max-width: 820px; }
.zona-perigo .titulo-secao { color: var(--vermelho); }

/* ---------- Política de privacidade ---------- */
.doc { max-width: 820px; }
.doc-cabeca { display: flex; flex-direction: column; gap: 14px; }
.doc-cabeca h1 { font-size: clamp(38px, 6vw, 64px); font-weight: 800; letter-spacing: -0.045em; }
.doc-resumo { border: 2px solid var(--tinta); border-radius: var(--raio); padding: 18px 20px; background: var(--superficie); }
.doc-resumo ul { margin: 8px 0 0; padding-left: 20px; display: grid; gap: 6px; }
.doc-indice { display: flex; flex-wrap: wrap; gap: 6px 14px; font: 500 13px var(--f-mono); }
.doc-indice a { color: var(--tinta-2); }
.doc-indice a:hover { color: var(--vermelho); }
.doc-sec { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--linha); padding-top: 22px; scroll-margin-top: 90px; }
.doc-sec h2 { font-size: clamp(22px, 3vw, 28px); font-weight: 700; }
.doc-sec p, .doc-sec li { font-size: 17px; line-height: 1.65; max-width: 68ch; }
.doc-sec ul { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.doc-tabela { overflow-x: auto; }
.doc-tabela table { border-collapse: collapse; width: 100%; min-width: 520px; }
.doc-tabela th, .doc-tabela td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--linha); font-size: 15px; }
.doc-tabela th { font: 500 12px var(--f-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); }
.doc-tabela td:first-child { white-space: nowrap; }

/* ---------- Perto de você e mapa ---------- */
.perto { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px; border-radius: var(--raio); background: var(--superficie); border: 1px solid var(--linha); }
.perto-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1 1 auto; }
.perto-form label { font-weight: 700; }
.perto-form input { width: 130px; font: 500 16px var(--f-mono); padding: 9px 12px; border-radius: 99px; border: 1.5px solid var(--tinta); background: var(--papel); color: var(--tinta); }
.perto-ativo { flex: 1 1 auto; }
.perto-ativo b { color: var(--vermelho); }
.visao { display: inline-flex; border: 1.5px solid var(--tinta); border-radius: 99px; padding: 3px; margin-left: auto; }
.visao button { font: 600 14px var(--f-texto); padding: 7px 14px; border-radius: 99px; border: 0; background: transparent; color: var(--tinta); cursor: pointer; }
.visao button[aria-pressed="true"] { background: var(--tinta); color: var(--papel); }
.mapa-vitrine { height: min(70vh, 620px); min-height: 360px; border-radius: var(--raio); border: 1px solid var(--linha); overflow: hidden; z-index: 0; }
.mapa-nota { font-size: 13px; margin-top: -26px; }
.mapa-nota:empty { display: none; }
.cartao-dist { font: 500 13px var(--f-mono); color: var(--tinta-2); }
.cartao-dist b { color: var(--vermelho); }
.grade-titulo { grid-column: 1 / -1; font-size: 20px; padding-top: 12px; border-top: 1px solid var(--linha); margin-top: 8px; }
.local-perfil { display: flex; flex-direction: column; gap: 8px; }
.local-perfil p { font-size: 15px; }
.mapa-perfil { height: 220px; border-radius: var(--raio); border: 1px solid var(--linha); overflow: hidden; z-index: 0; }
/* marcadores */
.pino, .pino-bairro, .pino-voce { display: grid; place-items: center; border-radius: 50%; font: 700 13px/1 var(--f-texto); box-shadow: 0 2px 10px rgba(0,0,0,.35); }
.pino { width: 30px; height: 30px; background: #D3121B; color: #fff; border: 2px solid #fff; font-size: 15px; }
.pino-bairro { width: 30px; height: 30px; background: #1B1315; color: #fff; border: 2px solid #D3121B; }
.pino-voce { width: auto; min-width: 46px; height: 24px; padding: 0 8px; border-radius: 99px; background: #F4B400; color: #1B1315; font-size: 12px; border: 2px solid #fff; }
.popup { display: flex; flex-direction: column; gap: 4px; font: 14px/1.35 var(--f-texto); min-width: 180px; }
.popup .rotulo { font-size: 10.5px; }
.popup a { color: #D3121B; font-weight: 600; text-decoration: none; }
.leaflet-container { font-family: var(--f-texto); background: var(--papel); }
/* mapa escuro no tema escuro: inverte as cores do OpenStreetMap e puxa para o vinho da marca */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.82) contrast(.95) saturate(.35) sepia(.25) hue-rotate(-20deg); } }
:root[data-theme="dark"] .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.82) contrast(.95) saturate(.35) sepia(.25) hue-rotate(-20deg); }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--superficie); color: var(--tinta); }

/* ---------- Feed da comunidade ---------- */
.comunidade { gap: 22px; }
.abas-feed { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); overflow-x: auto; scrollbar-width: none; position: sticky; top: calc(64px + env(safe-area-inset-top, 0px)); z-index: 5; background: var(--papel); }
.abas-feed button { flex: none; font: 700 15px var(--f-texto); padding: 12px 14px; border: 0; background: none; color: var(--tinta-2); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.abas-feed button[aria-pressed="true"] { color: var(--tinta); border-bottom-color: var(--vermelho); }
.abas-feed small { margin-left: 6px; font: 700 11px var(--f-mono); background: var(--vermelho); color: var(--sobre-vermelho); padding: 2px 6px; border-radius: 99px; }
.feed-layout { display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 280px); gap: 32px; justify-content: center; align-items: start; }
.feed-coluna { display: flex; flex-direction: column; gap: 16px; min-width: 0; max-width: 620px; width: 100%; }
.feed-lado { position: sticky; top: 130px; display: flex; flex-direction: column; gap: 10px; }
.feed-lado .rotulo { margin-top: 8px; }
@media (max-width: 900px) { .feed-layout { grid-template-columns: minmax(0, 1fr); } .feed-lado { position: static; order: -1; display: none; } }
.causa.mini { font-size: 12px; padding: 5px 10px; border-color: var(--linha); color: var(--tinta-2); }
.causa.mini.seguindo, .causa.mini[aria-pressed="true"] { background: var(--vermelho-fundo); border-color: var(--vermelho); color: var(--vinho); }

.compor { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.compor-topo { display: flex; gap: 12px; align-items: flex-start; }
.compor textarea { flex: 1; min-width: 0; resize: vertical; font: 17px/1.45 var(--f-texto); border: 0; background: transparent; color: var(--tinta); padding: 8px 0; min-height: 44px; }
.compor textarea:focus { outline: none; }
.compor:focus-within { border-color: var(--tinta); }
.compor-extra { display: flex; flex-direction: column; gap: 12px; }
.compor-pe { display: flex; justify-content: space-between; gap: 10px; align-items: center; }

.pub { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.pub-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px 6px; }
.pub-autor { display: flex; gap: 10px; align-items: center; text-decoration: none; min-width: 0; }
.pub-autor > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.pub-autor b { font-size: 15px; }
.pub-autor small { font-size: 12.5px; color: var(--tinta-2); }
.pub-opcoes { position: relative; }
.pub-mais { width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: var(--tinta-2); font-size: 22px; cursor: pointer; }
.pub-mais:hover { background: var(--vermelho-fundo); }
.pub-menu { position: absolute; right: 0; top: 42px; z-index: 6; min-width: 220px; display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 10px 30px rgba(0,0,0,.18); overflow: hidden; }
.pub-menu button { text-align: left; padding: 12px 14px; border: 0; background: none; color: var(--tinta); font: 500 14px var(--f-texto); cursor: pointer; }
.pub-menu button:hover { background: var(--vermelho-fundo); }
.pub-motivo { font: 500 12px var(--f-mono); color: var(--tinta-2); padding: 0 14px; }
.pub-motivo::before { content: "↳ "; color: var(--vermelho); }
.pub-revisao { color: var(--vermelho); }
.pub-texto { padding: 6px 14px 10px; font-size: 16px; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.pub-texto a { color: var(--vermelho); }
.pub-fotos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; background: var(--vermelho-fundo); }
.pub-fotos img { flex: none; width: 100%; max-height: 560px; aspect-ratio: 4 / 5; object-fit: cover; scroll-snap-align: start; }
.pub-fotos:not(.varias) img { aspect-ratio: auto; max-height: 620px; object-fit: contain; }
.pub-dica-fotos { font: 500 11px var(--f-mono); color: var(--tinta-2); padding: 6px 14px 0; }
.pub-causas { padding: 8px 14px 0; }
.pub-acoes { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--linha); margin-top: 10px; }
.pub-acao { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 4px; border: 0; background: none; color: var(--tinta-2); font: 600 13.5px var(--f-texto); cursor: pointer; min-height: 46px; }
.pub-acao:hover { background: var(--vermelho-fundo); color: var(--tinta); }
.pub-acao.ativo { color: var(--vermelho); }
.pub-acao .ico { width: 19px; height: 19px; }
@media (max-width: 420px) { .pub-acao span { font-size: 12px; } .pub-acao { gap: 4px; } }
.pub-coments { border-top: 1px solid var(--linha); padding: 12px 14px; display: flex; flex-direction: column; gap: 12px; background: var(--papel); }
.coment { display: flex; gap: 10px; align-items: flex-start; }
.coment-corpo { min-width: 0; }
.coment-corpo p { font-size: 14.5px; overflow-wrap: anywhere; }
.coment-corpo a { text-decoration: none; }
.coment-corpo small { font-size: 12px; color: var(--tinta-2); }
.coment-corpo .link-simples { font-size: 12px; color: var(--tinta-2); }
.av-mini { width: 30px; height: 30px; }
.av-mini .iniciais { font-size: 11px; }
.coment-form { display: flex; gap: 8px; }
.coment-form input { flex: 1; min-width: 0; font: 15px var(--f-texto); padding: 10px 14px; border-radius: 99px; border: 1.5px solid var(--linha); background: var(--superficie); color: var(--tinta); }
.coment-form input:focus { border-color: var(--tinta); outline: none; }
.feed-fim { text-align: center; padding: 28px 12px 8px; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--tinta-2); }
.estrela-fim { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--vermelho); color: var(--sobre-vermelho); }
.contadores b { color: var(--tinta); }
.etiqueta-mod { background: var(--tinta); color: var(--papel); }
.perfil-pubs { margin: 0 auto; }

/* ---------- Convite para instalar o app e aviso de nova versão ---------- */
.faixa-app {
  position: fixed; z-index: 45; left: 50%; transform: translateX(-50%);
  bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: min(560px, calc(100% - 24px));
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px;
  background: var(--superficie); color: var(--tinta); border: 1.5px solid var(--vermelho); border-radius: 16px;
  box-shadow: 0 14px 40px rgba(0,0,0,.35); animation: faixa-sobe .4s cubic-bezier(.2,.7,.2,1) both;
}
.faixa-app img { border-radius: 12px; flex: none; }
.faixa-app-txt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; min-width: 0; font-size: 14px; }
.faixa-app-txt span { color: var(--tinta-2); }
.faixa-app-acoes { display: flex; gap: 8px; margin-left: auto; }
@media (max-width: 640px) { .faixa-app { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); } }
@keyframes faixa-sobe { from { transform: translate(-50%, 20px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .faixa-app { animation: none; } }
/* no app instalado (tela cheia), a faixa vermelha do topo respeita a barra de status do celular */
@media (display-mode: standalone) { .faixa { padding-top: max(env(safe-area-inset-top, 0px), 4px); } }

/* ---------- Alvos de toque confortáveis no celular ---------- */
@media (pointer: coarse) {
  .marcar { min-height: 40px; }
  .marcar input { width: 22px; height: 22px; }
  .link-simples { min-height: 36px; padding: 6px 4px; display: inline-flex; align-items: center; }
}

.ordenar { font: 500 15px var(--f-texto); padding: 10px 12px; border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); }

/* ---------- tutorial ao vivo ---------- */
.tut { position: fixed; inset: 0; z-index: 9000; pointer-events: none; }
.tut-veu { position: fixed; background: rgba(12, 4, 6, 0.66); pointer-events: auto; }
.tut-anel { position: fixed; border-radius: 12px; pointer-events: none; box-shadow: 0 0 0 3px #F7C437, 0 0 28px rgba(247, 196, 55, 0.55); animation: tut-pulso 1.8s ease-in-out infinite; }
@keyframes tut-pulso { 50% { box-shadow: 0 0 0 5px #F7C437, 0 0 40px rgba(247, 196, 55, 0.7); } }
.tut-cartao { position: fixed; pointer-events: auto; width: min(360px, calc(100vw - 32px)); background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: 16px; padding: 18px 18px 14px; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45); display: flex; flex-direction: column; gap: 10px; outline: none; }
.tut-cartao h3 { font-size: 21px; }
.tut-cartao p { margin: 0; line-height: 1.45; }
.tut-cartao.tut-centro { left: 50% !important; top: 50% !important; transform: translate(-50%, -50%); width: min(440px, calc(100vw - 32px)); }
.tut-passo { font: 500 12px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--vermelho); }
.tut-dica { font: 500 13px var(--f-mono); color: var(--tinta-2); }
.tut-opcoes { display: flex; flex-direction: column; gap: 8px; }
.tut-opcoes .btn { justify-content: flex-start; text-align: left; width: 100%; }
.tut-botoes { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 4px; flex-wrap: wrap; }
.tut-botoes span { display: flex; gap: 8px; margin-left: auto; }
@media (max-width: 719px) {
  .tut-cartao:not(.tut-centro) { left: 16px !important; right: 16px; top: auto !important; bottom: calc(80px + env(safe-area-inset-bottom)); width: auto; }
}
@media (prefers-reduced-motion: reduce) { .tut-anel { animation: none; } }

/* login com e-mail e senha */
.login-senha { flex-direction: column; align-items: stretch; max-width: 420px; gap: 8px; }
.login-senha label { font-weight: 600; font-size: 14px; margin-top: 4px; }
.login-senha input { flex: none; }
.login-senha .botoes { margin-top: 6px; }
.login-senha .link-simples { align-self: flex-start; font-size: 14px; }

/* conta ligada ao anúncio */
.conta-anuncio { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 24px; }
.conta-anuncio .rotulo { margin: 0; }
.conta-anuncio p { margin: 0; }
.sucesso .conta-anuncio { text-align: left; }

/* cadastro: já estava na planilha? */
.planilha { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.planilha h2 { font-size: clamp(22px, 4vw, 28px); }
.planilha-busca { display: flex; flex-direction: column; gap: 8px; }
.planilha-busca input { font: 16px var(--f-texto); padding: 12px 14px; border-radius: 12px; border: 1.5px solid var(--tinta); background: var(--superficie); color: var(--tinta); }
.pb-lista { display: flex; flex-direction: column; gap: 6px; }
.pb-item { display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; text-align: left; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); cursor: pointer; font: inherit; }
.pb-item:hover, .pb-item[data-confirmar] { border-color: var(--vermelho); }
.pb-img { width: 48px; height: 48px; border-radius: 10px; overflow: hidden; background: var(--vermelho-fundo); display: grid; place-items: center; font-weight: 800; color: var(--vermelho); }
.pb-img img { width: 100%; height: 100%; object-fit: cover; }
.pb-txt { display: flex; flex-direction: column; min-width: 0; }
.pb-txt small { color: var(--tinta-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-acao { font: 600 13px var(--f-texto); color: var(--vermelho); white-space: nowrap; }
.pb-item[data-confirmar] .pb-acao { background: var(--vermelho); color: #fff; padding: 6px 10px; border-radius: 99px; }

/* enquadrar foto do anúncio */
.fotos-previa { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.fotos-previa .dica { grid-column: 1 / -1; }
.recorte { display: flex; flex-direction: column; gap: 6px; }
.recorte-quadro { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 10px; background: var(--vermelho-fundo); cursor: grab; touch-action: none; outline-offset: 2px; }
.recorte-quadro:active { cursor: grabbing; }
.recorte-quadro img { position: absolute; left: 0; top: 0; max-width: none; transform-origin: 0 0; user-select: none; -webkit-user-drag: none; pointer-events: none; }
.recorte-zoom { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--tinta-2); }
.recorte-zoom input { flex: 1; accent-color: var(--vermelho); }

/* aviso de cookies */
.aviso-cookies { position: fixed; left: 16px; bottom: 16px; z-index: 800; max-width: 380px; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: 14px; padding: 14px 16px; box-shadow: 0 12px 36px rgba(0,0,0,.28); display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.aviso-cookies p { margin: 0; line-height: 1.45; }
.aviso-cookies .botoes { align-items: center; gap: 14px; }
@media (max-width: 719px) { .aviso-cookies { right: 16px; max-width: none; bottom: calc(80px + env(safe-area-inset-bottom)); } }
/* marca: "esquerda em rede" */
.marca-texto b { font-size: 21px; white-space: nowrap; }
@media (max-width: 400px) { .marca-texto b { font-size: 17px; } }

/* comunidade: tipos de post (antigo mural) */
.tipos-pub { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.tipos-pub-lista { display: flex; flex-wrap: wrap; gap: 6px; }
.tipo-pub input { position: absolute; opacity: 0; pointer-events: none; }
.tipo-pub span { display: inline-block; padding: 7px 12px; border-radius: 99px; border: 1px solid var(--linha); font-size: 14px; cursor: pointer; }
.tipo-pub input:checked + span { background: var(--tinta); color: var(--papel); border-color: var(--tinta); }
.tipo-pub input:focus-visible + span { outline: 2px solid var(--vermelho); outline-offset: 2px; }
.pub-campos { display: flex; flex-direction: column; gap: 6px; }
.pub-campos label { font-size: 13px; font-weight: 600; }
.pub-campos input { font: 15px var(--f-texto); padding: 10px 12px; border-radius: 10px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); }
.pub-campos > div { display: flex; flex-direction: column; gap: 6px; }
.pub-vence { font-size: 13px; margin: 0; }
.filtro-tipos { margin: 4px 0 2px; }
.pub-classif { display: flex; flex-direction: column; gap: 4px; padding: 0 16px; }
.pub-tipo { align-self: flex-start; font: 600 12px var(--f-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--vermelho); }
.pub-titulo { font-size: 20px; margin: 0; }
.pub-detalhes { margin: 0; font-size: 14px; color: var(--tinta-2); }
.pub-contato { padding: 0 16px 6px; }

/* entrada pelo link do grupo e cadastro em 3 passos */
.porta { max-width: 640px; display: flex; flex-direction: column; gap: 16px; padding: clamp(24px, 6vw, 64px) 0; }
.porta h1 { font-size: clamp(36px, 8vw, 64px); }
.porta h1 em { font-style: normal; color: var(--vermelho); }
.porta p { margin: 0; font-size: 18px; }
.cad { max-width: 680px; display: flex; flex-direction: column; gap: 16px; }
.cad h1 { font-size: clamp(28px, 6vw, 44px); }
.cad-progresso { display: flex; flex-direction: column; gap: 8px; }
.cad-barra, .completar-barra { height: 8px; border-radius: 99px; background: var(--vermelho-fundo); overflow: hidden; }
.cad-barra span, .completar-barra span { display: block; height: 100%; background: var(--vermelho); border-radius: 99px; transition: width .4s ease; }
.cad-progresso ol { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; gap: 8px; font: 500 12px var(--f-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); }
.cad-progresso li.atual { color: var(--vermelho); }
.cad-progresso li.feito { color: var(--tinta); }
.cad-anuncio { grid-template-columns: minmax(0, 320px); }
.cad-nao-achei { display: flex; flex-direction: column; gap: 10px; }
.cad-nao-achei p { margin: 0; }
/* perfil completo */
.completar { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; margin-bottom: 12px; }
.completar p { margin: 0; font-size: 14px; }
.completar-topo { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; justify-content: space-between; }
.completar-topo .suave { font-size: 13px; }
.selo-ok { display: inline-grid; place-items: center; width: 1.1em; height: 1.1em; border-radius: 50%; background: var(--vermelho); color: #fff; font-size: .7em; vertical-align: middle; margin-left: 4px; }
.selo-completo { color: var(--ok, #2e7d32); font-weight: 600; margin: 0 0 12px; }
.plano-b { margin-top: 8px; }
.plano-b summary { cursor: pointer; font-size: 14px; color: var(--tinta-2); }
.plano-b form { margin-top: 8px; }

/* agenda da rede */
.evento-destaque { display: grid; gap: 6px; padding: 18px 20px; margin: 8px 0 24px; border-radius: var(--raio); background: linear-gradient(135deg, #2A1214, #4a0d12); color: #F5ECEB; text-decoration: none; border: 1px solid #5c1a1f; }
.evento-destaque .rotulo { color: #F7C437; }
.evento-destaque b { font: 800 clamp(20px, 3.4vw, 28px)/1.1 var(--f-display); }
.evento-destaque .btn { justify-self: start; margin-top: 6px; }
.agenda-lista { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.evento-cartao { display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--superficie); color: inherit; text-decoration: none; }
.evento-cartao h2 { font-size: 22px; }
.evento-cartao p { margin: 0; }
.evento { display: flex; flex-direction: column; gap: 22px; max-width: 820px; }
.evento-capa { display: flex; flex-direction: column; gap: 12px; padding: clamp(18px, 4vw, 32px); border-radius: var(--raio); background: linear-gradient(135deg, #2A1214, #4a0d12); color: #F5ECEB; }
.evento-capa .rotulo { color: #F7C437; }
.evento-capa h1 { font-size: clamp(30px, 6vw, 52px); }
.evento-quando { margin: 0; font-size: 17px; }
.evento-texto { margin: 0; font-size: 17px; line-height: 1.55; }
.pacotes { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pacote { padding: 16px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--superficie); display: flex; flex-direction: column; gap: 6px; }
.pacote p { margin: 0; }
.evento-lista { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.vagas { display: flex; gap: 14px; flex-wrap: wrap; }
.vagas div { padding: 14px 18px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--superficie); display: flex; flex-direction: column; min-width: 160px; }
.vagas b { font: 800 34px/1 var(--f-display); color: var(--vermelho); }
.secao-form { border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.secao-form > legend { font: 700 15px var(--f-display); padding: 0 6px; }
.secao-form .escolha-tipo .marcar { display: flex; gap: 8px; align-items: center; margin: 4px 0; }
.menores-extra { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.aviso-priv summary { cursor: pointer; font-weight: 600; }
.aviso-priv p { font-size: 14px; }
.res-resumo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.res-resumo p { margin: 0; }
.res-valor { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; margin-top: 6px; }
.res-valor input { width: 110px; padding: 6px 8px; border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); font: inherit; }
.etiqueta.res-aguardando_sinal { background: #F7C437; color: #2A1214; }
.etiqueta.res-sinal_pago, .etiqueta.res-confirmada { background: #2e7d32; color: #fff; }
.etiqueta.res-cancelada { opacity: .6; }

.evento-midia { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); align-items: start; }
.evento-midia img, .evento-midia video { width: 100%; max-height: 640px; border-radius: var(--raio); background: #000; object-fit: contain; }

/* destaque com imagem de fundo: escurece à esquerda para o texto ficar legível */
.evento-destaque.com-fundo { min-height: 260px; align-content: center; background:
  linear-gradient(90deg, rgba(18, 6, 8, .94) 0%, rgba(18, 6, 8, .82) 38%, rgba(18, 6, 8, .25) 70%, rgba(18, 6, 8, .05) 100%),
  var(--fundo-evento) center 22% / cover no-repeat, #2A1214; }
.evento-destaque.com-fundo b, .evento-destaque.com-fundo span:not(.btn) { text-shadow: 0 1px 12px rgba(0,0,0,.6); }
@media (max-width: 719px) {
  .evento-destaque.com-fundo { min-height: 260px; align-content: end; background:
    linear-gradient(0deg, rgba(18, 6, 8, .95) 0%, rgba(18, 6, 8, .78) 45%, rgba(18, 6, 8, .2) 100%),
    var(--fundo-evento) 55% center / cover no-repeat, #2A1214; }
}

/* rodapé */
.rodape { border-top: 1px solid var(--linha); background: color-mix(in srgb, var(--superficie) 60%, var(--papel)); }
.rodape-grade { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 28px 32px; padding-block: 40px 28px; font-size: 14px; color: var(--tinta-2); }
.rodape-marca { display: flex; flex-direction: column; gap: 10px; }
.rodape-marca p { margin: 0; max-width: 42ch; line-height: 1.5; }
.rodape-lema { font: 800 20px/1.15 var(--f-display); color: var(--vermelho) !important; }
.rodape-col { display: flex; flex-direction: column; gap: 8px; }
.rodape-col h2 { font: 500 12px var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--tinta); margin: 0 0 4px; }
.rodape-col a { color: var(--tinta-2); text-decoration: none; }
.rodape-col a:hover { color: var(--vermelho); text-decoration: underline; }
.rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding-block: 16px 20px; border-top: 1px solid var(--linha); font-size: 13px; color: var(--tinta-2); }
.rodape-base p { margin: 0; }
.rodape-base a { color: var(--tinta); }
@media (max-width: 860px) { .rodape-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } .rodape-marca { grid-column: 1 / -1; } }
@media (max-width: 520px) { .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* letreiro */
.letreiro { overflow: hidden; background: var(--vermelho); color: #140507; font: 600 14px var(--f-texto); padding: 10px 0; }
.letreiro-trilho { display: flex; width: max-content; animation: letreiro-rolar 70s linear infinite; }
.letreiro:hover .letreiro-trilho, .letreiro:focus-within .letreiro-trilho, .letreiro.pausado .letreiro-trilho { animation-play-state: paused; }
.letreiro-grupo { display: flex; align-items: center; flex-shrink: 0; }
.letreiro-grupo > * { white-space: nowrap; }
.letreiro a { color: #140507; text-decoration: underline; text-underline-offset: 3px; }
.letreiro-estrela { margin: 0 18px; color: #140507; }
@keyframes letreiro-rolar { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .letreiro-trilho { animation: none; width: auto; }
  .letreiro-grupo { flex-wrap: wrap; justify-content: center; row-gap: 6px; padding: 0 16px; }
  .letreiro-grupo[aria-hidden="true"] { display: none; }
}
@media (max-width: 640px) { .rodape { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); } }
/* topo em telas médias: com Agenda e o nome maior, o menu precisa apertar um pouco */
@media (max-width: 1000px) and (min-width: 641px) {
  .menu a { padding: 8px 10px; font-size: 14px; }
  .marca-texto b { font-size: 18px; }
  .marca-texto small { display: none; }
}
@media (max-width: 820px) and (min-width: 641px) { .menu-manifesto { display: none; } }

/* armadilha contra robôs: invisível para pessoas */
.isca { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* letreiro do topo: dentro da faixa vermelha fina */
.faixa-in { flex-wrap: nowrap; align-items: center; }
.letreiro-topo { flex: 1; min-width: 0; padding: 0; font: 500 12px/1 var(--f-mono); letter-spacing: .04em; background: transparent; }
.letreiro-topo .letreiro-trilho { animation-duration: 55s; }
.letreiro-topo .letreiro-estrela { margin: 0 14px; }
.faixa-modo { flex: none; }
@media (prefers-reduced-motion: reduce) { .letreiro-topo .letreiro-grupo { justify-content: flex-start; padding: 0; } }

/* ajuda */
.ajuda { max-width: 820px; display: flex; flex-direction: column; gap: 18px; }
.ajuda-busca { max-width: 560px; }
.ajuda-grupo { display: flex; flex-direction: column; gap: 8px; }
.ajuda-item { border: 1px solid var(--linha); border-radius: 12px; background: var(--superficie); }
.ajuda-item summary { cursor: pointer; padding: 14px 16px; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.ajuda-item summary::-webkit-details-marker { display: none; }
.ajuda-item summary::after { content: "+"; color: var(--vermelho); font-weight: 800; }
.ajuda-item[open] summary::after { content: "–"; }
.ajuda-resposta { padding: 0 16px 14px; display: flex; flex-direction: column; gap: 10px; }
.ajuda-resposta p { margin: 0; line-height: 1.55; }
.ajuda-contato { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.ajuda-contato h2 { font-size: 20px; }
.ajuda-contato p { margin: 0; }

/* abertura: botão de pular mais visível */
.ab-pular { background: rgba(245,236,235,.92); color: #2A1214; border-color: transparent; font-weight: 600; }
.ab-pular:hover { background: #fff; }

/* ---------- vitrine no celular: busca logo no começo e cartão em linha ---------- */
@media (max-width: 640px) {
  .pagina:has(> .busca-bloco) { gap: 22px; padding-top: 18px; }
  .pagina > .capa { order: 0; gap: 12px; }
  .pagina > .busca-bloco { order: 1; }
  .pagina > .evento-destaque { order: 2; margin: 0; }
  .pagina > .novos { order: 3; }
  .pagina > .mapa-vitrine, .pagina > .mapa-nota, .pagina > .grade, .pagina > .criadora { order: 4; }
  .capa h1 { font-size: clamp(34px, 10vw, 44px); }
  .capa-lado { gap: 12px; }
  .capa-lado p { font-size: 15px; }
  .ficha b { font-size: 22px; }
  .ficha span { font-size: 10px; }
  .evento-destaque.com-fundo { min-height: 200px; }
  .grade { grid-template-columns: 1fr; gap: 10px; }
  .cartao { position: relative; }
  .cartao-link { flex-direction: row; align-items: stretch; }
  .cartao-img, .cartao-img.sem-foto { flex: none; width: 104px; aspect-ratio: auto; min-height: 104px; }
  .cartao-img.sem-foto .iniciais { font-size: 30px; place-items: center; padding: 0; }
  .cartao-img .selo { display: none; }
  .cartao-corpo { padding: 10px 12px; gap: 3px; min-width: 0; }
  .cartao-corpo h3 { font-size: 16px; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .cartao-corpo .rotulo { font-size: 10px; }
  .cartao-nome, .cartao-local { font-size: 13px; }
  .cartao-pe { padding: 0 12px 10px 116px; gap: 6px; }
  .cartao-pe .btn { padding: 6px 10px; font-size: 13px; }
}

/* evento: barra fixa com o preço no celular; valor estimado na pré-reserva */
.evento-barra { display: none; }
@media (max-width: 640px) {
  .evento-barra { display: flex; position: fixed; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom, 0px)); z-index: 25; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: color-mix(in srgb, var(--papel) 96%, transparent); backdrop-filter: blur(10px); border-top: 1px solid var(--linha); }
  .evento-barra span { display: flex; flex-direction: column; font-size: 13px; color: var(--tinta-2); line-height: 1.2; }
  .evento-barra b { font: 800 20px var(--f-display); color: var(--tinta); }
  .evento-barra small { font-size: 11px; }
  .evento { padding-bottom: 90px; }
}
.estimativa { display: flex; flex-direction: column; gap: 4px; border-color: var(--vermelho); }
.estimativa span { font-size: 15px; }

/* selos de membro e primeiros passos */
.selo-oficial, .selo-fundador { display: inline-block; vertical-align: middle; margin-left: 6px; padding: 2px 8px; border-radius: 99px; font: 600 11px/1.4 var(--f-mono); letter-spacing: .03em; }
.selo-oficial { background: var(--vermelho); color: #fff; }
.selo-fundador { background: var(--sol); color: #2A1214; }
.primeiros-passos { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.pp-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-lista li { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 14px; }
.pp-lista li.feito { color: var(--tinta-2); text-decoration: line-through; }
.pp-lista .link-simples { flex: none; font-size: 14px; }
.feed-lado.piscar { outline: 3px solid var(--sol); outline-offset: 6px; border-radius: 12px; transition: outline-color .3s; }

/* fotos escolhidas: ordem e tirar */
#pub-previa { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.previa-item { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.previa-item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; }
.previa-dica { grid-column: 1 / -1; margin: 0; }
.foto-acoes { display: flex; align-items: center; justify-content: space-between; gap: 4px; font: 500 12px var(--f-mono); color: var(--tinta-2); }
.foto-acoes button { min-width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); cursor: pointer; font-size: 13px; }
.foto-acoes button:disabled { opacity: .3; cursor: default; }
.foto-acoes .foto-tirar { color: var(--vermelho); }

/* fotos da agenda */
.evento-cartao.com-foto { padding: 0; overflow: hidden; }
.evento-cartao.com-foto > :not(.evento-foto) { margin-left: 18px; margin-right: 18px; }
.evento-cartao.com-foto > .evento-foto + * { margin-top: 14px; }
.evento-cartao.com-foto > :last-child { margin-bottom: 18px; }
.evento-foto { display: block; aspect-ratio: 16 / 9; background: var(--foto-evento) center / cover no-repeat, var(--vermelho-fundo); }
.evento-capa.com-foto { background:
  linear-gradient(90deg, rgba(18, 6, 8, .95) 0%, rgba(18, 6, 8, .82) 45%, rgba(18, 6, 8, .35) 100%),
  var(--foto-evento) center / cover no-repeat, #2A1214; min-height: 300px; justify-content: center; }
@media (max-width: 640px) { .evento-capa.com-foto { background:
  linear-gradient(0deg, rgba(18, 6, 8, .96) 0%, rgba(18, 6, 8, .78) 55%, rgba(18, 6, 8, .3) 100%),
  var(--foto-evento) center / cover no-repeat, #2A1214; min-height: 360px; justify-content: flex-end; } }
.foto-credito { margin: -12px 0 0; font-size: 12px; color: var(--tinta-2); }

/* ---------- feed editorial: uma coluna, sem caixas, tipografia em primeiro plano ---------- */
.feed-layout { grid-template-columns: minmax(0, 640px); }
.feed-coluna { gap: 0; }
.feed-coluna > .primeiros-passos, .feed-coluna > .completar, .feed-coluna > .compor, .feed-coluna > .filtro-tipos { margin-bottom: 16px; }
.pub { background: transparent; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; padding: 22px 0 18px; overflow: visible; }
.pub-topo { padding: 0 0 8px; }
.pub-autor b { font-size: 15px; font-weight: 700; }
.pub-motivo { padding: 0; margin: 0 0 8px; font: 500 12px var(--f-texto); color: var(--tinta-2); }
.pub-motivo::before { content: none; }
.pub-classif, .pub-contato, .pub-causas { padding-left: 0; padding-right: 0; }
.pub-titulo { font-size: 22px; letter-spacing: -0.01em; }
.pub-texto { padding: 4px 0 12px; font-size: 17px; line-height: 1.6; }
.pub-fotos { border-radius: 14px; background: transparent; }
.pub-fotos img { border-radius: 14px; }
.pub-dica-fotos { padding-left: 0; }
.pub-causas { padding-top: 10px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.pub-causas .causa.mini { border: 0; background: none; padding: 0; font: 500 13px var(--f-texto); color: var(--tinta-2); }
.pub-causas .causa.mini:hover { color: var(--vermelho); background: none; }
.pub-acoes { display: flex; gap: 26px; border-top: 0; margin-top: 10px; }
.pub-acao { background: none; border: 0; padding: 6px 0; display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); font: 600 14px var(--f-texto); cursor: pointer; }
.pub-acao:hover { color: var(--tinta); background: none; }
.pub-acao.ativo { color: var(--vermelho); }
.pub-acao .ico { width: 21px; height: 21px; }
.pub-coments { padding-left: 0; padding-right: 0; }
.compor { border-radius: 16px; }
.filtro-tipos { gap: 2px 16px; flex-wrap: nowrap; border-bottom: 1px solid var(--linha); padding-bottom: 0; }
.filtro-tipos .chip { background: none; border: 0; border-radius: 0; padding: 8px 0 10px; color: var(--tinta-2); font: 600 14px var(--f-texto); border-bottom: 2px solid transparent; margin-bottom: -1px; flex: none; }
.filtro-tipos .chip[aria-pressed="true"] { color: var(--tinta); border-bottom-color: var(--vermelho); background: none; }
/* selos: um sinal pequeno ao lado do nome */
.selos { display: inline-flex; gap: 4px; margin-left: 6px; vertical-align: 1px; }
.selo-i { display: inline-grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; font: 700 10px/1 var(--f-texto); color: var(--tinta-2); border: 1px solid var(--linha); cursor: help; }
.selo-i.selo-oficial { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }
.selos-texto { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 6px; }
.selo-tag { font: 500 12px var(--f-mono); letter-spacing: .02em; padding: 3px 9px; border-radius: 99px; border: 1px solid var(--linha); color: var(--tinta-2); }
.selo-tag.selo-oficial { border-color: var(--vermelho); color: var(--vermelho); }
/* janela de causas e "o que você acompanha" */
.janela-causas { max-width: min(560px, calc(100vw - 32px)); border: 1px solid var(--linha); border-radius: 18px; padding: 22px; background: var(--superficie); color: var(--tinta); }
.janela-causas::backdrop { background: rgba(10, 4, 6, .6); }
.janela-causas h2 { font-size: 24px; margin: 0 0 6px; }
.janela-causas .botoes { margin-top: 16px; }
.causas-escolha { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.causa-toque { font: 600 14px var(--f-texto); padding: 8px 13px; border-radius: 99px; border: 1px solid var(--linha); background: transparent; color: var(--tinta); cursor: pointer; }
.causa-toque.ativa { background: var(--tinta); border-color: var(--tinta); color: var(--papel); }
.acompanha .rotulo { margin-top: 14px; }
.acompanha select { max-width: 320px; }
.filtro-tipos { scrollbar-width: none; }
.filtro-tipos::-webkit-scrollbar { display: none; }
/* fotos do feed inteiras: em pé (4:5) sem cortar topo e pé; fotos deitadas também inteiras */
.pub-fotos img, .pub-fotos.varias img { max-height: none; height: auto; aspect-ratio: auto; object-fit: contain; }
.pub-fotos.varias { align-items: flex-start; }
.pub-fotos.varias img { width: 100%; }
/* selos desenhados */
.selo-i { width: auto; height: auto; border: 0; border-radius: 0; display: inline-flex; align-items: center; gap: 4px; color: var(--tinta-2); font: 600 12px var(--f-texto); }
.selo-i.selo-oficial { background: none; border: 0; color: var(--vermelho); }
.selo-svg { width: 17px; height: 17px; flex: none; display: block; }
.selo-completo .selo-svg { width: 15px; height: 15px; }
.selo-fundador .selo-svg { width: 12px; height: 12px; color: var(--sol); }
.selo-nome { color: var(--vermelho); font: 600 12px var(--f-texto); letter-spacing: .01em; }
.selos { align-items: center; vertical-align: -3px; }
.selo-tag { display: inline-flex; align-items: center; gap: 6px; }
.selo-tag .selo-svg { width: 15px; height: 15px; }
.selo-tag.selo-oficial { color: var(--vermelho); }

/* administração: painel de início, agenda e ferramentas */
.adm-inicio { display: flex; flex-direction: column; gap: 16px; margin-top: 8px; }
.adm-saudacao { font: 600 20px var(--f-display); margin: 0; }
.adm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.adm-card { text-align: left; display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); cursor: pointer; font: inherit; }
.adm-card:hover { border-color: var(--tinta); }
.adm-card b { font: 800 36px/1 var(--f-display); }
.adm-card span { font-weight: 700; }
.adm-card small { color: var(--tinta-2); font-size: 13px; }
.adm-card.urgente { border-color: var(--vermelho); }
.adm-card.urgente b { color: var(--vermelho); }
.adm-exportar { display: flex; flex-direction: column; gap: 8px; padding-top: 6px; border-top: 1px solid var(--linha); }
.adm-agenda { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.adm-agenda-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.adm-agenda-topo p { margin: 0; max-width: 60ch; }
.adm-evento { border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; }
.adm-evento h2 { font-size: 22px; }
.ev-foto-atual { width: 160px; border-radius: 8px; margin-top: 6px; }
.ligar-conta { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.ligar-conta select { max-width: 360px; padding: 8px; border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); }

/* painel: subtítulo e busca nas listas */
.admin-sub { margin: 6px 0 0; max-width: 52ch; }
.adm-busca { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 8px; }
.adm-busca .busca { flex: 1 1 320px; max-width: 620px; }
.adm-busca-conta { font: 500 13px var(--f-mono); }
.pedido[hidden] { display: none !important; }

/* descrição com contador e botão próprio para escolher fotos */
.contador { display: block; text-align: right; margin-top: 4px; font: 500 12px var(--f-mono); }
.contador.perto { color: var(--vermelho, #e5322d); }
.arquivo-oculto { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.escolher-fotos { align-self: flex-start; justify-self: start; width: fit-content; cursor: pointer; margin-top: 6px; }
.arquivo-oculto:focus-visible + .escolher-fotos { outline: 3px solid var(--foco, #ffd23f); outline-offset: 3px; }
.arquivo-oculto:disabled + .escolher-fotos { opacity: .45; cursor: not-allowed; }
/* enquanto o tutorial está aberto, o aviso de instalar o app sai da frente */
body.tut-ativo .faixa-app { display: none !important; }

/* vitrine no celular: miniatura sempre quadrada, do mesmo tamanho em todos os cartões */
@media (max-width: 640px) {
  .cartao-link { align-items: flex-start; }
  .cartao-img, .cartao-img.sem-foto { width: 96px; height: 96px; min-height: 0; aspect-ratio: 1 / 1; align-self: flex-start; margin: 10px 0 0 10px; border-radius: 10px; overflow: hidden; }
  .cartao-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
}

/* nome comercial em destaque ao lado do nome da pessoa */
.nome-comercial { color: var(--tinta); font-weight: 700; }

/* avisos: sininho no topo e página de avisos */
.sino { position: relative; flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); text-decoration: none; }
.sino[hidden] { display: none; }
.sino:hover { border-color: var(--tinta); }
.sino svg { width: 20px; height: 20px; }
.sino-num { position: absolute; top: -4px; right: -4px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--vermelho); color: #fff; font: 700 11px/19px var(--f-texto, sans-serif); text-align: center; box-shadow: 0 0 0 2px var(--papel); }
.sino-num[hidden] { display: none; }
.avisos { max-width: 720px; }
.avisos-lista { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.notif a { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--superficie); color: var(--tinta); text-decoration: none; }
.notif a:hover { border-color: var(--tinta); }
.notif.novo a { border-color: color-mix(in srgb, var(--vermelho) 55%, var(--linha)); background: color-mix(in srgb, var(--vermelho-fundo) 55%, var(--superficie)); }
.av-aviso { width: 40px; height: 40px; flex: none; }
.aviso-ico { display: grid; place-items: center; border-radius: 50%; background: var(--vermelho-fundo); color: var(--vermelho); font-size: 18px; }
.aviso-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; line-height: 1.35; }
.aviso-txt small { color: var(--tinta-2); font-size: 13px; display: flex; align-items: center; gap: 6px; }
.ponto-novo { width: 8px; height: 8px; border-radius: 50%; background: var(--vermelho); display: inline-block; }
.avisos-vazio { margin-top: 18px; }

/* Meu perfil: atalho para o Painel da rede (só administração) */
.bloco-admin { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 18px 0; border-color: color-mix(in srgb, var(--vermelho) 50%, var(--linha)); }
.bloco-admin p { margin: 4px 0 0; max-width: 52ch; }

/* posts longos: dobra com "Ver mais" */
.pub-texto.dobrado { max-height: 15.5em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.ver-mais { margin: -6px 14px 10px; font-weight: 600; }


/* painel: aviso de anúncio com o mesmo WhatsApp */
.alerta-dup { margin: 4px 0 8px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, #f5b400 18%, var(--superficie)); border: 1px solid color-mix(in srgb, #f5b400 55%, var(--linha)); font-size: 14px; }
.alerta-dup a { color: inherit; font-weight: 600; }

/* grupos de debate */
.grupos-pagina { max-width: 860px; }
.grupos-cabeca { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin: 8px 0 18px; }
.grupos-cabeca h1 { margin: 4px 0 6px; }
.grupos-cabeca p { max-width: 58ch; margin: 0; }
.grupos-secao { margin: 22px 0; }
.grupos-lista { display: flex; flex-direction: column; gap: 10px; }
.grupo-cartao { display: flex; align-items: center; gap: 12px; justify-content: space-between; flex-wrap: wrap; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--superficie); }
.grupo-link { display: flex; gap: 12px; align-items: flex-start; color: var(--tinta); text-decoration: none; flex: 1 1 320px; min-width: 0; }
.grupo-link:hover b { text-decoration: underline; }
.grupo-ico { flex: none; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--vermelho-fundo); color: var(--vermelho); font: 800 16px var(--f-display); }
.grupo-ico.grande { width: 72px; height: 72px; border-radius: 18px; font-size: 26px; }
.grupo-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.grupo-txt small { color: var(--tinta-2); font-size: 13px; }
.grupo-desc { color: var(--tinta-2); font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grupo-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.etiqueta-ok { background: color-mix(in srgb, #2e9e5b 18%, var(--superficie)); }
.grupo-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin-bottom: 18px; }
.grupo-form h2, .grupo-form .campo-cheio { grid-column: 1 / -1; }
.grupo-form fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 640px) { .grupo-form { grid-template-columns: 1fr; } }
.grupo-topo { display: flex; gap: 16px; align-items: flex-start; margin: 10px 0 18px; }
.grupo-topo h1 { margin: 4px 0 6px; }
.grupo-topo p { margin: 4px 0; }
.grupo-topo .botoes { margin-top: 10px; }
.grupo-convidar { margin-bottom: 16px; }
.grupo-convidar input { width: 100%; margin: 8px 0; }
.gc-lista { list-style: none; margin: 0; padding: 0; max-height: 320px; overflow: auto; display: flex; flex-direction: column; gap: 6px; }
.gc-lista li { display: flex; align-items: center; gap: 10px; }
.gc-lista li > span { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.gc-lista small { color: var(--tinta-2); font-size: 12px; }
/* painel: resumo, textos e histórico */
.adm-resumo { margin-top: 18px; display: flex; flex-direction: column; gap: 8px; }
.adm-resumo textarea { width: 100%; font-size: 14px; }
.adm-textos { display: flex; flex-direction: column; gap: 14px; }
.adm-texto { display: flex; flex-direction: column; gap: 6px; }
.adm-texto textarea { width: 100%; font: 14px/1.5 var(--f-mono, monospace); }
.hist-lista { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hist-lista li { display: flex; gap: 14px; align-items: baseline; padding: 10px 14px; }
.hist-quando { flex: none; width: 120px; color: var(--tinta-2); font: 500 12px var(--f-mono, monospace); }

/* compositor: a caixa cresce com o texto; dica e contador numa linha discreta embaixo */
.compor textarea#pub-texto { resize: none; overflow-y: auto; max-height: 60vh; }
.compor-rodape { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 2px 56px; padding-top: 8px; border-top: 1px solid var(--linha); font: 13px/1.4 var(--f-texto); color: var(--tinta-2); }
.compor-rodape[hidden] { display: none; }
.compor-dica code { font: 600 12px var(--f-mono, monospace); background: var(--vermelho-fundo); color: var(--tinta); padding: 1px 5px; border-radius: 5px; }
.compor-conta { margin-left: auto; font-variant-numeric: tabular-nums; }
.compor-conta.perto { color: var(--vermelho); font-weight: 700; }
@media (max-width: 640px) { .compor-rodape { margin-left: 0; } }
.compor-causas { margin: 4px 0; }
.compor-causas summary { cursor: pointer; font-weight: 600; font-size: 15px; padding: 6px 0; list-style: none; }
.compor-causas summary::-webkit-details-marker { display: none; }
.compor-causas summary::before { content: "+ "; color: var(--vermelho); }
.compor-causas[open] summary::before { content: "– "; }
.compor-causas .causas-escolha { margin-top: 8px; }
.compor-causas-n { color: var(--vermelho); font-weight: 700; }

/* selo pioneiro(a): broto verde, para quem chegou no começo */
.selo-pioneiro .selo-svg { width: 15px; height: 15px; color: #2e9e5b; }
.selo-tag.selo-pioneiro { color: var(--tinta); }

.agenda-sugerir { margin-top: 6px; font-size: 15px; }
.agenda-sugerir a { color: var(--vermelho); font-weight: 600; }

/* evento: mapa do local e grupo para combinar */
.evento-local { display: flex; flex-direction: column; gap: 10px; }
.evento-local-end { margin: 0; }
.evento-mapa { height: 300px; border-radius: var(--raio); border: 1px solid var(--linha); overflow: hidden; z-index: 0; }
.pino-evento { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--vermelho); color: #fff; font-weight: 800; box-shadow: 0 0 0 3px #fff, 0 4px 12px rgba(0,0,0,.35); }
.evento-galera { display: flex; flex-direction: column; gap: 10px; }
.evento-galera h2 { margin: 0; }
.evento-galera p { margin: 0; }
.ev-parecidos[hidden] { display: none; }
.ev-parecidos { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--linha); padding-top: 10px; }
.ev-parecidos-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ev-parecidos-lista li { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ev-parecidos-lista li > span { display: flex; flex-direction: column; }
.ev-parecidos-lista small { color: var(--tinta-2); font-size: 13px; }

/* tela de carregando (ao abrir ou atualizar a página) */
.carregando { min-height: 52vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.carregando-estrela { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--vermelho); color: #fff; font-size: 24px; animation: pulsar 1.1s ease-in-out infinite; }
.carregando p { margin: 0; }
.esqueleto { width: min(520px, 100%); display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.esqueleto span { height: 14px; border-radius: 8px; background: linear-gradient(90deg, var(--linha) 25%, color-mix(in srgb, var(--linha) 40%, transparent) 50%, var(--linha) 75%); background-size: 200% 100%; animation: brilho 1.2s linear infinite; }
.esqueleto span:nth-child(2) { width: 82%; } .esqueleto span:nth-child(3) { width: 64%; }
@keyframes pulsar { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.88); opacity: .75; } }
@keyframes brilho { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .carregando-estrela, .esqueleto span { animation: none; } }

/* evento: compartilhar */
.evento-compartilhar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.evento-compartilhar .rotulo { margin-right: 4px; }
.evento-compartilhar .btn svg { width: 16px; height: 16px; margin-right: 4px; }
.evento-compartilhar [hidden] { display: none; }
.evento-compartilhar-dica { flex-basis: 100%; margin: 2px 0 0; font-size: 13px; }

/* lugares: estado + cidade */
.campo-lugar-uf select { min-width: 90px; }
.agenda-filtros { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 18px; }
.agenda-filtros .perto-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.agenda-filtros .perto-form input { width: 120px; }
.filtros-linha select + select { margin-left: 4px; }

.rodape-origem { font-size: 14px; color: var(--tinta-2); border-left: 3px solid var(--vermelho); padding-left: 10px; margin-top: 4px; }

/* regras da rede */
.regras-zero { border: 2px solid var(--vermelho); border-radius: var(--raio); padding: 18px 20px; background: color-mix(in srgb, var(--vermelho-fundo) 60%, var(--superficie)); }
.regras-zero h2 { color: var(--vermelho); margin-top: 0; }
.regras-lista-curta { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 10px 0; }
.regras-lista-curta li { padding: 4px 10px; border-radius: 99px; border: 1px solid var(--linha); background: var(--superficie); font-size: 14px; }
.regras-escala { list-style: none; padding: 0; margin: 10px 0; display: flex; flex-direction: column; gap: 10px; }
.regras-escala li { display: grid; grid-template-columns: 150px 1fr; gap: 12px; align-items: start; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 12px; background: var(--superficie); }
.regras-nivel { font: 700 12px/1.3 var(--f-mono, monospace); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-2); }
.regras-nivel.grave { color: var(--vermelho); }
@media (max-width: 640px) { .regras-escala li { grid-template-columns: 1fr; gap: 4px; } }

/* avisos no celular */
.bloco-push { margin: 16px 0; display: flex; flex-direction: column; gap: 8px; }
.bloco-push h2 { margin: 0; }
.bloco-push p { margin: 0; }
.bloco-push.destaque { border-color: color-mix(in srgb, var(--vermelho) 50%, var(--linha)); }
/* painel: proteção */
.adm-protecao { display: flex; flex-direction: column; gap: 12px; }
.prot-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.prot-lista .resolvido { opacity: .55; }
.prot-trecho { margin: 6px 0 0; padding: 8px 12px; border-left: 3px solid var(--linha); background: var(--papel); font-size: 14px; white-space: pre-line; }
.etiqueta-alerta { background: var(--vermelho); color: #fff; }
.adm-termos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.adm-termos .caixa { display: flex; flex-direction: column; gap: 6px; }
.adm-termos textarea { width: 100%; font: 14px/1.5 var(--f-mono, monospace); }
.adm-termos .botoes { grid-column: 1 / -1; }
.adm-contagem { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--vermelho); color: #fff; font-size: 12px; vertical-align: middle; }
@media (max-width: 720px) { .adm-termos { grid-template-columns: 1fr; } }

/* página A rede */
.rede { display: flex; flex-direction: column; }
.rede .miolo { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
.rede .miolo.estreito { max-width: 760px; }
.rede-capa { padding: clamp(40px, 8vw, 96px) 0 clamp(28px, 5vw, 56px); background: radial-gradient(120% 90% at 10% 0%, color-mix(in srgb, var(--vermelho) 18%, transparent), transparent 60%); }
.rede-capa h1 { font: 800 clamp(34px, 6.4vw, 68px)/1.02 var(--f-display); letter-spacing: -.02em; margin: 10px 0 18px; max-width: 18ch; }
.rede-lead { font-size: clamp(17px, 2.2vw, 21px); line-height: 1.5; max-width: 52ch; color: var(--tinta-2); margin: 0 0 22px; }
.rede-numeros { max-width: 1080px; width: calc(100% - 40px); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; background: var(--superficie); }
.rede-numeros div { padding: 18px 16px; display: flex; flex-direction: column; gap: 2px; border-right: 1px solid var(--linha); }
.rede-numeros div:last-child { border-right: 0; }
.rede-numeros b { font: 800 clamp(28px, 4vw, 40px)/1 var(--f-display); color: var(--vermelho); }
.rede-numeros span { color: var(--tinta-2); font-size: 14px; }
.rede-sec { padding: clamp(36px, 6vw, 72px) 0 0; }
.rede-sec h2 { font: 800 clamp(26px, 3.6vw, 40px)/1.1 var(--f-display); margin: 6px 0 16px; letter-spacing: -.01em; }
.rede-sec p { font-size: 17px; line-height: 1.6; }
.rede-dor .miolo { border-left: 4px solid var(--vermelho); padding-left: 22px; }
.rede-partes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.rede-parte { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--tinta); text-decoration: none; transition: border-color .15s, transform .15s; }
.rede-parte:hover { border-color: var(--vermelho); transform: translateY(-2px); }
.rede-parte h3 { margin: 0; font: 800 22px var(--f-display); }
.rede-parte p { margin: 0; font-size: 15px; color: var(--tinta-2); flex: 1; }
.rede-parte-ico { font-size: 28px; }
.rede-pontos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rede-pontos li { padding: 18px 20px; border-radius: var(--raio); background: color-mix(in srgb, var(--vermelho-fundo) 55%, var(--superficie)); font-size: 16px; line-height: 1.5; }
.rede-pontos b { display: block; font: 800 19px var(--f-display); margin-bottom: 4px; }
.rede-passos { counter-reset: passo; list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.rede-passos li { counter-increment: passo; padding: 20px; border: 1px solid var(--linha); border-radius: var(--raio); font-size: 16px; line-height: 1.5; }
.rede-passos li::before { content: counter(passo); display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--vermelho); color: #fff; font: 800 18px var(--f-display); margin-bottom: 10px; }
.rede-passos b { display: block; font-size: 18px; }
.rede-origem p { font-size: 17px; }
.rede-fim { padding: clamp(40px, 7vw, 80px) 0 clamp(48px, 8vw, 96px); text-align: center; }
.rede-fim .botoes { justify-content: center; }
.rede-lema { font: 800 clamp(28px, 4.6vw, 48px)/1.1 var(--f-display); color: var(--vermelho); margin: 0 0 20px; }
@media (max-width: 900px) { .rede-partes { grid-template-columns: 1fr 1fr; } .rede-numeros { grid-template-columns: 1fr 1fr; } .rede-numeros div:nth-child(2) { border-right: 0; } .rede-numeros div:nth-child(-n+2) { border-bottom: 1px solid var(--linha); } }
@media (max-width: 640px) { .rede-partes, .rede-pontos, .rede-passos { grid-template-columns: 1fr; } .rede .miolo { padding: 0 16px; } .rede-numeros { width: calc(100% - 32px); } }
/* menu: "A rede" some na faixa apertada do tablet, como o Manifesto */
@media (max-width: 1000px) and (min-width: 641px) { .menu .menu-manifesto { display: none; } }

/* lista de espera e placar de bairros */
.rede-espera .miolo, .rede-bairros .miolo { display: flex; flex-direction: column; gap: 12px; }
.espera-placar, .bairros-placar { list-style: none; padding: 0; margin: 4px 0; display: flex; flex-direction: column; gap: 8px; }
.espera-placar li { display: grid; grid-template-columns: minmax(120px, 1fr) 2fr auto; gap: 12px; align-items: center; font-size: 15px; }
.bairros-placar li { display: grid; grid-template-columns: 32px minmax(110px, 1fr) 2fr 30px; gap: 10px; align-items: center; font-size: 15px; }
.bp-pos { font: 700 13px var(--f-mono, monospace); color: var(--tinta-2); }
.bp-n { font-weight: 700; text-align: right; }
.espera-barra { height: 10px; border-radius: 99px; background: var(--linha); overflow: hidden; }
.espera-barra i { display: block; height: 100%; background: var(--vermelho); border-radius: 99px; }
.espera-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin-top: 6px; }
.espera-form .campo-cheio { grid-column: 1 / -1; }
.espera-ok { margin-top: 6px; }
@media (max-width: 640px) { .espera-form { grid-template-columns: 1fr; } .espera-placar li { grid-template-columns: 1fr auto; } .espera-placar .espera-barra { grid-column: 1 / -1; grid-row: 2; } }

/* comunidade: tipos novos e filtro por bairro */
.pub-regra-tipo { margin: 6px 0 0; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--vermelho-fundo) 55%, var(--superficie)); font-size: 14px; line-height: 1.45; }
.pub-regra-tipo[hidden] { display: none; }
.pub-apoio-txt { font-size: 13px; font-weight: 600; }
.feed-bairro { margin: 4px 0 10px; }
/* convite pessoal e embaixador */
.bloco-convite { margin: 16px 0; display: flex; flex-direction: column; gap: 8px; }
.bloco-convite h2, .bloco-convite p { margin: 0; }
.convite-conta b { font: 800 24px var(--f-display); color: var(--vermelho); }
.selo-embaixador .selo-svg { width: 15px; height: 15px; color: #e08a00; }
.quem-trouxe { margin: 0 0 14px; }
.quem-trouxe ol { margin: 6px 0; padding-left: 20px; }

/* compositor: tipos de post em dois grupos */
.tipos-pub-grupo { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.tipos-pub-rotulo { font: 600 12px var(--f-mono, monospace); text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-2); }

/* incentivo a colocar foto */
.dica-foto { margin: 4px 0 2px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--vermelho-fundo) 55%, var(--superficie)); font-size: 14px; line-height: 1.45; }
.aviso-sem-foto { margin: 10px 0; display: flex; flex-direction: column; gap: 8px; border-color: color-mix(in srgb, var(--vermelho) 45%, var(--linha)); }
.aviso-sem-foto p { margin: 0; }

/* painel: anúncio ligado à pessoa */
.adm-ligado { margin: 4px 0 0; font-size: 14px; }
.adm-troca { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.adm-troca[hidden] { display: none; }
.adm-troca input { width: 100%; max-width: 480px; }
.adm-troca-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-width: 560px; }
.adm-troca-lista li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid var(--linha); border-radius: 10px; }
.adm-troca-lista li > span { display: flex; flex-direction: column; min-width: 0; }
.adm-troca-lista small { color: var(--tinta-2); font-size: 12px; }

/* contato só para quem faz parte */
.contato-trancado { margin: 10px 0; display: flex; flex-direction: column; gap: 10px; border-color: color-mix(in srgb, var(--vermelho) 40%, var(--linha)); }
.contato-trancado p { margin: 0; }

/* pedido de contato */
.pedido-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.pedido-form .campo-cheio { grid-column: 1 / -1; }
.contato-membro { margin: 0; font-size: 14px; }
#pedido-contato h2 { margin: 0; }
.interessados-lista { list-style: none; margin: 10px 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.interessados-lista .resolvido { opacity: .6; }
.interessados-link { margin: 0 0 8px; font-weight: 600; }
@media (max-width: 640px) { .pedido-form { grid-template-columns: 1fr; } }

/* autorização e confirmação ao assumir */
.autorizar { margin: 14px 0; display: flex; flex-direction: column; gap: 8px; border-color: color-mix(in srgb, var(--vermelho) 50%, var(--linha)); }
.autorizar h2, .autorizar p { margin: 0; }
.autorizar.ok { border-color: color-mix(in srgb, #2e9e5b 50%, var(--linha)); }
.pb-confirma { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.pb-confirma p { margin: 0; }
.pb-confirma-linha { display: flex; gap: 8px; align-items: center; }
.pb-confirma-linha input { width: 110px; letter-spacing: .3em; font-size: 18px; text-align: center; }
.adm-assumir { margin-bottom: 14px; }

/* logo nova: bandeira com o punho (imagem no lugar da estrela) */
.marca-estrela, .ab-estrela, .carregando-estrela { background: none; border-radius: 0; color: inherit; font-size: 0; }
.marca-estrela img, .ab-estrela img, .carregando-estrela img { display: block; width: 100%; height: 100%; object-fit: contain; }
.marca-estrela { width: 44px; height: 44px; }
.ab-estrela { width: clamp(84px, 14vh, 120px); height: clamp(84px, 14vh, 120px); box-shadow: none; }
.ab-estrela img { filter: drop-shadow(0 6px 30px rgba(0,0,0,.55)); }
.carregando-estrela { width: 64px; height: 64px; }

/* nome bicolor: Soberania em amarelo no tema escuro e na abertura, verde no tema claro, em Rede no vermelho */
.nome-1 { color: var(--cor-nome); }
.nome-2 { color: var(--vermelho); }
.ab-portao-titulo .nome-1, .ab-titulo span.nome-1 { color: #FEC702; }
.ab-portao-titulo .nome-2, .ab-titulo span.nome-2 { color: #FF4D52; }
.ab-portao-titulo { text-shadow: 0 4px 40px rgba(0,0,0,.75); }
.ab-portao-lema { margin: 4px 0 0; font: 600 clamp(17px, 2.4vw, 24px)/1.2 var(--f-display); color: rgba(245,236,235,.82); letter-spacing: -0.01em; }
.ab-portao .ab-botoes-portao { margin-top: clamp(14px, 3vh, 26px); }
/* logo maior na abertura, com halo claro no lugar do brilho vermelho */
.ab-portao .ab-estrela { width: clamp(130px, 22vh, 200px); height: clamp(130px, 22vh, 200px); }
.ab-final .ab-estrela { width: clamp(96px, 15vh, 150px); height: clamp(96px, 15vh, 150px); }
.ab-estrela::after { inset: -22%; background: radial-gradient(closest-side, rgba(255,236,190,.38), rgba(255,236,190,.1) 60%, rgba(255,236,190,0)); }
.ab-titulo span:first-child { color: #FEC702; }

/* cartões sem foto (reservas, pedidos de contato, pedidos para assumir): sem a coluna da foto, o texto usa a largura toda */
.pedido:not(:has(> .pedido-img)), .reserva-item { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 640px) {
  .pedido:not(:has(> .pedido-img)), .reserva-item { grid-template-columns: minmax(0, 1fr); }
  .reserva-item .pedido-acoes .btn { flex: 1 1 auto; }
  .res-valor input { width: 100%; max-width: 160px; }
}
.reserva-item .pedido-info p { overflow-wrap: break-word; }

/* avaliação: só com conta */
.aval-entrar p { margin: 0 0 6px; }
.aval-entrar-botoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px !important; }
.pedido-info .etiqueta-alerta { align-self: flex-start; white-space: normal; }

/* pedir convite: passos com prazo */
.btn-grande { font-size: 17px; padding: 14px 20px; }
.passos-entrada { list-style: none; counter-reset: passo; padding: 0; margin: 18px 0; display: grid; gap: 10px; }
.passos-entrada li { counter-increment: passo; display: grid; grid-template-columns: 34px 1fr; gap: 2px 10px; align-items: start; }
.passos-entrada li::before { content: counter(passo); grid-row: span 2; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--vermelho); color: var(--sobre-vermelho); font: 700 15px/1 var(--f-display); }
.passos-entrada b { font-size: 16px; }
.passos-entrada span { color: var(--tinta-2); font-size: 15px; }

/* agenda: selo de quando e bloco "Toda semana" */
.selo-quando { display: inline-block; align-self: flex-start; margin-bottom: 4px; padding: 3px 9px; border-radius: 999px; font: 700 13px/1.2 var(--f-texto); background: var(--sol); color: #1B1315; }
.selo-quando.hoje { background: var(--vermelho); color: var(--sobre-vermelho); }
.agenda-toda-semana { grid-column: 1 / -1; margin: 18px 0 4px; }

/* primeira visita: faixa fina em vez do quadro de boas-vindas */
.faixa-primeira { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; padding: 10px 12px 10px 14px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); font-size: 15px; }
.faixa-primeira span { flex: 1 1 220px; }
.faixa-primeira-x { border: 0; background: none; color: var(--tinta-2); font-size: 22px; line-height: 1; cursor: pointer; padding: 4px 6px; }
/* leitura: rótulos maiores e botões do cartão sem quebrar */
.rotulo { font-size: 13px; }
.cartao-corpo .rotulo { font-size: 11.5px; }
.popup .rotulo { font-size: 12px; }
.etiqueta { font-size: 12px; }
.cartao-pe .btn { white-space: nowrap; }

/* comunidade: prévia para quem ainda não é da rede */
.com-previa { list-style: none; padding: 0; margin: 14px 0 18px; display: grid; gap: 10px; }
.com-previa li { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.com-previa b { font-size: 16px; }
.com-previa span { color: var(--tinta-2); font-size: 15px; }
.rede .ajuda-item { margin-bottom: 8px; }

/* faixa do topo parada: uma frase só, sem rolar */
.letreiro-topo.letreiro-parado { display: block; text-align: center; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 600 13px/1.2 var(--f-texto); letter-spacing: 0; padding: 0 8px; }
.letreiro-topo.letreiro-parado a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* hospedagem solidária */
.evento-chamada { font: 600 clamp(17px, 2.4vw, 21px)/1.35 var(--f-display); margin: 4px 0 8px; }
.tabela-valores { width: 100%; max-width: 480px; border-collapse: collapse; margin: 10px 0 14px; font-size: 15px; }
.tabela-valores th, .tabela-valores td { padding: 8px 10px; border-bottom: 1px solid var(--linha); text-align: left; }
.tabela-valores td + td, .tabela-valores th + th { text-align: right; }
.evento-junto h2 { margin: 0 0 6px; font-size: 20px; }
.pago-extra { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
@media (max-width: 640px) { .pago-extra { grid-template-columns: 1fr; } }
.res-pago { background: var(--vermelho-fundo); padding: 6px 10px; border-radius: 8px; }
