h1 { font-family: Arial, Helvetica, sans-serif; }

/* ============================================
   LUKINHA V2 — MOTOR DE IMPRESSAO GLOBAL
   Corrige pagina branca, transforma print em
   documento profissional (nao screenshot).
   ============================================ */

/* ── Print-only elements: hidden on screen ── */
.print-doc-header { display: none !important; }
.print-doc-footer { display: none; }
.tf-print-only { display: none; }

/* ── Classe JS: forçada pelo printReport() ── */
body.printing-report #app {
  display: none !important;
}
body.printing-report #printIsolation {
  display: block !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
  background: #fff !important;
}

@media print {

  /* ========================================
     1) NUCLEAR RESET — FIX PAGINA BRANCA
     Força TODA a cadeia DOM a ser visivel,
     fluxo normal, sem fixed/absolute/overflow.
     ======================================== */
  html {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    position: static !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    position: static !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 10pt !important;
    font-family: Arial, Helvetica, sans-serif !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Container raiz #app */
  #app {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    transform: none !important;
    transition: none !important;
  }

  /* ========================================
     2) ISOLAMENTO DE IMPRESSÃO
     Quando printReport() está ativo, #app é escondido
     e #printIsolation é o único container visível.
     Fallback: se alguém usar Ctrl+P sem printReport(),
     esconde sidebar/navbar e mostra mainArea.
     ======================================== */

  /* Quando printIsolation existe (printReport() ativo) — esconde TUDO do app */
  #printIsolation {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 12px !important;
  }

  /* Esconder sidebar, navbar, overlays, modais sempre */
  #sidebar,
  #sidebarOverlay,
  #mobileTopBar,
  #printArea,
  .report-filter-bar,
  .no-print,
  .tf-no-print,
  .modal-overlay,
  .report-module-cards,
  .reports-page-title {
    display: none !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
  }

  /* Botoes: ocultar */
  button {
    display: none !important;
  }

  /* Spacer div (md:hidden h-10) — ocultar no print */
  .md\:hidden {
    display: none !important;
  }

  /* ========================================
     3) FALLBACK: Ctrl+P sem printReport()
     Faz o app inteiro ficar visível em modo estático
     ======================================== */
  #mainArea,
  main {
    display: block !important;
    position: static !important;
    margin: 0 !important;
    margin-left: 0 !important;
    padding: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: #fff !important;
    float: none !important;
    transform: none !important;
    transition: none !important;
    flex: none !important;
    -webkit-flex: none !important;
  }

  #mainContent {
    display: block !important;
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: transparent !important;
  }

  #reportContent {
    display: block !important;
    position: static !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    background: transparent !important;
  }

  #reportBody {
    display: block !important;
    position: static !important;
    padding: 8px 0 !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }

  /* ========================================
     4) PRINT-ONLY ELEMENTS: visiveis no print
     ======================================== */
  .print-doc-header {
    display: block !important;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #c2410c;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
  }

  .print-doc-footer {
    display: block !important;
    margin-top: 20px;
    padding-top: 8px;
    border-top: 1px solid #999;
    text-align: center;
    font-size: 8pt;
    color: #999;
  }

  .tf-print-only {
    display: block !important;
  }

  /* ========================================
     5) ESTILO DOCUMENTO (nao screenshot)
     Remove fundos coloridos, sombras, bordas
     arredondadas, gradientes
     ======================================== */
  * {
    box-shadow: none !important;
    text-shadow: none !important;
    border-radius: 0 !important;
    transition: none !important;
    animation: none !important;
  }

  /* Remove fundos de paineis / containers web */
  .bg-white, .bg-gray-50, .bg-gray-100, .bg-gray-200,
  .fade-in, .rounded-2xl, .rounded-xl, .shadow-sm {
    background: transparent !important;
  }

  /* Cuidado: nao remover border de tabelas */
  .fade-in, .rounded-2xl, .rounded-xl, .shadow-sm {
    border-color: transparent !important;
  }

  /* ========================================
     6) TABELAS: formato estrito de documento
     border-collapse, borders 1px solid #000
     fonte preta 10pt
     ======================================== */
  table, .report-table {
    border-collapse: collapse !important;
    width: 100% !important;
    page-break-inside: auto !important;
    background: transparent !important;
  }

  table th, table td,
  .report-table th, .report-table td {
    border: 1px solid #000 !important;
    padding: 4px 8px !important;
    font-size: 10pt !important;
    color: #000 !important;
    background: transparent !important;
    text-align: left !important;
    vertical-align: top !important;
  }

  table thead th, .report-table thead th {
    background: #e5e7eb !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    font-size: 9pt !important;
    color: #000 !important;
  }

  table tr {
    page-break-inside: avoid !important;
  }

  /* Numeros alinhados a direita */
  table td.text-right, .report-table td.text-right,
  table th.text-right, .report-table th.text-right {
    text-align: right !important;
  }

  /* ========================================
     7) KPI CARDS: manter cores de fundo com
     -webkit-print-color-adjust
     ======================================== */
  .report-kpi-card {
    border: 1px solid #000 !important;
    padding: 8px 12px !important;
    background: transparent !important;
    text-align: center !important;
    overflow: visible !important;
  }
  .report-kpi-card.kpi-entries {
    background-color: #dcfce7 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-exits {
    background-color: #fee2e2 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-total {
    background-color: #dbeafe !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-revenue {
    background-color: #fef3c7 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-cost {
    background-color: #fce7f3 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-roi {
    background-color: #e0e7ff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-produced {
    background-color: #d1fae5 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-ops {
    background-color: #e0e7ff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-kpi-card.kpi-loss {
    background-color: #fee2e2 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ========================================
     8) BADGES de tipo/status: manter cores
     ======================================== */
  .badge-print {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    border: 1px solid #999 !important;
    padding: 1px 6px !important;
    font-size: 8pt !important;
  }

  /* ========================================
     9) GRID: funciona no print
     ======================================== */
  .grid { display: grid !important; }
  .grid-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
  .grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
  .gap-4 { gap: 10px !important; }
  .gap-3 { gap: 8px !important; }
  .mb-6 { margin-bottom: 14px !important; }
  .mb-4 { margin-bottom: 10px !important; }

  /* ========================================
     10) @page — tamanho e margens
     ======================================== */
  @page {
    margin: 12mm 10mm;
    size: A4 portrait;
  }

  /* ========================================
     11) OVERFLOW: tudo visivel no print
     ======================================== */
  .overflow-x-auto,
  .overflow-y-auto,
  .overflow-hidden {
    overflow: visible !important;
    max-height: none !important;
  }

  /* ========================================
     12) TRAFFIC MODULE (pagina de Trafego)
     ======================================== */
  .tf-chart-print-img {
    max-width: 100% !important;
    page-break-inside: avoid !important;
  }

  /* ========================================
     13) FLEX containers: manter no print
     mas sem min-h-screen
     ======================================== */
  .min-h-screen {
    min-height: 0 !important;
  }

  .flex {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  /* Metricas pequenas (cards secundarios) */
  .text-center.p-3.border.rounded-lg {
    border: 1px solid #ccc !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
