/* Print Stylesheet for Commercial Invoice Generator */

@page {
  size: A4 portrait;
  margin: 10mm 12mm;
}

@media print {
  /* Hide all interactive UI, headers, sidebars, buttons, and toasts */
  .app-header,
  .nav-tabs,
  .workspace-grid > .card:first-child,
  .preview-toolbar,
  .btn,
  .modal-overlay,
  .toast-container,
  .batch-upload-zone,
  .batch-controls,
  .batch-data-table-container,
  #singlePane,
  #batchPane,
  #directoryPane,
  #settingsPane {
    display: none !important;
  }

  /* Reset body and background for printing */
  html, body {
    background: #ffffff !important;
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 9pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .main-content {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Display print container */
  #printContainer {
    display: block !important;
    width: 100% !important;
  }

  /* Each invoice sheet layout in print */
  .print-invoice-page {
    width: 100% !important;
    min-height: 270mm !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    box-shadow: none !important;
    border: none !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    page-break-after: always !important;
    break-after: page !important;
  }

  /* Avoid page break on the very last invoice */
  .print-invoice-page:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
  }

  .inv-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    border-bottom: 2pt solid #000000 !important;
    padding-bottom: 6pt !important;
    margin-bottom: 8pt !important;
  }

  .inv-title-area h2 {
    font-size: 16pt !important;
    font-weight: 800 !important;
    color: #000000 !important;
    text-transform: uppercase !important;
  }

  .inv-title-area p {
    font-size: 7.5pt !important;
    color: #4b5563 !important;
  }

  .inv-meta-grid {
    display: grid !important;
    grid-template-columns: auto auto !important;
    gap: 2pt 8pt !important;
    font-size: 8pt !important;
  }

  .inv-parties-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8pt !important;
    margin-bottom: 8pt !important;
  }

  .party-box {
    border: 1pt solid #4b5563 !important;
    padding: 5pt 6pt !important;
    border-radius: 0 !important;
    background: #ffffff !important;
  }

  .party-title {
    font-size: 7.5pt !important;
    font-weight: 800 !important;
    border-bottom: 0.75pt solid #9ca3af !important;
    padding-bottom: 2pt !important;
    margin-bottom: 3pt !important;
  }

  .party-name {
    font-size: 9pt !important;
    font-weight: 700 !important;
  }

  .party-address {
    font-size: 8pt !important;
    white-space: pre-line !important;
    line-height: 1.25 !important;
    margin-bottom: 3pt !important;
  }

  .party-tax-row {
    font-size: 7.5pt !important;
    border-top: 0.5pt dashed #9ca3af !important;
    padding-top: 2pt !important;
  }

  .shipment-bar {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6pt !important;
    border: 1pt solid #6b7280 !important;
    background: #f3f4f6 !important;
    padding: 3pt 6pt !important;
    font-size: 7.5pt !important;
    margin-bottom: 8pt !important;
  }

  .shipment-bar-item {
    text-align: center !important;
  }

  .inv-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 8pt !important;
    font-size: 8pt !important;
  }

  .inv-table th {
    background: #111827 !important;
    color: #ffffff !important;
    border: 1pt solid #111827 !important;
    padding: 3pt 4pt !important;
    font-size: 7pt !important;
    font-weight: 700 !important;
  }

  .inv-table td {
    border: 0.75pt solid #9ca3af !important;
    padding: 3pt 4pt !important;
  }

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

  .inv-summary-grid {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 8pt !important;
    margin-bottom: 8pt !important;
    page-break-inside: avoid !important;
  }

  .logistics-totals-box {
    border: 1pt solid #9ca3af !important;
    padding: 4pt 6pt !important;
    font-size: 7.5pt !important;
  }

  .financial-totals-table {
    font-size: 8pt !important;
  }

  .financial-totals-table tr.grand-total {
    font-size: 9pt !important;
    font-weight: 800 !important;
    border-top: 1.5pt solid #000000 !important;
    border-bottom: 1.5pt solid #000000 !important;
    background: #f3f4f6 !important;
  }

  .inv-declaration-box {
    margin-top: auto !important;
    border-top: 1pt solid #4b5563 !important;
    padding-top: 4pt !important;
    font-size: 7pt !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .signoff-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8pt !important;
    margin-top: 4pt !important;
  }

  .sign-line {
    border-top: 0.75pt solid #000000 !important;
    padding-top: 2pt !important;
    font-size: 7pt !important;
  }
}
