/* ================================================================
 * page.css – DIN-A4-Seitenlayout
 * Bildschirm-Vorschau + Druckregeln. Standard ist Farbe;
 * der Schwarzweiß-Modus liegt in bw.css und überschreibt selektiv.
 * ============================================================== */

:root {
  --page-w:  210mm;
  --page-h:  297mm;
  --margin:  15mm;
  --font-code: "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
}

.pages {
  padding: 20px 0 40px;
}

.page {
  width: var(--page-w);
  min-height: var(--page-h);
  margin: 16px auto;
  padding: var(--margin);
  background: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.page-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid #d0d4dc;
  padding-bottom: 6px;
  margin-bottom: 10px;
  font-size: 10pt;
  color: #4b525d;
}
.page-header .filename { font-weight: 600; color: #1f2329; }
.page-header .lang     { font-family: var(--font-code); font-size: 9pt; }

.page-footer {
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid #d0d4dc;
  font-size: 9pt;
  color: #6b7280;
}

/* ---------- Code-Body ---------- */
pre.code {
  margin: 0;
  padding: 0;
  flex: 1;
  font-family: var(--font-code);
  font-size: 9.5pt;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
  tab-size: 4;
}
pre.code code { background: transparent !important; padding: 0 !important; }

.line { display: flex; }

.line-no {
  flex: 0 0 auto;
  width: 3em;
  padding-right: 10px;
  margin-right: 10px;
  text-align: right;
  color: #9aa3b2;
  border-right: 1px solid #e2e5ec;
  user-select: none;
}

.line-content {
  flex: 1;
  min-width: 0;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.no-linenumbers .line-no { display: none; }

/* ---------- Print ---------- */
@page { size: A4; margin: 0; }

@media print {
  .pages { padding: 0; }
  .page {
    width: 210mm;
    height: 297mm;
    min-height: 297mm;
    margin: 0;
    box-shadow: none;
    /* Jede .page ist 297mm hoch und füllt damit von selbst eine A4-Seite.
       Standard ist deshalb `auto` – sonst würden zwischen Folgeseiten
       Leerseiten entstehen. Der Renderer setzt zusätzlich `force-break`
       auf die letzte Seite jeder Datei (außer der allerletzten Datei),
       damit garantiert nie zwei Dateien auf einer A4-Seite landen,
       selbst wenn ein Renderer mal kürzer als 297mm ausgibt. */
    page-break-after: auto;
    break-after: auto;
  }
  .page.force-break {
    page-break-after: always;
    break-after: page;
  }
}
