/* RenovaTax — Druck- und Dokumentvorlagen, Brand v5.1 «soft»
   Quelle: docs/02-brand/BRAND-MASTER.md
   Die Tokens sind zeichengleich mit public/tool/styles.css — dieselbe
   Kategorie muss am Bildschirm und auf dem Papier dieselbe Farbe haben.
   Der Druck bleibt kantig (border-radius 0): Daten sind hart, das ist der
   Radius der Datenschicht und keine Abweichung von v5.1.
   Inter-only · kein JetBrains Mono. */
:root{
  /* Fundament v5.1 «soft» */
  --ink:#1D262B; --green:#0E7C4F; --white:#fff;
  --faint:#F6F8F8; --border:#E6EAEA; --border-soft:#CDD5D6;
  --muted:#5C6B71; --dim:#48585F;
  --green-dark:#0B6640; --green-light:#E5EFE9;
  /* Klassifikation — zeichengleich mit styles.css:102-128 */
  --we:#0E7C4F; --we-bg:#E5EFE9; --we-border:#BDD4C6;
  --wv:#8A6F3C; --wv-bg:#F7EFE3; --wv-border:#E2C9A4;
  --es:#2E5E6E; --es-bg:#EAF1F6; --es-border:#BFD2DD;
  --na:#6E4B57; --na-bg:#FBEDE6; --na-border:#F1C9B8;
  /* «Zu pruefen» — die fuenfte Kategorie. Neutralgrau, weil sie keine
     Aussage trifft, sondern eine offene Frage bezeichnet. */
  --pr:#5C6B71; --pr-bg:#F1F3F3; --pr-border:#CDD5D6;
  /* Legacy-Aliasse für bestehende Templates */
  --teal:#2E5E6E; --teal-light:#EAF1F6; --teal-dark:#2E5E6E;
  --amber:#8A6F3C; --amber-bg:#F7EFE3; --amber-text:#8A6F3C;
  --gray-bg:#FBEDE6;
  /* Typo */
  --font-sans:'Inter',-apple-system,system-ui,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;border-radius:0}
/* Ohne diesen Reset erbt <strong> die Browservorgabe 700. Die Marke kennt
   nur 300/400/500/600. */
strong,b{font-weight:600}
:where(.spinner,.avatar-round,.status-dot){border-radius:50%}
html,body{margin:0;padding:0;background:var(--faint);color:var(--ink);
  font-family:var(--font-sans);line-height:1.55;font-size:14px}
.page{background:var(--white);max-width:820px;margin:24px auto;padding:64px 72px;
  box-shadow:0 2px 8px rgba(16,22,25,.05);border:1px solid var(--border)}
@media print{
  body{background:var(--white)}
  .page{box-shadow:none;margin:0;max-width:none;padding:18mm 18mm;page-break-after:always}
  .no-print{display:none!important}
  h2{page-break-before:always;page-break-after:avoid}
  h2:first-of-type{page-break-before:avoid}
  h3{page-break-after:avoid}
  .info,.kpis,.callout,.chart,.toc{page-break-inside:avoid}
  table{page-break-inside:avoid}
  tr{page-break-inside:avoid}
  thead{display:table-header-group}
}
/* Header strip */
.hdr{background:var(--white);color:var(--ink);margin:0 0 32px;padding:0 0 16px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.hdr .logo{display:flex;align-items:center;gap:12px}
.hdr .logo svg{display:block}
.hdr .wm{font-weight:600;font-size:20px;letter-spacing:-.025em;color:var(--ink)}
.hdr .beta{display:none}
.hdr .meta{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);text-align:right;line-height:1.6}
/* Titles */
.eyebrow{font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px}
h1{font-size:38px;font-weight:300;letter-spacing:-.025em;margin:0 0 8px;line-height:1.1}
h1 .sub{display:block;font-size:22px;font-weight:600;color:var(--dim);letter-spacing:-.01em;margin-top:6px}
h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:40px 0 14px;
  padding-bottom:10px;border-bottom:1.5px solid var(--border)}
h2 .num{color:var(--muted);font-weight:500;margin-right:10px}
h3{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:24px 0 10px}
h3 .num{color:var(--muted);font-weight:500;margin-right:8px}
p{margin:0 0 12px;color:var(--dim)}
p.lead{color:var(--ink)}
/* Info/meta card */
.info{background:var(--faint);border:1px solid var(--border);  padding:20px 24px;margin:24px 0}
.info .row{display:grid;grid-template-columns:180px 1fr;gap:8px 20px;padding:8px 0;
  border-bottom:1px solid var(--border)}
.info .row:last-child{border-bottom:none}
.info .k{font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.info .v{font-weight:600;color:var(--ink)}
/* Tables */
table{width:100%;border-collapse:collapse;margin:14px 0 20px;font-size:13px}
th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);font-weight:500;border-bottom:1px solid var(--ink);padding:10px 10px 8px}
td{padding:11px 10px;border-bottom:1px solid var(--border);color:var(--ink);vertical-align:top}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.total td{font-weight:600;border-top:1px solid var(--ink);border-bottom:none;padding-top:14px}
/* Badges */
.badge{display:inline-block;font-size:10px;font-weight:500;letter-spacing:.08em;
  padding:3px 8px;;text-transform:uppercase}
.badge.green{background:var(--green-light);color:var(--green-dark)}
.badge.teal{background:var(--teal-light);color:var(--teal-dark)}
.badge.amber{background:var(--amber-bg);color:var(--amber-text)}
.badge.gray{background:var(--gray-bg);color:var(--dim)}
.badge.red{background:#FBEDE6;color:#6E4B57}
/* KPI row */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}
.kpi{background:var(--faint);border:1px solid var(--border);padding:18px 20px}
.kpi .l{font-size:10px;font-weight:500;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}
.kpi .v{font-size:26px;font-weight:300;color:var(--ink);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.kpi .n{font-size:12px;color:var(--dim);margin-top:6px}
.kpi.accent{background:var(--ink);border-color:var(--ink);color:var(--white)}
.kpi.accent .l,.kpi.accent .n{color:rgba(255,255,255,.7)}
.kpi.accent .v{color:var(--white)}
/* Callout */
.callout{border:1px solid var(--ink);padding:18px 22px;margin:22px 0;background:var(--white)}
.callout .t{font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.callout.green{border-color:var(--green);background:#E5EFE9}
.callout.green .t{color:var(--green-dark)}
/* Photo placeholders */
.photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 24px}
.photo{aspect-ratio:4/3;background:var(--faint);border:1px solid var(--border);  display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;
  font-weight:500;text-align:center;padding:12px;letter-spacing:.04em}
.photo .label{display:block;margin-top:6px;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
/* Gesetzte Bildunterschrift: unter dem Bild, linksbuendig, gemischte
   Schreibweise. Die Nummer traegt das Gewicht, der Text bleibt ruhig. */
figure.abb{margin:0;break-inside:avoid;page-break-inside:avoid}
figure.abb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  border:1px solid var(--border)}
figure.abb figcaption{margin-top:7px;font-size:10.5px;line-height:1.5;
  color:var(--muted);text-align:left;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
figure.abb figcaption .nr{color:var(--ink);font-weight:500;white-space:nowrap}
/* Chart block */
.chart{background:var(--faint);border:1px solid var(--border);padding:24px;margin:16px 0}
.bars{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.bar-row{display:grid;grid-template-columns:160px 1fr 80px;gap:12px;align-items:center;font-size:12px}
.bar-row .lbl{color:var(--ink);font-weight:600}
.bar-row .track{height:22px;background:var(--white);;overflow:hidden;border:1px solid var(--border)}
.bar-row .fill{height:100%;display:flex;align-items:center;padding:0 8px;color:var(--white);font-weight:500;font-size:11px}
.bar-row .amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.donut{display:flex;gap:24px;align-items:center;margin:8px 0}
/* Footer */
.footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--border);
  font-size:11px;color:var(--muted);display:flex;justify-content:space-between}
.sig{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}
.sig .line{border-top:1px solid var(--ink);padding-top:8px;font-size:11px;color:var(--dim)}
/* TOC */
.toc{background:var(--faint);border-left:3px solid var(--green);padding:18px 24px;margin:24px 0;}
.toc ol{margin:0;padding-left:22px;color:var(--ink);font-size:13px}
.toc li{padding:3px 0}
.toc .dots{color:var(--muted)}
/* Utility */
.mono{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:13px}
.right{text-align:right}.center{text-align:center}
.muted{color:var(--dim)}.tiny{font-size:11px}
hr{border:none;border-top:1px solid var(--border);margin:28px 0}
.toolbar{position:fixed;top:12px;right:12px;display:flex;gap:8px;z-index:10}
.toolbar a{background:var(--ink);color:var(--white);padding:8px 14px;  font-size:12px;font-weight:600;text-decoration:none}
.toolbar a.alt{background:var(--white);color:var(--ink);border:1px solid var(--border)}
