/* ============================================================================
 * JurisIQ — folha de estilo da aplicação
 *
 * Construída inteiramente sobre os tokens de frontend/css/tokens.css, que é
 * gerado a partir de design/tokens.json. Nenhum valor cru (cor, px de fonte,
 * raio, sombra) deve aparecer aqui — se faltar um token, crie-o em tokens.json.
 *
 * Três princípios que este arquivo aplica (ver design/design-system.md):
 *  1. COR É RECURSO ESCASSO. Vermelho e âmbar são reservados a "isto exige uma
 *     ação". MÉDIO e INFO são neutros de propósito — se tudo grita, nada grita.
 *  2. A FORMA DIZ O EIXO. Etiqueta PREENCHIDA = prioridade do evento.
 *     Etiqueta de CONTORNO com ponto = grau de confiança do sistema.
 *     São duas perguntas diferentes e não podem parecer a mesma coisa.
 *  3. O TEOR É O PRODUTO. O texto da intimação é o documento oficial que o
 *     advogado precisa ler — recebe o maior corpo e a maior entrelinha da
 *     interface, nunca itálico e nunca cor rebaixada.
 * ========================================================================== */

@import url('tokens.css');
@import url('fonts.css');

/* ------------------------------- base --------------------------------- */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--fonte-ui);
  font-size:var(--texto-sm);
  line-height:var(--altura-normal);
  background:var(--fundo);
  color:var(--texto);
  -webkit-font-smoothing:antialiased;
  /* Números alinhados em coluna: em tabela de prazo e valor, isso não é estética. */
  font-variant-numeric:tabular-nums;
}
.oculto{display:none !important}
a{color:var(--acao-texto);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer;color:inherit}
img,svg{max-width:100%}

/* Foco visível e consistente — requisito de acessibilidade, não enfeite. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--foco);
  outline-offset:2px;
  border-radius:var(--raio-sm);
}

/* ------------------------------- LOGIN -------------------------------- */
.login{
  min-height:100vh;display:grid;place-items:center;padding:var(--e6);
  background:
    radial-gradient(900px 520px at 15% -15%, color-mix(in srgb, var(--marca-500) 14%, transparent) 0%, transparent 62%),
    var(--fundo);
}
.cartao-login{
  width:min(400px,100%);background:var(--superficie);border:1px solid var(--borda);
  border-radius:var(--raio-xl);padding:var(--e8);box-shadow:var(--sombra-3);
  display:grid;gap:var(--e3);text-align:center;
}
.marca-simbolo{width:56px;margin:0 auto var(--e1);border-radius:var(--raio-lg)}
.cartao-login h1{
  font-family:var(--fonte-marca);font-size:var(--texto-3xl);
  letter-spacing:var(--tracking-titulo);font-weight:800;color:var(--texto);
}
.slogan{color:var(--texto-2);margin-bottom:var(--e2);font-size:var(--texto-xs)}
.cartao-login label{
  display:grid;gap:var(--e1);text-align:left;
  font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi);
}
input,select,textarea{
  background:var(--superficie);border:1px solid var(--borda-campo);border-radius:var(--raio-md);
  padding:10px 12px;color:var(--texto);font:inherit;width:100%;
  transition:border-color var(--mov-rapido),box-shadow var(--mov-rapido);
}
input::placeholder{color:var(--texto-3)}
input:hover,select:hover,textarea:hover{border-color:var(--texto-3)}
.acessos-demo{
  margin-top:var(--e1);border-top:1px solid var(--borda);padding-top:var(--e4);
  display:flex;gap:var(--e1);flex-wrap:wrap;justify-content:center;
}
.acessos-demo strong{
  width:100%;font-size:var(--texto-3xs);color:var(--texto-3);
  text-transform:uppercase;letter-spacing:var(--tracking-rotulo);margin-bottom:var(--e1);
}
.acessos-demo button{
  background:var(--superficie-afundada);border:1px solid var(--borda);color:var(--texto-2);
  border-radius:var(--raio-pill);padding:5px 12px;font-size:var(--texto-2xs);
  transition:color var(--mov-rapido),border-color var(--mov-rapido);
}
.acessos-demo button:hover{color:var(--texto);border-color:var(--acao)}
.erro{color:var(--critico);font-size:var(--texto-xs);min-height:18px}
.cartao-configuracao{width:min(520px,100%);text-align:left}
.cartao-configuracao .marca-simbolo,.cartao-configuracao h1,.cartao-configuracao .slogan{text-align:center}
.cartao-configuracao h1{font-size:var(--texto-2xl)}
.grupo-form{border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e3) var(--e4) var(--e4);display:grid;gap:var(--e3);margin:0}
.grupo-form legend{font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);color:var(--texto-2);font-weight:var(--peso-semi);padding:0 var(--e1)}
.grupo-form label{display:grid;gap:var(--e1);font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi)}
.linha-oab{display:grid;grid-template-columns:1fr 84px;gap:var(--e3)}

/* -------------------------------- APP --------------------------------- */
/* minmax(0,1fr) impede que uma tabela larga empurre o layout inteiro —
 * era a causa da barra de rolagem horizontal na página toda. */
#app{display:grid;grid-template-columns:var(--lateral) minmax(0,1fr);min-height:100vh}

.lateral{
  background:var(--superficie);border-right:1px solid var(--borda);
  display:flex;flex-direction:column;padding:var(--e5) var(--e3);gap:var(--e5);
  position:sticky;top:0;height:100vh;
}
.marca{display:flex;gap:var(--e2);align-items:center;padding:0 var(--e1)}
.marca img{width:32px;border-radius:9px}
.marca strong{
  display:block;font-family:var(--fonte-marca);font-size:var(--texto-lg);
  letter-spacing:var(--tracking-titulo);font-weight:800;
}
.marca span{font-size:var(--texto-3xs);color:var(--texto-3)}

#menu{display:grid;gap:1px;flex:1;overflow-y:auto;min-height:0;align-content:start;scrollbar-width:none}   /* rola com a roda do mouse, sem barra visível */
#menu::-webkit-scrollbar{width:0;height:0;background:transparent}
#menu a{
  display:flex;justify-content:space-between;align-items:center;gap:var(--e2);
  padding:9px 12px;border-radius:var(--raio-md);color:var(--texto-2);
  font-weight:var(--peso-medio);font-size:var(--texto-xs);
  transition:background var(--mov-rapido),color var(--mov-rapido);
}
#menu a:hover{background:var(--superficie-afundada);color:var(--texto);text-decoration:none}
#menu a.ativo{
  background:var(--info-fraco);color:var(--acao-texto);font-weight:var(--peso-semi);
  box-shadow:inset 2px 0 0 var(--acao);
}
#menu .pino{
  background:var(--superficie-afundada);color:var(--texto-2);border:1px solid var(--borda);
  border-radius:var(--raio-pill);padding:0 7px;font-size:var(--texto-3xs);
  font-weight:var(--peso-forte);min-width:20px;text-align:center;
}
/* O contador de alertas só fica vermelho quando é vermelho de verdade.
 * Um badge permanentemente crítico deixa de ser um sinal. */
#menu .pino.alerta{background:var(--critico);color:var(--sobre-critico);border-color:transparent}

.rodape-lateral{border-top:1px solid var(--borda);padding-top:var(--e3);display:grid;gap:var(--e2)}
.usuario{display:grid;padding:0 var(--e1);min-width:0}
.usuario span{
  font-weight:var(--peso-semi);font-size:var(--texto-xs);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.usuario small{
  font-size:var(--texto-3xs);color:var(--texto-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.dim{color:var(--texto-3) !important}

main{display:flex;flex-direction:column;min-width:0}
.topo{
  display:flex;gap:var(--e3);align-items:center;padding:var(--e3) var(--e6);
  border-bottom:1px solid var(--borda);background:var(--superficie);
  position:sticky;top:0;z-index:5;
}
.busca{flex:1;display:flex;gap:var(--e2);min-width:0}
.topo-acoes{display:flex;gap:var(--e2);align-items:center;flex-shrink:0}
.sino{position:relative;font-size:var(--texto-lg);line-height:1;padding:var(--e1)}
.sino span{
  position:absolute;top:-2px;right:-6px;background:var(--critico);color:var(--sobre-critico);
  border-radius:var(--raio-pill);font-size:10px;padding:1px 5px;font-weight:var(--peso-forte);
}

/* Faixa de demonstração — informativa, não decorativa. Âmbar porque é uma
 * ressalva sobre a confiabilidade do dado (prompt-mestre §40). */
.faixa-demo{
  background:var(--alto-fraco);border-bottom:1px solid var(--borda);
  color:var(--alto);font-size:var(--texto-2xs);padding:var(--e2) var(--e6);
  font-weight:var(--peso-medio);
}
.conteudo{padding:var(--e6);display:grid;gap:var(--e5);align-content:start;min-width:0}
.carregando{color:var(--texto-2);padding:var(--e10);text-align:center}

/* ------------------------------ BOTÕES -------------------------------- */
.btn{
  background:var(--superficie);border:1px solid var(--borda-forte);color:var(--texto);
  border-radius:var(--raio-md);padding:8px 14px;font-size:var(--texto-xs);
  font-weight:var(--peso-medio);white-space:nowrap;
  transition:border-color var(--mov-rapido),background var(--mov-rapido);
}
.btn:hover{border-color:var(--acao);background:var(--superficie-afundada)}
.btn.primario{background:var(--acao);border-color:transparent;color:#fff;font-weight:var(--peso-semi)}
.btn.primario:hover{background:var(--acao-forte)}
.btn.discreto{background:transparent;border-color:transparent;color:var(--texto-2)}
.btn.discreto:hover{background:var(--superficie-afundada);color:var(--texto)}
.btn.largo{width:100%}
.btn.mini{padding:4px 10px;font-size:var(--texto-2xs);border-radius:var(--raio-sm)}
.btn.ok{border-color:var(--ok);color:var(--ok)}
.btn.perigo{border-color:var(--critico);color:var(--critico)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ----------------------------- ESTRUTURA ------------------------------ */
h2.titulo{font-size:var(--texto-2xl);letter-spacing:var(--tracking-titulo);font-weight:var(--peso-forte)}
h2.titulo small{
  display:block;font-size:var(--texto-xs);color:var(--texto-2);
  font-weight:var(--peso-regular);margin-top:var(--e1);letter-spacing:0;
}
.cartao{
  background:var(--superficie);border:1px solid var(--borda);
  border-radius:var(--raio-lg);padding:var(--e4);box-shadow:var(--sombra-1);
  min-width:0;overflow-x:auto;   /* tabela larga rola DENTRO do cartão */
}
.cartao h3{
  font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);
  color:var(--texto-2);margin-bottom:var(--e3);font-weight:var(--peso-semi);
  display:flex;justify-content:space-between;align-items:center;gap:var(--e2);
}
.grade{display:grid;gap:var(--e4);min-width:0}
.grade.g4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.grade.g2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}

/* Indicador. Sem gradiente: número é dado, e dado se lê, não se enfeita.
 * O gradiente da marca fica reservado às superfícies de marca. */
.kpi{display:flex;align-items:baseline;gap:var(--e2);flex-wrap:wrap}
.kpi b{
  font-size:var(--texto-3xl);letter-spacing:-.02em;font-weight:var(--peso-forte);
  color:var(--texto);line-height:var(--altura-apertada);
}
.kpi span{color:var(--texto-2);font-size:var(--texto-2xs)}

.linhas{display:grid;gap:var(--e1)}
.linha{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--e3);align-items:start;
  background:transparent;border:1px solid transparent;border-radius:var(--raio-md);
  padding:10px 12px;transition:background var(--mov-rapido),border-color var(--mov-rapido);
}
.linha:hover{background:var(--superficie-afundada);border-color:var(--borda);cursor:pointer}
.linha .tit{font-weight:var(--peso-semi);font-size:var(--texto-xs)}
.linha .sub{color:var(--texto-2);font-size:var(--texto-2xs);margin-top:2px}
.linha .meta{color:var(--texto-3);font-size:var(--texto-2xs);text-align:right;white-space:nowrap}
.novo{color:var(--acao-texto);font-weight:var(--peso-forte);font-size:var(--texto-3xs)}
/* Dica sob um campo de formulário: explica o que o sistema fez ou precisa. */
.dica{
  display:block;font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-regular);
  margin-top:var(--e1);min-height:18px;line-height:var(--altura-justa);
}
.dica.ok{color:var(--ok)}
.dica.erro{color:var(--critico)}
.rotulo{
  font-size:var(--texto-3xs);color:var(--texto-2);text-transform:uppercase;
  letter-spacing:var(--tracking-rotulo);font-weight:var(--peso-semi);
}
.vazio{
  color:var(--texto-3);font-size:var(--texto-xs);padding:var(--e4);text-align:center;
  border:1px dashed var(--borda-forte);border-radius:var(--raio-md);
}

/* ----------------------------- ETIQUETAS ------------------------------
 * Dois eixos, duas formas. Ver princípio 2 no cabeçalho deste arquivo.
 * --------------------------------------------------------------------- */
.etq{
  display:inline-flex;align-items:center;gap:5px;border-radius:var(--raio-pill);
  padding:2px 9px;font-size:var(--texto-3xs);font-weight:var(--peso-forte);
  letter-spacing:.02em;border:1px solid transparent;white-space:nowrap;vertical-align:middle;
}

/* Eixo 1 — PRIORIDADE do evento: preenchida. Só o que exige ação recebe cor. */
.etq.CRITICO{background:var(--critico);color:var(--sobre-critico)}
.etq.ALTO{background:var(--alto);color:var(--sobre-alto)}
.etq.MEDIO{background:var(--superficie-afundada);color:var(--texto-2);border-color:var(--borda)}
.etq.INFO{background:transparent;color:var(--texto-3);border-color:var(--borda)}

/* Eixo 2 — CONFIANÇA da associação / estado do prazo: contorno + ponto. */
.etq.CONFIRMADO,.etq.PROVAVEL,.etq.POSSIVEL,.etq.DESCARTADO{
  background:transparent;font-weight:var(--peso-semi);
}
.etq.CONFIRMADO::before,.etq.PROVAVEL::before,
.etq.POSSIVEL::before,.etq.DESCARTADO::before{
  content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;
}
.etq.CONFIRMADO{color:var(--ok);border-color:var(--ok)}
.etq.PROVAVEL{color:var(--alto);border-color:var(--alto)}
.etq.POSSIVEL{color:var(--info);border-color:var(--info)}
.etq.DESCARTADO{color:var(--texto-3);border-color:var(--borda-forte)}

/* Marcadores de origem do dado. */
.etq.demo{background:var(--alto-fraco);color:var(--alto);border-color:transparent}
.etq.unificado{background:var(--info-fraco);color:var(--info);border-color:transparent}
.etq.neutra{background:var(--superficie-afundada);color:var(--texto-2);border-color:var(--borda)}

/* ------------------------------ TABELAS ------------------------------- */
table{width:100%;border-collapse:collapse;font-size:var(--texto-xs)}
th{
  text-align:left;color:var(--texto-2);font-size:var(--texto-3xs);text-transform:uppercase;
  letter-spacing:var(--tracking-rotulo);padding:8px 10px;
  border-bottom:1px solid var(--borda-forte);font-weight:var(--peso-semi);white-space:nowrap;
}
td{padding:10px;border-bottom:1px solid var(--borda);vertical-align:top}
tbody tr:last-child td{border-bottom:none}
tr:hover td{background:var(--superficie-afundada)}
.clicavel{cursor:pointer}

/* Identificador jurídico: CNJ, CPF/CNPJ, OAB, hash de fonte. */
.mono{
  font-family:var(--fonte-dado);font-size:var(--texto-2xs);
  font-feature-settings:"zero" 1;letter-spacing:-.01em;
}

/* --------------------- "POR QUE ESTOU VENDO ISSO?" --------------------
 * O diferencial declarado do produto (prompt-mestre §12). Tem tratamento
 * próprio e reconhecível, e não compete com as etiquetas de prioridade.
 * --------------------------------------------------------------------- */
.porque{
  background:var(--info-fraco);
  border:1px solid color-mix(in srgb, var(--info) 28%, transparent);
  border-radius:var(--raio-md);padding:var(--e3) var(--e4);
}
.porque h4{
  font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);
  color:var(--info);margin-bottom:var(--e2);font-weight:var(--peso-forte);
}
.porque ul{
  margin:0;padding-left:18px;display:grid;gap:5px;
  color:var(--texto);font-size:var(--texto-2xs);
}

/* Teor / trecho literal da comunicação oficial — princípio 3 do cabeçalho.
 * Corpo maior, entrelinha de leitura, medida limitada, SEM itálico. */
.trecho{
  background:var(--superficie-afundada);border-left:3px solid var(--acao);
  padding:var(--e3) var(--e4);border-radius:0 var(--raio-md) var(--raio-md) 0;
  color:var(--texto);font-size:var(--texto-md);line-height:var(--altura-leitura);
  max-width:var(--medida-leitura);margin-top:var(--e2);
}

/* ------------------------------ TIMELINE ------------------------------ */
.timeline{display:grid;gap:0;position:relative;padding-left:var(--e6)}
.timeline::before{
  content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--borda-forte);
}
.tl{position:relative;padding:var(--e3) 0 var(--e3) var(--e2);border-bottom:1px solid var(--borda)}
.tl:last-child{border-bottom:none}
.tl::before{
  content:"";position:absolute;left:-22px;top:18px;width:10px;height:10px;border-radius:50%;
  background:var(--acao);box-shadow:0 0 0 3px var(--superficie);
}
.tl.prazo::before{background:var(--alto)}
.tl.tarefa::before{background:var(--ok)}
.tl .quando{font-size:var(--texto-3xs);color:var(--texto-3)}
.tl .tit{font-weight:var(--peso-semi);margin:2px 0}
.tl .corpo{color:var(--texto-2);font-size:var(--texto-2xs)}

/* ------------------------------- PAINEL ------------------------------- */
.painel{
  position:fixed;inset:0;background:color-mix(in srgb, var(--marca-900) 62%, transparent);
  display:grid;place-items:center;padding:var(--e5);z-index:40;
}
.painel-caixa{
  background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio-xl);
  width:min(760px,100%);max-height:86vh;overflow:auto;padding:var(--e6);
  position:relative;box-shadow:var(--sombra-3);
}
.fechar{
  position:absolute;top:var(--e3);right:var(--e4);background:none;border:none;
  color:var(--texto-2);font-size:26px;line-height:1;border-radius:var(--raio-sm);
}
.fechar:hover{color:var(--texto)}
.painel-caixa h3{font-size:var(--texto-xl);margin-bottom:var(--e1);letter-spacing:var(--tracking-titulo)}
/* cartão dentro do painel mantém o rótulo pequeno, não herda o título grande do painel */
.painel-caixa .cartao h3{font-size:var(--texto-3xs);letter-spacing:var(--tracking-rotulo);margin-bottom:var(--e2)}
.bloco{display:grid;gap:var(--e3);margin-top:var(--e4)}
.pares{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:var(--e2)}
.par{background:var(--superficie-afundada);border-radius:var(--raio-md);padding:9px 11px;min-width:0}
.par b{
  display:block;font-size:var(--texto-3xs);color:var(--texto-2);text-transform:uppercase;
  letter-spacing:var(--tracking-rotulo);font-weight:var(--peso-semi);margin-bottom:2px;
}
.par span{font-size:var(--texto-xs);word-break:break-word}
.acoes{display:flex;gap:var(--e2);flex-wrap:wrap;margin-top:var(--e1);align-items:center}

/* ------------------------------- AVISO -------------------------------- */
.aviso{
  position:fixed;bottom:var(--e5);right:var(--e5);background:var(--superficie);
  border:1px solid var(--acao);border-left:3px solid var(--acao);
  border-radius:var(--raio-md);padding:var(--e3) var(--e4);box-shadow:var(--sombra-3);
  z-index:60;max-width:380px;font-size:var(--texto-xs);
}
.aviso.erro-toast{border-color:var(--critico);border-left-color:var(--critico)}

/* --------------------------- SAÚDE DAS FONTES ------------------------- */
.barra{
  height:6px;background:var(--superficie-afundada);border-radius:var(--raio-pill);
  overflow:hidden;margin-top:var(--e1);
}
.barra i{display:block;height:100%;background:var(--acao)}
.fonte-card{display:grid;gap:var(--e1);grid-template-columns:minmax(0,1fr)}   /* sem isso a tabela alarga o cartão */
.fonte-card h3{flex-wrap:wrap}
/* caixas compactas: até 3 fontes por linha, dados em blocos pequenos */
.grade-fontes{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:var(--e3);align-items:start}   /* cada cartão só com a altura do próprio conteúdo */
.fonte-card{padding:var(--e3) var(--e4)}
.fonte-card > .dim{font-size:12px !important;line-height:1.45}
.fonte-card .pares{grid-template-columns:repeat(auto-fit,minmax(min(118px,100%),1fr));gap:6px}
.fonte-card .par{padding:6px 9px}
.fonte-card .par b{font-size:10px}
.fonte-card .par span{font-size:12.5px;line-height:1.35}
.tabela-coletas th,.tabela-coletas td{padding:6px 8px;font-size:12.5px}
.tabela-coletas{width:100%;table-layout:fixed}
.tabela-coletas th:nth-child(1){width:34%}
.tabela-coletas th:nth-child(2){width:18%}
.tabela-coletas td{vertical-align:top;overflow-wrap:anywhere}
.tabela-coletas td .dim{font-size:var(--texto-2xs);margin-top:2px}
.ponto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex:none}
.ponto.ok{background:var(--ok)}
.ponto.atraso{background:var(--alto)}
.ponto.erro{background:var(--critico)}
.filtros{display:flex;gap:var(--e2);flex-wrap:wrap;align-items:center}
/* Filtro de período: rótulo, De/Até e atalhos numa faixa que quebra linha em tela estreita. */
.filtro-periodo{display:flex;gap:var(--e2) var(--e3);flex-wrap:wrap;align-items:center;margin-top:var(--e3);padding-top:var(--e3);border-top:1px solid var(--borda)}
.cartao > .filtro-periodo:first-child{margin-top:0;padding-top:0;border-top:none}
.campo-data{display:inline-flex;align-items:center;gap:var(--e1);font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi)}
.campo-data input{width:auto;padding:6px 8px;font-size:var(--texto-xs)}
.atalhos-periodo{display:flex;gap:var(--e1);flex-wrap:wrap}
.filtros select,.filtros input{width:auto;min-width:150px}

/* ------------------------- AÇÕES COM ÍCONE ---------------------------
 * Lápis e lixeira. 32px de alvo (toque). Neutros em repouso: a lixeira só fica
 * vermelha ao passar o mouse ou focar — ação destrutiva não grita na lista.
 * --------------------------------------------------------------------- */
.btn-icone{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);
  min-width:32px;height:32px;padding:0 var(--e2);border-radius:var(--raio-md);
  background:transparent;border:1px solid transparent;color:var(--texto-2);
  transition:background var(--mov-rapido),border-color var(--mov-rapido),color var(--mov-rapido);
}
.btn-icone:hover{background:var(--superficie-afundada);border-color:var(--borda-forte);color:var(--texto)}
.btn-icone.perigo:hover,.btn-icone.perigo:focus-visible{color:var(--critico);border-color:var(--critico);background:var(--critico-fraco)}
.btn-icone.com-texto{border-color:var(--borda-forte);font-size:var(--texto-xs);font-weight:var(--peso-medio);padding:0 var(--e3)}
.acoes-linha{display:inline-flex;gap:var(--e1);align-items:center}
/* Tabela com rolagem própria que ocupa a largura toda do cartão (inclusive o respiro):
 * a coluna fixa encosta na borda visível e nenhum pedaço de outra coluna aparece ao lado dela. */
.tabela-rolavel{overflow-x:auto;margin:0 calc(-1 * var(--e4));padding:0 var(--e4)}
.tabela-rolavel th.col-acoes,.tabela-rolavel td.col-acoes{right:calc(-1 * var(--e4));padding-right:var(--e4)}
/* Coluna de ações presa à direita: em tela estreita a tabela rola, mas as ações ficam à vista. */
td.col-acoes,th.col-acoes{
  width:1%;white-space:nowrap;text-align:right;
  position:sticky;right:0;z-index:1;background:var(--superficie);
  box-shadow:-8px 0 8px -8px color-mix(in srgb, var(--texto) 25%, transparent);
}
tr:hover td.col-acoes{background:var(--superficie-afundada)}
.cabecalho-com-acoes{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--e4);flex-wrap:wrap}

/* Exclusão: o botão final é o único vermelho cheio da interface. */
.btn.perigo-cheio{background:var(--critico);border-color:transparent;color:var(--sobre-critico);font-weight:var(--peso-semi)}
.btn.perigo-cheio:hover{filter:brightness(.92)}
.btn.perigo-cheio[disabled]{opacity:.45;filter:none}
.alerta-exclusao{border-color:var(--alto);background:var(--alto-fraco);box-shadow:none}
.lista-efeitos{margin:var(--e1) 0 0;padding-left:18px;display:grid;gap:var(--e1);font-size:var(--texto-xs)}
.confirmacao{display:flex;gap:var(--e2);align-items:flex-start;font-size:var(--texto-xs);color:var(--texto)}
.confirmacao input{width:auto;margin-top:3px;accent-color:var(--critico)}

/* Visível só para leitor de tela. */
.vh{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* --------------------------- SELETOR DE TEMA -------------------------- */
.btn-tema{
  background:transparent;border:1px solid var(--borda-forte);color:var(--texto-2);
  border-radius:var(--raio-md);width:34px;height:34px;display:grid;place-items:center;
  font-size:15px;line-height:1;flex:none;
}
.btn-tema:hover{border-color:var(--acao);color:var(--texto)}

/* ------------------------------ RESPONSIVO ---------------------------- */
@media(max-width:1024px){
  .conteudo{padding:var(--e4)}
  .topo{padding:var(--e3) var(--e4)}
  .faixa-demo{padding:var(--e2) var(--e4)}
}
@media(max-width:720px){
  #app{grid-template-columns:minmax(0,1fr)}
  .lateral{
    position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;
    border-right:none;border-bottom:1px solid var(--borda);gap:var(--e3);
  }
  #menu{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;width:100%;gap:var(--e1)}
  .rodape-lateral{border:none;padding:0;grid-auto-flow:column;align-items:center;gap:var(--e2)}
  .topo{flex-wrap:wrap}
  .busca{order:2;width:100%;flex-basis:100%}
  .linha{grid-template-columns:auto minmax(0,1fr)}
  .linha .meta{grid-column:2;text-align:left}
}

/* -------------------------------- IMPRESSÃO ---------------------------
 * Advogado imprime e anexa. Sem isto, a captura sai com fundo escuro e a
 * barra lateral ocupando um terço da folha.
 * --------------------------------------------------------------------- */
@media print{
  :root{color-scheme:light}
  .lateral,.topo,.faixa-demo,.acoes,.btn,.aviso,.fechar,.btn-icone,.col-acoes{display:none !important}
  #app{display:block}
  .conteudo,.painel-caixa{padding:0;box-shadow:none}
  .painel{position:static;background:none;padding:0}
  .cartao{break-inside:avoid;box-shadow:none;border-color:#ccc}
  .trecho{max-width:none}
  body{background:#fff;color:#000;font-size:11pt}
}

/* Calendário forense: em tela estreita a tabela rola na horizontal em vez de espremer as colunas de texto. */
.tabela-calendario{min-width:760px}
.tabela-calendario td:nth-child(-n+2){white-space:nowrap}

/* Link de texto nas telas de acesso ("Esqueci a senha", "Voltar"). */
.link-discreto{background:none;border:none;padding:var(--e1);color:var(--acao-texto);font-size:var(--texto-xs);font-weight:var(--peso-medio);cursor:pointer;justify-self:center}
.link-discreto:hover{text-decoration:underline}
#tela-recuperacao form{display:grid;gap:var(--e3)}
#tela-recuperacao code{font-family:var(--fonte-dado);font-size:.95em;word-break:break-all}

/* =============================== ENTRADA =============================== */
.recurso-icone svg,.campo-icone,.ver-senha svg,.cartao-seguranca svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@keyframes subir{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.status-servidor{display:inline-flex;align-items:center;gap:6px}
.status-servidor .ponto{margin:0;background:var(--texto-3)}
.status-servidor .ponto.ok{background:#1F9D6B}
.status-servidor .ponto.erro{background:#E5484D}
.pulso{width:8px;height:8px;border-radius:50%;background:#1F9D6B;box-shadow:0 0 0 0 rgba(31,157,107,.5);animation:pulso 2.4s infinite;flex:none}
.pulso.nao{background:#D98A1C;box-shadow:0 0 0 0 rgba(217,138,28,.5)}
@keyframes pulso{70%{box-shadow:0 0 0 7px rgba(0,0,0,0)}100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}}

/* ---- painel do formulário ---- */
.acesso-painel{
  display:grid;place-items:center;padding:var(--e8) var(--e6);position:relative;
  background:radial-gradient(600px 400px at 100% 0%, color-mix(in srgb, var(--marca-500) 7%, transparent), transparent 70%), var(--fundo);
}
.cartao-acesso{
  width:min(420px,100%);display:grid;gap:var(--e4);
  animation:subir .5s cubic-bezier(.2,.8,.3,1) both;
}
.cartao-acesso > form{display:grid;gap:var(--e4)}
.cartao-simbolo{border-radius:12px;display:none}
.cartao-saudacao{font-size:var(--texto-sm);color:var(--acao-texto);font-weight:var(--peso-semi);margin-bottom:-8px}
.cartao-acesso h1{font-family:var(--fonte-marca);font-weight:800;font-size:var(--texto-3xl);letter-spacing:-.025em;color:var(--texto);line-height:1.15}
.cartao-sub{font-size:var(--texto-sm);color:var(--texto-2);margin-top:-6px;line-height:1.5}
.campo{display:grid;gap:6px;font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi)}
.campo input{padding:12px 14px;font-size:var(--texto-sm);border-radius:var(--raio-md)}
.campo input:focus{border-color:var(--acao);box-shadow:0 0 0 4px color-mix(in srgb, var(--acao) 18%, transparent);outline:none}
.campo-com-icone{position:relative;display:block}
.campo-com-icone input{padding-left:42px}
.campo-com-icone input[type="password"],.campo-com-icone input#login-senha{padding-right:46px}
.campo-icone{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--texto-3);pointer-events:none;transition:color var(--mov-rapido)}
.campo-com-icone:focus-within .campo-icone{color:var(--acao-texto)}
.ver-senha{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;background:transparent;
  border-radius:var(--raio-sm);display:grid;place-items:center;color:var(--texto-3);
}
.ver-senha svg{width:18px;height:18px}
.ver-senha:hover{color:var(--texto);background:var(--superficie-afundada)}
.ver-senha[aria-pressed="true"]{color:var(--acao-texto)}
.ver-senha[aria-pressed="true"] svg{stroke-dasharray:2 0}
.aviso-caps{min-height:0;font-size:var(--texto-2xs);color:var(--alto);font-weight:var(--peso-medio)}
.aviso-caps:empty{display:none}
.linha-opcoes{display:flex;justify-content:space-between;align-items:center;gap:var(--e3);flex-wrap:wrap;margin-top:-4px}
.lembrar{display:inline-flex;align-items:center;gap:var(--e2);font-size:var(--texto-xs);color:var(--texto-2);cursor:pointer;user-select:none}
.lembrar input{width:16px;height:16px;accent-color:var(--acao);margin:0}
.linha-opcoes .link-discreto{padding:4px 0}
.btn-entrar{height:46px;font-size:var(--texto-sm);display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);
  box-shadow:0 8px 22px -8px color-mix(in srgb, var(--acao) 70%, transparent);transition:transform var(--mov-rapido),box-shadow var(--mov-rapido),background var(--mov-rapido)}
.btn-entrar:hover{transform:translateY(-1px);box-shadow:0 12px 26px -8px color-mix(in srgb, var(--acao) 80%, transparent)}
.btn-entrar:active{transform:none}
.btn-entrar .giro{display:none;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:girar .7s linear infinite}
.btn-entrar.carregando{pointer-events:none;opacity:.9}
.btn-entrar.carregando .giro{display:inline-block}
@keyframes girar{to{transform:rotate(360deg)}}
.cartao-acesso .erro{min-height:0;margin-top:-6px}
.cartao-acesso .erro:empty{display:none}
.tremer{animation:tremer .38s cubic-bezier(.36,.07,.19,.97)}
@keyframes tremer{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.cartao-seguranca{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--texto-2xs);color:var(--texto-3);margin-top:var(--e1)}
.cartao-seguranca svg{width:13px;height:13px}
.cartao-acesso .acessos-demo{margin-top:0}

/* recuperação */
.passos{list-style:none;margin:-4px 0 0;padding:0;display:flex;gap:var(--e4);font-size:var(--texto-xs);color:var(--texto-3)}
.passos li{display:inline-flex;align-items:center;gap:6px}
.passos span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--borda-forte);font-size:11px;font-weight:var(--peso-semi)}
.passos li.ativo{color:var(--texto);font-weight:var(--peso-semi)}
.passos li.ativo span{background:var(--acao);border-color:transparent;color:#fff}
.passos li.feito span{background:var(--ok-fraco);border-color:transparent;color:var(--ok)}
.caixa-onde{font-size:var(--texto-xs);color:var(--texto-2);background:var(--superficie-afundada);border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e3);line-height:1.5}
.caixa-onde code{font-family:var(--fonte-dado);font-size:.92em;overflow-wrap:anywhere;color:var(--texto)}
.forca-senha{display:flex;align-items:center;gap:var(--e2);margin-top:-8px;font-size:var(--texto-2xs);color:var(--texto-3)}
.forca-barra{flex:1;height:4px;border-radius:4px;background:var(--superficie-afundada);overflow:hidden}
.forca-barra span{display:block;height:100%;width:0;border-radius:4px;transition:width .3s,background .3s}
.link-discreto.voltar{justify-self:start;padding-left:0}

/* ============================ DOCUMENTOS ============================ */
.docs-cabecalho{display:flex;justify-content:space-between;align-items:center;gap:var(--e3);flex-wrap:wrap;margin-bottom:var(--e3)}
.docs-filtros{display:flex;gap:6px;flex-wrap:wrap}
.docs-filtros button{border:1px solid var(--borda);background:transparent;color:var(--texto-2);border-radius:var(--raio-pill);padding:3px 10px;font-size:var(--texto-2xs)}
.docs-filtros button[aria-pressed="true"]{background:var(--acao);border-color:transparent;color:#fff}
.zona-envio{
  border:1.5px dashed var(--borda-forte);border-radius:var(--raio-lg);padding:var(--e5);text-align:center;
  display:grid;gap:var(--e2);justify-items:center;background:var(--superficie-afundada);transition:border-color var(--mov-rapido),background var(--mov-rapido);
}
.zona-envio.arrastando{border-color:var(--acao);background:color-mix(in srgb, var(--acao) 8%, var(--superficie))}
.zona-envio svg{width:30px;height:30px;color:var(--acao-texto);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.zona-envio b{font-size:var(--texto-sm)}
.zona-envio small{color:var(--texto-3);font-size:var(--texto-2xs)}
.zona-opcoes{display:flex;gap:var(--e2);flex-wrap:wrap;justify-content:center;align-items:center}
.zona-opcoes select,.zona-opcoes input{width:auto;padding:6px 10px;font-size:var(--texto-xs)}
.fila-envio{display:grid;gap:6px;margin-top:var(--e3)}
.fila-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--e2);align-items:center;font-size:var(--texto-xs)}
.fila-item .barra{grid-column:1/-1;height:4px;background:var(--superficie-afundada);border-radius:4px;overflow:hidden}
.fila-item .barra span{display:block;height:100%;width:0;background:var(--acao);transition:width .2s}
.fila-item.ok .barra span{background:var(--ok)}
.fila-item.erro{color:var(--critico)}
.lista-docs{display:grid;gap:2px;margin-top:var(--e3)}
.doc{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:var(--e3);align-items:center;padding:8px 10px;border-radius:var(--raio-md);border:1px solid transparent}
.doc:hover{background:var(--superficie-afundada);border-color:var(--borda)}
.doc-icone{width:36px;height:42px;border-radius:6px;display:grid;place-items:center;font-size:9.5px;font-weight:700;letter-spacing:.04em;color:#fff;text-transform:uppercase;position:relative}
.doc-icone::after{content:"";position:absolute;top:0;right:0;border-width:0 9px 9px 0;border-style:solid;border-color:var(--superficie) rgba(255,255,255,.35) transparent transparent}
.doc-icone.pdf{background:#D64545}.doc-icone.doc,.doc-icone.docx,.doc-icone.odt,.doc-icone.rtf{background:#2B6CD4}
.doc-icone.xls,.doc-icone.xlsx,.doc-icone.ods,.doc-icone.csv{background:#1E8E5A}.doc-icone.png,.doc-icone.jpg,.doc-icone.jpeg,.doc-icone.webp{background:#8A5CD6}
.doc-icone.txt,.doc-icone.html,.doc-icone.pptx{background:var(--n-500)}
.doc-tit{font-weight:var(--peso-semi);font-size:var(--texto-xs);color:var(--texto);background:none;border:none;padding:0;text-align:left;cursor:pointer}
.doc-tit:hover{text-decoration:underline;color:var(--acao-texto)}
.doc-sub{font-size:var(--texto-2xs);color:var(--texto-3);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip-cat{border:1px solid var(--borda);border-radius:var(--raio-pill);padding:0 7px;color:var(--texto-2)}
.visualizador{width:100%;height:min(72vh,900px);border:1px solid var(--borda);border-radius:var(--raio-md);background:#fff}
.visualizador-img{max-width:100%;max-height:72vh;display:block;margin:0 auto;border-radius:var(--raio-md)}
.anexos-cadastro{border:1px dashed var(--borda-forte);border-radius:var(--raio-md);padding:var(--e3);display:grid;gap:var(--e2)}
.anexos-cadastro ul{margin:0;padding-left:18px;font-size:var(--texto-xs);color:var(--texto-2)}

/* ============================ FINANCEIRO ============================ */
.fin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:var(--e3)}
.fin-kpi{background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio-lg);padding:var(--e4);display:grid;gap:4px;position:relative;overflow:hidden}
.fin-kpi::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--cor, var(--acao))}
.fin-kpi span{font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi);text-transform:uppercase;letter-spacing:.05em}
.fin-kpi b{font-family:var(--fonte-dado);font-size:clamp(18px,1.8vw,24px);color:var(--texto);font-weight:600;letter-spacing:-.01em}
.fin-kpi small{font-size:var(--texto-2xs);color:var(--texto-3)}
.fin-grade{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--e4)}
@media (max-width:1100px){.fin-grade{grid-template-columns:1fr}}
.grafico-meses{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--e3);align-items:end;height:170px;padding-top:var(--e3)}
.grafico-mes{display:grid;grid-template-rows:1fr auto;gap:6px;height:100%}
.grafico-barras{display:flex;gap:4px;align-items:flex-end;justify-content:center;height:100%}
.grafico-barras span{width:min(18px,40%);border-radius:4px 4px 0 0;min-height:2px;transition:height .5s cubic-bezier(.2,.8,.3,1)}
.grafico-barras .prev{background:color-mix(in srgb, var(--acao) 35%, transparent)}
.grafico-barras .rec{background:var(--ok)}
.grafico-mes small{text-align:center;font-size:var(--texto-3xs);color:var(--texto-3);text-transform:capitalize}
.grafico-mes.atual small{color:var(--texto);font-weight:var(--peso-semi)}
.legenda{display:flex;gap:var(--e4);font-size:var(--texto-2xs);color:var(--texto-2)}
.legenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.valor{font-family:var(--fonte-dado);white-space:nowrap;text-align:right}
th.valor{text-align:right}
.sit{display:inline-flex;align-items:center;gap:5px;font-size:var(--texto-2xs);font-weight:var(--peso-semi);border-radius:var(--raio-pill);padding:2px 9px;white-space:nowrap;border:1px solid transparent}
.sit::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.sit.aberto{color:var(--info);background:var(--info-fraco)}
.sit.parcial{color:var(--alto);background:var(--alto-fraco)}
.sit.atrasado{color:var(--critico);background:var(--critico-fraco)}
.sit.pago{color:var(--ok);background:var(--ok-fraco)}
.sit.cancelado{color:var(--texto-3);border-color:var(--borda)}
.contrato-card{border:1px solid var(--borda);border-radius:var(--raio-lg);padding:var(--e4);display:grid;gap:var(--e2);background:var(--superficie)}
.contrato-card h4{margin:0;font-size:var(--texto-sm)}
.progresso{height:6px;border-radius:6px;background:var(--superficie-afundada);overflow:hidden;display:flex}
.progresso span{display:block;height:100%}
.progresso .rec{background:var(--ok)}
.progresso .atr{background:var(--critico)}
.previa-parcelas{max-height:180px;overflow:auto;border:1px solid var(--borda);border-radius:var(--raio-md);font-size:var(--texto-xs)}
.previa-parcelas div{display:flex;justify-content:space-between;padding:5px 10px;border-top:1px solid var(--borda)}
.previa-parcelas div:first-child{border-top:none}
.linha-atraso{display:flex;justify-content:space-between;gap:var(--e3);padding:8px 0;border-top:1px solid var(--borda);font-size:var(--texto-xs)}
.linha-atraso:first-child{border-top:none}

/* ============================= CONSULTAS ============================ */
.cons-barra{display:flex;gap:var(--e3);flex-wrap:wrap;align-items:center;justify-content:space-between}
.cons-busca{position:relative;flex:1;min-width:240px;max-width:520px}
.cons-busca input{padding-left:38px}
.cons-busca svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--texto-3);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.cons-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--e3);margin-top:var(--e4)}
.cons-card{background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio-lg);padding:var(--e4);display:grid;grid-template-rows:auto 1fr auto;gap:var(--e2);transition:border-color var(--mov-rapido),transform var(--mov-rapido),box-shadow var(--mov-rapido)}
.cons-card.disp:hover{border-color:var(--acao);transform:translateY(-2px);box-shadow:var(--sombra-2)}
.cons-card.indisp{opacity:.72}
.cons-card h4{margin:0;font-size:var(--texto-sm);display:flex;justify-content:space-between;gap:var(--e2);align-items:flex-start}
.cons-card p{margin:0;font-size:var(--texto-xs);color:var(--texto-2);line-height:1.5}
.cons-rodape{display:flex;justify-content:space-between;align-items:center;gap:var(--e2);flex-wrap:wrap}
.cons-selo{font-size:10.5px;font-weight:var(--peso-semi);border-radius:var(--raio-pill);padding:2px 8px;white-space:nowrap}
.cons-selo.gratis{background:var(--ok-fraco);color:var(--ok)}
.cons-selo.fornecedor{background:var(--superficie-afundada);color:var(--texto-3);border:1px solid var(--borda)}
.cons-entrada{font-size:10.5px;color:var(--texto-2);border:1px solid var(--borda);border-radius:var(--raio-pill);padding:1px 8px}
.cons-grupo{font-size:10.5px;color:var(--texto-3);text-transform:uppercase;letter-spacing:.06em}
.cons-resultado table th{width:32%;color:var(--texto-2);font-weight:var(--peso-semi)}
.cons-lgpd{font-size:var(--texto-2xs);color:var(--texto-2);background:var(--superficie-afundada);border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e3);line-height:1.5}
.cons-lgpd label{display:flex;gap:var(--e2);align-items:flex-start;color:var(--texto);font-weight:var(--peso-medio);margin-top:var(--e2)}
.cons-lgpd input{width:auto;margin-top:3px}
.carregando-linha{height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--acao),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:varrer 1s linear infinite}
@keyframes varrer{from{background-position:-50% 0}to{background-position:150% 0}}

/* ============================ USUÁRIOS ============================ */
.perfil-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--texto-2xs);font-weight:var(--peso-semi);border-radius:var(--raio-pill);padding:2px 9px;white-space:nowrap;border:1px solid var(--borda)}
.perfil-chip.socio{background:color-mix(in srgb, var(--acao) 14%, transparent);color:var(--acao-texto);border-color:transparent}
.perfil-chip.gestor{background:var(--alto-fraco);color:var(--alto);border-color:transparent}
.perfil-chip.advogado{background:var(--ok-fraco);color:var(--ok);border-color:transparent}
.perfil-chip.inativo{background:transparent;color:var(--texto-3);text-decoration:line-through}
.perfil-chip.sem{color:var(--texto-3)}
.acesso-box{border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e3) var(--e4);display:grid;gap:var(--e3);background:var(--superficie-afundada)}
.acesso-box legend{font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);color:var(--texto-2);font-weight:var(--peso-semi);padding:0 var(--e1)}
.perfis-opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:var(--e2)}
.perfil-opcao{display:grid;gap:2px;border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e2) var(--e3);cursor:pointer;background:var(--superficie);font-size:var(--texto-xs)}
.perfil-opcao:has(input:checked){border-color:var(--acao);box-shadow:0 0 0 3px color-mix(in srgb, var(--acao) 18%, transparent)}
.perfil-opcao input{width:auto;margin:0 6px 0 0;accent-color:var(--acao)}
.perfil-opcao small{color:var(--texto-3);font-size:11.5px;line-height:1.35}
.senha-linha{display:flex;gap:var(--e2);align-items:flex-end}
.senha-linha label{flex:1}

/* ============================ EMPRESA ============================ */
.empresa-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--e4);align-items:center}
@media (max-width:720px){.empresa-card{grid-template-columns:auto minmax(0,1fr)}.empresa-card .acoes-linha{grid-column:1/-1}}
.empresa-logo{width:64px;height:64px;border-radius:var(--raio-lg);border:1px solid var(--borda);background:var(--superficie-afundada);display:grid;place-items:center;overflow:hidden;font-family:var(--fonte-marca);font-weight:800;font-size:22px;color:var(--acao-texto)}
.empresa-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.empresa-card h3{margin:0;text-transform:none;letter-spacing:0;font-size:var(--texto-md)}
.empresa-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--texto-xs);color:var(--texto-2);margin-top:4px}
.completude{display:grid;gap:4px;margin-top:var(--e2);max-width:360px}
.completude .progresso{height:5px}
.completude .progresso span{background:var(--acao)}
.completude.ok .progresso span{background:var(--ok)}
.form-secoes{display:grid;gap:var(--e4)}
.form-secoes fieldset{border:1px solid var(--borda);border-radius:var(--raio-md);padding:var(--e3) var(--e4) var(--e4);margin:0;display:grid;gap:var(--e3)}
.form-secoes legend{font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);color:var(--texto-2);font-weight:var(--peso-semi);padding:0 var(--e1)}
.grade.g3{display:grid;gap:var(--e3);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.campo-acao{display:flex;gap:var(--e2);align-items:flex-end}
.campo-acao label{flex:1}
.falta{color:var(--alto)}


/* ========================= ENTRADA — ÓRBITA (2026-09-14) =========================
 * JurisIQ no centro; as funções giram em volta. A cada ciclo o centro "pergunta" a uma
 * delas: a órbita pausa, um caminho tracejado sai do centro até a função, ela se destaca
 * e responde. Cores pelos tokens do tema (claro/escuro). Títulos em Playfair Display,
 * todo o texto em Sora. Sem movimento com prefers-reduced-motion.
 * ================================================================================ */
.acesso-orbita{
  --o-fundo-1:#F3F7FC; --o-fundo-2:#EEF4FB; --o-fundo-3:#E1EBF7; --o-luz:#F8FBFF;
  --o-brilho-1:rgba(79,199,251,.20); --o-brilho-2:rgba(30,110,234,.12);
  --o-anel:#C9D9EE; --o-trilha:#CADCF3; --o-chip:rgba(255,255,255,.88); --o-chip-ico:#EAF2FE;
  --o-centro-1:#FFFFFF; --o-centro-2:#F3F8FF; --o-pergunta:#13233F; --o-pergunta-rotulo:#8FDAFC;
  --o-cartao:rgba(255,255,255,.96);
  position:relative;min-height:100vh;display:block;overflow-x:hidden;isolation:isolate;color:var(--texto);
  background:radial-gradient(900px 600px at 50% 45%, var(--o-luz) 0%, transparent 70%), linear-gradient(180deg,var(--o-fundo-1) 0%,var(--o-fundo-2) 50%,var(--o-fundo-3) 100%);
}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]) .acesso-orbita{
    --o-fundo-1:#16223A; --o-fundo-2:#121B2D; --o-fundo-3:#101828; --o-luz:#1C2B47;
    --o-brilho-1:rgba(79,199,251,.10); --o-brilho-2:rgba(30,110,234,.14);
    --o-anel:#34476A; --o-trilha:#2E4368; --o-chip:rgba(34,49,80,.92); --o-chip-ico:#2B3F66;
    --o-centro-1:#24365A; --o-centro-2:#1A2740; --o-pergunta:#EAF0FA; --o-pergunta-rotulo:#1557C7;
    --o-cartao:rgba(26,39,64,.96);
  }
}
:root[data-tema="escuro"] .acesso-orbita{
  --o-fundo-1:#16223A; --o-fundo-2:#121B2D; --o-fundo-3:#101828; --o-luz:#1C2B47;
  --o-brilho-1:rgba(79,199,251,.10); --o-brilho-2:rgba(30,110,234,.14);
  --o-anel:#34476A; --o-trilha:#2E4368; --o-chip:rgba(34,49,80,.92); --o-chip-ico:#2B3F66;
  --o-centro-1:#24365A; --o-centro-2:#1A2740; --o-pergunta:#EAF0FA; --o-pergunta-rotulo:#1557C7;
  --o-cartao:rgba(26,39,64,.96);
}
.acesso-orbita::before,.acesso-orbita::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(80px);pointer-events:none}
.acesso-orbita::before{width:520px;height:420px;left:-160px;bottom:-120px;background:var(--o-brilho-1)}
.acesso-orbita::after{width:520px;height:460px;right:-180px;top:-140px;background:var(--o-brilho-2)}

/* ---- topo ---- */
.acesso-topo{display:flex;justify-content:space-between;align-items:center;gap:var(--e3);flex-wrap:wrap;padding:14px clamp(16px,4vw,56px)}
.acesso-logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--fonte-marca);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--texto)}
.acesso-logo img{border-radius:9px;box-shadow:0 6px 16px rgba(30,110,234,.25)}
.acesso-topo-info{display:flex;align-items:center;gap:var(--e4);flex-wrap:wrap;justify-content:flex-end;font-size:var(--texto-2xs);color:var(--texto-2)}
.acesso-data{font-weight:var(--peso-medio)}

/* ---- palco: frases centralizadas em cima; órbita à esquerda e login à direita ---- */
.acesso-palco{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-areas:"orbita login";
  align-content:center;align-items:center;column-gap:clamp(24px,4vw,80px);row-gap:clamp(12px,2vh,28px);
  padding:0 clamp(16px,4vw,56px) 28px;min-height:calc(100vh - 64px);max-width:1560px;margin:0 auto}

.acesso-intro{grid-area:intro;justify-self:center;text-align:center;max-width:860px;animation:subir .6s cubic-bezier(.2,.8,.3,1) both}
.acesso-olho{font-family:var(--fonte-marca);font-weight:800;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:var(--peso-semi);color:var(--acao-texto)}
.acesso-titulo{font-family:var(--fonte-marca);font-weight:800;font-size:clamp(28px,2.9vw,46px);line-height:1.12;letter-spacing:-.03em;margin:10px auto 0;color:var(--texto);text-wrap:balance}
.acesso-titulo em{font-style:normal;background:linear-gradient(92deg,var(--marca-600),var(--marca-500) 55%,#2E9BE0);-webkit-background-clip:text;background-clip:text;color:transparent}
:root[data-tema="escuro"] .acesso-titulo em{background-image:linear-gradient(92deg,#6FD3FC,#9CC2FF)}
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]) .acesso-titulo em{background-image:linear-gradient(92deg,#6FD3FC,#9CC2FF)}}
.acesso-texto{color:var(--texto-2);font-size:15.5px;line-height:1.6;max-width:680px;margin:0 auto}
.acesso-fontes{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.acesso-fontes span{font-size:12px;font-weight:var(--peso-semi);color:var(--texto-2);background:var(--o-chip);border:1px solid var(--borda);border-radius:var(--raio-pill);padding:5px 11px}
.acesso-forum{margin-top:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:12.5px;color:var(--texto-2);min-height:1.5em}
.acesso-forum span{display:inline-flex;align-items:center;gap:6px}
.acesso-forum b{color:var(--texto);font-weight:var(--peso-semi)}

/* ---- órbita ---- */
.orbita{grid-area:orbita;position:relative;justify-self:center;width:min(780px,54vw,calc(100vh - 150px));min-width:400px;aspect-ratio:1;margin-bottom:58px}
.orbita-aneis{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.orbita .anel{fill:none;stroke:var(--o-anel);stroke-width:.35}
.orbita .anel.tracejado{stroke-dasharray:.6 1.6;opacity:.7}
.orbita .anel.interno{opacity:.6}
.orbita .trilha{fill:none;stroke:var(--o-trilha);stroke-width:2.8;stroke-linecap:round;animation:surgir .4s ease-out both}
.orbita .feixe{fill:none;stroke:var(--acao);stroke-width:.75;stroke-linecap:round;stroke-dasharray:1.6 1.4;animation:correr .9s linear infinite, surgir .4s ease-out both}
.orbita .ponta{fill:var(--superficie);stroke:var(--acao);stroke-width:.45}
.orbita .pulso-feixe{fill:var(--acao)}
/* movimento contínuo: anéis girando, satélites de luz, halo do centro, onda ao perguntar e "ping" na função que responde */
.orbita .giro{transform-origin:50px 50px;transform-box:view-box;animation:girar 70s linear infinite}
.orbita .giro.reverso{animation-direction:reverse;animation-duration:48s}
.orbita .giro.rapido{animation-duration:14s}
.orbita .giro.medio{animation-duration:9s}
.orbita .giro.lento{animation-duration:22s}
.orbita .satelite{fill:var(--acao);filter:drop-shadow(0 0 1.2px color-mix(in srgb, var(--acao) 80%, transparent))}
.orbita .satelite.fraco{fill:#4FC7FB;opacity:.75}
.orbita::before{content:"";position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle, color-mix(in srgb, var(--acao) 22%, transparent) 0%, transparent 65%);animation:halo 3.2s ease-in-out infinite}
@keyframes halo{50%{transform:scale(1.12);opacity:.55}}
.orbita-centro .onda{position:absolute;inset:0;border-radius:50%;border:2px solid var(--acao);pointer-events:none;animation:onda 1.3s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes onda{from{transform:scale(1);opacity:.7}to{transform:scale(2.3);opacity:0}}
.orbita-funcao.destaque::after{content:"";position:absolute;inset:-5px;border-radius:inherit;border:2px solid var(--acao);pointer-events:none;animation:ping 1.2s ease-out infinite}
@keyframes ping{from{transform:scale(1);opacity:.7}to{transform:scale(1.28);opacity:0}}
.orbita-centro svg{animation:flutuar 4.5s ease-in-out infinite}
@keyframes flutuar{50%{transform:translateY(-4%)}}
@keyframes correr{to{stroke-dashoffset:-3}}
@keyframes surgir{from{opacity:0}to{opacity:1}}

.orbita-centro{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle at 50% 35%, var(--o-centro-1) 0%, var(--o-centro-2) 70%);border:1px solid var(--borda);
  box-shadow:0 2px 8px rgba(19,35,63,.06),0 30px 60px rgba(30,110,234,.18);display:grid;place-items:center;align-content:center;gap:2px;z-index:2}
.orbita-centro::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid color-mix(in srgb, var(--acao) 20%, transparent);animation:respirar 4s ease-in-out infinite}
.orbita-centro.pedindo::before{border-color:color-mix(in srgb, var(--acao) 55%, transparent)}
@keyframes respirar{50%{inset:-20px;opacity:.4}}
.orbita-centro svg{width:44%;height:auto}
.orbita-centro b{font-family:var(--fonte-marca);font-weight:800;font-size:clamp(16px,1.7vw,26px);letter-spacing:-.02em;color:var(--texto)}
.orbita{container-type:inline-size}
@container (max-width:430px){.orbita-centro small{display:none}}
.orbita-centro small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3);font-weight:var(--peso-semi)}
.em-braco{transform-origin:120px 76px;animation:balancar 7s ease-in-out infinite}
.em-prato-e{transform-origin:58px 76px;animation:contrabalancar 7s ease-in-out infinite}
.em-prato-d{transform-origin:182px 76px;animation:contrabalancar 7s ease-in-out infinite}
@keyframes balancar{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes contrabalancar{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}

.orbita-funcao{position:absolute;left:0;top:0;z-index:3;display:flex;align-items:center;gap:9px;white-space:nowrap;
  background:var(--o-chip);border:1px solid var(--borda);border-radius:var(--raio-pill);padding:7px 14px 7px 7px;
  font-size:13.5px;font-weight:var(--peso-semi);color:var(--texto-2);box-shadow:0 1px 2px rgba(19,35,63,.04),0 6px 16px rgba(19,35,63,.06);
  transition:background .35s,border-color .35s,color .35s,box-shadow .35s,scale .35s,opacity .35s;will-change:translate}
.orbita-funcao .ico{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--o-chip-ico);color:var(--acao-texto);transition:background .35s,color .35s}
.orbita-funcao .ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.orbita-funcao.destaque{scale:1.14;background:var(--superficie);border-color:var(--acao);color:var(--texto);box-shadow:0 0 0 6px color-mix(in srgb, var(--acao) 12%, transparent),0 16px 34px rgba(30,110,234,.22)}
.orbita-funcao.destaque .ico{background:var(--acao);color:#fff}
.orbita-funcao.recuada{opacity:.55}

.orbita-conversa{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);width:min(380px,92vw);display:grid;gap:6px;z-index:4;min-height:92px;align-content:start}
.orbita-conversa .fala{font-size:13.5px;line-height:1.4;padding:9px 14px;border-radius:14px;opacity:0;translate:0 6px;transition:opacity .35s,translate .35s;max-width:88%}
.orbita-conversa .fala.visivel{opacity:1;translate:0 0}
.orbita-conversa .fala small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin-bottom:2px}
.orbita-conversa .pergunta{background:var(--o-pergunta);color:var(--superficie);border-bottom-left-radius:4px;justify-self:start}
.orbita-conversa .pergunta small{color:var(--o-pergunta-rotulo)}
.orbita-conversa .resposta{background:var(--superficie);color:var(--texto);border:1px solid var(--acao);border-bottom-right-radius:4px;justify-self:end;box-shadow:0 10px 24px rgba(30,110,234,.14)}
.orbita-conversa .resposta small{color:var(--acao-texto)}

/* ---- cartão de login à direita ---- */
.acesso-orbita .acesso-painel{grid-area:login;display:block;padding:0;background:none;justify-self:center;align-self:center;width:min(340px,100%);margin-bottom:58px}
.acesso-orbita .cartao-acesso{width:100%;background:var(--o-cartao);border:1px solid var(--borda);border-radius:20px;padding:22px 22px 16px;
  box-shadow:0 2px 6px rgba(19,35,63,.05),0 24px 60px rgba(19,35,63,.10);gap:var(--e3)}
.acesso-orbita .cartao-acesso > form{gap:var(--e3)}
.acesso-orbita .campo input{padding:10px 12px;font-size:14px}
.acesso-orbita .campo-com-icone input{padding-left:40px}
.acesso-orbita .btn-entrar{height:42px}
.cartao-acesso h1{font-family:var(--fonte-titulo);font-weight:700;letter-spacing:-.02em;line-height:1.15;font-size:clamp(22px,1.8vw,26px)}
.cartao-saudacao{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:var(--peso-semi);display:flex;align-items:center;gap:8px;margin-bottom:-6px}
.cartao-saudacao::after{content:"";height:1px;width:28px;background:currentColor;opacity:.5}
.cartao-sub{font-size:13px}
.campo{font-size:12.5px;font-weight:var(--peso-medio);color:var(--texto-2);letter-spacing:.01em}
.campo input{font-size:15px}
.btn-entrar{font-size:15px;letter-spacing:.01em}
.acesso-orbita :where(a,button,input):focus-visible{outline:2px solid var(--acao);outline-offset:2px}

@media (max-width:900px){
  .acesso-palco{grid-template-columns:minmax(0,1fr);grid-template-areas:"login" "orbita";justify-items:center;row-gap:28px;padding-top:6px}
  .acesso-intro{max-width:620px}
  .orbita{width:min(520px,92vw);min-width:0}
  .acesso-orbita .acesso-painel{justify-self:center;margin-bottom:0}
}
@media (max-width:560px){
  .acesso-topo-info .acesso-data{display:none}
  .orbita{width:min(520px,76vw)}
  .acesso-orbita .cartao-acesso{padding:24px 18px 18px;border-radius:18px}
  .orbita-funcao{font-size:11px;padding:4px 9px 4px 4px;gap:5px}
  .orbita-funcao .ico{width:22px;height:22px}
  .orbita-funcao .ico svg{width:13px;height:13px}
  .orbita-centro small{display:none}
  .orbita-conversa .fala{font-size:12.5px}
}
@media (prefers-reduced-motion:reduce){
  .acesso *,.acesso *::before{animation:none !important;transition:none !important}
}

/* ============================== CALCULADORAS ============================== */
/* cor por área do direito: só no ícone e na etiqueta (o resto segue o tema) */
.area-generalista{--area:#0E9F8E}.area-bancario{--area:#D9731A}.area-penal{--area:#B7791F}.area-trabalhista{--area:#DC4C4C}
.area-familia{--area:#A855F7}.area-imobiliario{--area:#3B6FE0}.area-consumidor{--area:#7C5CD6}.area-previdenciario{--area:#0EA5C6}
.calc-areas{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--e4)}
.calc-area{border:1px solid var(--borda-forte);background:var(--superficie);color:var(--texto-2);border-radius:var(--raio-pill);padding:6px 14px;font-size:var(--texto-xs);font-weight:var(--peso-semi);transition:background var(--mov-rapido),color var(--mov-rapido),border-color var(--mov-rapido)}
.calc-area:hover{border-color:var(--acao);color:var(--texto)}
.calc-area.ativa{background:var(--texto);color:var(--superficie);border-color:transparent}
.calc-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr));gap:var(--e4);margin-top:var(--e5)}
.calc-card{position:relative;display:grid;grid-template-rows:auto auto auto 1fr auto auto;justify-items:center;text-align:center;gap:6px;
  background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio-xl);padding:34px var(--e4) var(--e4);margin-top:18px;color:var(--texto);
  box-shadow:var(--sombra-1);transition:transform var(--mov-rapido),box-shadow var(--mov-rapido),border-color var(--mov-rapido)}
.calc-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--sombra-3);border-color:color-mix(in srgb, var(--acao) 40%, var(--borda))}
.calc-card .calc-icone{position:absolute;top:-20px;left:50%;translate:-50% 0}
.calc-icone{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--superficie);
  border:1px solid color-mix(in srgb, var(--area, var(--acao)) 30%, var(--borda));box-shadow:0 4px 12px color-mix(in srgb, var(--area, var(--acao)) 22%, transparent);color:var(--area, var(--acao))}
.calc-icone svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.calc-card h4{margin:0;font-size:var(--texto-md);font-weight:var(--peso-forte);letter-spacing:-.01em}
.calc-sub{font-size:var(--texto-2xs);color:var(--acao-texto);font-weight:var(--peso-semi)}
.calc-card p{margin:0;font-size:var(--texto-xs);color:var(--texto-2);line-height:1.5}
.calc-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px}
.calc-tag{font-size:10.5px;font-weight:var(--peso-semi);border-radius:var(--raio-sm);padding:2px 8px;color:var(--area, var(--texto-2));
  background:color-mix(in srgb, var(--area, var(--texto-3)) 12%, transparent);border:1px solid color-mix(in srgb, var(--area, var(--texto-3)) 22%, transparent)}
.calc-tag.indices{--area:var(--texto-2)}
.calc-botao{width:100%;margin-top:var(--e2);justify-content:center;display:flex}

.calc-voltar{font-size:var(--texto-xs);font-weight:var(--peso-semi);color:var(--acao-texto)}
.calc-titulo{display:flex;gap:var(--e3);align-items:center}
.calc-titulo > span:last-child{display:grid}
.calc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--e4);align-items:start}
.calc-form{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow-y:auto}
.calc-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e3)}
.calc-campo{display:grid;gap:4px;align-content:start;min-width:0}
.calc-campo.inteira{grid-column:1/-1}
.calc-campo > label{font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi)}
.calc-campo .dica{font-size:11.5px;margin:0}
.calc-check{display:flex !important;gap:8px;align-items:center;font-size:var(--texto-xs) !important;color:var(--texto) !important;font-weight:var(--peso-medio) !important;cursor:pointer}
.calc-check input{width:16px;height:16px;margin:0;accent-color:var(--acao)}
.calc-afixo{position:relative;display:block}
.calc-afixo i{position:absolute;top:50%;translate:0 -50%;left:10px;font-style:normal;font-size:var(--texto-2xs);color:var(--texto-3);pointer-events:none}
.calc-afixo input{padding-left:32px}
.calc-afixo.sufixo i{left:auto;right:10px}
.calc-afixo.sufixo input{padding-left:12px;padding-right:28px}
.calc-lista-cab{display:flex;justify-content:space-between;align-items:center;gap:var(--e2);flex-wrap:wrap;font-size:var(--texto-xs)}
.calc-lista{min-width:100%}
.calc-lista th{font-size:10.5px;white-space:nowrap}
.calc-lista td{padding:3px 4px;vertical-align:top}
.calc-lista input,.calc-lista select{min-width:110px;padding:7px 8px;font-size:var(--texto-xs)}
.calc-lista .calc-afixo input{padding-left:28px}
.calc-lista input[type="checkbox"]{min-width:0}
.calc-vinculo{border-top:1px solid var(--borda);padding-top:var(--e3);margin-top:var(--e4)}
.calc-vinculo summary{cursor:pointer;font-size:var(--texto-xs);font-weight:var(--peso-semi);margin-bottom:var(--e3)}
.calc-form .acoes{position:sticky;bottom:calc(-1 * var(--e4));background:var(--superficie);padding:var(--e3) 0 var(--e1);margin-bottom:calc(-1 * var(--e1))}

.calc-vazio{display:grid;justify-items:center;text-align:center;gap:var(--e3);padding:var(--e10) var(--e4);color:var(--texto-2)}
.calc-vazio svg{width:56px;height:56px;fill:none;stroke:var(--texto-3);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.calc-res-cab{display:flex;justify-content:space-between;align-items:center;gap:var(--e2);flex-wrap:wrap}
.calc-res-cab h3{margin:0}
.calc-salvo{font-size:11.5px;font-weight:var(--peso-semi);color:var(--ok);background:var(--ok-fraco);border-radius:var(--raio-pill);padding:2px 10px}
.calc-salvo.rascunho{color:var(--texto-2);background:var(--superficie-afundada)}
.calc-resumo{font-size:var(--texto-sm);font-weight:var(--peso-semi);margin:var(--e3) 0}
.calc-destaques{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:var(--e2)}
.calc-destaque{background:var(--superficie-afundada);border:1px solid var(--borda);border-radius:var(--raio-md);padding:10px 12px;display:grid;gap:2px;min-width:0}
.calc-destaque span{font-size:11px;color:var(--texto-2);font-weight:var(--peso-semi)}
.calc-destaque b{font-size:var(--texto-lg);letter-spacing:-.01em;overflow-wrap:anywhere}
.calc-destaque.principal{background:color-mix(in srgb, var(--acao) 10%, var(--superficie));border-color:color-mix(in srgb, var(--acao) 35%, var(--borda))}
.calc-destaque.principal b{color:var(--acao-texto)}
.calc-acoes{display:flex;flex-wrap:wrap;gap:var(--e2);margin:var(--e4) 0}
.calc-acoes .btn{display:inline-flex;align-items:center;gap:6px}
.calc-zap svg,.calc-zap-cheio svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.calc-zap{border-color:#25A95B;color:#1C8A4A}
.calc-zap:hover{background:color-mix(in srgb, #25D366 10%, var(--superficie));border-color:#25A95B}
.btn.calc-zap-cheio{background:#1F9D55;color:#fff;display:inline-flex;align-items:center;gap:6px;border-color:transparent}
.btn.calc-zap-cheio:hover{background:#18824A}
.calc-avisos{border:1px solid color-mix(in srgb, var(--alto) 35%, var(--borda));background:var(--alto-fraco);border-radius:var(--raio-md);padding:var(--e3) var(--e4);margin-bottom:var(--e3)}
.calc-avisos h4,.calc-secao h4{margin:0 0 6px;font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);color:var(--texto-2)}
.calc-avisos ul,.calc-fund{margin:0;padding-left:18px;display:grid;gap:4px;font-size:var(--texto-xs);line-height:1.5}
.calc-secao{margin-top:var(--e4)}
.calc-secao p{font-size:var(--texto-xs);line-height:1.55;color:var(--texto-2);margin:0 0 6px}
.calc-pares th{width:42%;font-weight:var(--peso-medio);color:var(--texto-2);font-size:var(--texto-xs)}
.calc-pares td{font-size:var(--texto-xs)}
.calc-tabela th,.calc-tabela td{font-size:12.5px;padding:6px 8px}
.calc-tabela .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.calc-tabela tfoot td{font-weight:var(--peso-forte);background:var(--superficie-afundada)}
.calc-desatualizado{background:var(--alto-fraco);color:var(--alto);border-radius:var(--raio-md);padding:8px 12px;font-size:var(--texto-xs);margin-bottom:var(--e3)}
.calc-destinos{border:0;padding:0;margin:0;display:grid;gap:8px}
.calc-destinos legend{font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi);margin-bottom:6px}
.calc-destino{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--borda);border-radius:var(--raio-md);padding:10px 12px;cursor:pointer}
.calc-destino:has(input:checked){border-color:#25A95B;box-shadow:0 0 0 3px color-mix(in srgb, #25D366 18%, transparent)}
.calc-destino.off{opacity:.6;cursor:not-allowed}
.calc-destino > input{width:auto;margin-top:3px;accent-color:#1F9D55}
.calc-destino span{display:grid;gap:2px;flex:1;min-width:0;font-size:var(--texto-xs)}
.calc-destino small{color:var(--texto-3)}
.calc-destino span input{margin-top:4px}
@media (max-width:1100px){
  .calc-layout{grid-template-columns:minmax(0,1fr)}
  .calc-form{position:static;max-height:none;overflow:visible}
}
@media (max-width:560px){ .calc-campos{grid-template-columns:minmax(0,1fr)} }

/* ============================ MODELOS DE PETIÇÕES ============================ */
.mod-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:var(--e3);margin-top:var(--e4)}
.mod-card{display:grid;grid-template-rows:auto auto 1fr auto auto;gap:6px;background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio-lg);padding:var(--e4);transition:border-color var(--mov-rapido),box-shadow var(--mov-rapido)}
.mod-card:hover{border-color:color-mix(in srgb, var(--acao) 40%, var(--borda));box-shadow:var(--sombra-2)}
.mod-topo{display:flex;justify-content:space-between;gap:var(--e2);align-items:center}
.mod-cat{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--acao-texto);font-weight:var(--peso-semi)}
.mod-origem{font-size:10.5px;font-weight:var(--peso-semi);border-radius:var(--raio-pill);padding:1px 8px;border:1px solid var(--borda);color:var(--texto-2)}
.mod-origem.escritorio{background:var(--ok-fraco);color:var(--ok);border-color:transparent}
.mod-card h4{margin:0;font-size:var(--texto-sm);font-weight:var(--peso-forte);line-height:1.35}
.mod-card p{margin:0;font-size:var(--texto-xs);color:var(--texto-2);line-height:1.5}
.mod-fund{font-size:11.5px;color:var(--texto-3)}
.mod-acoes{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:var(--e2)}
.mod-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:var(--e4);align-items:start}
.mod-contexto{position:sticky;top:76px;display:grid;gap:var(--e3)}
.mod-contexto label{display:grid;gap:4px;font-size:var(--texto-2xs)}
.mod-status{display:grid;gap:6px;font-size:var(--texto-xs)}
.mod-falta{background:var(--alto-fraco);color:var(--alto);border-radius:var(--raio-md);padding:8px 10px;line-height:1.45}
.mod-pend{background:color-mix(in srgb, #F5C518 18%, transparent);border-radius:var(--raio-md);padding:8px 10px}
.mod-ok{background:var(--ok-fraco);color:var(--ok);border-radius:var(--raio-md);padding:8px 10px}
.mod-ajuda{font-size:var(--texto-xs);color:var(--texto-2)}
.mod-ajuda summary{cursor:pointer;font-weight:var(--peso-semi)}
.mod-ajuda p{margin:6px 0 0;line-height:1.5}
.mod-doc-barra{display:flex;justify-content:space-between;gap:var(--e3);flex-wrap:wrap;align-items:center;margin-bottom:var(--e3)}
/* a folha imita o papel: fundo branco e letra serifada nos dois temas, como sai no Word */
.mod-folha{background:#fff;color:#111;border:1px solid var(--borda);border-radius:var(--raio-md);padding:clamp(20px,5vw,64px) clamp(18px,5vw,72px);
  font:15px/1.6 "Times New Roman",Times,serif;max-height:calc(100vh - 250px);overflow:auto;box-shadow:inset 0 1px 3px rgba(0,0,0,.04)}
.mod-folha h1{font-size:15px;text-align:center;margin:10px 0 14px;font-weight:700;font-family:inherit;letter-spacing:0}
.mod-folha h2{font-size:15px;margin:14px 0 6px;font-weight:700;font-family:inherit;letter-spacing:0}
.mod-folha p{margin:0 0 6px;text-align:justify;text-indent:2.5em}
.mod-folha p.pv{margin:0;text-indent:0;line-height:.8}
.mod-folha blockquote{margin:4px 0 10px 4em;font-size:14px;line-height:1.35;text-align:justify}
.mod-folha mark{background:#FFE98A;color:#111;border-radius:2px;padding:0 2px}
.mod-folha .mod-var{background:#DCEBFF;color:#1557C7;border-radius:3px;padding:0 3px;font:12px/1.4 var(--fonte-ui)}
.mod-folha.pequena{max-height:560px;font-size:13px;padding:20px 24px}
.mod-texto{width:100%;min-height:calc(100vh - 290px);font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical;padding:12px}
.mod-editor{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--e4);align-items:start}
.mod-edicao{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e3);margin-top:var(--e4)}
.mod-edicao .mod-texto{min-height:560px}
.mod-rotulo{display:block;font-size:var(--texto-2xs);color:var(--texto-2);font-weight:var(--peso-semi);margin-bottom:4px}
.mod-variaveis{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}
.mod-var-grupo{display:grid;gap:4px;margin-top:var(--e3)}
.mod-var-grupo b{font-size:var(--texto-3xs);text-transform:uppercase;letter-spacing:var(--tracking-rotulo);color:var(--texto-2)}
.mod-var-btn{text-align:left;border:1px solid var(--borda);background:var(--superficie-afundada);border-radius:var(--raio-sm);padding:5px 8px;font-size:var(--texto-2xs);color:var(--texto)}
.mod-var-btn:hover{border-color:var(--acao);color:var(--acao-texto)}
@media (max-width:1100px){
  .mod-layout,.mod-editor{grid-template-columns:minmax(0,1fr)}
  .mod-contexto,.mod-variaveis{position:static;max-height:none}
  .mod-edicao{grid-template-columns:minmax(0,1fr)}
}

/* ================================ PWA ================================ */
.pwa-aviso{position:fixed;left:50%;bottom:20px;translate:-50% 0;z-index:60;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  background:var(--superficie);color:var(--texto);border:1px solid var(--borda-forte);border-radius:var(--raio-lg);padding:10px 14px;box-shadow:var(--sombra-3);
  font-size:var(--texto-xs);max-width:calc(100vw - 32px);animation:subir .35s cubic-bezier(.2,.8,.3,1) both}
.pwa-instalar-topo{white-space:nowrap}
/* instalado (janela própria): o topo respeita a barra de título quando o Windows usa a sobreposição de controles */
@media (display-mode: window-controls-overlay){ .topo{padding-top:max(var(--e3), env(titlebar-area-height, 0px))} }

/* ==================== VERIFICAÇÃO EM DUAS ETAPAS (2FA) ==================== */
#dois-fatores-codigo{font-family:var(--fonte-dado);font-size:22px;letter-spacing:.35em;text-align:center}
.passos-2fa{margin:var(--e3) 0;padding-left:20px;display:grid;gap:6px;font-size:var(--texto-xs);color:var(--texto-2);line-height:1.5}
.passos-2fa b{color:var(--texto)}
/* o QR precisa de fundo branco mesmo no tema escuro, senão a câmera não lê */
.qr-2fa{display:grid;place-items:center;background:#fff;border:1px solid var(--borda);border-radius:var(--raio-lg);padding:var(--e4);margin:var(--e3) 0}
.qr-2fa svg{width:min(240px,60vw);height:auto}
.chave-2fa{font-size:var(--texto-sm);letter-spacing:.08em;background:var(--superficie-afundada);border-radius:var(--raio-md);padding:10px 12px;user-select:all}
.codigos-recuperacao{margin-top:var(--e4);border:1px solid color-mix(in srgb, var(--alto) 40%, var(--borda));background:var(--alto-fraco);border-radius:var(--raio-lg);padding:var(--e4)}
.codigos-recuperacao ol{margin:var(--e2) 0;padding-left:20px;columns:2;font-family:var(--fonte-dado);font-size:var(--texto-sm);line-height:1.9;letter-spacing:.06em}
.codigos-recuperacao .dica{margin:4px 0 0}
