/* ==========================================================================
   Print & PDF Generation Stylesheet (V2.3 - Flawless Vector Mirroring)
   Guarantees 100% vector typography, intact Persian ligatures, and exact preview theme fidelity.
   ========================================================================== */

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

@media print {
  /* ==========================================================================
     Global Print Reset (Preserving Theme & Exact Colors)
     ========================================================================== */
  html, body {
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    overflow: visible !important;
    font-family: var(--font-persian) !important;
    background-color: var(--md-bg) !important;
    color: var(--md-text) !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: none !important;
  }

  /* Force exact background colors on all elements */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* Suppress all scrollbars and scroll tracks in print output */
  ::-webkit-scrollbar,
  ::-webkit-scrollbar-thumb,
  ::-webkit-scrollbar-track,
  ::-webkit-scrollbar-corner {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
  }
  * {
    scrollbar-width: none !important;
  }

  /* Hide Application Shell UI Elements, Drawers, Widgets & Overlays */
  .app-header,
  .toolbar,
  .find-replace-bar,
  .pane-editor,
  .resizer,
  .pane-header,
  .pane-tools,
  .width-control-bar,
  .status-bar,
  .modal-overlay,
  .command-palette-overlay,
  .toast-container,
  .toc-sidebar,
  .workspace-docs-sidebar,
  .floating-edit-btn,
  #btn-floating-edit,
  .reader-mode-banner,
  .landing-hero-overlay,
  .preloader-overlay,
  .decrypt-overlay,
  .presentation-overlay,
  .remote-cursors-bar,
  .collab-remote-cursor,
  .collab-cursor-flag,
  .collab-selection-highlight,
  .code-copy-btn,
  .no-print {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* Keep Code Block Language Badge Visible in Print */
  .code-block-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 2.5pt 8pt !important;
    font-size: 7.5pt !important;
    font-weight: 600 !important;
    font-family: var(--font-mono) !important;
    color: var(--color-text-secondary) !important;
    border-bottom: 0.5pt solid var(--color-border) !important;
    background-color: var(--color-bg-elevated) !important;
  }

  /* Reset Workspace Layout Containers */
  .app-container,
  .workspace,
  .pane,
  .pane-preview,
  .pane-body,
  .preview-scroll,
  .preview-wrapper {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    border-radius: 0 !important;
  }

  /* Enforce full-width preview regardless of active workspace view mode */
  .workspace.mode-split,
  .workspace.mode-editor-only,
  .workspace.mode-preview-only {
    display: block !important;
    width: 100% !important;
    height: auto !important;
  }
  .workspace.mode-split .pane-editor,
  .workspace.mode-editor-only .pane-editor {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
  .workspace.mode-split .pane-preview,
  .workspace.mode-editor-only .pane-preview,
  .workspace.mode-preview-only .pane-preview {
    display: block !important;
    width: 100% !important;
    height: auto !important;
  }

  /* Exact Preview Paper Wrapper (0 padding prevents double margins) */
  .preview-wrapper {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    background-color: var(--md-bg) !important;
    box-shadow: none !important;
    filter: none !important;
    border-radius: 0 !important;
  }

  /* Markdown Body Typography */
  .markdown-body {
    background: transparent !important;
    color: var(--md-text) !important;
    font-size: 10pt !important;
    line-height: 1.68 !important;
    overflow: visible !important;
    contain: none !important;
  }

  .markdown-body[dir="rtl"] {
    direction: rtl !important;
    text-align: right !important;
    letter-spacing: normal !important;
    font-feature-settings: "kern" 1, "liga" 1 !important;
  }

  /* Headings Pagination & Proportions */
  .markdown-body h1,
  .markdown-body h2,
  .markdown-body h3,
  .markdown-body h4,
  .markdown-body h5,
  .markdown-body h6 {
    color: var(--md-headings) !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
    letter-spacing: normal !important;
  }

  .markdown-body[dir="rtl"] h1 {
    font-size: 16.5pt !important;
    border-right: 4px solid var(--color-primary) !important;
    padding-right: 8pt !important;
    margin-top: 14pt !important;
    margin-bottom: 8pt !important;
  }

  .markdown-body[dir="rtl"] h2 {
    font-size: 13.5pt !important;
    border-bottom: 1pt solid var(--md-table-border) !important;
    padding-bottom: 3pt !important;
    margin-top: 12pt !important;
    margin-bottom: 6pt !important;
  }

  .markdown-body[dir="rtl"] h3 {
    font-size: 11.5pt !important;
    margin-top: 10pt !important;
    margin-bottom: 5pt !important;
  }

  .markdown-body[dir="rtl"] h4 {
    font-size: 10.5pt !important;
    margin-top: 8pt !important;
    margin-bottom: 4pt !important;
  }

  /* Paragraphs Widows & Orphans */
  .markdown-body p {
    color: var(--md-text) !important;
    widows: 2 !important;
    orphans: 2 !important;
    margin-top: 0 !important;
    margin-bottom: 6pt !important;
  }

  /* Horizontal Divider (Clean thin rule without excessive spacing) */
  .markdown-body hr {
    height: 1px !important;
    border: none !important;
    border-top: 1pt solid var(--color-border) !important;
    background: transparent !important;
    margin: 10pt 0 !important;
  }

  /* Atomic Block Protection (Only for images, callouts, and diagrams) */
  .markdown-body figure,
  .markdown-body img,
  .markdown-callout,
  .mermaid,
  .markdown-body tr,
  .markdown-body li {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Flowing Multi-line Blocks (Allowed to flow across pages to eliminate giant gaps) */
  .code-block-card,
  .markdown-body pre,
  .markdown-body blockquote,
  .table-container,
  .markdown-body table {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  /* Blockquote Print */
  .markdown-body[dir="rtl"] blockquote {
    background-color: var(--md-quote-bg) !important;
    border-right: 3.5pt solid var(--md-quote-border) !important;
    border-left: none !important;
    color: var(--color-text-secondary) !important;
    padding: 5pt 8pt !important;
    margin: 6pt 0 !important;
  }

  /* Code Blocks */
  .code-block-card {
    border: 1pt solid var(--color-border) !important;
    background-color: var(--md-code-bg) !important;
    border-radius: 4pt !important;
    margin: 6pt 0 10pt 0 !important;
    overflow: visible !important;
    contain: none !important;
    max-height: none !important;
    box-decoration-break: clone !important;
    -webkit-box-decoration-break: clone !important;
  }

  .markdown-body pre {
    padding: 6pt 8pt !important;
    white-space: pre-wrap !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    overflow: visible !important;
    contain: none !important;
    max-height: none !important;
    margin: 0 !important;
    orphans: 1 !important;
    widows: 1 !important;
  }

  .markdown-body pre code {
    font-size: 8.2pt !important;
    line-height: 1.45 !important;
    font-family: var(--font-mono) !important;
    orphans: 1 !important;
    widows: 1 !important;
    overflow: visible !important;
    contain: none !important;
    display: block !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .markdown-body[dir="rtl"] code:not(pre code) {
    background-color: var(--md-inline-code-bg) !important;
    color: var(--md-inline-code-color) !important;
    border: 0.5pt solid var(--color-border) !important;
    padding: 1pt 3pt !important;
    font-size: 8.2pt !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
  }

  /* ==========================================================================
     High-Precision Print Table Styling (Flawless on A4 Portrait & Landscape)
     ========================================================================== */
  .table-container {
    overflow: visible !important;
    border: 1pt solid var(--md-table-border) !important;
    border-radius: 4pt !important;
    margin: 8pt 0 !important;
    background-color: var(--color-bg-surface) !important;
    width: 100% !important;
  }

  .markdown-body table.markdown-table,
  .markdown-body[dir="rtl"] table {
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: collapse !important;
    font-size: 8pt !important;
    line-height: 1.4 !important;
  }

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

  .markdown-body th,
  .markdown-body[dir="rtl"] th {
    background-color: var(--color-bg-elevated) !important;
    color: var(--md-headings) !important;
    font-size: 7.8pt !important;
    padding: 4pt 5pt !important;
    border-bottom: 1.5pt solid var(--color-primary) !important;
    border-left: 0.5pt solid var(--md-table-border) !important;
    white-space: nowrap !important;
  }

  .markdown-body td,
  .markdown-body[dir="rtl"] td {
    padding: 3.5pt 5pt !important;
    font-size: 7.8pt !important;
    border-bottom: 0.5pt solid var(--md-table-border) !important;
    border-left: 0.5pt solid var(--md-table-border) !important;
    color: var(--md-text) !important;
  }

  .markdown-body tr:nth-child(even) td {
    background-color: var(--md-table-stripe) !important;
  }

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

  .markdown-body td.cell-numeric,
  .markdown-body th.cell-numeric {
    white-space: nowrap !important;
    font-variant-numeric: tabular-nums !important;
  }

  /* Callouts Print */
  .markdown-callout {
    border-right-width: 3.5pt !important;
    padding: 6pt 10pt !important;
    margin: 8pt 0 !important;
    border-radius: 4pt !important;
  }
  .markdown-callout.note { background-color: var(--color-info-bg) !important; border-right-color: var(--color-info) !important; }
  .markdown-callout.tip { background-color: var(--color-success-bg) !important; border-right-color: var(--color-success) !important; }
  .markdown-callout.important { background-color: var(--color-primary-light) !important; border-right-color: var(--color-primary) !important; }
  .markdown-callout.warning { background-color: var(--color-warning-bg) !important; border-right-color: var(--color-warning) !important; }
  .markdown-callout.caution { background-color: var(--color-danger-bg) !important; border-right-color: var(--color-danger) !important; }

  /* Optional: Clean White Ink-Saver Mode */
  html.print-clean-white,
  body.print-clean-white {
    background-color: #ffffff !important;
    color: #111111 !important;
  }
  body.print-clean-white .app-container,
  body.print-clean-white .workspace,
  body.print-clean-white .pane-preview,
  body.print-clean-white .pane-body,
  body.print-clean-white .preview-scroll,
  body.print-clean-white .preview-wrapper {
    background-color: #ffffff !important;
    box-shadow: none !important;
  }
  body.print-clean-white .markdown-body {
    color: #111111 !important;
  }
  body.print-clean-white .markdown-body h1,
  body.print-clean-white .markdown-body h2,
  body.print-clean-white .markdown-body h3,
  body.print-clean-white .markdown-body h4 {
    color: #000000 !important;
  }
  body.print-clean-white .markdown-body p,
  body.print-clean-white .markdown-body li,
  body.print-clean-white .markdown-body td {
    color: #111111 !important;
  }
  body.print-clean-white .table-container,
  body.print-clean-white th {
    background-color: #f1f5f9 !important;
    color: #0f172a !important;
  }
  body.print-clean-white tr:nth-child(even) td {
    background-color: #f8fafc !important;
  }

  /* KaTeX Math Equations in Print */
  .katex-display {
    overflow: visible !important;
    margin: 10pt 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Mermaid Diagrams in Print */
  .mermaid {
    overflow: visible !important;
    max-width: 100% !important;
    margin: 12pt 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .mermaid svg {
    max-width: 100% !important;
    height: auto !important;
  }

  /* Link Clean Formatting in Print */
  .markdown-body a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
  }
  .markdown-body a::after {
    display: none !important;
    content: none !important;
  }

  /* Manual Page Breaks */
  .page-break {
    display: block !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    break-before: page !important;
    page-break-before: always !important;
  }

  .page-break::after {
    display: none !important;
  }

  /* ==========================================================================
     Official Cover Page Styles (Vector-Perfect Front Cover)
     ========================================================================== */
  .pdf-cover-page {
    page-break-after: always !important;
    break-after: page !important;
    height: 100vh !important;
    min-height: 100vh !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 30mm 20mm 25mm 20mm !important;
    position: relative !important;
    overflow: hidden !important;
    font-family: var(--font-persian) !important;
  }

  .cover-header-brand {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 1.5pt solid var(--color-border) !important;
    padding-bottom: 15pt !important;
  }

  .cover-org-name {
    font-size: 14pt !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
  }

  .cover-badge-pill {
    font-size: 8.5pt !important;
    font-weight: 600 !important;
    background-color: var(--color-primary-light) !important;
    color: var(--color-primary) !important;
    padding: 3pt 8pt !important;
    border-radius: 4pt !important;
  }

  .cover-body-center {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 40pt 0 !important;
  }

  .cover-title-main {
    font-size: 26pt !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    color: var(--color-text-primary) !important;
    margin-bottom: 14pt !important;
    border: none !important;
    padding: 0 !important;
  }

  .cover-subtitle-desc {
    font-size: 13pt !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    color: var(--color-text-secondary) !important;
    max-width: 90% !important;
    margin: 0 !important;
  }

  .cover-footer-meta {
    border-top: 1.5pt solid var(--color-border) !important;
    padding-top: 18pt !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
  }

  .cover-meta-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 6pt !important;
    font-size: 9.5pt !important;
    color: var(--color-text-secondary) !important;
  }

  .cover-meta-item strong {
    color: var(--color-text-primary) !important;
    margin-left: 5pt !important;
  }

  /* Style 1: Modern Corporate */
  .pdf-cover-page.cover-style-modern-corporate {
    border-right: 8px solid var(--color-primary) !important;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.04) 0%, rgba(255, 255, 255, 0) 60%) !important;
  }

  /* Style 2: Academic Classic */
  .pdf-cover-page.cover-style-academic-classic {
    border: 3pt double #334155 !important;
    text-align: center !important;
  }
  .pdf-cover-page.cover-style-academic-classic .cover-header-brand {
    justify-content: center !important;
    border-bottom: none !important;
  }
  .pdf-cover-page.cover-style-academic-classic .cover-title-main {
    font-size: 24pt !important;
    font-weight: 800 !important;
    text-align: center !important;
  }
  .pdf-cover-page.cover-style-academic-classic .cover-subtitle-desc {
    text-align: center !important;
    margin: 0 auto !important;
  }
  .pdf-cover-page.cover-style-academic-classic .cover-footer-meta {
    justify-content: center !important;
    text-align: center !important;
  }

  /* Style 3: Minimal Tech */
  .pdf-cover-page.cover-style-minimal-tech {
    border-top: 6pt solid #0f172a !important;
  }
  .pdf-cover-page.cover-style-minimal-tech .cover-title-main {
    font-family: var(--font-persian), var(--font-mono) !important;
  }

  /* Style 4: Executive Luxury */
  .pdf-cover-page.cover-style-elegant-luxury {
    border: 2pt solid #d97706 !important;
    background: linear-gradient(135deg, rgba(217, 119, 6, 0.05) 0%, transparent 70%) !important;
  }
  .pdf-cover-page.cover-style-elegant-luxury .cover-title-main {
    color: #78350f !important;
  }
}

