/* Impressão do detalhe de processo (Fase 2A).
 *
 * Carregado com media="print": nada aqui vale na tela.
 * Todas as regras são escopadas em `.jd-ext`, que só existe enquanto o detalhe
 * do processo está aberto — nenhuma outra tela do app é afetada.
 *
 * A regra `@page` NÃO mora aqui: ela é de documento, não dá para escopar, e esta
 * folha é carregada no app inteiro. Ela é injetada e removida por
 * `JDProcesso.imprimir()`, junto com o título temporário.
 *
 * As classes `print:hidden` do bundle externo continuam responsáveis por esconder
 * botões, chat, notas, modal e rodapé — aqui só tratamos o que sobra no papel.
 */
@media print {

  /* ── folha ────────────────────────────────────────────────────────────── */
  /* Única regra fora do escopo `.jd-ext`, e por um motivo concreto: o marfim do
     `body` é o fundo da tela do app e o navegador o usa para pintar a folha
     inteira. Onde o conteúdo termina — a última página — ele aparecia como uma
     mancha grande de tinta. Fica presa a `body.jd-processo-fullscreen`, que só
     existe enquanto o detalhe do processo está aberto. */
  body.jd-processo-fullscreen { background: #fff !important; }

  /* O fundo cinza da tela vira branco, e a página não força mais uma altura
     mínima de viewport (senão um processo curto gastaria uma folha inteira). */
  .jd-ext .min-h-screen { min-height: 0 !important; background: #fff !important; }

  /* Sem sidebar nem topbar, a folha inteira é do conteúdo. O padding lateral
     dos dois contêineres de layout sai porque a margem do @page já cuida disso. */
  .jd-ext .mx-auto.max-w-7xl {
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Respiro no fim do conteúdo é coisa de tela. No papel, esses 20px sobrando
     depois do último cartão bastavam para empurrar uma folha inteira em branco. */
  .jd-ext main { padding-bottom: 0 !important; }

  /* ── legibilidade ─────────────────────────────────────────────────────── */
  /* Nada de rolagem interna: o cartão precisa sair inteiro no papel. */
  .jd-ext .overflow-y-auto,
  .jd-ext .overflow-hidden { overflow: visible !important; max-height: none !important; }

  /* Texto cortado na tela por espaço sai completo no papel. */
  .jd-ext .line-clamp-1,
  .jd-ext .line-clamp-2 {
    -webkit-line-clamp: unset !important;
    display: block !important;
    overflow: visible !important;
  }
  .jd-ext .truncate {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  /* Números CNJ, URLs e nomes de arquivo não podem estourar a margem. */
  .jd-ext { overflow-wrap: break-word; word-break: break-word; }

  /* Link sem o endereço é inútil impresso. */
  .jd-ext a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 10px;
    color: #64748b;
    word-break: break-all;
  }

  /* Sombras não existem no papel; o modal é a única peça que as usa e ele já
     está escondido, mas a regra fica como rede de segurança. */
  .jd-ext .shadow-xl { box-shadow: none !important; }

  /* ── elementos que dependem de fundo ──────────────────────────────────── */
  /* O navegador descarta fundos e sombras quando "gráficos de fundo" está
     desligado — o padrão. Sem isso, os traços da linha do tempo somem e as
     tarjas viram texto solto com espaço estranho em volta. São detalhes de
     conteúdo, não decoração, então imprimem sempre. */
  .jd-ext .w-px,
  .jd-ext .ring-1 {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ── quebra de página ─────────────────────────────────────────────────── */
  /* Cada item (movimentação, documento, processo relacionado, linha de dados)
     sai inteiro. Nos cartões não se aplica `avoid`: o de movimentações pode
     passar de uma folha, e forçar a quebra criaria páginas em branco. */
  .jd-ext li { break-inside: avoid; page-break-inside: avoid; }
  .jd-ext dt, .jd-ext dd { break-inside: avoid; page-break-inside: avoid; }
  /* Blocos curtos marcados no componente (hoje: o quadro de partes e advogados),
     que rachavam deixando o título numa folha e o conteúdo na seguinte. */
  .jd-ext .jd-bloco-unido { break-inside: avoid; page-break-inside: avoid; }

  /* Título não fica órfão no rodapé, separado do conteúdo que anuncia. */
  .jd-ext h1, .jd-ext h2, .jd-ext h3 { break-after: avoid; page-break-after: avoid; }
}
