/* Bíblia Master — estilos. Visual 4.7: o mesmo estilo do CRM da Global (Inter, azul-marinho #0A1128 e verde #00A335,
   cartões arredondados que sobem ao passar o mouse, botões verdes com sombra, selos em pílula e foco verde).
   Os nomes das variáveis vêm da paleta anterior: --marinho = cor principal (topo), --dourado = destaque com contraste AA,
   --dourado-claro = destaque decorativo (as mesmas que o administrador personaliza). O texto bíblico continua em fonte serifada. */
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(../fonts/inter-latin-wght-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(../fonts/inter-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --marinho: #0a1128;
  --marinho-2: #1b2a4a;
  --dourado: #007a2b;        /* verde escurecido: contraste AA sobre o fundo e sob texto branco */
  --dourado-claro: #00a335;  /* verde da marca: realces, bordas e foco */
  --papel: #f5f7fa;
  --superficie: #ffffff;
  --superficie-2: #eef2f6;
  --linha: #dfe5ec;
  --tinta: #0f172a;
  --tinta-2: #475569;        /* texto secundário, 7:1 sobre o fundo */
  --foco: #00a335;
  --perigo: #b3261e;
  --sucesso: #1e6b3a;
  --sombra: 0 1px 2px rgb(10 17 40 / .06), 0 6px 20px rgb(10 17 40 / .06);
  --sombra-verde: 0 10px 28px rgb(0 163 53 / .16), 0 2px 6px rgb(10 17 40 / .06);

  --d-amarelo: #f8e9a0; --d-verde: #cdeacb; --d-azul: #cde0f5; --d-rosa: #f5d3e1; --d-laranja: #f9d9b6;

  --fonte-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fonte-leitura: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --tam-texto: 19px;
  --entrelinha: 1.7;
  --largura-lateral: 232px;
  --largura-painel: 380px;
  --raio: 14px;
  --altura-topo: 56px;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    --marinho: #050a18; --marinho-2: #12203d; --dourado: #3ddc6f; --dourado-claro: #00a335;
    --papel: #0a1128; --superficie: #111a30; --superficie-2: #17223d; --linha: #26344f;
    --tinta: #e8edf5; --tinta-2: #a9b4c6; --foco: #5be38a; --perigo: #ff8a80; --sucesso: #7dd39a;
    --sombra: 0 1px 2px rgb(0 0 0 / .4), 0 6px 20px rgb(0 0 0 / .3); --sombra-verde: 0 10px 28px rgb(0 163 53 / .22), 0 2px 6px rgb(0 0 0 / .4);
    --d-amarelo: #5b4f1b; --d-verde: #22472a; --d-azul: #1f3a5c; --d-rosa: #552a3d; --d-laranja: #5c3a1c;
    color-scheme: dark;
  }
}
:root[data-tema="escuro"] {
  --marinho: #050a18; --marinho-2: #12203d; --dourado: #3ddc6f; --dourado-claro: #00a335;
  --papel: #0a1128; --superficie: #111a30; --superficie-2: #17223d; --linha: #26344f;
  --tinta: #e8edf5; --tinta-2: #a9b4c6; --foco: #5be38a; --perigo: #ff8a80; --sucesso: #7dd39a;
  --sombra: 0 1px 2px rgb(0 0 0 / .4), 0 6px 20px rgb(0 0 0 / .3); --sombra-verde: 0 10px 28px rgb(0 163 53 / .22), 0 2px 6px rgb(0 0 0 / .4);
  --d-amarelo: #5b4f1b; --d-verde: #22472a; --d-azul: #1f3a5c; --d-rosa: #552a3d; --d-laranja: #5c3a1c;
  color-scheme: dark;
}
:root[data-fonte="sem_serifa"] { --fonte-leitura: var(--fonte-ui); }
:root[data-espacamento="compacto"] { --entrelinha: 1.5; }
:root[data-espacamento="amplo"] { --entrelinha: 2; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--papel); color: var(--tinta);
  font: 16px/1.5 var(--fonte-ui); min-height: 100vh; overflow-x: hidden;
}
h1, h2, h3 { font-family: var(--fonte-leitura); font-weight: 600; line-height: 1.25; color: var(--tinta); }
h1 { font-size: 1.75rem; margin: 0 0 .75rem; }
h2 { font-size: 1.3rem; margin: 1.5rem 0 .6rem; }
h3 { font-size: 1.08rem; margin: 1rem 0 .4rem; }
a { color: var(--marinho-2); text-underline-offset: 2px; }
:root[data-tema="escuro"] a { color: #9cc0ff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) a { color: #9cc0ff; } }
p { margin: .5rem 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: 4px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.oculto, [hidden] { display: none !important; }
.sprite { display: none; }
svg { width: 1.25em; height: 1.25em; flex: none; }

.pular { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--superficie); padding: .5rem 1rem; border-radius: var(--raio); }
.pular:focus { left: 8px; }

/* ---------- topo ---------- */
.topo {
  position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: .5rem;
  height: var(--altura-topo); padding: 0 .75rem; background: var(--marinho); color: #f4efe2;
  border-bottom: 2px solid var(--dourado-claro);
}
.marca { display: flex; align-items: center; gap: .5rem; color: #f4efe2 !important; text-decoration: none; font-family: var(--fonte-leitura); font-size: 1.15rem; font-weight: 600; white-space: nowrap; }
.marca-icone { width: 2rem; height: 2rem; border-radius: 22%; box-shadow: 0 0 0 1px rgb(227 196 123 / .35); flex: none; }
.marca-nome { letter-spacing: .01em; }
.marca-nome b { font-weight: 600; font-variant: small-caps; letter-spacing: .08em; color: var(--dourado-claro); font-size: 1.06em; }
.busca-topo { flex: 1; max-width: 520px; margin-left: auto; }
.busca-topo input[type="search"] {
  width: 100%; height: 38px; border-radius: 19px; border: 1px solid rgb(255 255 255 / .25);
  background: rgb(255 255 255 / .1); color: #fff; padding: 0 1rem;
}
.busca-topo input[type="search"]::placeholder { color: rgb(255 255 255 / .75); }
#abrir-busca { display: none; }
.botao-icone {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px;
  border: 0; background: transparent; color: inherit; border-radius: 22px; cursor: pointer; padding: 0 .5rem; gap: .35rem;
}
.botao-icone:hover { background: rgb(127 127 127 / .14); }
.topo .botao-icone { color: #f4efe2; }

/* ---------- estrutura ---------- */
.estrutura { display: grid; grid-template-columns: var(--largura-lateral) minmax(0, 1fr); min-height: calc(100vh - var(--altura-topo)); }
.estrutura.com-painel { grid-template-columns: var(--largura-lateral) minmax(0, 1fr) var(--largura-painel); }
.lateral {
  position: sticky; top: var(--altura-topo); height: calc(100vh - var(--altura-topo)); overflow-y: auto; padding: 1rem .5rem;
  border-right: 1px solid var(--linha); background: var(--superficie-2);
}
.lateral ul { list-style: none; margin: 0; padding: 0; }
.lateral .secundaria { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.lateral a, .lateral .link {
  display: flex; align-items: center; gap: .65rem; width: 100%; min-height: 42px; padding: .4rem .75rem;
  border-radius: 8px; color: var(--tinta) !important; text-decoration: none; border: 0; background: none; cursor: pointer; text-align: left;
}
.lateral a:hover, .lateral .link:hover { background: rgb(127 127 127 / .12); }
.lateral a[aria-current="page"] { background: var(--marinho); color: #f4efe2 !important; }
.lateral a[aria-current="page"] svg { color: var(--dourado-claro); }
:root[data-tema="escuro"] .lateral a[aria-current="page"], :root[data-tema="escuro"] .avisos > div:not(.erro) { background: #2d4373; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .lateral a[aria-current="page"], :root:not([data-tema="claro"]) .avisos > div:not(.erro) { background: #2d4373; } }

main { padding: 1.5rem clamp(1rem, 3vw, 2.5rem) 5rem; min-width: 0; outline: none; }
.largura-leitura { max-width: 46rem; margin: 0 auto; }
.largura-larga { max-width: 72rem; margin: 0 auto; }
.carregando { color: var(--tinta-2); }

/* ---------- painel contextual ---------- */
.painel {
  position: sticky; top: var(--altura-topo); height: calc(100vh - var(--altura-topo)); overflow-y: auto; background: var(--superficie);
  border-left: 1px solid var(--linha); display: flex; flex-direction: column;
}
.painel-cabeca { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .5rem .5rem 1rem; border-bottom: 1px solid var(--linha); position: sticky; top: 0; background: var(--superficie); z-index: 1; }
.painel-cabeca h2 { margin: 0; font-size: 1.1rem; }
.painel-corpo { padding: 1rem; }

/* ---------- componentes ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 44px; padding: .5rem 1rem;
  border-radius: 8px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); cursor: pointer; text-decoration: none; font-weight: 500;
}
.botao:hover { border-color: var(--tinta-2); }
.botao.primario { background: var(--marinho); border-color: var(--marinho); color: #f4efe2; }
.botao.primario:hover { background: var(--marinho-2); }
.botao.perigo { color: var(--perigo); border-color: currentColor; background: transparent; }
.botao.pequeno { min-height: 36px; padding: .3rem .7rem; font-size: .92rem; }
.botao[disabled] { opacity: .55; cursor: not-allowed; }
.botao[aria-pressed="true"] { background: var(--marinho); color: #f4efe2; border-color: var(--marinho); }
.cartao { overflow-wrap: anywhere; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1rem 1.15rem; box-shadow: var(--sombra); min-width: 0; }
.cartao h2, .cartao h3 { margin-top: 0; }
.grade { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.linha-botoes { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.discreto { color: var(--tinta-2); font-size: .92rem; }
.vazio { color: var(--tinta-2); font-style: italic; }
.aviso { border-left: 4px solid var(--dourado); background: var(--superficie-2); padding: .65rem .9rem; border-radius: 6px; margin: .75rem 0; }
.aviso.erro { border-color: var(--perigo); }
.selo {
  display: inline-flex; align-items: center; gap: .3rem; font: 600 .72rem/1 var(--fonte-ui); letter-spacing: .03em; text-transform: uppercase;
  padding: .3rem .5rem; border-radius: 999px; border: 1px solid var(--linha); color: var(--tinta-2); background: var(--superficie-2); white-space: nowrap;
}
.selo.texto_biblico { color: var(--marinho-2); border-color: currentColor; }
.selo.referencia_cruzada { color: #6a3e9c; border-color: currentColor; }
.selo.anotacao_pessoal { color: var(--sucesso); border-color: currentColor; }
.selo.pendente { color: var(--dourado); border-color: currentColor; background: transparent; }
:root[data-tema="escuro"] .selo.texto_biblico, :root[data-tema="escuro"] .selo.referencia_cruzada { color: #9cc0ff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.texto_biblico, :root:not([data-tema="claro"]) .selo.referencia_cruzada { color: #b7a3ff; } }
.selo.sigla { text-transform: none; letter-spacing: 0; color: var(--tinta); }

label { display: block; font-weight: 600; margin: .75rem 0 .3rem; }
input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], input[type="url"], select, textarea {
  width: 100%; min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie);
}
textarea { min-height: 7rem; resize: vertical; line-height: 1.5; }
.campo-dica { font-size: .88rem; color: var(--tinta-2); margin: .25rem 0 0; }
fieldset { border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem 1rem; margin: 1rem 0; min-width: 0; }
legend { font-weight: 600; padding: 0 .35rem; }
.opcoes-radio { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.opcoes-radio label { font-weight: 400; display: flex; align-items: center; gap: .4rem; margin: 0; min-height: 36px; }
.check { display: flex; align-items: center; gap: .5rem; font-weight: 400; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; accent-color: var(--marinho-2); }
input[type="range"] { width: 100%; accent-color: var(--marinho-2); }

/* ---------- painel inicial ---------- */
.busca-destaque { background: var(--marinho); color: #f4efe2; border-radius: var(--raio); padding: 1.25rem; margin-bottom: 1rem; }
.busca-destaque h1 { color: #f4efe2; margin-bottom: .5rem; }
.busca-destaque form { display: flex; gap: .5rem; flex-wrap: wrap; }
.busca-destaque input { flex: 1 1 14rem; background: #fff; color: #1d2430; border: 0; }
.busca-destaque .botao { background: var(--dourado-claro); color: #14213d; border: 0; }
.busca-destaque .discreto { color: rgb(244 239 226 / .85); margin-top: .6rem; }
.verso-dia blockquote { font-family: var(--fonte-leitura); font-size: 1.15rem; line-height: 1.6; margin: .5rem 0; padding-left: 1rem; border-left: 3px solid var(--dourado); }
.lista-simples { list-style: none; margin: 0; padding: 0; }
.lista-simples li { padding: .55rem 0; border-bottom: 1px solid var(--linha); }
.lista-simples li:last-child { border-bottom: 0; }
.lista-simples .trecho { font-family: var(--fonte-leitura); color: var(--tinta-2); display: block; overflow-wrap: anywhere; }
.livros-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)); gap: .35rem; }
.livros-grade a { display: block; padding: .5rem .6rem; border-radius: 6px; text-decoration: none; color: var(--tinta) !important; border: 1px solid var(--linha); background: var(--superficie); min-height: 44px; }
.livros-grade a:hover { border-color: var(--dourado); }
.categoria-titulo { font: 600 .8rem var(--fonte-ui); text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-2); margin: 1rem 0 .4rem; }

/* ---------- leitor ---------- */
.leitor-barra {
  position: sticky; top: var(--altura-topo); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  background: var(--papel); padding: .5rem 0; border-bottom: 1px solid var(--linha); margin-bottom: 1rem;
}
.leitor-barra .seletor { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.leitor-barra select { width: auto; min-width: 0; max-width: 11rem; }
.leitor-barra .espaco { flex: 1; }
.traducoes { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.chip { display: inline-flex; align-items: center; gap: .15rem; border: 1px solid var(--linha); border-radius: 999px; padding: 0 0 0 .7rem; background: var(--superficie); min-height: 36px; font-weight: 600; font-size: .9rem; }
.chip button { border: 0; background: none; min-width: 36px; height: 36px; border-radius: 18px; cursor: pointer; color: var(--tinta-2); display: inline-flex; align-items: center; justify-content: center; }
.chip button:hover { background: rgb(127 127 127 / .15); }
.chip svg { width: 1rem; height: 1rem; }
.chip.unico { padding-right: .7rem; }
.titulo-capitulo { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; }
.titulo-capitulo h1 { margin: 0; }
.creditos-capitulo { font-size: .85rem; color: var(--tinta-2); margin: .25rem 0 1.25rem; }
.creditos-capitulo span { display: block; }

.versos { font-family: var(--fonte-leitura); font-size: var(--tam-texto); line-height: var(--entrelinha); }
.verso {
  display: grid; grid-template-columns: repeat(var(--colunas, 1), minmax(0, 1fr)); gap: 1.25rem;
  padding: .15rem .4rem; margin: 0 -.4rem; border-radius: 6px; cursor: pointer; position: relative;
}
.verso:hover { background: rgb(127 127 127 / .07); }
.verso.selecionado { outline: 2px solid var(--dourado); outline-offset: -1px; }
.verso .col { min-width: 0; overflow-wrap: anywhere; }
.verso .num, .link-num {
  font: 700 .66em/1 var(--fonte-ui); color: var(--dourado); user-select: none; border: 0; background: none; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px; padding: 0 .2em; margin-right: .15em;
  vertical-align: .15em; border-radius: 4px;
}
.link-num:hover { background: rgb(127 127 127 / .15); }
.pre { white-space: pre-wrap; }
.verso .sigla-verso { display: none; font: 700 .68rem var(--fonte-ui); color: var(--tinta-2); margin-right: .35rem; }
.verso .ausente { font-family: var(--fonte-ui); font-size: .85em; color: var(--tinta-2); font-style: italic; }
.verso .marcas { position: absolute; right: .25rem; top: .3rem; display: flex; gap: .15rem; color: var(--dourado); }
.verso .marcas svg { width: .85rem; height: .85rem; }
.verso.tem-marca .col:last-child { padding-right: 1.6rem; }
.cabecalho-colunas { display: grid; grid-template-columns: repeat(var(--colunas, 1), minmax(0, 1fr)); gap: 1.25rem; font: 700 .8rem var(--fonte-ui); color: var(--tinta-2); text-transform: uppercase; letter-spacing: .04em; padding: 0 .4rem; margin: 0 -.4rem .5rem; }
:root[data-numeros="nao"] .verso .num { display: none; }
.d-amarelo { background: var(--d-amarelo) !important; } .d-verde { background: var(--d-verde) !important; } .d-azul { background: var(--d-azul) !important; }
.d-rosa { background: var(--d-rosa) !important; } .d-laranja { background: var(--d-laranja) !important; }
.navegacao-capitulo { display: flex; justify-content: space-between; gap: .5rem; margin-top: 2rem; flex-wrap: wrap; }

/* modo sem distrações */
body.foco .lateral, body.foco .topo, body.foco .inferior, body.foco .leitor-barra .so-normal { display: none !important; }
body.foco .estrutura { grid-template-columns: minmax(0, 1fr) !important; }
body.foco .leitor-barra { top: 0; }
body.foco main { padding-top: .5rem; }

/* ações do versículo */
.cores { display: flex; gap: .4rem; flex-wrap: wrap; }
.cor { width: 44px; height: 44px; border-radius: 22px; border: 2px solid var(--linha); cursor: pointer; }
.cor[aria-pressed="true"] { border-color: var(--tinta); box-shadow: 0 0 0 2px var(--superficie) inset; }
.anotacao { border: 1px solid var(--linha); border-radius: 8px; padding: .6rem .75rem; margin: .5rem 0; background: var(--superficie-2); }
.anotacao p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0 0 .4rem; }
.ref-item { border-bottom: 1px solid var(--linha); padding: .65rem 0; }
.ref-item a { font-weight: 600; }
.ref-item .trecho { font-family: var(--fonte-leitura); margin: .25rem 0; overflow-wrap: anywhere; }
.medidor { display: inline-flex; gap: 2px; vertical-align: middle; }
.medidor i { width: 6px; height: 12px; border-radius: 2px; background: var(--linha); }
.medidor i.on { background: var(--dourado); }

/* ---------- busca ---------- */
.form-busca { display: grid; gap: .5rem; }
.form-busca .linha { display: flex; gap: .5rem; flex-wrap: wrap; }
.form-busca .linha input { flex: 1 1 14rem; }
.filtros { display: grid; gap: .5rem 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.filtros label { margin: 0 0 .2rem; font-size: .88rem; }
.resultado { padding: .85rem 0; border-bottom: 1px solid var(--linha); }
.resultado .cab { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.resultado .cab a { font-weight: 600; }
.resultado .texto { font-family: var(--fonte-leitura); font-size: 1.05rem; margin: .3rem 0; overflow-wrap: anywhere; }
.resultado .contexto { font-family: var(--fonte-leitura); color: var(--tinta-2); font-size: .95rem; overflow-wrap: anywhere; }
.resultado .contexto .num { font: 700 .7em var(--fonte-ui); color: var(--dourado); margin-right: .2em; }
mark { background: var(--d-amarelo); color: inherit; padding: 0 .1em; border-radius: 2px; }
.paginacao { display: flex; justify-content: center; align-items: center; gap: .75rem; margin: 1.5rem 0; flex-wrap: wrap; }
.passagem { font-family: var(--fonte-leitura); line-height: 1.65; }
.passagem .num { font: 700 .65em var(--fonte-ui); color: var(--dourado); vertical-align: super; margin-right: .2em; }

/* ---------- tabelas de crédito / admin ---------- */
.fonte-card + .fonte-card { margin-top: 1rem; }
.fonte-card dl { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: .3rem 1rem; margin: .5rem 0; }
.fonte-card dt { color: var(--tinta-2); font-size: .9rem; }
.fonte-card dd { margin: 0; overflow-wrap: anywhere; }
.permissoes { display: flex; flex-wrap: wrap; gap: .35rem; }
.permissoes .sim { color: var(--sucesso); border-color: currentColor; }
.permissoes .nao { color: var(--perigo); border-color: currentColor; }
.tabela-rolagem { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
th, td { text-align: left; padding: .45rem .5rem; border-bottom: 1px solid var(--linha); vertical-align: top; overflow-wrap: anywhere; }
progress { width: 100%; height: 12px; accent-color: var(--marinho-2); }

/* ---------- avisos ---------- */
.avisos { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 60; display: grid; gap: .5rem; width: min(92vw, 28rem); pointer-events: none; }
.avisos > div { background: var(--marinho); color: #f4efe2; padding: .75rem 1rem; border-radius: 8px; box-shadow: var(--sombra); pointer-events: auto; display: flex; gap: .75rem; align-items: center; justify-content: space-between; }
.avisos > div.erro { background: var(--perigo); color: #fff; }
.avisos button { background: none; border: 1px solid currentColor; color: inherit; border-radius: 6px; min-height: 36px; padding: 0 .75rem; cursor: pointer; }
.rede-aviso { position: fixed; top: var(--altura-topo); left: 0; right: 0; z-index: 25; background: var(--dourado-claro); color: #14213d; text-align: center; padding: .35rem 1rem; font-size: .9rem; }

dialog { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--tinta); padding: 0; width: min(92vw, 34rem); max-height: 85vh; box-shadow: var(--sombra); }
dialog::backdrop { background: rgb(10 15 25 / .55); }
.dialogo-cabeca { display: flex; justify-content: space-between; align-items: center; padding: .5rem .5rem .5rem 1rem; border-bottom: 1px solid var(--linha); }
.dialogo-cabeca h2 { margin: 0; font-size: 1.1rem; }
#dialogo-corpo { padding: 1rem; overflow-y: auto; }
kbd { font: 600 .85rem var(--fonte-ui); border: 1px solid var(--linha); border-bottom-width: 2px; border-radius: 4px; padding: .1rem .4rem; background: var(--superficie-2); }
.atalhos-lista { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1rem; align-items: center; margin: 0; }
.atalhos-lista dd { margin: 0; }

.inferior { display: none; }
.so-celular { display: none !important; }

/* ---------- celular e tablet ---------- */
@media (max-width: 1100px) {
  .estrutura.com-painel { grid-template-columns: var(--largura-lateral) minmax(0, 1fr); }
  .estrutura.com-painel .painel {
    position: fixed; right: 0; top: var(--altura-topo); bottom: 0; width: min(var(--largura-painel), 92vw); z-index: 40; box-shadow: var(--sombra); height: auto;
  }
}
@media (max-width: 860px) {
  .so-celular { display: inline-flex !important; }
  .busca-topo { display: none; }
  #abrir-busca { display: inline-flex; margin-left: auto; }
  .estrutura, .estrutura.com-painel { grid-template-columns: minmax(0, 1fr); }
  .lateral {
    position: fixed; z-index: 45; top: var(--altura-topo); left: 0; bottom: 0; height: auto; width: min(84vw, 300px);
    transform: translateX(-105%); transition: transform .2s ease; box-shadow: var(--sombra);
  }
  .lateral.aberta { transform: none; }
  .estrutura.com-painel .painel, .painel {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: 100%; height: auto; max-height: 78vh; z-index: 50;
    border-left: 0; border-top: 2px solid var(--dourado-claro); border-radius: 16px 16px 0 0; box-shadow: 0 -6px 24px rgb(0 0 0 / .25);
  }
  .inferior {
    display: flex !important; position: fixed; z-index: 35; left: 0; right: 0; bottom: 0; height: calc(60px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom); background: var(--superficie); border-top: 1px solid var(--linha); justify-content: space-around;
  }
  .inferior a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: .72rem; color: var(--tinta-2) !important; text-decoration: none; min-width: 0; }
  .inferior a[aria-current="page"] { color: var(--marinho-2) !important; font-weight: 700; }
  :root[data-tema="escuro"] .inferior a[aria-current="page"] { color: var(--dourado) !important; }
  @media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .inferior a[aria-current="page"] { color: var(--dourado) !important; } }
  main { padding: 1rem 1rem calc(80px + env(safe-area-inset-bottom)); }
  .leitor-barra { position: static; margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; }
  .leitor-barra .seletor select { max-width: 9.5rem; }
  .avisos { bottom: calc(72px + env(safe-area-inset-bottom)); }
  /* paralelo empilhado: uma tradução abaixo da outra, com a sigla visível */
  .verso { grid-template-columns: minmax(0, 1fr); gap: .2rem; padding-top: .35rem; padding-bottom: .35rem; }
  .verso.paralelo .sigla-verso { display: inline; }
  .verso.paralelo { border-bottom: 1px solid var(--linha); border-radius: 0; }
  .cabecalho-colunas { display: none; }
  .fonte-card dl { grid-template-columns: minmax(0, 1fr); }
  .fonte-card dd { margin-bottom: .4rem; }
  h1 { font-size: 1.45rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
@media print {
  .topo, .lateral, .inferior, .painel, .leitor-barra, .avisos, .navegacao-capitulo { display: none !important; }
  .estrutura { display: block; } body { background: #fff; color: #000; }
}

/* ---------- Fase 2: texto original, léxico, concordância, roteiro ---------- */
:root { --fonte-grego: "Gentium Plus", "SBL Greek", "Noto Serif", "Palatino Linotype", "Times New Roman", serif;
        --fonte-hebraico: "SBL Hebrew", "Ezra SIL", "Noto Serif Hebrew", "Taamey Frank CLM", "Times New Roman", serif; }
[lang="grc"] { font-family: var(--fonte-grego); }
[lang="hbo"] { font-family: var(--fonte-hebraico); }
.rotulo-curto { margin-left: .35rem; }
.interlinear { display: flex; flex-wrap: wrap; gap: .35rem; grid-column: 1 / -1; margin: .35rem 0 .6rem; padding: .4rem 0 .2rem; border-top: 1px dashed var(--linha); }
.interlinear[dir="rtl"] { flex-direction: row; }
.palavra-orig {
  display: inline-flex; flex-direction: column; align-items: center; gap: .05rem; min-width: 44px; min-height: 44px; padding: .25rem .4rem;
  border: 1px solid var(--linha); border-radius: 6px; background: var(--superficie); color: var(--tinta); cursor: pointer; font: inherit; line-height: 1.2;
}
.palavra-orig:hover { border-color: var(--dourado); }
.palavra-orig.tem-variante { border-style: dashed; border-color: var(--dourado); }
.po-texto { font-size: 1.15em; }
.interlinear[lang="hbo"] .po-texto { font-family: var(--fonte-hebraico); font-size: 1.3em; direction: rtl; }
.interlinear[lang="grc"] .po-texto { font-family: var(--fonte-grego); }
.po-var { color: var(--dourado); font-size: .6em; margin-left: .15em; vertical-align: super; }
.po-translit, .po-glosa, .po-strong { font: .68rem/1.25 var(--fonte-ui); color: var(--tinta-2); direction: ltr; text-align: center; }
.po-glosa { color: var(--tinta); font-style: italic; }
.verso.titulo-salmo { cursor: default; }
.interlinear-credito { margin-top: 1rem; }
.palavra-grande { font-size: 2rem; line-height: 1.3; margin: .25rem 0; }
.ficha { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: .25rem .75rem; margin: .5rem 0; }
.ficha dt { color: var(--tinta-2); font-size: .9rem; }
.ficha dd { margin: 0; overflow-wrap: anywhere; }
.definicao { font-size: .95rem; line-height: 1.55; overflow-wrap: anywhere; border-left: 3px solid var(--linha); padding-left: .75rem; }
.chips-livros { display: flex; flex-wrap: wrap; gap: .3rem; margin: .4rem 0 1rem; }
.chip-livro { border: 1px solid var(--linha); border-radius: 999px; padding: .2rem .6rem; font-size: .85rem; background: var(--superficie); color: var(--tinta) !important; text-decoration: none; }
a.chip-livro { min-height: 32px; display: inline-flex; align-items: center; }
.ocorrencias li { overflow-wrap: anywhere; }
.contexto .debate { border-left: 4px solid var(--dourado); background: var(--superficie-2); padding: .35rem .8rem; border-radius: 6px; margin: .5rem 0; }
.contexto h3 { font-size: .95rem; font-family: var(--fonte-ui); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-2); margin-top: .9rem; }
.selo.dado_lexical { color: #8a4b08; border-color: currentColor; }
.selo.interpretacao_academica { color: #5b3d8a; border-color: currentColor; }
:root[data-tema="escuro"] .selo.dado_lexical { color: #f0b46a; } :root[data-tema="escuro"] .selo.interpretacao_academica { color: #c5a8f0; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.dado_lexical { color: #f0b46a; } :root:not([data-tema="claro"]) .selo.interpretacao_academica { color: #c5a8f0; } }
.etapa textarea { min-height: 10rem; }
.perguntas { margin: .25rem 0 .5rem 1.1rem; padding: 0; color: var(--tinta-2); }
.perguntas li { margin: .2rem 0; }
.variante-item { border-bottom: 1px solid var(--linha); padding: .4rem 0; }
.comparar-item { border-bottom: 1px solid var(--linha); padding: .3rem 0; }
@media (max-width: 860px) {
  .rotulo-curto { display: none; }
  .ficha { grid-template-columns: minmax(0, 1fr); }
  .palavra-orig { min-width: 40px; }
}
.palavra-orig { max-width: 100%; }
.po-strong, .po-glosa, .po-translit { overflow-wrap: anywhere; white-space: normal; max-width: 9rem; }
.botao.ativo { background: var(--marinho); color: #f4efe2; border-color: var(--marinho); }

/* ---------- Fase 3: sermões, EBD, planos, diário, assistente ---------- */
.lateral-titulo { font: 600 .72rem var(--fonte-ui); text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); margin: 1rem .75rem .3rem; }
.selo.gerado_ia { color: #8c2f39; border-color: currentColor; }
.selo.tradicao_denominacional { color: #24557a; border-color: currentColor; }
.selo.aplicacao_pastoral, .selo.conteudo_autor { color: var(--sucesso); border-color: currentColor; }
:root[data-tema="escuro"] .selo.gerado_ia { color: #ff9aa5; } :root[data-tema="escuro"] .selo.tradicao_denominacional { color: #8cc4ef; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.gerado_ia { color: #ff9aa5; } :root:not([data-tema="claro"]) .selo.tradicao_denominacional { color: #8cc4ef; } }

.campo { min-width: 0; }
.campo label { margin-top: .6rem; }
.campo.sem-rotulo > label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.linha-campos { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: flex-end; }
.linha-campos > * { flex: 1 1 12rem; min-width: 0; }
.linha-campos > .botao, .linha-campos > button { flex: 0 0 auto; }
.linha-campos select { width: 100%; }
input.curto, .curto input { max-width: 9rem; }
input[type="number"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime-local"] { width: 100%; min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie); }
.rotulo-campo { font-weight: 600; margin: .9rem 0 .3rem; }

.editor-documento .titulo-documento { font: 600 1.6rem/1.25 var(--fonte-leitura); border: 0; border-bottom: 2px solid var(--linha); border-radius: 0; background: transparent; padding: .25rem 0; min-height: 48px; width: 100%; }
.editor-documento .titulo-documento:focus-visible { border-bottom-color: var(--foco); }
.linha-estado { margin: .25rem 0 .5rem; }
.estado-salvo { color: var(--tinta-2); font-size: .9rem; }
.estado-salvo.erro { color: var(--perigo); }
.barra-documento { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0 1rem; }
.secao-documento { margin: 1rem 0; }
.secao-documento > h2 { font-size: 1.15rem; }

.lista-ordenavel { margin: .25rem 0; }
.ordenavel { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.item-ordenavel { border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie-2); min-width: 0; }
.item-ordenavel.arrastando { outline: 2px dashed var(--dourado); opacity: .85; box-shadow: var(--sombra); }
.item-cabeca { display: flex; align-items: center; gap: .35rem; padding: .25rem .35rem .25rem .25rem; border-bottom: 1px solid var(--linha); }
.item-rotulo { flex: 1; min-width: 0; font-weight: 600; font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-botoes { display: inline-flex; gap: .1rem; }
.botao-icone.pequeno { min-width: 36px; height: 36px; border-radius: 18px; font-size: 1rem; }
.botao-icone.perigo { color: var(--perigo); }
.botao-icone[disabled] { opacity: .35; cursor: default; }
.alca { touch-action: none; cursor: grab; border: 1px dashed var(--linha); background: var(--superficie); border-radius: 6px; min-width: 36px; min-height: 36px; color: var(--tinta-2); font-size: 1.1rem; }
.alca:active { cursor: grabbing; }
.item-corpo { padding: .25rem .75rem .75rem; min-width: 0; }
.ordenavel.compacta .item-corpo { padding-top: 0; }
.ordenavel .ordenavel .item-ordenavel { background: var(--superficie); }
.subdivisoes { margin-top: .5rem; }

.previa:empty { display: none; }
.citacao-biblica { margin: .5rem 0; padding: .4rem .8rem; border-left: 3px solid var(--dourado); background: var(--superficie); border-radius: 0 6px 6px 0; }
.citacao-biblica .passagem { margin: .25rem 0; overflow-wrap: anywhere; }
.citacao-rotulo { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: 0; font-size: .92rem; }
.credito { font-size: .8rem; color: var(--tinta-2); margin: .2rem 0 0; }
.ausente { color: var(--tinta-2); font-style: italic; }
.inserir-passagem { margin-top: .4rem; }
.inserir-passagem label { font-weight: 500; font-size: .92rem; }
.nota-ia { border: 1px solid var(--linha); border-left: 3px solid #8c2f39; border-radius: 6px; padding: .5rem .75rem; margin: .5rem 0; background: var(--superficie-2); }
.ref-simples { font-family: var(--fonte-leitura); }

.abas { display: flex; gap: .25rem; border-bottom: 1px solid var(--linha); margin: .5rem 0 1rem; flex-wrap: wrap; }
.abas a { padding: .6rem 1rem; text-decoration: none; color: var(--tinta) !important; border-bottom: 3px solid transparent; min-height: 44px; display: inline-flex; align-items: center; }
.abas a[aria-current="page"] { border-bottom-color: var(--dourado); font-weight: 700; }
.dica-faixa { font-size: .92rem; }
.questao fieldset { margin: .5rem 0; }
.opcao { display: flex; align-items: center; gap: .4rem; margin: .3rem 0; }
.opcao input[type="text"] { flex: 1; min-width: 0; }
.opcao .letra { font-weight: 700; color: var(--tinta-2); }
.mes-agenda h3 { text-transform: capitalize; }
.form-turma h3 { margin-top: 0; }
details.cartao > summary { cursor: pointer; min-height: 32px; }
details.cartao[open] > summary { margin-bottom: .5rem; }

.itens-leitura { list-style: none; padding: 0; margin: .25rem 0 .75rem; }
.itens-leitura li { margin: .3rem 0; }
.itens-leitura .caps { display: inline-flex; flex-wrap: wrap; gap: .25rem; vertical-align: middle; }
.lista-leituras { padding-left: 1.6rem; }
.lista-leituras li { margin: .35rem 0; }
.lista-leituras li.feita > label { color: var(--tinta-2); }
.lista-leituras .check { display: inline-flex; align-items: flex-start; }
.destaque-leitura { border-left: 4px solid var(--dourado); }
.titulo-cartao { margin: 0 0 .3rem; font-size: 1.05rem; font-family: var(--fonte-leitura); }
.lista-simples progress { display: block; margin: .3rem 0; }
.entrada-diario { border-bottom: 1px solid var(--linha); padding: .5rem 0 .75rem; }
.entrada-diario h3 { font-size: 1rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }

.assistente .fio { display: grid; gap: .75rem; margin: 1rem 0; }
.msg { border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem; background: var(--superficie); overflow-wrap: anywhere; }
.msg-usuario { background: var(--superficie-2); }
.msg-ia { border-left: 4px solid #8c2f39; }
.msg-ia.sem-dados { border-left-color: var(--tinta-2); }
.msg-autor { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; font-weight: 600; font-size: .9rem; margin: 0 0 .4rem; }
.cit { display: inline; border: 1px solid var(--dourado); background: var(--superficie-2); color: var(--tinta); border-radius: 999px; padding: .05rem .5rem; font: 600 .82rem var(--fonte-ui); cursor: pointer; min-height: 24px; margin: 0 .1rem; }
.cit:hover { background: var(--d-amarelo); }
mark.removido { background: transparent; color: var(--perigo); font-style: italic; font-size: .9em; }
.citacoes, .verificacao { margin-top: .5rem; font-size: .92rem; }
.citacoes summary, .verificacao summary { cursor: pointer; font-weight: 600; min-height: 32px; }
.link { background: none; border: 0; padding: 0; color: var(--marinho-2); text-decoration: underline; cursor: pointer; font: inherit; min-height: 24px; }
:root[data-tema="escuro"] .link { color: #9cc0ff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .link { color: #9cc0ff; } }
.form-ia textarea { min-height: 5.5rem; }
.versoes li { overflow-wrap: anywhere; }
.permissoes { list-style: none; padding: 0; }
.documento.compacto h1 { font-size: 1.3rem; }

/* apresentação em tela cheia */
body.apresentando .topo, body.apresentando .lateral, body.apresentando .inferior, body.apresentando .painel { display: none !important; }
body.apresentando .estrutura { display: block; }
body.apresentando main { padding: 0; }
.apresentacao { position: fixed; inset: 0; z-index: 90; background: var(--papel); color: var(--tinta); display: flex; flex-direction: column; }
.ap-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .5rem .75rem; border-bottom: 1px solid var(--linha); background: var(--superficie); }
.ap-barra select { width: auto; max-width: min(60vw, 22rem); }
.ap-barra .espaco { flex: 1; }
.ap-contador { font-weight: 600; color: var(--tinta-2); min-width: 3.5rem; }
.ap-cronometro { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.ap-tempo { font: 600 1rem var(--fonte-ui); font-variant-numeric: tabular-nums; padding: .2rem .5rem; border-radius: 6px; background: var(--superficie-2); }
.apresentacao.esgotado .ap-tempo:nth-child(2) { background: var(--perigo); color: #fff; }
.ap-esgotado:empty { display: none; }
.ap-esgotado { background: var(--perigo); color: #fff; text-align: center; padding: .25rem; font-weight: 700; }
.ap-conteudo { --ap-tam: 34px; flex: 1; overflow-y: auto; padding: 2rem clamp(1rem, 6vw, 6rem); font: var(--ap-tam)/1.45 var(--fonte-leitura); outline: none; }
.ap-conteudo h1, .ap-conteudo h2, .ap-conteudo h3 { font-size: 1.15em; margin: 0 0 .5em; }
.ap-conteudo .ap-titulo { font-size: 1.5em; }
.ap-conteudo .ap-topico { color: var(--dourado); font-size: .8em; text-transform: uppercase; letter-spacing: .04em; }
.ap-conteudo .ap-ideia { font-size: 1.15em; font-weight: 600; }
.ap-conteudo .citacao-biblica { font-size: .92em; }
.ap-conteudo .credito, .ap-conteudo .citacao-rotulo { font-size: .45em; }
.ap-conteudo .selo { font-size: .35em; }
.ap-dica { margin: 0; padding: .3rem .75rem; font-size: .8rem; color: var(--tinta-2); border-top: 1px solid var(--linha); }
@media (max-width: 860px) { .ap-conteudo { padding: 1rem; } .ap-dica { display: none; } }

/* documento para impressão */
.documento h1 { margin-top: .5rem; }
.documento .ficha { grid-template-columns: minmax(0, 10rem) minmax(0, 1fr); }
.questionario > li { margin: .6rem 0; }
.alternativas { list-style: none; padding-left: .5rem; }
.gabarito { color: var(--sucesso); font-weight: 600; }
.linhas-resposta span { display: block; border-bottom: 1px solid var(--linha); height: 1.9rem; }
@media print {
  .nao-imprimir, .barra-documento, .avisos, .rede-aviso { display: none !important; }
  main { padding: 0 !important; }
  .largura-leitura { max-width: none; }
  .documento { font: 11pt/1.5 Georgia, "Times New Roman", serif; color: #000; }
  .documento h1, .documento h2, .documento h3 { break-after: avoid; color: #14213d; }
  .citacao-biblica { break-inside: avoid; border-left-color: #7a5c14; background: none; }
  .selo { border-color: #7a5c14 !important; color: #7a5c14 !important; background: none !important; }
}

/* ---------- Fase 4: mapas, linha do tempo, biblioteca, grupos, acessibilidade ---------- */
:root { --mapa-agua: #dde8ef; --mapa-terra: #f1ebdc; --mapa-borda: #b9ad92; --mapa-rio: #7fa4bd; --m-forte: #1f3060; --m-media: #6b4e0f; --m-fraca: #5a4a8a; --m-rota1: #a3261f; --m-rota2: #1e6b3a; --m-rota3: #1f3060; --m-rota4: #6b4e0f; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) { --mapa-agua: #0f1724; --mapa-terra: #253048; --mapa-borda: #4a5a7a; --mapa-rio: #4f7ea3; --m-forte: #e9e5db; --m-media: #e3c47b; --m-fraca: #c5a8f0; --m-rota1: #ff8a80; --m-rota2: #7dd39a; --m-rota3: #9cc0ff; --m-rota4: #e3c47b; } }
:root[data-tema="escuro"] { --mapa-agua: #0f1724; --mapa-terra: #253048; --mapa-borda: #4a5a7a; --mapa-rio: #4f7ea3; --m-forte: #e9e5db; --m-media: #e3c47b; --m-fraca: #c5a8f0; --m-rota1: #ff8a80; --m-rota2: #7dd39a; --m-rota3: #9cc0ff; --m-rota4: #e3c47b; }
.largura-ampla { max-width: 72rem; margin: 0 auto; }
.mapa { position: relative; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; background: var(--mapa-agua); margin: .75rem 0; }
.mapa-svg { display: block; width: 100%; height: var(--mapa-altura, 420px); max-height: 70vh; touch-action: none; cursor: grab; user-select: none; }
.mapa-svg:active { cursor: grabbing; }
.mapa-svg:focus-visible { outline: 3px solid var(--foco); outline-offset: -3px; }
.mapa .terra { fill: var(--mapa-terra); stroke: var(--mapa-borda); stroke-width: 1; vector-effect: non-scaling-stroke; }
.mapa .lagos { fill: var(--mapa-agua); stroke: var(--mapa-rio); stroke-width: .8; vector-effect: non-scaling-stroke; }
.mapa .rios { fill: none; stroke: var(--mapa-rio); stroke-width: 1.1; vector-effect: non-scaling-stroke; }
.mapa .rota { fill: none; stroke-width: 3; stroke-dasharray: 8 5; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.rota-v1 { stroke: var(--m-rota1); } .rota-v2 { stroke: var(--m-rota2); } .rota-v3 { stroke: var(--m-rota3); } .rota-v4 { stroke: var(--m-rota4); }
.marcador { cursor: pointer; }
.marcador .ponto { stroke-width: 2.5; }
.marcador text { font: 600 12px var(--fonte-ui); fill: var(--tinta); paint-order: stroke; stroke: var(--mapa-terra); stroke-width: 3.5px; stroke-linejoin: round; pointer-events: none; }
.marcador text.rotulo-alt { font-weight: 400; font-style: italic; }
.m-consenso .ponto { fill: var(--m-forte); stroke: var(--mapa-terra); }
.m-provavel .ponto { fill: var(--m-media); stroke: var(--mapa-terra); }
.m-possivel .ponto { fill: var(--mapa-terra); stroke: var(--m-media); }
.m-incerta .ponto, .m-improvavel .ponto, .m-desconhecida .ponto { fill: var(--mapa-terra); stroke: var(--m-fraca); stroke-dasharray: 3 2; }
.marcador.alt circle { fill: none; stroke: var(--m-fraca); stroke-width: 2; stroke-dasharray: 3 2; }
.marcador.alt.m-provavel circle, .marcador.alt.m-consenso circle { stroke: var(--m-media); stroke-dasharray: none; }
.marcador .area { fill: var(--m-media); fill-opacity: .14; stroke: var(--m-media); stroke-width: 1; stroke-dasharray: 2 2; }
.marcador.ativo .ponto { stroke: var(--foco); stroke-width: 3; }
.mapa .ligacao { stroke: var(--m-fraca); stroke-width: 1.5; stroke-dasharray: 4 3; }
.mapa-controles { position: absolute; top: .5rem; right: .5rem; display: flex; flex-direction: column; gap: .3rem; }
.mapa-controles .botao-icone { background: var(--superficie); border: 1px solid var(--linha); box-shadow: var(--sombra); }
.mapa-controles .menos { font-size: 1.4rem; line-height: 1; }
.mapa-credito { position: absolute; left: .4rem; bottom: .2rem; margin: 0; font-size: .7rem; color: var(--tinta-2); background: color-mix(in srgb, var(--superficie) 80%, transparent); padding: 0 .3rem; border-radius: 3px; }
.mapa.compacto .mapa-svg { max-height: 40vh; }
.mapa-legenda ul { list-style: none; padding: 0; margin: .25rem 0 .75rem; display: grid; gap: .25rem; font-size: .9rem; }
.mapa-legenda svg.amostra { vertical-align: middle; overflow: visible; }
.mapa-legenda .ponto { stroke-width: 2; }
.amostra-area { display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 1px dashed var(--m-media); background: color-mix(in srgb, var(--m-media) 18%, transparent); vertical-align: middle; }
.grau { font-size: .85rem; font-weight: 600; padding: 0 .35rem; border-radius: 4px; border: 1px solid currentColor; white-space: nowrap; }
.g-consenso { color: var(--sucesso); } .g-provavel { color: var(--dourado); } .g-possivel, .g-incerta, .g-improvavel, .g-desconhecida { color: #5b3d8a; }
:root[data-tema="escuro"] .g-possivel, :root[data-tema="escuro"] .g-incerta, :root[data-tema="escuro"] .g-improvavel, :root[data-tema="escuro"] .g-desconhecida { color: #c5a8f0; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .g-possivel, :root:not([data-tema="claro"]) .g-incerta, :root:not([data-tema="claro"]) .g-improvavel, :root:not([data-tema="claro"]) .g-desconhecida { color: #c5a8f0; } }
.aviso.incerteza { border-left-color: #5b3d8a; }
.identificacoes { padding-left: 1.3rem; }
.identificacoes li { margin: .5rem 0 .9rem; }
.barra-confianca { height: 8px; background: var(--superficie-2); border: 1px solid var(--linha); border-radius: 4px; max-width: 22rem; overflow: hidden; }
.barra-confianca .preenchida { display: block; height: 100%; width: var(--v, 0%); background: var(--dourado); }
.lista-lugares { list-style: none; padding: 0; margin: .5rem 0; columns: 2 18rem; column-gap: 2rem; }
.lista-lugares li { break-inside: avoid; padding: .3rem 0; }
.lista-equivalente summary { cursor: pointer; min-height: 32px; font-weight: 600; }
.versos-lugar p { margin: .3rem 0; line-height: 1.8; }
.estudo-capitulo { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 1rem 0; padding-top: .75rem; border-top: 1px solid var(--linha); }
.atalhos-pesquisa { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
/* linha do tempo */
.periodo h2 .discreto { font: 400 .9rem var(--fonte-ui); }
.linha-tempo { list-style: none; padding: 0 0 0 1rem; margin: .5rem 0 1.5rem; border-left: 3px solid var(--linha); }
.linha-tempo.compacta { margin: .25rem 0; }
.evento { position: relative; display: grid; grid-template-columns: 8.5rem 1fr; gap: .25rem .75rem; padding: .35rem 0; }
.evento::before { content: ""; position: absolute; left: calc(-1rem - 7px); top: .9rem; width: 11px; height: 11px; border-radius: 50%; background: var(--superficie); border: 2px solid var(--dourado); }
.evento.realce { background: var(--superficie-2); border-radius: 6px; }
.ev-data { font-variant-numeric: tabular-nums; color: var(--tinta-2); font-size: .92rem; padding-top: .15rem; }
.ev-titulo { text-align: left; }
.selo.debatida { color: #5b3d8a; border-color: currentColor; margin-left: .35rem; }
:root[data-tema="escuro"] .selo.debatida { color: #c5a8f0; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.debatida { color: #c5a8f0; } }
.nota-debate { border-left: 3px solid #5b3d8a; padding: .4rem .75rem; background: var(--superficie-2); border-radius: 6px; margin: .5rem 0; }
@media (max-width: 560px) { .evento { grid-template-columns: 1fr; gap: 0; } }
/* biblioteca */
.categoria-biblioteca h2 { border-bottom: 1px solid var(--linha); padding-bottom: .25rem; }
.lista-obras { list-style: none; padding: 0; }
.lista-obras > li { padding: .5rem 0; border-bottom: 1px solid var(--linha); }
.lista-verbetes { list-style: none; padding: 0; }
.lista-verbetes li { padding: .5rem 0; border-bottom: 1px solid var(--linha); }
.lista-verbetes .trecho { margin: .2rem 0 0; color: var(--tinta-2); font-size: .92rem; }
.verbete p:not(.credito-fonte):not(.discreto) { font-family: var(--fonte-leitura); font-size: 1.05rem; line-height: 1.7; }
.ref-verbete { white-space: nowrap; }
.selo.dado_geografico { color: #24557a; border-color: currentColor; }
.selo.obra_dominio_publico { color: var(--dourado); border-color: currentColor; }
.selo.conteudo_usuario { color: var(--sucesso); border-color: currentColor; }
:root[data-tema="escuro"] .selo.dado_geografico { color: #8cc4ef; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.dado_geografico { color: #8cc4ef; } }
.lista-bib, .lista-citacoes { padding-left: 1.2rem; }
.lista-bib > li, .lista-citacoes > li { padding: .6rem 0; border-bottom: 1px solid var(--linha); }
.lista-citacoes { list-style: none; padding: 0; }
.lista-citacoes blockquote { margin: 0 0 .3rem; padding: .3rem .8rem; border-left: 3px solid var(--dourado); font-family: var(--fonte-leitura); }
.abnt { overflow-wrap: anywhere; }
.pessoas { border: 1px dashed var(--linha); border-radius: 6px; padding: .4rem .6rem; margin: .5rem 0; }
.rotulo-grupo { font-weight: 600; margin: 0 0 .25rem; }
.pessoa { align-items: flex-end; }
.lista-escolha { list-style: none; padding: 0; max-height: 50vh; overflow: auto; }
.lista-escolha li { padding: .35rem 0; border-bottom: 1px solid var(--linha); }
/* grupos */
.lista-grupos { list-style: none; padding: 0; }
.lista-grupos li { padding: .6rem 0; border-bottom: 1px solid var(--linha); }
.lista-membros { list-style: none; padding: 0; }
.lista-membros li { padding: .45rem 0; border-bottom: 1px solid var(--linha); display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.acoes-membro { display: inline-flex; flex-wrap: wrap; gap: .3rem; margin-left: auto; }
.codigo-convite { font: 700 1.6rem/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .08em; overflow-wrap: anywhere; }
.duas-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.tabela { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tabela caption { text-align: left; font-weight: 600; padding: .3rem 0; }
.tabela th, .tabela td { text-align: left; padding: .4rem .5rem; border-bottom: 1px solid var(--linha); }
.zona-perigo { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
/* acessibilidade: alto contraste e menos movimento (preferências do usuário) */
:root[data-contraste="alto"] { --tinta-2: var(--tinta); --linha: #5c5c5c; --mapa-borda: #3d3d3d; }
:root[data-contraste="alto"][data-tema="escuro"] { --linha: #9aa3b5; --mapa-borda: #b4bccb; }
@media (prefers-color-scheme: dark) { :root[data-contraste="alto"]:not([data-tema="claro"]) { --linha: #9aa3b5; --mapa-borda: #b4bccb; } }
:root[data-contraste="alto"] a, :root[data-contraste="alto"] .link { text-decoration: underline; text-decoration-thickness: 2px; }
:root[data-contraste="alto"] .botao, :root[data-contraste="alto"] .botao-icone, :root[data-contraste="alto"] input, :root[data-contraste="alto"] select, :root[data-contraste="alto"] textarea { border-width: 2px; border-color: var(--tinta); }
:root[data-contraste="alto"] :focus-visible { outline-width: 4px; }
:root[data-contraste="alto"] .discreto, :root[data-contraste="alto"] .vazio { color: var(--tinta); }
:root[data-movimento="reduzido"] *, :root[data-movimento="reduzido"] *::before, :root[data-movimento="reduzido"] *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
.credito-fonte { font-size: .8rem; color: var(--tinta-2); margin-top: 1rem; overflow-wrap: anywhere; }
input[type="file"] { max-width: 100%; }

/* ---------- 4.1: administrador geral e personalização ---------- */
.faixa-aviso { display: flex; align-items: flex-start; gap: .75rem; justify-content: space-between; padding: .6rem 1rem; background: var(--superficie-2);
  border-bottom: 1px solid var(--linha); border-left: 4px solid var(--marinho-2); }
.faixa-aviso.alerta { border-left-color: var(--perigo); }
.faixa-aviso p { margin: .2rem 0; white-space: pre-line; }
.faixa-aviso .botao-icone { flex: none; color: var(--tinta); }
.boas-vindas p { color: #f4efe2; margin: 0 0 .6rem; }
.rodape-plataforma { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--linha); text-align: center; }
.lista-opcoes .check { margin: .35rem 0; min-height: 32px; }
.filtros { display: flex; flex-wrap: wrap; gap: 0 1rem; align-items: flex-end; margin-bottom: 1rem; }
.filtros .filtro { flex: 1 1 160px; min-width: 0; }
.filtros .filtro-botao { flex: 0 0 auto; padding-bottom: 2px; }
.numeros { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.numero-cartao p { margin: 0; }
.numero-grande { font: 600 1.9rem/1.2 var(--fonte-leitura); color: var(--tinta); }
.lista-totais { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; margin: .5rem 0 0; }
.lista-totais dt { color: var(--tinta-2); }
.lista-totais dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.tabela-usuarios th[scope="row"] { font-weight: 600; text-align: left; }
.tabela-usuarios .selo { white-space: nowrap; }
.selo.papel-geral { color: var(--perigo); border-color: currentColor; }
.selo.papel-admin { color: var(--dourado); border-color: currentColor; }
.selo.situacao-bloqueado { color: #fff; background: var(--perigo); border-color: var(--perigo); }
.selo.situacao-ativo { color: var(--sucesso); border-color: currentColor; }
.zona-perigo { border-color: var(--perigo); }
.segredo code { display: inline-block; font-size: 1.35rem; letter-spacing: .08em; padding: .5rem .8rem; background: var(--superficie-2); border: 1px dashed var(--linha); border-radius: 8px; user-select: all; overflow-wrap: anywhere; }
.erro-texto { color: var(--perigo); font-weight: 600; }
.cores { display: flex; gap: 1.5rem; flex-wrap: wrap; }
input[type="color"] { width: 4.5rem; height: 44px; padding: 2px; border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie); cursor: pointer; }
input[type="date"], input[type="month"] { min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie); color: var(--tinta); }
input[type="file"] { max-width: 100%; }
.previa-topo { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; padding: .7rem 1rem; border-radius: 8px; border-bottom: 3px solid; }
.previa-nome { font: 600 1.1rem var(--fonte-leitura); }
.previa-botao { padding: .35rem .8rem; border-radius: 6px; font-weight: 600; }
.logo-atual { display: flex; align-items: center; gap: 1rem; }
.logo-atual img { border-radius: 22%; box-shadow: var(--sombra); }
.lista-grupos { display: grid; gap: 1rem; }
details summary { cursor: pointer; font-weight: 600; min-height: 32px; }
:root[data-tema="escuro"] .selo.situacao-bloqueado { color: #11161f; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .selo.situacao-bloqueado { color: #11161f; } }

/* ---------- 4.2: apresentações (.pptx/.pdf) e controle pelo celular ---------- */
body.apresentando .faixa-aviso { display: none !important; }
.grade-apresentacoes { margin-bottom: 1rem; }
.passos { padding-left: 1.3rem; margin: .5rem 0; }
.passos li { margin: .35rem 0; }
.ao-vivo-aviso { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.ao-vivo-aviso svg { width: 1.3rem; height: 1.3rem; }
.lista-apresentacoes { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.lista-apresentacoes li { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.lista-apresentacoes h3 { margin: 0 0 .2rem; }
.lista-apresentacoes p { margin: 0; }
.ap-ver { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 1rem; align-items: start; }
.ap-palco { background: #000; border-radius: 6px; overflow: hidden; display: flex; justify-content: center; box-shadow: var(--sombra); }
.ap-palco > * { max-width: 100%; }
.ap-nav { justify-content: space-between; align-items: center; margin: .6rem 0; }
.ap-contador-ver { margin: 0; }
.ap-notas { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem 1rem; }
.ap-notas h2 { font-size: 1rem; margin: .4rem 0; }
.ap-notas textarea, .ap-notas-todas textarea { width: 100%; font: inherit; line-height: 1.5; resize: vertical; }
.ap-notas .linha-botoes { align-items: center; margin: .25rem 0 .5rem; }
.ap-nota-estado { margin: 0; font-size: .875rem; }
.ap-notas-lote { margin-top: 1.25rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem; }
.ap-notas-lote summary { cursor: pointer; font-weight: 700; padding: .3rem 0; }
.ap-notas-todas { list-style: none; margin: .5rem 0; padding: 0; display: grid; gap: .75rem; }
.ap-notas-todas label { font-weight: 600; display: block; margin-bottom: .25rem; }
.ap-lateral { max-height: 78vh; overflow-y: auto; position: sticky; top: 64px; }
.ap-miniaturas { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ap-miniaturas button { display: block; width: 100%; padding: 3px; border: 2px solid transparent; border-radius: 6px; background: var(--superficie-2); cursor: pointer; position: relative; }
.ap-miniaturas button[aria-current="true"] { border-color: var(--dourado); }
.ap-mini { display: block; min-height: 84px; pointer-events: none; }
.ap-mini-n { position: absolute; left: 6px; bottom: 6px; background: rgb(0 0 0 / .65); color: #fff; font-size: .75rem; padding: 0 .35rem; border-radius: 4px; }
.ap-renomear { margin-top: 1.5rem; }
.sl-aviso { display: flex; align-items: center; justify-content: center; text-align: center; border: 2px dashed #8a8a8a; background: rgb(240 240 240 / .8); color: #333; font: 600 .8rem var(--fonte-ui); padding: .25rem; box-sizing: border-box; }
.sl-midia { position: absolute; right: 4px; bottom: 4px; background: rgb(0 0 0 / .65); color: #fff; font: 600 .7rem var(--fonte-ui); padding: 1px 5px; border-radius: 4px; }
.sl-slide img { user-select: none; }
.projecao { position: fixed; inset: 0; z-index: 100; background: #000; display: flex; align-items: center; justify-content: center; cursor: pointer; outline: none; }
.proj-palco { display: flex; align-items: center; justify-content: center; }
.proj-cortina { position: absolute; inset: 0; background: #000; display: grid; place-items: center; }
.proj-cortina.proj-branca { background: #fff; }
.proj-cortina.proj-espera { background: radial-gradient(circle at 50% 40%, #1d2a4d, #050a18 70%); color: #fff; }
.proj-barra { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: .5rem; align-items: center; padding: .5rem .75rem; background: linear-gradient(transparent, rgb(0 0 0 / .8));
  color: #fff; opacity: 0; transition: opacity .2s; cursor: default; }
.projecao:hover .proj-barra, .proj-barra:focus-within { opacity: 1; }
.proj-barra .botao { background: rgb(255 255 255 / .12); color: #fff; border-color: rgb(255 255 255 / .35); }
.proj-barra .espaco { flex: 1; }
.proj-contador, .proj-remoto { font-size: .85rem; }
@media (prefers-reduced-motion: reduce) { .proj-barra { transition: none; } }
:root[data-movimento="reduzido"] .proj-barra { transition: none; }
.controle { padding-bottom: 2rem; }
.ctl-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ctl-topo h1 { font-size: 1.25rem; margin: 0; }
.ctl-relogio { font: 600 1.1rem var(--fonte-ui); font-variant-numeric: tabular-nums; }
.ctl-situacao { margin: .35rem 0; }
.ctl-botoes { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: .5rem 0; }
.ctl-grande { min-height: 72px; font-size: 1.15rem; justify-content: center; }
.ctl-contador { text-align: center; font-weight: 600; margin: .25rem 0 .5rem; }
.ctl-palcos { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.ctl-atual, .ctl-proximo { background: #000; border-radius: 6px; overflow: hidden; touch-action: pan-y; }
.ctl-atual.preto { outline: 4px solid var(--perigo); opacity: .5; }
.ctl-rotulo { font-size: .9rem; margin: .5rem 0 .3rem; color: var(--tinta-2); font-family: var(--fonte-ui); }
.ctl-notas { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .25rem .9rem; font-size: 1.05rem; }
.ctl-tela[aria-pressed="true"] { background: var(--perigo); color: #fff; border-color: var(--perigo); }
.ctl-extras select { width: auto; max-width: 100%; flex: 1 1 200px; }
@media (min-width: 700px) { .ctl-palcos { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; } }
.ctl-palcos > div { min-width: 0; }
.ctl-voltar { margin: 0 0 .5rem; }
@media (max-width: 820px) { .ap-ver { grid-template-columns: 1fr; } .ap-lateral { position: static; max-height: none; } .ap-miniaturas { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); } }
.ctl-proximo { width: fit-content; max-width: 100%; }
.ctl-proximo > p { color: #e6e6e6 !important; padding: .75rem 1rem; margin: 0; }

/* ---------- 4.3: pedido de oração e dúvidas ---------- */
.contato-cartao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; margin-bottom: 1rem; border-left: 4px solid var(--dourado); }
.contato-cartao h2 { margin: 0 0 .2rem; }
.contato-cartao p { margin: 0; }
.contato-cartao .linha-botoes { margin: 0; }
.form-contato textarea { min-height: 8rem; }
.isca { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.lista-mensagens { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.msg-cabeca h2 { display: inline; font-size: 1.1rem; margin: 0; }
.msg-texto { background: var(--superficie-2); border-radius: 6px; padding: .6rem .8rem; }
.msg-nova { border-left: 4px solid var(--perigo); }
.selo.msg-sit-nova { color: var(--perigo); border-color: currentColor; }
.selo.tipo-oracao { color: var(--sucesso); border-color: currentColor; }
.selo.tipo-duvida { color: var(--dourado); border-color: currentColor; }
.abas .contagem { display: inline-block; min-width: 1.3em; padding: 0 .35em; border-radius: 999px; background: var(--perigo); color: #fff; font-size: .75rem; font-weight: 700; text-align: center; line-height: 1.4; }
:root[data-tema="escuro"] .abas .contagem { color: #11161f; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .abas .contagem { color: #11161f; } }

/* ---------------------------------------------------------------- podcast (4.5) */
.pod-cabecalho { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-start; margin-bottom: 1.25rem; }
.pod-cabecalho-texto { flex: 1 1 18rem; min-width: 0; }
.pod-cabecalho h1 { margin: 0 0 .2rem; }
.pod-cabecalho .linha-botoes { align-items: center; }
.pod-capa { width: 160px; height: 160px; border-radius: var(--raio); object-fit: cover; flex: 0 0 auto; border: 1px solid var(--linha); background: var(--superficie-2); }
.pod-capa-vazia { display: grid; place-items: center; color: var(--tinta-2); }
.pod-capa-vazia svg { width: 64px; height: 64px; }
.pod-velocidade { display: inline-flex; align-items: center; gap: .4rem; }
.pod-velocidade label { margin: 0; }
.pod-velocidade select { width: auto; }
.pod-gestao { margin-bottom: 1.25rem; border-left: 4px solid var(--dourado); }
.pod-gestao h2 { margin-top: 0; }
.pod-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.pod-episodio h2 { font-size: 1.15rem; margin: 0 0 .2rem; }
.pod-meta { margin: 0 0 .5rem; }
.pod-ref { font-style: italic; }
.pod-admin-selos { margin: 0 0 .5rem; }
.pod-no-ar { color: var(--sucesso); border-color: currentColor; }
.podcast audio { width: 100%; display: block; margin: .25rem 0 .6rem; }
.pod-resumo { margin: 0 0 .6rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pod-descricao { margin: 1rem 0; }
.pod-numeros { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.pod-numeros > div { flex: 1 1 10rem; }
.pod-form progress { width: 100%; margin: .5rem 0; }
.pod-capa-previa { margin-bottom: .75rem; }
@media (max-width: 480px) { .pod-capa { width: 120px; height: 120px; } }

/* ---------- 4.5: manual do usuário ---------- */
.manual .acoes { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 1rem; }
.manual .acoes .botao svg, .man-secao h2 svg { width: 1.15em; height: 1.15em; flex: none; }
.man-sumario ol { columns: 2 16rem; column-gap: 2rem; padding-left: 1.4rem; margin: .4rem 0 0; }
.man-sumario li { margin: .2rem 0; break-inside: avoid; }
.man-secao { margin: 1rem 0; }
.man-secao h2 { display: flex; align-items: center; gap: .5rem; scroll-margin-top: 5rem; }
.man-secao h3 { margin: 1.1rem 0 .3rem; font-size: 1.02rem; }
.man-resumo { margin-top: -.2rem; }
.man-lista { padding-left: 1.3rem; margin: .5rem 0; }
.man-lista li { margin: .35rem 0; }
.man-topo { margin: .8rem 0 0; font-size: .9rem; }
@media print {
  .manual .man-secao { box-shadow: none; border: 0; padding: 0; break-inside: auto; }
  .manual .man-secao h2 { break-after: avoid; }
}

/* ---------- 4.6: transmissão ao vivo e comunicados ---------- */
.aovivo-ponto { display: inline-block; width: .6em; height: .6em; border-radius: 50%; background: currentColor; margin-right: .35em; animation: aovivo-pulso 1.6s ease-in-out infinite; vertical-align: .05em; }
@keyframes aovivo-pulso { 50% { opacity: .35; } }
.chip-aovivo { display: inline-flex; align-items: center; flex: none; min-height: 32px; padding: .2rem .7rem; border: 0; border-radius: 999px; background: #b3261e; color: #fff; font: 700 .8rem/1 var(--fonte-ui); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.chip-aovivo:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.chip-aovivo[hidden], .sino[hidden] { display: none; }
.sino { position: relative; }
.sino .contagem { position: absolute; top: 2px; right: 0; min-width: 1.15rem; padding: 0 .25rem; border-radius: 999px; background: #b3261e; color: #fff; font: 700 .7rem/1.15rem var(--fonte-ui); text-align: center; }
.sino .contagem[hidden] { display: none; }

.aovivo-fundo { position: fixed; inset: 0; z-index: 70; background: rgb(10 15 25 / .55); }
.aovivo-fundo[hidden] { display: none; }
.aovivo-janela { position: fixed; z-index: 75; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 12px 40px rgb(0 0 0 / .35); overflow: hidden; display: flex; flex-direction: column; }
.aovivo-janela[data-modo="grande"] { left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(960px, 94vw); max-height: 92vh; }
.aovivo-janela[data-modo="mini"] { right: 1rem; bottom: 1rem; width: min(360px, 70vw); }
.aovivo-janela[data-modo="mini"] .aovivo-descricao { display: none; }
@media (max-width: 760px) { .aovivo-janela[data-modo="mini"] .aovivo-nome { display: none; } }
/* Celular estreito: com o selo "Ao vivo" no topo, o nome ao lado do logo dá lugar a ele. */
@media (max-width: 420px) { .topo:has(#chip-aovivo:not([hidden])) .marca-nome { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
.aovivo-barra { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .4rem .35rem .8rem; background: var(--marinho); color: #f4efe2; }
.aovivo-barra h2 { margin: 0; font: 600 .95rem/1.3 var(--fonte-ui); color: inherit; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aovivo-barra .aovivo-ponto { color: #ff6b5e; }
.aovivo-rotulo { text-transform: uppercase; font-weight: 700; letter-spacing: .04em; color: #ffb4ab; }
.aovivo-botoes { display: flex; flex: none; }
.aovivo-barra .botao-icone { color: #f4efe2; }
.aovivo-quadro { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.aovivo-player { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.aovivo-descricao { padding: .5rem .9rem .8rem; overflow: auto; }
.aovivo-descricao p { margin: .35rem 0; }
.aovivo-selo { color: #b3261e; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin: 0; }
:root[data-tema="escuro"] .aovivo-selo { color: #ff8a80; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .aovivo-selo { color: #ff8a80; } }
@media (max-width: 760px) {
  .aovivo-janela[data-modo="grande"] { top: auto; bottom: calc(60px + env(safe-area-inset-bottom)); left: 0; transform: none; width: 100%; border-radius: var(--raio) var(--raio) 0 0; max-height: 80vh; }
  .aovivo-janela[data-modo="mini"] { right: .5rem; bottom: calc(68px + env(safe-area-inset-bottom)); width: min(260px, 66vw); }
  .chip-aovivo { padding: .2rem .5rem; font-size: .72rem; }
}
@media print { .aovivo-janela, .aovivo-fundo, .chip-aovivo { display: none !important; } }

.comunicado-de { display: flex; align-items: center; gap: .3rem; margin: 0 0 .25rem; color: var(--tinta-2); font-size: .88rem; }
.comunicado-de svg { width: 1em; height: 1em; }
.comunicado-texto p { margin: .5rem 0; }
.lista-comunicados { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .8rem; }
.comunicado h2, .comunicado h3 { margin: 0 0 .2rem; }
.comunicado.nao-lido { border-left: 4px solid var(--dourado); }
.selo.novo { border-color: var(--dourado); color: var(--dourado); }

/* ---------- 4.7: visual no estilo do CRM da Global ---------- */
body { font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: var(--fonte-ui); font-weight: 700; letter-spacing: -.015em; }
h1 { font-size: 1.85rem; }
a { color: var(--dourado); }
:root[data-tema="escuro"] a { color: #5be38a; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) a { color: #5be38a; } }

/* Topo escuro com a linha verde, como a faixa do site. */
.topo { border-bottom: 3px solid var(--dourado-claro); box-shadow: 0 4px 18px rgb(10 17 40 / .18); }
.marca { font-family: var(--fonte-ui); font-weight: 700; letter-spacing: -.01em; }
.marca-icone { box-shadow: 0 0 0 1px rgb(0 163 53 / .45); }
.marca-nome b { font-variant: normal; letter-spacing: -.01em; font-weight: 800; font-size: 1em; }
.busca-topo input[type="search"] { border-radius: 12px; border-color: rgb(255 255 255 / .18); background: rgb(255 255 255 / .08); }
.busca-topo input[type="search"]:focus { border-color: var(--dourado-claro); background: rgb(255 255 255 / .12); }

/* Menu lateral claro, com o item atual em verde. */
.lateral { background: var(--superficie); }
.lateral a, .lateral .link { border-radius: 10px; font-weight: 500; }
.lateral a:hover, .lateral .link:hover { background: rgb(0 163 53 / .08); }
.lateral a[aria-current="page"] { background: rgb(0 163 53 / .12); color: #00651f !important; font-weight: 600; box-shadow: inset 3px 0 0 var(--dourado-claro); }
.lateral a[aria-current="page"] svg { color: var(--dourado); }
:root[data-tema="escuro"] .lateral a[aria-current="page"] { background: rgb(0 163 53 / .16); color: #c9f7d7 !important; }
:root[data-tema="escuro"] .lateral a[aria-current="page"] svg { color: #5be38a; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .lateral a[aria-current="page"] { background: rgb(0 163 53 / .16); color: #c9f7d7 !important; }
  :root:not([data-tema="claro"]) .lateral a[aria-current="page"] svg { color: #5be38a; }
}
.lateral .titulo-grupo, .lateral h2 { font-family: var(--fonte-ui); }

/* Botões: verdes, com sombra, cantos arredondados. */
.botao { border-radius: 10px; font-weight: 600; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease; }
.botao:hover { border-color: var(--dourado-claro); }
.botao.primario, .botao[aria-pressed="true"], .botao.ativo { background: var(--dourado); border-color: var(--dourado); color: #fff; box-shadow: 0 6px 16px color-mix(in srgb, var(--dourado-claro) 25%, transparent); }
.botao.primario:hover { background: color-mix(in srgb, var(--dourado) 82%, #000); border-color: color-mix(in srgb, var(--dourado) 82%, #000); transform: translateY(-1px); box-shadow: 0 10px 22px color-mix(in srgb, var(--dourado-claro) 30%, transparent); }
.botao.primario:active { transform: none; }
.botao.perigo:hover { border-color: currentColor; background: rgb(179 38 30 / .06); }
:root[data-tema="escuro"] .botao.primario, :root[data-tema="escuro"] .botao[aria-pressed="true"], :root[data-tema="escuro"] .botao.ativo { background: var(--dourado-claro); border-color: var(--dourado-claro); color: #04140a; }
:root[data-tema="escuro"] .botao.primario:hover { background: #18b84a; border-color: #18b84a; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .botao.primario, :root:not([data-tema="claro"]) .botao[aria-pressed="true"], :root:not([data-tema="claro"]) .botao.ativo { background: var(--dourado-claro); border-color: var(--dourado-claro); color: #04140a; }
  :root:not([data-tema="claro"]) .botao.primario:hover { background: #18b84a; border-color: #18b84a; }
}

/* Cartões arredondados; os de lista sobem um pouco e ganham sombra verde ao passar o mouse. */
.cartao { border-color: var(--linha); }
.grade > .cartao, .lista-comunicados > .cartao, .lista-mensagens > .cartao, .pod-lista > li, .livros-grade a {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
@media (hover: hover) {
  .grade > .cartao:hover, .lista-comunicados > .cartao:hover, .lista-mensagens > .cartao:hover, .pod-lista > li:hover {
    transform: translateY(-3px); box-shadow: var(--sombra-verde); border-color: rgb(0 163 53 / .35);
  }
  .livros-grade a:hover { transform: translateY(-2px); box-shadow: var(--sombra-verde); border-color: var(--dourado-claro); }
}
.livros-grade a { border-radius: 10px; }

/* Campos com foco verde. */
input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], input[type="url"],
input[type="date"], input[type="month"], input[type="time"], input[type="datetime-local"], select, textarea { border-radius: 10px; transition: border-color .15s ease, box-shadow .15s ease; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 0; border-color: var(--dourado-claro); box-shadow: 0 0 0 3px rgb(0 163 53 / .35); }
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color: var(--dourado); }
:focus-visible { border-radius: 8px; }

/* Selos em pílula. */
.selo { border-radius: 999px; padding: .3rem .6rem; }
.selo.texto_biblico { color: var(--marinho-2); }
:root[data-tema="escuro"] .selo.texto_biblico { color: #9cc0ff; }
.aviso { border-left-color: var(--dourado-claro); border-radius: 10px; }
.aviso.erro { border-left-color: var(--perigo); }

/* Busca da página inicial: fundo escuro com brilho verde, como o topo do site. */
.busca-destaque {
  background: radial-gradient(120% 140% at 100% 0%, rgb(0 163 53 / .32) 0%, rgb(0 163 53 / 0) 55%), var(--marinho);
  border-radius: 18px; padding: 1.5rem; box-shadow: 0 14px 34px rgb(10 17 40 / .22);
}
.busca-destaque h1 { color: #fff; }
.busca-destaque input { border-radius: 12px; }
.busca-destaque .botao { background: var(--dourado-claro); color: var(--marinho); box-shadow: 0 6px 16px rgb(0 163 53 / .35); }
.busca-destaque .botao:hover { background: #18b84a; transform: translateY(-1px); }
.boas-vindas p { color: #eef2f6; }

/* Avisos rápidos, abas e janela da transmissão. */
.avisos > div { border-radius: 12px; border-left: 4px solid var(--dourado-claro); }
.avisos > div.erro { border-left-color: var(--perigo); }
.abas a[aria-current="page"] { border-bottom-color: var(--dourado-claro); }
.rede-aviso { color: #04140a; }
.faixa-aviso { border-radius: 0; }

/* ---------- 4.8: o que o perfil não libera fica escondido (o servidor também confere) ---------- */
body:not([data-pode~="gestao"]) [data-requer~="gestao"],
body:not([data-pode~="escalas"]) [data-requer~="escalas"],
body:not([data-pode~="infantil"]) [data-requer~="infantil"],
body:not([data-pode~="tesouraria"]) [data-requer~="tesouraria"],
body:not([data-pode~="sermoes"]) [data-requer~="sermoes"],
body:not([data-pode~="apresentacoes"]) [data-requer~="apresentacoes"],
body:not([data-pode~="ebd_aulas"]) [data-requer~="ebd_aulas"],
body:not([data-pode~="ebd_turmas"]) [data-requer~="ebd_turmas"],
body:not([data-pode~="biblioteca_pessoal"]) [data-requer~="biblioteca_pessoal"],
body:not([data-pode~="compartilhar"]) [data-requer~="compartilhar"],
body:not([data-pode~="grupos_criar"]) [data-requer~="grupos_criar"],
body:not([data-pode~="comunicados_grupo"]) [data-requer~="comunicados_grupo"],
body:not([data-pode~="ebd"]) [data-requer~="ebd"] { display: none !important; }
.tabela-rolagem { overflow-x: auto; max-width: 100%; }
.tabela-perfis { border-collapse: collapse; width: 100%; min-width: 30rem; font-size: .93rem; }
.tabela-perfis th, .tabela-perfis td { border-bottom: 1px solid var(--linha); padding: .45rem .5rem; text-align: center; }
.tabela-perfis th[scope="row"], .tabela-perfis thead th:first-child { text-align: left; font-weight: 600; }
.tabela-perfis thead th { font-size: .82rem; color: var(--tinta-2); }
.tabela-perfis th, .tabela-perfis td { overflow-wrap: normal; word-break: normal; }
.tabela-perfis thead th:not(:first-child) { min-width: 5.5rem; }
.perfil-cartao .selo { margin-left: .35rem; }
.quebra-livre { overflow-wrap: anywhere; word-break: break-word; }

/* ---------------------------------------------------------------- 4.9: caixas (boxes) em grade
   2 por linha no celular; 3–5 no computador. Capa por imagem ou desenhada (cor escura + ícone + título em branco). */
.grade-box { list-style: none; margin: .5rem 0 1.5rem; padding: 0; display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.grade-box.livros { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
@media (max-width: 600px) {
  .grade-box, .grade-box.livros { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
}
.box { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--superficie); border: 1px solid var(--linha);
  border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; overflow-wrap: anywhere;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.box.clicavel { cursor: pointer; }
@media (hover: hover) { .box.clicavel:hover { transform: translateY(-3px); box-shadow: var(--sombra-verde); border-color: rgb(0 163 53 / .35); } }
.box:focus-within { border-color: var(--dourado-claro); }
.box-topo { position: relative; }
.box-capa { position: relative; width: 100%; background: var(--superficie-2); overflow: hidden; }
.box-capa.livro { aspect-ratio: 2 / 3; }
.box-capa.quadrado { aspect-ratio: 1 / 1; }
.box-capa.largo { aspect-ratio: 16 / 9; }
.box-capa img { display: block; width: 100%; height: 100%; object-fit: cover; }
.box-capa.desenhada { --cor-capa: #1b2a4a; display: flex; flex-direction: column; justify-content: flex-end; gap: .25rem; padding: .8rem;
  color: #fff; background: linear-gradient(160deg, var(--cor-capa) 0%, color-mix(in srgb, var(--cor-capa) 70%, #000) 100%); }
.box-capa.desenhada::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at 85% 12%, rgb(255 255 255 / .16), transparent 45%); }
.box-capa.livro.desenhada { justify-content: center; text-align: center; border-left: 6px solid rgb(0 0 0 / .25); }
.box-capa-icone { width: 2rem; height: 2rem; opacity: .9; }
.box-capa.livro.desenhada .box-capa-icone { margin: 0 auto .4rem; }
.box-capa-titulo { font-weight: 700; font-size: .95rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.box-capa.livro .box-capa-titulo { font-family: var(--fonte-leitura); font-size: 1.02rem; }
.box-capa-sub { font-size: .78rem; opacity: .92; }
.box-corpo { padding: .7rem .8rem .5rem; display: flex; flex-direction: column; gap: .2rem; flex: 1; }
.box-titulo { font-size: 1rem; line-height: 1.3; margin: 0; }
.box-titulo a { color: var(--tinta); text-decoration: none; }
.box-titulo a:hover, .box-titulo a:focus-visible { text-decoration: underline; }
.box-linha { margin: 0; font-size: .85rem; color: var(--tinta-2); }
.box-selos { margin: .25rem 0 0; display: flex; flex-wrap: wrap; gap: .25rem; }
.box-selos .selo { font-size: .72rem; }
.box-acoes { padding: 0 .8rem .8rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.box progress { width: 100%; height: .5rem; }
/* Botão de tocar sobre a capa (podcast). */
.box-play { position: absolute; right: .6rem; bottom: .6rem; width: 3rem; height: 3rem; border-radius: 50%; border: 0; cursor: pointer;
  display: grid; place-items: center; background: var(--dourado); color: #fff; box-shadow: 0 4px 14px rgb(0 0 0 / .35); }
.box-play svg { width: 1.35rem; height: 1.35rem; }
.box-play:hover { transform: scale(1.06); }
.box-play[aria-pressed="true"] { background: var(--marinho); }
.box-duracao { position: absolute; left: .5rem; bottom: .5rem; padding: .1rem .45rem; border-radius: 99px; font-size: .75rem; font-weight: 600;
  background: rgb(0 0 0 / .72); color: #fff; }
.box-marca { position: absolute; left: .5rem; top: .5rem; padding: .1rem .5rem; border-radius: 99px; font-size: .72rem; font-weight: 700;
  background: rgb(0 0 0 / .72); color: #fff; }
@media (max-width: 600px) {
  .box-corpo { padding: .55rem .6rem .4rem; }
  .box-titulo { font-size: .92rem; }
  .box-acoes { padding: 0 .6rem .6rem; }
  .box-acoes .botao { padding-inline: .55rem; }
  .box-play { width: 2.6rem; height: 2.6rem; }
}
/* Tocador fixo do podcast (um só para a página). */
.tocador-fixo { position: sticky; bottom: calc(env(safe-area-inset-bottom) + .5rem); z-index: 5; margin-top: 1rem;
  display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; padding: .6rem .75rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra-verde); }
.tocador-fixo img, .tocador-fixo .box-capa { width: 3.5rem; height: 3.5rem; border-radius: 8px; object-fit: cover; aspect-ratio: 1; }
.tocador-fixo .box-capa.desenhada { padding: .4rem; }
.tocador-fixo .box-capa.desenhada .box-capa-titulo, .tocador-fixo .box-capa.desenhada .box-capa-sub { display: none; }
.tocador-fixo-texto { min-width: 0; }
.tocador-fixo-texto strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tocador-fixo audio { width: 100%; height: 2.4rem; margin-top: .25rem; }
@media (max-width: 960px) { .tocador-fixo { bottom: calc(4.25rem + env(safe-area-inset-bottom)); } }
/* Filtros em pílula (categorias). */
.filtros-pilula { display: flex; flex-wrap: wrap; gap: .4rem; margin: .75rem 0; padding: 0; list-style: none; }
.filtros-pilula button { border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); border-radius: 99px; padding: .35rem .85rem;
  font: inherit; font-size: .88rem; cursor: pointer; }
.filtros-pilula button[aria-pressed="true"] { background: var(--dourado); border-color: var(--dourado); color: #fff; }
:root[data-tema="escuro"] .filtros-pilula button[aria-pressed="true"] { color: #04140a; background: var(--dourado-claro); border-color: var(--dourado-claro); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .filtros-pilula button[aria-pressed="true"] { color: #04140a; background: var(--dourado-claro); border-color: var(--dourado-claro); } }
.secao-estante { margin-top: 1.5rem; }
.secao-estante > h2 { display: flex; align-items: center; gap: .5rem; }
/* Página do livro. */
.livro-ficha { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 1.5rem; align-items: start; }
.livro-ficha .box-capa { border-radius: 10px; box-shadow: var(--sombra); }
@media (max-width: 600px) { .livro-ficha { grid-template-columns: 1fr; } .livro-ficha .box-capa { max-width: 200px; margin: 0 auto; } }
:root[data-tema="escuro"] .box-play { color: #04140a; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .box-play { color: #04140a; } }
.pod-ep-cabeca { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; align-items: center; margin-bottom: .75rem; }
.pod-ep-cabeca .box-capa { border-radius: 12px; }
@media (max-width: 600px) { .pod-ep-cabeca { grid-template-columns: 6rem 1fr; } }
.pod-capa-ep-previa .box-capa, .livro-capa-previa .box-capa { max-width: 9rem; border-radius: 10px; margin-bottom: .5rem; }
.gr-banner { border-radius: var(--raio); overflow: hidden; aspect-ratio: 16 / 6; margin: .25rem 0 1rem; background: var(--superficie-2); }
.gr-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gr-imagem-form { border-top: 1px solid var(--linha); margin-top: 1rem; padding-top: .75rem; }
/* Página inicial configurável (4.9): banner, atalhos próprios, igreja e novidades. */
.atalhos-proprios { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; margin: 0 0 1rem; }
@media (max-width: 600px) { .atalhos-proprios { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.atalho-proprio { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; text-align: center; min-height: 6rem;
  padding: .85rem .5rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra);
  color: var(--tinta); text-decoration: none; font-weight: 600; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.atalho-proprio svg { width: 1.8rem; height: 1.8rem; color: var(--dourado); }
@media (hover: hover) { .atalho-proprio:hover { transform: translateY(-3px); box-shadow: var(--sombra-verde); border-color: rgb(0 163 53 / .35); } }
.igreja-cartao h3 { font-size: .95rem; margin: .8rem 0 .2rem; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .04em; }
.redes-lista { list-style: none; padding: 0; margin: .9rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.novidades-livros { list-style: none; padding: 0; margin: .75rem 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.novidades-livros a { display: flex; flex-direction: column; gap: .3rem; font-size: .8rem; color: var(--tinta); text-decoration: none; line-height: 1.25; }
.novidades-livros img, .novidades-livros .mini-capa { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 6px; box-shadow: var(--sombra); }
.novidades-livros .mini-capa { display: grid; place-items: center; background: var(--marinho); color: #fff; }
.novidades-livros .mini-capa svg { width: 1.6rem; height: 1.6rem; }
.pre { white-space: pre-line; }
/* Personalizar (4.9). */
.indice-personalizar ul { list-style: none; padding: 0; margin: .5rem 0 1rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.indice-personalizar a { display: inline-block; padding: .3rem .75rem; border: 1px solid var(--linha); border-radius: 99px; background: var(--superficie);
  color: var(--tinta); text-decoration: none; font-size: .88rem; }
.indice-personalizar a:hover { border-color: var(--dourado-claro); }
.grupo-campos { border: 1px solid var(--linha); border-radius: 10px; padding: .75rem 1rem 1rem; margin: 1rem 0; min-width: 0; }
.grupo-campos > legend { font-weight: 700; padding: 0 .35rem; }
.lista-ordenar { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-direction: column; gap: .35rem; }
.lista-ordenar li { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: .5rem; align-items: center;
  padding: .35rem .5rem; border: 1px solid var(--linha); border-radius: 8px; background: var(--superficie); }
.lista-ordenar li .check { margin: 0; display: flex; align-items: center; gap: .35rem; }
.lista-ordenar li .check svg { width: 1.1rem; height: 1.1rem; color: var(--tinta-2); }
.lista-ordenar input[type="text"] { margin: 0; min-width: 0; }
.ordenar-botoes { display: flex; gap: .2rem; }
@media (max-width: 600px) { .lista-ordenar li { grid-template-columns: 1fr auto; } .lista-ordenar li > input[type="text"] { grid-column: 1 / -1; grid-row: 2; } }
.lista-atalhos { list-style: none; padding: 0; margin: 0 0 .5rem; display: flex; flex-direction: column; gap: .6rem; }
.lista-atalhos > li { border: 1px solid var(--linha); border-radius: 8px; padding: .5rem .75rem; }
.icone-escolha { display: flex; gap: .4rem; align-items: center; }
.icone-previa svg { width: 1.6rem; height: 1.6rem; color: var(--dourado); }
.banner-previa img { width: 100%; max-height: 10rem; object-fit: cover; border-radius: 8px; display: block; margin-bottom: .5rem; }
.cores-visual { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.cor-visual input[type="color"] { width: 100%; height: 2.4rem; }
.lista-opcoes.horizontal { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.lista-opcoes.horizontal legend { width: 100%; }
.rotulo-fixo { display: block; font-weight: 600; margin-bottom: .25rem; }
.box-selos .selo { white-space: normal; max-width: 100%; }
.box-linha { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.box-capa.desenhada:not(.livro):not(:has(.box-capa-titulo)) { justify-content: center; align-items: center; }
.box-capa.desenhada:not(.livro):not(:has(.box-capa-titulo)) .box-capa-icone { width: 2.6rem; height: 2.6rem; }
.novidades-livros a { overflow-wrap: normal; word-break: normal; hyphens: auto; }
@media (max-width: 1100px) { .novidades-livros { grid-template-columns: repeat(3, minmax(0, 1fr)); } .novidades-livros li:nth-child(4) { display: none; } }
.lista-ordenar li.sem-titulo { grid-template-columns: minmax(0, 1fr) auto; }
.lista-ordenar li .check input { flex: none; }
@media (max-width: 600px) { .lista-ordenar li .ordenar-botoes { grid-column: 2; grid-row: 1; } }
.box-play[aria-pressed="true"], :root[data-tema="escuro"] .box-play[aria-pressed="true"] { background: var(--superficie); color: var(--tinta); box-shadow: 0 0 0 3px var(--dourado-claro), 0 4px 14px rgb(0 0 0 / .35); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .box-play[aria-pressed="true"] { background: var(--superficie); color: var(--tinta); } }
.livro-ficha + section, .livro-ficha + .cartao { margin-top: 1.5rem; }
.grupo-campos .linha-campos { align-items: start; }
/* Ofertas por PIX (4.10). */
.ofertas-cartao { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; margin-bottom: 1rem; border-left: 4px solid var(--dourado-claro); }
.ofertas-cartao h2 { margin: 0 0 .2rem; }
.ofertas-cartao p { margin: 0; }
.ofertas-icone { width: 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--dourado-claro) 16%, transparent); color: var(--dourado); }
.ofertas-icone svg { width: 1.6rem; height: 1.6rem; }
@media (max-width: 600px) { .ofertas-cartao { grid-template-columns: auto minmax(0, 1fr); } .ofertas-cartao .linha-botoes { grid-column: 1 / -1; } .ofertas-cartao .botao { width: 100%; justify-content: center; } }
.pix-intro { margin-top: 0; }
.pix-valores { border: 0; padding: 0; margin: 0 0 1rem; }
.pix-valores legend { font-weight: 600; margin-bottom: .4rem; }
.pix-opcoes { display: flex; flex-wrap: wrap; gap: .4rem; }
.pix-opcao { position: relative; }
.pix-opcao input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pix-opcao span { display: inline-block; padding: .45rem .9rem; border: 1px solid var(--linha); border-radius: 99px; background: var(--superficie); font-weight: 600; min-height: 1.5rem; }
.pix-opcao input:checked + span { background: var(--dourado); border-color: var(--dourado); color: #fff; }
:root[data-tema="escuro"] .pix-opcao input:checked + span { color: #04140a; background: var(--dourado-claro); border-color: var(--dourado-claro); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .pix-opcao input:checked + span { color: #04140a; background: var(--dourado-claro); border-color: var(--dourado-claro); } }
.pix-opcao input:focus-visible + span { outline: 3px solid var(--foco); outline-offset: 2px; }
.pix-valores input[type="text"] { margin-top: .6rem; max-width: 12rem; }
.pix-centro { display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center; }
.pix-qr-caixa { width: min(16rem, 70vw); padding: .5rem; background: #fff; border-radius: 12px; box-shadow: var(--sombra); }
.pix-qr { display: block; width: 100%; height: auto; }
.pix-valor { margin: 0; font-weight: 600; }
.pix-dados { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem .8rem; margin: 1.2rem 0 .6rem; }
.pix-dados dt { color: var(--tinta-2); }
.pix-dados dd { margin: 0; overflow-wrap: anywhere; }
.pix-chave { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.pix-passos { padding-left: 1.2rem; margin: .5rem 0; }
/* Topo (4.11): barra de contato da instituição e logo maior. */
.barra-contato { background: color-mix(in srgb, var(--marinho) 78%, #000); color: #e8edf5; font-size: .85rem; border-bottom: 1px solid rgb(255 255 255 / .08); }
.barra-contato ul { list-style: none; margin: 0 auto; padding: .35rem 1rem; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem 1.5rem; }
.barra-contato li, .barra-contato a { display: inline-flex; align-items: center; gap: .4rem; color: #e8edf5; text-decoration: none; }
.barra-contato a:hover span { text-decoration: underline; }
.barra-contato svg, .contato-topo svg { width: 1rem; height: 1rem; color: var(--dourado-claro); flex: none; }
@media (max-width: 960px) { .barra-contato { display: none; } }
.marca-larga { display: block; height: calc(var(--altura-topo) - 14px); max-width: min(340px, 52vw); width: auto; object-fit: contain; }
@media (max-width: 600px) { .marca-larga { max-width: 46vw; } }
.contato-topo { display: none; }
@media (max-width: 960px) {
  .contato-topo { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin: 0 0 .9rem; padding: .55rem .8rem; border-radius: var(--raio);
    background: var(--superficie); border: 1px solid var(--linha); font-size: .86rem; }
  .contato-topo a, .contato-topo span { display: inline-flex; align-items: center; gap: .35rem; color: var(--tinta); text-decoration: none; overflow-wrap: anywhere; }
  .contato-topo svg { color: var(--dourado); }
}
.topo-previa { background: var(--marinho); border-radius: 10px; padding: .6rem 1rem; margin-bottom: .5rem; display: flex; align-items: center; min-height: 3.5rem; }
.topo-previa img { max-height: 4.5rem; max-width: 100%; }
.topo-previa .discreto { color: #e8edf5; margin: 0; }

/* 4.11: topo sem o campo de pesquisa (Personalizar › Topo) */
.topo.sem-busca .busca-topo, .topo.sem-busca #abrir-busca { display: none !important; }
.topo.sem-busca .marca { margin-right: auto; }

/* Carrossel (4.12): edição dos slides em Personalizar. */
.lista-slides { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.slide-novo { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem 1rem; margin-bottom: 1rem; }
.slide-novo .campo { margin: 0; }

/* Comentários bíblicos (4.12). */
.comentario { border-left: 3px solid var(--dourado-claro); padding: .25rem 0 .25rem 1rem; margin: 0 0 1.25rem; }
.comentario-titulo { margin: 0 0 .2rem; }
.comentario-ref { margin: 0 0 .5rem; font-size: .95rem; }
.comentario-texto p { margin: 0 0 .75rem; }
.comentario-assinatura { margin: 0 0 .5rem; }
.comentarios-verso { margin-top: 1rem; }
.lista-comentarios { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.comentario-item { border: 1px solid var(--linha); border-radius: var(--raio); padding: .9rem 1.1rem; background: var(--superficie); }
.comentario-item h2 { font-size: 1.2rem; margin: 0 0 .25rem; }
.comentario-item p { margin: 0 0 .4rem; }
.filtros-comentarios { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: .5rem 1rem; align-items: end; margin-bottom: .5rem; }
.filtros-comentarios .linha { display: flex; gap: .5rem; }
.filtros-comentarios .linha input { flex: 1; min-width: 0; }
@media (max-width: 600px) { .filtros-comentarios { grid-template-columns: 1fr; } }
.marcas .marca-comentario { color: var(--marinho-2); }
:root[data-tema="escuro"] .marcas .marca-comentario { color: #9cc0ff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .marcas .marca-comentario { color: #9cc0ff; } }
.form-comentario textarea { width: 100%; }

/* Comentários clássicos (4.13). */
.classicos-verso { margin-top: 1rem; }
.classico-obra { border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem .9rem; margin: 0 0 .75rem; background: var(--superficie); }
.classico-obra > summary { cursor: pointer; padding: .3rem 0; }
.classico-intro { margin: .5rem 0; }
.classico-intro > summary { cursor: pointer; color: var(--tinta-2); }
.classico-trecho { margin: .5rem 0 .75rem; }
.classico-ref { margin: .25rem 0 .4rem; font-size: 1rem; }
.classico-traducao { border-left: 3px solid var(--linha); padding-left: .75rem; margin-bottom: .5rem; }
.classico-original > summary { cursor: pointer; color: var(--tinta-2); margin: .25rem 0; }
.comentario-texto[lang="en"] { color: var(--tinta); }

/* ===================== Site institucional (4.14) ===================== */
/* O site ocupa a largura toda da área de conteúdo (as faixas de fundo vão de ponta a ponta). */
.site { margin: -1.5rem calc(-1 * clamp(1rem, 3vw, 2.5rem)) -5rem; }
.site-previa .site { margin: 0; }
.site-largura { max-width: 72rem; margin: 0 auto; padding-inline: clamp(1rem, 3vw, 2.5rem); }
.site-secao { padding-block: 3.5rem; background: var(--papel); color: var(--tinta); scroll-margin-top: calc(var(--altura-topo) + 2.75rem); }
.site-secao.espaco-compacto { padding-block: 2rem; } .site-secao.espaco-amplo { padding-block: 5.5rem; }
.site-secao.fundo-suave { background: var(--superficie-2); }
.site-secao.fundo-escuro { background: var(--marinho); color: #eef2f7; }
.site { --sobre-marca: #fff; }
:root[data-tema="escuro"] .site { --sobre-marca: #050a18; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .site { --sobre-marca: #050a18; } }
.site-secao.fundo-marca { background: var(--dourado); color: var(--sobre-marca); }
.site-secao.sem-margem { padding-block: 0; }
.site-secao.sem-margem .site-largura { max-width: none; padding-inline: 0; }
.fundo-escuro .site-titulo, .fundo-escuro h2, .fundo-escuro h3 { color: #fff; }
.fundo-marca .site-titulo, .fundo-marca h2, .fundo-marca h3 { color: var(--sobre-marca); }
.fundo-escuro a:not(.botao) { color: #fff; } .fundo-marca a:not(.botao) { color: var(--sobre-marca); }
.fundo-escuro .discreto, .fundo-escuro .site-subtitulo { color: #dbe3ee; } .fundo-marca .discreto, .fundo-marca .site-subtitulo { color: var(--sobre-marca); }
.fundo-escuro .botao:not(.primario) { background: transparent; color: #fff; border-color: rgb(255 255 255 / .6); }
.fundo-marca .botao:not(.primario) { background: transparent; color: var(--sobre-marca); border-color: var(--sobre-marca); }
.fundo-marca .botao.primario { background: var(--sobre-marca); color: var(--dourado); border-color: var(--sobre-marca); box-shadow: none; }
.fundo-escuro .botao.primario { background: var(--botao-destaque, var(--dourado-claro)); border-color: var(--botao-destaque, var(--dourado-claro)); color: var(--sobre-destaque, var(--marinho)); }
.site-titulo { font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.12; margin: 0 0 .6rem; letter-spacing: -.015em; }
.site-subtitulo { font-size: 1.15rem; margin: 0 0 1rem; color: var(--tinta-2); }
.site-texto { font-size: 1.08rem; line-height: 1.65; max-width: 46rem; }
.site-texto p { margin: 0 0 .9rem; }
.site-botoes { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0 0; }
.site-rotulo { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .4rem; }
.site-dica { margin: 0; }

/* Menu do site: atalhos que rolam até as seções. */
.site-menu { position: sticky; top: var(--altura-topo); z-index: 5; background: var(--superficie); border-bottom: 1px solid var(--linha); }
.site-menu ul { list-style: none; margin: 0 auto; padding: 0 clamp(1rem, 3vw, 2.5rem); max-width: 72rem; display: flex; gap: .25rem; overflow-x: auto; }
.site-menu a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem; color: var(--tinta); text-decoration: none; font-weight: 600; white-space: nowrap; border-bottom: 3px solid transparent; }
.site-menu a:hover, .site-menu a:focus-visible { border-bottom-color: var(--dourado-claro); }

/* Abertura */
.site-abertura { position: relative; text-align: left; }
.site-abertura .site-titulo { font-size: clamp(2.2rem, 5vw, 3.6rem); }
.tipo-abertura.var-simples .site-abertura { text-align: center; } .tipo-abertura.var-simples .site-texto { margin-inline: auto; } .tipo-abertura.var-simples .site-botoes { justify-content: center; }
.site-abertura.com-imagem { min-height: 26rem; display: flex; align-items: flex-end; border-radius: var(--raio); overflow: hidden; background: var(--marinho); color: #fff; }
.site-abertura-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site-abertura.com-imagem::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / .05) 20%, rgb(0 0 0 / .75) 100%); }
.site-abertura.com-imagem .site-abertura-texto { position: relative; z-index: 1; padding: clamp(1.25rem, 4vw, 3rem); }
.site-abertura.com-imagem .site-titulo, .site-abertura.com-imagem .site-texto { color: #fff; text-shadow: 0 1px 8px rgb(0 0 0 / .45); }
.site-abertura.com-imagem .botao:not(.primario) { background: rgb(255 255 255 / .12); color: #fff; border-color: rgb(255 255 255 / .6); }

/* Texto com imagem */
.site-texto-grade { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.site-texto-grade.com-imagem { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-texto-grade.var-centro { text-align: center; } .site-texto-grade.var-centro .site-texto { margin-inline: auto; } .site-texto-grade.var-centro .site-botoes { justify-content: center; }
.site-texto-img { width: 100%; border-radius: var(--raio); display: block; object-fit: cover; max-height: 28rem; }
.site-texto-img.larga { margin-top: 1.25rem; max-height: 30rem; }
@media (max-width: 760px) { .site-texto-grade.com-imagem { grid-template-columns: 1fr; } }

/* Cartões */
.site-cartoes { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.site-cartoes.col-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-cartoes.col-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .site-cartoes.col-3, .site-cartoes.col-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .site-cartoes, .site-cartoes.col-2, .site-cartoes.col-3, .site-cartoes.col-4 { grid-template-columns: 1fr; } }
.site-cartao { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.25rem; box-shadow: var(--sombra); }
.site-cartao h2, .site-cartao h3 { margin: .4rem 0 .4rem; font-size: 1.2rem; color: var(--tinta) !important; }
.site-cartao .site-texto { font-size: 1rem; }
.site-cartao a { color: var(--dourado) !important; font-weight: 600; }
.site-cartao-icone { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 12px; background: var(--superficie-2); color: var(--dourado); }
.site-cartao-icone svg { width: 1.5rem; height: 1.5rem; }

/* Cultos */
.site-cultos { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.site-culto { background: var(--superficie); color: var(--tinta); border-radius: var(--raio); padding: 1.1rem 1.25rem; border: 1px solid var(--linha); display: flex; flex-direction: column; gap: .15rem; }
.site-culto-dia { font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dourado); }
.site-culto-hora { font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em; }
.site-culto-nome { font-weight: 600; } .site-culto-detalhe { color: var(--tinta-2); font-size: .92rem; }
.site-cultos-lista { margin: 1.25rem 0; padding-left: 1.2rem; line-height: 1.8; }
.site-endereco { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-top: 1rem; }
.site-endereco > svg { width: 1.4rem; height: 1.4rem; }
.site-endereco p { margin: 0; }

/* Mensagens, vídeo e ao vivo */
.site-grade { margin-top: 1.25rem; }
.site-lista-mensagens { list-style: none; padding: 0; display: grid; gap: .75rem; }
.site-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--raio); overflow: hidden; background: #000; margin-top: 1rem; }
.site-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.site-aovivo-selo { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; margin: 0; }

/* Bíblia */
.site-busca { margin-top: 1rem; max-width: 46rem; }
.site-busca label { display: block; font-weight: 600; margin-bottom: .35rem; }
.site-busca .linha { display: flex; gap: .5rem; } .site-busca input { flex: 1; min-width: 0; }
.site-verso-dia { margin-top: 1.5rem; max-width: 46rem; }
.site-verso-dia blockquote { margin: 0 0 .5rem; font-family: var(--fonte-leitura); font-size: 1.25rem; line-height: 1.6; border-left: 3px solid var(--dourado-claro); padding-left: 1rem; }

/* Contato e rodapé */
.site-contato { display: grid; gap: 2rem; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
@media (max-width: 760px) { .site-contato { grid-template-columns: 1fr; } }
.site-contato-lista { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .7rem; }
.site-contato-lista li { display: flex; gap: .6rem; align-items: flex-start; }
.site-contato-lista svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; margin-top: .15rem; }
.site-contato-lista p, .site-contato-lista .pre { margin: 0; }
.site-redes { list-style: none; padding: 0; margin: .75rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.site-rodape { display: grid; gap: 1.5rem 2.5rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); font-size: .97rem; }
.site-rodape-nome { font-size: 1.25rem; font-weight: 800; margin: 0 0 .5rem; }
.site-rodape .site-texto { font-size: .97rem; }

/* Chamada e instalar o app */
.site-chamada { text-align: center; } .site-chamada .site-texto { margin-inline: auto; } .site-chamada .site-botoes { justify-content: center; }
.site-chamada.var-marca, .site-chamada.var-escura { border-radius: var(--raio); padding: clamp(1.5rem, 4vw, 3rem); }
.site-chamada.var-marca { background: var(--dourado); color: var(--sobre-marca); } .site-chamada.var-escura { background: var(--marinho); color: #fff; }
.site-chamada.var-marca .site-titulo { color: var(--sobre-marca); } .site-chamada.var-escura .site-titulo { color: #fff; }
.site-chamada.var-marca .botao.primario { background: var(--sobre-marca); color: var(--dourado); border-color: var(--sobre-marca); }
.site-chamada.var-marca .botao:not(.primario) { background: transparent; color: var(--sobre-marca); border-color: var(--sobre-marca); }
.site-chamada.var-escura .botao:not(.primario) { background: transparent; color: #fff; border-color: rgb(255 255 255 / .6); }
.fundo-marca .site-chamada.var-marca, .fundo-escuro .site-chamada.var-escura { padding: 0; }

/* Perguntas frequentes */
.site-perguntas { margin-top: 1rem; display: grid; gap: .6rem; max-width: 52rem; }
.site-perguntas details { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: .2rem 1.1rem; }
.site-perguntas summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.site-perguntas .site-texto { font-size: 1rem; padding-bottom: .4rem; }

/* Texto entregue pelo servidor (antes do JavaScript) */
.site-previo { max-width: 46rem; margin: 0 auto; }

/* ---------- Administração › Site ---------- */
.site-config { margin-bottom: 1.5rem; }
.site-itens { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .75rem; }
.site-item { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); padding: .8rem 1rem; }
.site-item.oculta { border-style: dashed; background: var(--superficie-2); }
.site-item-linha { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.site-item-info h3 { margin: 0; font-size: 1.05rem; } .site-item-info p { margin: .15rem 0 0; }
.site-item-acoes { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.site-editor-area { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 1rem; border-top: 1px solid var(--linha); padding-top: 1rem; }
@media (max-width: 1100px) { .site-editor-area { grid-template-columns: 1fr; } }
.site-previa-coluna h4 { margin: 0 0 .5rem; }
.site-previa { border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; position: sticky; top: calc(var(--altura-topo) + 1rem); max-height: 80vh; overflow-y: auto; }
.site-previa .site-menu { position: static; }
.site-lista-edicao { list-style: none; padding: 0; margin: 0 0 .75rem; display: grid; gap: .75rem; }
.site-lista-edicao > li { border: 1px dashed var(--linha); border-radius: 10px; padding: .6rem .8rem; }
.site-lista-edicao h5 { margin: 0; font-size: .95rem; }
.site-img-previa img { max-width: 100%; max-height: 10rem; border-radius: 8px; display: block; margin-bottom: .4rem; }
.site-tipos { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.site-tipo { width: 100%; text-align: left; display: flex; flex-direction: column; gap: .25rem; padding: .8rem 1rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--tinta); cursor: pointer; font: inherit; min-height: 44px; }
.site-tipo:hover, .site-tipo:focus-visible { border-color: var(--dourado-claro); }
.site-tipo span { color: var(--tinta-2); font-size: .92rem; }
.site-nova { margin-bottom: 1.5rem; }

/* ===================== Modo site: menu no topo (4.15) ===================== */
/* 4.15.2: proporções e estilo do site da Global (Tailwind): contêiner de 1280 px (max-w-7xl) com margens
   16/24/32 px, comum ao topo e às seções; faixa escura de contato; barra de navegação clara de 80 px. */
.menu-topo { display: none; }
.lateral-site-grupo { display: none; }
body.modo-site .lateral-site-grupo { display: block; }
.lateral-site a svg { width: 1rem; height: 1rem; }
:root { --sobre-escuro: #4ade80; --texto-sobre-escuro: #cbd5e1; --raio-site: 16px; --raio-botao: .5rem; --fonte-titulos-site: var(--fonte-ui);
  --site-max: 64rem; --topo-max: 64rem; --site-margem: 1rem; } /* corpo do site: no máximo 1024 px de conteúdo */
@media (min-width: 640px) { :root { --site-margem: 1.5rem; } }
@media (min-width: 1024px) { :root { --site-margem: 2rem; } }
/* 4.15.4: toda a estrutura do site (faixa de contato, topo, carrossel, fundos das seções, rodapé) fica dentro
   de uma caixa de no máximo 1024 px, centralizada; fora dela, um fundo neutro. */
body.modo-site { --topo-margem: max(var(--site-margem), calc((100% - var(--site-max)) / 2 + var(--site-margem))); --fora-site: #e3e8ef; background: var(--fora-site); }
:root[data-tema="escuro"] body.modo-site { --fora-site: #03060f; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) body.modo-site { --fora-site: #03060f; } }
/* 4.15.5: as faixas do topo (azul de contato e branca do menu) vão de ponta a ponta; o conteúdo delas fica na coluna de 1024 px. */
body.modo-site .barra-contato { padding-inline: var(--topo-margem); }
body.modo-site .site { max-width: var(--site-max); margin: -1.5rem max(calc(-1 * clamp(1rem, 3vw, 2.5rem)), calc((100% - var(--site-max)) / 2)) -5rem;
  box-shadow: 0 0 0 1px var(--linha), 0 24px 48px -24px rgb(10 17 40 / .18); }
body.modo-site main { background: transparent; }
/* Topo claro (os dois temas: usa a superfície do tema). */
body.modo-site .topo { background: color-mix(in srgb, var(--superficie) 95%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  color: var(--tinta); border-bottom: 1px solid var(--linha); box-shadow: 0 1px 2px rgb(10 17 40 / .06); padding-inline: var(--topo-margem); }
body.modo-site .marca { color: var(--tinta) !important; }
body.modo-site .marca-nome b { color: var(--dourado); }
body.modo-site .topo .botao-icone { color: var(--tinta); }
body.modo-site .topo .botao-icone:hover { background: var(--superficie-2); }
body.modo-site .barra-contato { background: var(--marinho); color: var(--texto-sobre-escuro); font-size: .75rem; border-bottom: 1px solid rgb(255 255 255 / .08); }
body.modo-site .barra-contato ul { max-width: none; padding: .5rem 0; justify-content: flex-end; }
body.modo-site .barra-contato li:first-child:not(:only-child) { margin-right: auto; }
body.modo-site .barra-contato li, body.modo-site .barra-contato a { color: var(--texto-sobre-escuro); }
body.modo-site .barra-contato a:hover { color: var(--dourado-claro); }
@media (min-width: 861px) {
  body.modo-site { --altura-topo: 80px; }
  body.modo-site .estrutura, body.modo-site .estrutura.com-painel { grid-template-columns: minmax(0, 1fr); }
  body.modo-site .estrutura.com-painel { grid-template-columns: minmax(0, 1fr) var(--largura-painel); }
  body.modo-site .lateral { display: none; }
  body.modo-site .busca-topo, body.modo-site #abrir-busca { display: none; }
  body.modo-site .topo { gap: 1rem; }
  body.modo-site .marca { font-size: 1.15rem; flex: none; } body.modo-site .marca-icone { width: 2.5rem; height: 2.5rem; }
  body.modo-site .menu-topo:not([hidden]) { display: flex; align-items: stretch; align-self: stretch; flex: 1; gap: clamp(.25rem, 1.2vw, 1.25rem); margin-left: clamp(.75rem, 2vw, 1.75rem); min-width: 0; }
  body.modo-site .site-menu { display: none; }
}
.menu-topo-item { display: inline-flex; align-items: center; gap: .3rem; padding: 0 .25rem; color: var(--tinta) !important; text-decoration: none; font: 600 .875rem var(--fonte-ui);
  background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer; white-space: nowrap; min-height: 44px; transition: color .15s, border-color .15s; }
.menu-topo-item svg { width: .85rem; height: .85rem; }
.menu-topo-item:hover, .menu-topo-item:focus-visible, .menu-topo-item[aria-expanded="true"] { color: var(--dourado) !important; border-bottom-color: var(--dourado-claro); }
.menu-topo-espaco { flex: 1; }
.menu-topo-grupo { position: relative; display: flex; }
.menu-topo-painel { position: absolute; top: 100%; left: 0; z-index: 60; min-width: 14rem; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: 0 0 16px 16px;
  box-shadow: 0 20px 35px -10px rgb(10 17 40 / .18); padding: 1rem 1.25rem; }
.menu-topo-painel[hidden] { display: none; }
/* "Estudo": painel largo preso à direita do contêiner do topo (o topo, "sticky", é a referência). */
.menu-topo-grupo.estudo { position: static; }
.menu-topo-painel.estudo { left: auto; right: var(--topo-margem, 1rem); width: min(60rem, calc(100% - 2 * var(--topo-margem, 1rem))); top: calc(100% + 1px);
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .25rem 2rem; padding: 1.75rem 2rem 1.25rem; }
.menu-topo-painel.estudo[hidden] { display: none; }
.menu-topo-coluna.longa { grid-column: span 2; }
.menu-topo-coluna.longa ul { columns: 2; column-gap: 2rem; }
.menu-topo-coluna.longa li { break-inside: avoid; }
.menu-topo-coluna-titulo { font: 700 .75rem var(--fonte-ui); letter-spacing: .05em; text-transform: uppercase; color: var(--dourado); margin: 0 0 .5rem; }
.menu-topo-coluna ul, .menu-topo-lista { list-style: none; margin: 0; padding: 0; }
.menu-topo-painel a { display: flex; align-items: center; min-height: 38px; padding: .2rem .5rem; margin-inline: -.5rem; border-radius: 8px; color: var(--tinta) !important; text-decoration: none; font-weight: 600; font-size: .925rem; }
.menu-topo-painel a:hover, .menu-topo-painel a:focus-visible { background: var(--superficie-2); color: var(--dourado) !important; }
.menu-topo-painel li[hidden] { display: none; }
.menu-topo-dica { grid-column: 1 / -1; display: flex; align-items: center; gap: .6rem; margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--linha); color: var(--tinta-2); font-size: .875rem; }
.menu-topo-dica svg { width: 1rem; height: 1rem; flex: none; }
.menu-topo .botao { align-self: center; min-height: 44px; margin-left: .25rem; padding: .625rem 1.25rem; font-size: .875rem; font-weight: 700; border-radius: var(--raio-botao); }
.menu-topo .menu-topo-busca { padding-inline: 0; width: 44px; }
.menu-topo .botao, .menu-topo-grupo, .menu-topo-item { flex: none; }
.menu-topo-ofertar, .menu-topo-busca { background: var(--superficie); color: var(--tinta); border-color: var(--linha); }
.menu-topo-ofertar:hover, .menu-topo-busca:hover { background: var(--superficie-2); color: var(--tinta); }
.menu-topo-conta { box-shadow: 0 10px 15px -3px color-mix(in srgb, var(--dourado-claro) 25%, transparent); }
.menu-topo-busca svg { width: 1.1rem; height: 1.1rem; }
.menu-topo-conta svg { width: 1rem; height: 1rem; }
@media (min-width: 861px) and (max-width: 1180px) {
  .menu-topo .botao { padding-inline: .8rem; }
  body.modo-site .marca-nome { display: none; }
  .menu-topo-painel.estudo { padding: 1.5rem; gap: .25rem 1.25rem; }
}

/* ===================== Seções do site no estilo da Global (4.15.2) ===================== */
.site-largura { max-width: calc(var(--site-max) + 2 * var(--site-margem)); padding-inline: var(--site-margem); }
body.modo-site .site-largura { max-width: none; }
.site-secao { padding-block: 5rem; }
.site-secao.espaco-compacto { padding-block: 3rem; } .site-secao.espaco-amplo { padding-block: 7rem; }
.site-secao.sem-margem { padding-block: 0; }
.site-titulo { font-family: var(--fonte-titulos-site); font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.15; margin-bottom: .75rem; }
/* Título azul-marinho (como na Global) só nos fundos claros; no tema escuro, a cor do texto do tema. */
.site { --titulo-site: var(--marinho); }
:root[data-tema="escuro"] .site { --titulo-site: var(--tinta); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .site { --titulo-site: var(--tinta); } }
.site-secao:is(.fundo-padrao, .fundo-suave) .site-titulo { color: var(--titulo-site); }
.site-subtitulo { font-size: clamp(1rem, 1.6vw, 1.125rem); line-height: 1.6; color: var(--tinta-2); }
.site-rotulo { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .75rem; border-radius: 999px; background: color-mix(in srgb, var(--dourado-claro) 10%, var(--superficie));
  color: var(--dourado); font-size: .75rem; letter-spacing: .03em; }
.fundo-marca .site-rotulo { background: transparent; color: var(--sobre-marca); border: 1px solid currentColor; }
.fundo-escuro .site-rotulo { background: rgb(255 255 255 / .08); color: #e2e8f0; border: 1px solid rgb(255 255 255 / .2); }
/* Cabeçalho centralizado nas seções de lista (como "Soluções" na Global). */
:is(.tipo-cartoes, .tipo-mensagens, .tipo-agenda, .tipo-perguntas, .tipo-video) > .site-largura > :is(.site-titulo, .site-subtitulo, .site-texto) { text-align: center; max-width: 48rem; margin-inline: auto; }
:is(.tipo-cartoes, .tipo-mensagens, .tipo-agenda, .tipo-perguntas, .tipo-video) > .site-largura > :is(.site-cartoes, .site-agenda, .site-agenda-lista, .site-grade, .site-perguntas, .site-video) { margin-top: 3rem; }
.tipo-agenda .site-agenda { grid-template-columns: repeat(auto-fit, minmax(17rem, 24rem)); justify-content: center; }
.tipo-agenda .site-agenda-lista { max-width: 48rem; margin-inline: auto; }
.tipo-agenda .site-botoes { justify-content: center; margin-top: 2.5rem; }
.tipo-perguntas .site-perguntas, .tipo-video .site-video { margin-inline: auto; max-width: 56rem; }
/* Abertura: fundo escuro com o degradê verde da Global. */
.tipo-abertura .site-titulo { font-size: clamp(2.25rem, 5.2vw, 3.75rem); line-height: 1.12; letter-spacing: -.025em; }
.tipo-abertura .site-texto { font-size: clamp(1rem, 1.6vw, 1.125rem); line-height: 1.65; }
.site-secao.tipo-abertura:not(.sem-margem) { padding-block: clamp(5rem, 8vw, 7rem); position: relative; overflow: hidden; }
.site-secao.tipo-abertura.fundo-escuro { background: radial-gradient(circle at top right, color-mix(in srgb, var(--dourado-claro) 18%, transparent) 0%, color-mix(in srgb, var(--marinho) 96%, transparent) 70%), var(--marinho); }
.site-secao.tipo-abertura.fundo-escuro:not(.sem-margem)::after { content: ""; position: absolute; right: -5rem; bottom: -5rem; width: 24rem; height: 24rem; border-radius: 50%; background: rgb(0 163 53 / .1); filter: blur(64px); pointer-events: none; }
.site-secao.tipo-abertura > .site-largura { position: relative; z-index: 1; }
/* Botões do site: maiores, cantos de 8 px, sombra verde no principal. */
.site-botoes { gap: 1rem; margin-top: 1.75rem; }
.site-botoes .botao { padding: .875rem 1.75rem; font-size: 1rem; font-weight: 700; border-radius: var(--raio-botao); }
.site-botoes .botao.primario { box-shadow: 0 20px 25px -5px color-mix(in srgb, var(--dourado-claro) 30%, transparent); }
.fundo-escuro .site-botoes .botao:not(.primario) { background: color-mix(in srgb, #fff 12%, var(--marinho)); color: #fff; border-color: rgb(255 255 255 / .22); }
/* Cartões: cantos de 16 px, 28 px de respiro, ícone em quadro verde, sobem ao passar o mouse. */
.site-cartoes { gap: 2rem; margin-top: 0; }
.site-cartao, .site-culto, .evento-cartao { border-radius: var(--raio-site); border: 1px solid var(--linha); box-shadow: none; transition: transform .3s, box-shadow .3s; }
.site-cartao { padding: 1.75rem; }
.site-cartao:hover, .site-culto:hover, .evento-cartao:hover { transform: translateY(-4px); box-shadow: 0 20px 35px -10px rgb(0 163 53 / .16); }
@media (prefers-reduced-motion: reduce) { .site-cartao, .site-culto, .evento-cartao { transition: none; } .site-cartao:hover, .site-culto:hover, .evento-cartao:hover { transform: none; } }
.site-cartao-icone { width: 3.5rem; height: 3.5rem; border-radius: .75rem; background: color-mix(in srgb, var(--dourado-claro) 10%, transparent); color: var(--dourado); margin-bottom: 1.5rem; }
.site-cartao-icone svg { width: 1.6rem; height: 1.6rem; }
.site-cartao h2, .site-cartao h3 { font-size: 1.25rem; font-weight: 700; margin: .25rem 0 .75rem; }
.site-cartao .site-texto { font-size: .925rem; line-height: 1.65; color: var(--tinta-2); }
.site-cultos { gap: 1.5rem; }
.site-culto { padding: 1.5rem 1.75rem; }
.site-agenda { gap: 2rem; }
.site-perguntas details { border-radius: var(--raio-site); padding: .35rem 1.5rem; }
/* Rodapé (seção "rodapé") no padrão escuro da Global. */
.tipo-rodape.fundo-escuro { color: var(--texto-rodape, #94a3b8); border-top: 1px solid rgb(255 255 255 / .08); }
.tipo-rodape.fundo-escuro a { color: var(--texto-sobre-escuro); } .tipo-rodape.fundo-escuro a:hover { color: var(--dourado-claro); }
@media (max-width: 860px) { .site-secao { padding-block: 3.5rem; } .site-cartoes, .site-agenda { gap: 1.25rem; } }

/* ===================== Agenda (4.15) ===================== */
.site-agenda { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.site-agenda-lista { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: .75rem; }
.evento-cartao { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.evento-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.evento-corpo { display: flex; gap: 1rem; padding: 1rem 1.1rem; align-items: flex-start; }
.evento-data { margin: 0; flex: none; width: 3.6rem; text-align: center; border-radius: 12px; background: var(--marinho); color: #fff; padding: .4rem 0; display: flex; flex-direction: column; text-transform: uppercase; font: 700 .78rem var(--fonte-ui); letter-spacing: .06em; }
.evento-dia { font-size: 1.6rem; letter-spacing: -.02em; line-height: 1.1; }
.evento-titulo { margin: 0 0 .25rem; font-size: 1.15rem; }
.evento-titulo a { color: var(--tinta) !important; text-decoration: none; }
.evento-titulo a:hover { text-decoration: underline; }
.evento-quando, .evento-local { margin: 0 0 .25rem; color: var(--tinta-2); font-size: .95rem; }
.evento-local { display: flex; align-items: center; gap: .3rem; } .evento-local svg { width: 1rem; height: 1rem; flex: none; }
.evento-capa { width: 100%; max-height: 22rem; object-fit: cover; border-radius: var(--raio); display: block; margin-bottom: 1rem; }
.evento-info { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .5rem; }
.evento-info li { display: flex; gap: .6rem; align-items: flex-start; } .evento-info svg { width: 1.2rem; height: 1.2rem; flex: none; margin-top: .15rem; color: var(--dourado); }
.evento-resumo { font-size: 1.12rem; }
.evento-inscricao { margin-top: 1.5rem; }
.form-inscricao textarea { width: 100%; }
.codigo-inscricao strong { font-size: 1.5rem; letter-spacing: .12em; }
.inscricao-ok h2 { display: flex; align-items: center; gap: .5rem; } .inscricao-ok h2 svg { width: 1.4rem; height: 1.4rem; color: var(--sucesso); }
.cancelar-inscricao { margin-top: 1rem; } .cancelar-inscricao summary { cursor: pointer; color: var(--tinta-2); min-height: 44px; display: flex; align-items: center; }
.tabela td.num { text-align: right; }
.tabela tr.cancelada td { color: var(--tinta-2); text-decoration: line-through; }
.tabela tr.cancelada td:last-child { text-decoration: none; }

/* ===================== Organização dos módulos do site (4.16, imagem aprovada) ===================== */
.site-secao { padding-block: 4rem; }
.site-secao.espaco-compacto { padding-block: 2.5rem; } .site-secao.espaco-amplo { padding-block: 6rem; }
.site-secao.fundo-claro { background: var(--superficie); }
.site-secao.fundo-claro :is(.site-cartao, .site-culto:not(.site-culto-endereco), .site-perguntas details) { background: var(--papel); }
.site-secao.fundo-claro .site-titulo { color: var(--titulo-site); }
/* Cabeçalho centralizado também nos cultos em cartões. */
.tipo-cultos.var-cartoes > .site-largura > :is(.site-rotulo, .site-titulo, .site-subtitulo, .site-texto) { text-align: center; margin-inline: auto; max-width: 48rem; }
:is(.tipo-cartoes, .tipo-mensagens, .tipo-agenda, .tipo-perguntas, .tipo-video, .tipo-cultos.var-cartoes) > .site-largura > .site-rotulo { display: table; margin-inline: auto; }
.site-rotulo + .site-titulo { margin-top: .6rem; }
.tipo-cultos > .site-largura > .site-cultos { margin-top: 2rem; }

/* 1. Faixa de atalhos, sobre o carrossel */
.site-secao.tipo-atalhos { background: transparent; padding-block: 0; position: relative; z-index: 2; }
.site-secao.tipo-atalhos.sobre-abertura { margin-top: -40px; }
.site-atalhos { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.site-atalhos.n-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .site-atalhos.n-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-atalhos.n-1 { grid-template-columns: minmax(0, 1fr); }
.site-atalho { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-height: 44px; background: var(--superficie); color: var(--tinta) !important; border: 1px solid var(--linha);
  border-radius: var(--raio-site); padding: 18px 20px; box-shadow: 0 20px 35px -10px rgb(10 17 40 / .18); text-decoration: none; font: inherit; text-align: left; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.site-atalho:hover, .site-atalho:focus-visible { transform: translateY(-3px); box-shadow: 0 24px 40px -12px color-mix(in srgb, var(--dourado-claro) 25%, transparent); }
@media (prefers-reduced-motion: reduce) { .site-atalho { transition: none; } .site-atalho:hover { transform: none; } }
.site-atalho-rotulo { display: inline-flex; align-items: center; gap: 6px; font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dourado); }
.site-atalho-titulo { font-size: 1.25rem; font-weight: 800; letter-spacing: -.01em; }
.site-atalho-sub { font-size: .8125rem; color: var(--tinta-2); }
.site-atalho.vivo .site-atalho-rotulo { color: var(--perigo); }
.site-atalho.escuro { background: var(--marinho); border-color: var(--marinho); color: #fff !important; }
.site-atalho.escuro .site-atalho-rotulo { color: var(--sobre-escuro); } .site-atalho.escuro .site-atalho-sub { color: var(--texto-sobre-escuro); }

/* Topo do site: sem "Ofertar" quando a faixa de atalhos já tem o cartão de ofertas. */
.menu-topo .menu-topo-item { flex: none; }

/* 2. Módulos em par: grade de 12 colunas, cada seção vira um cartão */
.site-par { padding-block: 4rem; background: var(--papel); }
.site-par-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.site .site-par-grade.site-largura { max-width: calc(var(--site-max) + 2 * var(--site-margem)); }
.site-secao.em-par { grid-column: span 12; padding: 28px; border: 1px solid var(--linha); border-radius: var(--raio-site); background: var(--superficie); min-width: 0; }
.site-secao.em-par.larg-larga { grid-column: span 7; } .site-secao.em-par.larg-estreita { grid-column: span 5; } .site-secao.em-par.larg-metade { grid-column: span 6; }
.site-secao.em-par.fundo-escuro { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.site-secao.em-par.fundo-marca { background: var(--dourado); border-color: var(--dourado); }
.site .site-secao.em-par > .site-largura { padding-inline: 0; max-width: none; }
.em-par .site-titulo { font-size: 1.5rem; margin-bottom: .5rem; }
.em-par .site-rotulo { display: none; }
.site-cab-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .75rem; }
.site-cab-linha .site-titulo { margin: 0; }
.site-mais { display: inline-flex; align-items: center; min-height: 24px; font: 700 .875rem var(--fonte-ui); color: var(--dourado) !important; text-decoration: none; background: none; border: 0; padding: 0; cursor: pointer; white-space: nowrap; }
.site-mais:hover { text-decoration: underline; }
.fundo-escuro .site-mais { color: var(--sobre-escuro) !important; }
.em-par .site-botoes { margin-top: 1rem; gap: .75rem; }
.em-par .site-botoes .botao { padding: .75rem 1.1rem; font-size: .9375rem; }
.em-par.tipo-ofertas > .site-largura { height: 100%; display: flex; align-items: center; }

/* Agenda compacta */
.evento-linhas { list-style: none; margin: 0; padding: 0; }
.evento-linha { display: flex; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--linha); }
.evento-linha .evento-data { width: 56px; }
.evento-linha .evento-dia { font-size: 1.4rem; }
.evento-linha-texto { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.evento-linha-titulo { font-weight: 700; color: var(--tinta) !important; text-decoration: none; }
.evento-linha-titulo:hover { text-decoration: underline; }
.evento-linha-quando { font-size: .8125rem; color: var(--tinta-2); }
.selo.vagas { color: var(--dourado); border: 1px solid var(--dourado-claro); background: transparent; }

/* Mensagens compactas */
.sitemsg-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.sitemsg-linha { display: flex; gap: 14px; align-items: center; color: var(--tinta) !important; text-decoration: none; min-height: 44px; }
.sitemsg-linha:hover .sitemsg-titulo { text-decoration: underline; }
.sitemsg-capa { width: 96px; height: 64px; flex: none; border-radius: 10px; object-fit: cover; background: #1f4d3a; color: #fff; display: grid; place-items: center; }
.sitemsg-capa svg { width: 22px; height: 22px; }
.sitemsg-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sitemsg-titulo { font-weight: 700; font-size: .95rem; }
.sitemsg-sub { font-size: .8125rem; color: var(--tinta-2); }

/* Cultos: o endereço como último cartão */
.site-cultos { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 24px; margin-block: 0; }
.site-culto.site-culto-endereco { background: var(--marinho); border-color: var(--marinho); color: #fff; justify-content: space-between; gap: .75rem; font-weight: 700; line-height: 1.35; }
.site-culto-endereco a { color: var(--sobre-escuro) !important; text-decoration: none; font-weight: 700; }
.site-culto-endereco a:hover { text-decoration: underline; }

/* "Estude a Bíblia" em duas colunas, na cor da marca */
.site-biblia-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: center; }
.site-biblia-grade .site-busca { margin-top: .5rem; }
.site-biblia-grade .site-verso-dia { margin: 0; max-width: none; background: rgb(0 0 0 / .18); border-radius: var(--raio-site); padding: 28px; }
.site-biblia-grade .site-verso-dia blockquote { border: 0; padding: 0; font-size: 1.375rem; }
/* No tema escuro o texto sobre a cor da marca é escuro: a caixa do versículo clareia em vez de escurecer (4.18). */
:root[data-tema="escuro"] .site-biblia-grade .site-verso-dia { background: rgb(255 255 255 / .2); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .site-biblia-grade .site-verso-dia { background: rgb(255 255 255 / .2); } }
.site-biblia-grade .site-verso-dia .site-rotulo { display: block; background: transparent; border: 0; color: inherit; padding: 0; letter-spacing: .08em; }
.site-biblia-grade .site-verso-dia .selo { background: rgb(255 255 255 / .16); border-color: transparent; color: inherit !important; }
.fundo-marca .site-verso-dia a, .fundo-marca .site-verso-dia .selo { color: var(--sobre-marca) !important; }
.fundo-marca .site-busca .botao.primario { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.site-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 1rem 0 0; }
.site-chips a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; border: 1px solid currentColor; color: inherit !important; font-size: .8125rem; font-weight: 700; text-decoration: none; }
.site-chips a:hover { background: rgb(255 255 255 / .12); }

/* Contato e ofertas em par */
.site-contato-linha { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 1.25rem 0 0; padding-top: .75rem; border-top: 1px solid var(--linha); font-size: .875rem; color: var(--tinta-2); }
.site-contato-linha a { color: var(--tinta-2) !important; }
.site-ofertas { display: flex; gap: 20px; align-items: center; }
.site-ofertas-qr { width: 112px; height: 112px; flex: none; border-radius: 12px; background: #fff; padding: 6px; border: 0; cursor: pointer; }
.site-ofertas-qr svg { width: 100%; height: 100%; display: block; }
.site-ofertas-texto { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.site-ofertas-texto .site-titulo { font-size: 1.375rem; margin: 0; }
.site-ofertas-texto p { margin: 0; font-size: .875rem; line-height: 1.5; }
.fundo-escuro .site-ofertas-texto p { color: var(--texto-sobre-escuro); }
.site-ofertas-texto .site-mais { align-self: flex-start; }

/* "Quem somos": texto e foto lado a lado */
.site-texto-grade.com-imagem .site-texto-img { border-radius: var(--raio-site); height: 300px; max-height: none; }

/* Rodapé em 4 colunas */
.site-secao.tipo-rodape { padding-block: 3rem 1.5rem; }
.site-rodape { display: block; }
.site-rodape-colunas { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); font-size: .875rem; line-height: 1.8; }
.site-rodape-colunas.completo { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.site-rodape-nome { font-size: 1.125rem; }
.fundo-escuro .site-rodape-nome { color: #fff; }
.site-rodape-titulo { font: 700 .75rem var(--fonte-ui); letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .4rem; }
.fundo-escuro .site-rodape-titulo { color: #e2e8f0; }
.site-rodape-lista { list-style: none; margin: 0; padding: 0; }
.site-rodape-fim { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid rgb(255 255 255 / .1); font-size: .75rem; }

@media (max-width: 860px) {
  .site-secao.tipo-atalhos.sobre-abertura { margin-top: -28px; }
  .site-atalhos, .site-atalhos.n-3, .site-atalhos.n-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .site-atalho { padding: 14px; border-radius: 14px; }
  .site-atalho-titulo { font-size: 1rem; }
  .site-atalho-sub { display: none; }
  .site-par { padding-block: 2.5rem; }
  .site-par-grade { gap: 12px; }
  .site-secao.em-par, .site-secao.em-par.larg-larga, .site-secao.em-par.larg-estreita, .site-secao.em-par.larg-metade { grid-column: span 12; padding: 20px; }
  .site-biblia-grade { grid-template-columns: minmax(0, 1fr); }
  .site-cultos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .site-rodape-colunas.completo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-texto-grade.com-imagem .site-texto-img { height: 190px; }
}
@media (max-width: 520px) {
  .site-rodape-colunas.completo { grid-template-columns: minmax(0, 1fr); }
  .site-ofertas-qr { width: 84px; height: 84px; }
}
@media (max-width: 560px) {
  .evento-linha { flex-wrap: wrap; row-gap: 6px; }
  .evento-linha-texto { flex-basis: calc(100% - 72px); }
  .evento-linha .selo { margin-left: 72px; }
  .tipo-cartoes .site-cartao { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 18px; }
  .tipo-cartoes .site-cartao > * { grid-column: 2; }
  .tipo-cartoes .site-cartao > .site-cartao-icone { grid-column: 1; grid-row: 1 / span 3; width: 46px; height: 46px; margin: 0; }
  .tipo-cartoes .site-cartao h2, .tipo-cartoes .site-cartao h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
}

/* ===================== Janela do modo site (4.17) ===================== */
.janela-app { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 24px; --janela-largura: 960px; --janela-raio: 20px; --janela-sombra: rgb(5 10 24 / .55); }
.janela-app[hidden] { display: none; }
.janela-app.tam-estreita { --janela-largura: 720px; } .janela-app.tam-grande { --janela-largura: 1200px; } .janela-app.tam-cheia { --janela-largura: 100%; padding: 12px; }
.janela-app.cantos-retos { --janela-raio: 4px; } .janela-app.cantos-suaves { --janela-raio: 12px; }
.janela-app.fundo-leve { --janela-sombra: rgb(5 10 24 / .3); } .janela-app.fundo-forte { --janela-sombra: rgb(5 10 24 / .78); }
.janela-fundo { position: absolute; inset: 0; background: var(--janela-sombra); }
.janela-app.desfoque .janela-fundo { -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.janela-caixa { position: relative; width: min(var(--janela-largura), 100%); height: min(92vh, 100%); max-height: calc(100dvh - 48px); display: flex; flex-direction: column;
  background: var(--papel); color: var(--tinta); border-radius: var(--janela-raio); overflow: hidden; box-shadow: 0 30px 80px -20px rgb(5 10 24 / .6); }
.janela-app.tam-cheia .janela-caixa { max-height: calc(100dvh - 24px); height: 100%; }
.janela-app.animada .janela-caixa { animation: janela-entra .22s ease-out; }
@keyframes janela-entra { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .janela-app.animada .janela-caixa { animation: none; } }
:root[data-movimento="reduzido"] .janela-app.animada .janela-caixa { animation: none; }
.janela-cabeca { flex: none; display: flex; align-items: center; gap: .5rem; min-height: 56px; padding: .4rem .5rem .4rem 1.25rem; background: var(--superficie); border-bottom: 1px solid var(--linha); }
.janela-app.cab-marca .janela-cabeca { background: var(--dourado); color: var(--sobre-marca, #fff); border-color: transparent; }
.janela-app.cab-escuro .janela-cabeca { background: var(--marinho); color: #fff; border-color: transparent; }
.janela-app:is(.cab-marca, .cab-escuro) .janela-fechar { color: inherit; }
.janela-titulo { flex: 1; margin: 0; font: 700 1.05rem var(--fonte-ui); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; outline: none; }
.janela-titulo:focus, .janela-titulo:focus-visible { outline: none; } /* recebe o foco só para o leitor de tela anunciar a janela; não é clicável */
.janela-acoes { display: flex; gap: .25rem; }
.janela-corpo { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 1.5rem clamp(1rem, 3vw, 2rem) 3rem; outline: none; }
body.com-janela { overflow: hidden; }
/* Dentro da janela, o que grudava no topo da página gruda no topo da janela. */
.janela-corpo .leitor-barra { top: -1.5rem; }
@media (max-width: 860px) { .janela-corpo .leitor-barra { top: -1rem; } }
.janela-corpo .ap-lateral { top: 0; }
/* O painel lateral (versículo, notas) e o diálogo do app ficam por cima da janela. */
body.com-janela .painel:not([hidden]) { position: fixed; top: 0; right: 0; bottom: 0; height: auto; width: min(420px, 100%); z-index: 90; box-shadow: -20px 0 50px rgb(5 10 24 / .35); }
body.com-janela .estrutura.com-painel { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 860px) {
  .janela-app { padding: 0; }
  .janela-caixa { width: 100%; height: 100%; max-height: none; border-radius: 0; }
  .janela-app.cel-folha { padding-top: 32px; align-items: end; }
  .janela-app.cel-folha .janela-caixa { height: 100%; border-radius: var(--janela-raio) var(--janela-raio) 0 0; }
  .janela-corpo { padding: 1rem 1rem calc(5rem + env(safe-area-inset-bottom)); }
  /* A barra de atalhos de baixo continua usável por cima da janela (trocar de tela sem fechar). */
  body.com-janela nav.inferior { z-index: 85; }
  /* 4.25.1: a janela termina onde começa a barra de baixo (52 px desde a 4.23; antes ficava uma faixa do site aparecendo). */
  .janela-app { bottom: calc(52px + env(safe-area-inset-bottom)); }
}

/* Botão "Ver o site" / "Sistema completo" (professor, líder e administrador) */
.alternar-modo { flex: none; min-height: 40px; padding: .35rem .8rem; gap: .4rem; font-weight: 600; font-size: .875rem; background: rgb(255 255 255 / .1); color: #fff; border-color: rgb(255 255 255 / .35); }
.alternar-modo svg { width: 1.05rem; height: 1.05rem; }
.alternar-modo:hover { background: rgb(255 255 255 / .18); }
body.modo-site .alternar-modo { background: var(--superficie); color: var(--tinta); border-color: var(--linha); }
body.modo-site .alternar-modo:hover { background: var(--superficie-2); }
@media (max-width: 860px) { .alternar-modo { padding: 0; width: 44px; min-height: 44px; justify-content: center; } .alternar-modo-texto { display: none; } }
/* Sino, "ao vivo" e alternar dentro do menu do topo (modo site, computador) */
.menu-topo > :is(#abrir-comunicados, #chip-aovivo, #alternar-modo) { align-self: center; flex: none; }
.menu-topo > #abrir-comunicados { color: var(--tinta); width: 44px; height: 44px; }
.janela-completo { gap: .35rem; }
.janela-completo svg { width: 1rem; height: 1rem; }
.janela-app:is(.cab-marca, .cab-escuro) .janela-completo { background: transparent; color: inherit; border-color: currentColor; }
@media (max-width: 560px) { .janela-completo span { display: none; } .janela-completo { width: 40px; padding: 0; justify-content: center; } }
/* Celular: com o sino (e o "ao vivo") no topo, o nome da igreja encolhe com reticências em vez de empurrar a busca. */
@media (max-width: 860px) {
  .topo .marca { min-width: 0; flex: 0 1 auto; overflow: hidden; }
  .topo .marca-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
  .topo > .botao-icone, .topo > .chip-aovivo, .topo > .alternar-modo { flex: none; }
}
.janela-app { --sobre-marca: #fff; }
:root[data-tema="escuro"] .janela-app { --sobre-marca: #050a18; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .janela-app { --sobre-marca: #050a18; } }
.janela-app:is(.cab-marca, .cab-escuro) .janela-titulo { color: inherit; }

/* 4.18: títulos de cartões e do rodapé com a fonte de títulos do modelo do site. */
.site :is(.site-cartao h2, .site-cartao h3, .site-atalho-titulo, .site-rodape-nome, .evento-titulo, .site-ofertas-texto .site-titulo) { font-family: var(--fonte-titulos-site); }
.em-par .site-botoes .botao { border-radius: var(--raio-botao); }

/* ===================== Modelos do site (4.18) ===================== */
/* Prévia de seção no painel: usa as cores do modelo em uso (o CSS do tema aplica as variáveis em .tema-site). */
.tema-site { background: var(--papel); color: var(--tinta); }
.modelos-lista { list-style: none; margin: 1rem 0 1.5rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.modelo-item { display: flex; flex-direction: column; gap: .75rem; padding: .75rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.modelo-item.em-uso { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado); }
.modelo-info h3 { margin: 0 0 .25rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: 1.05rem; }
.modelo-info p { margin: 0 0 .35rem; }
.modelo-para { font-weight: 600; font-size: .9rem; color: var(--tinta-2); }
.modelo-acoes { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; }
/* Miniatura decorativa: só formas, nas cores do modelo. */
.modelo-mini { --mm-raio: 9px; --mm-botao: 4px; aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; background: var(--mm-fundo); border: 1px solid rgb(10 17 40 / .12);
  display: grid; grid-template-rows: 14% 1fr auto; }
.modelo-mini-topo { background: var(--mm-superficie); display: flex; align-items: center; justify-content: space-between; padding: 0 8%; border-bottom: 1px solid rgb(10 17 40 / .08); }
.modelo-mini.topo-escuro .modelo-mini-topo { background: var(--mm-principal); border-bottom-color: transparent; }
.modelo-mini-logo { width: 18%; height: 34%; border-radius: 3px; background: var(--mm-principal); }
.modelo-mini.topo-escuro .modelo-mini-logo { background: #fff; }
.modelo-mini-links { width: 38%; height: 18%; border-radius: 3px; background: repeating-linear-gradient(90deg, var(--mm-texto) 0 18%, transparent 18% 26%); opacity: .55; }
.modelo-mini.topo-escuro .modelo-mini-links { background: repeating-linear-gradient(90deg, #fff 0 18%, transparent 18% 26%); }
.modelo-mini-abertura { margin: 5% 8% 0; background: var(--mm-principal); border-radius: var(--mm-raio); padding: 6% 7%; display: flex; flex-direction: column; justify-content: center; gap: 7%; }
.modelo-mini.larga .modelo-mini-abertura, .modelo-mini.larga .modelo-mini-cartoes { margin-inline: 4%; }
.modelo-mini-titulo { width: 62%; height: .55rem; border-radius: 2px; background: #fff; }
.modelo-mini.serifa .modelo-mini-titulo { height: .65rem; border-radius: 0; box-shadow: inset 0 -2px 0 rgb(0 0 0 / .18); }
.modelo-mini-linha { width: 44%; height: .3rem; border-radius: 2px; background: rgb(255 255 255 / .6); }
.modelo-mini-botao { width: 26%; height: .7rem; border-radius: var(--mm-botao); background: var(--mm-destaque); }
.modelo-mini-cartoes { margin: 5% 8%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 5%; }
.modelo-mini-cartoes span { height: 1.6rem; border-radius: var(--mm-raio); background: var(--mm-superficie); border: 1px solid rgb(10 17 40 / .1);
  background-image: linear-gradient(var(--mm-destaque), var(--mm-destaque)); background-size: 30% 3px; background-position: 14% 30%; background-repeat: no-repeat; }
.modelo-editor { border-top: 1px solid var(--linha); padding-top: 1rem; }
.modelo-editor h3:focus { outline: none; }
.modelo-editor-grade { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 18rem); align-items: start; }
@media (max-width: 760px) { .modelo-editor-grade { grid-template-columns: minmax(0, 1fr); } }
.modelo-cores { border: 0; padding: 0; margin: 0 0 .75rem; display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.modelo-cores legend { font-weight: 700; margin-bottom: .5rem; padding: 0; }
.campo-cor { flex: 0 1 8.5rem; }
.campo-cor input[type="color"] { width: 100%; height: 44px; padding: 2px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); cursor: pointer; }
.modelo-salvar-como { padding-top: 1rem; border-top: 1px dashed var(--linha); }
.modelo-salvar-linha { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.modelo-salvar-linha input { flex: 1 1 16rem; min-width: 0; }

/* ===================== Container do sistema completo e leitura (4.18.2) ===================== */
/* Em telas muito largas (monitores grandes, 4K, ultrawide) o app não estica até a borda: menu lateral + conteúdo
   ficam numa caixa de até 1440 px, centralizada, com fundo neutro fora. A barra do topo mantém a cor de ponta a
   ponta, mas a marca, a busca e os botões se alinham às bordas da caixa. Abaixo de 1440 px nada muda.
   (O modo site tem a sua própria caixa, de 1024 px; a projeção de slides usa a tela toda.) */
:root { --app-max: 90rem; --fora-app: #e3e8ef; }
:root[data-tema="escuro"] { --fora-app: #03060f; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) { --fora-app: #03060f; } }
@media (min-width: 1441px) {
  body:not(.modo-site):not(.apresentando) { background: var(--fora-app); }
  body:not(.modo-site):not(.apresentando) .topo { padding-inline: max(.75rem, calc((100% - var(--app-max)) / 2 + .75rem)); }
  body:not(.modo-site):not(.apresentando) .barra-contato ul { max-width: var(--app-max); }
  body:not(.modo-site):not(.apresentando) .estrutura { max-width: var(--app-max); margin-inline: auto; background: var(--papel);
    box-shadow: 0 0 0 1px var(--linha), 0 24px 48px -24px rgb(10 17 40 / .18); }
  /* Com o painel lateral do versículo aberto, a caixa cresce o tamanho do painel (o texto não aperta). */
  body:not(.modo-site):not(.apresentando) .estrutura.com-painel { max-width: calc(var(--app-max) + var(--largura-painel)); }
}
/* Leitura confortável: parágrafos e textos de ajuda com no máximo ~75–80 caracteres por linha (58ch: o "0" é mais largo que a letra média), mesmo em telas largas.
   Cartões, grades, tabelas e formulários continuam usando a largura toda (só o texto corrido é limitado). */
:is(main, .janela-corpo) :is(p, dd, figcaption, .contexto):not(.linha-botoes):not(.site *):not(.sl-slide *) { max-width: 58ch; }
/* O foco programático no conteúdo (ao trocar de tela, para leitores de tela) não desenha contorno em volta da página inteira. */
main:focus, main:focus-visible { outline: none; }

/* 4.18.3: espaço do QR Code enquanto o gerador carrega (mesmo tamanho, sem salto na página). */
.pix-qr-espera { display: block; aspect-ratio: 1; background: #fff; }

/* ---- Tesouraria (4.19) ---- */
.tesouraria { --tes-entrada: #1e6b3a; --tes-saida: #b3261e; --tes-aviso: #8a5a00; }
:root[data-tema="escuro"] .tesouraria { --tes-entrada: #7dd39a; --tes-saida: #ff8a80; --tes-aviso: #f2c46d; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .tesouraria { --tes-entrada: #7dd39a; --tes-saida: #ff8a80; --tes-aviso: #f2c46d; } }
.tes-cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.tes-cabeca h1 { margin-right: auto; }
.tes-abas { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
@media (min-width: 900px) { .tes-abas { flex-wrap: wrap; overflow-x: visible; } }
.tes-abas a { white-space: nowrap; gap: .4rem; padding: .6rem .75rem; }
.tes-area > * + * { margin-top: 1rem; }
.tes-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.tes-numero-rotulo { margin: 0; color: var(--tinta-2); font-size: .9rem; }
.tes-numero-valor { margin: .25rem 0 0; font-size: 1.6rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.tes-numero.entrada .tes-numero-valor, .tes-valor.entrada { color: var(--tes-entrada); }
.tes-numero.saida .tes-numero-valor, .tes-valor.saida { color: var(--tes-saida); }
.tes-valor { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
.tes-grade-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; align-items: start; }
.tes-lista-simples { list-style: none; padding: 0; margin: 0; }
.tes-lista-simples li { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--linha); flex-wrap: wrap; }
.tes-lista-simples li:last-child { border-bottom: 0; }
.tes-acoes { display: inline-flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.selo.tes-pago { color: var(--tes-entrada); border-color: currentColor; }
.selo.tes-previsto { color: var(--tinta-2); }
.selo.tes-atrasado, .selo.tes-orc-estourado { color: var(--tes-saida); border-color: currentColor; }
.selo.tes-estornado { text-decoration: line-through; }
.selo.tes-orc-alerta, .selo.tes-orc-acima_do_ritmo { color: var(--tes-aviso); border-color: currentColor; }
.selo.tes-orc-ok { color: var(--tes-entrada); border-color: currentColor; }
.tes-figura { margin: 0; }
.tes-grafico { width: 100%; height: auto; max-height: 260px; display: block; }
.tes-barra-entrada { fill: var(--tes-entrada); }
.tes-barra-saida { fill: var(--tes-saida); }
.tes-grafico-mes { fill: var(--tinta-2); font: 12px var(--fonte-ui); }
.tes-legenda { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; color: var(--tinta-2); font-size: .9rem; margin-top: .5rem; }
.tes-leg { display: inline-block; width: .9rem; height: .9rem; border-radius: 3px; }
.tes-leg.entrada { background: var(--tes-entrada); }
.tes-leg.saida { background: var(--tes-saida); margin-left: .6rem; }
.tes-lista-orc { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.tes-lista-orc li { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr auto; gap: .75rem; align-items: center; }
@media (max-width: 600px) { .tes-lista-orc li { grid-template-columns: 1fr auto; } .tes-lista-orc .tes-barra-orc { grid-column: 1 / -1; grid-row: 2; } }
.tes-orc-num { font-variant-numeric: tabular-nums; font-size: .9rem; color: var(--tinta-2); }
.tes-barra-orc { height: .7rem; border-radius: 999px; background: var(--superficie-2); border: 1px solid var(--linha); overflow: hidden; min-width: 6rem; }
.tes-barra-orc-cheia { display: block; height: 100%; background: var(--tes-entrada); }
.tes-barra-orc.alerta .tes-barra-orc-cheia, .tes-barra-orc.acima_do_ritmo .tes-barra-orc-cheia { background: var(--tes-aviso); }
.tes-barra-orc.estourado .tes-barra-orc-cheia { background: var(--tes-saida); }
.tes-tabela-rolagem { overflow-x: auto; }
.tes-tabela { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tes-tabela th, .tes-tabela td { padding: .5rem .6rem; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: middle; }
.tes-tabela thead th { font-size: .82rem; color: var(--tinta-2); font-weight: 600; white-space: nowrap; }
.tes-tabela .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tes-tabela tr.estornado td { color: var(--tinta-2); }
.tes-tabela tr.estornado .tes-valor { text-decoration: line-through; color: var(--tinta-2); }
.tes-tabela tfoot th, .tes-tabela tfoot td, .tes-total th, .tes-total td { font-weight: 700; }
.tes-demo .tes-secao th { padding-top: 1rem; font-size: 1rem; color: var(--tinta); }
.tes-demo .tes-grupo th, .tes-demo .tes-grupo td { font-weight: 600; }
.tes-demo .tes-recuo { padding-left: 1.6rem; }
.tes-demo .tes-resultado th, .tes-demo .tes-resultado td { font-weight: 700; font-size: 1.05rem; border-top: 2px solid var(--tinta); }
.tes-tabela input, .tes-tabela select { min-height: 40px; max-width: 100%; }
.tes-cad input[type="text"]:not(.curto) { min-width: 9rem; }
.tes-totais { font-variant-numeric: tabular-nums; }
.tes-filtros .campo { flex: 1 1 10rem; }
.tesouraria form.linha-campos > .campo { flex: 0 1 16rem; }
.tesouraria .tes-area .linha-campos > .campo { flex: 0 1 16rem; }
.tesouraria .tes-filtros .linha-campos > .campo, .tesouraria .tes-form .linha-campos > .campo { flex: 1 1 10rem; }
.tesouraria input[type="month"] { color: var(--tinta); }
.tes-form .linha-campos > .campo { flex: 1 1 12rem; }
.tes-form [hidden] { display: none !important; }
.tes-dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; margin: .5rem 0; }
.tes-dl dt { color: var(--tinta-2); }
.tes-dl dd { margin: 0; font-variant-numeric: tabular-nums; }
.tes-anexos { padding-left: 1.2rem; }
.tes-historico { font-size: .9rem; padding-left: 1.2rem; }
.tes-clipe { margin-left: .3rem; color: var(--tinta-2); }
.tes-cedulas { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .5rem .75rem; }
.tes-ced { display: grid; grid-template-columns: 6.5rem 1fr; grid-template-rows: auto auto; align-items: center; column-gap: .5rem; }
.tes-ced label { margin: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tes-ced input { width: 100%; }
.tes-ced-sub { grid-column: 2; font-size: .82rem; color: var(--tinta-2); min-height: 1.1em; font-variant-numeric: tabular-nums; }
.tes-conferencia h2 { margin-top: 0; }
.aviso.sucesso { border-color: var(--sucesso); }
.tes-pessoas { list-style: none; padding: 0; display: grid; gap: .6rem; }
.tes-pessoas li { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.tes-pessoas p { margin: .2rem 0 0; }
.tes-funcoes { padding-left: 1.2rem; }
.tes-aud-det { font-size: .85rem; color: var(--tinta-2); max-width: 40ch; overflow-wrap: anywhere; }
.tes-estorno { margin-top: 1rem; }
.tes-pix { margin-top: .5rem; }
@media print { .tes-abas, .tes-cabeca .botao, .tes-filtros { display: none !important; } }

/* ---- PIX pelo site com confirmação automática (4.19.1) ---- */
.pix-online-titulo { font-size: 1.15rem; margin: 0 0 .25rem; }
.pix-online-form .campo { max-width: 26rem; }
.pix-online-form .campo input { width: 100%; }
.pix-online-estado { font-weight: 600; margin: .25rem 0 0; }
.pix-online-fim { text-align: center; padding: 1rem 0; }
.pix-online-fim.sucesso h3 { color: var(--sucesso); display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 .25rem; }
.pix-alternativa { margin-top: 1.25rem; border-top: 1px solid var(--linha); padding-top: .75rem; }
.pix-alternativa > summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.tes-online-url { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; overflow-wrap: anywhere; background: var(--superficie-2); padding: .4rem .6rem; border-radius: 6px; }
.tes-online-cats { border: 0; padding: 0; margin: .5rem 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.tes-online-cats legend { font-weight: 600; margin-bottom: .3rem; padding: 0; }
.selo.tes-pix-pendente, .selo.tes-pix-criando { color: var(--tes-aviso); border-color: currentColor; }
.selo.tes-pix-pago { color: var(--tes-entrada); border-color: currentColor; }
.selo.tes-pix-devolvido, .selo.tes-pix-erro { color: var(--tes-saida); border-color: currentColor; }

/* ---- Aniversariantes (4.20) ---- */
.aniv-pagina h1 svg { width: 1.1em; height: 1.1em; vertical-align: -.12em; color: var(--dourado); }
.aniv-meses { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: .5rem 0 1rem; }
.aniv-mes-atual { margin: 0; text-transform: capitalize; font-size: 1.3rem; }
.aniv-meses .botao span { text-transform: capitalize; }
.aniv-cartoes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: .75rem; }
.aniv-cartao { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem; padding: 1rem .75rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); }
.aniv-dia { font: 700 2rem/1 var(--fonte-ui); color: var(--dourado); font-variant-numeric: tabular-nums; }
.aniv-nome { font-weight: 600; overflow-wrap: anywhere; }
.aniv-cartao.hoje { border-color: var(--dourado); box-shadow: 0 0 0 2px var(--dourado), var(--sombra-verde); }
.selo.aniv-hoje { color: var(--dourado); border-color: currentColor; background: transparent; }
.selo.aniv-hoje svg { width: 1em; height: 1em; }
.aniv-linhas { list-style: none; padding: 0; margin: 0; }
.aniv-linhas li { display: flex; align-items: center; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--linha); flex-wrap: wrap; }
.aniv-linhas li:last-child { border-bottom: 0; }
.aniv-linhas .aniv-data { font-weight: 700; color: var(--dourado); font-variant-numeric: tabular-nums; min-width: 3.2rem; }
.aniv-linhas li.hoje .aniv-nome { font-weight: 700; }
.aniv-linhas.compacta li { padding: .35rem 0; }
.aniv-previas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1rem; margin-bottom: 1rem; }
.aniv-previa h4 { margin: 0 0 .5rem; }
.aniv-previa .pre { white-space: pre-line; }
tr.aniv-oculto td { color: var(--tinta-2); }
.aniv-acoes { display: flex; gap: .4rem; flex-wrap: wrap; }
.site .aniv-cartao { background: var(--site-cartao, var(--superficie)); }

/* ---- Apresentação em outra janela (4.20) ---- */
.ap-proj { align-items: center; }
.ap-proj-estado:empty { display: none; }
.ap-proj-estado { margin: 0; font-weight: 600; color: var(--dourado); }
.proj-dica { position: absolute; left: 50%; top: 1.5rem; transform: translateX(-50%); max-width: min(40rem, 90vw); padding: .8rem 1.1rem; border-radius: 12px;
  background: rgb(0 0 0 / .8); color: #fff; font: 500 1rem/1.4 var(--fonte-ui); text-align: center; z-index: 5; pointer-events: none; }

/* ================================================================ 4.21: galeria, lightbox, carrosséis, aberturas, divisórias */

/* Lightbox */
html.lb-aberto { overflow: hidden; }
.lightbox { border: 0; padding: 0; margin: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; background: rgb(6 10 20 / .96); color: #fff;
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.lightbox:not([open]) { display: none; }
.lightbox::backdrop { background: rgb(6 10 20 / .9); }
.lb-topo { display: flex; align-items: center; gap: 1rem; padding: .5rem .75rem .5rem 1.25rem; }
.lb-contador { margin: 0; font-variant-numeric: tabular-nums; font-size: .9rem; color: #cbd5e1; }
.lb-album { margin: 0; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-fechar, .lb-nav { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid rgb(255 255 255 / .25); background: rgb(255 255 255 / .08); color: #fff;
  display: grid; place-items: center; cursor: pointer; flex: none; }
.lb-fechar { margin-left: auto; }
.lb-fechar:hover, .lb-nav:hover { background: rgb(255 255 255 / .18); }
.lb-fechar:focus-visible, .lb-nav:focus-visible, .lb-mini:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.lb-fechar svg, .lb-nav svg { width: 1.3rem; height: 1.3rem; }
.lb-meio { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: 0 .75rem; min-height: 0; }
.lb-palco { margin: 0; height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; touch-action: pan-y; }
.lb-foto { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; align-self: center; border-radius: 4px; opacity: 0; transform: scale(.985); transition: opacity .25s ease, transform .25s ease; user-select: none; -webkit-user-drag: none; }
.lb-foto.lb-entrou { opacity: 1; transform: none; }
.lb-legenda { padding: .6rem 1rem 0; text-align: center; max-width: 48rem; color: #e2e8f0; font-size: .95rem; display: flex; flex-direction: column; gap: .15rem; }
.lb-legenda-album { font-size: .8rem; color: #94a3b8; }
.lb-tira { display: flex; gap: .4rem; overflow-x: auto; padding: .75rem; justify-content: safe center; scrollbar-width: thin; }
.lb-mini { flex: none; width: 4rem; height: 3rem; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: #111827; cursor: pointer; opacity: .55; }
.lb-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lb-mini[aria-current="true"] { opacity: 1; border-color: #fff; }
@media (max-width: 640px) {
  .lb-meio { grid-template-columns: minmax(0, 1fr); padding: 0; }
  .lb-nav { position: absolute; bottom: 5.25rem; z-index: 1; }
  .lb-anterior { left: .75rem; } .lb-proxima { right: .75rem; }
  .lb-mini { width: 3.25rem; height: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) { .lb-foto { transition: none; } }

/* Grades de fotos */
.gal-fotos { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.gal-foto { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: var(--superficie-2); border-radius: calc(var(--raio-site, 12px) * .6); overflow: hidden; cursor: zoom-in; }
.gal-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.gal-foto:hover img { transform: scale(1.04); }
.gal-foto:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; }
.gal-mosaico { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); grid-auto-rows: 11rem; grid-auto-flow: dense; }
.gal-mosaico li.alta { grid-row: span 2; } .gal-mosaico li.larga { grid-column: span 2; }
.gal-mosaico li:first-child { grid-column: span 2; grid-row: span 2; }
.gal-grade { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.gal-grade li { aspect-ratio: 1; }
.gal-faixa { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; scrollbar-width: thin; }
.gal-faixa li { flex: 0 0 min(78%, 20rem); aspect-ratio: 4 / 3; scroll-snap-align: start; }
@media (max-width: 520px) { .gal-mosaico { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 8.5rem; } .gal-mosaico li.larga { grid-column: span 2; } }
@media (prefers-reduced-motion: reduce) { .gal-foto img { transition: none; } .gal-foto:hover img { transform: none; } }
.gal-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.gal-chip { min-height: 2.25rem; padding: .3rem .9rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); font: inherit; font-size: .875rem; cursor: pointer; }
.gal-chip[aria-pressed="true"] { background: var(--dourado); border-color: var(--dourado); color: var(--sobre-marca, #fff); font-weight: 600; }
.gal-chip:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.fundo-escuro .gal-chip:not([aria-pressed="true"]) { background: rgb(255 255 255 / .06); color: #fff; border-color: rgb(255 255 255 / .25); }

/* Página e administração da galeria */
.gal-pagina h1 { display: flex; align-items: center; gap: .5rem; }
.gal-sub { margin-top: -.5rem; } .gal-descricao { max-width: 46rem; }
.gal-albuns { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.gal-album { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--tinta) !important; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.gal-album img, .gal-album-vazio { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: grid; place-items: center; background: var(--superficie-2); color: var(--tinta-2); }
.gal-album-vazio svg { width: 2.5rem; height: 2.5rem; }
.gal-album-texto { padding: .75rem 1rem 1rem; display: flex; flex-direction: column; gap: .2rem; }
.gal-album-titulo { font-weight: 700; } .gal-album-sub { font-size: .85rem; color: var(--tinta-2); }
.gal-album:hover { border-color: var(--dourado); } .gal-album:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.gal-admin-fotos { list-style: none; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); }
.gal-admin-foto { position: relative; display: flex; flex-direction: column; gap: .5rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem; }
.gal-admin-foto .gal-foto { aspect-ratio: 4 / 3; }
.gal-admin-foto input { width: 100%; }
.gal-admin-acoes { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.gal-capa { position: absolute; top: .9rem; left: .9rem; }

/* Carrosséis (6 modelos) */
.site-carrossel-cab { margin-bottom: 1.5rem; }
.car { position: relative; --alt: 26rem; }
.car.alt-baixa { --alt: 18rem; } .car.alt-alta { --alt: 34rem; } .car.alt-tela { --alt: min(86svh, 52rem); }
@media (max-width: 640px) { .car { --alt: 20rem; } .car.alt-baixa { --alt: 14rem; } .car.alt-alta { --alt: 26rem; } .car.alt-tela { --alt: 78svh; } }
.car-janela { position: relative; overflow: hidden; border-radius: var(--raio-site, var(--raio)); touch-action: pan-y; container-type: inline-size; }
.car-pilha { display: grid; }
.car-slide { position: relative; min-width: 0; }
.car-pilha > .car-slide { grid-area: 1 / 1; visibility: hidden; transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1), visibility .7s; }
.car-pilha > .car-slide.ativo { visibility: visible; }
.car.unico .car-slide { visibility: visible; }
.trans-esmaecer .car-pilha > .car-slide { opacity: 0; } .trans-esmaecer .car-pilha > .car-slide.ativo { opacity: 1; }
.trans-deslizar .car-pilha > .car-slide[data-pos="antes"] { transform: translateX(-100%); }
.trans-deslizar .car-pilha > .car-slide[data-pos="depois"] { transform: translateX(100%); }
.trans-aproximar .car-pilha > .car-slide { opacity: 0; transform: scale(1.06); } .trans-aproximar .car-pilha > .car-slide.ativo { opacity: 1; transform: none; }
.car-midia { position: relative; height: 100%; }
.car-img { width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 50% 50%); display: block; }
.car-midia > picture { display: contents; }
.car-rotulo { margin: 0 0 .35rem; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.car-titulo { margin: 0 0 .4rem; font-family: var(--fonte-titulos-site); font-weight: 700; font-size: clamp(1.25rem, 3.2vw, 2.1rem); line-height: 1.15; }
.car-sub { margin: 0 0 .9rem; max-width: 40rem; }
.car-texto > :last-child { margin-bottom: 0; }
.car-ampliar svg { width: 1rem; height: 1rem; }
/* controles */
.car-controles { display: flex; align-items: center; justify-content: center; gap: .4rem; margin-top: .75rem; flex-wrap: wrap; }
.car-controles .botao-icone { border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta); }
.fundo-escuro .car-controles .botao-icone, .fundo-marca .car-controles .botao-icone { background: transparent; color: inherit; border-color: currentColor; }
.car-marcas { display: flex; gap: .25rem; align-items: center; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.car-marca { flex: none; border: 0; background: none; padding: 0; cursor: pointer; color: inherit; display: grid; place-items: center; min-width: 1.75rem; min-height: 1.75rem; }
.car-marca:focus-visible, .car-controles .botao-icone:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.car-marca-pontos::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; border: 2px solid currentColor; opacity: .6; box-sizing: border-box; transition: width .3s; }
.car-marca-pontos[aria-current="true"]::before { width: 1.6rem; border-radius: 999px; background: var(--dourado); border-color: var(--dourado); opacity: 1; }
.car-marca-numeros { font-variant-numeric: tabular-nums; font-weight: 700; font-size: .85rem; color: var(--tinta-2); padding: 0 .3rem; border-radius: 6px; }
.fundo-escuro .car-marca-numeros, .car-tela_cheia .car-marca-numeros { color: #cbd5e1; }
.car-marca-numeros[aria-current="true"] { opacity: 1; color: var(--dourado); }
.car-contador { font-variant-numeric: tabular-nums; font-size: .85rem; color: var(--tinta-2); padding: 0 .4rem; }
.fundo-escuro .car-contador { color: #cbd5e1; }
.car-marca-barras { width: 2.75rem; }
.car-marca-barras .car-barra-cheia { display: block; width: 100%; height: 4px; border-radius: 4px; background: color-mix(in srgb, currentColor 25%, transparent); position: relative; overflow: hidden; }
.car-marca-barras .car-barra-cheia::after { content: ""; position: absolute; inset: 0; background: var(--dourado); transform: scaleX(0); transform-origin: left; }
.car-marca-barras[aria-current="true"] .car-barra-cheia::after { animation: car-barra var(--tempo, 6s) linear forwards; }
.car.pausado .car-marca-barras[aria-current="true"] .car-barra-cheia::after, .car.parado .car-marca-barras[aria-current="true"] .car-barra-cheia::after { animation: none; transform: scaleX(1); }
@keyframes car-barra { to { transform: scaleX(1); } }
.car-marca-miniaturas { width: 4.5rem; height: 3rem; border-radius: 6px; overflow: hidden; border: 2px solid transparent; opacity: .6; }
.car-marca-miniaturas img { width: 100%; height: 100%; object-fit: cover; display: block; }
.car-marca-miniaturas[aria-current="true"] { opacity: 1; border-color: var(--dourado); }
/* 1. tela cheia: foto de ponta a ponta, texto por cima */
.tipo-carrossel.var-tela_cheia { padding-block-start: 0; }
.tipo-carrossel.var-tela_cheia > .site-largura { max-width: none; padding-inline: 0; }
.tipo-carrossel.var-tela_cheia .site-carrossel-cab { max-width: calc(var(--site-max) + 2 * var(--site-margem)); margin: 0 auto 1.5rem; padding: 3rem var(--site-margem) 0; }
.car-tela_cheia .car-janela { border-radius: 0; }
.car-tela_cheia .car-slide { height: var(--alt); display: flex; align-items: flex-end; background: var(--marinho); color: #fff; }
.car-tela_cheia .car-midia { position: absolute; inset: 0; }
.car-tela_cheia .car-slide:not(.sem-imagem):not(.so-imagem)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 0) 30%, rgb(0 0 0 / .75)); }
.car-tela_cheia .car-texto { position: relative; z-index: 1; width: 100%; max-width: calc(var(--site-max) + 2 * var(--site-margem)); margin: 0 auto; padding: 2rem var(--site-margem) 2.5rem; }
.car-tela_cheia .car-titulo, .car-tela_cheia .car-sub { color: #fff; text-shadow: 0 1px 8px rgb(0 0 0 / .45); }
.car-tela_cheia .car-rotulo { color: var(--dourado-claro); }
.car-tela_cheia .car-controles { position: absolute; right: var(--site-margem); bottom: .75rem; margin: 0; z-index: 2; color: #fff; background: rgb(0 0 0 / .35); border-radius: 999px; padding: .2rem .4rem; }
.car-tela_cheia .car-controles .botao-icone { background: transparent; color: #fff; border-color: rgb(255 255 255 / .4); }
.car-tela_cheia .car-contador { color: #fff; }
@media (max-width: 640px) { .car-tela_cheia .car-controles { position: static; justify-content: center; border-radius: 0; background: var(--marinho); } .car-tela_cheia .car-texto { padding-bottom: 1.5rem; } }
/* 2. vitrine: slide do meio em destaque, vizinhos aparecendo */
.car-trilho { display: flex; gap: 1rem; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.car-vitrine .car-janela { overflow: hidden; border-radius: 0; }
.car-vitrine .car-trilho { --w: 72cqw; transform: translateX(calc((100cqw - var(--w)) / 2 - var(--i, 0) * (var(--w) + 1rem))); }
.car-vitrine .car-slide { flex: 0 0 var(--w); height: var(--alt); border-radius: var(--raio-site, var(--raio)); overflow: hidden; background: var(--marinho); color: #fff; display: flex; align-items: flex-end;
  transform: scale(.9); opacity: .55; transition: transform .6s ease, opacity .6s ease; cursor: pointer; }
.car-vitrine .car-slide.ativo { transform: none; opacity: 1; cursor: auto; }
.car-vitrine .car-midia { position: absolute; inset: 0; }
.car-vitrine .car-slide:not(.sem-imagem):not(.so-imagem)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 0) 40%, rgb(0 0 0 / .72)); }
.car-vitrine .car-texto { position: relative; z-index: 1; padding: 1.5rem 1.75rem; }
.car-vitrine .car-titulo, .car-vitrine .car-sub { color: #fff; } .car-vitrine .car-rotulo { color: var(--dourado-claro); }
@media (max-width: 640px) { .car-vitrine .car-trilho { --w: 84cqw; gap: .6rem; transform: translateX(calc((100cqw - var(--w)) / 2 - var(--i, 0) * (var(--w) + .6rem))); } }
/* 3. dividido: painel de texto e foto */
.car-dividido .car-slide { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: var(--alt); background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio-site, var(--raio)); overflow: hidden; }
.car-dividido .car-texto { order: -1; align-self: center; padding: clamp(1.5rem, 4vw, 3rem); }
.car-dividido .car-rotulo { color: var(--dourado); }
.car-dividido .car-titulo { color: var(--titulo-site, var(--tinta)); }
.car-dividido .car-slide.sem-imagem { grid-template-columns: 1fr; }
.car-dividido .car-janela { border-radius: var(--raio-site, var(--raio)); }
@media (max-width: 760px) { .car-dividido .car-slide { grid-template-columns: 1fr; grid-template-rows: 14rem auto; min-height: 0; } .car-dividido .car-texto { order: 1; } }
/* 4. miniaturas */
.car-miniaturas .car-slide { height: var(--alt); background: var(--marinho); color: #fff; display: flex; align-items: flex-end; }
.car-miniaturas .car-midia { position: absolute; inset: 0; }
.car-miniaturas .car-slide:not(.sem-imagem):not(.so-imagem)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 0) 50%, rgb(0 0 0 / .7)); }
.car-miniaturas .car-texto { position: relative; z-index: 1; padding: 1.25rem 1.5rem; }
.car-miniaturas .car-titulo, .car-miniaturas .car-sub { color: #fff; } .car-miniaturas .car-rotulo { color: var(--dourado-claro); }
.car-miniaturas .car-controles { justify-content: flex-start; }
.car-miniaturas .car-marcas { flex: 1; }
/* 5. cartões: vários por vez */
.car-cartoes .car-janela { --por: 1; overflow: hidden; border-radius: 0; padding: .25rem; margin: -.25rem; }
@media (min-width: 640px) { .car-cartoes .car-janela { --por: 2; } }
@media (min-width: 960px) { .car-cartoes .car-janela { --por: 3; } }
.car-cartoes .car-trilho { --w: calc((100cqw - (var(--por) - 1) * 1rem) / var(--por)); transform: translateX(calc(-1 * var(--i, 0) * (var(--w) + 1rem))); }
.car-cartoes .car-slide { flex: 0 0 var(--w); display: flex; flex-direction: column; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio-site, var(--raio)); overflow: hidden; box-shadow: var(--sombra); }
.car-cartoes .car-midia { height: auto; aspect-ratio: 4 / 3; }
.car-cartoes .car-texto { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.car-cartoes .car-titulo { font-size: 1.15rem; } .car-cartoes .car-rotulo { color: var(--dourado); } .car-cartoes .car-sub { font-size: .925rem; color: var(--tinta-2); }
.car-cartoes .car-texto .botao { margin-top: auto; }
.car-cartoes .car-slide.so-imagem .car-midia { aspect-ratio: 3 / 4; }
/* 6. faixa de avisos */
.car-faixa .car-janela { border: 1px solid var(--linha); background: var(--superficie); }
.car-faixa .car-slide { display: grid; grid-template-columns: 7rem minmax(0, 1fr); align-items: center; gap: 1rem; min-height: 6rem; padding-right: 1rem; color: var(--tinta); }
.car-faixa .car-slide.sem-imagem { grid-template-columns: minmax(0, 1fr); padding-left: 1.25rem; }
.car-faixa .car-midia { height: 6rem; }
.car-faixa .car-texto { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1rem; row-gap: .2rem; padding-block: .75rem; }
.car-faixa .car-titulo { font-size: 1.05rem; margin: 0; flex: 1 1 14rem; }
.car-faixa .car-rotulo { flex-basis: 100%; margin: 0; color: var(--dourado); }
.car-faixa .car-sub { margin: 0; font-size: .9rem; color: var(--tinta-2); flex-basis: 100%; order: 3; }
.car-faixa .car-controles { margin-top: .5rem; }
.fundo-escuro .car-faixa .car-janela, .fundo-escuro .car-dividido .car-slide, .fundo-escuro .car-cartoes .car-slide { color: var(--tinta); }
@media (prefers-reduced-motion: reduce) { .car-trilho, .car-pilha > .car-slide, .car-vitrine .car-slide { transition: none !important; } .car-marca-barras .car-barra-cheia::after { animation: none !important; } }

/* Abertura dividida: texto e até 4 fotos */
.site-abertura-dividida { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.abd-texto .site-botoes { margin-top: 1.5rem; }
.abd-numeros { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; gap: 2rem; flex-wrap: wrap; }
.abd-numero { display: flex; flex-direction: column; }
.abd-numero-valor { font-family: var(--fonte-titulos-site); font-size: 2.25rem; font-weight: 800; line-height: 1; color: var(--dourado); }
.fundo-escuro .abd-numero-valor { color: var(--dourado-claro); }
.abd-numero-texto { font-size: .875rem; color: var(--tinta-2); margin-top: .3rem; }
.fundo-escuro .abd-numero-texto { color: #cbd5e1; }
.abd-midia { margin: 0; position: relative; }
.abd-fotos { display: grid; gap: .75rem; }
.abd-foto { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--raio-site, var(--raio)); min-height: 0; }
.abd-legenda { margin-top: .6rem; font-size: .85rem; color: var(--tinta-2); }
.fundo-escuro .abd-legenda { color: #cbd5e1; }
.arr-mosaico .abd-fotos { grid-template-columns: 1.3fr 1fr; grid-template-rows: 12rem 12rem; }
.arr-mosaico .f1 { grid-row: 1 / span 2; }
.arr-mosaico.n-fotos-1 .abd-fotos { grid-template-columns: 1fr; grid-template-rows: 24rem; }
.arr-mosaico.n-fotos-4 .abd-fotos { grid-template-rows: 8rem 8rem 8rem; } .arr-mosaico.n-fotos-4 .f1 { grid-row: 1 / span 3; }
.arr-arco .abd-fotos { grid-template-columns: 1fr; position: relative; padding: 0 2.5rem 2.5rem 0; }
.arr-arco .f1 { aspect-ratio: 4 / 5; max-height: 30rem; border-radius: 999px 999px var(--raio-site, 16px) var(--raio-site, 16px); }
.arr-arco .f2 { position: absolute; right: 0; bottom: 0; width: 42%; aspect-ratio: 1; border-radius: 50%; border: 6px solid var(--papel); box-shadow: var(--sombra); }
.fundo-escuro.tipo-abertura .arr-arco .f2 { border-color: var(--marinho); }
.arr-arco .f3, .arr-arco .f4 { display: none; }
.arr-inclinadas .abd-fotos { grid-template-columns: 1fr; place-items: center; min-height: 24rem; }
.arr-inclinadas .abd-foto { grid-area: 1 / 1; width: 72%; aspect-ratio: 4 / 3; border: 8px solid #fff; border-radius: 6px; box-shadow: 0 18px 40px rgb(15 23 42 / .25); }
.arr-inclinadas .f1 { transform: rotate(-4deg) translate(-8%, -6%); z-index: 3; }
.arr-inclinadas .f2 { transform: rotate(5deg) translate(12%, 10%); z-index: 2; }
.arr-inclinadas .f3 { transform: rotate(-9deg) translate(16%, -18%); z-index: 1; }
.arr-inclinadas .f4 { display: none; }
.arr-numeros .abd-fotos { grid-template-columns: 1fr; }
.arr-numeros .f1 { aspect-ratio: 4 / 3; max-height: 30rem; } .arr-numeros :is(.f2, .f3, .f4) { display: none; }
.arr-numeros .abd-numeros { position: absolute; left: -1.5rem; bottom: 1.5rem; margin: 0; flex-direction: column; gap: .75rem; }
.arr-numeros .abd-numero { background: var(--superficie); color: var(--tinta); padding: .9rem 1.2rem; border-radius: var(--raio-site, var(--raio)); box-shadow: 0 14px 30px rgb(15 23 42 / .2); min-width: 10rem; }
.arr-numeros .abd-numero-valor { font-size: 1.8rem; color: var(--dourado); } .arr-numeros .abd-numero-texto { color: var(--tinta-2); }
.arr-revista .abd-fotos { grid-template-columns: repeat(3, 1fr); grid-template-rows: 18rem 8rem; }
.arr-revista .f1 { grid-column: 1 / -1; border-radius: var(--raio-site, var(--raio)) var(--raio-site, var(--raio)) 0 0; }
.arr-revista.n-fotos-1 .abd-fotos { grid-template-rows: 26rem; }
.arr-revista .abd-legenda { margin: 0; padding: .7rem 1rem; background: var(--marinho); color: #fff; font-family: var(--fonte-leitura); font-style: italic; border-radius: 0 0 var(--raio-site, var(--raio)) var(--raio-site, var(--raio)); }
.arr-grade .abd-fotos { grid-template-columns: 1fr 1fr; grid-auto-rows: 12rem; }
.arr-grade.n-fotos-1 .abd-fotos, .arr-grade.n-fotos-1 .f1 { grid-template-columns: 1fr; grid-column: 1 / -1; }
.arr-grade.n-fotos-3 .f1 { grid-column: 1 / -1; }
@media (max-width: 860px) {
  .site-abertura-dividida { grid-template-columns: 1fr; }
  .arr-mosaico .abd-fotos { grid-template-rows: 9rem 9rem; } .arr-mosaico.n-fotos-4 .abd-fotos { grid-template-rows: 6rem 6rem 6rem; }
  .arr-numeros .abd-numeros { position: static; flex-direction: row; margin-top: .75rem; } .arr-numeros .abd-numero { flex: 1; min-width: 0; }
  .arr-revista .abd-fotos { grid-template-rows: 13rem 6rem; } .arr-grade .abd-fotos { grid-auto-rows: 8.5rem; }
  .arr-inclinadas .abd-fotos { min-height: 17rem; }
}

/* Cultos em pílulas */
.site-cultos-pilulas { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.site-cultos-pilulas li { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1.1rem .55rem .55rem; border-radius: 999px; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); }
.pilula-dia { background: var(--dourado); color: var(--sobre-marca, #fff); font-weight: 700; font-size: .8rem; border-radius: 999px; padding: .25rem .7rem; }
.pilula-hora { font-weight: 700; font-variant-numeric: tabular-nums; }
.pilula-nome { color: var(--tinta-2); font-size: .925rem; }

/* Divisórias entre seções */
.site-secao.com-divisoria { position: relative; padding-top: calc(5rem + 2.5vw); }
/* 5.4.1: seção que não ocupa a largura inteira fica dentro de .site-par; sem posição, a divisória "escapava" para o topo da página (por cima da barra de contato). */
.site-par.com-divisoria { position: relative; }
.site-par.com-divisoria > .site-largura > .site-secao:first-child, .site-par.com-divisoria .site-secao { padding-top: calc(5rem + 2.5vw); }
.site-divisoria { position: absolute; top: -1px; left: 0; right: 0; height: clamp(1.5rem, 4.5vw, 4rem); pointer-events: none; line-height: 0; }
.site-divisoria svg { width: 100%; height: 100%; display: block; }
.site-divisoria.de-padrao path { fill: var(--papel); }
.site-divisoria.de-suave path { fill: var(--superficie-2); }
.site-divisoria.de-claro path { fill: var(--superficie); } /* 5.4.1: faltava (saía preta) */
.site-divisoria.de-escuro path { fill: var(--marinho); }
.site-divisoria.de-marca path { fill: var(--dourado); }
.site-separador { display: flex; justify-content: center; align-items: center; background: var(--papel); }
.site-separador.fundo-suave { background: var(--superficie-2); } .site-separador.fundo-escuro { background: var(--marinho); } .site-separador.fundo-marca { background: var(--dourado); }
.sep-filete span { display: block; width: min(var(--site-max, 64rem), calc(100% - 2 * var(--site-margem, 1rem))); height: 1px; background: color-mix(in srgb, var(--tinta) 14%, transparent); }
.sep-ornamento { height: 0; }
.sep-ornamento span { display: block; width: 7rem; height: 1.25rem; transform: translateY(-50%); position: relative; z-index: 1;
  background: radial-gradient(circle, var(--dourado) 0 3px, transparent 3.5px) center / 1.25rem 1.25rem no-repeat,
    linear-gradient(var(--dourado), var(--dourado)) left center / 2.6rem 1px no-repeat, linear-gradient(var(--dourado), var(--dourado)) right center / 2.6rem 1px no-repeat; }
.site-separador.sep-filete + .site-secao, .site-secao:has(+ .site-separador.sep-filete) { padding-block: 4rem; }

/* Estilo dos cartões (modelo) */
.site.cart-contorno :is(.site-cartao, .site-culto:not(.site-culto-endereco), .site-atalho:not(.escuro), .car-cartoes .car-slide, .gal-album) { box-shadow: none; border: 1.5px solid color-mix(in srgb, var(--tinta) 22%, transparent); }
.site.cart-plano :is(.site-cartao, .site-culto:not(.site-culto-endereco), .site-atalho:not(.escuro), .car-cartoes .car-slide) { box-shadow: none; border-color: transparent; background: var(--superficie-2); }
.site.cart-plano .fundo-suave :is(.site-cartao, .site-culto:not(.site-culto-endereco), .car-cartoes .car-slide) { background: var(--superficie); }
.arr-arco .abd-foto, .arr-inclinadas .abd-foto, .arr-numeros .abd-foto { height: auto; }
.arr-inclinadas .abd-fotos { padding-block: 1.5rem 2.5rem; }
.arr-inclinadas .abd-legenda { position: relative; z-index: 4; text-align: center; margin-top: .5rem; }
.car-dividido .car-slide.sem-imagem { min-height: 0; }
.car-dividido .car-slide.sem-imagem .car-texto { padding-block: 2.5rem; }

/* ================================================================ 4.22: pacotes de modelo */
.modelo-previa-img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-radius: 8px; border: 1px solid var(--linha); display: block; background: var(--superficie-2); }
.modelo-item .box-selos { margin: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.selo.oficial { display: inline-flex; align-items: center; gap: .25rem; }
.selo.oficial svg { width: .9rem; height: .9rem; }
.pacote-autor { font-size: .85rem; margin: 0; }
.pacote-instalar { border: 1px dashed var(--linha); border-radius: var(--raio); padding: 1rem 1.25rem; margin: 0 0 1.5rem; background: var(--superficie-2); }
.pacote-instalar h3 { margin-top: 0; }
.faixa-previa-modelo { position: fixed; z-index: 120; left: 50%; bottom: 1rem; transform: translateX(-50%); width: min(44rem, calc(100% - 2rem));
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .75rem 1rem;
  background: #0f172a; color: #f8fafc; border-radius: 12px; box-shadow: 0 18px 40px rgb(15 23 42 / .35); font-family: var(--fonte-ui); font-size: .9rem; }
.faixa-previa-modelo p { margin: 0; }
.faixa-previa-modelo .botao:not(.primario) { background: transparent; color: #fff; border-color: rgb(255 255 255 / .5); }
.faixa-previa-modelo .botao.primario { background: #fff; color: #0f172a; border-color: #fff; }
@media (max-width: 860px) { .faixa-previa-modelo { bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)); } }
/* 4.22: título da chamada sobre a cor da marca ou escura vale mais que a cor de título da seção. */
.site-secao .site-chamada.var-marca .site-titulo { color: var(--sobre-marca); }
.site-secao .site-chamada.var-escura .site-titulo { color: #fff; }

/* ================================================================ 4.23: celular */
/* Barra do leitor: no computador, "Mais opções" não existe (tudo à vista). */
.leitor-mais { display: contents; }
.leitor-botao-mais { display: none; }
.lateral-alternar[hidden] { display: none !important; }
.leitor .versos { transition: transform .14s ease, opacity .14s ease; }
.leitor .versos.saindo-esquerda { transform: translateX(-24px); opacity: .3; }
.leitor .versos.saindo-direita { transform: translateX(24px); opacity: .3; }

@media (max-width: 860px) {
  /* Barras que se recolhem ao rolar */
  .topo, .site-menu, .leitor-barra { transition: transform .22s ease; will-change: transform; }
  body.barras-recolhidas .topo { transform: translateY(-100%); }
  body.barras-recolhidas :is(.site-menu, .leitor-barra) { transform: translateY(calc(-100% - var(--altura-topo) - 4px)); }

  /* Barra de baixo mais baixa */
  .inferior { height: calc(52px + env(safe-area-inset-bottom)); }
  .inferior a { font-size: .75rem; }
  .inferior svg { width: 1.3rem; height: 1.3rem; }
  main { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .avisos { bottom: calc(60px + env(safe-area-inset-bottom)); }

  /* Leitor: uma linha, "Mais opções" abre o resto; créditos depois do texto */
  .leitor-barra { position: sticky; top: var(--altura-topo); z-index: 20; flex-wrap: nowrap; gap: .35rem; padding: .4rem 1rem; margin: -1rem -1rem .75rem; }
  .leitor-barra > .seletor { flex: 1; flex-wrap: nowrap; min-width: 0; }
  .leitor-barra > .seletor select:first-child { flex: 1 1 auto; max-width: none; min-width: 0; }
  .leitor-barra > .seletor select + select { flex: none; width: 4.6rem; }
  .leitor-botao-mais { display: inline-flex; flex: none; padding: 0 .65rem; border: 1px solid var(--linha); background: var(--superficie); }
  .leitor-siglas { font: 700 .78rem var(--fonte-ui); max-width: 5.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .leitor-mais { display: none; }
  .leitor-barra.mais-aberto { flex-wrap: wrap; }
  .leitor-barra.mais-aberto .leitor-mais { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; flex-basis: 100%; order: 5; padding-top: .5rem; border-top: 1px solid var(--linha); }
  .leitor-barra.mais-aberto .leitor-mais .espaco { flex: 1; }
  .leitor { display: flex; flex-direction: column; }
  .leitor > .leitor-barra { order: 0; }
  .leitor > h1 { order: 1; font-size: 1.35rem; margin: .25rem 0 .5rem; }
  .leitor > .creditos-capitulo { order: 20; margin-top: 1.5rem; font-size: .8rem; }
  .leitor > :not(.leitor-barra):not(h1):not(.creditos-capitulo) { order: 2; }
  .leitor > .navegacao-capitulo { order: 10; }
  .leitor > .estudo-capitulo { order: 11; }

  /* Toque confortável: 44 px para botões, chips, abas e caixas de marcar */
  .botao, .botao.pequeno { min-height: 44px; }
  .botao-icone.pequeno { min-width: 44px; height: 44px; border-radius: 22px; }
  .chip { min-height: 44px; }
  .chip button { min-width: 44px; height: 44px; border-radius: 22px; }
  .chip-livro { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .85rem; }
  .gal-chip { min-height: 44px; }
  input[type="checkbox"], input[type="radio"] { width: 22px; height: 22px; flex: none; }
  .check { min-height: 44px; }
  .lateral a, .lateral .link { min-height: 48px; }
  details summary, details.cartao > summary, .citacoes summary, .verificacao summary, .lista-equivalente summary, .ap-notas-lote summary,
  .classico-obra > summary, .classico-intro > summary { min-height: 44px; display: flex; align-items: center; }
  a.chip-livro { min-height: 44px; padding: 0 .85rem; }
  .topo .marca { min-height: 44px; }
  span.num, .verso .num, .resultado .num, .resultado .contexto .num, .passagem .num, .versos .num { font-size: max(.75rem, 12px); }
  .resultado .cab a { display: inline-flex; align-items: center; min-height: 44px; }
  .link-num { min-width: 28px; min-height: 28px; }

  /* Letra mínima de 12 px */
  .selo, .box-selos .selo, .site-item .selo, .lateral-titulo, .site-atalho-rotulo, .mapa-credito, .categoria-titulo { font-size: max(.75rem, 12px); }
  .busca-resultados .num, .resultado .num { font-size: max(.75rem, 12px); }

  /* Abas numa linha só, rolando para o lado */
  .abas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-inline: -1rem; padding-inline: 1rem; scroll-padding-inline: 1rem; }
  .abas::-webkit-scrollbar { display: none; }
  .abas a { flex: none; white-space: nowrap; padding: .6rem .85rem; }

  /* Topo: o botão de modo vai para o menu lateral */
  .topo .alternar-modo { display: none !important; }
  .lateral-alternar { display: flex !important; align-items: center; gap: .6rem; width: 100%; min-height: 48px; margin: 0 0 .75rem; padding: .5rem .75rem;
    border: 1px solid var(--linha); border-radius: 10px; background: var(--superficie); color: var(--tinta); font: 600 1rem var(--fonte-ui); cursor: pointer; text-align: left; }
  .lateral-alternar svg { width: 1.25rem; height: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { .leitor .versos.saindo-esquerda, .leitor .versos.saindo-direita { transform: none; } }

/* 4.23: alça de arrastar (folhas no celular) e "puxar para atualizar" */
.alca-arrastar { display: none; }
.puxar-atualizar { position: fixed; z-index: 60; top: 0; left: 50%; transform: translate(-50%, -60px); display: none; align-items: center; gap: .5rem;
  padding: .5rem .9rem; border-radius: 999px; background: var(--superficie); color: var(--tinta); box-shadow: var(--sombra); font: 600 .85rem var(--fonte-ui); pointer-events: none; }
.puxar-atualizar.visivel { display: inline-flex; }
.puxar-atualizar svg { width: 1.1rem; height: 1.1rem; transition: transform .2s; }
.puxar-atualizar.pronto svg { transform: rotate(180deg); }
.puxar-atualizar.girando svg { animation: girar 1s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (max-width: 860px) {
  .alca-arrastar { display: block; position: absolute; top: 6px; left: 50%; width: 40px; height: 5px; margin-left: -20px; border-radius: 3px; background: color-mix(in srgb, var(--tinta) 25%, transparent); }
  .painel-cabeca, .janela-cabeca { position: relative; padding-top: .9rem; }
  /* Editor de seção do site: prévia num botão, botões presos embaixo */
  .site-previa-coluna { display: none; }
  .site-editor-botoes { position: sticky; bottom: calc(52px + env(safe-area-inset-bottom)); z-index: 6; margin: 1rem -1rem 0; padding: .6rem 1rem;
    background: var(--superficie); border-top: 1px solid var(--linha); box-shadow: 0 -6px 16px rgb(0 0 0 / .08); }
  .site-item .site-item-linha { flex-wrap: wrap; }
}

/* 4.23.1: instalar o app */
.lateral-instalar { display: none; }
.aviso-instalar { position: fixed; z-index: 34; left: .75rem; right: .75rem; bottom: calc(60px + env(safe-area-inset-bottom)); display: grid;
  grid-template-columns: auto minmax(0, 1fr); gap: .25rem .75rem; align-items: center; padding: .75rem .9rem; border-radius: 14px;
  background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); box-shadow: 0 10px 30px rgb(10 17 40 / .22); font-family: var(--fonte-ui); }
.aviso-instalar-icone { grid-row: span 2; width: 2.5rem; height: 2.5rem; border-radius: 10px; display: grid; place-items: center; background: var(--marinho); color: #fff; }
.aviso-instalar-icone svg { width: 1.3rem; height: 1.3rem; }
.aviso-instalar p { margin: 0; display: flex; flex-direction: column; font-size: .875rem; color: var(--tinta-2); }
.aviso-instalar p strong { color: var(--tinta); font-size: .95rem; }
.aviso-instalar-botoes { grid-column: 2; display: flex; gap: .5rem; flex-wrap: wrap; }
body.com-aviso-instalar .avisos { bottom: calc(150px + env(safe-area-inset-bottom)); }
.instalar-passos ol { padding-left: 1.25rem; display: grid; gap: .6rem; }
.instalar-icone { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 6px; background: var(--superficie-2); vertical-align: middle; }
.instalar-icone svg { width: 1.1rem; height: 1.1rem; }
@media (max-width: 860px) {
  .lateral-instalar:not([hidden]) { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 48px; margin: 0 0 .5rem; padding: .5rem .75rem;
    border: 0; border-radius: 10px; background: var(--marinho); color: #fff; font: 600 1rem var(--fonte-ui); cursor: pointer; text-align: left; }
  .lateral-instalar svg { width: 1.25rem; height: 1.25rem; }
}
@media (min-width: 861px) { .aviso-instalar { display: none; } }
@media print { .aviso-instalar { display: none !important; } }

/* ===================================================================== 4.24: abertura (carrossel da página inicial)
   Montada pelo motor dos carrosséis (.car), com a classe .car-abertura. As medidas seguem a largura da própria abertura
   (container "abertura"), não a da tela: assim a prévia do editor mostra o celular de verdade, mesmo num computador. */
.abertura-car { container: abertura / inline-size; position: relative; --sob: 0px; margin-bottom: 1rem; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); background: var(--marinho); }
.site .abertura-car { margin: 0; border-radius: 0; box-shadow: none; }
/* A faixa de atalhos sobe por cima da borda de baixo: texto e controles ficam acima dela. */
.site-secao.tipo-abertura:has(+ .tipo-atalhos.sobre-abertura) .abertura-car { --sob: 40px; }
@media (max-width: 860px) { .site-secao.tipo-abertura:has(+ .tipo-atalhos.sobre-abertura) .abertura-car { --sob: 28px; } }

.car-abertura { --alt: 26rem; }
.car-abertura.alt-baixa { --alt: 18rem; } .car-abertura.alt-alta { --alt: 34rem; } .car-abertura.alt-tela { --alt: min(82svh, 48rem); }
.car-abertura .car-janela { border-radius: 0; }
.car-abertura .car-slide { min-height: var(--alt); height: auto; overflow-wrap: break-word; }
.car-abertura .car-texto { display: flex; flex-direction: column; align-items: flex-start; text-align: left; max-width: none; margin: 0;
  padding: clamp(1.5rem, 4cqi, 3rem) clamp(1.25rem, 5cqi, 4rem) calc(var(--sob) + 4.5rem); }
.car-abertura .car-texto > * { max-width: 42rem; }
.car-abertura .car-rotulo { font-size: .75rem; margin-bottom: .65rem; color: #fff; background: rgb(255 255 255 / .16); border: 1px solid rgb(255 255 255 / .28); border-radius: 999px; padding: .3rem .75rem; letter-spacing: .08em; }
.car-abertura .car-rotulo, .car-abertura.car-dividido .car-rotulo, .car-abertura.car-tela_cheia .car-rotulo, .car-abertura.car-vitrine .car-rotulo { color: #fff; }
.car-abertura .car-titulo { font-family: var(--fonte-titulos-site, var(--fonte-titulos, inherit)); font-size: clamp(1.6rem, 4.4cqi, 3rem); line-height: 1.12; letter-spacing: -.02em; margin: 0 0 .5rem; max-width: 24ch; }
.car-abertura .car-sub { font-size: clamp(1rem, 1.6cqi, 1.175rem); line-height: 1.55; margin-bottom: 1.1rem; }
.car-abertura .car-botoes { display: flex; flex-wrap: wrap; gap: .6rem; }
.car-abertura .car-botoes .botao { min-height: 44px; padding: .7rem 1.4rem; font-weight: 700; }
.car-abertura .botao.primario { color: #fff; }
.car-abertura .car-botao2 { background: rgb(10 17 40 / .55); color: #fff; border: 1.5px solid rgb(255 255 255 / .6); }
.car-abertura .car-botao2:hover { background: rgb(10 17 40 / .75); }
/* Posição do texto: em cima, no meio ou embaixo; à esquerda, ao centro ou à direita. */
.car-abertura .car-slide[class*="pos-cima"] { align-items: flex-start; }
.car-abertura .car-slide[class*="pos-meio"] { align-items: center; }
.car-abertura .car-slide[class*="pos-baixo"] { align-items: flex-end; }
.car-abertura .car-slide[class*="pos-meio"] > .car-texto { padding-top: calc(var(--sob) + 4.5rem); }
.car-abertura .car-slide[class*="-centro"] > .car-texto { align-items: center; text-align: center; }
.car-abertura .car-slide[class*="-centro"] .car-botoes { justify-content: center; }
.car-abertura .car-slide[class*="-dir"] > .car-texto { align-items: flex-end; text-align: right; }
.car-abertura .car-slide[class*="-dir"] .car-botoes { justify-content: flex-end; }
/* Escurecimento da foto, do lado em que está o texto (nenhum, leve, médio, forte). */
.car-abertura .car-slide { --e: .62; }
.car-abertura .car-slide.esc-nenhum { --e: 0; } .car-abertura .car-slide.esc-leve { --e: .38; } .car-abertura .car-slide.esc-forte { --e: .85; }
.car-abertura:is(.car-tela_cheia, .car-vitrine) .car-slide:not(.sem-imagem):not(.so-imagem)::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgb(0 0 0 / calc(var(--e) * .12)) 0%, rgb(0 0 0 / calc(var(--e) * .3)) 40%, rgb(0 0 0 / var(--e)) 100%); }
.car-abertura:is(.car-tela_cheia, .car-vitrine) .car-slide[class*="pos-cima"]:not(.sem-imagem):not(.so-imagem)::after {
  background: linear-gradient(0deg, rgb(0 0 0 / calc(var(--e) * .12)) 0%, rgb(0 0 0 / calc(var(--e) * .3)) 40%, rgb(0 0 0 / var(--e)) 100%); }
.car-abertura:is(.car-tela_cheia, .car-vitrine) .car-slide[class*="pos-meio"]:not(.sem-imagem):not(.so-imagem)::after { background: rgb(0 0 0 / calc(var(--e) * .72)); }
.car-abertura .car-slide.esc-nenhum .car-titulo, .car-abertura .car-slide.esc-nenhum .car-sub { text-shadow: 0 1px 3px rgb(0 0 0 / .7), 0 2px 14px rgb(0 0 0 / .55); }
.car-abertura .car-slide.sem-imagem { background: radial-gradient(circle at top right, color-mix(in srgb, var(--dourado-claro) 22%, transparent), transparent 60%), var(--marinho); }

/* Controles: pílula discreta embaixo, ao centro, por cima da imagem. */
.car-abertura .car-controles { position: absolute; left: 50%; right: auto; bottom: calc(var(--sob) + .85rem); transform: translateX(-50%); z-index: 3; margin: 0;
  flex-wrap: nowrap; gap: .1rem; max-width: calc(100% - 1.5rem); color: #fff; background: rgb(10 17 40 / .55); border-radius: 999px; padding: .1rem .3rem;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.car-abertura .car-controles .botao-icone { background: transparent; color: #fff; border: 0; }
.car-abertura .car-controles .botao-icone:hover { background: rgb(255 255 255 / .14); }
.car-abertura .car-marca-numeros, .car-abertura .car-contador { color: #e2e8f0; }
.car-abertura .car-marca:focus-visible, .car-abertura .car-controles .botao-icone:focus-visible { outline-color: #fff; outline-offset: 0; }

/* Dividido: texto num painel escuro e a foto do lado. */
.car-abertura.car-dividido .car-slide { border: 0; border-radius: 0; background: var(--marinho); color: #fff; min-height: var(--alt); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.car-abertura.car-dividido .car-slide.sem-imagem { grid-template-columns: minmax(0, 1fr); }
.car-abertura.car-dividido .car-midia { align-self: stretch; min-height: 100%; }
.car-abertura.car-dividido .car-titulo { color: #fff; } .car-abertura.car-dividido .car-sub { color: #e2e8f0; }
.car-abertura.car-dividido .car-slide[class*="pos-cima"] > .car-texto { align-self: start; }
.car-abertura.car-dividido .car-slide[class*="pos-meio"] > .car-texto { align-self: center; }
.car-abertura.car-dividido .car-slide[class*="pos-baixo"] > .car-texto { align-self: end; }
.car-abertura.car-dividido .car-controles { left: clamp(1.25rem, 5cqi, 4rem); transform: none; }
.car-abertura.car-dividido .car-botao2 { background: transparent; }

/* Vitrine: o slide do meio em destaque e os vizinhos aparecendo dos lados; controles embaixo. */
.car-abertura.car-vitrine { padding-block: 1.25rem calc(var(--sob) + .75rem); }
.car-abertura.car-vitrine .car-slide { height: auto; min-height: var(--alt); }
.car-abertura.car-vitrine .car-texto { padding-bottom: clamp(1.5rem, 4cqi, 2.5rem); }
.car-abertura.car-vitrine .car-slide[class*="pos-meio"] > .car-texto { padding-top: clamp(1.5rem, 4cqi, 2.5rem); }
.car-abertura.car-vitrine .car-titulo { font-size: clamp(1.4rem, 3.6cqi, 2.4rem); }
.car-abertura.car-vitrine .car-controles { position: static; transform: none; margin: .75rem auto 0; width: fit-content; background: transparent; backdrop-filter: none; }

/* Celular (abertura estreita). */
@container abertura (max-width: 640px) {
  .car-abertura { --alt: 23rem; }
  .car-abertura.alt-baixa { --alt: 17rem; } .car-abertura.alt-alta { --alt: 29rem; } .car-abertura.alt-tela { --alt: 74svh; }
  .car-abertura .car-texto { padding: 1.5rem 1.25rem calc(var(--sob) + 3.6rem); }
  .car-abertura .car-slide[class*="pos-meio"] > .car-texto { padding-top: calc(var(--sob) + 3.6rem); }
  .car-abertura .car-titulo { font-size: clamp(1.5rem, 7.2cqi, 2rem); }
  .car-abertura .car-sub { font-size: 1rem; margin-bottom: 1rem; }
  .car-abertura .car-botoes .botao { padding: .65rem 1.1rem; }
  /* Anterior e próximo pelo arrasto do dedo: ficam as bolinhas e o pausar. */
  .car-abertura .car-anterior, .car-abertura .car-proximo { display: none; }
  .car-abertura .car-controles { bottom: calc(var(--sob) + .6rem); }
  .car-abertura.car-dividido .car-slide { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto; min-height: 0; }
  .car-abertura.car-dividido .car-midia { aspect-ratio: 16 / 10; min-height: 0; min-width: 0; width: 100%; }
  .car-abertura.car-dividido .car-slide > .car-texto { order: 1; align-self: stretch; }
  .car-abertura.car-dividido .car-controles { left: 50%; transform: translateX(-50%); }
  .car-abertura.car-vitrine .car-slide { min-height: calc(var(--alt) - 2rem); }
  /* Com a imagem do celular, ela já vem recortada: centro. */
  .car-abertura picture .car-img { object-position: 50% 50%; }
}
@media (prefers-reduced-motion: reduce) { .car-abertura .car-pilha > .car-slide { transition: none !important; } }

/* 4.24: editor da abertura (Personalizar › Página inicial). */
.editor-abertura .ab-subtitulo-lista { font-size: 1rem; margin: 1.5rem 0 .25rem; }
.ab-subtitulo { font-weight: 600; margin: 0 0 .4rem; }
.ab-modelos { border: 0; padding: 0; margin: 0 0 1rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .6rem; }
.ab-modelos legend { font-weight: 600; margin-bottom: .4rem; padding: 0; }
.ab-modelo { position: relative; display: grid; gap: .2rem; padding: .7rem; border: 1.5px solid var(--linha); border-radius: var(--raio); cursor: pointer; background: var(--superficie); }
.ab-modelo input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ab-modelo:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 2px color-mix(in srgb, var(--dourado) 30%, transparent); }
.ab-modelo:has(input:focus-visible) { outline: 3px solid var(--foco); outline-offset: 2px; }
.ab-modelo-nome { font-weight: 700; } .ab-modelo-dica { font-size: .8125rem; color: var(--tinta-2); }
.ab-modelo-desenho { display: grid; height: 3.2rem; border-radius: 6px; overflow: hidden; gap: 3px; margin-bottom: .3rem; background: var(--superficie-2); }
.ab-modelo-desenho i { display: block; background: color-mix(in srgb, var(--marinho) 75%, #6b8fd6); }
.ab-modelo-desenho.m-tela_cheia i:not(:first-child) { display: none; }
.ab-modelo-desenho.m-tela_cheia i { background: linear-gradient(180deg, #6b8fd6, var(--marinho)); }
.ab-modelo-desenho.m-dividido { grid-template-columns: 5fr 7fr; }
.ab-modelo-desenho.m-dividido i:first-child { background: var(--marinho); } .ab-modelo-desenho.m-dividido i:nth-child(3) { display: none; }
.ab-modelo-desenho.m-vitrine { grid-template-columns: 1fr 5fr 1fr; padding: 5px 0; background: var(--marinho); }
.ab-modelo-desenho.m-vitrine i { border-radius: 3px; opacity: .55; } .ab-modelo-desenho.m-vitrine i:nth-child(2) { opacity: 1; background: linear-gradient(180deg, #6b8fd6, #26365f); }
.ab-previa { margin: .5rem 0 1rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie-2); padding: .6rem; }
.ab-previa-barra { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
.ab-previa-titulo { font-weight: 700; }
.ab-previa-modos { display: flex; gap: .3rem; }
.ab-previa-modos .botao[aria-pressed="true"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }
.ab-previa-palco { overflow: hidden; position: relative; min-width: 0; }
.editor-abertura { min-width: 0; }
.ab-previa-tela { transform-origin: top left; position: absolute; top: 0; left: 0; }
.ab-previa-tela.cel { border-radius: 18px; overflow: hidden; box-shadow: 0 0 0 6px #1f2937; top: 8px; }
.ab-previa-tela .abertura-car { margin: 0; border-radius: 0; box-shadow: none; }
.ab-previa-vazia { padding: 2rem; text-align: center; color: var(--tinta-2); background: var(--superficie); margin: 0; }
.ab-previa .campo-dica { margin: .5rem 0 0; }
.slide-item { min-width: 0; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.slide-item.aberto { border-color: color-mix(in srgb, var(--dourado) 55%, var(--linha)); }
.slide-item.arrastando { opacity: .85; box-shadow: 0 12px 28px -8px rgb(10 17 40 / .35); position: relative; z-index: 2; }
.slide-linha { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: .6rem; padding: .5rem .6rem; }
.slide-alca { display: grid; place-items: center; width: 1.75rem; height: 2.75rem; cursor: grab; color: var(--tinta-2); touch-action: none; border-radius: 6px; }
.slide-alca:hover { background: var(--superficie-2); } .slide-item.arrastando .slide-alca { cursor: grabbing; }
.slide-alca svg { width: 1.2rem; height: 1.2rem; }
.slide-mini { display: grid; place-items: center; width: 4.5rem; height: 2.75rem; border-radius: 6px; overflow: hidden; background: var(--superficie-2); color: var(--tinta-2); }
.slide-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slide-mini svg { width: 1.25rem; height: 1.25rem; }
.slide-resumo { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; min-width: 0; }
.slide-resumo h4 { margin: 0; font-size: .8125rem; color: var(--tinta-2); font-weight: 600; flex-basis: 100%; }
.slide-titulo { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.slide-sit { font-size: .75rem; font-weight: 700; padding: .1rem .5rem; border-radius: 999px; white-space: nowrap; }
.slide-sit.sit-ativo { background: color-mix(in srgb, var(--sucesso) 14%, transparent); color: var(--sucesso); }
.slide-sit.sit-agendado { background: color-mix(in srgb, #2563eb 14%, transparent); color: #1e40af; }
.slide-sit.sit-vencido { background: color-mix(in srgb, var(--perigo) 12%, transparent); color: var(--perigo); }
.slide-sit.sit-vazio { background: var(--superficie-2); color: var(--tinta-2); }
:root[data-tema="escuro"] .slide-sit.sit-agendado { color: #93c5fd; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .slide-sit.sit-agendado { color: #93c5fd; } }
.slide-acoes { display: flex; align-items: center; gap: .3rem; }
.slide-corpo { border-top: 1px solid var(--linha); padding: .9rem 1rem 1rem; }
.ab-imagens { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
.ab-imagem { min-width: 0; }
.ab-foco { position: relative; cursor: crosshair; border-radius: 8px; overflow: hidden; margin-bottom: .4rem; line-height: 0; }
.ab-foco-marca { position: absolute; width: 1.6rem; height: 1.6rem; margin: -.8rem 0 0 -.8rem; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 2px var(--marinho), 0 2px 8px rgb(0 0 0 / .5); pointer-events: none; }
.ab-foco img { width: 100%; display: block; }
.ab-foco-controles input[type="range"] { width: 100%; }
.ab-cel-mini { width: 100%; max-width: 10rem; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 10px; display: block; margin-bottom: .5rem; }
.ab-aparencia-slide { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem 1.5rem; align-items: start; margin: .5rem 0 1rem; }
.ab-posicao { border: 0; padding: 0; margin: 0; }
.ab-posicao legend { font-weight: 600; padding: 0; margin-bottom: .4rem; }
.ab-posicao-grade { display: grid; grid-template-columns: repeat(3, 2.75rem); grid-template-rows: repeat(3, 2rem); gap: 3px; padding: 4px; border-radius: 8px; background: linear-gradient(180deg, #6b8fd6, var(--marinho)); width: fit-content; }
.ab-posicao-celula { position: relative; display: grid; place-items: center; cursor: pointer; border-radius: 5px; }
.ab-posicao-celula input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.ab-posicao-celula::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: rgb(255 255 255 / .45); }
.ab-posicao-celula:hover { background: rgb(255 255 255 / .12); }
.ab-posicao-celula:has(input:checked) { background: rgb(255 255 255 / .2); }
.ab-posicao-celula:has(input:checked)::before { width: 1.5rem; height: .45rem; border-radius: 3px; background: #fff; }
.ab-posicao-celula:has(input:focus-visible) { outline: 3px solid var(--foco); outline-offset: 1px; }
@media (max-width: 640px) {
  .slide-linha { grid-template-columns: auto auto minmax(0, 1fr); }
  .slide-acoes { grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; }
  .ab-imagens, .ab-aparencia-slide { grid-template-columns: minmax(0, 1fr); }
}

/* 4.25: parabéns pelo WhatsApp (aniversariantes). */
.aniv-parabens { margin-top: auto; min-height: 44px; white-space: nowrap; }
.aniv-cartao .aniv-parabens { margin-top: .4rem; }
.aniv-linhas .aniv-parabens { margin-left: auto; }
.aniv-parabens svg { width: 1.05rem; height: 1.05rem; }
.aniv-nota { margin-top: 1rem; }
.aniv-nota svg { width: 1.1rem; height: 1.1rem; color: var(--dourado); vertical-align: -.2em; }
.aniv-whatsapp { border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem; margin: 0 0 1rem; }
.aniv-whatsapp legend { font-weight: 600; padding: 0 .3rem; }
.aniv-whatsapp > p { margin: .75rem 0 .5rem; }
.aniv-whatsapp .check input { width: 24px; height: 24px; }

/* 4.25: alinhamento do cabeçalho das seções (rótulo, título, subtítulo e texto): "modelo" mantém o visual de cada tipo.
   O cabeçalho é o grupo que tem o título (.site-titulo); os botões e os filtros logo abaixo acompanham. */
.site-secao.cab-centro :has(> .site-titulo) > :is(.site-rotulo, .site-titulo, .site-subtitulo, .site-texto) { text-align: center; margin-inline: auto; max-width: 48rem; }
.site-secao.cab-centro :has(> .site-titulo) > .site-rotulo { display: table; }
.site-secao.cab-centro :has(> .site-titulo) > .site-botoes, .site-secao.cab-centro .site-largura > .site-botoes, .site-secao.cab-centro .site-largura > div > .site-botoes, .site-secao.cab-centro .gal-chips { justify-content: center; }
.site-secao.cab-centro .site-cab-linha { flex-direction: column; align-items: center; text-align: center; gap: .25rem; }
.site-secao.cab-centro .site-texto-corpo { text-align: center; }
.site-secao.cab-esquerda :has(> .site-titulo) > :is(.site-rotulo, .site-titulo, .site-subtitulo, .site-texto) { text-align: left; margin-inline: 0; }
.site-secao.cab-esquerda :has(> .site-titulo) > .site-rotulo { display: inline-flex; }
.site-secao.cab-esquerda .site-chamada { text-align: left; }
.site-secao.cab-esquerda :has(> .site-titulo) > .site-botoes { justify-content: flex-start; }

/* 4.25.1: aniversariantes no celular — sempre dois cartões quadrados por linha (antes, até 375 px, um cartão largo por
   linha) e o seletor de mês sem sair da tela (os nomes dos meses vizinhos ficam só para o leitor de tela). */
@media (max-width: 480px) {
  .aniv-cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .aniv-cartao { aspect-ratio: 1; justify-content: center; padding: .75rem .5rem; }
  .aniv-dia { font-size: 1.75rem; }
  .aniv-nome { font-size: .95rem; line-height: 1.25; }
  .aniv-cartao .aniv-parabens { margin-top: .35rem; padding-inline: .7rem; }
}
@media (max-width: 400px) {
  .aniv-meses .botao { min-width: 44px; padding-inline: .6rem; }
  .aniv-meses .botao span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* 4.25.1: versão do app no fim do menu ☰ (para conferir se o celular já atualizou). */
.lateral-versao { margin: 1rem .75rem .5rem; font-size: .75rem; color: var(--tinta-2); }

/* 4.26: apresentações — área de arrastar e soltar, progresso do envio, painel do orador e cursor que some na projeção. */
.ap-zona-titulo { font-weight: 600; margin: 0 0 .35rem; }
.ap-zona { position: relative; display: grid; justify-items: center; gap: .35rem; padding: 1.25rem 1rem; border: 2px dashed color-mix(in srgb, var(--tinta-2) 45%, transparent);
  border-radius: var(--raio); background: var(--superficie-2); text-align: center; transition: border-color .15s, background .15s; }
.ap-zona.arrastando { border-color: var(--dourado); background: color-mix(in srgb, var(--dourado) 10%, var(--superficie)); }
.ap-zona.com-arquivo { border-style: solid; border-color: var(--dourado); }
.ap-zona:focus-within { outline: 3px solid var(--foco); outline-offset: 2px; }
.ap-zona-icone { width: 1.75rem; height: 1.75rem; color: var(--dourado); }
.ap-zona-rotulo { cursor: pointer; margin: 0; }
.ap-zona-ou { color: var(--tinta-2); text-decoration: underline; }
/* O campo de arquivo cobre a área (tocar em qualquer lugar escolhe o arquivo), sem aparecer. */
.ap-zona-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.ap-zona-nome { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.ap-zona-nome:empty { display: none; }
.ap-envio { display: flex; align-items: center; gap: .6rem; margin: .5rem 0; }
.ap-envio progress { flex: 1; height: .75rem; accent-color: var(--dourado); }
.ap-envio-texto { font-size: .875rem; font-variant-numeric: tabular-nums; min-width: 7rem; }
.ap-substituir { margin-top: 1rem; }
.ap-substituir summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.ap-substituir form { display: grid; gap: .6rem; max-width: 36rem; }

.ap-orador { display: grid; gap: .75rem; margin: 0 0 .75rem; padding: .75rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.ap-ver.modo-orador, .modo-orador .ap-ver { grid-template-columns: minmax(0, 1fr) 384px; }
.modo-orador .ap-lateral { max-height: calc(100vh - 5rem); }
.ap-orador[hidden] { display: none; }
.ap-orador-tempos { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; }
.ap-orador-tempo { display: grid; }
.ap-orador-rotulo { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); }
.ap-cronometro, .ap-hora { font: 700 2rem/1.1 var(--fonte-ui); font-variant-numeric: tabular-nums; }
.ap-cronometro { color: var(--dourado); }
.ap-orador-prox { display: grid; gap: .35rem; }
.ap-prox-palco { border: 1px solid var(--linha); border-radius: 6px; overflow: hidden; background: #fff; line-height: 0; }
.ap-prox-fim { margin: 0; padding: 1.5rem 1rem; background: var(--superficie-2); text-align: center; }
.modo-orador .ap-notas textarea { font-size: 1.25rem; line-height: 1.5; }
@media (max-width: 820px) { .modo-orador .ap-ver { grid-template-columns: 1fr; } }

.projecao.ocioso { cursor: none; }
.projecao.ocioso .proj-barra:not(:focus-within) { opacity: 0 !important; pointer-events: none; }
.modo-orador .ap-miniaturas { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* 4.27: projeção da Bíblia (um versículo por slide), estados da tela e cronômetro do orador. */
.bib-slide { position: relative; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; background: radial-gradient(circle at 30% 20%, #16244a, #050a18 75%);
  color: #fff; padding: calc(var(--u) * 6) calc(var(--u) * 7) calc(var(--u) * 9); overflow: hidden; font-family: var(--fonte-titulos, Georgia, serif); }
.bib-texto { margin: 0; line-height: 1.35; flex: 1; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.bib-texto > p { margin: 0; text-wrap: pretty; }
.bib-num { font-family: var(--fonte-ui); font-size: .55em; font-weight: 700; color: #f5c96b; vertical-align: .55em; margin-right: .1em; }
.bib-ref { position: absolute; left: calc(var(--u) * 7); right: calc(var(--u) * 7); bottom: calc(var(--u) * 3.5); margin: 0; font: 600 calc(var(--u) * 2.3) / 1.2 var(--fonte-ui);
  color: #f5c96b; letter-spacing: .02em; }
.ctl-atual .bib-slide, .ctl-proximo .bib-slide, .ap-prox-palco .bib-slide { border-radius: 6px; }
.proj-espera-conteudo { display: grid; justify-items: center; gap: 1.2rem; text-align: center; padding: 2rem; }
.proj-espera-conteudo img { max-width: min(46vw, 640px); max-height: 32vh; object-fit: contain; }
.proj-espera-nome { margin: 0; font-weight: 700; font-size: clamp(2rem, 5vw, 4.5rem); line-height: 1.1; letter-spacing: -.01em; }
.proj-espera-frase { margin: 0; font-size: clamp(1.1rem, 2.2vw, 2rem); color: #cbd5e1; }
.proj-barra .botao[aria-pressed="true"] { background: #fff; color: #050a18; }
.ctl-telas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: .75rem 0; }
.ctl-telas .botao { justify-content: center; min-height: 48px; }
.ctl-atual[data-tela="branca"] { outline: 4px solid #cbd5e1; opacity: .6; }
.ctl-atual[data-tela="espera"] { outline: 4px solid var(--dourado); opacity: .6; }
.ap-proj .botao[aria-pressed="true"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }

.cron { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1rem; align-items: end; padding: .75rem .9rem; border-radius: var(--raio);
  border: 1px solid var(--linha); background: var(--superficie); }
.cron-principal, .cron-lado { display: grid; }
.cron-lado { text-align: right; }
.cron-rotulo { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); }
.cron-tempo { font: 700 2.4rem/1.05 var(--fonte-ui); font-variant-numeric: tabular-nums; color: var(--sucesso); }
.cron-hora { font: 700 1.6rem/1.1 var(--fonte-ui); font-variant-numeric: tabular-nums; }
.cron-detalhe { font-size: .8125rem; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.cron-detalhe:empty { display: none; }
.cron-ajustes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cron-ajustes select { width: auto; min-height: 44px; }
.cron.perto { border-color: #d97706; background: color-mix(in srgb, #f59e0b 12%, var(--superficie)); }
.cron.perto .cron-tempo { color: #b45309; }
.cron.passou { border-color: var(--perigo); background: color-mix(in srgb, var(--perigo) 12%, var(--superficie)); }
.cron.passou .cron-tempo { color: var(--perigo); }
:root[data-tema="escuro"] .cron.perto .cron-tempo { color: #fbbf24; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .cron.perto .cron-tempo { color: #fbbf24; } }
.ctl-cron { margin: .5rem 0 1rem; }
.ap-orador .cron { border: 0; padding: 0; background: transparent; }

/* 4.28: ordem do culto (editor, item "tela de espera" e lista no controle). */
.esp-slide { box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(var(--u) * 2);
  padding: calc(var(--u) * 5); text-align: center; overflow: hidden; color: #fff; font-family: var(--fonte-ui);
  background: radial-gradient(circle at 50% 35%, #16244a, #050a18 75%); }
.esp-slide img { max-width: 46%; max-height: 32%; object-fit: contain; }
.esp-nome { margin: 0; font-weight: 700; font-size: calc(var(--u) * 5); line-height: 1.1; }
.esp-nome.menor { font-size: calc(var(--u) * 2.6); font-weight: 600; color: #cbd5e1; }
.esp-texto { margin: 0; font-weight: 700; font-size: calc(var(--u) * 7); line-height: 1.1; color: #f5c96b; overflow-wrap: anywhere; }
.esp-frase { margin: 0; font-size: calc(var(--u) * 2.4); color: #cbd5e1; }
.ctl-atual .esp-slide, .ctl-proximo .esp-slide { border-radius: 6px; }
.proj-itens { width: auto; max-width: min(40vw, 22rem); min-height: 36px; padding: .2rem .5rem; font-size: .875rem; }

.cul-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.cul-cartao { display: grid; gap: .4rem; align-content: start; }
.cul-titulo { font-size: 1.15rem; margin: 0; }
.cul-titulo a { color: inherit; }
.cul-resumo { margin: 0; padding-left: 1.4rem; font-size: .9375rem; }
.cul-itens { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.cul-item { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .5rem .75rem; align-items: center; padding: .6rem .75rem;
  border: 1px solid var(--linha); border-left-width: 4px; border-radius: var(--raio); background: var(--superficie); }
.cul-item.cul-apresentacao { border-left-color: var(--marinho); }
.cul-item.cul-biblia { border-left-color: var(--dourado); }
.cul-item.cul-espera { border-left-color: var(--sucesso); }
.cul-n { font: 700 1.1rem var(--fonte-ui); text-align: center; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.cul-item-corpo { min-width: 0; display: grid; gap: .25rem; }
.cul-item-nome { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.cul-tipo { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-2); margin-right: .25rem; }
.cul-rot-rotulo { font-size: .8125rem; color: var(--tinta-2); }
.cul-item-corpo input { min-height: 40px; }
.cul-item-acoes { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.cul-item-acoes .botao { min-width: 44px; min-height: 44px; justify-content: center; }
.cul-tipos { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .75rem; }
.cul-tipo-op { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: .25rem .9rem; border: 1px solid var(--linha); border-radius: 999px; cursor: pointer; }
.cul-tipo-op.marcado { border-color: var(--marinho); background: color-mix(in srgb, var(--marinho) 10%, var(--superficie)); font-weight: 600; }
.cul-acrescentar { margin: 1rem 0 1.5rem; }
.cul-rodape { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-top: 2rem; }
.aviso-mini { color: var(--perigo); font-weight: 600; }
@media (max-width: 520px) {
  .cul-item { grid-template-columns: 1.6rem minmax(0, 1fr); }
  .cul-item-acoes { grid-column: 1 / -1; justify-content: flex-start; }
}

.ctl-culto { margin: .5rem 0 1rem; }
.ctl-itens { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.ctl-item { width: 100%; justify-content: flex-start; gap: .6rem; min-height: 48px; text-align: left; }
.ctl-item-n { min-width: 1.6rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--tinta-2); }
.ctl-item-nome { min-width: 0; overflow-wrap: anywhere; }
.ctl-item.atual { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.ctl-item.atual .ctl-item-n { color: #fff; }
.ctl-prox-item { margin: 0; padding: 1rem; color: #fff; font-weight: 600; background: #16244a; }
.cul-editor input[type="date"] { min-height: 44px; min-width: 12rem; }

/* 4.28.1: encerrar a apresentação (barra da projeção, controle e aviso "Projetando agora"). */
.ao-vivo-aviso { display: grid; gap: .4rem; align-items: start; }
.ao-vivo-titulo { margin: 0; display: flex; align-items: center; gap: .4rem; font-weight: 600; }
.ao-vivo-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.ao-vivo-lista li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem .75rem; }
.ao-vivo-nome { min-width: 0; overflow-wrap: anywhere; }
.ao-vivo-lista .linha-botoes { margin: 0; }
.proj-encerrar { gap: .3rem; }
.ctl-encerrar { margin: 1.25rem 0 .5rem; }
.ctl-encerrar .botao { width: 100%; justify-content: center; min-height: 48px; }
.ctl-fim { margin: 1rem 0; }

/* 4.29: esqueleto enquanto carrega (no lugar do texto "Carregando…"). */
.esqueleto { display: grid; gap: .75rem; padding: .25rem 0; }
.esqueleto-tela { max-width: 64rem; margin: 0 auto; padding: 1.5rem 1rem; }
.esq-bloco { display: block; border-radius: 8px; background: var(--linha); animation: esq-pulsar 1.4s ease-in-out infinite; }
.esq-titulo { height: 2rem; width: min(22rem, 70%); }
.esq-linha { height: 2.75rem; }
.esq-linha.curta { width: 60%; }
.esq-caixa { height: 12rem; }
.esq-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: .75rem; }
.esq-numero { height: 5.25rem; }
@keyframes esq-pulsar { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .esq-bloco { animation: none; } }

/* 4.29: Secretaria (membros, visitantes e congregações). */
.sec-topo { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.sec-topo h1 { margin: 0; }
.sec-topo .linha-botoes { margin: 0; }
.sec-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: .75rem; margin: 1rem 0; }
.sec-numero { display: grid; gap: .15rem; padding: .9rem 1rem; text-decoration: none; color: var(--tinta); border: 1px solid var(--linha); transition: border-color .15s; }
.sec-numero:hover { border-color: var(--dourado-claro); }
.sec-numero-valor { font: 600 1.9rem/1.1 var(--fonte-ui); font-variant-numeric: tabular-nums; }
.sec-numero-rotulo { font-size: .875rem; color: var(--tinta-2); }
.sec-numero.destaque { border-color: #d97706; background: color-mix(in srgb, #f59e0b 10%, var(--superficie)); }
.sec-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: .75rem 1rem; align-items: end; margin: 0 0 1rem; }
.sec-filtros .campo { margin: 0; }
.sec-filtros .sec-busca { grid-column: span 2; }
.sec-filtros-botoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.sec-filtros-botoes .botao { white-space: nowrap; }
@media (max-width: 520px) { .sec-filtros .sec-busca { grid-column: auto; } }
.sec-tabela-caixa { padding: 0; overflow-x: auto; }
.sec-tabela { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.sec-tabela th, .sec-tabela td { padding: .7rem 1rem; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: middle; }
.sec-tabela thead th { font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-2); padding-top: .6rem; padding-bottom: .6rem; }
.sec-tabela tbody th { font-weight: 500; }
.sec-tabela tbody tr:last-child > * { border-bottom: 0; }
.sec-tabela tbody tr:hover { background: var(--superficie-2); }
.sec-tabela .num { font-variant-numeric: tabular-nums; }
.sec-pessoa { display: flex; align-items: center; gap: .65rem; min-width: 12rem; }
.sec-pessoa a { font-weight: 600; }
.sec-sub { display: block; font-size: .8125rem; color: var(--tinta-2); overflow-wrap: anywhere; }
.sec-tel { display: block; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sec-avatar { flex: none; display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; font: 700 .8125rem var(--fonte-ui);
  background: color-mix(in srgb, var(--marinho) 12%, var(--superficie)); color: var(--marinho-2); }
.sec-avatar.grande { width: 4.5rem; height: 4.5rem; font-size: 1.5rem; }
:root[data-tema="escuro"] .sec-avatar { background: #2d4373; color: #fff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .sec-avatar { background: #2d4373; color: #fff; } }
.sec-selo { display: inline-block; padding: .1rem .55rem; border-radius: 999px; border: 1px solid var(--linha); font-size: .75rem; font-weight: 600; line-height: 1.5;
  background: var(--superficie-2); color: var(--tinta-2); white-space: nowrap; }
.sec-selo.cat-membro, .sec-selo.ac-integrado { background: #e6f4ea; border-color: #b7dfc3; color: #14532d; }
.sec-selo.cat-congregado { background: #e8eefb; border-color: #c4d3f2; color: #1e3a8a; }
.sec-selo.cat-visitante, .sec-selo.ac-acompanhamento, .sec-selo.sit-atrasado { background: #fef3c7; border-color: #f6d98a; color: #78350f; }
.sec-selo.sit-falecido, .sec-selo.sit-desligado { background: #fde8e7; border-color: #f5c2bf; color: #7f1d1d; }
:root[data-tema="escuro"] .sec-selo.cat-membro, :root[data-tema="escuro"] .sec-selo.ac-integrado { background: #14331f; border-color: #1f5133; color: #9ee2b4; }
:root[data-tema="escuro"] .sec-selo.cat-congregado { background: #1b2a4a; border-color: #2d4373; color: #b9cdf5; }
:root[data-tema="escuro"] .sec-selo.cat-visitante, :root[data-tema="escuro"] .sec-selo.ac-acompanhamento, :root[data-tema="escuro"] .sec-selo.sit-atrasado { background: #3b2a08; border-color: #6b4a10; color: #fcd77a; }
:root[data-tema="escuro"] .sec-selo.sit-falecido, :root[data-tema="escuro"] .sec-selo.sit-desligado { background: #3d1513; border-color: #6b2420; color: #ffb4ae; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .sec-selo.cat-membro, :root:not([data-tema="claro"]) .sec-selo.ac-integrado { background: #14331f; border-color: #1f5133; color: #9ee2b4; }
  :root:not([data-tema="claro"]) .sec-selo.cat-congregado { background: #1b2a4a; border-color: #2d4373; color: #b9cdf5; }
  :root:not([data-tema="claro"]) .sec-selo.cat-visitante, :root:not([data-tema="claro"]) .sec-selo.ac-acompanhamento, :root:not([data-tema="claro"]) .sec-selo.sit-atrasado { background: #3b2a08; border-color: #6b4a10; color: #fcd77a; }
  :root:not([data-tema="claro"]) .sec-selo.sit-falecido, :root:not([data-tema="claro"]) .sec-selo.sit-desligado { background: #3d1513; border-color: #6b2420; color: #ffb4ae; }
}
.sec-paginas { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem 1rem; margin: .75rem 0; color: var(--tinta-2); font-size: .9375rem; }
.sec-total { text-align: right; margin: .75rem 0; }
.sec-vazio { text-align: center; padding: 2.5rem 1rem; }
.sec-vazio h2 { margin-top: 0; }
.sec-vazio .linha-botoes { justify-content: center; }
.sec-ficha { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }
.sec-ficha.nova { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
@media (max-width: 900px) { .sec-ficha { grid-template-columns: minmax(0, 1fr); } }
.sec-lateral { display: grid; gap: 1rem; min-width: 0; }
.sec-lateral .cartao h2 { font-size: 1.1rem; margin-top: 0; }
.sec-form { min-width: 0; }
.sec-fieldset { border: 0; border-top: 1px solid var(--linha); margin: 0; padding: 1rem 0 .5rem; min-width: 0; }
.sec-fieldset:first-child { border-top: 0; padding-top: 0; }
.sec-fieldset legend { font: 700 .8125rem var(--fonte-ui); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-2); padding: 0 0 .5rem; }
.sec-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1rem; }
.sec-grade .largo { grid-column: 1 / -1; }
@media (max-width: 600px) { .sec-grade { grid-template-columns: minmax(0, 1fr); } }
.sec-grade .campo { margin: 0 0 .5rem; min-width: 0; }
.sec-grade .check { min-height: 44px; display: flex; align-items: center; gap: .4rem; }
.sec-salvar { position: sticky; bottom: 0; background: var(--superficie); padding: .75rem 0 .25rem; margin: 0; border-top: 1px solid var(--linha); z-index: 2; }
.sec-resumo { text-align: center; }
.sec-resumo .sec-avatar { margin: 0 auto .5rem; }
.sec-resumo h2 { margin: 0 0 .35rem; }
.sec-resumo .linha-botoes { justify-content: center; }
.sec-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem .75rem; text-align: left; margin: .75rem 0; font-size: .9375rem; }
.sec-dl dt { color: var(--tinta-2); }
.sec-dl dd { margin: 0; overflow-wrap: anywhere; }
.sec-aviso-lgpd { font-size: .875rem; text-align: left; }
.sec-linha-tempo { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 2px solid var(--linha); display: grid; gap: .8rem; }
.sec-linha-tempo.sec-lt-marca { border-left-color: var(--dourado-claro); }
.sec-linha-tempo p { margin: 0; }
.sec-lt-quando { font-size: .8125rem; color: var(--tinta-2); }
.sec-mudancas { margin: .2rem 0 0; padding-left: 1.1rem; font-size: .875rem; overflow-wrap: anywhere; }
.sec-novo-contato { margin-top: 1rem; }
.sec-novo-contato summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.sec-contato-form textarea { width: 100%; }
.sec-barra-visitantes { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin: 0 0 1rem; }
.sec-pilulas { display: flex; flex-wrap: wrap; gap: .5rem; }
.sec-pilula { min-height: 40px; padding: .35rem .95rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta-2); font: 500 .9375rem var(--fonte-ui); cursor: pointer; }
.sec-pilula.ativa { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.sec-busca-curta { display: flex; gap: .4rem; flex: 1 1 16rem; max-width: 24rem; }
.sec-busca-curta input { flex: 1; min-width: 0; }
.sec-lista { list-style: none; margin: 0; padding: 0; }
.sec-cong { padding: .9rem 1rem; border-bottom: 1px solid var(--linha); display: grid; gap: .35rem; }
.sec-cong:last-child { border-bottom: 0; }
.sec-cong-campos { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) auto; gap: .5rem; align-items: center; }
@media (max-width: 600px) { .sec-cong-campos { grid-template-columns: minmax(0, 1fr); } }
.sec-cong p { margin: 0; }
.sec-erros { max-height: 16rem; overflow: auto; font-size: .9rem; }
.sec-converter h2 { margin-top: 0; }
/* Celular: cada linha da tabela vira um cartão (nome e selo em cima; o resto embaixo, com o rótulo). */
@media (max-width: 640px) {
  .sec-tabela, .sec-tabela tbody { display: block; }
  .sec-tabela thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sec-tabela tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .2rem .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--linha); }
  .sec-tabela tbody tr:last-child { border-bottom: 0; }
  .sec-tabela th, .sec-tabela td { padding: 0; border: 0 !important; }
  .sec-tabela tbody th { grid-column: 1; grid-row: 1; }
  .sec-tabela .sec-c-selo { grid-column: 2; grid-row: 1; text-align: right; }
  .sec-tabela .sec-c-contato, .sec-tabela .sec-c-extra { grid-column: 1 / -1; padding-left: 2.9rem; font-size: .875rem; color: var(--tinta-2); }
  .sec-tabela .sec-c-extra::before { content: attr(data-rotulo) ": "; }
  .sec-pessoa { min-width: 0; }
  .sec-tabela .sec-cel-vazia { display: none; }
}

/* 4.30: ministérios e pequenos grupos. */
.sec-sub-inline { font-size: .8125rem; color: var(--tinta-2); margin-left: .35rem; }
.sec-participa { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.sec-participa li { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem; }
.gst-cor { display: inline-block; width: .75rem; height: .75rem; border-radius: 3px; background: var(--cor, var(--marinho)); }
.gst-grade { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); align-content: start; }
.gst-cartao { position: relative; display: grid; gap: .35rem; align-content: start; }
.gst-cartao h2 { font-size: 1.1rem; margin: 0; }
.gst-cartao h2 a { color: inherit; }
.gst-cartao p { margin: 0; }
.gst-cartao.inativo { opacity: .75; }
.gst-faixa { display: block; width: 2.5rem; height: .35rem; border-radius: 999px; background: var(--cor, var(--marinho)); }
.gst-cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.gst-cabeca h1 { margin: 0; }
.gst-cabeca .gst-faixa { width: .5rem; height: 2rem; }
.gst-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: var(--tinta-2); font-size: .9375rem; }
.gst-desc-grande { color: var(--tinta-2); max-width: 48rem; white-space: pre-line; }
.gst-quando { margin: .35rem 0 0; }
.gst-pilulas { margin: 0 0 1rem; }
.gst-pilulas a { text-decoration: none; display: inline-flex; align-items: center; }
.gst-participantes { list-style: none; margin: 0 0 1rem; padding: 0; }
.gst-part { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .65rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--linha); }
.gst-part:last-child { border-bottom: 0; }
.gst-part-nome { min-width: 0; display: grid; gap: .1rem; overflow-wrap: anywhere; }
.gst-part-nome .sec-selo { justify-self: start; }
.gst-part-acoes { display: flex; gap: .35rem; align-items: center; }
.gst-part-acoes select { width: auto; min-height: 40px; padding-top: .25rem; padding-bottom: .25rem; }
.gst-part-acoes .botao { min-width: 40px; min-height: 40px; justify-content: center; }
.gst-part-acoes { grid-column: 2; }
.gst-part > .sec-avatar { align-self: start; }
.gst-seletor { margin-top: .5rem; }
.gst-resultados { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .35rem; }
.gst-resultados .botao { width: 100%; justify-content: flex-start; text-align: left; gap: .4rem; }
.gst-presenca { border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem .9rem .75rem; margin: .5rem 0 1rem; min-width: 0; }
.gst-presenca legend { font-weight: 600; padding: 0 .35rem; }
.gst-presenca-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); gap: .25rem .75rem; }
.gst-presente { min-height: 44px; display: flex; align-items: center; gap: .45rem; overflow-wrap: anywhere; }
.gst-editar summary, .gst-novo-visitante summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.gst-novo-visitante { margin-top: .75rem; border-top: 1px solid var(--linha); padding-top: .5rem; }
.sec-selo.fn-lider { background: color-mix(in srgb, var(--dourado-claro) 14%, var(--superficie)); border-color: var(--dourado-claro); color: var(--tinta); }
.sec-selo.fmt-online { background: #e8eefb; border-color: #c4d3f2; color: #1e3a8a; }
.sec-selo.fmt-hibrido { background: #f3e8fd; border-color: #dcc4f5; color: #5b21b6; }
:root[data-tema="escuro"] .sec-selo.fmt-online { background: #1b2a4a; border-color: #2d4373; color: #b9cdf5; }
:root[data-tema="escuro"] .sec-selo.fmt-hibrido { background: #2e1a47; border-color: #4c2d75; color: #d9c2fb; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .sec-selo.fmt-online { background: #1b2a4a; border-color: #2d4373; color: #b9cdf5; }
  :root:not([data-tema="claro"]) .sec-selo.fmt-hibrido { background: #2e1a47; border-color: #4c2d75; color: #d9c2fb; }
}
.gst-reunioes td .botao { margin-left: .25rem; }
.gst-part-nome .sec-sub a { display: inline-block; min-height: 24px; min-width: 24px; padding: 2px 0; line-height: 20px; }

/* 4.31: comprovante com QR Code e check-in dos eventos. */
.inscricao-qr { margin: .75rem 0; display: grid; justify-items: start; gap: .4rem; }
.inscricao-qr .pix-qr-caixa { width: min(13rem, 60vw); }
.checkin .ck-leitura label { font-weight: 600; }
.ck-linha { display: flex; gap: .5rem; }
.ck-linha input { flex: 1; min-width: 0; font: 600 1.25rem var(--fonte-ui); letter-spacing: .08em; text-transform: uppercase; }
.ck-camera .botao { gap: .4rem; }
.ck-video { display: block; width: 100%; max-width: 28rem; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio); background: #000; margin-top: .5rem; }
.ck-resultado { margin: 1rem 0; }
.ck-cartao { display: flex; gap: .75rem; align-items: center; padding: 1rem 1.1rem; border-radius: var(--raio); border: 2px solid; }
.ck-cartao svg { width: 2rem; height: 2rem; flex: none; }
.ck-cartao p { margin: 0; }
.ck-titulo { font: 700 1.2rem var(--fonte-ui); }
.ck-ok { background: #e6f4ea; border-color: #34a853; color: #14532d; }
.ck-ja { background: #fef3c7; border-color: #d97706; color: #78350f; }
.ck-erro { background: #fde8e7; border-color: #d93025; color: #7f1d1d; }
:root[data-tema="escuro"] .ck-ok { background: #14331f; color: #9ee2b4; } :root[data-tema="escuro"] .ck-ja { background: #3b2a08; color: #fcd77a; } :root[data-tema="escuro"] .ck-erro { background: #3d1513; color: #ffb4ae; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .ck-ok { background: #14331f; color: #9ee2b4; } :root:not([data-tema="claro"]) .ck-ja { background: #3b2a08; color: #fcd77a; } :root:not([data-tema="claro"]) .ck-erro { background: #3d1513; color: #ffb4ae; } }
.ck-barra { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.ck-barra input { flex: 1 1 14rem; max-width: 20rem; }
.ck-lista { list-style: none; margin: 0; padding: 0; }
.ck-lista li { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; justify-content: space-between; padding: .6rem 0; border-bottom: 1px solid var(--linha); }
.ck-lista li:last-child { border-bottom: 0; }
.ck-nome { display: grid; min-width: 0; overflow-wrap: anywhere; }
.ck-acoes { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }

/* ---------------------------------------------------------------- 4.32: painel da Secretaria, busca, acessos e auditoria */
.pg-busca { display: flex; gap: .5rem; flex: 1 1 18rem; max-width: 30rem; }
.pg-busca input { flex: 1; min-width: 0; }
.pg-funcao { margin: .5rem 0 0; }
.pg-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1rem; margin: 1rem 0; align-items: start; }
.pg-grade > .cartao { margin: 0; min-width: 0; }
.pg-grade h2 { margin-top: 0; font-size: 1.125rem; }
.pg-largo { grid-column: 1 / -1; }
.pg-multiplos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem 2rem; }
.pg-multiplos figure { margin: 0; }
.pg-multiplos figcaption { font-size: .9375rem; margin-bottom: .25rem; }
.pg-grafico { width: 100%; height: auto; display: block; overflow: visible; }
.pg-barra { fill: var(--dourado); }
.pg-base { stroke: var(--linha); stroke-width: 1; }
.pg-alvo { fill: transparent; }
.pg-coluna:hover .pg-alvo { fill: color-mix(in srgb, var(--dourado) 8%, transparent); }
.pg-valor { font: 600 12px var(--fonte-ui); fill: var(--tinta); }
.pg-mes { font: 11px var(--fonte-ui); fill: var(--tinta-2); }
.pg-ver-tabela { margin-top: .75rem; }
.pg-ver-tabela summary { cursor: pointer; min-height: 24px; }
.pg-tabela { margin-top: .5rem; }
.pg-lista { list-style: none; margin: 0; padding: 0; }
.pg-lista li { display: flex; gap: .5rem .75rem; align-items: center; justify-content: space-between; padding: .55rem 0; border-bottom: 1px solid var(--linha); }
.pg-lista li:last-child { border-bottom: 0; }
.pg-lista li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.pg-lista a { display: inline-block; min-height: 24px; line-height: 24px; }
.pg-acoes { display: flex; gap: .4rem; align-items: center; flex-shrink: 0; }
.pg-aniv li { justify-content: flex-start; }
.pg-dia { flex: 0 0 3.25rem; text-align: center; font: 600 .875rem var(--fonte-ui); font-variant-numeric: tabular-nums; padding: .2rem 0; border-radius: 8px; background: var(--superficie-2); }
.pg-aniv li.hoje .pg-dia { background: var(--dourado); color: var(--superficie); }
.pg-freq { font: 600 1rem var(--fonte-ui); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.pg-freq.baixa { color: #b45309; }
:root[data-tema="escuro"] .pg-freq.baixa { color: #fcd77a; }
.pg-hbarras { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.pg-hbarras li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .2rem .75rem; align-items: center; }
.pg-hrot { overflow-wrap: anywhere; }
.pg-hnum { font-variant-numeric: tabular-nums; font-weight: 600; }
.pg-hbarra { grid-column: 1 / -1; display: block; height: 8px; border-radius: 4px; background: var(--superficie-2); overflow: hidden; }
.pg-hbarra > span { display: block; height: 100%; width: 0; border-radius: 4px; background: var(--dourado); }
.pg-lista mark, .pg-grade mark { background: none; color: inherit; font-weight: 700; border-bottom: 2px solid var(--dourado-claro); border-radius: 0; padding: 0; }
.sec-so-ler { display: flex; gap: .5rem; align-items: center; }
.sec-funcoes { margin: 0 0 1rem; padding-left: 1.25rem; }
.sec-funcoes li { margin: .2rem 0; }
.aud-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: .75rem 1rem; align-items: end; }
.aud-filtros .campo { margin: 0; }
.aud-filtros .aud-texto { grid-column: span 2; }
.aud-filtros .linha-botoes { margin: 0; }
.aud-det { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .1rem .6rem; margin: 0; font-size: .8125rem; }
.aud-det dt { color: var(--tinta-2); }
.aud-det dd { margin: 0; overflow-wrap: anywhere; }
.aud-tabela td { vertical-align: top; }
.aud-tabela td:last-child { white-space: nowrap; }
.aud-tabela td:first-child { white-space: nowrap; }
.aud-det { min-width: 15rem; }
.aud-det dd { min-width: 8rem; }
.aud-tabela tbody th { vertical-align: top; }
@media (max-width: 640px) {
  .aud-filtros .aud-texto { grid-column: auto; }
  .aud-tabela tr { grid-template-columns: minmax(0, 1fr); }
  .aud-tabela th, .aud-tabela td { grid-column: 1 / -1 !important; grid-row: auto !important; padding-left: 0 !important; }
  .pg-busca { max-width: none; flex-basis: 100%; }
}

/* ---------------------------------------------------------------- 4.33: cadastro único (Ligações, Meus dados, contribuinte) */
.vin-contas, .vin-pares { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .75rem; }
.vin-conta, .vin-pares > li { margin: 0; }
.vin-conta-topo { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.vin-rotulo { margin: .75rem 0 .25rem; font-size: .875rem; font-weight: 600; color: var(--tinta-2); }
.vin-sugestoes { list-style: none; margin: 0; padding: 0; }
.vin-sugestoes li { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; justify-content: space-between; padding: .5rem 0; border-top: 1px solid var(--linha); }
.vin-sugestoes li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.vin-sugestoes a { display: inline-block; min-height: 24px; line-height: 24px; }
.vin-mais { margin-top: .5rem; }
.vin-mais summary { cursor: pointer; min-height: 24px; font-size: .9375rem; }
.vin-mais .campo { margin: .5rem 0; }
.vin-criar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .75rem; }
.vin-criar select { width: auto; }
.vin-dupla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; }
.vin-lado { border: 1px solid var(--linha); border-radius: 10px; padding: .6rem .8rem; min-width: 0; overflow-wrap: anywhere; }
.vin-lado p { margin: 0 0 .35rem; }
.vin-lado a { display: inline-block; min-height: 24px; line-height: 24px; }
.vin-senha .segredo { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.vin-ignoradas summary { cursor: pointer; min-height: 24px; }
.sec-conta { overflow-wrap: anywhere; }
.sec-conta a { display: inline-block; min-height: 24px; line-height: 24px; }
.tes-fieldset-ficha { border: 1px solid var(--linha); border-radius: 10px; padding: .5rem .9rem .75rem; margin: 0 0 .75rem; }
.tes-fieldset-ficha legend { font-weight: 600; padding: 0 .3rem; }
.tes-ficha-res { list-style: none; margin: .25rem 0 0; padding: 0; }
.tes-ficha-res li { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; justify-content: space-between; padding: .4rem 0; border-top: 1px solid var(--linha); }

/* 4.34: Administração › Usuários no formato das listas da Secretaria (sem avatar: sem recuo nas linhas de baixo) */
.tabela-usuarios th .sec-sub { font-weight: 400; }
@media (max-width: 640px) {
  .tabela-usuarios.sec-tabela .sec-c-extra { padding-left: 0; }
}

/* =====================================================================================================================
   4.35 — DESIGN SYSTEM (tokens) e CASCA DE SOFTWARE (menu por módulos recolhível, perfil, "Ir para…", caminho da página).
   Documentação: docs/DESIGN-SYSTEM.md. As cores da marca continuam vindo da personalização da igreja.
   ===================================================================================================================== */
:root {
  /* espaçamento (múltiplos de 4 px) */
  --esp-1: .25rem; --esp-2: .5rem; --esp-3: .75rem; --esp-4: 1rem; --esp-5: 1.5rem; --esp-6: 2rem; --esp-7: 3rem;
  /* raios */
  --raio-p: 6px; --raio-m: 10px; --raio-g: var(--raio); --raio-pilula: 999px;
  /* sombras (elevação 1: cartões; 2: hover; 3: menus, paleta, janelas) */
  --sombra-1: 0 1px 2px rgb(10 17 40 / .06); --sombra-2: var(--sombra); --sombra-3: 0 16px 40px rgb(10 17 40 / .18), 0 2px 8px rgb(10 17 40 / .08);
  /* tipografia */
  --fs-xs: .75rem; --fs-s: .875rem; --fs-m: 1rem; --fs-l: 1.125rem; --fs-xl: 1.375rem; --fs-2xl: 1.75rem;
  --fonte-titulos: var(--fonte-ui);
  /* cores de estado (além de --sucesso e --perigo) */
  --info: #1d4ed8; --alerta: #b45309;
  /* camadas e movimento */
  --z-topo: 30; --z-menu: 60; --z-paleta: 90; --transicao: .15s ease;
  --largura-lateral-recolhida: 64px;
}
:root[data-tema="escuro"] { --info: #93b4ff; --alerta: #fcd77a; --sombra-3: 0 16px 40px rgb(0 0 0 / .55), 0 2px 8px rgb(0 0 0 / .4); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) { --info: #93b4ff; --alerta: #fcd77a; --sombra-3: 0 16px 40px rgb(0 0 0 / .55), 0 2px 8px rgb(0 0 0 / .4); } }

/* Títulos do app na fonte da interface (aparência de software); o site da igreja e o texto bíblico seguem na serifada. */
h1, h2, h3 { font-family: var(--fonte-titulos); }
h1 { font-size: var(--fs-2xl); font-weight: 700; letter-spacing: -.01em; }
h2 { font-weight: 650; letter-spacing: -.005em; }
body.modo-site, .leitor, .site, .janela-app .site { --fonte-titulos: var(--fonte-leitura); }

.so-computador { display: none !important; }
@media (min-width: 861px) { .so-computador { display: inline-flex !important; } }
body.modo-site .so-app, body.apresentando .so-app { display: none !important; }

/* ---------- barra superior ---------- */
#recolher-menu { margin-right: -.25rem; }
.botao-comandos {
  align-items: center; gap: var(--esp-2); height: 36px; padding: 0 var(--esp-2) 0 var(--esp-3); margin-left: var(--esp-2);
  border: 1px solid rgb(255 255 255 / .25); border-radius: var(--raio-pilula); background: rgb(255 255 255 / .08); color: #f4efe2;
  font: 500 var(--fs-s) var(--fonte-ui); cursor: pointer; white-space: nowrap;
}
.botao-comandos:hover { background: rgb(255 255 255 / .16); }
.botao-comandos svg { width: 1rem; height: 1rem; }
.botao-comandos kbd { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .3); color: #f4efe2; font-size: var(--fs-xs); }
.perfil { position: relative; margin-left: var(--esp-1); }
.perfil-botao { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: none; border-radius: 50%; cursor: pointer; padding: 0; }
.perfil-avatar {
  display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  background: rgb(255 255 255 / .14); color: #f4efe2; font: 700 .8rem var(--fonte-ui); letter-spacing: .02em; border: 1px solid rgb(255 255 255 / .3);
}
.perfil-avatar.com-iniciais { background: #f4efe2; color: #0a1128; border-color: transparent; }
.perfil-avatar svg { width: 1.15rem; height: 1.15rem; }
.perfil-botao:hover .perfil-avatar, .perfil-botao[aria-expanded="true"] .perfil-avatar { box-shadow: 0 0 0 3px rgb(255 255 255 / .25); }
.perfil-menu {
  position: absolute; right: 0; top: calc(100% + 6px); width: min(300px, calc(100vw - 1rem)); z-index: var(--z-menu);
  background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio-m); box-shadow: var(--sombra-3); padding: var(--esp-2);
}
.perfil-cabeca { display: flex; gap: var(--esp-3); align-items: center; padding: var(--esp-2) var(--esp-2) var(--esp-3); border-bottom: 1px solid var(--linha); margin-bottom: var(--esp-1); }
.perfil-cabeca > span:last-child { display: grid; min-width: 0; overflow-wrap: anywhere; }
.perfil-avatar.grande { width: 42px; height: 42px; flex: none; background: var(--dourado); color: #fff; border: 0; font-size: .95rem; }
.perfil-sub { font-size: var(--fs-xs); color: var(--tinta-2); }
.perfil-item {
  display: flex; align-items: center; gap: var(--esp-3); width: 100%; min-height: 44px; padding: 0 var(--esp-3); border: 0; border-radius: var(--raio-p);
  background: none; color: var(--tinta) !important; text-decoration: none; font: 500 var(--fs-s) var(--fonte-ui); cursor: pointer; text-align: left;
}
.perfil-item:hover, .perfil-item:focus-visible { background: var(--superficie-2); }
.perfil-item svg { width: 1.1rem; height: 1.1rem; color: var(--tinta-2); }
.perfil-item.perigo, .perfil-item.perigo svg { color: var(--perigo) !important; }

/* ---------- menu lateral por módulos ---------- */
.lateral .grupo-principal { margin-bottom: var(--esp-2); }
.grupo-menu { margin-top: var(--esp-1); }
.grupo-titulo {
  display: flex; align-items: center; gap: var(--esp-2); width: 100%; min-height: 34px; padding: 0 var(--esp-3); margin-top: var(--esp-2);
  border: 0; background: none; border-radius: var(--raio-p); cursor: pointer; color: var(--tinta-2);
  font: 700 var(--fs-xs) var(--fonte-ui); text-transform: uppercase; letter-spacing: .07em; text-align: left;
}
.grupo-titulo:hover { color: var(--tinta); background: rgb(127 127 127 / .08); }
.grupo-titulo .rotulo { flex: 1; }
.grupo-titulo .grupo-icone { display: none; }
.grupo-titulo .grupo-seta { width: .9rem; height: .9rem; transition: transform var(--transicao); }
.grupo-menu.fechado .grupo-seta { transform: rotate(-90deg); }
.grupo-menu.fechado > ul { display: none; }
.lateral .secundaria { margin-top: 0; padding-top: 0; border-top: 0; }
.grupo-menu[data-grupo="gestao"] { margin-top: var(--esp-3); padding-top: var(--esp-2); border-top: 1px solid var(--linha); }
.lateral a .rotulo, .lateral .link .rotulo { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* Menu recolhido (computador): só os ícones; o nome aparece ao passar o mouse (title) e para leitores de tela. */
@media (min-width: 861px) {
  body.menu-recolhido { --largura-lateral: var(--largura-lateral-recolhida); }
  body.menu-recolhido .lateral { padding-inline: var(--esp-2); overflow-x: hidden; }
  body.menu-recolhido .lateral .rotulo, body.menu-recolhido .lateral-versao, body.menu-recolhido .lateral-instalar span,
  body.menu-recolhido .grupo-titulo .grupo-seta { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.menu-recolhido .lateral a, body.menu-recolhido .lateral .link { justify-content: center; padding: 0; min-height: 44px; }
  body.menu-recolhido .grupo-titulo { justify-content: center; min-height: 24px; height: 24px; margin: 0; padding: 0; border-top: 0; border-radius: var(--raio-p);
    background: linear-gradient(var(--linha), var(--linha)) center / 60% 1px no-repeat; }
  body.menu-recolhido .grupo-menu.fechado > ul { display: block; }
  body.menu-recolhido .grupo-menu[data-grupo="gestao"] { border-top: 0; padding-top: 0; }
}

/* ---------- caminho da página ---------- */
.trilha { margin-bottom: var(--esp-3); }
.trilha ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-1) var(--esp-2); list-style: none; margin: 0; padding: 0; font-size: var(--fs-s); color: var(--tinta-2); }
.trilha li { display: inline-flex; align-items: center; gap: var(--esp-2); min-width: 0; }
.trilha li + li::before { content: "›"; color: var(--tinta-2); }
.trilha a { color: var(--tinta-2) !important; text-decoration: none; display: inline-block; min-height: 24px; line-height: 24px; }
.trilha a:hover { color: var(--tinta) !important; text-decoration: underline; }
.trilha [aria-current="page"] { color: var(--tinta); font-weight: 600; overflow-wrap: anywhere; }
.trilha + .tela > .largura-leitura > h1:first-child, .trilha + .tela > .largura-larga > h1:first-child,
.trilha + .tela .sec-topo h1 { margin-top: 0; }

/* ---------- "Ir para…" (Ctrl+K) ---------- */
body.com-paleta { overflow: hidden; }
.comandos-fundo { position: fixed; inset: 0; z-index: var(--z-paleta); background: rgb(10 17 40 / .5); display: flex; justify-content: center; align-items: flex-start; padding: 12vh var(--esp-4) var(--esp-4); }
.comandos { width: min(640px, 100%); max-height: 76vh; display: flex; flex-direction: column; background: var(--superficie); color: var(--tinta);
  border: 1px solid var(--linha); border-radius: var(--raio-g); box-shadow: var(--sombra-3); overflow: hidden; }
.comandos-busca { display: flex; align-items: center; gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); border-bottom: 1px solid var(--linha); }
.comandos-busca svg { color: var(--tinta-2); }
.comandos-busca input { flex: 1; min-width: 0; border: 0; background: none; font: 500 var(--fs-l) var(--fonte-ui); padding: var(--esp-2) 0; outline: none; color: var(--tinta); }
.comandos ul { list-style: none; margin: 0; padding: var(--esp-2); overflow-y: auto; }
.comandos li { display: flex; align-items: center; gap: var(--esp-3); min-height: 44px; padding: 0 var(--esp-3); border-radius: var(--raio-p); cursor: pointer; }
.comandos li svg { color: var(--tinta-2); width: 1.1rem; height: 1.1rem; }
.comandos li.ativo { background: rgb(0 163 53 / .1); box-shadow: inset 3px 0 0 var(--dourado-claro); }
.comandos li.ativo svg { color: var(--dourado); }
.comando-rotulo { font-weight: 500; }
.comando-modulo { margin-left: auto; font-size: var(--fs-xs); color: var(--tinta-2); white-space: nowrap; }
.comandos-vazio { margin: 0; padding: 0 var(--esp-4) var(--esp-2); font-size: var(--fs-xs); color: var(--tinta-2); }
.comandos-rodape { display: flex; gap: var(--esp-4); margin: 0; padding: var(--esp-2) var(--esp-4); border-top: 1px solid var(--linha); font-size: var(--fs-xs); color: var(--tinta-2); background: var(--superficie-2); }
.comandos kbd { font-size: var(--fs-xs); }

/* ---------- cabeçalho de página (componente para as próximas fases; .sec-topo já segue este padrão) ---------- */
.cabecalho-pagina { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--esp-3) var(--esp-4); margin-bottom: var(--esp-4); }
.cabecalho-pagina h1 { margin: 0; }
.cabecalho-pagina .descricao { margin: var(--esp-1) 0 0; color: var(--tinta-2); max-width: 60ch; }
.cabecalho-pagina .acoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); }

/* ---------- conta: tarefas agendadas, "esqueci" ---------- */
.esqueci { margin: var(--esp-2) 0 0; font-size: var(--fs-s); }
.esqueci a { display: inline-block; min-height: 24px; line-height: 24px; }
.lista-tarefas { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--esp-3); }
.lista-tarefas li { display: flex; gap: var(--esp-3); align-items: flex-start; }
.lista-tarefas li > span { display: grid; gap: 2px; }
.lista-tarefas .ok > svg { color: var(--sucesso); }
.lista-tarefas .atencao > svg { color: var(--alerta); }
/* No celular a conta fica na barra inferior (sempre o 5º item): o menu do perfil é só do computador. */
.so-computador-bloco { display: none !important; }
@media (min-width: 861px) { .so-computador-bloco { display: block !important; } body.modo-site .so-computador-bloco { display: none !important; } }
.abas a { gap: var(--esp-2); }

/* ======================================================================================
   4.36 — COMPONENTES DE GESTÃO (design system, fase 2): indicadores, tabela de dados, paginação,
   estados vazio e de falha, confirmação do app. Documentados em docs/DESIGN-SYSTEM.md.
   ====================================================================================== */
.indicadores { list-style: none; margin: var(--esp-4) 0; padding: 0; display: grid; gap: var(--esp-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.indicador > a, .indicador > div { display: grid; align-content: start; gap: var(--esp-1); height: 100%; box-sizing: border-box; padding: var(--esp-4); background: var(--superficie);
  border: 1px solid var(--linha); border-radius: var(--raio-g); box-shadow: var(--sombra-1); color: var(--tinta); text-decoration: none; transition: border-color var(--transicao), box-shadow var(--transicao); }
.indicador > a:hover { border-color: var(--dourado-claro); box-shadow: var(--sombra-2); }
.indicador > a:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.indicador-rotulo { font-size: var(--fs-s); color: var(--tinta-2); font-weight: 500; }
.indicador-valor { font: 700 var(--fs-2xl)/1.15 var(--fonte-ui); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.indicador-detalhe { font-size: var(--fs-xs); color: var(--tinta-2); }
.indicador.entrada .indicador-valor { color: var(--tes-entrada, var(--sucesso)); }
.indicador.saida .indicador-valor { color: var(--tes-saida, var(--perigo)); }
.indicador.destaque > a, .indicador.destaque > div, .indicador.alerta > a, .indicador.alerta > div { border-color: var(--alerta); background: color-mix(in srgb, var(--alerta) 9%, var(--superficie)); }

.estado-vazio, .estado-falha { display: grid; justify-items: center; text-align: center; gap: var(--esp-2); padding: var(--esp-6) var(--esp-4); background: var(--superficie);
  border: 1px dashed var(--linha); border-radius: var(--raio-g); }
.estado-vazio.compacto { padding: var(--esp-5) var(--esp-4); }
.estado-falha { border-style: solid; border-color: var(--perigo); }
.estado-icone { width: 2rem; height: 2rem; color: var(--tinta-2); }
.estado-falha .estado-icone { color: var(--perigo); }
.estado-titulo { margin: 0; font-weight: 700; font-size: var(--fs-l); }
.estado-texto { margin: 0; color: var(--tinta-2); max-width: 52ch; }
.estado-vazio .linha-botoes, .estado-falha .linha-botoes { justify-content: center; margin: var(--esp-2) 0 0; }

.paginacao-dados { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-4); margin: var(--esp-3) 0; color: var(--tinta-2); font-size: var(--fs-s); }
.paginacao-dados.so-total { justify-content: flex-end; text-align: right; }
.paginacao-botoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-1); }
.paginacao-botoes .botao { min-width: 36px; justify-content: center; font-variant-numeric: tabular-nums; }
.paginacao-botoes .atual { background: var(--dourado); border-color: var(--dourado); color: var(--superficie); font-weight: 700; cursor: default; }
.paginacao-reticencias { padding: 0 var(--esp-1); }
.paginacao-dados .rotulo-celular { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 640px) {
  .paginacao-dados { justify-content: center; }
  .paginacao-numero, .paginacao-reticencias { display: none; }
  .paginacao-dados .rotulo-celular { position: static; width: auto; height: auto; clip: auto; }
}

.tabela-dados .sec-tabela thead th[aria-sort] { padding: 0; }
.sec-tabela button.ordenar { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: var(--esp-1); width: 100%; min-height: 36px; padding: .6rem 1rem; cursor: pointer;
  font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }
.sec-tabela th.num button.ordenar { justify-content: flex-end; }
.sec-tabela button.ordenar:hover { color: var(--tinta); }
.sec-tabela button.ordenar:focus-visible { outline: 3px solid var(--foco); outline-offset: -3px; }
.ordenar-seta { width: .9rem; height: .9rem; opacity: 0; transition: opacity var(--transicao); }
.ordenar:hover .ordenar-seta, .ordenar.ativa .ordenar-seta { opacity: 1; }
.ordenar.ativa { color: var(--tinta); }
.tabela-ordenar-celular { display: none; }
@media (max-width: 640px) {
  .tabela-ordenar-celular { display: flex; align-items: center; justify-content: flex-end; gap: var(--esp-2); margin: 0 0 var(--esp-2); font-size: var(--fs-s); color: var(--tinta-2); }
  .tabela-ordenar-celular select { width: auto; min-height: 44px; }
  .tabela-dados .sec-tabela .num { text-align: left; }
}
.tabela-barra { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-3); margin: 0 0 var(--esp-3); }
.tabela-barra select { width: auto; max-width: 100%; }
.tabela-busca-caixa { position: relative; flex: 1 1 16rem; min-width: 0; }
.tabela-busca-caixa svg { position: absolute; left: .75rem; top: 50%; width: 1rem; height: 1rem; transform: translateY(-50%); color: var(--tinta-2); pointer-events: none; }
.tabela-busca-caixa input { width: 100%; padding-left: 2.25rem; }
.tabela-acoes { display: flex; gap: var(--esp-2); margin-left: auto; }
.tabela-contagem { margin: 0 0 var(--esp-2); font-size: var(--fs-s); color: var(--tinta-2); }

dialog.confirmacao { width: min(92vw, 28rem); padding: var(--esp-5); border-radius: var(--raio-g); box-shadow: var(--sombra-3); }
.confirmacao-corpo { display: flex; gap: var(--esp-3); align-items: flex-start; }
.confirmacao-icone { flex: none; width: 1.5rem; height: 1.5rem; margin-top: .15rem; color: var(--perigo); }
.confirmacao h2 { margin: 0 0 var(--esp-2); font-size: var(--fs-l); }
.confirmacao p { margin: 0; color: var(--tinta-2); }
.confirmacao .linha-botoes { justify-content: flex-end; margin: var(--esp-5) 0 0; }
.confirmacao .botao.perigo { background: var(--perigo); border-color: var(--perigo); color: var(--superficie); }
.confirmacao .botao.perigo:hover { filter: brightness(1.08); background: var(--perigo); }
/* ajustes da revisão visual (4.36) */
.indicador-valor { color: var(--tinta); }
.sec-tabela button.ordenar { white-space: nowrap; }
@media (min-width: 641px) { .tabela-dados .sec-tabela td.num, .tabela-dados .sec-tabela th.num { text-align: right; } }
.tes-cabeca > .cabecalho-pagina { flex: 1 1 100%; margin-bottom: 0; }
.cabecalho-pagina .acoes { align-items: center; }
@media (max-width: 640px) {
  .indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-2); }
  .indicador > a, .indicador > div { padding: var(--esp-3); border-radius: var(--raio-m); }
  .indicador-valor { font-size: var(--fs-xl); }
  .indicador-rotulo { font-size: var(--fs-xs); }
}

/* 4.37 (fase 3): lista de cartões com busca e ordem */
.grade-ordem { display: inline-flex; align-items: center; gap: var(--esp-2); margin-left: auto; font-size: var(--fs-s); color: var(--tinta-2); }
.grade-ordem select { width: auto; }
@media (max-width: 640px) { .grade-ordem { margin-left: 0; } }
.tabela-barra > * { min-width: 0; max-width: 100%; }
.grade-ordem { flex-wrap: wrap; max-width: 100%; }
.grade-ordem select { max-width: 100%; }

/* 4.38: foto do perfil */
.avatar-pessoa { flex: none; display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; width: 2.25rem; height: 2.25rem;
  font: 700 .8125rem var(--fonte-ui); background: color-mix(in srgb, var(--marinho) 12%, var(--superficie)); color: var(--marinho-2, var(--marinho)); }
.avatar-pessoa.tam-p { width: 1.75rem; height: 1.75rem; font-size: .6875rem; }
.avatar-pessoa.tam-g { width: 5.5rem; height: 5.5rem; font-size: 1.75rem; }
.avatar-pessoa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar-pessoa.com-foto { background: var(--superficie-2); box-shadow: 0 0 0 1px var(--linha); }
:root[data-tema="escuro"] .avatar-pessoa:not(.com-foto) { background: #2d4373; color: #fff; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .avatar-pessoa:not(.com-foto) { background: #2d4373; color: #fff; } }
.foto-perfil { display: flex; align-items: center; gap: var(--esp-4); flex-wrap: wrap; }
.foto-perfil-texto { flex: 1 1 14rem; min-width: 0; }
.foto-perfil-texto .linha-botoes { margin: var(--esp-2) 0 0; }
.foto-editor { display: grid; gap: var(--esp-3); }
.foto-moldura { display: grid; place-items: center; }
.foto-moldura .foto-atual { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; }
.foto-vista { width: min(240px, 70vw); height: auto; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 3px var(--dourado-claro); cursor: grab; touch-action: none; }
.foto-vista:active { cursor: grabbing; }
.foto-controles { display: grid; gap: var(--esp-1); }
.foto-controles input[type=range] { width: 100%; }
.perfil-avatar.com-foto { padding: 0; overflow: hidden; }
.perfil-avatar.com-foto img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.sec-avatar.com-foto { overflow: hidden; background: var(--superficie-2); box-shadow: 0 0 0 1px var(--linha); }
.sec-avatar.com-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sec-resumo .foto-perfil { flex-direction: column; gap: var(--esp-2); margin-bottom: var(--esp-2); }
.sec-resumo .foto-perfil .linha-botoes { justify-content: center; }
.aniv-foto { width: 3rem; height: 3rem; }

/* 5.0: Administração › Sistema e Distribuição */
.sis-dl { text-align: left; }
.sis-instalar { margin-top: var(--esp-4); }
.sis-instalar textarea { font-family: ui-monospace, monospace; font-size: var(--fs-xs); }
.sis-versao { margin: var(--esp-2) 0; }
.sis-notas { white-space: pre-wrap; overflow-wrap: anywhere; font: var(--fs-s)/1.5 var(--fonte-ui); background: var(--superficie-2); padding: var(--esp-3); border-radius: var(--raio-m); max-height: 22rem; overflow: auto; }
.sis-passo { margin: var(--esp-2) 0 0; }
.sis-conf-lista { list-style: none; margin: 0; padding: 0; }
.sis-conf-lista li { display: flex; gap: var(--esp-3); align-items: flex-start; padding: var(--esp-3) 0; border-bottom: 1px solid var(--linha); }
.sis-conf-lista li > .sec-selo { flex: none; min-width: 5.5em; text-align: center; }
.sis-conf-lista li p { margin: .2em 0 0; overflow-wrap: anywhere; }
.sis-conf-como { font-weight: 600; }
.sis-chave { display: inline-block; max-width: 100%; overflow-wrap: anywhere; font-size: var(--fs-xs); }

/* 5.3: configurações do servidor */
.cfg-grupo { margin: 0 0 var(--esp-4); }
.cfg-grupo > legend { font-weight: 700; font-size: 1.1rem; padding: 0 var(--esp-2); }
.cfg-campo { margin-top: var(--esp-3); }
.cfg-segredo-linha { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-4); margin: var(--esp-2) 0 0; }
.cfg-acoes { position: sticky; bottom: 0; background: var(--papel); padding: var(--esp-3) 0; }

/* 5.4: site de divulgação (só na central) — planos e valores, pedido de demonstração */
.site-planos { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.site-planos.n-1 { grid-template-columns: minmax(0, 28rem); justify-content: center; }
.site-planos.n-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-planos.n-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.site-plano { position: relative; display: flex; flex-direction: column; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.5rem; box-shadow: var(--sombra); }
.site-plano.destaque { border: 2px solid var(--dourado-claro); }
.site-plano-selo { position: absolute; top: -.8rem; left: 1.25rem; margin: 0; padding: .15rem .7rem; border-radius: 999px; background: var(--dourado); color: var(--papel); font-size: .8rem; font-weight: 700; }
.site-plano-nome { margin: .2rem 0 .3rem; font-size: 1.2rem; color: var(--tinta) !important; }
.site-plano-preco { margin: 0 0 .6rem; color: var(--tinta-2); }
.site-plano-preco strong { font-size: 1.7rem; color: var(--tinta); }
.site-plano-desc { margin: 0 0 .8rem; color: var(--tinta-2); }
.site-plano-itens { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .45rem; }
.site-plano-itens li { display: flex; gap: .5rem; align-items: flex-start; }
.site-plano-itens svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .2rem; color: var(--dourado); }
.site-plano-acao { margin: auto 0 0; }
.site-plano-acao .botao { width: 100%; justify-content: center; }
.site-plano-nota { margin: 1rem 0 0; font-size: .9rem; color: var(--tinta-2); }
.site-demo { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
.site-demo.com-form { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.site-demo-form { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.25rem 1.5rem; display: grid; gap: .25rem; }
.site-demo-form label:not(.check) { font-weight: 600; margin-top: .5rem; }
.site-demo-form input:not([type=checkbox]), .site-demo-form textarea { width: 100%; }
.site-demo-form .check { margin-top: .75rem; }
.site-demo-form-titulo { margin: 0; font-weight: 700; font-size: 1.1rem; }
.site-demo-form .contato-enviado { display: flex; gap: .5rem; align-items: center; }
@media (max-width: 900px) { .site-planos, .site-planos.n-2, .site-planos.n-4 { grid-template-columns: minmax(0, 1fr); } .site-demo.com-form { grid-template-columns: minmax(0, 1fr); } }

/* 5.5: modo demonstração */
.faixa-demo { background: #fef3c7; color: #3b2a08; border-bottom: 1px solid #f6d98a; padding: .45rem 1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .25rem 1rem; font-size: .9rem; position: relative; z-index: 31; }
.faixa-demo p { margin: 0; text-align: center; }
.faixa-demo-botoes { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.faixa-demo .botao { background: #fff; color: #3b2a08; border-color: #d9b44a; }
:root[data-tema="escuro"] .faixa-demo { background: #3b2a08; color: #fcd77a; border-color: #6b4a10; }
:root[data-tema="escuro"] .faixa-demo .botao { background: #1f1606; color: #fcd77a; border-color: #8a6a1f; }
.demo-entrar { border: 2px solid var(--dourado-claro); margin-bottom: var(--esp-4, 1rem); }
.sis-demo-contas input { width: 100%; max-width: 26rem; }

/* 5.6: cadastro do visitante pelo QR Code */
.visita-cabeca { display: flex; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.visita-cabeca h1 { margin: 0; }
.visita-cabeca .descricao { margin: .25rem 0 0; color: var(--tinta-2); }
.visita-logo { width: 64px; height: 64px; object-fit: contain; flex: none; }
.visita-form { display: grid; gap: .5rem; }
.visita-grade { display: grid; gap: 0 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.visita-grade .campo input:not([type=checkbox]), .visita-grade .campo select, .visita-form textarea { width: 100%; }
.visita-form .check { align-items: flex-start; }
.visita-form .check input { flex: none; margin-top: .2rem; }
.visita-bloco, .visita-quem { border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem; margin: .5rem 0; }
.visita-bloco legend, .visita-quem legend { font-weight: 700; padding: 0 .35rem; }
.visita-acomp-linha { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) auto; gap: .5rem; align-items: end; }
.visita-acomp-linha .campo { margin: 0; }
.visita-acomp-linha input, .visita-acomp-linha select { width: 100%; }
.visita-quem-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: .5rem; margin-top: .5rem; }
.visita-pessoa { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .6rem .4rem; border: 2px solid var(--linha); border-radius: var(--raio); cursor: pointer; text-align: center; font-weight: 600; min-height: 44px; }
.visita-pessoa input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.visita-pessoa:has(input:checked) { border-color: var(--dourado); background: var(--superficie-2, rgba(201,162,39,.08)); }
.visita-pessoa:has(input:focus-visible) { outline: 3px solid var(--foco, #2563eb); outline-offset: 2px; }
.visita-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; background: var(--azul, #1b2a4a); color: #fff; font-weight: 700; flex: none; }
.visita-avatar.neutro { background: var(--linha); color: var(--tinta); }
.visita-avatar.neutro svg { width: 1.5rem; height: 1.5rem; }
.visita-avatar.pequeno { width: 32px; height: 32px; font-size: .75rem; }
.botao.grande { min-height: 52px; padding-inline: 1.75rem; font-size: 1.05rem; }
.visita-ok h1 { display: flex; gap: .5rem; align-items: center; }
.visita-ok h1 svg { color: #15803d; width: 1.6rem; height: 1.6rem; }
body.modo-recepcao .topo, body.modo-recepcao .lateral, body.modo-recepcao .inferior, body.modo-recepcao .faixa-aviso, body.modo-recepcao .trilha { display: none !important; }
body.modo-recepcao .visita { max-width: 46rem; margin-inline: auto; padding-top: 1.5rem; }
@media (max-width: 640px) { .visita-grade { grid-template-columns: minmax(0, 1fr); } .visita-acomp-linha { grid-template-columns: minmax(0, 1fr) auto; } .visita-acomp-linha .campo:nth-child(2) { grid-column: 1; } }
.qr-colunas { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; margin-top: 1rem; }
.qr-colunas textarea, .qr-colunas select { width: 100%; }
@media (max-width: 900px) { .qr-colunas { grid-template-columns: minmax(0, 1fr); } }
.qr-equipe { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: .4rem; }
.qr-equipe li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .75rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid var(--linha); }
.qr-equipe .check { display: flex; align-items: center; gap: .5rem; }
.cartaz-qr { background: #fff; color: #111; border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.5rem; text-align: center; display: grid; justify-items: center; gap: .4rem; }
.cartaz-logo { width: 72px; height: 72px; object-fit: contain; }
.cartaz-igreja { margin: 0; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #333; }
.cartaz-titulo { margin: .2rem 0 0; font-size: 1.9rem; color: #111 !important; }
.cartaz-texto { margin: 0; max-width: 26rem; color: #333; }
.cartaz-codigo { width: min(100%, 260px); height: auto; margin: .5rem 0; }
.cartaz-rodape { margin: 0; font-size: .85rem; color: #555; }
.qr-trocar { margin-top: 1rem; }
.qr-trocar summary { cursor: pointer; font-weight: 600; }
.recebidos { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .8rem; }
.recebido-cabeca { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; }
.recebido-cabeca h2 { margin: 0; font-size: 1.15rem; }
.recebido-contato { display: grid; gap: .25rem; margin-top: .5rem; }
.recebido-contato input, .recebido-contato select { width: 100%; }
@media print {
  body.so-cartaz * { visibility: hidden !important; }
  body.so-cartaz .cartaz-qr, body.so-cartaz .cartaz-qr * { visibility: visible !important; }
  body.so-cartaz .cartaz-qr { position: absolute; left: 0; top: 0; width: 100%; border: 0; padding: 2cm 1.5cm; gap: .6cm; }
  body.so-cartaz .cartaz-titulo { font-size: 34pt; }
  body.so-cartaz .cartaz-texto { font-size: 16pt; max-width: none; }
  body.so-cartaz .cartaz-igreja { font-size: 16pt; }
  body.so-cartaz .cartaz-codigo { width: 11cm; }
  body.so-cartaz .cartaz-rodape { font-size: 12pt; }
}

/* 5.7: escalas dos ministérios */
.esc-lista, .esc-cartoes { list-style: none; padding: 0; margin: .75rem 0 1.5rem; display: grid; gap: .8rem; }
.esc-item { display: flex; gap: 1rem; align-items: flex-start; }
.esc-data { flex: none; width: 4.6rem; text-align: center; border-radius: var(--raio); background: var(--superficie-2, rgba(27,42,74,.06)); padding: .5rem .25rem; display: grid; gap: .1rem; font-size: .8rem; color: var(--tinta-2); }
.esc-dia { font-size: 1.7rem; font-weight: 700; line-height: 1; color: var(--tinta); }
.esc-hora { font-weight: 700; color: var(--tinta); }
.esc-corpo { min-width: 0; flex: 1; }
.esc-corpo h3 { margin: .1rem 0 .3rem; font-size: 1.05rem; }
.esc-min { margin: 0; display: flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 600; color: var(--tinta-2); }
.esc-cor { width: .7rem; height: .7rem; border-radius: 50%; flex: none; }
.esc-linha { margin: 0 0 .4rem; }
.esc-obs { margin: .2rem 0; font-size: .9rem; color: var(--tinta-2); display: flex; gap: .3rem; align-items: center; }
.esc-obs svg { width: 1rem; height: 1rem; flex: none; }
.esc-equipe { margin: .2rem 0 .5rem; font-size: .9rem; color: var(--tinta-2); }
.sec-selo.esc-pendente { background: #fef3c7; border-color: #f6d98a; color: #6b4a00; }
.sec-selo.esc-confirmado { background: #e6f4ea; border-color: #b7dfc3; color: #14532d; }
.sec-selo.esc-recusado { background: #fde8e8; border-color: #f5b5b5; color: #8a1c1c; }
.sec-selo.esc-troca { background: #e8eefc; border-color: #b9c8f2; color: #1e3a8a; }
.sec-selo.esc-rascunho { background: #fef3c7; border-color: #f6d98a; color: #6b4a00; }
:root[data-tema="escuro"] .sec-selo.esc-pendente, :root[data-tema="escuro"] .sec-selo.esc-rascunho { background: #3b2a08; color: #fcd77a; border-color: #6b4a10; }
:root[data-tema="escuro"] .sec-selo.esc-confirmado { background: #0f2e1b; color: #86efac; border-color: #1f5a35; }
:root[data-tema="escuro"] .sec-selo.esc-recusado { background: #3a1212; color: #fca5a5; border-color: #6b2020; }
:root[data-tema="escuro"] .sec-selo.esc-troca { background: #16213f; color: #a5b8f5; border-color: #2b3d70; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .sec-selo.esc-pendente, :root:not([data-tema="claro"]) .sec-selo.esc-rascunho { background: #3b2a08; color: #fcd77a; border-color: #6b4a10; }
  :root:not([data-tema="claro"]) .sec-selo.esc-confirmado { background: #0f2e1b; color: #86efac; border-color: #1f5a35; }
  :root:not([data-tema="claro"]) .sec-selo.esc-recusado { background: #3a1212; color: #fca5a5; border-color: #6b2020; }
  :root:not([data-tema="claro"]) .sec-selo.esc-troca { background: #16213f; color: #a5b8f5; border-color: #2b3d70; } }
.esc-item.sit-recusado { opacity: .85; }
.esc-motivo, .esc-editar { display: grid; gap: .25rem; margin-top: .5rem; }
.esc-motivo input, .esc-editar input, .esc-ind-form input, .esc-gerar input:not([type=checkbox]) { width: 100%; }
.esc-ind-lista { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: .3rem; }
.esc-ind-lista li { display: flex; justify-content: space-between; align-items: center; gap: .5rem; border-bottom: 1px solid var(--linha); padding: .2rem 0; }
.esc-ind-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 0 .75rem; align-items: end; }
@media (max-width: 700px) { .esc-ind-form { grid-template-columns: minmax(0, 1fr); } }
.esc-mes-nav { display: flex; align-items: center; gap: .5rem; margin: .5rem 0 1rem; }
.esc-mes-nome { margin: 0; font-size: 1.3rem; min-width: 12rem; text-align: center; }
.esc-barra { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.esc-gerar { display: grid; gap: .5rem; margin-bottom: 1rem; }
.esc-gerar h3 { margin: 0; }
.esc-dias { display: flex; flex-wrap: wrap; gap: .4rem 1rem; border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem .75rem; margin: 0; }
.esc-gerar-campos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 .75rem; }
@media (max-width: 700px) { .esc-gerar-campos { grid-template-columns: minmax(0, 1fr); } }
.esc-cartao.passada { opacity: .7; }
.esc-cartao-cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; margin-bottom: .5rem; }
.esc-cartao-cabeca h3 { margin: 0; font-size: 1.05rem; }
.esc-cartao-acoes { margin-left: auto; display: flex; gap: .25rem; }
.esc-funcao { display: grid; grid-template-columns: 9rem minmax(0, 1fr) minmax(0, 14rem); gap: .5rem; align-items: center; padding: .4rem 0; border-top: 1px solid var(--linha); }
.esc-funcao-nome { font-weight: 600; }
@media (max-width: 760px) { .esc-funcao { grid-template-columns: minmax(0, 1fr); } }
.esc-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.esc-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .2rem .1rem .65rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--superficie); font-size: .9rem; }
.esc-chip.esc-confirmado { border-color: #3a9b5c; }
.esc-chip.esc-recusado { border-color: #c0392b; text-decoration: line-through; }
.esc-chip.esc-troca { border-color: #3b5bdb; border-style: dashed; }
.esc-chip .botao-icone { width: 28px; height: 28px; min-height: 28px; }
.esc-chip .botao-icone svg { width: .85rem; height: .85rem; }
.esc-chip-sit { font-weight: 700; }
.esc-sel { width: 100%; }
.esc-funcao-linha { display: grid; grid-template-columns: minmax(0, 1fr) 6rem auto; gap: .5rem; align-items: center; margin: .3rem 0; }
.esc-funcao-linha.esc-cab { font-size: .85rem; color: var(--tinta-2); font-weight: 600; }
.esc-funcao-linha input { width: 100%; }
.esc-equipe-tab { border-collapse: collapse; width: 100%; font-size: .93rem; }
.esc-equipe-tab th, .esc-equipe-tab td { border-bottom: 1px solid var(--linha); padding: .45rem .5rem; text-align: center; }
.esc-equipe-tab th[scope="row"], .esc-equipe-tab thead th:first-child { text-align: left; }
.esc-equipe-tab input[type=checkbox] { width: 1.2rem; height: 1.2rem; }
.esc-sem-conta { display: block; }
.esc-impressao { display: none; }
@media print {
  body.so-escala * { visibility: hidden !important; }
  body.so-escala .esc-impressao, body.so-escala .esc-impressao * { visibility: visible !important; }
  body.so-escala .esc-impressao { display: block; position: absolute; left: 0; top: 0; width: 100%; color: #000; }
  .esc-impressao table { width: 100%; border-collapse: collapse; font-size: 11pt; }
  .esc-impressao th, .esc-impressao td { border: 1px solid #999; padding: 4pt 6pt; text-align: left; vertical-align: top; }
  .esc-impressao th[scope=row] span { display: block; font-weight: 400; font-size: 9pt; }
  .esc-impressao h2 { font-size: 16pt; margin: 0 0 8pt; color: #000 !important; }
}

/* 5.8: jornada do visitante e presença nos cultos */
.jor-quadro { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(15rem, 1fr); gap: .75rem; overflow-x: auto; padding-bottom: .5rem; margin: 1rem 0; }
.jor-coluna { background: var(--superficie-2, rgba(27,42,74,.05)); border-radius: var(--raio); padding: .6rem; min-width: 0; }
.jor-coluna h2 { margin: 0 0 .5rem; font-size: 1rem; display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.jor-n { font-size: .8rem; min-width: 1.6rem; text-align: center; border-radius: 999px; padding: .05rem .4rem; background: var(--superficie); border: 1px solid var(--linha); }
.jor-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.jor-cartao { padding: .6rem .7rem; display: grid; gap: .2rem; }
.jor-cartao.atrasado { border-left: 4px solid #b3261e; }
.jor-cartao p { margin: 0; }
.jor-nome { font-weight: 700; }
.jor-acoes { display: flex; gap: .35rem; align-items: center; margin-top: .25rem; }
.jor-acoes select { flex: 1; min-width: 0; }
.jor-editar { margin-top: 1rem; }
.jor-editar summary { cursor: pointer; font-weight: 700; }
@media (max-width: 760px) { .jor-quadro { grid-auto-flow: row; grid-auto-columns: auto; } }
.pr-abrir { display: grid; gap: .4rem; margin: 1rem 0; }
.pr-abrir h2 { margin: 0; }
.pr-lista { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .5rem; }
.pr-item { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: center; padding: .7rem 1rem; }
.pr-ausente { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; align-items: center; padding: .7rem 1rem; }
.pr-ausente p { margin: .15rem 0 0; }
.pr-semanas { max-width: 14rem; }
.pr-semanas select { width: 100%; }
.pr-qr { width: min(100%, 260px); height: auto; margin: .5rem 0; }
.pr-busca-lista, .pr-presentes { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: .25rem; }
.pr-busca-lista li, .pr-presentes li { display: flex; justify-content: space-between; align-items: center; gap: .5rem; border-bottom: 1px solid var(--linha); padding: .3rem 0; }
#pr-busca { width: 100%; }
.pr-tela { position: fixed; inset: 0; z-index: 200; background: #fff; color: #111; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 2rem; text-align: center; }
.pr-tela h2 { font-size: clamp(2rem, 5vw, 4rem); margin: 0; color: #111 !important; }
.pr-tela-igreja { margin: 0; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #333; }
.pr-tela-texto { margin: 0; font-size: clamp(1.1rem, 2.5vw, 1.8rem); color: #333; }
.pr-tela .pr-qr { width: min(60vh, 80vw); }
.pr-tela-n { font-size: 1.4rem; font-weight: 700; margin: 0; }
.pr-tela-fechar { position: absolute; top: 1rem; right: 1rem; }

/* 5.9: check-in do ministério infantil */
.inf-abas { margin: 1rem 0; }
.inf-lista { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .6rem; }
.inf-item { display: grid; gap: .25rem; padding: .8rem 1rem; }
.inf-item p { margin: 0; }
.inf-item.dentro { opacity: .8; }
.inf-marca { font-size: 1.05rem; }
.inf-marca input { width: 1.4rem; height: 1.4rem; }
.inf-item-sala select { max-width: 16rem; width: 100%; }
.inf-cuidados { color: #8a1c1c; display: flex; gap: .3rem; align-items: center; }
.inf-cuidados svg { width: 1rem; height: 1rem; flex: none; }
:root[data-tema="escuro"] .inf-cuidados { color: #fca5a5; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .inf-cuidados { color: #fca5a5; } }
.inf-acao { position: sticky; bottom: 1rem; text-align: right; }
.inf-codigo { text-align: center; display: grid; gap: .4rem; justify-items: center; }
.inf-codigo-grande { font-size: 3.2rem; font-weight: 800; letter-spacing: .25em; margin: .2rem 0; font-family: ui-monospace, monospace; }
.inf-codigo-medio { font-size: 1.6rem; letter-spacing: .2em; font-family: ui-monospace, monospace; }
.inf-cod-input { font-size: 2rem; letter-spacing: .3em; text-transform: uppercase; max-width: 12rem; font-family: ui-monospace, monospace; }
.inf-saida fieldset { border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem .8rem; margin: .5rem 0; display: grid; gap: .3rem; }
.inf-sala-sel select { max-width: 20rem; width: 100%; }
.inf-barra { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.inf-barra input { flex: 1; min-width: 12rem; }
.inf-form { display: grid; gap: .4rem; margin: 1rem 0; }
.inf-form h2 { margin: 0; }
.inf-grade { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 0 1rem; }
.inf-form input:not([type=checkbox]), .inf-form textarea { width: 100%; }
.inf-resp { border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem .8rem; margin: .4rem 0; }
.inf-resp legend { font-weight: 600; padding: 0 .3rem; }
.inf-resp-grade { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 .75rem; }
.inf-resp-rodape { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; }
.inf-consent { border: 1px solid var(--linha); border-radius: var(--raio); padding: .6rem .8rem; display: grid; gap: .4rem; }
.inf-consent .check, .inf-resp .check { align-items: flex-start; }
.inf-consent .check input { flex: none; margin-top: .2rem; }
@media (max-width: 640px) { .inf-grade, .inf-resp-grade { grid-template-columns: minmax(0, 1fr); } }
.inf-filho { margin: 0; font-size: 1.15rem; }
.inf-hoje { background: var(--superficie-2, rgba(27,42,74,.05)); border-radius: var(--raio); padding: .5rem .75rem; }
.inf-sala-linha { display: grid; grid-template-columns: minmax(0, 1fr) 5rem 5rem auto; gap: .5rem; align-items: center; margin: .3rem 0; }
.inf-sala-linha input { width: 100%; }
.inf-sala-linha.inf-cab { font-size: .85rem; color: var(--tinta-2); font-weight: 600; }
.inf-config select { max-width: 20rem; width: 100%; }
.etiquetas { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: .5rem; }
.etq { width: 90mm; min-height: 50mm; box-sizing: border-box; border: 1px dashed #888; border-radius: 6px; padding: 3mm 4mm; background: #fff; color: #000; display: flex; flex-direction: column; gap: 1mm; text-align: left; }
.etq p { margin: 0; }
.etq-igreja { font-size: 8pt; text-transform: uppercase; letter-spacing: .05em; color: #444; }
.etq-nome { font-size: 18pt; font-weight: 800; line-height: 1.1; }
.etq-titulo { font-size: 14pt; font-weight: 800; letter-spacing: .1em; }
.etq-sala { font-size: 11pt; }
.etq-cuidados { font-size: 10pt; font-weight: 700; border: 1.5px solid #000; padding: 1mm 2mm; border-radius: 3px; }
.etq-rodape { font-size: 8pt; color: #333; margin-top: auto !important; }
.etq-codigo { font-family: ui-monospace, monospace; font-size: 16pt; font-weight: 800; letter-spacing: .2em; align-self: flex-end; }
.etq-codigo.grande { font-size: 26pt; align-self: center; }
.etq-linha { display: flex; align-items: center; justify-content: space-between; gap: 2mm; }
.etq-qr { width: 22mm; height: 22mm; }
@media print {
  @page { margin: 8mm; }
  body.so-etiquetas * { visibility: hidden !important; }
  body.so-etiquetas .etiquetas, body.so-etiquetas .etiquetas * { visibility: visible !important; }
  body.so-etiquetas .etiquetas { position: absolute; left: 0; top: 0; width: 100%; justify-content: flex-start; }
  body.so-etiquetas .etq { break-inside: avoid; }
}
.inf-item > .sec-selo { justify-self: start; }

/* ---------------------------------------------------------------- 5.10: páginas extras e seções automáticas */
.site-min-cartao { --cor-min: var(--marinho); border-top: 4px solid var(--cor-min); }
.site-min-inicial { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; margin-bottom: .75rem;
  background: color-mix(in srgb, var(--cor-min) 14%, var(--superficie)); color: color-mix(in srgb, var(--cor-min) 80%, var(--tinta)); font-weight: 700; font-family: var(--fonte-titulos-site, var(--fonte-titulos)); }
.site-min-lideres { display: flex; align-items: center; gap: .4rem; font-size: .9rem; color: var(--tinta-2); margin: .75rem 0 0; }
.site-min-lideres .icone, .site-min-lideres svg { width: 1rem; height: 1rem; flex: none; }
.site-min-pilulas { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.site-min-pilulas li { --cor-min: var(--marinho); display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px; background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); font-weight: 600; }
.site-min-ponto { --cor-min: inherit; width: .7rem; height: .7rem; border-radius: 50%; background: var(--cor-min, var(--marinho)); flex: none; }
.site-min-lista { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 0; }
.site-min-lista li { --cor-min: var(--marinho); display: flex; gap: .9rem; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.site-min-lista li .site-min-ponto { transform: translateY(-.1rem); }
.site-min-lista :is(h2, h3) { font-size: 1.1rem; margin: 0; }
.site-min-lista p { margin: .25rem 0 0; }
.site-min-lista .site-min-lideres { color: inherit; opacity: .9; }
.tipo-ministerios .site-botoes, .tipo-grupos .site-botoes { margin-top: 2rem; }

.site-grupos-filtros { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0 0; }
.site-grupos-filtros .campo { min-width: 12rem; margin: 0; }
.site-grupo :is(h2, h3) { margin-bottom: .4rem; }
.site-grupo > .selo { margin-bottom: .5rem; display: inline-block; }
.site-grupo-info { display: flex; align-items: center; gap: .45rem; margin: .35rem 0 0; font-weight: 600; }
.site-grupo-info svg { width: 1.05rem; height: 1.05rem; flex: none; color: var(--dourado); }
.site-grupo .site-texto { margin-top: .75rem; }
.site-grupos-rolar { overflow-x: auto; margin-top: 1.5rem; }
.site-grupos-tabela { width: 100%; border-collapse: collapse; background: var(--superficie); color: var(--tinta); border-radius: var(--raio); overflow: hidden; border: 1px solid var(--linha); }
.site-grupos-tabela :is(th, td) { text-align: left; padding: .75rem 1rem; border-bottom: 1px solid var(--linha); vertical-align: top; }
.site-grupos-tabela thead th { font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-2); }
.site-grupos-tabela tbody tr:last-child :is(th, td) { border-bottom: 0; }
.site-grupos-tabela .selo { margin-left: .35rem; font-weight: 600; }

.site-equipe { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.site-equipe.n-1 { grid-template-columns: minmax(0, 22rem); } .site-equipe.n-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-equipe.n-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.site-equipe-foto { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: color-mix(in srgb, var(--marinho) 12%, var(--superficie)); }
.site-equipe-foto.sem-foto { display: grid; place-items: center; font-size: 2.2rem; font-weight: 700; color: var(--marinho); font-family: var(--fonte-titulos-site, var(--fonte-titulos)); }
.site-equipe-texto :is(h2, h3) { font-size: 1.15rem; margin: .9rem 0 .15rem; }
.site-equipe-cargo { margin: 0; font-size: .85rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--dourado); }
.fundo-escuro .site-equipe-cargo, .fundo-marca .site-equipe-cargo { color: inherit; opacity: .85; }
.site-equipe-frase { margin: .5rem 0 0; }
.site-equipe.var-cartoes .site-equipe-pessoa { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.site-equipe.var-cartoes .site-equipe-foto { border-radius: 0; }
.site-equipe.var-cartoes .site-equipe-texto { padding: 0 1.25rem 1.25rem; }
.site-equipe.var-cartoes .site-equipe-cargo { color: var(--dourado); opacity: 1; }
.site-equipe.var-redondas { text-align: center; }
.site-equipe.var-redondas .site-equipe-foto { width: min(11rem, 100%); aspect-ratio: 1; border-radius: 50%; margin-inline: auto; }
.site-equipe.var-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-equipe.var-lista .site-equipe-pessoa { display: flex; gap: 1rem; align-items: flex-start; }
.site-equipe.var-lista .site-equipe-foto { width: 5.5rem; aspect-ratio: 1; border-radius: 50%; flex: none; font-size: 1.4rem; }
.site-equipe.var-lista .site-equipe-texto :is(h2, h3) { margin-top: .25rem; }
@media (max-width: 900px) { .site-equipe, .site-equipe.n-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .site-equipe.var-lista, .site-equipe.n-2 { grid-template-columns: 1fr; } .site-equipe.var-cartoes, .site-equipe.var-cartoes.n-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } .site-equipe.var-cartoes .site-equipe-texto { padding: 0 .85rem .9rem; } }

.site-numeros { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); text-align: center; }
.site-numeros li { display: flex; flex-direction: column; gap: .35rem; }
.site-numero { font-family: var(--fonte-titulos-site, var(--fonte-titulos)); font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; }
.site-numero-rotulo { font-size: .95rem; font-weight: 600; }
.site-numeros.var-faixa li + li { border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
.site-numeros.var-cartoes li { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.5rem 1rem; box-shadow: var(--sombra); }
.site-numeros.var-cartoes .site-numero { color: var(--marinho); }
@media (max-width: 560px) { .site-numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-numeros.var-faixa li + li { border-left: 0; } }

.site-linha { list-style: none; padding: 0; margin: 2rem 0 0; position: relative; }
.site-linha::before { content: ''; position: absolute; top: .4rem; bottom: .4rem; left: .45rem; width: 2px; background: color-mix(in srgb, currentColor 22%, transparent); }
.site-linha-marco { position: relative; padding: 0 0 2rem 2.25rem; }
.site-linha-marco:last-child { padding-bottom: 0; }
.site-linha-marco::before { content: ''; position: absolute; left: 0; top: .3rem; width: 1rem; height: 1rem; border-radius: 50%; background: var(--dourado); border: 3px solid var(--papel); box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 25%, transparent); }
.site-linha-ano { margin: 0 0 .35rem; font-weight: 700; font-size: .9rem; letter-spacing: .06em; color: var(--dourado); }
.fundo-escuro .site-linha-ano, .fundo-marca .site-linha-ano { color: inherit; }
.site-linha-cartao { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.25rem 1.4rem; box-shadow: var(--sombra); }
.site-linha-cartao :is(h2, h3) { margin: 0 0 .4rem; font-size: 1.15rem; }
.site-linha-cartao .site-texto p:last-child { margin-bottom: 0; }
.site-linha-img { display: block; width: 100%; max-height: 18rem; object-fit: cover; border-radius: calc(var(--raio) - 4px); margin-bottom: 1rem; }
@media (min-width: 861px) {
  .site-linha.var-alternada::before { left: 50%; transform: translateX(-1px); }
  .site-linha.var-alternada .site-linha-marco { width: 50%; padding: 0 2.5rem 2.5rem 0; text-align: right; }
  .site-linha.var-alternada .site-linha-marco::before { left: auto; right: -.5rem; }
  .site-linha.var-alternada .site-linha-marco:nth-child(even) { margin-left: 50%; padding: 0 0 2.5rem 2.5rem; text-align: left; }
  .site-linha.var-alternada .site-linha-marco:nth-child(even)::before { right: auto; left: -.5rem; }
  .site-linha.var-alternada .site-linha-cartao { text-align: left; }
}

/* painel: páginas */
.site-paginas { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.site-pagina-item { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); padding: .8rem 1rem; }
.site-pagina-item.oculta { border-style: dashed; background: var(--superficie-2); }
.site-paginas .site-pagina-item.atual { border-color: var(--marinho); box-shadow: 0 0 0 2px color-mix(in srgb, var(--marinho) 25%, transparent); }
.site-paginas .selo.destaque { background: var(--marinho); color: #fff; }
.site-paginas-bloco { margin: 2rem 0 1.5rem; }
.site-secoes-cab { margin-top: 1.5rem; }
.site-secoes-cab h2:focus { outline: none; }
.site-pagina-form h3 { margin-top: 0; }
.site-auto-dica p { margin: 0; } .site-auto-dica p + p { margin-top: .4rem; }
.site-equipe-trazer { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; padding: .9rem 1rem; }
.site-equipe-trazer .campo-dica { margin: 0; flex: 1 1 16rem; }
.site :is(.site-linha-cartao, .site-equipe-texto, .site-min-lista) :is(h2, h3) { font-family: var(--fonte-titulos-site); font-weight: 700; }
.site-linha-cartao :is(h2, h3), .site-equipe.var-cartoes :is(h2, h3) { color: var(--tinta); }
.site-grupos-caixa { margin-top: 1.5rem; }
.site-grupos-caixa > .site-cartoes { margin-top: 0; }
.site-equipe-foto.sem-foto { background: color-mix(in srgb, var(--marinho) 8%, var(--superficie)); }
.site-equipe.var-cartoes .site-equipe-foto.sem-foto { aspect-ratio: 4 / 3; }

/* 5.11: fontes do site (OFL, guardadas no app). Só baixam quando usadas. */
@font-face { font-family: "Montserrat Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/montserrat-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Montserrat Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Playfair Display Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/playfair-display-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Playfair Display Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/playfair-display-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lora Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/lora-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lora Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/lora-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Merriweather Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/merriweather-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Merriweather Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/merriweather-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Oswald Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/oswald-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Oswald Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/oswald-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/nunito-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/nunito-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
.modelo-fontes-amostra { border: 1px solid var(--linha); border-radius: var(--raio); padding: 1rem 1.25rem; margin: .75rem 0 .25rem; background: var(--superficie); }
.modelo-fontes-amostra p { margin: 0; } .mfa-titulo { font-size: 1.5rem; font-weight: 700; line-height: 1.2; margin-bottom: .4rem !important; }
.modelo-fontes-amostra[data-titulo="sans"] .mfa-titulo { font-family: var(--fonte-ui); } .modelo-fontes-amostra[data-texto="sans"] .mfa-texto { font-family: var(--fonte-ui); }
.modelo-fontes-amostra[data-titulo="serifa"] .mfa-titulo { font-family: var(--fonte-leitura); } .modelo-fontes-amostra[data-texto="serifa"] .mfa-texto { font-family: var(--fonte-leitura); }
.modelo-fontes-amostra[data-titulo="montserrat"] .mfa-titulo { font-family: "Montserrat Variable", sans-serif; } .modelo-fontes-amostra[data-texto="montserrat"] .mfa-texto { font-family: "Montserrat Variable", sans-serif; }
.modelo-fontes-amostra[data-titulo="playfair"] .mfa-titulo { font-family: "Playfair Display Variable", serif; } .modelo-fontes-amostra[data-texto="playfair"] .mfa-texto { font-family: "Playfair Display Variable", serif; }
.modelo-fontes-amostra[data-titulo="lora"] .mfa-titulo { font-family: "Lora Variable", serif; } .modelo-fontes-amostra[data-texto="lora"] .mfa-texto { font-family: "Lora Variable", serif; }
.modelo-fontes-amostra[data-titulo="merriweather"] .mfa-titulo { font-family: "Merriweather Variable", serif; } .modelo-fontes-amostra[data-texto="merriweather"] .mfa-texto { font-family: "Merriweather Variable", serif; }
.modelo-fontes-amostra[data-titulo="oswald"] .mfa-titulo { font-family: "Oswald Variable", sans-serif; } .modelo-fontes-amostra[data-texto="oswald"] .mfa-texto { font-family: "Oswald Variable", sans-serif; }
.modelo-fontes-amostra[data-titulo="nunito"] .mfa-titulo { font-family: "Nunito Variable", sans-serif; } .modelo-fontes-amostra[data-texto="nunito"] .mfa-texto { font-family: "Nunito Variable", sans-serif; }
/* 5.11: seção com imagem de fundo e véu escuro */
.site-secao.com-imagem-fundo { position: relative; isolation: isolate; overflow: hidden; }
.site-fundo-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: -2; }
.fundo-pos-topo .site-fundo-img { object-position: center top; } .fundo-pos-baixo .site-fundo-img { object-position: center bottom; }
.site-fundo-veu { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #050a18, color-mix(in srgb, var(--marinho) 70%, #000)); opacity: var(--veu, .55); }
.com-imagem-fundo :is(.site-titulo, .site-subtitulo, .site-texto, .site-rotulo) { text-shadow: 0 1px 12px rgb(0 0 0 / .35); }
.site-fundo-campos { display: grid; gap: .75rem; margin-top: .5rem; }
.site-fundo-campos input[type="range"] { width: 100%; }
/* 5.11: botão flutuante do WhatsApp (verde escuro para o texto branco ler bem: contraste acima de 4,5:1) */
.whatsapp-site { position: fixed; z-index: 28; bottom: 1.5rem; right: 1.5rem; display: inline-flex; align-items: center; gap: .55rem; min-height: 52px; padding: .7rem 1.2rem .7rem 1rem;
  border-radius: 999px; background: #0b6b3a; color: #fff !important; font: 700 .95rem var(--fonte-ui); text-decoration: none; box-shadow: 0 0 0 2px rgb(255 255 255 / .9), 0 10px 28px -8px rgb(6 40 20 / .55); transition: transform .15s, background .15s; }
.whatsapp-site.lado-esquerda { right: auto; left: 1.5rem; }
.whatsapp-site:hover { background: #075a30; transform: translateY(-2px); }
.whatsapp-site:focus-visible { outline: 3px solid var(--foco, #f59e0b); outline-offset: 3px; }
.whatsapp-site svg { width: 1.4rem; height: 1.4rem; flex: none; }
@media (max-width: 860px) {
  .whatsapp-site { bottom: calc(72px + env(safe-area-inset-bottom)); right: 1rem; padding: .7rem; min-width: 52px; justify-content: center; }
  .whatsapp-site.lado-esquerda { left: 1rem; }
  .whatsapp-site-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .whatsapp-site { transition: none; } .whatsapp-site:hover { transform: none; } }
@media print { .whatsapp-site { display: none; } }
