/* A4 layout and print rules shared by editor and viewer. */
:root {
  --page-margin-top: 20mm;
  --page-margin-bottom: 20mm;
  --page-margin-left: 15mm;
  --page-margin-right: 15mm;
}

.document-pages {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.pdf-page, .paper {
  background-color: #ffffff !important;
  color: #111111 !important;
  border: none !important;
  box-sizing: border-box;
}

.pdf-page {
  position: relative;
  flex-shrink: 0;
  width: 210mm;
  height: 297mm;
  padding-top: var(--page-margin-top, 20mm) !important;
  padding-bottom: var(--page-margin-bottom, 20mm) !important;
  padding-left: var(--page-margin-left, 15mm) !important;
  padding-right: var(--page-margin-right, 15mm) !important;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3) !important; 
}

.pdf-header {
  position: absolute;
  top: 10mm;
  left: var(--page-margin-left, 15mm) !important;
  right: var(--page-margin-right, 15mm) !important;
  display: flex;
  justify-content: space-between;
  font-size: 9pt;
  color: #666;
  border-bottom: 1px solid #eee;
  padding-bottom: 4px;
}

.pdf-footer {
  position: absolute;
  bottom: 10mm;
  left: var(--page-margin-left, 15mm) !important;
  right: var(--page-margin-right, 15mm) !important;
  display: flex;
  justify-content: space-between;
  font-size: 9pt;
  color: #666;
  border-top: 1px solid #eee;
  padding-top: 4px;
}

.pdf-content h1, .pdf-content h2 {
  display: block;
  width: auto;
  max-width: 100%;
}

.pdf-content pre, .pdf-content code {
  overflow-wrap: anywhere;
}

.toc-container, .toc-wrapper {
  display: block !important;
  position: relative !important;
  clear: both !important;
  page-break-inside: avoid;
  break-inside: auto;
}

.toc-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  position: relative !important;
  line-height: 1.6 !important;
  margin-bottom: 6px !important;
  page-break-inside: avoid;
}

.style-preset-default { background: transparent; border: none; padding: 0; }

.style-preset-highlight { background: #e0f2fe; border-left: 4px solid #0284c7; padding: 10px 14px; border-radius: 4px; }

.style-preset-bordered { border: 1px solid #cbd5e1; border-radius: 6px; padding: 10px 14px; background: #f8fafc; }

.style-preset-card { background: #ffffff; border-radius: 8px; padding: 12px 16px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); border: 1px solid #f1f5f9; }

.pdf-content > :first-child,
.pdf-page:first-child {
  page-break-before: avoid !important;
  break-before: avoid !important;
  margin-top: 0 !important;
}

.page-break-before {
  page-break-before: always !important;
  break-before: page !important;
  border-top: none !important;
}

[hidden] { display: none !important; }

.pdf-content { display: flow-root; overflow-wrap: anywhere; }

.pdf-header { gap: 12px; }

.pdf-header span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.pdf-header span:first-child { flex: 1; }

.pdf-header span:last-child { max-width: 40%; }

.pdf-content > * { max-width: 100%; box-sizing: border-box; }

.pdf-content img, .pdf-content svg:not(.katex *) {
  max-width: 100%; max-height: var(--page-content-height); object-fit: contain;
}

.pdf-content table { max-width: 100%; overflow-wrap: anywhere; }

.pdf-content .toc-heading { margin-top: 0; }

.pdf-page.with-header-footer {
  padding-top: max(var(--page-margin-top), 19mm) !important;
  padding-bottom: max(var(--page-margin-bottom), 19mm) !important;
}

.scaled-block { position: relative; overflow: visible; }

.toc-level-2 { padding-left: 16px; }

.toc-level-3 { padding-left: 32px; }

.toc-page-number { min-width: 2em; text-align: right; }

@media print {
@page { size: A4 portrait; margin: 0; }
html, body { width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
body { background: white !important; }
.document-pages { display: block !important; gap: 0 !important; margin: 0 !important; zoom: 1 !important; }
.pdf-page.A4 {
    /* WebKit rounds an exact A4 box past the print page boundary, creating a
       blank sheet after each page. Reserve one CSS pixel for that rounding. */
    width: 210mm; height: calc(297mm - 1px); box-shadow: none !important; margin: 0 !important;
    break-inside: avoid; page-break-after: always; break-after: page;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
.pdf-page.A4:last-child { page-break-after: auto; break-after: auto; }
.page-break-before { break-before: auto !important; page-break-before: auto !important; border-top: none !important; margin-top: 0 !important; }
}

.pdf-content[data-imported-css="true"] {
  display: flow-root !important; position: relative !important;
  width: 100% !important; min-width: 0 !important; max-width: 100% !important;
  min-height: 0 !important; max-height: none !important;
  margin: 0 !important; padding: 0 !important; transform: none !important;
  box-sizing: border-box !important;
}

.pdf-document-background { position: absolute; inset: 0; pointer-events: none; z-index: 0; }

.pdf-page > .pdf-content, .pdf-header, .pdf-footer { position: relative; z-index: 1; }

.pdf-header, .pdf-footer { position: absolute; }

@media print {
.pdf-document-background { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

:is(.pdf-content,.block-edit-content) [data-list-marker="disc"] { list-style-type: disc !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="circle"] { list-style-type: circle !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="square"] { list-style-type: square !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="none"] { list-style-type: none !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="decimal"] { list-style-type: decimal !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="decimal-leading-zero"] { list-style-type: decimal-leading-zero !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="lower-alpha"] { list-style-type: lower-alpha !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="upper-alpha"] { list-style-type: upper-alpha !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="lower-roman"] { list-style-type: lower-roman !important; }

:is(.pdf-content,.block-edit-content) [data-list-marker="upper-roman"] { list-style-type: upper-roman !important; }

:is(.pdf-content,.block-edit-content) img[data-pdf-image] { display: block !important; width: var(--pdf-image-width, 100%) !important; height: auto !important; max-width: 100% !important; object-fit: contain; }

:is(.pdf-content,.block-edit-content) img[data-image-align="left"] { margin-left: 0 !important; margin-right: auto !important; }

:is(.pdf-content,.block-edit-content) img[data-image-align="center"] { margin-left: auto !important; margin-right: auto !important; }

:is(.pdf-content,.block-edit-content) img[data-image-align="right"] { margin-left: auto !important; margin-right: 0 !important; }

:is(.pdf-content,.block-edit-content) img[data-image-failed="true"] { min-height: 64px; border: 1px dashed #b64242; color: #942e2e; background: #fff3f3; }

