:root { --tinte:#1b2733; --grau:#5a6875; --linie:#d5dbe1; --flaeche:#ffffff; --grund:#f3f5f7; --akzent:#1f4e79; --akzent-dunkel:#173b5c;
  --rot:#a4161a; --rot-hell:#fbeaea; --gelb:#7a5200; --gelb-hell:#fdf3dc; --gruen:#1d6b3a; --gruen-hell:#e6f4ea; --blau-hell:#e7eff7; }
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--grund); color:var(--tinte); font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; overflow-wrap:break-word; }
h1 { font-size:1.45rem; line-height:1.25; margin:.2rem 0 .5rem; }
h2 { font-size:1.08rem; margin:0 0 .7rem; }
h3 { font-size:.95rem; margin:.8rem 0 .4rem; }
a { color:var(--akzent); }
.banner { padding:.45rem 1rem; font-size:.9rem; text-align:center; }
.banner-test { background:var(--rot); color:#fff; }
.banner-hinweis { background:var(--blau-hell); color:var(--akzent-dunkel); border-top:3px solid var(--akzent); border-bottom:1px solid #c5d6e8; font-weight:500; overflow-wrap:anywhere; }
.banner-warn { background:var(--gelb-hell); color:var(--gelb); border-bottom:1px solid #e8d5a5; }
.kopf { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem 1.2rem; padding:.7rem 1rem; background:var(--flaeche); border-bottom:1px solid var(--linie); }
.marke { font-weight:700; color:var(--akzent-dunkel); text-decoration:none; }
.nav { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .9rem; }
.wer { margin-left:auto; font-size:.82rem; color:var(--grau); min-width:0; overflow-wrap:anywhere; }
.inhalt { max-width:1320px; margin:0 auto; padding:1rem; }
.karte { background:var(--flaeche); border:1px solid var(--linie); border-radius:6px; padding:1rem; margin:0 0 1rem; min-width:0; }
.schmal { max-width:430px; margin:1.5rem auto; }
.karte-gefahr { border-color:#e3b9ba; }
.klein { font-size:.84rem; color:var(--grau); }
.umbruch { overflow-wrap:anywhere; }
.text-fehler { color:var(--rot); }
.text-warn { color:var(--gelb); }
label { display:block; font-size:.88rem; font-weight:600; min-width:0; }
input,select,textarea { display:block; width:100%; margin-top:.2rem; padding:.5rem .55rem; font:inherit; font-weight:400; color:inherit; background:#fff; border:1px solid #aab4bd; border-radius:4px; min-width:0; }
input[type=file] { padding:.35rem; }
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible { outline:2px solid var(--akzent); outline-offset:1px; }
.stapel { display:flex; flex-direction:column; gap:.7rem; align-items:stretch; }
.stapel > .knopf { align-self:flex-start; }
.reihe { display:flex; flex-wrap:wrap; gap:.6rem; align-items:flex-end; }
.reihe > label { flex:1 1 220px; }
.aktionen { margin:.6rem 0 1rem; align-items:center; }
.inline { display:inline; margin:0; }
.knopf { display:inline-block; padding:.5rem .95rem; font:inherit; font-size:.92rem; font-weight:600; color:#fff; background:var(--akzent); border:1px solid var(--akzent); border-radius:4px; cursor:pointer; text-decoration:none; max-width:100%; }
.knopf:hover { background:var(--akzent-dunkel); }
.knopf[disabled] { opacity:.55; cursor:not-allowed; }
.knopf-zweit { color:var(--akzent); background:#fff; }
.knopf-zweit:hover { background:var(--blau-hell); }
.knopf-gefahr { background:var(--rot); border-color:var(--rot); }
.knopf-gefahr:hover { background:#7f1114; }
.knopf-klein { padding:.28rem .6rem; font-size:.82rem; }
.linkknopf { background:none; border:0; padding:0; font:inherit; color:var(--akzent); text-decoration:underline; cursor:pointer; }
.meldung { padding:.55rem .8rem; border-radius:4px; margin:0 0 .8rem; font-size:.92rem; overflow-wrap:anywhere; }
.meldung-fehler { background:var(--rot-hell); color:var(--rot); border:1px solid #e3b9ba; }
.meldung-erfolg { background:var(--gruen-hell); color:var(--gruen); border:1px solid #b8dcc4; }
.meldung-hinweis { background:var(--blau-hell); color:var(--akzent-dunkel); border:1px solid #c4d6e8; }
.liste { list-style:none; margin:0; padding:0; }
.zeile { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.3rem 1rem; padding:.6rem 0; border-top:1px solid var(--linie); }
.zeile:first-child { border-top:0; }
.zeile-haupt { flex:1 1 240px; min-width:0; }
.zeile-info { flex:0 1 auto; font-size:.88rem; min-width:0; }
.kennung { display:inline-block; font-weight:700; font-size:.8rem; padding:0 .35rem; color:var(--akzent-dunkel); background:var(--blau-hell); border-radius:3px; }
.marke-status { display:inline-block; padding:.05rem .45rem; font-size:.75rem; font-weight:600; border-radius:3px; white-space:normal; }
.status-ok { background:var(--gruen-hell); color:var(--gruen); }
.status-fehler { background:var(--rot-hell); color:var(--rot); }
.status-warn,.status-platzhalter { background:var(--gelb-hell); color:var(--gelb); }
.status-laeuft,.status-info { background:var(--blau-hell); color:var(--akzent-dunkel); }
.fortschritt-zeile { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin:0 0 .6rem; font-size:.88rem; }
progress { flex:1 1 180px; min-width:0; height:.8rem; accent-color:var(--akzent); }
.befunde { list-style:none; margin:0; padding:0; }
.befund { padding:.35rem .6rem; margin:0 0 .3rem; border-left:4px solid var(--linie); background:var(--grund); font-size:.9rem; overflow-wrap:anywhere; }
.befund-fehler { border-color:var(--rot); }
.befund-warnung { border-color:#d9a400; }
.befund-hinweis { border-color:var(--akzent); }
.ergebnisse { margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:.7rem; }
.ergebnis { padding:.55rem .7rem; border:1px solid var(--linie); border-radius:4px; min-width:0; }
.ergebnis dt { font-size:.84rem; color:var(--grau); }
.ergebnis dd { margin:0; font-size:1.12rem; font-weight:700; }
.qr { display:block; margin:.5rem auto; max-width:100%; height:auto; background:#fff; }
.pruefraster { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; }
.pruef-links,.pruef-rechts { min-width:0; }
.belegbild { display:block; width:100%; height:auto; border:1px solid var(--linie); margin-bottom:.6rem; background:#fff; }
.tabellenhuelle { max-width:100%; overflow:auto; border:1px solid var(--linie); }
.datentabelle { border-collapse:collapse; font-size:.8rem; width:max-content; min-width:100%; }
.datentabelle tbody th { position:sticky; left:0; background:var(--grund); font-weight:400; }
.datentabelle th,.datentabelle td { border:1px solid var(--linie); padding:.2rem .4rem; text-align:left; vertical-align:top; max-width:320px; overflow-wrap:break-word; }
.datentabelle th { background:var(--grund); }
.posten { border-top:1px solid var(--linie); padding:.5rem 0; }
.posten > summary { cursor:pointer; padding:.15rem 0; }
.posten > summary > span { display:inline; }
.posten > summary:hover { background:var(--grund); }
.posten > summary > .posten-betrag { display:block; text-align:right; }
.posten-befund { border-left:3px solid #d9a400; padding-left:.5rem; }
.posten:target { background:var(--blau-hell); }
.posten-alle { margin:0 0 .6rem; }
.stand { padding:.55rem .8rem; border-radius:4px; font-size:.92rem; margin:0 0 1rem; }
.stand-offen { background:var(--gelb-hell); color:var(--gelb); border:1px solid #e8d5a5; }
.stand-ok { background:var(--gruen-hell); color:var(--gruen); border:1px solid #b8dcc4; }
.befund-quittiert { opacity:.75; }
.quittung { margin-top:.2rem; }
.abgelehnt { margin:.3rem 0; padding-left:1.1rem; }
.zuordnung-knoepfe { background:var(--flaeche); padding:.3rem 0; }
@media (min-width: 700px) { .zuordnung-knoepfe { position:sticky; top:0; z-index:2; } }
.bilanz { margin:-.4rem 0 1rem; }
.bilanzliste { margin:0; padding-left:1rem; }
.bilanzliste li { margin:.3rem 0; }
.text-grau { color:var(--grau, #5b6470); }
.zeile-aus td,.zeile-aus th { background:#e9ecef; color:var(--grau); text-decoration:line-through; }
.zeile-kopf td,.zeile-kopf th { background:var(--blau-hell); font-weight:600; }
td.zahl { text-align:right; font-variant-numeric:tabular-nums; }
.posten-betrag { font-variant-numeric:tabular-nums; }
.posten form.stapel { margin-top:.7rem; }
.posten-weg { margin-top:.5rem; font-size:.84rem; }
.posten-neu { margin-top:.5rem; }
.feldraster { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:.6rem; }
.feldraster .breit { grid-column:1 / -1; }
.ust { border:1px solid var(--linie); border-radius:4px; padding:.5rem .6rem; margin:0; min-width:0; }
.ust legend { font-size:.84rem; font-weight:600; padding:0 .3rem; }
.ust-zeile { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; margin-bottom:.35rem; }
.protokoll { list-style:none; margin:0; padding:0; font-size:.88rem; }
.protokoll li { padding:.35rem 0; border-top:1px solid var(--linie); }
.aktionen-benutzer { display:flex; flex-direction:column; gap:.35rem; align-items:flex-start; }
.aktionen-benutzer form.inline { display:flex; flex-wrap:wrap; gap:.3rem; }
code { font-size:.85em; }
@media (min-width:1000px) {
  .pruefraster { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .pruef-rechts { position:sticky; top:.6rem; max-height:calc(100vh - 1.2rem); overflow:auto; }
}
@media (max-width:420px) {
  .inhalt { padding:.6rem; }
  .karte { padding:.75rem; }
  .ust-zeile input { padding:.45rem .3rem; font-size:.9rem; }
}

.auswahl { display:flex; gap:.45rem; align-items:center; font-weight:400; margin:.2rem 0 .5rem; }
.auswahl input { width:auto; }
.spalten-rest { margin:.2rem 0 .4rem; scroll-margin-top:4rem; }
.auswahl span { font-weight:400; }
.auswahl input { flex:none; }
.spalten-rest .auswahl { align-items:flex-start; }
