:root{--bg:#f3f5f7;--ink:#1b2631;--mute:#66727f;--pri:#1f3a5f;--pri2:#2d527f;--acc:#c8571b;--ok:#2e7d4f;--warn:#a86a00;--bad:#b3261e;--line:#d9dfe5;--card:#fff;--grp:#e8edf3}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 "Segoe UI",system-ui,-apple-system,Arial,sans-serif}
a{color:var(--pri2);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:var(--pri);color:#fff;padding:0 20px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
header.top .brand{font-weight:700;font-size:16px;padding:12px 0;letter-spacing:.2px}
header.top .brand small{font-weight:400;opacity:.7;margin-left:8px}
nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}
nav a{color:#cfd9e6;padding:14px 12px;border-bottom:3px solid transparent;font-size:13.5px}
nav a:hover{color:#fff;text-decoration:none;background:rgba(255,255,255,.07)}
nav a.on{color:#fff;border-bottom-color:var(--acc)}
nav .badge{background:var(--acc);color:#fff;border-radius:9px;padding:0 6px;font-size:11px;margin-left:4px}
.who{font-size:12px;color:#cfd9e6}.who input{width:110px;padding:3px 6px;border:1px solid #5b7596;background:#2a4a74;color:#fff;border-radius:3px}
main{padding:18px 20px 40px;max-width:1500px;margin:0 auto}
h1{font-size:21px;margin:4px 0 14px;color:var(--pri)}h2{font-size:16px;margin:26px 0 8px;color:var(--pri)}h3{font-size:14px;margin:14px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kpi .l{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.4px}.kpi .v{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.kpi .s{font-size:12px;color:var(--mute)}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--pri);color:#fff;font-weight:600;font-size:12.5px;position:sticky;top:0;z-index:1;white-space:nowrap}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
th.sortbar{cursor:pointer;user-select:none}th.sortbar:hover{text-decoration:underline}th[data-richtung=auf]::after{content:' \25B2'}th[data-richtung=ab]::after{content:' \25BC'}
tr.filter td{padding:3px 6px;background:#eef2f6}tr.filter input{width:100%;min-width:48px;padding:2px 5px;font:inherit;font-size:12px;border:1px solid #b9c3cd;border-radius:3px}
tr.grp td{background:var(--grp);font-weight:600}
tr.tot td{background:#dfe6ee;font-weight:700;border-top:2px solid var(--pri)}
tr.intern td{color:var(--mute)}
tr:hover td{background:#f7f9fb}tr.grp:hover td{background:var(--grp)}tr.tot:hover td{background:#dfe6ee}
.tabw{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:#fff}
.tabs{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap;align-items:center}
.tabs a{padding:5px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink)}.tabs a.on{background:var(--pri);color:#fff;border-color:var(--pri);text-decoration:none}
.bar{background:#e3e8ee;border-radius:3px;height:10px;min-width:80px;position:relative;overflow:hidden}.bar i{display:block;height:100%;background:var(--pri2)}.bar.ok i{background:var(--ok)}.bar.over i{background:var(--bad)}
.barrow{display:flex;align-items:center;gap:8px}.barrow span{min-width:44px;text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px}
.btn,button{background:var(--pri);color:#fff;border:0;border-radius:4px;padding:7px 14px;font:inherit;cursor:pointer}
.btn:hover,button:hover{background:var(--pri2);text-decoration:none}.btn.sec,button.sec{background:#fff;color:var(--pri);border:1px solid var(--pri)}
.btn.acc,button.acc{background:var(--acc)}.btn.danger,button.danger{background:var(--bad)}
input[type=text],input[type=date],input[type=number],select,textarea{padding:5px 7px;border:1px solid #b9c3cd;border-radius:3px;font:inherit;background:#fff}
td input[type=text]{width:100%;min-width:70px}input.num{text-align:right;width:110px}
label{display:inline-block;margin-right:12px}.row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:8px 0}.row>div{display:flex;flex-direction:column;gap:3px}.row>div>span{font-size:12px;color:var(--mute)}
.msg{background:#e6f3ea;border:1px solid #9cc9ab;color:#1d5a36;padding:8px 12px;border-radius:4px;margin-bottom:12px}.msg.err{background:#fbe9e7;border-color:#e0a49d;color:#8a1f17}
.pill{display:inline-block;border-radius:9px;padding:0 8px;font-size:11.5px;background:#e3e8ee;color:#33414f}.pill.fehler{background:#fbe0dd;color:var(--bad)}.pill.warn{background:#fdeccb;color:var(--warn)}.pill.info{background:#dde8f5;color:var(--pri2)}.pill.ok{background:#dcefe3;color:var(--ok)}
.mute{color:var(--mute)}.neg{color:var(--bad)}.small{font-size:12px}
details{margin:6px 0}details summary{cursor:pointer;color:var(--pri2)}
.chk{border-left:4px solid var(--line);padding:8px 12px;background:#fff;margin:8px 0;border-radius:0 6px 6px 0}.chk.fehler{border-left-color:var(--bad)}.chk.warn{border-left-color:var(--warn)}.chk.info{border-left-color:var(--pri2)}
.chk ul{margin:6px 0 0;padding-left:18px;max-height:220px;overflow:auto;font-size:13px}
.right{text-align:right}.nowrap{white-space:nowrap}
@media print{header.top,.noprint,.tabs,form.noprint{display:none!important}body{background:#fff;font-size:11px}main{padding:0;max-width:none}.tabw{border:0;overflow:visible}th{position:static;color:#000;background:#ddd!important;-webkit-print-color-adjust:exact}.card{border:1px solid #999}}
