/* ============================================================
   ORDARA — design system do produto
   Brandbook v2.0: marfim como palco, ônix como autoridade,
   ouro em filetes e estados ativos. Cantos retos, sem sombras.
   ============================================================ */

@font-face{
  font-family:"Cormorant Garamond";
  src:url("/fontes/cormorant.woff2") format("woff2");
  font-weight:300 700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url("/fontes/cormorant-italico.woff2") format("woff2");
  font-weight:300 700;font-style:italic;font-display:swap;
}
@font-face{
  font-family:"Source Sans 3";
  src:url("/fontes/sourcesans.woff2") format("woff2");
  font-weight:200 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"JetBrains Mono";
  src:url("/fontes/jetbrains.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}

:root{
  /* paleta Ordara */
  --onix:#14110F; --ouro:#B08D3F; --ouro-antigo:#7C6224; --champanhe:#E4CE9B;
  --marfim:#F7F3EA; --areia:#DCD3C3; --grafite:#423C34; --verde-toga:#1F3A31;
  --vinho:#6E2B26;                        /* funcional: erro/vencido */

  /* papéis (nomes herdados pelo restante do CSS/HTML) */
  --bg:var(--marfim); --bg2:#F1EBDD; --card:#FFFEFA;
  --linha:#C9BFA9; --linha2:#EAE2D2; --txt:var(--grafite); --forte:var(--onix);
  --fraco:#857B6B;
  --azul:var(--ouro-antigo); --azul-fraco:#F5EDD8;
  --verde:var(--verde-toga); --verde-fraco:#E7EDE7;
  --vermelho:var(--vinho); --vermelho-fraco:#F2E3DF;
  --ambar:var(--ouro-antigo); --ambar-fraco:#F1E7CD;

  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Source Sans 3","Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --raio:0px;
  --lateral:236px;
}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);
  font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:.85em}
::selection{background:var(--champanhe);color:var(--onix)}

/* ---------- selo (monograma) ---------- */
.selo{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;border:1px solid var(--ouro);flex:0 0 auto}
.selo::before{content:"";position:absolute;inset:3px;border:1px solid rgba(176,141,63,.35);
  border-radius:50%}
.selo i{font-family:var(--serif);font-style:normal;font-weight:400;font-size:20px;
  color:var(--champanhe);line-height:1;transform:translateY(-1px)}

/* ---------- estrutura: lateral ônix + palco marfim ---------- */
.lateral{position:fixed;inset:0 auto 0 0;width:var(--lateral);background:var(--onix);
  display:flex;flex-direction:column;padding:24px 0;z-index:30}
.lateral .marca{display:flex;align-items:center;gap:12px;padding:0 20px 22px;
  color:var(--champanhe)}
.lateral .marca:hover{text-decoration:none}
.marca-nome{font-family:var(--serif);font-weight:500;font-size:16px;letter-spacing:.38em;
  text-transform:uppercase;color:var(--marfim);transform:translateX(2px)}
.lateral nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:14px 0;
  border-top:1px solid rgba(176,141,63,.25)}
.lateral nav a{padding:10px 20px;color:#A99F8C;font-size:14px;font-weight:400;
  border-left:2px solid transparent;letter-spacing:.02em}
.lateral nav a:hover{color:var(--marfim);text-decoration:none}
.lateral nav a.ativo{color:var(--champanhe);border-left-color:var(--ouro);
  background:rgba(176,141,63,.10);font-weight:600}
.lateral-pe{padding:16px 20px 0;border-top:1px solid rgba(176,141,63,.25);
  display:flex;flex-direction:column;gap:14px}
.btn-bloco{display:block;text-align:center;width:100%}
.quem{display:flex;align-items:center;gap:10px}
.quem-nome{flex:1;font-size:13px;color:var(--marfim);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.sair{background:none;border:none;color:#A99F8C;font:600 11px var(--sans);
  text-transform:uppercase;letter-spacing:.1em;cursor:pointer;padding:4px 0}
.sair:hover{color:var(--champanhe)}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:32px;height:32px;border-radius:50%;border:1px solid var(--ouro);
  background:transparent;color:var(--ouro-antigo);font-size:11.5px;font-weight:600}
.lateral .avatar{color:var(--champanhe)}

.palco{margin-left:var(--lateral);min-height:100vh;display:flex;flex-direction:column}
main{width:100%;max-width:1600px;margin:0 auto;padding:40px 40px 64px;flex:1}
main.main-total{max-width:none}
.rodape{text-align:center;color:#9A9082;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;padding:24px 16px 28px}

@media(max-width:920px){
  .lateral{position:static;width:auto;flex-direction:row;align-items:center;
    flex-wrap:wrap;padding:10px 16px;gap:4px 14px}
  .lateral .marca{padding:0}
  .marca-nome{font-size:14px}
  .lateral nav{flex:1 1 100%;flex-direction:row;overflow-x:auto;border-top:0;
    padding:6px 0 2px;gap:2px;order:3}
  .lateral nav a{padding:8px 12px;border-left:0;border-bottom:2px solid transparent;
    white-space:nowrap}
  .lateral nav a.ativo{border-bottom-color:var(--ouro);background:none}
  .lateral-pe{border-top:0;padding:0;margin-left:auto;flex-direction:row;
    align-items:center;order:2}
  .palco{margin-left:0}
  main{padding:24px 16px 48px}
}

/* ---------- capa (login / setup, sem sessão) ---------- */
.capa{background:var(--onix);color:var(--marfim);min-height:100vh;display:flex;
  flex-direction:column}
.capa main{display:flex;align-items:center;justify-content:center;padding:32px 16px}
.login-caixa{width:min(420px,100%)}
.capa .card{background:transparent;border:1px solid rgba(176,141,63,.5);
  padding:44px 40px;box-shadow:none}
.capa-marca{display:flex;flex-direction:column;align-items:center;gap:16px;
  margin-bottom:26px;text-align:center}
.capa-marca .selo{width:64px;height:64px}
.capa-marca .selo::before{inset:5px}
.capa-marca .selo i{font-size:34px}
.capa-titulo{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--marfim);margin:0;transform:translateX(4px)}
.capa-sub{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ouro);margin:0}
.capa label{color:#A99F8C}
.capa input,.capa select{background:rgba(247,243,234,.05);border-color:rgba(176,141,63,.4);
  color:var(--marfim)}
.capa input:focus,.capa select:focus{outline-color:var(--ouro)}
.capa a{color:var(--champanhe)}
.capa .sub{color:#A99F8C}
.capa .faixa-alerta{background:rgba(176,141,63,.12);color:var(--champanhe);
  border-color:var(--ouro)}
.capa .aviso-erro{background:rgba(110,43,38,.35);color:#E8C0B8;border-color:#8A4A42}
.capa .aviso-ok{background:rgba(31,58,49,.4);color:#BCD3C6;border-color:#3A5C4E}
.capa .rodape{color:#6E6558}

/* ---------- blocos ---------- */
h1{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.15;
  color:var(--forte);margin:0 0 4px;letter-spacing:.01em}
h2{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--forte);
  margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--linha2)}
h3{font-size:15px;margin:0 0 10px;color:var(--forte)}
.sub{color:var(--fraco);font-size:13.5px;margin:0 0 24px}
.cabeca{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.card{background:var(--card);border:1px solid var(--linha2);border-radius:var(--raio);
  padding:20px;margin-bottom:20px}
.grade{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
/* minmax(0,1fr), não 1fr: a coluna "1fr" não encolhe abaixo do conteúdo mínimo
   dos filhos (tabela com nowrap, grade de KPIs), e num celular de 400px a tela
   do processo e o painel transbordavam para 570px. Com o mínimo em zero, a
   coluna cabe na janela e as tabelas rolam dentro do card (.rolagem). */
.principal{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.principal>*{min-width:0}
@media(max-width:1100px){.principal{grid-template-columns:minmax(0,1fr)}}

/* ---------- indicadores ---------- */
.kpi{background:var(--card);border:1px solid var(--linha2);border-top:2px solid var(--areia);
  border-radius:var(--raio);padding:16px 18px}
.kpi .rot{font-size:10.5px;text-transform:uppercase;letter-spacing:.16em;
  color:var(--fraco);font-weight:600}
.kpi .num{font-family:var(--mono);font-size:22px;color:var(--forte);margin-top:6px}
.kpi .pe{font-size:12px;color:var(--fraco);margin-top:3px}
.kpi.ok{border-top-color:var(--verde-toga)} .kpi.ok .num{color:var(--verde-toga)}
.kpi.perigo{border-top-color:var(--vinho)} .kpi.perigo .num{color:var(--vinho)}
.kpi.alerta{border-top-color:var(--ouro)} .kpi.alerta .num{color:var(--ouro-antigo)}

/* ---------- tabelas ---------- */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--fraco);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--linha)}
td{padding:10px;border-bottom:1px solid var(--linha2);vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--bg)}
.num-col{text-align:right;font-family:var(--mono);font-size:12.5px;white-space:nowrap}
.num-col .btn{font-family:var(--sans)}
.rolagem{overflow-x:auto}

/* ---------- etiquetas ---------- */
.tag{display:inline-block;padding:2px 9px;border-radius:var(--raio);font-size:11.5px;
  font-weight:600;white-space:nowrap;border:1px solid transparent}
.tag-area{color:#fff}
.ponto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.pill{display:inline-block;padding:3px 8px;border-radius:var(--raio);font-size:10px;
  font-weight:600;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.pill-ok{background:var(--verde-fraco);color:var(--verde-toga)}
.pill-perigo{background:var(--vermelho-fraco);color:var(--vinho)}
.pill-alerta{background:var(--ambar-fraco);color:var(--ouro-antigo)}
.pill-neutro{background:var(--bg2);color:var(--fraco)}
.selo-alerta{display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;border-radius:50%;border:1px solid var(--ouro);
  color:var(--ouro-antigo);font-size:10px;font-weight:700;vertical-align:1px}

/* ---------- funil ---------- */
.colunas{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.coluna{flex:1 0 280px;max-width:380px;background:var(--bg2);border:1px solid var(--linha2);
  border-radius:var(--raio);padding:12px;max-height:calc(100vh - 200px);
  display:flex;flex-direction:column}
.coluna h3{display:flex;align-items:center;justify-content:space-between;font-size:13px;
  margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--linha)}
.coluna .qtd{font-family:var(--mono);background:var(--card);color:var(--fraco);
  padding:1px 7px;font-size:11px;border:1px solid var(--linha2)}
.pilha{overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.ficha{display:block;background:var(--card);border:1px solid var(--linha2);
  border-radius:var(--raio);padding:11px 12px;color:var(--txt)}
.ficha:hover{border-color:var(--ouro);text-decoration:none}
.ficha .nome{font-weight:600;font-size:13.5px;margin-bottom:4px;color:var(--forte)}
.ficha .ult{color:var(--fraco);font-size:11.5px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ficha .rodape-ficha{display:flex;justify-content:space-between;align-items:center;
  margin-top:9px;font-size:11px;color:var(--fraco)}
.vazio{color:var(--fraco);font-size:12.5px;padding:12px 4px;text-align:center}

/* ---------- linha do tempo ---------- */
.tl{list-style:none;margin:0;padding:0 0 0 18px;border-left:1px solid var(--areia)}
.tl li{position:relative;padding:0 0 16px 16px}
.tl li::before{content:"";position:absolute;left:-22px;top:6px;width:7px;height:7px;
  border-radius:50%;background:var(--ouro);border:2px solid var(--card)}
.tl .quando{font-family:var(--mono);font-size:11px;color:var(--fraco)}
.tl .oque{margin-top:2px;white-space:pre-wrap}

/* ---------- formularios ---------- */
label{display:block;font-size:11px;font-weight:600;color:var(--fraco);margin:0 0 5px;
  text-transform:uppercase;letter-spacing:.12em}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--linha);
  border-radius:var(--raio);background:var(--card);color:var(--txt);font:inherit;font-size:14px}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(176,141,63,.55);
  outline-offset:-1px;border-color:var(--ouro)}
textarea{min-height:76px;resize:vertical}
.campo{margin-bottom:14px}
.linha-campos{display:flex;gap:10px;flex-wrap:wrap}
.linha-campos>.campo{flex:1;min-width:120px}
.btn{display:inline-block;padding:9px 15px;border-radius:var(--raio);
  border:1px solid var(--linha);background:transparent;color:var(--grafite);
  font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.btn:hover{border-color:var(--ouro);color:var(--forte);background:rgba(176,141,63,.07);
  text-decoration:none}
.btn-primario{background:var(--ouro);border-color:var(--ouro);color:var(--onix)}
.btn-primario:hover{background:#9A7A33;border-color:#9A7A33;color:var(--onix)}
.btn-ok{background:var(--verde-toga);border-color:var(--verde-toga);color:var(--marfim)}
.btn-ok:hover{background:#2A4A3F;border-color:#2A4A3F;color:var(--marfim)}
.btn-perigo{color:var(--vinho);border-color:var(--vinho)}
.btn-perigo:hover{border-color:var(--vinho);color:var(--vinho);background:rgba(110,43,38,.06)}
.btn-mini{padding:4px 9px;font-size:10.5px}
.acoes{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
form.inline{display:inline}

/* ---------- avisos ---------- */
.avisos{margin-bottom:20px}
.aviso{padding:11px 14px;border-radius:var(--raio);margin-bottom:8px;font-size:14px;
  font-weight:500;border:1px solid;border-left-width:3px}
.aviso-ok{background:var(--verde-fraco);color:var(--verde-toga);border-color:var(--verde-toga)}
.aviso-erro{background:var(--vermelho-fraco);color:var(--vinho);border-color:var(--vinho)}
.aviso-alerta{background:var(--ambar-fraco);color:#6B5620;border-color:var(--ouro)}
/* Conferência inline do nº CNJ (script do layout preenche) */
.campo-aviso{font-size:11.5px;margin-top:4px;color:var(--vinho)}
.campo-aviso.ok{color:var(--verde-toga)}
.campo-aviso:empty{display:none}
.faixa{padding:13px 16px;border-radius:var(--raio);margin-bottom:20px;font-size:13.5px;
  border:1px solid;border-left-width:3px}
.faixa-alerta{background:var(--ambar-fraco);color:#6B5620;border-color:var(--ouro)}
.faixa-perigo{background:var(--vermelho-fraco);color:var(--vinho);border-color:var(--vinho)}
.filtros{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}
.filtros a{padding:6px 13px;border-radius:var(--raio);border:1px solid var(--linha);
  background:transparent;color:var(--fraco);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em}
.filtros a:hover{text-decoration:none;border-color:var(--ouro);color:var(--forte)}
.filtros a.ativo{background:var(--onix);border-color:var(--onix);color:var(--champanhe)}
.busca{display:flex;gap:8px;margin-bottom:20px;max-width:460px}
.segredo{font-family:var(--mono);font-size:16px;background:var(--bg2);
  border:1px dashed var(--linha);border-radius:var(--raio);padding:12px 14px;
  word-break:break-all;user-select:all;color:var(--forte)}

/* ---------- agenda e prazos ---------- */
.data-bloco{width:46px;text-align:center;border-right:1px solid var(--linha2);padding-right:9px}
.data-bloco .dia{font-family:var(--mono);font-size:17px;color:var(--forte)}
.data-bloco .mes{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--fraco);margin-top:2px}
.barras{display:flex;gap:2px;height:56px;align-items:flex-end}
.barras div{flex:1;background:var(--areia);min-height:2px}
.barras div.atual{background:var(--ouro)}

/* ---------- GED / arquivos ---------- */
.doc-ext{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:34px;height:40px;border:1px solid var(--ouro);color:var(--ouro-antigo);
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.02em;border-radius:3px}
.drop{display:block;margin-bottom:14px;cursor:pointer}
.drop-form{position:relative;border:1.5px dashed var(--linha);border-radius:var(--raio);
  padding:18px 16px;text-align:center;transition:border-color .15s,background .15s}
.drop.dragover .drop-form{border-color:var(--ouro);background:var(--ouro-fraco)}
.drop-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.drop-form select{max-width:220px;margin:0 auto 10px;position:relative;z-index:1}
.drop-msg{font-size:13px;color:var(--txt)}

/* ---------- documento gerado (folha) ---------- */
/* A fonte e o tamanho-base vêm do modelo (migração 040) pelas variáveis
   --doc-fonte e --doc-tamanho, postas no style da folha pela view; sem elas,
   o padrão do Ordara. Os títulos acompanham o tamanho-base. */
.folha{background:#fff;border:1px solid var(--areia);max-width:820px;margin:0 auto;
  padding:64px 72px;font-family:var(--doc-fonte,"DejaVu Serif",Georgia,"Times New Roman",serif);
  font-size:var(--doc-tamanho,12pt);line-height:1.7;color:#191512}
.folha h1{font-family:inherit;font-size:calc(var(--doc-tamanho,12pt) + 2pt);text-align:center;letter-spacing:.06em;
  margin:0 0 28px;font-weight:700}
.folha .fonte-times{font-family:"Times New Roman",Times,serif} .folha .fonte-arial{font-family:Arial,Helvetica,sans-serif}
.folha .fonte-verdana{font-family:Verdana,"DejaVu Sans",sans-serif} .folha .fonte-courier{font-family:"Courier New",Courier,monospace}
.folha .tam-8{font-size:8pt} .folha .tam-9{font-size:9pt} .folha .tam-10{font-size:10pt} .folha .tam-11{font-size:11pt}
.folha .tam-12{font-size:12pt} .folha .tam-14{font-size:14pt} .folha .tam-16{font-size:16pt} .folha .tam-18{font-size:18pt}
.folha .tam-20{font-size:20pt} .folha .tam-24{font-size:24pt} .folha .tam-28{font-size:28pt} .folha .tam-36{font-size:36pt}
.folha .timbre{text-align:center;font-size:9pt;line-height:1.35;color:#333;border-bottom:1px solid #9a9a9a;padding-bottom:6px;margin-bottom:22px}
.folha .timbre-logo{max-height:60px;max-width:220px;display:inline-block;margin-bottom:3px}
.folha .timbre-rodape{text-align:center;font-size:8pt;line-height:1.35;color:#555;border-top:1px solid #9a9a9a;padding-top:5px;margin-top:36px}
.folha p{text-align:justify;margin:0 0 14px}
.folha .direita{text-align:right;margin-top:30px}
.folha .assinatura{text-align:center;margin-top:48px}
.folha .esquerda{text-align:left} .folha .centro{text-align:center}
.folha h2{font-family:inherit;font-size:calc(var(--doc-tamanho,12pt) + 1pt);margin:22px 0 12px;font-weight:700}
.folha h3{font-family:inherit;font-size:var(--doc-tamanho,12pt);margin:18px 0 10px;font-weight:700}
.folha ul,.folha ol{margin:0 0 14px;padding-left:34px} .folha li{margin:0 0 4px}
.folha ol.alfa{list-style-type:lower-alpha} .folha ol.romana{list-style-type:lower-roman}
.folha table.sem-bordas td,.folha table.sem-bordas th{border:0}
.folha table{border-collapse:collapse;width:100%;margin:0 0 14px}
.folha td,.folha th{border:1px solid #6b6258;padding:5px 8px;vertical-align:top;text-align:left}
.folha hr.quebra{border:0;border-top:1px dashed var(--areia);margin:18px 0}
.folha blockquote{margin:0 0 14px 34px}
@media(max-width:700px){.folha{padding:28px 20px}}

/* ---------- configuracoes ---------- */
.item-cfg{display:flex;align-items:center;gap:10px;padding:8px 0;
  border-bottom:1px solid var(--linha2)}
.ordem-btns{display:flex;flex-direction:column;gap:2px}
.ordem-btns .btn{padding:0 6px;line-height:15px;font-size:11px}
.ordem-btns .btn:disabled{opacity:.3;cursor:default}
.linha-edit{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}
.linha-edit input[type=color]{width:34px;height:34px;padding:2px;flex:0 0 auto;cursor:pointer}
.linha-edit input[name=nome]{flex:1;min-width:150px}
.linha-edit select{flex:0 0 auto;width:auto;min-width:150px}
.linha-edit .pill{flex:0 0 auto}
.linha-edit.nova{margin-top:16px;padding-top:16px;border-top:1px dashed var(--linha)}
.excluir{flex:0 0 auto;position:relative}
.excluir>summary{list-style:none;cursor:pointer;padding:6px 10px;border-radius:var(--raio);
  border:1px solid var(--linha);color:var(--fraco);font-size:13px;font-weight:600}
.excluir>summary::-webkit-details-marker{display:none}
.excluir>summary:hover{color:var(--vinho);border-color:var(--vinho)}
.excluir[open]>summary{color:var(--vinho);border-color:var(--vinho)}
.excluir>form{position:absolute;right:0;top:calc(100% + 6px);z-index:10;width:270px;
  background:var(--card);border:1px solid var(--vinho);border-radius:var(--raio);
  padding:12px;outline:4px solid rgba(20,17,15,.06)}
.excluir>form select{margin-bottom:10px}

/* ---------- overlay de progresso das acoes de IA ---------- */
#ia-overlay{display:none;position:fixed;inset:0;z-index:90;align-items:center;
  justify-content:center;background:rgba(20,17,15,.55);backdrop-filter:blur(2px)}
.ia-ov-caixa{background:var(--marfim);border:1px solid var(--ouro);border-radius:10px;
  padding:30px 38px;text-align:center;max-width:340px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.ia-ov-brilho{animation:ia-pulsa 1.6s ease-in-out infinite}
@keyframes ia-pulsa{0%,100%{opacity:.35;transform:scale(.92) rotate(0deg)}50%{opacity:1;transform:scale(1.08) rotate(12deg)}}
.ia-ov-msg{font-size:14.5px;font-weight:600;margin-top:14px;color:var(--onix)}
.ia-ov-rodape{font-family:var(--mono);font-size:11px;color:var(--fraco);margin-top:8px}
.ia-ov-seg{color:var(--ouro-antigo)}

/* ---------- abas genericas (Configuracoes etc.) ---------- */
.abas{display:flex;gap:0;border-bottom:1px solid var(--areia);overflow-x:auto;margin:4px 0 22px}
.abas a{padding:11px 16px;font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  white-space:nowrap;color:var(--fraco);border-bottom:2px solid transparent;font-weight:600}
.abas a:hover{text-decoration:none;color:var(--forte)}
.abas a.ativo{color:var(--onix);border-bottom-color:var(--ouro)}

/* ---------- assistente (chat suspenso em todas as paginas) ---------- */
#chat-botao{position:fixed;right:22px;bottom:22px;z-index:70;width:54px;height:54px;
  border-radius:50%;background:var(--onix);border:1px solid var(--ouro);color:var(--champanhe);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(20,17,15,.3);transition:transform .15s,color .15s}
#chat-botao:hover{color:var(--ouro);transform:scale(1.06)}
#chat-botao.aberto{color:var(--ouro)}
.chat-painel[hidden]{display:none}
.chat-painel{position:fixed;right:22px;bottom:88px;z-index:70;
  width:min(400px,calc(100vw - 32px));max-height:min(600px,calc(100vh - 120px));
  background:var(--card);border:1px solid var(--ouro);border-radius:12px;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 18px 50px rgba(20,17,15,.32)}
.chat-topo{display:flex;align-items:center;gap:8px;padding:11px 14px;flex:0 0 auto;
  background:var(--onix);color:var(--champanhe)}
.chat-titulo{font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600}
.chat-acao{background:none;border:none;color:var(--champanhe);opacity:.75;cursor:pointer;
  font-size:13px;padding:2px 6px}
.chat-acao:hover{opacity:1}
#chat-fechar{font-size:19px;line-height:1}
.chat-rolagem{overflow-y:auto;flex:1;min-height:200px;padding:16px 16px 8px;
  display:flex;flex-direction:column;gap:12px}
.chat-vazio{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.chat-sugestao{display:inline-block;border:1px solid var(--linha);background:var(--card);
  color:var(--txt);border-radius:16px;padding:7px 12px;font-size:12.5px;cursor:pointer;
  text-align:left;transition:border-color .15s,color .15s}
.chat-sugestao:hover{border-color:var(--ouro);color:var(--onix)}
.chat-msg{max-width:88%;line-height:1.5;font-size:13.5px;white-space:pre-line;
  overflow-wrap:break-word}
.chat-msg.de-mim{align-self:flex-end;background:var(--ouro-fraco,#F5EDD8);
  border:1px solid var(--champanhe);border-radius:11px 11px 3px 11px;padding:9px 12px}
.chat-msg.da-ia{align-self:flex-start;background:var(--bg2);border:1px solid var(--linha2);
  border-radius:11px 11px 11px 3px;padding:9px 12px}
.chat-form{display:flex;gap:7px;padding:12px 14px;border-top:1px solid var(--linha2);flex:0 0 auto}
.chat-form input{flex:1;min-width:0}
.chat-digitando{display:flex;gap:4px;align-items:center}
.chat-digitando span{width:6px;height:6px;border-radius:50%;background:var(--ouro);
  animation:chat-pulsa 1.2s ease-in-out infinite}
.chat-digitando span:nth-child(2){animation-delay:.2s}
.chat-digitando span:nth-child(3){animation-delay:.4s}
@keyframes chat-pulsa{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@media(max-width:700px){
  #chat-botao{right:14px;bottom:14px;width:48px;height:48px}
  .chat-painel{right:8px;left:8px;bottom:72px;width:auto;max-height:calc(100vh - 90px)}
}

/* ---------- passe mobile: app instalado (TWA) e telas estreitas ---------- */
@media(max-width:700px){
  main{padding:18px 12px 84px}
  h1{font-size:24px}
  .cabeca{flex-wrap:wrap;gap:10px}
  .faixa{padding:10px 12px;font-size:12.5px;margin-bottom:14px;gap:8px !important}
  .grade{gap:10px}
  .g3,.g4{grid-template-columns:1fr 1fr}
  .kpi{padding:12px 13px}
  .kpi .num{font-size:18px}
  .kpi .rot{font-size:9.5px;letter-spacing:.12em}
  .kpi .pe{font-size:11px}
  .card{padding:16px 14px;margin-bottom:14px}
  .lateral nav a{padding:7px 10px;font-size:13px}
  /* Tabelas: rolar de lado em vez de esmagar palavra por palavra. */
  .card:has(table){overflow-x:auto}
  .card table{min-width:540px}
  .rolagem table{min-width:540px}
  th{white-space:nowrap}
}

/* ---------- assistente: cartao de confirmacao de acao ---------- */
.chat-acao{border-color:var(--ouro) !important;max-width:94%}
.chat-acao-resumo{font-weight:600;color:var(--onix);margin-bottom:10px}
.chat-acao-botoes{display:flex;gap:8px}

/* ---------- primeiros passos (painel de escritorio novo) ---------- */
.passo{display:flex;align-items:center;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--linha2)}
.passo:last-child{border-bottom:0}
.passo-marca{flex:0 0 auto;width:20px;height:20px;border-radius:50%;
  border:1px solid var(--linha);display:flex;align-items:center;justify-content:center;
  color:var(--card)}
.passo.feito .passo-marca{background:var(--verde-toga,#2E6B4F);border-color:var(--verde-toga,#2E6B4F);
  color:#fff}
.passo-texto{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.passo-texto b{font-size:14px;color:var(--forte);font-weight:600}
.passo.feito .passo-texto b{color:var(--fraco);font-weight:500}
.passo-texto span{font-size:12.5px;color:var(--fraco);line-height:1.45}
@media(max-width:700px){
  .passo{flex-wrap:wrap}
  .passo .btn{margin-left:32px}
}

/* ---------- console da plataforma (host plataforma.*) ---------- */
.pl-topo{display:flex;align-items:center;gap:12px;background:var(--onix);
  padding:12px 24px;border-bottom:1px solid rgba(176,141,63,.3);position:sticky;top:0;z-index:40}
.pl-marca{font-family:var(--serif);font-size:15px;letter-spacing:.28em;color:var(--marfim);
  padding-left:.28em}
.pl-etiqueta{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--onix);background:var(--ouro);padding:3px 8px}
.pl-quem{font-size:12.5px;color:#A99F8C}
.pl-sair{background:none;border:1px solid rgba(176,141,63,.45);color:var(--champanhe);
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;cursor:pointer}
.pl-sair:hover{background:var(--ouro);color:var(--onix)}
.palco-plataforma{margin-left:0;min-height:100vh;display:flex;flex-direction:column}
.palco-plataforma main{padding:28px 24px 56px}
@media(max-width:700px){
  .pl-topo{padding:10px 14px;gap:8px}
  .pl-marca{font-size:13px;letter-spacing:.2em}
  .pl-quem{display:none}
  .palco-plataforma main{padding:18px 12px 40px}
}

/* ---------------------------------------------------------------------------
   Folha de impressão (item 3.7.f). Imprimir uma tela saía com o menu lateral
   e os botões: relatório é documento, e documento de órgão precisa sair com o
   nome de quem emitiu. `.so-impressao` é o cabeçalho que só existe no papel;
   `.nao-imprime` é o que não faz sentido nele (filtros, botões, custo de IA).
   --------------------------------------------------------------------------- */
.so-impressao{display:none}
@media print{
  :root{--card:#fff;--bg:#fff;--bg2:#fff;--txt:#111;--forte:#000;--fraco:#555;
         --linha:#bbb;--linha2:#ddd}
  html,body{background:#fff;color:#111}
  .lateral,.lateral-pe,.rodape,.nao-imprime,.busca,.abas,.abas-proc,.filtros,
  .btn,button,form.inline,.assistente,.flash{display:none !important}
  .conteudo,main{margin:0 !important;padding:0 !important;max-width:none}
  .principal{display:block}
  .card{break-inside:avoid;border:1px solid #ddd;box-shadow:none;margin:0 0 12px}
  .grade.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .kpi{border:1px solid #ddd}
  .so-impressao{display:block;margin:0 0 14px;padding:0 0 10px;border-bottom:2px solid #111}
  .so-impressao h2{margin:0;font-size:18px}
  .so-impressao p{margin:4px 0 0;font-size:12px;color:#444}
  a{color:#111;text-decoration:none}
  .rolagem{overflow:visible}
  table{width:100%}
}

/* Armadilha para robô no cadastro (043): fora da tela, não da árvore — robô
   que ignora display:none ainda preenche este campo. */
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* Menu do console da plataforma (043) */
.pl-nav{display:flex;gap:4px;margin-left:16px}
.pl-nav a{color:#A99F8C;font-size:12.5px;padding:5px 10px;border-radius:var(--raio);text-decoration:none}
.pl-nav a:hover{color:var(--marfim);background:rgba(255,255,255,.06)}
@media (max-width:720px){.pl-nav{margin-left:4px;gap:0}.pl-nav a{padding:5px 6px;font-size:11.5px}}
