/* ARZ — sistema de prazos e honorários
   Paleta tirada do logotipo: bronze sobre papel neutro, tinta café-escuro. */
:root {
  --fundo: #f2f2f0; --papel: #ffffff; --tinta: #26211d; --mudo: #6f6a65; --linha: #e2dfdb; --linha-forte: #cfc9c2;
  --bronze: #8a6240; --bronze-escuro: #6b4a2f; --bronze-claro: #c39a6b; --bronze-fundo: #f6efe7;
  --vermelho: #b42318; --vermelho-f: #fdecea; --laranja: #a94a05; --laranja-f: #fdf1e3;
  --ambar: #8a6d00; --verde: #2e7d4f; --verde-f: #e8f4ec;
  --raio: 8px; --lateral: 248px;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #181614; --papel: #211e1b; --tinta: #ece7e1; --mudo: #a39b93; --linha: #34302b; --linha-forte: #4a443d;
    --bronze: #c9a074; --bronze-escuro: #e0bd94; --bronze-claro: #8a6240; --bronze-fundo: #2c241c;
    --vermelho: #f97066; --vermelho-f: #3a1b19; --laranja: #fdb022; --laranja-f: #3a2a12;
    --ambar: #fec84b; --verde: #5fcf8f; --verde-f: #15301f;
  }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fundo); color: var(--tinta); font-family: var(--sans); line-height: 1.45; }
a { color: var(--bronze); text-underline-offset: 2px; }
a:hover { color: var(--bronze-escuro); }
:focus-visible { outline: 2px solid var(--bronze); outline-offset: 2px; }
h1 { font-family: var(--serif); font-weight: 600; font-size: 1.75rem; line-height: 1.2; margin: 0 0 .25rem; letter-spacing: -.005em; }
h2 { font-family: var(--serif); font-weight: 600; font-size: 1.12rem; margin: 1.6rem 0 .6rem; color: var(--tinta); }
.cartao h2 { margin-top: 0; }
h2 small { font-family: var(--sans); background: var(--fundo); border: 1px solid var(--linha); color: var(--mudo); border-radius: 99px; padding: 0 .55em; font-size: .72em; vertical-align: 2px; font-weight: 600; }
hr { border: 0; border-top: 1px solid var(--linha); margin: 1rem 0; }
code { background: var(--fundo); padding: .05em .3em; border-radius: 4px; font-size: .9em; }

/* ---------------------------------------------------------------- estrutura: menu lateral + conteúdo */
.app { display: grid; grid-template-columns: var(--lateral) minmax(0, 1fr); min-height: 100vh; }
.lateral { background: var(--papel); border-right: 1px solid var(--linha); padding: 1.1rem .8rem 1rem; position: sticky; top: 0;
  height: 100vh; overflow-y: auto; display: flex; flex-direction: column; }
.lateral .logo { display: block; padding: .2rem .5rem 1rem; border-bottom: 1px solid var(--linha); margin-bottom: .8rem; }
.lateral .logo img { width: 100%; max-width: 200px; height: auto; display: block; }
.lateral .logo small { display: block; color: var(--mudo); font-size: .72rem; margin-top: .4rem; letter-spacing: .02em; }
.lateral nav { display: flex; flex-direction: column; gap: .05rem; }
.lateral .grupo { font-size: .72rem; color: var(--mudo); margin: .9rem .6rem .25rem; font-weight: 600; }
.lateral nav a { display: flex; align-items: center; gap: .6rem; padding: .48rem .65rem; border-radius: 6px; color: var(--tinta);
  text-decoration: none; border-left: 3px solid transparent; }
.lateral nav a svg { width: 18px; height: 18px; flex: none; stroke: var(--mudo); }
.lateral nav a:hover { background: var(--fundo); }
.lateral nav a.ativo { background: var(--bronze-fundo); border-left-color: var(--bronze); color: var(--bronze-escuro); font-weight: 600; }
.lateral nav a.ativo svg { stroke: var(--bronze); }
.lateral .badge { margin-left: auto; }
.lateral .quem { margin-top: auto; padding: .8rem .6rem 0; border-top: 1px solid var(--linha); font-size: .88rem; }
.lateral .quem b { display: block; }
.lateral .quem a { color: var(--mudo); font-size: .82rem; }
.badge { background: var(--laranja); color: #fff; border-radius: 99px; padding: 0 .5em; font-size: .75em; font-weight: 700; line-height: 1.6; }
main { padding: 1.6rem 2rem 3rem; max-width: 1240px; width: 100%; }

/* topo para celular */
.topo-movel { display: none; }
@media (max-width: 900px) {
  .app { display: block; }
  .lateral { display: none; }
  .topo-movel { display: block; background: var(--papel); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 20; }
  .topo-movel summary { list-style: none; display: flex; align-items: center; justify-content: space-between; padding: .6rem 16px; cursor: pointer; }
  .topo-movel summary::-webkit-details-marker { display: none; }
  .topo-movel summary img { height: 30px; }
  .topo-movel summary span { font-size: .9rem; color: var(--mudo); }
  .topo-movel[open] .lateral { display: flex; position: static; height: auto; border: 0; padding-top: 0; }
  main { padding: 1.1rem 16px 3rem; }
}

/* ---------------------------------------------------------------- cabeçalho de página */
.cabeca { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.cabeca .sub, p.sub { color: var(--mudo); margin: .15rem 0 0; max-width: 70ch; }
.botoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; } .botoes form { margin: 0; }

/* ---------------------------------------------------------------- blocos */
.cartao { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1rem 1.15rem; margin-bottom: 1rem; }
.cartao.destaque { border-left: 3px solid var(--bronze); }
.estreito { max-width: 540px; }
.grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.grade > * { min-width: 0; }
@media (max-width: 980px) { .grade { grid-template-columns: 1fr; } }
.aviso { background: var(--bronze-fundo); border: 1px solid var(--linha); border-left: 3px solid var(--bronze); padding: .7rem 1rem; border-radius: var(--raio); margin-bottom: 1rem; }
.erro { background: var(--vermelho-f); color: var(--vermelho); padding: .6rem .8rem; border-radius: 6px; margin-bottom: .8rem; }
.erro-txt { color: var(--vermelho); } .ok { color: var(--verde); }
.mudo { color: var(--mudo); } .vazio { color: var(--mudo); padding: .5rem 0; }
.rodape { color: var(--mudo); font-size: .85rem; margin-top: 2rem; }
.explica ol { margin: .5rem 0; padding-left: 1.3rem; } .explica li { margin: .25rem 0; }

/* ---------------------------------------------------------------- painel: régua dos próximos dias */
.saudacao { margin-bottom: 1.2rem; }
.saudacao h1 { font-size: 2rem; }
.regua { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: .5rem; margin: 0 0 1.4rem; }
.regua a { display: block; text-decoration: none; color: var(--tinta); background: var(--papel); border: 1px solid var(--linha);
  border-radius: var(--raio); padding: .55rem .7rem .6rem; position: relative; }
.regua a:hover { border-color: var(--bronze-claro); }
.regua small { display: block; color: var(--mudo); font-size: .78rem; }
.regua b { display: block; font-family: var(--serif); font-size: 1.7rem; line-height: 1.1; margin-top: .1rem; }
.regua b.zero { color: var(--linha-forte); }
.regua a.hoje { border-color: var(--bronze); box-shadow: inset 0 0 0 1px var(--bronze); }
.regua a.hoje small { color: var(--bronze-escuro); font-weight: 600; }
.regua a.atrasado { border-color: var(--laranja); background: var(--laranja-f); }
.regua a.atrasado b { color: var(--laranja); }
.regua a.fatal { border-color: var(--vermelho); background: var(--vermelho-f); }
.regua a.fatal b { color: var(--vermelho); }
.regua a.sel { outline: 2px solid var(--bronze); outline-offset: 1px; }

.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin: .4rem 0 1.2rem; }
.num { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: .7rem .9rem; text-decoration: none; color: var(--tinta); }
.num b { display: block; font-size: 1.55rem; font-family: var(--serif); line-height: 1.15; }
.num span { color: var(--mudo); font-size: .85rem; }
.num.alerta { border-color: var(--vermelho); background: var(--vermelho-f); } .num.alerta b { color: var(--vermelho); }
.num.atencao { border-color: var(--laranja); background: var(--laranja-f); } .num.atencao b { color: var(--laranja); }
.num.bom b { color: var(--verde); }

/* ---------------------------------------------------------------- linha de prazo */
.prazo { display: flex; align-items: center; gap: 1rem; background: var(--papel); border: 1px solid var(--linha); border-left: 4px solid var(--linha-forte);
  border-radius: var(--raio); padding: .6rem .9rem; margin-bottom: .45rem; text-decoration: none; color: var(--tinta); }
.prazo:hover { border-color: var(--bronze-claro); border-left-color: var(--bronze); }
.prazo.vencido { border-left-color: var(--laranja); } .prazo.vencido .data strong { color: var(--laranja); }
.prazo.hoje { border-left-color: var(--bronze); } .prazo.hoje .data strong { color: var(--bronze); }
.prazo.breve { border-left-color: var(--bronze-claro); }
.prazo.fatal { border-left-color: var(--vermelho); background: var(--vermelho-f); } .prazo.fatal .data strong { color: var(--vermelho); }
.prazo .data { width: 3.6rem; text-align: center; flex: none; }
.prazo .data strong { display: block; font-size: 1.2rem; font-family: var(--serif); }
.prazo .data small { color: var(--mudo); font-size: .78rem; }
.prazo .corpo { flex: 1; min-width: 0; }
.prazo .desc { font-weight: 600; }
.prazo .sub { color: var(--mudo); font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prazo .resp { font-size: .86rem; text-align: right; flex: none; }
.apoio { display: block; color: var(--mudo); font-size: .8rem; }
.tag { display: inline-block; font-size: .72rem; font-weight: 600; padding: .05em .5em; border-radius: 99px; background: var(--bronze-fundo); color: var(--bronze-escuro); vertical-align: middle; }
.tag.conf { background: var(--laranja-f); color: var(--laranja); }
.tag.fatal-tag { background: var(--fundo); color: var(--mudo); border: 1px solid var(--linha); }
.tag.perigo-tag { background: var(--vermelho); color: #fff; }
.tag.ok-tag { background: var(--verde-f); color: var(--verde); }
.chip { display: inline-flex; align-items: center; gap: .2rem; background: var(--bronze-fundo); border-radius: 99px; padding: .1em .2em .1em .65em; margin: .1rem; }
.venc { text-align: right; } .venc b { display: block; font-family: var(--serif); font-size: 1.6rem; }
.venc small { color: var(--mudo); } .venc.vencido b { color: var(--vermelho); } .venc.hoje b { color: var(--bronze); }
.venc-duplo { display: flex; gap: 1.6rem; align-items: flex-start; }
.venc.secundario b { font-size: 1.15rem; color: var(--mudo); }

/* ---------------------------------------------------------------- formulários */
label { display: block; font-size: .85rem; color: var(--mudo); margin-bottom: .5rem; }
input, select, textarea { display: block; width: 100%; margin-top: .2rem; font: inherit; color: var(--tinta); background: var(--papel);
  border: 1px solid var(--linha-forte); border-radius: 6px; padding: .45rem .55rem; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--bronze); outline-offset: -1px; border-color: var(--bronze); }
input[type=checkbox], input[type=radio] { accent-color: var(--bronze); }
label.radio { display: flex; align-items: center; gap: .5rem; color: var(--tinta); }
label.radio input { width: auto; margin: 0; }
textarea { resize: vertical; }
button, .botao { display: inline-flex; align-items: center; gap: .35rem; font: inherit; font-weight: 600; background: var(--bronze); color: #fff;
  border: 1px solid var(--bronze); border-radius: 6px; padding: .45rem .95rem; cursor: pointer; text-decoration: none; white-space: nowrap; }
button:hover, .botao:hover { background: var(--bronze-escuro); border-color: var(--bronze-escuro); color: #fff; }
@media (prefers-color-scheme: dark) { button, .botao { color: #1c1813; } button:hover, .botao:hover { color: #1c1813; } }
button.sec, .botao.sec { background: var(--papel); color: var(--tinta); border-color: var(--linha-forte); }
button.sec:hover, .botao.sec:hover { border-color: var(--bronze); color: var(--bronze-escuro); background: var(--papel); }
button.perigo { background: transparent; color: var(--vermelho); border-color: var(--linha); }
button.perigo:hover { background: var(--vermelho-f); color: var(--vermelho); border-color: var(--vermelho); }
button[disabled] { opacity: .5; cursor: not-allowed; }
button.mini, .mini { font-size: .8rem; padding: .2rem .55rem; }
a.mini:not(.botao) { padding: 0; }
button.x { background: none; border: 0; color: var(--mudo); padding: 0 .3rem; font-size: 1rem; }
form.inline { display: inline; margin: 0; }
.acoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin-top: .3rem; }
.linha { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; } .linha input, .linha select { margin: 0; width: auto; flex: 1; }
.discreto { margin-top: 1.5rem; opacity: .9; }
.empilha > * { margin-bottom: .6rem; }
.linha-form { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; }
.linha-form label { flex: 1 1 170px; margin: 0; }
.form-prazo { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; }
.form-prazo label { flex: 1 1 140px; margin: 0; } .form-prazo label.largo { flex: 2 1 260px; } .form-prazo label.curto { flex: 0 1 90px; }
.form-prazo .acoes, .form-prazo .obs { flex-basis: 100%; }
.obs { color: var(--mudo); font-size: .85rem; margin: 0; }
.atribuir { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .6rem; align-items: end; margin-top: .6rem; }
.atribuir label { margin: 0; } .atribuir .acoes { grid-column: 1 / -1; }
.filtro { display: flex; gap: .4rem; align-items: flex-end; flex-wrap: wrap; } .filtro input, .filtro select { margin: 0; min-width: 200px; }
fieldset { border: 0; padding: 0; margin: 0 0 .6rem; }

/* ---------------------------------------------------------------- publicações */
.pub header { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: baseline; margin-bottom: .4rem; }
details summary { cursor: pointer; }
.pub details summary { color: var(--tinta); font-size: .92rem; }
.texto { white-space: pre-wrap; font-size: .9rem; max-height: 420px; overflow: auto; background: var(--fundo); border-radius: 6px; padding: .7rem .8rem; margin-top: .4rem; }

/* ---------------------------------------------------------------- tabelas */
.tabela { width: 100%; border-collapse: collapse; background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; font-size: .9rem; }
.tabela th { text-align: left; font-weight: 600; color: var(--mudo); font-size: .8rem; background: var(--fundo); }
.tabela th, .tabela td { padding: .55rem .65rem; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela td input, .tabela td select { margin: 0; padding: .3rem .4rem; }
.tabela tr.clicavel { cursor: pointer; } .tabela tr.clicavel:hover td { background: var(--bronze-fundo); }
.tabela tr.apagado td { color: var(--mudo); }
.tabela tfoot th { background: var(--fundo); color: var(--tinta); font-size: .85rem; }
.corta { max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nowrap { white-space: nowrap; }
.num-col { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .tabela { display: block; overflow-x: auto; } }
ul.simples, ul.hist { padding-left: 1.1rem; margin: .3rem 0; } ul.hist li, ul.simples li { margin: .25rem 0; font-size: .9rem; }

/* ---------------------------------------------------------------- abas internas */
.submenu { display: flex; gap: .25rem; flex-wrap: wrap; border-bottom: 1px solid var(--linha); margin: 0 0 1.1rem; }
.submenu a { padding: .5rem .85rem; text-decoration: none; color: var(--mudo); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.submenu a.ativo, .submenu a:hover { color: var(--tinta); border-bottom-color: var(--bronze); }
.submenu a.dir { margin-left: auto; }

/* ---------------------------------------------------------------- honorários */
.barras { display: grid; grid-template-columns: repeat(12, 1fr); gap: .4rem; height: 180px; align-items: end; }
.coluna { display: flex; flex-direction: column; align-items: center; height: 100%; }
.coluna .pilha { flex: 1; width: 100%; max-width: 38px; display: flex; flex-direction: column; justify-content: flex-end; }
.coluna .recebido { background: var(--bronze); border-radius: 3px 3px 0 0; }
.coluna .previsto { background: var(--bronze-claro); opacity: .45; border-radius: 3px 3px 0 0; }
.coluna .recebido + .previsto, .coluna .previsto + .recebido { border-radius: 0; }
.coluna small { color: var(--mudo); font-size: .72rem; margin-top: .3rem; white-space: nowrap; }
.coluna.atual small { color: var(--tinta); font-weight: 700; }
.legenda { color: var(--mudo); font-size: .82rem; margin: .6rem 0 0; }
.sw { display: inline-block; width: .8em; height: .8em; border-radius: 2px; vertical-align: -1px; margin-left: .6rem; }
.sw.recebido { background: var(--bronze); } .sw.previsto { background: var(--bronze-claro); opacity: .45; }
.bloco-hon { border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: .7rem; }
.bloco-hon > label.radio { padding: .7rem .9rem; margin: 0; font-weight: 600; cursor: pointer; }
.bloco-hon .dentro { padding: 0 .9rem .8rem; display: none; }
.bloco-hon.on { border-color: var(--bronze); background: var(--bronze-fundo); }
.bloco-hon.on .dentro { display: block; }
.natureza h3 { font-family: var(--serif); font-size: 1rem; margin: 1rem 0 .4rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.natureza h3 span { font-family: var(--sans); font-size: .85rem; color: var(--mudo); font-weight: 400; }

details.acao { display: inline-block; position: relative; }
details.acao > summary { list-style: none; cursor: pointer; display: inline-block; color: var(--bronze); }
details.acao > summary::-webkit-details-marker { display: none; }
details.acao .pop { position: absolute; right: 0; z-index: 5; width: 270px; background: var(--papel); border: 1px solid var(--linha);
  border-radius: var(--raio); padding: .8rem; box-shadow: 0 10px 28px rgba(38, 33, 29, .14); white-space: normal; }

/* ---------------------------------------------------------------- telas diversas */
.niveis td:first-child { white-space: nowrap; font-weight: 600; }
.tabela-proc textarea { margin: 0; padding: .3rem .4rem; font-size: .85rem; min-width: 170px; }
.discreto-in { display: inline-block !important; width: auto !important; max-width: 150px; font-size: .78rem; padding: .15rem .35rem !important;
  margin: .25rem .2rem 0 0 !important; color: var(--mudo); border-color: transparent !important; background: transparent !important; }
.discreto-in:hover, .discreto-in:focus { border-color: var(--linha) !important; background: var(--papel) !important; }
.passos { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .8rem; margin: .6rem 0; }
.passo { display: flex; gap: .7rem; align-items: flex-start; background: var(--fundo); border-radius: var(--raio); padding: .75rem .85rem; }
.passo > b { flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--bronze); color: #fff; display: grid; place-items: center; font-family: var(--serif); }
.regras td input, .regras td select { margin: 0; }
.nova-regra { border-left: 3px solid var(--bronze); margin-top: .8rem; }

/* ---------------------------------------------------------------- login */
.tela-login { min-height: 100vh; display: grid; place-items: center; padding: 16px; background: var(--fundo); }
.login { width: 100%; max-width: 380px; padding: 1.8rem 1.6rem; }
.login img { width: 100%; max-width: 280px; display: block; margin: 0 auto 1.2rem; }
.login button { width: 100%; justify-content: center; margin-top: .4rem; }

/* ---------------------------------------------------------------- impressão */
@media print {
  .lateral, .topo-movel, .nao-imprime, .botoes, .submenu, form.filtro { display: none !important; }
  .app { display: block; } main { padding: 0; max-width: none; }
  body { background: #fff; color: #000; }
  .tabela { border: 0; font-size: 9pt; } .tabela th { background: #eee !important; }
  .cartao { border: 0; padding: 0; }
  @page { size: A4 landscape; margin: 12mm; }
  tr { page-break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ---------------------------------------------------------------- correções de alinhamento e largura */
main { min-width: 0; }
.rolagem { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1rem; border-radius: var(--raio); }
.rolagem > .tabela { margin-bottom: 0; }
.tabela th.num-col, .tabela td.num-col { text-align: right; }
.tabela td { overflow-wrap: anywhere; }
.tabela td.nowrap, .tabela td.num-col { overflow-wrap: normal; }
.lateral .logo { text-decoration: none; }
details.acao > summary.botao { color: #fff; }
details.acao > summary.botao:hover { color: #fff; }
@media (prefers-color-scheme: dark) { details.acao > summary.botao, details.acao > summary.botao:hover { color: #1c1813; } }
.barras { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.coluna small { overflow: hidden; text-overflow: clip; max-width: 100%; }
@media (max-width: 600px) { .coluna small { font-size: .6rem; } .barras { gap: .2rem; } }
.duas-linhas small { display: block; color: var(--mudo); font-size: .8rem; }
details.acao .pop.pop-larga { width: 340px; max-height: 70vh; overflow-y: auto; }
td details.acao, td > .botao.mini { vertical-align: middle; }
/* janelinhas (Receber, Editar…) abrem no centro da tela, por cima de tudo */
details.acao[open] > summary::before { content: ""; position: fixed; inset: 0; background: rgba(38, 33, 29, .35); z-index: 40; cursor: default; }
details.acao[open] .pop { position: fixed; top: 50%; left: 50%; right: auto; transform: translate(-50%, -50%); z-index: 41;
  width: min(380px, calc(100vw - 32px)); max-height: 85vh; overflow-y: auto; }
details.acao[open] .pop.pop-larga { width: min(460px, calc(100vw - 32px)); }
details.acao > summary.botao.sec, details.acao > summary.botao.sec:hover { color: var(--tinta); }
.tabela-parcelas { table-layout: fixed; min-width: 640px; }
.regua small.erro-txt { color: var(--vermelho); font-weight: 600; }
.cabeca .filtro { flex-wrap: nowrap; align-items: center; }
.cabeca .filtro input { min-width: 240px; }

/* publicações repetidas */
.submenu .contador { display:inline-block; min-width:1.3em; padding:0 .35em; border-radius:9px; background:var(--laranja-f); color:var(--laranja); font-size:.75rem; font-weight:600; text-align:center; }
.alerta-repeticao { border-left:4px solid var(--laranja); background:var(--laranja-f); }
.alerta-repeticao.ok { border-left-color: var(--verde); background: var(--verde-f); }
.ficha { display:grid; grid-template-columns: max-content 1fr; gap:.2rem .9rem; margin:.4rem 0 .8rem; font-size:.9rem; }
.ficha dt { color: var(--mudo); }
.ficha dd { margin:0; }
.compara { display:grid; grid-template-columns: 1fr 1fr; gap:1rem; }
.compara > section { min-width:0; }
.compara .texto { max-height: 420px; overflow:auto; }
.compara mark { background:var(--laranja-f); color:inherit; outline:1px solid var(--laranja); padding:0 .1em; border-radius:2px; }
@media (max-width: 900px) { .compara { grid-template-columns: 1fr; } }

/* filtro de publicações por advogado e datas */
.filtro-pubs summary { cursor: pointer; }
.filtro-pubs form { margin-top: .8rem; display: grid; gap: .7rem; }
.fp-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; }
.fp-rotulo { font-size: .8rem; color: var(--mudo); min-width: 7.5rem; }
.fp-linha select, .fp-linha input[type=date] { width: auto; max-width: 100%; }
.fp-data { display: flex; align-items: center; gap: .35rem; font-size: .88rem; }
.pilulas { display: flex; flex-wrap: wrap; gap: .35rem; }
.pilula { position: relative; cursor: pointer; }
.pilula input { position: absolute; opacity: 0; pointer-events: none; }
.pilula span { display: inline-block; padding: .28rem .7rem; border: 1px solid var(--linha); border-radius: 999px; font-size: .86rem; background: var(--papel); }
.pilula input:checked + span { background: var(--bronze); border-color: var(--bronze); color: #fff; }
.pilula input:focus-visible + span { outline: 2px solid var(--bronze); outline-offset: 2px; }
.fp-botoes .mudo { font-size: .8rem; }
.socios { display: inline-flex; flex-wrap: wrap; gap: .25rem; }
.tag.adv-tag { background: var(--bronze-fundo); color: var(--bronze-escuro); }
.tag.parte-tag { background: var(--vermelho-f); color: var(--vermelho); }
@media (max-width: 640px) { .fp-rotulo { min-width: 100%; } .fp-linha select { width: 100%; } .fp-linha .radio { white-space: normal; } }

/* configurações e auditoria */
.grade-config { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1.1rem; align-items: start; }
@media (max-width: 1000px) { .grade-config { grid-template-columns: 1fr; } }
.ajuda { font-size: .8rem; color: var(--mudo); margin: -.35rem 0 .3rem; }
.status-lista, .links-config { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .35rem; font-size: .9rem; }
.status-lista .ok { color: var(--verde); }
.tabela-auditoria { table-layout: fixed; }
.tabela-auditoria td { overflow-wrap: anywhere; }
.mudancas { list-style: none; margin: .25rem 0; padding: 0; font-size: .84rem; display: grid; gap: .1rem; }
.mudancas del { color: var(--vermelho); text-decoration: line-through; }
.mudancas ins { color: var(--verde); text-decoration: none; font-weight: 600; }
.op-inclusao { color: var(--verde); } .op-alteracao { color: var(--bronze); } .op-exclusao { color: var(--vermelho); }
@media (max-width: 700px) {
  .tabela-auditoria colgroup { display: none; }
  .tabela-auditoria, .tabela-auditoria tbody, .tabela-auditoria tr, .tabela-auditoria td { display: block; width: auto; }
  .tabela-auditoria thead { display: none; }
  .tabela-auditoria tr { border-bottom: 1px solid var(--linha); padding: .5rem 0; }
  .tabela-auditoria td { border: 0; padding: .15rem .6rem; }
}
.mini-link { margin: -.4rem 0 .5rem; font-size: .82rem; }
.campos summary { cursor: pointer; font-size: .82rem; color: var(--bronze); }
@media print { details.campos > ul { display: grid; } }

/* ---------- produtividade: gráficos (paleta validada: status fixos + série 1; modo escuro com passos próprios) */
:root {
  --viz-superficie: #fcfcfb; --viz-tinta-2: #52514e; --viz-grade: #e7e5e0;
  --viz-s1: #2a78d6; --viz-ok: #0ca30c; --viz-alerta: #fab219; --viz-critico: #d03b3b;
}
@media (prefers-color-scheme: dark) {
  :root { --viz-superficie: #1a1a19; --viz-tinta-2: #c3c2b7; --viz-grade: #34322f; --viz-s1: #3987e5; }
}
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem; margin: 0 0 1rem; }
.kpi { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: .8rem 1rem; display: grid; gap: .15rem; }
.kpi small { color: var(--mudo); font-size: .8rem; }
.kpi b { font-family: var(--serif); font-size: 1.9rem; font-weight: 600; line-height: 1.1; }
.kpi span { font-size: .8rem; }
.grade-graficos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.grade-graficos .largo { grid-column: 1 / -1; }
@media (max-width: 900px) { .grade-graficos { grid-template-columns: 1fr; } }
.viz-svg { width: 100%; height: auto; display: block; font-family: var(--sans); }
.viz-grade { stroke: var(--viz-grade); stroke-width: 1; }
.viz-base { stroke: var(--linha-forte); stroke-width: 1; }
.viz-rotulo { fill: var(--tinta); font-size: 13px; }
.viz-valor { fill: var(--tinta); font-size: 12px; font-weight: 600; }
.viz-eixo { fill: var(--viz-tinta-2); font-size: 11px; }
.viz-ok { fill: var(--viz-ok); } .viz-alerta { fill: var(--viz-alerta); } .viz-critico { fill: var(--viz-critico); } .viz-s1 { fill: var(--viz-s1); }
.viz-svg rect:hover { opacity: .8; }
.viz-linha { fill: none; stroke: var(--viz-s1); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.viz-ponto { fill: var(--viz-s1); stroke: var(--papel); stroke-width: 2; }
.viz-ponto:hover { r: 6; }
.legenda { list-style: none; padding: 0; margin: .3rem 0 .6rem; display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .84rem; color: var(--tinta); }
.legenda li { display: inline-flex; align-items: center; gap: .35rem; }
.sw { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.viz-ok-bg { background: var(--viz-ok); } .viz-alerta-bg { background: var(--viz-alerta); } .viz-critico-bg { background: var(--viz-critico); } .viz-s1-bg { background: var(--viz-s1); }
.atalhos-periodo { display: flex; flex-wrap: wrap; gap: .6rem; font-size: .86rem; align-self: center; }
.tabela-prod td:first-child { white-space: normal; }
.tabela-prod .sub-linha td:first-child { padding-left: 1.4rem; color: var(--mudo); }
@media print { .viz, .kpi { break-inside: avoid; } .grade-graficos { grid-template-columns: 1fr 1fr; } }
.viz-rolagem { overflow-x: auto; }
@media (max-width: 700px) { .viz-rolagem .viz-svg { min-width: 620px; } }
.grade-graficos > * { min-width: 0; }
[hidden] { display: none !important; }
.regras-senha { list-style: none; padding: 0; margin: -.2rem 0 .3rem; display: grid; gap: .15rem; font-size: .85rem; color: var(--mudo); }
.regras-senha li::before { content: "○ "; }
.regras-senha li.ok { color: var(--verde); }
.regras-senha li.ok::before { content: "✓ "; }

/* andamento da busca no DJEN feita pelo navegador */
.djen-status { position: fixed; right: 16px; bottom: 16px; max-width: min(420px, calc(100vw - 32px)); z-index: 50;
  background: var(--papel); color: var(--tinta); border: 1px solid var(--linha); border-left: 3px solid var(--bronze);
  border-radius: var(--raio); padding: .6rem .9rem; font-size: .88rem; box-shadow: 0 6px 24px rgba(0,0,0,.12); }
@media print { .djen-status { display: none !important; } }

/* Processos: classe/comarca longas quebram linha; partes nunca ficam espremidas */
.tabela-proc { table-layout: auto; }
.tabela-proc td.col-proc { min-width: 210px; max-width: 280px; white-space: normal; }
.tabela-proc td.col-proc small { overflow-wrap: anywhere; }
.tabela-proc td.col-partes { min-width: 240px; max-width: 420px; }
