/* 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; }
/* Filial de demonstração */
.faixa-demo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
  margin-bottom: 14px; padding: 10px 14px; border-radius: var(--raio); background: #FFF4D6; border: 1px solid #E8C25A; color: #5A4300; font-size: .92rem; }
.faixa-demo[hidden] { display: none; }

/* 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-data { display: block; font-size: .85rem; color: var(--texto, inherit); }
.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; } }

/* Escala: equipe, ⭐ e tamanho do texto */
.equipe { margin-top: 8px; }
.equipe summary { cursor: pointer; font-weight: 700; color: var(--marinho-3); font-size: .9rem; }
.dias-eq { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; }
.dias-eq .chave { margin: 4px 0; }
.estrelas { font-size: .8em; letter-spacing: -1px; }
.fonte-escala { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.fonte-escala .btn { margin: 0; min-width: 40px; }
.fonte-pct { font-size: .82rem; color: var(--muted); min-width: 38px; text-align: center; }

/* ===================== Janela de progresso ===================== */
.prog-veu { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 16px;
  background: rgba(10, 35, 82, .55); backdrop-filter: blur(3px); animation: prog-entra .2s ease; }
.prog-caixa { width: min(420px, 100%); background: #fff; border-radius: 18px; padding: 26px 26px 22px; text-align: center;
  box-shadow: 0 24px 60px rgba(10, 35, 82, .35); border-top: 5px solid var(--celeste); }
.prog-anel { position: relative; width: 132px; height: 132px; margin: 0 auto 10px; }
.prog-anel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.prog-fundo { fill: none; stroke: var(--celeste-claro); stroke-width: 10; }
.prog-arco { fill: none; stroke: var(--marinho); stroke-width: 10; stroke-linecap: round; transition: stroke-dashoffset .1s linear; }
.prog-pct { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2rem; font-weight: 800; color: var(--marinho); letter-spacing: -1px; }
.prog-titulo { margin: 4px 0 2px; font-size: 1.2rem; }
.prog-aguarde { margin: 0; color: var(--muted); font-size: .9rem; }
.prog-texto { margin: 12px 0 12px; min-height: 2.6em; color: var(--marinho-3); font-weight: 600; font-size: .95rem; }
.prog-barra { height: 8px; border-radius: 8px; background: var(--celeste-claro); overflow: hidden; }
.prog-barra i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--marinho-3), var(--celeste)); transition: width .1s linear; }
@keyframes prog-entra { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .prog-veu { animation: none; } }

/* Histórico (log por usuário e por cidade) */
.hist-filtros { padding: 12px 14px; }
.hist-data { display: flex; align-items: center; gap: 6px; margin: 0; font-size: .88rem; color: var(--muted); }
.hist-data input { width: auto; margin: 0; }
.hist-filtros input[type=search] { flex: 1; min-width: 180px; margin: 0; }
.hist-btn { width: auto; margin: 0; }
.tabela-hist td:first-child { white-space: nowrap; }
@media (max-width: 560px) { .hist-btn, .hist-filtros input[type=search] { flex: 1 1 100%; } }
@media (max-width: 560px) {
  .tabela-hist th:nth-child(4), .tabela-hist td:nth-child(4) { display: table-cell; }
  .tabela-hist th.col-mod, .tabela-hist td.col-mod { display: none; }
}

/* Publicar a escala */
.aviso-publicar { background: #fff7e6; border: 1px solid #f3d9a4; border-radius: 10px; padding: 8px 12px; }

/* Minha escala (obreiro) */
.me-topo { flex-wrap: wrap; }
.me-periodo { margin-top: 18px; }
.me-lista { display: grid; gap: 12px; }
.me-cartao { display: flex; gap: 14px; background: var(--cartao, #fff); border: 1px solid var(--borda); border-left: 5px solid var(--celeste, #4FB3EA);
  border-radius: 14px; padding: 14px; box-shadow: 0 1px 3px rgba(10, 35, 82, .06); }
.me-cartao.me-hoje { border-left-color: #f2a516; background: #fffaf0; }
.me-cartao.me-passado { opacity: .78; border-left-color: var(--borda); }
.me-data { flex: 0 0 74px; text-align: center; background: #0A2352; color: #fff; border-radius: 10px; padding: 8px 4px; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.me-data strong { font-size: 1.25rem; line-height: 1.1; }
.me-dia { text-transform: uppercase; font-size: .75rem; letter-spacing: .06em; color: #bfddf5; }
.me-turno { font-size: .8rem; color: #e3f2fc; }
.me-corpo { flex: 1; min-width: 0; }
.me-corpo h3 { margin: 0 0 2px; font-size: 1.05rem; }
.me-corpo p { margin: 2px 0; }
.me-titulo { font-weight: 600; }
.me-funcao { margin-top: 6px !important; }
.me-com { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--borda); }
.me-com li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--borda); }
.me-acoes { margin-top: 8px; flex-wrap: wrap; }
.me-end { font-size: .85rem; }
.selo-festivo { background: #fff3c4; color: #7a5a00; }
.me-trocas ul { margin-top: 6px; }
.passos-assinar li { margin: 6px 0; }
@media (max-width: 560px) {
  .me-cartao { gap: 10px; padding: 12px; }
  .me-data { flex-basis: 62px; }
  .me-topo .btn { flex: 1 1 100%; }
}
.menu-contador { margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #f2a516; color: #0A2352;
  font-size: .75rem; display: inline-flex; align-items: center; justify-content: center; }
.menu .principal { position: relative; }
@media (max-width: 1100px) {
  body:not(.menu-aberto) .menu .menu-contador { position: absolute; top: 3px; right: 3px; min-width: 18px; height: 18px; padding: 0 4px; font-size: .68rem; }
}

/* Pedidos de convite (Ciente) e Autorizar */
.ci-lista { display: grid; gap: 12px; margin-bottom: 18px; }
.ci-cartao h3 { margin: 0 0 4px; }
.ci-topo { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.ci-pendente { border-left: 5px solid #f2a516; }
.ci-convidados li { margin: 3px 0; }
.ci-itens { list-style: none; margin: 8px 0; padding: 0; border-top: 1px solid var(--borda); }
.ci-itens li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); flex-wrap: wrap; }
.ci-itens .acoes { margin: 0; }
textarea#mt-txt { width: 100%; }
.lista-avisos { list-style: none; margin: 0 0 14px; padding: 0; }
.lista-avisos li { border-bottom: 1px solid var(--borda); }
.lista-avisos a { display: block; padding: 10px 4px; color: inherit; text-decoration: none; }
.lista-avisos a:hover { background: var(--celeste-claro); }
.lista-avisos strong { display: inline-block; min-width: 28px; padding: 2px 8px; margin-right: 6px; border-radius: 12px; background: #f2a516; color: #0A2352; text-align: center; }
.topo-icone.com-logo { overflow: hidden; padding: 2px; }
.topo-icone img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }

/* Modelos de ofício */
.janela.janela-larga { width: min(1100px, 96vw); max-width: 96vw; }
.om-lista { list-style: none; margin: 0; padding: 0; }
.om-lista li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--borda); flex-wrap: wrap; }
.om-lista li:first-child { border-top: 0; }
.om-lista .acoes { margin: 0; }
.om-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.om-campos label { display: block; margin-bottom: 8px; font-weight: 600; font-size: .9rem; }
.om-campos input, .om-campos textarea, .om-campos select { width: 100%; font-weight: 400; }
.om-campos textarea { font-family: inherit; line-height: 1.45; }
.om-formato { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; border: 1px solid var(--borda); border-radius: 10px; padding: 8px 10px; }
.om-formato legend { font-weight: 700; font-size: .85rem; }
.om-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.om-chip { border: 1px solid var(--borda); background: var(--celeste-claro); color: var(--marinho); border-radius: 14px; padding: 3px 9px; font: 600 .78rem monospace; cursor: pointer; }
.om-legenda { font-size: .8rem; max-height: 160px; overflow: auto; }
.om-previa-caixa { position: sticky; top: 0; }
.om-previa { background: #e9eef5; padding: 10px; border-radius: 10px; max-height: 70vh; overflow: auto; }
.om-folha { background: #fff; color: #111; font-family: "Times New Roman", Times, serif; font-size: var(--om-letra, 12px); line-height: var(--om-linha, 1.4);
  padding: 22px 26px; box-shadow: 0 1px 4px rgba(0,0,0,.15); border-radius: 2px; }
.om-folha p { margin: 0 0 8px; }
.om-folha .om-tit { font-weight: 700; font-size: 1.15em; margin-bottom: 2px; }
.om-folha .om-just { text-align: justify; }
.om-folha .om-link { color: #1e3c8c; word-break: break-all; }
.om-folha .om-assina { text-align: center; font-style: italic; margin: 26px 0 0 40%; border-top: 1px solid #333; padding-top: 4px; }
@media (max-width: 760px) { .om-grade { grid-template-columns: 1fr; } .om-formato { grid-template-columns: 1fr 1fr; } .om-previa-caixa { position: static; } }
.om-campos label.chave { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.om-campos label.chave input { width: auto; }

/* ===================================================================== AJUDA (js/ajuda.js) */
.aj-ajuda-botao {
  position: fixed; right: 18px; bottom: 18px; z-index: 50; display: flex; align-items: center; gap: 8px;
  border: 0; border-radius: 999px; padding: 8px 16px 8px 8px; cursor: pointer; font: inherit; font-weight: 800;
  background: var(--marinho); color: #fff; box-shadow: 0 8px 22px rgba(10, 35, 82, .28);
}
.aj-ajuda-botao span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--celeste); color: var(--marinho); font-size: 1.05rem; }
.aj-ajuda-botao em { font-style: normal; font-size: .9rem; }
.aj-ajuda-botao:hover { background: var(--marinho-3); }
.aj-ajuda-botao:focus-visible, .aj-janela-ajuda:focus-visible { outline: 3px solid var(--celeste); outline-offset: 2px; }
@media (max-width: 700px) { .aj-ajuda-botao { right: 12px; bottom: 12px; padding: 6px; } .aj-ajuda-botao em { display: none; } }
@media print { .aj-ajuda-botao { display: none; } }
.aj-janela-ajuda {
  margin-left: auto; margin-right: 6px; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--celeste);
  background: var(--celeste-claro); color: var(--marinho); font-weight: 800; cursor: pointer; flex: none;
}
.aj-janela-ajuda + .janela-fechar { margin-left: 0; }

/* painel de ajuda (lado direito; tela cheia no celular) */
.aj-ajuda {
  margin: 0 0 0 auto; height: 100%; max-height: 100%; width: min(440px, 100%); max-width: 100%; padding: 0; border: 0;
  background: #fff; color: var(--texto); box-shadow: -10px 0 40px rgba(10, 35, 82, .25); display: none; flex-direction: column;
}
.aj-ajuda[open] { display: flex; }
.aj-ajuda::backdrop { background: rgba(10, 35, 82, .35); }
.aj-ajuda-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 16px 18px 10px; background: var(--marinho); color: #fff; }
.aj-ajuda-topo h2 { color: #fff; margin: 0; font-size: 1.15rem; }
.aj-ajuda-topo small { color: var(--cafe-200); text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; font-weight: 700; }
.aj-x { border: 0; background: none; color: inherit; font-size: 1.7rem; line-height: 1; cursor: pointer; padding: 0 4px; }
.aj-ajuda-busca { padding: 10px 18px; background: var(--marinho); }
.aj-ajuda-busca input { width: 100%; border-radius: 10px; border: 0; padding: 10px 12px; font: inherit; }
.aj-ajuda-corpo { overflow-y: auto; padding: 14px 18px 30px; flex: 1; }
.aj-resumo { margin: 0 0 12px; color: var(--muted); }
.aj-tela { width: 100%; margin-bottom: 8px; }
.aj-sec { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 18px 0 8px; }
.aj-pergunta { border: 1px solid var(--borda); border-radius: 10px; margin-bottom: 8px; background: #fff; }
.aj-pergunta summary { cursor: pointer; padding: 11px 12px; font-weight: 700; color: var(--marinho); list-style-position: inside; }
.aj-pergunta[open] summary { border-bottom: 1px solid var(--borda); background: var(--celeste-claro); border-radius: 10px 10px 0 0; }
.aj-onde { display: block; font-weight: 500; font-size: .78rem; color: var(--muted); margin-top: 2px; }
.aj-resposta { padding: 10px 12px 12px; line-height: 1.5; }
.aj-resposta p { margin: 0 0 8px; }
.aj-resposta ol, .aj-resposta ul { margin: 0 0 8px; padding-left: 20px; }
.aj-mostre { width: 100%; margin-top: 4px; font-weight: 800; letter-spacing: .02em; }
.aj-itens { list-style: none; margin: 0; padding: 0; }
.aj-onde-btn { display: block; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--borda); background: none; padding: 8px 2px; cursor: pointer; font: inherit; color: var(--texto); }
.aj-onde-btn:hover { background: var(--creme); }
.aj-onde-btn strong { margin: 0 4px; }
.aj-onde-btn .muted { display: block; font-size: .85rem; margin-top: 2px; }
.aj-tipo { display: inline-block; font-size: .68rem; font-weight: 800; text-transform: uppercase; border-radius: 6px; padding: 1px 6px; background: var(--celeste-claro); color: var(--marinho); }
.aj-tipo-campo { background: #FFF3D6; color: #7a5300; }
.aj-tipo-aba { background: #E6F6EC; color: var(--ok); }
.aj-suporte { margin-top: 18px; text-align: center; }

/* MOSTRE-ME COMO FAZER */
.aj-tour { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: hidden; }
.aj-tour::backdrop { background: transparent; }
.aj-tour.aj-escuro { background: rgba(10, 35, 82, .5); }
.aj-foco { position: fixed; border-radius: 10px; box-shadow: 0 0 0 9999px rgba(10, 35, 82, .55), 0 0 0 3px var(--celeste) inset, 0 0 18px 4px rgba(79, 179, 234, .8);
  pointer-events: none; transition: all .25s ease; }
.aj-balao { position: fixed; background: #fff; color: var(--texto); border-radius: 14px; padding: 12px 14px 12px; box-shadow: 0 16px 40px rgba(0, 0, 0, .3); border-top: 5px solid var(--celeste); transition: top .25s ease, left .25s ease; }
.aj-balao-topo { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: .8rem; font-weight: 700; }
.aj-balao-topo .aj-x { color: var(--muted); font-size: 1.4rem; }
.aj-balao-texto { margin: 6px 0 4px; font-size: 1rem; line-height: 1.45; }
.aj-balao-nota { margin: 0 0 6px; font-size: .82rem; }
.aj-balao-nota:empty { display: none; }
.aj-balao-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
@media (prefers-reduced-motion: reduce) { .aj-foco, .aj-balao { transition: none; } }
.aj-balao-acoes .btn { width: auto; flex: 0 0 auto; margin: 0; }
.aj-balao-acoes [data-t="proximo"] { min-width: 120px; }

/* Obreiros sem escala (js/escala-livres.js) */
.livres-blocos { display: grid; gap: 14px; }
.livres-lista { padding: 4px 12px 8px; }
.livre-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); }
.livre-linha:last-child { border-bottom: 0; }
.livre-nome { display: flex; flex-direction: column; min-width: 0; }
.livre-nome small { font-size: .82rem; }
.livre-linha .btn-whats { flex: none; }
.l-msg { margin: 10px 0; }
.l-msg summary { cursor: pointer; }
.l-msg textarea { width: 100%; margin-top: 8px; font: inherit; border: 1px solid var(--borda); border-radius: 10px; padding: 8px 10px; }
.mes-nav .btn-pdf-agenda { margin-left: auto; }

/* Comparar escalas (js/escala-comparar.js) */
.cmp-avisos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cmp-aviso { border-left: 4px solid var(--celeste); background: var(--celeste-claro); border-radius: 8px; padding: 8px 10px; }
.cmp-aviso.cmp-atencao { border-left-color: #e0a100; background: #fff7dd; }
.cmp-aviso.cmp-alerta { border-left-color: #e06a00; background: #ffe9d6; }
.cmp-aviso summary { cursor: pointer; }
.cmp-aviso ul { margin: 6px 0 0; padding-left: 18px; }
.cmp-aviso li { margin: 2px 0; }
.cmp-ceia, .cmp-obr { width: 100%; border-collapse: collapse; background: #fff; font-size: .9rem; }
.cmp-ceia th, .cmp-ceia td, .cmp-obr th, .cmp-obr td { border-bottom: 1px solid var(--borda); padding: 8px; text-align: left; vertical-align: top; }
.cmp-ceia thead th, .cmp-obr thead th { background: var(--marinho); color: #fff; font-size: .82rem; position: sticky; top: 0; }
.cmp-ceia thead th small, .cmp-obr thead th small { color: var(--cafe-200); }
.cmp-ceia tbody th { min-width: 140px; color: var(--marinho); }
.cmp-ceia td { min-width: 150px; }
.cmp-col-nova { background: #f1f8fe; }
.cmp-ceia thead th.cmp-col-nova { background: var(--marinho-3); }
.cmp-cel { display: flex; flex-direction: column; gap: 2px; margin-bottom: 6px; }
.cmp-completa .cmp-dia th { background: var(--cafe-100, #f3ece6); color: var(--marinho); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; padding: 6px 8px; position: static; }
.cmp-completa tbody th small { display: block; font-weight: 400; }
.cmp-completa .cmp-dia th span { position: sticky; left: 8px; display: inline-block; }
.cmp-completa thead th:first-child { left: 0; z-index: 2; }
.cmp-completa .cmp-cel { margin-bottom: 0; }
.cmp-completa .cmp-trocar { cursor: pointer; display: flex; gap: 6px; align-items: baseline; }
.cmp-completa .cmp-trocar:hover, .cmp-completa .cmp-trocar:focus-visible { outline: 2px solid var(--marinho-3); outline-offset: 1px; }
.cmp-vg { font-size: .7rem; color: var(--texto-2, #5b6b7b); min-width: 1.4em; }
.cmp-vazia { background: #fff; border: 1px dashed var(--borda); color: var(--texto-2, #5b6b7b); }
.cmp-completa tbody th[scope=row] { position: sticky; left: 0; background: #fff; z-index: 1; }
@media (max-width: 600px) { .cmp-completa tbody th[scope=row] { min-width: 104px; max-width: 120px; font-size: .8rem; } .cmp-completa td { min-width: 130px; } }
.g-versoes { list-style: none; padding-left: 0; }
.g-versoes li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--borda); }
.g-versoes li:last-child { border-bottom: 0; }
@media (max-width: 600px) { .g-versoes li { flex-direction: column; align-items: flex-start; } }
.cmp-nome { display: inline-block; border: 0; border-radius: 6px; padding: 1px 6px; margin: 1px 0; font: inherit; font-size: .88rem; text-align: left; background: transparent; color: var(--texto); }
button.cmp-nome { cursor: pointer; }
button.cmp-nome:hover { text-decoration: underline; }
.cmp-novo { background: #dcf3e4; color: #135c35; }
.cmp-rep { background: #fff1b8; color: #6b5200; }
.cmp-seq { background: #ffd2a8; color: #7a3200; font-weight: 700; }
.cmp-igual { background: transparent; }
.cmp-legenda { font-size: .85rem; color: var(--muted); margin: 8px 0; }
.cmp-tag { font-size: .75rem; border-radius: 6px; padding: 1px 6px; margin-left: 6px; }
.cmp-grupo { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); margin-bottom: 10px; overflow: hidden; }
.cmp-grupo > summary { cursor: pointer; padding: 10px 12px; }
.cmp-lado-cab, .cmp-linha { display: grid; grid-template-columns: 1.1fr 1.6fr 1.6fr; gap: 10px; padding: 7px 12px; align-items: start; }
.cmp-lado-cab { background: var(--marinho); color: #fff; font-size: .82rem; font-weight: 700; }
.cmp-lado-cab small { color: var(--cafe-200); }
.cmp-linha { border-top: 1px solid var(--borda); }
.cmp-linha-ceia { background: #f7fbff; }
.cmp-st-igual { opacity: .55; }
.cmp-rot { display: flex; flex-direction: column; font-weight: 700; color: var(--marinho); font-size: .88rem; }
.cmp-rot small { font-weight: 500; }
.cmp-lbl { display: none; font-style: normal; font-size: .72rem; font-weight: 700; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.cmp-ver { display: none; gap: 6px; margin: 6px 0; }
.cmp-sobe { color: #b04a00; font-weight: 700; font-size: .82rem; }
.cmp-desce { color: #1f6fb0; font-weight: 700; font-size: .82rem; }
.cmp-obr tr.cmp-zero { background: #fff7dd; }
.cmp-obr tbody th small { display: block; font-weight: 500; }
@media (max-width: 760px) {
  .cmp-lado-cab { display: none; }
  .cmp-linha { grid-template-columns: 1fr; gap: 4px; }
  .cmp-lbl { display: inline; }
  .cmp-ver { display: flex; }
  .cmp-lado.so-ant .cmp-n, .cmp-lado.so-nova .cmp-a { display: none; }
}

/* ---------------------------------------------------------------- "Antes de decidir" (convites recebidos) */
.rc-detalhes { margin: 10px 0; border: 1px solid var(--borda); border-radius: var(--raio); background: #fffdf8; }
.rc-detalhes > summary { cursor: pointer; padding: 10px 12px; font-weight: 600; color: var(--cafe-800); }
.rc-corpo { padding: 0 12px 10px; }
.rc { display: grid; gap: 12px; }
.rc-bloco h4 { margin: 6px 0; }
.rc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 6px; }
.rc-chip { background: #f3efe9; border-radius: 999px; padding: 3px 10px; font-size: .85rem; }
.rc-chip-forte { background: var(--cafe-100); color: var(--cafe-800); }
.rc-lista { margin: 4px 0 8px; padding-left: 18px; }
.rc-lista li { margin: 5px 0; }
.rc-lista .selo { margin-left: 6px; font-size: .75rem; }
.rc-sub { margin: 8px 0 2px; font-weight: 600; }
@media (min-width: 900px) { .rc { grid-template-columns: 1fr 1fr; } }

/* ---------------------------------------------------------------- ofício: recuo de parágrafo e rodapé configurável */
.om-folha .om-par { text-indent: var(--om-recuo, 0); }
.om-folha .om-rodape { margin-top: 22px; border-top: 1px dotted #555; padding-top: 4px; font-size: var(--om-rod-letra, 10px); line-height: var(--om-rod-linha, 1.6); }
.om-folha .om-rod-esquerda { text-align: left; } .om-folha .om-rod-centro { text-align: center; } .om-folha .om-rod-direita { text-align: right; }
.om-rodape-form { margin-top: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.om-rodape-form .om-largo { grid-column: 1 / -1; }
.om-formato label small { font-weight: 400; }
.om-folha .om-vazio { height: calc(var(--om-letra, 12px) * var(--om-linha, 1.4)); margin: 0; }
.om-folha .om-data { margin-bottom: 18px; }
.om-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; margin-bottom: 4px; }
.om-esp { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: .78rem; color: var(--texto-suave, #555); }
.om-campos .om-esp label { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 8px; font-weight: 400; font-size: .78rem; }
.om-campos .om-esp select { width: auto; padding: 4px 6px; min-height: 0; }
.om-esp-par { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 2px 0 8px; }
.om-esp-par > span:first-child { font-weight: 600; font-size: .85rem; min-width: 90px; }
.om-folha .om-cab { margin: 0; }
@media (max-width: 760px) { .om-linha { grid-template-columns: 1fr; } }
.om-folha .om-rec-s { padding-left: var(--om-recuo-s, 0); }
.om-folha .om-rec-a { padding-left: var(--om-recuo-a, 0); }
.om-linha > span { display: flex; flex-direction: column; align-items: flex-end; }
/* culto incluído à mão depois de gerar (banco/21) */
.esc-incluido { box-shadow: inset 3px 0 0 var(--cafe-500, #8a5a3b); }
.esc-cong .selo { margin: .2rem .3rem 0 0; }
.esc-edit { margin-top: .15rem; padding: .1rem .5rem; min-height: 0; font-size: .75rem; line-height: 1.4; }
.prox-ger p { margin: 0 0 .5rem; }
.ok-texto { color: #1e7b3a; font-weight: 600; margin: 0; }
/* versão nova publicada */
.aj-nova-versao { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 9000; display: flex; gap: .75rem; align-items: center;
  background: #0A2352; color: #fff; padding: .6rem .9rem; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.25); max-width: calc(100vw - 32px); font-size: .9rem; }

/* ================================================================ Lições da EBD (cardápio e secretaria) */
.ebd-cab .ebd-trim { margin: 0; font-size: .85rem; font-weight: 700; color: var(--cafe-700); text-transform: uppercase; letter-spacing: .04em; }
.ebd-cab .ebd-cong-nome { margin: 4px 0; font-size: 1.15rem; }
.ebd-enviado { color: #1e6b36; }
.ebd-faixa { margin: 22px 0 6px; }
.ebd-faixa-titulo { font-size: 1.1rem; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--cafe-200); color: var(--cafe-800); display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ebd-faixa-titulo small { font-weight: 400; color: var(--muted); font-size: .85rem; }
.ebd-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.ebd-item { display: flex; gap: 12px; background: #fff; border: 1.5px solid var(--borda); border-radius: 12px; padding: 10px; transition: border-color .15s, box-shadow .15s; }
.ebd-item.ebd-escolhido { border-color: var(--cafe-500); box-shadow: 0 0 0 2px var(--cafe-100); }
.ebd-capa { flex: none; width: 74px; height: 100px; object-fit: cover; border-radius: 6px; background: var(--cafe-100); box-shadow: 0 1px 4px rgba(10, 35, 82, .18); }
.ebd-capa-vazia { display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 700; color: var(--cafe-700); }
.ebd-capa-mini { flex: none; width: 34px; height: 46px; object-fit: cover; border-radius: 4px; background: var(--cafe-100); font-size: 1rem; }
.ebd-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ebd-nome { font-size: 1rem; }
.ebd-tema { font-style: italic; color: var(--cafe-700); }
.ebd-preco { font-weight: 700; color: var(--cafe-900); margin-top: 2px; }
.ebd-qtd { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; }
.ebd-qtd button { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--cafe-500); background: #fff; color: var(--cafe-800); font-size: 1.3rem; font-weight: 700; line-height: 1; cursor: pointer; }
.ebd-qtd .ebd-mais { background: var(--cafe-800); border-color: var(--cafe-800); color: #fff; }
.ebd-qtd input { width: 56px; text-align: center; padding: 7px 4px; font-weight: 700; }
.ebd-barra-espaco { height: 84px; }
.ebd-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--borda); box-shadow: 0 -4px 18px rgba(10, 35, 82, .12); }
.ebd-barra { left: var(--lateral); }
@media (max-width: 1100px) { .ebd-barra { left: var(--estreita); } }
.ebd-barra-total { display: flex; flex-direction: column; line-height: 1.2; }
.ebd-barra-total .ebd-v { font-size: 1.2rem; font-weight: 700; color: var(--cafe-900); }
.ebd-resumo { border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; margin: 10px 0; }
.ebd-res-linha { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-bottom: 1px solid var(--borda); }
.ebd-res-linha span { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ebd-res-total { display: flex; justify-content: space-between; padding: 10px; background: var(--cafe-100); font-size: 1.05rem; }
.ebd-ok { font-size: 1.1rem; }
.ebd-numeros { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 8px 0; }
.ebd-numeros span { color: var(--muted); }
.ebd-numeros b { color: var(--cafe-900); font-size: 1.05rem; }
.acoes-mini { margin-top: 6px; gap: 6px; }
.ebd-tab .ebd-lin { cursor: pointer; }
.ebd-tab .ebd-lin:hover td { background: var(--cafe-100); }
.ebd-tab .ebd-zero td { color: var(--muted); }
.ebd-tab .ebd-tot td { font-weight: 700; background: var(--cafe-100); }
.ebd-editor { max-height: 52vh; overflow-y: auto; border: 1px solid var(--borda); border-radius: 10px; padding: 4px 10px; }
.ebd-ed-faixa { margin: 10px 0 2px; font-weight: 700; color: var(--cafe-700); }
.ebd-ed-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--borda); }
.ebd-ed-linha input { width: 70px; text-align: center; }
.ebd-sw { padding: 6px 10px; background: #fff; border: 1px solid var(--borda); border-radius: 8px; }
.ebd-sw-off { opacity: .55; }
.ebd-lanc { margin: 12px 0; border: 1px solid var(--borda); border-radius: 10px; padding: 8px 12px; }
.ebd-lanc summary { cursor: pointer; font-weight: 700; color: var(--cafe-800); }
.ebd-cat { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.ebd-cat-item { display: flex; gap: 10px; background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 10px; }
.ebd-cat-capa { flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; background: none; border: 0; padding: 0; cursor: pointer; color: var(--cafe-700); font-size: .75rem; }
.ebd-cat-dados { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.ebd-cat-dados input { padding: 6px 8px; }
.ebd-res-linha span.ebd-capa-mini { flex: none; width: 34px; display: flex; align-items: center; justify-content: center; }
.ebd-barra { padding-right: 76px; }
.ebd-doada { display: inline-block; margin-top: 2px; font-size: .8rem; font-weight: 600; color: #1e6b36; }
.ebd-sw-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; background: #fff; border: 1px solid var(--borda); border-radius: 8px; padding: 4px 8px; }
.ebd-sw-linha .ebd-sw { border: 0; padding: 4px 2px; flex: 1; min-width: 200px; }
.ebd-doa { display: flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--muted); }
.ebd-doa .ebd-qtd { padding: 0; margin: 0; }
.ebd-doa .ebd-qtd button { width: 30px; height: 30px; font-size: 1.05rem; }
.ebd-doa .ebd-qtd input { width: 48px; padding: 5px 2px; }

/* ===================== Frequência nas reuniões e portaria ===================== */
.fr-reuniao { display: flex; gap: 12px; align-items: center; text-decoration: none; }
.fr-data { flex: 0 0 64px; text-align: center; background: var(--marinho); color: #fff; border-radius: 10px; padding: 6px 4px; display: flex; flex-direction: column; }
.fr-data strong { font-size: 1.15rem; line-height: 1.1; }
.fr-data small { font-size: .72rem; opacity: .85; }
.fr-reuniao-txt { flex: 1; min-width: 0; }
.fr-reuniao .selo { margin-left: 4px; vertical-align: middle; }
.fr-cab h2 .selo { font-size: .75rem; vertical-align: middle; }
.fr-pauta { white-space: pre-line; background: var(--creme); border-radius: 8px; padding: 8px 10px; }
.fr-aviso { font-size: .9rem; }
.fr-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 12px 0; }
.fr-numeros > div { background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; border-top: 4px solid var(--celeste); }
.fr-numeros strong { display: block; font-size: 1.6rem; color: var(--marinho); line-height: 1.1; }
.fr-numeros span { color: var(--muted); font-size: .85rem; }
.fr-numeros .fr-n-ok { border-top-color: var(--ok); }
.fr-numeros .fr-n-falta { border-top-color: var(--erro); }
.fr-acoes { flex-wrap: wrap; margin: 6px 0 12px; }
.fr-tabela td { vertical-align: top; }
.fr-acao { white-space: nowrap; text-align: right; }
.fr-sit { font-size: .75rem; }
.fr-sit-pend { background: #eef1f5; color: #4b566a; }
.fr-sit-ok { background: #e5f4ea; color: #1f6b3a; }
.fr-sit-atraso { background: #fff4d6; color: #8a5a00; }
.fr-sit-falta { background: #fdecea; color: var(--erro); }
.fr-sit-just { background: #e8eefc; color: #2a4a8a; }
.fr-rotulo { margin: 10px 0 0; font-size: .85rem; font-weight: 600; }
.fr-form .avancado { margin: 10px 0; }
.fr-um-a-um { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.fr-um-a-um .fr-enviado { background: var(--celeste-claro); border-color: var(--ok); }
.fr-um-a-um .fr-enviado::after { content: ' ✓'; color: var(--ok); }
.fr-semtel { opacity: .55; cursor: default; }
.fr-item { cursor: default; }
.fr-item .acoes-mini { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 6px; }
.fr-item .acoes-mini .muted { display: inline; }
#fm-pessoa { width: 100%; margin-top: 6px; }
.fr-novafuncao { margin-top: 6px; }
.fr-rel-filtros label { display: flex; align-items: center; gap: 6px; margin: 0; }
.fr-rel-filtros input[type=date] { width: auto; }
/* portaria */
.fr-port-cab { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.fr-port-cab h1 .selo { font-size: .8rem; vertical-align: middle; }
.fr-port-num { background: var(--marinho); color: #fff; border-radius: 14px; padding: 10px 18px; min-width: 190px; text-align: center; }
.fr-port-num strong { display: block; font-size: 2.4rem; line-height: 1; }
.fr-port-num span { display: block; font-size: .95rem; }
.fr-port-num small { display: block; font-size: .8rem; opacity: .85; margin-top: 2px; }
.fr-port-busca { margin: 12px 0 4px; }
.fr-busca-grande { font-size: 1.25rem; padding: 14px 16px; border-width: 2px; }
.fr-port-abas .aba { cursor: pointer; }
.fr-port-lista { display: grid; gap: 6px; margin-top: 8px; }
.fr-pessoa { display: flex; align-items: center; gap: 12px; justify-content: space-between; background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; }
.fr-pessoa-ok { background: #f3faf5; border-color: #cfe9d8; }
.fr-pessoa-txt { min-width: 0; }
.fr-pessoa-txt strong { display: block; font-size: 1.05rem; }
.fr-pessoa-txt small { display: block; }
.fr-pessoa-acao { flex: none; display: flex; align-items: center; gap: 6px; }
.fr-chegou { min-width: 120px; font-size: 1rem; padding: 12px 16px; }
.fr-hora { font-weight: 700; color: var(--ok); }
.fr-port-pe { margin-top: 16px; flex-wrap: wrap; justify-content: space-between; }
.fr-painel { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.fr-barra-linha { display: grid; grid-template-columns: minmax(0, 1.4fr) 2fr auto; gap: 8px; align-items: center; margin: 6px 0; font-size: .92rem; }
.fr-barra-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fr-barra { height: 12px; background: #eef1f5; border-radius: 6px; overflow: hidden; }
.fr-barra i { display: block; height: 100%; width: 0; background: var(--ok); border-radius: 6px; transition: width .4s; }
.fr-barra-n { font-variant-numeric: tabular-nums; color: var(--muted); }
.fr-ultimas li { padding: 3px 0; }
.fr-extra-lista { display: grid; gap: 6px; margin-top: 8px; max-height: 50vh; overflow: auto; }
.fr-minha.fr-cancelada { opacity: .7; }
@media (max-width: 560px) {
  .fr-port-num { width: 100%; }
  .fr-chegou { min-width: 96px; padding: 10px 12px; }
  .fr-tabela th:nth-child(2), .fr-tabela td:nth-child(2) { display: none; }
}
/* caixa "Nova função" (incluir pessoa no grupo): campo largo, botão do tamanho do texto */
.fr-novafuncao { display: flex; gap: 8px; align-items: stretch; }
.fr-novafuncao input { flex: 1 1 auto; min-width: 0; width: auto; font-family: inherit; }
.fr-novafuncao .btn { flex: 0 0 auto; width: auto; margin: 0; }
@media (max-width: 420px) { .fr-novafuncao { flex-direction: column; } .fr-novafuncao .btn { width: 100%; } }
.fr-quem { display: block; color: var(--ok); font-weight: 600; }
.fr-ja { font-size: 1.1rem; }
.fr-extra-item .selo { margin-top: 4px; }
.fr-pessoa-just { background: #f3f6fd; border-color: #d5def5; }
.fr-quem-just { display: block; color: #2a4a8a; font-weight: 600; }
.fr-justif { white-space: nowrap; }
@media (max-width: 560px) { .fr-pessoa { flex-wrap: wrap; } .fr-pessoa-acao { width: 100%; justify-content: flex-end; } }
@media (max-width: 560px) { .fr-pessoa-acao { align-items: stretch; } .fr-pessoa-acao .fr-justif { display: inline-flex; align-items: center; } }
.fr-port-topo { align-items: center; flex-wrap: wrap; margin: 10px 0 0; }
@media (max-width: 560px) { .fr-tabela-grupo th:nth-child(4), .fr-tabela-grupo td:nth-child(4) { display: table-cell; } .fr-tabela-grupo th:nth-child(3), .fr-tabela-grupo td:nth-child(3) { display: none; } }
.ebd-doa-total { background: #fff7e0; color: #7a5a00; font-weight: 600; }
.ebd-doa-total b { color: #7a5a00; }

/* ================= Material de limpeza (#/limpeza e limpeza.html) ================= */
.lp-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.lp-topo select { width: auto; min-width: 200px; }
.lp-link-linha { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lp-link-campo { flex: 1 1 260px; font-size: .85rem; }
.lp-tab { width: 100%; border-collapse: collapse; font-size: .9rem; background: #fff; }
.lp-tab th, .lp-tab td { padding: 7px 9px; border-bottom: 1px solid var(--borda); text-align: left; vertical-align: top; }
.lp-tab thead th { color: var(--muted); font-weight: 600; white-space: nowrap; background: var(--cafe-100); }
.lp-tab tfoot th { background: var(--cafe-100); color: var(--cafe-900); }
.lp-tab .num { text-align: right; white-space: nowrap; }
.lp-tab tbody th { font-weight: 600; color: var(--marinho); }
.lp-tab .lp-oculto td, .lp-tab tr.lp-oculto td { color: var(--muted); text-decoration: line-through; }
.lp-tab .lp-col-imp { width: 70px; text-align: center; }
.lp-tab .lp-falta { color: var(--muted); }
.lp-hist th[scope=row] { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 150px; }
.lp-sep { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.lp-sep-cartao { margin: 0; }
.lp-sep-cartao.lp-entregue { opacity: .75; }
.lp-sep-cab { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.lp-sep-cab .titulo-secao { margin: 0; }
.lp-cobrar { list-style: none; padding: 0; display: grid; gap: 6px; }
.lp-cobrar .btn { width: 100%; }
.lp-cobrado { opacity: .55; }
.lp-materiais { display: grid; gap: 6px; margin-top: 10px; }
.lp-materiais-editor { max-height: 46vh; overflow: auto; padding-right: 4px; }
.lp-mat { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 10px; background: #fff; }
.lp-mat.lp-escolhido { border-color: var(--marinho-3); background: #f1f8fe; }
.lp-mat-nome { font-weight: 600; font-size: .92rem; }
.lp-mat-nome small { display: block; font-weight: 400; }
.lp-passo { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.lp-passo button { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--borda); background: var(--cafe-100); font-size: 1.25rem; line-height: 1; cursor: pointer; color: var(--marinho); }
.lp-passo button:hover, .lp-passo button:focus-visible { background: var(--cafe-200); }
.lp-passo .lp-qtd { width: 58px; text-align: center; padding: 6px 4px; font-weight: 700; }
.lp-lista { list-style: none; padding: 0; }
.lp-lista li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--borda); }
.lp-periodo p { margin: 4px 0; }
.lp-barra { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 10px;
  margin: 10px -16px 0; padding: 10px 16px; background: var(--marinho); color: #fff; box-shadow: 0 -4px 12px rgba(0, 0, 0, .12); }
.lp-barra .btn { margin: 0; }
.pagina-limpeza .lp-resumo-cartao { scroll-margin-top: 12px; }
@media (max-width: 600px) {
  .lp-sep { grid-template-columns: 1fr; }
  .lp-passo button { width: 42px; height: 42px; }
  .lp-mat { padding: 8px; }
  .lp-tab { font-size: .84rem; }
}
.lp-lista { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.lp-lista .item { display: flex; flex-direction: column; gap: 4px; }
.lp-lista .acoes-mini, .lp-sep-cartao .acoes-mini { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.lp-lista .acoes-mini .btn, .lp-sep-cartao .acoes-mini .btn { flex: 0 0 auto; width: auto; margin: 0; }
/* limpeza: painel da compra (como no sistema antigo) */
.lp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 10px 0; }
.lp-kpi { display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid var(--borda); border-left: 4px solid var(--marinho-3); border-radius: 12px; padding: 12px 14px; }
.lp-kpi.lp-k-ok { border-left-color: #1a7f4b; } .lp-kpi.lp-k-aviso { border-left-color: #c77d0a; }
.lp-kpi-ico { font-size: 1.5rem; }
.lp-kpi b { display: block; font-size: 1.5rem; color: var(--marinho); line-height: 1.1; }
.lp-kpi small { display: block; color: var(--muted); font-size: .82rem; }
.lp-kpi em { display: block; font-style: normal; font-size: .75rem; color: var(--muted); }
.lp-g2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.lp-g2 .cartao { margin: 0; }
.lp-adesao { display: flex; align-items: center; gap: 18px; }
.lp-rosca { width: 120px; height: 120px; flex: 0 0 auto; }
.lp-rosca-txt { font-size: 8px; font-weight: 700; fill: var(--marinho); }
.lp-leg div { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.lp-leg i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.lp-leg-ok { background: #1a7f4b; } .lp-leg-pend { background: #ffe0b0; }
.lp-top { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 0 8px; align-items: stretch; font-size: .8rem; }
.lp-top-nomes, .lp-top-val { display: grid; grid-auto-rows: 1fr; }
.lp-top-nomes span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; align-self: center; }
.lp-top-val span { font-weight: 700; align-self: center; text-align: right; }
.lp-barras { width: 100%; height: 100%; }
.lp-barra-r { fill: var(--marinho-3); }
.lp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lp-chip { padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.lp-chip.lp-c-ok { background: #e3f4ea; color: #1a6b40; } .lp-chip.lp-c-aviso { background: #fff1d6; color: #8a5a00; }
.lp-tabhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.lp-tabhead .titulo-secao { margin: 0; }
.lp-tabhead .filtros { margin: 0; }
.lp-compra-det .lp-th-cong { font-size: .72rem; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; max-height: 150px; }
.lp-acoes-cel { white-space: nowrap; }
.lp-alerta-dup { margin: 10px 0; }
.lp-dup .titulo-secao small { font-weight: 400; }
.lp-dup-tab tr.lp-dif td { background: #fff4d6; font-weight: 700; }
.lp-dup-acoes { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.lp-legenda-dif { font-size: .8rem; }
.menu .item .menu-contador { float: right; min-width: 20px; height: 20px; font-size: .7rem; margin-left: 6px; }
/* Material de limpeza: limites e avisos */
.lp-mat .lp-max { color: #8a5a00; font-weight: 600; }
.lp-mat.lp-bloq { display: none; }
.lp-mat.lp-acima { border-color: #c62828; background: #fdecec; }
.lp-mat.lp-acima .lp-max { color: #c62828; }
.lp-passo button:disabled { opacity: .35; cursor: not-allowed; }
.lp-repetir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 6px 0 10px; }
.selo.lp-s-lim { background: #fdecec; color: #b71c1c; }
.selo.lp-s-med { background: #fff4d6; color: #7a4f00; }
.lp-avisos.lp-avisos-com { border-left: 4px solid #f2a516; }
.lp-av-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lp-av { padding: 6px 0; border-bottom: 1px solid var(--borda); line-height: 1.5; }
.lp-av:last-child { border-bottom: 0; }
.lp-av-nota { margin-top: 8px; font-size: .82rem; }
.lp-lims .lp-lim { width: 96px; padding: 6px 8px; }
.lp-lims .lp-lim.lp-lim-mudou { border-color: var(--marinho-3); background: #f1f8fe; font-weight: 700; }
/* Material de limpeza: conferência (atual × 2 meses anteriores) */
.lp-conf-tab th.lp-conf-atual, .lp-conf-tab td.lp-conf-atual { background: #f1f8fe; }
.lp-conf-tab .lp-conf-q { width: 72px; padding: 5px 6px; text-align: center; font-weight: 700; }
.lp-conf-tab tr.lp-conf-sempre td { background: #fff8e1; }
.lp-conf-tab tr.lp-conf-sempre td.lp-conf-atual { background: #fff1c4; }
.lp-conf-tab tr.lp-conf-zero td:first-child { color: var(--muted); }
.lp-conf-tab tr.lp-conf-mudou .lp-conf-q { border-color: #c62828; background: #fdecec; }
.lp-conf-tab tfoot th { font-weight: 700; }
.lp-conf.lp-conf-feito { border-left: 4px solid #2e7d32; }
.lp-conf-tirar { color: #c62828; font-weight: 700; text-decoration: none; }
.lp-conf-ok { color: #2e7d32; font-weight: 600; }
@media (max-width: 600px) { .lp-conf-tab .lp-conf-q { width: 46px; padding: 5px 2px; } .lp-conf-tab td, .lp-conf-tab th { padding: 6px 3px; } .lp-conf-tab .lp-conf-tirar { padding: 4px 2px; min-width: 0; } }
.lp-sep { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); }
.lp-sep > * { min-width: 0; }
.lp-topo { flex-wrap: wrap; }
.lp-topo select { max-width: 100%; }
.lp-topo .mini { flex-wrap: wrap; max-width: 100%; } .lp-topo .mini select { min-width: 0; flex: 1 1 180px; }
/* Frequência: para quem é a reunião (funções e classes do grupo) */
.fr-alvo { margin: 6px 0 10px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; background: #f6f9fd; }
.fr-alvo-bloco { border: 0; margin: 0 0 8px; padding: 0; min-width: 0; }
.fr-alvo-bloco legend { font-weight: 700; color: var(--marinho); padding: 0; margin-bottom: 4px; }
.fr-alvo .fr-todas { display: inline-flex; margin-bottom: 4px; }
.fr-alvo-total { margin: 4px 0 0; }
/* Usuários: link de acesso da igreja */
.u-link .u-link-end { margin: 4px 0 8px; font-weight: 600; overflow-wrap: anywhere; }
.u-link small { display: block; margin-top: 6px; }

/* Cadastro: campo de várias opções (ex.: "Também congrega em") */
.rotulo-campo { display: block; font-weight: 600; font-size: .86rem; color: var(--marinho); margin: 14px 0 6px; }
.marcar-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); gap: 2px 12px;
  max-height: 220px; overflow-y: auto; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 10px; }
.marcar-item { display: flex; align-items: center; gap: 8px; font-weight: 400; margin: 3px 0; cursor: pointer; min-width: 0; }
.marcar-item input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--cafe-800); }
.marcar-item span { overflow-wrap: anywhere; }
.marcar-item.marcar-principal { opacity: .5; cursor: default; }
.marcar-item.marcar-principal span::after { content: " (principal)"; font-size: .85em; }

/* Agenda → Blocos (rodízio) */
.bl-cartao { margin-bottom: 18px; }
.bl-topo { display: flex; gap: 12px; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
.bl-topo > div { min-width: 0; flex: 1 1 260px; }
.bl-lista { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; }
.bl-item { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; flex-wrap: wrap; }
.bl-corpo { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 240px; overflow-wrap: anywhere; }
.bl-acoes { display: flex; gap: 6px; flex: none; }
.bl-inativo { opacity: .55; }
.bl-proximas { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
