/* Print styles — letter-size page layout for calculators
   NOTE: Report page (/report) has its own @page + @media print in report.css.
   These rules target calculator pages (.calc-page) specifically. */

@media print {

  /* ---- Hide non-essential elements ---- */
  .site-header,
  .site-footer,
  .action-bar,
  .help-icon,
  .calc-page__header-actions,
  .report-add-btn,
  .report-toast,
  .calc-steps__toggle,
  .btn,
  .btn-group,
  .unit-toggle,
  .form-group small,
  canvas {
    display: none !important;
  }

  /* Show calculation details if open, hide toggle */
  .calc-steps { border: none; margin-top: 0.25rem; }
  .calc-steps__body.open { padding: 0.25rem 0; }

  /* ---- Page & body ---- */
  * { box-shadow: none !important; }
  html, body {
    font-size: 9pt;
    line-height: 1.3;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .site-main {
    padding: 0 !important;
    min-height: auto !important;
  }

  .calc-page {
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
    max-width: 100%;
    width: 100%;
    overflow: hidden;
  }

  .calc-page__header {
    padding: 0.3rem 0;
    border-bottom: 2px solid #2d6a4f;
    margin-bottom: 0.3rem;
  }

  .calc-page__header h1 {
    font-size: 13pt;
    margin: 0;
  }

  .calc-page__header p {
    font-size: 8pt;
    margin: 0.1rem 0 0;
  }

  .calc-page__body {
    padding: 0;
  }

  .calc-page__footer {
    padding: 0.25rem 0;
    border-top: 1px solid #ccc;
    background: none;
    margin-top: 0.25rem;
  }

  .calc-page__footer-title { font-size: 7pt; margin-bottom: 0.1rem; }
  .calc-page__footer p { font-size: 7pt; line-height: 1.3; }

  /* ---- Sections — page-break control ---- */
  .calc-section {
    margin-bottom: 0.35rem;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Utility: force a page break before a section */
  .print-break-before {
    page-break-before: always;
    break-before: page;
  }

  /* Keep headings with their content */
  .calc-section h2 {
    font-size: 10pt;
    margin-bottom: 0.2rem;
    padding-bottom: 0.15rem;
    border-bottom-width: 1px;
    gap: 0.2rem;
    page-break-after: avoid;
    break-after: avoid;
  }

  .calc-section h2 .section-number {
    width: 16px;
    height: 16px;
    font-size: 7pt;
  }

  /* Prevent widows/orphans in text blocks */
  p, li, tr { orphans: 3; widows: 3; }

  /* Table rows should not split across pages */
  tr { page-break-inside: avoid; break-inside: avoid; }

  /* ---- Forms: compact inline display ---- */
  .form-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.15rem 0.5rem;
  }

  .form-group {
    gap: 0;
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
  }

  .form-group label {
    font-size: 7.5pt;
    font-weight: 500;
    flex: 1;
    min-width: 0;
  }

  .form-group input,
  .form-group select,
  .form-group textarea {
    border: none !important;
    background: none !important;
    padding: 0 !important;
    font-size: 8pt;
    font-weight: 600;
    color: #333 !important;
    text-align: right;
    width: auto;
    min-width: 60px;
    max-width: 100px;
    box-shadow: none !important;
  }

  .form-group input[readonly],
  .form-group .calculated-field {
    background: none !important;
    border: none !important;
  }

  /* Form rows (label + input side-by-side) */
  .form-row {
    padding: 0.1rem 0;
    border-bottom-width: 1px;
    gap: 0.25rem;
  }

  .form-row label { font-size: 7.5pt; }

  .form-row input,
  .form-row select {
    width: 100px;
    border: none !important;
    background: none !important;
    padding: 0 !important;
    font-size: 8pt;
    font-weight: 600;
    text-align: right;
    box-shadow: none !important;
  }

  .form-check { gap: 0.15rem; }
  .form-check input[type="checkbox"] { width: 12px; height: 12px; }

  /* ---- Results ---- */
  .results-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.2rem;
  }

  .result-card {
    padding: 0.25rem 0.35rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fafafa !important;
  }

  .result-card__label {
    font-size: 6.5pt;
    margin-bottom: 0.05rem;
  }

  .result-card__value {
    font-size: 10pt;
  }

  .result-highlight {
    padding: 0.3rem;
    margin: 0.2rem 0;
    border-width: 1px;
  }

  .result-highlight__label { font-size: 7pt; margin-bottom: 0; }
  .result-highlight__value { font-size: 12pt; }

  .result-pill { padding: 0.1rem 0.5rem; font-size: 7.5pt; }

  .total-row {
    padding: 0.2rem 0.35rem;
    margin-top: 0.15rem;
    border-radius: 3px;
  }

  .total-row label { font-size: 7.5pt; }
  .total-row .total-value { font-size: 9pt; }

  /* ---- Show Calculations (if visible) ---- */
  .calc-step {
    padding: 0.15rem 0.3rem;
    margin-bottom: 0.15rem;
    border-left-width: 2px;
  }

  .calc-step h4 { font-size: 7.5pt; margin: 0 0 0.05rem; }
  .calc-step__formula { font-size: 7.5pt; line-height: 1.4; }
  .calc-step__values { padding: 0.1rem 0.2rem; margin-top: 0.1rem; font-size: 7.5pt; }
  .calc-step__note { font-size: 7pt; }

  /* ---- Tables ---- */
  .data-table { font-size: 7.5pt; }
  .data-table th { padding: 0.2rem 0.35rem; font-size: 7pt; }
  .data-table td { padding: 0.15rem 0.35rem; }
  .data-table tr:hover td { background: none; }

  /* ---- Comparison Grid ---- */
  .comparison-grid { gap: 0.25rem; }
  .comparison-item { padding: 0.2rem; }
  .comparison-item h4 { font-size: 7pt; margin-bottom: 0; }
  .comparison-item .value { font-size: 10pt; }

  /* ---- Alerts ---- */
  .alert {
    padding: 0.2rem 0.35rem;
    font-size: 7.5pt;
    margin-bottom: 0.15rem;
    border-width: 1px;
  }

  /* ---- Charts ---- */
  .chart-wrapper,
  .chart-container,
  [class*="chart"] canvas {
    display: none !important;
  }

  /* ---- Iframes (legacy calculators) ---- */
  iframe {
    min-height: auto !important;
    height: auto !important;
  }

  /* Hide calc-page header when iframe has its own header */
  .calc-page__body iframe ~ .calc-page__header,
  .calc-page > .calc-page__header {
    display: none !important;
  }

  /* ---- Advice / recommendation sections ---- */
  .advice-card,
  [class*="advice"],
  [class*="recommendation"] {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ---- Page break control ---- */
  h2, h3, h4 {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* Hide email modal in print */
  .email-modal-overlay { display: none !important; }
}
