.rr-portal{
  --rr-paper:#F2F5F6; --rr-surface:#FFFFFF; --rr-line:#D9E0E4; --rr-ink:#12191E; --rr-muted:#5B6A72;
  --rr-accent:#C4571C; --rr-accent-ink:#FFFFFF; --rr-good:#2E7D5B; --rr-good-bg:#E3F2EA;
  --rr-warn:#95650A; --rr-warn-bg:#FBF0DC; --rr-bad:#AE3B2A; --rr-bad-bg:#FAE6E2;
  max-width:720px; margin:0 auto; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--rr-ink); display:flex; flex-direction:column; gap:20px;
}
.rr-portal *{box-sizing:border-box;}
.rr-panel{background:var(--rr-surface); border:1px solid var(--rr-line); border-radius:12px; padding:18px; box-shadow:0 1px 2px rgba(0,0,0,.05);}
.rr-stack{display:flex; flex-direction:column; gap:18px;}
.rr-row{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.rr-field{display:flex; flex-direction:column; gap:6px; margin-bottom:12px;}
.rr-field label{font-size:12.5px; color:var(--rr-muted); font-weight:600;}
.rr-field input{border:1px solid var(--rr-line); border-radius:8px; padding:10px 11px; font-size:15px; width:100%;}
.rr-btn{border:none; border-radius:8px; padding:10px 16px; font-weight:600; cursor:pointer; background:var(--rr-accent); color:var(--rr-accent-ink); font-size:14px; text-decoration:none; display:inline-block;}
.rr-btn.secondary{background:transparent; color:var(--rr-ink); border:1px solid var(--rr-line);}
.rr-btn.ghost{background:transparent; color:var(--rr-accent); border:none; padding:6px 4px;}
.rr-btn:disabled{opacity:.5; cursor:not-allowed;}
.rr-err{color:var(--rr-bad); font-size:13px; min-height:1.2em;}
.rr-hint{color:var(--rr-muted); font-size:12.5px; margin:0;}
.rr-eyebrow{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--rr-muted);}
table.rr-tbl{width:100%; border-collapse:collapse; font-size:13.5px;}
table.rr-tbl th{text-align:left; font-size:11px; text-transform:uppercase; color:var(--rr-muted); padding:8px 6px; border-bottom:1px solid var(--rr-line);}
table.rr-tbl td{padding:9px 6px; border-bottom:1px solid var(--rr-line);}
.rr-chip{display:inline-flex; align-items:center; padding:3px 9px; border-radius:100px; font-size:12px; font-weight:700;}
.rr-chip.paid{background:var(--rr-good-bg); color:var(--rr-good);}
.rr-chip.due{background:var(--rr-warn-bg); color:var(--rr-warn);}
.rr-chip.overdue{background:var(--rr-bad-bg); color:var(--rr-bad);}
.rr-zelle{display:flex; flex-direction:column; gap:10px; background:var(--rr-paper); border:1px dashed var(--rr-line); border-radius:10px; padding:14px;}
.rr-kv{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.rr-kv .k{color:var(--rr-muted); font-size:12.5px;}
.rr-kv .v{font-weight:700; font-family:ui-monospace,monospace;}
.rr-banner{border-radius:10px; padding:10px 14px; font-size:13px; font-weight:600;}
.rr-banner.warn{background:var(--rr-warn-bg); color:var(--rr-warn);}
.rr-banner.good{background:var(--rr-good-bg); color:var(--rr-good);}
.rr-banner.bad{background:var(--rr-bad-bg); color:var(--rr-bad);}
.rr-gate{display:grid; grid-template-columns:1fr; gap:16px;}
