@media print {
  /* Hide non-report elements */
  nav, footer, .navbar, .btn, .badge,
  [data-turbo-stream], .alert-info {
    display: none !important;
  }

  /* Constrain layout */
  .container {
    max-width: 100% !important;
    padding: 0 !important;
  }

  /* Ensure hero + invisible block fit on first page */
  .card {
    break-inside: avoid;
    margin-bottom: 0.5rem !important;
    border: 1px solid #ddd !important;
  }

  /* Compact spacing */
  .mb-4 { margin-bottom: 0.5rem !important; }
  .py-5 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
  h2, h3 { font-size: 1.1rem; }
  h5, h6 { font-size: 0.9rem; }
  .small, small { font-size: 0.75rem; }

  /* Page setup */
  @page {
    size: letter;
    margin: 0.5in;
  }
}
