/* impressao.css — o diagnóstico vira documento.
 *
 * Não é a página web impressa: é o papel que o empresário leva ao contador.
 * O navegador gera o PDF sozinho, sem biblioteca e sem servidor. Segue o
 * print.css do guia (DESIGN.md §5): tema forçado, trilho vira numeração.
 */

@media print {

  /* ---------- 1. tema de papel ----------
     Os seletores de data-theme têm a mesma especificidade da regra que
     sobrescrevem em tokens.css, então os três precisam ser reescritos. */
  :root,
  :root[data-theme="dark"],
  :root[data-theme="light"] {
    --bg: #ffffff;
    --surface: #ffffff;
    --text: #10233a;
    --muted: #5b6b7d;
    --border: #dfe4ea;
    --rail: #031653;
    --interactive: #031653;
    --viggo-yellow: #031653;    /* amarelo não imprime legível */
    --btn-bg: #ffffff;
    --btn-ink: #031653;
    --progress: #031653;
  }

  body {
    background: #fff;
    color: var(--text);
    font-size: 9.5pt;
    line-height: 1.5;
  }

  /* ---------- 2. o que é tela ---------- */
  .dg-progresso,
  .dg-acoes,
  .dg-cruzado,
  .dg-cadastro,
  .dg-parcial__travado,
  .dg-no,
  .dg-detalhe > summary { display: none !important; }

  /* O h1 é âncora de leitor de tela; no papel o cabeçalho já nomeia o
     documento, então repeti-lo seria título duplicado. */
  .dg-titulo-oculto { display: none !important; }

  /* ---------- 3. cabeçalho ---------- */
  .site-header {
    border-bottom: .75pt solid var(--rail);
    padding: 0 0 6pt;
    margin-bottom: 14pt;
    height: auto;
    position: static;
  }
  .brand-sub { font-size: 9pt; color: var(--muted); }

  .dg-palco {
    max-width: none;
    padding: 0;
    min-height: 0;
  }
  .dg-palco::before { display: none !important; }

  /* ---------- 4. ficha do documento ----------
     Quem, quando e sobre o quê — antes de qualquer número. */
  .dg-ficha {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2pt 24pt;
    margin: 0 0 13pt;
    padding: 7pt 10pt;
    background: #f7f9fb;
    border: .5pt solid var(--border);
  }
  .dg-ficha > div { display: flex; justify-content: space-between; gap: 10pt; }
  .dg-ficha dt { color: var(--muted); font-size: 8pt; }
  .dg-ficha dd {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 8.5pt;
    font-variant-numeric: tabular-nums;
  }

  /* ---------- 5. tipografia ---------- */
  .dg-resultado__rotulo {
    font-size: 7.5pt;
    letter-spacing: .1em;
    color: var(--muted);
  }
  .dg-resultado__numero {
    font-size: 21pt;
    line-height: 1.05;
    margin: 2pt 0 6pt;
  }
  .dg-resultado__numero span { font-size: 9pt; margin-top: 1pt; }
  .dg-resultado__frase { font-size: 10pt; max-width: 62ch; margin-bottom: 10pt; }

  .dg-secundario h3,
  .dg-plano h3,
  .dg-memoria h3 {
    font-size: 10.5pt;
    margin: 0 0 8pt;
    padding-bottom: 3pt;
    border-bottom: .5pt solid var(--border);
  }

  /* ---------- 6. gráfico proporcional ----------
     Na tela a barra é o herói; no papel é evidência e não pode comer meia
     página. Os anos ficam numa linha só: a alternância de altura resolvia
     aperto de celular e no papel lê como desalinho. */
  .dg-gtransicao { margin: 10pt 0 4pt; break-inside: avoid; }
  /* max-height encolheria a largura junto (preserveAspectRatio) e deixaria o
     gráfico minúsculo no centro da folha. Limitar a largura preserva a
     proporção e ocupa a coluna de texto. */
  .dg-gtransicao svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 52mm;
  }
  .dg-gtransicao figcaption { font-size: 7.5pt; margin-top: 2pt; }
  .dg-eixo { font-size: 7.5px; }
  .dg-eixo--marco { font-weight: 700; }
  /* No papel há largura de sobra: a alternância de altura vira desalinho. */
  .dg-eixo--alt { transform: none; }

  .dg-barra { fill: #2c4272; opacity: 1; }
  .dg-barra--sobe { fill: #031653; }
  .dg-barra--hoje { fill: #ffffff; stroke: #8795ab; stroke-width: .6; }
  .dg-linha-hoje { stroke: #8795ab; stroke-width: .6; opacity: 1; }
  .dg-rotulo-hoje { fill: var(--muted); }

  /* ---------- 7. barras de regime ---------- */
  .dg-gregimes { margin: 8pt 0 10pt; break-inside: avoid; }
  .dg-gbarra { margin-bottom: 6pt; font-size: 9pt; }
  .dg-gbarra__trilha { height: 7pt; background: #eef1f5; }
  .dg-gbarra__preenche { background: #2c4272 !important; opacity: 1; }
  .dg-gbarra--melhor .dg-gbarra__preenche { background: #031653 !important; }

  /* A tabela repete o que as barras já mostram. Some do papel: documento
     limpo diz cada coisa uma vez. */
  .dg-tabela { display: none !important; }

  /* ---------- 8. memória de cálculo ----------
     É o bloco que o contador confere linha a linha — o mais importante do
     documento depois do número. */
  .dg-memoria {
    margin: 9pt 0;
    padding: 8pt 11pt;
    border: .5pt solid var(--border);
    border-radius: 0;
    box-shadow: none;
    break-inside: avoid;
  }
  .dg-memoria__lista > div { padding: 3pt 0; border-bottom: .5pt solid #eef1f5; }
  .dg-memoria__lista dt { font-size: 9pt; }
  .dg-memoria__lista dd { font-size: 9.5pt; }
  .dg-memoria__total { border-top: .75pt solid var(--rail); padding-top: 5pt !important; }
  .dg-memoria__nota { font-size: 8pt; margin-top: 6pt; max-width: 66ch; }

  /* ---------- 9. valores por ano ----------
     O gráfico acima já mostra a curva inteira, ano a ano. Repetir os mesmos
     oito valores em lista custa 50mm — é o que empurrava o documento para uma
     segunda folha com dois terços vazios. Na tela a lista continua, atrás do
     "ver o valor de cada ano", para quem quer o número exato. */
  .dg-detalhe { display: none !important; }

  /* ---------- 10. plano de ação ---------- */
  .dg-plano { margin: 10pt 0; }
  .dg-plano h3 { break-after: avoid; }
  .dg-plano li { break-inside: avoid; }
  .dg-plano ol { padding-left: 14pt; gap: 4pt; }
  .dg-plano li { font-size: 9.5pt; }

  /* O bloco secundário é o ângulo da OUTRA página: na tela convida a
     explorar, no papel é conteúdo repetido — e são os 81mm que estouravam a
     folha. Sem ele o documento fecha em uma página. */
  .dg-secundario { display: none !important; }

  /* A decisão do Simples híbrido vive na TELA: é lá que ela é acionável, e
     tem prazo que expira. No papel a data fica no plano de ação e o assunto é
     coberto pela tabela dos três momentos. */
  .dg-prazo { display: none !important; }

  .dg-ressalva {
    margin: 8pt 0;
    padding-left: 8pt;
    font-size: 8.5pt;
    border-left: .5pt solid var(--border);
  }

  /* ---------- 11. ressalva legal ----------
     Protege a Viggo: nunca pode ficar órfã numa página que ninguém lê. */
  .dg-aviso {
    break-before: avoid;
    margin-top: 8pt;
    padding-top: 4pt;
    border-top: .5pt solid var(--border);
    font-size: 6.8pt;
    line-height: 1.35;
    color: var(--muted);
    max-width: none;
    columns: 2;
    column-gap: 14pt;
  }
  .dg-plano { margin: 8pt 0; }
  .dg-plano li { font-size: 9pt; }
  .dg-plano ol { gap: 3pt; }

  /* ---------- 12. segunda folha: o anexo ----------
     A primeira folha responde a pergunta; esta sustenta a resposta. Quebra
     deliberada, não sobra de conteúdo que não coube. */
  .dg-segunda-folha {
    display: block !important;
    break-before: page;
  }
  .dg-anexo__titulo {
    font-family: var(--font-display);
    font-size: 14pt;
    margin: 0 0 4pt;
    padding-bottom: 4pt;
    border-bottom: .75pt solid var(--rail);
  }
  .dg-anexo__intro {
    margin: 0 0 14pt;
    font-size: 8.5pt;
    color: var(--muted);
    max-width: 74ch;
  }
  .dg-anexo { margin-bottom: 12pt; break-inside: avoid; }

  /* Medido: o anexo com a curva de crédito pede 336mm para 266 de folha. Ela
     custa 85mm e diz o mesmo que o bloco de crédito repassável da tela, que é
     mais direto — mostra o que está em jogo em reais, não uma curva. Sai do
     papel, fica na tela. */
  .dg-anexo--curva { display: none !important; }
  /* A lista de anos pode se dividir entre folhas: são pares ano/valor
     independentes. Mantê-la indivisível empurrava 36mm inteiros para uma
     terceira folha quase vazia. */
  .dg-anexo--anos { break-inside: auto; }
  .dg-anexo--anos h3 { break-after: avoid; }
  .dg-anos__item { break-inside: avoid; }

  /* Anos em duas colunas: em lista única iam para uma terceira folha quase
     vazia. */
  .dg-anos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5pt 12pt;
    margin: 0;
  }
  .dg-anos__item {
    display: block;
    padding-bottom: 2pt;
    border-bottom: .5pt solid #eef1f5;
  }
  .dg-anos dt {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 8pt;
    color: var(--muted);
  }
  .dg-anos dd {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 7.5pt;
    font-variant-numeric: tabular-nums;
  }
  .dg-anos dd small {
    display: block;
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: 6.5pt;
    line-height: 1.25;
    color: var(--muted);
  }
  .dg-anexo h3 {
    font-size: 10pt;
    margin: 0 0 6pt;
    padding-bottom: 3pt;
    border-bottom: .5pt solid var(--border);
  }
  .dg-anexo__nota {
    margin: 5pt 0 0;
    font-size: 8pt;
    color: var(--muted);
    max-width: 74ch;
  }

  /* Barra empilhada: a soma é o total pago hoje. */
  .dg-pilha {
    display: flex;
    height: 13pt;
    margin-bottom: 8pt;
    border: .5pt solid var(--rail);
  }
  .dg-pilha__parte { background: #ffffff; border-right: .5pt solid var(--rail); }
  .dg-pilha__parte:last-child { border-right: 0; }
  /* O que CBS e IBS substituem vai sólido; o que permanece fica vazado, para
     a distinção sobreviver à impressão em preto e branco. */
  .dg-pilha__parte--sai { background: #031653; }

  .dg-legenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.5pt; }
  .dg-legenda__item {
    display: grid;
    grid-template-columns: 9pt 1fr auto 30pt;
    align-items: center;
    gap: 6pt;
    font-size: 8.5pt;
  }
  .dg-legenda__marca {
    width: 7pt; height: 7pt;
    border: .5pt solid var(--rail);
    background: #fff;
  }
  .dg-legenda__item--sai .dg-legenda__marca { background: #031653; }
  .dg-legenda__valor,
  .dg-legenda__fatia {
    font-family: var(--font-display);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right;
  }
  .dg-legenda__fatia { color: var(--muted); }

  /* A tabela some no corpo do documento (item 7) mas o anexo é o lugar dela. */
  .dg-tabela--anexo {
    display: table !important;
    width: 100%;
    font-size: 8.5pt;
    margin: 0;
  }
  .dg-tabela--anexo th {
    background: #eef2f6;
    color: #10233a;              /* herdava branco do estilo de tela */
    font-weight: 700;
    font-size: 8pt;
    text-align: left;
    padding: 4pt 6pt;
    border-bottom: .5pt solid var(--rail);
  }
  .dg-tabela--anexo th + th { text-align: right; }
  .dg-tabela--anexo th:last-child { text-align: right; }
  .dg-tabela--anexo td {
    padding: 3.5pt 6pt;
    border-bottom: .5pt solid #eef1f5;
  }
  .dg-tabela--anexo td + td {
    text-align: right;
    font-family: var(--font-display);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
  }
  .dg-tabela--anexo td:last-child { color: var(--muted); font-size: 8pt; }
  .dg-tabela--anexo .dg-linha--destaque { background: #f7f9fb; font-weight: 700; }

  /* Três momentos: cada coluna é um ano, com débito, crédito e líquido
     empilhados. É a tabela que responde "eu já pago isso hoje?". */
  .dg-momentos .dg-tabela--anexo { table-layout: fixed; }
  .dg-momentos td {
    vertical-align: top;
    text-align: left !important;
    font-family: var(--font-sans) !important;
    font-weight: 400 !important;
    padding: 5pt 6pt;
  }
  .dg-momentos td strong {
    display: block;
    font-family: var(--font-display);
    font-size: 10pt;
    font-variant-numeric: tabular-nums;
  }
  .dg-momentos td small { color: var(--muted); font-size: 7.5pt; }
  .dg-momento__credito,
  .dg-momento__liquida,
  .dg-momento__nota {
    display: block;
    font-size: 8pt;
    font-variant-numeric: tabular-nums;
  }
  .dg-momento__credito { color: var(--muted); margin-top: 2pt; }
  .dg-momento__liquida { font-weight: 700; margin-top: 1pt; }
  .dg-momento__nota {
    font-variant-numeric: normal;
    color: var(--muted);
    font-size: 7.5pt;
    margin-top: 2pt;
  }
  .dg-momentos th { text-align: left !important; }

  /* ---------- 13. página ----------
     Numeração e origem em toda folha: um documento de duas páginas que se
     separa na mesa do contador precisa se reconhecer. */
  @page {
    size: A4;
    margin: 14mm 15mm 17mm;

    @bottom-left {
      content: "Viggo Sistemas · viggo.digital";
      font-size: 7.5pt;
      color: #5b6b7d;
    }
    @bottom-right {
      content: "Página " counter(page) " de " counter(pages);
      font-size: 7.5pt;
      color: #5b6b7d;
    }
  }
}
