/*
 * Layout blindado: BLINDE_LAYOUT.md | .cursor/rules/app-layout-blinde.mdc
 * Não alterar blocos marcados BLINDE ANDROID / PC page-* sem ler a doc.
 */
:root{
  --bg:#060505;
  --bg-2:#0d0b09;
  --surface:#12100d;
  --surface-2:#17130f;
  --surface-3:#201911;

  --gold:#d4a63c;
  --gold-2:#f0cf79;
  --gold-3:#8d6320;
  --gold-line:rgba(212,166,60,.28);
  --white-soft:rgba(255,255,255,.72);
  --white-muted:rgba(255,255,255,.56);

  --shadow:0 24px 60px rgba(0,0,0,.45);
  --radius-xl:28px;
  --header-h:72px;
  --max:1220px;
  --pad:clamp(16px,2vw,28px);
}

*{
  box-sizing:border-box;
}

html,body{
  margin:0;
  min-height:100%;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color:#fff;
  background:
    radial-gradient(circle at top left, rgba(212,166,60,.16), transparent 30%),
    radial-gradient(circle at top right, rgba(212,166,60,.08), transparent 26%),
    linear-gradient(180deg, #0c0907 0%, #060505 45%, #040404 100%);
  overflow-x:hidden;
  touch-action:manipulation;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg, rgba(255,255,255,.015), transparent 30%),
    linear-gradient(300deg, rgba(212,166,60,.035), transparent 25%);
  opacity:.9;
}

img{
  max-width:100%;
  display:block;
}

button,input,select,textarea{
  font:inherit;
}

button{
  border:none;
  outline:none;
}

.site-shell{
  min-height:100vh;
}

.site-header{
  position:sticky;
  top:0;
  z-index:120;
  padding-top:env(safe-area-inset-top, 0);
  background:linear-gradient(180deg, #0e0c0a 0%, #0a0806 50%, #080706 100%);
  border-bottom:1px solid var(--gold-line);
  box-shadow:0 0 40px rgba(212,166,60,.03);
}

.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(240,207,121,.38), transparent);
}

.header-wrap{
  max-width:var(--max);
  margin:0 auto;
  min-height:var(--header-h);
  padding:10px var(--pad);
  display:flex;
  align-items:center;
  gap:12px;
  position:relative;
}

.brand-button{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:14px;
  background:transparent;
  color:#fff;
  cursor:pointer;
  padding:0;
  text-align:left;
}

.brand-logo{
  width:48px;
  height:48px;
  border-radius:14px;
  overflow:hidden;
  flex:0 0 48px;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid rgba(240,207,121,.38);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 0 26px rgba(212,166,60,.14);
}

.brand-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.brand-title{
  font-size:clamp(18px,2.4vw,26px);
  font-weight:950;
  line-height:1.12;
  letter-spacing:.04em;
  color:#fff3cd;
  text-transform:uppercase;
  text-shadow:0 0 18px rgba(212,166,60,.18);
}

.brand-subtitle{
  font-size:clamp(12px,1.4vw,15px);
  line-height:1.35;
  color:rgba(255,255,255,.8);
  font-weight:500;
  letter-spacing:.02em;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.header-menu-btn{
  width:48px;
  height:48px;
  border-radius:16px;
  flex:0 0 48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#fff6dd;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid rgba(240,207,121,.24);
  box-shadow:0 14px 28px rgba(0,0,0,.25);
  transition:transform .18s ease, border-color .18s ease;
}

.header-menu-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(240,207,121,.42);
}

.header-menu-btn svg{
  width:22px;
  height:22px;
  stroke:currentColor;
  fill:none;
}

.header-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:var(--pad);
  width:min(280px, calc(100vw - 32px));
  padding:10px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(18,16,13,.98), rgba(9,8,7,.98));
  border:1px solid rgba(240,207,121,.18);
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  display:none;
  flex-direction:column;
  gap:8px;
}

.header-menu.show{
  display:flex;
}

.menu-link{
  width:100%;
  min-height:50px;
  border-radius:16px;
  cursor:pointer;
  color:#fff8e6;
  text-align:left;
  padding:0 16px;
  font-weight:800;
  letter-spacing:.02em;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.06);
  transition:border-color .18s ease, transform .18s ease;
}

.menu-link:hover{
  border-color:rgba(240,207,121,.32);
  transform:translateY(-1px);
}

.app-main{
  padding:20px 0 calc(90px + env(safe-area-inset-bottom, 0px) * 0.647);
}

.app-container{
  width:min(100%, var(--max));
  margin:0 auto;
  padding:0 var(--pad);
}

#app{
  animation:none;
}

@keyframes appFade{
  from{
    opacity:0;
    transform:translateY(4px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.page-shell{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.page-shell.page-biblia,
.page-shell.page-harpa,
.page-shell.page-louvores,
.page-shell.page-content-scroll,
.page-shell.page-contribuir{
  min-height:calc(100vh - 220px);
}

.page-toolbar{
  position:sticky;
  top:calc(var(--header-h) + 10px);
  z-index:90;
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:24px;
  border:1px solid rgba(240,207,121,.16);
  background:linear-gradient(180deg, rgba(22,18,14,.92), rgba(12,10,8,.94));
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}

.bible-toolbar{
  background:linear-gradient(180deg, #16130f 0%, #12100d 50%, #0e0c08 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:0 0 40px rgba(212,166,60,.05), var(--shadow);
}

.page-biblia .bible-verse-scroll-wrap{
  flex:1 1 0;
  max-height:calc(100vh - 260px);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}
/* BLINDE: PC e iPhone — não alterar em hipótese alguma */
@media (min-width: 821px){
  .page-shell.page-biblia,
  .page-shell.page-harpa,
  .page-shell.page-louvores{
    min-height:calc(100vh - 180px);
  }
  .page-biblia .bible-verse-scroll-wrap,
  .page-harpa .harpa-scroll-wrap,
  .page-louvores .harpa-scroll-wrap,
  .page-louvores .louvores-scroll-wrap{
    max-height:calc(100vh - 140px);
  }
  .page-louvores .harpa-list.harpa-scroll-wrap{
    max-height:calc(100vh - 140px);
  }
  /* Pedido de oração: layout compacto igual iPhone — não altera iPhone */
  .page-oracao.page-shell{
    gap:12px;
  }
  .page-oracao .content-scroll-wrap{
    max-height:calc(100vh - 180px);
  }
  .page-oracao .card{
    padding:16px;
  }
  .page-oracao .card-title{
    margin-bottom:6px;
  }
  .page-oracao .card-text{
    margin-bottom:10px;
  }
  .page-oracao .form-oracao-pedido{
    gap:10px;
    margin-top:12px;
  }
  .page-oracao .textarea{
    min-height:100px;
  }
}
.page-biblia .bible-verse-scroll-wrap::-webkit-scrollbar{
  display:none;
}

.page-biblia .bible-verse-outer{
  position:relative;
  flex:1 1 0;
  min-height:0;
  display:flex;
}
.page-biblia .bible-nav-arrow{
  position:absolute;
  bottom:52px;
  width:56px;
  height:56px;
  min-width:56px;
  min-height:56px;
  padding:0;
  border-radius:14px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  pointer-events:auto;
  background:linear-gradient(180deg, rgba(22,18,14,.95), rgba(12,10,8,.98));
  border:1px solid rgba(212,166,60,.35);
  box-shadow:0 2px 12px rgba(0,0,0,.3);
  color:var(--gold-2);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:10;
  transition:opacity .2s, transform .15s;
}
.page-biblia .bible-nav-arrow:hover:not(:disabled){
  opacity:.9;
  transform:scale(1.05);
  border-color:rgba(212,166,60,.5);
}
.page-biblia .bible-nav-arrow:active:not(:disabled){
  transform:scale(.98);
}
.page-biblia .bible-nav-arrow:disabled{
  opacity:.4;
  color:rgba(212,166,60,.4);
  cursor:not-allowed;
}
/* Setas sempre “acesas” visualmente; limite é só na ação (JS), não em opacity */
.page-biblia .bible-nav-arrow[aria-disabled="true"]{
  opacity:1;
  color:var(--gold-2);
  cursor:pointer;
}
.page-biblia .bible-nav-prev{
  left:14px;
}
.page-biblia .bible-nav-next{
  right:14px;
}

/* BLINDE: Setas Bíblia - PC/Android 18px | iPhone usa safe-area */
@media (max-width: 430px){
  .page-biblia .bible-nav-arrow{
    bottom:calc(18px + env(safe-area-inset-bottom, 0px));
  }
}
@media (min-width: 431px){
  .page-biblia .bible-nav-arrow{
    bottom:18px;
  }
}

.page-biblia .bible-verse{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.sticky-panel{
  z-index:110;
}

.content-toolbar{
  background:linear-gradient(180deg, #16130f 0%, #12100d 50%, #0e0c08 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.admin-panel-toolbar #admSair{
  margin-left:auto;
  padding:8px 14px;
  font-size:13px;
}

.admin-louvores-edit-card .admin-louvores-edit-form .field-label{
  font-size:13px;
  margin-bottom:4px;
}
.admin-louvores-edit-card .admin-louvores-editor{
  line-height:1.5;
}

.page-content-scroll .content-scroll-wrap{
  flex:1 1 0;
  max-height:calc(100vh - 260px);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.page-content-scroll .content-scroll-wrap::-webkit-scrollbar{
  display:none;
}

/* PC (≥821): páginas com page-* — BLINDE: ver BLINDE_LAYOUT.md e .cursor/rules/app-layout-blinde.mdc
   Cadeia flex + content-scroll-wrap sem max-height global; celular não entra aqui. */
@media (min-width: 821px){
  .site-shell:has(.page-sobre),
  .site-shell:has(.page-horarios),
  .site-shell:has(.page-agenda),
  .site-shell:has(.page-como-chegar),
  .site-shell:has(.page-oracao),
  .site-shell:has(.page-contato),
  .site-shell:has(.page-contribuir),
  .site-shell:has(.page-admin-financeiro),
  .site-shell:has(.page-admin-panel),
  .site-shell:has(.page-admin-louvores-manual),
  .site-shell:has(.page-admin-louvores),
  .site-shell:has(.page-admin-agenda),
  .site-shell:has(.page-admin-oracoes),
  .site-shell:has(.page-admin-membros),
  .site-shell:has(.page-admin-push-mensagens),
  .site-shell:has(.page-admin-push-agendar),
  .site-shell:has(.page-admin-login),
  .site-shell:has(.page-compartilhar),
  .site-shell:has(.page-avisos),
  .site-shell:has(.page-admin-avisos),
  .site-shell:has(.page-baixar){
    display:flex;
    flex-direction:column;
    min-height:100vh;
    min-height:100dvh;
  }
  .site-shell:has(.page-sobre) > .site-header,
  .site-shell:has(.page-horarios) > .site-header,
  .site-shell:has(.page-agenda) > .site-header,
  .site-shell:has(.page-como-chegar) > .site-header,
  .site-shell:has(.page-oracao) > .site-header,
  .site-shell:has(.page-contato) > .site-header,
  .site-shell:has(.page-contribuir) > .site-header,
  .site-shell:has(.page-admin-financeiro) > .site-header,
  .site-shell:has(.page-admin-panel) > .site-header,
  .site-shell:has(.page-admin-louvores-manual) > .site-header,
  .site-shell:has(.page-admin-louvores) > .site-header,
  .site-shell:has(.page-admin-agenda) > .site-header,
  .site-shell:has(.page-admin-oracoes) > .site-header,
  .site-shell:has(.page-admin-membros) > .site-header,
  .site-shell:has(.page-admin-push-mensagens) > .site-header,
  .site-shell:has(.page-admin-push-agendar) > .site-header,
  .site-shell:has(.page-admin-login) > .site-header,
  .site-shell:has(.page-compartilhar) > .site-header,
  .site-shell:has(.page-avisos) > .site-header,
  .site-shell:has(.page-admin-avisos) > .site-header,
  .site-shell:has(.page-baixar) > .site-header{
    flex-shrink:0;
  }
  .app-main:has(.page-sobre),
  .app-main:has(.page-horarios),
  .app-main:has(.page-agenda),
  .app-main:has(.page-como-chegar),
  .app-main:has(.page-oracao),
  .app-main:has(.page-contato),
  .app-main:has(.page-contribuir),
  .app-main:has(.page-admin-financeiro),
  .app-main:has(.page-admin-panel),
  .app-main:has(.page-admin-louvores-manual),
  .app-main:has(.page-admin-louvores),
  .app-main:has(.page-admin-agenda),
  .app-main:has(.page-admin-oracoes),
  .app-main:has(.page-admin-membros),
  .app-main:has(.page-admin-push-mensagens),
  .app-main:has(.page-admin-push-agendar),
  .app-main:has(.page-admin-login),
  .app-main:has(.page-compartilhar),
  .app-main:has(.page-avisos),
  .app-main:has(.page-admin-avisos),
  .app-main:has(.page-baixar){
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .app-main:has(.page-sobre) .app-container,
  .app-main:has(.page-horarios) .app-container,
  .app-main:has(.page-agenda) .app-container,
  .app-main:has(.page-como-chegar) .app-container,
  .app-main:has(.page-oracao) .app-container,
  .app-main:has(.page-contato) .app-container,
  .app-main:has(.page-contribuir) .app-container,
  .app-main:has(.page-admin-financeiro) .app-container,
  .app-main:has(.page-admin-panel) .app-container,
  .app-main:has(.page-admin-louvores-manual) .app-container,
  .app-main:has(.page-admin-louvores) .app-container,
  .app-main:has(.page-admin-agenda) .app-container,
  .app-main:has(.page-admin-oracoes) .app-container,
  .app-main:has(.page-admin-membros) .app-container,
  .app-main:has(.page-admin-push-mensagens) .app-container,
  .app-main:has(.page-admin-push-agendar) .app-container,
  .app-main:has(.page-admin-login) .app-container,
  .app-main:has(.page-compartilhar) .app-container,
  .app-main:has(.page-avisos) .app-container,
  .app-main:has(.page-admin-avisos) .app-container,
  .app-main:has(.page-baixar) .app-container{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .app-main:has(.page-sobre) #app,
  .app-main:has(.page-horarios) #app,
  .app-main:has(.page-agenda) #app,
  .app-main:has(.page-como-chegar) #app,
  .app-main:has(.page-oracao) #app,
  .app-main:has(.page-contato) #app,
  .app-main:has(.page-contribuir) #app,
  .app-main:has(.page-admin-financeiro) #app,
  .app-main:has(.page-admin-panel) #app,
  .app-main:has(.page-admin-louvores-manual) #app,
  .app-main:has(.page-admin-louvores) #app,
  .app-main:has(.page-admin-agenda) #app,
  .app-main:has(.page-admin-oracoes) #app,
  .app-main:has(.page-admin-membros) #app,
  .app-main:has(.page-admin-push-mensagens) #app,
  .app-main:has(.page-admin-push-agendar) #app,
  .app-main:has(.page-admin-login) #app,
  .app-main:has(.page-compartilhar) #app,
  .app-main:has(.page-avisos) #app,
  .app-main:has(.page-admin-avisos) #app,
  .app-main:has(.page-baixar) #app{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .page-content-scroll.page-sobre.page-shell,
  .page-content-scroll.page-horarios.page-shell,
  .page-content-scroll.page-agenda.page-shell,
  .page-content-scroll.page-como-chegar.page-shell,
  .page-content-scroll.page-oracao.page-shell,
  .page-content-scroll.page-contato.page-shell,
  .page-content-scroll.page-admin-financeiro.page-shell,
  .page-content-scroll.page-admin-panel.page-shell,
  .page-content-scroll.page-admin-louvores-manual.page-shell,
  .page-content-scroll.page-admin-louvores.page-shell,
  .page-content-scroll.page-admin-agenda.page-shell,
  .page-content-scroll.page-admin-oracoes.page-shell,
  .page-content-scroll.page-admin-membros.page-shell,
  .page-content-scroll.page-admin-push-mensagens.page-shell,
  .page-content-scroll.page-admin-push-agendar.page-shell,
  .page-content-scroll.page-admin-login.page-shell,
  .page-content-scroll.page-compartilhar.page-shell,
  .page-content-scroll.page-avisos.page-shell,
  .page-content-scroll.page-admin-avisos.page-shell,
  .page-content-scroll.page-baixar.page-shell,
  .page-shell.page-contribuir{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .page-content-scroll.page-oracao.page-shell{
    gap:12px;
  }
  .page-content-scroll.page-sobre.page-shell > .page-toolbar,
  .page-content-scroll.page-horarios.page-shell > .page-toolbar,
  .page-content-scroll.page-agenda.page-shell > .page-toolbar,
  .page-content-scroll.page-como-chegar.page-shell > .page-toolbar,
  .page-content-scroll.page-oracao.page-shell > .page-toolbar,
  .page-content-scroll.page-contato.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-financeiro.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-panel.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-louvores-manual.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-louvores.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-agenda.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-oracoes.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-membros.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-push-mensagens.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-push-agendar.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-login.page-shell > .page-toolbar,
  .page-content-scroll.page-compartilhar.page-shell > .page-toolbar,
  .page-content-scroll.page-avisos.page-shell > .page-toolbar,
  .page-content-scroll.page-admin-avisos.page-shell > .page-toolbar,
  .page-content-scroll.page-baixar.page-shell > .page-toolbar,
  .page-shell.page-contribuir > .page-toolbar{
    flex-shrink:0;
  }
  .page-content-scroll.page-sobre .content-scroll-wrap,
  .page-content-scroll.page-horarios .content-scroll-wrap,
  .page-content-scroll.page-agenda .content-scroll-wrap,
  .page-content-scroll.page-como-chegar .content-scroll-wrap,
  .page-content-scroll.page-oracao .content-scroll-wrap,
  .page-content-scroll.page-contato .content-scroll-wrap,
  .page-content-scroll.page-admin-financeiro .content-scroll-wrap,
  .page-content-scroll.page-admin-panel .content-scroll-wrap,
  .page-content-scroll.page-admin-louvores-manual .content-scroll-wrap,
  .page-content-scroll.page-admin-louvores .content-scroll-wrap,
  .page-content-scroll.page-admin-agenda .content-scroll-wrap,
  .page-content-scroll.page-admin-oracoes .content-scroll-wrap,
  .page-content-scroll.page-admin-membros .content-scroll-wrap,
  .page-content-scroll.page-admin-push-mensagens .content-scroll-wrap,
  .page-content-scroll.page-admin-push-agendar .content-scroll-wrap,
  .page-content-scroll.page-admin-login .content-scroll-wrap,
  .page-content-scroll.page-compartilhar .content-scroll-wrap,
  .page-content-scroll.page-avisos .content-scroll-wrap,
  .page-content-scroll.page-admin-avisos .content-scroll-wrap,
  .page-content-scroll.page-baixar .content-scroll-wrap,
  .page-contribuir .content-scroll-wrap{
    flex:1 1 0;
    min-height:0;
    max-height:none;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:max(16px, env(safe-area-inset-bottom, 0px));
    box-sizing:border-box;
  }
}

/* Página pública Avisos (cards + título) */
.page-avisos .avisos-page-head{
  text-align:center;
  margin-bottom:8px;
}
.page-avisos .avisos-page-title{
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  font-size:clamp(26px, 5vw, 34px);
  color:#fff2cc;
  margin:0 0 10px;
  letter-spacing:0.02em;
}
.page-avisos .avisos-page-rule{
  height:1px;
  background:rgba(240,207,121,.22);
  max-width:280px;
  margin:0 auto 18px;
}
.page-avisos .avisos-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.page-avisos .avisos-card{
  border:1px solid rgba(240,207,121,.28);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(28,24,18,.95), rgba(16,14,10,.98));
  padding:16px 18px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  cursor:pointer;
  text-align:left;
  width:100%;
  box-sizing:border-box;
  font:inherit;
  color:inherit;
  -webkit-tap-highlight-color:transparent;
}
.page-avisos .avisos-card:focus-visible{
  outline:2px solid rgba(240,207,121,.5);
  outline-offset:2px;
}
.page-avisos .avisos-card--pinned{
  border-color:rgba(240,207,121,.48);
}
.page-avisos .avisos-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:rgba(240,207,121,.9);
  flex-shrink:0;
  margin-top:6px;
  box-shadow:0 0 8px rgba(240,207,121,.35);
}
.page-avisos .avisos-card-body{
  flex:1;
  min-width:0;
}
.page-avisos .avisos-card-title{
  font-weight:800;
  font-size:16px;
  color:#fff2cc;
  margin:0 0 8px;
  line-height:1.3;
}
.page-avisos .avisos-card-msg{
  font-size:14px;
  line-height:1.55;
  color:rgba(255,255,255,.88);
  margin:0 0 8px;
  white-space:pre-wrap;
  word-break:break-word;
}
.page-avisos .avisos-card-msg--preview{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.page-avisos .avisos-card-meta{
  font-size:12px;
  color:rgba(240,207,121,.62);
}

.sticky-toolbar-grid{
  display:grid;
  grid-template-columns:auto minmax(0, 1.2fr) minmax(0, .8fr) auto;
  gap:12px;
  align-items:end;
  width:100%;
}

.sticky-toolbar-grid-bible{
  grid-template-columns:48px minmax(0, 0.7fr) minmax(0, 1.2fr) minmax(0, 0.9fr);
}

.sticky-toolbar-grid-harpa{
  grid-template-columns:auto minmax(0, 1fr);
}

.sticky-toolbar-grid-louvores{
  grid-template-columns:auto minmax(0, 1fr) auto;
}

.louvores-toolbar{
  background:linear-gradient(180deg, #16130f 0%, #12100d 50%, #0e0c08 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:0 0 40px rgba(212,166,60,.05), var(--shadow);
}

.louvores-instrucoes{
  margin-top:12px;
  padding:12px 16px;
  border-radius:12px;
  background:rgba(212,166,60,.08);
  border:1px solid rgba(240,207,121,.2);
  font-size:14px;
  color:rgba(255,255,255,.9);
  white-space:pre-wrap;
}

.page-toolbar-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1;
}

.page-toolbar-title-wrap{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.page-toolbar-title{
  margin:0;
  font-size:clamp(20px,2.5vw,32px);
  line-height:1.05;
  font-weight:950;
  color:#fff3d4;
  letter-spacing:.01em;
}

.page-toolbar-subtitle{
  font-size:13px;
  color:var(--white-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.page-toolbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.icon-pill,
.toolbar-btn,
.toolbar-btn-ghost,
.toolbar-btn-gold{
  min-height:48px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 16px;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.icon-pill{
  width:48px;
  padding:0;
  color:#fff4d5;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid rgba(240,207,121,.22);
}

.toolbar-btn{
  color:#fff5de;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid rgba(240,207,121,.18);
  font-weight:850;
}

.toolbar-btn-ghost{
  color:#fff5de;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  font-weight:800;
}

.toolbar-btn-gold{
  color:#2e1f09;
  font-weight:950;
  background:linear-gradient(180deg, #f1d17b, #c9962f);
  border:1px solid rgba(255,233,176,.48);
  box-shadow:0 18px 36px rgba(212,166,60,.18);
}

.icon-pill:hover,
.toolbar-btn:hover,
.toolbar-btn-ghost:hover,
.toolbar-btn-gold:hover{
  transform:translateY(-1px);
}

.icon-pill svg,
.toolbar-btn svg,
.toolbar-btn-ghost svg,
.toolbar-btn-gold svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
}

.compact-book-field,
.compact-chapter-field,
.compact-version-field,
.compact-search-btn{
  min-width:0;
}

.compact-book-field .select,
.compact-chapter-field .select,
.compact-version-field .select{
  width:100%;
}

/* Dropdown do select nativo no PC: fundo branco com texto legível */
.bible-toolbar .select{
  color-scheme:light;
  color:#fff5de;
  -webkit-text-fill-color:#fff5de;
}
.bible-toolbar .select option{
  color:#1a1a1a;
  background:#fff;
}

/* Exibição visível do valor (Versão e Capítulo) — blindado em todos os dispositivos */
.bible-select-wrap{
  position:relative;
}
.bible-select-display{
  position:absolute;
  left:12px;
  right:36px;
  top:50%;
  transform:translateY(calc(-50% + 6px));
  font-size:14px;
  color:#fff5de;
  pointer-events:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  z-index:0;
  visibility:visible !important;
  opacity:1 !important;
  display:block !important;
  min-width:2ch;
}
@media (min-width:769px){
  .bible-select-display{
    transform:translateY(calc(-50% + 10px));
  }
}
.bible-select-wrap .select{
  position:relative;
  z-index:1;
}
/* Oculta o texto nativo do select — só o overlay mostra */
.bible-select-native{
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
}
@media (max-width:768px){
  .bible-toolbar-mobile #bibleVersionDisplay,
  .bible-toolbar-mobile #bibleBookDisplay{
    right:24px;
  }
  .bible-toolbar-mobile .compact-version-field .select,
  .bible-toolbar-mobile .compact-book-field .select{
    padding-right:28px;
  }
}

.compact-search-btn{
  white-space:nowrap;
}

.grid{
  display:grid;
  gap:18px;
}

.grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-xl);
  padding:22px;
  background:
    radial-gradient(circle at top right, rgba(212,166,60,.08), transparent 26%),
    linear-gradient(180deg, rgba(22,18,14,.96), rgba(12,10,8,.98));
  border:1px solid rgba(240,207,121,.14);
  box-shadow:var(--shadow);
}

.card::before{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(240,207,121,.5), transparent);
}

.card-title{
  margin:0 0 8px;
  font-size:clamp(18px,2vw,24px);
  font-weight:900;
  color:#fff2cc;
  letter-spacing:.01em;
}

.card-text,
.muted{
  color:var(--white-muted);
  line-height:1.6;
}

.hero-card{
  min-height:220px;
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  align-items:center;
}

.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  padding:8px 12px;
  border-radius:999px;
  color:#fff2cc;
  font-size:12px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid rgba(240,207,121,.24);
  background:rgba(212,166,60,.08);
}

.hero-title{
  margin:0;
  font-size:clamp(28px,4vw,54px);
  line-height:.98;
  font-weight:980;
  letter-spacing:-.03em;
  color:#fff4d5;
}

.hero-desc{
  margin:16px 0 0;
  max-width:780px;
  color:rgba(255,255,255,.72);
  line-height:1.72;
  font-size:clamp(14px,1.2vw,16px);
}

.quick-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}

.quick-link{
  min-height:132px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(240,207,121,.14);
  cursor:pointer;
  color:#fff4d7;
  text-align:left;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.quick-link:hover{
  transform:translateY(-2px);
  border-color:rgba(240,207,121,.34);
  box-shadow:0 18px 40px rgba(0,0,0,.24);
}

.quick-link-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--gold-2);
  background:rgba(212,166,60,.08);
  border:1px solid rgba(240,207,121,.14);
  font-size:24px;
  line-height:1;
}

.quick-link-title{
  font-size:18px;
  font-weight:900;
  color:#fff1cb;
}

.quick-link-sub{
  font-size:13px;
  color:var(--white-muted);
}

.schedule-list{
  display:grid;
  gap:12px;
}

.schedule-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px;
  border-radius:20px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
}

.schedule-dot{
  width:42px;
  height:42px;
  border-radius:14px;
  flex:0 0 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(212,166,60,.09);
  border:1px solid rgba(240,207,121,.14);
  color:#fff0c4;
  font-size:18px;
  font-weight:900;
}

.schedule-day{
  font-weight:900;
  color:#fff2cc;
  margin-bottom:3px;
}

.schedule-time{
  color:var(--white-soft);
  font-size:14px;
}

.accordion{
  display:grid;
  gap:14px;
}

.form-oracao-pedido{
  display:grid;
  gap:14px;
  margin-top:18px;
}

.accordion-item{
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(240,207,121,.12);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}

.accordion-btn{
  width:100%;
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 18px;
  background:transparent;
  color:#fff5de;
  cursor:pointer;
}

.accordion-btn-left{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.accordion-icon{
  width:46px;
  height:46px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--gold-2);
  background:rgba(212,166,60,.08);
  border:1px solid rgba(240,207,121,.14);
  flex:0 0 46px;
}

.accordion-icon svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
}

.accordion-title{
  font-weight:900;
  font-size:17px;
  color:#fff0cb;
  text-align:left;
}

.accordion-sub{
  font-size:13px;
  color:var(--white-muted);
  text-align:left;
}

.accordion-chevron{
  width:18px;
  height:18px;
  color:var(--white-soft);
  transition:transform .2s ease;
  flex:0 0 18px;
}

.accordion-item.open .accordion-chevron{
  transform:rotate(180deg);
}

.accordion-content{
  display:none;
  padding:0 18px 18px 18px;
}

.accordion-item.open .accordion-content{
  display:block;
}

.accordion-box{
  border-radius:18px;
  padding:18px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(0,0,0,.14);
  color:rgba(255,255,255,.78);
  line-height:1.7;
}

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}

.field-label{
  font-size:13px;
  color:var(--white-muted);
  font-weight:700;
}

.input,
.select,
.textarea{
  width:100%;
  min-height:56px;
  padding:0 16px;
  border-radius:18px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(240,207,121,.16);
  color:#fff5de;
  font-size:16px;
  outline:none;
}

.textarea{
  min-height:132px;
  padding:16px;
  resize:vertical;
}

.input:focus,
.select:focus,
.textarea:focus{
  border-color:rgba(240,207,121,.42);
  box-shadow:0 0 0 3px rgba(212,166,60,.08);
}

/* Letra manual: layout = texto enviado (pre-wrap); só cor em Louvor / solo / todos */
.letra-manual-formatted-root,
.letra-manual-editor{
  font-size:16px;
  line-height:1.55;
  color:rgba(255,255,255,.9);
}
.letra-manual-editor{
  text-align:left;
  max-height:min(55vh, 520px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  cursor:text;
}
.letra-manual-editor:focus-within{
  border-color:rgba(240,207,121,.42);
  box-shadow:0 0 0 3px rgba(212,166,60,.08);
}
.letra-manual-pre{
  white-space:pre-wrap;
  word-wrap:break-word;
  overflow-wrap:break-word;
  margin:0;
  tab-size:4;
}
.letra-manual-pre-empty{
  min-height:3em;
}
/* Preview do título do louvor (ADM): encosta na caixa da letra, sem folga extra */
.letra-manual-pre--louvor-preview{
  margin:0 0 8px;
  padding:0;
}
/* Título Louvor - …: barra lateral; sem padding vertical que infla o espaço entre linhas */
.letra-manual-louvor{
  display:block;
  color:#f4f1ea;
  font-weight:700;
  font-size:1.02em;
  letter-spacing:0.05em;
  line-height:1.5;
  padding:0 0 0 0.75rem;
  margin:0;
  border-left:3px solid rgba(200,168,95,.72);
  border-radius:0 3px 3px 0;
  background:linear-gradient(90deg, rgba(212,166,60,.1) 0%, rgba(212,166,60,.025) 50%, transparent 80%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.letra-manual-cue{
  display:inline;
  color:var(--gold-2);
  font-weight:800;
  font-size:inherit;
  letter-spacing:inherit;
  line-height:inherit;
}
/* Letra fixada no app: só fechar + conteúdo (sem título do culto no topo) */
.contribuir-modal-header.louvores-manual-modal-header--minimal{
  justify-content:flex-end;
}
.contribuir-modal-header.louvores-manual-modal-header--subtitulo .louvores-manual-subtitulo--header{
  margin:0;
  flex:1 1 auto;
  min-width:0;
}
.louvores-manual-subtitulo--header{
  font-size:18px;
  font-weight:900;
  color:#fff2cc;
  line-height:1.25;
  letter-spacing:0.02em;
}
.louvores-manual-header-titles{
  min-width:0;
  flex:1 1 auto;
}
.louvores-manual-subtitulo--under-title{
  margin:6px 0 0;
  font-size:14px;
  font-weight:800;
  letter-spacing:0.06em;
  color:rgba(240,207,121,.96);
  line-height:1.3;
}
.louvores-manual-modal-body-wrap{
  padding-top:4px;
}
.louvores-manual-content.letra-manual-formatted-root{
  font-size:20px;
}
/* Modal letra manual: mesmo ritmo visual do editor (sem line-height inflado) */
.louvores-manual-modal-body{
  line-height:1.5;
  color:rgba(255,255,255,.88);
}
.louvores-manual-modal .letra-manual-pre{
  margin:0;
}

.input:disabled{
  opacity:.72;
  cursor:not-allowed;
}

.compact-field .select,
.sticky-search-field .input{
  min-height:50px;
}

.verse-card{
  padding:18px;
  border-radius:22px;
  border:1px solid rgba(240,207,121,.14);
  background:linear-gradient(180deg, rgba(22,18,14,.96), rgba(12,10,8,.98));
  box-shadow:var(--shadow);
}

.verse-ref{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.verse-ref-title{
  font-size:clamp(18px,2vw,28px);
  font-weight:950;
  color:#fff1c8;
}

.verse-ref-sub{
  font-size:12px;
  color:var(--white-muted);
}

.bible-verse{
  font-size:20px;
  line-height:1.7;
}

.bible-verse-num{
  font-size:20px;
}

.bible-verse-text{
  font-size:20px;
}

.search-list,
.harpa-list{
  display:grid;
  grid-template-columns:1fr;
  align-content:start;
  gap:12px;
}

.result-btn,
.harpa-item{
  width:100%;
  text-align:left;
  padding:16px 18px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(240,207,121,.14);
  color:#fff4d7;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease;
}

.page-harpa .card{
  background:linear-gradient(180deg, rgba(22,18,14,.96), rgba(12,10,8,.98));
  border:1px solid rgba(240,207,121,.14);
  box-shadow:var(--shadow);
}

.page-harpa .card::before{
  opacity:.6;
}

.page-louvores .card{
  background:linear-gradient(180deg, rgba(22,18,14,.96), rgba(12,10,8,.98));
  border:1px solid rgba(240,207,121,.14);
  box-shadow:var(--shadow);
}

.page-louvores .card::before{
  opacity:.6;
}

.harpa-toolbar{
  background:linear-gradient(180deg, #16130f 0%, #12100d 50%, #0e0c08 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:0 0 40px rgba(212,166,60,.05), var(--shadow);
}

.page-harpa .page-toolbar{
  border-color:rgba(240,207,121,.14);
}

.page-louvores .page-toolbar{
  border-color:rgba(240,207,121,.14);
}

.page-harpa .harpa-scroll-wrap{
  flex:1 1 0;
  max-height:calc(100vh - 260px);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.page-harpa .harpa-scroll-wrap::-webkit-scrollbar{
  display:none;
}

.page-louvores .harpa-scroll-wrap,
.page-louvores .louvores-scroll-wrap{
  flex:1 1 0;
  max-height:calc(100vh - 260px);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}

.page-louvores .harpa-list.harpa-scroll-wrap{
  max-height:calc(100vh - 300px);
}
.page-louvores .harpa-scroll-wrap::-webkit-scrollbar,
.page-louvores .louvores-scroll-wrap::-webkit-scrollbar{
  display:none;
}

.harpa-item{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(240,207,121,.14);
  color:#fff4d7;
}

.result-btn:hover,
.harpa-item:hover{
  transform:translateY(-1px);
  border-color:rgba(240,207,121,.28);
}

.result-ref{
  font-size:14px;
  font-weight:900;
  color:var(--gold-2);
  margin-bottom:7px;
}

.result-text{
  line-height:1.65;
  color:rgba(255,255,255,.84);
}

.harpa-item-top{
  display:flex;
  align-items:center;
  gap:12px;
}

.harpa-num{
  min-width:62px;
  color:var(--gold-2);
  font-weight:950;
}

.harpa-title{
  font-weight:850;
  color:#fff2cc;
}

.harpa-lyrics{
  display:grid;
  gap:28px;
  padding-bottom:max(20px, env(safe-area-inset-bottom));
}

.harpa-block{
  display:flex;
  gap:14px;
  align-items:flex-start;
}

.harpa-block-num{
  min-width:36px;
  color:#d4a63c;
  font-weight:950;
  font-size:clamp(20px,1.4vw,22px);
  line-height:1.75;
  flex-shrink:0;
}

.harpa-block-text{
  line-height:1.85;
  color:rgba(255,255,255,.92);
  font-size:20px;
  white-space:pre-wrap;
}

.harpa-subtitle{
  padding-left:46px;
}

.harpa-refrain{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-left:46px;
}

.harpa-refrain-label{
  color:#d4a63c;
  font-weight:950;
  font-size:clamp(20px,1.4vw,22px);
  line-height:1.2;
}

.harpa-refrain-text{
  line-height:1.85;
  color:rgba(255,255,255,.92);
  font-size:20px;
  white-space:pre-wrap;
}

.info-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.info-box{
  border-radius:24px;
  padding:22px;
  border:1px solid rgba(240,207,121,.12);
  background:rgba(255,255,255,.03);
}

.info-box h3{
  margin:0 0 10px;
  font-size:20px;
  color:#fff1ca;
}

/* Painel financeiro — mini dashboard */
.financeiro-dashboard-card{
  margin-bottom:18px;
}
.financeiro-resumo-header{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:2px;
}
.financeiro-resumo-header .card-title{
  margin:0;
  flex:1;
  min-width:0;
}
.financeiro-pix-key-btn{
  flex-shrink:0;
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,236,210,.95);
  border-radius:14px;
  border:1px solid rgba(240,207,121,.38);
  background:rgba(255,255,255,.05);
  cursor:pointer;
}
.financeiro-pix-key-btn:hover{
  border-color:rgba(240,207,121,.55);
  background:rgba(212,166,60,.12);
}
.financeiro-pix-key-btn .financeiro-pix-svg{
  display:block;
}
.financeiro-filter-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:14px 0 18px;
}
.financeiro-dashboard-card .financeiro-filter-row .select{
  min-height:44px;
  font-size:14px;
}
@media (max-width:520px){
  /* Filtros lado a lado no celular, igual ao PC — selects mais altos para toque */
  .financeiro-dashboard-card .financeiro-filter-row .select{
    min-height:52px;
    padding:14px 16px;
  }
  /* Cards mantêm grid 2x2 no celular — formato compacto igual ao PC */
  .financeiro-totais-grid .info-box{
    padding:12px 14px;
  }
  .financeiro-totais-grid .info-box div:last-child{
    font-size:16px;
  }
  .financeiro-totais-grid .info-box:last-child div:last-child{
    font-size:18px;
  }
}

/* iPhone apenas: Período / Tipo no painel financeiro — mesma altura do campo Data do dízimo (56px) */
@supports (-webkit-touch-callout: none){
  @media (max-width: 820px){
    html:not(.android) .financeiro-dashboard-card .financeiro-filter-row .select{
      min-height:56px;
      height:56px;
      padding:0 16px;
      box-sizing:border-box;
      font-size:16px;
      line-height:1.45;
      -webkit-appearance:none;
      appearance:none;
    }
  }
}

.pix-box{
  padding:18px;
  border-radius:18px;
  border:1px dashed rgba(240,207,121,.28);
  background:rgba(212,166,60,.05);
  color:#fff4d8;
  font-weight:800;
  word-break:break-word;
}

/* Contribuir page */
.page-contribuir .page-toolbar{
  flex-wrap:wrap;
}

.page-contribuir .page-toolbar-left{
  flex:1;
  justify-content:center;
  text-align:center;
  min-width:0;
}

.page-contribuir .page-toolbar-title-wrap{
  text-align:center;
}

.page-contribuir .page-toolbar-subtitle{
  white-space:normal;
  text-align:center;
}

.page-contribuir .content-scroll-wrap{
  flex:1 1 0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.page-contribuir .content-scroll-wrap::-webkit-scrollbar{
  display:none;
}
.contribuir-options{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:22px;
}

.contribuir-option{
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 20px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(240,207,121,.16);
  cursor:pointer;
  text-align:left;
  color:inherit;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.contribuir-option:hover{
  transform:translateY(-2px);
  border-color:rgba(240,207,121,.34);
  box-shadow:0 18px 40px rgba(0,0,0,.24);
}

.contribuir-option-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  flex:0 0 52px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  line-height:1;
}

.contribuir-icon-gold{
  background:rgba(212,166,60,.12);
  border:1px solid rgba(240,207,121,.2);
}

.contribuir-icon-purple{
  background:rgba(139,92,246,.12);
  border:1px solid rgba(167,139,250,.25);
}

.contribuir-option-text{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.contribuir-option-title{
  font-size:17px;
  font-weight:900;
  color:#fff2cc;
  letter-spacing:.02em;
}

.contribuir-option-sub{
  font-size:13px;
  color:var(--white-muted);
}

.contribuir-option-chevron{
  flex:0 0 auto;
  color:rgba(255,255,255,.4);
}

.contribuir-quote-card{
  padding:22px;
}

.contribuir-quote-header{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}

.contribuir-quote-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(212,166,60,.1);
  border:1px solid rgba(240,207,121,.18);
  font-size:22px;
  line-height:1;
}

.contribuir-quote-title{
  margin:0;
  font-size:18px;
  font-weight:900;
  color:#fff2cc;
  letter-spacing:.02em;
}

.contribuir-quote-text{
  margin:0 0 12px;
  font-size:16px;
  line-height:1.65;
  color:rgba(255,255,255,.82);
}

.contribuir-quote-ref{
  margin:0;
  font-size:14px;
  color:var(--gold-2);
  font-weight:700;
}

.contribuir-modal-overlay{
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.contribuir-modal{
  width:100%;
  max-width:440px;
  max-height:90vh;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(22,18,14,.98), rgba(12,10,8,.98));
  border:1px solid rgba(240,207,121,.2);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.contribuir-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
}

.contribuir-modal-title{
  margin:0;
  font-size:18px;
  font-weight:900;
  color:#fff2cc;
}

.contribuir-modal-close{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  cursor:pointer;
  color:var(--white-muted);
}

.contribuir-modal-close:hover{
  color:#fff;
}

.contribuir-modal-body{
  padding:20px;
  padding-bottom:calc(20px + env(safe-area-inset-bottom));
  overflow-y:auto;
  overflow-x:hidden;
  flex:1;
  min-height:0;
  width:100%;
  box-sizing:border-box;
  -webkit-overflow-scrolling:touch;
}

.contribuir-msg{
  margin:0 0 18px;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(212,166,60,.08);
  border:1px solid rgba(240,207,121,.14);
  color:rgba(255,255,255,.88);
  font-size:14px;
  line-height:1.5;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* --- Modal premium: permissão de notificações (avisos da igreja) --- */
.push-promo-overlay.contribuir-modal-overlay{
  z-index:210;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  align-items:center;
  justify-content:center;
}

.push-promo-shell{
  width:100%;
  max-width:400px;
  border-radius:28px;
  background:linear-gradient(168deg, rgba(22,19,15,.995) 0%, rgba(10,8,7,.99) 42%, rgba(14,11,9,1) 100%);
  border:1px solid rgba(212,180,95,.52);
  box-shadow:
    0 0 0 1px rgba(255,236,210,.1) inset,
    0 0 0 1px rgba(45,32,14,.55),
    0 40px 80px rgba(0,0,0,.62),
    0 0 120px rgba(201,162,62,.1);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  position:relative;
}

.push-promo-shell::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:
    inset 0 1px 0 rgba(255,236,210,.16),
    inset 0 -1px 0 rgba(0,0,0,.35);
}

.push-promo-head{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:12px 12px 0;
  flex-shrink:0;
  position:relative;
  z-index:1;
}

.push-promo-x{
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  background:linear-gradient(165deg, rgba(32,26,20,.88), rgba(12,10,8,.92));
  border:1px solid rgba(212,180,95,.48);
  box-shadow:
    0 0 0 1px rgba(0,0,0,.45) inset,
    0 2px 10px rgba(0,0,0,.35);
  color:rgba(255,252,245,.95);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease;
}

.push-promo-x:hover{
  background:rgba(38,32,26,.95);
  border-color:rgba(240,207,121,.55);
  box-shadow:
    0 0 0 1px rgba(0,0,0,.4) inset,
    0 3px 14px rgba(201,162,62,.2);
  color:#fff;
}

.push-promo-x:active{
  transform:scale(.96);
}

.push-promo-body{
  padding:8px 26px 28px;
  padding-bottom:calc(28px + env(safe-area-inset-bottom));
  text-align:center;
  position:relative;
  z-index:1;
}

.push-promo-title{
  margin:0 0 22px;
  font-size:clamp(1.28rem, 4.2vw, 1.5rem);
  font-weight:900;
  letter-spacing:.03em;
  line-height:1.2;
  color:#ffefd6;
  text-shadow:0 2px 12px rgba(0,0,0,.45), 0 0 28px rgba(212,175,55,.18);
}

.push-promo-box{
  margin:0 auto 22px;
  padding:24px 24px;
  max-width:100%;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(52,44,34,.62), rgba(22,18,15,.58));
  border:1px solid rgba(220,188,105,.48);
  box-shadow:
    inset 0 1px 0 rgba(255,244,220,.1),
    0 0 0 1px rgba(0,0,0,.25) inset,
    0 10px 32px rgba(0,0,0,.22);
  box-sizing:border-box;
}

.push-promo-text{
  margin:0;
  font-size:clamp(16px, 3.9vw, 18px);
  line-height:1.65;
  color:rgba(255,255,255,.92);
  text-align:center;
}

.push-promo-text strong{
  color:#ffefd6;
  font-weight:800;
}

.push-promo-hint-line{
  margin:0 auto 12px;
  max-width:100%;
  padding:0 2px;
  font-size:clamp(11px, 2.85vw, 13px);
  font-weight:600;
  letter-spacing:.015em;
  line-height:1.3;
  color:rgba(255,240,215,.9);
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.push-promo-note{
  margin:0 auto 18px;
  padding:16px 18px;
  max-width:100%;
  border-radius:18px;
  font-size:13px;
  line-height:1.55;
  color:rgba(255,255,255,.82);
  text-align:center;
  background:rgba(212,166,60,.1);
  border:1px solid rgba(240,207,121,.2);
  box-sizing:border-box;
}

.push-promo-feedback{
  display:none;
  margin:0 auto 12px;
  max-width:320px;
  font-size:13px;
  line-height:1.45;
  text-align:center;
}

.push-promo-cta{
  width:100%;
  max-width:300px;
  margin:0 auto;
  padding:15px 22px;
  border:none;
  border-radius:999px;
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em;
  font-family:inherit;
  color:#1a1206;
  cursor:pointer;
  background:linear-gradient(180deg, #ffeeb8 0%, #f0cf79 32%, #cf9f2e 100%);
  box-shadow:
    0 6px 24px rgba(201,162,62,.42),
    0 1px 0 rgba(255,255,255,.45) inset;
  transition:filter .15s ease, box-shadow .15s ease, transform .12s ease;
}

.push-promo-cta:hover:not(:disabled){
  filter:brightness(1.07);
  box-shadow:0 8px 28px rgba(201,162,62,.5), 0 1px 0 rgba(255,255,255,.5) inset;
}

.push-promo-cta:active:not(:disabled){
  transform:scale(.985);
}

.push-promo-cta:disabled{
  opacity:.68;
  cursor:wait;
}

.push-promo-disclaimer{
  margin:20px 0 0;
  font-size:11px;
  line-height:1.5;
  color:rgba(200,190,175,.72);
  text-align:center;
  max-width:320px;
  margin-left:auto;
  margin-right:auto;
}

@media (max-width:420px){
  .push-promo-body{
    padding-left:20px;
    padding-right:20px;
  }
  .push-promo-box{
    padding:20px 18px;
  }
  .push-promo-hint-line{
    font-size:clamp(10px, 2.9vw, 12px);
    letter-spacing:.01em;
  }
}

@media (max-width:340px){
  .push-promo-hint-line{
    white-space:normal;
    line-height:1.35;
    font-size:11px;
  }
}

.contribuir-form{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:20px;
  width:100%;
}

.field-label-hint{
  font-size:11px;
  font-weight:600;
  color:var(--white-muted);
  opacity:.9;
}

.contribuir-form .field{
  gap:6px;
  width:100%;
  min-width:0;
}

.contribuir-form .field .input,
.contribuir-form .field .select{
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

.contribuir-form .input,
.contribuir-form .select{
  min-height:56px;
  padding:0 16px;
  font-size:16px;
  line-height:1.5;
}

.contribuir-form .contribuir-select{
  color-scheme:light;
}

/* Campo Data: centralizado */
.contribuir-form .contribuir-input-date{
  text-align:center;
}

/* Celula do date: limita largura igual aos demais (evita encostar no container no iPhone) */
.contribuir-date-cell{
  display:block;
  width:100%;
  min-width:0;
  border-radius:18px;
  border:1px solid rgba(240,207,121,.16);
  background:rgba(255,255,255,.03);
  overflow:hidden;
}

.contribuir-date-cell:focus-within{
  border-color:rgba(240,207,121,.42);
  box-shadow:0 0 0 3px rgba(212,166,60,.08);
}

.contribuir-date-cell .input{
  width:100%;
  box-sizing:border-box;
  border:none;
  background:transparent;
  border-radius:0;
  display:block;
  outline:none;
  text-align:center;
  line-height:56px;
}

/* iPhone: date e select ficam finos - forçar mesma altura e largura dos demais */
@supports (-webkit-touch-callout: none){
  .contribuir-form .contribuir-input-date,
  .contribuir-form select.contribuir-select,
  html:not(.android) .page-admin-agenda .contribuir-date-cell .contribuir-input-date{
    min-height:56px;
    height:56px;
    padding:0 16px;
    box-sizing:border-box;
    width:100%;
    min-width:0;
    max-width:100%;
  }
  .contribuir-form .contribuir-input-date,
  html:not(.android) .page-admin-agenda .contribuir-date-cell .contribuir-input-date{
    -webkit-appearance:textfield;
    appearance:textfield;
  }
  html:not(.android) .page-admin-agenda .contribuir-date-cell .contribuir-input-date::-webkit-datetime-edit-fields-wrapper{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
  }
  .contribuir-form select.contribuir-select{
    -webkit-appearance:none;
    appearance:none;
    text-align:center;
    text-align-last:center;
    padding-right:40px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
  }
}

/* iPhone: Programar avisos — datetime-local fica fino no Safari; mesma altura dos .input (não usar em html.android). */
@media (max-width: 1024px){
  @supports (-webkit-touch-callout: none){
    html:not(.android) .page-admin-push-agendar input[type="datetime-local"].input{
      min-height:56px;
      height:56px;
      padding:0 16px;
      box-sizing:border-box;
      width:100%;
      min-width:0;
      max-width:100%;
      font-size:16px;
      line-height:1.25;
      -webkit-appearance:textfield;
      appearance:textfield;
    }
    html:not(.android) .page-admin-push-agendar input[type="datetime-local"].input::-webkit-datetime-edit{
      padding:0;
      margin:0;
      height:100%;
      min-height:52px;
    }
    html:not(.android) .page-admin-push-agendar input[type="datetime-local"].input::-webkit-datetime-edit-fields-wrapper{
      width:100%;
      min-height:52px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      box-sizing:border-box;
    }
  }
}

.contribuir-form .contribuir-select option{
  color:#1a1a1a;
  background:#fff;
}

.contribuir-field-checkbox{
  flex-direction:row;
  align-items:center;
  width:100%;
}

.contribuir-field-checkbox .contribuir-checkbox-wrap{
  width:100%;
}

.contribuir-checkbox-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}

.contribuir-checkbox{
  width:20px;
  height:20px;
  accent-color:var(--gold-2);
  cursor:pointer;
}

.contribuir-checkbox-label{
  font-size:14px;
  color:rgba(255,255,255,.82);
}

.contribuir-pix-section{
  margin-bottom:16px;
  width:100%;
}

.contribuir-pix-title{
  margin:0 0 10px;
  font-size:14px;
  font-weight:700;
  color:var(--white-muted);
}

.contribuir-pix-row{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
}

.contribuir-pix-box{
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:56px;
  padding:16px;
  display:flex;
  align-items:center;
  font-size:16px;
  box-sizing:border-box;
}
.contribuir-pix-box.contribuir-pix-box-empty{
  color:rgba(255,255,255,.48);
  font-style:italic;
  font-weight:500;
}

.contribuir-btn-copy{
  width:100%;
  padding:0 18px;
  min-height:56px;
  border-radius:14px;
  background:rgba(212,166,60,.2);
  border:1px solid rgba(240,207,121,.3);
  color:#fff2cc;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:background .18s, border-color .18s;
  box-sizing:border-box;
}

.contribuir-btn-copy:hover{
  background:rgba(212,166,60,.28);
  border-color:rgba(240,207,121,.45);
}

.contribuir-btn-copy.copied{
  background:rgba(34,197,94,.25);
  border-color:rgba(34,197,94,.4);
  color:#86efac;
}
.contribuir-btn-copy:disabled,
.contribuir-btn-copy[disabled]{
  opacity:.48;
  cursor:not-allowed;
}
.contribuir-btn-copy:disabled:hover,
.contribuir-btn-copy[disabled]:hover{
  background:rgba(212,166,60,.14);
  border-color:rgba(240,207,121,.22);
}

.contribuir-validation-msg{
  margin-bottom:12px;
  padding:12px 16px;
  border-radius:14px;
  background:rgba(239,68,68,.12);
  border:1px solid rgba(239,68,68,.25);
  color:#fca5a5;
  font-size:14px;
  font-weight:600;
}

.contribuir-btn-pago{
  width:100%;
  padding:16px 20px;
  border-radius:18px;
  box-sizing:border-box;
  background:linear-gradient(180deg, rgba(34,197,94,.18), rgba(34,197,94,.1));
  border:1px solid rgba(34,197,94,.35);
  color:#86efac;
  font-weight:800;
  font-size:15px;
  cursor:pointer;
  transition:transform .18s, box-shadow .18s;
}

.contribuir-btn-pago:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(34,197,94,.15);
}

.financeiro-pix-modal-actions{
  margin-top:22px;
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
  box-sizing:border-box;
}

.contribuir-btn-pix-remove{
  width:100%;
  padding:14px 18px;
  border-radius:16px;
  box-sizing:border-box;
  background:rgba(239,68,68,.1);
  border:1px solid rgba(239,68,68,.32);
  color:#fca5a5;
  font-weight:800;
  font-size:14px;
  cursor:pointer;
  transition:background .18s, border-color .18s, transform .18s;
}

.contribuir-btn-pix-remove:hover{
  background:rgba(239,68,68,.16);
  border-color:rgba(239,68,68,.45);
  transform:translateY(-1px);
}

.contribuir-comprovante-wrap{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.06);
  width:100%;
}

.contribuir-comprovante-msg{
  margin:0 0 14px;
  font-size:15px;
  color:rgba(255,255,255,.88);
}

.contribuir-obrigado-wrap,
.contribuir-obrigado-msg{
  margin:18px 0 0;
  padding:18px;
  border-radius:18px;
  background:rgba(212,166,60,.08);
  border:1px solid rgba(240,207,121,.18);
  text-align:center;
}

.contribuir-obrigado-title{
  margin:0 0 6px;
  font-size:20px;
  font-weight:900;
  color:var(--gold-2);
}

.contribuir-obrigado-text{
  margin:0;
  font-size:15px;
  color:rgba(255,255,255,.88);
  line-height:1.5;
}

.contribuir-upload-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:18px 24px;
  border-radius:18px;
  border:2px dashed rgba(240,207,121,.35);
  background:rgba(212,166,60,.06);
  cursor:pointer;
  transition:border-color .18s, background .18s;
  width:100%;
  box-sizing:border-box;
}

.contribuir-upload-btn:hover{
  border-color:rgba(240,207,121,.5);
  background:rgba(212,166,60,.1);
}

.contribuir-upload-icon{
  color:var(--gold-2);
  display:flex;
  align-items:center;
  justify-content:center;
}

.contribuir-upload-text{
  font-size:15px;
  font-weight:700;
  color:#fff2cc;
}

@media (max-width: 480px){
  .contribuir-modal-overlay{
    padding:12px;
    padding-bottom:max(12px, env(safe-area-inset-bottom));
    padding-top:max(12px, env(safe-area-inset-top));
    align-items:flex-start;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .push-promo-overlay.contribuir-modal-overlay{
    align-items:center;
    justify-content:center;
    min-height:100%;
    min-height:100dvh;
    box-sizing:border-box;
  }
  .contribuir-modal{
    max-width:100%;
    min-width:0;
    max-height:none;
  }
  .push-promo-shell{
    max-width:100%;
    min-width:0;
    max-height:none;
  }
  .contribuir-modal-body{
    padding:16px;
    padding-bottom:calc(24px + env(safe-area-inset-bottom));
  }
}

.bottom-nav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:140;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg, #0e0c0a 0%, #0a0806 50%, #080706 100%);
  border-top:1px solid rgba(240,207,121,.18);
  box-shadow:0 -2px 24px rgba(0,0,0,.3), 0 0 40px rgba(212,166,60,.02);
}

.bottom-nav-inner{
  width:min(100%, var(--max));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:10px;
}

.nav-btn{
  min-height:62px;
  border-radius:22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
  color:rgba(255,255,255,.68);
  background:rgba(255,255,255,.03);
  border:1px solid rgba(240,207,121,.2);
  transition:transform .18s ease, border-color .18s ease, color .18s ease, background .18s ease;
}

.nav-btn svg{
  width:19px;
  height:19px;
  stroke:currentColor;
  fill:none;
}

.nav-btn span{
  font-size:12px;
  font-weight:850;
  letter-spacing:.01em;
}

.nav-btn:hover{
  transform:translateY(-1px);
}

.nav-btn.active{
  color:#fff0ca;
  border-color:rgba(240,207,121,.5);
  background:
    radial-gradient(circle at top, rgba(212,166,60,.16), transparent 50%),
    rgba(255,255,255,.04);
  box-shadow:
    0 16px 36px rgba(0,0,0,.25),
    0 0 0 1px rgba(240,207,121,.12) inset;
}

/* Android (html.android): remove realce azul WebKit no toque — clique permanece igual; teclado usa :focus-visible */
html.android button,
html.android [type="button"],
html.android a,
html.android select,
html.android input,
html.android textarea{
  -webkit-tap-highlight-color:transparent;
}
html.android button,
html.android [type="button"],
html.android select{
  touch-action:manipulation;
}
html.android button:focus:not(:focus-visible),
html.android [type="button"]:focus:not(:focus-visible),
html.android select:focus:not(:focus-visible){
  outline:none;
}
html.android button:focus-visible,
html.android [type="button"]:focus-visible,
html.android select:focus-visible{
  outline:2px solid rgba(240,207,121,.5);
  outline-offset:2px;
}

.empty-state{
  text-align:center;
  padding:22px;
  border-radius:22px;
  border:1px dashed rgba(240,207,121,.18);
  color:var(--white-muted);
  background:rgba(255,255,255,.02);
}

.fade-up{
  animation:fadeUp .12s ease-out;
}

@keyframes fadeUp{
  from{
    opacity:0;
    transform:translateY(6px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

@media (max-width: 1100px){
  .quick-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .info-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 820px){
  :root{
    --header-h:68px;
  }

  .grid-2,
  .info-grid{
    grid-template-columns:1fr;
  }

  .page-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }

  .admin-panel-toolbar{
    flex-direction:row;
    align-items:center;
    padding:10px 12px;
    gap:10px;
  }
  .admin-panel-toolbar .icon-pill{
    width:40px;
    min-height:40px;
    flex-shrink:0;
  }
  .admin-panel-toolbar .page-toolbar-title{
    font-size:17px;
  }
  .admin-panel-toolbar .page-toolbar-subtitle{
    font-size:12px;
  }
  .admin-panel-toolbar #admSair{
    padding:6px 12px;
    font-size:12px;
  }

  .sticky-toolbar-grid{
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .sticky-toolbar-grid-harpa{
    grid-template-columns:30px minmax(0, 3.4fr);
    gap:6px;
    align-items:end;
  }

  .harpa-toolbar .icon-pill{
    width:30px;
    min-height:40px;
    border-radius:11px;
  }

  .harpa-toolbar .sticky-search-field .input{
    min-height:40px;
    padding:0 10px;
  }

  .sticky-toolbar-grid-louvores{
    grid-template-columns:30px minmax(0, 3.4fr) 30px;
    gap:6px;
    align-items:end;
  }

  .louvores-toolbar .icon-pill{
    width:30px;
    min-height:40px;
    border-radius:11px;
  }

  .page-louvores .page-toolbar,
  .page-harpa .page-toolbar{
    padding:10px 10px 11px;
  }

  .page-contribuir .page-toolbar,
  .page-content-scroll .page-toolbar.content-toolbar{
    flex-direction:row;
    align-items:center;
    flex-wrap:nowrap;
    padding:10px 12px;
    gap:10px;
  }
  .page-contribuir .page-toolbar-left,
  .page-content-scroll .page-toolbar.content-toolbar .page-toolbar-left{
    justify-content:flex-start;
    text-align:left;
    min-width:0;
  }
  .page-contribuir .page-toolbar-title,
  .page-content-scroll .page-toolbar.content-toolbar .page-toolbar-title{
    font-size:17px;
    line-height:1.2;
  }
  .page-contribuir .page-toolbar-subtitle,
  .page-content-scroll .page-toolbar.content-toolbar .page-toolbar-subtitle{
    font-size:12px;
    margin-top:2px;
  }

  .page-biblia .bible-verse-scroll-wrap,
  .page-harpa .harpa-scroll-wrap,
  .page-louvores .harpa-scroll-wrap,
  .page-louvores .louvores-scroll-wrap,
  .page-content-scroll .content-scroll-wrap{
    max-height:calc(100vh - 200px);
  }
  /* ========== BLINDE ANDROID — NÃO ALTERAR ==========
   * Experiência uniforme em todos os modelos Android (telas pequenas e grandes).
   * - Setas Bíblia: bottom 90px + safe-area (mesmo lugar em todos)
   * - Containers: max-height 100dvh-140px, padding-bottom 90px
   * - Todas as páginas com content-scroll-wrap: mesmo flex layout, nunca corta
   * Depende: html.android (index.php) + @media (max-width: 820px)
   * PC e iPhone: BLINDADOS — não tocar.
   * ================================================== */
  html.android .site-shell:has(.page-biblia),
  html.android .site-shell:has(.page-harpa),
  html.android .site-shell:has(.page-louvores),
  html.android .site-shell:has(.page-content-scroll),
  html.android .site-shell:has(.page-contribuir){
    display:flex;
    flex-direction:column;
    min-height:100dvh;
    min-height:100vh;
  }
  html.android .app-main:has(.page-biblia),
  html.android .app-main:has(.page-harpa),
  html.android .app-main:has(.page-louvores),
  html.android .app-main:has(.page-content-scroll),
  html.android .app-main:has(.page-contribuir){
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
    padding-bottom:0;
  }
  html.android .app-main:has(.page-biblia) .app-container,
  html.android .app-main:has(.page-harpa) .app-container,
  html.android .app-main:has(.page-louvores) .app-container,
  html.android .app-main:has(.page-content-scroll) .app-container,
  html.android .app-main:has(.page-contribuir) .app-container{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  html.android .app-main:has(.page-biblia) #app,
  html.android .app-main:has(.page-harpa) #app,
  html.android .app-main:has(.page-louvores) #app,
  html.android .app-main:has(.page-content-scroll) #app,
  html.android .app-main:has(.page-contribuir) #app{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  html.android .page-shell.page-biblia,
  html.android .page-shell.page-harpa,
  html.android .page-shell.page-louvores,
  html.android .page-shell.page-content-scroll,
  html.android .page-shell.page-contribuir{
    flex:1;
    min-height:0;
    justify-content:flex-start;
  }
  html.android .page-biblia .bible-verse-outer{
    display:flex;
    flex-direction:column;
    flex:1 1 0;
    min-height:0;
    overflow:visible;
  }
  html.android .page-biblia .bible-verse-scroll-wrap{
    position:relative;
    z-index:0;
  }
  html.android .page-biblia .bible-nav-arrow{
    z-index:100;
    bottom:calc(90px + env(safe-area-inset-bottom, 0px));
    opacity:1;
    visibility:visible;
  }
  html.android .page-biblia .bible-verse-scroll-wrap,
  html.android .page-harpa .harpa-scroll-wrap,
  html.android .page-louvores .harpa-scroll-wrap,
  html.android .page-louvores .louvores-scroll-wrap{
    flex:1 1 0;
    min-height:0;
    max-height:calc(100vh - 140px);
    max-height:calc(100dvh - 140px);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    padding-bottom:max(90px, env(safe-area-inset-bottom));
  }
  html.android .page-louvores .harpa-list.harpa-scroll-wrap{
    flex:1 1 0;
    min-height:0;
    max-height:calc(100vh - 140px);
    max-height:calc(100dvh - 140px);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    padding-bottom:max(90px, env(safe-area-inset-bottom));
  }
  /* Todas as páginas com content-scroll-wrap: layout robusto — BLINDE */
  html.android .page-content-scroll .content-scroll-wrap,
  html.android .page-contribuir .content-scroll-wrap{
    flex:1 1 0;
    min-height:0;
    max-height:calc(100vh - 140px);
    max-height:calc(100dvh - 140px);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    padding-bottom:max(90px, env(safe-area-inset-bottom));
    box-sizing:border-box;
  }
  html.android .page-oracao.page-shell{
    gap:18px;
  }
  html.android .page-oracao .card{
    padding:16px;
    margin-bottom:24px;
  }
  html.android .page-oracao .card-title{
    margin-bottom:6px;
  }
  html.android .page-oracao .card-text{
    margin-bottom:10px;
  }
  html.android .page-oracao .form-oracao-pedido{
    gap:10px;
    margin-top:12px;
  }
  html.android .page-oracao .textarea{
    min-height:100px;
  }
  /* ========== FIM BLINDE ANDROID ========== */

  /*
   * iPhone / Safari móvel (≤820px, sem html.android): mesma cadeia flex + scroll
   * que o bloco Android — evita cards/toolbar a “subir” uns sobre os outros
   * ao focar campos, ao teclado ou ao re-render (ex.: push ADM no celular).
   */
  html:not(.android) .site-shell:has(.page-content-scroll),
  html:not(.android) .site-shell:has(.page-contribuir){
    display:flex;
    flex-direction:column;
    min-height:100dvh;
    min-height:100vh;
  }
  html:not(.android) .app-main:has(.page-content-scroll),
  html:not(.android) .app-main:has(.page-contribuir){
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
    padding-bottom:0;
  }
  html:not(.android) .app-main:has(.page-content-scroll) .app-container,
  html:not(.android) .app-main:has(.page-contribuir) .app-container{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  html:not(.android) .app-main:has(.page-content-scroll) #app,
  html:not(.android) .app-main:has(.page-contribuir) #app{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  html:not(.android) .page-shell.page-content-scroll,
  html:not(.android) .page-shell.page-contribuir{
    flex:1;
    min-height:0;
    justify-content:flex-start;
    gap:12px;
  }
  html:not(.android) .page-content-scroll .content-scroll-wrap,
  html:not(.android) .page-contribuir .content-scroll-wrap{
    flex:1 1 0;
    min-height:0;
    max-height:calc(100vh - 140px);
    max-height:calc(100dvh - 140px);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    padding-bottom:max(90px, env(safe-area-inset-bottom));
    box-sizing:border-box;
    overflow-anchor:none;
  }
  html:not(.android) .page-content-scroll .card,
  html:not(.android) .page-contribuir .card{
    min-width:0;
    position:relative;
  }

  .page-louvores .harpa-list.harpa-scroll-wrap{
    max-height:calc(100vh - 240px);
  }

  .louvores-toolbar .field,
  .harpa-toolbar .field{
    flex-direction:column;
    gap:5px;
    min-width:0;
  }

  .harpa-toolbar .field{
    gap:5px;
  }

  .louvores-toolbar .field-label,
  .harpa-toolbar .field-label{
    font-size:10px;
    margin:0 0 0 2px;
  }

  .louvores-toolbar .sticky-search-field .input{
    min-height:40px;
    padding:0 10px;
  }

  .bible-toolbar{
    padding:10px 10px 11px;
  }

  .bible-toolbar .sticky-toolbar-grid-bible{
    grid-template-columns:44px minmax(0, 0.6fr) minmax(0, 1.2fr) minmax(0, 0.65fr);
    gap:6px;
    align-items:end;
  }

  .bible-toolbar .bible-back-btn{
    min-width:44px !important;
    min-height:44px !important;
  }

  .bible-toolbar .icon-pill{
    width:30px;
    min-height:40px;
    border-radius:11px;
  }

  .bible-toolbar .field{
    gap:5px;
  }

  .bible-toolbar .field-label{
    font-size:10px;
    margin-left:2px;
  }

  .bible-toolbar .select{
    min-height:40px;
    padding:0 10px;
    border-radius:12px;
    font-size:16px;
  }

  .bible-toolbar .compact-search-btn{
    min-height:40px;
    min-width:62px;
    padding:0 8px;
    border-radius:12px;
    gap:6px;
    font-size:12px;
  }

  .bible-toolbar .compact-search-btn svg{
    width:14px;
    height:14px;
  }

  .bottom-nav-inner{
    gap:8px;
  }

  .nav-btn{
    min-height:60px;
    border-radius:18px;
    border-color:rgba(240,207,121,.28);
  }

  .nav-btn.active{
    border-color:rgba(240,207,121,.55);
    box-shadow:
      0 16px 36px rgba(0,0,0,.25),
      0 0 0 1px rgba(240,207,121,.18) inset;
  }

  .bottom-nav{
    border-top-color:rgba(240,207,121,.24);
  }

  .nav-btn span{
    font-size:11px;
  }
}

@media (max-width: 640px){
  .header-wrap{
    gap:10px;
    padding:8px 14px;
  }

  .brand-logo{
    width:42px;
    height:42px;
    flex-basis:42px;
    border-radius:12px;
  }

  .brand-title{
    font-size:17px;
  }

  .brand-subtitle{
    font-size:12px;
  }

  .header-menu-btn{
    width:42px;
    height:42px;
    min-height:42px;
    flex:0 0 42px;
    border-radius:12px;
  }

  .header-menu-btn svg{
    width:20px;
    height:20px;
  }

  .app-main{
    padding-top:16px;
  }

  .page-toolbar{
    top:calc(var(--header-h) + 8px);
    padding:12px;
    border-radius:20px;
  }

  .page-contribuir .page-toolbar,
  .page-content-scroll .page-toolbar.content-toolbar{
    flex-direction:row;
    align-items:center;
    flex-wrap:nowrap;
    padding:10px 12px;
    gap:8px;
  }
  .page-contribuir .page-toolbar-title,
  .page-content-scroll .page-toolbar.content-toolbar .page-toolbar-title{
    font-size:16px;
  }
  .page-contribuir .page-toolbar-subtitle,
  .page-content-scroll .page-toolbar.content-toolbar .page-toolbar-subtitle{
    font-size:11px;
  }

  .admin-panel-toolbar{
    padding:8px 10px;
    gap:8px;
  }
  .admin-panel-toolbar .icon-pill{
    width:36px;
    min-height:36px;
    padding:0;
    border-radius:10px;
  }
  .admin-panel-toolbar .page-toolbar-title{
    font-size:16px;
  }
  .admin-panel-toolbar .page-toolbar-subtitle{
    font-size:11px;
  }
  .admin-panel-toolbar #admSair{
    padding:6px 10px;
    font-size:12px;
  }

  .card{
    padding:18px;
    border-radius:24px;
  }

  .hero-title{
    font-size:34px;
  }

  .hero-desc{
    font-size:14px;
  }

  .quick-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .quick-link{
    min-height:120px;
    padding:16px;
    border-radius:20px;
  }

  .sticky-toolbar-grid-harpa{
    grid-template-columns:29px minmax(0, 3.5fr);
    gap:5px;
    align-items:end;
  }

  .harpa-toolbar .icon-pill{
    width:29px;
    min-height:38px;
    border-radius:10px;
  }

  .harpa-toolbar .sticky-search-field .input{
    min-height:38px;
    padding:0 9px;
  }

  .sticky-toolbar-grid-louvores{
    grid-template-columns:29px minmax(0, 3.5fr) 29px;
    gap:5px;
    align-items:end;
  }

  .louvores-toolbar .icon-pill,
  .harpa-toolbar .icon-pill{
    width:29px;
    min-height:38px;
    border-radius:10px;
  }

  .louvores-toolbar .field,
  .harpa-toolbar .field{
    flex-direction:column;
    gap:5px;
  }

  .louvores-toolbar .field-label,
  .harpa-toolbar .field-label{
    font-size:10px;
    margin:0 0 0 2px;
  }

  .louvores-toolbar .sticky-search-field .input{
    min-height:38px;
    padding:0 9px;
  }

  .bible-toolbar{
    padding:10px 9px;
  }

  .bible-toolbar .sticky-toolbar-grid-bible{
    grid-template-columns:46px minmax(0, 2fr) minmax(0, 1.5fr) 46px;
    gap:5px;
  }

  .bible-toolbar .bible-back-btn{
    min-width:46px !important;
    min-height:46px !important;
  }

  .bible-toolbar .icon-pill{
    width:29px;
    min-height:38px;
    border-radius:10px;
  }

  .bible-toolbar .field-label{
    font-size:9px;
    margin-left:1px;
  }

  .bible-toolbar .select{
    min-height:38px;
    padding:0 9px;
    border-radius:11px;
    font-size:16px;
  }

  .bible-toolbar .compact-search-btn{
    min-height:38px;
    min-width:58px;
    padding:0 7px;
    border-radius:11px;
    font-size:11.5px;
  }

  .bible-toolbar .compact-search-btn svg{
    display:none;
  }

  .bottom-nav{
    padding-left:8px;
    padding-right:8px;
  }

  .bottom-nav-inner{
    gap:6px;
  }
}

@media (max-width: 520px){
  .header-menu{
    right:16px;
    width:min(260px, calc(100vw - 24px));
  }

  .quick-link-title{
    font-size:16px;
  }

  .quick-link-sub{
    font-size:12px;
  }

  .schedule-item{
    padding:14px;
  }

  .accordion-btn{
    padding:0 14px;
  }

  .accordion-content{
    padding:0 14px 14px;
  }

  .bible-toolbar{
    padding:9px 8px;
  }

  .bible-toolbar .sticky-toolbar-grid-bible{
    grid-template-columns:44px minmax(0, 2.08fr) minmax(0, 1.58fr) 44px;
    gap:5px;
  }

  .bible-toolbar .bible-back-btn{
    min-width:44px !important;
    min-height:44px !important;
  }

  .sticky-toolbar-grid-harpa{
    grid-template-columns:28px minmax(0, 3.66fr);
    gap:5px;
  }

  .harpa-toolbar .icon-pill{
    width:28px;
    min-height:37px;
    border-radius:10px;
  }

  .harpa-toolbar .sticky-search-field .input{
    min-height:37px;
    padding:0 8px;
  }

  .sticky-toolbar-grid-louvores{
    grid-template-columns:28px minmax(0, 3.66fr) 28px;
    gap:5px;
  }

  .louvores-toolbar .icon-pill{
    width:28px;
    min-height:37px;
    border-radius:10px;
  }

  .louvores-toolbar .sticky-search-field .input{
    min-height:37px;
    padding:0 8px;
  }

  .bible-toolbar .icon-pill{
    min-height:37px;
    border-radius:10px;
  }

  .bible-toolbar .select{
    min-height:37px;
    padding:0 8px;
    border-radius:11px;
    font-size:16px;
  }

  .bible-toolbar .compact-search-btn{
    min-height:37px;
    min-width:54px;
    padding:0 6px;
    border-radius:11px;
    font-size:11px;
  }
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}
