:root{--ink:#1c2a2e;--mute:#5e6b70;--line:#d9dedf;--paper:#fff;--wash:#f3f5f4;--green:#2f6b4f;--green-soft:#e6f0eb;--red:#9b3b2e;--amber:#8a6a17;--amber-soft:#fbf3dc}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.45}
a{color:var(--green)}
.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
nav{background:var(--wash);border-right:1px solid var(--line);padding:1.4rem 1rem}
nav .brand{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;line-height:1.25;margin-bottom:1.6rem}
nav .brand small{display:block;color:var(--mute);font-family:inherit;font-size:.78rem;margin-top:.3rem}
nav a{display:block;padding:.4rem .6rem;border-radius:4px;color:var(--ink);text-decoration:none}
nav a.aktiv,nav a:hover{background:var(--green-soft);color:var(--green)}
nav .gruppe{color:var(--mute);font-size:.78rem;margin:1.1rem .6rem .3rem}
nav .unten{margin-top:2rem;font-size:.85rem;color:var(--mute)}
main{padding:1.8rem 2.4rem 3rem;max-width:1180px}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:normal;font-size:1.7rem;margin:0 0 .3rem}
h2{font-family:Georgia,serif;font-weight:normal;font-size:1.2rem;margin:1.8rem 0 .6rem}
.sub{color:var(--mute);margin:0 0 1.4rem}
.meldung{background:var(--green-soft);border-left:3px solid var(--green);padding:.6rem .9rem;margin:0 0 1.2rem;border-radius:0 4px 4px 0}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{padding:.42rem .6rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--mute);font-size:.82rem;background:var(--wash)}
td.z,th.z{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.summe td{font-weight:600;border-top:2px solid var(--ink);border-bottom:none}
tr.hell td{color:var(--mute)}
.kenn{display:inline-block;font-weight:600;letter-spacing:.02em}
.status{display:inline-block;padding:.1rem .5rem;border-radius:3px;font-size:.8rem;background:var(--wash)}
.status.warn{background:var(--amber-soft);color:var(--amber)}
.status.rot{background:#f6e4e0;color:var(--red)}
.status.gruen{background:var(--green-soft);color:var(--green)}
.kacheln{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:1rem 0 1.6rem}
.kachel{border:1px solid var(--line);padding:.9rem 1rem;border-radius:4px}
.kachel .wert{font-size:1.45rem;font-family:Georgia,serif;margin:.15rem 0}
.kachel .label{color:var(--mute);font-size:.82rem}
form.zeile{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin:.6rem 0 1rem}
form.zeile label{display:flex;flex-direction:column;font-size:.8rem;color:var(--mute);gap:.2rem}
input,select,textarea{font:inherit;padding:.35rem .5rem;border:1px solid #b9c1c3;border-radius:3px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus,button:focus{outline:2px solid var(--green);outline-offset:1px}
button,.btn{font:inherit;padding:.4rem .9rem;border:1px solid var(--green);background:var(--green);color:#fff;border-radius:3px;cursor:pointer;text-decoration:none;display:inline-block}
button.leise,.btn.leise{background:#fff;color:var(--green)}
button.klein{padding:.1rem .5rem;font-size:.8rem;border-color:var(--line);background:#fff;color:var(--mute)}
.spalten{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem 1.2rem;max-width:900px}
.form-grid label{display:flex;flex-direction:column;font-size:.8rem;color:var(--mute);gap:.2rem}
.form-grid .breit{grid-column:1/-1}
.hinweis{color:var(--mute);font-size:.88rem}
.login{max-width:360px;margin:12vh auto;padding:2rem;border:1px solid var(--line);border-radius:6px}
.login h1{font-size:1.4rem}
.login label{display:block;margin:.8rem 0 .2rem;color:var(--mute);font-size:.85rem}
.login input{width:100%}
.login button{margin-top:1.2rem;width:100%}
.fehler{color:var(--red);margin-top:.8rem}
details summary{cursor:pointer;color:var(--green);margin:.4rem 0}
@media (max-width:820px){.shell{grid-template-columns:1fr}nav{border-right:none;border-bottom:1px solid var(--line)}main{padding:1.2rem}.spalten,.form-grid{grid-template-columns:1fr}}
@media print{nav{display:none}.shell{grid-template-columns:1fr}}
