@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap";.kpi-bi-layout{display:flex;flex-direction:column;gap:16px}.kpi-bi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi-bi-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.kpi-bi-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.kpi-bi-card-value{font-size:22px;font-weight:700;color:var(--text-strong);line-height:1.2}.kpi-bi-exec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kpi-bi-exec-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px;display:flex;flex-direction:column;gap:6px}.kpi-bi-exec-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.kpi-bi-exec-value{font-size:28px;font-weight:700;color:var(--text-strong);line-height:1.2}.kpi-bi-exec-sub{font-size:12px;color:var(--text-muted)}.kpi-bi-content{display:flex;gap:16px;min-height:0}.kpi-bi-main{flex:1;min-width:0;overflow-x:auto}.kpi-bi-side{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.kpi-bi-section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px}.kpi-bi-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.kpi-bi-table{width:100%;border-collapse:collapse;font-size:13px}.kpi-bi-table th{background:var(--bg);color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.kpi-bi-table th:hover{color:var(--text)}.kpi-bi-table th .kpi-sort-icon{margin-left:4px;opacity:.5;font-size:10px}.kpi-bi-table th.sorted .kpi-sort-icon{opacity:1;color:var(--primary)}.kpi-bi-table td{padding:10px 12px;color:var(--text);border-bottom:1px solid var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.kpi-bi-table tbody tr:hover{background:var(--border)}.kpi-bi-table tbody tr:nth-child(2n){background:var(--surface-2)}.kpi-bi-table tbody tr:nth-child(2n):hover{background:var(--border)}.kpi-bi-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-size:12px;color:var(--text-muted);background:var(--bg);border-top:1px solid var(--border)}.kpi-bi-pagination-info{font-variant-numeric:tabular-nums}.kpi-bi-pagination-btns{display:flex;gap:4px}.kpi-bi-pagination-btns button{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:12px}.kpi-bi-pagination-btns button:hover:not(:disabled){background:var(--border);color:var(--text)}.kpi-bi-pagination-btns button:disabled{opacity:.3;cursor:default}.kpi-bi-filters,.kpi-bi-filter{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.kpi-bi-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.kpi-bi-filter-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600}.kpi-bi-filter-toggle{font-size:10px;color:var(--primary);cursor:pointer;background:none;border:none;padding:0}.kpi-bi-filter-toggle:hover{color:var(--primary)}.kpi-bi-filter-group{margin-bottom:12px}.kpi-bi-filter-group:last-child{margin-bottom:0}.kpi-bi-filter-group-label{font-size:11px;font-weight:600;color:var(--text);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}.kpi-bi-filter-option{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px;color:var(--text);cursor:pointer}.kpi-bi-filter-option input[type=checkbox]{accent-color:var(--primary)}.kpi-bi-filter-count{margin-left:auto;font-size:10px;color:var(--text-muted);background:var(--bg);padding:1px 6px;border-radius:8px}.kpi-bi-filter-options{display:flex;flex-direction:column;gap:2px}.kpi-bi-filter-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-bi-chart,.kpi-bi-chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 8px 8px}.kpi-bi-card-sub{font-size:11px;color:var(--text-muted)}.kpi-date-presets{display:flex;gap:6px;align-items:center}.kpi-date-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:5px 14px;font-size:12px;cursor:pointer;transition:background .15s,color .15s}.kpi-date-btn:hover{color:var(--text);background:var(--border)}.kpi-date-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.kpi-filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kpi-filter-count{font-size:12px;color:var(--text-muted);margin-left:4px}.kpi-dropdown{position:relative}.kpi-dropdown-btn{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .15s}.kpi-dropdown-btn:hover{background:var(--border)}.kpi-dropdown-btn.partial{border-color:var(--primary)}.kpi-dropdown-badge{background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;line-height:1.4}.kpi-dropdown-arrow{font-size:10px;color:var(--text-muted)}.kpi-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px;min-width:210px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;box-shadow:0 8px 24px #00000080}.kpi-dropdown-all{display:flex;align-items:center;gap:8px;padding:5px 6px 8px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;border-bottom:1px solid var(--border);margin-bottom:4px}.kpi-dropdown-option{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:12px;color:var(--text);cursor:pointer;border-radius:4px}.kpi-dropdown-option:hover,.kpi-dropdown-all:hover{background:var(--border)}.kpi-dropdown-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-dropdown-count{font-size:10px;color:var(--text-muted);background:var(--bg);padding:1px 6px;border-radius:8px;flex-shrink:0}.kpi-status-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap}.kpi-status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.kpi-status-badge.offen{color:var(--success);background:#22c55e1f}.kpi-status-badge.abgeschlossen{color:var(--text-muted);background:#94a3b81a}@media (max-width: 900px){.kpi-bi-content{flex-direction:column}.kpi-bi-side{width:100%}.kpi-bi-exec-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 767px){.kpi-date-btn{min-height:44px;padding:8px 16px;font-size:13px}}:root,:root[data-theme=dark]{--bg: #0F172A;--surface: #1E293B;--surface-2: #273449;--border: #334155;--border-subtle: rgba(148, 163, 184, .12);--text: #F8FAFC;--text-muted: #94A3B8;--text-strong: #FFFFFF;--primary: #3081AB;--primary-hover: #459CC7;--primary-soft: rgba(48, 129, 171, .16);--success: #22C55E;--success-soft: rgba(34, 197, 94, .15);--danger: #EF4444;--danger-soft: rgba(239, 68, 68, .15);--warning: #F59E0B;--warning-soft: rgba(245, 158, 11, .15);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .25), 0 1px 3px rgba(0, 0, 0, .15);--shadow-hover: 0 4px 12px rgba(0, 0, 0, .35);--font-xs: 12px;--font-sm: 13px;--font-md: 14px;--font-lg: 16px;--font-xl: 20px;--font-2xl: 28px;--font-hero: 36px}:root[data-theme=light]{--bg: #F1F5F9;--surface: #FFFFFF;--surface-2: #F1F5F9;--border: #E2E8F0;--border-subtle: rgba(15, 23, 42, .06);--text: #1E4E6B;--text-muted: #64748B;--text-strong: #1E4E6B;--primary: #3081AB;--primary-hover: #459CC7;--primary-soft: #E0F2FE;--success: #16A34A;--success-soft: rgba(22, 163, 74, .1);--danger: #DC2626;--danger-soft: rgba(220, 38, 38, .1);--warning: #D97706;--warning-soft: rgba(217, 119, 6, .12);--shadow-card: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-hover: 0 4px 14px rgba(15, 23, 42, .1)}.thin-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.thin-scroll::-webkit-scrollbar{width:4px}.thin-scroll::-webkit-scrollbar-track{background:transparent}.thin-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.thin-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.admin-shell{display:grid;grid-template-columns:200px 1fr;height:100vh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font)}.admin-sidebar{display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;height:100vh}.admin-sidebar-header{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-5) var(--s-4) var(--s-4);border-bottom:1px solid var(--border)}.admin-content-topbar{display:flex;justify-content:flex-end;align-items:center;gap:var(--s-3, 12px);padding:var(--s-3, 12px) var(--s-5, 24px) 0;flex-shrink:0}.admin-content-logo{height:36px;object-fit:contain;opacity:.85;pointer-events:none;flex-shrink:0}:root[data-theme=light] .admin-content-logo{filter:brightness(0) saturate(100%) invert(44%) sepia(47%) saturate(720%) hue-rotate(168deg) brightness(88%) contrast(88%);opacity:1}.admin-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:transparent;color:var(--text-muted, #94A3B8);border:1px solid transparent;border-radius:var(--radius-md, 10px);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.admin-btn-icon:hover{background:var(--surface-2, rgba(148,163,184,.08));color:var(--text, #F1F5F9);border-color:var(--border-subtle, rgba(148,163,184,.12))}.admin-btn-icon.danger:hover{background:var(--danger-soft, rgba(239,68,68,.15));color:var(--danger, #EF4444)}.admin-sidebar-tenant{font-size:16px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-nav{flex:1;padding:var(--s-3) var(--s-2);display:flex;flex-direction:column;gap:var(--s-1)}.admin-nav-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--s-3) var(--s-2) var(--s-1);-webkit-user-select:none;user-select:none}.admin-nav-item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--radius-md);cursor:pointer;font-size:13px;color:var(--text-muted);transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;position:relative;border:none;background:none;width:100%;text-align:left}.admin-nav-item:hover{background:var(--surface-2);color:var(--text)}.admin-nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.admin-nav-item svg{width:18px;height:18px;flex-shrink:0;opacity:.9}.admin-nav-badge{margin-left:auto;background:var(--primary);color:#fff;font-size:10px;font-weight:700;border-radius:9px;padding:1px 6px;min-width:18px;text-align:center}.admin-nav-badge.danger{background:var(--danger-soft);color:var(--danger)}.admin-sidebar-footer{padding:12px 8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.admin-switch-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:13px;font-weight:500;transition:background .15s,color .15s}.admin-switch-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.admin-user-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:7px}.admin-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.admin-user-info{flex:1;min-width:0}.admin-user-name{font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-role{font-size:11px;color:var(--text-muted)}.admin-logout-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:4px;display:flex;align-items:center;transition:color .15s;margin-left:auto;flex-shrink:0}.admin-logout-btn svg{width:20px;height:20px}.admin-logout-btn:hover{color:var(--danger)}.admin-content{overflow-y:auto;height:100vh}.admin-content-inner{min-height:100%}.admin-page{padding:var(--s-5) var(--s-6);max-width:1200px}.admin-page.admin-page-wide{max-width:none}.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-5)}.admin-page-title{font-size:22px;font-weight:700;color:var(--text)}.admin-page-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-4);margin-bottom:var(--s-5)}.admin-kpi-section{margin-bottom:var(--s-5)}.admin-kpi-section:last-child{margin-bottom:0}.admin-kpi-section .admin-kpi-grid{margin-bottom:0}.admin-kpi-group-title{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--s-3) 0}.admin-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-5);cursor:pointer;box-shadow:var(--shadow-card);transition:box-shadow .15s,transform .12s,border-color .15s;display:flex;flex-direction:column;gap:var(--s-3);position:relative}.admin-kpi-card:hover{border-color:var(--primary);box-shadow:var(--shadow-hover);transform:translateY(-1px)}.admin-kpi-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-kpi-icon svg{width:20px;height:20px}.admin-kpi-icon.blue{background:var(--primary-soft);color:var(--primary)}.admin-kpi-icon.orange{background:var(--warning-soft);color:var(--warning)}.admin-kpi-icon.green{background:var(--success-soft);color:var(--success)}.admin-kpi-icon.red{background:var(--danger-soft);color:var(--danger)}.admin-kpi-icon.purple{background:#a855f726;color:#a855f7}.admin-kpi-icon.yellow{background:var(--warning-soft);color:var(--warning)}.admin-kpi-badge{position:absolute;top:8px;right:8px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 5px}.admin-kpi-value{font-size:var(--font-hero);font-weight:700;color:var(--text-strong);line-height:1;letter-spacing:-.01em}.admin-kpi-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.admin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.admin-filter-bar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);border-bottom:1px solid var(--border-subtle)}.admin-search{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-2) var(--s-3);font-size:var(--font-sm);color:var(--text);outline:none;transition:border-color .15s}.admin-search:focus{border-color:var(--primary)}.admin-search::placeholder{color:var(--text-muted)}.admin-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-2) var(--s-3);font:inherit;font-size:var(--font-sm);color:var(--text);outline:none;transition:border-color .15s;box-sizing:border-box}.admin-input:focus{border-color:var(--primary)}.admin-input::placeholder{color:var(--text-muted)}textarea.admin-input{resize:vertical;min-height:60px}select.admin-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.admin-table{width:100%;border-collapse:collapse}.admin-table th{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:var(--s-3) var(--s-4);text-align:left;background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:var(--s-3) var(--s-4);font-size:var(--font-md);color:var(--text);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.admin-table td.primary{color:var(--text-strong);font-weight:600}.admin-table td.secondary{color:var(--text-muted);font-size:var(--font-sm)}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{cursor:pointer;transition:background .1s}.admin-table tbody tr:hover{background:var(--surface-2)}.admin-table-empty{text-align:center;padding:40px;color:var(--text-muted);font-size:14px}.admin-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.admin-badge-pending{background:var(--warning-soft);color:var(--warning)}.admin-badge-approved{background:var(--success-soft);color:var(--success)}.admin-badge-rejected{background:var(--danger-soft);color:var(--danger)}.admin-badge-open{background:var(--primary-soft);color:var(--primary)}.admin-badge-sent{background:#a855f726;color:#a855f7}.admin-badge-paid{background:var(--success-soft);color:var(--success)}.admin-badge-draft,.admin-badge-closed{background:var(--surface-2);color:var(--text-muted)}.admin-badge-active{background:var(--success-soft);color:var(--success)}.admin-badge-admin{background:var(--primary-soft);color:var(--primary)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:flex-start;justify-content:flex-end}.admin-modal{background:var(--surface);border-left:1px solid var(--border);width:480px;max-width:95vw;height:100vh;box-shadow:var(--shadow-hover);overflow-y:auto;display:flex;flex-direction:column;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-5);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--surface);z-index:1}.admin-modal-title{font-size:16px;font-weight:700;color:var(--text)}.admin-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:4px;display:flex;align-items:center;font-size:20px;line-height:1;transition:color .15s}.admin-modal-close:hover{color:var(--text)}.admin-modal-body{padding:var(--s-5);flex:1;display:flex;flex-direction:column;gap:var(--s-4)}.admin-modal-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--s-3);justify-content:flex-end}.admin-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center}.admin-confirm-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;max-width:380px;width:90%;text-align:center}.admin-confirm-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:8px}.admin-confirm-text{font-size:13.5px;color:var(--text-muted);margin-bottom:24px}.admin-confirm-actions{display:flex;gap:10px;justify-content:center}.admin-form-group{display:flex;flex-direction:column;gap:5px}.admin-form-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.admin-form-input,.admin-form-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-2) var(--s-3);font-size:var(--font-md);color:var(--text);outline:none;transition:border-color .15s;width:100%;box-sizing:border-box}.admin-form-input:focus,.admin-form-select:focus{border-color:var(--primary)}.admin-form-select option{background:var(--surface)}.admin-form-hint{font-size:11.5px;color:var(--text-muted)}.admin-form-error{font-size:12px;color:var(--danger)}.admin-btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn svg{width:15px;height:15px}.admin-btn-primary{background:var(--primary-soft);color:var(--primary)}.admin-btn-primary:hover:not(:disabled){background:var(--primary);color:#fff}.admin-btn-primary.solid{background:var(--primary);color:#fff}.admin-btn-primary.solid:hover:not(:disabled){background:var(--primary-hover)}.admin-btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.admin-btn-secondary:hover:not(:disabled){background:var(--border)}.admin-btn-danger{background:var(--danger-soft);color:var(--danger)}.admin-btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.admin-btn-success{background:var(--success-soft);color:var(--success)}.admin-btn-success:hover:not(:disabled){background:var(--success);color:#fff}.admin-btn-sm{padding:var(--s-1) var(--s-3);font-size:var(--font-xs)}.admin-btn-hero{padding:var(--s-4) var(--s-6);font-size:var(--font-lg);border-radius:var(--radius-lg);font-weight:700;letter-spacing:.01em}.admin-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:14px;gap:10px}.admin-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.admin-toast-container{position:fixed;bottom:24px;right:24px;z-index:300;display:flex;flex-direction:column;gap:8px;pointer-events:none}.admin-toast{background:var(--border);border:1px solid var(--surface);border-radius:9px;padding:12px 16px;font-size:13.5px;color:var(--text);box-shadow:0 8px 24px #0006;animation:toastIn .2s ease;pointer-events:auto;max-width:340px}.admin-toast.success{border-left:3px solid var(--success)}.admin-toast.error{border-left:3px solid var(--danger)}.admin-toast.info{border-left:3px solid var(--primary)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 767px){.admin-toast-container{bottom:calc(64px + env(safe-area-inset-bottom,0px))}}.admin-section-title{font-size:15px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin:20px 0 12px}.admin-divider{border:none;border-top:1px solid var(--border);margin:16px 0}@media (max-width: 1024px){.admin-shell{grid-template-columns:56px 1fr}.admin-sidebar-tenant,.admin-nav-group-label,.admin-nav-item span,.admin-nav-badge,.admin-user-info{display:none}.admin-nav-item{justify-content:center;padding:10px}.admin-nav-item svg{width:18px;height:18px}.admin-sidebar-header{justify-content:center;padding:16px 8px}.admin-user-row{justify-content:center}.admin-page{padding:20px 16px}}.kpi-admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto;flex-shrink:0}.kpi-admin-tab{padding:10px 18px;font-size:13px;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;font-family:inherit}.kpi-admin-tab:hover{color:var(--text)}.kpi-admin-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.kpi-admin-content{flex:1;overflow-y:auto}.kpi-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.kpi-admin-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 20px 16px;position:relative}.kpi-admin-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px}.kpi-admin-card-value{font-size:26px;font-weight:700;line-height:1.1;font-family:var(--mono);word-break:break-word}.kpi-admin-card-unit{font-size:14px;font-weight:400;color:var(--text-muted)}.kpi-admin-card-dot{position:absolute;top:16px;right:16px;width:8px;height:8px;border-radius:50%}.kpi-admin-spinner{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--primary);animation:kpi-admin-spin .8s linear infinite;margin-right:10px}@keyframes kpi-admin-spin{to{transform:rotate(360deg)}}.absence-cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-wrap:wrap}.absence-cal-title{flex:1;text-align:center;font-size:15px;font-weight:600;color:var(--text)}.absence-cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden}.absence-cal-day-header{background:var(--surface);text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 4px}.absence-cal-day-cell{background:var(--bg);min-height:90px;padding:6px;display:flex;flex-direction:column;gap:3px}.absence-cal-day-cell.today{box-shadow:inset 0 0 0 2px var(--primary)}.absence-cal-day-cell.outside-month{background:var(--bg);opacity:.25}.absence-cal-day-num{font-size:12px;font-weight:600;color:var(--text);line-height:1;margin-bottom:2px}.absence-cal-day-cell.today .absence-cal-day-num{color:var(--primary)}.absence-cal-pill{font-size:11px;padding:2px 5px;border-radius:999px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.4;margin-bottom:1px}.absence-cal-dots{display:flex;flex-wrap:wrap;gap:3px;padding-top:2px}.absence-cal-dot{width:9px;height:9px;border-radius:50%;cursor:pointer;flex-shrink:0;transition:transform .1s}.absence-cal-dot:hover{transform:scale(1.4)}.absence-cal-staff-filter{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 0}.absence-cal-staff-chip{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;transition:opacity .15s,background .15s}.absence-cal-staff-chip.hidden{background:transparent;color:var(--text-muted);border-color:var(--border);text-decoration:line-through;text-decoration-thickness:1px;opacity:.75}.absence-cal-week-block{padding:4px 8px;border-radius:6px;font-size:11.5px;color:#fff;white-space:nowrap}.absence-cal-empty{text-align:center;padding:40px;color:var(--text-muted);font-size:14px}.absence-cal-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;padding:12px 16px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.absence-cal-legend-item{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text)}.absence-cal-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.absence-cal-legend-dot--holiday{background:transparent;border:2px solid var(--warning);width:10px;height:10px}.absence-cal-day-cell.holiday{background:var(--surface-2)}.absence-cal-day-top{display:flex;align-items:baseline;gap:5px;margin-bottom:2px}.absence-cal-holiday-label{font-size:10px;color:var(--warning);font-weight:700;background:var(--warning-soft);padding:1px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.absence-cal-week-holiday{font-size:10px;color:var(--warning);font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.absence-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.absence-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:360px;max-width:94vw;box-shadow:0 8px 40px #00000080;overflow:hidden}.absence-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px 14px 18px;border-bottom:1px solid var(--border);gap:12px}.absence-modal-name{font-size:16px;font-weight:700;color:var(--text);line-height:1.2}.absence-modal-type{font-size:13px;font-weight:600;margin-top:3px}.absence-modal-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:2px 4px;line-height:1;flex-shrink:0}.absence-modal-close:hover{color:var(--text)}.absence-modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.absence-modal-row{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--text)}.absence-modal-label{width:72px;flex-shrink:0;color:var(--text-muted);font-size:12.5px}.approval-card{display:flex;flex-direction:column;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md, 10px);background:var(--surface-1, var(--surface, #fff))}.approval-card+.approval-card{margin-top:10px}.approval-head{display:flex;flex-direction:column;gap:2px}.approval-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.3}.approval-project{font-size:13px;font-weight:500;color:var(--text)}.approval-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:12px;color:var(--text-muted)}.approval-meta-item{display:inline-flex;align-items:center;gap:5px}.approval-meta-item svg{width:12px;height:12px;opacity:.8}.approval-file{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--surface-2, transparent);text-decoration:none;color:var(--text);font-size:13px;font-weight:500;width:fit-content;max-width:100%;transition:border-color .12s,background .12s}.approval-file:hover{border-color:var(--primary, #2563eb);background:var(--primary-soft, rgba(37,99,235,.08))}.approval-file-icon{flex-shrink:0;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--danger-soft, rgba(239,68,68,.12));color:var(--danger, #EF4444);font-size:10px;font-weight:800;letter-spacing:.02em}.approval-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-actions{display:flex;gap:10px}.approval-btn{flex:1;padding:9px 14px;border-radius:var(--radius-sm, 8px);font-size:13.5px;font-weight:600;cursor:pointer;background:transparent;border:1px solid transparent;transition:background .12s,color .12s,border-color .12s}.approval-btn:disabled{opacity:.55;cursor:not-allowed}.approval-btn-approve{color:var(--success);border-color:var(--success)}.approval-btn-approve:hover:not(:disabled){background:var(--success);color:#fff}.approval-btn-reject{color:var(--danger);border-color:var(--danger)}.approval-btn-reject:hover:not(:disabled){background:var(--danger);color:#fff}.project-schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.project-schedule-layout.panel-collapsed{grid-template-columns:minmax(0,1fr)}.project-schedule-calendar{min-width:0}.project-schedule-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px;position:sticky;top:12px}.project-schedule-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.project-schedule-panel-title{font-weight:600;font-size:14px}.project-schedule-panel-body{display:flex;flex-direction:column;gap:12px}.project-schedule-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.project-schedule-field>span{color:var(--muted);font-weight:500}.project-schedule-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.project-schedule-monteur-chips{display:flex;flex-wrap:wrap;gap:4px;max-height:150px;overflow-y:auto;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.project-schedule-chip{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.project-schedule-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.project-schedule-actions{display:flex;gap:8px;margin-top:4px}.project-schedule-error{font-size:12px;color:var(--danger);padding:6px 8px;background:#ef44441a;border-radius:4px}.project-schedule-divider{height:1px;background:var(--border);margin:4px 0}.project-schedule-field-head{display:flex;justify-content:space-between;align-items:baseline}.project-schedule-mini-btn{background:none;border:none;padding:0;font-size:11px;color:var(--primary, #3b82f6);cursor:pointer;text-decoration:underline}.project-schedule-mini-btn:hover{opacity:.8}.project-cal-filter{margin:0 0 12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px}.project-cal-filter-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--text-muted);gap:8px}.project-cal-filter-label{font-weight:700;color:var(--text);font-size:13px}.project-cal-filter-count{color:var(--text-muted);font-weight:500;font-size:11.5px;margin-left:6px}.project-schedule-picker-list{position:absolute;top:100%;left:0;right:0;margin-top:4px;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #0000001f;z-index:30;display:flex;flex-direction:column}.project-schedule-picker-empty{padding:12px 14px;color:var(--muted);font-size:12px}.project-schedule-picker-item{display:block;width:100%;text-align:left;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer;color:inherit;font:inherit;line-height:1.35;min-height:48px;box-sizing:border-box}.project-schedule-picker-item:last-child{border-bottom:none}.project-schedule-picker-item:hover,.project-schedule-picker-item:focus{background:var(--bg);outline:none}.project-schedule-picker-name{display:block;font-size:13px;font-weight:600;line-height:1.3;color:var(--text)}.project-schedule-picker-meta{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.3}.project-cal-pill{cursor:grab;color:#fff;font-weight:500;white-space:normal!important;overflow:hidden;text-overflow:clip;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-cal-pill:active{cursor:grabbing}.project-cal-week{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.project-cal-week-header{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--bg)}.project-cal-week-corner{border-right:1px solid var(--border)}.project-cal-week-day-head{padding:8px 6px;text-align:center;border-right:1px solid var(--border);font-size:12px}.project-cal-week-day-head:last-child{border-right:none}.project-cal-week-day-head.today{color:var(--primary, #3b82f6);font-weight:600}.project-cal-week-day-wd{text-transform:uppercase;font-size:11px;color:var(--muted);letter-spacing:.5px}.project-cal-week-day-num{font-size:14px;font-weight:600}.project-cal-week-day-holiday{font-size:10px;color:var(--warning);font-weight:700;background:var(--warning-soft);padding:1px 6px;border-radius:4px;margin-top:3px;display:inline-block}.project-cal-week-allday-row{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--bg);min-height:32px}.project-cal-week-allday-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:6px;border-right:1px solid var(--border);display:flex;align-items:center}.project-cal-week-allday-cell{padding:4px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.project-cal-week-allday-cell:last-child{border-right:none}.project-cal-week-body{display:grid;grid-template-columns:60px repeat(7,1fr);position:relative}.project-cal-week-hours{border-right:1px solid var(--border)}.project-cal-week-hour-label{font-size:10px;color:var(--muted);padding:2px 6px 0;border-bottom:1px dashed var(--border);box-sizing:border-box;text-align:right}.project-cal-week-day-col{position:relative;border-right:1px solid var(--border)}.project-cal-week-day-col:last-child{border-right:none}.project-cal-week-hour-cell{border-bottom:1px dashed var(--border);box-sizing:border-box}.project-cal-week-event{position:absolute;left:3px;right:3px;border-radius:4px;padding:4px 6px;font-size:11px;color:#fff;cursor:grab;overflow:hidden;box-shadow:0 1px 2px #00000026;display:flex;flex-direction:column;gap:2px}.project-cal-week-event.allday{position:static;padding:2px 6px;font-size:11px;border-radius:999px}.project-cal-week-event:active{cursor:grabbing}.project-cal-week-event-time{font-size:10px;font-weight:600;opacity:.92}.project-cal-week-event-name{font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-cal-drop-hover{outline:2px dashed var(--primary);outline-offset:-2px;background:#3b82f614}@media (max-width: 1100px){.project-schedule-layout{grid-template-columns:1fr}.project-schedule-panel{position:static;max-height:none}}.admin-bericht-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--s-4)}.admin-bericht-modal{position:relative;width:min(560px,100%);max-height:min(900px,calc(100vh - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hover);overflow:hidden;display:flex;flex-direction:column}.admin-bericht-modal .app-screen{height:100%;max-height:inherit;background:var(--surface);display:flex;flex-direction:column}.admin-bericht-modal .nav-bar{display:none}.admin-bericht-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background .15s,border-color .15s}.admin-bericht-modal-close:hover{background:var(--surface-hover, var(--border));border-color:var(--primary)}.admin-shell-mobile{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bg, #0d2233)}.admin-content-mobile{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.admin-mobile-tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#133550;border-top:1px solid #1c3e60;display:flex;align-items:stretch;z-index:50}.admin-mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:500;color:#6b8caa;background:none;border:none;padding:6px 4px;min-width:0;cursor:pointer;transition:color .15s;position:relative}.admin-mobile-tab:active{opacity:.7}.admin-mobile-tab.active{color:var(--primary)}.admin-mobile-tab-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.admin-mobile-tab svg{width:22px;height:22px;flex-shrink:0}.admin-mobile-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.admin-mobile-tab-badge{position:absolute;top:-4px;right:-8px;background:#ef4444;color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.admin-mobile-tab-dot{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:#ef4444}.admin-content-topbar--mobile{position:sticky;top:0;z-index:40;justify-content:space-between;background:var(--bg);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border-subtle)}.admin-mobile-topbar-title{font-size:var(--font-lg);font-weight:600;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.admin-mobile-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:60}.admin-mobile-drawer{position:fixed;bottom:0;left:0;right:0;background:#133550;border-radius:16px 16px 0 0;border-top:1px solid #1c3e60;z-index:61;padding-bottom:env(safe-area-inset-bottom,0px);max-height:70vh;display:flex;flex-direction:column;animation:adminMobileDrawerUp .22s ease}@keyframes adminMobileDrawerUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.admin-mobile-drawer-handle{width:36px;height:4px;border-radius:2px;background:#2a5070;margin:10px auto 4px;flex-shrink:0}.admin-mobile-drawer-scroll{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.admin-mobile-drawer-group{padding:8px 0 0}.admin-mobile-drawer-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94b3cc;padding:4px 20px 6px}.admin-mobile-drawer-item{display:flex;align-items:center;gap:14px;padding:0 20px;min-height:52px;font-size:15px;color:#f1f5f9;background:none;border:none;width:100%;text-align:left;cursor:pointer;transition:background .12s}.admin-mobile-drawer-item:active{background:#ffffff14}.admin-mobile-drawer-item.active{color:#7dc4ed;background:#7dc4ed14}.admin-mobile-drawer-item svg{width:20px;height:20px;flex-shrink:0;opacity:.95}.admin-mobile-drawer-item-badge{margin-left:auto;background:#ef4444;color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px}.admin-mobile-drawer-divider{height:1px;background:#1c3e60;margin:8px 0}.admin-mobile-drawer-footer{padding:4px 12px 8px;flex-shrink:0}.admin-mobile-switch-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 8px;font-size:14px;color:#cdd9e6;background:none;border:none;cursor:pointer;border-radius:8px;transition:background .12s}.admin-mobile-switch-btn:active{background:#ffffff0d}.admin-mobile-user-row{display:flex;align-items:center;gap:12px;padding:8px 8px 4px}.admin-mobile-avatar{width:34px;height:34px;border-radius:50%;background:#1c4a70;color:#7db8e8;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-mobile-user-info{flex:1;min-width:0}.admin-mobile-user-name{font-size:14px;font-weight:600;color:#f1f5f9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-user-role{font-size:11px;color:#94b3cc;margin-top:1px}.admin-mobile-logout-btn{background:none;border:none;color:#94b3cc;cursor:pointer;padding:8px;border-radius:6px;display:flex;transition:color .12s}.admin-mobile-logout-btn:active{color:#ef4444}.admin-mobile-logout-btn svg{width:18px;height:18px}@media (max-width: 767px){.admin-content-logo{display:none}.admin-table-wrap{overflow-x:auto}.absence-cal-toolbar{gap:6px;margin-bottom:10px}.absence-cal-day-cell{min-height:60px;padding:4px 3px;gap:2px}.absence-cal-day-num{font-size:11px}.absence-cal-holiday-label{font-size:8px}.absence-cal-dot{width:7px;height:7px}.absence-cal-dots{gap:2px}.absence-cal-legend{gap:10px;padding:10px 12px;margin-top:10px}.absence-cal-legend-item{font-size:11.5px;gap:5px}.kpi-admin-tabs{flex-wrap:nowrap;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.kpi-admin-tabs::-webkit-scrollbar{display:none}.kpi-admin-tab{scroll-snap-align:start;scroll-margin-inline:var(--s-4);flex-shrink:0}.admin-confirm-overlay{align-items:flex-end}.admin-confirm-box{max-width:none;width:100%;border-radius:16px 16px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));text-align:left;animation:adminMobileDrawerUp .22s ease}.admin-confirm-actions{flex-direction:column-reverse;gap:8px}.admin-confirm-actions .admin-btn{width:100%;min-height:44px}}@media (prefers-reduced-motion: reduce){.admin-mobile-drawer,.admin-confirm-box{animation:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0F172A;--surface: #1E293B;--surface2: #273449;--border: #334155;--text: #F8FAFC;--muted: #94A3B8;--accent-blue: #3081AB;--accent-blue-dim: rgba(48,129,171,.18);--accent-blue-20: rgba(48,129,171,.25);--accent-blue-25: rgba(48,129,171,.3);--accent-blue-40: rgba(48,129,171,.5);--accent-green: #22c55e;--accent-green-dim: rgba(34,197,94,.12);--accent-amber: #f59e0b;--accent-amber-dim: rgba(245,158,11,.12);--accent-red: #f87171;--accent-red-dim: rgba(239,68,68,.1);--accent-purple: #a78bfa;--accent-purple-dim: rgba(167,139,250,.12);--radius: 16px;--radius-sm: 10px;--font: "DM Sans", sans-serif;--mono: "DM Mono", monospace;--app-bg: #0F172A}:root[data-theme=light]{--bg: #F1F5F9;--surface: #FFFFFF;--surface2: #F1F5F9;--border: #E2E8F0;--text: #1E4E6B;--muted: #64748B;--accent-blue: #3081AB;--accent-blue-dim: #E0F2FE;--accent-blue-20: rgba(48,129,171,.18);--accent-blue-25: rgba(48,129,171,.22);--accent-blue-40: rgba(48,129,171,.4);--accent-green: #16A34A;--accent-green-dim: rgba(22,163,74,.1);--accent-amber: #D97706;--accent-amber-dim: rgba(217,119,6,.1);--accent-red: #DC2626;--accent-red-dim: rgba(220,38,38,.08);--accent-purple: #7C3AED;--accent-purple-dim: rgba(124,58,237,.1);--app-bg: #F1F5F9}html,body,#root{height:100%;background:var(--app-bg);font-family:var(--font);color:var(--text);overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:var(--font)}input,textarea{font-family:var(--font);color:var(--text)}.app-screen{display:flex;flex-direction:column;height:100dvh;background:var(--bg);max-width:480px;margin:0 auto;position:relative;overflow:hidden}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;background:var(--bg);gap:12px}.loading-logo{width:64px;height:64px;border-radius:18px;background:var(--accent-blue-dim);border:1px solid var(--accent-blue-25);display:flex;align-items:center;justify-content:center}.loading-logo svg{width:28px;height:28px}.loading-text{font-size:13px;color:var(--muted)}.auth-screen{display:flex;flex-direction:column;justify-content:center;height:100dvh;padding:0 32px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg);max-width:480px;margin:0 auto}.auth-logo{width:64px;height:64px;border-radius:18px;background:var(--accent-blue-dim);border:1px solid var(--accent-blue-25);display:flex;align-items:center;justify-content:center;margin-bottom:28px}.auth-logo svg{width:28px;height:28px}.auth-logo-img{max-width:180px;max-height:72px;margin-bottom:28px}.auth-logo-img img{width:100%;height:100%;object-fit:contain;object-position:left center}.auth-title{font-size:26px;font-weight:600;line-height:1.2;margin-bottom:6px}.auth-sub{font-size:14px;color:var(--muted);margin-bottom:36px}.field{margin-bottom:14px}.field-label{font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase;display:block}.input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 16px;font-size:15px;color:var(--text);outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent-blue)}.input::placeholder{color:var(--muted)}.input-pin{letter-spacing:.5em;text-align:center;font-family:var(--mono);font-size:22px}.btn-primary{width:100%;padding:14px;background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;margin-top:8px;transition:opacity .15s,transform .1s}.btn-primary:active{opacity:.85;transform:scale(.98)}.btn-primary:disabled{opacity:.5}.btn-secondary{width:100%;padding:12px;background:transparent;color:var(--muted);border:none;font-size:13px;text-decoration:underline;margin-top:8px}.btn-fingerprint{width:100%;padding:20px;background:var(--surface);border:1px solid var(--accent-blue-25);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--accent-blue);cursor:pointer;transition:background .15s,border-color .15s}.btn-fingerprint:active{background:var(--surface2)}.btn-fingerprint:disabled{opacity:.5}.btn-fingerprint svg{width:40px;height:40px}.auth-footer{font-size:12px;color:var(--muted);text-align:center;margin-top:20px}.error-msg{font-size:13px;color:var(--accent-red);margin:8px 0}.auth-screen.consent-screen{justify-content:flex-start;overflow-y:auto;padding-top:40px}.consent-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin:16px 0;font-size:13px;line-height:1.6;color:var(--text);overflow-y:auto;max-height:45dvh}.consent-box p{margin:8px 0 4px}.consent-box ul{margin:0 0 8px;padding-left:18px}.consent-box li{margin-bottom:2px}.header-logo{height:28px;width:auto;max-width:120px;object-fit:contain;opacity:.92;flex-shrink:0}:root[data-theme=light] .header-logo{filter:brightness(0) saturate(100%) invert(44%) sepia(47%) saturate(720%) hue-rotate(168deg) brightness(88%) contrast(88%);opacity:1}.home-admin-btn,.home-theme-btn{display:inline-flex;align-items:center;justify-content:center;height:32px;box-sizing:border-box;background:var(--accent-blue-dim);border:1px solid var(--accent-blue-25);border-radius:8px;color:var(--accent-blue);cursor:pointer;transition:background .15s,color .15s}.home-admin-btn{font-size:12px;font-weight:600;padding:0 10px;gap:5px}.home-theme-btn{width:32px;padding:0}.home-admin-btn:hover,.home-theme-btn:hover{background:var(--accent-blue);color:#fff}.home-header{padding:20px 24px 16px;padding-top:calc(20px + env(safe-area-inset-top,0px));flex-shrink:0}.home-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.home-greeting{font-size:13px;color:var(--muted);margin-bottom:2px}.home-name{font-size:22px;font-weight:600}.date-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:4px 10px;font-size:12.5px;font-weight:500;color:var(--muted);font-family:var(--font);margin-top:10px}.date-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);flex-shrink:0}.home-scroll{flex:1;overflow-y:auto}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 24px 0}.tile{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:22px 18px;cursor:pointer;display:flex;flex-direction:column;gap:16px;transition:background .15s,border-color .15s,transform .1s;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.tile:active{transform:scale(.97)}.tile-blue{border-color:var(--accent-blue-20)}.tile-blue:hover{background:var(--surface2);border-color:var(--accent-blue-40)}.tile-green{border-color:#22c55e33}.tile-green:hover{background:var(--surface2);border-color:#22c55e66}.tile-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tile-icon-blue{background:var(--accent-blue-dim)}.tile-icon-green{background:var(--accent-green-dim)}.tile-icon svg{width:20px;height:20px}.tile-label{font-size:15px;font-weight:500}.tile-desc{font-size:12px;color:var(--muted);line-height:1.4}.tile-arrow{position:absolute;right:16px;bottom:16px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:.3}.home-footer{padding:16px 24px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));flex-shrink:0}.status-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;align-items:center;justify-content:space-between}.status-left{display:flex;flex-direction:column;gap:2px}.status-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.status-value{font-size:20px;font-weight:600;font-family:var(--mono);color:var(--accent-green)}.status-badge-active{background:var(--accent-green-dim);border:1px solid rgba(34,197,94,.25);border-radius:99px;padding:4px 10px;font-size:11px;color:var(--accent-green);white-space:nowrap}.status-badge-inactive{background:var(--surface2);border:1px solid var(--border);border-radius:99px;padding:4px 10px;font-size:11px;color:var(--muted);white-space:nowrap}.nav-bar{height:56px;display:flex;align-items:center;justify-content:space-around;border-top:1px solid var(--border);flex-shrink:0;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:6px;border-radius:8px;opacity:.4;transition:opacity .15s;-webkit-tap-highlight-color:transparent;flex:1}.nav-item.active{opacity:1}.nav-item svg{width:18px;height:18px}.nav-item span{font-size:10px;color:var(--muted)}.nav-item.active span{color:var(--text)}.inner-header{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:12px 24px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));flex-shrink:0}.inner-header .inner-title{flex:1}.back-btn{width:36px;height:36px;background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;flex-shrink:0;-webkit-tap-highlight-color:transparent}.back-btn:active{background:var(--surface2)}.back-btn svg{width:16px;height:16px}.inner-title{font-size:18px;font-weight:600}.context-banner{margin:0 24px 16px;border-radius:var(--radius);padding:14px 16px;flex-shrink:0}.context-banner-blue{background:var(--accent-blue-dim);border:1px solid var(--accent-blue-20)}.context-banner-green{background:var(--accent-green-dim);border:1px solid rgba(34,197,94,.2)}.banner-tag{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.banner-tag-blue{color:var(--accent-blue)}.banner-tag-green{color:var(--accent-green)}.banner-text{font-size:13px;color:var(--muted);line-height:1.5}.menu-list{display:flex;flex-direction:column;gap:8px;padding:0 24px 16px;overflow-y:auto;flex:1}.menu-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.menu-item:hover{background:var(--surface2);border-color:#ffffff1f}.menu-item:active{transform:scale(.99)}.menu-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.menu-icon svg{width:16px;height:16px}.menu-icon-blue{background:var(--accent-blue-dim)}.menu-icon-green{background:var(--accent-green-dim)}.menu-icon-amber{background:var(--accent-amber-dim)}.menu-icon-red{background:var(--accent-red-dim)}.menu-icon-purple{background:var(--accent-purple-dim)}.menu-text{flex:1}.menu-label{font-size:14px;font-weight:500}.menu-sub{font-size:12px;color:var(--muted);margin-top:1px}.menu-chevron{color:var(--muted);opacity:.4;font-size:18px;line-height:1}.correction-form{margin:0 0 4px;background:var(--surface);border:1px solid var(--accent-amber-dim);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:10px}.corr-row{display:flex;align-items:center;gap:10px}.corr-label{font-size:12px;color:var(--muted);width:90px;flex-shrink:0}.corr-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;padding:6px 10px;outline:none}.corr-input:focus{border-color:var(--accent-amber)}.corr-actions{display:flex;gap:8px;margin-top:4px}.corr-btn{flex:1;padding:9px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;border:none}.corr-btn:disabled{opacity:.45;cursor:not-allowed}.corr-btn-cancel{background:var(--surface);color:var(--muted);border:1px solid var(--border)}.corr-btn-submit{background:var(--accent-amber);color:#000}.time-card{margin:0 24px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.time-card-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.time-card-value{font-size:28px;font-weight:600;font-family:var(--mono);color:var(--accent-green)}.time-card-since{font-size:12px;color:var(--muted);margin-top:2px}.time-card-btn{background:var(--accent-red-dim);border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-sm);padding:10px 14px;font-size:12px;font-weight:500;color:var(--accent-red);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}.action-result{margin:0 24px 12px;background:var(--accent-green-dim);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;color:var(--text);flex-shrink:0}.action-result-error{background:var(--accent-red-dim);border-color:#ef444433}.chat-screen{display:flex;flex-direction:column;height:100dvh;background:var(--bg);max-width:480px;margin:0 auto}.chat-header{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:12px 24px 14px;padding-top:calc(12px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--border);flex-shrink:0}.chat-header>div:nth-child(2){flex:1}.chat-header-title{font-size:16px;font-weight:600;flex:1}.chat-header-sub{font-size:12px;color:var(--muted);flex:1;margin-top:1px}.chat-messages{flex:1;overflow-y:auto;padding:16px 0 8px;display:flex;flex-direction:column}.msg-row{display:flex;margin-bottom:6px;padding:0 16px}.msg-row-user{justify-content:flex-end}.msg-row-bot{justify-content:flex-start}.bubble{max-width:80%;padding:10px 14px;border-radius:16px;line-height:1.45;word-break:break-word;font-size:14px}.bubble-user{background:var(--accent-blue);color:#fff;border-bottom-right-radius:4px}.bubble-bot{background:var(--surface);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble-time{display:block;font-size:10px;opacity:.5;margin-top:4px;text-align:right;font-family:var(--mono)}.bubble-transcription{font-size:11px;opacity:.7;font-style:italic;margin-bottom:4px}.typing-dot-row{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 16px 4px}.typing-dot-row span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing-dot-row span:nth-child(2){animation-delay:.2s}.typing-dot-row span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3;transform:scale(.9)}40%{opacity:1;transform:scale(1)}}.confirm-buttons{display:flex;gap:10px;padding:4px 16px 12px;justify-content:flex-start}.confirm-btn{padding:10px 22px;border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.confirm-btn:active{opacity:.75}.confirm-btn-yes{background:var(--accent-green);color:#0f172a}.confirm-btn-no{background:var(--surface2);color:var(--muted);border:1px solid var(--border)}.disambig-buttons{display:flex;flex-direction:column;gap:6px;padding:4px 16px 8px;max-width:320px}.disambig-btn{padding:8px 14px;border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-family:var(--font);font-size:13px;font-weight:500;border:1px solid var(--border);cursor:pointer;text-align:left;transition:background .15s}.disambig-btn:active{background:var(--accent-blue-25)}.signature-pad-wrapper{margin:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px}.signature-pad-title{font-size:15px;font-weight:700;color:var(--fg);text-align:center;margin:0}.signature-pad-sub{font-size:12px;color:var(--muted);text-align:center;margin:0}.signature-canvas{width:100%;height:160px;border:2px solid var(--accent-blue);border-radius:var(--radius-sm);background:#fff;touch-action:none;cursor:crosshair}.signature-buttons{display:flex;gap:10px}.signature-buttons .confirm-btn{flex:1}.signature-status-ok{font-size:14px;font-weight:600;color:#22c55e;text-align:center;margin:0}.signature-status-error{font-size:13px;color:#ef4444;text-align:center;margin:0}.signature-skip-btn{background:none;border:none;color:var(--muted);font-size:12px;font-family:var(--font);cursor:pointer;text-align:center;padding:2px 0;text-decoration:underline}.chat-input-bar{display:flex;align-items:flex-end;gap:10px;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--bg);flex-shrink:0}.chat-textarea{flex:1;resize:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.4;color:var(--text);outline:none;max-height:7rem;overflow-y:auto;transition:border-color .2s}.chat-textarea:focus{border-color:var(--accent-blue-40)}.chat-textarea::placeholder{color:var(--muted)}.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent-blue);border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.chat-send-btn:disabled{opacity:.4}.chat-send-btn svg{width:16px;height:16px}.chat-mic-btn,.chat-photo-btn{width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.chat-mic-btn svg,.chat-photo-btn svg{width:16px;height:16px}.chat-rec-discard{width:36px;height:36px;border-radius:50%;background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:#f87171;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.chat-rec-discard:hover{background:#ef444433}.chat-rec-discard svg{width:15px;height:15px}.chat-rec-lock{width:36px;height:36px;border-radius:50%;background:var(--accent-blue-dim);border:1px solid var(--accent-blue-25);color:var(--accent-blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.chat-rec-lock:hover{background:var(--accent-blue-20)}.chat-rec-lock svg{width:15px;height:15px}.chat-rec-bar{flex:1;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid rgba(239,68,68,.2);border-radius:12px;padding:0 12px;height:40px;overflow:hidden}.chat-rec-dot{width:8px;height:8px;border-radius:50%;background:#f87171;flex-shrink:0;animation:rec-pulse .8s ease-in-out infinite alternate}.chat-rec-timer{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0;min-width:32px}.chat-rec-waveform{flex:1;display:flex;align-items:center;justify-content:center;gap:3px;height:24px}.chat-rec-wave-bar{display:inline-block;width:3px;border-radius:2px;background:var(--accent-blue);opacity:.7;animation:wave-bounce .7s ease-in-out infinite alternate}.chat-rec-wave-bar:nth-child(1){animation-delay:0s}.chat-rec-wave-bar:nth-child(2){animation-delay:.1s}.chat-rec-wave-bar:nth-child(3){animation-delay:.2s}.chat-rec-wave-bar:nth-child(4){animation-delay:.3s}.chat-rec-wave-bar:nth-child(5){animation-delay:.2s}.chat-rec-wave-bar:nth-child(6){animation-delay:.1s}.chat-rec-wave-bar:nth-child(7){animation-delay:0s}@keyframes wave-bounce{0%{height:4px}to{height:22px}}@keyframes rec-pulse{0%{opacity:1}to{opacity:.3}}.bericht-scroll{flex:1;overflow-y:auto;padding:8px 0}.bericht-loading{text-align:center;color:var(--muted);font-size:13px;padding:40px 24px}.bericht-table-wrap{padding:0 16px;overflow-x:auto}.bericht-table{width:100%;border-collapse:collapse;font-size:12.5px}.bericht-table th{text-align:left;font-size:11px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px 8px;border-bottom:1px solid var(--border)}.bericht-table td{padding:9px 8px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.bericht-table tr:last-child td{border-bottom:none}.bericht-row-absence td{color:var(--muted)}.bericht-weekday{display:inline-block;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;min-width:20px}.bericht-mono{font-family:var(--mono);font-size:12px}.bericht-bold{font-weight:600}.bericht-muted{color:var(--muted)}.bericht-positive{color:var(--accent-green)}.bericht-negative{color:var(--accent-red)}.bericht-proj{font-size:11px;color:var(--muted);max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bericht-summary{margin:12px 16px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.bericht-summary-row{display:flex;justify-content:space-between;align-items:center}.bericht-summary-label{font-size:12px;color:var(--muted)}.bericht-summary-value{font-size:14px;font-weight:600}.bericht-export-bar{flex-shrink:0;padding:10px 16px 6px;border-top:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;gap:8px}.bericht-export-btn{width:100%;padding:13px 16px;background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;-webkit-tap-highlight-color:transparent}.bericht-export-btn:disabled{opacity:.5;cursor:not-allowed}.bericht-pdf-msg{font-size:12px;color:var(--accent-green);text-align:center}.tile-amber{border-color:var(--accent-amber-dim)}.tile-amber:hover{background:var(--surface2);border-color:#f59e0b66}.tile-icon-amber{background:var(--accent-amber-dim)}.tiles-3col{grid-template-columns:1fr 1fr 1fr}.tiles-3col .tile{padding:16px 12px;gap:10px}.tiles-3col .tile-label{font-size:13px}.tiles-3col .tile-desc{font-size:11px}.tiles-3col .tile-icon{width:34px;height:34px;border-radius:10px}.tiles-3col .tile-icon svg{width:16px;height:16px}.projekte-view-toggle{display:flex;gap:6px;padding:8px 16px 0}.projekte-view-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s,border-color .15s}.projekte-view-toggle-btn svg{width:14px;height:14px}.projekte-view-toggle-btn.active{background:var(--accent-amber-dim);color:var(--accent-amber);border-color:var(--accent-amber-dim)}.projekte-timeline{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.projekte-timeline-scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.projekte-timeline-inner{position:relative}.projekte-timeline-header{display:flex;position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);z-index:2}.projekte-timeline-day{flex-shrink:0;text-align:center;padding:6px 0 8px;border-right:1px solid var(--border);position:relative;color:var(--muted)}.projekte-timeline-day.weekend{background:#0000000a}.projekte-timeline-day.today{background:var(--accent-blue-20, rgba(59, 130, 246, .15));color:var(--accent-blue)}.projekte-timeline-day-wd{font-size:9px;text-transform:uppercase;letter-spacing:.04em;opacity:.75}.projekte-timeline-day-num{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.projekte-timeline-day.today .projekte-timeline-day-num{color:var(--accent-blue)}.projekte-timeline-day-month{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-amber);font-weight:600;margin-top:1px}.projekte-timeline-body{position:relative;padding:6px 0 10px}.projekte-timeline-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent-blue);opacity:.35;z-index:0;pointer-events:none}.projekte-timeline-row{position:relative;height:36px;margin-bottom:4px;cursor:pointer;-webkit-tap-highlight-color:transparent}.projekte-timeline-row:active .projekte-timeline-bar{transform:scale(.98)}.projekte-timeline-row-grid{display:flex;height:100%}.projekte-timeline-cell{flex-shrink:0;height:100%;border-right:1px dashed var(--border)}.projekte-timeline-cell.weekend{background:#00000008}.projekte-timeline-bar{position:absolute;top:4px;height:28px;background:linear-gradient(90deg,var(--accent-amber-dim),var(--accent-amber-dim));border:1px solid var(--accent-amber);border-radius:8px;display:flex;align-items:center;padding:0 10px;overflow:hidden;z-index:1;transition:transform .1s}.projekte-timeline-bar-empty{background:var(--surface2);border-color:var(--border)}.projekte-timeline-bar-label{font-size:12px;font-weight:600;color:var(--accent-amber);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;left:10px}.projekte-timeline-bar-empty .projekte-timeline-bar-label{color:var(--muted);font-weight:500}.projekte-timeline-bar-dot{position:absolute;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--accent-amber);border:2px solid var(--surface);pointer-events:none}.projekte-grid-scroll{flex:1;overflow-y:auto;padding:8px 16px 16px}.projekte-empty{text-align:center;color:var(--muted);font-size:14px;padding:48px 24px;line-height:1.5}.projekte-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.projekte-grouped{display:flex;flex-direction:column;gap:18px}.projekte-group{display:flex;flex-direction:column;gap:10px}.projekte-group-header{display:flex;align-items:center;gap:10px;padding:2px 0}.projekte-group-date{font-size:12px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.projekte-group-line{flex:1;height:1px;background:#ffffff47}.projekte-group-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.projekte-tile{background:var(--surface);border:1px solid var(--accent-amber-dim);border-radius:20px;padding:16px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent;min-height:120px;color:var(--text)}.projekte-tile:active{transform:scale(.97)}.projekte-tile-icon{width:36px;height:36px;background:var(--accent-amber-dim);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:2px}.projekte-tile-icon svg{width:18px;height:18px}.projekte-tile-name{font-size:14px;font-weight:600;color:var(--text);line-height:1.3;word-break:break-word}.projekte-tile-sub{font-size:11px;color:var(--muted);line-height:1.4}.projekte-tile-termin{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--accent-amber);margin-top:2px}.projekte-tile-termin svg{width:11px;height:11px;flex-shrink:0}.projekte-tile-arrow{position:absolute;right:12px;bottom:12px;width:20px;height:20px;opacity:.3}.projekte-detail-scroll{flex:1;overflow-y:auto;padding:8px 16px 16px;display:flex;flex-direction:column;gap:12px}.projekte-detail-badge-row{padding:4px 0 2px}.projekte-detail-badge{font-size:12px;padding:3px 10px;border-radius:20px;background:var(--accent-amber-dim);color:var(--accent-amber);font-weight:500}.projekte-detail-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.projekte-detail-card-accent{border-color:var(--accent-blue-20)}.projekte-detail-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.projekte-detail-row{display:flex;justify-content:space-between;gap:12px;font-size:14px}.projekte-detail-label{color:var(--muted);flex-shrink:0;font-size:13px}.projekte-detail-value{text-align:right;color:var(--text);font-size:13px;word-break:break-word}.projekte-detail-empty{font-size:13px;color:var(--muted)}.projekte-detail-termin-date{font-size:20px;font-weight:600;color:var(--accent-blue)}.projekte-detail-termin-notiz{font-size:13px;color:var(--muted)}.projekte-kontakt-item{background:var(--surface2);border-radius:12px;padding:10px 12px}.projekte-kontakt-item-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.projekte-kontakt-item-name{font-size:14px;font-weight:500;color:var(--text)}.projekte-kontakt-item-rolle{font-size:11px;color:var(--muted);background:var(--surface);padding:1px 6px;border-radius:10px}.projekte-kontakt-item-links{display:flex;flex-direction:column;gap:6px}.projekte-kontakt-link-btn{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--accent-blue);text-decoration:none;padding:6px 10px;background:var(--surface);border-radius:8px}.projekte-kontakt-link-btn svg{width:14px;height:14px;flex-shrink:0}.kpi-hub-header{display:flex;align-items:center;gap:14px;padding:14px 20px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));flex-shrink:0}.kpi-hub-title{font-size:20px;font-weight:600}.kpi-hub-sub{font-size:12px;color:var(--muted);margin-top:2px}.kpi-back-btn{width:36px;height:36px;background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s;-webkit-tap-highlight-color:transparent}.kpi-back-btn svg{width:18px;height:18px}.kpi-back-btn:active{background:var(--surface2)}.kpi-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 20px 8px;overflow-y:auto;flex:1}.kpi-cat-tile{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:20px 16px 16px;cursor:pointer;display:flex;flex-direction:column;gap:10px;text-align:left;position:relative;overflow:hidden;transition:transform .1s,opacity .15s;-webkit-tap-highlight-color:transparent}.kpi-cat-tile:active{transform:scale(.97);opacity:.85}.kpi-cat-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-cat-icon svg{width:20px;height:20px}.kpi-cat-label{font-size:13px;font-weight:600;line-height:1.3}.kpi-cat-desc{font-size:11px;color:var(--muted);line-height:1.4}.kpi-cat-arrow{position:absolute;right:12px;bottom:12px;width:22px;height:22px;opacity:.5}.kpi-cat-arrow svg{width:22px;height:22px}.kpi-dash-header{display:flex;align-items:center;gap:12px;padding:14px 20px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));flex-shrink:0;border-bottom:1px solid var(--border)}.kpi-dash-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-dash-icon svg{width:20px;height:20px}.kpi-dash-title{font-size:17px;font-weight:600}.kpi-dash-sub{font-size:11px;color:var(--muted);margin-top:2px}.kpi-dash-content{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column}.kpi-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;flex:1;color:var(--muted);font-size:13px}.kpi-spinner{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface2);border-top-color:var(--accent-blue);animation:kpi-spin .8s linear infinite}@keyframes kpi-spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}.kpi-error{text-align:center;color:var(--accent-red);font-size:14px;padding:32px 16px}.kpi-cards-list{display:flex;flex-direction:column;gap:10px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;position:relative;display:flex;flex-direction:column;gap:4px}.kpi-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.kpi-card-value{font-size:22px;font-weight:600;font-family:var(--mono);line-height:1.2}.kpi-card-unit{font-size:13px;font-weight:400;color:var(--muted)}.kpi-card-status-dot{position:absolute;top:14px;right:16px;width:8px;height:8px;border-radius:50%}.bericht-pdf-msg-error{color:var(--accent-red)}
