@media print {
  @page {
    size: A4 portrait;
    margin: 1.5cm;
  }

  /* Reset body and html for clean vector print */
  html,
  body {
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 10pt;
    line-height: 1.4;
    overflow: visible !important;
    min-height: auto !important;
    height: auto !important;
  }

  body.modal-open {
    overflow: visible !important;
  }

  /* CRITICAL: When printing from modal, hide entire background catalog DOM so it does NOT generate ghost pages */
  body.modal-open .navbar,
  body.modal-open main,
  body.modal-open .container,
  body.modal-open .catalog-layout,
  body.modal-open .catalog-main,
  body.modal-open .material-grid,
  body.modal-open .drawer-backdrop,
  body.modal-open .compare-floating-bar,
  body.modal-open .carousel-overlay {
    display: none !important;
  }

  /* Hide interactive, navigational, or irrelevant elements across all views */
  .navbar,
  .btn,
  .search-container,
  .search-bar-container,
  .catalog-status-bar,
  .filters-sidebar,
  .compare-floating-bar,
  .toast-container,
  .modal-close-btn,
  .modal-actions-print,
  .gallery-zoom-badge,
  .modal-header-bar,
  .carousel-overlay,
  .drawer-backdrop,
  #mobile-filters-trigger,
  #drawer-backdrop {
    display: none !important;
  }

  /* When modal is closed, do not print it */
  .modal-overlay:not(.open) {
    display: none !important;
  }

  /* Neutralize position: fixed so modal does not duplicate across pages */
  .modal-overlay.open {
    position: static !important;
    inset: auto !important;
    display: block !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: none !important;
  }

  /* Expand container and remove scroll constraints */
  .container,
  .modal-content,
  .compare-container {
    position: static !important;
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
  }

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

  /* Material header in print mode */
  .material-header-print {
    display: block !important;
    border-bottom: 2px solid #0f172a;
    padding-bottom: 0.75rem;
    margin-bottom: 1.25rem;
  }

  .material-header-print h2 {
    color: #0f172a !important;
    font-size: 1.5rem !important;
    margin-bottom: 0.25rem !important;
  }

  .material-header-print p {
    color: #334155 !important;
  }

  /* Applications block in print mode */
  .modal-body > div[style*="background: var(--bg-surface)"] {
    background: #f8fafc !important;
    border: 1px solid #cbd5e1 !important;
    padding: 0.75rem !important;
    margin-bottom: 1rem !important;
    border-radius: 4px !important;
    page-break-inside: avoid;
  }

  /* Tables formatting for crisp vector print */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 0.75rem;
    page-break-inside: avoid;
  }

  th, td {
    border: 1px solid #cbd5e1 !important;
    padding: 5pt 8pt !important;
    color: #0f172a !important;
    font-size: 9.5pt !important;
    background: #fff;
  }

  th {
    background-color: #f1f5f9 !important;
    font-weight: 700 !important;
  }

  /* Badges in print */
  .badge {
    border: 1px solid #94a3b8 !important;
    color: #0f172a !important;
    background: transparent !important;
    padding: 2pt 6pt !important;
    font-size: 8.5pt !important;
  }

  /* Gallery formatting in print */
  .modal-gallery-section {
    page-break-inside: avoid;
    margin-top: 1rem !important;
  }

  .modal-gallery-section span {
    display: none !important;
  }

  .modal-gallery-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.75rem !important;
  }

  .modal-gallery-thumb {
    border: 1px solid #cbd5e1 !important;
    background: #fff !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    max-width: 140px !important;
  }

  .modal-gallery-thumb img {
    max-width: 140px !important;
    height: 90px !important;
    object-fit: cover !important;
    border: none !important;
  }

  .modal-gallery-caption {
    background: #fff !important;
    color: #475569 !important;
  }

  /* Avoid awkward page breaks */
  h1, h2, h3, h4 {
    page-break-after: avoid;
    color: #0f172a !important;
  }

  tr {
    page-break-inside: avoid;
  }
}
