:root { font-family: "Times New Roman", serif; line-height: 1; } * { box-sizing: border-box; } body { margin: 0; } .m1, .m2, .m3 { height: 0; width: 1cm; position: fixed; left: 0; border-top: 1pt solid black; } .m1 {top: 105mm;} .m2 {top: 148.5mm;} .m3 {top: 210mm;} 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: 1cm; } .spacing { height: 20mm; } .info-wrapper { width: 100%; height: 45mm; margin: 0 0 8.46mm 0; position: relative; } .address-wrapper { height: 45mm; width: 85mm; margin: 0; padding: 5mm; position: absolute; left: 20mm; top: 0; display: flex; flex-direction: column; justify-content: flex-end; } .address-wrapper .sender { flex: 17.7mm 1 1; font-size: 8pt; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 2mm; } address { flex: 27.3mm 1 1; white-space: pre-line; font-size: 12pt; font-style: normal; } table td, table th { padding: 0.5mm 1mm; } aside { height: 40mm; width: 75mm; margin: 0; position: absolute; left: 125mm; top: 5mm; } aside table { border-collapse: collapse; border: 1pt solid #808080; width: calc(100% - 1cm); margin-right: 1cm; } aside table thead:not(:first-child) tr { border-top: 1pt 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: 8.46mm 20mm 4.23mm 25mm; } main :first-child { margin-top: 0; } main h1, main p { font-size: 12pt; margin: 1em 0; text-align: justify; } main p { widows: 3; orphans: 3; hyphens: auto; } main .date { margin-bottom: 2em; text-align: right; } main h1 { margin-bottom: 2em; } main p.comment { font-size: 10pt; } .footer-wrapper { padding: 0 20mm 0 25mm; position: running(page-footer); bottom: 0; left: 0; right: 0; } .pre-footer { margin: 4.23mm 0; font-size: 10pt; display: flex; } .pre-footer > * { flex: 5cm 1 1; } .pre-footer .date { text-align: left; } .pre-footer .doc-id { text-align: center; font-style: italic; } .pre-footer .page { text-align: right; } .pre-fotter .page::after { content: "Seite 1 von 1"; } footer { font-size: 10pt; border-top: 1pt solid black; height: 25mm; padding-top: 1mm; text-align: center; } table { width: 100%; border-collapse: collapse; table-layout: fixed; } table.delivery { margin-bottom: 5mm; } 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; } table.delivery tr.tight:has(+ tr:not(.tight)) td { padding-bottom: 0.5mm !important; } table.delivery tr.sum { border-top: 1pt solid black; } 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 .bottom { bottom: 0; position: absolute; width: calc(100% - 25mm - 20mm); } main .signatures { width: 100%; display: flex; justify-content: space-around; margin: 20mm 0 2mm 0; } main .signatures > * { width: 5cm; border-top: 1pt solid black; padding-top: 1mm; text-align: center; font-size: 10pt; } hr { border: none; border-top: 1pt solid black; margin: 5mm 0; } hr.page-break { display: none; break-after: page; } @page { size: A4; margin: 25mm 0 35mm 0; @bottom-center { content: element(page-footer); } } @media screen { body, header, .footer-wrapper { width: 210mm; } header, .address-wrapper, aside, main { border: 1pt solid lightgray; } .m1, .m2, .m3 {display: none;} header {top: 0;} .spacing {height: 45mm;} .main-wrapper { margin-bottom: 40mm; } .footer-wrapper { position: fixed; bottom: 0; left: 0; right: 0; background: white; } } @media print { .page::after { content: "Seite " counter(page) " von " counter(pages); } .footer-wrapper { display: none; } }