
    :root {
      --azul: #0b2f67;
      --azul-claro: #174d91;
      --dourado: #c99432;
      --dourado-claro: #f3e5c4;
      --fundo: #f4f6f9;
      --branco: #ffffff;
      --texto: #20242a;
      --cinza: #667085;
      --borda: #e2e6ec;
      --verde: #e6f4ea;
      --verde-borda: #4f7d55;
      --vermelho: #fdecec;
      --vermelho-borda: #a85a5a;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: Arial, sans-serif;
      background: var(--fundo);
      color: var(--texto);
      max-width: 100%;
      overflow-x: hidden;
    }

    /* =========================
       CABEÇALHO
    ========================= */

    .topo {
  background:
    radial-gradient(
      ellipse at 72% 38%,
      rgba(45, 139, 225, .52) 0%,
      rgba(27, 101, 183, .30) 24%,
      rgba(10, 51, 105, .08) 48%,
      transparent 68%
    ),
    linear-gradient(
      115deg,
      #051b3c 0%,
      #082b5c 32%,
      #104a89 63%,
      #0b3268 82%,
      #061f47 100%
    );

  color: white;
  padding: 18px 16px 20px;
  position: sticky;
  top: 0;
  z-index: 20;
  overflow: hidden;
  

  box-shadow:
    0 3px 10px rgba(0,0,0,.18);
}
.topo::before {
  content: "";
  position: absolute;
  width: 850px;
  height: 210px;
  right: -120px;
  top: 16px;

  border-top: 2px solid rgba(88, 178, 255, .30);
  border-radius: 50%;
  transform: rotate(-7deg);

  pointer-events: none;
}

.topo::after {
  content: "";
  position: absolute;
  width: 650px;
  height: 160px;
  right: 20px;
  top: 48px;

  border-top: 1px solid rgba(120, 198, 255, .17);
  border-radius: 50%;
  transform: rotate(-6deg);

  pointer-events: none;
}

    .topo-interno {
  max-width: 900px;
  margin: auto;
  display: flex;
  align-items: center;
  gap: 22px;
  position: relative;
  z-index: 2;
}

    .logo-box {
  width: 92px;
  height: 92px;
  flex: 0 0 92px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  padding: 0;
  box-shadow: none;
  border-radius: 0;
}

.logo-cabecalho {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.logo-paroquia {
  padding: 0;
  transform: scale(1.22);
}

    .titulo-topo {
  flex: 1;
  text-align: center;
}

  .titulo-topo h1 {
  margin: 0;
  font-size: 46px;
  line-height: 1;
  letter-spacing: 1.4px;
  font-weight: 800;
  color: #ffffff;
}

.titulo-topo p {
  margin: 10px 0 0;
  color: #ffffff;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 500;
}

    .linha-dourada {
      height: 3px;
      background: var(--dourado);
    }

    /* =========================
       ESTRUTURA
    ========================= */

    .conteudo {
      max-width: 760px;
      margin: auto;
      padding: 18px;
    }

    .pagina {
      display: none;
    }

    .pagina.ativa {
      display: block;
    }

    .login-card {
      max-width: 440px;
      margin: 34px auto;
      text-align: center;
      border-top: 4px solid var(--dourado);
    }

    .login-icone {
      width: 68px;
      height: 68px;
      margin: 0 auto 14px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--dourado-claro);
      color: var(--azul);
      font-size: 31px;
    }
    .login-icone-logo {
  width: 76px;
  height: 76px;
  padding: 5px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.login-icone-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

    .codigo-acesso {
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 3px;
      font-size: 22px;
      font-weight: 700;
    }

    .usuario-logado {
      display: none;
      max-width: 760px;
      margin: 12px auto 0;
      padding: 0 18px;
    }

    .usuario-logado.ativo {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      color: var(--cinza);
      font-size: 13px;
    }

    .btn-sair {
      border: 0;
      background: transparent;
      color: var(--azul);
      font-weight: 700;
      cursor: pointer;
      padding: 8px;
    }

    .erro-login {
      min-height: 20px;
      color: #a61b1b;
      font-size: 13px;
      margin-top: 10px;
    }

    .botao-recuperar-acesso {
      display: inline-block;
      margin-top: 12px;
      padding: 6px 8px;
      border: 0;
      background: transparent;
      color: var(--azul);
      font-size: 13px;
      font-weight: 700;
      text-decoration: underline;
      cursor: pointer;
    }
    .recuperacao-acesso-catequista {
      display: none;
      margin-top: 14px;
      padding: 14px;
      border: 1px solid #c9d9ec;
      border-left: 4px solid var(--dourado);
      border-radius: 12px;
      background: #fff9ec;
      text-align: left;
    }
    .recuperacao-acesso-catequista.ativa { display: block; }
    .recuperacao-acesso-catequista h3 {
      margin: 0 0 5px;
      color: var(--azul);
      font-size: 16px;
    }
    .recuperacao-acesso-catequista p {
      margin: 0 0 10px;
      color: var(--cinza);
      font-size: 12px;
      line-height: 1.45;
    }
    .recuperacao-acesso-catequista label {
      display: block;
      margin-top: 9px;
      color: var(--azul);
      font-size: 12px;
      font-weight: 700;
    }
    .recuperacao-acesso-catequista .campo { margin-top: 5px; }
    .acoes-recuperacao-acesso {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin-top: 12px;
    }
    .status-recuperacao-acesso {
      min-height: 18px;
      margin-top: 9px;
      color: var(--azul);
      font-size: 12px;
      line-height: 1.4;
    }

    .navegacao-coordenacao {
      display: none;
      margin-bottom: 18px;
    }

    .navegacao-coordenacao.ativa {
      display: block;
    }

    .turmas-coordenacao {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 9px;
      margin: 12px 0 4px;
    }

    .botao-turma-coordenacao {
      border: 1px solid var(--borda);
      border-radius: 11px;
      background: var(--branco);
      color: var(--azul);
      padding: 12px 8px;
      font-weight: 700;
      cursor: pointer;
      line-height: 1.25;
    }

    .botao-turma-coordenacao.ativo {
      color: var(--branco);
      background: var(--azul);
      border-color: var(--azul);
      box-shadow: 0 3px 9px rgba(11, 47, 103, .2);
    }

    .gestao-excel-cadastro {
      display: none;
      margin: 18px 0;
      padding: 16px;
      border: 1px solid var(--borda);
      border-radius: 14px;
      background: #f8fafc;
    }
    .gestao-excel-cadastro.ativa { display: block; }
    .gestao-excel-cadastro h3 { margin: 0 0 7px; color: var(--azul); font-size: 17px; }
    .gestao-excel-cadastro p { margin: 0 0 13px; color: var(--cinza); line-height: 1.5; font-size: 13px; }
    .acoes-excel-cadastro { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
    .resultado-importacao { margin-top: 12px; white-space: pre-line; }
    @media (max-width: 560px) { .acoes-excel-cadastro { grid-template-columns: 1fr; } }

    .filtro-encontros-coordenacao { margin-bottom: 20px; }
    .filtro-encontros-coordenacao label { display: block; margin-bottom: 8px; color: var(--azul); font-weight: 700; }
    .filtro-encontros-coordenacao select { width: 100%; margin-bottom: 8px; }
    .orientacao-etapa-encontros { margin: 14px 0 8px; color: var(--texto); font-weight: 700; }

    .encontro-card {
      width: 100%;
      border: 1px solid var(--borda);
      border-left: 5px solid var(--dourado);
      border-radius: 14px;
      background: var(--branco);
      padding: 16px;
      margin-bottom: 12px;
      text-align: left;
      color: var(--texto);
      cursor: pointer;
      box-shadow: 0 3px 10px rgba(15, 35, 65, .06);
    }

    .encontro-card h3 {
      margin: 5px 0 8px;
      color: var(--azul);
      font-size: 17px;
    }

    .encontro-destaque {
      margin: 18px 0 22px;
      padding-bottom: 4px;
    }

    .encontro-destaque-titulo {
      margin: 14px 0 8px;
      color: var(--azul);
      font-size: 15px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .03em;
    }

    .encontro-card.realizado {
      border-left-color: #2f855a;
      background: #fbfffc;
    }

    .encontro-card.agendado {
      border-left-color: var(--dourado);
      background: #fffdf8;
    }

    .encontro-situacao {
      display: inline-block;
      margin-top: 8px;
      padding: 4px 8px;
      border-radius: 999px;
      background: #edf3fb;
      color: var(--azul);
      font-size: 11px;
      font-weight: 800;
    }

    .todos-encontros-titulo {
      margin: 24px 0 8px;
      padding-top: 18px;
      border-top: 1px solid var(--borda);
      color: var(--azul);
      font-size: 19px;
    }

    .acoes-encontros {
      display: grid;
      gap: 10px;
      margin-top: 22px;
      padding-top: 18px;
      border-top: 1px solid var(--borda);
    }

    .botao-lista-encontros {
      width: 100%;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: #f7f9fc;
      padding: 14px 16px;
      color: var(--azul);
      font-size: 15px;
      font-weight: 800;
      text-align: left;
      cursor: pointer;
    }

    .botao-lista-encontros.aberto {
      color: var(--branco);
      background: var(--azul);
      border-color: var(--azul);
    }

    .lista-encontros-expandida {
      display: none;
      margin-top: 12px;
    }

    .lista-encontros-expandida.ativa {
      display: block;
    }

    .encontro-meta {
      color: var(--cinza);
      font-size: 13px;
      line-height: 1.5;
    }

    .etapa-subsidios {
      margin: 20px 0 10px;
      color: var(--azul);
      font-size: 18px;
    }

    .bloco-subsidio {
      border-top: 1px solid var(--borda);
      padding-top: 15px;
      margin-top: 15px;
    }

    .bloco-subsidio h3 {
      color: var(--azul);
      margin: 0 0 8px;
      font-size: 16px;
    }

    .bloco-subsidio p {
      margin: 0;
      line-height: 1.65;
      white-space: pre-wrap;
    }

    .card {
      background: var(--branco);
      border-radius: 16px;
      padding: 18px;
      margin-bottom: 15px;
      box-shadow: 0 3px 12px rgba(15, 35, 65, .07);
      border: 1px solid rgba(11,47,103,.05);
    }

    .card h2 {
      margin: 0 0 8px;
      font-size: 20px;
      color: var(--azul);
    }

    .subtitulo {
      color: var(--cinza);
      margin: 0 0 18px;
      font-size: 14px;
      line-height: 1.5;
    }

    /* =========================
       TELA INICIAL
    ========================= */

    .boas-vindas {
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fbf8f1 58%,
      #f7eddc 100%
    );

  border-left: 5px solid var(--dourado);

  box-shadow:
    0 5px 16px rgba(15, 35, 65, .08);

  position: relative;
  overflow: hidden;
}
.boas-vindas::after {
  content: "";
  position: absolute;

  width: 220px;
  height: 220px;

  right: -90px;
  top: -110px;

  background:
    radial-gradient(
      circle,
      rgba(201, 148, 50, .16) 0%,
      rgba(201, 148, 50, 0) 70%
    );

  pointer-events: none;
}

    .boas-vindas h2 {
      margin-bottom: 6px;
    }

    .boas-vindas .frase {
      font-size: 13px;
      color: #78602c;
      font-style: italic;
      margin-top: 10px;
    }
    .menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}

    .menu-card {
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #ffffff 72%,
      #f8fafd 100%
    );

  border-radius: 16px;
  padding: 18px;
  margin-bottom: 0;
height: 100%;

  box-shadow:
    0 4px 12px rgba(15, 35, 65, .07),
    0 1px 2px rgba(15, 35, 65, .05);

  cursor: pointer;

  display: flex;
  align-items: center;
  gap: 15px;

  border: 1px solid rgba(11, 47, 103, .10);

  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

    .menu-card:active {
      transform: scale(.985);
    }

    .menu-card:hover {
  transform: translateY(-2px);

  border-color: rgba(201, 148, 50, .65);

  box-shadow:
    0 8px 20px rgba(15, 35, 65, .11),
    0 2px 5px rgba(15, 35, 65, .06);
}

    .menu-icone {
  min-width: 48px;
  height: 48px;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 25px;
  background: var(--dourado-claro);
  overflow: hidden;
}

.menu-icone svg {
  width: 26px;
  height: 26px;
  display: block;
}

.icone-azul svg {
  fill: #243b86;
}
.icone-verde svg {
  fill: #2f9e68;
}
.icone-pastoral svg {
  fill: #b47a24;
}
.icone-relatorios svg {
  fill: #3976a8;
}
.icone-comunicacao svg {
  fill: #b05a87;
}
.icone-painel svg {
  fill: #4f7fb3;
}


    .menu-info {
      flex: 1;
    }

    .menu-info h3 {
      margin: 0 0 5px;
      color: var(--azul);
      font-size: 18px;
    }

    .menu-info p {
      margin: 0;
      color: var(--cinza);
      font-size: 13px;
      line-height: 1.4;
    }

    .menu-seta {
      color: var(--dourado);
      font-size: 22px;
      font-weight: bold;
    }

    .menu-card.em-breve {
      cursor: default;
      opacity: .66;
    }

    .menu-card.em-breve:hover {
      border-color: var(--borda);
    }

    .badge {
      display: inline-block;
      margin-top: 7px;
      padding: 3px 8px;
      border-radius: 20px;
      background: #eef1f5;
      color: #68717d;
      font-size: 11px;
      font-weight: bold;
    }

    .aviso-destaque-inicio {
      display: none;
      margin: 0 0 18px;
      padding: 17px;
      border-radius: 15px;
      border-left: 5px solid var(--dourado);
      background: linear-gradient(135deg, #fff8e5, #fffdf8);
      box-shadow: 0 4px 12px rgba(15, 35, 65, .07);
      cursor: pointer;
    }

    .aviso-destaque-inicio.ativo { display: block; }
    .aviso-destaque-inicio .rotulo {
      color: #8a5a0a;
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .4px;
    }
    .aviso-destaque-inicio h3 {
      margin: 7px 0 5px;
      color: var(--azul);
      font-size: 18px;
    }
    .aviso-destaque-inicio p {
      margin: 4px 0 0;
      color: var(--cinza);
      line-height: 1.45;
      font-size: 14px;
    }

    .grupo-avisos { margin-top: 18px; }
    .grupo-avisos h3 {
      margin: 0 0 10px;
      color: var(--azul);
      font-size: 18px;
    }
    .gestao-avisos-coordenacao {
      display: none;
      margin: 0 0 18px;
      padding: 16px;
      border: 1px solid #ead49b;
      border-radius: 14px;
      background: #fffaf0;
    }
    .gestao-avisos-coordenacao.ativo { display: block; }
    .gestao-avisos-coordenacao h3 { margin: 0; color: var(--azul); }
    .formulario-aviso-coordenacao { display: none; margin-top: 14px; }
    .formulario-aviso-coordenacao.ativo { display: block; }
    .acoes-aviso-coordenacao {
      display: flex;
      gap: 10px;
      margin-top: 12px;
    }
    .botao-suspender-aviso {
      margin-top: 10px;
      padding: 8px 12px;
      border: 1px solid #a72b2b;
      border-radius: 9px;
      background: #fff;
      color: #a72b2b;
      font-weight: 700;
      cursor: pointer;
    }
    .acoes-cartao-aviso { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
    .acoes-cartao-aviso .botao-suspender-aviso { margin-top: 0; }
    .botao-editar-aviso {
      padding: 8px 12px;
      border: 1px solid var(--azul);
      border-radius: 9px;
      background: #fff;
      color: var(--azul);
      font-weight: 700;
      cursor: pointer;
    }
    @media (max-width: 600px) {
      .acoes-aviso-coordenacao { flex-direction: column; }
    }
    .abas-comunicacao {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin: 20px 0 12px;
      padding: 5px;
      border-radius: 14px;
      background: #eef2f7;
    }
    .aba-comunicacao {
      border: 0;
      border-radius: 10px;
      padding: 12px 10px;
      background: transparent;
      color: var(--azul);
      font: inherit;
      font-weight: 800;
      cursor: pointer;
    }
    .aba-comunicacao.ativa {
      background: var(--branco);
      box-shadow: 0 3px 10px rgba(15, 35, 65, .10);
    }
    .painel-comunicacao { display: none; }
    .painel-comunicacao.ativo { display: block; }
    .acompanhamento-resumo {
      margin: 14px 0 18px;
      padding: 14px 16px;
      border-radius: 12px;
      background: #eef4fb;
      color: var(--azul);
      font-weight: 700;
    }
    .cartao-acompanhamento {
      margin-bottom: 14px;
      padding: 17px;
      border: 1px solid var(--borda);
      border-left: 5px solid var(--dourado);
      border-radius: 14px;
      background: var(--branco);
      box-shadow: 0 3px 9px rgba(15, 35, 65, .06);
    }
    .cartao-acompanhamento.atencao { border-left-color: #c4513d; }
    .cartao-acompanhamento h3 { margin: 0 0 6px; color: var(--azul); }
    .cabecalho-cartao-acompanhamento {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 6px;
    }
    .cabecalho-cartao-acompanhamento h3 { margin: 0; }
    .status-pastoral {
      display: inline-block;
      margin: 5px 0 10px;
      padding: 5px 9px;
      border-radius: 999px;
      background: #fff3d8;
      color: #80540a;
      font-size: 12px;
      font-weight: 800;
    }
    .dados-pastorais { margin: 5px 0; line-height: 1.5; color: var(--cinza); }
    .botao-whatsapp {
      display: block;
      width: 100%;
      box-sizing: border-box;
      margin-top: 11px;
      padding: 10px 14px;
      border-radius: 10px;
      background: #168f54;
      color: #fff;
      font-weight: 800;
      text-decoration: none;
      text-align: center;
    }
    #listaAcompanhamento .botao-whatsapp {
      display: none;
    }
    .botao-registro-teste {
      flex: 0 0 auto;
      margin: 0;
      padding: 8px 12px;
      border: 1px solid #bfd0e5;
      border-radius: 9px;
      background: #eef4fb;
      color: var(--azul);
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    .editor-acompanhamento-inline {
      display: none;
      margin-top: 15px;
      padding-top: 15px;
      border-top: 1px solid var(--borda);
    }
    .editor-acompanhamento-inline.ativo { display: block; }
    .editor-acompanhamento-inline .historico-contatos,
    .editor-acompanhamento-inline .bloco-contato-familia,
    .editor-acompanhamento-inline .bloco-novo-acompanhamento {
      margin-top: 12px;
      padding: 13px;
    }
    #listaAcompanhamento .editor-acompanhamento-inline .botao-whatsapp {
      display: block;
    }
    .acoes-editor-acompanhamento { display: flex; gap: 10px; margin-top: 14px; }
    .acoes-editor-acompanhamento button { flex: 1; margin-top: 0; padding: 11px; font-size: 14px; }
    .cartao-acompanhamento.atualizado {
      border-color: #2d8b63;
      box-shadow: 0 0 0 3px rgba(45, 139, 99, .13);
    }
    .historico-contatos {
      margin-top: 22px;
      padding: 16px;
      border: 1px solid var(--borda);
      border-radius: 14px;
      background: #f8fafc;
    }
    .historico-contatos h3 { margin: 0 0 12px; color: var(--azul); }
    .item-historico-contato {
      margin-bottom: 12px;
      padding: 14px;
      border-radius: 12px;
      background: #f5f7fa;
      border-left: 4px solid var(--azul-claro);
    }
    .item-historico-contato p { margin: 5px 0; line-height: 1.45; }
    .filtro-relatorio-turma {
      margin: 14px 0 10px;
      padding: 12px;
      border: 1px solid var(--borda);
      border-radius: 11px;
      background: #f7f9fc;
    }
    .filtro-relatorio-turma label {
      display: block;
      margin-bottom: 7px;
      color: var(--texto);
    }

    .grupo-etapas-frequencia {
      margin: 10px 0 14px;
    }
    .grupo-etapas-frequencia-titulo {
      margin: 14px 0 8px;
      color: var(--texto);
      font-weight: 700;
    }
    .etapa-frequencia-select-oculto {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      padding: 0 !important;
      margin: -1px !important;
      overflow: hidden !important;
      clip: rect(0,0,0,0) !important;
      white-space: nowrap !important;
      border: 0 !important;
    }

    .pesquisa-frequencia-individual { margin: 14px 0; }
    .pesquisa-frequencia-individual label { display:block; margin-bottom:7px; }
    .lista-catequizandos-frequencia {
      display:none; margin-top:7px; max-height:220px; overflow-y:auto;
      border:1px solid var(--borda); border-radius:10px; background:#fff;
    }
    .lista-catequizandos-frequencia.ativo { display:block; }
    .item-catequizando-frequencia {
      width:100%; padding:10px 12px; border:0; border-bottom:1px solid #e2e8f0;
      background:#fff; color:var(--azul); text-align:left; font:inherit;
      font-size:12px; font-weight:700; cursor:pointer;
    }
    .item-catequizando-frequencia:last-child { border-bottom:0; }
    .item-catequizando-frequencia:hover { background:#f5f8fc; }
    .item-catequizando-frequencia small {
      display:block; margin-top:2px; color:var(--cinza); font-size:9px; font-weight:500;
    }
    .diario-frequencia-scroll { overflow-x:auto; padding-bottom:5px; margin-top:12px; }
    .diario-frequencia {
      border-collapse:separate; border-spacing:0; min-width:max-content;
      border:1px solid #dce5ef; border-radius:9px; overflow:hidden; background:#fff;
    }
    .diario-frequencia th, .diario-frequencia td {
      min-width:55px; padding:7px 8px; border-right:1px solid #e2e8f0;
      border-bottom:1px solid #e2e8f0; text-align:center; font-size:10px;
    }
    .diario-frequencia th:first-child, .diario-frequencia td:first-child {
      min-width:74px; position:sticky; left:0; z-index:1; background:#f7f9fc;
      color:var(--azul); font-weight:800;
    }
    .diario-frequencia th { background:#f7f9fc; color:var(--azul); font-weight:700; }
    .diario-frequencia tr:last-child td { border-bottom:0; }
    .diario-frequencia th:last-child, .diario-frequencia td:last-child { border-right:0; }
    .marca-presenca { color:#237a57; font-weight:900; }
    .marca-falta { color:#b43b3b; font-weight:900; }
    .resumo-individual-frequencia {
      display:flex; flex-wrap:wrap; gap:7px 14px; margin-top:12px;
      color:var(--cinza); font-size:11px;
    }
    .resumo-individual-frequencia strong { color:var(--azul); }

    .modal-frequencia-turma {
      position: fixed;
      inset: 0;
      z-index: 10030;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 18px;
      background: rgba(8,29,58,.42);
    }
    .modal-frequencia-turma.ativo {
      display: flex;
    }
    .modal-frequencia-caixa {
      width: min(620px, 100%);
      max-height: 84vh;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      background: #fff;
      border: 1px solid #d9e3ef;
      border-radius: 16px;
      box-shadow: 0 18px 50px rgba(9,42,83,.22);
    }
    .modal-frequencia-topo {
      padding: 16px 18px 12px;
      border-bottom: 1px solid #dbe4ef;
      background: #f7faff;
    }
    .modal-frequencia-topo h3 {
      margin: 0;
      color: var(--azul);
      font-size: 18px;
    }
    .modal-frequencia-topo p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 11px;
    }
    .modal-frequencia-lista {
      overflow-y: auto;
      padding: 10px 16px 14px;
    }
    .modal-frequencia-aluno {
      padding: 11px 10px;
      border-bottom: 1px solid #e2e8f0;
    }
    .modal-frequencia-aluno:last-child {
      border-bottom: 0;
    }
    .modal-frequencia-aluno-topo {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }
    .modal-frequencia-aluno strong {
      color: var(--azul);
      font-size: 13px;
    }
    .modal-frequencia-aluno .percentual {
      color: var(--azul);
      font-size: 12px;
      font-weight: 800;
    }
    .modal-frequencia-aluno p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 10px;
    }
    .modal-frequencia-barra {
      height: 6px;
      margin-top: 7px;
      overflow: hidden;
      border-radius: 999px;
      background: #e8edf4;
    }
    .modal-frequencia-barra span {
      display: block;
      height: 100%;
      background: #2d8b63;
    }
    .modal-frequencia-rodape {
      padding: 12px 16px 16px;
      border-top: 1px solid #dbe4ef;
      background: #f8fafc;
    }
    .modal-frequencia-fechar {
      width: 100%;
      padding: 10px 14px;
      border: 0;
      border-radius: 9px;
      background: var(--azul);
      color: #fff;
      font-weight: 700;
      cursor: pointer;
    }
    body.modal-frequencia-aberto {
      overflow: hidden;
    }
    .resumo-frequencia-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin: 18px 0;
    }
    .indicador-frequencia {
      padding: 14px 10px;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: #f8fafc;
      text-align: center;
    }
    .indicador-frequencia strong {
      display: block;
      color: var(--azul);
      font-size: 22px;
    }
    .indicador-frequencia span {
      color: var(--cinza);
      font-size: 13px;
    }
    .aluno-frequencia {
      margin-bottom: 10px;
      padding: 14px;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: var(--branco);
    }
    .aluno-frequencia-topo {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: center;
    }
    .aluno-frequencia-topo strong { color: var(--azul); }
    .barra-frequencia {
      height: 8px;
      margin-top: 10px;
      overflow: hidden;
      border-radius: 999px;
      background: #e8edf4;
    }
    .barra-frequencia span {
      display: block;
      height: 100%;
      background: #2d8b63;
    }
    .tabela-resumo-turmas {
      width: 100%;
      border-collapse: collapse;
      margin-top: 14px;
      font-size: 13px;
    }
    .tabela-resumo-turmas th,
    .tabela-resumo-turmas td {
      padding: 9px 7px;
      border-bottom: 1px solid var(--borda);
      text-align: left;
    }
    .tabela-resumo-turmas th {
      color: var(--azul);
      background: #f4f7fb;
    }
    .tabela-resumo-turmas th:not(:first-child),
    .tabela-resumo-turmas td:not(:first-child) { text-align: center; }
    .rolagem-resumo-turmas { overflow-x: auto; }
    .filtros-sacramentos {
      display: none;
      margin: 16px 0;
      padding: 14px;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: #f7f9fc;
    }
    .filtros-sacramentos.ativo { display: block; }
    .seletor-etapa-sacramentos { display: none; }
    .etapas-sacramentos {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 8px;
    }
    .resumo-sacramentos {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 9px;
      margin: 16px 0;
    }
    button.indicador-sacramento {
      width: 100%;
      font: inherit;
      color: inherit;
      cursor: pointer;
    }
    button.indicador-sacramento:hover,
    button.indicador-sacramento:focus-visible {
      background: #f1f5fa;
      border-color: #b8c9dd;
      outline: none;
    }

    .indicador-sacramento {
      padding: 11px 7px;
      border: 1px solid var(--borda);
      border-radius: 11px;
      background: #f7f9fc;
      text-align: center;
    }
    .indicador-sacramento strong {
      display: block;
      color: var(--azul);
      font-size: 21px;
    }
    .indicador-sacramento span {
      color: var(--cinza);
      font-size: 11px;
    }
    .rolagem-sacramentos { overflow-x: auto; }

    .lista-cartoes-sacramentos {
      display: grid;
      gap: 12px;
      margin-top: 14px;
    }
    .cartao-sacramento-catequizando {
      padding: 14px;
      border: 1px solid #bfd2e9;
      border-left: 5px solid var(--azul-claro);
      border-radius: 14px;
      background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
      box-shadow: 0 6px 18px rgba(11, 47, 103, 0.12);
      overflow: hidden;
    }
    .topo-cartao-sacramento {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 13px 14px;
      margin: -14px -14px 12px;
      border-bottom: 1px solid #c9d9ec;
      background: linear-gradient(110deg, #eaf2fc 0%, #f7faff 100%);
    }
    .topo-cartao-sacramento h3 {
      margin: 0;
      color: var(--azul);
      font-size: 17px;
      font-weight: 800;
    }
    .topo-cartao-sacramento p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 12px;
      font-weight: 600;
    }
    .linhas-sacramentos {
      display: grid;
      gap: 8px;
    }
    .linha-sacramento-cartao {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      font-size: 13px;
    }
    .linha-sacramento-cartao strong {
      color: var(--azul);
    }
    .estado-sacramento-informado {
      color: #176841;
      font-weight: 700;
    }
    .estado-sacramento-neutro {
      color: var(--cinza);
      font-weight: 600;
    }
    .grade-status-sacramentos {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 9px;
      margin-top: 4px;
    }
    .coluna-sacramento-cartao {
      min-width: 0;
      text-align: center;
      min-height: 76px;
      padding: 11px 7px;
      border: 1px solid #d9e4f1;
      border-radius: 10px;
      background: #fff;
    }
    .coluna-sacramento-cartao:last-child { border-right: 1px solid #d9e4f1; }
    .coluna-sacramento-cartao strong {
      display: block;
      color: var(--azul);
      font-size: 12px;
      margin-bottom: 6px;
    }
    .coluna-sacramento-cartao span {
      display: inline-block;
      min-height: 24px;
      padding: 5px 9px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      line-height: 1.2;
      overflow-wrap: anywhere;
    }
    .status-sacramento-sim { color: #176841; background: #e4f5ec; }
    .status-sacramento-nao { color: #a33b3b; background: #fdeaea; }
    .status-sacramento-nao-informado { color: #8a5a00; background: #fff2d6; }
    .status-sacramento-vazio { color: transparent; background: transparent; visibility: hidden; }
    .botao-editar-sacramentos-inferior {
      display: block;
      width: 100%;
      margin: 12px 0 0;
      padding: 10px 14px;
      border: 1px solid var(--azul);
      background: var(--azul);
      box-shadow: 0 3px 8px rgba(11, 47, 103, 0.16);
    }

    @media (max-width: 700px) {
      .cartao-sacramento-catequizando { padding: 12px; }
      .topo-cartao-sacramento {
        margin: -12px -12px 10px;
        padding: 12px 14px;
      }
      .grade-status-sacramentos {
        grid-template-columns: 1fr;
        gap: 7px;
      }
      .coluna-sacramento-cartao {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px 12px;
        min-height: 0;
        padding: 10px 12px;
        text-align: left;
      }
      .coluna-sacramento-cartao > strong {
        margin: 0;
        font-size: 13px;
      }
      .coluna-sacramento-cartao > span {
        min-height: 0;
        white-space: nowrap;
      }
      .local-sacramento {
        grid-column: 1 / -1;
        margin-top: 2px;
        padding: 8px 0 0;
        text-align: left;
        line-height: 1.4;
      }
      .local-sacramento strong {
        display: inline;
        margin: 0;
        font-size: 11px;
      }
      .botao-editar-sacramentos-inferior { margin-top: 9px; }
    }

    .resumo-sacramentos-seis {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .indicador-nao-receberam strong {
      color: #a33b3b;
    }
    .indicador-nao-informados strong {
      color: #9a6a10;
    }
    @media (max-width: 520px) {
      .resumo-sacramentos-seis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    .painel-filtro-linha {
      display: grid;
      gap: 7px;
      margin: 16px 0 12px;
    }
    .painel-filtro-linha select {
      width: 100%;
      padding: 11px 12px;
      border: 1px solid var(--borda);
      border-radius: 10px;
      background: #fff;
      color: var(--texto);
      font: inherit;
    }
    .painel-indicadores {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin: 14px 0 18px;
    }
    .painel-indicador {
      min-width: 0;
      padding: 14px 8px;
      border: 1px solid #d8e2ef;
      border-radius: 11px;
      background: #f8fafc;
      text-align: center;
    }
    .painel-indicador strong {
      display: block;
      color: var(--azul);
      font-size: 24px;
      line-height: 1.1;
    }
    .painel-indicador span {
      display: block;
      margin-top: 4px;
      color: var(--cinza);
      font-size: 11px;
      line-height: 1.2;
    }
    .painel-bloco {
      margin-top: 8px;
    }
    .painel-bloco-cabecalho {
      padding: 12px 14px;
      border-left: 4px solid #4d8fe8;
      border-bottom: 1px solid #d8e2ef;
      background: #f7faff;
      border-radius: 10px 10px 0 0;
    }
    .painel-bloco-cabecalho h3 {
      margin: 0;
      color: var(--azul);
      font-size: 16px;
    }
    .painel-bloco-cabecalho p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 11px;
    }
    .painel-lista-etapas {
      display: grid;
      gap: 9px;
      margin-top: 10px;
    }
    .painel-etapa-card {
      padding: 11px 12px;
      border: 1px solid #d8e2ef;
      border-left: 4px solid #4d8fe8;
      border-bottom: 2px solid #9fc4f2;
      border-radius: 10px;
      background: #fff;
      box-shadow: 0 2px 7px rgba(11,47,103,.06);
    }
    .painel-etapa-titulo {
      padding-bottom: 7px;
      margin-bottom: 7px;
      border-bottom: 1px solid #e1e8f0;
    }
    .painel-etapa-titulo strong {
      color: var(--azul);
      font-size: 14px;
    }
    .painel-etapa-dados {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .painel-etapa-celula {
      min-width: 0;
      text-align: center;
      padding: 3px 5px;
      border-right: 1px solid #e1e8f0;
    }
    .painel-etapa-celula:last-child {
      border-right: 0;
    }
    .painel-etapa-celula strong {
      display: block;
      color: var(--azul);
      font-size: 16px;
      line-height: 1.15;
    }
    .painel-etapa-celula span {
      display: block;
      margin-top: 3px;
      color: var(--cinza);
      font-size: 9px;
      line-height: 1.15;
    }
    @media (min-width: 700px) {
      .painel-indicadores {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    .painel-numero-clicavel {
      appearance: none;
      -webkit-appearance: none;
      font: inherit;
      color: inherit;
      cursor: pointer;
    }
    .painel-numero-clicavel:hover {
      border-color: #8eb9ef;
      background: #f7faff;
    }
    .painel-numero-clicavel:active {
      transform: translateY(1px);
    }
    button.painel-etapa-celula {
      background: transparent;
      border-top: 0;
      border-bottom: 0;
      border-left: 0;
    }

    .modal-painel {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 9999;
      align-items: flex-end;
      justify-content: center;
    }
    .modal-painel.ativo {
      display: flex;
    }
    .modal-painel-fundo {
      position: absolute;
      inset: 0;
      background: rgba(8, 27, 55, .48);
    }
    .modal-painel-caixa {
      position: relative;
      width: min(100%, 640px);
      max-height: 82vh;
      display: flex;
      flex-direction: column;
      background: #fff;
      border-radius: 18px 18px 0 0;
      box-shadow: 0 -8px 30px rgba(0,0,0,.18);
      overflow: hidden;
    }
    .modal-painel-topo {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      padding: 16px 18px;
      border-bottom: 1px solid #d8e2ef;
      background: #f7faff;
    }
    .modal-painel-topo h3 {
      margin: 0;
      color: var(--azul);
      font-size: 18px;
    }
    .modal-painel-topo p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 11px;
    }
    .modal-painel-fechar {
      padding: 7px 11px;
      border: 1px solid #b8c8da;
      border-radius: 8px;
      background: #fff;
      color: var(--azul);
      font-weight: 700;
      cursor: pointer;
    }
    .modal-painel-conteudo {
      overflow-y: auto;
      padding: 12px 16px 20px;
    }
    .modal-painel-lista {
      display: grid;
      gap: 7px;
    }
    .modal-painel-item {
      padding: 10px 11px;
      border: 1px solid #dfe7f0;
      border-left: 3px solid #4d8fe8;
      border-radius: 8px;
      background: #fff;
    }
    .modal-painel-item strong {
      display: block;
      color: var(--azul);
      font-size: 13px;
    }
    .modal-painel-item span {
      display: block;
      margin-top: 3px;
      color: var(--cinza);
      font-size: 10px;
      line-height: 1.3;
    }
    .painel-chamadas-bloco {
      margin-top: 18px;
    }
    .painel-chamadas-indicadores {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 10px;
    }
    .painel-indicador-atencao {
      border-color: #d7b45b;
      background: #fffaf0;
    }
    .painel-indicador-atencao strong {
      color: #8a5a00;
    }
    .painel-chamadas-tres {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .chamada-contato-necessario {
      margin-top: 8px;
      padding: 7px 9px;
      border: 1px solid #dfc27a;
      border-radius: 8px;
      background: #fffaf0;
    }
    .chamada-contato-necessario strong {
      display: block;
      color: #735000;
      font-size: 10px;
    }
    .chamada-contato-necessario span {
      display: block;
      margin-top: 2px;
      color: #7d6b45;
      font-size: 9px;
    }
    @media (max-width: 520px) {
      .painel-chamadas-tres .painel-indicador {
        padding-left: 4px;
        padding-right: 4px;
      }
      .painel-chamadas-tres .painel-indicador strong {
        font-size: 20px;
      }
      .painel-chamadas-tres .painel-indicador span {
        font-size: 9px;
      }
    }
    .chamada-contatos-catequistas {
      display: grid;
      gap: 7px;
      margin-top: 9px;
    }
    .botao-whatsapp-painel {
      display: block;
      padding: 8px 10px;
      border: 1px solid #b8c8da;
      border-radius: 8px;
      background: #f7faff;
      color: var(--azul);
      font-size: 11px;
      font-weight: 700;
      text-decoration: none;
      text-align: center;
    }
    .chamada-catequista-sem-contato {
      margin-top: 8px;
      padding: 8px 10px;
      border: 1px solid #e0e5eb;
      border-radius: 8px;
      background: #f8fafc;
    }
    .chamada-catequista-sem-contato strong,
    .chamada-catequista-sem-contato span {
      display: block;
      font-size: 10px;
      color: var(--cinza);
    }

    .modal-painel-aberto {
      overflow: hidden;
    }
    @media (min-width: 700px) {
      .modal-painel {
        align-items: center;
        padding: 24px;
      }
      .modal-painel-caixa {
        border-radius: 16px;
        max-height: 78vh;
      }
    }

    .celula-resumo-turma-sacramentos.clicavel{cursor:pointer;border:0;background:transparent;font:inherit;color:inherit;width:100%}
    .celula-resumo-turma-sacramentos.clicavel:hover,.celula-resumo-turma-sacramentos.clicavel:focus-visible{background:#f3f7fc;border-radius:8px;outline:none}
    .modal-sacramentos-resumo{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(8,29,58,.42)}
    .modal-sacramentos-resumo.ativo{display:flex}
    .modal-sacramentos-caixa{width:min(560px,100%);max-height:82vh;overflow:hidden;background:#fff;border-radius:16px;border:1px solid #d9e3ef;box-shadow:0 18px 50px rgba(9,42,83,.22);display:flex;flex-direction:column}
    .modal-sacramentos-topo{padding:16px 18px 12px;border-bottom:1px solid #dbe4ef}
    .modal-sacramentos-topo h3{margin:0;color:var(--azul);font-size:18px}
    .modal-sacramentos-topo p{margin:4px 0 0;color:var(--cinza);font-size:12px}
    .modal-sacramentos-lista{overflow-y:auto;padding:8px 18px 14px}
    .modal-sacramentos-item{padding:10px 0;border-bottom:1px solid #e2e8f0}
    .modal-sacramentos-item:last-child{border-bottom:0}
    .modal-sacramentos-item strong{display:block;color:var(--azul);font-size:13px}
    .modal-sacramentos-item span{display:block;margin-top:3px;color:var(--cinza);font-size:11px}
    .modal-sacramentos-rodape{padding:12px 18px 16px;border-top:1px solid #dbe4ef;background:#f8fafc}
    .modal-sacramentos-fechar{width:100%;padding:10px 14px;border:0;border-radius:9px;background:var(--azul);color:#fff;font-weight:700;cursor:pointer}
    body.modal-sacramentos-aberto{overflow:hidden}

    .resumo-todas-turmas-sacramentos {
      margin-top: 16px;
    }
    .cabecalho-resumo-turmas-sacramentos {
      margin-bottom: 10px;
      padding: 0;
      border: 1px solid #d8e2ef;
      border-left: 4px solid #4d8fe8;
      border-radius: 10px;
      background: #f7faff;
      overflow: hidden;
    }
    .botao-resumo-turmas-sacramentos {
      width: 100%;
      margin: 0;
      padding: 12px 14px;
      border: 0;
      background: transparent;
      color: inherit;
      text-align: left;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .botao-resumo-turmas-sacramentos:hover,
    .botao-resumo-turmas-sacramentos:focus-visible {
      background: #edf4fc;
      outline: none;
    }
    .icone-resumo-turmas-sacramentos {
      color: var(--azul);
      font-size: 22px;
      font-weight: 700;
      transition: transform .2s ease;
    }
    .botao-resumo-turmas-sacramentos[aria-expanded="true"] .icone-resumo-turmas-sacramentos {
      transform: rotate(180deg);
    }
    .cabecalho-resumo-turmas-sacramentos h3 {
      margin: 0;
      color: var(--azul);
      font-size: 16px;
    }
    .cabecalho-resumo-turmas-sacramentos p {
      margin: 4px 0 0;
      color: var(--cinza);
      font-size: 12px;
    }
    .texto-resumo-turmas-sacramentos strong {
      display: block;
      color: var(--azul);
      font-size: 16px;
    }
    .texto-resumo-turmas-sacramentos small {
      display: block;
      margin-top: 4px;
      color: var(--cinza);
      font-size: 12px;
      font-weight: 400;
    }
    .lista-resumo-turmas-sacramentos {
      display: grid;
      gap: 10px;
    }
    .cartao-resumo-turma-sacramentos {
      padding: 12px 14px;
      border: 1px solid #d8e2ef;
      border-left: 4px solid #4d8fe8;
      border-bottom: 3px solid #8eb9ef;
      border-radius: 11px;
      background: #fff;
      box-shadow: 0 3px 9px rgba(11, 47, 103, 0.07);
    }
    .titulo-resumo-turma-sacramentos {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
      padding-bottom: 8px;
      margin-bottom: 8px;
      border-bottom: 1px solid #dbe5f0;
    }
    .titulo-resumo-turma-sacramentos strong {
      color: var(--azul);
      font-size: 14px;
    }
    .titulo-resumo-turma-sacramentos span {
      color: var(--cinza);
      font-size: 11px;
      text-align: right;
    }
    .grade-resumo-turma-sacramentos {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 4px;
    }
    .celula-resumo-turma-sacramentos {
      min-width: 0;
      text-align: center;
      padding: 4px 2px;
      border-right: 1px solid #e1e8f0;
    }
    .celula-resumo-turma-sacramentos:last-child {
      border-right: 0;
    }
    .celula-resumo-turma-sacramentos strong {
      display: block;
      color: var(--azul);
      font-size: 14px;
      line-height: 1.15;
    }
    .celula-resumo-turma-sacramentos span {
      display: block;
      margin-top: 3px;
      color: var(--cinza);
      font-size: 9px;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }
    .orientacao-resumo-sacramentos {
      margin: 12px 0 0;
      padding: 10px 12px;
      border: 1px solid #d8e2ef;
      border-radius: 9px;
      background: #f7faff;
      color: var(--azul);
      font-size: 12px;
    }
    @media (max-width: 520px) {
      .grade-resumo-turma-sacramentos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        overflow: visible;
        padding-bottom: 0;
        row-gap: 8px;
      }
      .grade-resumo-turma-sacramentos .celula-resumo-turma-sacramentos:nth-child(3n) {
        border-right: 0;
      }
      .titulo-resumo-turma-sacramentos {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
      }
      .titulo-resumo-turma-sacramentos span {
        text-align: left;
      }
    }

    .editor-sacramento-inline {
      display: none;
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid var(--borda);
    }
    .editor-sacramento-inline.ativo {
      display: block;
    }
    .local-sacramento { margin-top: 7px; padding-top: 7px; border-top: 1px solid #e6ebf1; color: var(--cinza); font-size: 11px; }
    .campo-local-sacramento { margin-top: 8px; }
    .bloco-editor-sacramento { padding: 13px; border: 1px solid var(--borda); border-radius: 12px; background: #f8fafc; }
    .bloco-editor-sacramento > strong { display: block; margin-bottom: 8px; color: var(--azul); font-size: 14px; }
    .bloco-editor-sacramento label { display: block; }
    .bloco-editor-sacramento .campo { margin-top: 5px; }
    .cartao-sacramento-catequizando.sacramento-atualizado {
      outline: 2px solid #2d8b63;
      outline-offset: 1px;
    }
    .tabela-sacramentos {
      width: 100%;
      min-width: 680px;
      border-collapse: collapse;
      font-size: 13px;
    }
    .tabela-sacramentos th,
    .tabela-sacramentos td {
      padding: 9px 8px;
      border-bottom: 1px solid var(--borda);
      text-align: left;
    }
    .tabela-sacramentos th {
      color: var(--azul);
      background: #f4f7fb;
    }
    .tabela-sacramentos th:nth-child(n+3),
    .tabela-sacramentos td:nth-child(n+3) { text-align: center; }
    .sacramento-sim,
    .sacramento-nao,
    .sacramento-pendente {
      display: inline-block;
      padding: 4px 8px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 800;
      white-space: nowrap;
    }
    .sacramento-sim { background: #e4f5ec; color: #176841; }
    .sacramento-nao { background: #fdeaea; color: #a12a2a; }
    .sacramento-pendente { background: #fff2d6; color: #8a5a00; }
    .editor-sacramentos {
      display: none;
      margin: 16px 0;
      padding: 16px;
      border: 1px solid #d7b45b;
      border-left: 5px solid var(--dourado);
      border-radius: 12px;
      background: #fffbf1;
    }
    .editor-sacramentos.ativo { display: block; }
    .editor-sacramentos h3 { margin: 0 0 4px; color: var(--azul); }
    .grade-editor-sacramentos {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-top: 13px;
    }
    .acoes-editor-sacramentos { display: flex; gap: 10px; margin-top: 14px; }
    .acoes-editor-sacramentos button { flex: 1; }
    .botao-editar-sacramentos {
      padding: 6px 10px;
      border: 0;
      border-radius: 8px;
      background: var(--azul);
      color: #fff;
      font-size: 11px;
      font-weight: 800;
      cursor: pointer;
    }
    @media (max-width: 700px) {
      .resumo-sacramentos { grid-template-columns: repeat(2, 1fr); }
      .grade-editor-sacramentos { grid-template-columns: 1fr; }
      .acoes-editor-sacramentos { flex-direction: column; }
      .acoes-relatorio-sacramentos { flex-direction: column; }
    }
    .grade-turmas-frequencia {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 12px;
      margin-top: 14px;
    }
    .cartao-turma-frequencia {
      padding: 14px;
      border: 1px solid var(--borda);
      border-left: 5px solid #2d8b63;
      border-radius: 13px;
      background: #fff;
      box-shadow: var(--sombra);
    }
    .cartao-turma-frequencia h4 {
      margin: 0 0 4px;
      color: var(--azul);
      font-size: 16px;
    }
    .cartao-turma-frequencia p {
      margin: 3px 0;
      color: var(--cinza);
      font-size: 13px;
    }
    .cartao-turma-frequencia .percentual-turma {
      margin-top: 8px;
      color: var(--azul);
      font-size: 20px;
      font-weight: 800;
    }
    .cabecalho-impressao-relatorio { display: none; }
    .relatorio-impressao-enxuto { display: none; }
    .relatorio-impressao-completo { display: none; }
    .acoes-relatorio-frequencia {
      display: none;
      margin-top: 18px;
    }
    .escolha-impressao-frequencia {
      margin-bottom: 10px;
      padding: 12px;
      border: 1px solid #c9d9ec;
      border-radius: 11px;
      background: #fff9ec;
    }
    .escolha-impressao-frequencia p { margin: 0 0 8px; color: var(--azul); }
    .botoes-impressao-frequencia {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }
    .botoes-impressao-frequencia button {
      min-height: 42px;
      border: 1px solid #bfd0e5;
      border-radius: 9px;
      background: #f7faff;
      color: var(--azul);
      font-weight: 800;
      cursor: pointer;
    }
    .botoes-impressao-frequencia button.ativo {
      border-color: var(--azul);
      background: var(--azul);
      color: #fff;
    }
    .bloco-frequencia-organizado {
      margin-top: 16px;
      padding: 14px;
      border: 1px solid #c9d9ec;
      border-radius: 13px;
      background: linear-gradient(180deg, #eef5fc 0%, #f7faff 100%);
    }
    .bloco-frequencia-organizado > label:first-child {
      display: block;
      margin-top: 0;
    }
    .periodo-frequencia-organizado {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 8px;
      padding: 12px;
      border: 1px solid #c8d9ec;
      border-radius: 12px;
      background: #e8f2fc;
    }
    .periodo-frequencia-organizado label {
      display: block;
      margin: 0 0 6px;
    }
    .periodo-frequencia-organizado .campo { margin: 0; }
    .periodo-frequencia-organizado input[type="date"] {
      min-height: 48px;
      border-color: #a9c2dd;
      background: #fff;
      color: #183b68;
      font-weight: 700;
    }
    .titulo-secao-frequencia {
      display: block;
      margin: 16px 0 8px;
      color: #26364a;
      font-weight: 800;
    }
    .pesquisa-frequencia-organizada { margin-top: 16px; }
    .cartao-opcao-frequencia {
      margin-top: 14px;
      border: 1px solid #c9d9ec;
      border-radius: 12px;
      background: #f1f6fc;
      overflow: hidden;
    }
    .cartao-opcao-frequencia .turmas-coordenacao {
      padding: 0 12px 12px;
      margin-top: 0;
    }
    .cartao-opcao-frequencia .botao-turma-coordenacao {
      background: #f7faff;
      border-color: #c5d5e8;
    }
    .cartao-opcao-frequencia .botao-turma-coordenacao.ativo {
      background: var(--azul);
      border-color: var(--azul);
    }
    .botao-cartao-frequencia {
      width: 100%;
      margin: 0;
      padding: 13px 14px;
      border: 0;
      background: transparent;
      color: var(--azul);
      text-align: left;
      font-weight: 800;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .botao-cartao-frequencia:hover,
    .botao-cartao-frequencia:focus-visible {
      background: #e7f0fa;
      outline: none;
    }
    .conteudo-cartao-frequencia {
      padding: 0 14px 14px;
      border-top: 1px solid #d4e1ef;
    }
    .seta-cartao-frequencia {
      font-size: 21px;
      transition: transform .2s ease;
    }
    .botao-cartao-frequencia[aria-expanded="true"] .seta-cartao-frequencia {
      transform: rotate(180deg);
    }
    .painel-preparar-relatorio-frequencia {
      margin-top: 18px;
      border: 1px solid #d8e2ef;
      border-left: 4px solid var(--dourado);
      border-radius: 12px;
      background: linear-gradient(180deg, #fff8e8 0%, #fffdf7 100%);
      overflow: hidden;
    }
    .botao-expandir-relatorio-frequencia {
      width: 100%;
      margin: 0;
      padding: 14px 16px;
      border: 0;
      background: transparent;
      color: var(--azul);
      text-align: left;
      font-weight: 800;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .botao-expandir-relatorio-frequencia:hover,
    .botao-expandir-relatorio-frequencia:focus-visible {
      background: #fff8e8;
      outline: none;
    }
    .seta-expandir-relatorio-frequencia {
      font-size: 22px;
      transition: transform .2s ease;
    }
    .botao-expandir-relatorio-frequencia[aria-expanded="true"] .seta-expandir-relatorio-frequencia {
      transform: rotate(180deg);
    }
    .conteudo-preparar-relatorio-frequencia {
      padding: 0 16px 16px;
      border-top: 1px solid #eadfbd;
    }
    @media (max-width: 560px) {
      .periodo-frequencia-organizado { grid-template-columns: 1fr; }
    }
    .acoes-relatorio-sacramentos {
      display: none;
      gap: 10px;
      margin-top: 18px;
    }
    .acoes-relatorio-sacramentos button { flex: 1; }
    .gestao-catequistas-novo {
      width: 100%; margin: 14px 0 0; padding: 13px 16px; border: 0;
      border-radius: 11px; background: var(--azul); color: #fff;
      font-weight: 800; cursor: pointer;
    }
    .formulario-gestao-catequistas {
      display: none; margin-top: 14px; padding: 16px;
      border: 1px solid #c5d7eb; border-left: 4px solid var(--dourado);
      border-radius: 13px; background: #f7faff;
    }
    .formulario-gestao-catequistas.ativo { display: block; }
    .cartao-gestao-catequista > .formulario-gestao-catequistas {
      width: 100%;
      margin-top: 14px;
      border-left-width: 1px;
      box-shadow: inset 0 1px 0 rgba(11,47,103,.05);
    }
    .formulario-gestao-catequistas-topo {
      display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
    }
    .formulario-gestao-catequistas-topo h3 { margin: 0; color: var(--azul); }
    .formulario-gestao-catequistas-topo p { margin: 3px 0 0; color: var(--cinza); font-size: 11px; }
    .formulario-gestao-catequistas-topo button {
      width: auto; margin: 0; padding: 2px 7px; border: 0; background: transparent;
      color: var(--azul); font-size: 25px; cursor: pointer;
    }
    .grade-formulario-gestao-catequistas,
    .filtros-gestao-catequistas {
      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px; margin-top: 14px;
    }
    .filtros-gestao-catequistas {
      padding: 14px; border: 1px solid #c9d9ec; border-radius: 13px;
      background: linear-gradient(180deg, #eef5fc 0%, #f8fbff 100%);
    }
    .filtro-comunidade-gestao-catequistas { grid-column: 1 / -1; }
    .etapas-gestao-catequistas {
      grid-column: 1 / -1; display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px;
    }
    .etapas-gestao-catequistas-titulo {
      grid-column: 1 / -1; margin: 0; color: #26364a; font-weight: 800;
    }
    .acoes-gestao-catequistas { margin-top: 14px; }
    .acoes-gestao-catequistas button { width: 100%; }
    .botao-resumo-lista-catequistas {
      width: 100%; margin: 12px 0 0; padding: 13px 14px;
      border: 1px solid #bfd2e8; border-left: 4px solid #4d8fe8;
      border-radius: 11px; background: #eef5fc; color: var(--azul);
      font-weight: 800; text-align: left; cursor: pointer;
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
    }
    .botao-resumo-lista-catequistas:hover,
    .botao-resumo-lista-catequistas:focus-visible {
      background: #e3eef9; outline: none;
    }
    .seta-resumo-lista-catequistas {
      font-size: 22px; transition: transform .2s ease;
    }
    .botao-resumo-lista-catequistas[aria-expanded="true"] .seta-resumo-lista-catequistas {
      transform: rotate(180deg);
    }
    .campo-gestao-catequista { min-width: 0; }
    .campo-gestao-catequista-largo { grid-column: 1 / -1; }
    .campo-gestao-catequista label {
      display: block; margin: 0 0 6px; color: #26364a; font-weight: 800;
    }
    .campo-gestao-catequista .campo { margin: 0; }
    .acoes-formulario-gestao-catequistas { display: flex; gap: 10px; margin-top: 14px; }
    .acoes-formulario-gestao-catequistas button { flex: 1; margin: 0; }
    .lista-gestao-catequistas { display: grid; gap: 10px; margin-top: 12px; }
    .lista-gestao-catequistas[hidden] { display: none !important; }
    .cartao-gestao-catequista {
      padding: 14px; border: 1px solid #cad9ea; border-left: 4px solid #4d8fe8;
      border-radius: 12px; background: #f8fbff; box-shadow: 0 3px 10px rgba(11,47,103,.07);
    }
    .cartao-gestao-catequista.inativo { border-left-color: #9aa5b3; background: #f5f6f8; }
    .cartao-gestao-catequista-topo {
      display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
    }
    .cartao-gestao-catequista-topo > div {
      flex: 1 1 auto;
      min-width: 0;
    }
    .cartao-gestao-catequista h3 { margin: 0 0 4px; color: var(--azul); font-size: 16px; }
    .cartao-gestao-catequista h3,
    .cartao-gestao-catequista p {
      overflow-wrap: anywhere;
      word-break: normal;
    }
    .cartao-gestao-catequista p { margin: 3px 0; color: var(--cinza); font-size: 12px; }
    .cartao-gestao-catequista-codigo {
      display: inline-block; margin-top: 7px; padding: 5px 8px; border-radius: 8px;
      background: #e8f1fb; color: var(--azul); font-size: 11px; font-weight: 800;
    }
    .cartao-gestao-catequista-editar {
      width: auto; min-width: 82px; margin: 0; padding: 8px 11px;
      border: 1px solid var(--azul); border-radius: 9px; background: #fff;
      color: var(--azul); font-weight: 800; cursor: pointer;
    }
    @media (max-width: 560px) {
      .grade-formulario-gestao-catequistas,
      .filtros-gestao-catequistas { grid-template-columns: 1fr; }
      .campo-gestao-catequista-largo { grid-column: auto; }
      .acoes-formulario-gestao-catequistas { flex-direction: column; }
      .cartao-gestao-catequista {
        width: 100%;
        max-width: 100%;
        padding: 14px;
        overflow: hidden;
      }
      .cartao-gestao-catequista-topo {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
      }
      .cartao-gestao-catequista-editar {
        width: 100%;
        min-width: 0;
        padding: 11px 14px;
        align-self: stretch;
      }
    }

    /* Frequência: um único cartão, sem painéis recolhíveis */
    #paginaRelatorioFrequencia .botao-cartao-frequencia,
    #paginaRelatorioFrequencia .botao-expandir-relatorio-frequencia {
      display: none !important;
    }
    #paginaRelatorioFrequencia #conteudoPesquisaFrequencia[hidden],
    #paginaRelatorioFrequencia #conteudoPrepararRelatorioFrequencia[hidden] {
      display: block !important;
    }
    #paginaRelatorioFrequencia .cartao-opcao-frequencia,
    #paginaRelatorioFrequencia .painel-preparar-relatorio-frequencia,
    #paginaRelatorioFrequencia .conteudo-cartao-frequencia,
    #paginaRelatorioFrequencia .conteudo-preparar-relatorio-frequencia,
    #paginaRelatorioFrequencia .filtro-relatorio-turma {
      border: 0 !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      background: transparent !important;
    }
    #paginaRelatorioFrequencia .cartao-opcao-frequencia,
    #paginaRelatorioFrequencia .painel-preparar-relatorio-frequencia {
      margin: 14px 0 0 !important;
      padding: 14px 0 0 !important;
      border-top: 1px solid #bfd0e5 !important;
    }
    #paginaRelatorioFrequencia .conteudo-cartao-frequencia,
    #paginaRelatorioFrequencia .conteudo-preparar-relatorio-frequencia {
      padding: 0 !important;
    }
    #paginaRelatorioFrequencia .painel-preparar-relatorio-frequencia {
      display: none !important;
    }
    .controle-relatorio-multiplo {
      margin-top: 14px;
      padding-top: 14px;
      border-top: 1px solid #bfd0e5;
    }
    .botoes-tipo-relatorio,
    .opcoes-relatorio-multiplo {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin: 8px 0 14px;
    }
    .botoes-tipo-relatorio button,
    .opcoes-relatorio-multiplo button {
      margin: 0;
      padding: 9px 13px;
      border: 1px solid #bfd0e5;
      border-radius: 9px;
      background: #f7faff;
      color: var(--azul);
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
      min-height: 42px;
      width: 100%;
      text-align: center;
    }
    .botoes-tipo-relatorio button.ativo,
    .opcoes-relatorio-multiplo button.ativo {
      border-color: var(--azul);
      background: var(--azul);
      color: #fff;
    }
    #botaoGerarRelatorioMultiplo { margin-top: 8px; }
    .botao-recolher-resultado-relatorio {
      display: none;
      position: sticky;
      bottom: 10px;
      z-index: 5;
      width: 100%;
      margin: 14px 0 8px;
      padding: 10px 14px;
      border: 1px solid var(--azul);
      border-radius: 9px;
      background: #fff9ec;
      color: var(--azul);
      font-weight: 800;
      cursor: pointer;
    }
    .botao-recolher-resultado-relatorio.visivel { display: block; }
    #resultadoRelatorioFrequencia.lista-recolhida > *:not(.resumo-frequencia-grid) {
      display: none !important;
    }

    @media print {
      @page { size: A4 portrait; margin: 9mm; }
      * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      body.modo-impressao-relatorio {
        background: #fff;
        color: #111;
      }
      body.modo-impressao-relatorio .conteudo {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
      }
      body.modo-impressao-relatorio header,
      body.modo-impressao-relatorio footer,
      body.modo-impressao-relatorio #usuarioLogado,
      body.modo-impressao-relatorio .botao-voltar {
        display: none !important;
      }
      body.modo-impressao-relatorio .pagina {
        display: none !important;
      }
      body.modo-impressao-relatorio.impressao-frequencia #paginaRelatorioFrequencia {
        display: block !important;
        width: 100% !important;
        max-width: none;
        margin: 0;
        padding: 0;
      }
      body.modo-impressao-relatorio.impressao-sacramentos #paginaRelatorioSacramentos {
        display: block !important;
        max-width: none;
        margin: 0;
        padding: 0;
      }
      body.modo-impressao-relatorio #paginaRelatorioSacramentos .card {
        max-width: none;
        margin: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
      }
      body.modo-impressao-relatorio #paginaRelatorioSacramentos .card > * {
        display: none !important;
      }
      body.modo-impressao-relatorio #paginaRelatorioSacramentos .card >
        .cabecalho-impressao-relatorio,
      body.modo-impressao-relatorio #paginaRelatorioSacramentos .card >
        #resultadoRelatorioSacramentos {
        display: block !important;
        width: 100%;
      }
      body.modo-impressao-relatorio #resultadoRelatorioSacramentos > * {
        display: none !important;
      }
      body.modo-impressao-relatorio #resultadoRelatorioSacramentos >
        .relatorio-impressao-enxuto {
        display: block !important;
      }
      body.modo-impressao-relatorio #paginaRelatorioFrequencia .card {
        width: 100% !important;
        max-width: none;
        margin: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
      }
      body.modo-impressao-relatorio #paginaRelatorioFrequencia .card > * {
        display: none !important;
      }
      body.modo-impressao-relatorio #paginaRelatorioFrequencia .card >
        .cabecalho-impressao-relatorio,
      body.modo-impressao-relatorio #paginaRelatorioFrequencia .card >
        #resultadoRelatorioFrequencia {
        display: block !important;
        width: 100%;
        max-width: none !important;
      }
      .cabecalho-impressao-relatorio {
        margin-bottom: 9px;
        padding-bottom: 7px;
        border-bottom: 2px solid #0b2f67;
        text-align: center;
      }
      .cabecalho-impressao-relatorio h1 {
        margin: 0 0 3px;
        color: #0b2f67;
        font-size: 19px;
      }
      .cabecalho-impressao-relatorio p {
        margin: 2px 0;
        font-size: 11px;
      }
      body.modo-impressao-relatorio #resultadoRelatorioFrequencia > * {
        display: none !important;
      }
      body.modo-impressao-relatorio:not(.impressao-frequencia-completa)
        #resultadoRelatorioFrequencia > .relatorio-impressao-enxuto {
        display: block !important;
      }
      body.modo-impressao-relatorio.impressao-frequencia-completa
        #resultadoRelatorioFrequencia > .relatorio-impressao-completo {
        display: block !important;
      }
      .resumo-impressao-enxuto {
        margin: 0 0 7px;
        font-size: 10px;
        text-align: center;
      }
      .tabela-frequencia-enxuta {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: 11px;
      }
      .tabela-frequencia-enxuta th,
      .tabela-frequencia-enxuta td {
        padding: 4px 6px;
        border: 1px solid #b9c4d1;
        line-height: 1.15;
      }
      .tabela-frequencia-enxuta th {
        background: #eaf0f7;
        color: #0b2f67;
        text-align: left;
      }
      .tabela-frequencia-enxuta th:nth-child(2),
      .tabela-frequencia-enxuta th:nth-child(3),
      .tabela-frequencia-enxuta td:nth-child(2),
      .tabela-frequencia-enxuta td:nth-child(3) {
        width: 17%;
        text-align: center;
      }
      .tabela-frequencia-enxuta tr {
        break-inside: avoid;
        page-break-inside: avoid;
      }
      .tabela-frequencia-enxuta.geral {
        table-layout: auto;
        font-size: 9px;
      }
      .tabela-frequencia-enxuta.geral th,
      .tabela-frequencia-enxuta.geral td {
        width: auto !important;
        padding: 4px;
      }
      .relatorio-impressao-enxuto .grade-turmas-frequencia {
        grid-template-columns: repeat(2, 1fr);
        gap: 7px;
      }
      .relatorio-impressao-enxuto .cartao-turma-frequencia {
        padding: 8px 10px;
        border-radius: 8px;
        box-shadow: none;
        break-inside: avoid;
        page-break-inside: avoid;
      }
      .relatorio-impressao-enxuto .cartao-turma-frequencia h4 {
        font-size: 11px;
      }
      .relatorio-impressao-enxuto .cartao-turma-frequencia p {
        margin: 2px 0;
        font-size: 9px;
      }
      .relatorio-impressao-enxuto .cartao-turma-frequencia .percentual-turma {
        margin-top: 3px;
        font-size: 13px;
      }
      .bloco-turma-impressao {
        margin: 0 0 12px;
        break-inside: auto;
      }
      .bloco-turma-impressao h4 {
        margin: 0;
        padding: 6px 8px;
        background: #0b2f67;
        color: #fff;
        font-size: 11px;
      }
      .bloco-turma-impressao .subtitulo-turma-impressao {
        margin: 0;
        padding: 4px 8px;
        background: #eaf0f7;
        font-size: 9px;
      }
      .bloco-turma-impressao thead { display: table-header-group; }
      .tabela-sacramentos-impressao {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: 10px;
      }
      .tabela-sacramentos-impressao th,
      .tabela-sacramentos-impressao td {
        padding: 4px 6px;
        border: 1px solid #b9c4d1;
      }
      .tabela-sacramentos-impressao th {
        background: #eaf0f7;
        color: #0b2f67;
        text-align: left;
      }
      .tabela-sacramentos-impressao th:not(:first-child),
      .tabela-sacramentos-impressao td:not(:first-child) {
        width: 17%;
        text-align: center;
      }
      .tabela-sacramentos-impressao tr { break-inside: avoid; page-break-inside: avoid; }
      .relatorio-impressao-completo {
        width: 100% !important;
        font-size: 9px;
      }
      .cabecalho-turma-completo {
        margin: 0 0 5px;
        padding: 5px 7px;
        background: #0b2f67;
        color: #fff;
        break-after: avoid;
      }
      .cabecalho-turma-completo h4 { margin: 0 0 2px; font-size: 11px; }
      .cabecalho-turma-completo p { margin: 0; font-size: 8px; }
      .tabela-frequencia-completa {
        width: 100%;
        margin: 0 0 8px;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: 11px;
      }
      .tabela-frequencia-completa th,
      .tabela-frequencia-completa td {
        padding: 3px 2px;
        border: 1px solid #aebdce;
        text-align: center;
        overflow-wrap: anywhere;
      }
      .tabela-frequencia-completa th { background: #eaf0f7; color: #0b2f67; }
      .tabela-frequencia-completa th:first-child,
      .tabela-frequencia-completa td:first-child { width: 22%; text-align: left; }
      .tabela-frequencia-completa .coluna-nascimento { width: 9%; }
      .tabela-frequencia-completa .coluna-telefone { width: 12%; }
      .tabela-frequencia-completa .marca-p { color: #17643b; font-weight: 800; }
      .tabela-frequencia-completa .marca-f { color: #a11c1c; font-weight: 800; }
      .tabela-frequencia-completa tr { break-inside: avoid; page-break-inside: avoid; }
    }
    #paginaFormularioAcompanhamento .item-historico-contato:not(:first-child) {
      display: none;
    }
    .bloco-contato-familia,
    .bloco-novo-acompanhamento {
      margin-top: 22px;
      padding: 16px;
      border: 1px solid var(--borda);
      border-radius: 14px;
      background: var(--branco);
    }
    .bloco-contato-familia {
      border-left: 5px solid #168f54;
    }
    .bloco-novo-acompanhamento {
      border-left: 5px solid var(--dourado);
    }
    .bloco-contato-familia h3,
    .bloco-novo-acompanhamento h3 {
      margin: 0 0 12px;
      color: var(--azul);
    }
    .cartao-aviso {
      padding: 16px;
      margin-bottom: 12px;
      border: 1px solid var(--borda);
      border-left: 5px solid var(--azul-claro);
      border-radius: 14px;
      background: var(--branco);
      box-shadow: 0 3px 9px rgba(15, 35, 65, .06);
    }
    .cartao-aviso.destaque {
      border-left-color: var(--dourado);
      background: #fffdf8;
    }
    .cartao-aviso.passado {
      opacity: .76;
      border-left-color: #98a2b3;
    }
    .aviso-topo-linha {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
    }
    .cartao-aviso h4 {
      margin: 0;
      color: var(--azul);
      font-size: 17px;
    }
    .aviso-data {
      white-space: nowrap;
      color: #8a5a0a;
      font-size: 13px;
      font-weight: 800;
    }
    .aviso-metadados {
      margin: 7px 0;
      color: var(--cinza);
      font-size: 12px;
      line-height: 1.45;
    }
    .aviso-mensagem {
      margin: 8px 0 0;
      line-height: 1.5;
      color: var(--texto);
      white-space: pre-line;
    }

    /* =========================
       CAMPOS
    ========================= */

    label {
      color: #263546;
    }

    .campo {
      width: 100%;
      padding: 13px;
      margin-top: 7px;
      margin-bottom: 12px;
      border: 1px solid #d7dde5;
      border-radius: 11px;
      font-size: 16px;
      background: #fff;
      outline: none;
    }

    .campo:focus {
      border-color: var(--dourado);
      box-shadow: 0 0 0 3px rgba(201,148,50,.12);
    }

    .resumo {
      background:
        linear-gradient(
          135deg,
          #f1f4f8,
          #f8f9fb
        );
      border-left: 4px solid var(--azul);
      border-radius: 11px;
      padding: 13px;
      margin: 12px 0;
    }

    .resumo p {
      margin: 4px 0;
      font-size: 14px;
    }

    /* =========================
       MINHA TURMA
    ========================= */

    .aluno {
      border: 1px solid var(--borda);
      border-radius: 12px;
      padding: 14px;
      margin-top: 10px;
      background: #fff;
    }

    .aluno h3 {
      margin: 0;
      color: var(--azul);
      font-size: 16px;
    }

    .aluno p {
      margin: 4px 0;
      font-size: 14px;
    }

    .botao-editar-cadastro {
      flex: 0 0 auto;
      margin: 0;
      padding: 8px 12px;
      border: 1px solid #bfd0e5;
      border-radius: 9px;
      background: #eef4fb;
      color: var(--azul);
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    .botao-editar-cadastro:hover { background: #e1ecf8; }
    .aluno-cabecalho {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 9px;
    }
    .editor-cadastro-inline {
      display: none;
      margin-top: 14px;
      padding: 14px;
      border: 1px solid #d7b45b;
      border-left: 5px solid var(--dourado);
      border-radius: 12px;
      background: #fffbf1;
    }
    .editor-cadastro-inline.ativo { display: block; }
    .editor-cadastro-inline h4 { margin: 0 0 10px; color: var(--azul); }
    .acoes-editor-cadastro { display: flex; gap: 10px; margin-top: 14px; }
    .acoes-editor-cadastro button { flex: 1; }
    .acoes-editor-cadastro .botao-principal,
    .acoes-editor-cadastro .botao-secundario {
      margin-top: 0;
      padding: 11px 12px;
      font-size: 14px;
    }
    .aluno.atualizado {
      border-color: #2d8b63;
      box-shadow: 0 0 0 3px rgba(45, 139, 99, .13);
      transition: box-shadow .25s ease, border-color .25s ease;
    }

    /* Edição resumida exclusiva de Minha Turma */
    .acoes-minha-turma-cabecalho {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 7px;
    }
    .botao-editar-resumo-turma,
    .botao-informacao-pastoral-turma {
      margin: 0;
      padding: 8px 11px;
      border: 1px solid #bfd0e5;
      border-radius: 9px;
      background: #eef4fb;
      color: var(--azul);
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }
    .botao-informacao-pastoral-turma {
      border-color: #d8b45b;
      background: #fff8e5;
      color: #77500c;
    }
    .alerta-pastoral-minha-turma {
      display: inline-flex;
      margin: 2px 0 8px;
      padding: 5px 9px;
      border: 1px solid #d8b45b;
      border-radius: 999px;
      background: #fff4d6;
      color: #704900;
      font-size: 12px;
      font-weight: 800;
    }
    #listaConsultaTurma .aluno {
      transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
    }
    #listaConsultaTurma .aluno.expandido-minha-turma {
      border-color: var(--azul);
      border-left: 5px solid var(--azul);
      box-shadow: 0 5px 18px rgba(11, 47, 103, .12);
      background: #fff9ec;
    }
    #listaConsultaTurma .aluno.expandido-minha-turma .area-editor-minha-turma {
      margin-top: 14px;
      padding-top: 14px;
      border-top: 1px solid #bfd0e5;
    }
    .editor-minha-turma-inline {
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
    }
    .editor-minha-turma-inline h4 { margin: 0 0 10px; color: var(--azul); }
    .aviso-privacidade-pastoral {
      margin: 8px 0 12px;
      padding: 9px 11px;
      border-radius: 9px;
      background: #eef4fb;
      color: #29465f;
      font-size: 12px;
      line-height: 1.45;
    }
    .historico-pastoral-turma { margin-top: 12px; }
    .historico-pastoral-turma > h4 { margin: 0 0 8px; color: var(--azul); font-size: 14px; }
    .ocorrencia-pastoral-turma {
      margin-top: 8px;
      padding: 11px;
      border: 1px solid #ead9ad;
      border-left: 4px solid var(--dourado);
      border-radius: 10px;
      background: #fffdf7;
    }
    .ocorrencia-pastoral-topo { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
    .ocorrencia-pastoral-turma p { white-space: pre-wrap; overflow-wrap: anywhere; }
    .ocorrencia-pastoral-meta { color: var(--cinza); font-size: 11px !important; }
    .ocorrencia-pastoral-acoes { display: flex; gap: 6px; flex: 0 0 auto; }
    .ocorrencia-pastoral-acoes button {
      margin: 0; padding: 5px 8px; border: 1px solid #c8d4e2; border-radius: 7px;
      background: #fff; color: var(--azul); font-size: 11px; font-weight: 800; cursor: pointer;
    }
    .ocorrencia-pastoral-acoes .excluir { color: #8a2d2d; border-color: #e3bcbc; }
    .acoes-editor-minha-turma { display: flex; gap: 10px; margin-top: 14px; }
    .acoes-editor-minha-turma button { flex: 1; }
    @media (max-width: 520px) {
      .aluno-cabecalho-minha-turma {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        gap: 10px;
      }
      .aluno-cabecalho-minha-turma h3 {
        margin: 0;
        overflow-wrap: anywhere;
      }
      .acoes-minha-turma-cabecalho {
        display: grid;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
        width: 100%;
        gap: 8px;
      }
      .acoes-minha-turma-cabecalho .botao-informacao-pastoral-turma,
      .acoes-minha-turma-cabecalho .botao-editar-resumo-turma {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 42px;
        padding: 8px 7px;
        line-height: 1.15;
        text-align: center;
        white-space: normal;
      }
      .acoes-editor-minha-turma { flex-direction: column; }
    }

    /* =========================
       CHAMADA
    ========================= */

    .chamada-item {
      background: #fff;
      border: 1px solid var(--borda);
      border-radius: 12px;
      padding: 14px;
      margin-top: 10px;
    }

    .chamada-nome {
      font-weight: bold;
      font-size: 16px;
      margin-bottom: 12px;
      color: #25354a;
    }

    .botoes-status {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .btn-status {
      min-width: 0;
      min-height: 72px;
      padding: 9px 5px;
      border: 1px solid #ccd2da;
      border-radius: 9px;
      background: #f7f8fa;
      font-size: 14px;
      font-weight: bold;
      line-height: 1.08;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
      text-align: center;
      white-space: normal;
    }

    .btn-status-icone {
      display: block;
      height: 20px;
      font-size: 22px;
      line-height: 20px;
      font-weight: 900;
    }

    .btn-status-texto {
      display: block;
      min-height: 28px;
      line-height: 14px;
      text-transform: uppercase;
    }

    .btn-status.presente-ativo {
      background: var(--verde);
      border: 2px solid var(--verde-borda);
    }

    .btn-status.falta-ativo {
      background: var(--vermelho);
      border: 2px solid var(--vermelho-borda);
    }

    .btn-status.justificada-ativo {
      background: #fff0c7;
      border: 2px solid #c88613;
      color: #704500;
    }

    @media (max-width: 560px) {
      .botoes-status { gap: 5px; }
      .btn-status { min-height: 76px; padding: 8px 3px; font-size: 11.5px; }
      .btn-status-texto { line-height: 13px; }
    }

    .contador {
      margin: 14px 0;
      padding: 12px;
      background: var(--azul);
      color: white;
      border-radius: 10px;
      text-align: center;
      font-weight: bold;
    }

    .seletor-data-chamada { margin: 8px 0 16px; }
    .cartao-data-chamada {
      width: 100%;
      min-height: 82px;
      padding: 13px 15px;
      border: 2px solid #d8e2ee;
      border-radius: 14px;
      background: #f8fbff;
      color: var(--azul);
      display: grid;
      grid-template-columns: 46px minmax(0, 1fr) 24px;
      align-items: center;
      gap: 12px;
      text-align: left;
      cursor: pointer;
    }
    .cartao-data-chamada:not(:disabled):hover,
    .cartao-data-chamada.selecionada {
      border-color: var(--dourado);
      background: #fff9eb;
    }
    .cartao-data-chamada.selecionada.automatica {
      border-color: #2f9e58;
      background: #eefaf2;
    }
    .cartao-data-chamada.selecionada.automatica .data-chamada-icone {
      background: #dff4e6;
    }
    .cartao-data-chamada:disabled { cursor: wait; opacity: .76; }
    .data-chamada-icone {
      width: 44px;
      height: 44px;
      border-radius: 12px;
      display: grid;
      place-items: center;
      background: #fff0c8;
      font-size: 24px;
    }
    .data-chamada-textos { min-width: 0; }
    .data-chamada-textos small {
      display: block;
      margin-bottom: 4px;
      color: #66758a;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .data-chamada-textos strong {
      display: block;
      font-size: 16px;
      line-height: 1.3;
    }
    .data-chamada-seta { font-size: 22px; color: #bd8514; text-align: right; }
    .botao-alterar-data-chamada {
      display: block;
      margin: 8px auto 0;
      padding: 8px 12px;
      border: 0;
      background: transparent;
      color: var(--azul);
      font-size: 13px;
      font-weight: 800;
      text-decoration: underline;
      cursor: pointer;
    }
    .data-chamada-manual {
      margin-top: 8px;
      padding: 12px;
      border: 1px solid #d8e2ee;
      border-radius: 12px;
      background: #fff;
    }
    .data-chamada-manual[hidden] { display: none !important; }
    .data-chamada-manual label { display: block; margin-bottom: 7px; }
    .data-chamada-aviso {
      display: block;
      min-height: 18px;
      margin-top: 7px;
      color: #64748b;
      font-size: 12px;
      line-height: 1.35;
    }

    /* =========================
       BOTÕES
    ========================= */

    .botao-voltar {
      border: none;
      background: transparent;
      padding: 4px 0 14px;
      color: var(--azul);
      font-size: 15px;
      font-weight: bold;
      cursor: pointer;
    }

    .botao-principal {
      width: 100%;
      padding: 14px;
      margin-top: 12px;
      border: none;
      border-radius: 11px;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
      background: var(--azul);
      color: white;
    }

    .botao-principal:disabled {
      background: #d7dce3;
      color: #7b828b;
      cursor: not-allowed;
    }

    .botao-secundario {
      width: 100%;
      padding: 14px;
      margin-top: 10px;
      border: 1px solid var(--azul);
      border-radius: 11px;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
      background: #fff;
      color: var(--azul);
    }

    /* =========================
       AVISOS / REVISÃO
    ========================= */

    .aviso {
      margin-top: 14px;
      padding: 12px;
      border-radius: 10px;
      background: #fff5dc;
      border-left: 4px solid var(--dourado);
      font-size: 14px;
      line-height: 1.4;
    }

    .lista-revisao {
      padding-left: 22px;
    }

    .lista-revisao li {
      margin-bottom: 7px;
    }

    .status {
      margin-top: 10px;
    }

    /* =========================
       RODAPÉ
    ========================= */

    .rodape {
      text-align: center;
      font-size: 12px;
      color: #7d8490;
      padding: 18px 20px 28px;
    }

    .rodape strong {
      color: var(--azul);
    }

    /* =========================
       CELULAR
    ========================= */

    @media (max-width: 600px) {
      .acoes-editor-cadastro { flex-direction: column; }
      .acoes-editor-acompanhamento { flex-direction: column; }
      .menu-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}
      #gestaoCronogramaMeusEncontros {
        grid-template-columns: 1fr;
      }
      .conteudo {
        padding: 12px;
      }

      .topo {
        padding: 14px 12px 16px;
      }

      .logo-box {
  width: 58px;
  height: 58px;
  flex-basis: 58px;
  padding: 2px;
}

.titulo-topo h1 {
  font-size: 21px;
  line-height: 1.1;
  margin: 0;
}

.titulo-topo p {
  font-size: 11px;
  line-height: 1.2;
  margin-top: 4px;
}

      .menu-card {
        padding: 16px;
      }

      .menu-icone {
        min-width: 44px;
        height: 44px;
        font-size: 22px;
      }

      .botoes-status {
        gap: 6px;
      }

      .btn-status {
        min-height: 76px;
        padding: 8px 3px;
        font-size: 11.5px;
      }
    }
    .modal-confirmacao-chamada {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 10000;
      padding: 20px;
      background: rgba(4, 25, 55, .58);
      align-items: center;
      justify-content: center;
    }
    .modal-confirmacao-chamada.ativo { display: flex; }
    .modal-progresso-chamada {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 12000;
      padding: 20px;
      background: rgba(4, 25, 55, .72);
      align-items: center;
      justify-content: center;
      cursor: wait;
    }
    .modal-progresso-chamada.ativo { display: flex; }
    .conteudo-progresso-chamada {
      width: min(100%, 460px);
      padding: 26px;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 18px 45px rgba(0, 24, 58, .32);
      text-align: center;
    }
    .conteudo-progresso-chamada h2 {
      margin: 0 0 8px;
      color: var(--azul);
      font-size: 22px;
    }
    .conteudo-progresso-chamada p {
      margin: 0 0 18px;
      color: var(--cinza);
      line-height: 1.45;
    }
    .trilho-progresso-chamada {
      height: 18px;
      overflow: hidden;
      border-radius: 999px;
      background: #e7edf5;
      box-shadow: inset 0 1px 3px rgba(0, 35, 76, .12);
    }
    .barra-progresso-chamada {
      width: 0;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--dourado), #e5b84d);
      transition: width .35s ease;
    }
    .percentual-progresso-chamada {
      display: block;
      margin-top: 10px;
      color: var(--azul);
      font-size: 21px;
      font-weight: 800;
    }
    .aviso-progresso-chamada {
      display: block;
      margin-top: 12px;
      color: #8a5b00;
      font-size: 12px;
      font-weight: 700;
    }
    .conteudo-confirmacao-chamada {
      width: min(100%, 480px);
      padding: 24px;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 18px 45px rgba(0, 24, 58, .28);
    }
    .icone-confirmacao-chamada {
      width: 64px;
      height: 64px;
      margin: 0 auto 12px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: #e6f6ed;
      color: #197444;
      font-size: 34px;
      font-weight: 800;
    }
    .conteudo-confirmacao-chamada h2 {
      margin: 0 0 8px;
      text-align: center;
      color: var(--azul);
    }
    .conteudo-confirmacao-chamada > p {
      margin: 0 0 16px;
      text-align: center;
      color: var(--cinza);
    }

    .pesquisa-chamadas-anteriores {
      margin: 18px 0;
      padding: 16px;
      border: 1px solid var(--borda);
      border-left: 4px solid var(--dourado);
      border-radius: 12px;
      background: #fffaf0;
    }
    .pesquisa-chamadas-anteriores h3 { margin: 0 0 6px; color: var(--azul); }
    .pesquisa-chamadas-anteriores p { margin: 0 0 12px; color: var(--cinza); }
    .periodo-chamadas-anteriores {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .resultado-chamada-anterior {
      margin-top: 12px;
      padding: 14px;
      border: 1px solid var(--borda);
      border-radius: 10px;
      background: var(--branco);
    }
    .titulo-chamada-detalhe {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin: 0 0 8px;
      padding: 0 0 10px;
      border: 0;
      border-bottom: 1px solid var(--borda);
      background: transparent;
      color: var(--azul);
      font: inherit;
      font-weight: 800;
      text-align: left;
      cursor: pointer;
    }
    .titulo-chamada-detalhe:hover,
    .titulo-chamada-detalhe:focus-visible { color: #9a6100; }
    .titulo-chamada-detalhe span:last-child {
      flex: 0 0 auto;
      font-size: 12px;
      color: #9a6100;
    }
    .resultado-chamada-anterior p { margin: 5px 0; color: var(--texto); }
    .resultado-chamada-anterior .localizacao-planilha {
      margin-top: 9px;
      color: var(--cinza);
      font-size: 12px;
    }
    .modal-detalhes-chamada {
      position: fixed;
      inset: 0;
      z-index: 3000;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 18px;
      background: rgba(5, 28, 61, .66);
    }
    .modal-detalhes-chamada.aberto { display: flex; }
    .cartao-detalhes-chamada {
      width: min(760px, 100%);
      max-height: calc(100vh - 36px);
      overflow: auto;
      border-radius: 16px;
      background: var(--branco);
      box-shadow: 0 22px 70px rgba(0, 0, 0, .28);
    }
    .cabecalho-detalhes-chamada {
      position: sticky;
      top: 0;
      z-index: 1;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 18px 20px;
      border-bottom: 3px solid var(--dourado);
      background: var(--azul);
      color: #fff;
    }
    .cabecalho-detalhes-chamada h2 { margin: 0 0 4px; font-size: 21px; }
    .cabecalho-detalhes-chamada p { margin: 0; opacity: .9; }
    .fechar-detalhes-chamada {
      width: 38px;
      height: 38px;
      flex: 0 0 38px;
      border: 1px solid rgba(255,255,255,.55);
      border-radius: 50%;
      background: transparent;
      color: #fff;
      font-size: 24px;
      cursor: pointer;
    }
    .corpo-detalhes-chamada { padding: 20px; }
    .metadados-detalhes-chamada {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px 18px;
      margin-bottom: 16px;
    }
    .metadados-detalhes-chamada p { margin: 0; }
    .resumo-detalhes-chamada { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
    .resumo-detalhes-chamada span {
      padding: 7px 11px;
      border-radius: 999px;
      background: #eef4fb;
      color: var(--azul);
      font-weight: 800;
    }
    .listas-detalhes-chamada {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
      gap: 14px;
    }
    .lista-presenca-chamada {
      padding: 14px;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: #f8fafc;
    }
    .lista-presenca-chamada h3 { margin: 0 0 10px; color: var(--azul); font-size: 17px; }
    .lista-presenca-chamada ol { margin: 0; padding-left: 24px; }
    .lista-presenca-chamada li { margin: 6px 0; }
    .lista-presenca-vazia { margin: 0; color: var(--cinza); font-style: italic; }
    .edicao-chamada-linha {
      padding: 12px 0;
      border-bottom: 1px solid var(--borda);
    }
    .edicao-chamada-linha strong { display: block; margin-bottom: 8px; }
    .edicao-chamada-opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .edicao-chamada-opcoes label { cursor: pointer; }
    .edicao-chamada-opcoes input { position: absolute; opacity: 0; }
    .edicao-chamada-opcoes span {
      min-height: 46px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 6px 3px;
      border: 1px solid #cbd5e1;
      border-radius: 9px;
      text-align: center;
      font-size: 12px;
      font-weight: 800;
    }
    .edicao-chamada-opcoes input:checked + span { border: 2px solid var(--azul); background: #e9f1fc; }
    .edicao-chamada-opcoes input:focus-visible + span { outline: 2px solid var(--dourado); }
    .edicao-chamada-observacao { display: block; margin-top: 15px; font-weight: 800; }
    .edicao-chamada-observacao textarea { width: 100%; margin-top: 8px; }
    .status-edicao-chamada { min-height: 20px; padding: 0 20px; color: #9b2424; }
    .acoes-detalhes-chamada {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      padding: 0 20px 20px;
    }
    body.modal-chamada-aberto { overflow: hidden; }
    @media (max-width: 560px) {
      .periodo-chamadas-anteriores { grid-template-columns: 1fr; }
      .modal-detalhes-chamada { padding: 8px; align-items: flex-end; }
      .cartao-detalhes-chamada { max-height: calc(100vh - 16px); border-radius: 16px 16px 8px 8px; }
      .metadados-detalhes-chamada,
      .listas-detalhes-chamada { grid-template-columns: 1fr; }
      .acoes-detalhes-chamada { flex-direction: column; }
      .acoes-detalhes-chamada button { width: 100%; }
    }
    .menu-chamadas-interno { display: grid; gap: 12px; margin-top: 18px; }
    #gestaoCronogramaMeusEncontros {
      width: 100%;
      grid-template-columns: minmax(0, 1fr);
      margin-top: 0;
    }
    #gestaoCronogramaMeusEncontros .menu-card,
    #gestaoCronogramaMeusEncontros .menu-info { min-width: 0; }
    #gestaoCronogramaMeusEncontros .menu-info h3,
    #gestaoCronogramaMeusEncontros .menu-info p { overflow-wrap: anywhere; }
    @media (max-width: 600px) {
      #gestaoCronogramaMeusEncontros {
        grid-template-columns: minmax(0, 1fr);
      }
      #gestaoCronogramaMeusEncontros .menu-card {
        width: 100%;
        height: auto;
      }
    }
    .icone-dourado { background: var(--dourado-claro); color: #8a5a00; font-weight: 900; }
    .filtros-chamadas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .cartao-registro-chamada {
      margin-top: 12px;
      padding: 14px;
      border: 1px solid var(--borda);
      border-radius: 12px;
      background: var(--branco);
    }
    .cartao-registro-chamada h3 { margin: 0 0 8px; color: var(--azul); }
    .cartao-registro-chamada p { margin: 5px 0; }
    .selo-situacao {
      display: inline-block;
      padding: 4px 9px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 800;
      background: var(--dourado-claro);
      color: var(--azul);
      border: 0;
      cursor: pointer;
    }
    .selo-situacao.suspenso { background: var(--vermelho); color: #8b2525; }
    .gestao-cronograma-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
    .opcoes-encontro-cronograma {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid #e2e8f0;
    }
    .opcoes-encontro-cronograma .botao-secundario {
      width: auto;
      min-width: 76px;
      min-height: 34px;
      margin: 0;
      padding: 6px 10px;
      font-size: 12px;
      line-height: 1.1;
    }
    @media (max-width: 520px) {
      .opcoes-encontro-cronograma .botao-secundario {
        min-width: 70px;
        padding: 6px 8px;
      }
    }
    .cronograma-calendario-topo {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin: 16px 0 10px;
    }
    .cronograma-calendario-topo h3 { margin: 0; color: var(--azul); text-transform: capitalize; }
    .cronograma-calendario-nav {
      width: 40px; height: 36px; padding: 0; border: 1px solid #cbd5e1;
      border-radius: 9px; background: #fff; color: var(--azul); font-size: 20px; cursor: pointer;
    }
    .cronograma-calendario-semana,
    .cronograma-calendario-grade {
      display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px;
    }
    .cronograma-calendario-semana span {
      padding: 7px 2px; text-align: center; color: #64748b; font-size: 11px; font-weight: 800;
    }
    .cronograma-dia {
      position: relative; min-height: 58px; padding: 7px 5px; border: 1px solid #e2e8f0;
      border-radius: 10px; background: #f8fafc; color: #64748b; text-align: left;
    }
    button.cronograma-dia { cursor: pointer; }
    .cronograma-dia.com-encontro {
      background: #eef5ff; border-color: #8db4e8; color: var(--azul); font-weight: 800;
    }
    .cronograma-dia.com-encontro:hover { background: #dfeeff; transform: translateY(-1px); }
    .cronograma-dia .numero-dia { display: block; font-size: 14px; }
    .cronograma-dia .quantidade-dia {
      display: block; margin-top: 7px; font-size: 9px; color: #486581; font-weight: 700;
    }
    .cronograma-dia .ponto-status {
      position: absolute; right: 6px; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: #16a34a;
    }
    .cronograma-dia .ponto-status.excecao { background: #d08a00; }
    .modal-cronograma {
      position: fixed; inset: 0; z-index: 10040; display: none; align-items: center;
      justify-content: center; padding: 16px; background: rgba(8,29,58,.52);
    }
    .modal-cronograma.ativo { display: flex; }
    .modal-cronograma-caixa {
      width: min(620px, 100%); max-height: 88vh; overflow: hidden; display: flex;
      flex-direction: column; background: #fff; border-radius: 18px; box-shadow: 0 20px 60px rgba(8,29,58,.28);
    }
    .modal-cronograma-topo { padding: 16px 18px 12px; border-bottom: 1px solid #dbe4ef; }
    .modal-cronograma-topo h3 { margin: 0; color: var(--azul); }
    .modal-cronograma-topo p { margin: 5px 0 0; color: #64748b; font-size: 12px; }
    .modal-cronograma-lista { overflow-y: auto; padding: 10px 18px; }
    .modal-cronograma-item { padding: 10px 0; border-bottom: 1px solid #e2e8f0; }
    .modal-cronograma-item:last-child { border-bottom: 0; }
    .modal-cronograma-item strong { display: block; color: var(--azul); }
    .modal-cronograma-item span { display: block; margin-top: 3px; color: #64748b; font-size: 12px; }
    .modal-cronograma-acoes {
      padding: 12px 18px; border-top: 1px solid #dbe4ef; background: #f8fafc;
      display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 7px;
    }
    .modal-cronograma-acoes .botao-secundario { width: auto; min-width: 82px; margin: 0; padding: 8px 11px; }
    .modal-cronograma-fechar { background: #64748b !important; color: #fff !important; }
    .progressao-resumo { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:12px 0; }
    .progressao-indicador { width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:10px;text-align:center;background:#f8fafc;cursor:pointer;font:inherit;transition:border-color .16s,background .16s,transform .16s; }
    .progressao-indicador:hover,.progressao-indicador:focus-visible{border-color:#2f83d4;background:#edf5ff;outline:none;transform:translateY(-1px)}
    .progressao-indicador.ativo{border-color:var(--azul);background:#e8f2ff;box-shadow:0 0 0 2px rgba(11,55,111,.08)}
    .progressao-filtros-wrapper{position:relative}
    .progressao-suspensa{position:absolute;left:0;right:0;top:100%;z-index:80;margin-top:6px;border:1px solid #b9cce0;border-radius:14px;background:#fff;box-shadow:0 14px 35px rgba(11,55,111,.24);overflow:hidden}
    .progressao-suspensa[hidden]{display:none}
    .progressao-suspensa-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#edf5ff;border-bottom:1px solid #d8e4f0;color:var(--azul)}
    .progressao-suspensa-topo button{border:1px solid #afc3d9;border-radius:8px;background:#fff;color:var(--azul);padding:7px 11px;font-weight:700;cursor:pointer}
    .progressao-suspensa-lista{max-height:390px;overflow:auto}
    .progressao-suspensa-item{padding:11px 14px;border-bottom:1px solid #e5ebf2}
    .progressao-suspensa-item:last-child{border-bottom:0}
    .progressao-suspensa-item strong{color:var(--azul)}
    .progressao-suspensa-item p{margin:3px 0;font-size:13px;color:#43566d}
    .progressao-indicador strong { display:block; color:var(--azul); font-size:20px; }
    .progressao-indicador span { font-size:12px; color:#526276; }
    .progressao-lista { max-height:520px; overflow:auto; border:1px solid #d8e0ea; border-radius:12px; }
    .progressao-item { padding:11px 12px; border-bottom:1px solid #e6ebf1; }
    .progressao-item:last-child { border-bottom:0; }
    .progressao-item-topo { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .progressao-item strong { color:var(--azul); }
    .progressao-item p { margin:3px 0; font-size:13px; }
    .progressao-item select { width:auto; min-width:190px; padding:8px; border:1px solid #b8c5d6; border-radius:8px; }
    @media (max-width:700px) {
      .progressao-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .progressao-item-topo { display:block; }
      .progressao-item select { width:100%; margin-top:8px; }
    }
    body.modal-cronograma-aberto { overflow: hidden; }
    @media (max-width: 560px) {
      .filtros-chamadas { grid-template-columns: 1fr; }
    }
    .dados-confirmacao-chamada {
      padding: 14px;
      border-radius: 12px;
      background: #f4f7fb;
      border-left: 4px solid #228654;
    }
    .dados-confirmacao-chamada p { margin: 5px 0; }
    .acoes-confirmacao-chamada {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 18px;
    }

    .ritos-filtros { display: grid; gap: 12px; margin: 16px 0; }
    .ritos-etapas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .rito-aluno-card {
      border: 1px solid #d9e0ea; border-left: 4px solid var(--azul);
      border-radius: 14px; padding: 14px; margin: 12px 0; background: #fff;
    }
    .rito-aluno-topo { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
    .rito-aluno-topo h3 { margin: 0 0 4px; color: var(--azul); }
    .rito-aluno-topo p { margin: 0; color: var(--cinza); }
    .rito-contador { color: var(--azul); font-weight: 700; white-space: nowrap; }
    .ritos-escudos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    .rito-escudo {
      display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d9e0ea;
      border-radius: 999px; padding: 7px 10px; background: #f6f8fb;
      color: #667085; font-size: 13px; font-weight: 700;
    }
    .rito-escudo::before { content: '🛡️'; filter: grayscale(1); opacity: .45; }
    .rito-escudo.participou { background: #fff4cf; border-color: #d3a229; color: var(--azul); }
    .rito-escudo.participou::before { filter: none; opacity: 1; }
    .rito-escudo.ausente { background: #fff2f0; border-color: #e9aaa3; color: #9c2f25; }
    .rito-escudo.justificado, .rito-escudo.dispensado {
      background: #edf5ff; border-color: #abc9eb; color: #245b91;
    }
    .rito-acoes { margin-top: 12px; display: flex; justify-content: flex-end; }
    .rito-acoes button { width: auto; min-width: 150px; margin: 0; }
    .rito-registro-rapido {
      margin-top: 12px; padding: 12px; border: 1px solid #d9e0ea;
      border-radius: 12px; background: #f8fafc;
    }
    .rito-registro-rapido-topo {
      display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
      margin-bottom: 9px;
    }
    .rito-registro-rapido-topo strong { color: var(--azul); }
    .rito-registro-rapido-topo small { color: var(--cinza); text-align: right; }
    .rito-botoes-rapidos {
      display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px;
    }
    .rito-botao-rapido {
      width: 100%; min-width: 0; margin: 0; padding: 9px 6px;
      border: 1px solid #b9c6d8; border-radius: 9px; background: #fff;
      color: #32465f; font-size: 12px; font-weight: 700; cursor: pointer;
    }
    .rito-botao-rapido.ativo[data-situacao="PARTICIPOU"] {
      background: #e9f8ef; border-color: #228654; color: #176b43;
    }
    .rito-botao-rapido.ativo[data-situacao="AUSENTE"] {
      background: #fff0ee; border-color: #c94b3d; color: #9c2f25;
    }
    .rito-botao-rapido.ativo[data-situacao="JUSTIFICADO"],
    .rito-botao-rapido.ativo[data-situacao="DISPENSADO"] {
      background: #edf5ff; border-color: #3979b9; color: #245b91;
    }
    .rito-botao-rapido:disabled { opacity: .58; cursor: not-allowed; }
    .ritos-salvamento-lote {
      position: sticky; bottom: 10px; z-index: 20; display: none;
      margin: 16px 0; padding: 12px; border: 1px solid #b9c9dc;
      border-radius: 14px; background: rgba(255,255,255,.97);
      box-shadow: 0 8px 24px rgba(7,51,107,.16);
    }
    .ritos-salvamento-lote.ativo { display: block; }
    .ritos-salvamento-lote .botao-principal { margin: 0; }
    .ritos-progresso { display: none; margin-top: 10px; }
    .ritos-progresso.ativo { display: block; }
    .ritos-progresso-trilho { height: 10px; overflow: hidden; border-radius: 999px; background: #e4eaf1; }
    .ritos-progresso-barra { display: block; height: 100%; width: 0; background: #228654; transition: width .25s ease; }
    .ritos-progresso-texto { display: block; margin-top: 6px; color: var(--azul); font-size: 13px; font-weight: 700; }
    .ritos-acao-geral {
      display: flex; justify-content: flex-end; margin: 8px 0 14px;
    }
    .ritos-acao-geral button {
      width: auto; margin: 0; padding: 9px 14px; border: 1px solid #9bb4d1;
      border-radius: 999px; background: #f7fbff; color: var(--azul);
      font-size: 13px; font-weight: 700;
    }
    .rito-registro-rapido {
      margin-top: 10px; padding: 10px; border-color: #e2e8f0; background: #fbfcfe;
    }
    .rito-registro-rapido-topo { align-items: center; margin-bottom: 7px; }
    .rito-registro-rapido-topo strong { font-size: 14px; font-weight: 700; }
    .rito-registro-rapido-topo small {
      padding: 3px 8px; border-radius: 999px; background: #eef2f7;
      color: #5d6b7c; font-size: 10px; font-weight: 700;
    }
    .rito-botoes-rapidos { gap: 5px; }
    .rito-botao-rapido {
      padding: 7px 5px; border-color: #d3dce8; border-radius: 999px;
      font-size: 11px; font-weight: 600;
    }
    .rito-acoes { margin-top: 7px; }
    .rito-acoes button {
      min-width: 0; padding: 5px 7px; border: 0; background: transparent;
      color: #53677f; font-size: 12px; font-weight: 600; box-shadow: none;
    }
    .ritos-salvamento-lote {
      bottom: 6px; margin: 10px 0; padding: 7px; border-radius: 11px;
      box-shadow: 0 5px 16px rgba(7,51,107,.13);
    }
    .ritos-salvamento-lote .botao-principal {
      min-height: 42px; padding: 9px 14px; border-radius: 9px; font-size: 14px;
    }
    .ritos-escolha-evento { margin: 12px 0 16px; }
    .ritos-escolha-evento > strong { display: block; margin-bottom: 8px; color: var(--azul); }
    .ritos-eventos-opcoes {
      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
    }
    .rito-evento-opcao {
      width: 100%; margin: 0; padding: 10px 12px; text-align: left;
      border: 1px solid #d5deea; border-radius: 11px; background: #fff; color: var(--azul);
    }
    .rito-evento-opcao strong { display: block; font-size: 13px; }
    .rito-evento-opcao span { display: block; margin-top: 3px; color: #667085; font-size: 12px; }
    .rito-evento-opcao.ativo {
      border-color: var(--azul); background: #eef5ff; box-shadow: inset 3px 0 0 var(--azul);
    }
    .rito-evento-selecionado {
      display: flex; justify-content: space-between; gap: 12px; align-items: center;
      margin: 12px 0; padding: 11px 13px; border-radius: 11px;
      background: #f5f8fc; border-left: 4px solid var(--azul);
    }
    .rito-evento-selecionado strong { display: block; color: var(--azul); }
    .rito-evento-selecionado span { color: #667085; font-size: 13px; white-space: nowrap; }
    .rito-evento-selecionado-info { min-width: 0; }
    .rito-evento-selecionado-info small {
      display: block; margin-top: 3px; color: #667085; font-size: 12px;
    }
    .rito-evento-selecionado-acoes { display: flex; gap: 8px; align-items: center; }
    .rito-evento-selecionado-acoes button {
      width: auto; margin: 0; padding: 8px 12px; border: 1px solid #9bb4d1;
      border-radius: 999px; background: #fff; color: var(--azul);
      font-size: 12px; font-weight: 700; white-space: nowrap;
    }
    .ritos-filtro-controle {
      display: flex; justify-content: flex-end; margin: -3px 0 8px;
    }
    .ritos-filtro-abrir {
      width: auto; margin: 0; padding: 7px 11px; border: 1px solid #9bb4d1;
      border-radius: 999px; background: #fff; color: var(--azul);
      font-size: 12px; font-weight: 700;
    }
    .ritos-filtro-abrir.ativo { background: #eef5ff; border-color: var(--azul); }
    .ritos-filtros-situacao {
      display: flex; gap: 6px; margin: 0 0 12px; padding: 7px;
      overflow-x: auto; scrollbar-width: thin;
      border: 1px solid #dce4ee; border-radius: 11px; background: #f8fafc;
    }
    .ritos-filtro-situacao {
      flex: 0 0 auto; width: auto; margin: 0; padding: 6px 9px;
      border: 1px solid #d5deea; border-radius: 999px; background: #fff;
      color: #52657b; font-size: 11px; font-weight: 700; white-space: nowrap;
    }
    .ritos-filtro-situacao span {
      display: inline-flex; min-width: 18px; height: 18px; margin-left: 4px;
      padding: 0 5px; align-items: center; justify-content: center;
      border-radius: 999px; background: #edf1f6; color: #46566a; font-size: 10px;
    }
    .ritos-filtro-situacao.ativo {
      border-color: var(--azul); background: #eef5ff; color: var(--azul);
      box-shadow: inset 0 0 0 1px var(--azul);
    }
    .ritos-filtro-vazio {
      margin: 10px 0; padding: 15px; border: 1px dashed #cfd9e6;
      border-radius: 11px; color: #667085; text-align: center; font-size: 13px;
    }
    .rito-caminhada-titulo {
      display: flex; justify-content: space-between; gap: 10px; align-items: center;
      margin: 11px 0 7px; color: #52657b; font-size: 12px; font-weight: 700;
    }
    .rito-caminhada-grade {
      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px;
    }
    .rito-caminhada-item {
      display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px;
      align-items: center; min-width: 0; padding: 7px 8px;
      border: 1px solid #dce3ec; border-radius: 9px; background: #f8fafc;
    }
    .rito-caminhada-item.selecionado {
      border-color: #8fb0d5; background: #f1f6fc; box-shadow: inset 0 0 0 1px #477cad;
    }
    .rito-caminhada-escudo { font-size: 17px; filter: grayscale(1); opacity: .45; }
    .rito-caminhada-item.participou .rito-caminhada-escudo { filter: none; opacity: 1; }
    .rito-caminhada-item.participou { border-color: #d8b65b; background: #fffaf0; }
    .rito-caminhada-item.ausente { border-color: #efc5bf; background: #fff8f7; }
    .rito-caminhada-item.justificado,
    .rito-caminhada-item.dispensado { border-color: #bfd3e8; background: #f5f9ff; }
    .rito-caminhada-conteudo { min-width: 0; }
    .rito-caminhada-conteudo strong {
      display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      color: var(--azul); font-size: 11px;
    }
    .rito-caminhada-conteudo small { display: block; margin-top: 2px; color: #697789; font-size: 10px; }
    .rito-caminhada-conteudo em {
      display: block; margin-top: 2px; color: #637083; font-size: 9px;
      font-style: normal; font-weight: 700;
    }
    .rito-chamada-atual {
      margin-top: 10px; padding: 10px; border: 1px solid #d5dfeb;
      border-radius: 11px; background: #fbfcfe;
    }
    .rito-chamada-atual-cabecalho {
      display: flex; justify-content: space-between; gap: 10px; align-items: center;
      margin-bottom: 8px;
    }
    .rito-chamada-atual-cabecalho strong { color: var(--azul); font-size: 12px; }
    .rito-chamada-atual-cabecalho span {
      padding: 3px 7px; border-radius: 999px; background: #edf1f6;
      color: #5c697a; font-size: 9px; font-weight: 700;
    }
    .modal-ritos {
      display: none; position: fixed; inset: 0; z-index: 10020; background: rgba(4, 25, 55, .62);
      padding: 18px; overflow-y: auto; align-items: center; justify-content: center;
    }
    .modal-ritos.ativo { display: flex; }
    .modal-ritos-conteudo {
      width: min(680px, 100%); max-height: 90vh; overflow-y: auto;
      background: #fff; border-radius: 18px; padding: 20px;
    }
    .modal-ritos-cabecalho { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
    .modal-ritos-cabecalho h2 { margin: 0; color: var(--azul); }
    .modal-ritos-fechar { width: auto; margin: 0; border: 0; background: transparent; font-size: 25px; }
    .rito-editor-item { border-top: 1px solid #e2e8f0; padding: 14px 0; }
    .rito-editor-item:first-child { border-top: 0; }
    .rito-editor-item h3 { margin: 0 0 4px; color: var(--azul); }
    .rito-editor-item p { margin: 3px 0 10px; color: var(--cinza); }
    .rito-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    @media (max-width: 640px) {
      .rito-editor-grid { grid-template-columns: 1fr; }
      .rito-aluno-topo { flex-direction: column; }
      .rito-acoes button { width: 100%; }
      .rito-escudo { width: 100%; border-radius: 12px; }
      .rito-botoes-rapidos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .rito-botao-rapido { min-height: 38px; font-size: 12px; }
      .ritos-acao-geral { justify-content: stretch; }
      .ritos-acao-geral button { width: 100%; }
      .ritos-eventos-opcoes { grid-template-columns: 1fr; }
      .rito-evento-selecionado { align-items: flex-start; flex-direction: column; gap: 3px; }
      .rito-evento-selecionado-acoes { width: 100%; margin-top: 7px; }
      .rito-evento-selecionado-acoes button { width: 100%; min-height: 40px; }
      .ritos-filtro-controle { justify-content: stretch; }
      .ritos-filtro-abrir { width: 100%; min-height: 38px; }
      .ritos-filtros-situacao { padding-bottom: 7px; }
      .ritos-filtro-situacao { min-height: 34px; }
      .rito-caminhada-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .rito-aluno-card { padding: 12px; margin: 9px 0; }
      .rito-caminhada-titulo { margin-top: 9px; }
      .rito-chamada-atual { margin-top: 8px; padding: 9px; }
    }
    @media (max-width: 390px) {
      .rito-caminhada-grade { grid-template-columns: 1fr; }
    }
    /* =========================================================
   HOME DO CATEQUIZANDO
   ========================================================= */

#paginaHomeCatequizando .card {
  max-width: 680px;
  margin: 18px auto;
  padding: 22px;
}

#paginaHomeCatequizando .grade-acoes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

#paginaHomeCatequizando .botao-acao {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-height: 88px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #ffffff;
  padding: 14px 10px;
  cursor: pointer;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;

  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: #123d7a;

  box-shadow: 0 3px 10px rgba(15, 45, 85, 0.06);
}

#paginaHomeCatequizando .botao-acao span {
  display: block;
  font-size: 25px;
  line-height: 1;
}

#paginaHomeCatequizando .botao-acao:active {
  transform: scale(0.98);
}

@media (min-width: 700px) {
  #paginaHomeCatequizando .grade-acoes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Carregamento inicial do acesso */

.carregando-acesso {
  display: flex;
  justify-content: center;
  padding-top: 14px;
}

.carregando-circulo {
  width: 28px;
  height: 28px;
  border: 3px solid #e2e8f0;
  border-top-color: #123d7a;
  border-radius: 50%;
  animation: girarCarregamento 0.8s linear infinite;
}

@keyframes girarCarregamento {
  to {
    transform: rotate(360deg);
  }
}
/* =========================================================
   CAMINHADA DE FÉ - HOME DO CATEQUIZANDO
   ========================================================= */

#paginaHomeCatequizando .caminhada-cabecalho {
  margin-top: 22px;
  margin-bottom: 14px;
}

#paginaHomeCatequizando .caminhada-cabecalho h3 {
  margin: 0;
  color: #123d7a;
  font-size: 19px;
  font-weight: 700;
}

#paginaHomeCatequizando .caminhada-cabecalho p {
  margin: 4px 0 0;
  color: #667085;
  font-size: 13px;
  line-height: 1.4;
}


#paginaHomeCatequizando .caminhada-grade {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}


#paginaHomeCatequizando .caminhada-card {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-height: 98px;

  border: 1px solid #e3e9f1;
  border-radius: 14px;

  background: #ffffff;

  padding: 14px;

  display: grid;
  grid-template-columns: 50px 1fr 16px;
  align-items: center;
  gap: 11px;

  text-align: left;
  font-family: inherit;
  cursor: pointer;

  box-shadow:
    0 3px 9px rgba(15, 45, 85, 0.05),
    0 1px 2px rgba(15, 45, 85, 0.04);

  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}


#paginaHomeCatequizando .caminhada-card:hover {
  transform: translateY(-1px);

  box-shadow:
    0 6px 15px rgba(15, 45, 85, 0.08),
    0 2px 4px rgba(15, 45, 85, 0.04);
}


#paginaHomeCatequizando .caminhada-card:active {
  transform: scale(0.99);
}


#paginaHomeCatequizando .caminhada-icone {
  width: 54px;
  height: 54px;

  border-radius: 16px;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 27px;

  box-shadow:
    inset 0 0 0 1px rgba(18, 61, 122, 0.08),
    0 3px 8px rgba(18, 61, 122, 0.08);
}
#paginaHomeCatequizando .caminhada-icone svg {
  width: 32px;
  height: 32px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* Encontros - livro maior */
#paginaHomeCatequizando .caminhada-card:nth-child(1) .caminhada-icone svg {
  width: 35px;
  height: 35px;
  stroke-width: 1.55;
}

/* Ritos e Celebrações - cálice maior */
#paginaHomeCatequizando .caminhada-card:nth-child(3) .caminhada-icone svg {
  width: 35px;
  height: 35px;
  stroke-width: 1.55;
}

#paginaHomeCatequizando .caminhada-card:nth-child(1) .caminhada-icone {
  color: #1557a6;
}

#paginaHomeCatequizando .caminhada-card:nth-child(2) .caminhada-icone {
  color: #6240a8;
}

#paginaHomeCatequizando .caminhada-card:nth-child(3) .caminhada-icone {
  color: #c88700;
}

#paginaHomeCatequizando .caminhada-card:nth-child(4) .caminhada-icone {
  color: #16864b;
}

#paginaHomeCatequizando .caminhada-card:nth-child(5) .caminhada-icone {
  color: #c86622;
}

#paginaHomeCatequizando .caminhada-card:nth-child(6) .caminhada-icone {
  color: #cf3f78;
}

#paginaHomeCatequizando .caminhada-icone-dados {
  color: #5f3da7;
}
#paginaHomeCatequizando .caminhada-card:nth-child(1) .caminhada-icone {
  background: #eaf3ff;
}
/* CARTÃO ENCONTROS */
#paginaHomeCatequizando .caminhada-card:nth-child(1) {
  background: #f4f8ff;
  border-color: #cfe2ff;
}

#paginaHomeCatequizando .caminhada-card:nth-child(1) .caminhada-conteudo strong {
  color: #1557a6;
}

#paginaHomeCatequizando .caminhada-card:nth-child(2) .caminhada-icone {
  background: #eeeafd;
}
/* CARTÃO CALENDÁRIO */
#paginaHomeCatequizando .caminhada-card:nth-child(2) {
  background: #faf7ff;
  border-color: #dfd3fa;
}

#paginaHomeCatequizando .caminhada-card:nth-child(2) .caminhada-conteudo strong {
  color: #6240a8;
}
#paginaHomeCatequizando .caminhada-card:nth-child(3) .caminhada-icone {
  background: #fff4db;
}
/* CARTÃO RITOS E CELEBRAÇÕES */
#paginaHomeCatequizando .caminhada-card:nth-child(3) {
  background: #fffbf1;
  border-color: #f4dfa7;
}

#paginaHomeCatequizando .caminhada-card:nth-child(3) .caminhada-conteudo strong {
  color: #c88700;
}
#paginaHomeCatequizando .caminhada-card:nth-child(4) .caminhada-icone {
  background: #e6f6ec;
}
/* CARTÃO MINHA FREQUÊNCIA */
#paginaHomeCatequizando .caminhada-card:nth-child(4) {
  background: #f3fbf6;
  border-color: #cbe9d5;
}

#paginaHomeCatequizando .caminhada-card:nth-child(4) .caminhada-conteudo strong {
  color: #16864b;
}
#paginaHomeCatequizando .caminhada-card:nth-child(5) .caminhada-icone {
  background: #fff0e7;
}
#paginaHomeCatequizando .caminhada-card:nth-child(5) .caminhada-icone svg {
  width: 35px;
  height: 35px;
  stroke-width: 1.6;
}
/* CARTÃO SACRAMENTOS */
#paginaHomeCatequizando .caminhada-card:nth-child(5) {
  background: #fff8f3;
  border-color: #f3d6c3;
}

#paginaHomeCatequizando .caminhada-card:nth-child(5) .caminhada-conteudo strong {
  color: #c86622;
}
#paginaHomeCatequizando .caminhada-card:nth-child(6) .caminhada-icone {
  background: #fdeaf2;
}
/* CARTÃO AVISOS */
#paginaHomeCatequizando .caminhada-card:nth-child(6) {
  background: #fff6fa;
  border-color: #f2cfdf;
}

#paginaHomeCatequizando .caminhada-card:nth-child(6) .caminhada-conteudo strong {
  color: #cf3f78;
}

/* Padrao visual unico, igual ao menu dos catequistas. */
#paginaHomeCatequizando .caminhada-card,
#paginaHomeCatequizando .caminhada-card:nth-child(n) {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 72%, #f8fafd 100%);
  border-color: rgba(11, 47, 103, .10);
}
#paginaHomeCatequizando .caminhada-card:nth-child(n) .caminhada-icone {
  color: var(--azul);
  background: var(--dourado-claro);
}
#paginaHomeCatequizando .caminhada-card:nth-child(n) .caminhada-conteudo strong {
  color: var(--azul);
}

#paginaHomeCatequizando .caminhada-conteudo {
  min-width: 0;

  display: flex;
  flex-direction: column;
  gap: 3px;
}


#paginaHomeCatequizando .caminhada-conteudo strong {
  color: #123d7a;
  font-size: 14px;
  font-weight: 700;
}


#paginaHomeCatequizando .caminhada-conteudo span {
  color: #667085;
  font-size: 11px;
  line-height: 1.35;
}


#paginaHomeCatequizando .caminhada-seta {
  color: #d6a536;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  text-align: right;
}


#paginaHomeCatequizando .caminhada-dados {
  appearance: none;
  -webkit-appearance: none;

  margin-top: 12px;

  width: 100%;
  min-height: 48px;

  border: 1px solid #e3e9f1;
  border-radius: 13px;

  background: #f8fafc;

  padding: 11px 14px;

  display: grid;
  grid-template-columns: 50px 1fr 18px;
  align-items: center;
  gap: 9px;

  text-align: left;
  font-family: inherit;
  cursor: pointer;

  color: #123d7a;
}
/* CARTÃO MEUS DADOS */
#paginaHomeCatequizando .caminhada-dados {
  background: #faf7ff;
  border-color: #ddd3f6;
}

#paginaHomeCatequizando .caminhada-dados strong {
  color: #5f3da7;
}

#paginaHomeCatequizando .caminhada-dados > span:first-child {
  background: #eeeafd;
  color: #5f3da7;
}

#paginaHomeCatequizando .caminhada-dados {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 72%, #f8fafd 100%);
  border-color: rgba(11, 47, 103, .10);
}
#paginaHomeCatequizando .caminhada-dados strong { color: var(--azul); }
#paginaHomeCatequizando .caminhada-dados > span:first-child {
  background: var(--dourado-claro);
  color: var(--azul);
}

#paginaHomeCatequizando .caminhada-dados strong {
  font-size: 13px;
  font-weight: 700;
}


@media (max-width: 640px) {

  #paginaHomeCatequizando .caminhada-grade {
    grid-template-columns: 1fr;
  }

  #paginaHomeCatequizando .caminhada-card {
    min-height: 86px;
  }

}

/* DESTAQUES DA HOME DO CATEQUIZANDO */

#paginaHomeCatequizando .home-destaques-catequizando {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

#paginaHomeCatequizando .home-destaque-card {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  min-height: 138px;
  padding: 16px;
  border-radius: 16px;
  box-sizing: border-box;
  text-align: left;
  overflow: hidden;
}
#paginaHomeCatequizando button.home-destaque-card {
  width: 100%;
  font: inherit;
  cursor: pointer;
}
#paginaHomeCatequizando .home-destaque-encontro {
  grid-template-columns: 48px minmax(0, 1fr);
  border: 1px solid #cfe0f7;
  background: linear-gradient(145deg, #f7faff, #eef5ff);
  box-shadow: 0 5px 14px rgba(18, 61, 122, .07);
}
#paginaHomeCatequizando .home-destaque-aviso {
  border: 1px solid #efd9a6;
  background: linear-gradient(145deg, #fffdf8, #fff7e6);
  box-shadow: 0 5px 14px rgba(170, 112, 0, .07);
}
#paginaHomeCatequizando .home-destaque-aviso.oculto {
  display: none !important;
}
#paginaHomeCatequizando .home-destaque-icone {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
}
#paginaHomeCatequizando .home-destaque-encontro .home-destaque-icone {
  color: #1764b0;
  background: #e3effd;
  width: 46px;
  height: 46px;
  border-radius: 14px;
}
#paginaHomeCatequizando .home-destaque-aviso .home-destaque-icone {
  color: #b77900;
  background: #fff0c9;
}
#paginaHomeCatequizando .home-destaque-icone svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#paginaHomeCatequizando .home-destaque-encontro .home-destaque-icone svg {
  width: 28px;
  height: 28px;
  stroke-width: 1.65;
}
#paginaHomeCatequizando .home-destaque-encontro .home-destaque-rotulo {
  color: #476987;
  font-size: 12px;
}
#paginaHomeCatequizando .home-destaque-encontro h3 {
  padding-right: 14px;
  font-size: 18px;
  line-height: 1.22;
}
#paginaHomeCatequizando .home-destaque-corpo { min-width: 0; }
#paginaHomeCatequizando .home-destaque-rotulo {
  display: block;
  margin-bottom: 5px;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}
#paginaHomeCatequizando .home-destaque-card h3,
#paginaHomeCatequizando #avisoHomeCatequizando strong {
  display: block;
  margin: 0 0 7px;
  color: #123d7a;
  font-size: 16px;
  line-height: 1.2;
}
#paginaHomeCatequizando .home-destaque-data {
  display: inline-flex;
  margin-top: 2px;
  padding: 4px 8px;
  border-radius: 999px;
  color: #315b88;
  background: rgba(255,255,255,.78);
  font-size: 12px;
  font-weight: 700;
}
#paginaHomeCatequizando .home-destaque-data:empty { display: none; }
#paginaHomeCatequizando #avisoHomeCatequizando {
  color: #5f6570;
  font-size: 13px;
  line-height: 1.35;
}
#paginaHomeCatequizando #avisoHomeCatequizando span:not(.home-aviso-origem) {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
#paginaHomeCatequizando .home-aviso-origem {
  display: inline-block;
  margin-bottom: 5px;
  color: #946200;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}
#paginaHomeCatequizando .home-destaque-seta {
  position: absolute;
  right: 14px;
  top: 14px;
  color: #d39a1e;
  font-size: 21px;
  font-weight: 700;
}
#paginaHomeCatequizando button.home-destaque-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(18, 61, 122, .11);
}

/* =========================================================
   ENCONTROS DO CATEQUIZANDO
   ========================================================= */
#paginaEncontrosCatequizando .card {
  max-width: 720px;
  margin: 14px auto;
  padding: 20px;
}
#paginaCalendarioCatequizando .card {
  max-width: 720px;
  margin: 14px auto;
  padding: 20px;
}

#paginaRitosCatequizando {
  min-height: calc(100vh - 190px);
  padding: 14px 0 42px;
  overflow: visible;
}
#paginaRitosCatequizando .card {
  max-width: 680px;
  margin: 0 auto;
  overflow: visible;
}
#paginaRitosCatequizando .cabecalho-modulo-catequizando {
  margin-top: 8px;
}
.ritos-catequizando-resumo {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 15px 17px; border: 1px solid #f0d79a; border-radius: 14px;
  background: #fffaf0; margin-bottom: 14px;
}
.ritos-catequizando-resumo strong { color: #8a5a00; font-size: 15px; }
.ritos-catequizando-contador {
  flex: 0 0 auto; color: #8a5a00; background: #fff; border: 1px solid #efd18b;
  border-radius: 999px; padding: 6px 11px; font-weight: 800; font-size: 12px;
}
.ritos-catequizando-lista { display: grid; gap: 10px; }
.rito-catequizando-card {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px;
  align-items: center; padding: 14px; border: 1px solid #e7ddc7;
  border-radius: 14px; background: #fffdf8;
}
.rito-catequizando-escudo {
  width: 44px; height: 48px; display: grid; place-items: center; color: #9a6700;
  background: #fff4d6; border: 1px solid #edcf82;
  clip-path: polygon(50% 0, 92% 16%, 84% 72%, 50% 100%, 16% 72%, 8% 16%);
}
.rito-catequizando-escudo svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.55; }
.rito-catequizando-card h3 { margin: 0 0 4px; color: #153d76; font-size: 15px; }
.rito-catequizando-card p { margin: 0; color: #667085; font-size: 12px; line-height: 1.45; }
.rito-catequizando-status {
  border-radius: 999px; padding: 5px 8px; font-size: 10px; font-weight: 800;
  letter-spacing: .03em; color: #8a5a00; background: #fff4d6;
}
.rito-catequizando-card.participou { border-color: #bfe3cd; background: #f5fcf8; }
.rito-catequizando-card.participou .rito-catequizando-escudo,
.rito-catequizando-card.participou .rito-catequizando-status {
  color: #137a46; background: #e7f7ee; border-color: #b9dfc8;
}
.rito-catequizando-card.ausente { border-color: #efc6c1; background: #fff8f7; }
.rito-catequizando-card.ausente .rito-catequizando-status { color: #b2342a; background: #fdebea; }
@media (max-width: 560px) {
  .rito-catequizando-card { grid-template-columns: 40px minmax(0, 1fr); }
  .rito-catequizando-status { grid-column: 2; justify-self: start; }
}

/* =========================================================
   SACRAMENTOS DO CATEQUIZANDO
   ========================================================= */
#paginaSacramentosCatequizando { padding: 14px 0 42px; }
#paginaSacramentosCatequizando .card { max-width: 680px; margin: 0 auto; }
.sacramentos-catequizando-intro {
  margin: 2px 0 14px; padding: 12px 14px; border: 1px solid #eadab6;
  border-radius: 13px; background: #fffaf1; color: #73551e; font-size: 12px;
  line-height: 1.45;
}
.sacramentos-catequizando-lista { display: grid; gap: 10px; }
.sacramento-catequizando-item {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px;
  align-items: center; padding: 14px; border: 1px solid #d8e3f0;
  border-left: 4px solid #527cab; border-radius: 14px; background: #f8fbff;
}
.sacramento-catequizando-icone {
  width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
  color: #315f96; background: #e8f1fb;
}
.sacramento-catequizando-icone svg {
  width: 25px; height: 25px; fill: none; stroke: currentColor;
  stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round;
}
.sacramento-catequizando-item h3 { margin: 0 0 4px; color: #123d7a; font-size: 15px; }
.sacramento-catequizando-item p { margin: 2px 0 0; color: #667085; font-size: 11px; }
.sacramento-catequizando-status {
  padding: 6px 9px; border-radius: 999px; color: #8a5a00;
  background: #fff1ce; font-size: 10px; font-weight: 800;
}
.sacramento-catequizando-item.realizado {
  border-color: #c5e4d0; border-left-color: #37815a; background: #f5fbf7;
}
.sacramento-catequizando-item.realizado .sacramento-catequizando-icone,
.sacramento-catequizando-item.realizado .sacramento-catequizando-status {
  color: #247448; background: #e4f5ea;
}
.sacramento-catequizando-item.nao-realizado {
  border-color: #efcbc7; border-left-color: #b54d44; background: #fff8f7;
}
.sacramento-catequizando-item.nao-realizado .sacramento-catequizando-icone,
.sacramento-catequizando-item.nao-realizado .sacramento-catequizando-status {
  color: #a83f37; background: #fde9e7;
}
@media (max-width: 560px) {
  .sacramento-catequizando-item { grid-template-columns: 42px minmax(0, 1fr); }
  .sacramento-catequizando-status { grid-column: 2; justify-self: start; }
  .sacramento-catequizando-icone { width: 40px; height: 40px; }
}

/* =========================================================
   MINHA FREQUÊNCIA DO CATEQUIZANDO
   ========================================================= */
#paginaFrequenciaCatequizando { padding: 14px 0 42px; }
#paginaFrequenciaCatequizando .card { max-width: 680px; margin: 0 auto; }
.frequencia-catequizando-resumo {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
  margin: 4px 0 16px;
}
.frequencia-catequizando-indicador {
  padding: 13px 10px; border: 1px solid #dbe5f1; border-radius: 13px;
  background: #f8fbff; text-align: center;
}
.frequencia-catequizando-indicador strong {
  display: block; color: #123d7a; font-size: 22px; line-height: 1.1;
}
.frequencia-catequizando-indicador span { color: #667085; font-size: 11px; }
.frequencia-catequizando-indicador.presencas { background: #f3fbf6; border-color: #c7e5d2; }
.frequencia-catequizando-indicador.presencas strong { color: #247448; }
.frequencia-catequizando-indicador.faltas { background: #fff7f6; border-color: #efcfca; }
.frequencia-catequizando-indicador.faltas strong { color: #b0443b; }
.frequencia-catequizando-titulo {
  margin: 0 0 9px; color: #123d7a; font-size: 15px;
}
.frequencia-catequizando-lista { display: grid; gap: 8px; }
.frequencia-catequizando-item {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 11px;
  align-items: center; padding: 11px 13px; border: 1px solid #cde4d5;
  border-left: 4px solid #3c8a5c; border-radius: 12px; background: #f7fcf9;
}
.frequencia-catequizando-item.falta {
  border-color: #efc9c5; border-left-color: #bd4b42; background: #fff8f7;
}
.frequencia-catequizando-data { color: #667085; font-size: 11px; font-weight: 700; }
.frequencia-catequizando-item h3 { margin: 2px 0 0; color: #123d7a; font-size: 14px; }
.frequencia-catequizando-sinal {
  width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%;
  color: #247448; background: #e4f5ea; font-weight: 800; font-size: 17px;
}
.frequencia-catequizando-item.falta .frequencia-catequizando-sinal {
  color: #b0443b; background: #fde9e7;
}
.frequencia-catequizando-status {
  padding: 5px 8px; border-radius: 999px; color: #247448;
  background: #e4f5ea; font-size: 10px; font-weight: 800;
}
.frequencia-catequizando-item.falta .frequencia-catequizando-status {
  color: #b0443b; background: #fde9e7;
}
@media (max-width: 560px) {
  .frequencia-catequizando-resumo { gap: 6px; }
  .frequencia-catequizando-indicador { padding: 11px 5px; }
  .frequencia-catequizando-indicador strong { font-size: 19px; }
  .frequencia-catequizando-item { grid-template-columns: 36px minmax(0, 1fr); }
  .frequencia-catequizando-status { grid-column: 2; justify-self: start; }
}

.legenda-calendario-catequizando {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  margin: 12px 0;
  color: #667085;
  font-size: 11px;
}
.legenda-calendario-catequizando span::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  border-radius: 50%;
  background: #5e91cf;
}
.legenda-calendario-catequizando .rito::before { background: #8b5fc7; }
.legenda-calendario-catequizando .recesso::before { background: #8a94a3; }
.legenda-calendario-catequizando .alterado::before { background: #d28b22; }
.calendario-catequizando-dia.rito { background: #f7f2ff; border-color: #cdb8ec; }
.calendario-catequizando-dia.recesso { background: #f2f4f7; border-color: #cbd2dc; }
.calendario-catequizando-dia.alterado { background: #fff7e8; border-color: #e9c98d; }
.detalhes-data-calendario {
  margin-top: 16px;
  display: grid;
  gap: 9px;
}
.detalhe-data-calendario-item {
  padding: 12px 14px;
  border: 1px solid #dbe5f1;
  border-left: 4px solid #5e91cf;
  border-radius: 12px;
  background: #f8fbff;
}
.detalhe-data-calendario-item h4 { margin: 0 0 4px; color: #123d7a; }
.detalhe-data-calendario-item p { margin: 3px 0 0; color: #667085; font-size: 12px; }
.detalhe-data-calendario-item.rito { border-left-color: #8b5fc7; background: #faf7ff; }
.detalhe-data-calendario-item.recesso { border-left-color: #8a94a3; background: #f7f8fa; }
.detalhe-data-calendario-item.alterado { border-left-color: #d28b22; background: #fffaf0; }
.cabecalho-modulo-catequizando {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.voltar-modulo-catequizando {
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  border: 1px solid #dbe5f1;
  border-radius: 11px;
  background: #ffffff;
  color: #1557a6;
  font-size: 22px;
  line-height: 1;
}
.cabecalho-modulo-catequizando h2 {
  margin: 0;
  color: #123d7a;
  font-size: 22px;
}
.cabecalho-modulo-catequizando p {
  margin: 3px 0 0;
  color: #667085;
  font-size: 13px;
}
.encontro-proximo-catequizando {
  padding: 18px;
  border: 1px solid #bed8fa;
  border-left: 5px solid #1557a6;
  border-radius: 16px;
  background: #f4f8ff;
  margin-bottom: 22px;
}
.encontro-proximo-catequizando .rotulo {
  color: #1557a6;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.encontro-proximo-catequizando h3 {
  margin: 8px 0 5px;
  color: #123d7a;
  font-size: 20px;
}
.encontro-proximo-catequizando p { margin: 4px 0; color: #526173; }
.titulo-lista-encontros-catequizando {
  margin: 22px 0 10px;
  color: #123d7a;
  font-size: 16px;
}
.lista-encontros-catequizando { display: grid; gap: 10px; }
.item-encontro-catequizando {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 13px;
  align-items: center;
  padding: 13px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
}
.data-encontro-catequizando {
  padding: 8px 5px;
  border-radius: 11px;
  background: #eaf3ff;
  color: #1557a6;
  text-align: center;
  font-size: 12px;
  font-weight: 800;
}
.item-encontro-catequizando h4 { margin: 0 0 4px; color: #123d7a; font-size: 15px; }
.item-encontro-catequizando p { margin: 0; color: #667085; font-size: 12px; }
.item-encontro-catequizando.passado { background: #f8fafc; opacity: .86; }
.estado-encontros-catequizando {
  padding: 25px 12px;
  text-align: center;
  color: #667085;
}
.cartao-encontro-unico {
  padding: 12px 14px;
  margin-bottom: 0;
  border-left-width: 5px;
  border-color: #d9e6f5;
  border-left-color: #5e91cf;
  background: #f5f9ff;
  cursor: pointer;
  text-align: left;
  transition: transform .16s ease, box-shadow .16s ease;
}
.bloco-encontro-catequizando + .bloco-encontro-catequizando { margin-top: 12px; }
.titulo-cartao-encontro-catequizando {
  margin: 0 0 6px;
  font-size: 13px;
}
.cartao-encontro-unico.ultimo {
  border-color: #eadfbe;
  border-left-color: #d6a536;
  background: #fffaf0;
}
.cartao-encontro-unico.ultimo .rotulo-proximo { color: #9a700e; }
.cartao-encontro-unico.vazio { cursor: default; box-shadow: none; opacity: .78; }
.cartao-encontro-unico.perdido {
  border-color: #efcfcb;
  border-left-color: #c84336;
  background: #fff4f2;
}
.cartao-encontro-unico.perdido .rotulo-proximo,
.cartao-encontro-unico.perdido h3 { color: #7d312a; }
.selo-encontro-perdido {
  display: inline-block;
  margin-left: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fde2df;
  color: #a7352b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}
.botao-encontros-anteriores {
  width: 100%;
  margin: 18px 0 0;
  padding: 14px 16px;
  border: 1px solid #cfdbeb;
  border-radius: 13px;
  background: #f7f9fc;
  color: #123d7a;
  font-size: 14px;
  font-weight: 700;
}
.historico-encontros-catequizando { display: none; margin-top: 16px; }
.historico-encontros-catequizando.ativo { display: block; }
.historico-encontros-catequizando .cartao-encontro-unico { box-shadow: none; }
.cartao-encontro-unico:active { transform: scale(.99); }
.cartao-encontro-unico .rotulo-proximo {
  color: #1557a6;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.cartao-encontro-unico h3 {
  margin: 4px 0 6px;
  color: #123d7a;
  font-size: 16px;
  line-height: 1.25;
}
.data-encontro-compacta {
  margin-top: 0;
  color: #667085;
  font-size: 12px;
  font-weight: 700;
}
.referencias-encontro-compactas {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 16px;
  color: #667085;
  font-size: 12px;
  line-height: 1.45;
}
.referencias-encontro-compactas strong { color: #44546a; }
.convite-objetivo-encontro {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid #e8edf3;
  color: #1557a6;
  font-size: 12px;
  font-weight: 700;
}
.seta-objetivo-encontro { font-size: 19px; transition: transform .2s ease; }
.cartao-encontro-unico.aberto .seta-objetivo-encontro { transform: rotate(180deg); }
.objetivo-encontro-catequizando {
  display: none;
  margin-top: 10px;
  padding: 0;
  color: #4f5661;
  font-size: 13px;
  line-height: 1.5;
}
.cartao-encontro-unico.aberto .objetivo-encontro-catequizando {
  display: grid;
  gap: 8px;
}
.bloco-formativo-encontro {
  padding: 11px 12px;
  border: 1px solid #e2e8f0;
  border-left: 3px solid #1557a6;
  border-radius: 10px;
  background: #f8fafc;
}
.bloco-formativo-encontro:nth-child(2) { border-left-color: #d6a536; }
.bloco-formativo-encontro:nth-child(3) { border-left-color: #2f855a; }
.bloco-formativo-encontro strong {
  display: block;
  margin-bottom: 4px;
  color: #123d7a;
  font-size: 12px;
}
@media (max-width: 560px) {
  #paginaEncontrosCatequizando .card { padding: 16px; }
  .item-encontro-catequizando { grid-template-columns: 58px 1fr; }
  .cartao-encontro-unico { padding: 14px; }
  .cartao-encontro-unico h3 { font-size: 17px; }
}

@media (max-width: 640px) {
  #paginaHomeCatequizando .home-destaques-catequizando {
    grid-template-columns: 1fr;
  }
}
    /* Home do catequizando no mesmo padrao visual do catequista. */
    #paginaHomeCatequizando > .card { padding: 0; background: transparent; border: 0; box-shadow: none; }
    #paginaHomeCatequizando .boas-vindas-catequizando {
      position: relative;
      overflow: hidden;
      margin-bottom: 16px;
      padding: 20px 22px;
      border-left: 5px solid var(--dourado);
      border-radius: 16px;
      background: linear-gradient(135deg, #ffffff 0%, #fbf8f1 58%, #f7eddc 100%);
      box-shadow: 0 5px 16px rgba(15, 35, 65, .08);
    }
    #paginaHomeCatequizando .boas-vindas-catequizando::after {
      content: "";
      position: absolute;
      width: 220px;
      height: 220px;
      right: -90px;
      top: -110px;
      background: radial-gradient(circle, rgba(201,148,50,.16), rgba(201,148,50,0) 70%);
      pointer-events: none;
    }
    #paginaHomeCatequizando .boas-vindas-catequizando h2 {
      position: relative;
      z-index: 1;
      margin: 0 0 7px;
      color: var(--azul);
      font-size: 24px;
    }
    #paginaHomeCatequizando .boas-vindas-catequizando p {
      position: relative;
      z-index: 1;
      margin: 0;
      color: #78602c;
      font-size: 14px;
      font-style: italic;
    }
    #paginaHomeCatequizando .home-destaques-catequizando {
      display: flex;
      flex-direction: column;
      gap: 14px;
      margin-bottom: 22px;
    }
    #paginaHomeCatequizando .home-destaque-card,
    #paginaHomeCatequizando button.home-destaque-card {
      width: 100%;
      min-height: 0;
      padding: 20px 20px 20px 18px;
      grid-template-columns: 50px minmax(0, 1fr);
      gap: 14px;
      border-radius: 16px;
      font: inherit;
    }
    #paginaHomeCatequizando .home-destaque-aviso {
      order: 1;
      border: 1px solid rgba(201,148,50,.20);
      border-left: 5px solid var(--dourado);
      background: linear-gradient(135deg, #fffdf7, #fff9ec);
      box-shadow: 0 5px 16px rgba(15,35,65,.08);
      cursor: pointer;
    }
    #paginaHomeCatequizando .home-destaque-encontro {
      order: 2;
      border: 1px solid rgba(11,47,103,.10);
      border-left: 5px solid var(--azul);
      background: linear-gradient(135deg, #ffffff, #f6f9fd);
      box-shadow: 0 5px 16px rgba(15,35,65,.08);
    }
    #paginaHomeCatequizando .home-destaque-icone,
    #paginaHomeCatequizando .home-destaque-encontro .home-destaque-icone {
      width: 48px;
      height: 48px;
      border-radius: 13px;
      color: var(--azul);
      background: var(--dourado-claro);
    }
    #paginaHomeCatequizando .home-destaque-aviso .home-destaque-icone {
      color: #946200;
      background: #f8e8bd;
    }
    #paginaHomeCatequizando .home-destaque-rotulo,
    #paginaHomeCatequizando .home-destaque-encontro .home-destaque-rotulo {
      margin-bottom: 7px;
      color: #815b13;
      font-size: 12px;
    }
    #paginaHomeCatequizando .home-destaque-card h3,
    #paginaHomeCatequizando #avisoHomeCatequizando strong,
    #paginaHomeCatequizando .home-destaque-encontro h3 {
      font-size: 20px;
      line-height: 1.25;
    }
    #paginaHomeCatequizando #avisoHomeCatequizando {
      font-size: 14px;
      line-height: 1.55;
    }
    #paginaHomeCatequizando #avisoHomeCatequizando span:not(.home-aviso-origem):not(.home-aviso-data) {
      display: block;
      overflow: visible;
      -webkit-line-clamp: unset;
    }
    #paginaHomeCatequizando .home-aviso-data {
      display: block;
      margin: -1px 0 8px;
      color: #667085;
      font-size: 12px;
      font-weight: 700;
    }
    #paginaHomeCatequizando .caminhada-cabecalho { margin-top: 26px; }
    #paginaHomeCatequizando .caminhada-cabecalho h3 { font-size: 22px; }
    #paginaHomeCatequizando .caminhada-cabecalho p { font-size: 14px; line-height: 1.5; }
    #paginaHomeCatequizando .caminhada-grade { gap: 14px; }
    #paginaHomeCatequizando .caminhada-card,
    #paginaHomeCatequizando .caminhada-card:nth-child(n),
    #paginaHomeCatequizando .caminhada-dados {
      min-height: 112px;
      padding: 18px;
      grid-template-columns: 48px minmax(0, 1fr) 18px;
      gap: 15px;
      border-radius: 16px;
      box-shadow: 0 4px 12px rgba(15,35,65,.07), 0 1px 2px rgba(15,35,65,.05);
    }
    #paginaHomeCatequizando .caminhada-icone,
    #paginaHomeCatequizando .caminhada-card:nth-child(n) .caminhada-icone,
    #paginaHomeCatequizando .caminhada-dados > span:first-child {
      width: 48px;
      min-width: 48px;
      height: 48px;
      border-radius: 13px;
      box-shadow: none;
    }
    #paginaHomeCatequizando .caminhada-icone svg,
    #paginaHomeCatequizando .caminhada-card:nth-child(n) .caminhada-icone svg {
      width: 28px;
      height: 28px;
    }
    #paginaHomeCatequizando .caminhada-conteudo strong,
    #paginaHomeCatequizando .caminhada-card:nth-child(n) .caminhada-conteudo strong,
    #paginaHomeCatequizando .caminhada-dados strong {
      color: var(--azul);
      font-size: 18px;
    }
    #paginaHomeCatequizando .caminhada-conteudo span,
    #paginaHomeCatequizando .caminhada-dados small {
      display: block;
      margin-top: 4px;
      color: var(--cinza);
      font-size: 13px;
      line-height: 1.4;
      font-weight: 400;
    }
    @media (max-width: 640px) {
      #paginaHomeCatequizando .caminhada-grade { grid-template-columns: 1fr; }
      #paginaHomeCatequizando .caminhada-card,
      #paginaHomeCatequizando .caminhada-dados { min-height: 112px; }
    }

    .meus-dados-catequizando-card { max-width: 680px; margin: 0 auto; }
    .formulario-meus-dados { display: grid; gap: 13px; margin-top: 18px; }
    .formulario-meus-dados label { color: var(--azul); font-size: 13px; font-weight: 700; }
    .formulario-meus-dados label .campo { margin-top: 6px; }
    .formulario-meus-dados .campo:disabled { background: #f2f4f7; color: #667085; }
    .grade-meus-dados-bloqueados { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .situacao-dados { margin: 16px 0; padding: 14px; border-radius: 12px; border-left: 4px solid var(--dourado); background: #fff9e9; }
    .situacao-dados strong { display: block; color: var(--azul); margin-bottom: 4px; }
    .lista-validacoes-cadastro { display: grid; gap: 12px; margin-top: 14px; }
    .validacao-cadastro-card { padding: 16px; border: 1px solid var(--borda); border-left: 5px solid var(--dourado); border-radius: 13px; background: #fff; }
    .validacao-cadastro-card h4 { margin: 0 0 5px; color: var(--azul); }
    .validacao-cadastro-card p { margin: 4px 0; }
    .validacao-cadastro-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 14px; margin: 12px 0; font-size: 13px; }
    .validacao-cadastro-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    .validacao-cadastro-acoes button { width: auto; margin: 0; }
    @media (max-width: 600px) {
      .grade-meus-dados-bloqueados, .validacao-cadastro-campos { grid-template-columns: 1fr; }
      .validacao-cadastro-acoes { flex-direction: column; }
      .validacao-cadastro-acoes button { width: 100%; }
    }
  

  /* =========================
     LITURGIA DIÁRIA — V4
     Experiência visual pastoral: azul institucional + marfim + dourado
  ========================= */
  .liturgia-diaria-modal{
    position:fixed; inset:0; z-index:10060; display:none;
    background:
      radial-gradient(circle at 50% -10%,rgba(116,176,230,.18),transparent 35%),
      linear-gradient(180deg,#edf4fb 0%,#f6f8fb 44%,#edf3f8 100%);
    overflow-y:auto;
  }
  .liturgia-diaria-modal.ativa{display:block}

  .liturgia-diaria-topo{
    position:sticky; top:0; z-index:3;
    background:linear-gradient(115deg,#082b59 0%,#0b3d78 58%,#123f70 100%);
    color:#fff;
    border-bottom:3px solid #c99535;
    box-shadow:0 5px 18px rgba(6,31,66,.22);
  }
  .liturgia-diaria-topo-interno{
    max-width:860px; margin:auto; padding:13px 18px;
    display:grid; grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center; gap:13px;
  }
  .liturgia-diaria-voltar{
    width:42px;height:42px;flex:0 0 42px;
    border:1px solid rgba(255,255,255,.30);border-radius:12px;
    background:rgba(255,255,255,.09);color:#fff;font-size:27px;
    line-height:1;cursor:pointer;
  }
  .liturgia-topo-titulo{min-width:0}
  .liturgia-diaria-topo h2{margin:0;font-size:21px;color:#fff;line-height:1.1}
  .liturgia-diaria-topo p{margin:4px 0 0;font-size:11px;color:rgba(255,255,255,.88);line-height:1.35}
  .liturgia-topo-inspiracao{
    display:flex;align-items:center;gap:12px;
    max-width:300px;color:#fff7e8;
  }
  .liturgia-topo-livro{
    width:38px;height:38px;flex:0 0 38px;
    color:#e4b24e;
  }
  .liturgia-topo-frase{
    font-family:Georgia,serif;font-size:12px;line-height:1.35;font-style:italic;
    color:#fff7e8;
  }
  .liturgia-topo-frase small{display:block;margin-top:2px;color:#f2d59a;font-size:10px}

  .liturgia-diaria-conteudo{max-width:860px;margin:auto;padding:20px 18px 34px}

  .liturgia-cabecalho{
    position:relative;overflow:hidden;
    display:grid;grid-template-columns:148px minmax(0,1fr) 126px;
    align-items:stretch;
    border:1px solid #ded6c8;border-radius:17px;
    background:linear-gradient(110deg,#fffdf8 0%,#fdf9f1 62%,#f7f0e5 100%);
    box-shadow:0 8px 20px rgba(27,55,88,.10);
  }
  .liturgia-cabecalho::after{
    content:"";position:absolute;right:88px;bottom:-48px;width:132px;height:132px;
    border:18px solid rgba(181,168,145,.11);border-left-color:transparent;border-bottom-color:transparent;
    border-radius:75% 15% 75% 15%;transform:rotate(-20deg);pointer-events:none;
  }
  .liturgia-data-box{
    display:flex;align-items:center;justify-content:center;gap:13px;
    padding:20px 15px;border-right:1px solid #d9d4cb;
  }
  .liturgia-calendario-icone{
    width:34px;height:34px;flex:0 0 34px;
    color:#4776aa;
  }
  .liturgia-data-partes{text-align:center;color:#0b2f67}
  .liturgia-dia-semana{font-size:12px;font-weight:700;text-transform:capitalize}
  .liturgia-dia-numero{font-size:39px;line-height:.95;font-weight:800;margin:5px 0}
  .liturgia-mes-ano{font-size:11px;font-weight:800;text-transform:uppercase;line-height:1.25}

  .liturgia-identidade{
    min-width:0;padding:17px 22px 16px;
    display:flex;flex-direction:column;justify-content:center;
  }
  .liturgia-identidade h3{
    margin:0;color:#0b2f67;font-family:Georgia,serif;font-size:22px;line-height:1.18;
  }
  .liturgia-subtitulo{
    margin-top:5px;color:#32527b;font-size:12px;line-height:1.35;
  }
  .liturgia-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
  .liturgia-selo{
    display:inline-flex;align-items:center;
    padding:4px 0;border:0;background:transparent;
    color:#355477;font-size:11px;font-weight:700;
  }
  .liturgia-cor-ponto{
    display:inline-block;width:12px;height:12px;margin-right:7px;border-radius:50%;
    border:1px solid rgba(0,0,0,.10);vertical-align:-1px;
  }
  .liturgia-versiculo-cabecalho{
    margin-top:7px;color:#2e5a77;font-family:Georgia,serif;
    font-size:12px;font-style:italic;line-height:1.35;
  }
  .liturgia-versiculo-cabecalho::before{
    content:"❧";margin-right:7px;color:#24704a;font-style:normal;font-size:17px;
  }
  .liturgia-mensagem-dia{
    position:relative;z-index:1;
    padding:18px 15px;display:flex;align-items:center;justify-content:center;
    text-align:center;color:#44628a;font-family:Georgia,serif;
    font-size:12px;font-style:italic;line-height:1.45;
  }
  .liturgia-mensagem-dia span::after{
    content:"";display:block;width:44px;height:2px;background:#c99432;margin:11px auto 0;
  }

  .liturgia-navegacao{
    display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:14px 0 20px;
  }
  .liturgia-navegacao button{
    min-height:48px;padding:11px 8px;
    border:1px solid #b8cbe0;border-radius:12px;
    background:linear-gradient(180deg,#fff 0%,#f2f7fc 100%);
    color:#0b2f67;font-weight:800;cursor:pointer;
    box-shadow:0 3px 8px rgba(20,50,85,.05);
  }
  .liturgia-navegacao button:nth-child(2){
    background:linear-gradient(135deg,#174d91,#0b2f67);
    color:#fff;border-color:#0b2f67;
    box-shadow:0 6px 15px rgba(11,47,103,.20);
  }

  .liturgia-bloco{
    margin-bottom:13px;border:1px solid #c5d4e4;border-radius:15px;
    overflow:hidden;box-shadow:0 5px 14px rgba(22,52,84,.07);
    background:#fff;
  }
  .liturgia-bloco-cabecalho{
    width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;gap:14px;padding:15px 17px;border:0;text-align:left;cursor:pointer;
    background:linear-gradient(110deg,#fffaf0 0%,#fbf4e7 100%);
  }
  .liturgia-bloco:nth-of-type(even) .liturgia-bloco-cabecalho{
    background:linear-gradient(110deg,#f0f7ff 0%,#e7f1fc 100%);
  }
  .liturgia-icone-leitura{
    width:42px;height:42px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#f6e7c7;color:#b67a12;flex:0 0 42px;
    font-size:20px;font-weight:800;
  }
  .liturgia-bloco:nth-of-type(even) .liturgia-icone-leitura{
    background:#dceafb;color:#174d91;
  }
  .liturgia-bloco-cabecalho strong{display:block;color:#0b2f67;font-size:16px}
  .liturgia-bloco-cabecalho small{display:block;margin-top:3px;color:#52667b;font-size:11px}
  .liturgia-bloco-seta{
    width:34px;height:34px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(201,148,50,.11);color:#b77d18;font-size:21px;
    transition:transform .18s;
  }
  .liturgia-bloco:nth-of-type(even) .liturgia-bloco-seta{
    background:rgba(23,77,145,.08);color:#174d91;
  }
  .liturgia-bloco.aberto .liturgia-bloco-seta{transform:rotate(90deg)}
  .liturgia-bloco-corpo{
    display:none;padding:0 22px 22px;
    border-top:1px solid #e3dccf;
    background:linear-gradient(180deg,#fffefa 0%,#fcf8f0 100%);
  }
  .liturgia-bloco.aberto .liturgia-bloco-corpo{display:block}
  .liturgia-bloco-corpo h4{
    margin:17px 0 10px;color:#0b2f67;font-size:14px;text-align:center;
  }
  .liturgia-texto{
    margin:0;color:#27384b;font-size:15px;line-height:1.82;
    white-space:pre-line;text-align:justify;
  }
  .liturgia-refrao{
    margin:14px 0;padding:12px 14px;border-left:4px solid #c99432;
    background:#f5e8c8;color:#6d4d12;font-weight:800;line-height:1.45;
  }

  .liturgia-acoes-finais{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;margin-top:16px;
  }
  .liturgia-oracao,.liturgia-guardar{
    margin:0;padding:16px;border-radius:15px;box-shadow:0 4px 12px rgba(20,50,85,.06);
  }
  .liturgia-oracao{
    border:1px solid #c7d8eb;
    background:linear-gradient(135deg,#eef6ff 0%,#e2eefb 100%);
  }
  .liturgia-oracao.liturgia-rezar{
    border-color:#d5cbea;background:linear-gradient(135deg,#f4f0ff 0%,#ebe6f9 100%);
  }
  .liturgia-guardar{
    border:1px solid #bfdfcf;
    background:linear-gradient(135deg,#edf9f2 0%,#e1f3e8 100%);
  }
  .liturgia-oracao h3,.liturgia-guardar strong{
    display:block;margin:0 0 7px;color:#0b2f67;font-size:16px;
  }
  .liturgia-oracao p,.liturgia-guardar p{
    margin:0;line-height:1.55;color:#34475a;font-size:12px;
  }

  .liturgia-status{text-align:center;padding:28px 16px;color:var(--cinza);line-height:1.55}
  .liturgia-erro{color:#9b2c2c;background:#fff5f5;border:1px solid #f0caca;border-radius:12px;padding:14px}
  .liturgia-fonte{margin:18px 0 22px;text-align:center;color:var(--cinza);font-size:10px;line-height:1.45}

  @media(max-width:700px){
    .liturgia-topo-inspiracao{display:none}
    .liturgia-diaria-topo-interno{grid-template-columns:auto minmax(0,1fr)}
    .liturgia-cabecalho{grid-template-columns:112px minmax(0,1fr)}
    .liturgia-data-box{padding:16px 10px;gap:8px}
    .liturgia-calendario-icone{width:27px;height:27px;flex-basis:27px}
    .liturgia-dia-numero{font-size:32px}
    .liturgia-identidade{padding:15px 14px}
    .liturgia-identidade h3{font-size:18px}
    .liturgia-mensagem-dia{grid-column:1/-1;padding:10px 15px 14px;border-top:1px solid #e5dfd5}
    .liturgia-acoes-finais{grid-template-columns:1fr}
  }
  @media(max-width:520px){
    .liturgia-diaria-conteudo{padding:14px 12px 28px}
    .liturgia-diaria-topo-interno{padding:10px 12px}
    .liturgia-diaria-topo h2{font-size:18px}
    .liturgia-diaria-topo p{font-size:9px}
    .liturgia-cabecalho{grid-template-columns:92px minmax(0,1fr);border-radius:14px}
    .liturgia-data-box{flex-direction:column;gap:4px;padding:12px 7px}
    .liturgia-calendario-icone{width:24px;height:24px}
    .liturgia-dia-semana{font-size:9px}
    .liturgia-dia-numero{font-size:30px;margin:2px 0}
    .liturgia-mes-ano{font-size:8px}
    .liturgia-identidade{padding:12px 10px}
    .liturgia-identidade h3{font-size:16px}
    .liturgia-subtitulo,.liturgia-versiculo-cabecalho{font-size:9px}
    .liturgia-selo{font-size:9px}
    .liturgia-mensagem-dia{font-size:10px}
    .liturgia-navegacao{gap:6px;margin:10px 0 14px}
    .liturgia-navegacao button{min-height:40px;font-size:10px;padding:8px 4px}
    .liturgia-bloco-cabecalho{gap:10px;padding:12px}
    .liturgia-icone-leitura{width:34px;height:34px;flex-basis:34px;font-size:16px}
    .liturgia-bloco-cabecalho strong{font-size:14px}
    .liturgia-texto{font-size:14px;line-height:1.72;text-align:left}
    .liturgia-bloco-corpo{padding:0 15px 18px}
  }

  /* =========================
     ESPIRITUALIDADE — V2
  ========================= */
  .espiritualidade-modal{
    position:fixed;inset:0;z-index:10070;display:none;overflow-y:auto;
    background:radial-gradient(circle at 82% 0%,rgba(201,148,50,.10),transparent 27%),
               linear-gradient(180deg,#eef4fa 0%,#f7f8fa 48%,#edf3f8 100%);
  }
  .espiritualidade-modal.ativa{display:block}
  .espiritualidade-topo{
    position:sticky;top:0;z-index:4;color:#fff;
    background:linear-gradient(115deg,#06234d 0%,#0b376f 62%,#123f70 100%);
    border-bottom:3px solid #c99432;box-shadow:0 5px 18px rgba(6,31,66,.22);
  }
  .espiritualidade-topo-interno{
    max-width:860px;margin:auto;padding:13px 18px;display:flex;align-items:center;gap:13px;
  }
  .espiritualidade-voltar{
    width:42px;height:42px;flex:0 0 42px;border:1px solid rgba(255,255,255,.30);
    border-radius:12px;background:rgba(255,255,255,.09);color:#fff;font-size:27px;
    line-height:1;cursor:pointer;
  }
  .espiritualidade-topo h2{margin:0;color:#fff;font-size:21px;line-height:1.1}
  .espiritualidade-topo p{margin:4px 0 0;color:rgba(255,255,255,.86);font-size:11px}
  .espiritualidade-conteudo{max-width:860px;margin:auto;padding:20px 18px 38px}
  .espiritualidade-hero{
    position:relative;overflow:hidden;padding:24px 24px 22px;border:1px solid #dfd4bd;
    border-left:5px solid #c99432;border-radius:17px;
    background:linear-gradient(120deg,#fffdf8 0%,#faf4e7 68%,#f2e4c8 100%);
    box-shadow:0 8px 20px rgba(27,55,88,.09);
  }
  .espiritualidade-hero::after{
    content:"✦";position:absolute;right:24px;top:14px;color:rgba(201,148,50,.16);
    font-size:78px;line-height:1;
  }
  .espiritualidade-hero small{
    display:block;color:#8a651f;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  }
  .espiritualidade-hero h3{
    position:relative;z-index:1;margin:8px 0 7px;color:#0b2f67;
    font-family:Georgia,serif;font-size:24px;line-height:1.2;
  }
  .espiritualidade-hero p{
    position:relative;z-index:1;margin:0;max-width:650px;color:#4e6175;
    font-family:Georgia,serif;font-size:14px;font-style:italic;line-height:1.55;
  }
  .espiritualidade-intro{margin:17px 2px 12px;color:#506174;font-size:13px;line-height:1.55}
  .espiritualidade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
  .espiritualidade-card{
    width:100%;min-height:118px;padding:17px;border:1px solid #d2deea;border-radius:15px;
    background:linear-gradient(135deg,#fff 0%,#f3f7fb 100%);
    box-shadow:0 4px 12px rgba(20,50,85,.06);cursor:pointer;text-align:left;
    display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;
  }
  .espiritualidade-card:nth-child(2),.espiritualidade-card:nth-child(5){
    background:linear-gradient(135deg,#fffaf0 0%,#f7ecd4 100%);border-color:#dfcfaa;
  }
  .espiritualidade-card:nth-child(3),.espiritualidade-card:nth-child(6){
    background:linear-gradient(135deg,#f1f7ff 0%,#e5effa 100%);border-color:#c4d7eb;
  }
  .espiritualidade-card-icone{
    width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:#e3edf8;color:#174d91;font-size:22px;
  }
  .espiritualidade-card:nth-child(2) .espiritualidade-card-icone,
  .espiritualidade-card:nth-child(5) .espiritualidade-card-icone{background:#f2e2bd;color:#a66d0c}
  .espiritualidade-card h4{margin:0 0 5px;color:#0b2f67;font-size:16px}
  .espiritualidade-card p{margin:0;color:#627285;font-size:11px;line-height:1.4}
  .espiritualidade-card-seta{color:#c99432;font-size:23px;font-weight:700}
  .espiritualidade-subpagina{display:none}
  .espiritualidade-subpagina.ativa{display:block}
  .espiritualidade-inicio.oculto{display:none}
  .espiritualidade-subtopo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
  .espiritualidade-subvoltar{
    border:1px solid #bdcde0;border-radius:10px;background:#fff;color:#0b2f67;
    padding:9px 12px;font-weight:800;cursor:pointer;
  }
  .espiritualidade-voltar-interno{
    display:block;width:max-content;margin:0 0 14px;padding:7px 2px;border:0;
    background:transparent;color:#0b2f67;font:inherit;font-weight:800;cursor:pointer;
  }
  .espiritualidade-voltar-interno[hidden]{display:none !important}
  .espiritualidade-subtopo h3{margin:0;color:#0b2f67;font-size:20px}
  .espiritualidade-opcoes{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:15px 0;
  }
  .espiritualidade-opcao-item{min-width:0}
  .espiritualidade-opcao-item.ativa{grid-column:1/-1}
  .espiritualidade-opcao{
    width:100%;
    padding:16px 12px;border:1px solid #cbd9e7;border-radius:13px;
    background:linear-gradient(180deg,#fff,#eef5fc);color:#0b2f67;font-weight:800;
    cursor:pointer;text-align:center;
  }
  .espiritualidade-opcao-item.ativa .espiritualidade-opcao{
    border-color:#c99432;border-radius:13px 13px 0 0;
    background:linear-gradient(110deg,#fffaf0,#f9f1df);
  }
  .espiritualidade-opcao span{display:block;margin-top:4px;color:#6b7988;font-size:10px;font-weight:500}
  .espiritualidade-opcao-conteudo{display:none}
  .espiritualidade-opcao-item.ativa .espiritualidade-opcao-conteudo{display:block}
  .espiritualidade-roteiro{
    margin-top:0;border:1px solid #d6dfe9;border-top:0;border-radius:0 0 16px 16px;overflow:hidden;
    background:#fff;box-shadow:0 5px 15px rgba(20,50,85,.06);
  }
  .espiritualidade-passo{
    padding:17px 18px;border-bottom:1px solid #e4e9ef;background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);
  }
  .espiritualidade-passo:last-child{border-bottom:0}
  .espiritualidade-passo h4{margin:0 0 7px;color:#0b2f67;font-size:15px}
  .espiritualidade-passo p{margin:0;color:#42566a;font-size:13px;line-height:1.65}
  .espiritualidade-passo.destaque{
    border-left:4px solid #c99432;background:linear-gradient(110deg,#fffaf0,#f9f1df);
  }
  .espiritualidade-lista{display:grid;gap:10px;margin-top:14px}
  .espiritualidade-item{padding:15px 16px;border:1px solid #d4dfeb;border-radius:13px;background:#fff}
  .espiritualidade-item h4{margin:0 0 5px;color:#0b2f67;font-size:15px}
  .espiritualidade-item p{margin:0;color:#5e6f80;font-size:12px;line-height:1.55}
  .espiritualidade-nota{
    margin-top:16px;padding:14px 16px;border-left:4px solid #174d91;border-radius:11px;
    background:#eaf3fc;color:#35516e;font-size:12px;line-height:1.55;
  }
  @media(max-width:620px){
    .espiritualidade-conteudo{padding:14px 12px 30px}
    .espiritualidade-grid{grid-template-columns:1fr}
    .espiritualidade-hero{padding:19px 17px}
    .espiritualidade-hero h3{font-size:20px}
    .espiritualidade-opcoes{grid-template-columns:1fr}
    .espiritualidade-card{min-height:98px;padding:14px}
  }


  /* PROFUNDIDADE ESPIRITUAL — V3 */
  .espiritualidade-secao{
    margin-top:14px;padding:18px;border:1px solid #d7e1eb;border-radius:15px;
    background:linear-gradient(180deg,#ffffff 0%,#f9fbfd 100%);
    box-shadow:0 4px 12px rgba(20,50,85,.05);
  }
  .espiritualidade-secao.dourada{
    border-color:#dfcfaa;background:linear-gradient(135deg,#fffaf0 0%,#f8efdf 100%);
  }
  .espiritualidade-secao.azul{
    border-color:#c8d9ea;background:linear-gradient(135deg,#eef6ff 0%,#e7f1fb 100%);
  }
  .espiritualidade-secao.verde{
    border-color:#c7dfd0;background:linear-gradient(135deg,#eef9f2 0%,#e6f4eb 100%);
  }
  .espiritualidade-secao h4{
    margin:0 0 9px;color:#0b2f67;font-size:16px;line-height:1.3;
  }
  .espiritualidade-secao p{
    margin:0;color:#43566a;font-size:13px;line-height:1.72;
  }
  .espiritualidade-secao p+p{margin-top:9px}
  .espiritualidade-citacao{
    margin:12px 0 0;padding:13px 15px;border-left:4px solid #c99432;
    background:rgba(255,255,255,.68);color:#5e4b29;font-family:Georgia,serif;
    font-style:italic;font-size:13px;line-height:1.65;border-radius:0 10px 10px 0;
  }
  .espiritualidade-perguntas{
    margin:10px 0 0;padding-left:19px;color:#43566a;font-size:13px;line-height:1.65;
  }
  .espiritualidade-perguntas li+li{margin-top:6px}
  .espiritualidade-etiqueta{
    display:inline-block;margin-bottom:8px;padding:4px 8px;border-radius:999px;
    background:#e6eef8;color:#174d91;font-size:10px;font-weight:800;text-transform:uppercase;
    letter-spacing:.05em;
  }
  .espiritualidade-oracao-final{
    margin-top:14px;padding:18px;border:1px solid #dcc689;border-left:5px solid #c99432;
    border-radius:15px;background:linear-gradient(135deg,#fff9ec,#f5e7c7);
  }
  .espiritualidade-oracao-final h4{margin:0 0 8px;color:#76520f;font-size:16px}
  .espiritualidade-oracao-final p{margin:0;color:#56472e;font-size:13px;line-height:1.72}
  .espiritualidade-misterio{
    padding:16px;border:1px solid #d8e2ec;border-radius:13px;background:#fff;margin-top:10px;
  }
  .espiritualidade-misterio strong{display:block;color:#0b2f67;font-size:14px;margin-bottom:5px}
  .espiritualidade-misterio small{display:block;color:#8a651f;font-weight:800;margin-bottom:7px}
  .espiritualidade-misterio p{margin:0;color:#4e6072;font-size:12px;line-height:1.62}
  .espiritualidade-exame{
    display:grid;gap:9px;margin-top:12px;
  }
  .espiritualidade-exame div{
    padding:12px 13px;border-radius:11px;background:#fff;border:1px solid #dfe6ed;
    color:#46596b;font-size:12px;line-height:1.55;
  }
  .espiritualidade-perfil{
    margin-top:16px;padding:16px;border-radius:14px;border:1px solid #c7d8eb;
    background:linear-gradient(135deg,#edf5fd,#e4eef9);
  }
  .espiritualidade-perfil h4{margin:0 0 7px;color:#0b2f67;font-size:15px}
  .espiritualidade-perfil p{margin:0;color:#456078;font-size:12px;line-height:1.6}


  /* ESCOLA DOS SANTOS */
  .santos-busca{
    margin:15px 0 16px;padding:14px;border:1px solid #cad8e6;border-radius:14px;
    background:linear-gradient(135deg,#f5f9fd,#edf4fb);
  }
  .santos-busca label{
    display:block;margin-bottom:7px;color:#0b2f67;font-size:13px;font-weight:800;
  }
  .santos-busca input{
    width:100%;padding:12px 13px;border:1px solid #b9cadc;border-radius:10px;
    background:#fff;color:#24384c;font:inherit;outline:none;
  }
  .santos-busca input:focus{border-color:#174d91;box-shadow:0 0 0 3px rgba(23,77,145,.10)}
  .santos-grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:12px;
  }
  .santo-card{
    padding:15px;border:1px solid #d5dfE9;border-radius:13px;background:#fff;
    box-shadow:0 4px 10px rgba(20,50,85,.05);cursor:pointer;text-align:left;
  }
  .santo-card h4{margin:0 0 5px;color:#0b2f67;font-size:15px}
  .santo-card p{margin:0;color:#667789;font-size:11px;line-height:1.45}
  .santo-card small{display:block;margin-top:7px;color:#9a6b1a;font-size:10px;font-weight:800}
  .santo-detalhe{
    margin-top:14px;padding:18px;border:1px solid #d8e2ec;border-radius:15px;
    background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);
    box-shadow:0 5px 14px rgba(20,50,85,.06);
  }
  .santo-detalhe h3{margin:0 0 4px;color:#0b2f67;font-size:20px}
  .santo-detalhe .santo-sub{color:#8a651f;font-size:11px;font-weight:800;margin-bottom:13px}
  .santo-bloco{
    margin-top:12px;padding-top:12px;border-top:1px solid #e2e7ed;
  }
  .santo-bloco:first-of-type{border-top:0;padding-top:0}
  .santo-bloco h4{margin:0 0 6px;color:#0b2f67;font-size:14px}
  .santo-bloco p{margin:0;color:#45596c;font-size:12px;line-height:1.68}
  .santo-frase{
    margin-top:12px;padding:12px 14px;border-left:4px solid #c99432;border-radius:0 10px 10px 0;
    background:#fff8e8;color:#624b1f;font-family:Georgia,serif;font-style:italic;font-size:12px;line-height:1.6;
  }
  .santos-vazio{
    padding:18px;text-align:center;color:#6a7785;border:1px dashed #cbd6e0;border-radius:12px;background:#fafcfe;
  }
  @media(max-width:620px){
    .santos-grid{grid-template-columns:1fr}
  }


  /* ESCOLA DOS SANTOS — navegação em subpágina */
  .santos-lista-view.oculta{display:none}
  .santo-view{display:none}
  .santo-view.ativa{display:block}
  .santo-view-topo{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
  .santo-view-voltar{border:1px solid #bdcde0;border-radius:10px;background:#fff;color:#0b2f67;padding:9px 12px;font-weight:800;cursor:pointer;white-space:nowrap;}
  .santo-view-titulo{min-width:0;color:#0b2f67;font-weight:800;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}


  /* NAVEGAÇÃO LIMPA — um único botão Voltar no cabeçalho */
  .espiritualidade-subvoltar,
  .santo-view-voltar{display:none !important;}

  .santo-view-topo{margin-bottom:12px;}

  /* PARÂMETROS DO SISTEMA */
  .parametros-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;align-items:start}
  .parametros-coluna{display:flex;flex-direction:column;gap:14px;min-width:0}
  .parametros-bloco{border:1px solid #d7e1ee;border-radius:15px;background:#fff;padding:16px;box-shadow:0 4px 12px rgba(11,55,111,.05)}
  .parametros-bloco h3{margin:0 0 12px;color:#0b376f;font-size:17px}
  .parametros-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .parametros-campo{display:flex;flex-direction:column;gap:5px;min-width:0}
  .parametros-campo.parametros-largo{grid-column:1/-1}
  .parametros-campo label{font-size:12px;font-weight:800;color:#173f70}
  .parametros-campo input,.parametros-campo select{width:100%;box-sizing:border-box;border:1px solid #bfd0e3;border-radius:10px;background:#fff;padding:10px;color:#24364a;font:inherit}
  .parametros-lista{display:grid;gap:10px}
  .parametros-item{border:1px solid #dbe4ee;border-left:4px solid #c9952e;border-radius:12px;padding:12px;background:#fbfcfe}
  .parametros-item-grade{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .parametros-acoes{position:static;display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding:12px;border:1px solid #d7e1ee;border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(11,55,111,.09)}
  .parametros-historico{max-height:300px;overflow:auto}
  .parametros-historico-item{padding:9px 0;border-bottom:1px solid #e5ebf2;font-size:12px;color:#4b6077}
  .parametros-comprovante{margin:14px 0;border:1px solid #9ed4ae;border-left:5px solid #2f9e58;border-radius:14px;background:#f2fbf5;padding:16px;color:#173f2a}
  .parametros-comprovante h3{margin:0 0 5px;color:#176b37}
  .parametros-comprovante-meta{margin:0 0 12px;font-size:13px;color:#496858}
  .parametros-comprovante-item{padding:9px 0;border-top:1px solid #cee8d6;font-size:13px}
  .parametros-comprovante-acoes{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
  .parametros-salvando{margin-top:9px;width:100%;height:9px;overflow:hidden;border-radius:999px;background:#dfe9f4;box-shadow:inset 0 1px 2px rgba(11,55,111,.12)}
  .parametros-salvando span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#0b376f,#2f83d4,#c9952e);transition:width .28s ease}
  .parametros-salvando.concluido span{width:100%;background:#2f9e58}
  .progresso-situacao-cadastro{margin-top:10px;padding:12px 14px;border:1px solid #c9d8e8;border-radius:12px;background:#f5f9fd;color:#123d7a;font-weight:700}
  .progresso-situacao-cadastro-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
  .progresso-situacao-cadastro-percentual{min-width:42px;text-align:right}
  .progresso-situacao-cadastro-barra{height:10px;overflow:hidden;border-radius:999px;background:#dfe9f4;box-shadow:inset 0 1px 2px rgba(11,55,111,.12)}
  .progresso-situacao-cadastro-barra span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#0b376f,#2f83d4,#c9952e);transition:width .28s ease}
  .progresso-situacao-cadastro.concluido .progresso-situacao-cadastro-barra span{background:#2f9e58}
  #statusTurma.status-situacao-flutuante{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:2100;transform:translateX(-50%);width:min(520px,calc(100% - 28px));box-sizing:border-box;margin:0;padding:0;border-radius:14px;background:#fff;box-shadow:0 12px 36px rgba(11,55,111,.32)}
  #statusTurma.status-situacao-flutuante .progresso-situacao-cadastro{margin:0;padding:14px 16px;border-radius:14px;background:#fff}
  .parametros-progresso-cabecalho{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}
  .parametros-progresso-percentual{min-width:46px;text-align:right;color:#0b376f;font-size:16px}
  .parametros-status-salvando{position:fixed;left:50%;bottom:18px;z-index:1600;transform:translateX(-50%);width:min(520px,calc(100% - 32px));box-sizing:border-box;padding:14px 16px;border:1px solid #b8cce2;border-radius:14px;background:#fff;box-shadow:0 10px 32px rgba(11,55,111,.25);color:#0b376f}
  @media(max-width:800px){.parametros-grade{display:flex;flex-direction:column}.parametros-coluna{display:contents}.parametros-bloco{order:var(--ordem-parametro,0)}.parametros-campos,.parametros-item-grade{grid-template-columns:1fr 1fr}.parametros-acoes{justify-content:stretch}.parametros-acoes button{flex:1}}
  @media(max-width:520px){.parametros-campos,.parametros-item-grade{grid-template-columns:1fr}}


    .detalhes-acompanhamento73 summary {cursor:pointer;color:#123b68;font-weight:700;padding:12px 0;}
    .cartao-acompanhamento .cabecalho-cartao-acompanhamento {display:flex;align-items:flex-start;flex-wrap:nowrap;gap:12px;}
    .cartao-acompanhamento .cabecalho-cartao-acompanhamento h3 {flex:1;min-width:0;overflow-wrap:anywhere;}
    .acoes-acompanhamento73 {display:flex;flex-direction:column;gap:8px;flex-shrink:0;margin-left:auto;}
    .cartao-acompanhamento .acoes-acompanhamento73 button {width:auto;min-width:0;min-height:36px;padding:6px 9px;font-size:13px;line-height:1.2;margin:0;white-space:nowrap;border-radius:10px;border:1px solid transparent;}
    .cartao-acompanhamento .acoes-acompanhamento73 .botao-registro-teste {background:#103b68;color:#fff;}
    .cartao-acompanhamento .acoes-acompanhamento73 .botao-secundario {background:#e6f2ec;color:#205b43;border-color:#b7d6c4;}
    .cartao-acompanhamento .acoes-acompanhamento73 button:focus-visible {outline:3px solid #c79730;outline-offset:2px;}
    .cartao-acompanhamento .acoes-acompanhamento73 button:disabled {opacity:.7;}
    @media(max-width:380px){.cartao-acompanhamento .acoes-acompanhamento73 button {font-size:12px;padding:6px 8px;} .cartao-acompanhamento .cabecalho-cartao-acompanhamento {gap:8px;}}
    .frequencia-acompanhamento73 {position:fixed;inset:0;z-index:99999;background:rgba(10,30,55,.55);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;}
    .frequencia-acompanhamento73 .janela73 {background:white;border-radius:20px;width:min(680px,100%);max-height:85vh;max-height:85dvh;overflow:auto;padding:22px;box-sizing:border-box;overscroll-behavior:contain;}
    .frequencia-acompanhamento73 .topo73 {display:flex;align-items:start;gap:12px;justify-content:space-between;}
    .frequencia-acompanhamento73 h3 {margin:0;color:#103b68;}
    .frequencia-acompanhamento73 .fechar73 {font-size:24px;min-width:44px;min-height:44px;cursor:pointer;}
    .frequencia-acompanhamento73 table {width:100%;border-collapse:collapse;}
    .frequencia-acompanhamento73 th,.frequencia-acompanhamento73 td {padding:10px;border-bottom:1px solid #dae2eb;text-align:left;}


    .datas-acompanhamento76 {display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin:16px 0;}
    .data-acompanhamento76 {display:flex;flex-direction:column;align-items:center;overflow:hidden;border:1px solid #d7e0e9;border-radius:12px;background:#f6f8fb;}
    .data-acompanhamento76 span {width:100%;box-sizing:border-box;text-align:center;padding:9px 4px;font-size:13px;font-weight:600;color:#123b68;border-bottom:1px solid #d7e0e9;}
    .data-acompanhamento76 strong {padding:10px 4px;font-size:20px;}
    .data-acompanhamento76.presenca76 {background:#e8f4ed;color:#216342;}
    .data-acompanhamento76.falta76 {background:#fceced;color:#9c3038;}
    .data-acompanhamento76.justificada76 {background:#fff4dc;color:#856013;}
    .legenda-acompanhamento76 {font-size:13px;color:#526171;}

    .cartao-acompanhamento {border-left-width:4px;border-radius:16px;box-shadow:0 3px 12px rgba(16,59,104,.06);}
    .identidade-acompanhamento77 {flex:1;min-width:0;}
    .cartao-acompanhamento .identidade-acompanhamento77 h3 {line-height:1.35;margin:0 0 10px;}
    .resumo-acompanhamento77 {display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
    .resumo-acompanhamento77 span {display:inline-block;padding:5px 9px;border-radius:8px;font-size:13px;line-height:1.3;}
    .turma-acompanhamento77 {background:#edf3fa;color:#244e78;}
    .faltas-acompanhamento77 {background:#fff2dc;color:#8a5a10;font-weight:700;}
    .cartao-acompanhamento .detalhes-acompanhamento73 summary {list-style:none;font-size:13px;padding:13px 0 0;margin-top:10px;border-top:1px solid #e7edf4;}
    .detalhes-acompanhamento73 summary::-webkit-details-marker {display:none;}
    .informacoes-acompanhamento77 .dados-pastorais {white-space:pre-line;}
    .informacoes-acompanhamento77 {margin-top:12px;background:#f5f8fc;border-radius:12px;padding:12px 14px;}
    .cartao-acompanhamento .informacoes-acompanhamento77 .dados-pastorais {margin:0 0 8px;font-size:14px;line-height:1.5;overflow-wrap:anywhere;}
    .cartao-acompanhamento .informacoes-acompanhamento77 .dados-pastorais:last-child {margin-bottom:0;}
    @media(max-width:380px){.resumo-acompanhamento77 span {font-size:12px;padding:4px 6px;}}

    .cartao-acompanhamento .acoes-acompanhamento73 .botao-cadastro-acompanhamento79 {background:#fff1e7;color:#8a4419;border-color:#e9c7b0;}

    .cartao-acompanhamento .inativar-texto81 {display:block;width:auto;min-height:36px;margin:0 0 10px;padding:6px 0;border:0;background:transparent;color:#a52d35;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
    .cartao-acompanhamento .inativar-texto81:focus-visible {outline:2px solid #a52d35;outline-offset:3px;}
    .cartao-acompanhamento .inativar-texto81:disabled {opacity:.5;cursor:wait;}

    .opcao-frequencia84 {display:flex;align-items:center;gap:9px;padding:12px 0;font-weight:600;cursor:pointer;}
    .opcao-frequencia84 input {width:20px;height:20px;flex-shrink:0;}
    .previa-frequencia84 {white-space:pre-line;border:1px solid #d9e4ef;background:#f1f6fb;color:#183c61;border-radius:12px;padding:12px;margin:0 0 12px;font-size:14px;line-height:1.5;}
    .whatsapp-acompanhamento84[aria-disabled="true"] {opacity:.55;cursor:wait;}
