/* ======================================================================
   PRINT STYLESHEET
   Only active under @media print. Hides interactive-only chrome, expands
   content to full page width, kills sticky/fixed positioning and dark
   surfaces, adds page-break rules, and shows the print-only report header
   + (optionally) the print-only data table.
====================================================================== */

@media print {

  /* ---------- reset page basics ---------- */
  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  html, body {
    background: #FFFFFF !important;
    color: #14171F !important;
    font-size: 11.5pt;
  }

  .bg-field { display: none !important; }

  /* ---------- hide interactive-only chrome ---------- */
  .no-print,
  #dropzone,
  #fileBar,
  #columnsPanel,
  #sheetPickerModal,
  #largeFileWarningSlot,
  .filter-popover,
  .kpi-remove,
  .chart-card-actions,
  .chart-config-panel,
  .add-item-btn,
  .add-chart-card,
  #resetFiltersBtn,
  #printBtn,
  #columnsPanelToggle,
  .header-actions,
  .table-toolbar,
  .table-footer,
  .group-compare-controls,
  .print-toggle-label,
  .stats-toggle {
    display: none !important;
  }

  /* the "more stats" panel, if left open on screen, should still print
     since it's informational content, not an interactive control */
  .kpi-extra-stats { display: grid !important; }

  /* ---------- header: no sticky repeat-on-every-page ---------- */
  .app-header {
    position: static !important;
    box-shadow: none !important;
    background: #FFFFFF !important;
    border-bottom: 1px solid #E2E5EA !important;
  }
  .app-header .header-status { display: none !important; }

  /* ---------- print-only report header ---------- */
  .print-only { display: none; }
  body.print-active .print-only { display: block !important; }

  .print-report-header {
    padding: 0 0 14px;
    margin-bottom: 18px;
    border-bottom: 2px solid #14171F;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-header-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 20pt;
    font-weight: 700;
    margin-bottom: 8px;
  }
  .print-header-meta {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5pt;
    color: #5B6472;
    margin-bottom: 8px;
  }
  .print-header-filters {
    font-size: 10pt;
    color: #14171F;
    background: #FAFBFC;
    border: 1px solid #E2E5EA;
    border-radius: 8px;
    padding: 8px 12px;
  }

  /* ---------- general layout: full width, no fixed containers ---------- */
  main.dashboard {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .panel-block {
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 22px;
  }

  .section-head { break-after: avoid; page-break-after: avoid; }

  .section-eyebrow, .section-title { color: #14171F !important; }

  /* ---------- KPI cards: avoid mid-card page breaks ---------- */
  .kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .kpi-card {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #E2E5EA !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
  }

  /* ---------- charts: full width, crisp canvases, no clipping ---------- */
  .charts-grid {
    display: block !important;
  }
  .chart-card {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #E2E5EA !important;
    box-shadow: none !important;
    width: 100% !important;
    margin-bottom: 16px;
  }
  .chart-canvas-wrap {
    height: 320px !important;
    position: relative !important;
  }
  .chart-canvas-wrap canvas {
    max-width: 100% !important;
    width: 100% !important;
    height: 100% !important;
  }

  /* ---------- correlation matrix ---------- */
  .corr-panel {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #E2E5EA !important;
    box-shadow: none !important;
    overflow: visible !important;
  }
  .corr-cell { border: 0.5px solid rgba(0,0,0,0.05); }

  /* ---------- group comparison ---------- */
  .group-compare-panel {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #E2E5EA !important;
    box-shadow: none !important;
  }
  .group-compare-chart-wrap { height: 280px !important; }

  /* ---------- data health chips ---------- */
  #dataHealthSection { display: block !important; }
  .health-grid { break-inside: avoid; page-break-inside: avoid; }
  .health-chip { border: 1px solid #E2E5EA !important; }

  /* ---------- outlier / duplicate callouts: keep, drop the action button ---------- */
  .outlier-callout { border: 1px solid #E2E5EA !important; box-shadow: none !important; }
  .outlier-callout .btn-ghost { display: none !important; }

  /* ---------- print-only data table ---------- */
  #printTableSlot { display: none; }
  body.print-active.print-include-table #printTableSlot { display: block !important; }
  body.print-active #tablePanel { display: none !important; }

  .print-section-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 14pt;
    margin-bottom: 8px;
    break-after: avoid;
  }
  .print-table-note {
    font-size: 9.5pt;
    color: #5B6472;
    margin-bottom: 10px;
  }
  table.print-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9pt;
  }
  table.print-table thead {
    position: static !important;
  }
  table.print-table th,
  table.print-table td {
    border: 1px solid #E2E5EA;
    padding: 5px 7px;
    text-align: left;
  }
  table.print-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ---------- footer ---------- */
  .app-foot { display: none !important; }

  /* ---------- kill any hover-only affordances ---------- */
  *:hover { box-shadow: none !important; }

  @page {
    margin: 14mm 12mm;
  }
}
