:root { --grund:#f4f5f7; --karte:#fff; --text:#1f2328; --grau:#6b7280; --linie:#e5e7eb; --blau:#1f4e78;
  --gruen:#1a7f37; --gruen-h:#e6f4ea; --rot:#b42318; --rot-h:#fdecea; --gelb:#9a6700; --gelb-h:#fff4d6; }
* { box-sizing:border-box; }
body { margin:0; font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif; background:var(--grund); color:var(--text); }
a { color:var(--blau); }
.kopf { display:flex; align-items:center; gap:1.5rem; padding:.6rem 1.2rem; background:var(--blau); color:#fff; flex-wrap:wrap; }
.kopf a { color:#fff; text-decoration:none; }
.kopf nav { display:flex; gap:1rem; }
.kopf nav a:hover { text-decoration:underline; }
.marke { font-weight:700; font-size:1.05rem; }
.marke span { font-weight:400; opacity:.8; }
.abmelden { margin-left:auto; display:flex; gap:.6rem; align-items:center; }
.abmelden button { background:transparent; color:#fff; border:1px solid #ffffff80; border-radius:6px; padding:.25rem .7rem; cursor:pointer; }
.wer { opacity:.85; font-size:.9rem; }
main { padding:1.2rem; max-width:1600px; margin:0 auto; }
h1 { font-size:1.35rem; margin:.2rem 0 1rem; }
h2 { font-size:1.05rem; margin:0 0 .7rem; }
.grau, .klein { color:var(--grau); }
.klein { font-size:.85rem; }
.karte { background:var(--karte); border:1px solid var(--linie); border-radius:10px; padding:1rem 1.2rem; margin-bottom:1rem; }
.schmal { max-width:420px; margin:3rem auto; }
.kacheln { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1rem; }
label { display:block; margin:.6rem 0; }
label input { display:block; width:100%; margin-top:.25rem; padding:.5rem; border:1px solid var(--linie); border-radius:6px; font:inherit; }
button { font:inherit; }
button.haupt { margin-top:.6rem; background:var(--blau); color:#fff; border:0; border-radius:6px; padding:.55rem 1.1rem; cursor:pointer; }
.fehler { color:var(--rot); font-weight:600; }
.warn { color:var(--gelb); font-weight:700; }
.qr svg { width:220px; height:220px; display:block; margin:.5rem auto; background:#fff; }
.zahlen { display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; margin:0 0 .6rem; }
.zahlen dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.felder { display:grid; grid-template-columns:160px 1fr; gap:.45rem 1rem; align-items:center; margin:0; }
.felder dd { margin:0; }
.felder textarea, .felder input:not([type=checkbox]) { width:100%; font:inherit; padding:.35rem; border:1px solid var(--linie); border-radius:6px; }
.filter { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin-bottom:.8rem; }
.filter select, .filter input { padding:.4rem; border:1px solid var(--linie); border-radius:6px; font:inherit; }
.filter input { min-width:240px; }
.filter button { padding:.4rem .9rem; border:1px solid var(--blau); background:#fff; color:var(--blau); border-radius:6px; cursor:pointer; }
.anzahl { color:var(--grau); margin-left:auto; }
.tabelle-rahmen { overflow-x:auto; background:var(--karte); border:1px solid var(--linie); border-radius:10px; }
table.liste { border-collapse:collapse; width:100%; }
.liste th, .liste td { padding:.4rem .5rem; border-bottom:1px solid var(--linie); vertical-align:top; text-align:left; }
.liste th { position:sticky; top:0; background:#f9fafb; font-weight:600; font-size:.85rem; white-space:nowrap; }
.liste td select, .liste td input:not([type=checkbox]) { font:inherit; padding:.2rem; border:1px solid var(--linie); border-radius:5px; max-width:160px; }
.liste td input[data-feld=notiz] { min-width:180px; }
.liste tr.z-weglassen td { color:var(--grau); }
.liste tr.z-prüfen { background:var(--gelb-h); }
.mitte { text-align:center !important; }
[class^=marke-] { padding:.05rem .4rem; border-radius:4px; font-size:.82rem; }
.marke-mitnehmen { background:var(--gruen-h); color:var(--gruen); }
.marke-weglassen { background:var(--rot-h); color:var(--rot); }
.marke-prüfen { background:var(--gelb-h); color:var(--gelb); }
.fortschritt { white-space:nowrap; }
.punkt { display:inline-block; width:11px; height:11px; border-radius:50%; margin-right:3px; border:1px solid #9ca3af; background:#fff; vertical-align:middle; }
.st-ok { background:var(--gruen); border-color:var(--gruen); }
.st-läuft { background:#f59e0b; border-color:#f59e0b; }
.st-fehler { background:var(--rot); border-color:var(--rot); }
.gespeichert { outline:2px solid var(--gruen); outline-offset:1px; }
.fehlgeschlagen { outline:2px solid var(--rot); outline-offset:1px; }
.hinweis { position:fixed; right:1rem; bottom:1rem; background:#111827; color:#fff; padding:.6rem 1rem; border-radius:8px; max-width:420px; }
code { background:#f3f4f6; padding:.1rem .3rem; border-radius:4px; }
@media (max-width:700px) { main { padding:.6rem; } .felder { grid-template-columns:1fr; } }

/* Prüfliste, Bereitschaft, Rückweg */
.st-zurück { background:#7c3aed; border-color:#7c3aed; }
.marke-fehler { background:var(--rot-h); color:var(--rot); }
.hinweis-gruen { border-left:4px solid var(--gruen); }
.hinweis-gelb { border-left:4px solid #f59e0b; }
.hinweis-rot { border-left:4px solid var(--rot); background:var(--rot-h); }
.pruefliste td { vertical-align:middle; }
.pruefliste input { width:100%; }
.pz-ok td:first-child { color:var(--gruen); }
.pz-fehler td:first-child { color:var(--rot); font-weight:600; }
.pz-entfällt td:first-child { opacity:.6; text-decoration:line-through; }
