:root{
  --gruen:#96c22f; --gruen-d:#7ba520; --tint:#f4f7ee;
  --text:#1f2a17; --grau:#6b7563; --linie:#e2e7da; --fehler:#c0392b;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--tint); color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; line-height:1.5;
}
.wrap{max-width:720px; margin:0 auto; padding:1.5rem}
.kopf{display:flex; align-items:center; gap:.75rem; padding:.5rem 0 1.25rem; flex-wrap:wrap}
.logo{height:29px; width:auto; display:block}
.titel{color:var(--grau); border-left:2px solid var(--linie); padding-left:.75rem}
.kopf .user{margin-left:auto; color:var(--grau); font-size:.9rem}
.kopf .user a{color:var(--gruen-d)}

.nav{display:flex; gap:.5rem; margin:0 0 1rem}
.nav a{padding:.5rem .9rem; border-radius:8px; text-decoration:none; color:var(--grau);
  border:1px solid var(--linie); background:#fff; font-size:.92rem}
.nav a.aktiv{background:var(--gruen); color:#fff; border-color:var(--gruen); font-weight:600}

.eintrag{border:1px solid var(--linie); border-radius:10px; padding:.9rem 1rem; margin:.7rem 0}
.eintrag-kopf{display:flex; align-items:center; gap:.6rem; justify-content:space-between}
.eintrag-meta{color:var(--grau); font-size:.88rem; margin:.35rem 0 0}
.badge{font-size:.74rem; padding:.15rem .6rem; border-radius:999px; white-space:nowrap}
.badge-ok{background:#e6f3d4; color:#4d7a12}
.badge-offen{background:#eef1ea; color:#6b7563}
.badge-ab{background:#f6e2df; color:#b0392b}
.dl-liste{list-style:none; margin:.5rem 0 0; padding:0}
.dl-liste li{padding:.3rem 0; border-top:1px solid var(--linie)}
.dl-liste a{color:var(--gruen-d); word-break:break-all}
.dl-liste .kb{color:var(--grau); font-size:.82rem; margin-left:.4rem}
.eintrag.abgelaufen{border-left:4px solid var(--fehler)}
.eintrag.ok{border-left:4px solid var(--gruen)}
.badge-info{background:#dce9f5; color:#2a5b8a}
.inline-form{margin:.6rem 0 0}
.btn-klein{background:#fff; color:var(--gruen-d); border:1px solid var(--gruen); border-radius:8px;
  padding:.4rem .85rem; font-size:.85rem; font-weight:600; cursor:pointer}
.btn-klein:hover{background:var(--gruen); color:#fff}
.warnbox{background:#fcefd6; border:1px solid #e3b341; color:#8a5a00; border-radius:10px;
  padding:.75rem 1rem; margin:0 0 1rem; font-size:.92rem; font-weight:600}

.karte{background:#fff; border:1px solid var(--linie); border-radius:14px;
  padding:1.5rem; box-shadow:0 6px 24px rgba(0,0,0,.05)}
h1{font-size:1.25rem; margin:.2rem 0 1.1rem}
h2{font-size:1.05rem; margin:.2rem 0 .6rem}

fieldset{border:1px solid var(--linie); border-radius:10px; margin:0 0 1rem; padding:.9rem 1rem}
legend{font-weight:600; padding:0 .4rem; color:var(--gruen-d)}
label{display:block; margin:.5rem 0; font-size:.92rem}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%; margin-top:.25rem; padding:.55rem .65rem; font-size:1rem;
  border:1px solid var(--linie); border-radius:8px; background:#fff; font-family:inherit;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gruen); border-color:var(--gruen)}
.hinweis{color:var(--grau); font-size:.82rem; margin:.3rem 0 0}
.radios{display:flex; gap:1rem; flex-wrap:wrap}
.radios label{display:flex; align-items:center; gap:.35rem; margin:.2rem 0}
.radios input{width:auto; margin:0}

.dropzone{border:2px dashed var(--linie); border-radius:10px; padding:1.1rem; text-align:center; color:var(--grau)}
.dropzone.hover{border-color:var(--gruen); background:var(--tint)}
.dropzone input{display:block; margin:0 auto .5rem}
.dateiliste{list-style:none; margin:.6rem 0 0; padding:0}
.dateiliste li{display:flex; align-items:center; gap:.5rem; padding:.35rem .5rem; border:1px solid var(--linie); border-radius:8px; margin:.3rem 0; font-size:.9rem}
.entf{margin-left:auto; border:none; background:none; color:var(--fehler); font-size:1.1rem; cursor:pointer; line-height:1}

.fortschritt{margin:1rem 0}
.balken{height:10px; background:var(--linie); border-radius:6px; overflow:hidden}
.balken span{display:block; height:100%; width:0; background:var(--gruen); transition:width .2s}
#fortschritt_text{font-size:.85rem; color:var(--grau); margin:.4rem 0 0}

.ergebnis{margin:1rem 0; padding:1rem; background:var(--tint); border-radius:10px}
.ergebnis a{color:var(--gruen-d); word-break:break-all}
.fehler{color:var(--fehler); font-size:.9rem; margin:.6rem 0}

button[type=submit]{
  background:var(--gruen); color:#fff; border:none; border-radius:9px;
  padding:.7rem 1.3rem; font-size:1rem; font-weight:600; cursor:pointer; margin-top:.4rem;
}
button[type=submit]:hover{background:var(--gruen-d)}
button[type=submit]:disabled{opacity:.55; cursor:default}

.login{max-width:380px; margin:2rem auto}
.fuss{text-align:center; color:var(--grau); font-size:.8rem; margin:2rem 0 1rem}
