/* ============================================================
   IMPRESSAO-PAGINAS — PDF das páginas-artigo
   (material-de-apoio.html e exercicios.html).

   Não confundir com `impressao.css`, que é da APRESENTAÇÃO (um slide
   por página, paisagem). Aqui é A4 retrato.

   Mesma identidade visual dos slides: verde institucional, selos
   coloridos, blocos de código escuros. As cores de fundo são impressas
   por `print-color-adjust: exact`, que faz o navegador imprimi-las
   mesmo com "Gráficos de plano de fundo" desmarcado.

   Estrutura do PDF da lista de exercícios:
     capa → uma questão por folha → gabarito → resoluções (opcional)
   Os blocos que só existem no papel (espaço para cálculos, seção de
   resoluções) são montados por js/impressao-paginas.js.
   ============================================================ */

/* Blocos exclusivos do papel ficam fora da tela. */
@media screen {
  .somente-impressao {
    display: none !important;
  }
}

@media print {

  /* ================= Página ================= */

  @page {
    size: A4 portrait;
    margin: 20mm 16mm 18mm;

    @top-left {
      content: "IFPE · Campus Paulista · Matemática Aplicada";
      font-family: "Segoe UI", Arial, sans-serif;
      font-size: 7.5pt;
      color: #4c6e22;
      vertical-align: bottom;
      padding-bottom: 4mm;
    }

    @top-right {
      content: "Determinantes na Computação";
      font-family: "Segoe UI", Arial, sans-serif;
      font-size: 7.5pt;
      font-weight: 700;
      color: #4c6e22;
      vertical-align: bottom;
      padding-bottom: 4mm;
    }

    @bottom-right {
      content: counter(page) " / " counter(pages);
      font-family: "Segoe UI", Arial, sans-serif;
      font-size: 8pt;
      color: #6b7278;
      vertical-align: top;
      padding-top: 4mm;
    }
  }

  /* A capa não leva cabeçalho nem número. */
  @page :first {
    @top-left { content: none; }
    @top-right { content: none; }
    @bottom-right { content: none; }
  }

  /* ================= Base ================= */

  html {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  html,
  body {
    background: #fff !important;
    color: #16191c;
    font-size: 10.5pt;
    line-height: 1.5;
  }

  .pagina {
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .link-voltar,
  .ver-no-slide,
  .barra-impressao,
  .somente-tela {
    display: none !important;
  }

  a {
    color: inherit;
    text-decoration: none;
  }

  h1, h2, h3, h4 {
    break-after: avoid;
    page-break-after: avoid;
  }

  p, li {
    orphans: 3;
    widows: 3;
  }

  .formula-material,
  .tabela-material,
  .bloco-codigo,
  .destaque,
  .resposta-final,
  .lembrete-regras,
  .alternativas,
  .sumario {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  /* ---------- Código: igual à tela e aos slides (fundo escuro) ---------- */

  .bloco-codigo {
    border: none;
    border-radius: 2.5mm;
    padding: 4mm 5mm;
    margin: 4mm 0;
  }

  .bloco-codigo pre {
    font-size: 8.5pt;
    line-height: 1.55;
    white-space: pre-wrap;
    word-break: break-word;
  }

  .topico code,
  .exercicio code,
  .folha-resolucao code {
    background: #f0f2f3;
    border: 0.5pt solid #c7ccd1;
    border-radius: 1mm;
    padding: 0 1mm;
    font-size: 0.9em;
  }

  .bloco-codigo code {
    background: none;
    border: none;
    padding: 0;
  }

  /* ---------- Tabelas ---------- */

  .tabela-material {
    font-size: 9.5pt;
    margin: 4mm 0;
  }

  .tabela-material th,
  .tabela-material td {
    padding: 1.6mm 2.5mm;
    border-bottom: 0.5pt solid #c7ccd1;
  }

  .tabela-material thead th {
    color: #4c6e22;
    border-bottom: 1.5pt solid #8cc63f;
  }

  .tabela-material .linha-destaque td {
    background: #f3f9ea;
    color: #16191c;
    font-weight: 700;
  }

  .resposta-final,
  .destaque {
    border-left: 3pt solid #c81820;
    background: #fdf1f1;
    padding: 2.5mm 5mm;
  }

  .dificuldade {
    padding: 0.6mm 2.5mm;
    font-size: 7.5pt;
  }

  /* ================= Material de apoio ================= */

  .pagina-material .cabecalho-material {
    border-bottom: 1.5pt solid #8cc63f;
    padding-bottom: 4mm;
    margin-bottom: 6mm;
  }

  .pagina-material .cabecalho-material img {
    width: 38mm;
  }

  .pagina-material h1.titulo-material {
    font-size: 26pt;
    color: #4c6e22;
    margin: 0 0 2mm;
  }

  .pagina-material .subtitulo-material {
    font-size: 11pt;
    color: #3a4147;
    margin-bottom: 6mm;
  }

  .pagina-material .sumario {
    background: #f3f9ea;
    border: none;
    border-left: 3pt solid #8cc63f;
    border-radius: 0 2mm 2mm 0;
    padding: 4mm 6mm;
    margin-bottom: 0;
  }

  .pagina-material .sumario h2 {
    color: #4c6e22;
  }

  /* Cada tópico começa em folha nova, como um capítulo. */
  .pagina-material .topico {
    break-before: page;
    page-break-before: always;
    border-top: none;
    margin-top: 0;
    padding-top: 0;
  }

  .pagina-material .topico-rotulo {
    display: inline-block;
    background: #4c6e22;
    color: #fff;
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 1mm 3mm;
    border-radius: 1mm;
    margin-bottom: 2mm;
  }

  .pagina-material .topico h2 {
    font-size: 18pt;
    color: #4c6e22;
    border-bottom: 1.5pt solid #8cc63f;
    padding-bottom: 2mm;
    margin-bottom: 4mm;
  }

  .pagina-material .topico h3 {
    font-size: 12pt;
    color: #16191c;
    margin: 5mm 0 2mm;
  }

  .pagina-material .rodape-material {
    break-before: avoid;
    margin-top: 10mm;
    padding-top: 3mm;
    border-top: 0.75pt solid #c7ccd1;
    font-size: 8.5pt;
    color: #6b7278;
  }

  /* ================= Lista de exercícios ================= */

  /* ---------- Capa ---------- */

  .pagina-exercicios .capa-lista {
    display: flex;
    flex-direction: column;
    min-height: 255mm;
  }

  .pagina-exercicios .cabecalho-material {
    display: flex;
    align-items: center;
    gap: 8mm;
    margin: 0;
    padding-bottom: 6mm;
    border-bottom: 2pt solid #8cc63f;
  }

  .pagina-exercicios .cabecalho-material img {
    width: 46mm;
    flex: 0 0 auto;
  }

  .identificacao {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.8mm 4mm;
    margin: 0;
    font-size: 9pt;
  }

  .identificacao dt {
    color: #4c6e22;
    font-weight: 700;
  }

  .identificacao dd {
    margin: 0;
    color: #16191c;
  }

  .pagina-exercicios h1.titulo-material {
    font-size: 34pt;
    line-height: 1.1;
    color: #16191c;
    margin: 24mm 0 0;
  }

  .titulo-tema {
    font-size: 20pt;
    font-weight: 700;
    color: #4c6e22;
    margin: 1mm 0 8mm;
  }

  .pagina-exercicios .subtitulo-material {
    font-size: 11pt;
    color: #3a4147;
    max-width: 150mm;
    margin: 0 0 8mm;
  }

  .pagina-exercicios .lembrete-regras {
    background: #f3f9ea;
    border: none;
    border-left: 3pt solid #8cc63f;
    border-radius: 0 2mm 2mm 0;
    padding: 4mm 6mm 1mm;
    margin: 0 0 6mm;
  }

  .pagina-exercicios .lembrete-regras p {
    color: #3a4147;
  }

  .pagina-exercicios .legenda-dificuldade {
    margin: 0;
    font-size: 9.5pt;
    color: #3a4147;
  }

  .equipe {
    margin-top: auto;
    border-top: 0.75pt solid #c7ccd1;
    padding-top: 5mm;
  }

  .equipe h2 {
    font-size: 8pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #4c6e22;
    margin: 0 0 2mm;
  }

  .equipe ul {
    list-style: none;
    margin: 0;
    padding: 0;
    columns: 2;
    column-gap: 10mm;
    font-size: 10pt;
  }

  .equipe li {
    padding: 0.6mm 0;
  }

  /* ---------- Uma questão por folha ----------
     A questão ocupa a folha toda: o "espaço para cálculos" cresce até
     o pé da página (flex: 1). Usa min-height, e não height: se um
     enunciado um dia não couber, a questão continua na folha seguinte
     em vez de ter o texto cortado. A altura fica alguns milímetros
     abaixo da área útil da A4 (297 − 20 − 18 = 259 mm) para que
     arredondamentos nunca empurrem um pedaço vazio para outra folha. */

  .pagina-exercicios .exercicio {
    break-before: page;
    page-break-before: always;
    display: flex;
    flex-direction: column;
    min-height: 252mm;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
  }

  .pagina-exercicios .exercicio-cabecalho {
    display: flex;
    align-items: center;
    gap: 3mm;
    margin: 0 0 6mm;
    padding-bottom: 3.5mm;
    border-bottom: 1.5pt solid #8cc63f;
  }

  .pagina-exercicios .exercicio-numero {
    display: inline-flex;
    align-items: baseline;
    gap: 1.5mm;
    background: #4c6e22;
    color: #fff;
    font-size: 17pt;
    font-weight: 700;
    line-height: 1;
    padding: 2mm 4mm;
    border-radius: 2mm;
  }

  .pagina-exercicios .exercicio-numero::before {
    content: "Questão";
    font-size: 9pt;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .pagina-exercicios .exercicio-topico {
    font-size: 9pt;
    color: #3a4147;
  }

  .pagina-exercicios .enunciado {
    font-size: 11pt;
    line-height: 1.55;
    margin: 0 0 3.5mm;
  }

  .pagina-exercicios .destaque-enunciado {
    background: #f0f2f3;
    border: none;
    border-radius: 2mm;
    padding: 3mm 5mm;
  }

  .pagina-exercicios .exercicio .formula-material {
    margin: 4mm 0;
  }

  /* Alternativas como linhas com a letra num círculo. */
  .pagina-exercicios .alternativas {
    list-style: none;
    counter-reset: alternativa;
    display: grid;
    gap: 2mm;
    margin: 4mm 0;
    padding: 0;
  }

  .pagina-exercicios .alternativas li {
    counter-increment: alternativa;
    display: flex;
    align-items: flex-start;
    gap: 3.5mm;
    margin: 0;
    padding: 2.2mm 4mm 2.2mm 2.5mm;
    border: 0.75pt solid #c7ccd1;
    border-radius: 2mm;
    font-size: 10.5pt;
    line-height: 1.45;
  }

  .pagina-exercicios .alternativas li::marker {
    content: none;
  }

  .pagina-exercicios .alternativas li::before {
    content: counter(alternativa, upper-alpha);
    flex: 0 0 6mm;
    height: 6mm;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #4c6e22;
    color: #fff;
    font-size: 8.5pt;
    font-weight: 700;
    line-height: 1;
  }

  /* No PDF a resolução não fica sob a questão: vai para o final. */
  .pagina-exercicios .exercicio details {
    display: none !important;
  }

  .espaco-calculos {
    flex: 1 1 auto;
    min-height: 40mm;
    margin-top: 5mm;
    display: flex;
    flex-direction: column;
    border: 0.75pt solid #c7ccd1;
    border-radius: 2mm;
    overflow: hidden;
    background-color: #fff;
    background-image:
      linear-gradient(#e6e9ec 0.3mm, transparent 0.3mm),
      linear-gradient(90deg, #e6e9ec 0.3mm, transparent 0.3mm);
    background-size: 5mm 5mm;
  }

  .espaco-calculos__rotulo {
    align-self: flex-start;
    margin: 2.5mm;
    padding: 0.8mm 2.5mm;
    background: #fff;
    border-radius: 1mm;
    font-size: 7pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7278;
  }

  .espaco-calculos__resposta {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 3mm;
    padding: 2.5mm 4mm;
    background: #f3f9ea;
    border-top: 0.75pt solid #c7ccd1;
    font-size: 9pt;
    font-weight: 700;
    color: #4c6e22;
  }

  .bolha {
    width: 6.5mm;
    height: 6.5mm;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1pt solid #4c6e22;
    border-radius: 50%;
    background: #fff;
    font-size: 8pt;
  }

  /* ---------- Gabarito ---------- */

  .pagina-exercicios .gabarito {
    break-before: page;
    page-break-before: always;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
  }

  .pagina-exercicios .gabarito h2 {
    font-size: 20pt;
    letter-spacing: 0;
    text-transform: none;
    color: #4c6e22;
    margin: 0 0 8mm;
    padding-bottom: 3.5mm;
    border-bottom: 1.5pt solid #8cc63f;
  }

  .pagina-exercicios .tabela-gabarito {
    width: 100%;
    border-collapse: separate;
    border-spacing: 3mm;
    margin: 0 -3mm;
  }

  .pagina-exercicios .tabela-gabarito td {
    border: none;
    border-radius: 2mm;
    background: #f3f9ea;
    padding: 5mm 2mm;
    text-align: center;
    font-size: 12pt;
    color: #3a4147;
  }

  .pagina-exercicios .tabela-gabarito td strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 8mm;
    height: 8mm;
    margin-left: 2mm;
    border-radius: 50%;
    background: #4c6e22;
    color: #fff;
    font-size: 11pt;
  }

  .nota-gabarito {
    margin-top: 6mm;
    font-size: 10pt;
    color: #3a4147;
  }

  .pagina-exercicios .rodape-material {
    margin-top: 12mm;
    padding-top: 3mm;
    border-top: 0.75pt solid #c7ccd1;
    font-size: 8.5pt;
    color: #6b7278;
  }

  /* ---------- Resoluções no final ---------- */

  .secao-resolucoes__titulo {
    font-size: 20pt;
    color: #4c6e22;
    margin: 0 0 6mm;
  }

  .folha-resolucao {
    break-before: page;
    page-break-before: always;
  }

  .folha-resolucao__cabecalho {
    display: flex;
    align-items: center;
    gap: 3mm;
    margin: 0 0 5mm;
    padding-bottom: 3.5mm;
    border-bottom: 1.5pt solid #8cc63f;
  }

  .folha-resolucao__selo {
    background: #4c6e22;
    color: #fff;
    font-size: 11pt;
    font-weight: 700;
    padding: 2mm 4mm;
    border-radius: 2mm;
  }

  .folha-resolucao__topico {
    margin-left: auto;
    font-size: 9pt;
    color: #3a4147;
  }

  .folha-resolucao .resolucao {
    margin: 0;
  }

  .folha-resolucao .resposta-letra {
    display: inline-block;
    background: #f3f9ea;
    border: 1pt solid #8cc63f;
    border-radius: 2mm;
    padding: 2mm 5mm;
    margin: 0 0 4mm;
    font-size: 12pt;
    color: #16191c;
  }

  .folha-resolucao .resolucao p {
    font-size: 10.5pt;
    margin: 0 0 3mm;
  }

  /* Impressão "só as questões". */
  body.impressao-sem-resolucoes .secao-resolucoes,
  body.impressao-sem-resolucoes .nota-gabarito {
    display: none !important;
  }
}
