/* Rohstoffanalyse (PDF) und E-Mail-Versand: Dialog im Messprotokoll (public/js/report-dialog.js).
   Eigene Datei, damit sie unabhängig von pages.css gepflegt werden kann. Nur Tokens aus app.css verwenden. */

/* ---------- Rahmen des Dialogs: breit und hoch; Schritte und Fußzeile bleiben stehen, der Inhalt scrollt ---------- */
dialog.dlg.rp-dlg .dlg-card { width: min(1180px, calc(100vw - 24px)); height: min(calc(100vh - 24px), 920px); max-height: none; }
@supports (height: 1dvh) { dialog.dlg.rp-dlg .dlg-card { height: min(calc(100dvh - 24px), 920px); } }
dialog.dlg.rp-dlg .dlg-body { flex: 1 1 auto; min-height: 0; padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.rp-shell { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.rp-dlg .dlg-head { gap: 0.5rem 1.4rem; }
.rp-dlg .dlg-title { flex: none; }
.rp-steps { list-style: none; margin: 0 auto 0 0.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem; }
.rp-steps li { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; font-weight: 650; color: var(--muted); }
.rp-steps li + li::before { content: ""; width: 26px; height: 1px; margin-right: 0.9rem; background: var(--line); }
.rp-sn { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface-solid); font-size: 0.72rem; font-variant-numeric: tabular-nums; }
.rp-steps li.on { color: var(--ink); }
.rp-steps li.on .rp-sn { color: var(--on-gold); border-color: var(--gold-lo); background: linear-gradient(180deg, #d9ad4c, #b8902a); }
.rp-steps li.done .rp-sn { color: var(--ok-ink); border-color: var(--ok-line); background: var(--ok-soft); }
.rp-main { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: auto; padding: 1.1rem 1.25rem 1.3rem; outline: none; }
.rp-main > div { flex: none; }
.rp-main > #rp-s3:not([hidden]) { flex: 1 1 auto; display: grid; align-content: center; }
.rp-main.is-review { overflow: hidden; padding: 0; }
.rp-main.is-review > .rp-rev { flex: 1 1 auto; min-height: 0; }
.rp-foot { flex: none; flex-wrap: wrap; align-items: center; }
.rp-fnote { display: inline-flex; align-items: center; gap: 0.5rem; margin-right: auto; font-size: 0.82rem; color: var(--muted); outline: none; }
.rp-spin { flex: none; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--line); border-top-color: var(--gold-lo); animation: spin 0.7s linear infinite; }
.rp-foot .btn.busy::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(42, 37, 28, 0.3); border-top-color: var(--on-gold); animation: spin 0.7s linear infinite; }
.rp-h, .rp-h2, .rp-main:focus { outline: none; }
.rp-h { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
.rp-h2 { font-size: 1rem; font-weight: 700; letter-spacing: -0.01em; }

/* ---------- Hinweise und Fehler ---------- */
.rp-banner { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0 0 0.9rem; padding: 0.6rem 0.8rem; border-radius: var(--radius-sm); border: 1px solid var(--warn-line); background: var(--warn-soft); color: var(--ink); font-size: 0.84rem; }
.rp-banner .ic { margin-top: 1px; color: var(--warn); }
.rp-banner.bad { border-color: var(--bad-line); background: var(--bad-soft); }
.rp-banner.bad .ic { color: var(--bad); }
.rp-alert:empty { display: none; }
.rp-fe { margin: 0; color: var(--bad-ink); font-size: 0.78rem; font-weight: 600; letter-spacing: 0; }
.rp-fe:empty { display: none; }
/* Zeichenzähler: erst nahe der Höchstlänge sichtbar (ab 80 %), an der Grenze deutlich; Farbe ist nie der einzige Hinweis (der Text sagt es) */
.rp-cnt { margin: 0; color: var(--muted); font-size: 0.78rem; font-weight: 500; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.rp-cnt:empty { display: none; }
.rp-cnt.is-near { color: var(--warn); font-weight: 600; }
.rp-cnt.is-full, .rp-cnt.is-over { color: var(--bad-ink); font-weight: 650; }
.rp-err-box { display: flex; gap: 0.8rem; align-items: flex-start; padding: 0.9rem 1rem; border-radius: var(--radius-sm); border: 1px solid var(--bad-line); background: var(--bad-soft); }
.rp-err-box .ic { margin-top: 2px; color: var(--bad); }
.rp-err-box p { margin-bottom: 0.6rem; color: var(--ink); }

/* ---------- Schritt 1: Auswahl ---------- */
.rp-lead { max-width: 80ch; margin-bottom: 0.9rem; color: var(--ink-2); font-size: 0.88rem; }
.rp-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 0.9rem 1.4rem; align-items: start; margin-bottom: 0.9rem; }
.rp-grid .fb-range input { flex: 1 1 8rem; min-width: 0; }
.rp-fs { min-width: 0; margin: 0 0 0.9rem; padding: 0; border: 0; }
.rp-legend { padding: 0; margin-bottom: 0.45rem; font-size: 0.68rem; font-weight: 650; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.rp-opts { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; }
.rp-opt { padding: 0.3rem 0.75rem; border: 1px solid var(--line); border-radius: 999px; background: var(--field-soft); }
.rp-opt:has(input:checked) { border-color: var(--gold); background: var(--gold-soft); color: var(--ink); }
.rp-opt small { color: var(--muted); font-weight: 650; font-variant-numeric: tabular-nums; }
.rp-one { margin: 0 0 0.9rem; font-size: 0.88rem; font-weight: 600; }
.rp-k { margin-right: 0.5rem; font-size: 0.68rem; font-weight: 650; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.rp-lh { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0.3rem 0 0.5rem; }
.rp-count { font-size: 0.84rem; font-weight: 650; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.rp-count.over { color: var(--warn); }
.rp-list { margin-bottom: 1rem; }
.rp-none { margin: 0; padding: 1.4rem 0.8rem; text-align: center; font-size: 0.88rem; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius-sm); }
.rp-tw { max-height: 19rem; overflow: auto; border: 1px solid var(--line-soft); }
.rp-lt thead th { position: sticky; top: 0; z-index: 2; background: linear-gradient(var(--surface-2), var(--surface-2)), var(--surface-solid); }
.rp-lt tbody tr { cursor: pointer; }
.rp-lt tbody tr.on td { background-color: var(--gold-soft); }
.rp-lt .rp-c { width: 2.6rem; text-align: center; }
.rp-trunc { margin-top: 0.4rem; }
.rp-opts2 { display: grid; gap: 0.5rem; }
.rp-stats-h { margin: -0.25rem 0 0.2rem 1.45rem; }
.rp-opts2 .fld { margin-top: 0.3rem; font-weight: 500; letter-spacing: 0; }
.rp-opts2 .fld > span:first-child { font-weight: 650; letter-spacing: 0.06em; }

/* ---------- Schritt 2: Vorschlag prüfen (oben Status und Hinweise, darunter links die E-Mail und rechts die Vorschau; beide Spalten scrollen für sich) ---------- */
.rp-rev:not([hidden]) { display: flex; flex-direction: column; min-height: 0; }
.rp-top { flex: none; max-height: 42%; overflow: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.6rem; padding: 0.8rem 1.25rem 0.7rem; border-bottom: 1px solid var(--line-soft); }
.rp-top .rp-banner { order: 2; flex: 1 1 100%; margin: 0; padding: 0.45rem 0.8rem; }
.rp-cols { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(300px, 420px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.rp-left { min-width: 0; min-height: 0; overflow: auto; padding: 1rem 1.25rem 1.3rem; }
.rp-prev { min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 0.5rem; padding: 1rem 1.25rem 1rem 0; }
.rp-status { flex: 1 1 22rem; display: flex; gap: 0.7rem; align-items: center; margin: 0; padding: 0.5rem 0.85rem; border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--field-soft); }
.rp-status.is-bad { border-color: var(--bad-line); background: var(--bad-soft); }
.rp-status.is-ok { border-color: var(--ok-line); background: var(--ok-soft); }
.rp-st-ic { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface-solid); color: var(--muted); }
.rp-status.is-bad .rp-st-ic { border-color: var(--bad-line); color: var(--bad); }
.rp-status.is-ok .rp-st-ic { border-color: var(--ok-line); color: var(--ok); }
.rp-status.is-bad .rp-h2 { color: var(--bad-ink); }
.rp-status.is-ok .rp-h2 { color: var(--ok-ink); }
.rp-st-t p { margin-top: 0.05rem; font-size: 0.8rem; color: var(--ink-2); }
.rp-dets { display: contents; }
.rp-det { flex: 0 1 auto; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--field-soft); }
.rp-det[open] { order: 3; flex: 1 1 100%; }
.rp-det > summary { padding: 0.4rem 0.8rem; border-radius: var(--radius-sm); cursor: pointer; font-size: 0.82rem; font-weight: 650; }
.rp-det.bad { border-color: var(--bad-line); }
.rp-det.bad > summary { color: var(--bad-ink); }
.rp-det.warn { border-color: var(--warn-line); }
.rp-det.warn > summary { color: var(--warn); }
.rp-dl { list-style: none; margin: 0; padding: 0.1rem 0.8rem 0.6rem; display: grid; gap: 0.3rem; max-height: 10rem; overflow: auto; font-size: 0.82rem; }
.rp-dw { margin-right: 0.3rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.rp-dp { color: var(--muted); }
.rp-mail { display: grid; gap: 0.7rem; min-width: 0; }
.rp-fields { display: grid; gap: 0.8rem; }
.rp-lbl { font-size: 0.68rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.rp-mail .fld { font-weight: 500; letter-spacing: 0; }
.rp-mail textarea { min-height: 9rem; line-height: 1.5; }
.rp-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rp-chip { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.28rem 0.7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--field-soft); color: var(--ink-2); font-size: 0.84rem; font-weight: 600; letter-spacing: 0; overflow-wrap: anywhere; }
.rp-chip .ic { width: 14px; height: 14px; color: var(--muted); }
.rp-att { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.7rem; border: 1px dashed var(--line); border-radius: var(--radius-sm); font-size: 0.84rem; color: var(--ink-2); overflow-wrap: anywhere; }
.rp-att .ic { color: var(--muted); }
.rp-checks { display: grid; gap: 0.35rem; }
.rp-checks .hint { margin-left: 1.45rem; }
.rp-checks .hint:empty { display: none; }
.rp-ack { margin-top: 0.3rem; padding: 0.55rem 0.7rem; border: 1px solid var(--bad-line); border-radius: var(--radius-sm); background: var(--bad-soft); color: var(--ink); font-weight: 600; }
.rp-prev-bar { flex: none; display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap; min-height: 34px; }
.rp-prev-act { display: inline-flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; margin-left: auto; }
.rp-big-st { display: none; }
.rp-rev.is-big .rp-big-st { display: inline-flex; }
.rp-rev.is-big .rp-top, .rp-rev.is-big .rp-left { display: none; }
.rp-rev.is-big .rp-cols { grid-template-columns: minmax(0, 1fr); }
.rp-rev.is-big .rp-prev { padding: 0.9rem 1.25rem; }
.seg.seg-sm .seg-b { padding: 0.26rem 0.7rem; font-size: 0.78rem; }
.rp-pane { flex: 1 1 auto; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.rp-frame { flex: 1 1 auto; width: 100%; min-height: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-2); }
.rp-pane-tbl { overflow: auto; padding: 0.7rem 0.8rem; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); background: var(--surface-solid); }
.rp-pane-tbl:not([hidden]) { display: block; }
.rp-prev-h { flex: none; margin: 0; }

/* Tabellenansicht der Vorschau (aus dem Dokumentmodell) */
.rp-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.6rem 1rem; margin: 0 0 0.7rem; }
.rp-meta > div { display: grid; gap: 0.1rem; min-width: 0; }
.rp-meta dt { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.rp-meta dd { margin: 0; font-size: 0.86rem; font-weight: 600; overflow-wrap: anywhere; }
.rp-note { margin: 0 0 0.8rem; padding: 0.5rem 0.8rem; border-left: 2px solid var(--gold); border-radius: 0 10px 10px 0; background: var(--gold-soft); font-size: 0.84rem; overflow-wrap: anywhere; }
.rp-sec { margin-bottom: 1.3rem; }
.rp-sec:last-child { margin-bottom: 0.3rem; }
.rp-sec-h { display: flex; align-items: baseline; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 0.45rem; }
.rp-sec-h h4 { font-size: 1rem; font-weight: 700; }
.rp-sec-h .muted { font-size: 0.8rem; }
.rp-tbl th, .rp-tbl td { padding: 0.38rem 0.6rem; font-size: 0.82rem; }
.rp-tbl thead th { font-size: 0.66rem; }
.rp-tbl thead th span { display: block; }
.rp-tbl thead th small { display: block; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--muted); }
.rp-tbl .rp-p { position: sticky; left: 0; z-index: 1; min-width: 9rem; text-align: left; background: var(--surface-solid); }
.rp-tbl thead th.rp-p { background: linear-gradient(var(--surface-2), var(--surface-2)), var(--surface-solid); }
.rp-tbl tbody th.rp-p { font-size: 0.82rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--ink); white-space: normal; border-bottom: 1px solid var(--line-soft); }
.rp-tbl .rp-p small { font-weight: 500; color: var(--muted); }
.rp-tbl .rp-spec { white-space: nowrap; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.rp-tbl .rp-stat { color: var(--ink-2); background-color: var(--field-soft); }
.rp-tbl td.mv { white-space: nowrap; }
.rp-tbl td.mv.txt { text-align: left; }
.rp-grp th { text-align: left; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-ink); background: var(--gold-soft); }
.mv.is-none { color: var(--ink-2); }
.mv.is-invalid { background: var(--warn-soft); color: var(--warn); font-weight: 650; box-shadow: inset 3px 0 0 var(--warn); }

/* ---------- Angaben im Dokument (Liefertermin, neue Ernte, weitere Angaben): in der Auswahl unter der Liste, im Vorschlag über der E-Mail ---------- */
.rp-doc { display: grid; gap: 0.7rem; margin: 0 0 1.1rem; padding: 0.75rem 0.9rem 0.85rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--field-soft); }
.rp-doc:disabled { opacity: 0.7; }
.rp-doc-h { margin: 0; }
.rp-doc .fld { font-weight: 500; letter-spacing: 0; }
.rp-doc .hint:empty { display: none; }
.rp-doc textarea { min-height: 0; line-height: 1.4; }
.rp-doc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 0.7rem 0.9rem; align-items: start; max-width: 640px; }
.rp-quick { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.15rem; }
.rp-quick .chip { padding: 0.18rem 0.5rem; font-variant-numeric: tabular-nums; }
.rp-quick .chip:focus-visible { outline: 2px solid var(--gold-lo); outline-offset: 1px; }
.rp-more > summary { padding: 0.15rem 0.3rem; margin-left: -0.3rem; border-radius: 6px; cursor: pointer; font-size: 0.82rem; font-weight: 650; color: var(--ink-2); }
.rp-more > summary:focus-visible { outline: 2px solid var(--gold-lo); outline-offset: 1px; }
.rp-more[open] > summary { margin-bottom: 0.6rem; }
.rp-more-in { display: grid; gap: 0.7rem; }
.rp-doc-checks { display: grid; gap: 0.3rem; justify-items: start; }
/* Lieferschein-Nr. und LKW-Kennzeichen: das Kennzeichen erscheint beim Tippen in Großbuchstaben (gesendet und gedruckt wird es vom Server so normiert);
   „aus L-Nr. übernehmen“ ist ein kleiner Zweitknopf unter der Lieferschein-Nr., nur wenn genau eine gewählte Messung eine L-Nr. hat */
.rp-plate { text-transform: uppercase; }
.rp-plate::placeholder { text-transform: none; }
.rp-lnr { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin-top: 0.15rem; }
.rp-lnr[hidden] { display: none; }
.rp-lnr-v { min-width: 0; font-size: 0.78rem; font-weight: 500; letter-spacing: 0; color: var(--muted); overflow-wrap: anywhere; }
/* Hinweis unter Betreff und Text, wenn sich der Vorschlag geändert hat (mit Knopf zum Übernehmen) */
.rp-sg { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.6rem; margin: 0; font-size: 0.78rem; font-weight: 500; letter-spacing: 0; color: var(--ink-2); overflow-wrap: anywhere; }
.rp-sg:empty { display: none; }

/* ---------- Vorschau wird aktualisiert: die bisherige Vorschau bleibt sichtbar, abgedunkelt, mit Hinweis ---------- */
.rp-prev { position: relative; }
.rp-pane-pdf { position: relative; }
.rp-frame[data-next] { position: absolute; inset: 0; height: 100%; visibility: hidden; }
.rp-wait { flex: 1 1 auto; min-height: 0; }
.rp-wait .skel { height: 100% !important; min-height: 260px; margin: 0; }
/* Abdunkeln ohne opacity auf dem PDF-Bild: darunter wird das Anzeigeprogramm sonst gar nicht gezeichnet (Schleier statt Transparenz) */
.rp-pane-tbl { transition: opacity 0.2s var(--ease); }
.rp-prev.is-stale .rp-pane-tbl { opacity: 0.55; }
.rp-pane-pdf::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; border-radius: var(--radius-sm); background: var(--surface-solid); opacity: 0; transition: opacity 0.2s var(--ease); }
.rp-prev.is-stale .rp-pane-pdf::after { opacity: 0.55; }
.rp-upd { position: absolute; z-index: 5; top: 3.3rem; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 0.6rem; max-width: calc(100% - 1.5rem); padding: 0.45rem 0.95rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-solid); box-shadow: var(--shadow-lg); color: var(--ink-2); font-size: 0.82rem; font-weight: 600; }
.rp-upd.is-err { flex-wrap: wrap; border-radius: var(--radius-sm); border-color: var(--bad-line); background: var(--surface-solid); color: var(--ink); }
.rp-upd.is-err > span[role="alert"] { display: inline-flex; align-items: flex-start; gap: 0.5rem; }
.rp-upd.is-err .ic { flex: none; margin-top: 2px; color: var(--bad); }
.rp-foot .btn[aria-disabled="true"] { opacity: 0.45; cursor: default; transform: none; filter: none; box-shadow: none; }
.rp-foot .btn.ghost[aria-disabled="true"]:hover { background: var(--field-soft); border-color: var(--line); color: var(--ink-2); }
.rp-link[aria-disabled="true"], .rp-prev .link[aria-disabled="true"] { opacity: 0.5; cursor: default; }
.rp-ack[hidden] { display: none; }

/* Tabellenansicht als Formular „Rohstoffanalyse“: Parameter | Ist-Wert | Spezifikation | Bewertung */
.rp-doc-title { margin: 0 0 0.55rem; font-size: 1.3rem; font-weight: 750; letter-spacing: -0.015em; }
.rp-ftbl td.mv, .rp-ftbl td.mv.txt { text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.rp-ftbl .rp-spec { text-align: center; }
.rp-ftbl thead th.num, .rp-ftbl thead th.rp-spec { text-align: center; }
.rp-ev { white-space: nowrap; font-weight: 650; }
.rp-ev .ic { width: 14px; height: 14px; margin-right: 0.3rem; vertical-align: -2px; stroke-width: 2.2; }
.rp-ev .ar { margin: 0 0.3rem 0 0; }
.rp-ev.is-ok { color: var(--ok-ink); }
.rp-ev.is-above, .rp-ev.is-below, .rp-ev.is-bad { color: var(--bad-ink); }
.rp-ev.is-invalid { color: var(--warn); }
.rp-ev.is-none { color: var(--muted); font-weight: 500; }
.mv.is-plain { color: var(--ink); }
.rp-fnote-doc { margin: 0.9rem 0 0.2rem; font-size: 0.76rem; color: var(--muted); text-align: center; }

/* ---------- Schritt 3: Ergebnis und Bestätigung ---------- */
.rp-res { display: grid; justify-items: center; gap: 0.6rem; max-width: 640px; margin: 0 auto; padding: 1.6rem 0.5rem 0.8rem; text-align: center; }
.rp-res-ic { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; border: 1px solid rgba(184, 144, 42, 0.35); background: var(--gold-soft); color: var(--gold); }
.rp-res-ic .ic { width: 28px; height: 28px; }
.rp-res.is-ok .rp-res-ic { border-color: var(--ok-line); background: var(--ok-soft); color: var(--ok); }
.rp-res.is-err .rp-res-ic { border-color: var(--bad-line); background: var(--bad-soft); color: var(--bad); }
.rp-res.is-test .rp-res-ic { border-color: var(--warn-line); background: var(--warn-soft); color: var(--warn); }
.rp-res .rp-h2 { font-size: 1.15rem; overflow-wrap: anywhere; }
.rp-res-t { max-width: 56ch; color: var(--ink-2); }
.rp-sum { display: grid; gap: 0.45rem; width: 100%; margin: 0.4rem 0 0; text-align: left; font-size: 0.86rem; }
.rp-sum > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.8rem; }
.rp-sum dt { font-size: 0.78rem; color: var(--muted); }
.rp-sum dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.rp-ok-line, .rp-warn-line { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; text-align: left; font-size: 0.84rem; }
.rp-ok-line .ic { color: var(--ok); }
.rp-warn-line .ic { color: var(--warn); }
.rp-res .rp-ok-line, .rp-res .rp-warn-line { margin-top: 0.3rem; }
.rp-confirm .rp-sum { margin: 0.9rem 0; padding: 0.75rem 0.9rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--field-soft); }
.rp-confirm .rp-warn-line { margin-top: 0.7rem; font-weight: 600; }

/* ---------- Versandprotokoll ---------- */
.rp-lf { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); gap: 0.4rem 1.2rem; align-items: end; margin-bottom: 0.9rem; }
.rp-logt td { vertical-align: top; }
.rp-logt .rp-to { max-width: 16rem; overflow-wrap: anywhere; }
.rp-sub { margin-top: 0.1rem; font-size: 0.76rem; }
.rp-refs { max-width: 26rem; overflow-wrap: anywhere; }
.rp-lerr { max-width: 22rem; color: var(--bad-ink); white-space: normal; }

/* ---------- Schmale Bildschirme ---------- */
@media (max-width: 900px) {
  .rp-grid { grid-template-columns: 1fr; }
  .rp-main.is-review { display: block; overflow: auto; }
  .rp-rev:not([hidden]) { display: block; }
  .rp-top { max-height: none; overflow: visible; padding: 1rem 1rem 0.8rem; }
  .rp-cols { display: block; }
  .rp-left { overflow: visible; padding: 1rem 1rem 0.4rem; }
  .rp-prev { padding: 0.4rem 1rem 1rem; }
  .rp-frame { flex: none; height: 70vh; }
  .rp-pane-tbl { max-height: none; }
  [data-rp-big] { display: none; }
  .rp-rev.is-big .rp-top { display: flex; }
  .rp-rev.is-big .rp-left { display: block; }
  .rp-lf { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  dialog.dlg.rp-dlg .dlg-card { width: calc(100vw - 12px); height: calc(100vh - 12px); }
  @supports (height: 1dvh) { dialog.dlg.rp-dlg .dlg-card { height: calc(100dvh - 12px); } }
  .rp-dlg .dlg-head { flex-wrap: wrap; }
  /* der lange Titel („Analysenübersicht für den Kunden“) darf umbrechen, statt das Schließen-Kreuz in die nächste Zeile zu drängen */
  .rp-dlg .dlg-title { order: 1; flex: 1 1 0; min-width: 0; }
  .rp-dlg .dlg-head [data-x] { order: 2; margin-left: auto; }
  .rp-steps { order: 3; flex: 1 1 100%; margin: 0; gap: 0.3rem 0.9rem; }
  .rp-steps li:not(.on) .rp-sl { display: none; }
  .rp-steps li + li::before { width: 14px; margin-right: 0.5rem; }
  .rp-main { padding: 0.9rem; }
  .rp-foot { padding: 0.6rem 0.8rem; gap: 0.45rem; }
  .rp-foot .btn { flex: 1 1 calc(50% - 0.25rem); padding-inline: 0.5rem; }
  .rp-foot[data-step="review"] .btn.primary { order: 3; flex-basis: 100%; }
  .rp-foot[data-step="select"] .btn:not(.primary) { flex: 0 0 auto; }
  .rp-foot[data-step="select"] .btn.primary { flex: 1 1 auto; }
  .rp-fnote { flex: 1 1 100%; margin-right: 0; }
  .rp-fnote:empty { display: none; }
  .rp-sum > div { grid-template-columns: 1fr; gap: 0.1rem; }
  .rp-lt th, .rp-lt td { padding: 0.5rem 0.55rem; }
  .rp-tw { max-height: 16rem; }
  .rp-doc { padding: 0.65rem 0.7rem 0.75rem; }
  .rp-doc-grid { grid-template-columns: minmax(0, 1fr); }
  .rp-upd { top: 3.6rem; }
}
