/* ===== Zox Digital — documento do fechamento (A4) =====
   Sem degradê "ellipse ... at" e sem object-fit: o gerador de PDF não entende. Cores sempre impressas. */
.zdoc-folha { width: 794px; background: #fff; }
.zdoc { width: 794px; min-height: 1080px; display: flex; flex-direction: column; background: #fff; color: #16161c;
  font-family: "Inter", system-ui, sans-serif; font-size: 13px; line-height: 1.45;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.zdoc * { box-sizing: border-box; }
.zdoc b { font-weight: 600; }

/* topo preto com a logo */
.zd-topo { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 34px 48px 30px;
  background: linear-gradient(120deg, #0b0b10 55%, #3d0a07); color: #fff; }
.zd-logo { height: 58px; width: auto; display: block; }
.zd-titulo { text-align: right; display: grid; gap: 2px; }
.zd-titulo span { font: 700 12px "Space Grotesk", sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #ff6a00; }
.zd-titulo b { font: 700 30px/1.1 "Space Grotesk", sans-serif; color: #fff; }
.zd-titulo b::first-letter { text-transform: uppercase; }
.zd-titulo small { color: #b9b9c6; font-size: 12px; }
.zd-faixa { height: 6px; background: linear-gradient(90deg, #e3120b, #ff6a00); }
.zd-faixa.fina { height: 3px; }

/* para / de */
.zd-partes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 26px 48px 8px; }
.zd-partes > div { display: grid; gap: 2px; padding: 14px 16px; border-radius: 12px; background: #f6f6f8; border-left: 4px solid #e3120b; }
.zd-partes > div:last-child { border-left-color: #ff6a00; }
.zd-rot { font: 700 10px "Space Grotesk", sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #8a8a96; }
.zd-partes b { font: 700 16px "Space Grotesk", sans-serif; }
.zd-partes small { color: #555562; font-size: 12px; }

/* números do mês */
.zd-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 18px 48px 6px; }
.zd-resumo.sem-valor { grid-template-columns: 1fr; }
.zd-resumo > div { padding: 14px 16px; border-radius: 12px; border: 1px solid #e6e6ec; display: grid; gap: 2px; }
.zd-resumo span { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #8a8a96; }
.zd-resumo b { font: 700 24px "Space Grotesk", sans-serif; color: #16161c; }
.zd-resumo small { font-size: 11px; color: #8a8a96; }
.zd-resumo .destaque { background: #e3120b; border-color: #e3120b; }
.zd-resumo .destaque span, .zd-resumo .destaque small { color: #ffd6d2; }
.zd-resumo .destaque b { color: #fff; }
.zd-resumo .ok { background: #e7f8ef; border-color: #b6ebcf; }
.zd-resumo .ok b { color: #0f8a55; }

/* tabela dos materiais */
.zd-tabela { width: calc(100% - 96px); margin: 18px 48px 8px; border-collapse: collapse; }
.zd-tabela th { text-align: left; font: 700 10px "Space Grotesk", sans-serif; letter-spacing: 1.5px; text-transform: uppercase;
  color: #fff; background: #16161c; padding: 10px 12px; }
.zd-tabela th:first-child { border-radius: 8px 0 0 8px; }
.zd-tabela th:last-child { border-radius: 0 8px 8px 0; }
.zd-tabela td { padding: 11px 12px; border-bottom: 1px solid #ececf1; vertical-align: top; color: #16161c; }
.zd-tabela tr.par td { background: #fafafc; }
.zd-tabela td small { display: block; color: #6b6b78; font-size: 11px; margin-top: 2px; }
.zd-tabela .dt { white-space: nowrap; color: #6b6b78; width: 92px; }
.zd-tabela .tp { color: #6b6b78; width: 130px; }
.zd-tabela .v { text-align: right; white-space: nowrap; width: 120px; font-weight: 600; }
.zd-tabela .vazio { text-align: center; color: #8a8a96; padding: 26px; }
.zd-tabela tfoot td { border: 0; padding-top: 14px; font: 700 16px "Space Grotesk", sans-serif; }
.zd-tabela tfoot td:first-child { text-align: right; color: #6b6b78; font-size: 12px; text-transform: uppercase; letter-spacing: 1.5px; }
.zd-tabela tfoot .v { color: #e3120b; font-size: 20px; }
.zd-pago { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: #e7f8ef; color: #0f8a55; font-size: 9px; font-weight: 700; vertical-align: middle; }

/* como pagar */
.zd-pag { margin: 18px 48px 0; padding: 18px; border-radius: 14px; background: #fff7f2; border: 1px solid #ffd9c2; }
.zd-pag h3 { font: 700 15px "Space Grotesk", sans-serif; margin: 0 0 12px; display: flex; justify-content: space-between; }
.zd-pag h3 span { color: #e3120b; }
.zd-pag-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.zd-box { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 12px; background: #fff; border: 1px solid #f0e2d8; }
.zd-box > div:last-child { display: grid; gap: 3px; min-width: 0; }
.zd-box small { color: #555562; font-size: 11px; }
.zd-qr { flex: none; width: 112px; }
.zd-qr img { width: 112px; height: 112px; max-width: none; display: block; }
.zd-codigo { font: 8px/1.35 ui-monospace, Consolas, monospace; word-break: break-all; color: #6b6b78; margin-top: 4px; }
.zd-link { word-break: break-all; }

/* rodapé */
.zd-rodape { margin-top: auto; padding-top: 28px; }
.zd-pe { display: flex; justify-content: space-between; gap: 12px; padding: 14px 48px 26px; color: #6b6b78; font-size: 11px; }
.zd-pe b { font: 700 13px "Space Grotesk", sans-serif; color: #16161c; }

/* janela de impressão */
.zdoc-imprimir { margin: 0; background: #fff; }
@page { size: A4; margin: 0; }
@media print { .zdoc-folha, .zdoc { width: 100%; } .zdoc { min-height: 100vh; } }

/* fechamento emitido: atraso (valor original + multa + juros), observação e prévias das artes */
.zd-encargos { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 6px 48px 0; padding: 10px 14px; border-radius: 10px; background: #fff4f2; border: 1px solid #ffd0ca; font-size: 11px; color: #8a2a20; }
.zd-encargos b { color: #16161c; }
.zd-encargos .tot { margin-left: auto; }
.zd-encargos .tot b { color: #e3120b; font-size: 13px; }
.zd-obs { margin: 8px 48px 0; padding: 10px 14px; border-left: 3px solid #ff6a00; background: #fff8f2; font-size: 12px; color: #3a3a44; }
.zd-imagens { margin: 18px 48px 0; page-break-inside: avoid; break-inside: avoid; }
.zd-imagens h3 { font: 700 14px "Space Grotesk", sans-serif; margin: 0 0 10px; color: #16161c; }
.zd-imgs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.zd-imgs figure { margin: 0; border: 1px solid #e6e6ec; border-radius: 10px; overflow: hidden; background: #f6f6f8; page-break-inside: avoid; break-inside: avoid; }
.zd-imgs .zd-img { height: 120px; background: #e9e9ef center / cover no-repeat; }
.zd-imgs figcaption { padding: 6px 8px; display: grid; }
.zd-imgs figcaption b { font-size: 10px; color: #16161c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zd-imgs figcaption small { font-size: 9px; color: #8a8a96; }
.zd-pag-obs { margin: -4px 0 10px; font-size: 11px; color: #8a2a20; }
