/* ============================================================================
   OnNoc — folha de impressão de documentos (reutilizável entre módulos)

   Uso:
     1) um <div class="pdoc-sheet"> no <body> com o conteúdo do documento;
     2) antes de window.print(): document.body.classList.add('pdoc-printing').

   IMPORTANTE (tema escuro): o tema pinta o fundo por `html[data-theme="dark"] body`
   e `html[data-theme] body`, que têm especificidade MAIOR que `body.pdoc-printing`.
   Por isso aqui usamos seletores igualmente específicos + !important, e um reset
   dentro da folha, para o documento sair sempre claro e legível no papel —
   independentemente do tema em que o utilizador está a ver o sistema.
   ========================================================================== */

.pdoc-sheet { display: none; }

@media print {
    @page { size: A4; margin: 16mm 14mm 18mm; }

    /* ---------- 1) Neutraliza o tema (claro OU escuro) na impressão ---------- */
    html,
    html[data-theme],
    html[data-theme="dark"],
    html[data-theme="light"] {
        background: #fff !important;
        color-scheme: light !important;
        /* design-system.css define `html, body { height: 100% }`. Na impressão isso
           TRUNCA o documento na 1ª página (o resto do histórico some). */
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }
    html body.pdoc-printing,
    html[data-theme] body.pdoc-printing,
    html[data-theme="dark"] body.pdoc-printing,
    html[data-theme="light"] body.pdoc-printing {
        background: #fff !important;
        background-image: none !important;
        color: #1f2937 !important;
        font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    body.pdoc-printing > *:not(.pdoc-sheet) { display: none !important; }

    body.pdoc-printing .pdoc-sheet {
        display: block !important;
        position: static;
        width: 100%;
        margin: 0;
        padding: 0;
        height: auto !important;
        overflow: visible !important;
        font-size: 10.5pt;
        line-height: 1.5;
    }

    /* ---------- 2) Reset dentro da folha: nada herda cor do tema ----------
       Cobre inclusive HTML colado do editor (Quill) com cor inline. As cores
       próprias do documento são reaplicadas abaixo, com especificidade maior. */
    body.pdoc-printing .pdoc-sheet,
    body.pdoc-printing .pdoc-sheet * {
        color: #1f2937 !important;
        background-color: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
        filter: none !important;
        border-color: #dbe2ea !important;
    }

    /* ---------- 3) Cabeçalho ---------- */
    body.pdoc-printing .pdoc-sheet .pdoc-head {
        display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
        padding-bottom: 9px; margin-bottom: 16px;
        border-bottom: 2px solid #0d8f86 !important;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-brand { display: flex; align-items: center; gap: 9px; }
    /* O símbolo da marca é verde-água claro (#35e0d0): em papel branco sairia
       lavado. Escurece só na impressão, preservando o matiz da marca. */
    body.pdoc-printing .pdoc-sheet .pdoc-brand img {
        width: 30px; height: 28px;
        filter: brightness(.62) saturate(1.3) !important;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-brand__name {
        font-family: 'Outfit', system-ui, sans-serif; font-size: 15pt; font-weight: 800;
        letter-spacing: .02em; color: #0f172a !important; line-height: 1;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-brand__sub {
        font-size: 7pt; letter-spacing: .16em; text-transform: uppercase;
        color: #6b7785 !important; margin-top: 3px; font-weight: 700;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-head__right { text-align: right; }
    body.pdoc-printing .pdoc-sheet .pdoc-doctype {
        font-size: 7.5pt; letter-spacing: .16em; text-transform: uppercase;
        color: #6b7785 !important; font-weight: 700;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-docnum {
        font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
        font-size: 14pt; font-weight: 800; color: #0f172a !important; margin-top: 2px;
    }

    /* ---------- 4) Título + chips ---------- */
    body.pdoc-printing .pdoc-sheet .pdoc-title {
        font-family: 'Outfit', system-ui, sans-serif; font-size: 15pt; font-weight: 800;
        color: #0f172a !important; margin: 0 0 8px; line-height: 1.25;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
    body.pdoc-printing .pdoc-sheet .pdoc-chip {
        font-size: 7.5pt; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
        border: 1px solid #cbd5e1 !important; border-radius: 999px; padding: 2px 9px;
        color: #334155 !important; background-color: #f1f5f9 !important;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-chip--ok   { border-color: #86c9ae !important; background-color: #e8f5ef !important; color: #12694c !important; }
    body.pdoc-printing .pdoc-sheet .pdoc-chip--warn { border-color: #e2bc84 !important; background-color: #fbf1df !important; color: #8a5a08 !important; }
    body.pdoc-printing .pdoc-sheet .pdoc-chip--crit { border-color: #e0a3a6 !important; background-color: #fbe9ea !important; color: #9b2c2c !important; }
    body.pdoc-printing .pdoc-sheet .pdoc-chip--info { border-color: #a9c8e8 !important; background-color: #e7f0fa !important; color: #1d4f86 !important; }

    /* ---------- 5) Grade de metadados ---------- */
    body.pdoc-printing .pdoc-sheet .pdoc-meta {
        display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px 18px;
        padding: 12px 14px; border: 1px solid #dbe2ea !important; border-radius: 8px;
        background-color: #fafbfc !important; margin-bottom: 18px; page-break-inside: avoid;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-meta__k {
        font-size: 7pt; letter-spacing: .1em; text-transform: uppercase;
        color: #78838f !important; font-weight: 800;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-meta__v {
        font-size: 10pt; color: #111827 !important; font-weight: 600; margin-top: 1px;
        word-break: break-word;
    }

    /* ---------- 6) Seções ---------- */
    body.pdoc-printing .pdoc-sheet .pdoc-section { margin-bottom: 16px; }
    body.pdoc-printing .pdoc-sheet .pdoc-section__h {
        font-size: 8.5pt; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
        color: #0b7a72 !important; margin: 0 0 8px; padding-bottom: 5px;
        border-bottom: 1px solid #e2e8f0 !important;
        break-after: avoid; page-break-after: avoid;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-body { font-size: 10.5pt; color: #1f2937 !important; orphans: 3; widows: 3; }
    body.pdoc-printing .pdoc-sheet .pdoc-body p { margin: 0 0 7px; }
    body.pdoc-printing .pdoc-sheet .pdoc-body ul,
    body.pdoc-printing .pdoc-sheet .pdoc-body ol { margin: 0 0 7px 18px; }
    body.pdoc-printing .pdoc-sheet .pdoc-body img { max-width: 100%; height: auto; }
    body.pdoc-printing .pdoc-sheet .pdoc-body a { color: #0f172a !important; text-decoration: underline; }
    body.pdoc-printing .pdoc-sheet .pdoc-body table { width: 100%; border-collapse: collapse; font-size: 9.5pt; margin: 6px 0; }
    body.pdoc-printing .pdoc-sheet .pdoc-body td,
    body.pdoc-printing .pdoc-sheet .pdoc-body th { border: 1px solid #dbe2ea !important; padding: 5px 7px; text-align: left; }
    body.pdoc-printing .pdoc-sheet .pdoc-body th { background-color: #f1f5f9 !important; font-weight: 700; }

    /* Contagem discreta ao lado do título da seção */
    body.pdoc-printing .pdoc-sheet .pdoc-section__n {
        font-weight: 700; color: #78838f !important; letter-spacing: .04em;
    }

    /* ---------- 6b) Bloco "carta": a mensagem inicial do protocolo ----------
       Destaca o texto do requerente como um documento citado, com filete na cor
       da marca. Texto justificado + hifenização (pt-BR) para leitura em A4. */
    body.pdoc-printing .pdoc-sheet .pdoc-letter {
        padding: 12px 16px;
        border: 1px solid #e4eaf0 !important;
        border-left: 3px solid #0b7a72 !important;
        border-radius: 0 8px 8px 0;
        background-color: #fbfcfc !important;
        text-align: justify;
        hyphens: auto;
        -webkit-hyphens: auto;
        font-size: 10.5pt;
        line-height: 1.55;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-letter p { margin: 0 0 7px; }
    body.pdoc-printing .pdoc-sheet .pdoc-letter p:last-child { margin-bottom: 0; }
    /* Parágrafo que só tem <br> (separador do editor): vira respiro, não linha cheia */
    body.pdoc-printing .pdoc-sheet .pdoc-letter p:has(> br:only-child) {
        height: 0; margin: 0 0 9px; overflow: hidden;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-letter > *:first-child { margin-top: 0; }
    body.pdoc-printing .pdoc-sheet .pdoc-letter strong,
    body.pdoc-printing .pdoc-sheet .pdoc-letter b { font-weight: 700; color: #0f172a !important; }

    /* ---------- 7) Linha do tempo ---------- */
    body.pdoc-printing .pdoc-sheet .pdoc-tl__item {
        position: relative; padding: 0 0 11px 15px; margin-left: 3px;
        border-left: 2px solid #dbe2ea !important; page-break-inside: avoid;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__item:last-child { border-left-color: transparent !important; padding-bottom: 0; }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__item::before {
        content: ''; position: absolute; left: -5px; top: 4px;
        width: 8px; height: 8px; border-radius: 50%; background-color: #0b7a72 !important;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__head { font-size: 9pt; margin-bottom: 2px; }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__who { font-weight: 800; color: #0f172a !important; }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__when {
        color: #6b7785 !important; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
        font-size: 8.5pt;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-tl__txt { font-size: 10pt; color: #1f2937 !important; white-space: pre-wrap; }

    body.pdoc-printing .pdoc-sheet .pdoc-empty { font-style: italic; color: #78838f !important; font-size: 10pt; }

    /* ---------- 8) Rodapé (repete em todas as páginas) ---------- */
    /* Rodapé ESTÁTICO no fim do documento. `position: fixed` no Chrome fica preso
       à 1ª página e ainda sobrepõe o conteúdo — a numeração de páginas fica a
       cargo do próprio diálogo de impressão do navegador. */
    body.pdoc-printing .pdoc-sheet .pdoc-foot {
        display: flex; justify-content: space-between; align-items: center; gap: 10px;
        margin-top: 20px; padding-top: 6px; border-top: 1px solid #e2e8f0 !important;
        font-size: 7.5pt; color: #78838f !important;
        page-break-inside: avoid;
    }
    body.pdoc-printing .pdoc-sheet .pdoc-foot strong { color: #475569 !important; font-weight: 700; }
}
