.fahrer{--bg:#fff;--fg:#111;--muted:#555;--rand:#8a8a8a;--prim:#0b5fff;--primfg:#fff;--ok:#0a6b2d;--warn:#8a5a00;--err:#b00020;--flaeche:#f1f3f6;color:var(--fg);background:var(--bg);max-width:560px;min-height:100vh;margin:0 auto;padding:0 12px 24px;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){.fahrer{--bg:#10131a;--fg:#f2f4f8;--muted:#b4bac6;--rand:#6b7280;--prim:#6ea0ff;--primfg:#0b1020;--ok:#6fd48f;--warn:#f0c060;--err:#ff8a98;--flaeche:#1b2030}}.fahrer h1,.fahrer h2{margin:12px 0 8px;font-size:1.3rem}.fahrer .leiste{z-index:5;background:var(--flaeche);border-bottom:2px solid var(--rand);justify-content:space-between;align-items:center;gap:8px;margin:0 -12px 8px;padding:10px 12px;font-weight:600;display:flex;position:sticky;top:0}.fahrer .leiste.offen{border-bottom-color:var(--warn)}.fahrer button{border:2px solid var(--prim);background:var(--bg);min-height:56px;color:var(--fg);cursor:pointer;border-radius:12px;padding:12px 16px;font-size:1.1rem;font-weight:600}.fahrer button.primaer{background:var(--prim);color:var(--primfg)}.fahrer button.gross{width:100%;min-height:72px;margin:6px 0;font-size:1.25rem}.fahrer button:disabled{opacity:.5}.fahrer .karte{text-align:left;border:2px solid var(--rand);background:var(--flaeche);border-radius:14px;width:100%;margin:8px 0;padding:14px;display:block}.fahrer .karte small{color:var(--muted);display:block}.fahrer .zeile{gap:8px;display:flex}.fahrer .zeile>*{flex:1}.fahrer input[type=text],.fahrer input[type=email],.fahrer input[type=password]{border:2px solid var(--rand);background:var(--bg);width:100%;min-height:56px;color:var(--fg);box-sizing:border-box;border-radius:12px;padding:8px 12px;font-size:1.2rem}.fahrer .zaehler{margin:4px 0;font-size:2.2rem;font-weight:800}.fahrer .rueckmeldung{border:3px solid;border-radius:12px;margin:10px 0;padding:14px;font-size:1.15rem;font-weight:600}.fahrer .rueckmeldung.ok{border-color:var(--ok)}.fahrer .rueckmeldung.hinweis{border-color:var(--warn)}.fahrer .rueckmeldung.fehler{border-color:var(--err)}.fahrer .rueckmeldung strong{text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;display:block}.fahrer .kamera{object-fit:cover;background:#000;border-radius:12px;width:100%;max-height:40vh}.fahrer .hinweis{color:var(--muted)}.fahrer .fehlertext{color:var(--err);font-weight:600}.fahrer .feld{margin:8px 0;display:block}.fahrer .kamerabereich{position:relative}.fahrer .scan-overlay{text-align:center;color:#fff;pointer-events:none;border:6px solid;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px;font-size:1.3rem;display:flex;position:absolute;inset:0}.fahrer .scan-overlay strong{font-size:1.8rem}.fahrer .scan-overlay .symbol{font-size:4rem;font-weight:800;line-height:1}.fahrer .scan-overlay .kennung{word-break:break-all;font-size:1.05rem}.fahrer .scan-overlay.ok{background:#0a6b2deb;border-color:#fff}.fahrer .scan-overlay.warnung{color:#1a1300;background:#f5c400f2;border-color:#3a2a00}.fahrer .scan-overlay.fehler{background:#b00020ed;border-color:#fff}.fahrer .zuletzt{margin:4px 0;font-size:1.05rem;font-weight:600}.fahrer .tonschalter{align-items:center;gap:10px;min-height:44px;font-size:1.1rem;font-weight:600;display:flex}.fahrer .tonschalter input{width:24px;height:24px}.fahrer .version{color:var(--muted);text-align:center;margin-top:24px;font-size:.8rem}.fahrer table.mengen{border-collapse:collapse;width:100%;margin:8px 0}.fahrer table.mengen th,.fahrer table.mengen td{text-align:left;border-bottom:1px solid var(--rand);padding:6px 8px}.fahrer table.mengen td:not(:first-child),.fahrer table.mengen th:not(:first-child){text-align:right}
