:root{color-scheme:light;--bg: #f6f7f9;--bg-raised: #ffffff;--bg-sunken: #eceef1;--bg-hover: #f0f2f5;--bg-active: #e4e8ee;--border: #d8dce3;--border-strong: #b9c0cb;--text: #1a1d23;--text-muted: #5d6470;--text-faint: #868d99;--text-inverse: #ffffff;--accent: #1f5fa9;--accent-hover: #194e8c;--accent-soft: #e7f0fa;--accent-text: #1a4f8f;--success: #1a7f4b;--success-soft: #e3f4ea;--warning: #9a6400;--warning-soft: #fdf1dc;--danger: #b3261e;--danger-soft: #fbe9e8;--shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 1px 3px rgb(16 24 40 / 10%);--shadow-lg: 0 8px 24px rgb(16 24 40 / 12%), 0 2px 6px rgb(16 24 40 / 8%);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Cascadia Mono", "Consolas", "SF Mono", monospace;--radius: 6px;--radius-sm: 4px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #16181d;--bg-raised: #1e2127;--bg-sunken: #121419;--bg-hover: #262a32;--bg-active: #2f343e;--border: #333842;--border-strong: #4a515e;--text: #e6e8ec;--text-muted: #a0a7b4;--text-faint: #767d8a;--accent: #4a91e2;--accent-hover: #6aa6ea;--accent-soft: #1c2b3d;--accent-text: #85b6ee;--success: #4cb87c;--success-soft: #16291f;--warning: #d69b30;--warning-soft: #2b2317;--danger: #e5776f;--danger-soft: #2e1b1a;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 1px 3px rgb(0 0 0 / 40%);--shadow-lg: 0 8px 24px rgb(0 0 0 / 45%), 0 2px 6px rgb(0 0 0 / 35%)}}:root[data-theme=dark]{color-scheme:dark;--bg: #16181d;--bg-raised: #1e2127;--bg-sunken: #121419;--bg-hover: #262a32;--bg-active: #2f343e;--border: #333842;--border-strong: #4a515e;--text: #e6e8ec;--text-muted: #a0a7b4;--text-faint: #767d8a;--accent: #4a91e2;--accent-hover: #6aa6ea;--accent-soft: #1c2b3d;--accent-text: #85b6ee;--success: #4cb87c;--success-soft: #16291f;--warning: #d69b30;--warning-soft: #2b2317;--danger: #e5776f;--danger-soft: #2e1b1a;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 1px 3px rgb(0 0 0 / 40%);--shadow-lg: 0 8px 24px rgb(0 0 0 / 45%), 0 2px 6px rgb(0 0 0 / 35%)}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--accent);color:var(--text-inverse);font-size:12px;font-weight:700;flex-shrink:0}.badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:20px;font-size:11.5px;font-weight:500;white-space:nowrap;background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border)}.badge-success{background:var(--success-soft);color:var(--success);border-color:transparent}.badge-warning{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge-accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}:root{--muted: var(--text-muted)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{max-width:720px;margin:0 auto;min-height:100dvh}h1,h2,h3{margin:0 0 8px;font-weight:600;letter-spacing:-.01em}h1{font-size:18px}h2{font-size:16px}h3{font-size:14.5px}a{color:var(--accent-text);text-decoration:none}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--bg-raised);border-bottom:1px solid var(--border)}.topbar h1{flex:1;display:flex;align-items:center;gap:10px;font-size:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .back{background:none;border:none;color:var(--text-muted);font-size:24px;line-height:1;padding:4px 10px 6px 2px;cursor:pointer}.topbar .who{font-size:13px;color:var(--text-muted)}.screen{padding:14px 12px calc(24px + env(safe-area-inset-bottom))}label{display:block;margin:12px 0 4px;font-size:13px;font-weight:500;color:var(--text-muted)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);font:inherit;font-size:16px;background:var(--bg-raised);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}textarea{min-height:120px;resize:vertical}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14.5px;font-weight:500;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text);border-radius:var(--radius);padding:10px 16px;cursor:pointer}button:hover:not(:disabled){background:var(--bg-hover)}button:active:not(:disabled){background:var(--bg-active)}button:disabled{opacity:.55;cursor:default}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--text-inverse);font-weight:600;width:100%;padding:13px;margin-top:16px}button.primary:hover:not(:disabled),button.primary:active:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.linkish{background:none;border:none;color:var(--accent-text);padding:8px 10px 8px 0}button.linkish:hover:not(:disabled){background:none;text-decoration:underline}.form-error{color:var(--danger);margin-top:10px;font-size:13.5px}.notice{color:var(--success);margin-top:10px;font-size:13.5px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:16px;background:var(--bg-sunken)}.login-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:28px;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.login-card h1{display:flex;align-items:center;gap:10px;font-size:20px}.login-card .sub{color:var(--text-muted);margin:0 0 8px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.kpi{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:12px 8px;text-align:center;box-shadow:var(--shadow)}.kpi .num{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.kpi .num.alert{color:var(--danger)}.kpi .cap{color:var(--text-muted);font-size:12px;margin-top:2px}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tile{border:1px solid var(--border);border-radius:10px;background:var(--bg-raised);color:var(--text);padding:16px 14px;text-align:left;min-height:96px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;box-shadow:var(--shadow)}.tile:hover:not(:disabled){background:var(--bg-hover)}.tile .t-title{font-size:15px;font-weight:600}.tile .t-sub{font-size:12.5px;color:var(--text-muted)}.tile-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;color:var(--text-inverse)}.tile-mark.m-kunden{background:var(--accent)}.tile-mark.m-besuch{background:var(--success)}.tile-mark.m-vorgaenge{background:var(--warning)}.tile-mark.m-aufgaben{background:var(--accent-soft);color:var(--accent-text)}.tile-mark.m-verwaltung{background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border)}.home-footer{margin-top:28px;text-align:center;color:var(--text-muted);font-size:13.5px}.home-footer button{margin:0 4px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow)}.rowlist{display:flex;flex-direction:column;gap:10px}.rowitem{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow)}.rowitem:hover{background:var(--bg-hover)}.rowitem .r-title{font-weight:600}.rowitem .r-sub{color:var(--text-muted);font-size:12.5px;margin-top:2px}.badge{font-size:12px}.badge.ok{background:var(--success-soft);color:var(--success);border-color:transparent}.badge.warn{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.off{background:var(--bg-sunken);color:var(--text-muted)}.overdue{color:var(--danger);font-weight:600}.segmented{display:flex;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius);padding:3px;margin-bottom:14px}.segmented button{flex:1;border:none;background:none;border-radius:var(--radius-sm);padding:8px 4px;color:var(--text-muted);font-weight:500;font-size:14px}.segmented button.active{background:var(--bg-raised);color:var(--text);box-shadow:var(--shadow);font-weight:600}.task{display:flex;gap:12px;align-items:flex-start}.task .check{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--border-strong);background:none;padding:0;font-size:15px;line-height:1}.task .check.done{border-color:var(--success);background:var(--success);color:var(--text-inverse)}.task .body{flex:1}.items-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13.5px}.items-table th,.items-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:top}.items-table th{color:var(--text-faint);font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.item-row{display:grid;grid-template-columns:1fr 90px 40px;gap:8px;margin-bottom:8px;align-items:center}.item-row button{padding:10px 0;color:var(--danger);border:none;background:none;font-size:16px}.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.thumbs img{width:96px;height:96px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border)}.thumbs a.file{display:flex;align-items:center;justify-content:center;width:96px;height:96px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);text-align:center;font-size:11.5px;padding:6px;word-break:break-word;color:var(--text)}.fab-space{height:70px}.fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));background:var(--accent);color:var(--text-inverse);border:none;border-radius:999px;padding:14px 20px;font-weight:600;box-shadow:var(--shadow-lg)}.fab:hover:not(:disabled),.fab:active:not(:disabled){background:var(--accent-hover)}.contact-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.contact-actions a{flex:1;min-width:90px;text-align:center;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);padding:10px 6px;font-weight:500;font-size:14px;color:var(--accent-text)}.contact-actions a:hover{background:var(--bg-hover);text-decoration:none}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.quick-actions button{padding:12px 6px;font-weight:500}.picker{position:relative}.picker .options{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);margin-top:4px;max-height:260px;overflow-y:auto;box-shadow:var(--shadow-lg)}.picker .options button{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);border-radius:0;background:none;font-weight:400}.picker .options button:last-child{border-bottom:none}.picker .options button:hover{background:var(--bg-hover)}.picker .options .opt-sub{color:var(--text-muted);font-size:12.5px}.picker .options button.newcustomer strong{color:var(--accent-text)}.picker .chosen{display:flex;align-items:center;justify-content:space-between;background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius);padding:10px 12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.dialog{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:20px;width:100%;max-width:380px;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-lg)}.dialog .row{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.table-scroll{overflow-x:auto}.users-table{width:100%;border-collapse:collapse;font-size:13.5px}.users-table th,.users-table td{text-align:left;padding:8px;border-bottom:1px solid var(--border);white-space:nowrap}.users-table th{color:var(--text-faint);font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:var(--bg-sunken)}.users-table tbody tr:hover{background:var(--bg-hover)}.preview-empty{color:var(--text-muted);text-align:center;padding:40px 16px}.login-card .link-button{width:auto;margin:10px auto 0;padding:2px 4px;display:block;background:none;border:0;color:var(--muted, #6b7280);font-size:12.5px;cursor:pointer}.login-card .link-button:hover{text-decoration:underline}
