/* AJ Igrejas · Portal — visual da Escala de Obreiros (marinho + celeste)
   As variáveis --cafe-* ficaram com o nome antigo, mas agora são a paleta azul. */
:root {
  --marinho: #0A2352;
  --marinho-2: #12336F;
  --marinho-3: #1C4488;
  --celeste: #4FB3EA;
  --celeste-claro: #E3F2FC;
  --cafe-900: #0A2352;
  --cafe-800: #0A2352;
  --cafe-700: #1C4488;
  --cafe-500: #4FB3EA;
  --cafe-200: #BFDDF5;
  --cafe-100: #E3F2FC;
  --creme: #F4F8FC;
  --texto: #14203A;
  --muted: #5E6B82;
  --borda: #D8E2EE;
  --erro: #D7262E;
  --ok: #1f7a4d;
  --raio: 14px;
  --lateral: 264px;
  --sombra: 0 1px 2px rgba(10, 35, 82, .05), 0 10px 28px rgba(10, 35, 82, .07);
}

* { box-sizing: border-box; }
html, body { margin: 0; overflow-x: clip; }
body {
  font-family: 'Archivo', Calibri, 'Segoe UI', Arial, sans-serif;
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--texto);
  background: var(--creme);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: inherit; font-weight: 800; line-height: 1.15; margin: 0 0 .5rem; color: var(--marinho); letter-spacing: -.3px; }
h1 { font-size: 1.75rem; }
h2 { font-size: 1.3rem; }
.muted { color: var(--muted); }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--celeste); outline-offset: 2px; }
a { color: var(--marinho-3); }

/* Telas */
.tela-centro {
  min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 24px 16px;
}
.cartao {
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  padding: 26px 24px;
  width: 100%;
}
.cartao-login { max-width: 420px; }
.cartao-termo { max-width: 600px; }

/* ===================== Login (como a Escala do Apps Script) ===================== */
.login-caixa {
  display: grid; grid-template-columns: 1fr 1fr; width: 100%; max-width: 860px;
  background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px rgba(10, 35, 82, .18);
}
.login-marca {
  background: radial-gradient(circle at 30% 20%, var(--marinho-3), var(--marinho) 65%);
  color: #fff; padding: 44px 32px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 18px;
}
.placa-logo {
  background: #fff; border-radius: 50%; width: 170px; height: 170px;
  display: grid; place-items: center; box-shadow: 0 0 0 7px rgba(79, 179, 234, .35);
  color: var(--marinho); font-size: 72px; line-height: 1;
}
.placa-logo img { width: 74%; height: auto; }
.login-filial { font-size: 1.45rem; font-weight: 800; line-height: 1.15; }
.login-igreja-sub { font-size: .85rem; color: #BFDDF5; max-width: 290px; }
.login-form { padding: 46px 40px; display: flex; flex-direction: column; justify-content: center; }
.login-form h1 { font-size: 1.9rem; margin: 0; }
.login-form .sub { margin: 6px 0 18px; color: var(--muted); }
.btn-grande { padding: 14px; font-size: 1.02rem; margin-top: 22px; }
.direitos { font-size: .8rem; margin-top: 18px; }

.marca { text-align: center; margin-bottom: 20px; }
.marca-icone {
  display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
  background: var(--marinho); color: #fff; font-size: 24px; margin-bottom: 10px;
}

/* Formulários */
label { display: block; font-weight: 600; font-size: .86rem; color: var(--marinho); margin: 14px 0 6px; }
input, select, textarea {
  width: 100%; font: inherit; color: inherit;
  padding: 11px 13px; border: 1.5px solid var(--borda); border-radius: 9px; background: #fff;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--celeste); box-shadow: 0 0 0 3px rgba(79, 179, 234, .25); }
.campo-senha { position: relative; }
.campo-senha input { padding-right: 56px; }
.ver-senha {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  border: 0; background: none; color: var(--muted); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; padding: 6px;
}
.erro { color: var(--erro); font-size: .9rem; min-height: 1.3em; margin: 10px 0 0; }
.dicas { font-size: .85rem; margin: 10px 0 0; padding-left: 18px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font: inherit; font-weight: 700; cursor: pointer; text-decoration: none;
  border-radius: 9px; padding: 11px 16px; border: 1.5px solid transparent;
  transition: background .15s, border-color .15s, color .15s;
}
.btn:disabled { opacity: .6; cursor: progress; }
.btn-primario { width: 100%; margin-top: 16px; background: var(--marinho); color: #fff; }
.btn-primario:hover:not(:disabled) { background: var(--marinho-2); }
.btn-secundario { background: var(--celeste-claro); color: var(--marinho); border-color: transparent; }
.btn-secundario:hover:not(:disabled) { background: #cfe8fa; }
.btn-celeste { background: var(--celeste); color: var(--marinho); }
.btn-celeste:hover { background: #7cc7f0; }
.btn-contorno { background: transparent; border-color: rgba(255, 255, 255, .45); color: #fff; }
.btn-contorno:hover { border-color: var(--celeste); }
.btn-link { background: none; border: 0; color: var(--marinho-3); padding: 6px 8px; text-decoration: underline; text-decoration-color: var(--celeste); text-underline-offset: 3px; }
.rodape-login { text-align: center; font-size: .85rem; margin: 18px 0 0; }

/* Termo */
.termo {
  max-height: 46vh; overflow: auto;
  border: 1px solid var(--borda); border-radius: 10px; padding: 4px 16px;
  background: var(--celeste-claro); font-size: .95rem;
}
.acoes { display: flex; gap: 10px; margin-top: 16px; }
.acoes .btn { flex: 1; margin-top: 0; }

/* ===================== Estrutura: menu lateral + conteúdo ===================== */
.app { display: flex; min-height: 100vh; }
.lateral {
  width: var(--lateral); flex: 0 0 var(--lateral); background: var(--marinho); color: #fff;
  display: flex; flex-direction: column; position: fixed; left: 0; top: 0; bottom: 0; height: 100vh; height: 100dvh;
  overflow-y: auto; overscroll-behavior: contain; z-index: 20; scrollbar-width: thin; scrollbar-color: var(--marinho-3) transparent;
}
.lateral-topo { padding: 22px 18px 18px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.lateral-topo > div strong { display: block; font-size: 1rem; line-height: 1.2; }
.lateral-topo > div span { display: block; font-size: .78rem; color: #BFDDF5; margin-top: 2px; }
.placa {
  background: #fff; color: var(--marinho); border-radius: 50%; width: 52px; height: 52px; flex: 0 0 52px;
  display: grid; place-items: center; font-size: 24px; overflow: hidden;
}
.placa img { width: 78%; height: auto; }
.placa-pequena { width: 38px; height: 38px; flex-basis: 38px; font-size: 18px; }
.menu { padding: 12px 12px; flex: 1; }
.menu .ico { display: inline-flex; width: 20px; height: 20px; flex: 0 0 20px; }
.menu .ico svg { width: 20px; height: 20px; stroke: var(--celeste); }
.menu .principal {
  display: flex; align-items: center; gap: 12px; width: 100%; text-decoration: none;
  border-radius: 10px; padding: 11px 12px; font-size: 1rem; font-weight: 700; color: #fff;
  background: rgba(255, 255, 255, .06); margin-top: 6px;
}
.menu .principal:hover { background: var(--marinho-2); }
.menu .principal.ativo { background: var(--celeste); color: var(--marinho); }
.menu .principal.ativo .ico svg { stroke: var(--marinho); }
.menu .grupo-itens { margin: 4px 0 6px 21px; padding-left: 12px; border-left: 1px solid rgba(143, 179, 217, .3); }
.menu .item {
  display: block; position: relative; color: #D5E3F3; text-decoration: none; padding: 7px 10px; border-radius: 8px;
  font-size: .92rem; background: none; border: 0;
}
.menu .item:hover { background: var(--marinho-2); color: #fff; }
.menu .item.ativo { background: var(--marinho-3); color: #fff; font-weight: 600; }
.menu .item.ativo::before { content: ""; position: absolute; left: -13px; top: 6px; bottom: 6px; width: 3px; border-radius: 3px; background: var(--celeste); }
.lateral-pe { padding: 16px 18px 20px; border-top: 1px solid rgba(255, 255, 255, .1); }
.lateral-pe .quem { font-weight: 700; }
.lateral-pe .perfil { font-size: .78rem; color: #BFDDF5; margin-bottom: 12px; }
.lateral-pe .btn { width: 100%; }

.area-app { flex: 1; min-width: 0; display: flex; flex-direction: column; margin-left: var(--lateral); min-height: 100vh; }
.barra-movel { display: none !important; position: sticky; top: 0; z-index: 15; background: var(--marinho); color: #fff; padding: 10px 14px; align-items: center; gap: 12px; }
.barra-movel strong { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.botao-menu { background: none; border: 0; padding: 8px 4px; cursor: pointer; display: grid; gap: 4px; }
.botao-menu span { display: block; width: 22px; height: 2.5px; border-radius: 2px; background: #fff; }
.barra-topo {
  position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 32px; background: rgba(244, 248, 252, .92); backdrop-filter: blur(6px); border-bottom: 1px solid var(--borda);
}
.barra-trilha { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: .92rem; }
.barra-trilha a { color: var(--muted); text-decoration: none; }
.barra-trilha a:hover { color: var(--marinho); }
.barra-trilha strong { color: var(--marinho); }
.barra-relogio { font-size: .85rem; color: var(--marinho-3); font-weight: 600; white-space: nowrap; text-transform: capitalize; }
.veu { position: fixed; inset: 0; background: rgba(10, 35, 82, .45); z-index: 19; }

.conteudo { width: 100%; max-width: 1180px; padding: 24px 32px 40px; }
.seletor-igreja { margin-bottom: 14px; max-width: 420px; }

/* Início */
.destaque {
  background: radial-gradient(circle at 85% 0%, var(--marinho-3), var(--marinho) 60%);
  color: #fff; border-radius: 18px; padding: 26px 28px;
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px;
}
.destaque .saudacao { color: #fff; font-size: 2.1rem; letter-spacing: -.8px; margin: 0; }
.destaque-data { color: #BFDDF5; margin: 6px 0 0; }
.destaque-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.destaque-acoes .btn { margin: 0; }

.numeros {
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); margin: 18px 0 8px; overflow: hidden;
}
.numero { padding: 18px 20px 16px; border-right: 1px solid var(--borda); }
.numero:last-child { border-right: 0; }
.numero span { display: block; font-size: 2rem; font-weight: 800; color: var(--marinho); line-height: 1.05; letter-spacing: -.5px; }
.numero small { display: block; color: var(--muted); font-size: .85rem; margin-top: 4px; }
.numero { border-top: 4px solid var(--celeste); }
.colunas-inicio { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.colunas-inicio > div:empty { display: none; }

.titulo-secao { margin-top: 26px; }
.modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.modulo {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 18px; box-shadow: var(--sombra); transition: transform .15s, border-color .15s, box-shadow .15s;
}
.modulo:hover { border-color: var(--celeste); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(10, 35, 82, .12); }
.modulo .ico { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--celeste-claro); margin-bottom: 12px; }
.modulo .ico svg { width: 22px; height: 22px; stroke: var(--marinho-3); }
.modulo strong { display: block; font-size: 1.05rem; color: var(--marinho); }
.modulo .muted { display: block; font-size: .9rem; }
.selo {
  display: inline-block; margin-top: 8px; font-size: .75rem; font-weight: 600;
  padding: 3px 9px; border-radius: 999px; background: var(--celeste-claro); color: var(--marinho);
}

.rodape { text-align: center; font-size: .8rem; padding: 18px 16px 22px; margin-top: auto; }
.rodape a { color: var(--marinho-3); }

/* Aviso flutuante */
.aviso {
  position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%);
  max-width: calc(100% - 32px); padding: 12px 18px; border-radius: 10px;
  background: var(--marinho); color: #fff; box-shadow: 0 12px 30px rgba(10, 35, 82, .3); z-index: 60;
  border-left: 4px solid var(--celeste);
}

/* Carregando */
.spinner {
  width: 36px; height: 36px; border-radius: 50%;
  border: 3px solid var(--celeste-claro); border-top-color: var(--celeste);
  animation: girar .9s linear infinite;
}
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation-duration: 3s; } .modulo { transition: none; } }

/* Celular e tablet: menu vira gaveta */
/* Telas menores: o menu continua SEMPRE visível, como uma coluna estreita só com os ícones.
   O botão ☰ no alto abre o menu completo por cima do conteúdo. */
.botao-expandir { display: none; }
@media (max-width: 1100px) {
  :root { --estreita: 74px; }
  .lateral { width: var(--estreita); transition: width .18s ease; overflow-x: hidden; }
  .area-app { margin-left: var(--estreita); }
  .botao-expandir {
    display: grid; gap: 4px; place-content: center; width: 100%; height: 46px; border: 0; cursor: pointer;
    background: rgba(255, 255, 255, .06); border-bottom: 1px solid rgba(255, 255, 255, .1);
  }
  .botao-expandir span { display: block; width: 22px; height: 2.5px; border-radius: 2px; background: #fff; }
  body:not(.menu-aberto) .lateral-topo { justify-content: center; padding: 14px 0; }
  body:not(.menu-aberto) .lateral-topo > div,
  body:not(.menu-aberto) .menu .principal span:not(.ico),
  body:not(.menu-aberto) .menu .grupo-itens,
  body:not(.menu-aberto) .lateral-pe .quem,
  body:not(.menu-aberto) .lateral-pe .perfil,
  body:not(.menu-aberto) .sair-txt { display: none; }
  body:not(.menu-aberto) .placa { width: 44px; height: 44px; flex-basis: 44px; font-size: 20px; }
  body:not(.menu-aberto) .menu { padding: 10px 8px; }
  body:not(.menu-aberto) .menu .principal { justify-content: center; padding: 12px 0; }
  body:not(.menu-aberto) .lateral-pe { padding: 12px 8px 16px; }
  body:not(.menu-aberto) .lateral-pe .btn { padding: 10px 0; }
  .sair-ico { display: none; }
  body:not(.menu-aberto) .sair-ico { display: inline; font-size: 18px; line-height: 1; }
  body.menu-aberto .lateral { width: var(--lateral); box-shadow: 0 0 40px rgba(0, 0, 0, .35); }
  .barra-topo { position: sticky; padding: 10px 18px; }
  .conteudo { padding: 18px 16px 32px; }
  .colunas-inicio { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  :root { --estreita: 60px; }
  body:not(.menu-aberto) .placa { width: 38px; height: 38px; flex-basis: 38px; font-size: 17px; }
  .conteudo { padding: 16px 12px 28px; }
  .barra-topo { padding: 8px 12px; }
}
@media (max-width: 700px) {
  .login-caixa { grid-template-columns: 1fr; max-width: 440px; }
  .login-marca { padding: 28px 24px; gap: 12px; }
  .placa-logo { width: 96px; height: 96px; font-size: 42px; }
  .login-form { padding: 28px 24px; }
  .destaque { padding: 22px 20px; }
  .destaque .saudacao { font-size: 1.7rem; }
  .barra-relogio { display: none; }
}
@media (max-width: 420px) {
  .numero { padding: 14px 12px; }
  .numero span { font-size: 1.5rem; }
}

/* ===================== Módulos: navegação, listas e formulários ===================== */
a.modulo { text-decoration: none; }
.voltar { display: inline-block; margin: 4px 0 12px; color: var(--cafe-700); font-weight: 600; text-decoration: none; }
.voltar:hover { text-decoration: underline; }

.abas {
  display: flex; gap: 4px; overflow-x: auto; margin: 14px 0 18px; padding: 5px;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; scrollbar-width: thin;
}
.aba {
  padding: 9px 15px; white-space: nowrap; text-decoration: none; color: var(--muted); font-weight: 700; font-size: .93rem;
  border-radius: 9px; transition: background .15s, color .15s;
}
.aba:hover { color: var(--marinho); background: var(--celeste-claro); }
.aba-ativa, .aba-ativa:hover { color: #fff; background: var(--marinho); }
.abas-sub { background: transparent; border: 0; padding: 0; margin-top: 0; }
.abas-sub .aba { background: #fff; border: 1px solid var(--borda); }
.abas-sub .aba-ativa { background: var(--celeste-claro); color: var(--marinho); border-color: var(--celeste); }

.lista-topo { display: flex; gap: 10px; align-items: center; }
.lista-topo .busca { flex: 1; }
.lista-topo .btn-primario { width: auto; margin-top: 0; white-space: nowrap; }
.contagem { font-size: .85rem; margin: 8px 0; }

.chave { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; margin: 10px 0; cursor: pointer; }
.chave input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--cafe-800); }
.chave small { display: block; }
.chave-pequena { font-size: .9rem; margin: 10px 0 0; }

.itens { display: grid; gap: 8px; }
.item {
  display: block; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 12px 14px;
}
.item:hover { border-color: var(--cafe-500); }
.item-titulo { display: block; font-weight: 600; }
.item .muted { display: block; font-size: .9rem; }
.item-inativo { opacity: .65; }
.item-alerta {
  display: inline-block; margin-top: 6px; font-size: .8rem; font-weight: 600;
  padding: 2px 8px; border-radius: 999px; background: #fdecea; color: var(--erro);
}
p.item-alerta { display: block; border-radius: 8px; padding: 10px 12px; font-size: .9rem; }
.vazio { padding: 16px 0; }

/* Janela (dialog) */
.janela {
  width: min(640px, calc(100% - 24px)); max-height: calc(100vh - 32px);
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 0; color: var(--texto);
  box-shadow: 0 20px 60px rgba(10, 35, 82, .25);
}
.janela::backdrop { background: rgba(10, 35, 82, .45); }
.janela-topo {
  position: sticky; top: 0; z-index: 1; background: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid var(--borda); margin: 0;
}
.janela-topo h2 { margin: 0; font-size: 1.15rem; }
.janela-fechar { border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--muted); padding: 2px 6px; }
#janela-corpo { padding: 4px 18px 18px; }

.grade { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.campo-largo { grid-column: 1 / -1; }
.grupo-titulo { font-size: 1rem; margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--borda); color: var(--cafe-800); }
.form-cadastro fieldset, .permissoes { border: 0; padding: 0; margin: 0; min-width: 0; }
.form-cadastro .grupo-titulo:first-child { border-top: 0; padding-top: 0; }
.form-cadastro.cartao { margin-top: 12px; }
.permissoes legend { font-weight: 600; font-size: .9rem; margin: 16px 0 2px; padding: 0; }
.ajuda { display: block; font-size: .8rem; margin-top: 4px; }
.maiusculas { text-transform: uppercase; }
fieldset:disabled input, fieldset:disabled select { background: var(--cafe-100); }

.acoes-form { align-items: center; }
.acoes-form .btn-primario { margin-top: 0; }
.btn-perigo { background: var(--erro); color: #fff; }
.btn-perigo-leve { background: #fff; color: var(--erro); border-color: #f2c4c0; }
.btn-whats { background: #1f7a4d; color: #fff; text-align: center; text-decoration: none; }

.credenciais { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; background: var(--cafe-100); border-radius: 8px; padding: 12px 14px; }
.credenciais dt { color: var(--muted); }
.credenciais dd { margin: 0; overflow-wrap: anywhere; min-width: 0; }
.senha-mostrada { font-family: ui-monospace, monospace; font-size: 1.1rem; letter-spacing: .5px; }
.linha-senha { display: flex; gap: 8px; }
.linha-senha input { flex: 1; font-family: ui-monospace, monospace; }
.linha-senha .btn { white-space: nowrap; }

@media (max-width: 560px) {
  .grade { grid-template-columns: 1fr; }
  .lista-topo { flex-wrap: wrap; }
  .lista-topo .btn-primario { width: 100%; }
  .acoes { flex-direction: column; }
}

/* ===================== Agenda ===================== */
.mes-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.mes-nav .btn-secundario { padding: 8px 14px; text-decoration: none; }
.mes-titulo { font-family: 'Source Serif 4', Georgia, serif; font-size: 1.25rem; min-width: 170px; text-align: center; }
.mes-nav .btn-primario { width: auto; margin: 0 0 0 auto; }
.filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 8px 0; }
.filtros select { width: auto; min-width: 180px; flex: 1; }
.filtros .chave { margin: 0; }

.dias { display: grid; gap: 14px; }
.dia-titulo { font-size: .95rem; margin: 0 0 6px; color: var(--cafe-800); text-transform: capitalize; }
.dia-titulo span:first-child { display: inline-block; min-width: 2.2em; }
.dia-hoje .dia-titulo { color: var(--cafe-900); }
.dia-passado { opacity: .7; }

.evento {
  display: flex; gap: 12px; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: #fff; border: 1px solid var(--borda); border-left: 4px solid var(--cafe-500);
  border-radius: 0 var(--raio) var(--raio) 0; padding: 10px 12px; margin-bottom: 6px;
}
.evento:hover { border-color: var(--cafe-500); }
.evento-turno { flex: none; width: 56px; font-size: .85rem; font-weight: 600; color: var(--cafe-700); }
.evento-turno small { display: block; font-weight: 400; color: var(--muted); }
.evento-corpo { min-width: 0; }
.evento-corpo .muted { display: block; font-size: .9rem; }
.evento-selos { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.evento-selos .selo, .evento-selos .item-alerta { margin: 0; }
.evento-cancelado { opacity: .55; }
.evento-cancelado .item-titulo { text-decoration: line-through; }
.selo-cancelado { background: #fdecea; color: var(--erro); }
.selo-repete { background: #eef3ee; color: #2e6b3a; }
.tipo-festividade { border-left-color: #b8860b; }
.tipo-especial { border-left-color: var(--cafe-700); }
.tipo-extra { border-left-color: #5b7fa6; }
.tipo-remarcacao { border-left-color: #8e6bb0; }
.tipo-reuniao { border-left-color: #2e7d6b; }
.tipo-participacao_externa { border-left-color: #c26a3d; }

.opcoes-recorrencia { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.opcao { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; cursor: pointer;
  border: 1px solid var(--borda); border-radius: 8px; padding: 8px 12px; }
.opcao input { width: auto; accent-color: var(--cafe-800); }
.opcao:has(input:checked) { border-color: var(--cafe-800); background: var(--cafe-100); }
.rotulo-grupo { font-weight: 600; font-size: .9rem; margin: 14px 0 6px; }
.meses { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.mes { display: flex; align-items: center; justify-content: center; gap: 4px; margin: 0; font-weight: 400;
  border: 1px solid var(--borda); border-radius: 8px; padding: 6px 4px; cursor: pointer; text-transform: capitalize; }
.mes input { width: auto; margin: 0; accent-color: var(--cafe-800); }
.mes:has(input:checked) { border-color: var(--cafe-800); background: var(--cafe-100); }
.previa { background: var(--cafe-100); border-radius: 8px; padding: 10px 12px; margin: 12px 0 0; }
.previa:empty { display: none; }
.lista-congs-topo { display: flex; gap: 6px; align-items: center; margin-top: 8px; }
.lista-congs-topo input { flex: 1; }
.lista-congs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; max-height: 240px; overflow: auto;
  border: 1px solid var(--borda); border-radius: 8px; padding: 4px 10px; margin-top: 8px; }
.lista-congs .chave { margin: 6px 0; }
.avancado { margin-top: 16px; border: 1px solid var(--borda); border-radius: 8px; padding: 8px 12px; }
.avancado summary { cursor: pointer; font-weight: 600; color: var(--cafe-800); }

/* Resumo no painel */
.resumo-agenda { display: grid; gap: 12px; margin-top: 8px; }
.cartao-resumo { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 12px 16px; }
.cartao-resumo .titulo-secao { margin: 0 0 8px; font-size: 1.1rem; }
.cartao-lembrete { border-color: #e7c873; background: #fffaf0; }
.lista-resumo { list-style: none; margin: 0; padding: 0; }
.lista-resumo li { border-top: 1px solid var(--borda); }
.lista-resumo li:first-child { border-top: 0; }
.lista-resumo a { display: block; padding: 8px 0; color: inherit; text-decoration: none; }
.lista-resumo a:hover strong { text-decoration: underline; }
.mais { display: inline-block; margin-top: 6px; color: var(--cafe-700); font-weight: 600; }

@media (max-width: 560px) {
  .mes-nav .btn-primario { width: 100%; margin: 4px 0 0; }
  .meses { grid-template-columns: repeat(4, 1fr); }
  .lista-congs { grid-template-columns: 1fr; }
  .filtros select { min-width: 0; width: 100%; flex: 1 1 100%; }
}

/* ===================== Convites ===================== */
.status-resumo { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 12px 0; }
.status-chip { display: block; text-align: center; text-decoration: none; color: inherit; background: #fff;
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 10px 6px; font-size: .85rem; }
.status-chip strong { display: block; font-size: 1.5rem; }
.status-chip:hover { border-color: var(--cafe-500); }
.selo.st-solicitado, .status-chip.st-solicitado strong { color: #8a5a00; }
.selo.st-solicitado { background: #fff4d6; }
.selo.st-autorizado { background: #e8eefc; color: #2a4a8a; } .status-chip.st-autorizado strong { color: #2a4a8a; }
.selo.st-enviado { background: #efe8fa; color: #5b3d8a; } .status-chip.st-enviado strong { color: #5b3d8a; }
.selo.st-liberado { background: #e5f4ea; color: #1f6b3a; } .status-chip.st-liberado strong { color: #1f6b3a; }
.selo.st-negado { background: #fdecea; color: var(--erro); } .status-chip.st-negado strong { color: var(--erro); }
.selo.st-realizado { background: #eef3ee; color: #2e6b3a; }
.selo.st-cancelado { background: #eee; color: #666; }
.contador { display: inline-block; min-width: 1.6em; text-align: center; font-size: .8rem; font-family: 'Source Sans 3', sans-serif;
  background: var(--cafe-100); color: var(--cafe-800); border-radius: 999px; padding: 1px 6px; vertical-align: middle; }
.cartao-resumo .itens { margin-top: 4px; }
.link-solicitacao { margin-top: 12px; }
.link-caixa { font-family: ui-monospace, monospace; font-size: .85rem; background: var(--cafe-100); padding: 8px 10px; border-radius: 8px; word-break: break-all; }
.acoes-convite { flex-wrap: wrap; margin-top: 14px; }
.acoes-convite .btn { flex: 1 1 200px; margin: 0; text-align: center; text-decoration: none; }
.linha-tempo { list-style: none; padding: 0; margin: 8px 0 0; border-left: 2px solid var(--borda); }
.linha-tempo li { padding: 4px 0 4px 12px; position: relative; font-size: .92rem; }
.linha-tempo li::before { content: ''; position: absolute; left: -6px; top: 11px; width: 10px; height: 10px; border-radius: 50%; background: var(--cafe-500); }
.abas-sub { margin-top: 0; }
.abas-sub .aba { font-size: .92rem; padding: 8px 12px; }
a.cartao-convites { display: block; color: inherit; text-decoration: none; border-color: #c9b8e8; background: #faf7ff; }
.lista-simples { margin: 0; padding-left: 18px; }
.lista-simples li { margin: 4px 0; }
.btn[disabled] { cursor: not-allowed; }

/* Páginas públicas */
.topo-publico { position: static; }
.conteudo-estreito { max-width: 720px; }
.pagina-publica .cartao { margin: 12px 0; }
.pagina-publica .btn-primario { margin-top: 12px; }
.convidado { margin: 10px 0; }
.convidado-topo { display: flex; justify-content: space-between; align-items: center; }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.r-texto { font-size: 1.1rem; }

@media (max-width: 560px) {
  .status-resumo { grid-template-columns: repeat(3, 1fr); }
  .acoes-convite .btn { flex-basis: 100%; }
}

/* Timbre e assinatura */
.documentos-igreja { margin-top: 16px; }
.doc-caixa { display: flex; flex-direction: column; gap: 6px; }
.doc-previa { min-height: 90px; display: grid; place-items: center; border: 1px dashed var(--borda); border-radius: 8px; padding: 8px; background: #fff; }
.doc-previa img { max-width: 100%; max-height: 140px; }
.doc-enviar { align-self: flex-start; cursor: pointer; }

.btn-oficio { display: inline-block; margin-top: 12px; text-decoration: none; }
.lista-emails { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 6px; font-size: .92rem; }

/* ===================== Escala de Obreiros ===================== */
.faixa-teste { margin-bottom: 12px; }
.filtros-escala input[type=date] { width: auto; }
.filtros-escala .busca { flex: 2; min-width: 180px; }
.mini { display: flex; align-items: center; gap: 6px; font-size: .9rem; color: var(--muted); }
.escala-blocos { display: grid; gap: 14px; margin-top: 10px; }
.esc-bloco { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); overflow: hidden; }
.esc-cab { background: var(--cafe-900); color: #fff; display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; font-size: .95rem; }
.esc-cab span { opacity: .9; text-align: right; }
.esc-linha { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 8px; padding: 8px 12px; border-top: 1px solid var(--borda); align-items: start; }
.esc-linha:first-child { border-top: 0; }
.esc-evento { background: var(--cafe-100); }
.esc-evento .esc-nome { font-weight: 700; }
.esc-cong small { display: block; font-size: .8rem; }
.esc-v1, .esc-v2 { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.esc-v1 > small, .esc-v2 > small { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; }
.esc-nome { font: inherit; text-align: left; background: none; border: 1px dashed transparent; border-radius: 6px; padding: 2px 6px; margin-left: -6px; color: var(--texto); cursor: default; max-width: 100%; }
button.esc-nome { cursor: pointer; }
button.esc-nome:hover, button.esc-nome:focus-visible { border-color: var(--cafe-500); background: var(--cafe-100); }
.esc-rot { color: var(--muted); font-size: .85em; }
.esc-dup { background: #fff59d; font-weight: 700; }
.esc-falta { border-color: var(--erro); }
.esc-vazio { color: var(--erro); font-style: italic; }
.esc-so1 { padding: 2px 0; }
@media (max-width: 640px) {
  .esc-linha { grid-template-columns: 1fr 1fr; }
  .esc-cong { grid-column: 1 / -1; }
  .esc-cab { flex-direction: column; gap: 0; }
  .esc-cab span { text-align: left; }
}
.t-grupo { border: 1px solid var(--borda); border-radius: 10px; padding: 6px 10px; margin: 8px 0; background: #fff; }
.t-grupo summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.t-grupo .itens { margin-top: 6px; }
.cand-ocupado { border-color: #e0c341; }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 10px; margin: 6px 0; }
.dias { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.opcao-peq { padding: 4px 8px; font-size: .9rem; }
.acoes-mini { margin: 2px 0; }
.acoes-mini .btn-link { padding: 2px 6px; font-size: .85rem; }
.extra-cc { border-top: 1px dashed var(--borda); padding-top: 8px; margin-top: 8px; }
.form-cong { display: block; }
.grade-cong { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border: 0; padding: 0; margin: 8px 0; }
.grade-cong label { display: flex; flex-direction: column; font-size: .85rem; color: var(--muted); }
.grade-cong .campo-largo { grid-column: 1 / -1; }
@media (max-width: 480px) { .grade-cong { grid-template-columns: 1fr; } }
.item-pend .btn { margin-top: 6px; }
a.btn { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }

/* ===================== Escala: e-mails e aniversariantes ===================== */
textarea { width: 100%; font: inherit; color: inherit; padding: 11px 12px; border: 1px solid var(--borda); border-radius: 8px; background: #fff; resize: vertical; line-height: 1.5; }
textarea:focus { outline: 2px solid var(--cafe-500); outline-offset: 1px; border-color: var(--cafe-500); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.esc-mail-cfg, .esc-mail-manual, .esc-mail-teste, .esc-aniv-msg { margin-top: 14px; }
.esc-mail-registro, .esc-aniv-mes + p + .cartao-resumo { margin-top: 14px; }
.campo-hora input { width: auto; min-width: 140px; }
.sub-secao { font-size: 1rem; margin: 18px 0 6px; }
.tabela-rolar { overflow-x: auto; }
.tabela-envios { width: 100%; border-collapse: collapse; font-size: .88rem; }
.tabela-envios th { text-align: left; color: var(--muted); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--borda); white-space: nowrap; }
.tabela-envios td { padding: 6px 8px; border-bottom: 1px solid var(--borda); vertical-align: top; }
.tabela-envios .linha-alerta td { background: #fffaf0; }
.esc-fila-lista { margin-bottom: 10px; }
.esc-aniv-mes select { width: auto; }
.esc-aniv-item { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; }
.esc-aniv-dia { text-align: right; white-space: nowrap; }
.esc-aniv-rel { margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--borda); border-radius: 8px; background: var(--cafe-100); font-size: .92rem; line-height: 1.5; }
@media (max-width: 560px) { .tabela-envios th:nth-child(4), .tabela-envios td:nth-child(4) { display: none; } }

/* ===================== Páginas públicas (solicitar / responder) ===================== */
.topo {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 18px; background: var(--marinho); color: #fff; border-bottom: 3px solid var(--celeste);
}
.topo .muted { color: #BFDDF5; display: block; font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo-igreja { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; }
.topo-igreja > div { min-width: 0; }
.topo-igreja strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo-icone { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--marinho); font-size: 18px; flex: none; }
.pagina-publica .conteudo { margin: 0 auto; padding: 22px 16px 36px; }

/* PDF da escala: opções */
.atalhos-periodo { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.btn-mini { padding: 6px 10px; font-size: .82rem; }
.pdf-modos { border: 0; padding: 0; margin: 16px 0 0; display: grid; gap: 8px; }
.pdf-modos legend { font-weight: 700; color: var(--marinho); font-size: .9rem; margin-bottom: 6px; }
.opcao-cartao { display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 12px 14px; border: 1.5px solid var(--borda); border-radius: 10px; cursor: pointer; font-weight: 400; color: var(--texto); background: #fff; }
.opcao-cartao input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--marinho); }
.opcao-cartao strong { display: block; color: var(--marinho); }
.opcao-cartao small { display: block; }
.opcao-cartao:has(input:checked) { border-color: var(--celeste); background: var(--celeste-claro); }

/* ===================== Importar e backup ===================== */
.zona-arquivo {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; cursor: pointer;
  margin: 16px 0; padding: 30px 16px; border: 2px dashed var(--celeste); border-radius: 16px; background: #fff; color: var(--marinho);
  transition: background .15s, border-color .15s;
}
.zona-arquivo:hover, .zona-arquivo.zona-ativa { background: var(--celeste-claro); border-color: var(--marinho-3); }
.zona-arquivo input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.zona-arquivo:focus-within { outline: 3px solid var(--celeste); outline-offset: 2px; }
.zona-ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--marinho); color: #fff; font-size: 26px; }
.imp-lista { display: grid; gap: 10px; margin: 10px 0 6px; }
.imp-aba { background: #fff; border: 1px solid var(--borda); border-left: 4px solid var(--celeste); border-radius: 12px; padding: 12px 14px; }
.imp-off { border-left-color: var(--borda); opacity: .75; }
.imp-topo { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.imp-topo strong { display: block; color: var(--marinho); }
.imp-topo small { display: block; }
.imp-topo select { width: auto; min-width: 240px; max-width: 100%; }
.imp-nota { margin: 8px 0 0; font-size: .85rem; color: #8a5a00; }
.imp-colunas { margin-top: 8px; }
.imp-colunas summary { cursor: pointer; font-weight: 600; color: var(--marinho-3); font-size: .9rem; }
.imp-colunas .campo { max-width: 180px; }
.imp-mapa { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 0 12px; }
.imp-mapa label { font-size: .8rem; margin: 10px 0 0; }
.imp-mapa select { margin-top: 4px; padding: 8px 10px; font-size: .88rem; }
.imp-log { margin-top: 16px; }
.imp-avisos summary { cursor: pointer; font-weight: 700; color: #8a5a00; margin-top: 10px; }
.ok { color: var(--ok); font-weight: 600; }
.nova-igreja { margin-top: 10px; }
.backup-grade { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; align-items: start; margin-bottom: 16px; }
.backup-cartao .acoes .btn { margin-top: 0; }
.backup-status { margin: 14px 0 0; font-size: .9rem; }
@media (max-width: 900px) { .backup-grade { grid-template-columns: 1fr; } }

/* Telas baixas (notebook): menu mais compacto para caber inteiro sem rolar */
@media (max-height: 820px) and (min-width: 1101px) {
  .lateral-topo { padding: 14px 16px 12px; }
  .placa { width: 44px; height: 44px; flex-basis: 44px; font-size: 20px; }
  .menu { padding: 8px 12px; }
  .menu .principal { padding: 8px 12px; margin-top: 4px; font-size: .95rem; }
  .menu .item { padding: 5px 10px; font-size: .88rem; }
  .lateral-pe { padding: 10px 16px 14px; }
  .lateral-pe .perfil { margin-bottom: 8px; }
  .lateral-pe .btn { padding: 8px 12px; }
}

/* ===================== Painel do Início (como a Escala do Apps Script) ===================== */
.destaque:has(+ #painel-escala:not(:empty)) { padding: 16px 22px; background: transparent; color: var(--marinho); }
.destaque:has(+ #painel-escala:not(:empty)) .saudacao { color: var(--marinho); font-size: 1.6rem; }
.destaque:has(+ #painel-escala:not(:empty)) .destaque-data { color: var(--muted); }
.pe-periodo {
  background: radial-gradient(circle at 15% 0%, var(--marinho-3), var(--marinho) 55%); color: #fff; border-radius: 18px;
  padding: 24px 26px; display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 26px; align-items: start;
}
.pe-rotulo { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--celeste); margin-bottom: 8px; }
.pe-periodo h2 { margin: 0; color: #fff; font-size: 2.1rem; line-height: 1.05; font-weight: 800; letter-spacing: -.8px; }
.pe-resumo { margin: 10px 0 18px; color: #BFDDF5; }
.pe-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.pe-acoes .btn { margin: 0; }
.pe-cal-cab, .pe-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.pe-cal-cab span { font-size: .75rem; color: #8FB3D9; text-align: center; padding-bottom: 4px; }
.pe-dia {
  position: relative; background: rgba(255, 255, 255, .07); border: 1.5px solid transparent; border-radius: 9px; color: #fff; font: inherit;
  padding: 8px 6px 12px; text-align: left; min-height: 60px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer;
  animation: pe-surge .35s ease both;
}
.pe-dia:hover { background: rgba(255, 255, 255, .16); }
.pe-dia .n { font-size: 1.1rem; font-weight: 700; line-height: 1; }
.pe-dia .q { font-size: .68rem; color: #BFDDF5; }
.pe-dia .barra { position: absolute; left: 6px; right: 6px; bottom: 5px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .12); }
.pe-dia.com-culto .barra { background: var(--celeste); }
.pe-dia.tem-evento { border-color: var(--celeste); }
.pe-dia .ponto { position: absolute; top: 7px; right: 7px; width: 9px; height: 9px; border-radius: 50%; background: var(--erro); box-shadow: 0 0 0 2px var(--marinho); }
.pe-dia.passado { opacity: .55; }
.pe-dia.hoje { background: #fff; color: var(--marinho); opacity: 1; }
.pe-dia.hoje .q { color: var(--muted); }
@keyframes pe-surge { from { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .pe-dia { animation: none; } }
.pe-legenda { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; font-size: .75rem; color: #BFDDF5; }
.pe-legenda i { display: inline-block; vertical-align: middle; margin-right: 6px; }
.lg-culto { width: 14px; height: 3px; background: var(--celeste); border-radius: 3px; }
.lg-pend { width: 9px; height: 9px; border-radius: 50%; background: var(--erro); }
.lg-evento { width: 12px; height: 12px; border: 1.5px solid var(--celeste); border-radius: 3px; }
.lg-hoje { width: 12px; height: 12px; background: #fff; border-radius: 3px; }
.pe-vazio { border: 1.5px dashed rgba(255, 255, 255, .3); border-radius: 12px; padding: 22px; color: #BFDDF5; }
.pe-vazio strong { display: block; color: #fff; font-size: 1.05rem; margin-bottom: 4px; }

.pe-numeros { display: grid; grid-template-columns: repeat(6, 1fr); background: #fff; border: 1px solid var(--borda); border-radius: 14px; margin-top: 18px; overflow: hidden; }
.pe-num { display: block; padding: 16px 16px 14px; border-right: 1px solid var(--borda); text-decoration: none; color: inherit; }
.pe-num:last-child { border-right: 0; }
.pe-num:hover { background: var(--celeste-claro); }
.pe-num b { display: block; font-size: 1.85rem; font-weight: 800; color: var(--marinho); line-height: 1.05; letter-spacing: -.5px; }
.pe-num span { display: block; font-size: .8rem; color: var(--muted); margin-top: 4px; }
.pe-num.alerta b { color: var(--erro); }
.pe-num .trilho { height: 4px; border-radius: 4px; background: var(--celeste-claro); margin-top: 10px; overflow: hidden; }
.pe-num .trilho i { display: block; height: 100%; background: var(--celeste); }

.pe-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.pe-bloco { background: #fff; border: 1px solid var(--borda); border-radius: 14px; padding: 18px 20px; min-width: 0; }
.pe-bloco-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pe-bloco h3 { margin: 0; font-size: 1.05rem; color: var(--marinho); }
.pe-link { color: var(--marinho-3); font-weight: 600; font-size: .88rem; text-decoration: none; border-bottom: 1.5px solid var(--celeste); }
.pe-lista { list-style: none; margin: 0; padding: 0; }
.pe-lista li { border-top: 1px solid var(--borda); }
.pe-lista li:first-child { border-top: 0; }
.pe-linha { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 9px 6px; border-radius: 8px; color: inherit; text-decoration: none; }
a.pe-linha:hover { background: var(--celeste-claro); }
.pe-linha .tit { display: block; font-weight: 600; }
.pe-linha .det { display: block; font-size: .82rem; color: var(--muted); }
.pe-selo { display: inline-block; font-size: .75rem; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: var(--celeste-claro); color: var(--marinho); white-space: nowrap; }
.pe-selo.forte { background: var(--marinho); color: #fff; }
.pe-selo.vermelho { background: #FDE7E8; color: #A3151B; }
.pe-dia-grupo { font-size: .82rem; font-weight: 700; color: var(--marinho-3); padding: 10px 6px 2px; }
.pe-vazio-txt { color: var(--muted); padding: 10px 6px; font-size: .9rem; }
.pe-barras { display: flex; flex-direction: column; gap: 6px; }
.pe-barra { display: grid; grid-template-columns: minmax(110px, 180px) 1fr 30px; gap: 10px; align-items: center; font-size: .9rem; }
.pe-barra .nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pe-barra .trilho { height: 8px; border-radius: 6px; background: var(--celeste-claro); overflow: hidden; }
.pe-barra .trilho i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--marinho-3), var(--celeste)); }
.pe-barra b { text-align: right; color: var(--marinho); }
.pe-agenda .cartao-resumo { border: 0; padding: 0; }
@media (max-width: 1100px) { .pe-numeros { grid-template-columns: repeat(3, 1fr); } .pe-num:nth-child(3) { border-right: 0; } .pe-num:nth-child(-n+3) { border-bottom: 1px solid var(--borda); } }
@media (max-width: 900px) { .pe-periodo { grid-template-columns: 1fr; } .pe-colunas { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .pe-periodo { padding: 18px 14px; } .pe-periodo h2 { font-size: 1.6rem; }
  .pe-cal-cab, .pe-cal { gap: 4px; } .pe-dia { min-height: 48px; padding: 6px 4px 10px; } .pe-dia .q { display: none; }
  .pe-numeros { grid-template-columns: repeat(2, 1fr); } .pe-num { border-bottom: 1px solid var(--borda); }
}

/* Login: logotipo da igreja e marca da Central */
.placa-logo.com-logo { padding: 10px; }
.placa-logo.com-logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.aj-mono { font-size: 56px; font-weight: 800; letter-spacing: -2px; color: var(--marinho); }
@media (max-width: 700px) { .aj-mono { font-size: 34px; } }
