:root { font-family: "Times New Roman", serif; line-height: 1; } * { box-sizing: border-box; } body { margin: 0; } .m1, .m2, .m3 { height: 0; width: 10mm; position: fixed; left: -25mm; border-top: 0.5pt solid black; } .m1.r, .m2.r, .m3.r { left: initial; right: -20mm; } .m1 {top: 80mm;} .m2 {top: 123.5mm;} .m3 {top: 185mm;} header, .address-wrapper, aside, main { overflow: hidden; } header { height: 45mm; padding: 5mm; position: absolute; top: -25mm; left: 0; right: 0; text-align: center; } header h1{ font-size: 18pt; margin-top: 10mm; } .spacing { height: 20mm; } .info-wrapper { width: 100%; height: 45mm; margin: 0 0 2mm 0; position: relative; } .address-wrapper { height: 45mm; width: 85mm; margin: 0; padding: 5mm; position: absolute; left: -5mm; top: 0; } .address-wrapper .sender { height: 4em; font-size: 8pt; padding: 1em 0; } address { height: 5em; white-space: pre-line; font-size: 12pt; font-style: normal; } table { width: 100%; border-collapse: collapse; table-layout: fixed; } table td, table th { padding: 0.5mm 1mm; } table th { text-align: center; } aside { height: 40mm; width: 75mm; margin: 0; position: absolute; left: 100mm; top: 5mm; } aside table { border-collapse: collapse; border: 0.5pt solid #808080; width: 65mm; margin-right: 10mm; } aside table thead:not(:first-child) tr { border-top: 0.5pt solid #808080; } aside table thead th { background-color: #E0E0E0; font-size: 10pt; } aside table tbody th, aside table tbody td { text-align: left; font-size: 10pt; } aside table tbody th { font-weight: normal; } main { margin: 2em 0 1em 0; } main > *:first-child { margin-top: 0; } .main-wrapper h1, .main-wrapper p { font-size: 12pt; margin: 1em 0; text-align: justify; } .main-wrapper p { widows: 3; orphans: 3; hyphens: manual; } .main-wrapper .date { margin-bottom: 2em; text-align: right; } .main-wrapper h1 { margin-bottom: 2em; } .main-wrapper p.comment { font-size: 10pt; } .footer-wrapper { position: running(page-footer); width: 165mm; } .pre-footer { margin: 1em 0; font-size: 10pt; } .pre-footer > * { display: inline-block; width: 33%; } .pre-footer .date { text-align: left; } .pre-footer .doc-id { text-align: center; font-style: italic; } .pre-footer .page { text-align: right; float: right; } .pre-footer .page::after { content: "Seite 1 von 1"; } footer { font-size: 10pt; border-top: 0.5pt solid black; height: 25mm; padding-top: 1mm; text-align: center; } table.delivery { margin-bottom: 5mm; } table.delivery tr:not(.main) { break-before: avoid; } table.delivery th { font-weight: normal; font-style: italic; font-size: 10pt; } table.delivery th.main { text-align: left; } table.delivery tr.main td { font-weight: bold; padding-top: 2mm; } table.delivery tbody tr:not(.main) td { font-size: 8pt; } table.delivery tr.tight:not(.first) td { padding-top: 0; padding-bottom: 0; } table.delivery tr.tight.first td { padding-bottom: 0; } /* FIXME update version of WeasyPrint table.delivery tr.tight:has(+ tr:not(.tight)) td { padding-bottom: 0.5mm !important; } */ table.delivery tr.sum { border-top: 0.5pt solid black; break-before: avoid; } table.delivery tr.sum td { padding-top: 1mm; } table.delivery-stats { font-size: 8pt; } table.delivery-stats.expanded th, table.delivery-stats.expanded td { padding: 0.25mm 0; } table.delivery-stats:not(.expanded) th, table.delivery-stats:not(.expanded) td { padding: 0.125mm 0; } table.delivery-stats:not(.expanded) tr.optional { display: none; } table.delivery-stats thead th { font-weight: normal; font-style: italic; text-align: right; } table.delivery-stats thead th:first-child { text-align: left; } table.delivery-stats.expanded tbody { font-size: 10pt; } table.delivery-stats td { text-align: right; } table.delivery-stats tbody th { font-weight: normal; font-style: italic; text-align: left; } .hidden { visibility: hidden; } .main-wrapper .bottom { bottom: 0; position: absolute; width: 165mm; } .main-wrapper .signatures { width: 100%; display: flex; justify-content: space-around; margin: 20mm 0 2mm 0; } .main-wrapper .signatures > * { width: 50mm; border-top: 0.5pt solid black; padding-top: 1mm; text-align: center; font-size: 10pt; } hr { border: none; border-top: 0.5pt solid black; margin: 5mm 0; } hr.page-break { display: none; break-after: page; } tr.page-break { break-before: page; } @page { size: A4; margin: 25mm 20mm 35mm 25mm; @bottom-center { content: element(page-footer); } } @media screen { body, header, .footer-wrapper { width: 210mm; } header, .address-wrapper, aside, main { border: 1px solid lightgray; } .m1, .m2, .m3 {display: none;} header {top: 0;} .spacing {height: 45mm;} .main-wrapper { margin: 0 20mm 40mm 25mm; } .footer-wrapper { position: fixed; bottom: 0; left: 0; right: 0; background: white; } } @media print { .page::after { content: "Seite " counter(page) " von " counter(pages); } }