:root{--primary: #0f4c81;--bg: #f4f6f8;--bubble-own: #0f4c81;--bubble-other: #ffffff;--border: #d9dfe4;--error: #c0392b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#1c1c1e}button{font:inherit;cursor:pointer}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.auth-card{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #00000014;display:flex;flex-direction:column;gap:14px}.auth-card h1{font-size:1.3rem;margin:0 0 4px;color:var(--primary)}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.auth-card input,.new-mandant-form input,.new-mandant-form textarea,.new-mandant-form select,.composer input[type=text]{padding:12px;border-radius:10px;border:1px solid var(--border);font-size:1rem;font-family:inherit;resize:vertical}.auth-card button[type=submit],.dashboard-actions button,.new-mandant-form button[type=submit],.composer button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:12px;font-size:1rem}.error-text{color:var(--error);font-size:.9rem;margin:0}.hint{color:#6b7280;font-size:.85rem}.link-button{background:none;border:none;color:var(--primary);font-size:.9rem}.dashboard{max-width:480px;margin:0 auto;padding:16px 16px 40px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}.header-links{display:flex;align-items:center;gap:14px;flex-shrink:0}.ad-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ad-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.ad-card p{margin:0;white-space:pre-wrap;word-break:break-word}.ad-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ad-image{max-width:100%;border-radius:10px;display:block}.ad-remaining{font-size:.8rem;color:#6b7280}.ad-call-button{background:var(--primary);color:#fff;border-radius:8px;padding:6px 12px;font-size:.85rem;text-decoration:none;font-weight:600}.dashboard-header h1{font-size:1.2rem;margin:0}.invite-banner{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:16px}.invite-banner input{width:100%;padding:10px;border-radius:8px;border:1px solid var(--border);margin:8px 0}.invite-share-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}.whatsapp-button{background:#25d366;color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:.9rem;text-decoration:none;font-weight:600}.dashboard-actions{margin-bottom:12px;display:flex;gap:10px;flex-wrap:wrap}.dashboard-actions .secondary-button{background:#fff;color:var(--primary);border:1px solid var(--primary)}.broadcast-file-label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:#4b5563}.new-mandant-form{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:12px;padding:14px;margin-bottom:16px}.password-field{position:relative}.password-field input{width:100%;padding-right:42px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.1rem;padding:6px;line-height:1}.mandant-search{width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);font-size:1rem;margin-bottom:12px}.mandant-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.staff-actions{display:flex;flex-wrap:wrap;gap:8px 12px;flex-shrink:0}.staff-row{flex-wrap:wrap;row-gap:10px}.staff-row>span{overflow-wrap:anywhere;min-width:0;flex:1 1 auto}.mandant-list a,.staff-row{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:12px;padding:14px 16px;text-decoration:none;color:#1c1c1e;border:1px solid var(--border)}.badge{background:var(--primary);color:#fff;border-radius:999px;padding:2px 9px;font-size:.8rem}.thread{display:flex;flex-direction:column;height:100dvh;max-width:600px;margin:0 auto}.thread-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border)}.thread-header a{color:var(--primary);text-decoration:none}.thread-header h1{flex:1;font-size:1.05rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;position:relative}.menu-button{background:none;border:none;font-size:1.3rem;line-height:1;padding:4px 10px;color:#1c1c1e}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:6px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 16px #0000001f;display:flex;flex-direction:column;min-width:170px;overflow:hidden;z-index:21}.dropdown-menu button{background:none;border:none;text-align:left;padding:12px 16px;font-size:.9rem;color:#1c1c1e}.dropdown-menu button:not(:last-child){border-bottom:1px solid var(--border)}.dropdown-menu button.danger{color:var(--error)}.badge-blocked{background:var(--error);color:#fff;border-radius:999px;padding:2px 9px;font-size:.7rem}.message-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.search-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:var(--bg);display:flex;flex-direction:column}.search-panel-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border);padding-top:max(12px,env(safe-area-inset-top))}.search-panel-header input{flex:1;padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:1rem}.search-results{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.message-bubble{max-width:78%;background:var(--bubble-other);border:1px solid var(--border);border-radius:14px;padding:10px 14px;align-self:flex-start;display:flex;flex-direction:column;gap:6px}.broadcast-bubble{align-self:center;max-width:90%;background:#fff8e1;border:1px solid #f0d98c;border-radius:14px;padding:10px 16px;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}.broadcast-bubble p{margin:0;white-space:pre-wrap;word-break:break-word}.broadcast-label{font-size:.75rem;font-weight:600;color:#8a6d00}.message-bubble.own{align-self:flex-end;background:var(--bubble-own);color:#fff;border:none}.message-bubble p{margin:0;white-space:pre-wrap;word-break:break-word}.push-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#eef5ff;border-bottom:1px solid var(--border);font-size:.85rem}.push-banner.active{background:#eafaf0}.push-banner.active button{background:#fff;color:#1c1c1e;border:1px solid var(--border)}.push-banner button{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:6px 12px;font-size:.85rem;white-space:nowrap}.push-banner-close{background:none!important;color:#6b7280!important;padding:4px 6px!important;font-size:1rem!important;margin-left:auto}.message-time{font-size:.7rem;opacity:.65;align-self:flex-end;display:inline-flex;align-items:center;gap:3px}.seen-ticks{letter-spacing:-2px;font-size:.75rem}.seen-ticks.seen{color:#6fd1ff;opacity:1}.file-attachment{display:flex;align-items:center;gap:8px;background:#0000000f;border:none;border-radius:10px;padding:8px 10px;text-align:left;color:inherit}.message-bubble.own .file-attachment{background:#ffffff2e}.video-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:1000;display:flex;align-items:center;justify-content:center}.video-fullscreen video{max-width:100%;max-height:100%}.video-fullscreen-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;background:#ffffff26;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:1.1rem;z-index:1001}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.file-size{font-size:.75rem;opacity:.75}.composer{display:flex;align-items:center;gap:8px;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--border)}.composer input[type=text]{flex:1}.upload-button{background:none;border:none;font-size:1.4rem;padding:6px}.voice-recording{display:flex;align-items:center;gap:8px;background:#fdeceb;border-radius:20px;padding:6px 12px;flex:1}.recording-dot{width:10px;height:10px;border-radius:50%;background:var(--error);animation:pulse-dot 1.2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.voice-cancel,.voice-send{background:none;border:none;font-size:1.1rem;padding:4px 8px;margin-left:auto}.voice-send{color:var(--primary);margin-left:4px}.voice-cancel{color:var(--error)}.voice-error{font-size:.75rem}.audio-attachment{max-width:240px;height:38px}@media (max-width: 480px){.dashboard{padding:12px}}.dashboard.wide{max-width:860px}.dashboard-header .header-links{flex-wrap:wrap;justify-content:flex-end;flex-shrink:1;gap:6px 12px}.dashboard-header .header-links a{text-decoration:none;white-space:nowrap}.thread-header .header-links{gap:10px;flex-shrink:1}.thread-header .header-links a{text-decoration:none}@media (max-width: 480px){.nur-breit{display:none}}.header-titel{display:flex;flex-direction:column;gap:4px;min-width:0}.header-titel a{color:var(--primary);text-decoration:none;font-size:.9rem}.sektion{margin-top:20px}.sektion h2,.new-mandant-form h2,.modal h2{font-size:1.05rem;margin:0 0 10px}.karte{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;display:block;width:100%;text-align:left;color:inherit;font:inherit}.karte p{margin:4px 0}.primary-button,.secondary-button{border-radius:10px;padding:10px 14px;font-size:.95rem;border:1px solid var(--primary)}.primary-button{background:var(--primary);color:#fff}.secondary-button{background:#fff;color:var(--primary)}.link-button.links{align-self:flex-start;padding:0;text-decoration:none}.link-button:disabled,button:disabled{opacity:.5;cursor:default}.danger-text{color:var(--error)!important}.badge-info{background:#e0ecf7;color:var(--primary);border-radius:999px;padding:2px 8px;font-size:.72rem;white-space:nowrap}.ordner-zeile{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #eef1f4}.ordner-zeile:last-child{border-bottom:none}.ordner-nr{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:600;min-width:46px;font-size:.9rem}.ordner-text{flex:1;min-width:0;word-break:break-word}.ordner-aktionen{display:flex;align-items:center;gap:10px;flex-shrink:0}.ordner-aktionen a{text-decoration:none}.ordner-aktionen input[type=checkbox],.checkliste input[type=checkbox],.auswahl-leiste input[type=checkbox],.checkbox-zeile input[type=checkbox]{width:18px;height:18px;padding:0;flex-shrink:0}.tabs{display:flex;gap:6px;margin-bottom:10px}.tabs button{flex:1;background:#fff;border:1px solid var(--border);border-radius:10px;padding:9px;font-size:.9rem;color:#374151}.tabs button.aktiv{background:var(--primary);border-color:var(--primary);color:#fff}.auswahl-leiste{display:flex;justify-content:space-between;align-items:center;margin:0 4px 8px;font-size:.9rem}.auswahl-leiste label{display:flex;align-items:center;gap:6px}.vorgang-kopf{display:flex;justify-content:space-between;align-items:center}.vorgang-typ{font-weight:600;font-size:.85rem}.vorgang-typ.eingang{color:#15803d}.vorgang-typ.rueckgabe{color:#b45309}.karte.vorgang.offen{border-color:#f59e0b;box-shadow:0 0 0 1px #fde68a inset}.vorgang-zeile{font-size:.9rem}.vorgang-link{display:flex;flex-direction:column;gap:2px;text-decoration:none}.code-formular{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.code-formular input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:1rem;flex:1 1 160px;min-width:0}.code-formular .code-eingabe{flex:0 0 130px;font-size:1.4rem;letter-spacing:6px;text-align:center;font-variant-numeric:tabular-nums}.code-formular button{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 14px;flex:1 1 100%}.zeile-aktionen{display:flex;gap:16px;margin-top:8px}.abholcode-karte{border-color:var(--primary)}.abholcode{font-size:2.4rem;font-weight:700;letter-spacing:10px;text-align:center;color:var(--primary);font-variant-numeric:tabular-nums;padding:8px 0}.feld{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#4b5563}.feld-titel{font-size:.85rem;color:#4b5563;margin:6px 0 0;font-weight:600}.ordner-eingabe{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px dashed var(--border);border-radius:10px}.zeitraum-eingabe{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.zeitraum-eingabe label{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:#4b5563;flex:1 1 120px;min-width:0}.zeitraum-eingabe input{width:100%}.checkliste{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;padding:6px 10px}.checkliste label{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:.92rem}.checkbox-zeile{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:8px;font-size:.88rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:#fff;width:100%;max-width:520px;max-height:92vh;overflow-y:auto;border-radius:16px 16px 0 0;padding:18px 16px 22px;display:flex;flex-direction:column;gap:12px}@media (min-width: 640px){.modal-backdrop{align-items:center}.modal{border-radius:16px}}.modal label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#4b5563}.modal input,.modal select,.modal textarea,.new-mandant-form select{padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:1rem;font-family:inherit;background:#fff;color:#1c1c1e}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}.modal-actions button[type=submit]{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:.95rem}.modal-links{display:flex;gap:14px;margin-right:auto}.scanner{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:12px}.scanner-video-wrap{position:relative;background:#111;border-radius:10px;overflow:hidden;aspect-ratio:4 / 3;max-height:340px}.scanner-video{width:100%;height:100%;object-fit:cover;display:block}.scanner-rahmen{position:absolute;top:18%;right:22%;bottom:18%;left:22%;border:3px solid rgba(255,255,255,.85);border-radius:14px;pointer-events:none}.scanner-fehler{color:#e5e7eb;padding:16px;margin:0}.scanner-eingabe{display:flex;gap:8px}.scanner-eingabe input{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:1rem}.scanner-eingabe button{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 16px}.status-pill{border-radius:999px;padding:2px 10px;font-size:.82rem;font-weight:600}.status-pill.in_kanzlei{background:#dcfce7;color:#166534}.status-pill.beim_mandanten{background:#fef3c7;color:#92400e}.kennzahlen{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.kennzahl{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0}.kennzahl-wert{font-size:1.6rem;font-weight:700;color:var(--primary)}.kalender-kopf{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.kalender-kopf strong{min-width:130px;text-align:center}.kalender-kopf .rechts{margin-left:auto}.nur-meine{display:flex;align-items:center;gap:6px;white-space:nowrap}.kalender{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.kalender-wt{text-align:center;font-size:.75rem;color:#6b7280;padding:4px 0}.kalender-tag{position:relative;background:#fff;border:1px solid var(--border);border-radius:8px;min-height:84px;padding:4px;display:flex;flex-direction:column;align-items:stretch;gap:2px;text-align:left;overflow:hidden;color:inherit}.kalender-tag.fremd{background:#f8fafc;color:#9ca3af}.kalender-tag.heute .kalender-zahl{background:var(--primary);color:#fff;border-radius:999px}.kalender-tag.gewaehlt{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.kalender-zahl{font-size:.8rem;font-weight:600;align-self:flex-start;min-width:22px;text-align:center;padding:1px 4px}.kalender-chip{font-size:.68rem;background:#e0ecf7;color:var(--primary);border-radius:4px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kalender-chip.abgesagt{text-decoration:line-through;opacity:.6}.kalender-mehr{font-size:.68rem;color:#6b7280}.kalender-punkt{display:none}@media (max-width: 600px){.kalender-tag{min-height:48px;align-items:center}.kalender-chip,.kalender-mehr{display:none}.kalender-punkt{display:block;width:6px;height:6px;border-radius:999px;background:var(--primary)}}.termin-karte{cursor:pointer}.termin-karte.abgesagt{opacity:.6}.termin-datum{font-weight:600;color:var(--primary);font-size:.9rem}.termin-text{white-space:pre-wrap;font-size:.92rem}
