/* VR Tiefbau – Druck-Layout (PDF via "Als PDF speichern") */
@page { size: A4; margin: 16mm 15mm; }

.no-print { display: none !important; }

.print-root { display: block !important; }

html, body { background: #fff !important; }

/* Beim Drucken die Bildschirm-Layout-Container neutralisieren – sonst erzeugt der
   leere .app-container (min-height:100vh, flex) eine leere erste Seite und der
   Ausdruck erscheint „leer". Nur #print-root soll gedruckt werden. */
html, body { height: auto !important; min-height: 0 !important; overflow: visible !important; }
.app-container, .app-content {
  display: block !important;
  height: auto !important; min-height: 0 !important;
  margin: 0 !important; overflow: visible !important;
}

.doc {
  font-family: "Segoe UI", Arial, sans-serif;
  color: #000; font-size: 11pt; line-height: 1.35;
  width: 100%;
}
.doc + .doc { page-break-before: always; }

/* Kopf */
.doc-kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 8mm; border-bottom: 0.4mm solid #000; padding-bottom: 2.5mm; }
.doc-logo { height: 20mm; width: auto; max-width: 70mm; }
.doc-firma { text-align: right; font-size: 10.5pt; line-height: 1.3; }
.doc-firma .name { font-weight: 700; }
.doc-empfaenger { margin-top: 14mm; font-size: 11pt; line-height: 1.35; min-height: 24mm; }
.doc-empfaenger .name { font-weight: 600; }

.doc-titel { text-align: center; font-size: 18pt; font-weight: 700; margin: 4mm 0; }
.doc-meta { display: flex; justify-content: flex-end; gap: 18mm; margin-bottom: 3mm; }
.doc-meta .label { color: #333; }
.doc-meta b { font-weight: 700; }
.doc-intro { margin: 3mm 0 4mm; }
.doc-intro.pre { white-space: pre-wrap; }

/* Positionstabelle */
table.doc-tabelle { width: 100%; border-collapse: collapse; font-size: 10.5pt; margin-top: 2mm; }
table.doc-tabelle th, table.doc-tabelle td { border: 1px solid #000; padding: 1.6mm 2mm; vertical-align: top; }
table.doc-tabelle th { background: #eee; font-weight: 700; text-align: left; }
table.doc-tabelle td.num, table.doc-tabelle th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.doc-tabelle td.mid, table.doc-tabelle th.mid { text-align: center; }
table.doc-tabelle .leistung { width: 44%; }

/* Summen */
.doc-summen { margin-top: 4mm; display: flex; justify-content: flex-end; }
.doc-summen table { border-collapse: collapse; font-size: 11pt; min-width: 70mm; }
.doc-summen td { padding: 1.3mm 3mm; }
.doc-summen td.label { text-align: right; color: #222; }
.doc-summen td.val { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.doc-summen tr.brutto td { font-weight: 700; border-top: 1.5px solid #000; }
.doc-13b { margin-top: 5mm; font-weight: 600; }

/* Fuss */
.doc-fuss { margin-top: 10mm; font-size: 9.5pt; line-height: 1.5; }
.doc-fuss .zahlhinweis { margin-bottom: 2mm; }

/* Stundenzettel */
.sz-kopf { text-align: center; font-size: 16pt; font-weight: 700; margin: 4mm 0 2mm; }
.sz-meta { display: flex; justify-content: space-between; font-size: 11pt; margin-bottom: 2mm; }
.sz-meta .name { font-weight: 700; font-size: 12pt; }
table.sz { width: 100%; border-collapse: collapse; font-size: 9pt; }
table.sz th, table.sz td { border: 1px solid #000; padding: 1mm 1.3mm; }
table.sz th { background: #eee; }
table.sz td.num, table.sz th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.sz td.mid, table.sz th.mid { text-align: center; }
table.sz tr.summe td { font-weight: 700; background: #f3f3f3; }
.sz-geraete { margin-top: 4mm; font-size: 10pt; }
.sz-geraete table { border-collapse: collapse; }
.sz-geraete td { padding: 1mm 4mm 1mm 0; }
.sz-geraete td.num { text-align: right; font-variant-numeric: tabular-nums; }
