/* Autorização de exame — o documento oficial que a paciente leva à clínica.
   Não é tela do app: é papel. Por isso é serifado, sempre claro (papel não
   tem tema escuro) e usa cores literais em vez dos tokens do design system —
   a única exceção da regra "componente só usa token semântico".
   Modelo real: Secretaria Municipal de Saúde de Assunção, PB. */

dialog.auth-dialog {
  /* a folha (210mm) mais o respiro do modal e a barra de rolagem */
  width: min(calc(210mm + 52px), calc(100vw - 24px));
  max-height: calc(100vh - 24px);

  /* a folha é o conteúdo: sobra do modal é margem, não moldura */
  & .modal-body { padding: 16px; }
}

.auth-doc {
  font-family: Georgia, "Times New Roman", serif; color: #1a1a1a;
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  box-shadow: 0 1px 4px rgb(0 0 0 / .12);
  /* A4 de verdade, também na tela: o modal é que se ajusta à folha */
  width: 210mm; min-height: 297mm;
  box-sizing: border-box; margin: 0 auto; padding: 20mm 18mm;
}

.auth-head { display: flex; align-items: center; gap: 22px; margin-bottom: 32px; }

.auth-crest {
  width: 68px; height: 68px; border-radius: 50%; flex: none;
  background: conic-gradient(from 180deg, #0a6b3a, #f2c200, #0a6b3a);
  border: 2px solid #1a1a1a;
}

.auth-org {
  display: flex; flex-direction: column; font-size: 16px; line-height: 1.45;

  & b { font-size: 18px; }
}

.auth-table {
  width: 100%; border-collapse: collapse; font-size: 16px; margin-bottom: 48px;

  & th, & td { border: 1px solid #1a1a1a; padding: 14px 16px; text-align: left; }

  & th { font-weight: 700; background: #fdf6cf; }
}

/* identificação do paciente encosta na tabela do exame */
.auth-table--ident { margin-bottom: 18px; }

.auth-sign {
  display: flex; flex-direction: column; align-items: center; gap: 6px;

  & .auth-sign-line { width: 280px; border-top: 1px solid #1a1a1a; }

  & .auth-sign-label { font-size: 14px; color: #444; }
}

/* Impressão: só o documento vai para o papel. O modal é irmão do <main> no
   layout justamente para esta regra funcionar — some tudo que não contém a
   autorização, incluindo o frame do outro modal. */
@media print {
  body > *:not(:has(.auth-dialog)) { display: none !important; }

  /* !important porque o modal é estilizado por dialog.css com a mesma
     especificidade e vem depois na ordem dos arquivos — sem isto o dialog
     mantém width/max-height de tela e a folha sai recortada no papel. */
  .auth-dialog {
    display: block !important; position: static !important;
    width: auto !important; max-height: none !important; overflow: visible !important;
    margin: 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    background: #fff !important;

    &::backdrop { display: none; }

    & .modal-body { padding: 0 !important; }

    & .actions { display: none !important; }
  }

  .auth-doc {
    border: 0; box-shadow: none; margin: 0;
    zoom: 1 !important; /* a folha volta a ser A4 cheia */
    width: 210mm; min-height: auto;
  }
}

@page { size: A4; margin: 0; }
