:root{--bg: #f5f5f3;--card: #ffffff;--text: #1b1b1a;--text-2: #6b6b68;--line: #e4e4e1;--accent: #2b2b2b;--accent-strong: #111111;--accent-ink: #1b1b1a;--accent-soft: #ececea;--action: var(--accent);--action-contrast: #ffffff;--error-bg: #fdf1ef;--prio-gering: #3d8c40;--prio-erheblich: #c98a00;--prio-sicherheitsrelevant: #c0392b;--radius: 12px;--radius-s: 9px;--shadow-1: 0 1px 2px rgba(24, 30, 31, .05), 0 2px 8px rgba(24, 30, 31, .04);--shadow-2: 0 14px 40px rgba(24, 30, 31, .16);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #151617;--card: #1f2021;--text: #ececea;--text-2: #a0a09d;--line: #333432;--accent: #e6e6e4;--accent-strong: #ffffff;--accent-ink: #ececea;--accent-soft: #2a2a29;--action-contrast: #1c1c1c;--error-bg: #2b1d1a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .22);--shadow-2: 0 14px 40px rgba(0, 0, 0, .5)}}:root[data-theme=dark]{--bg: #151617;--card: #1f2021;--text: #ececea;--text-2: #a0a09d;--line: #333432;--accent: #e6e6e4;--accent-strong: #ffffff;--accent-ink: #ececea;--accent-soft: #2a2a29;--action-contrast: #1c1c1c;--error-bg: #2b1d1a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .22);--shadow-2: 0 14px 40px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100dvh}html:has(.app-shell),body:has(.app-shell){height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.scroll-bereich{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;touch-action:manipulation}.app-header{position:sticky;top:0;flex:0 0 auto;z-index:10;display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--line)}@supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)){.app-header{background:color-mix(in srgb,var(--card) 72%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border-bottom-color:color-mix(in srgb,var(--line) 75%,transparent)}}.app-header h1{font-size:17px;font-weight:700;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-link{display:inline-flex;align-items:center;letter-spacing:-.01em}.brand-word{display:inline-flex;align-items:center;gap:3px}.brand-sep{display:inline-flex;flex-direction:column;gap:.09em;margin:0 .06em}.brand-sep i{width:.24em;height:.24em;border-radius:.09em}.brand-sep i:nth-child(1){background:var(--prio-gering)}.brand-sep i:nth-child(2){background:var(--prio-erheblich)}.brand-sep i:nth-child(3){background:var(--prio-sicherheitsrelevant)}.back-btn{min-width:44px;min-height:40px;margin-left:-8px;border:none;background:transparent;color:var(--text);font-size:30px;line-height:1;padding:0 8px 4px;border-radius:var(--radius);transition:opacity .15s ease}.back-btn.hidden{opacity:0;pointer-events:none}.icon-btn{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:18px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0 0 6px}.icon-btn.save{border-color:var(--accent);background:var(--accent);color:var(--action-contrast);font-size:21px;padding-bottom:4px}.icon-btn.save:not(:disabled):hover{background:var(--accent-strong);border-color:var(--accent-strong)}.icon-btn.save:not(:disabled):active{transform:scale(.94)}button.nav-card{width:100%;text-align:left}.app-header a{color:inherit;text-decoration:none}main.page{max-width:720px;margin:0 auto;padding:16px;padding-bottom:calc(90px + env(safe-area-inset-bottom))}@media(min-width:1100px){main.page{max-width:880px;padding-top:24px}}.page-title{font-size:23px;font-weight:700;letter-spacing:-.015em;margin:8px 0 16px}.section-label{font-size:12.5px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.07em;margin:22px 0 8px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow-1);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}a.card{display:block;color:inherit;text-decoration:none}@media(hover:hover)and (pointer:fine){a.card:hover{border-color:color-mix(in srgb,var(--text) 22%,var(--line));box-shadow:0 6px 20px #181e1f1a;transform:translateY(-1px)}}.card .meta{color:var(--text-2);font-size:13.5px}.tile-grid{display:grid;grid-template-columns:1fr;gap:10px}.tile-grid .card{margin-bottom:0}@media(min-width:700px){.tile-grid{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.tile-grid{grid-template-columns:1fr 1fr 1fr}}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:12px 14px}.stat .num{font-size:26px;font-weight:750;letter-spacing:-.02em;line-height:1.15}.stat .lbl{font-size:12.5px;color:var(--text-2);margin-top:2px}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.nav-card{display:flex;align-items:center;gap:13px}.nav-icon{width:42px;height:42px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--text);display:grid;place-items:center}.nav-icon svg{width:22px;height:22px;display:block}.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;line-height:1;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--text-2);vertical-align:1px}.pill.in_arbeit{background:color-mix(in srgb,var(--prio-erheblich) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-erheblich) 32%,var(--card));color:color-mix(in srgb,var(--prio-erheblich) 72%,var(--text))}.pill.abgeschlossen{background:color-mix(in srgb,var(--prio-gering) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-gering) 32%,var(--card));color:color-mix(in srgb,var(--prio-gering) 72%,var(--text))}.kachel-stand{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}.pill.prio-niedrig{background:color-mix(in srgb,var(--prio-gering) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-gering) 32%,var(--card));color:color-mix(in srgb,var(--prio-gering) 72%,var(--text))}.pill.prio-mittel{background:color-mix(in srgb,var(--prio-erheblich) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-erheblich) 32%,var(--card));color:color-mix(in srgb,var(--prio-erheblich) 72%,var(--text))}.pill.prio-hoch{background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 32%,var(--card));color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 72%,var(--text))}.pill.erledigt_vorschlag{background:color-mix(in srgb,var(--prio-erheblich) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-erheblich) 32%,var(--card));color:color-mix(in srgb,var(--prio-erheblich) 72%,var(--text))}.pill.fehler{background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 12%,var(--card));border-color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 32%,var(--card));color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 72%,var(--text))}.prio-edge{border-left:5px solid var(--line);padding-left:13px}.prio-edge.gering{border-left-color:var(--prio-gering)}.prio-edge.erheblich{border-left-color:var(--prio-erheblich)}.prio-edge.sicherheitsrelevant{border-left-color:var(--prio-sicherheitsrelevant)}.prio-text.gering{color:var(--prio-gering)}.prio-text.erheblich{color:var(--prio-erheblich)}.prio-text.sicherheitsrelevant{color:var(--prio-sicherheitsrelevant)}.prio-edge.prio2{border-left-color:var(--prio-erheblich)}.prio-edge.prio1{border-left-color:var(--prio-sicherheitsrelevant)}.prio-text.prio2{color:var(--prio-erheblich)}.prio-text.prio1{color:var(--prio-sicherheitsrelevant)}.prio-edge.niedrig{border-left-color:var(--prio-gering)}.prio-edge.mittel{border-left-color:var(--prio-erheblich)}.prio-edge.hoch{border-left-color:var(--prio-sicherheitsrelevant)}.prio-text.niedrig{color:var(--prio-gering)}.prio-text.mittel{color:var(--prio-erheblich)}.prio-text.hoch{color:var(--prio-sicherheitsrelevant)}.prio-label{font-size:13px;font-weight:700}.field{display:block;margin-bottom:18px}label.field>span{display:block;font-size:13.5px;font-weight:600;color:var(--text-2);margin-bottom:6px}input[type=text],input[type=email],input[type=password],input[type=date],input[type=search],input[type=number],input[type=tel],input[type=url],textarea,select{width:100%;font:inherit;font-size:max(16px,1em);color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);padding:13px 14px;min-height:50px;transition:border-color .15s ease,box-shadow .15s ease}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]){font-size:max(16px,1em)}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}textarea{min-height:110px;resize:vertical}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono)}button{font:inherit;cursor:pointer;touch-action:manipulation}a.btn,a.sync-chip{text-decoration:none;touch-action:manipulation}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:12px 18px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--action-contrast);font-weight:650;font-size:16px;transition:background .15s ease,border-color .15s ease,transform .1s ease}.btn:not(:disabled):hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn:not(:disabled):active{transform:scale(.985)}.btn.secondary{background:var(--card);color:var(--text);border-color:var(--line)}.btn.secondary:not(:disabled):hover{background:var(--card);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent-ink)}.btn:disabled{opacity:.5;cursor:default}.btn.mehr-touren{min-height:46px;font-size:15px;margin-top:2px}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.btn-row .btn{width:auto;flex:1 1 150px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.segmented button{min-height:56px;min-width:0;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;border:1.5px solid var(--line);border-radius:var(--radius-s);background:var(--card);color:var(--text-2);font-weight:600;font-size:14px;padding:6px;transition:border-color .15s ease,background .15s ease,color .15s ease}.segmented button.active{color:var(--text);border-color:var(--accent);background:var(--bg)}.segmented button.active.gering{border-color:var(--prio-gering);color:var(--prio-gering);background:color-mix(in srgb,var(--prio-gering) 9%,var(--card))}.segmented button.active.erheblich{border-color:var(--prio-erheblich);color:var(--prio-erheblich);background:color-mix(in srgb,var(--prio-erheblich) 9%,var(--card))}.segmented button.active.sicherheitsrelevant{border-color:var(--prio-sicherheitsrelevant);color:var(--prio-sicherheitsrelevant);background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 9%,var(--card))}.segmented button.active.prio2{border-color:var(--prio-erheblich);color:var(--prio-erheblich);background:color-mix(in srgb,var(--prio-erheblich) 9%,var(--card))}.segmented button.active.prio1{border-color:var(--prio-sicherheitsrelevant);color:var(--prio-sicherheitsrelevant);background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 9%,var(--card))}.segmented button.active.niedrig{border-color:var(--prio-gering);color:var(--prio-gering);background:color-mix(in srgb,var(--prio-gering) 9%,var(--card))}.segmented button.active.mittel{border-color:var(--prio-erheblich);color:var(--prio-erheblich);background:color-mix(in srgb,var(--prio-erheblich) 9%,var(--card))}.segmented button.active.hoch{border-color:var(--prio-sicherheitsrelevant);color:var(--prio-sicherheitsrelevant);background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 9%,var(--card))}.segmented.cols6{grid-template-columns:repeat(6,1fr)}@media(max-width:540px){.segmented.cols6{grid-template-columns:repeat(3,1fr)}}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photo-grid .thumb{position:relative;aspect-ratio:4/3;border-radius:var(--radius-s);overflow:hidden;border:1px solid var(--line);background:var(--bg)}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.photo-grid .thumb button{position:absolute;width:30px;height:30px;border-radius:50%;border:none;background:#1c1c1cbf;color:#fff;font-size:16px;line-height:1}.photo-grid .thumb .thumb-remove{top:6px;right:6px}.photo-grid .thumb .thumb-download{bottom:6px;left:6px;font-size:17px}.photo-add{aspect-ratio:4/3;border:1.5px dashed var(--text-2);border-radius:var(--radius-s);background:transparent;color:var(--text-2);font-size:15px;font-weight:600}.sync-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 11px;white-space:nowrap}.sync-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--text-2)}.sync-chip.synced .dot{background:var(--prio-gering)}.sync-chip.pending .dot{background:var(--prio-erheblich)}.sync-chip.error .dot{background:var(--prio-sicherheitsrelevant)}.sync-chip.synced{background:color-mix(in srgb,var(--prio-gering) 9%,var(--card));border-color:color-mix(in srgb,var(--prio-gering) 28%,var(--card));color:color-mix(in srgb,var(--prio-gering) 65%,var(--text))}.sync-chip.pending{background:color-mix(in srgb,var(--prio-erheblich) 10%,var(--card));border-color:color-mix(in srgb,var(--prio-erheblich) 30%,var(--card));color:color-mix(in srgb,var(--prio-erheblich) 65%,var(--text))}.sync-chip.error{background:color-mix(in srgb,var(--prio-sicherheitsrelevant) 10%,var(--card));border-color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 30%,var(--card));color:color-mix(in srgb,var(--prio-sicherheitsrelevant) 68%,var(--text))}.pick-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:15px;font-weight:600;transition:background .15s ease,border-color .15s ease,color .15s ease}.pick-chip.on{background:var(--accent);border-color:var(--accent);color:var(--action-contrast)}.error-banner{background:var(--error-bg);border:1px solid var(--prio-sicherheitsrelevant);color:var(--prio-sicherheitsrelevant);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;font-size:14.5px}.empty{color:var(--text-2);text-align:center;padding:32px 16px;border:1.5px dashed var(--line);border-radius:var(--radius);margin-bottom:10px}.fab-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none}.fab-bar>div{pointer-events:auto;width:100%;max-width:688px;display:flex;gap:10px}.fab-bar .btn{min-height:54px;border-radius:999px;box-shadow:0 10px 28px #0f121247}.annot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;flex-direction:column;background:#121414}.annot-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));flex:0 0 auto}.annot-toolbar.bottom{padding-bottom:calc(10px + env(safe-area-inset-bottom))}.annot-toolbar button{min-height:44px;padding:8px 14px;border-radius:var(--radius-s);border:1px solid #4a4a48;background:#2b2b2b;color:#ececea;font-weight:600;font-size:14px}.annot-toolbar button.active{border-color:#ececea;background:#3a3a38}.annot-toolbar button.primary{background:#ececea;color:#1c1c1c;border-color:#ececea}.annot-toolbar button:disabled{opacity:.4}.annot-toolbar .annot-spacer{flex:1}.annot-farben{display:flex;align-items:center;gap:8px}.annot-color{width:40px;min-width:40px;height:44px;padding:0!important}.annot-color.active{outline:3px solid #ececea;outline-offset:2px}.annot-canvas-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:8px;overflow:hidden}@media(max-width:480px){.annot-toolbar{gap:6px;padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top))}.annot-toolbar button{padding:8px 10px;font-size:13.5px}.annot-farben{gap:6px}.annot-color{width:36px;min-width:36px}}.annot-canvas-wrap canvas{max-width:100%;max-height:100%;touch-action:none;transform-origin:center center;border-radius:6px;background:#fff}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(900px 480px at 50% -10%,color-mix(in srgb,var(--text) 6%,transparent),transparent 65%),var(--bg)}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 26px 26px;box-shadow:var(--shadow-2)}.login-card .brand{text-align:center;margin-bottom:22px}.login-card .brand svg{display:block;margin:0 auto 12px;border-radius:13px}.login-card .brand strong{font-size:26px;letter-spacing:-.015em}.login-card .brand p{color:var(--text-2);margin:6px 0 0;font-size:14px}.pdf-frame{width:100%;height:70dvh;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}@media(max-width:480px){.app-header{gap:8px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top))}.app-header h1{font-size:16px}.sync-chip{font-size:11.5px;padding:5px 9px}main.page{padding:12px;padding-bottom:calc(90px + env(safe-area-inset-bottom))}.page-title{font-size:20px;margin:4px 0 14px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.fab-bar{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}}.pin-input{text-align:center;letter-spacing:.45em;font-size:22px;font-variant-numeric:tabular-nums}.login-card .meta{color:var(--text-2);font-size:13.5px}.punkte-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#12141480}.punkte-blatt{width:100%;max-width:640px;max-height:86vh;overflow-y:auto;background:var(--bg);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.punkte-kopf{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.punkte-kopf h2{margin:0;font-size:18px}.punkte-kopf .btn{width:auto;min-height:40px;padding:8px 14px;font-size:14px}.punkte-inhalt{margin:8px 0;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.blatt-zeile{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.blatt-name{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:0;padding:6px 0;color:var(--text);font:inherit;cursor:pointer}.blatt-zeile .btn{width:auto;min-height:40px;padding:8px 12px;font-size:14px;flex:0 0 auto}.blatt-hinweis{display:block;font-size:12.5px;color:var(--text-2);margin-top:4px;overflow-wrap:anywhere}.blatt-label{display:block;font-size:13.5px;font-weight:600;color:var(--text-2);margin-bottom:6px}.blatt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;align-items:flex-end;justify-content:center;background:#12141480;padding-top:calc(64px + env(safe-area-inset-top))}.blatt-blatt{width:100%;max-width:640px;max-height:100%;overflow-y:auto;background:var(--bg);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.blatt-gruppe{margin-top:14px}.blatt-gruppe h3{margin:0 0 8px;font-size:14px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.segmented.blatt-wahl{flex-wrap:wrap}.segmented.blatt-wahl button{flex:1 1 40%}
