:root{--rot:#c8102e;--grau:#f2f2f2;--rand:#d0d0d0;--text:#1d1d1d;--gruen:#1f8a3b}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font:18px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:#e9e9e9}
header{background:var(--rot);color:#fff;display:flex;align-items:center;gap:14px;padding:10px 16px;position:sticky;top:0;z-index:5;flex-wrap:wrap}
header b{font-size:20px}.sp{flex:1}
#wer{font-size:15px;opacity:.9}
.modus{display:flex;gap:6px}
.modus button{background:rgba(255,255,255,.2);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-size:16px}
.modus button.an{background:#fff;color:var(--rot);font-weight:600}
main{max-width:1100px;margin:0 auto;padding:16px}
.karte{background:#fff;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
h2{margin:0 0 12px;font-size:22px}h3{margin:0 0 10px;font-size:19px}
.zeile{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.zeile>*{flex:1;min-width:200px}
label{display:block;font-size:14px;color:#666;margin:10px 0 4px}
input,select,textarea{width:100%;font:inherit;padding:14px;border:1px solid var(--rand);border-radius:10px;background:#fff;min-height:54px}
textarea{min-height:140px;resize:vertical}
button{font:inherit;cursor:pointer}
.gross{font-weight:600;border:0;border-radius:12px;padding:16px 22px;min-height:58px;background:var(--rot);color:#fff}
.zweit{border:1px solid var(--rand);border-radius:12px;padding:14px 18px;min-height:54px;background:#fff}
.klein{border:1px solid var(--rand);border-radius:10px;min-width:54px;min-height:54px;background:#fff;font-size:24px}
button:disabled{opacity:.4;cursor:default}
.liste .eintrag{display:flex;align-items:center;gap:14px;padding:16px 8px;border-bottom:1px solid #eee}
.liste .eintrag[data-act]{cursor:pointer}
.liste .eintrag:last-child{border-bottom:0}
.zeit{font-weight:700;min-width:110px}
.pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:14px;background:var(--grau);white-space:nowrap}
.pill.verantw{background:var(--rot);color:#fff}.pill.ok{background:#d9f2df;color:var(--gruen)}.pill.offen{background:#fff2cc;color:#8a6d00}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--rand);border-radius:24px;padding:12px 16px;background:#fff;font-size:16px}
.chip.an{background:var(--rot);border-color:var(--rot);color:#fff}
table{width:100%;border-collapse:collapse}td,th{padding:10px 6px;border-bottom:1px solid #eee;text-align:left;vertical-align:middle}th{font-size:14px;color:#666}
.menge{display:flex;align-items:center;gap:8px}.menge span{min-width:80px;text-align:center;font-weight:700}
.reiter{display:flex;gap:6px;overflow-x:auto;margin:12px 0}
.reiter button{border:0;border-radius:12px;padding:14px 18px;background:#fff;white-space:nowrap}
.reiter button.an{background:var(--text);color:#fff}
canvas{width:100%;height:230px;border:2px dashed var(--rand);border-radius:12px;background:#fafafa;touch-action:none;display:block}
.hinweis{font-size:14px;color:#666}
.klausel{font-size:14px;background:var(--grau);padding:10px;border-radius:10px}
.treffer{max-height:300px;overflow:auto;border:1px solid #eee;border-radius:10px}
.treffer div{padding:14px;border-bottom:1px solid #eee;cursor:pointer}
.dialog{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:9;padding:10px}
.dialog .karte{max-width:680px;width:100%;max-height:92vh;overflow:auto}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#222;color:#fff;padding:12px 18px;border-radius:12px;display:none;z-index:10;max-width:90%}
.login{max-width:460px;margin:40px auto}
.fehler{color:var(--rot);font-weight:600}
.qr svg{width:220px;height:220px}
.netz{font-size:14px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.2)}
.netz.aus{background:#ffd54f;color:#222;font-weight:600}
