* { box-sizing: border-box; margin: 0; }
body {
  font-family: -apple-system, "Segoe UI", Roboto, sans-serif;
  background: #f3f4f6; color: #111827; line-height: 1.5;
}
header {
  display: flex; align-items: center; gap: 16px;
  background: #1f3864; color: #fff; padding: 12px 20px;
}
header a { color: #cbd5e1; margin-left: auto; text-decoration: none; }
header select { padding: 6px 10px; border-radius: 6px; border: none; font-size: 15px; }
main { max-width: 880px; margin: 20px auto; padding: 0 16px; display: grid; gap: 16px; }
.grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 700px) { .grid { grid-template-columns: 1fr; } }
.card {
  background: #fff; border-radius: 10px; padding: 18px 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.card h3 { margin-bottom: 8px; }
.ampel h2 { font-size: 22px; }
.ampel.gruen { background: #e2efda; border-left: 6px solid #2f9e44; }
.ampel.rot { background: #fde8e8; border-left: 6px solid #d92d20; }
.ampel.grau { background: #eef0f3; border-left: 6px solid #98a2b3; }
.meldung { background: #fff8e1; border-left: 6px solid #f5b301; }
.fehler { color: #d92d20; margin-bottom: 10px; }
.muted { color: #6b7280; font-size: 14px; }
.checkliste, .fehltliste, .dateiliste { list-style: none; margin: 6px 0 14px; }
.checkliste li.ok { color: #2f9e44; }
.checkliste li.fehlt { color: #d92d20; }
.fehltliste li { padding: 4px 0; border-bottom: 1px solid #f1f5f9; }
.dateiliste { font-size: 13px; color: #6b7280; max-height: 160px; overflow-y: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #eef0f3; }
.betrag { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rot-zeile td { background: #fdf1f1; }
button, .button {
  display: inline-block; background: #1f3864; color: #fff; border: none;
  padding: 10px 16px; border-radius: 8px; font-size: 15px; cursor: pointer;
  text-decoration: none; margin-top: 10px;
}
input[type=file] { display: block; margin: 8px 0; max-width: 100%; }
input[type=password] {
  width: 100%; padding: 10px 12px; border: 1px solid #d1d5db;
  border-radius: 8px; font-size: 16px; margin-bottom: 12px;
}
.login-body { display: grid; place-items: center; min-height: 100vh; }
.login-box { background: #fff; padding: 32px; border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0,0,0,.1); width: min(360px, 90vw); }
.login-box h1 { color: #1f3864; }
.login-box p { margin-bottom: 14px; }
.login-box button { width: 100%; margin-top: 4px; }
.quelle { font-size: 13px; color: #92400e; margin: 2px 0 6px 22px; }
