/* WFtec — Reclamatória Trabalhista
   Usa as variáveis de tema do app.css, então acompanha o modo escuro. */

/* ---------------------------------------------------------- área de upload */

.rt-dropzone{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  border:1.5px dashed var(--line-strong); border-radius:12px;
  background:var(--surface-2); padding:24px; margin-bottom:16px;
  transition:border-color .15s, background .15s;
}
.rt-dropzone.rt-drop-ativo{ border-color:var(--accent); background:var(--accent-soft); }
.rt-drop-ico{ font-size:30px; line-height:1; }
.rt-drop-txt{ display:flex; flex-direction:column; gap:4px; flex:1 1 280px; }
.rt-drop-txt strong{ font-family:var(--f-display); font-size:15px; color:var(--ink); }
.rt-drop-txt span{ font-size:13px; color:var(--muted); }

/* ------------------------------------------------------------- fila e ação */

.rt-fila{ display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.rt-arq{
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--line); border-radius:8px;
  background:var(--surface); padding:8px 12px; font-size:13.5px;
}
.rt-arq-nome{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rt-arq-tam{ color:var(--muted); font-family:var(--f-mono); font-size:12px; }
.rt-arq-x{
  border:0; background:transparent; cursor:pointer;
  color:var(--muted); font-size:20px; line-height:1; padding:0 4px;
}
.rt-arq-x:hover{ color:var(--gone); }
.rt-acao{ margin-bottom:20px; }
.rt-btn-analisar{ font-size:14.5px; padding:10px 20px; }

/* ----------------------------------------------------------- em andamento */

.rt-progresso{
  display:flex; align-items:center; gap:16px;
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:10px; background:var(--surface); padding:18px 20px; margin-bottom:20px;
}
.rt-progresso strong{ display:block; font-family:var(--f-display); font-size:14.5px; margin-bottom:3px; }
.rt-progresso span{ font-size:13px; color:var(--muted); }
.rt-spin{
  width:26px; height:26px; flex:none; border-radius:50%;
  border:3px solid var(--line); border-top-color:var(--accent);
  animation:rt-gira .8s linear infinite;
}
@keyframes rt-gira{ to{ transform:rotate(360deg); } }

/* -------------------------------------------------------------- resultado */

.rt-res-topo{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:16px; flex-wrap:wrap; margin:4px 0 18px;
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.rt-res-topo h2{ font-family:var(--f-display); font-size:18px; margin:0 0 6px; }
.rt-resumo{ margin:0; font-size:13.5px; color:var(--muted); max-width:70ch; line-height:1.55; }
.rt-res-acoes{ display:flex; gap:8px; flex-wrap:wrap; }

.rt-alertas{ display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.alerta{
  border:1px solid var(--line); border-left-width:3px; border-radius:8px;
  padding:11px 14px; font-size:13.5px; line-height:1.5;
}
.alerta strong{ font-family:var(--f-mono); font-size:11px; letter-spacing:.04em; margin-right:8px; }
.alerta.critico{ border-left-color:var(--gone); background:var(--gone-soft); color:var(--gone); }
.alerta.conferencia{ border-left-color:var(--accent); background:var(--accent-soft); color:var(--accent-text); }
.alerta.ok{ border-left-color:var(--new); background:var(--new-soft); color:var(--new); }

.rt-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px; margin-bottom:14px;
}
.rt-bloco{
  border:1px solid var(--line); border-radius:10px;
  background:var(--surface); padding:16px 18px;
}
.rt-bloco.rt-full{ grid-column:1/-1; margin-bottom:14px; }
.rt-bloco h3{
  font-family:var(--f-display); font-size:12px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted); margin:0 0 12px;
}
.rt-cont{
  font-family:var(--f-mono); font-size:11px; background:var(--same-soft);
  color:var(--muted); border-radius:10px; padding:1px 7px; margin-left:6px; letter-spacing:0;
}

/* ------------------------------------------------------------ campo/valor */

.rt-campo{
  display:flex; justify-content:space-between; gap:12px;
  padding:7px 0; border-bottom:1px solid var(--line); font-size:13.5px;
}
.rt-campo:last-child{ border-bottom:0; }
.rt-rotulo{ color:var(--muted); flex:none; }
.rt-valor{ text-align:right; font-weight:500; }
/* Campo sem respaldo no documento: fica visível, não desaparece. */
.rt-campo.rt-vazio .rt-valor{ font-weight:400; font-style:italic; color:var(--accent-text); }
.rt-na{ color:var(--muted); font-style:italic; }
.rt-vazio-bloco{ margin:0; font-size:13.5px; color:var(--muted); font-style:italic; }

.rt-fonte{
  display:inline-block; margin-left:8px; cursor:help;
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.03em;
  color:var(--accent-text); background:var(--accent-soft);
  border-radius:4px; padding:1px 5px; vertical-align:1px;
}

/* ---------------------------------------------------------------- tabelas */

.rt-tab{ width:100%; border-collapse:collapse; font-size:13px; }
.rt-tab th, .rt-tab td{
  text-align:left; padding:8px 10px; border-bottom:1px solid var(--line);
}
.rt-tab thead th{
  font-family:var(--f-mono); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted); border-bottom:1px solid var(--line-strong);
}
.rt-tab td.rt-num, .rt-tab th.rt-num{ text-align:right; font-family:var(--f-mono); font-size:12.5px; }
.rt-tab tfoot td{
  font-weight:600; border-top:1px solid var(--line-strong); border-bottom:0;
  background:var(--surface-2);
}
.rt-tab-hist tbody tr{ cursor:pointer; }
.rt-tab-hist tbody tr:hover{ background:var(--surface-2); }
.rt-tag-ok{
  font-family:var(--f-mono); font-size:10.5px; color:var(--new);
  background:var(--new-soft); border-radius:4px; padding:2px 7px;
}

.rt-historico{ margin-top:28px; }
.rt-historico h3{
  font-family:var(--f-display); font-size:12px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted); margin:0 0 10px;
}
.rt-nota{ font-size:12.5px; color:var(--muted); margin:14px 0 0; line-height:1.55; }

/* ----------------------------------------------------------------- modais */

.rt-modal{
  position:fixed; inset:0; z-index:1000; display:flex;
  align-items:center; justify-content:center; padding:24px;
  background:rgba(38,38,38,.55);
}
.rt-modal-box{
  position:relative; background:var(--surface); border-radius:12px;
  box-shadow:var(--shadow); padding:24px 26px;
  max-width:760px; width:100%; max-height:86vh; overflow:auto;
}
.rt-modal-box h2{ font-family:var(--f-display); font-size:16px; margin:0 0 14px; }
.rt-modal-x{
  position:absolute; top:12px; right:14px; border:0; background:transparent;
  font-size:24px; line-height:1; color:var(--muted); cursor:pointer;
}
.rt-modal-x:hover{ color:var(--ink); }
.rt-json{
  font-family:var(--f-mono); font-size:11.5px; line-height:1.55;
  background:var(--surface-2); border:1px solid var(--line);
  border-radius:8px; padding:14px; overflow:auto; margin:0; white-space:pre-wrap;
}

/* --------------------------------------------------------------- avisos */

#rt-avisos{
  position:fixed; bottom:18px; right:18px; z-index:1100;
  display:flex; flex-direction:column; gap:8px;
}
.rt-aviso{
  border:1px solid var(--line-strong); border-left-width:3px; border-radius:8px;
  background:var(--surface); box-shadow:var(--shadow);
  padding:11px 16px; font-size:13.5px; max-width:340px;
  animation:rt-entra .25s ease;
}
.rt-aviso-ok{ border-left-color:var(--new); }
.rt-aviso-erro{ border-left-color:var(--gone); }
.rt-aviso-info{ border-left-color:var(--accent); }
@keyframes rt-entra{ from{ transform:translateX(18px); opacity:0; } to{ transform:none; opacity:1; } }

/* ------------------------------------------------------------- telas pequenas */

@media (max-width:640px){
  .rt-dropzone{ flex-direction:column; align-items:flex-start; }
  .rt-res-topo{ flex-direction:column; }
  .rt-campo{ flex-direction:column; gap:2px; }
  .rt-valor{ text-align:left; }
  .rt-bloco.rt-full{ overflow-x:auto; }
}

/* ------------------------------------------------- guia de preenchimento */

.rt-evento{
  border:1px solid var(--line); border-radius:10px;
  background:var(--surface); padding:20px 22px; margin-bottom:18px;
}
.rt-evento-topo{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; flex-wrap:wrap; margin-bottom:10px;
}
.rt-evento-topo h3{
  font-family:var(--f-display); font-size:16px; margin:0;
  color:var(--ink); text-transform:none; letter-spacing:0;
}
.rt-prazo{
  font-size:12.5px; color:var(--accent-text);
  background:var(--accent-soft); border-radius:6px; padding:3px 10px;
}
.rt-como-chegar{
  font-size:12.5px; color:var(--muted); line-height:1.6;
  margin:0 0 18px; padding-bottom:14px; border-bottom:1px solid var(--line);
}
.rt-como-chegar strong{ color:var(--ink); }

.rt-aba{ margin-bottom:18px; }
.rt-aba:last-child{ margin-bottom:0; }
.rt-aba-nome{
  font-family:var(--f-mono); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted); margin-bottom:8px;
}

.rt-passo{
  border-left:2px solid var(--line-strong);
  padding:2px 0 10px 14px; margin-bottom:12px;
}
.rt-passo:last-child{ margin-bottom:0; }
.rt-passo-campo{ font-size:13px; color:var(--muted); }
.rt-passo-valor{
  font-size:14.5px; font-weight:600; color:var(--ink);
  margin:2px 0 4px; line-height:1.4;
}
.rt-passo-nota{ font-size:12.5px; color:var(--muted); line-height:1.6; }
.rt-passo-pendente{ border-left-color:var(--accent); }
.rt-falta{ font-weight:400; font-style:italic; color:var(--accent-text); }
.rt-fonte-mini{
  font-family:var(--f-mono); font-size:10.5px; color:var(--muted);
  background:var(--same-soft); border-radius:4px; padding:1px 5px; margin-left:4px;
}

.rt-dispensa{ border-left:3px solid var(--new); }
.rt-dispensa h3{ color:var(--new); }
.rt-dispensa p{ margin:0; font-size:13.5px; line-height:1.6; }

/* ------------------------------------------------------------- lixeira */

.rt-col-lixo{ width:44px; text-align:right; }
.rt-lixo{
  border:0; background:transparent; cursor:pointer;
  font-size:14px; line-height:1; padding:4px 6px; border-radius:4px;
  opacity:.45; transition:opacity .15s, background .15s;
}
.rt-tab-hist tr:hover .rt-lixo{ opacity:1; }
.rt-lixo:hover{ background:var(--gone-soft); opacity:1; }
.rt-tab-hist tbody td[data-abrir]{ cursor:pointer; }

/* ------------------------------------------------------------ impressão */

@media print{
  .rt-dropzone, .rt-fila, .rt-acao, .rt-historico,
  .rt-res-acoes, #rt-avisos, .top, .foot, .crumb{ display:none !important; }
  .rt-evento{ break-inside:avoid; border:1px solid #ccc; }
  .rt-passo{ break-inside:avoid; }
  body{ background:#fff; }
}

/* ------------------------------------------------ capa do guia (SCI) */

.rt-capa{
  border:1px solid var(--line); border-radius:10px;
  background:var(--surface-2); padding:20px 22px; margin-bottom:16px;
}
.rt-capa-topo{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:16px; flex-wrap:wrap;
}
.rt-capa-eyebrow{
  font-family:var(--f-mono); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.07em; color:var(--accent-text); margin-bottom:4px;
}
.rt-capa-topo h2{ font-family:var(--f-display); font-size:18px; margin:0; }
.rt-capa-dados{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line);
}
.rt-capa-dados span{
  display:block; font-size:11px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.04em;
}
.rt-capa-dados strong{ font-size:13.5px; }

.rt-decisoes{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px; margin-bottom:16px;
}
.rt-decisao{
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:8px; background:var(--surface); padding:14px 16px;
}
.rt-decisao span{
  display:block; font-family:var(--f-mono); font-size:10.5px;
  text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:5px;
}
.rt-decisao strong{ display:block; font-size:13.5px; line-height:1.45; }
.rt-decisao strong.rt-conferir{ color:var(--accent-text); font-style:italic; }
.rt-decisao p{ margin:6px 0 0; font-size:12.5px; color:var(--muted); line-height:1.55; }

.rt-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%;
  background:var(--accent); color:#fff;
  font-family:var(--f-mono); font-size:12px; margin-right:8px;
}
.rt-nota-passo{
  font-size:12.5px; color:var(--muted); line-height:1.6;
  margin:-8px 0 16px; padding-left:12px; border-left:2px solid var(--line);
}
.rt-fim{
  font-size:12.5px; line-height:1.6; margin:16px 0 0;
  padding:12px 14px; border-radius:6px;
  background:var(--new-soft); color:var(--new);
}
.rt-falta{ font-weight:400; font-style:italic; color:var(--accent-text); }

/* ------------------------------------------- roteiro escrito */

.rt-explicacao{
  font-size:13.5px; line-height:1.65; color:var(--ink);
  margin:0 0 12px; padding:12px 14px; border-radius:6px;
  background:var(--surface-2);
}

.rt-copiar{
  font:inherit; color:inherit; cursor:pointer;
  background:var(--same-soft); border:1px solid var(--line);
  border-radius:5px; padding:2px 8px; text-align:left;
  transition:background .12s, border-color .12s;
}
.rt-copiar:hover{ background:var(--accent-soft); border-color:var(--accent); }
.rt-copiado{ background:var(--new-soft); border-color:var(--new); color:var(--new); }

.rt-encargos{
  margin:0 0 20px; padding:16px; border-radius:8px;
  background:var(--surface-2); border:1px solid var(--line);
}
.rt-encargos-titulo{
  font-family:var(--f-display); font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; color:var(--muted);
  margin:0 0 8px;
}
.rt-encargos-titulo + .rt-tabela, .rt-encargos-base + .rt-tabela{ margin-top:0; }
.rt-encargos-base{ font-size:13px; line-height:1.6; margin:0 0 12px; }
.rt-encargos .rt-tabela + .rt-encargos-titulo{ margin-top:18px; }

.rt-tabela{
  width:100%; border-collapse:collapse; margin:0 0 4px;
  font-size:13px; background:var(--surface); border-radius:6px; overflow:hidden;
}
.rt-tabela th{
  text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em;
  color:var(--muted); font-weight:600; padding:8px 10px;
  border-bottom:1px solid var(--line-strong); white-space:nowrap;
}
.rt-tabela td{ padding:8px 10px; border-bottom:1px solid var(--line); line-height:1.5; }
.rt-tabela tbody tr:last-child td{ border-bottom:none; }
.rt-tabela tfoot td{
  font-weight:700; border-top:1px solid var(--line-strong); background:var(--same-soft);
}
.rt-codigo{
  font-family:var(--f-mono); font-size:12px; font-weight:700;
  background:var(--accent-soft); color:var(--accent-text);
  border-radius:4px; padding:2px 6px;
}

.rt-checklist ul{ margin:0; padding:0; list-style:none; }
.rt-checklist li{
  position:relative; padding:8px 0 8px 30px; font-size:13.5px; line-height:1.6;
  border-bottom:1px solid var(--line);
}
.rt-checklist li:last-child{ border-bottom:none; }
.rt-checklist li::before{
  content:""; position:absolute; left:2px; top:11px;
  width:14px; height:14px; border:1.5px solid var(--line-strong); border-radius:3px;
}

@media (max-width:560px){
  .rt-tabela{ font-size:12px; }
  .rt-tabela th, .rt-tabela td{ padding:6px 7px; }
}

.rt-capa-proc{ font-size:13px; color:var(--muted); margin-top:4px; }

.rt-sugerido{
  display:inline-block; margin-left:8px; font-size:10.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.04em; color:var(--accent-text);
  background:var(--accent-soft); border-radius:4px; padding:2px 6px; vertical-align:middle;
}

.rt-aviso{ padding:14px 0; border-bottom:1px solid var(--line); }
.rt-aviso:last-child{ border-bottom:none; padding-bottom:0; }
.rt-aviso-titulo{
  font-family:var(--f-display); font-size:14.5px; font-weight:700;
  display:flex; align-items:center; gap:8px; margin-bottom:6px;
}
.rt-aviso-num{
  flex:none; width:20px; height:20px; border-radius:50%;
  background:var(--accent); color:#fff; font-size:11.5px;
  display:inline-flex; align-items:center; justify-content:center;
}
.rt-aviso p{ margin:0; font-size:13.5px; line-height:1.65; color:var(--ink); }
.rt-aviso-falta .rt-aviso-num{ background:var(--gone); }
.rt-aviso-prazo .rt-aviso-num{ background:var(--new); }

.rt-procedencia ul{ margin:0; padding:0 0 0 18px; }
.rt-procedencia li{ font-size:13px; line-height:1.65; margin-bottom:8px; color:var(--ink); }
.rt-lgpd{
  margin:14px 0 0; padding:10px 12px; border-radius:6px;
  background:var(--gone-soft); color:var(--gone);
  font-size:12.5px; line-height:1.6;
}

.rt-faltantes .rt-tabela td:first-child{ font-weight:600; white-space:normal; }
.rt-faltantes .rt-tabela th:not(:first-child), .rt-faltantes .rt-tabela td:not(:first-child){ text-align:left; }
.rt-obrig{
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  background:var(--gone-soft); color:var(--gone); border-radius:4px; padding:1px 5px;
  margin-left:4px; white-space:nowrap;
}

/* ----------------------------------------- PDF (Salvar como PDF) */

@media print{
  @page{ margin:14mm 12mm; }
  .rt-encargos, .rt-tabela, .rt-checklist{ break-inside:avoid; page-break-inside:avoid; }
  .rt-copiar{ background:none; border:none; padding:0; }
  .rt-dropzone, .rt-fila, .rt-acao, .rt-historico, .rt-res-acoes,
  #rt-avisos, #rt-dados-extraidos, .top, .foot, .crumb, .nav, .user{
    display:none !important;
  }
  body, .wrap{ background:#fff !important; }
  .rt-capa{ background:#fff; border:1px solid #bbb; }
  .rt-evento, .rt-decisao, .rt-capa{ break-inside:avoid; page-break-inside:avoid; }
  .rt-evento{ border:1px solid #bbb; margin-bottom:14px; }
  .rt-passo{ break-inside:avoid; page-break-inside:avoid; }
  .rt-num{ background:#444 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .rt-prazo, .rt-fim, .alerta{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .rt-evento-topo h3{ font-size:14px; }
  .rt-passo-nota, .rt-como-chegar{ font-size:11px; }
  a[href]:after{ content:""; }
}

.rt-fila-topo{
  font-family:var(--f-mono); font-size:11px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px;
}

/* --------------------------------------------- capturas das telas do SCI */

.rt-telas{
  display:flex; flex-direction:column; gap:14px;
  margin:10px 0 16px;
}
.rt-tela{ margin:0; }
.rt-tela img{
  display:block; width:100%; height:auto;
  border:1px solid var(--line-strong); border-radius:6px;
  background:#fff;
}
.rt-tela figcaption{
  font-size:12px; color:var(--muted); line-height:1.5;
  margin-top:6px; padding-left:2px;
}

@media print{
  .rt-telas{ gap:10px; }
  .rt-tela{ break-inside:avoid; page-break-inside:avoid; }
  .rt-tela img{ max-height:110mm; width:auto; max-width:100%; border:1px solid #999; }
  .rt-tela figcaption{ font-size:10px; }
}

/* ------------------------- valores do processo sobre as telas do SCI */

.rt-tela-quadro{ position:relative; display:block; line-height:0; }
.rt-tela-quadro img{ display:block; width:100%; height:auto; }

/* cobre o valor de exemplo do manual e escreve o deste processo */
.rt-preenche{
  position:absolute; display:flex; align-items:center;
  box-sizing:border-box; padding:0 3px;
  background:#fffbe6; color:#1a1a1a;
  border:1px solid #e0a800; border-radius:2px;
  font-family:var(--f-mono); font-size:clamp(7px, 1.05vw, 12px);
  line-height:1.1; white-space:nowrap; overflow:hidden;
  min-height:2.6%;
}
/* marca uma area da tela sem escrever nada (a linha do teor escolhido) */
.rt-realce{
  position:absolute; box-sizing:border-box;
  border:2px solid #e0a800; border-radius:2px;
  background:rgba(224,168,0,.18);
}

@media print{
  .rt-preenche{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .rt-realce{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

/* ==========================================================================
   O ROTEIRO COMO DOCUMENTO
   Coluna única de leitura, valores em fichas que copiam ao clique. É o que o
   cliente abre ao lado da tela do SCI. Paleta e tipografia próprias, presas
   em .rd-folha para não vazarem no resto do app.
   ========================================================================== */

.rd-folha{
  --papel:#fbfaf8; --superficie:#ffffff; --tinta:#1a1c1f; --tinta-fraca:#5d6470;
  --borda:#e3e1dd; --borda-forte:#c9c6c0;
  --acento:#1f5f6b; --acento-fraco:#e8f1f2;
  --alerta:#8a5a00; --alerta-fraco:#fdf3e0;
  --grave:#9b2c2c; --grave-fraco:#fbeaea;
  --bom:#2c6e49; --bom-fraco:#e8f3ec;
  --doc-display:"Source Serif 4",Georgia,"Times New Roman",serif;
  --doc-texto:"Source Sans 3","IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --doc-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  background:var(--papel); color:var(--tinta);
  font-family:var(--doc-texto); font-size:16px; line-height:1.6;
  max-width:52rem; margin:24px auto 0; padding:40px 24px 64px;
  border:1px solid var(--borda); border-radius:10px;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .rd-folha{
    --papel:#16181b; --superficie:#1e2125; --tinta:#eceef1; --tinta-fraca:#a2aab6;
    --borda:#2e3237; --borda-forte:#434952;
    --acento:#6fb3bf; --acento-fraco:#173136;
    --alerta:#e0b05c; --alerta-fraco:#332913;
    --grave:#e98b8b; --grave-fraco:#37191a;
    --bom:#7cc79a; --bom-fraco:#15301f;
  }
}
:root[data-theme="dark"] .rd-folha{
  --papel:#16181b; --superficie:#1e2125; --tinta:#eceef1; --tinta-fraca:#a2aab6;
  --borda:#2e3237; --borda-forte:#434952;
  --acento:#6fb3bf; --acento-fraco:#173136;
  --alerta:#e0b05c; --alerta-fraco:#332913;
  --grave:#e98b8b; --grave-fraco:#37191a;
  --bom:#7cc79a; --bom-fraco:#15301f;
}

.rd-folha h1,.rd-folha h2,.rd-folha h3{ font-family:var(--doc-display); text-wrap:balance; margin:0; }
.rd-folha h1{ font-size:clamp(26px,4.4vw,36px); line-height:1.2; letter-spacing:-.01em; font-weight:700; }
.rd-folha h2{ font-size:clamp(20px,3vw,25px); line-height:1.25; font-weight:600; }
.rd-folha h3{ font-size:17px; line-height:1.3; font-weight:600; }
.rd-folha p{ margin:0; }

/* --------------------------------------------------------------- capa */

.rd-capa{ border-bottom:2px solid var(--acento); padding-bottom:22px; margin-bottom:12px; }
.rd-capa-topo{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.rd-capa-texto{ min-width:min(100%,18rem); flex:1 1 20rem; }
.rd-sobre{
  font-family:var(--doc-mono); font-size:11.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--acento); margin-bottom:8px;
}
.rd-numproc{ font-family:var(--doc-mono); font-size:clamp(13px,2.4vw,16px); color:var(--tinta-fraca); margin-top:6px; }

.rd-acoes-doc{ display:flex; gap:8px; flex:none; }
.rd-btn{
  font-family:var(--doc-texto); font-size:13.5px; line-height:1;
  padding:9px 14px; border-radius:6px; cursor:pointer;
  border:1px solid var(--borda-forte); background:var(--superficie); color:var(--tinta);
}
.rd-btn:hover{ border-color:var(--acento); color:var(--acento); }
.rd-btn-forte{ background:var(--acento); border-color:var(--acento); color:#fff; }
:root[data-theme="dark"] .rd-btn-forte{ color:#0f1417; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .rd-btn-forte{ color:#0f1417; } }
.rd-btn-forte:hover{ filter:brightness(1.08); color:#fff; }

.rd-partes{ display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:18px; font-size:14.5px; }
.rd-partes div{ min-width:0; }
.rd-partes span{
  display:block; font-size:11.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--tinta-fraca);
}
.rd-partes strong{ font-weight:600; }

.rd-resumo{
  background:var(--superficie); border:1px solid var(--borda);
  border-left:3px solid var(--acento); border-radius:6px;
  padding:18px 20px; margin:28px 0 36px;
}
.rd-resumo p + p{ margin-top:12px; }

/* -------------------------------------------------------------- seções */

.rd-secao{ margin-bottom:44px; }
.rd-cab{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding-bottom:10px; border-bottom:1px solid var(--borda-forte); margin-bottom:20px;
}
.rd-passo{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; flex:none; border-radius:50%;
  background:var(--acento); color:#fff;
  font-family:var(--doc-mono); font-size:13px; font-weight:600;
}
:root[data-theme="dark"] .rd-passo{ color:#0f1417; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .rd-passo{ color:#0f1417; } }
.rd-onde{ font-family:var(--doc-mono); font-size:12.5px; color:var(--tinta-fraca); width:100%; margin-top:2px; }

.rd-dica{ font-size:14px; color:var(--tinta-fraca); margin:0 0 14px; line-height:1.55; }
.rd-dica-topo{ margin-bottom:18px; }
.rd-linha-forte{ font-size:15px; margin:0 0 16px; }
.rd-h3-solto{ margin-top:32px !important; margin-bottom:8px; }

.rd-tela{ margin-bottom:26px; }
.rd-tela > h3{ margin-bottom:4px; }
.rd-tela > .rd-dica{ margin-bottom:14px; }

/* -------------------------------------------------------------- campos */

.rd-campos{ display:flex; flex-direction:column; gap:2px; }
.rd-campo{
  display:grid; grid-template-columns:minmax(0,15rem) minmax(0,1fr);
  gap:4px 20px; padding:11px 0; border-bottom:1px solid var(--borda); align-items:start;
}
.rd-campo:last-child{ border-bottom:0; }
.rd-rotulo{ font-size:14.5px; color:var(--tinta-fraca); }
.rd-valor{ grid-column:2; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.rd-nota{ grid-column:2; font-size:13.5px; color:var(--tinta-fraca); line-height:1.5; }
@media (max-width:640px){
  .rd-campo{ grid-template-columns:1fr; }
  .rd-valor,.rd-nota{ grid-column:1; }
}

.rd-ficha{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--doc-mono); font-size:14.5px; font-weight:500;
  background:var(--acento-fraco); color:var(--tinta);
  border:1px solid var(--acento); border-radius:4px;
  padding:3px 9px; cursor:pointer; text-align:left;
  max-width:100%; overflow-wrap:anywhere;
}
.rd-ficha:hover{ filter:brightness(1.04); }
.rd-ficha::after{
  content:"copiar"; font-size:10.5px; letter-spacing:.05em;
  text-transform:uppercase; color:var(--acento); flex:none;
}
.rd-ficha.rd-feito::after{ content:"copiado"; color:var(--bom); }
.rd-vazio{ font-style:italic; color:var(--alerta); font-size:14.5px; }
.rd-sugerido{
  font-size:10.5px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--alerta); background:var(--alerta-fraco);
  border-radius:4px; padding:2px 6px; white-space:nowrap;
}
.rd-obrig{
  font-family:var(--doc-mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--grave); background:var(--grave-fraco); border-radius:4px; padding:2px 6px; white-space:nowrap;
}

/* -------------------------------------------------------------- avisos */

.rd-aviso{
  border-radius:6px; padding:14px 16px; font-size:14.5px; line-height:1.55;
  margin:18px 0; border:1px solid;
}
.rd-aviso strong:first-child{
  display:block; font-size:12px; letter-spacing:.06em;
  text-transform:uppercase; margin-bottom:5px; font-family:var(--doc-mono);
}
.rd-aviso.rd-confira{ background:var(--alerta-fraco); border-color:var(--alerta); color:var(--alerta); }
.rd-aviso.rd-grave{ background:var(--grave-fraco); border-color:var(--grave); color:var(--grave); }
.rd-aviso.rd-ok{ background:var(--bom-fraco); border-color:var(--bom); color:var(--bom); }

/* ------------------------------------------------------------- tabelas */

.rd-rolagem{ overflow-x:auto; margin:16px 0; }
.rd-folha table{
  border-collapse:collapse; width:100%; font-size:14px;
  font-variant-numeric:tabular-nums; background:none;
}
.rd-folha th,.rd-folha td{
  text-align:left; padding:9px 12px; border-bottom:1px solid var(--borda); white-space:nowrap;
}
.rd-folha th{
  font-family:var(--doc-mono); font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--tinta-fraca);
  border-bottom:1px solid var(--borda-forte); font-weight:600;
}
.rd-folha td.rd-n,.rd-folha th.rd-n{ text-align:right; font-family:var(--doc-mono); }
.rd-folha td.rd-livre{ white-space:normal; min-width:22rem; }
.rd-folha tfoot td{ font-weight:600; border-top:1px solid var(--borda-forte); border-bottom:0; }

/* ------------------------------------------------- listas e procedência */

.rd-lista{ margin:0; padding-left:1.3em; display:flex; flex-direction:column; gap:9px; font-size:15px; }
.rd-lista li{ padding-left:3px; }

.rd-check{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.rd-check li{ display:flex; gap:11px; align-items:flex-start; font-size:15px; }
.rd-check input{ margin-top:5px; flex:none; accent-color:var(--acento); width:16px; height:16px; }
.rd-check label{ cursor:pointer; }

.rd-origem{
  background:var(--superficie); border:1px solid var(--borda);
  border-radius:6px; padding:18px 20px; font-size:14px; margin-bottom:0;
}
.rd-origem h3{ margin-bottom:10px; }
.rd-rodape{
  margin-top:44px; padding-top:18px; border-top:1px solid var(--borda);
  font-size:13px; color:var(--tinta-fraca); line-height:1.6;
}

/* ------------------------------------------------ PDF (Salvar como PDF) */

@media print{
  .rd-folha{
    max-width:none; margin:0; padding:0; border:0; background:#fff; color:#111;
    font-size:11pt; line-height:1.45;
  }
  .rd-acoes-doc{ display:none !important; }
  .rd-secao{ margin-bottom:24px; }
  .rd-secao, .rd-tela, .rd-campo, .rd-aviso, .rd-rolagem, .rd-origem, .rd-check li{
    break-inside:avoid; page-break-inside:avoid;
  }
  .rd-cab{ break-after:avoid; page-break-after:avoid; }
  .rd-ficha{ background:none; border:1px solid #bbb; padding:1px 5px; }
  .rd-ficha::after{ content:""; }
  .rd-folha th,.rd-folha td{ padding:5px 8px; font-size:9.5pt; }
}
.rd-acao{ font-size:14.5px; color:var(--tinta-fraca); }

/* --------------------------------- histórico: seleção múltipla e lixeira */

.rt-hist-topo{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-bottom:8px;
}
.rt-hist-topo h3{ margin:0; }
.rt-col-check{ width:34px; text-align:center; }
.rt-col-check input{ width:16px; height:16px; accent-color:var(--accent); cursor:pointer; }
.rt-lixo-lote{
  display:inline-flex; align-items:center; gap:6px;
  font-size:14px; line-height:1; padding:7px 11px;
  border:1px solid var(--line-strong); border-radius:6px;
  background:var(--surface); cursor:pointer;
}
.rt-lixo-lote:disabled{ opacity:.38; cursor:default; }
.rt-lixo-lote:not(:disabled){ border-color:var(--gone); color:var(--gone); opacity:1; }
.rt-lixo-lote:not(:disabled):hover{ background:var(--gone-soft); }
.rt-lixo-lote span{ font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.rd-substituiu{
  font-size:13.5px; color:var(--tinta-fraca); font-style:italic;
  margin:0 0 20px; padding-left:12px; border-left:2px solid var(--borda-forte);
}
