/* ============================================================
   estilo.css — Cálculos Judiciais (versão web)
   Layout: faixa de critérios no alto, valores abaixo, resumo sempre à vista.
   Visual claro: fundo branco, cor só onde há ação ou destaque.
   ============================================================ */

:root{
  --tinta:#1f2933;
  --tinta-2:#52606d;
  --tinta-3:#8795a1;
  --papel:#f5f7fa;
  --card:#ffffff;
  --borda:#e1e6eb;
  --borda-2:#eef1f4;
  --suave:#f8fafc;
  --marca:#2457a0;
  --marca-2:#1d4885;
  --marca-clara:#eef3fa;
  --acento:#8f6200;
  --acento-fundo:#fff8e6;
  --acento-borda:#f3dca4;
  --pendente:#f0b429;
  --ok:#1b7a50;
  --ok-fundo:#eaf6f0;
  --erro:#b23a3a;
  --erro-fundo:#fdf0f0;
  --raio:8px;
  --sombra:0 1px 2px rgba(31,41,51,.04), 0 2px 8px rgba(31,41,51,.04);
  --alt-topo:52px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  font-size:13.5px; color:var(--tinta); background:var(--papel); line-height:1.45;
  overflow:hidden;
}
h1,h2,h3,h4{margin:0 0 .5em; line-height:1.25; font-weight:600}
.mut{color:var(--tinta-3)}
.tl{text-align:left !important}
.tr{text-align:right !important}
.forte{font-weight:600}
.oculto{display:none !important}

/* ---------- barra superior ---------- */
.topo{
  height:var(--alt-topo); background:var(--card); color:var(--tinta);
  padding:0 16px; display:flex; align-items:center; gap:12px;
  border-bottom:1px solid var(--borda); position:relative; z-index:40;
}
.topo .marca{font-size:15px; font-weight:600; white-space:nowrap; color:var(--marca); display:flex; align-items:center; gap:7px;
  background:none; border:0; padding:4px 6px; margin-left:-6px; border-radius:6px; font-family:inherit; cursor:pointer}
.topo .marca:hover{background:var(--marca-clara)}
.topo .marca:focus-visible{outline:2px solid var(--marca); outline-offset:1px}
.topo .marca-ic{font-size:17px}
.topo .nome-caso{
  flex:0 1 300px; min-width:150px; background:var(--suave);
  border:1px solid var(--borda); color:var(--tinta); border-radius:6px;
  padding:6px 10px; font-size:13px; font-family:inherit;
}
.topo .nome-caso:focus{outline:none; border-color:var(--marca); background:#fff}
.topo .esticar{flex:1}
.topo .grupo{display:flex; gap:2px}
.topo .divisor{width:1px; height:22px; background:var(--borda)}

.btn{
  font:inherit; font-size:12.5px; padding:6px 12px; border-radius:6px;
  border:1px solid var(--borda); background:var(--card); color:var(--tinta);
  cursor:pointer; white-space:nowrap; transition:background .12s,border-color .12s,color .12s;
}
.btn:hover{background:var(--suave); border-color:#cdd5dd}
.btn:active{transform:translateY(1px)}
.btn.principal{background:var(--marca); border-color:var(--marca); color:#fff}
.btn.principal:hover{background:var(--marca-2); border-color:var(--marca-2)}
.btn.claro{background:transparent; border-color:transparent; color:var(--tinta-2)}
.btn.claro:hover{background:var(--marca-clara); color:var(--marca)}
.btn.perigo{color:var(--erro); border-color:#f0d4d4}
.btn.perigo:hover{background:var(--erro-fundo)}
.btn.mini{padding:3px 9px; font-size:11.5px}
.btn:disabled{opacity:.45; cursor:not-allowed}
.btn:disabled:active{transform:none}

/* ---------- telas ---------- */
.tela{display:none; height:calc(100vh - var(--alt-topo)); overflow:auto}
.tela.ativa{display:block}
.tela.trabalho.ativa{display:flex; flex-direction:column; overflow:hidden}

/* ---------- tela inicial ---------- */
.inicial{max-width:920px; margin:0 auto; padding:48px 24px}
.inicial h1{font-size:23px; text-align:center; margin-bottom:6px; font-weight:600}
.inicial .sub{text-align:center; color:var(--tinta-2); margin:0 0 32px; font-size:14px}
.tipos{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px}
.tipo{
  border:1px solid var(--borda); border-radius:10px; padding:18px 18px 16px;
  background:var(--card); cursor:pointer; text-align:left; font:inherit;
  transition:border-color .12s, box-shadow .12s, transform .08s;
}
.tipo:hover{border-color:var(--marca); box-shadow:0 4px 16px rgba(36,87,160,.08); transform:translateY(-1px)}
.tipo .ic{font-size:20px; line-height:1; margin-bottom:9px; display:block}
.tipo b{display:block; font-size:14px; color:var(--tinta); margin-bottom:3px}
.tipo small{color:var(--tinta-2); font-size:12.5px; line-height:1.45; display:block}
.inicial .rodape-inicial{margin-top:28px; text-align:center}

/* ---------- campos ---------- */
.campo-linha{margin-bottom:10px}
.campo-linha:last-child{margin-bottom:0}
label.campo{display:flex; align-items:center; gap:5px; font-size:11.5px; color:var(--tinta-2); font-weight:600; margin-bottom:4px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{
  width:100%; font:inherit; font-size:13px; padding:6px 8px; border:1px solid var(--borda);
  border-radius:6px; background:#fff; color:var(--tinta);
}
input:focus,select:focus,textarea:focus{outline:3px solid var(--marca-clara); border-color:var(--marca)}
textarea{min-height:60px; resize:vertical}
input[type=checkbox]{width:15px; height:15px; vertical-align:-2px; accent-color:var(--marca); cursor:pointer}
.dupla{display:grid; grid-template-columns:1fr 88px; gap:6px}
.tripla{display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px}
.linha-check{display:flex; align-items:center; gap:7px; font-size:12.5px; padding:3px 0}
.linha-check label{cursor:pointer; color:var(--tinta-2)}
.linha-botoes{display:flex; gap:6px; align-items:center; flex-wrap:wrap}

.chaves{display:inline-flex; margin-bottom:10px; border:1px solid var(--borda); border-radius:6px; overflow:hidden; background:var(--suave)}
.chaves button{
  font:inherit; font-size:12px; padding:5px 14px; border:none; background:transparent;
  color:var(--tinta-2); cursor:pointer;
}
.chaves button + button{border-left:1px solid var(--borda)}
.chaves button.ativa{background:var(--marca); color:#fff; font-weight:600}

/* ---------- sinal de ajuda "?" ---------- */
.info{
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  width:15px; height:15px; border-radius:50%; border:1px solid #c3ccd5;
  color:var(--tinta-3); background:#fff; font-size:10px; font-weight:700; line-height:1;
  cursor:help; vertical-align:1px; text-transform:none; letter-spacing:0;
  font-family:"Segoe UI",system-ui,sans-serif; user-select:none;
}
.info:hover{border-color:var(--marca); color:var(--marca); background:var(--marca-clara)}
.balao{
  position:fixed; z-index:200; max-width:300px; padding:9px 11px; border-radius:7px;
  background:#1f2933; color:#fff; font-size:12px; line-height:1.5; font-weight:400;
  box-shadow:0 8px 24px rgba(31,41,51,.22); pointer-events:none;
  opacity:0; visibility:hidden; transition:opacity .1s;
}
.balao.visivel{opacity:1; visibility:visible}

/* ---------- faixa de critérios ---------- */
.criterios{
  flex:0 0 auto; background:var(--card); border-bottom:1px solid var(--borda);
  display:flex; flex-direction:column; max-height:56vh; position:relative;
}
.criterios::before{               /* fio de cor que acende quando há pendência */
  content:""; position:absolute; left:0; right:0; top:0; height:3px; background:transparent; transition:background .15s;
}
.criterios.pendente::before{background:var(--pendente)}

.crit-cab{display:flex; align-items:center; gap:10px; padding:10px 16px; min-height:50px}
.crit-cab .ic{font-size:18px}
.crit-tipo{min-width:0; flex:0 1 auto}
.crit-tipo b{display:block; font-size:13px; line-height:1.2}
.crit-tipo small{display:block; color:var(--tinta-3); font-size:11.5px; max-width:260px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.crit-resumo{
  flex:1; min-width:0; display:flex; gap:8px; align-items:baseline; margin-left:6px;
  padding-left:14px; border-left:1px solid var(--borda); font-size:12.5px; color:var(--tinta-2);
  white-space:nowrap; overflow:hidden;
}
.crit-resumo b{color:var(--tinta); font-weight:600}
.crit-resumo span{overflow:hidden; text-overflow:ellipsis}
.crit-resumo .crit-alerta{font-style:normal; font-weight:600; color:var(--acento); flex:0 0 auto}
.crit-estado{
  font-size:11.5px; font-weight:600; color:var(--acento); background:var(--acento-fundo);
  border:1px solid var(--acento-borda); border-radius:99px; padding:2px 10px; white-space:nowrap;
}
.crit-estado:empty{display:none}

.crit-corpo{overflow-y:auto; border-top:1px solid var(--borda-2)}
.criterios.recolhido .crit-corpo{display:none}
.crit-grade{
  display:grid; gap:0;
  grid-template-columns:minmax(300px,2fr) minmax(190px,1.1fr) minmax(170px,.9fr) minmax(260px,1.6fr);
}
.crit-col{padding:10px 16px; border-right:1px solid var(--borda-2); min-width:0}
.crit-col:last-child{border-right:none}
.crit-col > h3{
  display:flex; align-items:center; gap:6px; font-size:11px; text-transform:uppercase;
  letter-spacing:.6px; color:var(--tinta-3); margin:0 0 10px; font-weight:700;
}
.crit-campos{gap:0 10px}
/* faixa compacta: em tela de notebook sobra mais espaço para as tabelas */
.criterios .campo-linha{margin-bottom:7px}
.criterios label.campo{margin-bottom:2px}
.criterios input[type=text],.criterios input[type=date],.criterios input[type=number],.criterios select{padding:4px 7px}
.criterios .chaves{margin-bottom:8px}
.criterios .chaves button{padding:4px 12px}
.crit-rodape{
  display:flex; align-items:center; gap:8px; padding:9px 16px;
  border-top:1px solid var(--borda-2); background:var(--suave); position:sticky; bottom:0;
}
.crit-rodape .esticar{flex:1}
.crit-dica{font-size:12px; color:var(--tinta-3)}
.criterios.pendente .crit-dica{color:var(--acento); font-weight:600}
.criterios.pendente #btAplicarCriterios{box-shadow:0 0 0 3px rgba(240,180,41,.35)}

/* campo com alteração ainda não aplicada */
input.alterado,select.alterado{border-color:var(--pendente); background:#fffbeb}
.linha-check.alterado{background:#fffbeb; border-radius:5px; box-shadow:0 0 0 1px var(--pendente); padding:3px 6px}
.chaves.alterado{box-shadow:0 0 0 2px var(--pendente)}
#criteriosAvancado.alterado .fase{border-color:var(--pendente)}

#alertaCriterios .aviso{margin:10px 0 0}

/* ---------- fases ---------- */
.fases{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; margin-bottom:8px}
.fase{border:1px solid var(--borda); border-radius:7px; padding:10px; background:var(--suave)}
.fase .cabeca{display:flex; gap:6px; align-items:center; margin-bottom:8px}
.fase .cabeca input{flex:1; font-weight:600}
.pilula{display:inline-block; font-size:10.5px; padding:2px 7px; border-radius:99px; background:var(--marca-clara); color:var(--marca); font-weight:700}

/* ---------- central ---------- */
.central{flex:1; display:flex; flex-direction:column; overflow:hidden; min-width:0; min-height:0}
.abas{
  display:flex; gap:2px; background:var(--card); border-bottom:1px solid var(--borda);
  padding:0 10px; overflow-x:auto; flex:0 0 auto;
}
.abas button{
  font:inherit; font-size:13px; background:none; border:none; border-bottom:2px solid transparent;
  padding:11px 14px 10px; cursor:pointer; color:var(--tinta-2); white-space:nowrap;
}
.abas button:hover{color:var(--tinta)}
.abas button.ativa{color:var(--marca); border-bottom-color:var(--marca); font-weight:600}
.abas button .conta{
  display:inline-block; background:var(--borda-2); color:var(--tinta-2); font-size:10.5px;
  border-radius:9px; padding:0 6px; margin-left:5px; font-weight:700; vertical-align:1px;
}
.abas button.ativa .conta{background:var(--marca-clara); color:var(--marca)}

.conteudo{flex:1; overflow-y:auto; padding:16px 18px 22px; min-height:0}
.painel-aba{display:none}
.painel-aba.ativa{display:block}

.cartao{background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); padding:16px; margin-bottom:12px; box-shadow:var(--sombra)}
.cartao > h2{display:flex; align-items:center; gap:7px; font-size:14px; margin-bottom:10px; color:var(--tinta)}
.ajuda{font-size:12px; color:var(--tinta-3); margin:0 0 11px}
.grade{display:grid; gap:10px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

/* barra de ferramentas de cada aba */
.ferramentas{
  display:flex; gap:6px; align-items:center; flex-wrap:wrap;
  margin-bottom:12px;
}
.ferramentas .esticar{flex:1}
.ferramentas h2{display:flex; align-items:center; gap:7px; margin:0; font-size:15px; color:var(--tinta)}

/* ---------- tabelas de lançamento ---------- */
.rolagem{overflow-x:auto; border:1px solid var(--borda); border-radius:var(--raio); background:var(--card)}
.tabela{width:100%; border-collapse:collapse; font-size:12.5px}
.tabela th{
  text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px;
  color:var(--tinta-3); font-weight:700; padding:8px 8px; background:var(--suave);
  border-bottom:1px solid var(--borda); white-space:nowrap; position:sticky; top:0; z-index:2;
}
.tabela td{padding:3px 5px; border-bottom:1px solid var(--borda-2); vertical-align:middle}
.tabela tbody tr:hover{background:#fbfcfd}
.tabela tr:last-child td{border-bottom:none}
.tabela input,.tabela select{padding:5px 6px; font-size:12.5px; border-color:transparent; background:transparent}
.tabela input:hover,.tabela select:hover{border-color:var(--borda); background:#fff}
.tabela input:focus,.tabela select:focus{background:#fff}
.tabela td.num input{text-align:right; font-variant-numeric:tabular-nums}
.tabela td.calc{text-align:right; font-weight:600; font-variant-numeric:tabular-nums; padding-right:9px; white-space:nowrap}
.tabela td.acao{width:30px; text-align:center}
.tabela tfoot td,.tabela tfoot th{background:var(--suave); font-weight:700; border-top:1px solid var(--borda); padding:8px}
.vazio{padding:28px 16px; text-align:center; color:var(--tinta-3); font-size:12.5px}
.vazio b{display:block; color:var(--tinta-2); font-size:13.5px; margin-bottom:4px}

/* ---------- grupos de critérios das verbas ---------- */
.grupo-verbas{margin-bottom:16px}
.grupo-cab{
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px 10px; padding:10px 12px;
  background:var(--suave); border:1px solid var(--borda); border-bottom:none;
  border-radius:var(--raio) var(--raio) 0 0;
}
.grupo-verbas.com-cab .rolagem{border-radius:0 0 var(--raio) var(--raio)}
.grupo-cab .grupo-titulo{flex:1 1 170px; min-width:150px}
.grupo-cab .grupo-titulo input{font-weight:600}
.grupo-cab .geral{flex:1 1 auto; min-width:0; padding-bottom:3px}
.grupo-cab .geral b{display:block; font-size:13px}
.grupo-cab .geral small{color:var(--tinta-3); font-size:11.5px}
.grupo-cab label{display:flex; flex-direction:column; gap:2px; font-size:11px; color:var(--tinta-2); font-weight:600}
.grupo-cab label > span{display:flex; align-items:center; gap:4px}
.grupo-cab input,.grupo-cab select{padding:4px 7px; font-size:12.5px}
.grupo-cab .c-indice{width:175px}
.grupo-cab .c-juros{width:165px}
.grupo-cab .c-taxa{width:78px}
.grupo-cab .c-unid{width:70px}
.grupo-cab .c-data{width:138px}
.grupo-cab .aviso{flex-basis:100%; margin:2px 0 0}
.grupo-rodape{padding-top:6px}
.total-principal{
  display:flex; justify-content:flex-end; align-items:baseline; gap:14px; padding:10px 14px;
  background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); font-weight:600;
}
.total-principal span{font-size:15px; color:var(--marca); font-variant-numeric:tabular-nums}

/* ---------- acréscimos ---------- */
.acrescimo{
  border:1px solid var(--borda); border-radius:var(--raio); background:var(--card);
  margin-bottom:9px; box-shadow:var(--sombra);
}
.acrescimo .cabeca{
  display:flex; align-items:center; gap:9px; padding:10px 12px; cursor:pointer;
  border-bottom:1px solid transparent;
}
.acrescimo.aberto .cabeca{border-bottom-color:var(--borda-2)}
.acrescimo .cabeca .seta{color:var(--tinta-3); font-size:11px; width:10px}
.acrescimo .cabeca .titulo{flex:1; font-weight:600; font-size:13px; min-width:0}
.acrescimo .cabeca .titulo small{display:block; font-weight:400; color:var(--tinta-3); font-size:11.5px}
.acrescimo .cabeca .valor{font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--marca)}
.acrescimo.desligado{opacity:.55}
.acrescimo .corpo{display:none; padding:12px; background:var(--suave); border-radius:0 0 var(--raio) var(--raio)}
.acrescimo.aberto .corpo{display:block}
.acrescimo .memoria{
  font-size:11.5px; color:var(--tinta-2); background:#fff; border:1px solid var(--borda);
  border-radius:6px; padding:8px 10px; margin-top:10px;
}
.acrescimo .memoria b{color:var(--tinta)}
.catalogo{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:7px}
.catalogo button{
  text-align:left; font:inherit; font-size:12.5px; padding:8px 10px; border:1px solid var(--borda);
  border-radius:6px; background:#fff; cursor:pointer; line-height:1.3;
}
.catalogo button:hover{border-color:var(--marca); background:var(--marca-clara)}
.catalogo .grupo-tit{
  grid-column:1/-1; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px;
  color:var(--tinta-3); font-weight:700; margin-top:6px;
}

/* ---------- decisões anexadas ---------- */
.doc-anexo{
  display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--card);
  border:1px solid var(--borda); border-radius:var(--raio); margin-bottom:8px; box-shadow:var(--sombra);
}
.doc-anexo .ic{font-size:17px}
.doc-anexo .dados{flex:1; min-width:0}
.doc-anexo .dados b{display:block; font-size:13px}
.doc-anexo .dados small{color:var(--tinta-3); font-size:11.5px}
.doc-anexo.problema{border-color:var(--acento-borda); background:var(--acento-fundo)}
.doc-texto{
  max-height:220px; overflow:auto; background:var(--suave); border:1px solid var(--borda);
  border-radius:6px; padding:9px 11px; margin-top:8px; font-size:11.5px;
  white-space:pre-wrap; color:var(--tinta-2); line-height:1.5;
}

/* ---------- achados da análise ---------- */
.achados-cab{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 12px; background:var(--marca-clara); border:1px solid #d6e2f2;
  border-radius:var(--raio); margin:14px 0 10px;
}
.achados-cab b{color:var(--marca); font-size:13.5px}
.achados-cab .esticar{flex:1}
.grupo-achados{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--tinta-3);
  font-weight:700; margin:14px 0 6px;
}
.achado{
  display:flex; gap:10px; padding:10px 12px; background:var(--card);
  border:1px solid var(--borda); border-radius:var(--raio); margin-bottom:7px;
}
.achado > input[type=checkbox]{margin-top:2px; flex:0 0 auto}
.achado .corpo{flex:1; min-width:0}
.achado .rot{font-weight:600; font-size:13px}
.achado .desc{color:var(--tinta-2); font-size:12px; margin-top:2px}
.achado .trecho{
  margin-top:7px; font-size:11.5px; color:var(--tinta-2); font-style:italic;
  border-left:3px solid var(--borda); padding:5px 9px; background:var(--suave); border-radius:0 4px 4px 0;
}
.achado .selo{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.4px;
  padding:2px 7px; border-radius:99px; white-space:nowrap; align-self:flex-start;
}
.selo.alta{background:var(--ok-fundo); color:var(--ok)}
.selo.media{background:var(--acento-fundo); color:var(--acento)}
.selo.info{background:var(--marca-clara); color:var(--marca)}
.achado.info{background:var(--suave)}

/* ---------- resumo fixo ---------- */
.resumo{
  flex:0 0 auto; background:var(--card); border-top:1px solid var(--borda);
  padding:10px 18px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.resumo .item{display:flex; flex-direction:column; line-height:1.15; min-width:74px}
.resumo .item b{font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--tinta-3); font-weight:700}
.resumo .item span{font-size:13.5px; font-weight:600; font-variant-numeric:tabular-nums}
.resumo .item.neg span{color:var(--erro)}
.resumo .sinal{color:var(--tinta-3); font-size:14px; font-weight:600; align-self:flex-end; padding-bottom:1px}
.resumo .esticar{flex:1}
.resumo .grande{text-align:right}
.resumo .grande b{color:var(--marca)}
.resumo .grande span{font-size:21px; color:var(--marca); letter-spacing:-.3px}

/* ---------- mensagens ---------- */
.aviso{background:var(--acento-fundo); border:1px solid var(--acento-borda); color:#6e4d00; border-radius:6px; padding:9px 11px; font-size:12px; margin:9px 0}
.sucesso{background:var(--ok-fundo); border:1px solid #c6e6d6; color:var(--ok); border-radius:6px; padding:9px 11px; font-size:12px; margin:9px 0}
.erro{background:var(--erro-fundo); border:1px solid #f0d0d0; color:var(--erro); border-radius:6px; padding:9px 11px; font-size:12px; margin:9px 0}

/* ---------- séries de índices ---------- */
.serie-lista{display:grid; grid-template-columns:repeat(auto-fill,minmax(235px,1fr)); gap:9px}
.serie{border:1px solid var(--borda); border-radius:var(--raio); padding:10px; background:#fff}
.serie b{font-size:12.5px; display:block}
.serie small{display:block; color:var(--tinta-3); font-size:11px; margin-top:2px}
.serie .faixa{font-size:11px; color:var(--marca); margin-top:4px; font-weight:600}

/* telas largas de índices, escritório e ajuda */
.tela-larga{max-width:1080px; margin:0 auto; padding:20px 20px 40px}

/* ---------- escritório ---------- */
.escritorio{gap:24px}
.previa-timbre{border:1px solid var(--borda); border-radius:var(--raio); background:#fff; padding:22px 24px; min-height:150px}
.previa-timbre-doc{
  text-align:center; font-weight:600; letter-spacing:.6px; font-size:13px;
  border-bottom:2px solid var(--marca); padding-bottom:6px; margin-top:4px; color:var(--tinta);
}
.salvo-em{font-size:12px; color:var(--ok); margin:12px 0 0; min-height:18px}
.salvo-em.falha{color:var(--erro)}

/* cabeçalho do escritório (tela e PDF) */
.timbre{display:flex; align-items:center; gap:14px; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--borda)}
.timbre img{max-height:64px; max-width:220px; object-fit:contain}
.timbre-txt{min-width:0}
.timbre-txt b{display:block; font-size:16px; color:var(--tinta); letter-spacing:.2px}
.timbre-txt small{display:block; font-size:11.5px; color:var(--tinta-2); margin-top:2px}
.timbre.centro{flex-direction:column; text-align:center; gap:8px}

/* ---------- documento (memória de cálculo) ---------- */
.previa{background:#fff; border:1px solid var(--borda); border-radius:var(--raio); padding:28px 32px; box-shadow:var(--sombra); overflow-x:auto}
.doc{font-size:12.5px; color:#111; background:#fff}
.doc-cab{text-align:center; border-bottom:2px solid var(--marca); padding-bottom:8px; margin-bottom:13px}
.doc-cab h1{font-size:17px; letter-spacing:.6px; text-transform:uppercase; margin:0}
.doc-sub{margin:4px 0 0; color:var(--tinta-2); font-size:13px}
.doc h2{font-size:13px; margin:17px 0 7px; color:var(--marca); border-bottom:1px solid var(--borda); padding-bottom:3px}
.doc h3{font-size:12.5px; margin:13px 0 5px; color:var(--tinta)}
.doc-ficha{width:100%; border-collapse:collapse; margin-bottom:9px}
.doc-ficha th{text-align:left; font-weight:600; color:var(--tinta-2); padding:3px 10px 3px 0; width:38%; font-size:12px; vertical-align:top}
.doc-ficha td{padding:3px 0}
.doc-tab{width:100%; border-collapse:collapse; margin:6px 0 9px; font-size:11.5px}
.doc-tab th,.doc-tab td{border:1px solid #d3dbe3; padding:4px 6px}
.doc-tab thead th{background:var(--marca-clara); color:var(--marca); font-size:10.5px; text-transform:uppercase; letter-spacing:.3px}
.doc-tab tfoot th{background:#f3f6f9; font-weight:700}
.doc-num td,.doc-num th{text-align:right}
.doc-num td.tl,.doc-num th.tl{text-align:left}
.doc-resumo th{text-align:left; width:66%; font-weight:500; background:#fafbfc}
.doc-resumo td{text-align:right; font-variant-numeric:tabular-nums}
.doc-resumo tr.total th,.doc-resumo tr.total td{background:var(--marca); color:#fff; font-size:13.5px; font-weight:700}
.extenso{font-style:italic; color:var(--tinta-2); font-size:12px; margin:2px 0 12px}
.nota{font-size:11.5px; color:var(--tinta-2); background:#fafbfc; border-left:3px solid var(--borda); padding:6px 10px; margin:6px 0}
.obs{white-space:pre-wrap}
.memoria-bloco{margin:13px 0}
.mem-cab{font-size:11.5px; color:var(--tinta-2); margin:0 0 4px}
.mem-tab{font-size:10.5px}
.mem-fim{max-width:440px; margin-left:auto}
.doc-avisos{background:var(--acento-fundo); border:1px solid var(--acento-borda); border-radius:6px; padding:8px 11px; margin:11px 0; font-size:11.5px}
.doc-avisos ul{margin:4px 0 0; padding-left:17px}
.doc-rodape{margin-top:18px; border-top:1px solid var(--borda); padding-top:7px; font-size:10.5px; color:var(--tinta-3)}
.doc-rodape p{margin:2px 0}

/* ---------- responsivo ---------- */
@media(max-width:1180px){
  .crit-grade{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crit-col:nth-child(2n){border-right:none}
  .crit-col{border-bottom:1px solid var(--borda-2)}
  .crit-tipo small{display:none}
}
@media(max-width:980px){
  body{overflow:auto}
  .tela{height:auto}
  .tela.trabalho.ativa{overflow:visible}
  .criterios{max-height:none}
  .central{overflow:visible}
  .conteudo{overflow:visible}
  .resumo{position:sticky; bottom:0}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .crit-resumo{display:none}
}
@media(max-width:640px){
  .g2,.g3,.g4,.dupla,.tripla,.crit-grade{grid-template-columns:1fr}
  .crit-col{border-right:none}
}

/* ---------- porta de entrada ---------- */
body.carregando .topo,body.carregando .tela{visibility:hidden}
body.bloqueado{overflow:hidden}
body.bloqueado .topo,body.bloqueado .tela{filter:blur(3px); pointer-events:none; user-select:none}

.porta{
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  padding:24px; background:linear-gradient(160deg,#eef3fa 0%,#f5f7fa 60%); overflow:auto;
}
.porta-cartao{
  width:100%; max-width:404px; background:var(--card); border-radius:14px; padding:30px;
  border:1px solid var(--borda); box-shadow:0 16px 40px rgba(31,41,51,.10); margin:auto;
}
.porta-marca{display:flex; align-items:center; gap:12px; margin-bottom:20px}
.porta-simbolo{font-size:26px; line-height:1}
.porta-marca b{display:block; font-size:17px; color:var(--marca); letter-spacing:-.2px}
.porta-marca small{display:block; color:var(--tinta-3); font-size:12px; margin-top:1px}

.porta-aviso{
  background:var(--acento-fundo); border:1px solid var(--acento-borda); border-radius:8px;
  padding:12px 14px; margin-bottom:18px;
}
.porta-aviso > b{display:block; font-size:12.5px; color:#6e4d00; margin-bottom:5px}
.porta-aviso p{margin:0; font-size:12px; color:#6e4d00; line-height:1.5}

.porta-botao{width:100%; margin-top:16px; padding:10px; font-size:14px}
.porta-link{
  display:block; width:100%; margin-top:12px; background:none; border:none; cursor:pointer;
  font:inherit; font-size:12.5px; color:var(--marca); text-decoration:underline;
  text-underline-offset:2px; padding:4px;
}
.porta-link:hover{color:var(--marca-2)}
.porta-rodape{
  margin:20px 0 0; padding-top:14px; border-top:1px solid var(--borda-2);
  font-size:11.5px; color:var(--tinta-3); line-height:1.5;
}

/* ---------- conta na barra superior ---------- */
.topo .conta{display:flex; align-items:center; gap:9px}
.topo .conta-nome{
  font-size:12.5px; color:var(--tinta-2); max-width:150px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* ---------- faixa de aviso ---------- */
.faixa-modo{
  background:var(--acento-fundo); border-bottom:1px solid var(--acento-borda); color:#6e4d00;
  font-size:12px; padding:6px 16px; text-align:center;
}
.faixa-modo.atencao{background:var(--erro-fundo); border-bottom-color:#f0d0d0; color:var(--erro); font-weight:600}
.faixa-modo:empty{display:none}
body:has(.faixa-modo:not(.oculto):not(:empty)) .tela{height:calc(100vh - var(--alt-topo) - 29px)}

/* ============================================================
   LAYOUT FLUIDO — etapa 1 (14/09/2026)
   A página rola inteira. Barra superior, linha de critérios, abas e a
   prévia da memória ficam presas no alto enquanto se rola.
   ============================================================ */
[hidden]{display:none !important}
:root{--alt-crit:50px}
body{overflow:auto}
/* a página precisa crescer com o conteúdo: com a altura travada em 100% (do layout antigo),
   a barra superior só ficava presa durante a primeira tela e depois ia embora ao rolar */
html,body{height:auto; min-height:100%}
.tela{height:auto; overflow:visible}
body:has(.faixa-modo:not(.oculto):not(:empty)) .tela{height:auto}
.topo{position:sticky; top:0; z-index:50}
.tela.trabalho.ativa{display:block; overflow:visible}

/* barra superior enxuta */
.menu{position:relative}
.menu-lista{
  position:absolute; top:calc(100% + 6px); left:0; width:250px; z-index:60; padding:6px;
  background:var(--card); border:1px solid var(--borda); border-radius:10px;
  box-shadow:0 18px 40px rgba(31,41,51,.16);
}
.menu-lista .item{
  display:flex; justify-content:space-between; align-items:center; width:100%; padding:7px 10px;
  border:0; background:none; border-radius:6px; cursor:pointer; text-align:left; font:inherit; color:var(--tinta);
}
.menu-lista .item:hover,.menu-lista .item:focus-visible{background:var(--marca-clara); color:var(--marca)}
.menu-sep{height:1px; background:var(--borda-2); margin:5px 4px}
kbd{font-family:Consolas,ui-monospace,monospace; font-size:10.5px; padding:1px 5px; border:1px solid var(--borda); border-bottom-width:2px; border-radius:4px; color:var(--tinta-3); background:var(--suave)}
.estado-salvo{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; color:var(--tinta-3); white-space:nowrap}
.estado-salvo i{width:7px; height:7px; border-radius:50%; background:var(--borda); display:inline-block}
.estado-salvo.salvo i,.estado-salvo.aberto i{background:var(--ok)}
.estado-salvo.alterado i{background:var(--pendente)}
.estado-salvo.alterado{color:var(--acento)}
.densidade{display:inline-flex; border:1px solid var(--borda); border-radius:6px; overflow:hidden}
.densidade button{border:0; background:transparent; padding:4px 10px; font:inherit; font-size:11.5px; cursor:pointer; color:var(--tinta-2)}
.densidade button + button{border-left:1px solid var(--borda)}
.densidade button[aria-pressed="true"]{background:var(--marca-clara); color:var(--marca); font-weight:600}
.etiqueta-modo{
  font-size:10.5px; padding:1px 8px; border-radius:99px; font-weight:600; cursor:help; white-space:nowrap;
  background:var(--acento-fundo); color:var(--acento); border:1px solid var(--acento-borda);
}

/* critérios numa linha, painel por cima */
.criterios{position:sticky; top:var(--alt-topo); z-index:40; max-height:none; border-bottom:1px solid var(--borda)}
.crit-cab{min-height:50px; padding:7px 16px; flex-wrap:wrap; row-gap:6px}
.crit-tipo small{display:none}
.crit-resumo{
  display:flex; flex-wrap:wrap; gap:6px; align-items:center; white-space:normal; overflow:visible;
  border-left:0; padding-left:0; margin-left:4px;
}
.ficha-crit{
  display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:99px; white-space:nowrap;
  background:var(--suave); border:1px solid var(--borda); font-size:12px; color:var(--tinta-2);
}
.ficha-crit b{color:var(--tinta); font-weight:600}
.ficha-crit.grupo{background:var(--marca-clara); border-color:transparent; color:var(--marca)}
.ficha-crit.alerta{background:var(--acento-fundo); border-color:var(--acento-borda); color:var(--acento); font-weight:600}
button.crit-estado{font:inherit; font-size:11.5px; font-weight:600; cursor:pointer}
.crit-corpo{
  display:none; position:absolute; left:16px; right:16px; top:calc(100% + 6px);
  background:var(--card); border:1px solid var(--borda); border-radius:12px;
  box-shadow:0 18px 40px rgba(31,41,51,.16); max-height:calc(100vh - 150px); overflow-y:auto;
}
.criterios.aberto .crit-corpo{display:block}
.crit-rodape{border-radius:0 0 12px 12px}

/* área de trabalho + prévia flutuante */
.area-trabalho{display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:22px; padding:0 18px 40px; align-items:start}
.central{display:block; overflow:visible; min-height:0}
.abas{
  position:sticky; top:calc(var(--alt-topo) + var(--alt-crit)); z-index:30;
  background:var(--papel); padding:6px 0 0; margin-bottom:14px;
}
.conteudo{overflow:visible; padding:0}
.abas button .conta.ok{background:var(--ok-fundo); color:var(--ok)}
.abas button .conta.pend{background:var(--acento-fundo); color:var(--acento)}

.previa-lateral{position:sticky; top:calc(var(--alt-topo) + var(--alt-crit) + 20px); margin-top:20px}
.folha{
  background:var(--card); color:var(--tinta); border-radius:4px; padding:16px 16px 12px;
  box-shadow:0 1px 2px rgba(31,41,51,.05), 0 10px 30px rgba(31,41,51,.09);
}
.folha-cab{text-align:center; border-bottom:2px solid var(--marca); padding-bottom:6px; margin-bottom:10px}
.folha-cab strong{display:block; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase}
.folha-cab small{display:block; color:var(--tinta-3); font-size:10.5px; margin-top:2px}
.ficha-proc{display:grid; grid-template-columns:auto 1fr; gap:1px 10px; font-size:11px; margin:0 0 10px}
.ficha-proc dt{color:var(--tinta-3)}
.ficha-proc dd{margin:0; text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
.comp{display:grid; font-size:12px; font-variant-numeric:tabular-nums}
.comp button{
  display:grid; grid-template-columns:1fr auto; gap:10px; border:0; background:none; padding:4px 6px; margin:0 -6px;
  border-radius:5px; cursor:pointer; text-align:left; font:inherit; color:inherit;
}
.comp button:hover,.comp button:focus-visible{background:var(--marca-clara)}
.comp button.zero{color:var(--tinta-3)}
.comp button.forte{font-weight:600}
.comp button.neg:not(.zero) span:last-child{color:var(--erro)}
.comp .sep{border-top:1px solid var(--borda); margin:4px 0}
.por-grupo{margin-top:8px; padding-top:8px; border-top:1px dashed var(--borda); font-size:11px; display:grid; gap:2px}
.por-grupo div{display:flex; justify-content:space-between; gap:10px; font-variant-numeric:tabular-nums}
.por-grupo span:first-child{color:var(--tinta-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.total-folha{
  margin-top:10px; padding:9px 11px; border-radius:6px; background:var(--marca); color:#fff;
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
}
.total-folha small{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; opacity:.9}
.total-folha strong{font-size:19px; font-variant-numeric:tabular-nums; letter-spacing:-.01em}
.folha-acoes{display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:10px}
.folha-acoes .btn{text-align:center}

/* modo compacto: cabe mais sem rolar */
body.compacto{--alt-topo:44px; font-size:12.5px}
body.compacto .btn{padding:4px 9px; font-size:12px}
body.compacto .btn.mini{padding:2px 7px; font-size:11px}
body.compacto input[type=text],body.compacto input[type=date],body.compacto input[type=number],body.compacto select{padding:4px 6px; font-size:12.5px}
body.compacto .tabela th{padding:6px 7px}
body.compacto .tabela td{padding:1px 4px}
body.compacto .tabela input,body.compacto .tabela select{padding:3px 5px; font-size:12px}
body.compacto .abas button{padding:8px 11px 7px; font-size:12.5px}
body.compacto .crit-cab{min-height:42px; padding:5px 14px}
body.compacto .ficha-crit{padding:2px 8px; font-size:11.5px}
body.compacto .crit-col{padding:8px 12px}
body.compacto .campo-linha{margin-bottom:6px}
body.compacto .area-trabalho{padding:0 14px 30px; gap:16px}
body.compacto .ferramentas{margin-bottom:8px}
body.compacto .cartao{padding:12px}
body.compacto .grupo-cab{padding:6px 10px}
body.compacto .acrescimo .cabeca{padding:7px 10px}
body.compacto .folha{padding:12px 13px 10px}
body.compacto .total-folha strong{font-size:17px}

@media(max-width:1180px){
  .estado-salvo span{display:none}
}
@media(max-width:1100px){
  .area-trabalho{grid-template-columns:minmax(0,1fr)}
  .previa-lateral{position:static; margin-top:0}
}
@media(max-width:980px){
  .crit-resumo{display:flex}
  .densidade{display:none}
  .criterios,.abas{position:static}
}

/* ============================================================
   IA, CHAMADOS E ADMINISTRAÇÃO (16/09/2026)
   ============================================================ */
.btn-ia{border-color:#c9d6ee; color:var(--marca); background:var(--marca-clara); font-weight:600}
.btn-ia:hover{background:#dfe9f7; border-color:var(--marca)}
.btn-ia:disabled{opacity:.75}
.ia-resumo{background:var(--card); border:1px solid #c9d6ee; border-radius:var(--raio); padding:12px 14px; margin:14px 0 0}
.ia-resumo-cab{display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline}
.ia-resumo-cab b{color:var(--marca)}
.ia-resumo-cab .mut{font-size:12px}
.ia-resumo p{margin:6px 0 0; font-size:13px; max-width:80ch}
.ia-resumo ul{margin:6px 0 0; padding-left:18px; font-size:12.5px; color:var(--acento)}
.ia-resumo p.mut{font-size:11.5px}

.grade-chamados{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:14px; align-items:start}
.escolha{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px}
.escolha button{
  font:inherit; font-size:12.5px; padding:6px 12px; border-radius:99px; cursor:pointer;
  border:1px solid var(--borda); background:var(--card); color:var(--tinta-2);
}
.escolha button[aria-checked="true"]{background:var(--marca); border-color:var(--marca); color:#fff; font-weight:600}
.chamado{border:1px solid var(--borda); border-radius:var(--raio); padding:11px 13px; margin-bottom:9px; background:var(--card)}
.chamado header{display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin-bottom:4px}
.chamado header b{flex:1 1 180px; min-width:0}
.chamado-texto{margin:6px 0; white-space:pre-wrap; font-size:13px; color:var(--tinta)}
.tipo-chamado{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:2px 8px; border-radius:4px; white-space:nowrap}
.tipo-chamado.t-sugestao{background:var(--marca-clara); color:var(--marca)}
.tipo-chamado.t-erro{background:var(--erro-fundo); color:var(--erro)}
.tipo-chamado.t-duvida{background:var(--suave); color:var(--tinta-2); border:1px solid var(--borda)}
.situacao-chamado{font-size:11px; font-weight:600; padding:2px 9px; border-radius:99px; white-space:nowrap}
.s-aberto{background:var(--acento-fundo); color:var(--acento)}
.s-em_analise{background:var(--marca-clara); color:var(--marca)}
.s-resolvido{background:var(--ok-fundo); color:var(--ok)}
.s-recusado{background:var(--suave); color:var(--tinta-3); border:1px solid var(--borda)}
.resposta-chamado{margin-top:8px; padding:8px 11px; background:var(--ok-fundo); border-radius:6px; font-size:12.5px}
.resposta-chamado p{margin:4px 0 0; white-space:pre-wrap}
.contexto-chamado{margin:4px 0 8px; font-size:12px}
.contexto-chamado summary{cursor:pointer; color:var(--tinta-2)}
.contexto-chamado dl{display:grid; grid-template-columns:auto 1fr; gap:2px 12px; margin:6px 0 0}
.contexto-chamado dt{color:var(--tinta-3)}
.contexto-chamado dd{margin:0; overflow-wrap:anywhere}
.resposta-admin{display:flex; flex-wrap:wrap; gap:8px 10px; align-items:flex-end; padding-top:8px; border-top:1px solid var(--borda-2)}
.resposta-admin select{width:auto}
.resposta-admin .esticar-campo{flex:1 1 260px}

.abas-admin{position:static; background:transparent; padding:0}
.indicadores{display:grid; grid-template-columns:2fr repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px}
.indicador{background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); padding:11px 13px; display:flex; flex-direction:column; gap:2px; min-width:0}
.indicador small{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--tinta-3); font-weight:700}
.indicador strong{font-size:19px; font-variant-numeric:tabular-nums}
.indicador .mut{font-size:11.5px}
.ok-texto{color:var(--ok)}
.barra-gasto{height:7px; border-radius:99px; background:var(--borda-2); overflow:hidden; margin-top:6px}
.barra-gasto i{display:block; height:100%; border-radius:99px; background:var(--ok)}
.barra-gasto.medio i{background:var(--pendente)}
.barra-gasto.alto i{background:var(--erro)}
.grade-admin{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:start}
.bloco-chave{margin-top:12px; padding-top:10px; border-top:1px solid var(--borda-2)}
.bloco-chave input{flex:1 1 240px; width:auto}
.tabela td.corta{max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.tabela td{padding:5px 7px}
@media(max-width:980px){
  .grade-chamados,.grade-admin{grid-template-columns:1fr}
  .indicadores{grid-template-columns:repeat(2,minmax(0,1fr))}
  .indicador.largo{grid-column:1/-1}
}

/* ---------- impressão ---------- */
#folha{display:none}
@media screen{
  body.imprimindo{overflow:auto}
  body.imprimindo .topo,body.imprimindo .tela{display:none !important}
  body.imprimindo #folha{display:block; padding:20px; max-width:900px; margin:0 auto}
}
/* ---------- digitação e didática (21/09/2026) ---------- */
.campo-data{font-variant-numeric:tabular-nums}
input.campo-erro,textarea.campo-erro{border-color:var(--erro) !important; background:var(--erro-fundo) !important}
input.campo-pendente{border-color:var(--pendente) !important; background:var(--acento-fundo) !important}
.balao-erro{position:fixed; z-index:200; max-width:320px; padding:6px 10px; border-radius:6px; background:var(--erro);
  color:#fff; font-size:12px; line-height:1.35; box-shadow:0 6px 18px rgba(31,41,51,.2); pointer-events:none}
.balao-erro::before{content:""; position:absolute; top:-5px; left:14px; border:5px solid transparent; border-top:0; border-bottom-color:var(--erro)}

.tabela td.acao:has(.explica-bt){width:60px; white-space:nowrap}
.explica-bt{min-width:24px; margin-right:4px}
.explica-bt.ativo{background:var(--marca); border-color:var(--marca); color:#fff}
tr.linha-explica > td{background:var(--suave); padding:10px 14px 12px !important; border-top:0}
.explica{font-size:12.5px; line-height:1.5; color:var(--tinta)}
.explica p{margin:0 0 6px}
.explica ol.passos{margin:0 0 8px; padding-left:20px; display:grid; gap:4px}
.explica-falta{color:#6e4d00}
.explica-aviso{color:#6e4d00; font-size:12px}
.explica .mes-a-mes{max-height:320px; overflow:auto; margin-top:8px; border:1px solid var(--borda); border-radius:6px; background:#fff}
.explica .mes-a-mes .tabela{font-size:11.5px}
.explica .mes-a-mes td,.explica .mes-a-mes th{white-space:nowrap; text-align:right}
.explica .mes-a-mes td:first-child,.explica .mes-a-mes th:first-child,
.explica .mes-a-mes td:nth-child(2),.explica .mes-a-mes th:nth-child(2){text-align:left}

.pendencias{margin:10px 0; padding:9px 11px; background:var(--acento-fundo); border:1px solid var(--acento-borda);
  border-radius:8px; font-size:12.5px; color:#6e4d00}
.pendencias ul{margin:6px 0 0; padding:0; list-style:none; display:grid; gap:4px}
.pendencias button{background:none; border:0; padding:0; text-align:left; color:inherit; cursor:pointer; font:inherit;
  text-decoration:underline; text-decoration-style:dotted; text-underline-offset:2px}
.pendencias button:hover{color:var(--tinta)}
.pendencias.passos{background:var(--marca-clara); border-color:#d5e2f4; color:var(--tinta-2)}
.pendencias.passos b{color:var(--marca)}
.pendencias.passos ol{margin:6px 0 0; padding-left:18px; display:grid; gap:3px}

.aviso-rascunho{display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:12px 14px; margin:0 0 18px;
  background:var(--acento-fundo); border:1px solid var(--acento-borda); border-radius:10px; color:#6e4d00; text-align:left}
.aviso-rascunho-txt{flex:1; min-width:220px}
.aviso-rascunho-txt b{display:block; color:var(--tinta)}

.casos-cab{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:4px}
.casos-cab h2{margin:0; font-size:16px; flex:1}
.casos-cab input{max-width:320px; width:100%}
.link-caso{background:none; border:0; padding:0; font:inherit; font-weight:600; color:var(--marca); cursor:pointer; text-align:left}
.link-caso:hover, .link-caso:focus-visible{text-decoration:underline}
.link-caso:disabled{opacity:.6; cursor:wait}
.casos-rotulo{margin:8px 0 6px; font-size:11.5px; color:var(--tinta-3); text-transform:uppercase; letter-spacing:.04em}
#btTodosCasos{margin-top:8px}

/* ---------- administração: usuários ---------- */
.usuarios-grade{grid-template-columns:minmax(0,760px)}
.com-botao{display:flex; gap:6px; align-items:center}
.com-botao input{flex:1; font-family:ui-monospace,Consolas,monospace; letter-spacing:.02em}
.msg-usuario{margin-top:12px; padding:12px; background:var(--ok-fundo); border:1px solid #c6e6d6; border-radius:8px}
td.msg-usuario{margin:0}
.msg-usuario b{color:var(--ok)}
.msg-usuario p{margin:4px 0 8px; font-size:12px}
.msg-usuario textarea{width:100%; font-size:12.5px; margin-bottom:8px; background:#fff; resize:vertical}
.tab-usuarios td{vertical-align:middle}
.tab-usuarios input{min-width:120px}
.acoes-usuario{text-align:right; white-space:nowrap}
.papel-admin{font-size:10.5px; font-weight:600; color:var(--marca); background:var(--marca-clara); border-radius:10px; padding:1px 7px; margin-left:4px}
.sit-usuario{font-size:11.5px; font-weight:600; border-radius:10px; padding:2px 8px; white-space:nowrap}
.sit-usuario.s-ativo{background:var(--ok-fundo); color:var(--ok)}
.sit-usuario.s-aguardando{background:var(--marca-clara); color:var(--marca)}
.sit-usuario.s-suspenso{background:var(--erro-fundo); color:var(--erro)}
.sit-usuario.s-vencido{background:var(--acento-fundo); color:#6e4d00}

/* ---------- começar por uma decisão ---------- */
.comecar-decisao{display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center; margin:0 0 18px;
  padding:12px 16px; border:1px dashed #cfdcef; border-radius:10px; background:var(--marca-clara)}
.comecar-decisao span{font-size:12.5px; color:var(--tinta-2); max-width:520px; text-align:left}

/* ---------- caixa "o que vai no PDF" ---------- */
dialog.dlg{border:1px solid var(--borda); border-radius:12px; padding:22px 22px 18px; width:min(440px, calc(100vw - 32px));
  box-shadow:0 16px 40px rgba(31,41,51,.18); color:var(--tinta); background:var(--card)}
dialog.dlg::backdrop{background:rgba(31,41,51,.35)}
.dlg h3{margin:0 0 4px; font-size:16px; color:var(--marca)}
.dlg p.mut{margin:0 0 12px; font-size:12.5px}
.opcoes-pdf{display:grid; grid-template-columns:1fr 1fr; gap:7px 14px; margin:0 0 16px}
.opcoes-pdf label{display:flex; gap:7px; align-items:flex-start; cursor:pointer; font-size:13px; line-height:1.3}
.opcoes-pdf input{margin-top:2px}
.dlg-acoes{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.dlg-acoes .esticar{flex:1}
@media (max-width:520px){ .opcoes-pdf{grid-template-columns:1fr} }

@media print{
  @page{size:A4 portrait; margin:14mm 12mm}
  html,body{height:auto; overflow:visible}
  body{background:#fff; font-size:10.5pt}
  .topo,.tela,.porta,.faixa-modo,.nao-imprime,.balao{display:none !important}
  #folha{display:block !important}
  .timbre{border-bottom-color:#ccd5de}
  .timbre img{max-height:18mm}
  .timbre-txt b{font-size:13pt}
  .timbre-txt small{font-size:8.5pt}
  .doc{font-size:9pt}
  .doc-tab{font-size:8pt}
  .mem-tab{font-size:7.4pt}
  .doc h2{page-break-after:avoid}
  .doc-tab thead{display:table-header-group}
  .memoria-bloco{page-break-inside:avoid}
  .quebra{page-break-before:always}
  tr{page-break-inside:avoid}
}
