/* Folha do relatório: identidade clara da HOCA (creme, tinta, verdes, Jost + Inter). É código fixo: nada aqui vem da IA. */
.rel {
  --tinta: #0E1110; --creme: #F5F2EA; --creme-2: #EAE5D6; --verde: #57B89B; --verde-2: #74C7AE; --verde-profundo: #2F7D64;
  --mudo: #5A625D; --mudo-2: #78807A; --linha: rgba(14, 17, 16, .16); --linha-2: rgba(14, 17, 16, .08);
  --c-COMPROVADO: #2F7D64; --c-PARCIALMENTE_COMPROVADO: #6E8F1F; --c-VALIDACAO: #3F6FC4; --c-DOCUMENTACAO_PENDENTE: #B9791A;
  --c-RELATORIO_PENDENTE: #C4573A; --c-LEGISLACAO_PENDENTE: #98479A; --c-SEM_LEITURA: #6C766F;
  width: 794px; max-width: 100%; margin: 0 auto; background: var(--creme); color: var(--tinta);
  font: 400 13px/1.55 "Inter", system-ui, sans-serif; border-radius: 4px; box-shadow: 0 30px 80px -30px #000;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; color-scheme: light;
}
.rel *, .rel *::before, .rel *::after { box-sizing: border-box; }
.rel h1, .rel h2, .rel h3, .rel h4, .rel h5, .rel p, .rel ul, .rel dl, .rel dd { margin: 0; }
.rel ul { padding: 0; list-style: none; }
.rel-folha { width: 100%; table-layout: fixed; border-collapse: collapse; }   /* fixa a largura: textos sem quebra não esticam a folha */
.rel-folha > tbody > tr > td, .rel-folha > thead td, .rel-folha > tfoot td { padding: 0; }
.rel-rotulo { font: 500 9.5px/1.3 "Inter", sans-serif; letter-spacing: .22em; text-transform: uppercase; color: var(--verde-profundo); }

/* capa */
.rel-capa { position: relative; min-height: 640px; padding: 56px 56px 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; background: var(--tinta); color: #fff; border-radius: 4px 4px 0 0; overflow: hidden; }
.rel-capa::before { content: ""; position: absolute; inset: auto -120px -160px auto; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(87,184,155,.5), transparent 65%); }
.rel-logo { width: 150px; height: auto; filter: invert(1); position: relative; }
.rel-capa-corpo { position: relative; }
.rel-capa .rel-rotulo { color: var(--verde); margin-bottom: 22px; }
.rel-capa h1 { font: 300 46px/1.08 "Jost", sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.rel-capa h1 span { color: var(--verde); }
.rel-sub { margin-top: 20px !important; font: 400 13px "Inter", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.rel-meta { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 36px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.18); }
.rel-meta dt { font: 500 9px "Inter", sans-serif; letter-spacing: .2em; text-transform: uppercase; color: var(--verde); }
.rel-meta dd { margin-top: 3px; font-size: 13px; color: #fff; }
.rel-faixa { width: 100%; overflow: hidden; background: var(--verde); color: var(--tinta); padding: 16px 0; white-space: nowrap; font: 400 15px "Jost", sans-serif; letter-spacing: .2em; text-transform: uppercase;
  background-image: radial-gradient(circle at 24px 50%, transparent 15px, rgba(47,125,100,.28) 15px 17px, transparent 17px); background-size: 64px 100%; }
.rel-faixa span { display: inline-block; padding-left: 28px; }

/* páginas e títulos */
.rel-pagina { padding: 46px 56px 8px; }
.rel-pagina h2 { margin: 8px 0 20px; font: 300 30px/1.1 "Jost", sans-serif; letter-spacing: .02em; text-transform: uppercase; }
.rel-pagina h3 { margin: 30px 0 12px; font: 400 13px "Inter", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--verde-profundo); }
.rel-pagina p + p, .rel-pagina p + ul { margin-top: 10px; }
.rel-kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.rel-kpis > div { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid var(--linha); background: #fff; border-radius: 4px; }
.rel-kpis b { font: 300 44px/1 "Jost", sans-serif; color: var(--verde-profundo); min-width: 66px; }
.rel-kpis span { font-size: 12.5px; line-height: 1.35; }
.rel-kpis small { display: block; color: var(--mudo-2); font-size: 11px; margin-top: 2px; }
.rel-categoria { display: grid; grid-template-columns: 150px 1fr; gap: 22px; align-items: center; margin-top: 16px; padding: 18px 20px; border-left: 4px solid var(--verde); background: var(--creme-2); border-radius: 0 4px 4px 0; }
.rel-categoria > div > b { display: block; margin-top: 4px; font: 300 46px/1 "Jost", sans-serif; color: var(--verde-profundo); }
.rel-categoria p { font-size: 12.5px; }
.rel-barra-status { display: flex; gap: 3px; height: 16px; border-radius: 99px; overflow: hidden; background: var(--creme-2); }
.rel-barra-status span, .rel-legenda i { background: var(--cor); }
.rel-barra-status span { min-width: 4px; }
.rel-legenda { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; margin-top: 12px; font-size: 12px; }
.rel-legenda li { display: flex; align-items: center; gap: 8px; }
.rel-legenda i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.rel-legenda b { margin-left: auto; font-weight: 600; }
.rel [class*="st-"] { --cor: var(--c-SEM_LEITURA); }
.rel .st-COMPROVADO { --cor: var(--c-COMPROVADO); } .rel .st-PARCIALMENTE_COMPROVADO { --cor: var(--c-PARCIALMENTE_COMPROVADO); } .rel .st-VALIDACAO { --cor: var(--c-VALIDACAO); }
.rel .st-DOCUMENTACAO_PENDENTE { --cor: var(--c-DOCUMENTACAO_PENDENTE); } .rel .st-RELATORIO_PENDENTE { --cor: var(--c-RELATORIO_PENDENTE); } .rel .st-LEGISLACAO_PENDENTE { --cor: var(--c-LEGISLACAO_PENDENTE); }
.rel-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px 2px 8px; border: 1px solid var(--cor); border-radius: 99px; font: 500 10.5px "Inter", sans-serif; color: var(--cor); white-space: nowrap; }
.rel-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--cor); }

.rel-parecer { margin-top: 8px; padding: 18px 22px; background: #fff; border: 1px solid var(--linha); border-radius: 4px; }
.rel-parecer h3 { margin-top: 0 !important; }
.rel-parecer h5 { margin: 14px 0 6px; font: 500 10px "Inter", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--mudo); }
.rel-parecer li { position: relative; padding-left: 16px; margin-top: 4px; }
.rel-parecer li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--verde); }

.rel table { width: 100%; border-collapse: collapse; }
.rel-tabela-pontos th, .rel-tabela-itens th { padding: 8px 10px; text-align: left; font: 500 9.5px "Inter", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--mudo-2); border-bottom: 1px solid var(--linha); }
.rel-tabela-pontos td, .rel-tabela-itens td { padding: 8px 10px; vertical-align: middle; border-bottom: 1px solid var(--linha-2); font-size: 12px; }
.rel .num { text-align: right; white-space: nowrap; }
.rel td.cod { font: 500 12.5px "Jost", sans-serif; letter-spacing: .08em; white-space: nowrap; }
.rel small { color: var(--mudo-2); }
.rel-letra { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--verde); color: var(--tinta); font: 400 22px "Jost", sans-serif; flex: none; }
.rel-letra.pequeno { width: 22px; height: 22px; margin-right: 10px; font-size: 13px; vertical-align: middle; }
.rel-regua { position: relative; width: 150px; height: 7px; border-radius: 99px; background: var(--creme-2); }
.rel-regua span { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 99px; }
.rel-regua .pot { background: repeating-linear-gradient(135deg, rgba(87,184,155,.55) 0 3px, rgba(87,184,155,.15) 3px 6px); }
.rel-regua .atual { background: var(--verde-profundo); }
.rel-regua .min { left: 50%; width: 2px; border-radius: 0; background: var(--tinta); top: -3px; bottom: -3px; }

/* critérios e itens */
.rel-criterio { padding: 40px 56px 10px; }
.rel-criterio-cab { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-bottom: 14px; background: var(--verde); border-radius: 4px; break-after: avoid; }
.rel-criterio-cab .rel-letra { background: var(--tinta); color: var(--verde); }
.rel-criterio-cab .rel-rotulo { color: var(--tinta); opacity: .7; }
.rel-criterio-cab h3 { margin: 2px 0 0; font: 400 17px/1.25 "Jost", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta); }
.rel-criterio-pts { margin-left: auto; text-align: right; white-space: nowrap; }
.rel-criterio-pts b { font: 300 32px/1 "Jost", sans-serif; }
.rel-criterio-pts small { display: block; color: rgba(14,17,16,.7); font-size: 10.5px; }
.rel-criterio-pts span { display: inline-block; margin-top: 4px; padding: 1px 9px; border-radius: 99px; background: var(--tinta); font: 500 9.5px "Inter", sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.rel-criterio-pts span.sim { color: var(--verde-2); } .rel-criterio-pts span.nao { color: #f1c987; }
.rel-tabela-itens { margin-bottom: 22px; }
.rel-item { margin: 0 0 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--linha); border-radius: 4px; break-inside: avoid; }
.rel-item.aguardando { border-left: 4px solid var(--verde); }
.rel-item-cab { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: start; }
.rel-cod { font: 500 15px "Jost", sans-serif; letter-spacing: .08em; color: var(--verde-profundo); }
.rel-item h4 { font: 500 12.5px/1.4 "Inter", sans-serif; }
.rel-item-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.rel-pts { font: 300 17px "Jost", sans-serif; white-space: nowrap; }
.rel-pts small { font-size: 11px; }
.rel-resumo { margin-top: 10px; color: var(--mudo); font-size: 12.5px; }
.rel-aviso { margin-top: 8px; padding: 6px 10px; background: rgba(87,184,155,.16); border-radius: 3px; font-size: 11.5px; }
.rel-lista { margin-top: 12px; }
.rel-lista h5 { margin-bottom: 5px; font: 500 9.5px "Inter", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--mudo-2); }
.rel-lista li { display: grid; grid-template-columns: 16px 1fr; gap: 6px; margin-top: 4px; font-size: 12px; }
.rel-lista li b { font-weight: 700; text-align: center; }
.rel-lista.ok li b { color: var(--c-COMPROVADO); } .rel-lista.pend li b { color: var(--c-RELATORIO_PENDENTE); } .rel-lista.aten li b { color: var(--c-DOCUMENTACAO_PENDENTE); } .rel-lista.acao li b { color: var(--c-VALIDACAO); } .rel-lista.docs li b { color: var(--mudo-2); }
.rel-lista li small { display: block; font-size: 11px; }
.rel-lista li.resolvido { color: var(--mudo-2); }
.rel-lista li.resolvido span { text-decoration: line-through; text-decoration-color: rgba(14,17,16,.25); }
.rel-lista li.resolvido small { text-decoration: none; }
.rel-exigido { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--linha); font-size: 11.5px; color: var(--mudo); }
.rel-exigido summary { cursor: pointer; font: 500 9.5px "Inter", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--mudo-2); list-style: none; margin-bottom: 4px; }
.rel-pont-texto { margin-top: 4px !important; color: var(--mudo-2); }
.rel-simples li { padding: 8px 0; border-bottom: 1px solid var(--linha-2); font-size: 12.5px; }
.rel-simples b { margin-right: 6px; font: 500 13px "Jost", sans-serif; letter-spacing: .06em; color: var(--verde-profundo); }
.rel-final { padding-bottom: 36px; }
.rel-aviso-final { padding: 14px 18px; border: 1px solid var(--linha); background: var(--creme-2); font-size: 12px; font-style: italic; }
.rel-assinatura { margin-top: 12px !important; font: 400 11px "Inter", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--mudo-2); }
.rel-rodape { margin: 28px 56px 0; padding: 14px 0 24px; border-top: 1px solid var(--linha); font-size: 10.5px; line-height: 1.6; color: var(--mudo-2); }
.rel-rodape b { color: var(--tinta); font-weight: 600; }

/* ───────── relatório semanal: o checklist geral (identidade HOCA: creme, tinta, verdes, Jost + Inter) ───────── */
/* paisagem: o checklist tem 6 colunas (a folha do mensal é retrato); a página nomeada só vale para ele */
@page semanal { size: A4 landscape; margin: 0; }
.rel.semanal { width: 1123px; padding: 0; page: semanal; }
.rs-cabeca { display: flex; align-items: center; gap: 28px; padding: 30px 40px 16px; border-bottom: 3px solid var(--verde-profundo); }
.rs-logo { flex: none; width: 128px; height: auto; }
.rs-titulos h1 { margin-top: 6px; font: 500 21px/1.2 "Jost", sans-serif; letter-spacing: .02em; color: var(--verde-profundo); }
.rs-sub { margin-top: 5px; font-size: 12px; color: var(--mudo); }
.rs-aviso-topo { padding: 10px 40px; background: var(--creme-2); font-size: 11.5px; line-height: 1.5; color: var(--mudo); }
.rs-secao { padding: 22px 40px 0; }
.rs-secao h2 { margin-bottom: 8px; font: 500 17px/1.25 "Jost", sans-serif; letter-spacing: .02em; color: var(--verde-profundo); break-after: avoid; }
.rs-secao > p { margin-bottom: 8px; font-size: 12px; line-height: 1.6; }
.rs-legenda { color: var(--mudo); font-size: 11px !important; }
.rs-legenda b { color: var(--verde-profundo); }
.rel .rs-grupo { margin: 22px 0 0; font: 600 13px/1.3 "Inter", sans-serif; color: var(--tinta); break-after: avoid; }
.rel .rs-grupo span { font-weight: 400; color: var(--mudo); }
.rs-tabela { width: 100%; table-layout: fixed; border-collapse: collapse; margin-top: 8px; border: 1px solid var(--linha); background: #fff; font-size: 10.5px; line-height: 1.45; }
.rs-tabela th { padding: 6px 8px; border: 1px solid var(--linha); background: var(--creme-2); text-align: left; font: 600 8.5px "Inter", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--verde-profundo); }
.rs-tabela td { padding: 7px 8px; border: 1px solid var(--linha); vertical-align: top; word-wrap: break-word; overflow-wrap: anywhere; }
.rs-tabela td p { margin: 0 0 4px; }
.rs-tabela td p:last-child { margin-bottom: 0; }
.rs-status { max-width: 460px; }
.rs-status th:first-child, .rs-status td:first-child { width: 78%; }
.rs-status td { font-weight: 600; text-transform: uppercase; letter-spacing: .03em; font-size: 10px; }
.rs-status td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.rs-quadro .q-grupo { width: 27%; } .rs-quadro .q-min { width: 7%; } .rs-quadro .q-atual { width: 14%; } .rs-quadro .q-mat { width: 17%; } .rs-quadro .q-lacuna { width: 35%; }
.rs-quadro td:nth-child(2), .rs-quadro td:nth-child(3) { font-variant-numeric: tabular-nums; }
.rs-checklist .c-item { width: 4.5%; } .rs-checklist .c-req { width: 17%; } .rs-checklist .c-pontos { width: 9.5%; } .rs-checklist .c-status { width: 10.5%; } .rs-checklist .c-local { width: 30%; } .rs-checklist .c-prov { width: 28.5%; }
td.c-item { font-weight: 700; font-size: 11px; }
td.c-status b { display: block; font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; }
td.c-status p { margin-top: 3px; font-size: 9.5px; color: var(--mudo); }
.rs-max { font-weight: 700; font-size: 12px; }
.rs-lista { display: grid; gap: 2px; margin-top: 2px; }
.rs-lista li { display: flex; gap: 5px; }
.rs-lista li b { flex: none; width: 11px; color: var(--verde-profundo); }
.rs-lista em { color: var(--mudo); }
.rs-manual { font-size: .92em; }
.rs-nota { font-size: 9.5px; font-style: italic; color: var(--mudo); }
.rs-vazio { color: var(--mudo-2); font-style: italic; }
.rs-ok { margin-left: 4px; font-size: 9px; font-style: normal; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--verde-profundo); }
.rs-aviso { margin-top: 4px; padding: 4px 6px; border-left: 2px solid var(--c-DOCUMENTACAO_PENDENTE); background: rgba(185, 121, 26, .08); font-size: 9.5px; }
.rs-bullets { display: grid; gap: 6px; }
.rs-bullets li { position: relative; padding-left: 18px; font-size: 12px; line-height: 1.55; }
.rs-bullets li::before { content: ""; position: absolute; left: 6px; top: .65em; width: 5px; height: 5px; border-radius: 50%; background: var(--verde-profundo); }
/* o status colore a célula (como no modelo: rosa para pendente, amarelo para parcial…) */
.rs-tabela .st-COMPROVADO { background: rgba(47, 125, 100, .14); }
.rs-tabela .st-PARCIALMENTE_COMPROVADO { background: rgba(110, 143, 31, .16); }
.rs-tabela .st-VALIDACAO { background: rgba(63, 111, 196, .13); }
.rs-tabela .st-DOCUMENTACAO_PENDENTE { background: rgba(185, 121, 26, .16); }
.rs-tabela .st-RELATORIO_PENDENTE { background: rgba(196, 87, 58, .15); }
.rs-tabela .st-LEGISLACAO_PENDENTE { background: rgba(152, 71, 154, .14); }
.rs-tabela .st-SEM_LEITURA { background: rgba(108, 118, 111, .12); }
.rs-final { padding: 26px 40px 34px; }

/* celular: as tabelas viram listas de cartões (6 colunas não cabem em 390 px) */
@media screen and (max-width: 700px) {
  .rs-cabeca { flex-direction: column; align-items: flex-start; gap: 14px; padding: 24px 18px 14px; }
  .rs-aviso-topo, .rs-secao, .rs-final { padding-left: 18px; padding-right: 18px; }
  .rs-quadro, .rs-quadro tbody, .rs-quadro tr, .rs-quadro td, .rs-checklist, .rs-checklist tbody, .rs-checklist tr, .rs-checklist td { display: block; width: 100% !important; }
  .rs-quadro, .rs-checklist { border: 0; background: none; } .rs-quadro thead, .rs-checklist thead { display: none; }
  .rs-quadro tr, .rs-linha { margin-bottom: 12px; border: 1px solid var(--linha); background: #fff; }
  .rs-quadro td, .rs-checklist td { border: 0; border-bottom: 1px solid var(--linha-2); }
  .rs-quadro td:last-child, .rs-checklist td:last-child { border-bottom: 0; }
  .rs-quadro td[data-r]::before, .rs-checklist td[data-r]::before { content: attr(data-r); display: block; margin-bottom: 2px; font: 600 8px/1.2 "Inter", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--verde-profundo); }
  td.c-item { display: inline-block !important; width: auto !important; padding-bottom: 0; font-size: 13px; color: var(--verde-profundo); }
  td.c-req { font-weight: 600; padding-top: 2px; }
  td.c-item::before, td.c-req::before { display: none !important; }
}

/* impressão / PDF: só a folha, A4, com o rodapé em todas as páginas */
@page { size: A4; margin: 0; }
@media print {
  html, body { background: var(--creme, #F5F2EA) !important; color-scheme: light; }
  body > *:not(#raiz), .cabeca-app, .banner-hero, .barra-leitor, .faixa-demo, .toasts, .topo, .menu-flutuante { display: none !important; }
  body { padding: 0 !important; }
  .app-caixa::before, .app-caixa::after { display: none !important; }
  .app-caixa { min-height: 0 !important; margin: 0 !important; max-width: none !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; overflow: visible !important; }
  #raiz, .app, .principal, .conteudo-pagina, .moldura-folha { display: block !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; overflow: visible !important; max-width: none !important; }
  .rel { width: 100%; box-shadow: none; border-radius: 0; }
  .rel-folha thead td { height: 14mm; } .rel-folha tfoot { display: table-footer-group; } .rel-folha thead { display: table-header-group; }
  .rel-capa { height: 238mm; min-height: 0; padding-top: 14mm; padding-bottom: 12mm; border-radius: 0; break-inside: avoid; break-after: page; }   /* cabe na página A4 com cabeçalho e rodapé da folha */
  .rel-faixa { display: none; }
  .rel-criterio { break-before: page; }
  .rel-pagina { break-inside: auto; }
  .rel-pagina h2, .rel-pagina h3, .rel-criterio-cab { break-after: avoid; }
  .rel-pagina + .rel-pagina { break-before: page; }
  .rel-item, .rel-parecer, .rel-kpis > div, .rel-categoria { break-inside: avoid; }
  .rel.semanal { width: 100%; }
  .rel.semanal .rs-tabela thead { display: table-header-group; }                  /* o cabeçalho da tabela se repete em cada página */
  .rs-linha, .rs-quadro tr, .rs-status tr { break-inside: avoid; }
  .rs-grupo, .rs-secao h2 { break-after: avoid; }
  .rs-cabeca { padding: 6mm 10mm 4mm; } .rs-aviso-topo, .rs-secao, .rs-final { padding-left: 10mm; padding-right: 10mm; }
  .rs-secao { padding-top: 5mm; } .rs-secao h2 { font-size: 14px; } .rel .rs-grupo { margin-top: 5mm; font-size: 11px; }
  .rs-tabela { font-size: 8.2px; line-height: 1.35; } .rs-tabela td { padding: 3.5px 5px; } .rs-tabela th { padding: 3.5px 5px; font-size: 7px; }   /* denso como o modelo: o checklist tem 69 itens */
  td.c-item { font-size: 9px; } td.c-status b { font-size: 8px; } td.c-status p, .rs-nota, .rs-aviso { font-size: 7.6px; } .rs-max { font-size: 10px; }
  .rs-secao > p, .rs-bullets li { font-size: 9.5px; } .rs-aviso-topo { font-size: 9px; } .rs-status td { font-size: 8.6px; }
  .rel-exigido { display: block; }
  .rel-exigido[open] summary { display: block; }
}
