:root{--bg:#f4f5f3;--surface:#fff;--border:#dbdfda;--text:#1a2220;--text-muted:#5c6660;--accent:#1e3a5f;--accent-soft:#e3ebf3;--bad:#a33b34;--bad-soft:#f8e9e7;--ok:#2f7d4f;--ok-soft:#e6f2ea;--warn:#b5650d;--warn-soft:#fbead2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px}a{color:var(--accent)}.navbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--border)}.navbar-brand a{font-weight:700;font-size:18px;text-decoration:none;color:var(--text)}.navbar-links{display:flex;gap:18px;flex:1 1}.navbar-links a{text-decoration:none;color:var(--text-muted);font-size:14px}.navbar-links a:hover{color:var(--text)}.navbar-user{display:flex;align-items:center;gap:14px;font-size:14px}.pill{font-size:11px;font-weight:600;text-transform:uppercase;background:var(--accent-soft);border-radius:100px;padding:2px 9px;margin-left:6px}.btn-link,.pill{color:var(--accent)}.btn-link{background:none;border:none;cursor:pointer;font-size:14px;padding:0}.sync-status{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:7px 28px;font-size:13px;border-bottom:1px solid var(--border)}.sync-status-text{font-weight:600}.sync-status-hinweis{color:inherit;opacity:.85}.sync-status-link{margin-left:auto;font-weight:600;white-space:nowrap}.sync-status-laeuft,.sync-status-wartet{background:var(--warn-soft);color:var(--warn)}.sync-status-offline{background:var(--accent-soft);color:var(--accent)}.sync-status-fehler{background:var(--bad-soft);color:var(--bad)}.sync-status-fehler .sync-status-link{color:var(--bad);text-decoration:underline}.page{max-width:980px;margin:0 auto;padding:32px 24px 80px}h1{font-size:26px;margin:0 0 6px}h2{font-size:19px;margin:28px 0 12px}h3{font-size:16px;margin:0 0 8px}.subtitle{color:var(--text-muted);margin:0 0 24px}.card{border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.card,table{background:var(--surface)}table{width:100%;border-collapse:collapse;border:1px solid var(--border);border-radius:10px;overflow:hidden}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}tr.klickbar{cursor:pointer}tr.klickbar:hover{background:var(--accent-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.form-grid.eng{grid-template-columns:1fr}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted)}input,select,textarea{font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}button.primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 18px;font-size:14px;cursor:pointer;font-weight:600}button.primary:hover{opacity:.92}button.primary:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:9px 18px;font-size:14px;cursor:pointer}.fehler{background:var(--bad-soft);color:var(--bad)}.erfolg,.fehler{border-radius:6px;padding:10px 14px;font-size:14px;margin-bottom:14px}.erfolg{background:var(--ok-soft);color:var(--ok)}.hinweis{padding:24px}.breadcrumb,.hinweis{color:var(--text-muted)}.breadcrumb{font-size:13px;margin-bottom:10px}.breadcrumb a{text-decoration:none}.kv-liste{display:grid;grid-template-columns:160px 1fr;grid-gap:6px 16px;gap:6px 16px;font-size:14px}.kv-liste dt{color:var(--text-muted)}.kv-liste dd{margin:0}.hauptfoto{max-width:100%;max-height:240px;border-radius:8px;display:block}.unterschrift-bild{max-width:300px;max-height:120px;border:1px solid var(--border);border-radius:8px;background:#fff;display:block}.anlagen-tabelle-thumb{width:32px;height:32px;object-fit:cover;border-radius:6px;flex-shrink:0}.foto-thumb{width:100%;height:110px;object-fit:cover;border-radius:8px;display:block}.bild-platzhalter{width:100%;min-height:120px;background:#eee;color:var(--text-muted);font-size:13px;border-radius:8px}.bild-platzhalter,.login-wrap{display:flex;align-items:center;justify-content:center}.login-wrap{min-height:100vh;background:var(--bg)}.login-card{width:360px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.tabelle-scroll{overflow-x:auto}@media (max-width:720px){.form-grid,.grid-2,.kv-liste{grid-template-columns:1fr}.kv-liste{gap:2px 0}.kv-liste dt{margin-top:8px}.navbar{flex-wrap:wrap;gap:8px;padding:12px 16px}.navbar-links{order:3;flex:1 1 100%;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.navbar-links a{white-space:nowrap}.navbar-user{font-size:13px;gap:10px}.sync-status{padding:6px 16px;font-size:12px}.sync-status-link{margin-left:0;flex-basis:100%}table:not(.anlagen-tabelle){display:block;overflow-x:auto;white-space:nowrap}.anlagen-tabelle thead{display:none}.anlagen-tabelle,.anlagen-tabelle tbody,.anlagen-tabelle td,.anlagen-tabelle tr{display:block;width:100%}.anlagen-tabelle tr{border-bottom:1px solid var(--border);padding:10px 14px}.anlagen-tabelle tr:last-child{border-bottom:none}.anlagen-tabelle td{border-bottom:none;padding:4px 0;display:flex;justify-content:space-between;gap:12px;text-align:right}.anlagen-tabelle td:before{content:attr(data-label);color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;text-align:left}}.status-badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:100px}.status-badge.io{background:var(--ok-soft);color:var(--ok)}.status-badge.nio{background:var(--bad-soft);color:var(--bad)}.status-badge.offen{background:var(--warn-soft);color:var(--warn)}.vorjahresmangel-hinweis{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:10px 14px;font-size:13px}.vorjahresmangel-hinweis>div+div{margin-top:8px}.vorjahresmangel-hinweis--uebernommen{border-width:2px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}button.stat-tile{font-family:inherit;text-align:left;cursor:pointer;width:100%}.stat-tile--klickbar:hover{border-color:var(--accent)}.stat-tile--aktiv{outline:2px solid var(--accent);outline-offset:-1px}.stat-tile--warnung{border-color:var(--warn);background:var(--warn-soft)}.stat-tile--mangel{border-color:var(--bad);background:var(--bad-soft)}.stat-tile--kritisch{border-color:var(--bad);background:var(--bad)}.stat-tile--kritisch .stat-label,.stat-tile--kritisch .stat-zahl{color:#fff}.stat-zahl{font-size:32px;font-weight:700;line-height:1}.stat-label{margin-top:6px;font-size:13px;color:var(--text-muted)}.kontrolle-bereich{background:var(--accent-soft);border:2px solid var(--accent);border-radius:12px;padding:20px;margin-bottom:28px}.kontrolle-zeile{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;cursor:pointer}.kontrolle-zeile:hover{border-color:var(--accent)}.status-karte{border-radius:10px;padding:10px 16px;margin-bottom:14px;border:1px solid var(--border)}.status-karte-titel{font-size:15px;font-weight:700}.status-karte-text{font-size:13px;color:var(--text-muted)}.status-karte-wer-dran{margin-top:2px;font-size:13px;font-weight:600}.status-karte--bearbeitung{background:var(--accent-soft);border-color:var(--accent)}.status-karte--abgeschlossen{background:var(--bad-soft);border-color:var(--bad)}.status-karte--kontrolle{background:var(--accent-soft);border-color:var(--accent)}.status-karte--freigegeben{background:var(--ok-soft);border-color:var(--ok)}.lightbox-hintergrund{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;cursor:zoom-out}.lightbox-bild{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;cursor:default}.lightbox-schliessen{position:fixed;top:16px;right:20px;background:hsla(0,0%,100%,.15);color:#fff;border:none;border-radius:100px;width:40px;height:40px;font-size:22px;line-height:1;cursor:pointer;z-index:1001}.lightbox-schliessen:hover{background:hsla(0,0%,100%,.3)}.pruefpunkt-offen{border:2px solid var(--warn);background:var(--warn-soft)}.pruefpunkt-offen-banner{display:flex;align-items:center;gap:8px;background:var(--warn);color:#fff;font-weight:700;font-size:14px;padding:10px 14px;border-radius:6px;margin:-14px -16px 12px}.pruefpunkt-karte{padding:14px 16px;margin-bottom:10px}.pruefpunkte-liste{margin-bottom:20px}.pruefpunkte-kopf{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:24px 0 8px}.pruefpunkte-kopf h2{margin:0}.pruefpunkte-fortschritt{font-size:13px;color:var(--text-muted);font-weight:600;white-space:nowrap}.pruefpunkte-balken{background:var(--border);border-radius:100px;height:4px;overflow:hidden;margin-bottom:16px}.pruefpunkte-balken-fuellung{background:var(--accent);height:100%}.wartung-kopf-wrap{margin-bottom:12px}.wartung-kopf{display:flex;align-items:flex-start;gap:12px}.wartung-kopf-foto{width:52px;height:52px;object-fit:cover;border-radius:8px;flex-shrink:0;display:block}.wartung-kopf-foto--leer{display:flex;align-items:center;justify-content:center;background:#eee;color:var(--text-muted);font-size:10px}.wartung-kopf-info{flex:1 1 auto;min-width:0}.wartung-kopf-eyebrow{font-size:12px;color:var(--text-muted)}.wartung-kopf-eyebrow .pill{margin-left:6px}.wartung-kopf-titel{font-size:19px;font-weight:700;line-height:1.25;margin:1px 0}.wartung-kopf-sub{font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere}.wartung-kopf-aktion{margin-top:8px}.abschnitte-liste{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;overflow:hidden}.abschnitt-kompakt{border-bottom:1px solid var(--border);padding:0 14px}.abschnitt-kompakt:last-child{border-bottom:none}.abschnitt-kompakt>summary{display:flex;align-items:center;gap:10px;padding:12px 0;cursor:pointer;list-style:none;font-weight:600;font-size:14.5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.abschnitt-kompakt>summary::-webkit-details-marker{display:none}.abschnitt-kompakt-titel{display:flex;align-items:center;gap:6px;flex-shrink:0}.abschnitt-kompakt-vorschau{color:var(--text-muted);font-weight:400;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;text-align:right;min-width:0}.abschnitt-kompakt-chevron{font-size:18px;color:var(--text-muted);flex-shrink:0;transform:rotate(0deg);transition:transform .15s}.abschnitt-kompakt[open]>summary .abschnitt-kompakt-chevron{transform:rotate(90deg)}.abschnitt-kompakt-inhalt{padding:0 0 14px}.abschnitt-kompakt-inhalt .card{margin-bottom:0}.aktion-leiste{position:-webkit-sticky;position:sticky;bottom:0;z-index:10;box-shadow:0 -4px 12px rgba(0,0,0,.1)}.foto-auswahl-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 16px;font-size:14px;color:var(--text);font-weight:600}.foto-auswahl-btn:hover{border-color:var(--accent);color:var(--accent)}.qr-scan-button{display:inline-flex;align-items:center}.qr-scanner-box{width:100%;max-width:420px}.qr-scanner-video{width:100%;border-radius:8px;background:#000}.status-badge.kontrolle{background:var(--accent-soft);color:var(--accent)}.status-badge.neutral{background:var(--bg);color:var(--text-muted)}.buero-suche{display:flex;gap:10px;margin-bottom:24px}.buero-suche input{flex:1 1;font-size:15px;padding:10px 12px}.zaehler-leiste{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.zaehler{display:inline-flex;align-items:baseline;gap:5px;font-size:13px;padding:3px 10px;border-radius:100px;white-space:nowrap}.zaehler strong{font-size:15px}.zaehler--offen{background:var(--warn-soft);color:var(--warn)}.zaehler--kontrolle{background:var(--accent-soft);color:var(--accent)}.zaehler--frei{background:var(--ok-soft);color:var(--ok)}.kunde-gruppe{margin-bottom:26px}.kunde-gruppe-kopf{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 8px}.kunde-gruppe-kopf h2{margin:0;font-size:17px}.liste-gestapelt{display:flex;flex-direction:column;gap:8px}.zeile-titel{font-weight:600}.zeile-sub{font-size:13px;color:var(--text-muted);margin-top:2px}.tuer-karte{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(170px,1.4fr) auto;grid-gap:6px 18px;gap:6px 18px;align-items:center;background:var(--surface);border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:4px;border-radius:8px;padding:12px 16px}.tuer-karte--offen{border-left-color:var(--warn)}.tuer-karte--kontrolle{border-left-color:var(--accent)}.tuer-karte--frei{border-left-color:var(--ok)}.tuer-karte-tuer{font-size:16px;font-weight:700}.tuer-karte-meta{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 10px;gap:2px 10px;font-size:13px}.tuer-karte-meta dt{color:var(--text-muted)}.tuer-karte-meta dd{margin:0}.tuer-karte-aktion{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.tuer-karte-maengel{grid-column:1/-1;font-size:13px;color:var(--bad)}.tuer-karte-maengel--keine{color:var(--text-muted)}@media (max-width:680px){.tuer-karte{grid-template-columns:1fr}.tuer-karte-aktion{align-items:flex-start}}.freigabe-leiste{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px}.freigabe-leiste-hinweis{font-size:13px;color:var(--warn);font-weight:600}.mangel-zeile{display:grid;grid-template-columns:1fr auto;grid-gap:4px 16px;gap:4px 16px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;cursor:pointer}.mangel-zeile:hover{border-color:var(--accent)}.mangel-zeile-text{font-size:15px;font-weight:600;line-height:1.4;white-space:pre-wrap}.mangel-zeile-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;color:var(--text-muted)}.mangel-text-gross{font-size:19px;font-weight:600;line-height:1.45;white-space:pre-wrap;margin:0 0 12px}.foto-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px}.foto-raster .foto-thumb{width:100%;height:160px;object-fit:cover}.filter-details>summary{cursor:pointer;font-size:14px;color:var(--accent);font-weight:600}.jahr-leiste{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}.jahr-tab{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}.jahr-tab--aktiv,.jahr-tab:hover{border-color:var(--accent)}.jahr-tab--aktiv{background:var(--accent);color:#fff}.jahr-tab-offen{font-size:12px;font-weight:600;padding:1px 7px;border-radius:100px;background:var(--warn-soft);color:var(--warn)}