/* Diligens Central Jurídica – interface: marinho e latão, minimalista, sinais visuais de risco */
:root {
  --marinho: #16263f; --marinho-profundo: #0b1424; --marinho-claro: #24395a; --latao: #a8854a; --latao-claro: #e9dcc4;
  --pergaminho: #efe9dd; --fundo: #f4f5f7; --superficie: #ffffff; --superficie-2: #f2f1ed; --linha: #dcdfe5; --linha-forte: #c3c8d1;
  --ink: #1a1f29; --ink-suave: #5b6271; --sobre-marinho: #fbfaf7; --sobre-marinho-suave: #b8c2d3;
  --risco-alto: #9b2c2c; --risco-alto-fundo: #f6e7e6;
  --risco-medio: #8a5800; --risco-medio-fundo: #f7eedb;
  --risco-baixo: #2f6b4f; --risco-baixo-fundo: #e5f0ea;
  --selecao: #e8edf5;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans: "Source Sans 3", "Segoe UI", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", Consolas, monospace;
  --raio-sm: 2px; --raio-md: 6px; --raio-lg: 10px;
  --lateral: 272px; --lateral-recolhida: 68px; --topo: 60px;
}
:root[data-tema="escuro"] {
    --marinho: #8fa6c9; --marinho-profundo: #d5dceb; --marinho-claro: #24395a; --latao: #c2a06a; --latao-claro: #3b3220;
    --pergaminho: #2b271f; --fundo: #0f131a; --superficie: #171c25; --superficie-2: #1e2430; --linha: #2c3341; --linha-forte: #3d4657;
    --ink: #eceef2; --ink-suave: #a3abb9; --sobre-marinho: #10141b;
    --risco-alto: #e58a85; --risco-alto-fundo: #3a1f1f;
    --risco-medio: #e2b45c; --risco-medio-fundo: #352a16;
    --risco-baixo: #7fc4a1; --risco-baixo-fundo: #17302a;
    --selecao: #1f2a3c;
  }

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--fundo); color: var(--ink); font: 15px/1.55 var(--font-sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.icone { flex: none; }
:focus-visible { outline: 2px solid var(--latao); outline-offset: 2px; }


/* ---------- Estrutura: menu lateral em dois níveis ---------- */
.estrutura { --larg: var(--lateral); display: flex; min-height: 100vh;
  background: linear-gradient(90deg, #16263f calc(var(--larg) - 3px), #a8854a calc(var(--larg) - 3px) var(--larg), var(--fundo) var(--larg)); }
.menu-recolhido .estrutura { --larg: var(--lateral-recolhida); }
.lateral {
  position: sticky; top: 0; height: 100vh; width: var(--lateral); flex: none; display: flex; flex-direction: column;
  background: #16263f; color: #fbfaf7; border-right: 3px solid #a8854a; transition: width .2s ease; overflow: hidden; z-index: 30;
}
.marca { display: block; padding: 18px 18px 16px; border-bottom: 1px solid rgba(251, 250, 247, .12); text-decoration: none; }
.marca-completa { display: block; width: 100%; max-width: 212px; height: auto; }
.marca-simbolo { display: none; width: 40px; height: 40px; margin: 0 auto; }
.menu { position: relative; flex: 1; overflow: hidden; }
.nivel { position: absolute; inset: 0; overflow-y: auto; padding: 12px 10px 16px; transition: transform .22s ease, visibility .22s; }
.nivel ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.nivel-1 { display: flex; flex-direction: column; gap: 2px; list-style: none; margin: 0; }
.nivel-2 { transform: translateX(100%); visibility: hidden; }
.lateral.dentro .nivel-1 { transform: translateX(-100%); visibility: hidden; }
.lateral.dentro[data-secao="partes"] .nivel-2[data-secao="partes"],
.lateral.dentro[data-secao="societario"] .nivel-2[data-secao="societario"],
.lateral.dentro[data-secao="procuracoes"] .nivel-2[data-secao="procuracoes"],
.lateral.dentro[data-secao="contratos"] .nivel-2[data-secao="contratos"],
.lateral.dentro[data-secao="documentos"] .nivel-2[data-secao="documentos"],
.lateral.dentro[data-secao="demandas"] .nivel-2[data-secao="demandas"],
.lateral.dentro[data-secao="contencioso"] .nivel-2[data-secao="contencioso"],
.lateral.dentro[data-secao="agenda"] .nivel-2[data-secao="agenda"],
.lateral.dentro[data-secao="pesquisas"] .nivel-2[data-secao="pesquisas"],
.lateral.dentro[data-secao="controle"] .nivel-2[data-secao="controle"] { transform: none; visibility: visible; }
.item {
  display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 12px; border-radius: var(--raio-md);
  color: #d5dceb; text-decoration: none; font-size: 14.5px; font-weight: 500; white-space: nowrap; min-width: 0;
}
.item > span.texto:first-of-type { flex: 1; min-width: 0; white-space: normal; line-height: 1.25; padding: 4px 0; }
.item > em.texto { flex: none; }
.item .seta-nivel, .item.futuro em { flex: none; }
a.item:hover { background: rgba(251, 250, 247, .08); color: #fff; }
a.item.ativo { background: #fbfaf7; color: #16263f; font-weight: 600; box-shadow: inset 3px 0 0 #a8854a; }
.item.futuro { color: #7f8ca3; cursor: default; }
.item.futuro em { font-style: normal; font-size: 11px; padding: 0 6px; border: 1px solid #3f5170; border-radius: 99px; }
.seta-nivel { display: inline-flex; opacity: .6; }
.grupo-menu { margin: 16px 12px 4px; font-size: 12px; font-weight: 600; color: #8d9ab0; }
.nivel-1 li.controle { margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(251, 250, 247, .12); }
.voltar-nivel {
  display: flex; align-items: center; gap: 8px; width: 100%; min-height: 36px; padding: 0 10px; margin-bottom: 6px;
  background: none; border: 0; border-radius: var(--raio-md); color: #b8c2d3; font: 500 14px var(--font-sans); cursor: pointer;
}
.voltar-nivel:hover { background: rgba(251, 250, 247, .08); color: #fff; }
.titulo-nivel { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; padding: 8px 12px 12px; border-bottom: 1px solid rgba(251, 250, 247, .12); font-weight: 700; font-size: 15px; color: #fbfaf7; }
.titulo-nivel .icone { color: #c8a26e; }
.nivel-2 .item { padding-left: 14px; }

/* menu recolhido: só ícones, sempre no primeiro nível */
.menu-recolhido .lateral { width: var(--lateral-recolhida); }
.menu-recolhido .lateral .texto, .menu-recolhido .marca-completa { display: none; }
.menu-recolhido .marca { padding: 14px 0; }
.menu-recolhido .marca-simbolo { display: block; }
.menu-recolhido .item { justify-content: center; padding: 0; }
.menu-recolhido .grupo-menu { height: 1px; margin: 10px 8px; background: rgba(251, 250, 247, .14); }
.menu-recolhido .lateral.dentro .nivel-1 { transform: none; visibility: visible; }
.menu-recolhido .lateral .nivel-2 { display: none; }
.menu-recolhido .lateral a.item.ativo { box-shadow: none; }

/* ---------- Barra superior ---------- */
.conteudo { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topo {
  position: sticky; top: 0; z-index: 15; display: flex; align-items: center; gap: 12px; height: var(--topo);
  padding: 0 24px 0 12px; background: var(--superficie); border-bottom: 1px solid var(--linha);
}
.botao-topo { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border: 0; background: none; color: var(--ink-suave); border-radius: var(--raio-md); cursor: pointer; }
.botao-topo:hover { background: var(--superficie-2); color: var(--ink); }
.migalhas { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 14px; color: var(--ink-suave); white-space: nowrap; overflow: hidden; }
.migalhas span { overflow: hidden; text-overflow: ellipsis; }
.migalhas span + span::before { content: "›"; margin-right: 8px; color: var(--linha-forte); }
.migalhas span:last-child { color: var(--ink); font-weight: 600; }
.busca-global { margin-left: auto; display: flex; align-items: center; gap: 8px; width: min(340px, 32vw); height: 38px; padding: 0 12px; background: var(--fundo); border: 1px solid var(--linha); border-radius: 99px; color: var(--ink-suave); }
.busca-global:focus-within { border-color: var(--marinho); box-shadow: 0 0 0 3px var(--selecao); }
.busca-global input { flex: 1; min-width: 0; border: 0; background: none; font: inherit; font-size: 14px; color: var(--ink); outline: none; }
.chip-modo { flex: none; font-size: 12.5px; font-weight: 600; color: var(--risco-medio); background: var(--risco-medio-fundo); padding: 3px 10px; border-radius: 99px; cursor: help; }
.menu-suspenso { position: relative; flex: none; }
.menu-suspenso > summary { list-style: none; cursor: pointer; }
.menu-suspenso > summary::-webkit-details-marker { display: none; }
.menu-suspenso.conta > summary { display: block; border-radius: 50%; }
.opcoes-suspensas {
  position: absolute; right: 0; top: calc(100% + 8px); min-width: 230px; padding: 6px; z-index: 40;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); box-shadow: 0 12px 32px rgba(11, 20, 36, .14);
}
.opcoes-suspensas a, .opcoes-suspensas button {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; background: none; border-radius: var(--raio-md);
  color: var(--ink); text-decoration: none; font: inherit; font-size: 14.5px; cursor: pointer; text-align: left;
}
.opcoes-suspensas a:hover, .opcoes-suspensas button:hover { background: var(--superficie-2); }
.opcoes-suspensas .icone { color: var(--ink-suave); }
.opcoes-suspensas form { margin: 0; }
.opcoes-suspensas .quem { margin: 0 0 4px; padding: 8px 10px 10px; border-bottom: 1px solid var(--linha); display: grid; }
.opcoes-suspensas .quem small { color: var(--ink-suave); font-size: 12.5px; }
.avatar { width: 34px; height: 34px; flex: none; border-radius: 50%; display: grid; place-items: center; background: #a8854a; color: #16263f; font-weight: 700; font-size: 15px; }
.veu { display: none; }
main { width: 100%; max-width: 1280px; padding: 28px 32px 64px; }

/* ---------- Tipografia e componentes comuns ---------- */
h1 { font: 700 26px/1.2 var(--font-sans); letter-spacing: -.015em; margin: 0 0 6px; }
h2 { font: 700 17px/1.3 var(--font-sans); margin: 28px 0 12px; }
.sub { color: var(--ink-suave); margin: 0 0 24px; max-width: 72ch; font-size: 15px; }
.cabecalho-pagina { margin-bottom: 8px; }
.ajuda { color: var(--ink-suave); font-size: 14px; margin: 6px 0 0; }
.mono { font-family: var(--font-mono); font-size: 14px; }
.suave { color: var(--ink-suave); }

.cartao { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); padding: 20px; }
.rotulo { display: block; font-size: 13px; font-weight: 600; color: var(--ink-suave); margin-bottom: 4px; }

.botao {
  display: inline-flex; align-items: center; gap: 10px; background: var(--marinho); color: var(--sobre-marinho); border: 0; border-radius: var(--raio-md);
  padding: 9px 16px; font: 600 14.5px/20px var(--font-sans); cursor: pointer; text-decoration: none; white-space: nowrap;
}
.botao:hover { background: var(--marinho-profundo); }
.botao.grande { padding: 12px 22px; font-size: 16px; }
.botao.secundario { background: transparent; color: var(--ink); border: 1px solid var(--linha-forte); }
.botao.secundario:hover { background: var(--superficie-2); }

.erro { display: flex; gap: 10px; align-items: flex-start; color: var(--risco-alto); background: var(--risco-alto-fundo); border-radius: var(--raio-md); padding: 12px 14px; margin-bottom: 24px; font-weight: 500; }

.selo { display: inline-flex; align-items: center; gap: 6px; font: 600 13px/18px var(--font-sans); padding: 2px 10px 2px 8px; border-radius: 99px; white-space: nowrap; }
.selo::before { content: ""; width: 8px; height: 8px; background: currentColor; flex: none; }
.selo.alto { color: var(--risco-alto); background: var(--risco-alto-fundo); }
.selo.alto::before { clip-path: polygon(50% 0, 100% 100%, 0 100%); width: 10px; }
.selo.medio { color: var(--risco-medio); background: var(--risco-medio-fundo); }
.selo.medio::before { transform: rotate(45deg); width: 7px; height: 7px; }
.selo.baixo { color: var(--risco-baixo); background: var(--risco-baixo-fundo); }
.selo.baixo::before { border-radius: 50%; }
.selo.informativo { color: var(--ink-suave); background: var(--superficie-2); }
.selo.informativo::before { border-radius: 50%; width: 6px; height: 6px; }
.selo.sem_classificacao { color: var(--ink-suave); background: transparent; box-shadow: inset 0 0 0 1px var(--linha-forte); }
.selo.sem_classificacao::before { background: none; border: 1.5px dashed currentColor; border-radius: 50%; }

/* ---------- Página inicial: etapas ---------- */
.pagina-pesquisa { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.etapas { min-width: 0; }
.etapa { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 20px; padding-bottom: 36px; }
.etapa::before { content: ""; position: absolute; left: 19px; top: 44px; bottom: 4px; width: 2px; background: var(--linha); }
.etapa.final::before { display: none; }
.etapa.final { padding-bottom: 0; }
.marcador {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  background: var(--superficie); border: 2px solid var(--marinho); color: var(--ink); font: 700 17px/1 var(--font-sans);
}
.etapa.final .marcador { background: #a8854a; border-color: #a8854a; color: #fff; }
.corpo-etapa h2 { margin: 8px 0 14px; }
.corpo-etapa > .ajuda-topo { margin: -8px 0 14px; }
.etapa.final .ajuda { margin-top: 10px; }

.opcoes { display: grid; gap: 12px; margin-bottom: 20px; }
.opcoes.duas { grid-template-columns: repeat(2, minmax(0, 220px)); }
.opcoes.quatro { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
.opcao { position: relative; display: block; }
.opcao input { position: absolute; opacity: 0; pointer-events: none; }
.cartao-opcao {
  display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px; cursor: pointer;
  background: var(--superficie); border: 1.5px solid var(--linha); border-radius: var(--raio-lg); color: var(--ink);
  transition: border-color .15s ease, background-color .15s ease;
}
.cartao-opcao .icone { color: #a8854a; margin-bottom: 6px; }
.cartao-opcao b { font-size: 16px; font-weight: 700; }
.cartao-opcao small { font-size: 13.5px; line-height: 1.4; color: var(--ink-suave); }
.opcao:hover .cartao-opcao { border-color: var(--linha-forte); }
.opcao input:checked + .cartao-opcao { border-color: var(--marinho); background: var(--selecao); box-shadow: inset 0 0 0 1px var(--marinho); }
.opcao input:checked + .cartao-opcao::after {
  content: ""; position: absolute; top: 12px; right: 12px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--marinho) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbfaf7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.opcao input:focus-visible + .cartao-opcao { outline: 2px solid #a8854a; outline-offset: 2px; }
.opcao.indisponivel .cartao-opcao { cursor: not-allowed; background: transparent; border-style: dashed; }
.opcao.indisponivel .cartao-opcao .icone, .opcao.indisponivel .cartao-opcao b { color: var(--ink-suave); }

.campo-rotulo { display: block; font-weight: 600; font-size: 15px; margin-bottom: 8px; }
.campo-documento { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
input.documento, .campo-texto {
  font: 500 18px/24px var(--font-mono); letter-spacing: .02em; width: 100%; max-width: 300px; padding: 12px 14px;
  color: var(--ink); background: var(--superficie); border: 1.5px solid var(--linha-forte); border-radius: var(--raio-md);
}
.campo-texto { font: 16px/24px var(--font-sans); max-width: 520px; margin-top: 12px; display: block; }
.campo-texto[hidden] { display: none; }
input.documento:focus, .campo-texto:focus { outline: none; border-color: var(--marinho); box-shadow: 0 0 0 3px var(--selecao); }
input.documento.ok { border-color: var(--risco-baixo); }
input.documento.invalido { border-color: var(--risco-alto); }
.retorno { font-size: 14px; font-weight: 600; }
input.documento.ok ~ .retorno { color: var(--risco-baixo); }
input.documento.invalido ~ .retorno { color: var(--risco-alto); }

.fichas { display: flex; flex-wrap: wrap; gap: 8px; }
.ficha { position: relative; }
.ficha input { position: absolute; opacity: 0; pointer-events: none; }
.ficha span {
  display: inline-block; padding: 8px 14px; border: 1.5px solid var(--linha-forte); border-radius: 99px; cursor: pointer;
  background: var(--superficie); font-size: 14.5px; line-height: 1.3;
}
.ficha:hover span { border-color: var(--ink-suave); }
.ficha input:checked + span { background: var(--marinho); border-color: var(--marinho); color: var(--sobre-marinho); }
.ficha input:focus-visible + span { outline: 2px solid #a8854a; outline-offset: 2px; }

/* ---------- Página inicial: painel de apoio ---------- */
.painel-apoio { position: sticky; top: 24px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); padding: 4px 24px; }
.painel-apoio section { padding: 20px 0; border-bottom: 1px solid var(--linha); }
.painel-apoio section:last-child { border-bottom: 0; }
.painel-apoio h2 { display: flex; align-items: center; gap: 10px; font-size: 16px; margin: 0 0 12px; }
.painel-apoio h2 .icone { color: #a8854a; }
.painel-apoio p { margin: 0; font-size: 14.5px; color: var(--ink-suave); }
.lista-fontes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lista-fontes li { display: grid; gap: 1px; padding-left: 16px; position: relative; font-size: 14px; }
.lista-fontes li::before { content: ""; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: #a8854a; }
.lista-fontes b { font-weight: 600; }
.lista-fontes span { color: var(--ink-suave); }
.legenda-risco { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 12px 12px; align-items: start; }
.legenda-risco div { display: contents; }
.legenda-risco dt { margin: 0; }
.legenda-risco dd { margin: 0; font-size: 14px; color: var(--ink-suave); line-height: 1.4; }

/* ---------- Andamento e histórico ---------- */
table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
th { text-align: left; font-size: 13px; font-weight: 600; color: var(--ink-suave); padding: 10px 12px; border-bottom: 1.5px solid var(--linha-forte); }
td { padding: 10px 12px; border-bottom: 1px solid var(--linha); vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
.estado { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.status { font-weight: 700; font-size: 17px; }
.girando { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--linha); border-top-color: var(--marinho); border-radius: 50%; animation: gira .8s linear infinite; vertical-align: -1px; margin-right: 8px; }
@keyframes gira { to { transform: rotate(360deg); } }
.acoes { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }

@media (prefers-reduced-motion: reduce) {
  .girando { animation: none; }
  .lateral, .cartao-opcao, .nivel { transition: none !important; }
}
/* ---------- Mensagens ---------- */
.aviso-sucesso, .aviso-erro { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: var(--raio-md); margin-bottom: 20px; font-weight: 500; }
.aviso-sucesso { color: var(--risco-baixo); background: var(--risco-baixo-fundo); }
.aviso-erro { color: var(--risco-alto); background: var(--risco-alto-fundo); }
.texto-ok { color: var(--risco-baixo); font-weight: 600; }
.texto-erro { color: var(--risco-alto); font-weight: 600; }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.centro { text-align: center; }
.voltar { margin: 0 0 12px; font-size: 14.5px; }
.voltar a { color: var(--ink-suave); }
.voltar a::before { content: "‹ "; }
.cabecalho-pagina.com-acao { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; }
.tela-erro { max-width: 560px; padding: 40px 0; }

/* ---------- Campos e botões adicionais ---------- */
.campo { margin: 0 0 18px; border: 0; padding: 0; min-width: 0; }
.campo .campo-texto { margin-top: 0; max-width: none; }
.campo-senha { position: relative; }
.campo-senha .campo-texto { padding-right: 48px; }
.mostrar-senha { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; display: grid; place-items: center; background: none; border: 0; color: var(--ink-suave); cursor: pointer; border-radius: var(--raio-md); }
.mostrar-senha.ativo { color: var(--marinho); }
.regras-senha { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 4px; font-size: 14px; color: var(--ink-suave); }
.regras-senha li { display: flex; align-items: center; gap: 8px; }
.regras-senha li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--linha-forte); flex: none; }
.regras-senha li.ok { color: var(--risco-baixo); }
.regras-senha li.ok::before { border-color: var(--risco-baixo); background: var(--risco-baixo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 10px no-repeat; }
.botao.largo { width: 100%; justify-content: center; margin-top: 6px; }
.botao.pequeno { padding: 6px 12px; font-size: 14px; }
.link { background: none; border: 0; padding: 8px; color: var(--ink-suave); text-decoration: underline; font: inherit; font-size: 14.5px; cursor: pointer; }
.botao-icone { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--raio-md); background: none; border: 1px solid transparent; color: var(--ink-suave); cursor: pointer; text-decoration: none; }
.botao-icone:hover { background: var(--superficie-2); border-color: var(--linha); color: var(--ink); }
.botao-icone.perigo:hover { color: var(--risco-alto); background: var(--risco-alto-fundo); border-color: transparent; }
.opcoes.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 0; }
.ajuda.bloco { display: block; margin-top: 4px; }

/* ---------- Tela de acesso (entrar, primeiro acesso, configuração) ---------- */
.pagina-acesso { background: var(--superficie); }
.acesso { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: 100vh; }
.acesso-marca { background: #16263f; border-right: 4px solid #a8854a; padding: 48px 56px; display: flex; flex-direction: column; justify-content: center; color: #d5dceb; position: relative; overflow: hidden; }
.acesso-marca::after { content: ""; position: absolute; inset: auto -20% -45% auto; width: 80%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(168, 133, 74, .25); box-shadow: 0 0 0 60px rgba(168, 133, 74, .04), 0 0 0 140px rgba(168, 133, 74, .03); pointer-events: none; }
.acesso-logo { width: min(100%, 560px); height: auto; margin-left: -12px; }
.acesso-frase { font-size: 19px; line-height: 1.5; max-width: 34ch; margin: 28px 0 0; color: #d5dceb; }
.acesso-rodape { position: absolute; left: 56px; bottom: 32px; margin: 0; font-size: 13.5px; color: #8d9ab0; }
.acesso-formulario { display: flex; align-items: center; justify-content: center; padding: 48px 32px; }
.acesso-caixa { width: 100%; max-width: 420px; }
.acesso-caixa h1 { font-size: 28px; }
.acesso-caixa .sub { font-size: 16px; margin-bottom: 24px; }
.acesso-simbolo { display: none; }
.acesso-caixa .centro { margin-top: 16px; }

/* ---------- Usuários ---------- */
.situacao { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; white-space: nowrap; }
.situacao::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.situacao.ativo { color: var(--risco-baixo); }
.situacao.pendente { color: var(--risco-medio); }
.situacao.expirada { color: var(--risco-alto); }
.situacao.desativado { color: var(--ink-suave); }
.tabela-cartao { padding: 4px 8px; overflow-x: auto; }
.tabela-usuarios td { vertical-align: middle; }
.tabela-usuarios tr.inativo td { color: var(--ink-suave); }
.tabela-usuarios tr.inativo b { font-weight: 500; }
.acoes-linha { white-space: nowrap; text-align: right; }
.acoes-linha form { display: inline; margin: 0; }
.senha-gerada { display: flex; gap: 18px; padding: 20px 22px; margin-bottom: 24px; border-radius: var(--raio-lg); background: var(--pergaminho); border: 1.5px solid #a8854a; }
.senha-gerada-icone { color: #a8854a; flex: none; padding-top: 2px; }
.senha-gerada h2 { margin: 0 0 6px; font-size: 18px; }
.senha-gerada p { margin: 0 0 14px; color: var(--ink-suave); max-width: 72ch; }
.credenciais { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 28px; }
.credenciais > div { display: flex; flex-direction: column; gap: 2px; }
.rotulo-credencial { font-size: 13px; color: var(--ink-suave); font-weight: 600; }
.credenciais code { font: 500 16px var(--font-mono); user-select: all; }
.credenciais code.senha { font-size: 22px; letter-spacing: .04em; padding: 4px 10px; background: var(--superficie); border-radius: var(--raio-md); border: 1px dashed #a8854a; }
.explica-perfis { margin-top: 32px; }
.explica-perfis dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 10px 16px; align-items: center; }
.explica-perfis dl div { display: contents; }
.explica-perfis dd { margin: 0; color: var(--ink-suave); }
.form-usuario { max-width: 760px; }
.grade-conta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; align-items: start; }
.titulo-cartao { margin: 0 0 14px; font-size: 16px; }
.dados { margin: 0; display: grid; gap: 14px; }
.dados dt { font-size: 13px; font-weight: 600; color: var(--ink-suave); }
.dados dd { margin: 2px 0 0; }
.form-estreito { max-width: 420px; }

@media (max-width: 960px) {
  .acesso { grid-template-columns: 1fr; }
  .acesso-marca { padding: 28px 24px; border-right: 0; border-bottom: 4px solid #a8854a; }
  .acesso-logo { width: min(100%, 360px); }
  .acesso-frase { font-size: 16px; margin-top: 12px; }
  .acesso-rodape { position: static; margin-top: 12px; }
  .acesso-formulario { padding: 32px 20px 48px; align-items: flex-start; }
  .grade-conta { grid-template-columns: 1fr; }
  .opcoes.tres { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .tabela-usuarios td.acoes-linha { text-align: left; }
  .explica-perfis dl { grid-template-columns: 1fr; gap: 4px; }
  .explica-perfis dd { margin-bottom: 10px; }
}


/* ---------- Cabeçalhos e barras de filtro ---------- */
.cabecalho-pagina { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 4px; }
.cabecalho-pagina .sub { margin-bottom: 20px; }
.acoes-cabecalho { display: flex; gap: 10px; flex-wrap: wrap; }
.filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; padding: 14px 16px; margin-bottom: 16px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); }
.filtros label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--ink-suave); }
.filtros input, .filtros select, .campo-form input, .campo-form select, .campo-form textarea {
  height: 36px; padding: 0 10px; font: inherit; font-size: 14px; color: var(--ink); background: var(--superficie);
  border: 1px solid var(--linha-forte); border-radius: var(--raio-md); min-width: 0;
}
.filtros input[type=search] { width: 240px; }
.filtros .acoes-filtro { display: flex; gap: 8px; margin-left: auto; }
.contador { font-size: 13.5px; color: var(--ink-suave); margin: 0 0 10px; }
.vazio { padding: 32px 20px; text-align: center; color: var(--ink-suave); }
.vazio b { display: block; color: var(--ink); margin-bottom: 4px; font-size: 15.5px; }
.tabela-cartao table td { vertical-align: middle; }
table a.nome-linha { color: var(--ink); font-weight: 600; text-decoration: none; }
table a.nome-linha:hover { text-decoration: underline; }
.etiqueta { display: inline-block; padding: 1px 8px; margin: 1px 4px 1px 0; border-radius: 99px; font-size: 12.5px; font-weight: 600; background: var(--superficie-2); color: var(--ink); white-space: nowrap; }
.etiqueta.grupo { background: #16263f; color: #fbfaf7; }
.etiqueta.arquivada { background: transparent; color: var(--ink-suave); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.paginacao { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 12px; font-size: 14px; color: var(--ink-suave); }

/* ---------- Formulários de cadastro ---------- */
.form-grade { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 16px; }
.campo-form { display: grid; gap: 6px; grid-column: span 3; min-width: 0; }
.campo-form.c2 { grid-column: span 2; } .campo-form.c4 { grid-column: span 4; } .campo-form.c6 { grid-column: span 6; } .campo-form.c1 { grid-column: span 1; }
.campo-form > span, .campo-form legend { font-size: 13.5px; font-weight: 600; color: var(--ink); padding: 0; }
.campo-form input, .campo-form select { height: 40px; font-size: 14.5px; }
.campo-form textarea { height: auto; min-height: 88px; padding: 8px 10px; resize: vertical; }
.campo-form input:focus, .campo-form select:focus, .campo-form textarea:focus, .filtros input:focus, .filtros select:focus { outline: none; border-color: var(--marinho); box-shadow: 0 0 0 3px var(--selecao); }
fieldset.campo-form { border: 0; margin: 0; padding: 0; }
.marcadores { display: flex; flex-wrap: wrap; gap: 8px; }
.marcador-caixa { position: relative; }
.marcador-caixa input { position: absolute; opacity: 0; }
.marcador-caixa span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--linha-forte); border-radius: 99px; font-size: 14px; cursor: pointer; background: var(--superficie); }
.marcador-caixa input:checked + span { background: #16263f; border-color: #16263f; color: #fbfaf7; }
.marcador-caixa input:focus-visible + span { outline: 2px solid #a8854a; outline-offset: 2px; }
.secao-form { padding: 20px; margin-bottom: 16px; }
.secao-form h2 { margin: 0 0 14px; font-size: 15.5px; }
.linha-receita { display: flex; gap: 8px; align-items: end; }
.linha-receita input { flex: 1; font-family: var(--font-mono); }
.retorno-receita { font-size: 13.5px; margin-top: 6px; }
.alternador { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; font-size: 14.5px; }
.alternador input { width: 18px; height: 18px; accent-color: #16263f; }

/* ---------- Detalhe ---------- */
.grade-detalhe { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.lista-dados { margin: 0; display: grid; grid-template-columns: 170px 1fr; gap: 10px 16px; font-size: 14.5px; }
.lista-dados dt { color: var(--ink-suave); }
.lista-dados dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.titulo-cartao { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.linha-tempo { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.linha-tempo li { position: relative; padding-left: 18px; font-size: 14px; }
.linha-tempo li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: #a8854a; }
.linha-tempo small { display: block; color: var(--ink-suave); font-size: 12.5px; }
.mudancas { margin: 6px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--ink-suave); }
.mudancas b { color: var(--ink); font-weight: 600; }

/* ---------- Painel inicial ---------- */
.saudacao { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.saudacao h1 { margin: 0; }
.saudacao p { margin: 2px 0 0; color: var(--ink-suave); }
.indicadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.indicador { position: relative; padding: 16px 18px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); text-decoration: none; color: var(--ink); display: grid; gap: 2px; }
a.indicador:hover { border-color: var(--linha-forte); }
.indicador .icone { position: absolute; top: 16px; right: 16px; color: #a8854a; }
.indicador .valor { font-size: 30px; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.indicador .nome { font-size: 14px; font-weight: 600; }
.indicador small { font-size: 13px; color: var(--ink-suave); }
.quadros { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.quadro { grid-column: span 6; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); padding: 18px 20px; min-width: 0; }
.quadro.largo { grid-column: span 8; } .quadro.estreito { grid-column: span 4; } .quadro.inteiro { grid-column: span 12; }
.quadro h2 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 0 0 14px; font-size: 15.5px; }
.quadro h2 a { font-size: 13.5px; font-weight: 600; color: var(--ink-suave); }
.barras { display: grid; grid-template-columns: repeat(6, 1fr); align-items: end; gap: 12px; height: 150px; padding-top: 18px; border-bottom: 1px solid var(--linha-forte); }
.barra { position: relative; display: flex; justify-content: center; height: 100%; align-items: flex-end; }
.barra i { display: block; width: 100%; max-width: 44px; background: #16263f; border-radius: 4px 4px 0 0; min-height: 2px; }
.barra.atual i { background: #a8854a; }
.barra b { position: absolute; bottom: calc(var(--h) + 4px); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.rotulos-barras { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 6px; font-size: 12.5px; color: var(--ink-suave); text-align: center; }
.distribuicao { display: grid; gap: 10px; }
.distribuicao div { display: grid; grid-template-columns: 120px 1fr 36px; gap: 10px; align-items: center; font-size: 14px; }
.distribuicao .trilho { height: 8px; background: var(--superficie-2); border-radius: 99px; overflow: hidden; }
.distribuicao .trilho i { display: block; height: 100%; border-radius: 99px; background: #16263f; }
.distribuicao .alto .trilho i { background: var(--risco-alto); } .distribuicao .medio .trilho i { background: var(--risco-medio); } .distribuicao .baixo .trilho i { background: var(--risco-baixo); }
.distribuicao b { text-align: right; font-variant-numeric: tabular-nums; }
.lista-simples { list-style: none; margin: 0; padding: 0; }
.lista-simples li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--linha); font-size: 14px; }
.lista-simples li:last-child { border-bottom: 0; }
.lista-simples a { color: var(--ink); text-decoration: none; font-weight: 600; }
.lista-simples a:hover { text-decoration: underline; }
.lista-simples small { display: block; color: var(--ink-suave); font-weight: 400; font-size: 12.5px; }
.futuro-nota { display: flex; gap: 12px; align-items: flex-start; color: var(--ink-suave); font-size: 14px; }
.futuro-nota .icone { color: #a8854a; flex: none; margin-top: 2px; }

/* ---------- Perfis ---------- */
.matriz { width: 100%; }
.matriz th, .matriz td { text-align: center; }
.matriz th:first-child, .matriz td:first-child { text-align: left; }
.matriz input { width: 18px; height: 18px; accent-color: #16263f; }
.matriz td.na { color: var(--linha-forte); }
.marca-sim { color: var(--risco-baixo); font-weight: 700; }
.perfil { display: inline-block; padding: 2px 10px; border-radius: 99px; font-size: 13px; font-weight: 600; white-space: nowrap; background: var(--selecao); color: var(--ink); box-shadow: inset 0 0 0 1px var(--linha-forte); }

/* ---------- Integrações e importação ---------- */
.integracoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.integracao { display: grid; gap: 12px; align-content: start; }
.integracao.indisponivel { background: transparent; border-style: dashed; }
.integracao header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.integracao h2 { margin: 0; font-size: 16px; }
.integracao p { margin: 0; color: var(--ink-suave); font-size: 14px; }
.estado-integ { font-size: 12.5px; font-weight: 600; padding: 2px 10px; border-radius: 99px; white-space: nowrap; }
.estado-integ.ok { color: var(--risco-baixo); background: var(--risco-baixo-fundo); }
.estado-integ.pendente { color: var(--risco-medio); background: var(--risco-medio-fundo); }
.estado-integ.futuro { color: var(--ink-suave); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.segredo { font-family: var(--font-mono); font-size: 14px; letter-spacing: .04em; }
.passos-import { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.passo { display: grid; gap: 8px; align-content: start; }
.passo .num { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: #16263f; color: #fbfaf7; font-weight: 700; font-size: 14px; }
.passo h2 { margin: 4px 0 0; font-size: 15.5px; }
.passo p { margin: 0; color: var(--ink-suave); font-size: 14px; }
.linha-ok td:first-child { box-shadow: inset 3px 0 0 var(--risco-baixo); }
.linha-erro td:first-child { box-shadow: inset 3px 0 0 var(--risco-alto); }
.linha-existente td:first-child { box-shadow: inset 3px 0 0 var(--risco-medio); }
.resumo-import { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.resumo-import span { padding: 6px 12px; border-radius: 99px; font-weight: 600; font-size: 14px; }

/* ---------- Busca ---------- */
.resultados h2 { display: flex; align-items: center; gap: 8px; font-size: 15.5px; }
.resultados h2 .icone { color: #a8854a; }

/* ---------- Telas médias e celular ---------- */
@media (max-width: 1180px) {
  .pagina-pesquisa { grid-template-columns: 1fr; }
  .painel-apoio { position: static; }
  .opcoes.quatro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quadro, .quadro.largo, .quadro.estreito { grid-column: span 12; }
  .grade-detalhe { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .estrutura { --larg: 0px; background: var(--fundo); }
  .menu-recolhido .estrutura { --larg: 0px; }
  .lateral { position: fixed; left: 0; top: 0; bottom: 0; width: 280px; transform: translateX(-100%); transition: transform .2s ease; box-shadow: 0 0 40px rgba(0, 0, 0, .3); }
  .menu-recolhido .lateral { width: 280px; }
  .menu-recolhido .lateral .texto, .menu-recolhido .marca-completa { display: revert; }
  .menu-recolhido .marca-simbolo { display: none; }
  .menu-recolhido .marca { padding: 18px 18px 16px; }
  .menu-recolhido .item { justify-content: flex-start; padding: 0 12px; }
  .menu-recolhido .grupo-menu { height: auto; background: none; margin: 16px 12px 4px; }
  .menu-recolhido .lateral .nivel-2 { display: block; }
  .menu-recolhido .lateral.dentro .nivel-1 { transform: translateX(-100%); visibility: hidden; }
  .menu-aberto .lateral { transform: none; }
  .menu-aberto .veu { display: block; position: fixed; inset: 0; background: rgba(11, 20, 36, .45); z-index: 20; }
  main { padding: 20px 16px 56px; }
  .topo { padding: 0 12px 0 6px; gap: 8px; }
  .migalhas { display: none; }
  .busca-global { width: auto; flex: 1; }
  .chip-modo { display: none; }
  .integracoes, .passos-import { grid-template-columns: 1fr; }
  .form-grade { grid-template-columns: 1fr 1fr; }
  .campo-form, .campo-form.c2, .campo-form.c4, .campo-form.c6 { grid-column: span 2; }
  .campo-form.c1 { grid-column: span 1; }
  .filtros input[type=search] { width: 100%; }
  .filtros label { flex: 1 1 140px; }
}
@media (max-width: 560px) {
  .opcoes.duas, .opcoes.quatro { grid-template-columns: 1fr 1fr; }
  .etapa { grid-template-columns: 32px minmax(0, 1fr); gap: 14px; }
  .marcador { width: 32px; height: 32px; font-size: 15px; }
  .etapa::before { left: 15px; top: 36px; }
  .cartao-opcao { padding: 12px; }
  .cartao { padding: 16px; }
  .novo summary { padding: 6px 10px; }
  .indicadores { grid-template-columns: 1fr 1fr; }
  .indicador .valor { font-size: 24px; }
  .lista-dados { grid-template-columns: 1fr; gap: 2px; }
  .lista-dados dd { margin-bottom: 8px; }
  table.responsiva thead { display: none; }
  table.responsiva td { display: block; border: 0; padding: 3px 12px; }
  table.responsiva tr { display: block; border-bottom: 1px solid var(--linha); padding: 8px 0; }
}
.perfil.administrador { background: #16263f; color: #fbfaf7; box-shadow: none; }
[hidden] { display: none !important; }
.lista-empresas { display: grid; gap: 8px; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: var(--raio-md); max-height: 300px; overflow-y: auto; background: var(--superficie); }
.lista-empresas .alternador { font-weight: 500; }

/* ---------- Fase 2: tabelas variáveis ---------- */
.abas-ancora { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.abas-ancora a { padding: 6px 12px; border: 1px solid var(--linha-forte); border-radius: 99px; text-decoration: none; font-size: 14px; font-weight: 600; background: var(--superficie); }
.abas-ancora a:hover { background: var(--superficie-2); }
.tabela-variavel { margin-bottom: 18px; scroll-margin-top: calc(var(--topo) + 16px); }
.tabela-variavel header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.tabela-variavel header h2 { margin: 0; font-size: 16px; }
.tabela-variavel header p { margin: 2px 0 0; font-size: 14px; }
table.compacta td { padding: 6px 12px; }
table.compacta input[type=text] { width: 100%; max-width: 360px; height: 34px; padding: 0 10px; border: 1px solid var(--linha-forte); border-radius: var(--raio-md); background: var(--superficie); color: var(--ink); font: inherit; }
table.compacta td small { display: block; margin-top: 2px; font-size: 12px; }
tr.inativo td { color: var(--ink-suave); }
tr.inativo input[type=text] { text-decoration: line-through; color: var(--ink-suave); }
.novo-item { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linha); }
.novo-item .campo-form { flex: 1 1 260px; max-width: 420px; }

/* ---------- Fase 2: ficha da empresa do grupo ---------- */
.resumo-societario { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); margin-bottom: 18px; overflow: hidden; }
.resumo-item { display: grid; gap: 2px; align-content: start; padding: 14px 18px; border-left: 1px solid var(--linha); min-width: 0; }
.resumo-item:first-child { border-left: 0; box-shadow: inset 3px 0 0 #a8854a; }
.resumo-item .rotulo { font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-suave); }
.resumo-item b { font-size: 17px; line-height: 1.3; overflow-wrap: anywhere; }
.resumo-item small { font-size: 13px; color: var(--ink-suave); }
.resumo-item small a { color: var(--ink); font-weight: 600; }
.numero { font-variant-numeric: tabular-nums; }
.direita { text-align: right; }
th.direita { text-align: right; }
.texto-alerta { display: inline-flex; align-items: center; gap: 4px; color: var(--risco-medio); font-weight: 600; }

.abas { display: flex; gap: 2px; border-bottom: 1.5px solid var(--linha-forte); margin-bottom: 18px; overflow-x: auto; scrollbar-width: thin; }
.abas button { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border: 0; background: none; font: 600 14.5px var(--font-sans); color: var(--ink-suave); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1.5px; }
.abas button:hover { color: var(--ink); }
.abas button[aria-selected=true] { color: var(--ink); border-bottom-color: #a8854a; }
.abas .contador { margin: 0; font-size: 12px; min-width: 20px; padding: 0 6px; border-radius: 99px; background: var(--superficie-2); text-align: center; }
.painel-aba { scroll-margin-top: 80px; }
.barra-aba { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.barra-aba p { margin: 0; font-size: 14px; max-width: 760px; }
.barra-aba .botao { flex: none; }
.botao.texto { background: none; border: 0; color: var(--ink-suave); padding: 6px 8px; }
.botao.texto:hover { color: var(--risco-alto); background: var(--risco-alto-fundo); }

/* atos em linha do tempo */
.atos { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ato { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; position: relative; scroll-margin-top: 90px; }
.ato::before { content: ""; position: absolute; left: 10px; top: 26px; bottom: -14px; width: 2px; background: var(--linha); }
.ato:last-child::before { display: none; }
.ato-marca { width: 12px; height: 12px; margin: 22px 0 0 5px; border-radius: 50%; background: var(--superficie); border: 2px solid var(--linha-forte); position: relative; z-index: 1; }
.ato.cadeia.vigente .ato-marca { background: #a8854a; border-color: #a8854a; box-shadow: 0 0 0 4px var(--latao-claro); }
.ato.cadeia.vigente .cartao { border-color: #a8854a; }
.ato.superado .cartao, .ato.encerrado .cartao { background: var(--superficie-2); }
.ato .cartao { padding: 16px 18px; display: grid; gap: 12px; }
.ato header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ato h3 { margin: 2px 0 0; font-size: 16px; line-height: 1.35; }
.tipo-ato { font-size: 12.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-suave); }
.dados-ato { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 18px; font-size: 14px; }
.dados-ato dt { color: var(--ink-suave); font-size: 12.5px; }
.dados-ato dd { margin: 0; font-weight: 600; }
.dados-ato dd small { display: block; font-weight: 400; color: var(--ink-suave); font-size: 12.5px; }
.resumo-ato { margin: 0; font-size: 14px; white-space: pre-line; color: var(--ink); }
.documentos { display: grid; gap: 6px; }
.documento { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--linha); border-radius: var(--raio-md); background: var(--superficie); flex-wrap: wrap; }
.documento > .icone { color: #a8854a; }
.nome-doc { flex: 1 1 200px; min-width: 0; font-weight: 600; font-size: 14px; overflow-wrap: anywhere; }
.nome-doc small { display: block; font-weight: 400; color: var(--ink-suave); font-size: 12.5px; }
.sem-doc { margin: 0; font-size: 13.5px; }
.ato footer { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; border-top: 1px solid var(--linha); padding-top: 12px; }
.ato footer form { margin: 0; }
.ato footer form:last-child { margin-left: auto; }
.arquivo-botao { position: relative; cursor: pointer; }
.arquivo-botao input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.arquivo-botao:focus-within { outline: 2px solid var(--latao); outline-offset: 2px; }
.campo-arquivo { position: relative; display: flex; gap: 14px; align-items: center; padding: 18px; border: 1.5px dashed var(--linha-forte); border-radius: var(--raio-md); cursor: pointer; background: var(--superficie-2); }
.campo-arquivo:hover, .campo-arquivo:focus-within { border-color: var(--marinho); }
.campo-arquivo .icone { color: #a8854a; }
.campo-arquivo small { display: block; color: var(--ink-suave); font-size: 13px; margin-top: 2px; }
.campo-arquivo input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.arquivos-escolhidos { margin: 10px 0 0; padding-left: 18px; font-size: 14px; }

/* sócios e gráfico de pizza */
.grade-socios { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
.grafico-pizza svg { display: block; width: 100%; max-width: 230px; margin: 4px auto 14px; }
.grafico-pizza .fatia { stroke: var(--superficie); stroke-width: 2; stroke-linejoin: round; transition: opacity .15s; }
.grafico-pizza svg:hover .fatia { opacity: .55; }
.grafico-pizza svg .fatia:hover { opacity: 1; }
.grafico-pizza .fatia.livre { fill: var(--superficie-2); stroke: var(--linha-forte); stroke-dasharray: 3 3; stroke-width: 1; }
.grafico-pizza .furo { fill: var(--superficie); }
.pizza-total { font: 700 26px var(--font-sans); fill: var(--ink); }
.pizza-legenda { font: 500 12px var(--font-sans); fill: var(--ink-suave); }
.legenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.legenda li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.legenda i { width: 12px; height: 12px; border-radius: 3px; }
.legenda i.livre { background: var(--superficie-2); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.legenda span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legenda b { font-variant-numeric: tabular-nums; }
tfoot td { border-bottom: 0; border-top: 1.5px solid var(--linha-forte); }
.aviso-linha { display: flex; gap: 8px; align-items: center; margin: 10px 12px 6px; color: var(--risco-medio); font-weight: 600; font-size: 14px; }
.nota { margin: 6px 12px 8px; font-size: 13px; }

/* capital social em barras */
.grafico-barras { display: block; width: 100%; height: auto; max-height: 300px; overflow: visible; }
.grafico-barras .eixo { stroke: var(--linha-forte); stroke-width: 1; }
.barra-capital path { fill: #8fa6c9; }
.barra-capital.atual path { fill: #2a78d6; }
.barra-capital .alvo { fill: transparent; }
.barra-capital:hover path { fill: #16263f; }
.barra-capital:hover .alvo { fill: var(--superficie-2); }
.valor-barra { font: 600 12.5px var(--font-sans); fill: var(--ink); font-variant-numeric: tabular-nums; }
.rotulo-barra { font: 500 12px var(--font-sans); fill: var(--ink-suave); }
.variacao { font-weight: 600; white-space: nowrap; }
.variacao.baixa { color: var(--risco-alto); }
.variacao.alta { color: var(--risco-baixo); }

:root[data-tema="escuro"] .barra-capital path { fill: #3d5375; }
:root[data-tema="escuro"] .barra-capital.atual path { fill: #3987e5; }
:root[data-tema="escuro"] .barra-capital:hover path { fill: #8fa6c9; }
@media (max-width: 1180px) {
  .resumo-societario { grid-template-columns: 1fr 1fr; }
  .resumo-item:nth-child(3) { border-left: 0; }
  .resumo-item:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .grade-socios { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .resumo-societario { grid-template-columns: 1fr; }
  .resumo-item { border-left: 0; border-top: 1px solid var(--linha); }
  .resumo-item:first-child { border-top: 0; }
  .barra-aba { flex-direction: column; align-items: stretch; }
  .ato { grid-template-columns: 14px minmax(0, 1fr); gap: 8px; }
  .ato-marca { margin-left: 1px; }
  .ato::before { left: 6px; }
  .ato header { flex-direction: column; }
  .ato footer form:last-child { margin-left: 0; }
}
.ato.avulso.vigente .ato-marca { border-color: var(--risco-baixo); }
td.numero, td.mono { white-space: nowrap; }
.filtro-atos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.filtro-atos button { padding: 5px 12px; border: 1px solid var(--linha-forte); border-radius: 99px; background: var(--superficie); color: var(--ink); font: 600 13.5px var(--font-sans); cursor: pointer; }
.filtro-atos button[aria-pressed=true] { background: #16263f; border-color: #16263f; color: #fbfaf7; }

/* ---------- Mapa de vínculos (teia) ---------- */
.barra-mapa { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 12px; }
.barra-mapa .filtro-atos { margin: 0; }
.busca-mapa { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid var(--linha-forte); border-radius: 99px; background: var(--superficie); color: var(--ink-suave); }
.busca-mapa input { border: 0; outline: 0; background: none; font: 14px var(--font-sans); color: var(--ink); width: 220px; }
.botoes-mapa { display: flex; gap: 8px; margin-left: auto; }
.area-mapa { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.tela-mapa { padding: 0; overflow: hidden; position: relative; }
#mapa { display: block; width: 100%; height: max(520px, calc(100vh - 300px)); cursor: grab; touch-action: none; user-select: none;
  background-image: radial-gradient(circle, var(--linha) 1px, transparent 1.2px); background-size: 22px 22px; }
#mapa.movendo { cursor: grabbing; }
.no { cursor: pointer; transition: opacity .15s; }
.no:focus { outline: none; }
.no:focus-visible rect, .no:focus-visible circle:first-of-type { stroke: #a8854a; stroke-width: 3; }
.no.empresa rect { fill: var(--superficie); stroke: #16263f; stroke-width: 1.5; }
.no.empresa.controladora rect { fill: #16263f; stroke: #a8854a; stroke-width: 2; }
.no.empresa .nome-no { font: 600 13px var(--font-sans); fill: var(--ink); }
.no.empresa .sub-no { font: 500 11px var(--font-sans); fill: var(--ink-suave); }
.no.empresa.controladora .nome-no { fill: #fbfaf7; }
.no.empresa.controladora .sub-no { fill: #e9dcc4; }
.no.pessoa circle:first-of-type { fill: #2a78d6; stroke: var(--superficie); stroke-width: 2; }
.no.externa circle:first-of-type { fill: #8b919c; stroke: var(--superficie); stroke-width: 2; }
.no .anel { fill: none; stroke: #a8854a; stroke-width: 2; }
.nome-pessoa { font: 500 12.5px var(--font-sans); fill: var(--ink); paint-order: stroke; stroke: var(--superficie); stroke-width: 4px; stroke-linejoin: round; }
.aresta line { stroke: #6f7d93; }
.aresta.representacao line { stroke: #a8854a; stroke-dasharray: 5 4; }
.aresta.vencida line { stroke: var(--risco-alto); }
.ponta { fill: #6f7d93; }
.fundo-rotulo { fill: var(--superficie); stroke: var(--linha); }
.rotulo-aresta { font: 600 11.5px var(--font-sans); fill: var(--ink); font-variant-numeric: tabular-nums; }
.aresta.representacao .rotulo-aresta { font-weight: 500; fill: var(--ink-suave); }
#mapa.com-selecao .no:not(.ativo), #mapa.com-selecao .aresta:not(.ativo) { opacity: .12; }
#mapa.com-busca .no:not(.encontrado) { opacity: .25; }
.no.escolhido rect, .no.escolhido circle:first-of-type { stroke: #a8854a; stroke-width: 3; }
.no.encontrado rect, .no.encontrado circle:first-of-type { stroke: #a8854a; stroke-width: 3; }
.legenda-mapa { list-style: none; margin: 0; padding: 10px 16px; display: flex; flex-wrap: wrap; gap: 6px 18px; border-top: 1px solid var(--linha); font-size: 13px; color: var(--ink-suave); }
.legenda-mapa li { display: inline-flex; align-items: center; gap: 7px; }
.legenda-mapa i { display: inline-block; width: 14px; height: 14px; flex: none; }
.lg-controladora { background: #16263f; border: 2px solid #a8854a; border-radius: 3px; }
.lg-empresa { background: var(--superficie); border: 1.5px solid #16263f; border-radius: 3px; }
.lg-pessoa { background: #2a78d6; border-radius: 50%; width: 12px !important; height: 12px !important; }
.lg-multiplo { border: 2px solid #a8854a; border-radius: 50%; box-shadow: inset 0 0 0 3px var(--superficie), inset 0 0 0 8px #2a78d6; }
.lg-externa { background: #8b919c; border-radius: 50%; width: 12px !important; height: 12px !important; }
.lg-part { height: 0 !important; width: 22px !important; border-top: 3px solid #6f7d93; }
.lg-rep { height: 0 !important; width: 22px !important; border-top: 2px dashed #a8854a; }
.detalhe-mapa { position: sticky; top: calc(var(--topo) + 16px); max-height: calc(100vh - 120px); overflow-y: auto; }
.detalhe-mapa h2 { margin: 2px 0 2px; font-size: 17px; line-height: 1.3; }
.detalhe-mapa h3 { margin: 16px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-suave); }
.detalhe-mapa p.mono { margin: 0; font-size: 13px; }
.vinculos { list-style: none; margin: 0; padding: 0; }
.vinculos li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--linha); font-size: 14px; }
.vinculos li small { display: block; color: var(--ink-suave); font-size: 12.5px; }
.vinculos li b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela-vinculos { margin-top: 16px; padding: 0; }
.tabela-vinculos summary { padding: 14px 20px; cursor: pointer; font-weight: 600; }
:root[data-tema="escuro"] .no.empresa.controladora rect { fill: #24395a; }
:root[data-tema="escuro"] .aresta line { stroke: #8b98ad; }
:root[data-tema="escuro"] .ponta { fill: #8b98ad; }
@media (max-width: 1180px) {
  .area-mapa { grid-template-columns: 1fr; }
  .detalhe-mapa { position: static; max-height: none; }
}
@media (max-width: 560px) {
  .busca-mapa, .busca-mapa input { width: 100%; }
  .botoes-mapa { margin-left: 0; }
  #mapa { height: 460px; }
}
@media (max-width: 900px) {
  .busca-global { min-width: 0; }
  .topo > * { flex-shrink: 0; }
  .topo > .busca-global { flex-shrink: 1; }
}
@media (max-width: 560px) {
  .novo summary { font-size: 0; gap: 0; padding: 8px; }
  .novo summary .icone { width: 18px; height: 18px; }
}

/* ---------- Cabeçalho de página recolhível ---------- */
.intro-pagina { margin: -6px 0 14px; padding: 10px 0 2px; }
.intro-titulo { display: flex; align-items: center; gap: 8px; }
.intro-titulo h1 { margin: 0; font-size: 24px; }
.botao-recolher-intro { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--linha); border-radius: 50%; background: var(--superficie); color: var(--ink-suave); cursor: pointer; }
.botao-recolher-intro:hover { color: var(--ink); border-color: var(--linha-forte); }
.botao-recolher-intro .icone { transform: rotate(-90deg); transition: transform .2s ease; }
.intro-texto { margin: 4px 0 0; max-width: 90ch; font-size: 14px; color: var(--ink-suave); overflow: hidden; max-height: 8em; transition: max-height .2s ease, opacity .2s ease, margin .2s ease; }
.intro-pagina.recolhido .intro-texto { max-height: 0; opacity: 0; margin: 0; }
.intro-pagina.recolhido .botao-recolher-intro .icone { transform: rotate(90deg); }

/* ---------- Barra de busca e ações logo acima da tabela; colunas ordenáveis ---------- */
.lista-ordenavel { padding: 0 8px 4px; overflow: visible; }
.barra-lista { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 12px 8px; border-bottom: 1px solid var(--linha); }
.busca-lista { display: flex; align-items: center; gap: 8px; flex: 1 1 200px; max-width: 340px; height: 36px; padding: 0 12px; border: 1px solid var(--linha-forte); border-radius: 99px; background: var(--fundo); color: var(--ink-suave); }
.busca-lista:focus-within { border-color: var(--marinho); box-shadow: 0 0 0 3px var(--selecao); }
.busca-lista input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: 14px var(--font-sans); color: var(--ink); }
.barra-lista select { height: 36px; padding: 0 10px; border: 1px solid var(--linha-forte); border-radius: var(--raio-md); background: var(--superficie); color: var(--ink); font: 14px var(--font-sans); }
.contador-lista { font-size: 13.5px; color: var(--ink-suave); white-space: nowrap; }
.acoes-lista { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.lista-ordenavel table { margin-top: 0; }
.lista-ordenavel thead th { position: sticky; top: var(--topo); background: var(--superficie); z-index: 2; }
th .ordenar { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-align: inherit; }
th.direita .ordenar { flex-direction: row; }
th .ordenar:hover { color: var(--ink); }
th .ordenar i { width: 0; height: 0; border-left: 4.5px solid transparent; border-right: 4.5px solid transparent; border-top: 6px solid var(--linha-forte); transition: transform .15s; }
th[aria-sort] .ordenar { color: var(--ink); }
th[aria-sort] .ordenar i { border-top-color: #a8854a; }
th[aria-sort=ascending] .ordenar i { transform: rotate(180deg); }
@media (max-width: 900px) {
  .busca-lista { flex: 1 1 100%; }
  .acoes-lista { margin-left: 0; }
}

/* ---------- Seletor de tabelas variáveis ---------- */
.seletor-tabelas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 16px; }
.seletor-tabelas button { display: grid; gap: 2px; text-align: left; padding: 12px 16px; border: 1px solid var(--linha); border-radius: var(--raio-lg); background: var(--superficie); color: var(--ink); cursor: pointer; font: inherit; transition: border-color .15s, box-shadow .15s; }
.seletor-tabelas button:hover { border-color: var(--linha-forte); }
.seletor-tabelas button b { font-size: 14.5px; }
.seletor-tabelas button small { font-size: 12.5px; color: var(--ink-suave); }
.seletor-tabelas button[aria-selected=true] { border-color: #a8854a; box-shadow: inset 0 -3px 0 #a8854a; background: var(--superficie); }
.seletor-tabelas button[aria-selected=true] b { color: var(--ink); }
@media (max-width: 560px) { .seletor-tabelas { grid-template-columns: 1fr 1fr; } }
.barra-lista select { max-width: 200px; }
.rodape-lista { margin: 0; padding: 10px 12px 8px; font-size: 13px; color: var(--ink-suave); }
.seletor-tabelas button { align-content: start; }
@media (min-width: 1100px) {
  .barra-lista:not(.com-filtros) { flex-wrap: nowrap; }
  .busca-lista { min-width: 150px; }
  .barra-lista select { max-width: 170px; flex: 0 1 auto; min-width: 120px; }
  .acoes-lista { flex-wrap: nowrap; flex: none; }
  .acoes-lista .botao { white-space: nowrap; }
}

/* ---------- Botão Voltar (barra superior) ---------- */
.botao-voltar { display: inline-flex; align-items: center; gap: 6px; flex: none; max-width: 340px; height: 34px; padding: 0 12px 0 8px; border: 1px solid var(--linha-forte); border-radius: 99px; background: var(--superficie); color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; overflow: hidden; }
.botao-voltar:hover { background: var(--superficie-2); border-color: var(--marinho); }
.botao-voltar > span { overflow: hidden; text-overflow: ellipsis; }
.destino-voltar { font-weight: 500; color: var(--ink-suave); }
.botao-voltar + .migalhas { margin-left: 4px; padding-left: 12px; border-left: 1px solid var(--linha); }
@media (max-width: 1180px) { .destino-voltar { display: none; } }
@media (min-width: 901px) {
  .topo .migalhas { flex-shrink: 0; }
  .topo .busca-global { flex: 0 1 340px; width: auto; min-width: 150px; }
}

/* cabeçalho com ações (telas de detalhe e formulários) */
.intro-pagina.com-acoes { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px 24px; flex-wrap: wrap; }
.intro-principal { min-width: 0; flex: 1 1 420px; }
.acoes-intro { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 2px; }
.intro-texto .etiqueta { margin-top: 4px; }
.intro-texto p { margin: 0; }

/* barra de lista com filtros do servidor (busca + filtros numa segunda linha) */
.barra-lista.com-filtros { flex-wrap: wrap; }
.linha-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; flex: 1 1 100%; }
.linha-filtros select, .linha-filtros input[type=date] { height: 34px; padding: 0 10px; border: 1px solid var(--linha-forte); border-radius: var(--raio-md); background: var(--superficie); color: var(--ink); font: 13.5px var(--font-sans); max-width: 220px; }
.linha-filtros label.data { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-suave); }
.linha-filtros .filtro-ativo { border-color: #a8854a; box-shadow: inset 0 0 0 1px #a8854a; }
.limpar-filtros { font-size: 13.5px; color: var(--ink-suave); }
.lista-ordenavel .vazio { border-top: 0; }
.lista-ordenavel .paginacao { padding: 6px 12px 12px; }
a.ordenar { text-decoration: none; }
@media (min-width: 901px) {
  .topo .migalhas { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .topo .busca-global { flex-shrink: 4; }
}
.botao-voltar { max-width: 300px; flex-shrink: 0; }
.botao-voltar .destino-voltar { display: inline; }
.botao-voltar > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1180px) { .botao-voltar .destino-voltar { display: none; } }
@media (max-width: 700px) { table.matriz { display: block; overflow-x: auto; } }
@media (max-width: 1340px) {
  .grade-socios { grid-template-columns: 1fr; }
  .grafico-pizza { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 8px 24px; align-items: center; }
  .grafico-pizza .titulo-cartao { grid-column: 1 / -1; }
  .grafico-pizza svg { margin: 0; }
}
@media (max-width: 560px) { .grafico-pizza { grid-template-columns: 1fr; } .grafico-pizza svg { margin: 0 auto; } }
@media (max-width: 1340px) { .grafico-pizza .legenda { max-width: 460px; } }

/* ---------- Procurações ---------- */
.outorgados { display: grid; gap: 10px; }
.linha-outorgado { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr) minmax(0, 1.6fr) minmax(0, .8fr) 36px; gap: 10px; align-items: end; padding: 10px 12px; border: 1px solid var(--linha); border-radius: var(--raio-md); background: var(--superficie-2); }
.linha-outorgado .campo-form { grid-column: auto; }
.linha-outorgado .botao-icone { margin-bottom: 2px; }
.texto-poderes { white-space: pre-line; font-size: 14.5px; line-height: 1.6; padding: 12px 14px; background: var(--superficie-2); border-radius: var(--raio-md); border-left: 3px solid #a8854a; }
.cadeia-proc { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.cadeia-proc li { position: relative; padding: 8px 0 8px 22px; font-size: 14px; }
.cadeia-proc li::before { content: ""; position: absolute; left: 4px; top: 13px; width: 9px; height: 9px; border-radius: 50%; background: var(--superficie); border: 2px solid var(--linha-forte); }
.cadeia-proc li::after { content: ""; position: absolute; left: 9px; top: 26px; bottom: -8px; width: 2px; background: var(--linha); }
.cadeia-proc li:last-child::after { display: none; }
.cadeia-proc li.atual::before { background: #a8854a; border-color: #a8854a; }
.cadeia-proc li.filho { margin-left: 18px; }
.cadeia-proc small { display: block; color: var(--ink-suave); font-size: 12.5px; }
.revogar summary { list-style: none; cursor: pointer; display: inline-flex; }
.revogar summary::-webkit-details-marker { display: none; }
.form-revogar { display: grid; gap: 12px; margin-top: 14px; }
.form-revogar .campo-form { grid-column: auto; }
.resposta-matriz { display: flex; gap: 10px; align-items: center; margin: 12px 8px 4px; padding: 10px 14px; border-radius: var(--raio-md); background: var(--risco-baixo-fundo); color: var(--ink); font-size: 14.5px; }
.resposta-matriz .icone { color: var(--risco-baixo); }
.rolagem-matriz { overflow-x: auto; }
.matriz-poderes th.col-cat { vertical-align: bottom; text-align: center; min-width: 44px; max-width: 70px; padding: 8px 4px; }
.matriz-poderes th.col-cat span { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; max-height: 170px; overflow: hidden; text-overflow: ellipsis; font-size: 12.5px; }
.matriz-poderes td.col-cat { text-align: center; vertical-align: middle; border-left: 1px solid var(--linha); }
.matriz-poderes td.col-cat.tem { background: var(--risco-baixo-fundo); }
.marca-poder { display: inline-block; width: 13px; height: 13px; border-radius: 50%; background: var(--risco-baixo); vertical-align: middle; cursor: help; }
.marca-poder.conjunta { background: linear-gradient(90deg, var(--risco-medio) 50%, transparent 50%); box-shadow: inset 0 0 0 2px var(--risco-medio); }
.legenda-matriz .marca-poder { margin-right: 6px; cursor: default; }
.rolagem-matriz thead th { position: static; }
.fonte-poder { font-size: 13.5px; } .fonte-poder + .fonte-poder { margin-top: 6px; }
.fonte-poder small { display: block; color: var(--ink-suave); font-size: 12px; }
.legenda-matriz { display: flex; flex-wrap: wrap; gap: 6px 20px; }
@media (max-width: 900px) {
  .linha-outorgado { grid-template-columns: 1fr 1fr; }
  .linha-outorgado .botao-icone { justify-self: end; }
}
@media (max-width: 560px) {
  .matriz-poderes th.col-cat span { writing-mode: horizontal-tb; transform: none; }
}
#tabela-procuracoes .etiqueta, #tabela-procs-empresa .etiqueta { white-space: normal; }
#tabela-procuracoes td[data-rotulo="Validade"] { white-space: nowrap; }
@media (max-width: 560px) {
  .barra-aba .botoes-mapa { flex-wrap: wrap; }
  .barra-aba .botoes-mapa .botao { flex: 1 1 auto; justify-content: center; }
}
#mais-outorgado { align-self: start; }
.matriz-poderes.uma th.col-cat span { writing-mode: horizontal-tb; transform: none; white-space: normal; max-height: none; }
.matriz-poderes.uma th.col-cat { vertical-align: middle; max-width: 160px; }

/* mapa: visão detalhada de uma empresa */
.faixa-foco { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; padding: 10px 14px; border-radius: var(--raio-md); background: var(--latao-claro); color: var(--ink); font-size: 14px; }
.tela-mapa.em-foco { border-color: #a8854a; box-shadow: 0 0 0 1px #a8854a; }
.aresta.procuracao line { stroke: #6250d6; stroke-dasharray: 2 4; stroke-width: 1.6; }
.aresta.procuracao .rotulo-aresta { fill: var(--ink-suave); font-weight: 500; }
.lg-proc { height: 0 !important; width: 22px !important; border-top: 2px dotted #6250d6; }
.legenda-mapa .so-foco { display: none; }
.tela-mapa.em-foco .legenda-mapa .so-foco { display: inline-flex; }
.links-quadro { display: inline-flex; gap: 14px; flex-wrap: wrap; }
#tabela-procuracoes th, #tabela-procuracoes td, #tabela-procs-empresa th, #tabela-procs-empresa td { padding-left: 9px; padding-right: 9px; }
#tabela-procuracoes td[data-rotulo="Nº de controle"] a, #tabela-procs-empresa td[data-rotulo="Nº de controle"] a { white-space: nowrap; }
#tabela-procuracoes td[data-rotulo="Nº de controle"] .suave { font-size: 13px; }
#tabela-procuracoes td[data-rotulo="Poderes"] { min-width: 120px; }
#tabela-procuracoes .etiqueta { font-size: 12px; }
#tabela-procuracoes td[data-rotulo="Tipo"] .suave { font-size: 12.5px; }
#tabela-procuracoes .selo, #tabela-procs-empresa .selo { white-space: normal; }
#tabela-procuracoes td[data-rotulo="Outorgada em"], #tabela-procs-empresa td[data-rotulo="Outorgada em"] { white-space: nowrap; }
.lista-poderes { font-size: 13.5px; line-height: 1.35; min-width: 150px; }
.lista-poderes div + div { margin-top: 4px; }
#tabela-procuracoes th, #tabela-procuracoes td { padding-left: 7px; padding-right: 7px; }
#tabela-procuracoes td[data-rotulo="Nº de controle"] .mono { font-size: 13px; }
#tabela-procuracoes td[data-rotulo="Tipo"] .suave { font-size: 12px; }

/* ---------- Contratos ---------- */
.objeto-curto { display: block; max-width: 340px; }
.garantia header { margin-bottom: 10px; }
.rodape-garantia { display: flex; gap: 8px; align-items: center; border-top: 1px solid var(--linha); padding-top: 12px; margin-top: 12px; }
.rodape-garantia form { margin: 0 0 0 auto; }
#tabela-contratos th, #tabela-contratos td { padding-left: 8px; padding-right: 8px; }
#tabela-contratos td[data-rotulo="Nº de controle"] a { white-space: nowrap; font-size: 13px; }
.titulo-secao-ficha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 16px; margin: 0 0 10px; }
.titulo-secao-ficha .botao { margin-left: auto; }
.campo-form { align-content: start; }

/* ---------- Modo escuro: componentes com cor fixa ---------- */
:root[data-tema="escuro"] { color-scheme: dark; }
:root[data-tema="escuro"] .etiqueta.grupo,
:root[data-tema="escuro"] .perfil.administrador { background: #2b4166; color: #f2f4f8; }
:root[data-tema="escuro"] .marcador-caixa input:checked + span,
:root[data-tema="escuro"] .filtro-atos button[aria-pressed=true] { background: var(--marinho); border-color: var(--marinho); color: var(--sobre-marinho); }
:root[data-tema="escuro"] .alternador input,
:root[data-tema="escuro"] .matriz input { accent-color: var(--marinho); }
:root[data-tema="escuro"] .barra i,
:root[data-tema="escuro"] .distribuicao .trilho i { background: #5f7aa3; }
:root[data-tema="escuro"] .passo .num { background: var(--marinho); color: var(--sobre-marinho); }
:root[data-tema="escuro"] .no.empresa rect { stroke: #8fa6c9; }
:root[data-tema="escuro"] .lg-empresa { border-color: #8fa6c9; }
:root[data-tema="escuro"] .lg-controladora { background: #24395a; }
:root[data-tema="escuro"] .aresta.procuracao line { stroke: #a597f0; }
:root[data-tema="escuro"] .lg-proc { border-top-color: #a597f0; }
:root[data-tema="escuro"] .acesso-marca { background: #10192a; }

/* botão de tema na barra superior: mostra a lua no claro e o sol no escuro */
.botao-tema .lua { display: none; }
:root[data-tema="escuro"] .botao-tema .sol { display: none; }
:root[data-tema="escuro"] .botao-tema .lua { display: grid; }
.botao-tema .sol { display: grid; }
:root[data-tema="escuro"] a.item.ativo { background: #2b4166; color: #fbfaf7; }

/* ---------- Visualização rápida de documentos ---------- */
dialog.visualizador { width: min(1100px, 96vw); height: min(92vh, 1000px); max-width: none; max-height: none; padding: 0; border: 1px solid var(--linha-forte); border-radius: var(--raio-lg); background: var(--superficie); color: var(--ink); box-shadow: 0 24px 60px rgba(10, 16, 28, .35); }
dialog.visualizador[open] { display: flex; flex-direction: column; }
dialog.visualizador::backdrop { background: rgba(10, 16, 28, .55); }
.visualizador-topo { display: flex; align-items: center; gap: 8px; padding: 10px 10px 10px 18px; border-bottom: 1px solid var(--linha); }
.visualizador-titulo { flex: 1; min-width: 0; margin: 0; display: flex; align-items: center; gap: 8px; font-weight: 600; }
.visualizador-titulo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visualizador-titulo .icone { color: var(--latao); }
.visualizador-corpo { flex: 1; min-height: 0; background: var(--superficie-2); display: grid; place-items: center; overflow: auto; }
.visualizador-corpo iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.visualizador-corpo img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 640px) {
  dialog.visualizador { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; }
  .visualizador-topo [data-v-aba] { display: none; }
}

/* ---------- Documentos: geração, modelos e folha ---------- */
.selo.neutro { color: var(--ink-suave); background: var(--superficie-2); }
.selo.neutro::before { border-radius: 50%; width: 6px; height: 6px; }
.acoes-form { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; margin-top: 20px; }
.grade-geracao { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 20px; align-items: start; }
.grade-geracao > aside { min-width: 0; }
.grade-geracao:has(> .previa-doc:first-child) { grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); }
.form-geracao h2 { margin: 0 0 14px; font-size: 15.5px; }
.previa-doc { position: sticky; top: calc(var(--topo) + 16px); min-width: 0; }
.rotulo-previa { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; font-weight: 600; font-size: 14px; color: var(--ink-suave); }
.rotulo-previa .botao { margin-left: auto; }
.rotulo-previa .botao + .botao { margin-left: 0; }
.rotulo-previa .icone { color: var(--latao); }
/* a folha é sempre papel claro, também no modo escuro */
.folha-doc { background: #fff; color: #1a1a1a; border: 1px solid var(--linha); border-radius: var(--raio-md); box-shadow: 0 6px 24px rgba(16, 24, 40, .08);
  padding: 44px 48px 48px 56px; font: 14.5px/1.6 Arial, "Liberation Sans", Helvetica, sans-serif; max-height: calc(100vh - var(--topo) - 90px); overflow: auto; }
.folha-doc p { margin: 0 0 10px; text-align: justify; }
.folha-doc .d-titulo { font-size: 17px; text-align: center; margin: 0 0 20px; font-family: inherit; }
.folha-doc .d-secao { font-size: 14.5px; margin: 16px 0 8px; font-family: inherit; }
.folha-doc .d-centro { text-align: center; margin-bottom: 2px; }
.folha-doc .d-direita { text-align: right; }
.folha-doc .d-lista { margin: 0 0 10px 20px; padding: 0; }
.folha-doc .d-lista li { margin-bottom: 4px; }
.folha-doc .d-espaco { height: 26px; }
.folha-doc .d-quebra { border-top: 1px dashed #b9b2a4; margin: 18px -48px 18px -56px; position: relative; }
.folha-doc .d-quebra::after { content: "quebra de página"; position: absolute; right: 12px; top: -9px; background: #fff; padding: 0 6px; font-size: 11px; color: #8a8173; }
.folha-doc mark.falta { background: #fbecc7; color: #7a4f00; border-radius: 3px; padding: 0 4px; box-shadow: inset 0 0 0 1px #edd08e; font-size: .92em; }
.previa-editor { max-height: none; min-height: 480px; }
.faltando { display: flex; gap: 8px; align-items: flex-start; margin-top: 18px; padding: 10px 12px; border-radius: var(--raio-md); background: var(--risco-medio-fundo); color: var(--risco-medio); font-size: 14px; }
.faltando[hidden] { display: none; }
.faltando .icone { margin-top: 2px; }

.grupo-modelos { margin-bottom: 22px; }
.titulo-grupo { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-suave); margin: 0 0 10px; }
.grade-modelos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.cartao-modelo { display: flex; gap: 14px; align-items: flex-start; padding: 16px 16px 16px 18px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.cartao-modelo:hover { border-color: var(--latao); box-shadow: 0 0 0 1px var(--latao); }
.icone-modelo { color: var(--latao); padding-top: 2px; }
.corpo-modelo { flex: 1; min-width: 0; display: grid; gap: 4px; }
.corpo-modelo .suave { font-size: 14px; }
.corpo-modelo small { color: var(--ink-suave); font-size: 12.5px; }
.seta-modelo { color: var(--ink-suave); align-self: center; }
.nota-rodape { font-size: 14px; }

.aviso-aprovacao { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; padding: 14px 18px; margin-bottom: 18px; border-left: 3px solid var(--risco-medio); }
.aviso-aprovacao > div:first-child { color: var(--risco-medio); }
.texto-aprovacao { flex: 1 1 320px; font-size: 14.5px; }
.form-aprovar { display: flex; gap: 8px; flex-wrap: wrap; }
.form-aprovar input { height: 40px; min-width: 240px; }
.nota-aprovacao { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 16px; padding: 10px 12px; border-radius: var(--raio-md); background: var(--risco-medio-fundo); color: var(--risco-medio); font-size: 14px; }
.lista-campos { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.lista-campos li { display: grid; gap: 1px; font-size: 13.5px; }
.lista-campos code { font-size: 12.5px; color: var(--ink); overflow-wrap: anywhere; }
.lista-campos span { color: var(--ink-suave); }
.rotulo-mini { font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin: 4px 0 8px; }
.acoes-secundarias { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.acoes-secundarias form { margin: 0; }
.lista-dados.compacta { grid-template-columns: 96px 1fr; font-size: 14px; }

.grade-editor { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.painel-editor { position: sticky; top: calc(var(--topo) + 16px); display: grid; gap: 16px; max-height: calc(100vh - var(--topo) - 32px); overflow: auto; }
.cabecalho-editor { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 8px; }
.rotulo-editor { font-size: 13.5px; font-weight: 600; }
.alternar-editor { display: inline-flex; border: 1px solid var(--linha-forte); border-radius: var(--raio-md); overflow: hidden; }
.alternar-editor button { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 6px 12px; font: 600 13.5px var(--font-sans); color: var(--ink-suave); cursor: pointer; }
.alternar-editor button[aria-selected=true] { background: var(--superficie-2); color: var(--ink); }
.editor-texto { width: 100%; min-height: 480px; font: 14px/1.6 var(--font-mono); padding: 14px 16px; resize: vertical; tab-size: 4; }
.grupo-campos { border-top: 1px solid var(--linha); padding: 8px 0; }
.grupo-campos summary { cursor: pointer; font-weight: 600; font-size: 14px; padding: 4px 0; }
.botoes-campos { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 0 4px; }
.campo-inserir { border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--ink); border-radius: 99px; padding: 4px 10px; font: 500 13px var(--font-sans); cursor: pointer; }
.campo-inserir:hover { border-color: var(--latao); background: var(--latao-claro); }
.campo-livre { display: flex; gap: 6px; padding-top: 8px; }
.campo-livre input { flex: 1; min-width: 0; height: 34px; font-family: var(--font-mono); font-size: 13px; }
.sintaxe { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; font-size: 13.5px; align-items: baseline; }
.sintaxe dt code { font-size: 12.5px; white-space: nowrap; }
.sintaxe dd { margin: 0; color: var(--ink-suave); }

/* central de arquivos */
.arquivo-linha { display: flex; gap: 10px; align-items: flex-start; }
.arquivo-linha > span:last-child { display: grid; min-width: 0; }
.arquivo-linha .nome-linha { overflow-wrap: anywhere; }
.tipo-arquivo { flex: none; font: 700 10.5px/1 var(--font-sans); letter-spacing: .04em; padding: 6px 5px; border-radius: 4px; color: #fff; background: #8b919c; min-width: 34px; text-align: center; margin-top: 1px; }
.tipo-arquivo.pdf { background: #b5473a; }
.tipo-arquivo.imagem { background: #2f7d6a; }
.tipo-arquivo.texto { background: #2a5fa8; }
.acoes-celula { width: 1%; white-space: nowrap; }
.acoes-arquivo { display: inline-flex; gap: 6px; }

@media (max-width: 1100px) {
  .grade-geracao, .grade-geracao:has(> .previa-doc:first-child), .grade-editor { grid-template-columns: minmax(0, 1fr); }
  .previa-doc, .painel-editor { position: static; max-height: none; }
  .folha-doc { max-height: none; }
}
@media (max-width: 640px) {
  .folha-doc { padding: 24px 20px; font-size: 14px; }
  .folha-doc .d-quebra { margin-left: -20px; margin-right: -20px; }
  .acoes-arquivo .rotulo-acao { display: none; }
}
:root[data-tema="escuro"] .folha-doc { border-color: transparent; box-shadow: 0 6px 30px rgba(0, 0, 0, .45); }
.form-aprovar input { border: 1px solid var(--linha-forte); border-radius: var(--raio-md); padding: 0 12px; background: var(--superficie); color: var(--ink); font: 14.5px var(--font-sans); }
.form-aprovar input:focus { outline: none; border-color: var(--marinho); box-shadow: 0 0 0 3px var(--selecao); }

/* ---------- Painéis (dashboards) ---------- */
.painel-quadros { align-items: start; }
.quadro.medio { grid-column: span 6; }
.quadro-indicadores { grid-column: 1 / -1; min-width: 0; }
.quadro-indicadores .indicadores { margin-bottom: 0; }
.rotulo-quadro { margin: 4px 0 8px; font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-suave); }
.indicadores.n1 { grid-template-columns: minmax(0, 1fr); } .indicadores.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.indicadores.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
a.indicador:hover { border-color: var(--linha-forte); box-shadow: 0 2px 10px rgba(16, 24, 40, .06); }
.indicador.tom-alto .valor { color: var(--risco-alto); } .indicador.tom-medio .valor { color: var(--risco-medio); }
.indicador .icone { color: var(--latao); }
.grupo-quadro { display: block; font-size: 12px; font-weight: 500; color: var(--ink-suave); margin-top: 2px; }
.quadro h2 > span { min-width: 0; }
.nota-quadro { margin: 12px 0 0; font-size: 12.5px; color: var(--ink-suave); }
.barras-h { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.barras-h li { display: grid; grid-template-columns: minmax(0, 38%) 1fr auto; gap: 10px; align-items: center; font-size: 14px; }
.barras-h .rotulo-b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); text-decoration: none; }
.barras-h a.rotulo-b:hover { text-decoration: underline; }
.barras-h .trilho-b { height: 10px; background: var(--superficie-2); border-radius: 0 4px 4px 0; overflow: hidden; }
.barras-h .trilho-b i { display: block; height: 100%; background: var(--marinho); border-radius: 0 4px 4px 0; min-width: 2px; }
.barras-h b { font-variant-numeric: tabular-nums; font-size: 13.5px; text-align: right; min-width: 3.5em; }
.barras-h li.alto .trilho-b i { background: var(--risco-alto); } .barras-h li.medio .trilho-b i { background: var(--risco-medio); }
.barras-h li.baixo .trilho-b i { background: var(--risco-baixo); } .barras-h li.sem_classificacao .trilho-b i { background: var(--linha-forte); }
.barras-h li:hover .trilho-b i { filter: brightness(1.15); }
.valor-lista { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.valor-lista small { display: block; font-weight: 400; color: var(--ink-suave); font-size: 12px; }
.barra:hover i { filter: brightness(1.2); }
.lista-quadros { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lista-quadros li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px 8px 14px; border: 1px solid var(--linha); border-radius: var(--raio-md); background: var(--superficie); }
.lista-quadros li.marcado { border-color: var(--linha-forte); background: var(--superficie-2); }
.lista-quadros .alternador { font-weight: 500; }
.nome-quadro { display: grid; } .nome-quadro small { color: var(--ink-suave); font-size: 12.5px; }
.setas-quadro { display: flex; gap: 2px; }
.setas-quadro .botao-topo { width: 32px; height: 32px; }
.setas-quadro [data-mover="-1"] .icone { transform: rotate(-90deg); } .setas-quadro [data-mover="1"] .icone { transform: rotate(90deg); }
@media (max-width: 1100px) { .quadro.medio { grid-column: span 12; } }

/* ---------- Novo contrato e leitura por IA ---------- */
.grade-novo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cartao-novo { padding: 20px; display: grid; gap: 16px; align-content: start; }
.cartao-novo header { display: flex; gap: 14px; align-items: flex-start; }
.cartao-novo h2 { margin: 0 0 4px; font-size: 17px; }
.cartao-novo p { margin: 0; font-size: 14.5px; }
.icone-novo { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--latao-claro); color: var(--latao); flex: none; }
.caminhos-novo { display: grid; gap: 10px; }
.caminho { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; border: 1px solid var(--linha); border-radius: var(--raio-md); text-decoration: none; color: var(--ink); }
.caminho:hover { border-color: var(--latao); box-shadow: 0 0 0 1px var(--latao); }
.caminho > span { flex: 1; display: grid; gap: 2px; } .caminho small { color: var(--ink-suave); font-size: 13.5px; }
.caminho > .icone:first-child { color: var(--latao); }
.caminho.destaque { background: linear-gradient(90deg, var(--latao-claro), transparent 70%); }
.aviso-ia { display: flex; gap: 14px; padding: 14px 18px; margin-bottom: 16px; border-left: 3px solid var(--latao); font-size: 14.5px; }
.icone-ia { color: var(--latao); flex: none; padding-top: 1px; }
.aviso-ia-item { display: flex; gap: 6px; align-items: flex-start; margin-top: 6px; color: var(--risco-medio); font-size: 14px; }
.aviso-ia-item .icone { margin-top: 3px; }
.sugerido-ia input, .sugerido-ia select, .sugerido-ia textarea, input.sugerido-ia, select.sugerido-ia, textarea.sugerido-ia { background: var(--latao-claro); border-color: var(--latao); }
.sugerido-ia > span::after, .sugerido-ia > legend::after { content: " · lido do documento"; font-weight: 500; color: var(--latao); font-size: 12px; }
.atalho-ia { display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin-bottom: 16px; text-decoration: none; color: var(--ink); font-size: 14.5px; }
.atalho-ia:hover { border-color: var(--latao); }
.atalho-ia > .icone:first-child { color: var(--latao); } .atalho-ia > span { flex: 1; }
.grade-ia { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: 20px; align-items: start; }
.campo-arquivo.grande { padding: 36px 24px; justify-content: center; text-align: left; border-style: dashed; }
.campo-arquivo.grande.arrastando, .campo-arquivo.grande.com-arquivo { border-color: var(--latao); background: var(--latao-claro); }
.campo-arquivo small[data-nome-arquivo] { color: var(--ink); font-weight: 600; }
.lendo { display: flex; align-items: center; gap: 10px; margin: 14px 0 0; color: var(--ink-suave); font-size: 14.5px; }
.giro { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--linha-forte); border-top-color: var(--latao); animation: girar .8s linear infinite; display: inline-block; vertical-align: -3px; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .giro { animation-duration: 3s; } }
.painel-ia textarea { width: 100%; padding: 8px 10px; font: 14px/1.5 var(--font-sans); resize: vertical; }
.botoes-ia { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.nota-ia { font-size: 13px; margin: 10px 0 0; }
@media (max-width: 900px) { .grade-novo, .grade-ia { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Produtividade ---------- */
.barra-periodo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.barra-periodo select { height: 38px; }
.linha-escolhida td { background: var(--selecao); }
.detalhe-pessoa { margin-top: 16px; padding: 20px; }
.cabecalho-detalhe { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.cabecalho-detalhe h2 { margin: 0; } .cabecalho-detalhe p { margin: 2px 0 0; }
.grade-produtividade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.grade-produtividade h3 { font-size: 14.5px; margin: 0 0 12px; }
.barras.colunas-muitas { gap: 3px; } .barras.colunas-muitas .barra i { max-width: 18px; }
.lista-dados.tempos { grid-template-columns: 170px 1fr; }
@media (max-width: 900px) { .grade-produtividade { grid-template-columns: minmax(0, 1fr); } }
.barra-periodo select { border: 1px solid var(--linha-forte); border-radius: var(--raio-md); padding: 0 32px 0 12px; background-color: var(--superficie); color: var(--ink); font: 500 14.5px var(--font-sans); }
.tabela-produtividade th { white-space: normal; line-height: 1.25; }
.tabela-produtividade th, .tabela-produtividade td { padding-left: 10px; padding-right: 10px; }
.rotulos-barras.colunas-muitas { gap: 3px; font-size: 11px; overflow: visible; }
.rotulos-barras.colunas-muitas span { white-space: nowrap; text-align: left; }
.painel-ia .titulo-cartao, .grade-ia .titulo-cartao { justify-content: flex-start; }
.painel-ia .titulo-cartao .icone, .grade-ia .titulo-cartao .icone { color: var(--latao); }

/* ---------- Aditivos que alteram o contrato ---------- */
.marca-aditivo { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; padding: 0 7px; border-radius: 99px; font-size: 12px; font-weight: 600; color: var(--latao); background: var(--latao-claro); text-decoration: none; white-space: nowrap; vertical-align: 1px; }
.marca-aditivo:hover { text-decoration: underline; }
.etiqueta-aditivo { display: inline-flex; align-items: center; gap: 4px; background: var(--latao-claro); color: var(--latao); text-decoration: none; }
.nota-aditivo { display: flex; gap: 8px; align-items: flex-start; margin: -4px 0 14px; padding: 9px 12px; border-radius: var(--raio-md); background: var(--latao-claro); font-size: 14px; }
.nota-aditivo .icone { color: var(--latao); margin-top: 2px; }
.clausula-alterada + .clausula-alterada { margin-top: 8px; }
.clausula-alterada .marca-aditivo { margin: 0 0 4px; }
.alteracoes-aditivo { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px 16px; margin: 10px 0 0; padding: 10px 12px; border-radius: var(--raio-md); background: var(--superficie-2); font-size: 14px; }
.alteracoes-aditivo .largo { grid-column: 1 / -1; }
.alteracoes-aditivo dt { font-size: 12.5px; color: var(--ink-suave); }
.alteracoes-aditivo dd { margin: 0; overflow-wrap: anywhere; }
.outros-campos { border-top: 1px solid var(--linha); margin-top: 14px; padding-top: 12px; }
.outros-campos summary { cursor: pointer; font-weight: 600; font-size: 14.5px; }
.tabela-quadro { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela-quadro th { text-align: left; font-size: 12.5px; color: var(--ink-suave); font-weight: 600; padding: 4px 6px; }
.tabela-quadro td { padding: 3px 4px; }
.tabela-quadro input, .tabela-quadro select { width: 100%; height: 36px; border: 1px solid var(--linha-forte); border-radius: var(--raio-md); padding: 0 8px; background: var(--latao-claro); color: var(--ink); font: 14px var(--font-sans); }
.tabela-quadro input.curto { min-width: 80px; }
.tabela-rolagem { overflow-x: auto; }

/* ---------- Notificações ---------- */
.botao-sino { position: relative; color: var(--ink-suave); }
.contagem-sino { position: absolute; top: 4px; right: 3px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 99px; background: var(--risco-alto); color: #fff; font: 700 10.5px/17px var(--font-sans); text-align: center; }
.lista-notificacoes li.nao-lida a { position: relative; padding-left: 14px; }
.lista-notificacoes li.nao-lida a::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--latao); }
.lista-notificacoes .quando { font-size: 12.5px; white-space: nowrap; }
.mencao { background: var(--latao-claro); color: var(--latao); border-radius: 4px; padding: 0 3px; font-weight: 600; }

/* ---------- Demandas ---------- */
.indicadores.compactos { margin-bottom: 16px; }
.indicadores.compactos .indicador { padding: 12px 14px; }
.indicadores.compactos .valor { font-size: 24px; }
.indicadores.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.alternar-editor a { display: inline-flex; align-items: center; padding: 5px 12px; font: 600 13.5px var(--font-sans); color: var(--ink-suave); text-decoration: none; }
.alternar-editor a.ativo { background: var(--superficie-2); color: var(--ink); }
.kanban { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 12px; padding: 14px; overflow-x: auto; }
.coluna-kanban { background: var(--superficie-2); border-radius: var(--raio-md); padding: 10px; display: grid; gap: 8px; align-content: start; min-width: 0; }
.coluna-kanban h3 { margin: 2px 4px 4px; font-size: 13.5px; display: flex; justify-content: space-between; }
.cartao-kanban { display: grid; gap: 4px; padding: 10px 12px; background: var(--superficie); border: 1px solid var(--linha); border-left: 3px solid var(--linha-forte); border-radius: var(--raio-md); text-decoration: none; color: var(--ink); font-size: 14px; }
.cartao-kanban:hover { border-color: var(--linha-forte); box-shadow: 0 2px 8px rgba(16, 24, 40, .06); }
.cartao-kanban.prioridade-alta { border-left-color: var(--risco-medio); } .cartao-kanban.prioridade-urgente { border-left-color: var(--risco-alto); }
.cartao-kanban .mono { font-size: 12px; }
.meta-kanban { color: var(--ink-suave); font-size: 12.5px; }
.rodape-kanban { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 2px; }
.avatar.mini { width: 24px; height: 24px; font-size: 11.5px; }
.etiqueta.prioridade { background: var(--risco-medio-fundo); color: var(--risco-medio); }
.vazio-kanban { margin: 4px; font-size: 13.5px; }
.prioridade-txt { font-size: 13.5px; font-weight: 600; } .prioridade-txt.urgente { color: var(--risco-alto); } .prioridade-txt.alta { color: var(--risco-medio); } .prioridade-txt.baixa { color: var(--ink-suave); font-weight: 500; }
.link-discreto { color: var(--ink); text-decoration: none; } .link-discreto:hover { text-decoration: underline; }
.fluxo-demanda { padding: 16px 18px; margin-bottom: 16px; display: grid; gap: 12px; }
.passos-status { display: flex; gap: 0; flex-wrap: wrap; }
.passo-status { position: relative; padding: 6px 14px 6px 18px; font-size: 13px; font-weight: 600; color: var(--ink-suave); background: var(--superficie-2); clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%); margin-right: -6px; }
.passo-status:first-child { clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); padding-left: 12px; }
.passo-status.feito { background: var(--risco-baixo-fundo); color: var(--risco-baixo); }
.passo-status.atual { background: var(--marinho); color: var(--sobre-marinho); }
.acoes-status { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.acoes-status form { margin: 0; }
.concluir-demanda > summary { list-style: none; display: inline-flex; cursor: pointer; }
.concluir-demanda > summary::-webkit-details-marker { display: none; }
.concluir-demanda form { display: grid; gap: 10px; margin-top: 10px; max-width: 560px; }
.conclusao { margin-bottom: 16px; border-left: 3px solid var(--risco-baixo); }
.comentarios { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 14px; }
.comentarios li { display: flex; gap: 10px; }
.corpo-comentario { flex: 1; min-width: 0; }
.autor-comentario { margin: 0 0 2px; font-size: 14px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.autor-comentario small { color: var(--ink-suave); }
.texto-comentario { font-size: 14.5px; overflow-wrap: anywhere; background: var(--superficie-2); padding: 8px 12px; border-radius: 0 var(--raio-md) var(--raio-md) var(--raio-md); }
.form-inline { display: inline; margin: 0; }
.botao-link { background: none; border: 0; padding: 0; color: var(--ink-suave); font: 12.5px var(--font-sans); text-decoration: underline; cursor: pointer; }
.caixa-mencao { position: relative; }
.caixa-mencao textarea { width: 100%; padding: 8px 10px; font: 14.5px/1.5 var(--font-sans); resize: vertical; }
.sugestoes-mencao { position: absolute; left: 0; top: 100%; z-index: 20; list-style: none; margin: 2px 0 0; padding: 4px; background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio-md); box-shadow: 0 8px 24px rgba(16, 24, 40, .12); min-width: 260px; }
.sugestoes-mencao li { padding: 6px 10px; border-radius: 4px; cursor: pointer; font-size: 14px; }
.sugestoes-mencao li.ativa, .sugestoes-mencao li:hover { background: var(--selecao); }
.sugestoes-mencao small { color: var(--ink-suave); }

/* ---------- Contencioso ---------- */
.lista-prazos li.cumprido b { text-decoration: line-through; color: var(--ink-suave); }
.acoes-prazo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.novo-prazo { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--linha); }
.destaque-prazo { border-left: 3px solid var(--risco-medio); }

/* ---------- Agenda ---------- */
.barra-agenda { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 14px; margin-bottom: 16px; }
.fontes-agenda { display: flex; flex-wrap: wrap; gap: 6px; }
.ponto-fonte { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--cor-fonte, var(--linha-forte)); flex: none; }
.fonte-compromisso { --cor-fonte: #2a78d6; } .fonte-societario { --cor-fonte: #a8854a; } .fonte-procuracoes { --cor-fonte: #6250d6; }
.fonte-contratos { --cor-fonte: #2f7d6a; } .fonte-demandas { --cor-fonte: #c2185b; } .fonte-contencioso { --cor-fonte: #b5473a; }
:root[data-tema="escuro"] .fonte-compromisso { --cor-fonte: #6aa7f0; } :root[data-tema="escuro"] .fonte-societario { --cor-fonte: #d5b27a; }
:root[data-tema="escuro"] .fonte-procuracoes { --cor-fonte: #a597f0; } :root[data-tema="escuro"] .fonte-contratos { --cor-fonte: #5fbfa5; }
:root[data-tema="escuro"] .fonte-demandas { --cor-fonte: #f06a9b; } :root[data-tema="escuro"] .fonte-contencioso { --cor-fonte: #e8857a; }
.grade-agenda { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.calendario { padding: 14px; }
.cabecalho-calendario { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.cabecalho-calendario h2 { margin: 0 auto 0 4px; font-size: 18px; }
.mes { display: grid; gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio-md); overflow: hidden; }
.dias-semana, .semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; }
.dias-semana span { background: var(--superficie-2); padding: 6px 8px; font-size: 12px; font-weight: 600; color: var(--ink-suave); text-transform: uppercase; }
.dia { background: var(--superficie); min-height: 108px; padding: 4px 4px 6px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dia.fora { background: var(--superficie-2); } .dia.fora .num-dia { opacity: .5; }
.num-dia { font-size: 13px; font-weight: 600; padding: 2px 4px; }
.num-dia a { color: inherit; text-decoration: none; border-radius: 99px; padding: 1px 6px; } .num-dia a:hover { background: var(--selecao); }
.dia.hoje .num-dia a, .dia.hoje .num-dia { color: var(--sobre-marinho); }
.dia.hoje .num-dia a { background: var(--marinho); }
.evento { display: block; font-size: 12px; line-height: 1.35; padding: 2px 6px; border-radius: 4px; text-decoration: none; color: var(--ink); background: color-mix(in srgb, var(--cor-fonte) 14%, var(--superficie)); border-left: 3px solid var(--cor-fonte); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evento:hover { background: color-mix(in srgb, var(--cor-fonte) 26%, var(--superficie)); }
.evento.vencido { outline: 1px solid var(--risco-alto); outline-offset: -1px; }
.evento.concluido { opacity: .55; text-decoration: line-through; }
.mais-eventos { font-size: 11.5px; color: var(--ink-suave); padding-left: 6px; cursor: default; }
.lista-agenda ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lista-agenda li { display: flex; gap: 8px; align-items: flex-start; padding: 5px 0; font-size: 14px; }
.lista-agenda li .ponto-fonte { margin-top: 6px; }
.lista-agenda li a { color: var(--ink); text-decoration: none; font-weight: 500; min-width: 0; }
.lista-agenda li a:hover { text-decoration: underline; }
.lista-agenda small { display: block; color: var(--ink-suave); font-size: 12.5px; font-weight: 400; }
.lista-agenda .dia-lista { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-suave); padding: 10px 0 2px; }
.lista-agenda .dia-lista:first-child { padding-top: 0; }
.atrasados { border-left: 3px solid var(--risco-alto); margin-bottom: 16px; }
.atrasados .titulo-cartao { justify-content: flex-start; color: var(--risco-alto); }
.linha-copiar { display: flex; gap: 8px; } .linha-copiar input { flex: 1; min-width: 0; font-family: var(--font-mono); font-size: 13px; }
.passos-ajuda { margin: 14px 0; padding-left: 20px; font-size: 14.5px; display: grid; gap: 4px; }
@media (max-width: 1100px) { .grade-agenda { grid-template-columns: minmax(0, 1fr); } .kanban { grid-template-columns: repeat(4, 240px); } }
@media (max-width: 700px) {
  .dia { min-height: 64px; } .evento { font-size: 0; padding: 0; height: 6px; border-left-width: 0; background: var(--cor-fonte); }
  .evento b { display: none; } .dias-semana span { padding: 4px; font-size: 10.5px; }
  .indicadores.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .topo .botao-topo { width: 34px; }
  .topo { gap: 6px; }
}
:root[data-tema] .fontes-agenda .marcador-caixa input:checked + span { background: color-mix(in srgb, var(--cor-fonte) 16%, var(--superficie)); border-color: var(--cor-fonte); color: var(--ink); }
:root[data-tema] .fontes-agenda .marcador-caixa input:not(:checked) + span { opacity: .6; }
