/* ==========================================================================
   NEMPlanner - Estilos de Impresión Oficial (PDF / Impresora)
   Optimizado para Boletas, Reportes Semanales, Fichas FODA, Incidencias y Planeaciones SEP
   ========================================================================== */

@media print {
  /* 1. Ocultar de forma absoluta toda la interfaz de la aplicación, menús laterales, encabezados y modales */
  .app-header,
  #appLeftSidebar,
  .app-left-sidebar,
  #fabThemeWrapper,
  .fab-theme-wrapper,
  .btn-toggle-left-sidebar,
  .inner-book-spine-rings,
  .top-module-bar-container,
  .side-month-tabs-track,
  .hide-on-print,
  .no-print,
  .planner-actions-right,
  .planner-view-selector-tabs,
  .pa-header-actions,
  .pa-header-banner,
  .pa-view-tabs,
  .btn-primary-action,
  .btn-secondary,
  .btn-close-modal,
  .modal-footer,
  .modal-backdrop,
  .book-cover-modal-backdrop,
  #bookCoverModal,
  .setup-wizard-overlay,
  .appearance-modal-backdrop,
  .student-file-top-toolbar,
  .appointments-top-actions,
  .reports-center-header,
  .report-formats-nav-bar,
  .student-select-toolbar {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
  }

  /* 2. Resetear contenedor body y viewport para documento limpio */
  html, body {
    background: #FFFFFF !important;
    color: #0F172A !important;
    font-size: 9pt !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .planner-workspace-shell,
  .planner-book-frame,
  .planner-page-content,
  #appMainContent,
  .printable-body,
  .planner-active-view-container,
  .reports-center-page-shell,
  .report-sheet-view-frame {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    position: static !important;
    display: block !important;
    float: none !important;
  }

  /* 3. Contenedor Editorial Principal */
  .editorial-report-document {
    border: none !important;
    box-shadow: none !important;
    padding: 10px 14px !important;
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
    box-sizing: border-box !important;
  }

  /* 4. Tablas e Impresión de Alta Fidelidad */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

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

  thead {
    display: table-header-group !important;
  }

  tfoot {
    display: table-footer-group !important;
  }

  /* 5. Cajas y Secciones que deben mantenerse íntegras */
  .foda-card-box,
  .incidencia-section-card,
  .report-card-section,
  .official-signature-table,
  .editorial-signatures-block,
  .editorial-kpi-grid,
  .avoid-break {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .editorial-section-box,
  .editorial-data-table {
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .editorial-data-table tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* 6. Bloque de Firmas Niveladas */
  .official-signature-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border: none !important;
    margin-top: 16px !important;
  }

  .official-signature-table td {
    vertical-align: bottom !important;
    text-align: center !important;
    border: none !important;
    padding: 0 6px !important;
  }

  /* 7. Eliminar saltos de página forzados que dejan huecos en blanco */
  .avoid-break {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}
