/* Componentes globais (Bootstrap “SaaS polish”) */

/* Cards */
.card {
  border: 1px solid var(--siap-border);
  border-radius: var(--siap-radius);
  box-shadow: var(--siap-shadow-xs);
}
.card.shadow-sm { box-shadow: var(--siap-shadow-sm) !important; }
.card.shadow { box-shadow: var(--siap-shadow-md) !important; }

.card-header {
  border-bottom: 1px solid var(--siap-border);
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}

/* Botões */
.btn {
  border-radius: 12px;
  font-weight: 600;
  padding: 0.55rem 0.9rem;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease;
}
.btn:active { transform: translateY(0); }
.btn:hover { transform: translateY(-1px); }
.btn:focus { box-shadow: var(--siap-focus) !important; }

.btn-primary {
  background-color: var(--siap-accent);
  border-color: var(--siap-accent);
}
.btn-primary:hover {
  background-color: #0b5ed7;
  border-color: #0b5ed7;
}

.btn-outline-primary:hover { box-shadow: var(--siap-shadow-xs); }

/* Inputs */
.form-control,
.form-select {
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  box-shadow: none;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.form-control:focus,
.form-select:focus {
  border-color: rgba(13, 110, 253, 0.45);
  box-shadow: var(--siap-focus);
}
.form-label {
  font-weight: 600;
  color: rgba(15, 23, 42, 0.85);
}
.form-text { color: var(--siap-text-muted); }

/* Tabelas */
.table {
  border-color: rgba(15, 23, 42, 0.10);
}
.table thead th {
  font-weight: 700;
  color: rgba(15, 23, 42, 0.75);
  border-bottom: 1px solid rgba(15, 23, 42, 0.12);
}
.table-hover tbody tr:hover {
  background-color: rgba(13, 110, 253, 0.04);
}
.table-striped>tbody>tr:nth-of-type(odd)>* {
  --bs-table-bg-type: rgba(15, 23, 42, 0.02);
}

/* Simulação: tabela compacta de proventos (evita “estouro” de valores) */
.su-proventos-table {
  width: 100%;
  table-layout: fixed;
}
.su-proventos-table td.su-proventos-k {
  width: 62%;
  white-space: normal;
  overflow-wrap: anywhere;
}
.su-proventos-table td.su-proventos-v {
  width: 38%;
  text-align: right;
  /* 1 linha sempre; sem reticências. Se não couber, JS reduz a fonte. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}
/* Simulação: linhas de ajuste do provento (Elevado p/ Sal. Min. / Limitado Ã  última remuneração)
   — destaque em âmbar + negrito para identificação rápida, inclusive na impressão/PDF. */
.su-proventos-table tr.su-proventos-destaque td {
  background-color: #fff3cd;
  color: #8a4b00;
  font-weight: 700;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Simulação: Identificação do segurado — layout estável em qualquer monitor */
.su-ident-grid {
  /* sobrescreve o flex do Bootstrap row para evitar reflow “quebrado” em telas específicas */
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 0.75rem 1.25rem;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.su-ident-grid > .col {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  overflow-wrap: anywhere;
}

/* Modais */
.modal {
  /* * A barra de menus usa z-index alto (ver `menubar.css`) para ficar sempre clicável.
   * Em telas pequenas isso pode “cobrir” o modal. Garantimos que o modal e o backdrop
   * fiquem acima do menu sem alterar o comportamento dele. */
  /* reforça acima do menu mesmo se houver override externo */
  z-index: 2100 !important;
  --bs-modal-zindex: 2100;
}
.modal-backdrop {
  z-index: 2090 !important;
  --bs-backdrop-zindex: 2090;
}

.modal-content {
  border-radius: var(--siap-radius-lg);
  border: 1px solid var(--siap-border);
  box-shadow: var(--siap-shadow-md);
}
.modal-header {
  border-bottom: 1px solid var(--siap-border);
}
.modal-footer {
  border-top: 1px solid var(--siap-border);
}

/* Em telas pequenas, evita “corte” do modal e usa scroll interno quando necessário */
@media (max-width: 576px) {
  .modal-dialog {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  .modal-dialog.modal-dialog-centered {
    min-height: calc(100% - 1rem);
    align-items: flex-start;
  }
  .modal-content {
    max-height: calc(100vh - 1rem);
  }
  .modal-body {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Dropdown */
.dropdown-menu {
  border-radius: 14px;
  border: 1px solid var(--siap-border);
  box-shadow: var(--siap-shadow-sm);
}

/* Alerts (mantém compatibilidade com toasts que convertem .alert) */
.alert {
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  box-shadow: var(--siap-shadow-xs);
}

/* Badges */
.badge {
  border-radius: 999px;
  padding: 0.35rem 0.6rem;
  font-weight: 700;
}



/* Acessibilidade: link "Pular para o conteúdo" (visível apenas com foco
   via teclado — primeiro Tab da página). Vem do cabeçalho do sistema. */
.siap-skip-link {
  position: absolute;
  left: 12px;
  top: -48px;
  z-index: 2000;
  background: var(--siap-primary);
  color: #fff;
  padding: .5rem .9rem;
  border-radius: 0 0 10px 10px;
  font-weight: 600;
  text-decoration: none;
  transition: top .15s ease;
}
.siap-skip-link:focus {
  top: 0;
  color: #fff;
  outline: 3px solid rgba(13, 110, 253, .45);
  outline-offset: 2px;
}

/* Notificação de campos obrigatórios (reutilizável — usada pelo módulo
   assets/js/siap_form_obrigatorios.js em qualquer tela do sistema). */
.siap-toast-valida {
  position: fixed;
  top: 78px;
  right: 16px;
  z-index: 2000;
  max-width: min(380px, calc(100vw - 32px));
  background: #fff;
  border: 1px solid #f0d4d4;
  border-left: 4px solid #dc3545;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(2, 6, 23, .18);
  padding: .7rem 1.6rem .7rem .8rem;
  color: #6b1720;
  font-size: .85rem;
}
.siap-toast-valida[hidden] { display: none; }
.siap-toast-valida__tit { font-weight: 700; margin-bottom: .3rem; }
.siap-toast-valida__tit .bi { color: #dc3545; }
.siap-toast-valida__lista { margin: 0; padding-left: 1.1rem; }
.siap-toast-valida__lista li { margin: .1rem 0; }
.siap-toast-valida__x {
  position: absolute;
  top: 4px;
  right: 8px;
  border: 0;
  background: transparent;
  font-size: 1.2rem;
  line-height: 1;
  color: #9aa4b2;
  cursor: pointer;
}
@media (prefers-reduced-motion: no-preference) {
  .siap-toast-valida:not([hidden]) { animation: siapToastValidaIn .2s ease both; }
}
@keyframes siapToastValidaIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* Barra de tempo (countdown de 5s) na base da notificação de obrigatórios */
.siap-toast-valida__timer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: rgba(220, 53, 69, .15);
  border-radius: 0 0 12px 12px;
  overflow: hidden;
}
.siap-toast-valida__timerfill {
  display: block;
  height: 100%;
  width: 100%;
  background: #dc3545;
  transform-origin: left;
  animation: siapToastValidaTimer 8s linear forwards;
}
@keyframes siapToastValidaTimer {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .siap-toast-valida__timerfill { animation: none; }
}

/* Cabeçalho padrão de impressão: existe no HTML
   da tela, mas só vai para o papel — quem o desenha é o print.css. */
.siap-print-cab { display: none; }

/* VOLTAR AO TOPO — aparece só depois que a tela desce um pouco.
   Fica preso ao canto da própria tela; dentro da moldura ele se desloca para a
   esquerda, para não cobrir o botão "Fechar", que é da moldura e mora no mesmo
   canto. */
.siap-ao-topo {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1035;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--siap-primary, #2c5b9c);
  border-radius: 50%;
  background: var(--siap-primary, #2c5b9c);
  color: #fff;
  font-size: 1.05rem;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(44, 91, 156, 0.32);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s,
              background-color .16s ease, box-shadow .16s ease;
}
.siap-ao-topo.is-visivel {
  opacity: 1;
  visibility: visible;
  transform: none;
}
/* Vem DEPOIS do .is-visivel de propósito: as duas regras têm o mesmo peso, e é
   a ordem que faz o efeito do mouse valer sobre a posição de repouso. */
.siap-ao-topo:hover {
  background: var(--siap-primary-2, #24406e);
  border-color: var(--siap-primary-2, #24406e);
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(44, 91, 156, 0.42);
}
.siap-ao-topo:active { transform: translateY(-1px); }
.siap-ao-topo:focus-visible {
  outline: 3px solid rgba(13, 110, 253, .45);
  outline-offset: 2px;
}
/* A seta sobe e volta enquanto o mouse está em cima: diz o que o botão faz */
@media (prefers-reduced-motion: no-preference) {
  .siap-ao-topo:hover .bi { animation: siapAoTopoSeta .7s ease-in-out infinite; }
}
@keyframes siapAoTopoSeta {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-3px); }
}
/* Dentro da moldura o "Fechar" ocupa o canto: o topo sai da frente dele */
html.siap-embutida .siap-ao-topo { right: 104px; }

@media (max-width: 575.98px) {
  .siap-ao-topo { width: 34px; height: 34px; right: 12px; bottom: 12px; }
  html.siap-embutida .siap-ao-topo { right: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .siap-ao-topo,
  .siap-ao-topo:hover,
  .siap-ao-topo:active {
    transition: opacity .16s ease, visibility .16s, background-color .16s ease;
    transform: none;
  }
  .siap-ao-topo:hover .bi { animation: none; }
}
@media print {
  .siap-ao-topo { display: none !important; }
}

/* ============================================================
   COPIA PELO CLIQUE NA CELULA — componentes GLOBAIS do padrao.
   Motor: assets/js/siap_copia_celula.js. Basta marcar a celula
   com td.js-celula-copia e incluir o script na tela.
   A notificacao padrao de copia e a pilula .siap-copy-toast
   ("ROTULO copiado: valor", centro-inferior). Telas antigas com
   regras proprias identicas continuam validas.
   ============================================================ */
td.js-celula-copia { cursor: pointer; }

td.siap-copiado {
  background: rgba(25, 135, 84, .16) !important;
  transition: background .12s ease;
}
td.siap-copiado-erro {
  background: rgba(255, 193, 7, .22) !important;   /* ambar: "nada a copiar" ou falha */
  transition: background .12s ease;
}
@media (prefers-reduced-motion: reduce) {
  td.siap-copiado,
  td.siap-copiado-erro { transition: none; }
}

/* Linha de onde se copiou fica destacada ate copiar de outra */
tr.siap-linha-selecionada > td { background: rgba(44, 91, 156, .18) !important; }
tr.siap-linha-selecionada > td.siap-copiado { background: rgba(25, 135, 84, .16) !important; }

/* A pilula de confirmacao (padrao de notificacao de copia) */
.siap-copy-toast {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%) translateY(8px);
  background: #1f2937;
  color: #fff;
  border-radius: 999px;
  padding: .5rem 1rem;
  font-size: .84rem;
  box-shadow: 0 10px 28px rgba(2, 6, 23, .35);
  z-index: 3500;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
  max-width: min(90vw, 640px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.siap-copy-toast.mostra {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.siap-copy-toast .bi { margin-right: .35rem; }

@media print {
  .siap-copy-toast { display: none !important; }
  tr.siap-linha-selecionada > td { background: transparent !important; }
}

/* Linha "Totais do filtro" no rodape das listagens (mesmo visual do fecho da
   Relacao de Contribuicao), com cada soma ALINHADA sob a coluna que ela soma.
   Totais do FILTRO inteiro, nao so da pagina exibida. */
tr.siap-fecho-tr > td {
  background-color: #eaf5ef !important;
  --bs-table-bg: #eaf5ef;
  --bs-table-bg-type: #eaf5ef;
  border-top: 2px solid #cfe6d9;
  color: #14532d;
  font-weight: 700;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
  white-space: nowrap;
}
tr.siap-fecho-tr .siap-fecho__tit {
  font-size: .74rem;
  font-weight: 700;
  color: #14532d;
  white-space: nowrap;
}
tr.siap-fecho-tr .siap-fecho__rot {
  font-size: .66rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6b7a90;
  margin-right: .3rem;
}
tr.siap-fecho-tr .siap-fecho__nota {
  font-size: .68rem;
  font-weight: 400;
  color: var(--siap-text-muted);
  margin-left: .6rem;
  white-space: normal;
}
@media print {
  tr.siap-fecho-tr > td {
    background-color: #eaf5ef !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-size: 8.5pt;
  }
  tr.siap-fecho-tr .siap-fecho__tit { font-size: 8.5pt; }
  tr.siap-fecho-tr .siap-fecho__rot { font-size: 7pt; color: #444; }
  tr.siap-fecho-tr .siap-fecho__nota { font-size: 7pt; color: #555; }
}

/* Botões no pé do painel "Mais filtros".
   Ficam onde o preenchimento termina: com o painel aberto, a faixa azul lá em
   cima fica longe demais para servir de botão de aplicar. */
.siap-mf-acoes {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding-top: 0.5rem;
}
.siap-mais-filtros .siap-mf-acoes { padding-top: 0.55rem; }

/* Painel "Mais filtros" das listagens (abre abaixo da faixa azul, no mesmo form) */
.siap-mais-filtros {
  background: #f5f9ff;
  border-bottom: 1px solid #dbe6f3;
  padding: .35rem .7rem .45rem;
}
/* MESMO estilo dos campos do relatório Relação de Contribuição Previdenciária */
.siap-mais-filtros .form-label {
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #5c6b80;
  margin-bottom: .15rem;
  /* Rótulo longo quebra dentro da própria coluna em vez de invadir a vizinha;
     os campos continuam alinhados pela base (align-items: flex-end). */
  white-space: normal;
  line-height: 1.2;
  display: block;
}
/* Seletor com a classe -sm de propósito: as telas de lançamento têm a régua
   "siap-densa" (fonte .84rem + min-height) que, com menos classes, venceria e
   engrossaria o campo. Aqui o campo fica fino como no relatório. */
.siap-mais-filtros .form-control.form-control-sm,
.siap-mais-filtros .form-select.form-select-sm {
  font-size: .78rem;
  padding: .22rem .45rem;
  height: auto;
  min-height: 0;
  line-height: 1.5;
  border-radius: 8px;
  border-color: #d7e0ee;
  width: 100%;
}
.siap-mais-filtros .form-control.form-control-sm:focus,
.siap-mais-filtros .form-select.form-select-sm:focus {
  border-color: var(--siap-accent);
  box-shadow: var(--siap-focus);
}
.siap-mais-filtros .form-select.form-select-sm {
  padding-right: 1.4rem;
  background-position: right .4rem center;
}
/* Prefixo "R$" dos campos de valor (mesmo formato do relatório de contribuição) */
.siap-mais-filtros .input-group .input-group-text {
  font-size: .74rem;
  padding: .22rem .45rem;
  height: auto;
  min-height: 0;
  line-height: 1.5;
  border-radius: 8px 0 0 8px;
  border-color: #d7e0ee;
  background: #f4f7fc;
  color: #5c6b80;
}
/* Dentro do grupo o campo divide a linha com o "R$": sem isto o width:100%
   acima empurra o prefixo para a linha de cima. */
.siap-mais-filtros .input-group { flex-wrap: nowrap; }
.siap-mais-filtros .input-group > .form-control.form-control-sm {
  width: 1%;
  flex: 1 1 auto;
  min-width: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.siap-mais-filtros .input-group > .input-group-text { flex: 0 0 auto; }

/* Fileira compacta: larguras justas por tipo de campo, para caber o máximo em
   uma linha. São flexíveis — encolhem um pouco e, quando não cabem mais, passam
   para a linha de baixo (tela menor = mais linhas, nunca sobreposição). */
.siap-mais-filtros .siap-mf-linha {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .4rem .8rem;
}
.siap-mais-filtros .siap-mf-campo { flex: 0 1 auto; min-width: 96px; }
.siap-mais-filtros .siap-mf-campo--comp  { width: 146px; }
/* Valor com folga: com a máscara, "1.234.567,89" precisa caber sem cortar. */
.siap-mais-filtros .siap-mf-campo--valor { width: 158px; }
.siap-mais-filtros .siap-mf-campo--num   { width: 104px; }
.siap-mais-filtros .siap-mf-campo--sel   { width: 146px; }
.siap-mais-filtros .siap-mf-campo--txt   { width: 156px; }
.siap-mais-filtros .siap-mf-campo--ordem { width: 192px; }
/* Valor alinhado à direita, como em toda a tela */
.siap-mais-filtros input[data-siap-money="1"] {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 991.98px) {
  .siap-mais-filtros .siap-mf-campo { width: calc(25% - .6rem); }
}
@media (max-width: 767.98px) {
  .siap-mais-filtros .siap-mf-campo { width: calc(33.333% - .55rem); }
}
@media (max-width: 575.98px) {
  .siap-mais-filtros .siap-mf-campo { width: calc(50% - .4rem); }
}
.siap-mais-filtros[hidden] { display: none; }
@media print { .siap-mais-filtros { display: none !important; } }

/* Botao "Mais filtros" na faixa azul das listagens: texto compacto para a barra
   continuar em UMA linha (o padrao fino do sistema). */
.siap-filtros-compactos .siap-mf-txt {
  font-size: .78rem;
  white-space: nowrap;
}
.siap-filtros-compactos .btn.active {
  background-color: #e7eefb;
  border-color: #c9dcf5;
}

/* Faixa azul das listagens com barra de filtros (Bases, Receitas, Despesas):
   MESMAS medidas do cabecalho da Relacao de Contribuicao - a barra fica fina e
   os controles delicados, sem alterar as demais telas. */
.card-header.header-azul.siap-faixa-filtros { padding: .3rem .7rem; }
.card-header.header-azul.siap-faixa-filtros h4 {
  font-size: .86rem;
  line-height: 1.3;
  white-space: nowrap;
}
.card-header.header-azul.siap-faixa-filtros h4 .bi { font-size: .9rem; }
.card-header.header-azul.siap-faixa-filtros .btn {
  padding: .15rem .5rem;
  font-size: .75rem;
  line-height: 1.35;
  border-radius: 7px;
  white-space: nowrap;
}
.card-header.header-azul.siap-faixa-filtros .form-control,
.card-header.header-azul.siap-faixa-filtros .form-select {
  font-size: .75rem;
  padding: .15rem .45rem;
  height: auto;
  min-height: 0;
  line-height: 1.35;
  border-radius: 7px;
}
.card-header.header-azul.siap-faixa-filtros .form-select {
  padding-right: 1.25rem;
  background-position: right .3rem center;
  background-size: 11px 8px;
}

/* ─────────────────────────── Paginação ───────────────────────────
   Definição ÚNICA do sistema. Antes este mesmo bloco estava copiado em 13
   arquivos de assets/css/pages/ (um por tela, mudando só o prefixo do body).
   Como `body.pg-x .pagination .page-link` vence `.pagination .page-link` por
   especificidade, qualquer ajuste feito no componente era silenciosamente
   ignorado — e sete daquelas cópias eram para telas que nem paginam.

   Medidas: o botão ocupava 40x34,5px, tamanho de site, não de sistema denso.
   Aqui ele fica em 26x24px. O piso de 24px é deliberado e NÃO deve ser
   reduzido: é o mínimo de alvo de clique (WCAG 2.5.8) e, numa lista com nove
   páginas lado a lado, abaixo disso o operador erra a página que quer abrir. */
.pagination .page-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  min-height: 24px;
  padding: .1rem .35rem;
  margin: 0 2px;
  border-radius: 8px;
  border-color: #e2e9f4;
  color: #46556b;
  font-weight: 600;
  font-size: .78rem;
  line-height: 1.2;
  text-align: center;
}
.pagination .page-item.active .page-link {
  background: linear-gradient(135deg, var(--siap-primary) 0%, var(--siap-primary-2) 100%);
  border-color: var(--siap-primary);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 2px 6px rgba(44, 91, 156, .30);
}
.pagination .page-item.disabled .page-link { opacity: .5; }

/* Visor de PDF em caixa (assets/js/siap_ctc_visor.js) — a Emissão de CTC e o
   Histórico de CTC mostram o documento aqui antes de imprimir ou salvar.
   A altura é presa ao tamanho da JANELA, e nao ao do conteudo: um PDF de
   cinco folhas esticaria a caixa para fora da tela. */
.siap-visor .siap-visor__quadro {
  width: 100%;
  height: 72vh;
  min-height: 320px;
  border: 0;
  display: block;
  background: #525659;
}
.siap-visor .siap-visor__espera { min-height: 320px; display: grid; place-content: center; }

@media (max-width: 767.98px) {
  .siap-visor .siap-visor__quadro { height: 62vh; }
}

/* IMPRESSÃO DE UMA JANELA (assets/js/siap_imprimir_modal.js) — o botão Imprimir
   de um modal leva ao papel só o conteúdo dele, debaixo do cabeçalho padrão da
   tela. Na tela a cópia nunca aparece; no papel, enquanto o corpo da página tem
   a classe de impressão do modal, só ela vai para a folha. Sem a classe (Ctrl+P
   ou o Imprimir da tela), a cópia continua fora do papel. O script repete as
   duas regras de página dentro da cópia: no Chrome, o @page sem nome de uma
   folha carregada depois (a da tela, em paisagem) vence o nomeado daqui. */
.siap-impressao-modal { display: none; }
@page siap-impressao-modal { size: A4 portrait; margin: 12mm; }
@page siap-impressao-modal-paisagem { size: A4 landscape; margin: 10mm; }
@media print {
  .siap-impressao-modal { display: none !important; }
  body.siap-imprimindo-modal {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.siap-imprimindo-modal > *:not(.siap-impressao-modal) { display: none !important; }
  body.siap-imprimindo-modal > .siap-impressao-modal {
    display: block !important;
    page: siap-impressao-modal;
    color: #1f2937;
    background: #fff;
  }
  body.siap-imprimindo-modal > .siap-impressao-modal--paisagem { page: siap-impressao-modal-paisagem; }
  .siap-impressao-modal,
  .siap-impressao-modal * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .siap-impressao-modal .siap-print-cab__ente { flex: 1 1 55%; }
  .siap-impressao-modal .siap-print-cab__doc { flex: 0 1 45%; white-space: normal; }
  .siap-impressao-modal__titulo {
    margin: 0 0 3mm;
    font-size: 11pt;
    font-weight: 700;
    line-height: 1.25;
    color: #1e3a66;
    break-after: avoid;
    page-break-after: avoid;
  }
  .siap-impressao-modal .modal-content {
    display: block;
    position: static;
    width: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
  }
  .siap-impressao-modal .modal-body {
    overflow: visible;
    max-height: none;
  }
  .siap-impressao-modal section,
  .siap-impressao-modal li,
  .siap-impressao-modal tr,
  .siap-impressao-modal dl > div {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}
