/* Visual do sistema (DESIGN.md): estrutura e densidade do Linear; editor de minutas com a calma do Notion.
   Valores só por variáveis de tokens.css; as telas usam as classes abaixo. */

@import url("tokens.css");

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: var(--font); font-size: var(--fs-sm); line-height: var(--lh-sm);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 600; margin: 0; }
h2 { font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 500; margin: 0 0 var(--s-3); }
h3 { font-size: var(--fs-sm); line-height: var(--lh-sm); font-weight: 600; margin: 0 0 var(--s-2); }
p { margin: 0 0 var(--s-3); }
code { font-family: var(--font-mono); background: var(--bg-muted); padding: 1px 6px; border-radius: var(--r-sm); font-size: var(--fs-xs); }
svg { flex: none; }
.suave, .sub { color: var(--text-3); }
.sub { font-size: var(--fs-xs); line-height: var(--lh-xs); }
.erro, .errorlist { color: var(--danger); }
.errorlist { list-style: none; padding: 0; margin: var(--s-1) 0 0; font-size: var(--fs-xs); }
.num, .tabular { font-variant-numeric: tabular-nums; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- estrutura: barra lateral · barra superior · área principal · painel ---------- */
.app { display: grid; grid-template-columns: var(--lateral) minmax(0, 1fr); min-height: 100vh; }

.lateral {
  background: var(--bg-subtle); border-right: 1px solid var(--border);
  display: flex; flex-direction: column; gap: var(--s-4); padding: var(--s-3) var(--s-2);
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.serventia { display: flex; align-items: center; gap: 10px; padding: var(--s-1) var(--s-2); color: var(--text); }
.serventia:hover { text-decoration: none; }
.serventia .sigla {
  width: 28px; height: 28px; border-radius: var(--r-md); background: var(--accent); color: var(--on-accent);
  display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: var(--fs-xs);
}
.serventia strong { display: block; font-weight: 600; }
.serventia span { display: block; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--text-3); }

.busca-rapida {
  display: flex; align-items: center; gap: var(--s-2); height: var(--controle); padding: 0 var(--s-2);
  border: 1px solid var(--border); border-radius: var(--r-md); background: var(--bg); color: var(--text-3);
  font: inherit; cursor: pointer; width: 100%;
}
.busca-rapida:hover { border-color: var(--border-strong); }
.busca-rapida span { flex: 1; text-align: left; }
.busca-rapida svg { width: 16px; height: 16px; }

.kbd {
  display: inline-block; font-size: var(--fs-rotulo); line-height: 16px; padding: 0 var(--s-1);
  border: 1px solid var(--border); border-radius: var(--r-sm); color: var(--text-3); font-family: var(--font);
  font-weight: 400; white-space: nowrap;
}
.botao.primario .kbd { border-color: rgb(255 255 255 / .4); color: inherit; opacity: .8; }

.grupo-menu { display: flex; flex-direction: column; gap: 1px; }
.grupo-menu .rotulo, .rotulo-grupo {
  font-size: var(--fs-rotulo); font-weight: 500; letter-spacing: .04em; text-transform: uppercase;
  color: var(--text-3); padding: 0 var(--s-2) var(--s-1);
}
button.rotulo { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none;
  border: 0; border-radius: var(--r-sm); cursor: pointer; text-align: left; font-family: inherit; }
button.rotulo:hover { color: var(--text); }
button.rotulo svg { transition: transform .15s; }
.grupo-menu.recolhido button.rotulo svg { transform: rotate(-90deg); }
.grupo-menu.recolhido > .item-menu { display: none; }
.item-menu {
  display: flex; align-items: center; gap: var(--s-2); height: var(--controle); padding: 0 var(--s-2);
  border-radius: var(--r-md); color: var(--text-2);
}
.item-menu:hover { background: var(--bg-muted); color: var(--text); text-decoration: none; }
.item-menu.ativo { background: var(--accent-subtle); color: var(--accent); font-weight: 500; }
.item-menu svg { width: 16px; height: 16px; }
.item-menu .contador { margin-left: auto; font-size: var(--fs-xs); color: var(--text-3); font-weight: 400; }

/* módulos do menu (09/11/2026): a cor do módulo marca o rótulo, o trilho à esquerda e o item ativo */
.modulo { display: flex; flex-direction: column; gap: 2px; --cor-mod: var(--accent); }
.mod-notas { --cor-mod: var(--mod-notas); }
.mod-protesto { --cor-mod: var(--mod-protesto); }
.mod-arquivo { --cor-mod: var(--mod-arquivo); }
.mod-servicos { --cor-mod: var(--mod-servicos); }
.mod-admin { --cor-mod: var(--mod-admin); }
.rotulo-modulo {
  display: flex; align-items: center; gap: var(--s-2); width: 100%; height: var(--controle); padding: 0 var(--s-2);
  background: none; border: 0; border-radius: var(--r-md); cursor: pointer; text-align: left;
  font-family: inherit; font-size: var(--fs-sm); font-weight: 600; color: var(--cor-mod);
}
.rotulo-modulo:hover { background: var(--bg-muted); }
.rotulo-modulo .marca { width: 10px; height: 10px; border-radius: 3px; background: var(--cor-mod); flex: none; }
.rotulo-modulo svg { margin-left: auto; color: var(--text-3); transition: transform .15s; }
.modulo.recolhido .rotulo-modulo svg { transform: rotate(-90deg); }
.modulo.recolhido > .modulo-corpo { display: none; }
.modulo-corpo {
  display: flex; flex-direction: column; gap: 1px; margin-left: 6px; padding-left: 2px;
  border-left: 2px solid color-mix(in srgb, var(--cor-mod) 35%, transparent);
}
.modulo-corpo > .grupo-menu + .grupo-menu { margin-top: var(--s-2); }
.modulo-corpo .grupo-menu .rotulo { padding-top: var(--s-1); }
.modulo .item-menu { height: auto; min-height: var(--controle); padding-block: 6px; line-height: var(--lh-xs); }
.modulo .item-menu svg { flex: none; }
.modulo .item-menu.ativo { background: color-mix(in srgb, var(--cor-mod) 13%, transparent); color: var(--cor-mod); }

.usuario { margin-top: auto; border-top: 1px solid var(--border); padding: var(--s-2) var(--s-2) 0; }
.usuario .quem { display: flex; align-items: center; gap: var(--s-2); }
.usuario .quem div { min-width: 0; }
.usuario .quem strong { display: block; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usuario .quem span { display: block; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--text-3); }
.usuario .acoes { display: flex; flex-wrap: wrap; gap: 2px var(--s-3); margin-top: var(--s-2); font-size: var(--fs-xs); }
.usuario .acoes a, .usuario .acoes button { color: var(--text-2); background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.usuario .acoes a:hover, .usuario .acoes button:hover { color: var(--text); text-decoration: underline; }
.usuario form { display: inline; margin: 0; }

.avatar {
  width: 24px; height: 24px; border-radius: 50%; background: var(--accent-subtle); color: var(--accent);
  font-size: var(--fs-xs); font-weight: 600; display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.avatar.pequeno { width: 24px; height: 24px; }

.area { display: flex; flex-direction: column; min-width: 0; }
.topo {
  min-height: var(--topo); padding: 6px var(--s-5); border-bottom: 1px solid var(--border); background: var(--bg);
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); position: sticky; top: 0; z-index: 5;
}
.caminho { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--text-3); min-width: 0; }
.caminho a { color: var(--text-3); }
.caminho a:hover { color: var(--text); }
.caminho .atual { color: var(--text); font-weight: 500; }
.caminho .sep::before { content: "/"; }
/* botões do topo logo depois do caminho, à esquerda (DESIGN.md §4): à direita, na tela larga, ninguém os via */
.topo .acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin-left: var(--s-4); margin-right: auto; }
.topo .acoes:empty { display: none; }
.topo .botao { height: var(--controle-topo); padding: 0 10px; }
.topo form { margin: 0; }

.pagina { padding: var(--s-5) var(--s-5) var(--s-12); width: 100%; max-width: 1280px; }
.pagina.cheia { padding: 0; max-width: none; flex: 1; }
.pagina.estreita { max-width: 760px; }
.pagina.largo { max-width: none; }
.pagina.lista-cheia { padding: 0; max-width: none; }
.lista-cheia .cabeca-lista { padding: var(--s-5) var(--s-5) var(--s-2); display: flex; flex-direction: column; gap: var(--s-3); }
.lista-cheia .cabeca-lista .abas { margin: 0; }
.lista-cheia .barra-lista { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); justify-content: space-between; }
.lista-cheia .cabeca-secao { padding-top: var(--s-4); }
.lista-cheia .cabeca-secao h2 { margin: 0; }
.lista-cheia .aviso-busca { padding: 0 var(--s-5) var(--s-2); color: var(--text-3); margin: 0; }
.lista-cheia .paginacao { padding-bottom: var(--s-4); }
.lista-cheia .do-controlm { padding: 0 var(--s-5) var(--s-4); }

.cabecalho { display: flex; align-items: flex-end; justify-content: flex-start; gap: var(--s-4); margin-bottom: var(--s-4); flex-wrap: wrap; }
.cabecalho .suave { margin-top: var(--s-1); }
.pagina > h1 { margin-bottom: var(--s-3); }
.titulo-secao { margin-top: var(--s-6); }
.largura-toda { width: 100%; }
#botao-guardar { margin-top: var(--s-3); }
.miniatura-celula { width: 56px; }
.andamento { text-align: left; margin: 10px 0 0; padding-left: 18px; }
.cartao > .acoes-form:last-child { margin-bottom: 0; }
.zona p { margin-bottom: var(--s-2); }
.cresce { flex: 1; }
.codigos { columns: 2; font-family: var(--font-mono); font-size: var(--fs-lg); line-height: 1.8; }
.qr { max-width: 220px; margin: var(--s-3) 0; }
.qr svg { width: 100%; height: auto; }
.trilha { display: none; } /* o caminho agora fica na barra superior */

/* detalhe: área principal + painel de propriedades à direita */
.detalhe { display: grid; grid-template-columns: minmax(0, 1fr) var(--painel); flex: 1; min-height: 0; }
.detalhe > main, .detalhe > .corpo { padding: var(--s-6) var(--s-8) var(--s-12); min-width: 0; }
.detalhe .corpo-centro { max-width: 760px; }
.titulo-ato { font-size: var(--fs-2xl); line-height: var(--lh-2xl); margin: var(--s-2) 0; }
.corpo-centro > .aviso { margin-top: var(--s-4); }
.secao.primeira { margin-top: var(--s-5); }
.campos.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mudancas .acoes-form { margin-top: var(--s-4); }
.pre-linha { white-space: pre-line; }
.painel-props { border-left: 1px solid var(--border); padding: var(--s-4) var(--s-3); background: var(--bg); }
.painel-props .grupo-props + .grupo-props { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--border); }
.painel-props .rotulo-grupo { padding: 0 var(--s-2) var(--s-1); }

/* telas sem login (entrar, bloqueado) */
.solta { max-width: 400px; margin: 12vh auto; padding: 0 var(--s-4); }
.solta .serventia { justify-content: center; margin-bottom: var(--s-6); }
.solta .cartao h1 { margin-bottom: var(--s-3); }
.solta .acoes-form { justify-content: center; }
.solta .cartao { padding: var(--s-6); }

/* ---------- componentes ---------- */

/* seção sem moldura (o padrão nas telas novas) */
.secao { padding: var(--s-5) 0; border-top: 1px solid var(--border); }
.secao:first-child { border-top: 0; padding-top: 0; }
.secao-cabeca { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); margin-bottom: var(--s-3); }
.secao-cabeca h2 { margin: 0; }

/* cartão: contorno simples, sem sombra (nada estático flutua) */
.cartao { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-4) var(--s-5); }
.cartao + .cartao, .grade + .cartao, .cartao + .grade, .cartao + table, .cartao + .itens { margin-top: var(--s-4); }
.cartao > h2:first-child { margin-top: 0; }
.cartao.vazio { padding: var(--s-10) var(--s-5); }
.grade { display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); align-items: start; }

.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--s-2); margin-bottom: var(--s-4); }
.numero { border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-3) var(--s-4); color: var(--text); display: block; }
.numero:hover { border-color: var(--border-strong); background: var(--bg-subtle); text-decoration: none; }
.numero span { color: var(--text-2); }
.numero strong { display: block; font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 600; font-variant-numeric: tabular-nums; }

/* botões: primário (um por tela), secundário, fantasma, perigoso */
.botao, button.principal, a.principal {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: var(--controle);
  padding: 0 var(--s-3); border-radius: var(--r-md); font: inherit; font-weight: 500; cursor: pointer;
  border: 1px solid var(--border-strong); background: var(--bg); color: var(--text); white-space: nowrap;
}
.botao:hover, a.principal:hover { background: var(--bg-subtle); text-decoration: none; }
.botao svg { width: 14px; height: 14px; }
.botao.primario, button.principal, a.principal { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.botao.primario:hover, button.principal:hover, a.principal:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.botao.fantasma { background: transparent; border-color: transparent; color: var(--text-2); }
.botao.fantasma:hover { background: var(--bg-muted); color: var(--text); }
.botao.perigo { color: var(--danger); }
.botao.perigo:hover { background: var(--danger-bg); }
.botao.pequeno { height: var(--controle-topo); padding: 0 10px; }
.botao.icone { width: var(--controle-topo); padding: 0; }
/* ação principal da tela em destaque, no alto do conteúdo (Novo protocolo, Novo ato) */
.botao.grande { height: 40px; min-width: 240px; padding: 0 var(--s-5); font-size: var(--fs-md); }
.botao.grande svg { width: 16px; height: 16px; }
.cabeca-lista > .botao.grande { align-self: flex-start; }
.acao-destaque { margin-bottom: var(--s-4); }
.botao:disabled, button.principal:disabled { opacity: .5; cursor: default; }
button.principal { margin-top: var(--s-4); }
.solta button.principal { width: 100%; }

/* campos: rótulo acima, 32px, ajuda abaixo */
label { display: block; margin: var(--s-4) 0 6px; font-weight: 500; color: var(--text); }
label .opcional { color: var(--text-3); font-weight: 400; }
input[type=text], input[type=password], input[type=tel], input[type=number], input[type=search], input[type=date],
input[type=email], input:not([type]), select, textarea {
  width: 100%; height: var(--controle); padding: 0 10px; border: 1px solid var(--border-strong); border-radius: var(--r-md);
  font: inherit; font-size: var(--fs-md); background: var(--bg); color: var(--text);
}
select { padding-right: var(--s-6); }
textarea { height: auto; min-height: 80px; padding: var(--s-2) 10px; resize: vertical; line-height: var(--lh-md); }
input::placeholder, textarea::placeholder { color: var(--text-3); }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 0; border-color: var(--accent); }
input:disabled, select:disabled, textarea:disabled { background: var(--bg-muted); color: var(--text-3); }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); width: 14px; height: 14px; margin: 0; }
.campo-erro input, .campo-erro select, .campo-erro textarea { border-color: var(--danger); }
.ajuda { color: var(--text-3); font-size: var(--fs-xs); line-height: var(--lh-xs); margin-top: 6px; }
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 var(--s-4); }
.acoes-form { display: flex; gap: var(--s-2); margin-top: var(--s-6); align-items: center; flex-wrap: wrap; }

/* lista de itens (Linear): linhas de 36px, sem zebra, agrupadas por status */
.itens { border-top: 1px solid var(--border); overflow-x: auto; }
.itens-dentro { min-width: 760px; }
.grupo-cab {
  height: 32px; padding: 0 var(--s-5); background: var(--bg-subtle); border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: var(--s-2); cursor: pointer; user-select: none; list-style: none;
}
.grupo-cab::-webkit-details-marker { display: none; }
.grupo-cab .seta { width: 12px; height: 12px; color: var(--text-3); transition: transform .12s; }
details:not([open]) > .grupo-cab .seta { transform: rotate(-90deg); }
.grupo-cab strong { font-weight: 500; }
.grupo-cab .contagem { color: var(--text-3); }
.item {
  min-height: var(--linha); padding: 0 var(--s-5); border-bottom: 1px solid var(--border); color: var(--text);
  display: grid; align-items: center; column-gap: var(--s-3);
  grid-template-columns: 64px 16px minmax(0, 1fr) 140px minmax(0, 220px) 28px 120px;
}
.item { position: relative; }
.item:hover { background: var(--bg-subtle); }
.item.selecionado, .item:focus-within { background: var(--bg-muted); box-shadow: inset 2px 0 0 var(--accent); }
.item .n { color: var(--text-3); font-variant-numeric: tabular-nums; }
.item .n:hover { text-decoration: none; }
.item .n:focus-visible { outline: none; }
.item .n::after { content: ""; position: absolute; inset: 0; } /* a linha inteira abre o protocolo */
.item .titulo { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.item .partes { color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.item .quando { color: var(--text-3); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.item .quando.parado { color: var(--warning); }
.item .quando.vencido { color: var(--danger); }
.rodape-atalhos { padding: var(--s-3) var(--s-5); color: var(--text-3); font-size: var(--fs-xs); display: flex; flex-wrap: wrap; gap: var(--s-4); }

/* visões salvas (abas) e filtros */
.abas, .filtros { display: flex; flex-wrap: wrap; gap: var(--s-1); align-items: center; margin-bottom: var(--s-3); }
.abas a, .filtros a {
  height: var(--controle-topo); padding: 0 10px; border: 1px solid transparent; border-radius: var(--r-md);
  color: var(--text-2); display: inline-flex; align-items: center; gap: 6px;
}
.abas a:hover, .filtros a:hover { background: var(--bg-subtle); text-decoration: none; color: var(--text); }
.abas a.ativo, .filtros a.ativo { border-color: var(--border-strong); background: var(--bg); color: var(--text); font-weight: 500; }
.abas a .suave, .filtros a .suave { font-weight: 400; }
.filtros .separador, .abas .separador { width: 1px; height: 18px; background: var(--border); margin: 0 6px; }

/* busca da própria lista */
.busca-lista { position: relative; max-width: 420px; flex: 1; }
.busca-lista svg { position: absolute; left: 10px; top: 50%; width: 14px; height: 14px; transform: translateY(-50%); color: var(--text-3); }
.busca-lista input { padding-left: 30px; font-size: var(--fs-sm); }
.busca-local { margin-bottom: var(--s-3); max-width: 480px; }

/* tabela (listas simples do acervo, minutas, acesso): sem zebra, só divisórias horizontais */
.tabela, table.lista { width: 100%; border-collapse: collapse; background: var(--bg); }
.tabela-moldura { border-top: 1px solid var(--border); overflow-x: auto; }
.tabela th, table.lista th {
  text-align: left; font-size: var(--fs-xs); font-weight: 500; color: var(--text-3); background: var(--bg-subtle);
  padding: 0 var(--s-3); height: 32px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.tabela th a { color: inherit; text-decoration: none; }
.tabela th a:hover { color: var(--text); text-decoration: underline; }
.tabela th[aria-sort] { color: var(--text); font-weight: 600; }
.tabela th[aria-sort="ascending"] a::after { content: " ↑"; }
.tabela th[aria-sort="descending"] a::after { content: " ↓"; }
.tabela td, table.lista td { padding: var(--s-2) var(--s-3); height: var(--linha); border-bottom: 1px solid var(--border); vertical-align: middle; }
.tabela tr.clicavel { cursor: pointer; }
.tabela tr.clicavel:hover td, table.lista tbody tr:hover td { background: var(--bg-subtle); }
.tabela .num, table.lista .num { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--text-3); }
table.lista .num { text-align: right; }
.tabela a.linha { color: var(--text); font-weight: 500; }
.tabela td.acao { width: 1%; white-space: nowrap; text-align: right; }
.tabela td.acao form { margin: 0; display: inline-block; }
table.lista tr.inativa td { color: var(--text-3); }
.grupo { margin-bottom: var(--s-6); }
.grupo > h2 { margin-bottom: var(--s-2); }
.vazio { padding: var(--s-10) var(--s-5); text-align: center; color: var(--text-2); }
.vazio .botao { margin-top: var(--s-3); }
.paginacao { display: flex; gap: var(--s-3); align-items: center; justify-content: center; margin-top: var(--s-4); color: var(--text-3); }

/* status: ponto de 8px + rótulo (a cor nunca vai para a linha) */
.ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--cor-st, var(--st-aberto)); display: inline-block; flex: none; }
.situacao { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; color: var(--text); white-space: nowrap; }
.situacao::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cor-st, var(--st-aberto)); flex: none; }
.aberto { --cor-st: var(--st-aberto); }
.em_minuta { --cor-st: var(--st-minuta); }
.aguardando_partes { --cor-st: var(--st-conferencia); }
.pronto_para_lavrar { --cor-st: var(--st-assinatura); }
.lavrado { --cor-st: var(--st-lavrado); }
.selado { --cor-st: var(--st-selado); }
.arquivado { --cor-st: var(--st-arquivado); }
.incompleto { --cor-st: var(--st-arquivado); }
.cancelado { --cor-st: var(--st-cancelado); }
.situacao.cancelado, .situacao.incompleto { color: var(--text-2); }
/* protesto: a ocorrência do título agrupada (nucleo.protesto.controlm.GRUPOS) */
.pt-em_andamento { --cor-st: var(--st-minuta); }
.pt-pago { --cor-st: var(--st-lavrado); }
.pt-protestado { --cor-st: var(--st-cancelado); }
.pt-cancelado { --cor-st: var(--st-arquivado); }
.pt-sustado, .pt-suspenso { --cor-st: var(--st-conferencia); }
.pt-retirado, .pt-irregular { --cor-st: var(--st-aberto); }
.parado { color: var(--warning); }

/* badge neutro (tipo de ato, marcas) */
.badge, .etiqueta {
  display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border-radius: var(--r-sm);
  background: var(--bg-muted); color: var(--text-2); font-size: var(--fs-xs); white-space: nowrap;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; border: 0;
}
.etiqueta.ok, .etiqueta.revisada { background: var(--success-bg); color: var(--success); }
.etiqueta.ruim { background: var(--danger-bg); color: var(--danger); }
.etiqueta.sem-classe { background: var(--warning-bg); color: var(--warning); }

/* propriedades: rótulo 120px + valor clicável */
.prop {
  display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; column-gap: var(--s-3);
  min-height: var(--controle); padding: 6px var(--s-2); border-radius: var(--r-md); color: var(--text);
}
.prop > span:first-child, .prop dt { color: var(--text-2); }
.prop .valor { min-width: 0; overflow-wrap: anywhere; }
.prop .valor.vazio-valor { color: var(--text-3); }
a.prop:hover, button.prop:hover { background: var(--bg-subtle); text-decoration: none; }
button.prop { width: 100%; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.props-largas .prop { grid-template-columns: 160px minmax(0, 1fr) auto; margin: 0 calc(-1 * var(--s-2)); }
.props-largas .prop .marca { font-size: var(--fs-xs); color: var(--warning); }

/* dados em pares (telas antigas): mesmo desenho das propriedades */
dl.dados { display: grid; grid-template-columns: 160px 1fr; gap: var(--s-2) var(--s-3); margin: 0; }
dl.dados dt { color: var(--text-2); }
dl.dados dd { margin: 0; overflow-wrap: anywhere; }

/* histórico: trilha de auditoria (não editável) */
.atividades { display: flex; flex-direction: column; gap: var(--s-3); }
.atividade { display: flex; gap: 10px; align-items: flex-start; }
.atividade .avatar { margin-top: -2px; }
.atividade .texto { color: var(--text-2); }
.atividade .texto strong { color: var(--text); font-weight: 500; }
.atividade .quando { color: var(--text-3); white-space: nowrap; }
.historico { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-3); }
.historico li { color: var(--text); }
.historico .quando { color: var(--text-3); font-size: var(--fs-xs); }

/* próximo passo (mudança de situação) */
.mudancas { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: flex-start; }
.mudancas form.direto { margin: 0; }
.mudancas details { position: relative; }
.mudancas summary { list-style: none; }
.mudancas summary::-webkit-details-marker { display: none; }
.mudancas details[open] > form {
  position: absolute; z-index: 10; top: calc(100% + 4px); left: 0; width: 320px; padding: var(--s-3) var(--s-4) var(--s-4);
  background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante);
}
.mudancas details[open] > form label:first-of-type { margin-top: var(--s-2); }
/* popover alto (Lavrar): rola dentro dele em vez de passar do pé da tela */
.mudancas details[open] > form { max-height: calc(100vh - 96px); overflow-y: auto; }
.resumo-lavrar { margin-top: var(--s-3); padding-top: var(--s-2); border-top: 1px solid var(--border); }

/* avisos fixos na página e toasts */
.mensagens { list-style: none; padding: 0; margin: 0; position: fixed; right: var(--s-4); bottom: var(--s-4); z-index: 50;
  display: flex; flex-direction: column; gap: var(--s-2); max-width: min(420px, calc(100vw - 32px)); }
.toast, .mensagens li {
  display: flex; align-items: flex-start; gap: var(--s-2); padding: 10px var(--s-3); border-radius: var(--r-lg);
  background: var(--bg); color: var(--text); box-shadow: var(--sombra-flutuante); transition: opacity .2s, transform .2s;
}
.mensagens li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex: none; background: var(--success); }
.mensagens li.error::before { background: var(--danger); }
.mensagens li.warning::before { background: var(--warning-dot); }
.mensagens li.info::before { background: var(--info); }
.mensagens li .fechar { margin-left: auto; background: none; border: 0; color: var(--text-3); cursor: pointer; padding: 0 2px; font: inherit; }
.mensagens li.saindo { opacity: 0; transform: translateY(6px); }
.aviso {
  display: flex; gap: var(--s-2); align-items: flex-start; background: var(--warning-bg); color: var(--text);
  border-radius: var(--r-md); padding: 10px var(--s-3); margin-bottom: var(--s-4);
}
.aviso::before { content: ""; width: 3px; align-self: stretch; border-radius: 2px; background: var(--warning-dot); flex: none; }
.aviso.erro::before { background: var(--danger); }
.aviso.erro { background: var(--danger-bg); }
.aviso > form.direto { margin: 0 0 0 auto; }

.htmx-request .carregando, .htmx-request.carregando { opacity: .5; transition: opacity .2s; }

/* ---------- paleta de comandos (Ctrl K) e atalhos ---------- */
.veu { position: fixed; inset: 0; background: var(--veu); z-index: 100; display: flex; justify-content: center; align-items: flex-start; padding: 12vh var(--s-4) 0; }
.paleta { width: 560px; max-width: 100%; background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante); overflow: hidden; }
.paleta input { border: 0; border-bottom: 1px solid var(--border); border-radius: 0; height: 48px; padding: 0 var(--s-4); font-size: var(--fs-md); }
.paleta input:focus { outline: none; border-color: var(--border); }
.paleta ul { list-style: none; margin: 0; padding: var(--s-1); max-height: 360px; overflow-y: auto; }
.paleta li.secao-paleta { font-size: var(--fs-rotulo); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); padding: var(--s-2) var(--s-3) var(--s-1); }
.paleta a { display: flex; align-items: center; gap: 10px; height: var(--linha); padding: 0 var(--s-3); border-radius: var(--r-md); color: var(--text); }
.paleta a svg { width: 16px; height: 16px; color: var(--text-3); }
.paleta a .dica { margin-left: auto; color: var(--text-3); font-size: var(--fs-xs); }
.paleta a:hover, .paleta a.marcado { background: var(--bg-muted); text-decoration: none; }
.paleta .nada { padding: var(--s-4); color: var(--text-3); }
.paleta .rodape { border-top: 1px solid var(--border); padding: var(--s-2) var(--s-3); color: var(--text-3); font-size: var(--fs-xs); display: flex; gap: var(--s-4); }
.atalhos { width: 420px; max-width: 100%; background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante); padding: var(--s-4) var(--s-5); }
.atalhos dl { display: grid; grid-template-columns: 80px 1fr; gap: var(--s-2) var(--s-3); margin: var(--s-3) 0 0; }
.atalhos dd { margin: 0; color: var(--text-2); }

/* ---------- editor de minutas (Notion): página centralizada, dados no topo, folha A4 ---------- */
.doc-topo { width: 100%; max-width: 820px; margin: 0 auto; padding: var(--s-8) var(--s-6) var(--s-2); display: flex; flex-direction: column; gap: var(--s-4); }
.doc-topo h1 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
.doc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); color: var(--text-3); }
.doc-meta .sep::before { content: "·"; }
.doc-topo input.titulo-doc {
  border: 0; outline: none; padding: 0; height: auto; background: transparent;
  font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; color: var(--text);
}
.titulo-doc::placeholder { color: var(--text-3); }
.doc-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); padding: var(--s-1) 0 var(--s-2); }
.doc-acoes .suave { font-size: var(--fs-xs); }
.mesa .doc-acoes { width: var(--folha-a4); max-width: calc(100% - 32px); margin-top: var(--s-4); } /* embaixo da folha */
.prop select, .prop input { width: auto; max-width: 100%; height: 28px; border-color: transparent; background: transparent; padding: 0 6px; margin-left: -6px; }
.prop select:hover, .prop input:hover { border-color: var(--border-strong); }
.mesa { width: 100%; background: var(--bg-canvas); border-top: 1px solid var(--border); flex: 1; display: flex; flex-direction: column; align-items: center; padding-bottom: var(--s-12); }
.barra-doc {
  position: sticky; top: var(--topo); z-index: 4; width: 100%; background: var(--bg); border-bottom: 1px solid var(--border);
  padding: var(--s-1) var(--s-3); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px; color: var(--text-2);
  min-height: 37px; font-size: var(--fs-xs);
}
.folha-a4 {
  width: var(--folha-a4); max-width: calc(100% - 32px); margin-top: var(--s-6); background: var(--papel); color: var(--tinta);
  box-shadow: var(--sombra-folha); padding: 72px 76px; font-family: var(--font-doc); font-size: 12pt; line-height: 1.5;
}
.folha-a4.texto-minuta, .folha-a4 .texto-minuta { white-space: pre-wrap; overflow-wrap: anywhere; }
textarea.folha-a4 {
  display: block; min-height: 1123px; height: auto; border: 0; border-radius: 0; resize: vertical; font: inherit;
  font-family: var(--font-doc); font-size: 12pt; line-height: 1.5; padding: 72px 76px; field-sizing: content;
}
textarea.folha-a4:focus { outline: none; box-shadow: var(--sombra-folha), 0 0 0 2px var(--accent); }
.texto-minuta { white-space: pre-wrap; font-family: var(--font-doc); font-size: var(--fs-md); line-height: 1.55; overflow-wrap: anywhere; }
textarea.texto-minuta { width: 100%; min-height: 420px; }
.prop label.rotulo-prop { margin: 0; font-weight: 400; color: var(--text-2); }
.recolhivel > :not(summary) { margin-top: var(--s-2); }
.recolhivel .instrucoes { padding-left: var(--s-4); color: var(--text-2); }
textarea.instrucoes { padding-left: 10px; color: var(--text); }
.editor-minuta { display: flex; flex-direction: column; flex: 1; }
.campo-doc { width: 100%; max-width: 820px; margin: 0 auto; padding: 0 var(--s-6); }
.recolhivel > summary { cursor: pointer; color: var(--text-2); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.recolhivel > summary::-webkit-details-marker { display: none; }
.recolhivel > summary::before { content: "▸"; font-size: var(--fs-xs); color: var(--text-3); }
.recolhivel[open] > summary::before { content: "▾"; }
/* lugar do ONLYOFFICE: quando entrar, o iframe ocupa a .mesa inteira */
.onlyoffice { width: 100%; flex: 1; min-height: 80vh; border: 0; }

/* ---------- minutas: tipos por seção ---------- */
.lista-minutas { list-style: none; margin: 0 0 var(--s-3); padding: 0; }
.lista-minutas li { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: var(--linha); padding: var(--s-1) 0; border-bottom: 1px solid var(--border); }
.secoes-minutas { display: flex; flex-direction: column; gap: var(--s-6); margin-top: var(--s-2); }
.secao-titulo { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); font-weight: 600; margin: 0 0 var(--s-2); color: var(--text); }
.secao-titulo svg { width: 16px; height: 16px; color: var(--cor); }
.secao-titulo .suave { font-weight: 400; }
.botoes-tipo { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--s-2); }
.botao-tipo {
  display: flex; flex-direction: column; gap: 2px; padding: 10px var(--s-3); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--r-md); background: var(--bg);
}
.botao-tipo:hover, .botao-tipo:focus-visible { border-color: var(--border-strong); background: var(--bg-subtle); text-decoration: none; }
.botao-tipo strong { font-weight: 500; display: flex; align-items: center; gap: var(--s-2); }
.botao-tipo .suave { font-size: var(--fs-xs); line-height: var(--lh-xs); }
.botao-tipo svg { width: 16px; height: 16px; color: var(--text-3); }
.do-projeto { color: var(--success); }
.rodape-minutas { margin-top: var(--s-1); color: var(--text-3); }
.trocar-tipo { margin-bottom: var(--s-4); }
.trocar-tipo > summary { cursor: pointer; color: var(--accent); margin-bottom: var(--s-3); }
.trocar-tipo .secoes-minutas { gap: var(--s-4); }
.acoes-cabecalho { display: flex; gap: var(--s-2); flex-wrap: wrap; }

/* limpeza */
.lista-limpeza { list-style: none; margin: 0; padding: 0; }
.lista-limpeza li { padding: var(--s-1) 0; }
.lista-limpeza label { display: flex; gap: var(--s-2); align-items: center; flex-wrap: wrap; font-weight: 400; margin: 0; }
.grupo-limpeza { padding: 10px 0; border-top: 1px solid var(--border); }
.grupo-limpeza:first-of-type { border-top: 0; }
.grupo-cabeca { margin-bottom: var(--s-1); }
.barra-confirmar {
  position: sticky; bottom: var(--s-4); display: flex; gap: 10px; align-items: center; flex-wrap: wrap; z-index: 4;
  padding: var(--s-3) var(--s-4); margin: var(--s-4) 0; background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante);
}
.barra-confirmar #contador { margin-right: auto; font-weight: 500; }

/* ---------- acervo ---------- */
.zona { border: 1px dashed var(--border-strong); border-radius: var(--r-md); padding: var(--s-5); text-align: center; margin-bottom: var(--s-5); color: var(--text-2); }
.zona.ativa { border-color: var(--accent); background: var(--accent-subtle); }
.zona .botao { margin: 0 2px; }
#andamento li { margin: 3px 0; color: var(--text); }
#andamento:empty { display: none; }

.dossie { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: var(--s-5); align-items: start; }
.painel-lateral { position: sticky; top: calc(var(--topo) + var(--s-4)); }
.dossie-barra { display: flex; gap: var(--s-4); align-items: baseline; flex-wrap: wrap; margin-bottom: 10px; }
.folhas { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--s-3); }
.folha { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-md); padding: 6px; cursor: pointer; user-select: none; position: relative; }
.folha:hover { border-color: var(--border-strong); }
.folha.selecionada { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
.folha.sem-classe { border-style: dashed; border-color: var(--warning-dot); }
.folha.sem-classe.selecionada { border-color: var(--accent); border-style: solid; }
.folha.oculta { opacity: .45; }
.folha.arrastando { opacity: .4; }
.folha-imagem { aspect-ratio: 1 / 1.414; background: var(--bg-muted); border-radius: var(--r-sm); overflow: hidden; display: flex; align-items: center; justify-content: center; position: relative; }
.folha-imagem img { max-width: 100%; max-height: 100%; }
.ampliar { position: absolute; right: 4px; bottom: 4px; width: 26px; height: 26px; border-radius: 50%; background: var(--bg); box-shadow: var(--sombra-flutuante);
  display: none; align-items: center; justify-content: center; color: var(--text-2); }
.ampliar svg { width: 14px; height: 14px; }
.folha:hover .ampliar, .folha:focus-within .ampliar { display: flex; }
.folha-rotulo { display: flex; gap: var(--s-1); align-items: center; flex-wrap: wrap; margin-top: 6px; font-size: var(--fs-xs); }
.folha-rotulo .posicao { font-weight: 600; color: var(--text-2); margin-right: 2px; font-variant-numeric: tabular-nums; }
.acoes-selecao { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--s-3); padding-top: var(--s-3); border-top: 1px solid var(--border); }
.acoes-selecao form { margin: 0; }
.classificado { display: flex; gap: 10px; align-items: flex-start; padding: var(--s-2) 0; border-top: 1px solid var(--border); }
.classificado:first-of-type { border-top: 0; padding-top: 0; }
.marca-cor { width: 8px; height: 8px; border-radius: 2px; margin-top: 6px; flex: none; background: var(--cor, var(--border-strong)); }

/* cor de cada pasta (índice Pasta.cor) e de cada seção de minutas */
.cor-0 { --cor: var(--cor-0); } .cor-1 { --cor: var(--cor-1); } .cor-2 { --cor: var(--cor-2); } .cor-3 { --cor: var(--cor-3); }
.cor-4 { --cor: var(--cor-4); } .cor-5 { --cor: var(--cor-5); } .cor-6 { --cor: var(--cor-6); } .cor-7 { --cor: var(--cor-7); }
.folha[class*="cor-"] { border-color: var(--cor); }
.folha[class*="cor-"].selecionada { border-color: var(--accent); }
.etiqueta[class*="cor-"] { background: var(--bg-muted); color: var(--text-2); gap: 4px; }
.etiqueta[class*="cor-"]::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--cor); flex: none; }

.miniaturas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--s-3); }
.miniatura { border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-2); text-align: center; font-size: var(--fs-xs); }
.miniatura img { width: 100%; aspect-ratio: 1 / 1.414; object-fit: contain; background: var(--bg-muted); display: block; border-radius: var(--r-sm); }
.miniatura a { color: var(--text); }
.miniatura .nome { margin-top: 6px; word-break: break-all; }

.botoes-acervo { margin-top: var(--s-3); }
.filtros-acervo { display: flex; flex-wrap: wrap; gap: 10px var(--s-3); align-items: flex-end; }
.filtros-acervo > div { display: flex; flex-direction: column; min-width: 0; }
.filtros-acervo > div:first-child { flex: 1 1 220px; }
.filtros-acervo label { margin-top: 0; }
.filtros-acervo select { max-width: 260px; }
.importar-opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--s-4); }
.linha-form { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }
.linha-form label { width: 100%; }
.linha-form input[type=text] { width: auto; flex: 1; min-width: 120px; }
.para-guardar { margin: 10px 0 0; padding-left: 18px; }
.para-guardar li { margin: var(--s-1) 0; }
.digitalizar { margin: var(--s-3) 0; }
.opcoes-digitalizar { display: flex; flex-wrap: wrap; gap: 10px var(--s-3); align-items: flex-end; }
.opcoes-digitalizar > div { display: flex; flex-direction: column; }
.opcoes-digitalizar label { margin-top: 0; }
.opcoes-digitalizar .marcar label { display: flex; gap: 6px; align-items: center; font-weight: 400; height: var(--controle); }

/* ---------- telas estreitas ---------- */
@media (max-width: 1100px) {
  .detalhe { grid-template-columns: 1fr; }
  .painel-props { border-left: 0; border-top: 1px solid var(--border); }
  .dossie { grid-template-columns: 1fr; }
  .painel-lateral { position: static; }
}
@media (max-width: 860px) {
  .app { grid-template-columns: 1fr; }
  .lateral { position: static; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--s-1); padding: var(--s-2); }
  .grupo-menu { flex-direction: row; flex-wrap: wrap; }
  .grupo-menu .rotulo, .serventia span, .busca-rapida, .item-menu .contador { display: none; }
  .grupo-menu.recolhido > .item-menu { display: flex; }  /* no celular os rótulos somem: nada fica escondido */
  .rotulo-modulo { display: none; }
  .modulo, .modulo-corpo { flex-direction: row; flex-wrap: wrap; margin: 0; padding: 0; border: 0; }
  .modulo.recolhido > .modulo-corpo { display: flex; }
  .usuario { margin: 0 0 0 auto; border: 0; padding: 0; }
  .usuario .quem { display: none; }
  .usuario .acoes { margin: 0; }
  .topo { position: static; padding: 6px var(--s-4); }
  .pagina { padding: var(--s-4); }
  .detalhe > main, .detalhe > .corpo { padding: var(--s-4); }
  .grade { grid-template-columns: 1fr; }
  .tabela .esconder-estreito { display: none; }
  .itens-dentro { min-width: 0; }
  .item { grid-template-columns: 40px 16px minmax(0, 1fr) auto; padding: var(--s-1) var(--s-4); }
  .item > span:nth-child(4), .item .partes, .item .avatar { display: none; }
  .grupo-cab { padding: 0 var(--s-4); }
  .folha-a4, textarea.folha-a4 { padding: 32px 24px; }
  dl.dados, .prop { grid-template-columns: 110px 1fr; }
}

/* aba Custas: lançamentos recolhíveis, cada um com o seu selo */
.abas-ato { margin: var(--s-4) 0 var(--s-3); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); }
.abas-ato .abas { margin: 0; }
.lancamentos { border-top: 1px solid var(--border); }
.lancamento { border-bottom: 1px solid var(--border); }
.lancamento > summary {
  min-height: var(--linha); display: flex; align-items: center; gap: var(--s-2); cursor: pointer; list-style: none;
  padding: 0 var(--s-2);
}
.lancamento > summary::-webkit-details-marker { display: none; }
.lancamento > summary:hover { background: var(--bg-subtle); }
.seta-lanc { display: inline-flex; color: var(--text-3); transition: transform .12s; }
.lancamento:not([open]) .seta-lanc { transform: rotate(-90deg); }
.titulo-lanc { font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.valor-lanc { margin-left: auto; white-space: nowrap; }
.dentro-lanc { padding: var(--s-2) var(--s-2) var(--s-5) calc(var(--s-2) + 20px); }
.dentro-lanc > .aviso { margin-bottom: var(--s-3); }
.parcelas-lanc { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2) var(--s-4); margin: var(--s-3) 0 0; }
.parcelas-lanc dt { color: var(--text-3); font-size: var(--fs-xs); }
.parcelas-lanc dd { margin: 0; font-variant-numeric: tabular-nums; }
.form-custa { margin-top: var(--s-2); }
.form-custa .acoes-form { margin-top: var(--s-4); }
.desativar-lanc { margin-top: var(--s-2); }
.novo-lanc { border-top: 1px solid var(--border); }
.total-props { font-weight: 600; }
@media (max-width: 760px) { .parcelas-lanc { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* recibo: folha A4 na tela, só a folha na impressão */
.mesa-recibo { background: var(--bg-canvas); flex: 1; padding: var(--s-6) var(--s-4) var(--s-12); }
.mesa-recibo > .aviso { max-width: var(--folha-a4); margin: 0 auto var(--s-4); }
.folha-recibo {
  position: relative; width: var(--folha-a4); max-width: 100%; margin: 0 auto; background: var(--papel); color: var(--tinta);
  padding: 14mm 16mm; box-shadow: var(--sombra-folha); font-size: var(--fs-sm);
}
.cab-recibo { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--s-2) var(--s-5); margin-bottom: var(--s-5); }
.logo-recibo { width: 62mm; height: auto; display: block; }
.dados-serventia { display: flex; flex-direction: column; gap: 2px; text-align: right; }
.dados-serventia strong { font-weight: 600; }
.dados-serventia span { color: var(--text-2); font-size: var(--fs-xs); }
.cab-recibo h1 { grid-column: 1 / -1; text-align: center; margin: var(--s-3) 0 0; font-size: 20px; }
.dados-recibo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-1) var(--s-4); margin: 0 0 var(--s-4); }
.dados-recibo .largo { grid-column: 1 / -1; }
.dados-recibo div { display: flex; gap: var(--s-2); }
.dados-recibo dt { color: var(--text-2); white-space: nowrap; }
.dados-recibo dt::after { content: ":"; }
.dados-recibo dd { margin: 0; }
.atos-recibo, .valores-recibo { width: 100%; border-collapse: collapse; }
.atos-recibo th { text-align: left; font-weight: 500; color: var(--text-2); border-bottom: 1px solid var(--text); padding: 4px 6px; }
.atos-recibo td { border-bottom: 1px solid var(--border); padding: 4px 6px; vertical-align: top; }
.atos-recibo .num, .valores-recibo .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.caixa-recibo { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--s-4); margin-top: var(--s-5); }
.visto-recibo { border: 1px solid var(--border-strong); display: flex; align-items: flex-end; justify-content: center; padding: var(--s-2); color: var(--text-3); font-size: var(--fs-xs); min-height: 120px; }
.valores-recibo { border: 1px solid var(--border-strong); }
.valores-recibo td { padding: 2px 8px; }
.valores-recibo .soma td { font-weight: 600; border-top: 1px solid var(--border-strong); }
.valores-recibo .total td { font-size: var(--fs-md); }
.valores-recibo .grupo-despesas td { font-weight: 600; padding-top: 6px; }
.obs-recibo { margin-top: var(--s-4); }
.obs-recibo p { margin: 0 0 var(--s-2); }
.obs-recibo .centro { text-align: center; }
.assinatura-recibo { width: 280px; margin: var(--s-10) auto 0; border-top: 1px solid var(--text); text-align: center; padding-top: 4px; color: var(--text-2); font-size: var(--fs-xs); }
.via-interessado { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border-strong); margin-top: var(--s-6); }
.valor-via { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s-2); padding: var(--s-3); border-right: 1px solid var(--border-strong); }
.valor-via strong { font-size: var(--fs-md); }
.dados-via { display: flex; flex-direction: column; gap: 6px; padding: var(--s-3); }
.dados-via .linha-ass { border-bottom: 1px solid var(--text-3); padding-bottom: 10px; }
.rodape-recibo { margin-top: var(--s-3); text-align: right; color: var(--text-3); font-size: var(--fs-xs); }
.carimbo-substituido { position: absolute; top: 40%; left: 0; right: 0; text-align: center; transform: rotate(-12deg); font-size: 28px; font-weight: 600; color: var(--danger); opacity: .35; pointer-events: none; }
@media print {
  @page { size: A4; margin: 0; }
  .lateral, .topo, .mensagens, .paleta, .nao-imprime { display: none !important; }
  .app { display: block; }
  .mesa-recibo { padding: 0; background: none; }
  .folha-recibo { box-shadow: none; max-width: none; }
}

/* recibo mensal da Serasa: o leiaute do modelo do cartório */
.folha-entidade { display: flex; min-height: 1123px; font-family: var(--font-doc); font-size: 11pt; padding: 10mm; }
.moldura-entidade { flex: 1; display: flex; flex-direction: column; border: 1px solid var(--tinta); padding: 0 0 4mm; }
.moldura-entidade > :not(.cab-entidade) { margin-left: 6mm; margin-right: 6mm; }
.moldura-entidade .parcelas-entidade { width: auto; }
.moldura-entidade > .quantidades-entidade { margin-left: auto; margin-right: auto; }
.moldura-entidade > .assinatura-entidade { margin-left: auto; }
.cab-entidade { display: flex; flex-direction: column; align-items: center; gap: 1px; text-align: center; border-bottom: 2px solid var(--tinta); padding: var(--s-2) var(--s-4) var(--s-3); font-size: 9pt; }
.cab-entidade strong { font-size: 13pt; font-weight: 500; letter-spacing: .02em; }
.titulo-entidade { text-align: center; text-transform: uppercase; letter-spacing: .3em; font-size: 15pt; font-weight: 500; margin: 20mm 0 10mm; }
.texto-entidade { text-align: justify; text-indent: 18mm; line-height: 1.4; margin: 0 0 30mm; }
.quantidades-entidade { width: 125mm; margin: 0 auto; border-collapse: collapse; }
.quantidades-entidade td { border: 1px solid var(--tinta); padding: 5px 8px; }
.quantidades-entidade .num { text-align: center; width: 36%; font-variant-numeric: tabular-nums; }
.data-entidade { text-align: right; font-weight: 600; margin: 25mm 0 0; }
.assinatura-entidade { display: flex; flex-direction: column; align-items: center; width: 100mm; margin: 30mm 6mm 0 auto; border-top: 1px dotted var(--tinta); padding-top: 4px; }
.assinatura-entidade span { font-size: 9pt; }
.parcelas-entidade { width: 100%; border-collapse: collapse; margin-top: auto; font-size: 7.5pt; text-align: center; }
.parcelas-entidade th { font-weight: 400; }
.parcelas-entidade th, .parcelas-entidade td { border: 1px solid var(--tinta); padding: 6px 3px; font-variant-numeric: tabular-nums; }
.parcelas-entidade .total { font-size: 9pt; }
.form-cancelar-entidade { max-width: var(--folha-a4); margin: var(--s-4) auto 0; }

/* certidão de protesto (conferência): o leiaute do modelo do Control-M */
.folha-certidao { font-family: var(--font-doc); font-size: 9pt; line-height: 1.35; }
.cab-certidao { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1px solid var(--tinta); padding: var(--s-2) var(--s-4); text-align: center; }
.cab-certidao strong { font-size: 10pt; }
.titulo-certidao { text-align: center; letter-spacing: .3em; font-size: 12pt; text-transform: uppercase; margin: var(--s-6) 0 var(--s-3); }
.texto-certidao { text-align: justify; margin: 0 0 var(--s-4); }
.pesquisado-certidao { display: flex; flex-direction: column; align-items: center; gap: 2px; margin-bottom: var(--s-3); }
.pesquisado-certidao strong { font-size: 11pt; }
.resultado-certidao { text-align: center; font-size: 11pt; margin: var(--s-3) 0; }
.protesto-certidao { display: grid; grid-template-columns: 24px minmax(0, 1fr); padding-bottom: var(--s-2); margin-bottom: var(--s-2); border-bottom: 1px dotted var(--tinta); }
.ordem-certidao { font-weight: 600; }
.protesto-certidao dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px var(--s-3); margin: 0; }
.protesto-certidao dl .largo { grid-column: 1 / -1; }
.protesto-certidao dl div { display: flex; gap: 4px; min-width: 0; }
.protesto-certidao dt { text-transform: uppercase; white-space: nowrap; }
.protesto-certidao dt::after { content: ":"; }
.protesto-certidao dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.protesto-certidao dl div:not(.largo) dd { white-space: nowrap; overflow-wrap: normal; }
.local-certidao { margin: var(--s-5) 0; }
.custas-certidao { width: 100%; border-collapse: collapse; text-align: center; }
.custas-certidao th, .custas-certidao td { border: 1px solid var(--tinta); padding: 2px 4px; font-weight: 400; }
.selo-certidao { margin: var(--s-4) 0; border: 1px dashed var(--text-3); color: var(--text-3); padding: var(--s-3); text-align: center; }
.centro-certidao { text-align: center; margin: 0 0 var(--s-4); }
.espacado { letter-spacing: .3em; }
.assinatura-certidao { border: 1px solid var(--tinta); height: 48px; margin-bottom: var(--s-3); }
.informacoes-certidao { border: 1px solid var(--tinta); margin: var(--s-3) 0 0; padding: var(--s-2) var(--s-3) var(--s-2) var(--s-8); font-size: 8pt; }

/* depósito prévio: extrato do protocolo */
.extrato-dep { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--s-2) var(--s-4); margin: var(--s-3) 0; }
.extrato-dep dt { color: var(--text-3); font-size: var(--fs-xs); }
.extrato-dep dd { margin: 0; font-variant-numeric: tabular-nums; }
.extrato-dep .saldo dd { font-weight: 600; }
.cancelado-dep > div:first-child { color: var(--text-3); text-decoration: line-through; }
.lista-minutas .mudancas { flex-wrap: nowrap; }
.lista-minutas .mudancas details[open] > form { left: auto; right: 0; }
.extrato-recibo { margin-top: var(--s-5); }
.extrato-recibo caption { text-align: left; font-weight: 600; padding-bottom: 4px; }
.extrato-recibo .soma td { font-weight: 600; border-top: 1px solid var(--border-strong); }

/* termos dos livros */
.texto-termo { font-family: var(--font-doc); font-size: 12pt; line-height: 1.6; margin-top: var(--s-6); }
.texto-termo p { margin: 0 0 var(--s-4); text-align: justify; }
.texto-termo .centro { text-align: center; margin-top: var(--s-6); }
.texto-termo .assinatura-recibo { font-family: var(--font); font-size: var(--fs-sm); margin-top: var(--s-12); }
label.marcar { display: flex; align-items: center; gap: var(--s-2); font-weight: 400; }
.mudancas details.a-direita[open] > form { left: auto; right: 0; }

/* consulta de protocolos (lista) */
.consulta { border-top: 1px solid var(--border); }
.consulta > summary { display: flex; align-items: center; gap: var(--s-2); height: 36px; padding: 0 var(--s-5); cursor: pointer; list-style: none; color: var(--text-2); font-weight: 500; }
.consulta > summary::-webkit-details-marker { display: none; }
.consulta > summary svg { color: var(--text-3); transition: transform .12s; }
.consulta:not([open]) > summary svg { transform: rotate(-90deg); }
.consulta > form { padding: 0 var(--s-5) var(--s-4); }
.consulta .aviso { margin: var(--s-2) 0; }
.campos-consulta { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 var(--s-3); }
.campos-consulta .dobro { grid-column: span 2; }
.consulta .acoes-form { margin-top: var(--s-4); }
@media (max-width: 900px) { .campos-consulta { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* aba Partes */
.tabela-partes td .sub { margin-top: 2px; }
.tabela-partes .nowrap { white-space: nowrap; }
.tabela-partes .v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.marca-sim { display: inline-flex; color: var(--success); }
.ordem-partes { display: inline-flex; gap: 2px; }
.ordem-partes form { margin: 0; }
.botao.so-icone { width: var(--controle-topo); padding: 0; justify-content: center; }
.form-parte fieldset { border: 0; border-top: 1px solid var(--border); margin: var(--s-5) 0 0; padding: var(--s-3) 0 0; }
.form-parte legend { padding: 0 var(--s-2) 0 0; font-weight: 600; }
.form-parte .marcas { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-top: var(--s-3); }
.form-parte .campos-certidao { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.form-parte .campos-certidao .dobro { grid-column: span 2; }
.form-parte .rotulo-certidao { margin-top: var(--s-3); }
@media (max-width: 760px) { .form-parte .campos-certidao { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* painel de protocolos */
.numeros-painel { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s-3); margin: 0 0 var(--s-6); }
.numero-painel { display: flex; flex-direction: column; gap: 2px; padding: var(--s-3) var(--s-4); border: 1px solid var(--border); border-radius: var(--r-md); color: var(--text); background: var(--bg); }
a.numero-painel:hover { background: var(--bg-subtle); }
.numero-painel strong { font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.numero-painel span { color: var(--text-3); font-size: var(--fs-xs); }
.numero-painel.alerta strong { color: var(--warning); }
.colunas-painel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6); }
.atalhos-periodo { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-2) 0 var(--s-3); }
.campos-relatorio { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 var(--s-3); align-items: end; }
.resumo-relatorio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); margin: var(--s-4) 0; }
.resumo-relatorio h3 { font-size: var(--fs-sm); margin: 0 0 var(--s-2); }
.resumo-relatorio dl { margin: 0; }
.resumo-relatorio dl div { display: flex; justify-content: space-between; gap: var(--s-3); border-bottom: 1px solid var(--border); padding: 3px 0; }
.resumo-relatorio dd { margin: 0; font-variant-numeric: tabular-nums; }
.so-impressao { display: none; }
@media (max-width: 900px) {
  .colunas-painel, .resumo-relatorio { grid-template-columns: 1fr; }
  .campos-relatorio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
  .so-impressao { display: block; }
  .painel-andamento { display: none !important; }
}

/* relatório de custas e emolumentos */
.tabela-custas { font-size: var(--fs-xs); }
.tabela-custas th, .tabela-custas td { padding: var(--s-1) var(--s-2); }
.tabela-custas td.v, .tabela-custas th.v { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela-custas tr.soma td { font-weight: 600; border-top: 1px solid var(--border-strong); }
.tabela-custas .destaque { color: var(--warning); }
.subtotais-custas { margin-top: var(--s-6); }
.subtotais-custas h3 { font-size: var(--fs-sm); margin: var(--s-5) 0 var(--s-2); }
.base-relatorio { display: flex; gap: var(--s-4); margin: var(--s-2) 0; }
@media print {
  .tabela-custas { font-size: 8pt; }
  .tabela-custas th, .tabela-custas td { padding: 2px 4px; height: auto; }
  .tabela-moldura { overflow: visible; }
}
.usar-imovel { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-2); }

/* DOI */
.meses-doi { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: 0 0 var(--s-5); }
.mes-doi { display: flex; flex-direction: column; gap: 2px; padding: var(--s-2) var(--s-3); border: 1px solid var(--border); border-radius: var(--r-md); color: var(--text); min-width: 150px; }
.mes-doi:hover { background: var(--bg-subtle); }
.mes-doi.ativo { border-color: var(--accent); }
.mes-doi strong { font-variant-numeric: tabular-nums; }
.mes-doi span { color: var(--text-3); font-size: var(--fs-xs); }
.mes-doi.vencido span.prazo { color: var(--danger); }
.declaracao-doi .problemas { margin: var(--s-1) 0 0; padding-left: var(--s-4); color: var(--warning); font-size: var(--fs-xs); }
.declaracao-doi .avisos { margin: var(--s-1) 0 0; padding-left: var(--s-4); color: var(--text-3); font-size: var(--fs-xs); }
.declaracao-doi .obs { white-space: pre-line; color: var(--text-2); font-size: var(--fs-xs); margin-top: var(--s-1); }
.entrega-doi { margin-top: var(--s-5); }
.comunicacao-censec .problemas { margin: var(--s-1) 0 var(--s-2); padding-left: var(--s-4); color: var(--warning); }
.comunicacao-censec .avisos, .comunicacao-censec .avisos-signo { margin: var(--s-1) 0 var(--s-2); padding-left: var(--s-4); color: var(--text-3); font-size: var(--fs-xs); }
.comunicacao-censec .avisos-signo { color: var(--text-2); }
.comunicacao-censec .subtitulo { font-size: var(--fs-sm); margin: var(--s-3) 0 0; }
.comunicacao-censec .qualificacoes { border: 0; padding: 0; margin: var(--s-3) 0; }
.comunicacao-censec .qualificacoes legend { font-size: var(--fs-sm); font-weight: 600; margin-bottom: var(--s-2); }
.comunicacao-censec .parte-cesdi { border: 0; border-top: 1px solid var(--border); margin: var(--s-4) 0 0; padding: var(--s-3) 0 0; }
.comunicacao-censec .parte-cesdi legend { padding: 0 var(--s-2) 0 0; font-weight: 600; }
.comunicacao-censec .parte-cesdi.fora legend { color: var(--text-3); }
.comunicacao-censec .parte-cesdi .marcas { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-top: var(--s-3); }
/* escrituras à Sefaz: o mesmo bloco por pessoa da CENSEC */
.comunicacao-sefaz .problemas { margin: var(--s-1) 0 var(--s-2); padding-left: var(--s-4); color: var(--warning); }
.comunicacao-sefaz .sem-moldura { border: 0; padding: 0; margin: 0; min-width: 0; }
.comunicacao-sefaz .parte-cesdi { border: 0; border-top: 1px solid var(--border); margin: var(--s-4) 0 0; padding: var(--s-3) 0 0; }
.comunicacao-sefaz .parte-cesdi legend { padding: 0 var(--s-2) 0 0; font-weight: 600; }
.comunicacao-sefaz .parte-cesdi.fora legend { color: var(--text-3); }
.periodo-censec { max-width: 720px; margin: 0 0 var(--s-5); }
/* lista da CENSEC agrupada por status: a cor fica no ponto (DESIGN.md), nunca na linha */
.cs-recusada { --cor-st: var(--st-cancelado); }
.cs-falta { --cor-st: var(--st-conferencia); }
.cs-pronta { --cor-st: var(--st-minuta); }
.cs-enviando { --cor-st: var(--st-assinatura); }
.cs-oculta { --cor-st: var(--st-arquivado); }
.cs-enviada { --cor-st: var(--st-lavrado); }
.situacao.cs-falta, .situacao.cs-recusada { color: var(--text); }
.grupos-censec { border-top: 1px solid var(--border); }
.grupos-censec details + details { margin-top: var(--s-3); }
.grupos-censec .tabela-moldura { border-top: 0; }
.tabela-censec { table-layout: fixed; min-width: 760px; }
.tabela-censec .c-protocolo { width: 110px; }
.tabela-censec .c-data { width: 110px; }
.tabela-censec .c-central { width: 90px; }
.tabela-censec .c-livro { width: 150px; }
.tabela-censec .c-situacao { width: 220px; }
.tabela-censec td { overflow: hidden; text-overflow: ellipsis; }
.arquivo-censec .marcas { border: 0; padding: 0; margin: var(--s-3) 0; display: flex; flex-direction: column; gap: var(--s-2); max-height: 280px; overflow-y: auto; }
.arquivo-censec .marcas legend { font-size: var(--fs-sm); font-weight: 600; margin-bottom: var(--s-2); }
.lista-origens { list-style: none; margin: 0 0 var(--s-3); padding: 0; }
.lista-origens li { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); padding: var(--s-2) 0; border-bottom: 1px solid var(--border); }
.folha-termo { padding: 30mm 25mm; }
.folha-termo + .folha-termo { margin-top: var(--s-6); }
.titulo-termo { text-align: center; font-family: var(--font-doc); font-size: 14pt; font-weight: 700; margin: 0 0 var(--s-8); }
.folha-termo .texto-termo p { text-transform: none; }
.assinatura-termo { margin: 30mm auto 0; text-align: center; font-family: var(--font-doc); font-size: 12pt; font-weight: 700; }
@media print { .folha-termo { break-after: page; } .folha-termo + .folha-termo { margin-top: 0; } }

/* orçamento rápido */
.linha-orc { border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-3) var(--s-4); margin-bottom: var(--s-3); }
.linha-orc .cab-linha { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); }
.linha-orc .cab-linha strong { font-size: var(--fs-sm); }
.previa-orc { margin: var(--s-5) 0; }
.previa-orc .soma td { font-weight: 600; }
.aviso-orcamento { margin-top: var(--s-4); font-size: var(--fs-xs); color: var(--text-2); }
.resumo-orcamento { border: 1px solid var(--border-strong); display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: var(--s-4); }
.resumo-orcamento span { color: var(--text-2); font-size: var(--fs-xs); }
.resumo-orcamento strong { font-size: var(--fs-md); margin-bottom: var(--s-3); }
.resumo-orcamento strong.total { font-size: 20px; margin-bottom: 0; }
.valores-recibo.resumo-final { margin-top: var(--s-4); }
/* orçamento: mais justo que o recibo, para caber numa folha A4 mesmo com todas as despesas */
.folha-orcamento { padding: 10mm 14mm; }
.folha-orcamento .cab-recibo { margin-bottom: var(--s-3); }
.folha-orcamento .cab-recibo h1 { margin-top: var(--s-2); }
.folha-orcamento .caixa-recibo { margin-top: var(--s-3); }
.folha-orcamento .valores-recibo td { padding: 1px 8px; }
.folha-orcamento .resumo-final { margin-top: var(--s-3); }
.folha-orcamento .obs-recibo { margin-top: var(--s-3); }
.folha-orcamento .assinatura-recibo { margin-top: var(--s-6); }
.form-parte label.marcar { margin-top: var(--s-3); }

/* índice de atos */
.form-indice .campos-relatorio .largo { grid-column: span 2; }
.tabela-indice td { vertical-align: top; padding-top: var(--s-2); padding-bottom: var(--s-2); height: auto; }
.tabela-indice .nowrap { white-space: nowrap; }
.tabela-indice td .sub { margin-top: 2px; }
.nomes-indice { list-style: none; margin: 0; padding: 0; }
.nomes-indice li + li { margin-top: 2px; }
.selo-restrito { font-size: var(--fs-xs); color: var(--warning); border: 1px solid currentColor; border-radius: var(--r-sm); padding: 0 var(--s-1); margin-left: var(--s-1); }

/* leitura de documentos pela IA */
.form-leitura input[type=file] { display: block; margin-bottom: var(--s-3); }
.tabela-leitura td { vertical-align: top; padding-top: var(--s-2); padding-bottom: var(--s-2); height: auto; }
.tabela-leitura td:first-child input[type=checkbox] { margin: 2px 0 0; }
.lista-leitura { margin: 0 0 var(--s-3); padding-left: var(--s-5); }
.lista-leitura li + li { margin-top: 2px; }
[x-cloak] { display: none !important; }

/* Manutenção do livro (administrador) e filtro do mês nos custos da IA */
.manutencao-livro { margin: var(--s-4) 0; }
.manutencao-livro form { margin-top: var(--s-3); }
.form-paginas { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.form-paginas input[type="number"] { width: 5.5em; }
.form-mes { display: flex; align-items: flex-end; gap: var(--s-3); margin-bottom: var(--s-4); }

/* Regras da IA */
.regras-fixas { white-space: pre-wrap; font-family: inherit; font-size: var(--fs-sm); color: var(--text-2); background: var(--bg-subtle); border-radius: var(--r-md); padding: var(--s-3); margin: 0; }

/* Minuta redigida pela IA: o que a conferência do texto achou */
.lista-conferencia { margin: var(--s-1) 0 var(--s-3); padding-left: var(--s-5); color: var(--text-2); }
.lista-conferencia.problemas { color: var(--warning); }
.lista-conferencia li + li { margin-top: var(--s-1); }

/* CNIB (indisponibilidade) no editor da minuta: uma linha por pessoa, com o resultado e o código HASH */
.lista-cnib { list-style: none; margin: var(--s-1) 0 var(--s-3); padding: 0; }
.lista-cnib li { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-2); padding: var(--s-2) 0; border-bottom: 1px solid var(--border); }
.lista-cnib li > span:first-child { flex: 1 1 100%; }
.cnib-positiva { color: var(--danger); font-weight: 600; }
.cnib-erro { color: var(--warning); }
.cnib-hash { font-family: var(--font-mono); overflow-wrap: anywhere; }
textarea.texto-cnib { width: 100%; font-size: var(--fs-sm); }

/* Custos da IA: um cartão por IA */
.custos-por-ia { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-3); margin-bottom: var(--s-4); }
.custos-por-ia strong { display: block; font-size: var(--fs-lg); margin: var(--s-1) 0; }
.tabela th.centro { text-align: center; }

/* Minuta no ONLYOFFICE: o editor ocupa a área da página */
.area-editor { display: flex; flex-direction: column; gap: var(--s-2); height: calc(100vh - 64px); padding: var(--s-3); box-sizing: border-box; }
.area-editor #editor-onlyoffice, .area-editor iframe { flex: 1; min-height: 480px; border: 1px solid var(--border); border-radius: var(--r-md); }

/* Leitura dos documentos: título da lista do que conferir */
.titulo-itens { margin: var(--s-4) 0 var(--s-2); }

/* Minuta: o editor ocupa a tela e a conferência fica ao lado */
.mesa-minuta { display: grid; grid-template-columns: minmax(0, 1fr) 400px; height: calc(100vh - 64px); min-height: 560px; }
.mesa-editor { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-3); min-width: 0; }
.mesa-editor #editor-onlyoffice, .mesa-editor iframe { flex: 1; min-height: 480px; border: 1px solid var(--border); border-radius: var(--r-md); }
.mesa-itens { overflow-y: auto; padding: var(--s-4) var(--s-5) var(--s-8); border-left: 1px solid var(--border); background: var(--bg-subtle); }
.mesa-itens h1 { font-size: var(--fs-lg); line-height: var(--lh-lg); }
/* painel da conferência recolhível (lembrado por usuário em sistema.js): recolhido, vira uma faixa com o botão */
.alternar-painel { margin-bottom: var(--s-3); }
.mesa-minuta[data-recolhido] { grid-template-columns: minmax(0, 1fr) 48px; }
.mesa-minuta[data-recolhido] .mesa-itens { padding: var(--s-3) var(--s-1); overflow: hidden; }
.mesa-minuta[data-recolhido] .mesa-itens-conteudo { display: none; }
.mesa-minuta[data-recolhido] .alternar-painel { writing-mode: vertical-rl; width: 100%; height: auto; padding: 10px 0; }
@media (max-width: 1100px) {
  .mesa-minuta { grid-template-columns: 1fr; height: auto; }
  .mesa-editor { height: 85vh; }
  .mesa-itens { border-left: 0; border-top: 1px solid var(--border); }
  .mesa-minuta[data-recolhido] { grid-template-columns: 1fr; }
  .mesa-minuta[data-recolhido] .alternar-painel { writing-mode: horizontal-tb; width: auto; padding: 0 10px; }
}

/* Agenda das lavraturas: a semana em colunas, um dia por coluna */
.ir-dia { margin: 0 0 0 var(--s-2); display: flex; gap: var(--s-1); align-items: center; }
.ir-dia input { height: 28px; }
.agenda-semana { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s-3); align-items: start; }
.agenda-dia { border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-2); display: flex; flex-direction: column; gap: var(--s-2); min-height: 160px; }
.agenda-dia h2 { margin: 0; font-size: var(--fs-sm); font-weight: 500; color: var(--text-2); display: flex; gap: var(--s-1); align-items: baseline; }
.agenda-dia.hoje { border-color: var(--accent); }
.agenda-dia.hoje h2 { color: var(--accent); }
.agenda-dia.passado { background: var(--bg-subtle); }
.agenda-item { display: flex; flex-direction: column; gap: 2px; padding: var(--s-2); border-radius: var(--r-md); background: var(--bg); border: 1px solid var(--border); border-left: 3px solid var(--accent); color: var(--text); }
.agenda-item:hover { background: var(--bg-subtle); text-decoration: none; }
.agenda-item .hora { font-size: var(--fs-xs); color: var(--text-2); font-weight: 500; }
.agenda-item .titulo { font-weight: 500; overflow-wrap: anywhere; }
.agenda-dia > .botao { align-self: flex-start; margin-top: auto; }
.lista-agenda { list-style: none; margin: 0 0 var(--s-3); padding: 0; }
.lista-agenda li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-3); padding: var(--s-2) 0; border-bottom: 1px solid var(--border); }
.lista-agenda li.cancelado { color: var(--text-3); text-decoration: line-through; }

/* ---------- fichas de firma ---------- */
.cartoes-firma { display: flex; flex-wrap: wrap; gap: var(--s-4); margin-bottom: var(--s-3); }
.cartao-firma { margin: 0; flex: 1 1 420px; max-width: 900px; }
.cartao-firma img { width: 100%; height: auto; display: block; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--bg-muted); }
.cartao-firma figcaption { margin-top: var(--s-1); }
.campos-alerta { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 var(--s-3); }
.alerta-desativar { display: flex; gap: var(--s-2); align-items: center; }
.alerta-desativar input { min-width: 160px; }
.marcas-ficha { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-bottom: var(--s-3); }
@media (max-width: 640px) {
  .campos-alerta { grid-template-columns: 1fr; }
  .alerta-desativar { flex-wrap: wrap; }
}

.cartao-importacao { padding: var(--s-3) 0; border-bottom: 1px solid var(--border); }
.cartao-importacao p { margin: 0 0 var(--s-1); }

/* Balcão de firmas: prévia do recibo e das etiquetas, como saem nas impressoras (texto de largura fixa) */
.impresso { font-family: var(--font-mono); font-size: var(--fs-xs); line-height: 1.35; white-space: pre; overflow-x: auto;
  background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-3);
  margin: 0 0 var(--s-3); max-width: 100%; width: max-content; }
.impresso-rotulo { font-size: var(--fs-xs); margin-bottom: var(--s-1); }
.campo-ficha { margin-bottom: var(--s-3); }
.ficha-escolhida { display: flex; gap: var(--s-2); align-items: center; padding: var(--s-2) var(--s-3);
  background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--r-md); }
.fichas-escolher { list-style: none; margin: var(--s-2) 0 0; padding: 0; border: 1px solid var(--border);
  border-radius: var(--r-md); max-width: 720px; }
.fichas-escolher li + li { border-top: 1px solid var(--border); }
.ficha-opcao { display: block; width: 100%; text-align: left; background: none; border: 0; padding: var(--s-2) var(--s-3);
  color: inherit; font: inherit; cursor: pointer; }
.ficha-opcao:hover, .ficha-opcao:focus-visible { background: var(--bg-subtle); }
.ficha-opcao .sub { display: block; }
.nomes-etiqueta { list-style: none; margin: 0; padding: 0; }
.nomes-etiqueta li { display: flex; align-items: center; gap: var(--s-2); padding: var(--s-1) 0; }
.nomes-etiqueta li + li { border-top: 1px solid var(--border); }
.nomes-etiqueta label { display: flex; align-items: center; gap: var(--s-2); flex: 1; font-weight: 400; margin: 0; }
.grupo-campos { border: 0; border-top: 1px solid var(--border); margin: var(--s-3) 0 0; padding: var(--s-3) 0 0; }
.grupo-campos legend { font-weight: 600; padding: 0 var(--s-2) 0 0; }

/* Página do termo: quem assinou */
.lista-termo { list-style: none; margin: 0; padding: 0; }
.lista-termo li { padding: var(--s-2) 0; }
.lista-termo li + li { border-top: 1px solid var(--border); }

/* Boletos (cobranca): situação, ações na linha e a ficha de compensação (sempre em papel branco) */
.cb-a_registrar { --cor-st: var(--st-aberto); }
.cb-enviado { --cor-st: var(--st-minuta); }
.cb-registrado { --cor-st: var(--st-assinatura); }
.cb-rejeitado { --cor-st: var(--st-cancelado); }
.cb-pago { --cor-st: var(--st-lavrado); }
.cb-baixado { --cor-st: var(--st-arquivado); }
.situacao.cb-baixado { color: var(--text-2); }
.acoes-linha { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.acoes-linha form { margin: 0; }
.filtro-inline { display: flex; gap: 6px; align-items: center; }
.ficha-boleto { color: var(--tinta); background: var(--papel); font-size: 9pt; line-height: 1.25; break-inside: avoid; }
.fb-cab { display: flex; align-items: flex-end; gap: var(--s-3); border-bottom: 2px solid var(--tinta); padding-bottom: 3px; }
.fb-banco { font-size: 14pt; }
.fb-codigo { font-size: 13pt; font-weight: 600; border-left: 2px solid var(--tinta); border-right: 2px solid var(--tinta); padding: 0 8px; }
.fb-titulo { margin-left: auto; font-weight: 600; }
.fb-linha { margin-left: auto; font-size: 11pt; font-weight: 600; letter-spacing: .02em; }
.fb-grade { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(0, 1.4fr); margin: 0; border-left: 1px solid var(--tinta); }
.fb-grade > div { border-right: 1px solid var(--tinta); border-bottom: 1px solid var(--tinta); padding: 2px 4px; min-height: 26px; }
.fb-grade dt { font-size: 7pt; color: var(--tinta); opacity: .75; }
.fb-grade dd { margin: 0; }
.fb-largo { grid-column: span 5; }
.fb-lado { grid-column: 6; text-align: right; }
.fb-inteiro { grid-column: 1 / -1; }
.fb-instrucoes { min-height: 70px !important; }
.fb-grade-recibo { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fb-grade-recibo .fb-largo { grid-column: 1 / -1; }
.fb-corte { border-top: 1px dashed var(--tinta); margin: var(--s-4) 0 var(--s-3); padding-top: 2px; text-align: right; font-size: 7pt; }
.fb-rodape { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-4); margin-top: var(--s-2); }
.fb-barras { width: 103mm; height: 13mm; fill: var(--tinta); display: block; }
.fb-autentica { font-size: 7pt; }
.doc-cobranca .ficha-boleto { margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px dashed var(--tinta); }

/* Usuários (Administração) */
.filtro-usuarios { display: flex; align-items: flex-end; gap: var(--s-3); margin-bottom: var(--s-4); }
.filtro-usuarios label { margin: 0 0 var(--s-2); }
.filtro-usuarios select { width: auto; }
.form-parte label.marcar-desc, .marcar-desc { align-items: flex-start; margin-top: var(--s-3); }
.marcar-desc input { margin-top: 3px; }
.marcar-desc .sub { display: block; }
.grade-marcar { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 var(--s-4); margin-bottom: var(--s-3); }
.lista-modulos { list-style: none; margin: 0; padding: 0; }
.lista-modulos li { display: flex; align-items: center; gap: var(--s-2); height: var(--linha); }
.lista-modulos svg { color: var(--success); }
.acoes-usuario .mudancas { margin-bottom: var(--s-3); }

/* painel do celular (Tabelião): coluna única, sem menu lateral, botões grandes para o dedo */
.app.sem-lateral { grid-template-columns: minmax(0, 1fr); }
.celular { max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--s-4); }
.celular .cartao h2 { display: flex; align-items: center; gap: var(--s-2); }
.celular .contagem { margin-left: auto; color: var(--text-3); font-weight: 400; font-size: var(--fs-sm); }
.cel-item { padding: var(--s-3) 0; border-top: 1px solid var(--border); }
.cel-item:first-of-type { border-top: 0; padding-top: 0; }
.cel-item .sub { color: var(--text-3); font-size: var(--fs-sm); margin-top: 2px; }
.cel-botoes { display: flex; gap: var(--s-2); margin-top: var(--s-3); }
.cel-botoes form { flex: 1; }
.cel-botoes .botao { width: 100%; height: 40px; justify-content: center; }
.cel-item details > summary { list-style: none; }
.cel-item details > summary::-webkit-details-marker { display: none; }
.cel-item details { margin-top: var(--s-3); }

/* protesto: consulta (situação em botões de opção) e certidões */
.opcoes-situacao { border: 0; padding: 0; margin: var(--s-3) 0 0; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); }
.opcoes-situacao legend { font-weight: 500; margin-bottom: var(--s-2); }
.opcoes-situacao label { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.acoes-form .marcar { display: inline-flex; align-items: center; gap: 6px; }
.excluir-certidao { display: inline-block; }
.excluir-certidao summary { list-style: none; cursor: pointer; }
.excluir-certidao form { display: grid; gap: var(--s-2); margin-top: var(--s-2); min-width: 280px; }
/* protesto: título com cancelamento autorizado pela CRA (como a letra vermelha do Control-M) */
.autorizado { color: var(--danger); font-weight: 600; }
a.autorizado { text-decoration: underline; }
.total-cancelamento { text-align: right; font-size: 1.1em; margin: var(--s-3) 0; }
.marcar-linha { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin: var(--s-3) 0; }

/* protesto: relatórios (estatísticas, listagem aos portadores) em folha A4 */
.filtro-relatorio { max-width: var(--folha-a4); margin: 0 auto var(--s-5); background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-4); }
.folha-relatorio + .folha-relatorio { margin-top: var(--s-6); }
.cab-relatorio { display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; margin-bottom: var(--s-3); }
.cab-relatorio strong { font-size: 12pt; }
.titulo-relatorio { font-size: var(--fs-md); text-align: center; border-bottom: 1px solid var(--tinta); padding-bottom: var(--s-2); margin: var(--s-3) 0; }
.tabela-estatistica { width: 80%; margin: 0 auto; border-collapse: collapse; }
.tabela-estatistica th { text-align: left; font-weight: 400; padding: 6px 0; }
.tabela-estatistica .num { text-align: right; font-variant-numeric: tabular-nums; padding-left: var(--s-4); white-space: nowrap; }
.tabela-estatistica .soma th, .tabela-estatistica .soma td { font-weight: 600; }
.tabela-estatistica .separa th, .tabela-estatistica .separa td { padding-top: var(--s-5); }
.titulo-listagem { display: flex; justify-content: center; position: relative; font-size: var(--fs-md); }
.titulo-listagem .tabular { position: absolute; right: 0; font-size: var(--fs-xs); }
.caixa-listagem { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1px solid var(--tinta); padding: var(--s-2); margin: var(--s-1) 0 var(--s-2); }
.ocorrencia-listagem { font-size: 13pt; }
.tabela-listagem { font-size: 8pt; }
.tabela-listagem .grupo-data td { border-bottom: 0; font-weight: 600; padding-top: var(--s-2); }
.declaro-listagem { text-align: center; font-weight: 600; margin: var(--s-4) 0 var(--s-2); }
.totais-listagem { display: flex; justify-content: space-between; font-weight: 600; }
.assina-listagem { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6); margin-top: var(--s-5); }
.formas-listagem { list-style: none; margin: var(--s-2) 0; padding: 0; display: grid; gap: 2px; }
.assina-listagem .linha-ass { border-top: 1px solid var(--tinta); padding-top: 2px; margin: var(--s-8) 0 0; }
@media print { .folha-relatorio.quebra-pagina + .folha-relatorio { break-before: page; margin-top: 0; } }
.protesto-certidao dl .dobro { grid-column: span 2; }
.protocolo-certidao { text-align: right; font-weight: 600; margin: var(--s-2) 0 0; }
/* comprovante do pedido de certidão (1ª via do requerente) */
.comprovante-pedido dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px var(--s-4); margin: var(--s-3) 0; }
.comprovante-pedido dl .largo { grid-column: 1 / -1; }
.comprovante-pedido dl div { display: flex; gap: 4px; }
.comprovante-pedido dt::after { content: ":"; }
.comprovante-pedido dd { margin: 0; font-weight: 600; }
.comprovante-pedido .requer { text-align: center; margin: var(--s-5) 0 var(--s-3); }
.comprovante-pedido .assina { width: 260px; margin: var(--s-8) 0 0 auto; border-top: 1px solid var(--tinta); text-align: center; padding-top: 2px; }

/* Estoque de selos e fichas: o código do selo ou do cartão não quebra no meio */
.codigo-estoque { white-space: nowrap; font-variant-numeric: tabular-nums; }
/* painéis do dia (Notas, Firmas, Protesto) */
.navegacao-dia { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); }
.navegacao-dia input[type="date"] { height: var(--controle-topo); }
.titulo-painel { font-size: var(--fs-sm); font-weight: 600; margin: 0 0 var(--s-3); }
.lista-dia .hora { display: inline-block; min-width: 44px; color: var(--text-3); }
.lista-dia .sub { padding-left: 44px; }
.contagem { margin: 0; }
.contagem div { display: flex; justify-content: space-between; gap: var(--s-3); border-bottom: 1px solid var(--border); padding: var(--s-1) 0; }
.contagem dt { color: var(--text-2); }
.contagem dd { margin: 0; font-weight: 500; }
.colunas-mes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-6); }
.colunas-mes .titulo-painel a { color: inherit; }

/* intimação do protesto (modelos do cartório): uma por folha A4, com o boleto e, na pessoal, o canhoto */
.folha-intimacao { font-family: var(--font-doc); font-size: 8pt; line-height: 1.18; padding: 5mm 8mm; margin-bottom: var(--s-6); min-height: 297mm; }
.folha-intimacao p { margin: 0 0 4px; }
.int-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; border: 1px solid var(--tinta); }
.int-cab > div { padding: 3px 6px; border-right: 1px solid var(--tinta); display: flex; flex-direction: column; justify-content: center; }
.int-cab > div:last-child { border-right: 0; }
.int-rotulo { font-weight: 700; font-size: 11pt; }
.int-serventia { text-align: center; }
.int-serventia strong { font-size: 10pt; }
.int-datas span, .int-grade span, .int-dados dt { font-size: 7pt; text-transform: uppercase; }
.int-cab-carta { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; margin-bottom: 6px; }
.int-cab-carta strong { font-size: 11pt; }
.int-titulo { text-align: center; font-size: 12pt; margin: 6px 0; text-transform: uppercase; }
.int-texto { text-align: justify; margin-bottom: 6px; font-size: 9pt; }
.int-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--tinta); border-top: 0; }
.int-grade > div { padding: 2px 6px; border-right: 1px solid var(--tinta); display: flex; flex-direction: column; }
.int-grade > div:last-child { border-right: 0; }
.int-faixa { grid-template-columns: minmax(0, 1fr) auto; }
.int-faixa .int-largo { justify-content: center; }
.int-direita { text-align: right; }
.int-direita strong { font-size: 10pt; }
.int-dados { margin: 0; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--tinta); border-top: 0; }
.int-dados > div { padding: 2px 6px; border-bottom: 1px solid var(--tinta); }
.int-dados > div:last-child { border-bottom: 0; }
.int-dados dd { margin: 0; }
.int-inteiro { grid-column: 1 / -1; }
.int-sacador { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); }
.int-doc { float: right; }
.int-codigo { display: flex; flex-direction: column; align-items: center; font-size: 8pt; }
.int-barras { width: 60mm; height: 9mm; fill: var(--tinta); display: block; }
.int-tabela, .int-custas { width: 100%; border-collapse: collapse; }
.int-tabela th, .int-tabela td { border: 1px solid var(--tinta); border-top: 0; padding: 1px 4px; text-align: center; }
.int-tabela th { font-weight: 400; font-size: 7pt; }
.int-valores { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.int-atencao { border: 1px solid var(--tinta); margin-top: 4px; padding: 2px 6px; }
.int-atencao-t { display: block; text-align: center; text-transform: uppercase; }
.int-atencao dl { margin: 1px 0; }
.int-atencao p { margin: 0; font-size: 7.5pt; }
.int-atencao dl > div { display: grid; grid-template-columns: 38mm minmax(0, 1fr); gap: 4px; }
.int-atencao dt { font-weight: 600; }
.int-atencao dd { margin: 0; }
.int-centro { text-align: center; }
.int-pequeno { font-size: 7pt; margin-top: 2px !important; margin-bottom: 2px !important; }
.int-custas th { font-weight: 400; font-size: 7pt; text-align: left; }
.int-custas td { text-align: left; }
.int-boleto { margin-top: 4px; }
.int-boleto .ficha-boleto { font-size: 7.5pt; line-height: 1.15; }
.int-boleto .fb-grade > div { min-height: 0; padding: 1px 4px; }
.int-boleto .fb-instrucoes { min-height: 0 !important; }
.int-boleto .fb-corte { margin: 4px 0; }
.int-boleto .fb-banco { font-size: 12pt; }
.int-boleto .fb-codigo { font-size: 11pt; }
.int-canhoto { border-top: 1px dashed var(--tinta); margin-top: 4px; padding-top: 4px; }
.int-canhoto-cab { display: grid; grid-template-columns: minmax(0, 1fr) 62mm; border: 1px solid var(--tinta); }
.int-canhoto-cab > div { display: flex; flex-direction: column; align-items: center; padding: 3px; border-right: 1px solid var(--tinta); }
.int-canhoto-cab dl { margin: 0; padding: 3px 6px; }
.int-canhoto-cab dl div { display: flex; justify-content: space-between; gap: var(--s-2); }
.int-canhoto-cab dt { font-weight: 600; }
.int-canhoto-cab dd { margin: 0; }
.int-canhoto-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 62mm; gap: var(--s-3); padding-top: 4px; }
.int-linha { border-top: 1px solid var(--tinta); margin-top: 10px; font-size: 7pt; }
.int-motivos ul { list-style: none; margin: 2px 0 0; padding: 0; columns: 2; font-size: 7.5pt; }
.tabela tr.selecionada td { background: var(--accent-subtle); }
@media print { .folha-intimacao { break-after: page; margin: 0; } }
/* e-Notariado: resultado da conferência (a cor fica no ponto) */
.en-valido { --cor-st: var(--st-lavrado); }
.en-invalido { --cor-st: var(--st-cancelado); }
.en-nao_encontrado, .en-sem_resposta { --cor-st: var(--st-conferencia); }
/* e-Notariado: resultado da conferência (a cor fica no ponto) */
.en-valido { --cor-st: var(--st-lavrado); }
.en-invalido { --cor-st: var(--st-cancelado); }
.en-nao_encontrado, .en-sem_resposta { --cor-st: var(--st-conferencia); }
.cel-link { display: block; color: var(--text); text-decoration: none; }
.cel-link:hover strong { color: var(--accent); }
.celular .cel-botoes .botao { display: inline-flex; align-items: center; gap: var(--s-2); }
.celular .cel-botoes > a.botao { flex: 1; }
.cel-novo { margin: 0 0 var(--s-3); }

/* piloto (08/11/2026): faixa "apenas teste", marca no impresso e o botão flutuante de relatar problema */
.aviso-piloto { display: flex; gap: var(--s-2); align-items: baseline; background: var(--warning-bg); color: var(--text); border-bottom: 1px solid var(--border); padding: 6px var(--s-4); font-size: var(--fs-sm); }
.aviso-piloto strong { color: var(--warning); white-space: nowrap; }
.relatar-problema { position: fixed; left: calc(var(--lateral) + var(--s-4)); bottom: var(--s-4); z-index: 40; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 var(--s-3); border: 1px solid var(--border-strong); border-radius: 999px; background: var(--bg); color: var(--text); box-shadow: var(--sombra-flutuante); font: inherit; font-size: var(--fs-sm); cursor: pointer; }
.relatar-problema:hover { background: var(--bg-muted); }
.relatar-problema svg { color: var(--warning); }
.janela-problema { width: 560px; max-width: 100%; max-height: 80vh; overflow-y: auto; background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante); padding: var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); }
.janela-problema h2 { margin: 0; font-size: var(--fs-lg); }
.janela-problema p { margin: 0; }
.janela-problema .linha-acoes { display: flex; gap: var(--s-2); }
.previa-problema { max-width: 100%; max-height: 240px; margin-top: var(--s-2); border: 1px solid var(--border); border-radius: var(--r-sm); }
.miniatura-problema { width: 120px; max-height: 80px; object-fit: cover; object-position: top left; border: 1px solid var(--border); border-radius: var(--r-sm); }
.tabela.problemas .texto-problema { max-width: 420px; }
.resolver-problema { display: flex; flex-wrap: wrap; gap: var(--s-1); margin-top: var(--s-1); }
.resolver-problema input { min-width: 140px; }
@media (max-width: 768px) { .relatar-problema { left: var(--s-4); } }
@media print {
  .relatar-problema, .aviso-piloto { display: none !important; }
  body.em-piloto::after { content: "TESTE — SEM VALOR"; position: fixed; top: 45%; left: 0; right: 0; text-align: center; transform: rotate(-30deg); font-size: 60pt; font-weight: 700; color: var(--danger); opacity: .2; z-index: 1000; pointer-events: none; }
}
.cel-link { display: block; color: var(--text); text-decoration: none; }
.cel-link:hover strong { color: var(--accent); }
.celular .cel-botoes .botao { display: inline-flex; align-items: center; gap: var(--s-2); }
.celular .cel-botoes > a.botao { flex: 1; }
.cel-novo { margin: 0 0 var(--s-3); }

/* Livro Caixa: Registro Diário, balancete, balanço, estatística e listagens no padrão do Control-M (folha A4) */
.titulo-livro { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; gap: var(--s-3); border-top: 1px solid var(--tinta); padding-top: var(--s-2); margin: var(--s-2) 0 var(--s-3); }
.titulo-livro h1, .titulo-livro h2 { margin: 0; font-size: var(--fs-lg); text-align: center; }
.titulo-livro span:last-child { text-align: right; }
.tabela-registro { width: 100%; border-collapse: collapse; font-size: var(--fs-xs); }
.tabela-registro thead th { background: var(--bg-subtle); text-align: left; font-weight: 600; padding: 4px 6px; }
.tabela-registro td, .tabela-registro tbody th { padding: 2px 6px; font-weight: 400; text-align: left; }
.tabela-registro .v { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela-registro .c-data { width: 84px; white-space: nowrap; }
.tabela-registro .c-qtd { width: 80px; }
.tabela-registro a { color: inherit; text-decoration: none; }
.tabela-registro a:hover { text-decoration: underline; }
.tabela-registro .transporte td { font-weight: 600; font-style: italic; padding-top: var(--s-2); }
.tabela-registro .grupo td { text-align: center; font-weight: 600; padding-top: var(--s-2); }
.tabela-registro .soma td, .tabela-registro .soma th { font-weight: 600; background: var(--bg-subtle); }
.tabela-registro .soma td:not(.v) { text-align: right; }
.tabela-balanco tbody th { font-weight: 600; }
.tabela-balanco td, .tabela-balanco tbody th { padding: 6px; }
.resumo-dia { width: 60%; margin-top: var(--s-3); }
.linha-filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s-3); }
.titulo-grupo { font-size: var(--fs-md); margin: var(--s-5) 0 var(--s-2); }
.data-termo { text-align: right; font-family: var(--font-doc); margin-top: var(--s-8); }
.filtro-relatorio .abas { margin-bottom: var(--s-4); }
@media print {
  .registro-diario { break-after: page; }
  .tabela-registro thead th, .tabela-registro .soma td, .tabela-registro .soma th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* caixa do dia do protesto: as 15 colunas do resumo do Control-M */
.tabela.caixa-protesto { font-size: var(--fs-xs); }
.tabela.caixa-protesto td:first-child { min-width: 240px; }

/* firmas: aviso manual da ficha (exigir presença, cuidado redobrado, impedimento) em janela ao abrir a ficha */
.janela-aviso-ficha { width: 560px; max-width: 100%; background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--sombra-flutuante); border-top: 4px solid var(--warning); padding: var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); }
.janela-aviso-ficha h2 { margin: 0; font-size: var(--fs-lg); display: flex; align-items: center; gap: var(--s-2); }
.janela-aviso-ficha h2 svg { color: var(--warning); }
.janela-aviso-ficha p { margin: 0; }
.janela-aviso-ficha ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--s-2); }
.janela-aviso-ficha li { background: var(--warning-bg); border-radius: var(--r-sm); padding: var(--s-2) var(--s-3); }
.janela-aviso-ficha li.erro { background: var(--danger-bg); }
.janela-aviso-ficha .sub { display: block; }
.janela-aviso-ficha .linha-acoes { display: flex; justify-content: flex-end; }
.aviso-ficha { display: flex; align-items: center; gap: 4px; color: var(--warning); font-size: var(--fs-sm); }

/* protesto: livro de protocolo (folha do Control-M de 05/01/2026): dez quadros por folha, partes à esquerda e o
   título à direita, termo de encerramento diário no fim do dia */
.folha-protocolo { font-size: 7.5pt; padding: 10mm 10mm; line-height: 1.25; }
.folha-protocolo + .folha-protocolo { margin-top: var(--s-6); }
.cab-protocolo, .quadro-protocolo { display: grid; grid-template-columns: 1fr 36%; border: 1px solid var(--tinta); }
.cab-protocolo { border-width: 1.5px; }
.cab-protocolo-serventia { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: var(--s-1) var(--s-2); font-size: 9.5pt; text-align: center; }
.cab-protocolo-serventia strong:first-child { font-weight: 400; font-size: 10pt; }
.cab-protocolo-livro { display: flex; gap: var(--s-8); }
.cab-protocolo-campos, .quadro-protocolo-titulo { display: flex; flex-direction: column; padding: 2px var(--s-2); border-left: 1px solid var(--tinta); white-space: nowrap; }
.cab-protocolo-campos { font-size: 8pt; justify-content: center; }
.cab-protocolo-campos > div, .quadro-protocolo-titulo > div { display: flex; justify-content: space-between; gap: var(--s-2); min-height: 1.25em; }
.cab-protocolo-campos > .centro, .quadro-protocolo-titulo > .centro { justify-content: center; }
.quadro-protocolo-titulo > .recuo { padding-left: var(--s-6); }
.quadro-protocolo { border-top: 0; break-inside: avoid; }
.quadro-protocolo-partes { display: grid; grid-template-columns: 7.5em 1fr; gap: 0 var(--s-2); margin: 0; padding: 2px var(--s-2); }
.quadro-protocolo-partes dt { font-weight: 400; white-space: nowrap; }
.quadro-protocolo-partes dd { margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.quadro-protocolo-partes .com-cidade { display: flex; justify-content: space-between; gap: var(--s-2); }
.quadro-protocolo-partes .doc-tipo { display: inline-block; min-width: 4em; }
.encerramento-protocolo { display: flex; flex-direction: column; align-items: center; text-align: center; margin-top: var(--s-4); font-size: 10pt; }
.encerramento-protocolo strong { font-size: 11pt; }
.encerramento-protocolo p { margin: var(--s-1) 0; line-height: 1.5; }
.assinatura-protocolo { width: 45%; border-top: 1px solid var(--tinta); margin: var(--s-8) 0 var(--s-1); }
@media print { .folha-protocolo { break-after: page; margin: 0; } .folha-protocolo + .folha-protocolo { margin-top: 0; } }
