/* 
 * Print Media Stylesheet
 * Guarantees exact 1:1 physical A4 printing matching invoice.jpeg
 * Completely fixes table borders, VAT/tax alignment, and page breaks
 */

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

  html, body {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Hide all app UI elements */
  .app-sidebar,
  .app-topbar,
  .quick-actions-bar,
  .dashboard-stats-grid,
  .filter-bar,
  .btn,
  .btn-icon,
  .modal-header,
  .modal-footer,
  .toast-container,
  .app-container,
  .modal-overlay:not(#modal-invoice-preview) {
    display: none !important;
  }

  /* Display invoice preview modal contents */
  .modal-overlay#modal-invoice-preview {
    position: static !important;
    background: none !important;
    backdrop-filter: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    display: block !important;
  }

  .modal-card {
    box-shadow: none !important;
    max-width: 100% !important;
    width: 100% !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: none !important;
    background: transparent !important;
  }

  .modal-body {
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    max-height: none !important;
  }

  .invoice-sheet-container {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    min-height: auto !important;
  }

  .invoice-sheet {
    box-shadow: none !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    box-sizing: border-box !important;
    position: relative !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  .invoice-outer-frame {
    border: 1.5pt solid #000000 !important;
    min-height: 250mm !important;
    max-height: 270mm !important;
    padding: 5mm 6mm !important;
    box-sizing: border-box !important;
    position: relative !important;
    display: block !important; /* Never use flex during print */
  }

  /* Table rules */
  .print-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    margin-top: -1px !important;
    page-break-inside: avoid !important;
  }

  .print-table th, 
  .print-table td {
    border: 1pt solid #000000 !important;
    padding: 2.2mm 1.5mm !important;
    box-sizing: border-box !important;
    font-size: 10pt !important;
  }

  .print-table tr {
    page-break-inside: avoid !important;
    page-break-after: auto !important;
  }

  .print-table tr.table-summary-row {
    display: table-row !important;
    page-break-inside: avoid !important;
  }

  .print-table tr.table-summary-row td {
    display: table-cell !important;
    border: 1pt solid #000000 !important;
    font-weight: bold !important;
    background: #ffffff !important;
    padding: 2.5mm 1.5mm !important;
  }

  .print-table tr.grand-total-row td {
    border: 1.5pt solid #000000 !important;
    font-weight: 900 !important;
    background: #ffffff !important;
  }

  .invoice-print-footer {
    position: absolute !important;
    bottom: 5mm !important;
    left: 6mm !important;
    right: 6mm !important;
    page-break-inside: avoid !important;
  }
}
