/* =========================================================================
   Investiga PJ — folha de estilo unica
   Interface orientada a leitura de evidencia: hierarquia clara, densidade
   controlada e nenhum elemento decorativo sem funcao.
   ====================================================================== */

:root {
  --azul-900: #072a44;
  --azul-800: #0b3d61;
  --azul-700: #12547f;
  --azul-100: #e3eef6;
  --azul-050: #f2f7fb;

  --tinta: #16202a;
  --tinta-media: #4a5866;
  --tinta-fraca: #6f7d8c;

  --fundo: #f6f8fa;
  --superficie: #ffffff;
  --borda: #d7dee6;
  --borda-forte: #b9c5d1;

  --ok-fundo: #e6f4ea;   --ok-borda: #96ceaa;   --ok-tinta: #1b5e34;
  --alerta-fundo: #fdf3e3; --alerta-borda: #e8c88a; --alerta-tinta: #7a5314;
  --erro-fundo: #fdeceb;  --erro-borda: #edb0ab;  --erro-tinta: #8d2820;
  --info-fundo: #eaf1f8;  --info-borda: #aac4dd;  --info-tinta: #1b4c78;
  --neutro-fundo: #eef1f4; --neutro-borda: #cdd5dd; --neutro-tinta: #4a5866;
  --roxo-fundo: #f0ebf8;  --roxo-borda: #c3b0e0;  --roxo-tinta: #4c3378;

  --raio: 6px;
  --sombra: 0 1px 2px rgba(16, 32, 48, .06), 0 4px 12px rgba(16, 32, 48, .05);
  --fonte: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--fonte);
  font-size: 15px;
  line-height: 1.5;
  color: var(--tinta);
  background: var(--fundo);
}

h1, h2, h3, h4, h5 { margin: 0 0 .4em; line-height: 1.25; font-weight: 650; }
h1 { font-size: 1.25rem; }
h2 { font-size: 1.15rem; }
h3 { font-size: 1rem; }
h4 { font-size: .95rem; }
h5 { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-media); }
p { margin: 0 0 .7em; }

code { font-family: var(--mono); font-size: .82em; word-break: break-all; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.pular {
  position: absolute; left: -999px; top: 0; z-index: 100;
  background: var(--azul-800); color: #fff; padding: .6rem 1rem;
}
.pular:focus { left: .5rem; top: .5rem; }

/* ---------------------------------------------------------------- Topo */

.topo {
  background: var(--azul-800);
  color: #fff;
  border-bottom: 3px solid var(--azul-900);
}
.topo-interno { max-width: 1200px; margin: 0 auto; padding: 1rem 1.25rem 1.1rem; }

.marca { display: flex; align-items: center; gap: .85rem; margin-bottom: .9rem; }
.marca-sigla {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; flex: 0 0 42px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--raio); font-weight: 700; letter-spacing: .02em; font-size: .82rem;
}
.marca h1 { color: #fff; margin: 0; }
.marca-sub { margin: .15rem 0 0; font-size: .85rem; color: rgba(255,255,255,.82); }

.busca { display: flex; gap: .5rem; flex-wrap: wrap; }
.busca-campo {
  flex: 1 1 320px; min-width: 0;
  padding: .6rem .75rem;
  font-family: var(--fonte); font-size: .95rem;
  border: 1px solid var(--borda-forte); border-radius: var(--raio);
  background: #fff; color: var(--tinta);
}
.busca-campo:focus { outline: 3px solid #8fc4ee; outline-offset: 1px; }

.resumo-fontes { margin-top: .7rem; font-size: .82rem; color: rgba(255,255,255,.85); }
.resumo-fontes p { margin: 0; }
.resumo-fontes strong { color: #fff; }

/* -------------------------------------------------------------- Botoes */

.btn {
  font-family: var(--fonte); font-size: .88rem; font-weight: 550;
  padding: .55rem .85rem; border-radius: var(--raio);
  border: 1px solid transparent; cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease;
}
.btn:focus-visible { outline: 3px solid #8fc4ee; outline-offset: 1px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }

.btn-pri { background: #1a6fb0; color: #fff; border-color: #155d94; }
.btn-pri:hover:not(:disabled) { background: #155d94; }

.btn-sec { background: var(--superficie); color: var(--azul-800); border-color: var(--borda-forte); }
.btn-sec:hover:not(:disabled) { background: var(--azul-050); border-color: var(--azul-700); }

.btn-link {
  background: none; border: none; color: var(--azul-700);
  text-decoration: underline; padding: .25rem .3rem;
}
.btn-link:hover:not(:disabled) { color: var(--azul-900); }

.btn-sm { font-size: .8rem; padding: .35rem .6rem; }

.link-ext {
  display: inline-flex; align-items: center; gap: .25rem;
  color: var(--azul-700); font-size: .82rem; font-weight: 550; text-decoration: underline;
}
.link-ext:hover { color: var(--azul-900); }
.ext-glifo { font-size: .9em; }

/* ------------------------------------------------------------ Mensagens */

.faixa-mensagem:empty, .faixa-progresso:empty { display: none; }

.mensagem, .faixa-mensagem > p {
  max-width: 1200px; margin: .75rem auto; padding: .6rem .9rem;
  border-radius: var(--raio); border: 1px solid; font-size: .88rem;
}
.msg-ok    { background: var(--ok-fundo);    border-color: var(--ok-borda);    color: var(--ok-tinta); }
.msg-aviso { background: var(--alerta-fundo);border-color: var(--alerta-borda);color: var(--alerta-tinta); }
.msg-erro  { background: var(--erro-fundo);  border-color: var(--erro-borda);  color: var(--erro-tinta); }
.msg-info  { background: var(--info-fundo);  border-color: var(--info-borda);  color: var(--info-tinta); }

.faixa-progresso { max-width: 1200px; margin: .5rem auto 0; padding: 0 1.25rem; }
.progresso { list-style: none; margin: 0; padding: 0; }
.progresso li {
  display: flex; align-items: center; gap: .5rem;
  font-size: .85rem; color: var(--tinta-media);
  padding: .45rem .6rem; background: var(--superficie);
  border: 1px solid var(--borda); border-radius: var(--raio);
}
.spinner {
  width: 13px; height: 13px; flex: 0 0 13px;
  border: 2px solid var(--borda-forte); border-top-color: var(--azul-700);
  border-radius: 50%; animation: girar .7s linear infinite;
}
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation: none; } }

/* ------------------------------------------------------------ Principal */

.principal { max-width: 1200px; margin: 0 auto; padding: 1rem 1.25rem 3rem; }

.boas-vindas { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 1.25rem; box-shadow: var(--sombra); }
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1rem; margin: 1rem 0; }
.cartao { background: var(--azul-050); border: 1px solid var(--borda); border-radius: var(--raio); padding: .9rem 1rem; }
.cartao h3 { color: var(--azul-800); }
.cartao ul { margin: 0; padding-left: 1.1rem; font-size: .86rem; color: var(--tinta-media); }
.cartao li { margin-bottom: .4rem; }
.cartao strong { color: var(--tinta); }

.nota-destaque {
  background: var(--info-fundo); border: 1px solid var(--info-borda);
  color: var(--info-tinta); padding: .7rem .9rem; border-radius: var(--raio);
  font-size: .86rem; margin: 0;
}

/* ------------------------------------------------------------ Navegacao */

.navegacao {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  padding: .6rem .75rem; margin-bottom: .9rem;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio);
}
.trilha-area { flex: 1 1 100%; min-width: 0; }
.trilha { display: flex; flex-wrap: wrap; gap: .3rem; list-style: none; margin: 0; padding: 0; counter-reset: t; }
.trilha li { display: flex; align-items: center; }
.trilha li::after { content: "›"; color: var(--tinta-fraca); margin: 0 .1rem 0 .3rem; }
.trilha li:last-child::after { content: ""; }
.trilha-item {
  background: none; border: none; cursor: pointer;
  font-family: var(--fonte); font-size: .8rem; color: var(--azul-700);
  padding: .2rem .35rem; border-radius: 3px; text-align: left;
  max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.trilha-item:hover { background: var(--azul-050); }
.trilha-atual { font-weight: 650; color: var(--tinta); text-decoration: underline; }

/* -------------------------------------------------------- Entidade/abas */

.entidade-cabecalho {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap;
  background: var(--superficie); border: 1px solid var(--borda);
  border-left: 4px solid var(--azul-700); border-radius: var(--raio);
  padding: 1rem 1.1rem; margin-bottom: .9rem; box-shadow: var(--sombra);
}
.entidade-id { min-width: 0; flex: 1 1 340px; }
.entidade-titulo { margin: 0; color: var(--azul-900); overflow-wrap: anywhere; }
.entidade-sub { margin: .2rem 0 .5rem; font-size: .86rem; color: var(--tinta-media); overflow-wrap: anywhere; }
.entidade-acoes { display: flex; gap: .4rem; flex-wrap: wrap; }
.chips { display: flex; flex-wrap: wrap; gap: .3rem; }

.abas {
  display: flex; gap: .2rem; flex-wrap: wrap;
  border-bottom: 2px solid var(--borda); margin-bottom: .75rem;
}
.aba {
  background: none; border: none; border-bottom: 3px solid transparent;
  padding: .55rem .8rem; margin-bottom: -2px; cursor: pointer;
  font-family: var(--fonte); font-size: .88rem; font-weight: 550; color: var(--tinta-media);
}
.aba:hover { color: var(--azul-800); background: var(--azul-050); }
.aba-ativa { color: var(--azul-900); border-bottom-color: var(--azul-700); }

/* -------------------------------------------------------------- Filtros */

.filtros:empty { display: none; }
.filtros-linha { display: flex; flex-wrap: wrap; gap: .7rem; align-items: flex-end; margin-bottom: .9rem; }
.filtro { display: flex; flex-direction: column; gap: .2rem; }
.filtro label { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-fraca); font-weight: 600; }
.filtro-campo {
  padding: .4rem .5rem; font-family: var(--fonte); font-size: .85rem;
  border: 1px solid var(--borda-forte); border-radius: var(--raio);
  background: var(--superficie); color: var(--tinta); min-width: 170px;
}
.filtro-campo:focus { outline: 2px solid #8fc4ee; outline-offset: 1px; }

/* --------------------------------------------------------------- Secoes */

.secao {
  background: var(--superficie); border: 1px solid var(--borda);
  border-radius: var(--raio); padding: .9rem 1.05rem; margin-bottom: .9rem;
}
.secao-titulo { color: var(--azul-800); margin-bottom: .3rem; }
.secao-desc { font-size: .82rem; color: var(--tinta-fraca); margin-bottom: .7rem; }

.vazio {
  padding: 1rem; background: var(--neutro-fundo); border: 1px dashed var(--borda-forte);
  border-radius: var(--raio); color: var(--tinta-media); font-size: .88rem; margin: 0;
}

.lista-simples { margin: 0; padding-left: 1.15rem; font-size: .87rem; }
.lista-simples li { margin-bottom: .3rem; }

.nota { font-size: .82rem; color: var(--tinta-media); margin: 0 0 .5rem; }

.aviso {
  font-size: .84rem; padding: .55rem .75rem; border-radius: var(--raio);
  border: 1px solid var(--info-borda); background: var(--info-fundo); color: var(--info-tinta);
  margin: 0 0 .6rem;
}
.aviso-conflito { border-color: var(--alerta-borda); background: var(--alerta-fundo); color: var(--alerta-tinta); }
.aviso-erro { border-color: var(--erro-borda); background: var(--erro-fundo); color: var(--erro-tinta); }
.aviso-ok { border-color: var(--ok-borda); background: var(--ok-fundo); color: var(--ok-tinta); }

/* -------------------------------------------------------------- Badges */

.badge {
  display: inline-block; padding: .13rem .45rem; border-radius: 3px;
  font-size: .68rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  border: 1px solid; white-space: nowrap;
  background: var(--neutro-fundo); border-color: var(--neutro-borda); color: var(--neutro-tinta);
}
.b-confirmado { background: var(--ok-fundo); border-color: var(--ok-borda); color: var(--ok-tinta); }
.b-multiplas  { background: var(--ok-fundo); border-color: var(--ok-tinta); color: var(--ok-tinta); }
.b-correlacao { background: var(--info-fundo); border-color: var(--info-borda); color: var(--info-tinta); }
.b-possivel   { background: var(--roxo-fundo); border-color: var(--roxo-borda); color: var(--roxo-tinta); }
.b-conflito   { background: var(--alerta-fundo); border-color: var(--alerta-borda); color: var(--alerta-tinta); }
.b-nao        { background: var(--neutro-fundo); border-color: var(--neutro-borda); color: var(--neutro-tinta); }
.b-oficial    { background: var(--azul-100); border-color: var(--azul-700); color: var(--azul-800); }
.b-publica    { background: var(--neutro-fundo); border-color: var(--borda-forte); color: var(--tinta-media); }
.b-auto       { background: var(--ok-fundo); border-color: var(--ok-borda); color: var(--ok-tinta); }

.s-ok { background: var(--ok-fundo); border-color: var(--ok-borda); color: var(--ok-tinta); }
.s-vazio { background: var(--neutro-fundo); border-color: var(--neutro-borda); color: var(--neutro-tinta); }
.s-indisponivel { background: var(--erro-fundo); border-color: var(--erro-borda); color: var(--erro-tinta); }
.s-erro { background: var(--erro-fundo); border-color: var(--erro-borda); color: var(--erro-tinta); }
.s-timeout { background: var(--alerta-fundo); border-color: var(--alerta-borda); color: var(--alerta-tinta); }
.s-externo { background: var(--roxo-fundo); border-color: var(--roxo-borda); color: var(--roxo-tinta); }
.s-na { background: var(--neutro-fundo); border-color: var(--neutro-borda); color: var(--neutro-tinta); }

.t-empresa { background: var(--azul-100); border-color: var(--azul-700); color: var(--azul-800); }
.t-pessoa { background: var(--roxo-fundo); border-color: var(--roxo-borda); color: var(--roxo-tinta); }
.t-contrato, .t-documento { background: var(--ok-fundo); border-color: var(--ok-borda); color: var(--ok-tinta); }
.t-endereco, .t-municipio { background: var(--alerta-fundo); border-color: var(--alerta-borda); color: var(--alerta-tinta); }
.t-orgao { background: var(--info-fundo); border-color: var(--info-borda); color: var(--info-tinta); }
.t-cnae, .t-busca { background: var(--neutro-fundo); border-color: var(--neutro-borda); color: var(--neutro-tinta); }

/* ---------------------------------------------------------- Evidencias */

.ev-lista { display: flex; flex-direction: column; gap: .35rem; }

.ev-item { border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.ev-item-conflito { border-color: var(--alerta-borda); background: #fffdf8; }

.ev-linha {
  display: grid; grid-template-columns: minmax(150px, 220px) 1fr auto auto;
  gap: .6rem; align-items: center; padding: .5rem .7rem;
}
.ev-label { font-size: .8rem; font-weight: 600; color: var(--tinta-media); }
.ev-principal { font-size: .9rem; overflow-wrap: anywhere; }

.ev-detalhe { padding: .1rem .7rem .7rem; border-top: 1px dashed var(--borda); }
.ev-valores { display: flex; flex-direction: column; gap: .5rem; margin-top: .5rem; }
.ev-valor { border-left: 3px solid var(--borda-forte); padding-left: .6rem; }
.ev-valor-divergente { border-left-color: var(--alerta-borda); }
.ev-valor-texto { font-weight: 600; font-size: .9rem; margin-bottom: .3rem; overflow-wrap: anywhere; }

.ev-fontes { display: flex; flex-direction: column; gap: .4rem; }
.origem { background: var(--azul-050); border: 1px solid var(--borda); border-radius: var(--raio); padding: .5rem .65rem; }
.origem-linha { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-bottom: .35rem; }
.origem-fonte { font-size: .84rem; font-weight: 650; color: var(--azul-800); }
.origem-grupo { font-size: .72rem; color: var(--tinta-fraca); font-family: var(--mono); }

.origem-dados { display: grid; grid-template-columns: minmax(120px, 180px) 1fr; gap: .15rem .6rem; margin: 0 0 .4rem; font-size: .8rem; }
.origem-dados dt { color: var(--tinta-fraca); font-weight: 600; }
.origem-dados dd { margin: 0; color: var(--tinta); overflow-wrap: anywhere; }

.origem-url { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .76rem; }
.origem-url code { background: var(--superficie); border: 1px solid var(--borda); border-radius: 3px; padding: .1rem .3rem; }

/* ------------------------------------------------------------- Tabelas */

.tabela-fontes, .tabela-conflito {
  width: 100%; border-collapse: collapse; font-size: .83rem;
  display: block; overflow-x: auto; white-space: nowrap;
}
.tabela-fontes thead th, .tabela-conflito thead th {
  text-align: left; padding: .45rem .6rem; background: var(--azul-050);
  border-bottom: 2px solid var(--borda-forte); color: var(--azul-800);
  font-size: .74rem; text-transform: uppercase; letter-spacing: .03em;
}
.tabela-fontes td, .tabela-conflito td {
  padding: .45rem .6rem; border-bottom: 1px solid var(--borda); vertical-align: top;
}
.tabela-fontes tbody tr:hover, .tabela-conflito tbody tr:hover { background: var(--azul-050); }
.td-detalhe { white-space: normal; max-width: 380px; font-size: .8rem; color: var(--tinta-media); }
.td-url { white-space: normal; max-width: 320px; }
.linha-divergente { background: #fffaf0; }

.conflito-card, .corr-card {
  border: 1px solid var(--alerta-borda); border-radius: var(--raio);
  padding: .8rem .9rem; margin-bottom: .8rem; background: #fffdf8;
}
.corr-card { border-color: var(--info-borda); background: #fafcfe; }
.conflito-cab { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .4rem; }
.conflito-cab h4 { margin: 0; }

/* ------------------------------------------------------ Relacionamentos */

.rel-lista { display: flex; flex-direction: column; gap: .5rem; }
.rel-card { border: 1px solid var(--borda); border-radius: var(--raio); padding: .65rem .8rem; background: var(--superficie); }
.rel-cab { display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; align-items: flex-start; }
.rel-id { display: flex; flex-direction: column; min-width: 0; }
.rel-nome { font-weight: 650; font-size: .92rem; overflow-wrap: anywhere; }
.rel-sub { font-size: .79rem; color: var(--tinta-fraca); overflow-wrap: anywhere; }
.rel-badges { display: flex; gap: .3rem; flex-wrap: wrap; }
.rel-label { font-size: .82rem; color: var(--tinta-media); margin: .35rem 0 .5rem; }
.rel-acoes { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.rel-detalhe { margin-top: .6rem; padding-top: .6rem; border-top: 1px dashed var(--borda); }
.rel-evidencias { margin-top: .6rem; }
.rel-extra { display: flex; flex-direction: column; gap: .5rem; }

.contrato-bloco { margin-bottom: .5rem; }
.contrato-dados { display: grid; grid-template-columns: minmax(130px, 190px) 1fr; gap: .15rem .6rem; margin: 0 0 .6rem; font-size: .84rem; }
.contrato-dados dt { color: var(--tinta-fraca); font-weight: 600; }
.contrato-dados dd { margin: 0; overflow-wrap: anywhere; }
.contrato-papel { margin-top: .5rem; }

.ext-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .8rem; }
.ext-card { border: 1px solid var(--roxo-borda); border-radius: var(--raio); padding: .8rem .9rem; background: #fcfaff; }
.ext-cab { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; align-items: flex-start; margin-bottom: .3rem; }
.ext-cab h4 { margin: 0; }
.ext-orgao { font-size: .8rem; color: var(--tinta-fraca); margin-bottom: .5rem; }

/* ----------------------------------------------------------------- Grafo */

.grafo-svg {
  width: 100%; height: auto; display: block;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio);
}
.edge { stroke-width: 1.5; }
.e-confirmado { stroke: #2f7d4e; }
.e-correlacao { stroke: #4a7fae; stroke-dasharray: 5 3; }
.e-possivel   { stroke: #7d5cb0; stroke-dasharray: 2 4; }
.e-conflito   { stroke: #c08a2e; stroke-dasharray: 7 3; }
.setor-label {
  font-size: 11px; font-weight: 700; fill: var(--tinta-fraca);
  font-family: var(--fonte); letter-spacing: .05em;
  paint-order: stroke; stroke: var(--superficie); stroke-width: 4px; stroke-linejoin: round;
}

.node { cursor: pointer; }
.node:focus-visible { outline: none; }
.node:focus-visible .node-circle { stroke: #1a6fb0; stroke-width: 3.5; }
.node-circle { fill: #fff; stroke: var(--borda-forte); stroke-width: 2; transition: stroke-width .1s ease; }
.node:hover .node-circle { stroke-width: 3.5; }
.node-label {
  font-size: 10.5px; fill: var(--tinta); font-family: var(--fonte);
  paint-order: stroke; stroke: var(--superficie); stroke-width: 3px; stroke-linejoin: round;
}
.node-label-focus { font-size: 12px; }
.node-glifo { font-size: 12px; fill: var(--azul-700); }

.node-focus .node-circle { fill: var(--azul-800); stroke: var(--azul-900); }
.node-focus .node-label { font-weight: 700; }
.node-focus .node-glifo { fill: #fff; }

.n-empresa .node-circle { stroke: var(--azul-700); }
.n-pessoa .node-circle { stroke: var(--roxo-tinta); }
.n-contrato .node-circle { stroke: var(--ok-tinta); }
.n-endereco .node-circle, .n-municipio .node-circle { stroke: var(--alerta-tinta); }
.n-orgao .node-circle { stroke: var(--info-tinta); }
.n-cnae .node-circle, .n-busca .node-circle { stroke: var(--borda-forte); }

.grafo-rodape { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-top: .6rem; }
.grafo-contagem { font-size: .83rem; color: var(--tinta-media); }

/* --------------------------------------------------------------- Rodape */

.rodape {
  max-width: 1200px; margin: 0 auto; padding: 1.25rem;
  border-top: 1px solid var(--borda); font-size: .82rem; color: var(--tinta-media);
}
.rodape p { margin: 0 0 .4rem; }

/* ------------------------------------------------------------ Responsivo */

@media (max-width: 860px) {
  .ev-linha { grid-template-columns: 1fr; gap: .25rem; }
  .ev-principal { font-weight: 600; }
  .origem-dados, .contrato-dados { grid-template-columns: 1fr; }
  .origem-dados dt, .contrato-dados dt { margin-top: .3rem; }
  /* Em coluna, flex-basis passa a valer como altura: precisa voltar a auto
     para nao criar um vao vazio dentro do cartao. */
  .entidade-cabecalho { flex-direction: column; }
  .entidade-id { flex: 1 1 auto; }
  .entidade-acoes { width: 100%; }
  .entidade-acoes .btn { flex: 1 1 auto; }
  .busca { flex-direction: column; align-items: stretch; }
  .busca-campo { flex: 1 1 auto; }
}

@media (max-width: 560px) {
  body { font-size: 14px; }
  .principal, .topo-interno, .rodape { padding-left: .8rem; padding-right: .8rem; }
  .abas { gap: 0; }
  .aba { padding: .5rem .55rem; font-size: .82rem; }
  .filtro-campo { min-width: 0; width: 100%; }
  .filtro { flex: 1 1 100%; }
  .trilha-item { max-width: 150px; }
  .secao { padding: .75rem .8rem; }
  .cartoes { grid-template-columns: 1fr; }
}

@media print {
  .topo, .abas, .filtros, .navegacao, .entidade-acoes, .btn, .rel-acoes { display: none !important; }
  body { background: #fff; }
  .secao, .ev-item { break-inside: avoid; }
}

/* Itens presentes em apenas parte das origens */
.item-exclusivo { color: var(--alerta-tinta); font-weight: 600; }
.item-exclusivo .badge { margin-left: .4rem; }

/* Espacamento entre badges empilhados na mesma celula de tabela */
.tabela-fontes td .badge + .badge,
.rel-badges .badge + .badge,
.chips .badge + .badge { margin-left: .25rem; }
.tabela-fontes td .badge { margin-bottom: .15rem; }
