/* Rechnungsvorlagen zum Drucken (Design Runde 14 Ausgang; Eingang neutral nach 15a). rv- = Blatt; rv-a-<vorlage> Ausgang, rv-e-briefkopf Eingang.
   Schlichte Schriften, keine Farbflächen; Firmenfarbe (--rv-akzent) nur für feine Linien und Beschriftungen. */

@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 400; src: url(../lib/plex/ibm-plex-sans-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 400; src: url(../lib/plex/ibm-plex-sans-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 500; src: url(../lib/plex/ibm-plex-sans-latin-ext-500-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 500; src: url(../lib/plex/ibm-plex-sans-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 600; src: url(../lib/plex/ibm-plex-sans-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 600; src: url(../lib/plex/ibm-plex-sans-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 700; src: url(../lib/plex/ibm-plex-sans-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-display: swap; font-weight: 700; src: url(../lib/plex/ibm-plex-sans-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 400; src: url(../lib/source-sans-3/source-sans-3-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 400; src: url(../lib/source-sans-3/source-sans-3-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 500; src: url(../lib/source-sans-3/source-sans-3-latin-ext-500-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 500; src: url(../lib/source-sans-3/source-sans-3-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 600; src: url(../lib/source-sans-3/source-sans-3-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 600; src: url(../lib/source-sans-3/source-sans-3-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 700; src: url(../lib/source-sans-3/source-sans-3-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-display: swap; font-weight: 700; src: url(../lib/source-sans-3/source-sans-3-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ───────────── Blatt ───────────── */
.rv-papier { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; overflow-x: auto; padding-bottom: 4px; }
.rv-blatt {
    --rv-akzent: #0E6B5C; --rv-schrift: 'Figtree', sans-serif; --rv-linie: #E6E8EC; --rv-dunkel: #1D2433;
    /* Bildschirm: höchstens A4-breit (794 px), schmaler, wenn die Spalte schmaler ist; Höhe mindestens A4-Verhältnis */
    width: 100%; max-width: 794px; min-width: 640px; aspect-ratio: 210 / 297; box-sizing: border-box; background: #fff; color: var(--rv-dunkel);
    box-shadow: 0 1px 3px rgba(16,24,40,.08), 0 12px 32px rgba(16,24,40,.08); display: flex; flex-direction: column;
    font-family: var(--rv-schrift); font-size: 11.5px; line-height: 1.45; font-variant-numeric: tabular-nums; text-align: left;
}
.rv-blatt * { box-sizing: border-box; }
.rv-blatt a { color: inherit; }
.rv-g { color: #6B7486; }
.rv-m { color: #5B6475; }
.rv-h { color: #8A93A3; }
.rv-d { color: #3A4354; }
.rv-r { text-align: right; }
.rv-c { text-align: center; }
.rv-f { font-weight: 600; }
.rv-f5 { font-weight: 500; }
.rv-k { font-size: 10px; }
.rv-kk { font-size: 9px; }
.rv-akzent { color: var(--rv-akzent); }
.rv-fest { white-space: nowrap; }
.rv-umbruch { overflow-wrap: anywhere; }
.rv-spalte { display: flex; flex-direction: column; min-width: 0; }
.rv-spalte.g1 { gap: 1px; } .rv-spalte.g2 { gap: 2px; } .rv-spalte.g4 { gap: 4px; } .rv-spalte.g6 { gap: 6px; }
.rv-zeile { display: flex; justify-content: space-between; gap: 16px; }
.rv-raum { flex: 1; min-height: 16px; }
.rv-label { font-size: 10px; color: #6B7486; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.rv-label-akzent { font-size: 10px; color: var(--rv-akzent); font-weight: 600; margin-bottom: 3px; }
.rv-xml { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 9px; font-weight: 400; color: #5B6475; background: #F1F2F4; padding: 1px 5px; border-radius: 4px; }
.rv-kv { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-content: start; }
.rv-kv.rechts > :nth-child(even) { text-align: right; }
.rv-fehler { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 8px; background: var(--fehler-bg, #FDECEC); color: var(--fehler, #B42318); max-width: 760px; }

/* Marke: Logo positiv auf Weiß oder zwei Buchstaben in der Firmenfarbe */
.rv-marke { display: flex; align-items: center; gap: 10px; }
.rv-mono { font-size: 20px; font-weight: 700; color: var(--rv-akzent); letter-spacing: -.02em; line-height: 1; }
.rv-strich { width: 1px; height: 22px; background: #D5D9E0; }
.rv-marke-name { font-size: 13px; font-weight: 600; }
.rv-logo { max-height: 46px; max-width: 220px; object-fit: contain; display: block; }

/* Positionen */
.rv-pos { display: flex; flex-direction: column; }
.rv-pos-kopf, .rv-pos-zeile { display: grid; grid-template-columns: var(--rv-spalten); column-gap: 10px; }
.rv-pos-kopf { padding: 0 0 6px; border-bottom: 1px solid var(--rv-dunkel); font-size: 10px; font-weight: 600; color: #3A4354; align-items: end; }
.rv-pos-zeile { padding: 9px 0; border-bottom: 1px solid var(--rv-linie); align-items: baseline; }
.rv-pos-zeile > :nth-child(n) { min-width: 0; }
.rv-pos-text { display: flex; flex-direction: column; min-width: 0; text-wrap: pretty; }
.rv-pos-code { color: #8A93A3; font-size: 10px; }

/* Summen */
.rv-summen-rahmen { display: flex; justify-content: flex-end; }
.rv-summen { display: flex; flex-direction: column; gap: 5px; width: 260px; }
.rv-summen .rv-zeile > :first-child { color: #5B6475; }
.rv-summe-ende { display: flex; justify-content: space-between; gap: 16px; padding-top: 7px; margin-top: 2px; border-top: 1px solid var(--rv-dunkel); font-weight: 600; font-size: 13px; }
.rv-summe-ende > :first-child { color: inherit !important; }
/* Mit Abzügen: Gesamtbetrag als Zwischensumme, Zu zahlen als Schluss */
.rv-summe-ende:not(:last-child) { font-size: inherit; }
.rv-abzug > :last-child { color: #5B6475; }

.rv-hinweise { display: flex; flex-direction: column; gap: 2px; font-size: 10px; color: #5B6475; }
.rv-anhaenge { display: flex; flex-direction: column; gap: 3px; }
.rv-anhang { display: flex; align-items: center; gap: 6px; min-width: 0; }
.rv-anhang svg { width: 11px; height: 11px; color: #8A93A3; flex: none; }
.rv-anhang button { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-decoration-color: #C9CED6; }
.rv-mwst { display: grid; grid-template-columns: auto 1fr 1fr; column-gap: 12px; row-gap: 2px; }
.rv-mwst.mit-esig { grid-template-columns: auto 1fr 1fr auto; column-gap: 14px; }
.rv-fuss { display: flex; justify-content: space-between; gap: 20px; font-size: 9px; color: #6B7486; line-height: 1.5; }
.rv-fuss4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; font-size: 8.5px; line-height: 1.5; color: #3A4354; }
.rv-fuss4 .rv-f { color: var(--rv-dunkel); }

/* ───────────── Ausgang 14a Linear ───────────── */
.rv-a-linear { padding: 52px 60px 36px; }
.rv-a-linear .rv-eck { display: grid; grid-template-columns: repeat(var(--rv-n, 4), minmax(0, 1fr)); gap: 16px; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--rv-akzent); }
.rv-a-linear .rv-fussblock { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; padding-top: 14px; border-top: 1px solid var(--rv-linie); }

/* 14b Seitenspalte */
.rv-a-seitenspalte { padding: 52px 48px 36px; display: grid; grid-template-columns: 168px minmax(0, 1fr); column-gap: 28px; }
.rv-a-seitenspalte .rv-seite { display: flex; flex-direction: column; gap: 22px; padding-right: 20px; border-right: 1px solid var(--rv-linie); font-size: 10.5px; color: #3A4354; }
.rv-a-seitenspalte .rv-seite .rv-logo { max-width: 140px; }
.rv-a-seitenspalte .rv-inhalt { display: flex; flex-direction: column; min-width: 0; }
.rv-a-seitenspalte .rv-pos-kopf { border-bottom-color: var(--rv-akzent); }
.rv-a-seitenspalte .rv-pos-kopf, .rv-a-seitenspalte .rv-pos-zeile { column-gap: 8px; }
.rv-a-seitenspalte .rv-summen { width: 240px; }

/* 14c Geschäftsbrief */
.rv-a-geschaeftsbrief { padding: 44px 60px 32px; }
.rv-a-geschaeftsbrief .rv-absenderzeile { font-size: 8.5px; color: #6B7486; padding-bottom: 3px; margin-bottom: 8px; border-bottom: 1px solid #D5D9E0; align-self: flex-start; }
.rv-a-geschaeftsbrief .rv-pos-kopf { padding: 6px 0; border-top: 1px solid var(--rv-dunkel); }
.rv-a-geschaeftsbrief .rv-pos-zeile { padding: 8px 0; }
.rv-a-geschaeftsbrief .rv-summen { width: 270px; gap: 4px; }
.rv-a-geschaeftsbrief .rv-summen .rv-zeile > :first-child { color: inherit; }
.rv-a-geschaeftsbrief .rv-summe-ende { padding: 6px 0; margin-top: 3px; border-bottom: 3px double var(--rv-dunkel); font-size: 11.5px; }
.rv-a-geschaeftsbrief .rv-summe-ende:not(:last-child) { border-bottom: 0; padding-bottom: 0; }
.rv-a-geschaeftsbrief .rv-fuss4 { padding-top: 10px; border-top: 1px solid var(--rv-akzent); }

/* 14d Zentriert */
.rv-a-zentriert { padding: 48px 60px 32px; }
.rv-a-zentriert .rv-kopfmitte { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-bottom: 18px; border-bottom: 1px solid var(--rv-linie); }
.rv-a-zentriert .rv-mono { font-size: 22px; }
.rv-a-zentriert .rv-marke-name { font-size: 14px; }
.rv-a-zentriert .rv-pos-kopf { border-bottom-color: #D5D9E0; font-weight: 500; color: #6B7486; }
.rv-a-zentriert .rv-pos-zeile { padding: 10px 0; border-bottom-color: #EEF0F2; }
.rv-a-zentriert .rv-pos-text > :first-child { font-weight: 500; }
.rv-a-zentriert .rv-summe-ende { border-top-color: var(--rv-akzent); }
.rv-a-zentriert .rv-fuss4 { padding-top: 12px; border-top: 1px solid var(--rv-linie); color: #5B6475; text-align: center; }

/* 14e Raster */
.rv-a-raster { padding: 44px 44px 32px; gap: 14px; font-size: 10.5px; }
.rv-a-raster .rv-kasten { border: 1px solid #CBD0D7; border-radius: 8px; overflow: hidden; }
.rv-a-raster .rv-zelle { padding: 9px 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rv-a-raster .rv-zelle + .rv-zelle { border-left: 1px solid #E3E6EA; }
.rv-a-raster .rv-zl { font-size: 9px; color: #6B7486; }
.rv-a-raster .rv-pos-kopf, .rv-a-raster .rv-pos-zeile { column-gap: 0; }
.rv-a-raster .rv-pos-kopf { padding: 0; border-bottom: 1px solid #CBD0D7; font-size: 9px; font-weight: 400; color: #6B7486; }
.rv-a-raster .rv-pos-zeile { padding: 0; border-bottom: 1px solid #E3E6EA; }
.rv-a-raster .rv-pos-kopf > *, .rv-a-raster .rv-pos-zeile > * { padding: 7px 8px; }
.rv-a-raster .rv-pos-kopf > * + *, .rv-a-raster .rv-pos-zeile > * + * { border-left: 1px solid #E3E6EA; }
.rv-a-raster .rv-pos-zeile > :first-child { color: #8A93A3; }

/* 14f Minimal */
.rv-a-minimal { padding: 64px 72px 40px; line-height: 1.5; }
.rv-a-minimal .rv-mono { font-size: 18px; }
.rv-a-minimal .rv-marke-name { font-size: 12px; }
.rv-a-minimal .rv-pos-kopf { padding: 0 0 8px; border-bottom-color: var(--rv-linie); font-size: 10.5px; font-weight: 400; color: #8A93A3; }
.rv-a-minimal .rv-pos-zeile { padding: 12px 0 0; border-bottom: 0; }
.rv-a-minimal .rv-summe-ende { border-top: 0; margin-top: 6px; }

/* ───────────── Eingang (neutral, ohne Firmenfarbe) ───────────── */
.rv-e-briefkopf { padding: 48px 56px 32px; }
.rv-e-briefkopf .rv-pos-kopf { column-gap: 8px; }
.rv-e-briefkopf .rv-pos-zeile { column-gap: 8px; padding: 8px 0; }
.rv-empfzeile { padding: 7px 0; border-top: 1px solid var(--rv-linie); border-bottom: 1px solid var(--rv-linie); font-size: 10px; color: #5B6475; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.rv-felder { display: flex; flex-wrap: wrap; column-gap: 16px; row-gap: 2px; }
.rv-feld { display: flex; gap: 5px; align-items: center; }
.rv-zahlraster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 20px; row-gap: 8px; }
.rv-e-briefkopf .rv-summe-ende { font-size: 11.5px; padding-top: 6px; }


/* Vorschau in den Einstellungen: Blatt verkleinert */
.rv-vorschau { width: 100%; max-width: 560px; aspect-ratio: 794 / 1123; overflow: hidden; border-radius: 6px; border: 1px solid var(--rand, #DDE1E6); background: #E4E7EB; position: relative; }
.rv-vorschau .rv-papier { transform: scale(var(--rv-massstab, .7)); transform-origin: top left; width: 794px; overflow: visible; pointer-events: none; }
.rv-vorschau .rv-blatt { box-shadow: none; }
.rv-wahl { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.rv-wahl button { text-align: left; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--rand, #DDE1E6); background: var(--flaeche, #fff); cursor: pointer; font: inherit; color: inherit; }
.rv-wahl button.an { border-color: #17325C; box-shadow: 0 0 0 1px #17325C; }
.rv-wahl button span:last-child { font-size: 12px; color: var(--text-2, #5B6475); }
.rv-farben { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.rv-farbe { width: 28px; height: 28px; border-radius: 14px; border: 2px solid #fff; box-shadow: 0 0 0 1px #CBD0D8; cursor: pointer; padding: 0; }
.rv-farbe.an { box-shadow: 0 0 0 2px #17325C; }

@media (max-width: 900px) {
    .rv-papier { align-items: stretch; }
}

@media print {
    @page { size: A4; margin: 0; }
    html, body, .app, .app-rumpf, .hauptbereich, .rd-druck { height: auto !important; overflow: visible !important; display: block !important; background: #fff !important; padding: 0 !important; margin: 0 !important; }
    body:has(.rv-papier) .seitenleiste, body:has(.rv-papier) .umgebung, body:has(.rv-papier) .kopfzeile,
    .ra-nicht-drucken, #blazor-error-ui, .toast, #components-reconnect-modal { display: none !important; }
    body:has(.rv-papier) .hauptbereich > :not(:has(.rv-papier)):not(.rv-papier) { display: none !important; }
    .rv-papier { gap: 0; overflow: visible; padding: 0; display: block; }
    .rv-blatt { width: 210mm; max-width: none; min-width: 0; aspect-ratio: auto; min-height: 297mm; box-shadow: none; break-after: page; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .rv-blatt:last-child { break-after: auto; }
    .rv-pos-zeile { break-inside: avoid; }
    .rv-blatt a { text-decoration: none; }
    .rv-anhang button { text-decoration: none; }
}
