:root{--blau:#1F3864;--blau2:#2f5597;--hell:#eef2f8;--rand:#d6dce6;--text:#1d2330;--grau:#6b7280;--rot:#b42318;--gruen:#1a7f37;--gelb:#9a6700}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text);background:#f6f7f9}
header{background:var(--blau);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:10px 20px}
header .marke{font-size:18px}
header nav{display:flex;flex-wrap:wrap;gap:4px}
header nav a{color:#dbe4f3;text-decoration:none;padding:6px 10px;border-radius:6px}
header nav a.aktiv,header nav a:hover{background:rgba(255,255,255,.15);color:#fff}
main{max-width:1280px;margin:0 auto;padding:16px 20px 60px}
h1{font-size:24px;margin:8px 0 4px;color:var(--blau)}
h2{font-size:17px;margin:26px 0 8px;color:var(--blau)}
h2 small{color:var(--grau);font-weight:normal}
a{color:var(--blau2)}
.sub{color:var(--grau);margin:0 0 12px}
.klein{font-size:12.5px;color:var(--grau)}
.leer{color:var(--grau);font-style:italic}
.warn{color:var(--gelb);font-size:13px}
table{border-collapse:collapse;width:100%;background:#fff;border:1px solid var(--rand);border-radius:8px;overflow:hidden;font-size:14px}
th,td{padding:7px 10px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top}
th{background:var(--hell);font-weight:600;font-size:13px;color:#384152}
td.zahl{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.ueberfaellig td{background:#fff4f2}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}
.badge.blau{background:#e3ebfa;color:var(--blau2)}.badge.gruen{background:#dcf3e2;color:var(--gruen)}.badge.rot{background:#fde4e1;color:var(--rot)}.badge.gelb{background:#fff1c7;color:var(--gelb)}.badge.grau{background:#eceef1;color:#555}
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.kachel{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:12px 14px}
.kachel .wert{font-size:26px;font-weight:700;color:var(--blau)}.kachel .label{font-size:13px}.kachel .unter{font-size:12px;color:var(--grau)}
.hinweis{padding:10px 14px;border-radius:8px;margin:10px 0}
.hinweis.ok{background:#e7f6ec;border:1px solid #b7e1c3}.hinweis.fehler{background:#fdecea;border:1px solid #f3c1bb}
.karte{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:14px 16px;margin-bottom:12px}
.karte.schmal{max-width:380px}
details.karte summary{cursor:pointer}
.spalten{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px}
@media (max-width:900px){.spalten{grid-template-columns:1fr}}
form.raster{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
form.raster fieldset{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;border:1px solid var(--rand);border-radius:10px;padding:10px 12px 12px;background:#fff;margin:0}
legend{font-weight:600;color:var(--blau);padding:0 4px}
.breit{grid-column:1/-1}
label{display:flex;flex-direction:column;font-size:13px;color:#384152;gap:3px}
label.check{flex-direction:row;align-items:flex-start;gap:8px;font-size:14px;margin:4px 0}
label.check.rot{color:var(--rot);font-weight:600}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #c7cfdb;border-radius:7px;background:#fff;width:100%}
input[type=checkbox]{width:auto;margin-top:3px}
textarea{resize:vertical}
input[readonly],textarea[readonly]{background:#f3f4f6;color:#555}
button,.knopf{font:inherit;background:var(--blau2);color:#fff;border:0;border-radius:7px;padding:8px 14px;cursor:pointer;text-decoration:none;display:inline-block}
button:disabled{background:#aab3c2;cursor:not-allowed}
button.hell,.knopf.hell{background:#fff;color:var(--blau2);border:1px solid var(--blau2)}
button.rot{background:var(--rot)}
button.mini{padding:2px 8px;font-size:13px}
.aktionen{display:flex;gap:8px;justify-content:flex-end}
form.zeile{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
form.zeile input,form.zeile select{width:auto;flex:1 1 120px}
form.filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
form.filter input,form.filter select{width:auto;flex:1 1 160px}
details.gefahr{margin-top:30px;color:var(--rot)}
@media (max-width:600px){form.raster,form.raster fieldset{grid-template-columns:1fr}main{padding:12px}table{font-size:13px}th,td{padding:6px}}
@media print{header,.aktionen,form,button{display:none!important}body{background:#fff}}
