/* ─── MTDR FORENSIC ANALYZER — PRINT STYLESHEET ──────────────────────────── */
@media print {
  html, body,
  .app, .main, .content, .page {
    height: auto !important;
    overflow: visible !important;
  }

  /* ── Hide everything not needed ── */
  .sidebar,
  .topbar,
  .filter-bar,
  .view-tabs,
  select, .btn-danger,
  .btn,
  nav,
  #summary-print-header + .filter-bar,
  div[style*="justify-content: flex-end"],
  a[href*="kasgroupbd"],
  a[href*="docs.kasgroupbd"] { display: none !important; }

  /* Hide navuser bar */
  body > div:first-child { display: none !important; }

  /* ── Layout reset ── */
  .app   { display: block !important; }
  .main  { margin: 0 !important; padding: 0 !important; width: 100% !important; }
  .content { padding: 0 !important; }

  /* Hide all pages except target */
  .page { display: none !important; }
  .page.print-target { display: block !important; }

  /* ── Page setup ── */
  @page { size: A4 landscape; margin: 8mm 10mm; }

  body {
    font-family: Arial, sans-serif;
    font-size: 9pt;
    color: #000;
    background: #fff;
  }

  /* ── Print header ── */
  .print-header-bar {
    display: block !important;
    border-bottom: 2pt solid #000;
    padding-bottom: 5pt;
    margin-bottom: 8pt;
  }
  .print-header-bar h1   { font-size: 13pt; font-weight: 700; margin: 0 0 2pt; }
  .print-header-bar .meta { font-size: 7.5pt; color: #555; }

  /* ── Stats row — horizontal grid for print ── */
  #res-stats > div,
  .stats-row {
    display: grid !important;
    grid-template-columns: repeat(9, 1fr) !important;
    gap: 4pt !important;
    margin-bottom: 8pt !important;
  }
  .stat-card {
    border: 0.75pt solid #ccc !important;
    border-radius: 3pt !important;
    padding: 4pt 6pt !important;
    background: #fff !important;
    page-break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .stat-card.red   { background: #fff5f5 !important; border-color: #cc0000 !important; }
  .stat-card.blue  { background: #f0f8ff !important; border-color: #0066cc !important; }
  .stat-card.green { background: #f5fff5 !important; border-color: #006600 !important; }
  .stat-label { font-size: 6pt !important; text-transform: uppercase; color: #555; display: block; }
  .stat-val   { font-size: 13pt !important; font-weight: 700; display: block; line-height: 1.2; }

  /* ── Results table ── */
  .tbl-wrap { overflow: visible !important; width: 100% !important; }

  table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 7pt !important;
    page-break-inside: auto !important;
    table-layout: fixed !important;
  }
  thead { display: table-header-group !important; }
  tr    { page-break-inside: avoid; }

  th {
    background: #f0f0f0 !important;
    border: 0.5pt solid #999 !important;
    padding: 3pt 3pt !important;
    font-size: 6.5pt !important;
    text-align: left !important;
    word-wrap: break-word !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  td {
    border: 0.5pt solid #ddd !important;
    padding: 3pt 3pt !important;
    font-size: 7pt !important;
    vertical-align: top !important;
    word-wrap: break-word !important;
    overflow: hidden !important;
  }

  /* Column widths for results table — must total 100% */
  th:nth-child(1), td:nth-child(1) { width: 8%;  word-wrap: break-word; }  /* Date */
  th:nth-child(2), td:nth-child(2) { width: 9%;  word-wrap: break-word; }  /* Account */
  th:nth-child(3), td:nth-child(3) { width: 8%;  word-wrap: break-word; }  /* Principal */
  th:nth-child(4), td:nth-child(4) { width: 7%;  word-wrap: break-word; }  /* Eff Rate */
  th:nth-child(5), td:nth-child(5) { width: 9%;  word-wrap: break-word; }  /* Sheet Rate */
  th:nth-child(6), td:nth-child(6) { width: 9%;  word-wrap: break-word; }  /* Bank Paid */
  th:nth-child(7), td:nth-child(7) { width: 12%; word-wrap: break-word; }  /* Expected */
  th:nth-child(8), td:nth-child(8) { width: 9%;  word-wrap: break-word; }  /* Difference */
  th:nth-child(9), td:nth-child(9) { width: 6%;  word-wrap: break-word; }  /* Tax */
  th:nth-child(10),td:nth-child(10){ width: 8%;  word-wrap: break-word; }  /* Status */

  /* Row colours */
  .tr-under   { background: #fff5f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tr-over    { background: #f0f8ff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tr-ok      { background: #f5fff5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tr-enhance { background: #fff8f0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* ── Explanation rows ── */
  .explain-row { display: table-row !important; }
  .explain-row td {
    background: #fafafa !important;
    font-size: 7pt !important;
    padding: 4pt 6pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .explain-verdict {
    display: inline-block !important;
    font-size: 6.5pt !important;
    padding: 2pt 5pt !important;
    border: 0.5pt solid !important;
    border-radius: 8pt !important;
  }

  /* ── Forensic findings — force on new page ── */
  #res-findings {
    display: block !important;
    visibility: visible !important;
    page-break-before: always !important;
    margin-top: 0 !important;
  }
  #res-findings * { visibility: visible !important; }
  #res-findings .panel { display: block !important; }
  #res-findings .panel-head { display: block !important; padding: 6pt 8pt !important; background: #f5f5f5 !important; border-bottom: 1pt solid #ccc !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #res-findings .panel-head h2 { font-size: 10pt !important; font-weight: 700 !important; margin: 0 !important; }
  #res-findings .panel-body { display: block !important; padding: 0 !important; }
  .finding {
    display: block !important;
    visibility: visible !important;
    font-size: 7.5pt !important;
    margin: 6pt 0 !important;
    padding: 6pt 8pt !important;
    border-bottom: 0.75pt solid #ddd !important;
    page-break-inside: avoid !important;
    line-height: 1.5 !important;
  }
  .finding strong { font-weight: 700 !important; }
  .diff-amt { color: #cc0000 !important; font-weight: 700 !important; }
  .text-red  { color: #cc0000 !important; }
  .text-green{ color: #006600 !important; }

  /* ── Summary page ── */
  .sum-banner {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 6pt !important;
    margin-bottom: 10pt !important;
  }
  .sum-banner-item {
    border: 1.5pt solid #ccc !important;
    border-radius: 3pt !important;
    padding: 6pt 8pt !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .sum-banner-item.red    { border-color: #cc0000 !important; }
  .sum-banner-item.orange { border-color: #e07000 !important; }
  .sum-banner-item.blue   { border-color: #0066cc !important; }
  .sum-banner-item.green  { border-color: #006600 !important; }
  .sum-banner-label { font-size: 6.5pt; text-transform: uppercase; color: #555; margin-bottom: 2pt; display: block; }
  .sum-banner-val   { font-size: 14pt; font-weight: 700; display: block; }
  .sum-banner-sub   { font-size: 6.5pt; color: #777; display: block; }
  .sum-banner-item.red    .sum-banner-val { color: #cc0000; }
  .sum-banner-item.orange .sum-banner-val { color: #e07000; }
  .sum-banner-item.blue   .sum-banner-val { color: #0066cc; }
  .sum-banner-item.green  .sum-banner-val { color: #006600; }

  .missing-data-banner {
    background: #fff8f0 !important; border: 1pt solid #e07000 !important;
    border-left: 3pt solid #e07000 !important; padding: 5pt 7pt !important;
    font-size: 8pt !important; margin-bottom: 7pt !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .sum-section-head { margin: 6pt 0 4pt; padding-bottom: 3pt; border-bottom: 1.5pt solid #333; }
  .sum-section-title { font-size: 10pt; font-weight: 700; }
  .sum-section-count {
    display: inline-block !important; background: #cc0000 !important; color: #fff !important;
    font-size: 8pt; font-weight: 700; padding: 1pt 5pt; border-radius: 7pt; margin-left: 5pt;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .sum-card { border: 1pt solid #ccc; border-radius: 2pt; margin-bottom: 7pt; page-break-inside: avoid; }
  .sum-card-red    { border-left: 3pt solid #cc0000 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-card-blue   { border-left: 3pt solid #0066cc !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-card-orange { border-left: 3pt solid #e07000 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-card-header {
    display: flex !important; align-items: center !important; gap: 6pt !important;
    padding: 4pt 7pt !important; background: #f5f5f5 !important;
    border-bottom: 0.75pt solid #ccc !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .sum-card-rank  { font-size: 7pt; color: #999; min-width: 14pt; }
  .sum-card-title { flex: 1; font-size: 8pt; }
  .sum-card-title strong { font-size: 9pt; }
  .sum-card-impact { font-size: 11pt; font-weight: 700; }
  .sum-card-impact.text-red   { color: #cc0000; }
  .sum-card-impact.text-green { color: #006600; }
  .sum-card-body { padding: 5pt 7pt; }
  .sum-row { display: table !important; width: 100% !important; margin-bottom: 4pt !important; font-size: 8pt !important; line-height: 1.5 !important; }
  .sum-row-label { display: table-cell !important; width: 90pt !important; font-size: 6.5pt; font-weight: 700; text-transform: uppercase; color: #666; vertical-align: top; padding-right: 6pt !important; }
  .sum-row > span:last-child { display: table-cell !important; }
  .sum-row-label { font-size: 6.5pt; font-weight: 700; text-transform: uppercase; color: #666; }
  .sum-card-numbers { display: block !important; gap: 4pt !important; margin-top: 5pt !important; padding-top: 5pt !important; border-top: 0.5pt solid #ddd !important; }
  .sum-num { display: inline-block !important; border: 0.75pt solid #ccc !important; border-radius: 2pt !important; padding: 3pt 6pt !important; min-width: 70pt !important; margin: 2pt !important; vertical-align: top !important; }
  .sum-num.red    { border-color: #cc0000 !important; background: #fff5f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-num.green  { border-color: #006600 !important; background: #f5fff5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-num.orange { border-color: #e07000 !important; background: #fff8f0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sum-num-label { font-size: 6.5pt; text-transform: uppercase; color: #777; margin-bottom: 1pt; display: block; }
  .sum-num-val   { font-size: 9pt; font-weight: 600; display: block; }
  .sum-num.red    .sum-num-val { color: #cc0000; }
  .sum-num.green  .sum-num-val { color: #006600; }
  .sum-num.orange .sum-num-val { color: #e07000; }
  .sum-total-row { display: flex !important; justify-content: space-between !important; padding: 5pt 7pt !important; background: #f0f0f0 !important; border: 1pt solid #ccc !important; border-radius: 2pt !important; font-size: 8.5pt !important; margin-top: 4pt !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .merge-note { background: #fff8f0 !important; border-left: 2pt solid #b8952a !important; padding: 3pt 6pt !important; font-size: 7.5pt !important; margin-bottom: 4pt !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .final-missing-note { font-size: 7.5pt; color: #7a5c00; }
  .coverage-badge { font-size: 6.5pt; }

  /* Missing data table */
  .sum-section-head + table th, .sum-section-head + table td { font-size: 7pt !important; }

  /* Colours */
  .text-red    { color: #cc0000 !important; }
  .text-green  { color: #006600 !important; }
  .text-orange { color: #e07000 !important; }
  .text-gray   { color: #999 !important; }
  .text-xs     { font-size: 7pt !important; }
  .mono        { font-family: monospace !important; }

  /* Page breaks */
  .sum-card         { page-break-inside: avoid; }
  .sum-section-head { page-break-after: avoid; }
  .finding          { page-break-inside: avoid; }
}