/* © 2026 Martin Scherer · Fachwerte (https://www.fachwerte.de) · Alle Rechte vorbehalten.
   Steckdosenplaner — Original: https://www.fachwerte.de/tools/steckdosenplaner/
   Stile zu Teil 55 (Plansatz, Ausdruck). Kennung FWSP-2026-09-01 */

/* ═══ Plansatz: genormte Blätter ══════════════════════════════════════════
   Jedes Blatt zeichnet seine Ränder selbst (Heftrand 20 mm links, sonst
   10 mm, Rahmenlinie 0,7 mm nach DIN EN ISO 5457), das Papier bekommt
   @page margin 0. Dadurch druckt der Browser keine Kopf- und Fußzeilen,
   und der Maßstab hängt an keinem Druckerrand mehr. Die Blattgröße steht
   je Blatt in --ps-b/--ps-h (mm); die Seitenart (A4h … A0q) wählt die
   benannte @page-Regel. */

@page { size: 297mm 210mm; margin: 0; }
@page psA4h { size: 210mm 297mm; margin: 0; }
@page psA4q { size: 297mm 210mm; margin: 0; }
@page psA3h { size: 297mm 420mm; margin: 0; }
@page psA3q { size: 420mm 297mm; margin: 0; }
@page psA2h { size: 420mm 594mm; margin: 0; }
@page psA2q { size: 594mm 420mm; margin: 0; }
@page psA1h { size: 594mm 841mm; margin: 0; }
@page psA1q { size: 841mm 594mm; margin: 0; }
@page psA0h { size: 841mm 1189mm; margin: 0; }
@page psA0q { size: 1189mm 841mm; margin: 0; }

.ps-blatt[data-format="A4h"] { page: psA4h; }
.ps-blatt[data-format="A4q"] { page: psA4q; }
.ps-blatt[data-format="A3h"] { page: psA3h; }
.ps-blatt[data-format="A3q"] { page: psA3q; }
.ps-blatt[data-format="A2h"] { page: psA2h; }
.ps-blatt[data-format="A2q"] { page: psA2q; }
.ps-blatt[data-format="A1h"] { page: psA1h; }
.ps-blatt[data-format="A1q"] { page: psA1q; }
.ps-blatt[data-format="A0h"] { page: psA0h; }
.ps-blatt[data-format="A0q"] { page: psA0q; }

/* Das Blatt: feste Papiergröße, alles darin absolut in Millimetern. */
.ep-druck .ep-blatt.ps-blatt {
    position: relative;
    display: block;
    width: var(--ps-b);
    height: var(--ps-h);
    padding: 0;
    gap: 0;
    overflow: hidden;
    color: #000;
    --ps-ink: #000;
    --ps-grau: #595959;
    --ps-linie: #000;
    font-family: Arial, Helvetica, sans-serif;
}
.ep-druck .ps-blatt .ep-blatt-inhalt {
    position: absolute;
    left: var(--ps-zx); top: var(--ps-zy);
    width: var(--ps-zb); height: var(--ps-zh);
    overflow: hidden;
    color: #000;
}
.ep-druck-vorschau .ep-blatt.ps-blatt { padding: 0; }
.ep-druck.ep-druck-messen { width: 1200mm; }

/* Rahmen, Mittenmarken, Faltmarken als ein SVG in Blattgröße (Vektor). */
.ps-rahmen { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.ps-rahmen svg { display: block; width: 100%; height: 100%; overflow: visible; }

/* ── Kopfzeile der Listenblätter ──────────────────────────────────────── */
.ep-druck .ps-blatt .ep-blatt-kopf.ps-kopf {
    position: absolute;
    left: var(--ps-zx); top: var(--ps-ky, var(--ps-zy));
    width: var(--ps-zb); height: 12mm;
    min-height: 0; flex: none;
    display: flex; align-items: flex-end; justify-content: space-between; gap: 5mm;
    margin: 0; padding: 0 0 1.2mm;
    border: 0; border-bottom: .25mm solid #000;
}
.ep-druck .ps-blatt .ps-kopf h2 { font-size: 4.9mm; line-height: 1.2; font-weight: 700; margin: 0; letter-spacing: 0; }
.ep-druck .ps-blatt .ps-kopf .ps-kopf-rechts { font-size: 2.5mm; line-height: 1.3; text-align: right; color: var(--ps-grau); white-space: nowrap; flex: 0 1 auto; max-width: 48%; min-width: 0; overflow: hidden; }
.ep-druck .ps-blatt .ps-kopf .ps-kopf-rechts b { color: #000; font-weight: 700; display: inline-block; max-width: 100%; vertical-align: bottom; overflow: hidden; text-overflow: ellipsis; }
.ep-druck .ps-blatt .ps-kopf .ps-kopf-links { min-width: 0; }
.ep-druck .ps-blatt .ps-kopf .ps-kopf-unter { font-size: 2.5mm; color: var(--ps-grau); margin-top: .6mm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ep-druck .ps-blatt .ps-kopf .ps-kopf-links { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.ep-druck .ps-blatt .ps-kopf .ep-kopf-schaetz { position: absolute; right: 0; bottom: 13mm; margin: 0; }
.ep-druck .ps-blatt .ps-kopf .ep-kopf-bildansicht { color: #8f1d12; font-weight: 700; }

/* ── Band und Spalte: Legende, Änderungstabelle, Schriftfeld ───────────── */
.ps-band, .ps-spalte {
    position: absolute;
    display: flex;
    gap: 3mm;
    align-items: stretch;
}
.ps-band {
    left: var(--ps-zx); right: var(--ps-rand-r);
    bottom: var(--ps-rand-u);
    height: var(--ps-band-h);
    flex-direction: row;
    justify-content: flex-end;
}
.ps-spalte {
    top: var(--ps-zy); bottom: var(--ps-rand-u);
    right: var(--ps-rand-r);
    width: var(--ps-sf-b);
    flex-direction: column;
}
.ps-band > .ps-legende { flex: 1 1 auto; min-width: 0; }
/* Legende neben dem Plan (Aufteilung „seite“, große Blätter) */
.ps-seite { position: absolute; display: flex; flex-direction: column; }
.ps-seite > .ps-legende { flex: 1 1 auto; min-height: 0; }
.ps-spalte > .ps-legende { flex: 1 1 auto; min-height: 0; }
.ps-block { flex: 0 0 auto; display: flex; flex-direction: column; justify-content: flex-end; width: var(--ps-sf-b); }
.ps-band > .ps-block { align-self: flex-end; }

/* ── Schriftfeld (DIN EN ISO 7200, 180 mm breit) ─────────────────────────
   Zeilenraster in Millimetern. Außenlinie 0,5 mm, Feldlinien 0,25 mm.
   Feldbezeichnungen 1,8 mm grau, Inhalte 2,5 mm, wichtige Felder 3,5 / 5 mm. */
.ep-druck .ps-sf {
    width: var(--ps-sf-b);
    border: .5mm solid #000;
    background: #fff;
    display: grid;
    grid-template-columns: 1fr;
    /* .ep-blatt-fuss (druck.css) setzt flex, gap und Zentrierung — hier zurück. */
    align-items: stretch; justify-content: normal; justify-items: stretch; gap: 0;
    font-size: 2.5mm;
    line-height: 1.2;
    color: #000;
    box-sizing: border-box;
    flex: none;
    margin: 0; padding: 0;
}
.ep-druck .ps-sf--gross { height: 56mm; grid-template-rows: 20mm 13mm 15mm 7mm; }
.ep-druck .ps-sf--klein { height: 36mm; grid-template-rows: 10mm 11mm 9mm 5mm; }
.ep-druck .ps-sf > div { display: grid; border-bottom: .25mm solid #000; min-height: 0; }
.ep-druck .ps-sf > div:last-child { border-bottom: 0; }
.ep-druck .ps-sf .ps-f { position: relative; padding: 2.4mm 1.5mm .6mm; border-right: .25mm solid #000; min-width: 0; overflow: hidden; }
.ep-druck .ps-sf .ps-f:last-child { border-right: 0; }
.ep-druck .ps-sf .ps-f > span { position: absolute; left: 1.5mm; top: .5mm; font-size: 1.8mm; line-height: 1; color: var(--ps-grau); white-space: nowrap; }
.ep-druck .ps-sf .ps-f > b { display: block; font-weight: 700; overflow-wrap: anywhere; }
.ep-druck .ps-sf .ps-f > i { display: block; font-style: normal; color: #000; font-size: 2.2mm; margin-top: .3mm; }
.ep-druck .ps-sf .ps-f.ps-f--gross > b { font-size: 3.5mm; line-height: 1.15; }
.ep-druck .ps-sf .ps-f.ps-f--titel > b, .ps-sf .ps-f.ps-f--titel > h2 { font-size: 5mm; line-height: 1.1; font-weight: 700; margin: 0; letter-spacing: 0; }
.ep-druck .ps-sf .ps-f.ps-f--titel > h2 { display: block; overflow-wrap: anywhere; }
.ep-druck .ps-sf .ps-f.ps-f--nr > b { font-size: 4.2mm; line-height: 1.15; letter-spacing: .01em; }
.ep-druck .ps-sf .ps-f.ps-f--index > b { font-size: 5mm; line-height: 1.1; }
.ep-druck .ps-sf .ps-f.ps-f--mitte { text-align: center; }
.ep-druck .ps-sf .ps-f.ps-f--mitte > b { font-size: 3.5mm; }
.ep-druck .ps-sf .ps-f--leise > b { font-weight: 400; }
.ep-druck .ps-sf .ps-f.ps-f--klein > b { font-size: 2.2mm; font-weight: 400; }
.ep-druck .ps-sf .ps-f.ps-f--klein > b strong { font-weight: 700; }
.ep-druck .ps-sf .ps-f.ps-f--oben { padding-top: 2.6mm; }
.ep-druck .ps-sf .ps-f.ps-f--frei { padding-top: 2.5mm; }
/* Zeile 1 groß: Firma (60) | Bauvorhaben (80) | Status + Maßstab/Format (40) */
.ep-druck .ps-sf--gross .ps-sf-z1 { grid-template-columns: 60mm 1fr 40mm; }
.ep-druck .ps-sf--gross .ps-sf-z2 { grid-template-columns: 1fr 22mm 28mm; }
.ep-druck .ps-sf--gross .ps-sf-z3 { grid-template-columns: 30mm 30mm 1fr 40mm; }
.ep-druck .ps-sf--gross .ps-sf-z4 { grid-template-columns: 1fr 1fr; }
.ep-druck .ps-sf--klein .ps-sf-z1 { grid-template-columns: 56mm 1fr 40mm; }
.ep-druck .ps-sf--klein .ps-sf-z2 { grid-template-columns: 1fr 24mm 22mm 26mm; }
.ep-druck .ps-sf--klein .ps-sf-z3 { grid-template-columns: 26mm 26mm 1fr 20mm 30mm; }
.ep-druck .ps-sf--klein .ps-sf-z4 { grid-template-columns: 1fr 1fr; }
.ep-druck .ps-sf--klein .ps-f { padding-top: 2.2mm; }
.ep-druck .ps-sf--klein .ps-f > span { top: .4mm; font-size: 1.7mm; }
.ep-druck .ps-sf--klein .ps-f.ps-f--titel > h2 { font-size: 4.2mm; }
.ep-druck .ps-sf--klein .ps-f.ps-f--nr > b { font-size: 3.5mm; }
.ep-druck .ps-sf--klein .ps-f.ps-f--index > b { font-size: 3.5mm; }
.ep-druck .ps-sf--klein .ps-f.ps-f--gross > b { font-size: 3mm; }
/* Firmenblock */
.ep-druck .ps-sf .ps-f--firma { display: flex; flex-direction: column; gap: .2mm; padding-top: 1.2mm; }
.ep-druck .ps-sf .ps-f--firma img { display: block; max-width: 50mm; max-height: 10mm; width: auto; height: auto; object-fit: contain; margin-bottom: .6mm; }
.ep-druck .ps-sf--klein .ps-f--firma img { max-height: 5mm; max-width: 30mm; margin: 0 0 .3mm; }
/* Größen relativ zum Textblock (.ps-firma-text), damit psSchriftfeldEinpassen
   den ganzen Block per Prozent verkleinern kann */
.ep-druck .ps-sf .ps-f--firma .ps-firma-text { font-size: 2.5mm; }
.ep-druck .ps-sf--klein .ps-f--firma .ps-firma-text { font-size: 2.3mm; }
.ep-druck .ps-sf .ps-f--firma b { font-size: 1em; line-height: 1.15; }
.ep-druck .ps-sf .ps-f--firma small { display: block; font-size: .72em; line-height: 1.25; color: #000; overflow-wrap: anywhere; }
.ep-druck .ps-sf--klein .ps-f--firma small { font-size: .74em; }
/* Firmenblock mit Logo: Logo links in einem festen Kasten (20 × 15 mm, mit
   Seitenverhältnis eingepasst – vorher lief ein breites Logo über die
   Spalte und wurde abgeschnitten, Befund 9), Text rechts */
.ep-druck .ps-sf .ps-f--firma.ps-mit-logo { display: grid; grid-template-columns: 20mm minmax(0, 1fr); column-gap: 1.8mm; align-items: center; padding: 1mm 1.5mm; }
.ep-druck .ps-sf .ps-f--firma.ps-mit-logo .ps-logo { display: block; width: 20mm; height: 15mm; overflow: hidden; }
.ep-druck .ps-sf .ps-f--firma.ps-mit-logo img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; object-fit: contain; object-position: left center; }
.ep-druck .ps-sf--klein .ps-f--firma.ps-mit-logo { grid-template-columns: 14mm minmax(0, 1fr); }
.ep-druck .ps-sf--klein .ps-f--firma.ps-mit-logo .ps-logo { width: 14mm; height: 7.5mm; }
.ep-druck .ps-sf .ps-firma-text { min-width: 0; display: flex; flex-direction: column; gap: .15mm; overflow: hidden; }
.ep-druck .ps-sf .ps-firma-text small { white-space: normal; overflow: hidden; overflow-wrap: anywhere; line-height: 1.2; }
.ep-druck .ps-sf .ps-firma-text b { overflow-wrap: anywhere; }
/* Zeilen des Schriftfelds wachsen nie über ihr Raster hinaus */
.ep-druck .ps-sf > div { grid-template-rows: minmax(0, 1fr); overflow: hidden; }
/* Stapelzelle: zwei Felder untereinander (Status / Maßstab+Format) */
.ep-druck .ps-sf .ps-f--stapel { display: grid; grid-template-rows: 1fr 1fr; padding: 0; }
.ep-druck .ps-sf .ps-f--stapel > div { position: relative; padding: 2.4mm 1.5mm .6mm; border-bottom: .25mm solid #000; min-width: 0; }
.ep-druck .ps-sf .ps-f--stapel > div:last-child { border-bottom: 0; }
.ep-druck .ps-sf .ps-f--stapel > div > span { position: absolute; left: 1.5mm; top: .5mm; font-size: 1.8mm; line-height: 1; color: var(--ps-grau); }
.ep-druck .ps-sf .ps-f--stapel > div > b { display: block; font-size: 3.5mm; line-height: 1.1; font-weight: 700; }
.ep-druck .ps-sf .ps-f--stapel .ps-f--paar { display: grid; grid-template-columns: 1fr 1fr; padding: 0; }
.ep-druck .ps-sf .ps-f--stapel .ps-f--paar > div { position: relative; padding: 2.4mm 1.5mm .6mm; border-right: .25mm solid #000; }
.ep-druck .ps-sf .ps-f--stapel .ps-f--paar > div:last-child { border-right: 0; }
.ep-druck .ps-sf .ps-f--stapel .ps-f--paar > div > span { position: absolute; left: 1.5mm; top: .5mm; font-size: 1.8mm; line-height: 1; color: var(--ps-grau); }
.ep-druck .ps-sf .ps-f--stapel .ps-f--paar > div > b { display: block; font-size: 3.5mm; font-weight: 700; line-height: 1.1; }
/* Fußzeile des Schriftfelds: Kennung links, Hinweis rechts (1,8 mm) */
.ep-druck .ps-sf .ps-sf-z4 .ps-f { padding: 0 1.5mm; display: flex; align-items: center; font-size: 1.8mm; line-height: 1.2; color: #000; }
.ep-druck .ps-sf .ps-sf-z4 .ps-f--hinweis { color: var(--ps-grau); }
.ep-druck .ps-sf .ep-seitennummer { font-weight: 700; min-width: 0; text-align: left; color: #000; white-space: nowrap; }
.ep-druck .ps-sf .ps-f--index .ep-seitennummer { display: block; font-size: 2.5mm; margin-top: .4mm; }

/* ── Änderungstabelle über dem Schriftfeld ───────────────────────────── */
.ps-aend { width: var(--ps-sf-b); border-collapse: collapse; font-size: 2.2mm; line-height: 1.1; margin: 0 0 -.25mm; table-layout: fixed; background: #fff; }
.ps-aend th, .ps-aend td { border: .25mm solid #000; padding: 0 1.2mm; height: 5mm; text-align: left; vertical-align: middle; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ps-aend th { font-size: 1.8mm; font-weight: 400; color: var(--ps-grau); height: 4.5mm; }
.ps-aend .ps-aend-i { width: 10mm; text-align: center; font-weight: 700; }
.ps-aend .ps-aend-d { width: 18mm; }
.ps-aend .ps-aend-n { width: 34mm; }
.ps-aend-leer td { color: var(--ps-grau); }

/* ── Legende auf dem Planblatt ───────────────────────────────────────── */
.ps-legende {
    border: .25mm solid #000;
    padding: 1.5mm 2mm;
    font-size: 2.5mm;
    line-height: 1.2;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 1mm;
    background: #fff;
    min-height: 0;
    box-sizing: border-box;
}
.ps-lg-titel { font-size: 3.5mm; font-weight: 700; line-height: 1.1; margin: 0 0 .5mm; }
.ps-lg-spalten { column-count: var(--ps-lg-spalten, 1); column-gap: 3mm; column-fill: auto; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.ps-lg-zeile { display: flex; align-items: center; gap: 1.5mm; height: 4.4mm; break-inside: avoid; white-space: nowrap; overflow: hidden; }
.ps-lg-sym { flex: 0 0 7mm; height: 4.2mm; display: flex; align-items: center; justify-content: center; color: #000; }
.ps-lg-sym svg { height: 4mm; width: auto; max-width: 7mm; overflow: visible; display: block; }
.ps-lg-zeile b { flex: 0 0 8mm; font-weight: 700; overflow: hidden; }
.ps-lg-zeile .ps-lg-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ps-lg-zeile .ps-lg-h { flex: 0 0 auto; color: var(--ps-grau); font-size: 2.2mm; }
.ps-lg-zeile .ps-lg-n { flex: 0 0 7mm; text-align: right; font-variant-numeric: tabular-nums; }
.ps-lg-zeile .ps-lg-punkt { flex: 0 0 3mm; height: 3mm; border-radius: 50%; border: .2mm solid #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ps-lg-zeile.ps-lg-mehr { color: #000; font-style: italic; white-space: normal; height: auto; min-height: 4.4mm; line-height: 1.15; display: block; padding-top: .4mm; flex: 0 0 auto; }
.ps-lg-mehr .ps-lg-verweis { font-style: normal; font-weight: 700; }
/* Hinweis auf weggelassene Bemerkungen (Abnahme 2, N4) */
.ps-lg-bmweg { font-size: 2.2mm; line-height: 1.25; color: #000; font-style: italic; column-span: all; flex: 0 0 auto; }
.ps-lg-bmweg .ps-bmweg-ziel, .ps-sf-bmweg .ps-bmweg-ziel, .ps-lg-nrverz .ps-bmweg-ziel { font-style: normal; font-weight: 700; }
.ps-legende--eng .ps-lg-bmweg { font-size: 2mm; line-height: 1.2; }
/* Lange Bezeichnung: zwei Zeilen statt „…“ (psLegendeEinpassen) */
.ps-lg-zeile.ps-lg-zwei { height: auto; min-height: 4.4mm; padding: .25mm 0; }
.ps-lg-zeile.ps-lg-zwei .ps-lg-name { white-space: normal; line-height: 1.05; font-size: 2.3mm; overflow-wrap: normal; word-break: normal; hyphens: manual; text-overflow: clip; }
.ps-lg-zeichen { font-size: 2.2mm; line-height: 1.25; color: #000; column-span: all; }
.ps-lg-zeichen b { font-weight: 700; }
.ps-lg-fuss { display: flex; align-items: flex-end; gap: 5mm; flex-wrap: wrap; margin-top: auto; padding-top: 1mm; }
.ps-lg-hinweis { font-size: 2.2mm; line-height: 1.25; color: #000; flex: 1 1 40mm; min-width: 0; }
.ps-lg-hinweis b { font-weight: 700; }
.ps-massstab { flex: 0 0 auto; }
.ps-massstab svg { display: block; overflow: visible; }
.ps-nord { flex: 0 0 auto; }
.ps-nord svg { display: block; width: 14mm; height: 14mm; overflow: visible; }
.ps-lg-vermerk { font-size: 2.5mm; font-weight: 700; color: #8f1d12; }
/* Enge Legende (A4): Hinweis über die ganze Breite, Nordpfeil klein */
.ps-legende--eng .ps-lg-fuss--eng { gap: 2mm 4mm; }
.ps-legende--eng .ps-lg-fuss--eng .ps-lg-hinweis { flex: 1 1 100%; font-size: 2mm; line-height: 1.2; }
.ps-legende--eng .ps-nord svg { width: 10mm; height: 10mm; }
.ps-legende--eng .ps-lg-zeichen { font-size: 2mm; line-height: 1.2; }
/* Planverzeichnis-Folgeblatt */
.ps-db.ps-db-fort { height: 100%; }
.ps-db.ps-db-fort h3 { margin-top: 0; }
.ps-db .ps-v-fort { font-size: 2.2mm; color: var(--ps-grau); margin: 1mm 0 0; font-style: italic; }
/* Hinweise, die der Umbruch aus dem Blattende hierher verschiebt (F16) */
.ps-hinweise { flex: 1 1 auto; min-width: 0; border: .25mm solid #000; padding: 1.5mm 2mm; font-size: 2.2mm; line-height: 1.25; overflow: hidden; background: #fff; }
.ps-hinweise:empty { display: none; }
.ps-hinweise p { margin: 0 0 .8mm; color: #000; font-size: 2.2mm; }
.ps-hinweise .ep-druck-hinweis { margin: 0 0 .8mm; font-size: 2.2mm; color: #000; }
.ep-druck .ps-blatt .ep-druck-hinweis.ps-hinweis-klein { font-size: 2.2mm; line-height: 1.25; margin-top: 1.5mm; }
/* Band der Listenblätter: Hinweise (quer) oder nichts links neben dem Schriftfeld */
.ps-band > .ps-hinweise { align-self: flex-end; max-height: 100%; }

/* ── Planblatt ───────────────────────────────────────────────────────── */
.ep-druck .ps-blatt .ep-planrahmen,
.ep-druck .ps-blatt .ep-planrahmen.ist-gross,
.ep-druck .ps-blatt.ep-blatt--hoch .ep-planrahmen.ist-gross {
    border: 0; padding: 0; height: 100%; width: 100%;
    display: flex; align-items: center; justify-content: center;
}
.ep-druck .ps-blatt .ep-plan-daten,
.ep-druck .ps-blatt .ep-planrahmen.ist-gross + .ep-plan-daten { display: none; }
.ep-druck .ps-blatt .ep-druckplan { flex: 0 0 auto; }
/* Ausschnitt (psPlanHtml): nur der Bereich mit Planungsinhalt, das Bild
   dahinter in voller Breite; Schrift außerhalb wird nicht gesetzt (Teil 55
   misst gegen .ps-ausschnitt). */
.ep-druck .ps-ausschnitt { position: relative; overflow: hidden; flex: 0 0 auto; background: #fff; }
.ep-druck .ps-ausschnitt .ep-druckplan { position: relative; }
/* Gestapelte Aufteilung (A4 hoch): Legende über Änderungstabelle und Schriftfeld */
.ps-band.ps-band--stapel { flex-direction: column; align-items: stretch; justify-content: flex-end; }
.ps-band.ps-band--stapel > .ps-legende { flex: 0 0 var(--ps-lg-h, 52mm); height: var(--ps-lg-h, 52mm); width: 100%; box-sizing: border-box; }
.ps-band.ps-band--stapel > .ps-block { width: 100%; align-self: stretch; }
.ps-band.ps-band--stapel > .ps-block .ps-sf, .ps-band.ps-band--stapel > .ps-block .ps-aend { width: 100%; }
/* Grundriss als gedämpfte Unterlage, Elektroplanung kräftig darüber (opacity
   bleibt Vektor/Bild – kein CSS-Filter, der rastern würde). */
.ps-grau .ep-druckplan > img { opacity: .5; }
/* Weißer Hof um die Planschrift als Fläche statt text-shadow (Vektor im PDF). */
.ps-blatt .ep-druckplan .ep-dbes span { text-shadow: none; }
.ps-blatt .ep-druckplan .ep-dbes > span,
.ps-blatt .ep-druckplan .ep-dbes > .ep-dseite { background: #fff; padding: 0 .3mm; border-radius: .25mm; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.ps-blatt .ep-druckplan .ep-dbes > .ep-dseite > span { background: transparent; padding: 0; }
.ps-blatt .ep-druckplan .ep-dnr { font-size: 1em; }
.ps-blatt .ep-druckplan .ep-dbm { font-size: .78em; line-height: 1.12; }
.ps-blatt .ep-druckplan .ep-dkz { font-size: .86em; }
/* Zweite Zeile (Kürzel/SK) unter Nummer und Marke: Abstand in Kürzel-em (.86) gerechnet,
   sonst stößt sie an die Nummernzeile (Abnahme, Befund 3). */
.ps-blatt .ep-druckplan .ep-dbes.ist-zweizeilig .ep-dkz { bottom: calc(-1.15em / .86); }
.ps-blatt .ep-druckplan .ep-dsk { font-weight: 400; font-size: .86em; letter-spacing: .01em; }
/* Die SK-Kennung steht IM Kürzel-Span und erbte „position: absolute“ aus
   druck.css – sie nahm keinen Platz ein, die Bemerkung lief darüber
   („SK1Licht Essen“, Abnahme Befund 3). Im Fluss bleiben: */
.ps-blatt .ep-druckplan .ep-dbes .ep-dkz .ep-dsk { position: static; display: inline; transform: none; }
/* Stromkreiskennzeichnung ohne Kürzel (Montageplan, Kompaktstufe 2): steht in
   der Nummernzeile hinter der Nummer – „36 SK7“ als ein Wort (Abnahme 2, N1). */
.ps-blatt .ep-druckplan .ep-dbes .ep-dnr .ps-dsk-nr,
.ep-druck .ep-druckplan .ep-dbes.ps-dblock .ep-dnr .ps-dsk-nr { position: static; display: inline; transform: none; margin-left: .22em; font-weight: 400; font-size: .74em; background: transparent; padding: 0; }
/* Schaltmarke vor der Nummer, wenn die Beschriftung vom Zeichen weggerückt ist */
.ps-blatt .ep-druckplan .ep-dbes .ep-dnr .ps-dsm-nr { position: static; display: inline; transform: none; margin-right: .25em; font-weight: 700; font-style: italic; background: transparent; padding: 0; }
/* Schwarz-Weiß: Symbole und Beschriftung schwarz, Höhenkästchen weiß */
.ps-sw .ep-druckplan .ep-dsym, .ps-sw .ep-druckplan .ep-dbes { color: #000 !important; }
.ps-sw .ep-debene rect[fill="#fdecc8"] { fill: #fff; stroke: #000; }
.ps-sw .ep-debene circle[fill="#216666"], .ps-sw .ep-debene path[stroke="#216666"] { fill: #000; stroke: #000; }
/* Linien- und Schriftordnung im Plan: Raumname 3,5 mm Versal, Maßzahlen und
   Kennungen 2,5 mm — unabhängig von der Symbolgröße (ISO 3098). Die Werte
   stehen als Faktoren am Plan (--ps-u = Bildpunkte je mm). Mit der
   Beschriftung „mit dem Zeichen“ (.ps-schrift-symbol) bleibt es bei den
   Größen der Ansicht — wie im PNG. */
.ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene text[font-weight="600"][text-anchor="middle"][paint-order]:not([transform]) { font-size: calc(var(--ps-u, 4) * 4.2px); }
/* Leitungsbeschriftung (Teil 58b, gedreht): 2,8 mm Kegel */
.ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene text[font-weight="600"][text-anchor="middle"][paint-order][transform] { font-size: calc(var(--ps-u, 4) * 2.8px); }
.ps-lg-sym.ps-lg-leit { flex-basis: 10mm; color: #000; }
.ps-lg-sym.ps-lg-leit svg { width: 10mm; height: 3mm; }
.ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene text[font-weight="600"][text-anchor="end"][paint-order] { font-size: calc(var(--ps-u, 4) * 3.2px); }
.ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene g[data-mass-label] rect, .ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene g[data-mass-label] text,
.ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene rect[fill="#fdecc8"], .ps-blatt:not(.ps-schrift-symbol) .ep-planrahmen .ep-debene rect[fill="#fdecc8"] + text {
    transform-box: fill-box; transform-origin: center; transform: scale(var(--ps-hf, 1));
}
/* Beschriftungsblock eines waagerechten Rahmens (psBeschriftungMessen, Teil 55):
   je Einheit eine Zeile Nr. · Marke · Kürzel/Stromkreis · Bemerkung. */
.ep-druck .ep-druckplan .ep-dbes.ps-dblock { transform: none; line-height: 1.12; white-space: nowrap; }
.ep-druck .ep-druckplan .ep-dbes.ps-dblock > .ps-dzeile { position: static; display: block; width: max-content; transform: none; }
.ep-druck .ep-druckplan .ep-dbes.ps-dblock .ps-dzeile span { position: static; transform: none; display: inline; }
.ep-druck .ep-druckplan .ep-dbes.ps-dblock .ep-dbm { font-size: .78em; font-style: italic; width: auto; max-width: none; margin-left: .3em; }
.ep-druck .ep-druckplan .ep-dbes.ps-dblock .ep-dkz { margin-left: .25em; }
.ep-druck .ep-druckplan .ep-dbes.ps-dblock .ep-dsm { margin-left: .25em; }
/* Wand rechts: Marke unter dem Zeichen beginnt an dessen linker Kante, die
   Nummer steht links davor — keine Überdeckung mehr bei breiten Marken („b c“). */
.ep-druckplan .ep-dbes.ist-wand-rechts .ep-dsm:not([style]) { left: 0; right: auto; transform: translate(.15em, 100%); }
/* Leitlinien verschobener Beschriftungen (Kollisionsausweichen, 0,18 mm) */
.ps-leitlinien { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }

/* ── Deckblatt ───────────────────────────────────────────────────────── */
.ps-db { display: flex; flex-direction: column; height: 100%; font-size: 2.8mm; line-height: 1.35; }
.ps-db-kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 6mm; border-bottom: .5mm solid #000; padding-bottom: 3mm; }
.ps-db-firma { display: flex; flex-direction: column; gap: .3mm; }
.ps-db-firma img { display: block; width: 60mm; height: 18mm; max-width: none; max-height: none; object-fit: contain; object-position: left center; margin-bottom: 1.5mm; }
.ps-db-firma b { font-size: 3.5mm; }
.ps-db-firma small { font-size: 2.5mm; color: #000; }
.ps-db-status { text-align: right; font-size: 2.5mm; color: var(--ps-grau); }
.ps-db-status b { display: block; font-size: 3.5mm; color: #000; letter-spacing: .04em; text-transform: uppercase; }
.ps-db-titel { margin: 8mm 0 5mm; }
.ps-db-titel span { display: block; font-size: 3.5mm; letter-spacing: .08em; text-transform: uppercase; color: var(--ps-grau); margin-bottom: 1.5mm; }
.ps-db-titel h1 { font-size: 9mm; line-height: 1.1; font-weight: 700; margin: 0; letter-spacing: -.01em; overflow-wrap: anywhere; }
.ps-db-titel p { font-size: 4mm; margin: 2mm 0 0; color: #000; }
.ps-db-mitte { display: flex; gap: 6mm; align-items: flex-start; }
.ps-db-felder { flex: 1 1 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5mm 6mm; margin: 0; }
.ps-db-felder div { border-bottom: .25mm solid #000; padding-bottom: .8mm; min-width: 0; }
.ps-db-felder span { display: block; font-size: 1.8mm; color: var(--ps-grau); margin-bottom: .5mm; }
.ps-db-felder b { display: block; font-size: 2.8mm; font-weight: 700; min-height: 3.5mm; overflow-wrap: anywhere; }
.ps-db-felder b:empty::after { content: '\00a0'; }
.ps-db-bild { flex: 0 0 62mm; border: .25mm solid #000; padding: 2mm; display: flex; flex-direction: column; align-items: center; gap: 1.5mm; }
.ps-db-bild .ep-druckplan { width: 58mm; }
.ps-db-bild span { font-size: 2.2mm; color: var(--ps-grau); }
.ps-db h3 { font-size: 3.5mm; font-weight: 700; margin: 6mm 0 1.5mm; padding-bottom: .8mm; border-bottom: .35mm solid #000; }
.ps-db .ps-verz { width: 100%; border-collapse: collapse; font-size: 2.5mm; line-height: 1.2; table-layout: fixed; }
.ps-db .ps-verz th, .ps-db .ps-verz td { border: .25mm solid #000; padding: .8mm 1.5mm; text-align: left; vertical-align: top; overflow: hidden; }
.ps-db .ps-verz th { font-size: 2.2mm; font-weight: 700; background: #fff; }
/* Langes Planverzeichnis: enger gesetzt (psPlanverzeichnis) */
.ps-verz-kompakt .ps-verz { font-size: 2.15mm; line-height: 1.1; }
.ps-db .ps-verz-kompakt .ps-verz th, .ps-db .ps-verz-kompakt .ps-verz td { padding: .35mm 1.2mm; }
.ps-db .ps-verz .ps-v-rest td { font-style: italic; }
.ps-db.ps-db-knapp .ps-db-titel { margin: 4mm 0 3mm; }
.ps-db.ps-db-knapp .ps-db-titel h1 { font-size: 7.5mm; }
.ps-db.ps-db-knapp .ps-db-bild { display: none; }
.ps-db.ps-db-knapp .ps-db-felder { grid-template-columns: repeat(4, 1fr); gap: 2mm 4mm; }
.ps-db.ps-db-knapp h3 { margin-top: 4mm; }
/* Letzte Stufe vor dem Folgeblatt: alles enger (psPlanverzeichnis) */
.ps-db.ps-db-eng .ps-db-kopf { padding-bottom: 1.5mm; }
.ps-db.ps-db-eng .ps-db-titel { margin: 2.5mm 0 2mm; }
.ps-db.ps-db-eng .ps-db-titel h1 { font-size: 6.5mm; }
.ps-db.ps-db-eng .ps-db-titel p { font-size: 3.2mm; margin-top: 1mm; }
.ps-db.ps-db-eng .ps-db-felder { gap: 1.2mm 4mm; }
.ps-db.ps-db-eng h3 { margin: 2.5mm 0 1mm; }
.ps-db.ps-db-eng .ps-verz { font-size: 2.05mm; line-height: 1.05; }
.ps-db.ps-db-eng .ps-verz th, .ps-db.ps-db-eng .ps-verz td { padding: .2mm 1.2mm; }
.ps-db.ps-db-eng .ps-db-freigabe div { height: 17mm; }
.ps-db.ps-db-eng .ps-db-hinweis { padding-top: 1.5mm; }
.ps-db .ps-verz .ps-v-nr { width: 40mm; font-weight: 700; white-space: nowrap; }
.ps-db .ps-verz .ps-v-m { width: 16mm; white-space: nowrap; }
.ps-db .ps-verz .ps-v-f { width: 16mm; white-space: nowrap; }
.ps-db .ps-verz .ps-v-i { width: 12mm; text-align: center; }
.ps-db .ps-verz .ps-v-b { width: 14mm; text-align: center; }
.ps-db .ps-verz .ps-v-d { width: 20mm; white-space: nowrap; }
.ps-db-freigabe { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4mm; }
.ps-db-freigabe div { border: .25mm solid #000; height: 22mm; padding: 1.5mm 2mm; position: relative; font-size: 2.2mm; }
.ps-db-freigabe div b { display: block; font-size: 2.5mm; margin-bottom: 1mm; }
/* Name höchstens zwei Zeilen – er darf nicht in die Unterschriftslinie laufen */
.ps-db-freigabe .ps-fg-n { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-style: normal; line-height: 1.25; }
.ps-db-freigabe div span { position: absolute; left: 2mm; right: 2mm; bottom: 1.5mm; border-top: .2mm solid #000; padding-top: .6mm; color: var(--ps-grau); font-size: 1.8mm; }
.ps-db-hinweis { margin: auto 0 0; font-size: 2.2mm; color: var(--ps-grau); line-height: 1.3; padding-top: 3mm; }

/* ── Listen kompakt (A4 hoch, ISO 3098: 2,5 mm Versal ≈ 8,5 pt) ──────── */
.ep-druck .ps-blatt .ep-druck-intro { font-size: 2.6mm; line-height: 1.35; color: #000; margin: 0 0 2.5mm; }
.ep-druck .ps-blatt .ep-drucktabelle { font-size: 8pt; line-height: 1.25; }
.ep-druck .ps-blatt .ep-drucktabelle th, .ep-druck .ps-blatt .ep-drucktabelle td { padding: .8mm 1.4mm; border: 0; border-bottom: .18mm solid #8a8a8a; color: #000; }
.ep-druck .ps-blatt .ep-drucktabelle th { background: #fff; color: #000; text-transform: none; letter-spacing: 0; font-size: 7.5pt; border-top: .35mm solid #000; border-bottom: .35mm solid #000; }
.ep-druck .ps-blatt .ep-drucktabelle tbody tr:nth-child(even):not(.ep-raumzeile) { background: #fff; }
.ep-druck .ps-blatt .ep-drucktabelle .ep-druck-gruppe { color: #000; border-bottom: .35mm solid #000; font-size: 9pt; padding: 3mm 1.4mm 1mm; }
.ep-druck .ps-blatt .ep-druck-gruppe span { color: #000; font-size: 7.5pt; }
.ep-druck .ps-blatt .ep-drucktabelle .ep-td-sym svg { height: 4.4mm; max-width: 10mm; }
.ep-druck .ps-blatt .ep-druck-h3, .ep-druck .ps-blatt .ep-pl-titel { color: #000; border-bottom: .35mm solid #000; font-size: 10pt; margin: 3.5mm 0 1.5mm; padding-bottom: 1mm; }
.ep-druck .ps-blatt .ep-druck-hinweis, .ep-druck .ps-blatt .ep-pl-fuss { color: #000; font-size: 7.5pt; margin-top: 2.5mm; }
.ep-druck .ps-blatt .ep-pl-zeile { padding: .8mm 0; font-size: 8pt; }
.ep-druck .ps-blatt .ep-druck-kicker { display: none; }
.ep-druck .ps-blatt .ep-positionstabelle td { white-space: normal; }
.ep-druck .ps-blatt .ep-positionstabelle td.ep-td-nr { white-space: nowrap; font-weight: 700; }
.ep-druck .ps-blatt .ps-tab-leise { color: var(--ps-grau); }
.ep-druck .ps-blatt .ps-tab-summe td { border-top: .35mm solid #000; font-weight: 700; }
.ep-druck .ps-blatt .ps-tab-frei { color: var(--ps-grau); }
.ep-druck .ps-blatt .ep-drucktabelle td.ps-td-r, .ep-druck .ps-blatt .ep-drucktabelle th.ps-td-r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* Kombinationen: eine Karte je Zeile, schmal */
.ep-druck .ps-blatt .ep-kombi-karte { border: .25mm solid #000; border-radius: 0; padding: 1.5mm; margin-bottom: 2.5mm; }
.ep-druck .ps-blatt .ep-kombi-kopf { border-bottom: .2mm solid #8a8a8a; }
.ep-druck .ps-blatt .ep-kombi-marke { font-size: 10pt; }
.ep-druck .ps-blatt .ep-kombi-tab { font-size: 7.5pt; }
/* Breite Rahmen (4 Einheiten): die Tabelle rückt unter das Wandbild, statt
   auf Wortreste („Netzwerkdos e“, „Se rver“) gequetscht zu werden. */
.ep-druck .ps-blatt .ep-kombi-inhalt { flex-wrap: wrap; }
.ep-druck .ps-blatt .ep-kombi-tab { flex: 1 1 118mm; min-width: 118mm; }
.ep-druck .ps-blatt .ep-kombi-tab th, .ep-druck .ps-blatt .ep-kombi-tab td { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.ep-druck .ps-blatt .ep-kombi-dose { width: auto; min-width: 12mm; height: 11mm; padding: 0 .7mm; box-sizing: border-box; }
/* „Nr. 10 · SD“ stand an den Kästchenrand bzw. brach um (Runde 2) */
.ep-druck .ps-blatt .ep-kombi-dose-nr { white-space: nowrap; font-size: 6pt; }
.ep-druck .ps-blatt .ep-kombi-rahmen { border-radius: .8mm; }
/* Raumbuch */
.ep-druck .ps-blatt .ep-rb-kennwerte--druck { grid-template-columns: repeat(7, 1fr); gap: 1mm; }
.ep-druck .ps-blatt .ep-rb-kennwerte > div { border-radius: 0; border: .2mm solid #000; padding: .8mm 1.2mm; }
.ep-druck .ps-blatt .ep-rb-kennwerte span { font-size: 1.8mm; color: var(--ps-grau); }
.ep-druck .ps-blatt .ep-rb-kennwerte strong { font-size: 2.6mm; }
.ep-druck .ps-blatt .ep-rb-ampel { width: 2.2mm; height: 2.2mm; border: .2mm solid #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ep-druck .ps-blatt .ps-ampel-z { font-weight: 700; margin-right: .6mm; }
.ep-druck .ps-blatt .ep-rb-zeile { font-size: 8pt; }
.ep-druck .ps-blatt .ep-rb-h3 { margin-top: 4mm; }
/* Wandansichten: Köpfe auf einer Linie, Zeilen ruhig (F26) */
.ep-druck .ps-blatt .ep-zonen-reihe { align-items: flex-start; gap: 4mm; margin-bottom: 2mm; }
.ep-druck .ps-blatt .ep-zonen-fig figcaption { font-size: 8.5pt; color: #000; }
.ep-druck .ps-blatt .ep-zonen-raumtitel { font-size: 10pt; color: #000; border-bottom: .35mm solid #000; padding-bottom: .8mm; margin: 2mm 0 2mm; }
.ep-druck .ps-blatt .ep-zonen-raumtitel span { color: #000; font-size: 8pt; }
.ep-druck .ps-blatt .ep-zonen-drucktabelle { font-size: 7.5pt; }
.ps-legende .ep-zonen-drucklegende { display: flex; flex-wrap: wrap; gap: .6mm 4mm; font-size: 2.2mm; line-height: 1.25; color: #000; margin: 0; column-count: 1; }
.ps-legende .ep-zonen-drucklegende span { display: inline-flex; align-items: center; gap: 1.2mm; }
.ps-legende .ep-zonen-drucklegende .ep-zonen-lg { width: 4mm; height: 2.5mm; }
/* Ebenenplan-Legende im Band */
.ps-legende .ep-elegende { margin: 0; gap: .5mm 4mm; font-size: 2.5mm; }
/* Küchendetail: Ausschnitt mittig, Rahmen vom Blatt */
.ep-druck .ps-blatt .ep-druckausschnitt { border: .18mm solid #8a8a8a; }
/* Vorschau: Blatt-Schatten bleibt, Papier weiß */
.ep-druck-vorschau .ps-blatt { background: #fff; }
.ep-druck-vorschau .ps-blatt .ps-vermerk-hinweis { position: absolute; left: var(--ps-zx); top: 2mm; font: 600 3mm/1.2 Arial, sans-serif; color: #8f1d12; }

/* ── Druck-Arbeitsplatz: Abschnitt „Blatt und Maßstab“ (Teil 54) ─────── */
@media screen {
.ep-da-blattwahl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin: 6px 0 4px; }
.ep-da-blattwahl label { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: var(--da-leise, #4a4a48); min-width: 0; }
.ep-da-blattwahl select, .ep-da-blattwahl input[type="number"], .ep-da-blattwahl input[type="text"] {
    font: 13px/1.3 var(--fw-font, Arial, sans-serif); color: var(--da-text, #111); background: var(--da-bg, #fff);
    border: 1px solid var(--fw-border-str, #d4d4d0); border-radius: 6px; padding: 5px 6px; min-height: 2rem; width: 100%; box-sizing: border-box;
}
.ep-da-blattwahl .ist-breit { grid-column: 1 / -1; }
.ep-da-haken { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; margin: 4px 0 6px; }
.ep-da-haken .ep-da-wahl { padding: 2px 0; }
.ep-da-haken .ep-da-name { font-size: 12.5px; }
.ep-da-projekt { margin: 6px 0 10px; padding: 8px 10px; border-radius: 8px; background: var(--da-akzent-sf, #eef4fc); font-size: 12.5px; line-height: 1.45; }
.ep-da-projekt[hidden] { display: none; }
.ep-da-projekt button { margin-top: 4px; }
.ep-da-vermerk { color: var(--da-warn, #9a5200); }
@media (pointer: coarse) { .ep-da-blattwahl select, .ep-da-blattwahl input { min-height: 2.6rem; } }
}

/* ── Druck ──────────────────────────────────────────────────────────────
   F03: ohne diese Nullstellung hat body 8 px Rand, das Dokument ist breiter
   als das Blatt, und Chrome verkleinert alles um 0,77 %. */
@media print {
    html, body { margin: 0 !important; padding: 0 !important; width: auto !important; height: auto !important; }
    .ep-druck .ep-blatt.ps-blatt { margin: 0 !important; padding: 0 !important; box-shadow: none !important; zoom: 1 !important; break-after: page; page-break-after: always; }
    .ep-druck .ep-blatt.ps-blatt:last-child { break-after: auto; page-break-after: auto; }
    .ps-vermerk-hinweis { display: none !important; }
    /* F01: Browserdruck ohne Arbeitsplatz – ein Hinweis statt einer leeren Seite.
       (Strg/Cmd+P fängt Teil 55 ab und öffnet den Arbeitsplatz; das Browsermenü
       lässt sich nicht abfangen; dann druckt beforeprint die aktuelle Etage,
       und nur wenn das nicht geht, steht dieser Satz.) */
    body:not(.ep-druck-offen) > .ep-druck:empty { display: block !important; }
    body:not(.ep-druck-offen) > .ep-druck:empty::before {
        content: "Bitte über „Drucken …“ im Steckdosenplaner drucken – dort entsteht der Plansatz mit Schriftfeld, Maßstab und Legende. Tastenkürzel: Strg+P (Mac: Cmd+P) im Werkzeug.";
        display: block; padding: 30mm 20mm; font: 12pt/1.5 Arial, sans-serif; color: #000;
    }
}
