/* ===================== XRechnung (aufbereitete E-Rechnung) ===================== */
.ipaweb-laedt { display: flex; align-items: center; justify-content: center; }
.xr { display: flex; flex-direction: column; height: var(--dok-hoehe); min-height: 480px; border: 1px solid var(--mud-palette-lines-default);
    border-radius: 10px; overflow: hidden; background: var(--mud-palette-background-gray, #eef1f5); }
.xr-leiste { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-bottom: 1px solid var(--mud-palette-lines-default);
    background: var(--mud-palette-surface); min-height: 44px; }
.xr-umschalter .mud-toggle-item { text-transform: none; font-size: .8rem; padding: 2px 12px; }
.xr-flaeche { flex: 1; min-height: 0; overflow: auto; padding: 22px; }
.xr-xml { margin: 0; font: .78rem/1.5 ui-monospace, Consolas, monospace; white-space: pre-wrap; word-break: break-word;
    background: var(--mud-palette-surface); padding: 16px; border-radius: 10px; border: 1px solid var(--mud-palette-lines-default); }
.xr-blatt { max-width: 980px; margin: 0 auto; background: var(--mud-palette-surface); border-radius: 14px; padding: 30px 34px;
    box-shadow: 0 2px 18px rgba(10, 34, 56, .08); display: flex; flex-direction: column; gap: 22px; color: var(--mud-palette-text-primary); }
.xr-kopf { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 3px solid #a8ec00; }
.xr-standard { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.xr-tag { font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 12px; background: #0a2238; color: #a8ec00; letter-spacing: .02em; }
.xr-tag.leise { background: var(--mud-palette-background-gray, #eef1f5); color: var(--mud-palette-text-secondary); }
.xr-titel { margin: 0; font-family: Sora, Inter, "Segoe UI", sans-serif; font-size: 1.7rem; font-weight: 700; line-height: 1.2; }
.xr-titel span { color: var(--mud-palette-text-secondary); font-weight: 500; }
.xr-daten { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 10px; font-size: .92rem; }
.xr-daten small, .xr-referenzen small, .xr-feld small { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .06em;
    color: var(--mud-palette-text-secondary); font-weight: 600; }
.xr-daten .ueberfaellig { color: #c62828; font-weight: 600; }
.xr-betrag { text-align: right; display: flex; flex-direction: column; justify-content: flex-end; }
.xr-betrag small { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--mud-palette-text-secondary); font-weight: 600; }
.xr-betrag strong { font-family: Sora, Inter, sans-serif; font-size: 2rem; line-height: 1.1; white-space: nowrap; }
.xr-betrag span { font-size: .8rem; color: var(--mud-palette-text-secondary); }
.xr-parteien { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.xr-partei { padding: 14px 16px; border-radius: 12px; background: var(--mud-palette-background-gray, #f4f6f9); font-size: .9rem; line-height: 1.45; }
.xr-rolle { display: flex; align-items: center; gap: 6px; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700;
    color: var(--mud-palette-text-secondary); margin-bottom: 6px; }
.xr-pname { font-weight: 700; font-size: 1rem; }
.xr-pdetails { display: flex; flex-direction: column; gap: 1px; margin-top: 8px; font-size: .8rem; }
.xr-pdetails small { color: var(--mud-palette-text-secondary); margin-right: 4px; }
.xr-referenzen { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px 18px; padding: 12px 16px;
    border: 1px dashed var(--mud-palette-lines-inputs); border-radius: 12px; font-size: .9rem; }
.xr-referenzen span { word-break: break-word; font-weight: 500; }
.xr-h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em;
    font-weight: 700; color: var(--mud-palette-text-secondary); }
.xr-anzahl { font-size: .7rem; padding: 0 7px; border-radius: 10px; background: var(--mud-palette-background-gray, #eef2f6); }
.xr-tabelle-rahmen { overflow-x: auto; }
.xr-tabelle { width: 100%; border-collapse: collapse; font-size: .88rem; }
.xr-tabelle th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--mud-palette-text-secondary);
    padding: 8px 10px; border-bottom: 2px solid var(--mud-palette-lines-default); white-space: nowrap; }
.xr-tabelle td { padding: 10px; border-bottom: 1px solid var(--mud-palette-lines-default); vertical-align: top; }
.xr-tabelle tbody tr:nth-child(even) td { background: rgba(10, 34, 56, .025); }
.xr-tabelle .r { text-align: right; }
.xr-tabelle .nw { white-space: nowrap; }
.xr-tabelle .b { font-weight: 700; }
.xr-pos { color: var(--mud-palette-text-secondary); width: 1%; }
.xr-name { font-weight: 600; }
.xr-beschreibung { font-size: .82rem; color: var(--mud-palette-text-secondary); white-space: pre-wrap; }
.xr-artikel { font-size: .74rem; color: var(--mud-palette-text-secondary); }
.xr-zuab { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; font-size: .86rem; }
.xr-zuab div { display: flex; justify-content: space-between; padding: 4px 10px; }
.xr-unten { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 16px; align-items: start; }
@media (max-width: 760px) { .xr-unten { grid-template-columns: 1fr; } .xr-blatt { padding: 20px; } .xr-betrag { text-align: left; } }
.xr-karte { padding: 16px 18px; border: 1px solid var(--mud-palette-lines-default); border-radius: 12px; }
.xr-feld { display: grid; grid-template-columns: 1fr auto; align-items: center; margin-bottom: 8px; font-size: .92rem; }
.xr-feld small { grid-column: 1 / -1; }
.xr-mono { font-family: ui-monospace, Consolas, monospace; letter-spacing: .03em; }
.xr-kopieren { margin: -6px -6px -6px 0; }
.xr-bedingung { font-size: .84rem; padding: 8px 10px; border-radius: 8px; background: rgba(247, 144, 7, .1); margin-top: 6px; white-space: pre-wrap; }
.xr-leise { font-size: .85rem; color: var(--mud-palette-text-secondary); }
.xr-summen { display: flex; flex-direction: column; gap: 6px; }
.xr-summe { display: flex; justify-content: space-between; gap: 12px; font-size: .9rem; font-variant-numeric: tabular-nums; }
.xr-summe span:last-child { white-space: nowrap; }
.xr-summe.leise { color: var(--mud-palette-text-secondary); font-size: .84rem; }
.xr-summe small { font-size: .74rem; }
.xr-summe.brutto { border-top: 1px solid var(--mud-palette-lines-default); padding-top: 8px; font-weight: 700; }
.xr-summe.zahlbetrag { margin-top: 4px; padding: 10px 12px; border-radius: 10px; background: #0a2238; color: #fff; font-weight: 700; font-size: 1.05rem; }
.xr-summe.zahlbetrag span:last-child { color: #a8ec00; }
.xr-bemerkung { margin: 0 0 6px; white-space: pre-wrap; font-size: .9rem; }
.xr-anlage { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: .9rem; }
.xr-anlage small { color: var(--mud-palette-text-secondary); }
.xr-fuss { font-size: .7rem; color: var(--mud-palette-text-secondary); word-break: break-all; }
.ipaweb-dunkel .xr-tag { background: #a8ec00; color: #0a2238; }
.ipaweb-dunkel .xr-tag.leise { background: #16314d; color: #b8c7d8; }
.ipaweb-dunkel .xr-partei { background: #0f2c47; }
.ipaweb-dunkel .xr-tabelle tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .025); }
.ipaweb-dunkel .xr-summe.zahlbetrag { background: #a8ec00; color: #0a2238; }
.ipaweb-dunkel .xr-summe.zahlbetrag span:last-child { color: #0a2238; }

/* ---------- Formatpruefung (KoSIT-Validator): Ampel ueber dem Blatt ---------- */
.xrp { --xrp-farbe: #8a97a6; --xrp-grund: rgba(138, 151, 166, .10); --xrp-symbol: #fff;
    max-width: 980px; margin: 0 auto 16px; border: 1px solid var(--mud-palette-lines-default); border-left: 5px solid var(--xrp-farbe);
    border-radius: 12px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); overflow: hidden; }
.xrp.gruen { --xrp-farbe: #a8ec00; --xrp-grund: rgba(168, 236, 0, .12); --xrp-symbol: #0a2238; }
.xrp.gelb { --xrp-farbe: #f5b400; --xrp-grund: rgba(245, 180, 0, .12); --xrp-symbol: #0a2238; }
.xrp.rot { --xrp-farbe: #d32f2f; --xrp-grund: rgba(211, 47, 47, .08); --xrp-symbol: #fff; }
.xrp-kopf { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; padding: 10px 14px; background: var(--xrp-grund); }
.xrp-ampel { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: var(--xrp-farbe); color: var(--xrp-symbol); }
.xrp.laedt .xrp-ampel { background: transparent; color: var(--mud-palette-text-secondary); }
.xrp-kreisel { width: 22px !important; height: 22px !important; }
.xrp-text { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.xrp-titel { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.xrp-titel strong { font-size: 1rem; white-space: nowrap; }
.xrp-was { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--mud-palette-text-secondary);
    white-space: nowrap; }
.xrp-hinweis { font-size: .86rem; }
.xrp-stand { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: .74rem; color: var(--mud-palette-text-secondary); }
.xrp-stand span { white-space: nowrap; }
.xrp-stand .ok { color: #3d7a00; font-weight: 600; }
.xrp-stand .nok { color: #c62828; font-weight: 600; }
.xrp-knoepfe { flex: 0 0 auto; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin-left: auto; }
.xrp-knoepfe .mud-button-root { text-transform: none; white-space: nowrap; }
/* Etiketten nie abschneiden: Breite aus dem Inhalt, kein Schrumpfen */
.xrp-pill { display: inline-flex; align-items: center; flex: 0 0 auto; white-space: nowrap; font-size: .7rem; font-weight: 700; line-height: 1.5;
    padding: 2px 9px; border-radius: 12px; letter-spacing: .02em; background: rgba(138, 151, 166, .2); color: var(--mud-palette-text-primary); }
.xrp-pill.fehler { background: #d32f2f; color: #fff; }
.xrp-pill.warnung { background: #f5b400; color: #0a2238; }
.xrp-pill.info { background: #0a2238; color: #a8ec00; }
.xrp-liste { list-style: none; margin: 0; padding: 4px 14px 10px; display: flex; flex-direction: column; }
.xrp-meldung { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px; align-items: start; padding: 9px 0;
    border-top: 1px solid var(--mud-palette-lines-default); font-size: .88rem; line-height: 1.45; }
.xrp-meldung:first-child { border-top: 0; }
.xrp-meldung .xrp-pill { margin-top: 1px; }
.xrp-stufe { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: var(--mud-palette-text-secondary);
    margin-right: 4px; }
.xrp-meldung.fehler .xrp-stufe { color: #c62828; }
.xrp-ort { display: block; margin-top: 2px; font: .72rem/1.4 ui-monospace, Consolas, monospace; color: var(--mud-palette-text-secondary);
    word-break: break-all; }
.xrp-dialog-quelle { font-size: .75rem; color: var(--mud-palette-text-secondary); margin-left: 8px; font-weight: 400; }
/* Offizieller Bericht: eigenes, helles Dokument (bringt eigene Farben mit) */
.xrp-bericht { display: block; width: 100%; height: 72vh; border: 1px solid var(--mud-palette-lines-default); border-radius: 8px;
    background: #fff; color-scheme: light; }
.ipaweb-dunkel .xrp.laedt, .ipaweb-dunkel .xrp.grau { --xrp-farbe: #5d6f84; --xrp-grund: rgba(93, 111, 132, .16); }
.ipaweb-dunkel .xrp.gruen { --xrp-grund: rgba(168, 236, 0, .10); }
.ipaweb-dunkel .xrp.rot { --xrp-farbe: #ef5350; --xrp-grund: rgba(239, 83, 80, .12); }
.ipaweb-dunkel .xrp-stand .ok { color: #a8ec00; }
.ipaweb-dunkel .xrp-stand .nok, .ipaweb-dunkel .xrp-meldung.fehler .xrp-stufe { color: #ef9a9a; }
.ipaweb-dunkel .xrp-pill.info { background: #a8ec00; color: #0a2238; }
.ipaweb-dunkel .xrp-pill.fehler { background: #ef5350; }
@media (max-width: 760px) { .xrp-knoepfe { margin-left: 0; } }

/* Druck: nur den markierten Bereich, hell, ohne Schatten */
@media print {
    body.ipaweb-druck * { visibility: hidden !important; }
    body.ipaweb-druck .ipaweb-druckbereich, body.ipaweb-druck .ipaweb-druckbereich * { visibility: visible !important; }
    body.ipaweb-druck .ipaweb-druckbereich { position: absolute; left: 0; top: 0; width: 100%; height: auto !important; overflow: visible !important;
        padding: 0 !important; background: #fff !important; }
    body.ipaweb-druck .xr-blatt { box-shadow: none; max-width: none; padding: 0; background: #fff !important; color: #000 !important; }
    body.ipaweb-druck .xr-kopieren { display: none !important; }
    body.ipaweb-druck .xr-tabelle tr { break-inside: avoid; }
    /* Ampel kompakt mitdrucken: ohne Knoepfe und Meldungsliste */
    body.ipaweb-druck .xrp { max-width: none; margin: 0 0 12px; background: #fff !important; color: #000 !important; }
    body.ipaweb-druck .xrp-kopf { padding: 6px 10px; background: #fff !important; }
    body.ipaweb-druck .xrp-knoepfe, body.ipaweb-druck .xrp-liste { display: none !important; }
    body.ipaweb-druck .xrp-ampel, body.ipaweb-druck .xrp-pill { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
