/* ============================================================
   PRINT — Modo impresión global (#16 nice-to-have)
   ============================================================
   Aplica a cualquier vista del portal cuando el usuario hace
   Ctrl+P. Reglas:
   - Oculta nav/sidebar/buttons/toolbars
   - Tablas full-width
   - Fondos y badges con colores preservados
   - Texto en negro para mejor lectura
   - Páginas A4 con márgenes razonables
   ============================================================ */

@media print {
  @page {
    size: A4;
    margin: 12mm 10mm;
  }

  /* Reset general */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  /* Ocultar todo lo que no es contenido */
  header,
  aside,
  nav,
  .nav-btn,
  .sidebar,
  .nav-section,
  #qsFloatBtn,
  #bulkToolbar,
  .btn,
  .av-btn,
  .ec-actions,
  .av-toolbar,
  .ec-toolbar,
  .ec-tabs,
  .imp-tabs,
  .no-print,
  .modal-overlay,
  [data-act],
  .pull-to-refresh,
  .floating-button,
  .toast,
  .notification-bell,
  button.btn-fab,
  .nav-toggle,
  .topbar {
    display: none !important;
  }

  /* Layout: hacer el contenido full-width */
  main,
  .main-content,
  .view,
  [data-view],
  #app {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  /* Tablas: máximo aprovechamiento */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 10px !important;
    page-break-inside: auto;
  }
  tr {
    page-break-inside: avoid;
    page-break-after: auto;
  }
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  th, td {
    padding: 4px 6px !important;
    border-bottom: 1px solid #ccc !important;
    text-align: left;
  }
  th {
    background: #f0f0f0 !important;
    font-weight: 700;
    border-bottom: 2px solid #000 !important;
  }

  /* Headings */
  h1, h2, h3, h4 {
    color: #000 !important;
    page-break-after: avoid;
    margin-top: 14px !important;
  }
  h2 {
    border-bottom: 1.5px solid #000;
    padding-bottom: 4px;
  }

  /* Links: mostrar URL en print */
  a {
    color: #000 !important;
    text-decoration: none !important;
  }
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9px;
    color: #444;
  }

  /* Badges: mantener visibles con borde */
  .badge,
  .av-badge,
  .c360-badge,
  .ec-badge {
    border: 1px solid #888 !important;
    padding: 1px 4px !important;
    font-size: 9px !important;
  }

  /* KPIs / cards: bordes en lugar de fondos sólidos */
  .kpi,
  .an-card,
  .de-card,
  .de-kpi,
  .c360-section,
  .imp-stat {
    border: 1px solid #888 !important;
    background: #fff !important;
    box-shadow: none !important;
    padding: 8px !important;
    margin-bottom: 6px !important;
  }

  /* Forzar salto de página opcional en clases utilitarias */
  .page-break-before { page-break-before: always; }
  .page-break-after { page-break-after: always; }
  .no-page-break { page-break-inside: avoid; }

  /* Footer impreso (opcional, vacío para overrides) */
  body::after {
    content: "Portal Titanes · Ciudad Vista del Valle";
    display: block;
    position: fixed;
    bottom: 4mm;
    right: 10mm;
    font-size: 8px;
    color: #888;
  }
}
