@media print {
  /* 1. Definición exacta de la página A4 y sus márgenes físicos */
  @page {
    size: A4 portrait; /* O 'landscape' si es horizontal */
    margin: 15mm 12mm 15mm 12mm; /* Arriba, Derecha, Abajo, Izquierda */
  }

  /* 2. Reset del lienzo para evitar desbordamientos y páginas en blanco */
  html, body {
    width: 100%;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    font-size: 10pt; /* 10pt - 11pt es ideal para A4 */
    line-height: 1.4;
    -webkit-print-color-adjust: exact; /* Fuerza la impresión de colores de fondo si existen */
    print-color-adjust: exact;
  }

  /* 3. Control estricto de saltos de página */
  h1, h2, h3, h4, tr, img {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  h1, h2, h3 {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* 4. Ocultar elementos no imprimibles (no usar selectores
     genéricos como footer/nav/button: el pie HTML del preview
     puede contener <footer> y debe imprimirse). */
  .no-print,
  .sidebar {
    display: none !important;
  }

  #preview-scroll footer,
  #preview-scroll nav,
  #preview-scroll button {
    display: revert !important;
    visibility: visible !important;
    position: static !important;
    height: auto !important;
    width: auto !important;
    overflow: visible !important;
    left: auto !important;
  }

  #toolbar,
  #editor-panel,
  #split-resizer,
  #context-menu,
  #ai-panel,
  #settings-modal,
  #file-input,
  .CodeMirror,
  .CodeMirror-scroll,
  .CodeMirror-sizer,
  .CodeMirror-gutters,
  .print\:hidden {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -99999px !important;
  }

  #main-layout {
    height: auto !important;
    display: block !important;
  }

  #preview-panel {
    width: 100% !important;
    height: auto !important;
    border: none !important;
    display: block !important;
  }

  #preview-scroll {
    overflow: visible !important;
    background: white !important;
    height: auto !important;
  }

  .preview-header,
  .preview-footer {
    display: block !important;
  }

  .preview-header:empty,
  .preview-footer:empty {
    display: none !important;
  }

  .prose-preview {
    padding: 0 !important;
    color: #111 !important;
  }

  .prose-preview a {
    color: #1a1a1a !important;
    text-decoration: underline;
  }

  .sc-note {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .sc-youtube {
    display: none;
  }

  .prose-preview pre {
    white-space: pre-wrap;
    word-wrap: break-word;
    background: #000000 !important;
    border: 1px solid #ddd;
    page-break-before: auto;
  }

  .prose-preview .mermaid svg {
    max-width: 100%;
  }

  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  textarea {
    display: none !important;
  }

  .break {
    page-break-before: always;
  }
}
