/* ============================================================
   Rechnung/Abrechnung A4-Druckbogen — Invoices/InvoicePrintSheet.razor
   Prefix: rgp- (Basis: delivery-note.css, Klassen lsp-*)

   Ergänzt den Lieferschein-Bogen um Rechnungsteile (Kassenblock mit QR, Zahlungsangaben, Hinweis,
   Lieferscheinliste, Leistungsnachweis). Gleiche Regeln wie delivery-note.css: keine @page-Regel
   hier (die setzen printInvoice bzw. das Server-HTML inkl. Seitenzahlen), keine eigenen Schriften —
   die Roboto-Dateien kommen aus delivery-note.css (wird immer mitgeladen).
   ============================================================ */

/* Bildschirm: Innenabstand = Druckränder (15 mm), damit die mm-Maße des Fensterkuvert-Layouts in
   Vorschau und Druck auf der gleichen Stelle des Blatts liegen. */
.lsp-sheet.rgp-sheet {
    position: relative;
    padding: 15mm 15mm 12mm;
}

/* ---- Postversand im Fensterkuvert (DIN 5008 Form B) ----
   Maße ab dem Inhaltsbereich (15 mm vom oberen und seitlichen Blattrand):
   Briefkopf 30 mm → Anschriftfeld 85 × 45 mm ab 45 mm von oben, 20 mm vom Rand (Fenster links) bzw.
   105–190 mm (Fenster rechts); darin 17,7 mm Zusatz-/Vermerkzone mit Rücksendeangabe + 27,3 mm Anschrift.
   Infoblock 70 mm breit gegenüber. */
.rgp-env-head {
    height: 30mm;
    overflow: hidden;
}

.rgp-env-head .lsp-head {
    margin-bottom: 0;
}

.rgp-env-row {
    display: flex;
    height: 45mm;
}

.rgp-env-window {
    display: flex;
    flex-direction: column;
    flex: none;
    width: 85mm;
    height: 45mm;
    margin-left: 5mm;
}

.rgp-env-zone {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 17.7mm;
}

.rgp-env-return {
    padding-bottom: 0.6mm;
    border-bottom: 0.2mm solid #888;
    font-size: 7pt;
    color: #444;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rgp-env-address {
    height: 27.3mm;
    padding-top: 2mm;
    overflow: hidden;
    font-size: 10.5pt;
    line-height: 1.3;
}

.rgp-env-info {
    width: 70mm;
    margin-left: auto;
    padding-top: 6mm;
}

.rgp-env-info .lsp-facts {
    width: 100%;
}

.rgp-env-right {
    flex-direction: row-reverse;
}

.rgp-env-right .rgp-env-window {
    margin-left: 0;
    margin-right: 5mm;
}

.rgp-env-right .rgp-env-info {
    margin-left: 0;
    margin-right: auto;
}

.rgp-env-subject {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 2mm 4mm;
    margin: 8mm 0 6mm;
}

.rgp-env-number {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Falzmarken (105 / 210 mm) und Lochmarke (148,5 mm) am linken Blattrand. */
.rgp-mark {
    position: absolute;
    left: 4mm;
    width: 5mm;
    border-top: 0.25mm solid #999;
}

.rgp-mark-fold1 { top: 105mm; }
.rgp-mark-hole { top: 148.5mm; width: 7mm; }
.rgp-mark-fold2 { top: 210mm; }

.rgp-internal {
    font-size: .85em;
    color: #777;
}

.rgp-ref {
    margin: -6px 0 16px;
    padding: 6px 10px;
    border-left: 3px solid #111;
    background: #f5f5f5;
    font-weight: 600;
}

.rgp-intro {
    margin: -6px 0 16px;
    white-space: pre-line;
}

.rgp-sub {
    font-size: .82em;
    color: #777;
}

/* Fußnote zu Artikeln „Kein Kundenrabatt“ (Zeichen: lsp-fnm aus delivery-note.css). */
.rgp-fn {
    margin-top: 4px;
    font-size: .85em;
    color: #777;
}

.rgp-sumrow {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin-top: 14px;
}

.rgp-sumrow .lsp-sums {
    margin-top: 0;
}

.rgp-sums td:first-child {
    white-space: nowrap;
}

/* ---- Kassenblock (RKSV): QR + Kassen-ID, Belegnummer, Zeitpunkt ---- */
.rgp-rksv {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: .82em;
    color: #333;
    break-inside: avoid;
    page-break-inside: avoid;
}

/* Codes im Fußbereich (Kassen-QR und/oder Zahlungs-QR nebeneinander) */
.rgp-foot-codes {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rgp-qr {
    display: block;
    flex: none;
    image-rendering: pixelated;
}

.rgp-qr-s { width: 90px; height: 90px; }
.rgp-qr-m { width: 118px; height: 118px; }
.rgp-qr-l { width: 150px; height: 150px; }

.rgp-rksv-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-variant-numeric: tabular-nums;
}

.rgp-rksv-failed {
    font-weight: 600;
    color: #111;
}

.rgp-rksv-note {
    font-weight: 600;
    color: #111;
}

.rgp-rksv-sig {
    color: #777;
    white-space: pre-line;
}

/* ---- Zahlung (mit Zahlungs-QR „Zahlen mit Code“), Hinweis, Lieferscheine ---- */
.rgp-paybox {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin-top: 12px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rgp-pay {
    flex: 1 1 auto;
    font-size: .95em;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rgp-payqr {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
}

.rgp-payqr-cap {
    font-size: .8em;
    color: #555;
    line-height: 1.35;
}

.rgp-disclaimer {
    margin-top: 16px;
    padding: 8px 10px;
    border: 1px solid #111;
    font-weight: 600;
    font-size: .92em;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rgp-notes {
    margin-top: 20px;
    font-size: .92em;
}

.rgp-notes-list {
    font-variant-numeric: tabular-nums;
    max-width: 380px;
}

/* Viele Lieferscheine (Monatsrechnung): zweispaltig. */
.rgp-notes-cols {
    max-width: none;
    column-count: 2;
    column-gap: 40px;
}

.rgp-note {
    display: grid;
    grid-template-columns: 1fr auto 90px;
    gap: 16px;
    padding: 1px 0;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rgp-note-sum {
    text-align: right;
}

.rgp-closing {
    margin-top: 20px;
    white-space: pre-line;
}

/* ---- Einzelpositionen je Lieferschein gegliedert ---- */
tr.rgp-group {
    break-after: avoid;
    page-break-after: avoid;
}

tr.rgp-group td {
    padding-top: 12px;
    font-weight: 600;
    text-decoration: underline;
    border-bottom: 0;
}

tr.rgp-group-note td {
    font-size: .88em;
    color: #555;
}

tr.rgp-group-sum td {
    font-weight: 600;
    border-top: 1px solid #111;
}

tr.rgp-group-sum td:first-child {
    text-align: right;
}

/* Rabatt je Lieferschein (Designer „Rabatt anzeigen“): unter der Zwischensumme bzw. nach der letzten Position. */
tr.rgp-group-disc td {
    color: #555;
}

tr.rgp-group-disc td:first-child {
    text-align: right;
}

/* ---- Retouren (Designer „Retouren“: Unterzeile oder Spalten Geliefert | Retour) ---- */
th.rgp-ret-col {
    white-space: nowrap;
}

td.rgp-ret {
    color: #555;
}

/* Spaltenmodus: zwei Zusatzspalten — Zahlen nicht umbrechen, die Bezeichnung gibt Platz ab. */
table.rgp-pos-ret td.lsp-r,
table.rgp-pos-ret th.lsp-r {
    white-space: nowrap;
}

.rgp-returns-note {
    margin-top: 6px;
    font-size: .88em;
    color: #555;
}

/* ---- Leistungsnachweis (Anhang: Artikel je Lieferschein) ---- */
.rgp-appendix {
    margin-top: 28px;
    padding-top: 14px;
    border-top: 2px solid #111;
}

.rgp-appendix-title {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 10px;
}

.rgp-appendix-note {
    margin-bottom: 14px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rgp-appendix-table {
    font-size: .92em;
}

table.rgp-appendix-table td {
    padding: 3px 8px;
}

.rgp-legal {
    margin-top: 4px;
    text-align: center;
    font-size: .78em;
    color: #666;
}

/* ---- Druck: ein fortlaufender Bogen über mehrere Seiten ----
   Die Ränder kommen von @page (Aufrufer), deshalb hier ohne Innenabstand und Mindesthöhe. */
@media print {
    .lsp-sheet.rgp-sheet {
        width: auto;
        min-height: 0;
        /* Seitliche Ränder als Innenabstand (Seitenbox ohne seitlichen Rand, siehe InvoicePageCss). */
        padding: 0 15mm;
        box-shadow: none;
    }

    /* Der Bogen beginnt im Druck erst unter dem 15-mm-Seitenrand. */
    .rgp-mark-fold1 { top: 90mm; }
    .rgp-mark-hole { top: 133.5mm; }
    .rgp-mark-fold2 { top: 195mm; }

    .rgp-pos thead,
    .rgp-appendix-table thead {
        display: table-header-group;
    }

    .rgp-pos tr,
    .rgp-appendix-table tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .rgp-sumrow,
    .rgp-paybox,
    .rgp-foot {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .rgp-foot {
        margin-top: 0;
    }

    /* Anhang beginnt auf einer eigenen Seite. */
    .rgp-appendix {
        break-before: page;
        page-break-before: always;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}
