/* =====================================================================
   ÍRIS — print.css
   Impressão limpa: Ctrl+P nunca leva sidebar, menu, botões ou toasts.
   Quando existe a via da receita (#area-impressao), imprime só ela.
   ===================================================================== */

/* A via de impressão não aparece na tela — só no papel. */
.impressao-area { display: none; }

@media print {
  @page {
    size: A4 portrait;
    margin: 14mm 13mm;
  }

  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
  }

  /* nada de navegação, sobreposição ou controle de edição no papel */
  .sidebar,
  .topbar,
  .scrim,
  .toast-stack,
  .modal-root,
  .boot-fallback,
  .tabs,
  .toolbar,
  .page-head__actions,
  .card__foot,
  .row-actions,
  .col-actions,
  .pager,
  .btn,
  .icon-btn,
  .row-action,
  .global-search { display: none !important; }

  /* sem min-height de viewport: senão sobra uma folha em branco antes */
  .app {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .main { display: block; }
  .content { padding: 0 !important; animation: none !important; }

  .card,
  .kpi,
  .obs-item,
  .mini-metricas {
    border: 1px solid #cfd6dd !important;
    box-shadow: none !important;
    background: #fff !important;
    break-inside: avoid;
  }

  a { color: #000 !important; text-decoration: none !important; }

  /* ---------- via da receita ---------- */
  /* imprime SÓ a via: o shell inteiro sai da folha */
  body.tem-impressao .app { display: none !important; }
  body.tem-impressao .impressao-area { display: block !important; }

  /* desenhos técnicos legíveis no papel, venha o tema que vier —
     traço em navy da marca, cotas em azul, sem áreas chapadas de tinta */
  .ilu-peca { stroke: #04132F !important; }
  .ilu-lente { fill: #EDF3FB !important; stroke: #04132F !important; }
  .ilu-lente-perfil { stroke: #0058C0 !important; }
  .ilu-cota { stroke: #0058C0 !important; }
  .ilu-seta { fill: #0058C0 !important; }
  .ilu-guia { stroke: #9AA6B4 !important; }
  .ilu-eixo { stroke: #B6C0CD !important; }
  .ilu-olho { fill: #04132F !important; }
  .ilu-tag { fill: #0058C0 !important; stroke: #fff !important; }
  .ilu-nota { fill: #667080 !important; }
  .imp-bloco { break-inside: avoid; }
}

/* ---------------------------------------------------------------------
   Layout da via impressa (só é renderizado dentro do @media print,
   mas as regras ficam aqui fora para manter tudo num lugar só).
   --------------------------------------------------------------------- */
.impressao-area {
  color: #000;
  font-family: var(--font-sans);
  max-width: 190mm;
}

.imp-cabecalho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 6px;
  margin-bottom: 10px;
  border-bottom: 2px solid #04132F;
}
.imp-cabecalho__marca { display: flex; align-items: center; gap: 11px; }
.imp-logo {
  width: 34mm;
  height: auto;
  flex: none;
}
.imp-marca {
  display: block;
  font-family: var(--font-cond);
  font-size: 14pt;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #04132F;
}
.imp-cabecalho span { font-size: 9.5pt; color: #4A5B73; }
.imp-situacao {
  font-family: var(--font-cond);
  font-size: 9pt;
  font-weight: 700;
  letter-spacing: .12em;
  padding: 3px 9px;
  border: 1.5px solid #04132F;
  border-radius: 3px;
  white-space: nowrap;
}

.imp-bloco { margin-bottom: 8px; break-inside: avoid; }
.imp-bloco h3 {
  font-family: var(--font-cond);
  font-size: 8.5pt;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0058C0;
  padding-bottom: 2px;
  margin-bottom: 5px;
  border-bottom: 1px solid #B4D5F7;
}
.imp-bloco p { font-size: 10pt; line-height: 1.45; }

.imp-bloco--identificacao {
  padding: 9px 11px;
  border: 1px solid #c9d2da;
  border-radius: 4px;
  background: #fbfcfd !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.imp-grade {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px 12px;
}

/* desenho técnico ao lado das medidas */
.imp-painel {
  display: grid;
  grid-template-columns: 46mm minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.imp-painel .imp-grade { grid-template-columns: repeat(3, 1fr); }
.imp-figura { margin: 0; }
.imp-figura .ilu { width: 100%; height: auto; }

/* o desenho de montagem tem dois quadros: precisa de um pouco mais de largura */
.imp-painel--empilhado { grid-template-columns: 58mm minmax(0, 1fr); }

.imp-obs { font-size: 9.5pt; line-height: 1.45; margin-bottom: 3px; }
.imp-obs b { font-weight: 600; }

.imp-legenda { margin-top: 6px; }
.imp-legenda .legenda-siglas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px 12px;
}
.imp-legenda .legenda-siglas li { display: flex; gap: 6px; font-size: 8pt; }
.imp-legenda .legenda-siglas b {
  min-width: 26px;
  font-family: var(--font-mono);
  font-weight: 700;
  text-align: center;
  border: 1px solid #c9d2da;
  border-radius: 3px;
}
.imp-legenda .legenda-siglas span { color: #555; }

.imp-situacao--vencida { border-style: dashed; }
.imp-campo { display: flex; flex-direction: column; }
.imp-campo span {
  font-size: 7pt;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #555;
}
.imp-campo strong { font-size: 9.5pt; font-weight: 600; line-height: 1.25; }

.imp-tabela { width: 100%; border-collapse: collapse; }
.imp-tabela th,
.imp-tabela td {
  border: 1px solid #b9c3cc;
  padding: 3px 8px;
  font-size: 9.5pt;
  text-align: center;
}
.imp-tabela thead th {
  background: #eef2f5 !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  font-family: var(--font-cond);
  font-size: 8.5pt;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.imp-tabela tbody th {
  font-family: var(--font-mono);
  font-weight: 700;
  width: 60px;
}
.imp-tabela tbody td { font-family: var(--font-mono); }

.imp-rodape {
  margin-top: 14px;
  padding-top: 6px;
  border-top: 1px solid #c9d2da;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  font-size: 8pt;
  color: #555;
}
.imp-assinatura {
  width: 72mm;
  padding-top: 4px;
  border-top: 1px solid #04132F;
  text-align: center;
  font-size: 8.5pt;
  color: #000;
}
