:root{--color-bg:#faf8f4;--color-surface:#fffef9;--color-border:#e8e0d0;--color-text:#2c2416;--color-muted:#7a6e60;--color-primary:#1d4ed8;--color-primary-h:#1e40af;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-warning:#8a6d2f;--color-warning-bg:#faf4e6;--color-danger:#dc2626;--color-danger-bg:#fef2f2;--color-amber:#c9a84c;--sidebar-w:220px;--radius:6px;--shadow:0 1px 3px 0 #00000014, 0 1px 2px -1px #00000014}*,:before,:after{box-sizing:border-box}body{color:var(--color-text);background:var(--color-bg);margin:0;font-family:system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;font-weight:500}p{margin:0}ul{margin:0;padding:0;list-style:none}input,button,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);display:flex}.sidebar{width:var(--sidebar-w);background:#2d3a2e;border-right:none;flex-direction:column;flex-shrink:0;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:.65rem;padding:1.1rem 1rem;text-decoration:none;display:flex}.sidebar-logo{flex-shrink:0;width:30px;height:30px}.sidebar-brand-name{letter-spacing:-.01em;color:#f9f0d8;font-size:.95rem;font-weight:700;display:block}.sidebar-brand-sub{color:#a8a29e;letter-spacing:.04em;text-transform:uppercase;font-size:.65rem;display:block}.nav-list{flex-direction:column;flex:1;gap:1px;padding:.375rem .5rem;display:flex}.nav-divider{background:#3a4a3b;height:1px;margin:.5rem .25rem;list-style:none}.nav-section{letter-spacing:.14em;text-transform:uppercase;color:#a8a29e;padding:.9rem .75rem .25rem;font-size:.6rem;font-weight:700;list-style:none}.nav-link{border-radius:var(--radius);color:#d6d3d1;align-items:center;gap:.6rem;padding:.45rem .75rem;font-size:.85rem;transition:background .12s,color .12s;display:flex}.nav-link:hover:not(.nav-link--disabled){color:#fef9c3;background:#3a4a3b}.nav-link--active{color:#d4b86a;background:#f59e0b26;font-weight:500}.nav-link--active .nav-icon,.nav-link--active .nav-icon *{color:#d4b86a;stroke:#d4b86a}.nav-link--disabled{opacity:.4;cursor:default}.nav-icon{flex-shrink:0;width:17px;height:17px}.sidebar-footer{border-top:1px solid #3a4a3b;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.sidebar-profile{align-items:center;gap:.6rem;min-width:0;display:flex}.sidebar-profile--link{border-radius:var(--radius);margin:-.25rem -.35rem;padding:.25rem .35rem;text-decoration:none;transition:background .15s}.sidebar-profile--link:hover{background:#3a4a3b}.sidebar-profile--active{background:#c9a84c26}.sidebar-avatar{color:#6b5120;background:#f9f0d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.7rem;font-weight:700;display:flex}.sidebar-profile-info{flex-direction:column;min-width:0;display:flex}.sidebar-profile-name{color:#e7e5e4;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600;overflow:hidden}.sidebar-profile-role{color:#78716c;font-size:.7rem}.btn-logout{color:#a8a29e;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;align-items:center;padding:.25rem;transition:color .12s;display:flex}.btn-logout:hover{color:#f87171}.sidebar-brand-row{border-bottom:1px solid #3a4a3b;align-items:stretch;margin-bottom:.25rem;display:flex}.sidebar-brand{border-bottom:none;flex:1;min-width:0;margin-bottom:0}.sidebar-collapse-btn{color:#78716c;cursor:pointer;background:0 0;border:none;border-left:1px solid #3a4a3b;flex-shrink:0;justify-content:center;align-items:center;width:32px;transition:color .12s,background .12s;display:flex}.sidebar-collapse-btn:hover{color:#a8a29e;background:#3a4a3b}.sidebar-collapse-icon{transition:transform .25s}.sidebar{transition:width .25s;overflow:hidden}.sidebar--collapsed{width:56px}.sidebar--collapsed .sidebar-brand-name,.sidebar--collapsed .sidebar-brand-sub,.sidebar--collapsed .nav-label,.sidebar--collapsed .nav-section,.sidebar--collapsed .sidebar-profile-info,.sidebar--collapsed .btn-logout{display:none}.sidebar--collapsed .sidebar-brand-row{flex-direction:column}.sidebar--collapsed .sidebar-brand{justify-content:center;gap:0;width:100%;padding:.85rem 0}.sidebar--collapsed .sidebar-collapse-btn{border-top:1px solid #3a4a3b;border-left:none;width:100%;padding:.4rem 0}.sidebar--collapsed .nav-list{padding:.375rem .25rem}.sidebar--collapsed .nav-link{justify-content:center;padding:.55rem}.sidebar--collapsed .sidebar-footer{justify-content:center;align-items:center;gap:0;width:100%;padding:.75rem 0;display:flex}.sidebar--collapsed .sidebar-profile{justify-content:center;align-items:center;gap:0;width:100%;min-width:0;display:flex}.sidebar--collapsed .sidebar-collapse-icon{transform:rotate(180deg)}.empty-state{text-align:center;color:var(--color-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-state-icon{width:120px;height:120px;animation:4s ease-in-out infinite empty-float;display:block}@keyframes empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-state-title{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.empty-state-sub{color:var(--color-muted);margin:-.25rem 0 0;font-size:.82rem}.app-main{background:var(--color-bg);flex-direction:column;flex:1;min-width:0;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;padding:1.5rem 2rem 0;display:flex}.page-title{color:var(--color-text);letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.page-subtitle{color:var(--color-muted);margin-top:.2rem;font-size:.875rem}.page-actions{align-items:center;gap:.75rem;display:flex}.header-date{color:var(--color-muted);align-items:center;gap:.4rem;font-size:.825rem;display:flex}.header-date svg{flex-shrink:0;width:14px;height:14px}.header-bell{border-radius:var(--radius);color:#fff;cursor:pointer;background:#c9a84c;border:1px solid #c9a84c;justify-content:center;align-items:center;width:34px;height:34px;transition:background .15s,border-color .15s;display:flex}.header-bell svg{width:16px;height:16px}.header-bell:hover{background:#a8883a;border-color:#a8883a}.page-content{flex:1;padding:0 2rem 2rem;animation:.3s both page-fade-in}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 1px 4px color-mix(in srgb, var(--color-text) 6%, transparent);border-left:3px solid #c9a84c;padding:1.1rem 1.25rem 1rem}.stat-card--danger{border-left-color:var(--color-danger)}.stat-card-top{justify-content:space-between;align-items:center;margin-bottom:.7rem;display:flex}.stat-icon{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.stat-icon--amber{color:#fff;background:#c9a84c;box-shadow:0 2px 6px #c9a84c66}.stat-icon--amber svg{width:20px;height:20px}.stat-secondary{color:var(--color-muted);font-size:.75rem}.stat-secondary--danger{color:var(--color-danger);font-weight:600}.stat-value{color:var(--color-text);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.15rem;font-weight:700;line-height:1.1}.stat-value--success{color:var(--color-success)}.stat-value--warning{color:var(--color-warning)}.stat-value--danger{color:var(--color-danger)}.stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem;font-size:.72rem;font-weight:500}.stat-sub{color:var(--color-muted);margin-top:.25rem;font-size:.75rem}.stat-sub--danger{color:var(--color-danger)}.db-layout{grid-template-columns:1fr .75fr;align-items:start;gap:1rem;display:grid}.db-col{flex-direction:column;gap:1rem;display:flex}.card{border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);background:#fffef9bf;border:1px solid #ffffff73;flex-direction:column;display:flex;box-shadow:0 2px 8px #00000012,0 1px 2px #0000000a}.card--flush{overflow:hidden}.card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem .75rem;display:flex}.card-title{color:var(--color-text);font-size:.9rem;font-weight:600}.card-meta,.card-count{color:var(--color-muted);font-size:.75rem}.card-action-link{color:var(--color-primary);font-size:.8125rem;font-weight:500;text-decoration:none}.card-action-link:hover{text-decoration:underline}.card-body{flex-direction:column;gap:.6rem;padding:.75rem 1.25rem;display:flex}.card-body--flush{gap:0;padding:0}.belegung-row{flex-direction:column;gap:6px;padding:.5rem 0;display:flex}.belegung-row--link{color:inherit;cursor:pointer;border-radius:var(--radius-sm,4px);text-decoration:none}.belegung-row--link:hover{background:var(--color-bg);margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem}.belegung-meta{justify-content:space-between;align-items:baseline;display:flex}.belegung-name{color:var(--color-text);font-size:.875rem;font-weight:500}.belegung-detail{color:var(--color-muted);font-size:.75rem}.progress-bar{background:var(--color-bg);border-radius:4px;height:8px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.bar--success{background:var(--color-success)}.bar--primary{background:var(--color-primary)}.bar--warning{background:var(--color-warning)}.bar--amber{background:var(--color-amber)}.vg-row{border-bottom:1px solid var(--color-border);color:inherit;align-items:center;gap:.75rem;padding:.65rem 1.25rem;text-decoration:none;transition:background .1s;display:flex}.vg-row:last-child{border-bottom:none}.vg-row:hover{background:var(--color-bg)}.vg-icon{color:#8a6d2f;background:#c9a84c24;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.vg-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.vg-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.vg-sub{color:var(--color-muted);font-size:.75rem}.termin-row{border-bottom:1px solid var(--color-border);color:inherit;align-items:center;gap:1rem;padding:.65rem 1.25rem;text-decoration:none;transition:background .1s;display:flex}.termin-row:last-child{border-bottom:none}.termin-row:hover{background:var(--color-bg)}.termin-date{flex-direction:column;flex-shrink:0;align-items:center;min-width:36px;display:flex}.termin-day{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700;line-height:1}.termin-mon{color:var(--color-muted);letter-spacing:.05em;font-size:.6rem;font-weight:600}.termin-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.termin-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.termin-sub{color:var(--color-muted);font-size:.75rem}.act-row{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.6rem 1.25rem;display:flex}.act-row:last-child{border-bottom:none}.act-icon{border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.act-icon--amber{color:#8a6d2f;background:#c9a84c24}.act-icon--blue{color:#1d4ed8;background:#3b82f61f}.act-icon--purple{color:#6d28d9;background:#8b5cf61f}.act-icon--green{color:#15803d;background:#22c55e1f}.act-icon--muted{background:var(--color-bg);color:var(--color-muted)}.act-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.act-desc{color:var(--color-text);font-size:.825rem}.act-time{color:var(--color-muted);font-size:.7rem}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--amber{color:#8a6d2f;background:#c9a84c26}.badge--info{color:#1d4ed8;background:#eff6ff}.badge--muted{background:var(--color-bg);color:var(--color-muted);border:1px solid var(--color-border)}.tab-count{background:var(--color-border);min-width:18px;height:18px;color:var(--color-muted);vertical-align:middle;border-radius:9px;justify-content:center;align-items:center;margin-left:.3rem;padding:0 5px;font-size:.65rem;font-weight:700;display:inline-flex}.tab-link--active .tab-count{color:var(--color-primary);background:#1d4ed81f}.dok-cell{align-items:center;gap:.65rem;display:flex}.dok-icon{color:#dc2626;background:#fef2f2;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:1px;width:38px;height:38px;display:flex}.dok-icon--pdf{color:#dc2626;background:#fef2f2}.dok-icon--jpg,.dok-icon--jpeg,.dok-icon--png,.dok-icon--webp{color:#16a34a;background:#f0fdf4}.dok-icon--docx{color:#1d4ed8;background:#eff6ff}.dok-icon svg{width:16px;height:16px}.dok-ext{letter-spacing:.04em;font-size:.5rem;font-weight:800;line-height:1}.dok-name{color:var(--color-text);font-size:.875rem;font-weight:500}.dok-badge--mietvertrag{color:#1d4ed8;background:#eff6ff}.dok-badge--abrechnung{color:#6b5120;background:#f9f0d8}.dok-badge--protokoll{color:#166534;background:#f0fdf4}.dok-badge--energieausweis{color:#7e22ce;background:#fdf4ff}.dok-badge--grundriss{color:#9a3412;background:#fff7ed}.dok-badge--sonstiges{background:var(--color-bg);color:var(--color-muted)}.dok-dl-btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:30px;height:30px;color:var(--color-muted);cursor:pointer;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.dok-dl-btn:not(:disabled):hover{color:var(--color-primary);border-color:var(--color-primary)}.dok-dl-btn:disabled{opacity:.45;cursor:default}.tc-grid{grid-template-columns:1fr 380px;align-items:start;gap:1rem;display:grid}.tc-col{flex-direction:column;gap:1rem;display:flex}.tc-termine{padding:0}.tc-date-group{padding:.5rem 1.25rem}.tc-date-label{color:var(--color-primary);border-bottom:1px solid var(--color-border);margin-bottom:.4rem;padding:.6rem 0 .4rem;font-size:.75rem;font-weight:600}.tc-termin-row{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.55rem 0;display:flex}.tc-termin-row:last-child{border-bottom:none}.tc-termin-row--link{color:inherit;cursor:pointer;text-decoration:none}.tc-termin-row--link:hover{background:var(--color-surface-hover,#f5f5f5)}.tc-termin-row--past{opacity:.55}.tc-time{color:var(--color-text);font-variant-numeric:tabular-nums;min-width:36px;font-size:.8rem;font-weight:600}.tc-typ-icon{color:#6b5120;background:#f9f0d8;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.tc-typ-icon svg{width:14px;height:14px}.tc-typ-icon--past{background:var(--color-bg);color:var(--color-muted)}.tc-termin-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.tc-termin-titel{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.tc-termin-titel--past{font-weight:400}.tc-termin-sub{color:var(--color-muted);font-size:.75rem}.tc-typ-badge{flex-shrink:0}.tc-row--hidden{display:none!important}.tc-past-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);border-top:1px solid var(--color-border);margin-top:.25rem;padding:.7rem 1.25rem .3rem;font-size:.7rem;font-weight:700}.tc-nachrichten{padding:0}.tc-ungelesen-badge{background:var(--color-danger-bg);color:var(--color-danger);border-radius:10px;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.tc-msg{border-bottom:1px solid var(--color-border);align-items:flex-start;gap:.65rem;padding:.75rem 1.25rem;transition:background .1s;display:flex}.tc-msg:last-child{border-bottom:none}.tc-msg:hover{background:var(--color-bg)}.tc-msg--unread{background:#fffbeb}.tc-msg--unread:hover{background:#f9f0d8}.tc-msg--link{color:inherit;cursor:pointer;text-decoration:none}.tc-msg--link:hover{background:var(--color-surface-hover,#f5f5f5)}.tc-msg-avatar--typ{color:var(--color-muted);background:#f1f5f9}.tc-msg-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.65rem;font-weight:700;display:flex}.tc-msg-avatar--eingehend{color:var(--color-primary);background:#eff6ff}.tc-msg-avatar--ausgehend{color:var(--color-success);background:#f0fdf4}.tc-msg-body{flex:1;min-width:0}.tc-msg-header{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.15rem;display:flex}.tc-msg-absender{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.tc-msg-time{color:var(--color-muted);white-space:nowrap;flex-shrink:0;font-size:.7rem}.tc-msg-betreff{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.tc-msg-betreff--unread{color:var(--color-text);font-weight:500}.tc-msg-objekt{color:var(--color-muted);margin-top:.1rem;font-size:.72rem}.tc-msg-dir{color:var(--color-muted);flex-shrink:0;padding-top:2px}.kanban{grid-template-columns:repeat(3,1fr);align-items:start;gap:1rem;display:grid}.kanban-col{background:var(--color-bg);border-radius:var(--radius);border:1px solid var(--color-border);overflow:hidden}.kanban-col-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.65rem 1rem;display:flex}.kanban-col-label{align-items:center;gap:.5rem;display:flex}.kanban-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.kanban-dot--offen{background:var(--color-warning)}.kanban-dot--in_bearbeitung{background:var(--color-primary)}.kanban-dot--geschlossen{background:var(--color-success)}.kanban-col-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);font-size:.8rem;font-weight:700}.kanban-col-count{background:var(--color-border);min-width:22px;height:22px;color:var(--color-muted);border-radius:11px;justify-content:center;align-items:center;padding:0 6px;font-size:.7rem;font-weight:700;display:inline-flex}.kanban-cards{flex-direction:column;gap:.6rem;min-height:120px;padding:.75rem;display:flex}.kanban-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);border-left-width:3px;flex-direction:column;gap:.55rem;padding:.85rem;display:flex;box-shadow:0 1px 3px #0000000a}.kanban-card--hoch{border-left-color:var(--color-danger)}.kanban-card--mittel{border-left-color:var(--color-warning)}.kanban-card--niedrig{border-left-color:var(--color-border)}.kanban-card-meta{align-items:center;gap:.5rem;display:flex}.kanban-typ{color:var(--color-muted);margin-left:auto;font-size:.7rem}.kanban-card-title{color:var(--color-text);font-size:.875rem;font-weight:600;line-height:1.35}.kanban-card-location{color:var(--color-muted);align-items:center;gap:.3rem;font-size:.75rem;display:flex}.kanban-card-location svg{flex-shrink:0;width:12px;height:12px}.kanban-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.5rem;padding-top:.45rem;display:flex}.kanban-assignee{align-items:center;gap:.4rem;min-width:0;display:flex}.kanban-avatar{color:#6b5120;background:#f9f0d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.6rem;font-weight:700;display:flex}.kanban-assignee-name{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.kanban-date{color:var(--color-muted);white-space:nowrap;flex-shrink:0;font-size:.72rem}.kanban-date--overdue{color:var(--color-danger);font-weight:600}.kanban-card-footer-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.kanban-details-link{color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);white-space:nowrap;opacity:.75;padding:.15rem .45rem;font-size:.7rem;font-weight:500;line-height:1;text-decoration:none;transition:opacity .15s}.kanban-details-link:hover{opacity:1}.kanban-empty{text-align:center;color:#a8a29e;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 0;font-size:.825rem;display:flex}.nk-toolbar{border-bottom:2px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.nk-objekt-form{align-items:center;display:flex}.nk-select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.35rem .75rem;font-size:.875rem}.nk-select:focus{border-color:var(--color-primary);outline:none}.nk-grid{grid-template-columns:1fr 340px;align-items:start;gap:1rem;display:grid}.nk-tfoot td{border-top:2px solid var(--color-border);background:var(--color-bg);padding:.65rem 1rem}.immo-intro{color:var(--color-muted);max-width:52ch;margin-bottom:1.5rem;font-size:.9375rem}.immo-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.immo-card{border:1px solid var(--color-border);border-radius:16px;flex-direction:column;text-decoration:none;transition:box-shadow .18s,transform .18s;display:flex;overflow:hidden;box-shadow:0 2px 12px #00000014}.immo-card:hover{border-color:#c9a84c;transform:translateY(-2px);box-shadow:0 6px 24px #00000021}.immo-head{flex-direction:column;min-height:130px;padding:1.25rem 1.4rem 1.35rem;display:flex;position:relative;overflow:hidden}.immo-head:after{content:"";pointer-events:none;background:#ffffff1a;border-radius:50%;width:130px;height:130px;position:absolute;top:-35px;right:-35px}.immo-card--1 .immo-head{background:linear-gradient(135deg,#5a7a4a 0%,#4a6840 50%,#3d5535 100%)}.immo-card--2 .immo-head{background:linear-gradient(135deg,#a0624a 0%,#8a5040 50%,#733f32 100%)}.immo-card--3 .immo-head{background:linear-gradient(135deg,#8a7840 0%,#786830 50%,#635524 100%)}.immo-badge{letter-spacing:.03em;color:#fffffff2;background:#fff3;border-radius:20px;align-items:center;width:fit-content;margin-bottom:.75rem;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.immo-name{letter-spacing:-.02em;color:#fff;flex:1;margin-bottom:.4rem;font-size:1.4rem;font-weight:700;line-height:1.2}.immo-location{color:#ffffffc7;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.immo-location svg{flex-shrink:0;width:13px;height:13px}.immo-body{background:var(--color-surface);flex-direction:column;flex:1;gap:.85rem;padding:1rem 1.4rem 1.1rem;display:flex}.immo-stats{gap:1.75rem;display:flex}.immo-stat{flex-direction:column;gap:.1rem;display:flex}.immo-stat-value{color:var(--color-text);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.immo-stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.immo-stat--frei .immo-stat-value{color:#a8883a}.immo-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:.8rem;display:flex}.immo-einnahmen{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:600}.immo-verwalten{color:var(--color-primary);font-size:.875rem;font-weight:600}.list-row{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.list-row:last-child{border-bottom:none}.list-row--link{color:inherit;cursor:pointer;text-decoration:none}.list-row--link:hover{background:var(--color-surface-hover,#f5f5f5);border-radius:var(--radius-sm,4px);margin:0 -.75rem;padding-left:.75rem;padding-right:.75rem}.list-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.list-row-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.list-row-sub{color:var(--color-muted);font-size:.75rem}.list-row-time{flex-direction:column;align-items:flex-end;min-width:72px;display:flex}.list-row-date{color:var(--color-muted);font-size:.75rem}.list-row-clock{color:var(--color-text);font-size:.8rem;font-weight:500}.badge{white-space:nowrap;border-radius:10px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:500;display:inline-flex}.badge--hoch{background:var(--color-danger-bg);color:var(--color-danger)}.badge--mittel{background:var(--color-warning-bg);color:var(--color-warning)}.badge--niedrig,.badge--neutral{background:var(--color-bg);color:var(--color-muted)}.activity-row{align-items:flex-start;gap:.75rem;padding:.35rem 0;display:flex}.activity-avatar{width:30px;height:30px;color:var(--color-primary);background:#eff6ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.activity-content{flex-direction:column;flex:1;min-width:0;display:flex}.activity-text{color:var(--color-text);font-size:.825rem;line-height:1.4}.activity-time{color:var(--color-muted);font-size:.7rem}.empty-state{color:var(--color-muted);padding:.5rem 0;font-size:.875rem}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-muted{color:var(--color-muted)}.auth-body{justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:380px;padding:2rem 2.25rem}.auth-logo{text-align:center;margin-bottom:1.75rem}.auth-logo-text{letter-spacing:-.02em;color:var(--color-primary);font-size:1.4rem;font-weight:700;display:block}.auth-logo-sub{color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;display:block}.auth-error{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius);border:1px solid #fecaca;margin-bottom:1.1rem;padding:.6rem .85rem;font-size:.875rem}.auth-status{background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius);border:1px solid #bbf7d0;margin-bottom:1.1rem;padding:.6rem .85rem;font-size:.875rem}.auth-remember{margin:.75rem 0 1.25rem}.field{margin-bottom:1rem}.field-label{margin-bottom:.35rem;font-size:.825rem;font-weight:500;display:block}.field-input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;color:var(--color-text);padding:.5rem .75rem;transition:border-color .15s;display:block}.field-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1d4ed81f}.field-input--error{border-color:var(--color-danger)}.field-error{color:var(--color-danger);margin-top:.3rem;font-size:.8rem}.field-required{color:var(--color-danger)}.checkbox-label{cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-h)}.btn--amber{color:#fff;background:#c9a84c}.btn--amber:not(:disabled):hover{background:#a8883a}.btn--amber:disabled{opacity:.6;cursor:default}.btn--loading{position:relative}.btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.6s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn--full{width:100%}.btn--sm{padding:.3rem .7rem;font-size:.78rem}.stat-grid--3{grid-template-columns:repeat(3,1fr)}.stat-card--warn{border-color:var(--color-warning)}.stat-card--warn .stat-value{color:var(--color-warning)}.mb-1{margin-bottom:1rem}.tab-bar{border-bottom:2px solid var(--color-border);gap:.25rem;display:flex}.tab-bar--flush{border-bottom:none;margin-bottom:0}.tab-link{color:var(--color-muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.45rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.tab-link:hover{color:var(--color-text)}.tab-link--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.col-right{text-align:right}.text-mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.badge--aktiv{background:var(--color-success-bg);color:var(--color-success)}.badge--befristet{background:var(--color-warning-bg);color:var(--color-warning)}.toolbar{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.search-wrap{flex:1;max-width:400px;position:relative}.icon-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);width:30px;height:30px;color:var(--color-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.icon-btn:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-muted)}.icon-btn--danger:hover{color:var(--color-danger);border-color:var(--color-danger);background:#fef2f2}.raum-actions{justify-content:center;gap:.35rem;display:flex}.fw-medium{font-weight:500}.export-wrap{display:inline-block;position:relative}.export-chevron{margin-left:2px;transition:transform .15s}.export-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:50;min-width:210px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.export-item{color:var(--color-text);align-items:center;gap:.6rem;padding:.65rem 1rem;font-size:.875rem;text-decoration:none;transition:background .1s;display:flex}.export-item:hover{background:var(--color-bg)}.export-item svg{color:var(--color-muted);flex-shrink:0}.search-filter-bar{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.search-form{flex:1;min-width:200px;max-width:340px}.search-input-wrap{position:relative}.search-icon{width:16px;height:16px;color:var(--color-muted);pointer-events:none;position:absolute;top:50%;left:.65rem;transform:translateY(-50%)}.search-input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;color:var(--color-text);padding:.45rem .75rem .45rem 2.1rem;font-size:.875rem;transition:border-color .15s;display:block}.search-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1d4ed81a}.toolbar-count{color:var(--color-muted);white-space:nowrap;font-size:.825rem}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table thead th{text-align:left;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);white-space:nowrap;background:color-mix(in srgb, #c9a84c 5%, var(--color-surface));padding:.6rem 1rem;font-size:.75rem;font-weight:600}.data-table tbody td{border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--color-text);padding:.7rem 1rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--color-bg)}.col-center{text-align:center}.mieter-cell{align-items:center;gap:.6rem;display:flex}.avatar{color:#6b5120;letter-spacing:.02em;background:#f9f0d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.7rem;font-weight:700;display:flex}.mieter-name{font-weight:500}.mieter-einheit{color:var(--color-text);font-size:.875rem;display:block}.mieter-objekt{color:var(--color-muted);font-size:.75rem;display:block}.table-link{color:var(--color-primary);font-size:.875rem;text-decoration:none}.table-link:hover{text-decoration:underline}.pagination-wrap{border-top:1px solid var(--color-border);justify-content:flex-end;padding:.75rem 1rem;display:flex}.pagination{align-items:center;gap:.25rem;font-size:.825rem;display:flex}.pagination-btn{border:1px solid var(--color-border);border-radius:var(--radius);min-width:32px;height:32px;color:var(--color-text);background:var(--color-surface);justify-content:center;align-items:center;padding:0 .5rem;font-size:.825rem;text-decoration:none;transition:background .1s,border-color .1s;display:inline-flex}.pagination-btn:hover:not(.pagination-btn--disabled):not(.pagination-btn--active){background:var(--color-bg);border-color:var(--color-muted)}.pagination-btn--active{color:#fff;cursor:default;background:#c9a84c;border-color:#c9a84c;font-weight:600}.pagination-btn--disabled{color:var(--color-muted);cursor:default;opacity:.5}.pagination-ellipsis{color:var(--color-muted);align-items:center;padding:0 .3rem;font-size:.825rem;display:inline-flex}.flash{border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500}.flash--success{background:var(--color-success-bg);color:var(--color-success);border:1px solid color-mix(in srgb, var(--color-success) 30%, transparent)}.flash--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.form-page{max-width:760px}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:1.25rem;padding:1.5rem}.form-card-title{border-bottom:1px solid var(--color-border);margin-bottom:1.1rem;padding-bottom:.65rem;font-size:1rem;font-weight:600}.form-card-hint{color:var(--color-muted);margin-top:-.5rem;margin-bottom:1rem;font-size:.825rem}.form-row{gap:1rem;margin-bottom:0;display:grid}.form-row--2{grid-template-columns:1fr 1fr;margin-bottom:1rem}.form-row--3{grid-template-columns:1fr 1fr 1fr;margin-bottom:1rem}@media (width<=768px){.form-row--2,.form-row--3{grid-template-columns:1fr}}.form-actions{justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}.btn--cancel{color:var(--color-muted);border:1px solid var(--color-border);background:0 0}.btn--cancel:hover{background:var(--color-bg);color:var(--color-text)}.btn--outline{color:#a8883a;background:0 0;border:1px solid #c9a84c}.btn--outline:hover{color:#8a6d2f;background:#fffbeb;border-color:#a8883a}.tr--clickable{cursor:pointer}.tr--clickable:hover td{background:var(--color-bg)}.btn--danger-outline{color:var(--color-danger);border:1px solid var(--color-danger);background:0 0}.btn--danger-outline:hover{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.btn--danger{background:var(--color-danger);color:#fff;border:none}.btn--danger:hover{background:#b91c1c}.form-actions{justify-content:space-between}.form-actions-right{align-items:center;gap:.75rem;display:flex}.confirm-dialog{border-radius:var(--radius-lg);border:none;width:100%;max-width:420px;padding:0;box-shadow:0 20px 60px #00000040}.confirm-dialog::backdrop{background:#00000073}.confirm-dialog-inner{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}.confirm-dialog-icon{color:var(--color-danger)}.confirm-dialog-title{margin:0;font-size:1.1rem;font-weight:700}.confirm-dialog-text{color:var(--color-muted);margin:0;font-size:.9rem;line-height:1.5}.confirm-dialog-actions{justify-content:center;gap:.75rem;margin-top:.5rem;display:flex}.field-textarea{resize:vertical;min-height:90px}.field-file{cursor:pointer;padding:.35rem .5rem}.field-file::file-selector-button{border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);background:var(--color-surface);cursor:pointer;margin-right:.75rem;padding:.25rem .75rem;font-size:.8rem}.dok-readonly{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);align-items:center;gap:.65rem;padding:.55rem .75rem;display:flex}.dok-readonly-ext{background:var(--color-border);color:var(--color-muted);letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.65rem;font-weight:700}.dok-readonly-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.875rem;overflow:hidden}.dok-readonly-size{color:var(--color-muted);flex-shrink:0;font-size:.75rem}.field-static{color:var(--color-text);margin:0;padding:.1rem 0;font-size:.9375rem}.vg-filter-bar{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.vg-filter-group{align-items:center;gap:.6rem;display:flex}.vg-filter-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.75rem;font-weight:600}.vg-filter-btns{flex-wrap:wrap;gap:.35rem;display:flex}.vg-filter-btn{border:1px solid var(--color-border);color:var(--color-muted);cursor:pointer;background:0 0;border-radius:99px;padding:.28rem .75rem;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s,border-color .12s}.vg-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.vg-filter-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.vg-filter-btn--prio-hoch.vg-filter-btn--active{background:var(--color-danger);border-color:var(--color-danger)}.vg-filter-btn--prio-mittel.vg-filter-btn--active{background:var(--color-amber);border-color:var(--color-amber);color:#1a1a1a}.vg-filter-btn--prio-niedrig.vg-filter-btn--active{background:var(--color-success);border-color:var(--color-success)}.kanban-card--hidden{display:none}.kanban-card[role=button]{cursor:pointer}.kanban-card[role=button]:hover{transition:box-shadow .15s,transform .15s;transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.status-dialog-inner{gap:1rem}.status-btn-group{flex-direction:column;gap:.5rem;width:100%;display:flex}.status-btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;align-items:center;gap:.65rem;padding:.65rem 1rem;font-size:.9rem;font-weight:500;transition:background .12s,border-color .12s;display:flex}.status-btn:hover{background:var(--color-bg)}.status-btn--active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.edit-dialog{border-radius:var(--radius-lg);border:none;width:100%;max-width:560px;padding:0;box-shadow:0 20px 60px #00000040}.edit-dialog::backdrop{background:#00000073}.edit-dialog-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 1rem;display:flex}.edit-dialog-title{margin:0;font-size:1rem;font-weight:700}.edit-dialog-close{cursor:pointer;color:var(--color-muted);border-radius:var(--radius);background:0 0;border:none;padding:.25rem;display:flex}.edit-dialog-close:hover{color:var(--color-text);background:var(--color-bg)}.edit-dialog-body{flex-direction:column;gap:0;max-height:65vh;padding:1.25rem 1.5rem;display:flex;overflow-y:auto}.edit-dialog-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.edit-dialog-body .status-btn-group{flex-direction:row;gap:.5rem}.edit-dialog-body .status-btn{flex:1;justify-content:center;padding:.5rem .6rem;font-size:.825rem}.field-hint{color:var(--color-muted);font-size:.75rem;font-weight:400}.field-checkbox{cursor:pointer;color:var(--color-text);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.field-checkbox input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.field-checkbox+.field-hint{margin-top:.25rem}.page-back{flex-direction:column;gap:.15rem;margin-bottom:.75rem;display:flex}.page-back-crumb{letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);font-size:.68rem;font-weight:700}.page-back-link{color:var(--color-muted);align-items:center;gap:.25rem;font-size:.825rem;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.page-back-link:hover{color:var(--color-text)}.obj-banner{border-radius:var(--radius);background:#1c1917;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:1rem;padding:1.75rem 2rem;display:flex}.obj-banner-left{flex:1;min-width:0}.obj-banner-badge{letter-spacing:.08em;color:var(--color-amber);margin-bottom:.5rem;font-size:.7rem;font-weight:700;display:inline-block}.obj-banner-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin-bottom:.4rem;font-size:1.6rem;font-weight:700;line-height:1.2;overflow:hidden}.obj-banner-sub{color:#a8a29e;align-items:center;gap:.35rem;font-size:.825rem;display:flex}.obj-banner-kpis{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.obj-kpi{text-align:center;flex-direction:column;align-items:center;min-width:80px;display:flex}.obj-kpi-value{color:var(--color-amber);font-size:1.5rem;font-weight:700;line-height:1.1}.obj-kpi-label{color:#a8a29e;white-space:nowrap;margin-top:.2rem;font-size:.7rem}.obj-kpi-divider{background:#3d3936;flex-shrink:0;width:1px;height:36px}.obj-haus-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.obj-haus-tab{border:1px solid var(--color-border);color:var(--color-muted);background:var(--color-surface);border-radius:100px;align-items:center;padding:.3rem .9rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.obj-haus-tab:hover{color:var(--color-text);border-color:var(--color-muted)}.obj-haus-tab--active{color:#fff;background:#1c1917;border-color:#1c1917}.obj-search-form{margin-left:auto}@media (width<=768px){.obj-banner{flex-direction:column;align-items:flex-start;gap:1.25rem}.obj-banner-kpis{justify-content:space-around;width:100%}.obj-banner-name{white-space:normal;font-size:1.25rem}.obj-search-form{width:100%;margin-left:0}.obj-search-form .search-wrap{max-width:100%}}.filter-btn-group{flex-wrap:wrap;gap:.35rem;display:flex}.filter-btn{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-muted);background:var(--color-surface);align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.825rem;font-weight:500;text-decoration:none;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.filter-btn:hover{color:var(--color-text);background:var(--color-bg)}.filter-btn--active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.badge--status-vermietet{background:var(--color-success-bg);color:var(--color-success)}.badge--status-frei{color:#6b5120;background:#c9a84c26}.badge--status-reserviert{color:#4338ca;background:#6366f11f}.col-chevron{text-align:right;width:28px;color:var(--color-muted);padding-right:.75rem!important}.tr--clickable:hover .col-chevron{color:var(--color-text)}.avatar--sm{flex-shrink:0;width:24px;height:24px;font-size:.6rem}.radio-group{gap:1.25rem;padding-top:.4rem;display:flex}.radio-label{cursor:pointer;align-items:center;gap:.4rem;font-size:.875rem;display:flex}.radio-label input[type=radio]{accent-color:var(--color-primary);width:15px;height:15px}.tab-panel--hidden{display:none}.detail-list{grid-template-columns:1fr;gap:0;margin:0;display:grid}.detail-row{border-bottom:1px solid var(--color-border);grid-template-columns:10rem 1fr;align-items:baseline;gap:.5rem 1rem;padding:.75rem 0;display:grid}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--color-muted);font-size:.8125rem;font-weight:500}.detail-value{color:var(--color-text);font-size:.9375rem}.mieter-header{align-items:center;gap:1rem;display:flex}.mieter-header-info{flex-direction:column;gap:.2rem;display:flex}.mieter-header-name{color:var(--color-text);font-size:1.1rem;font-weight:600}.mieter-header-sub{color:var(--color-muted);font-size:.875rem}.avatar--lg{flex-shrink:0;width:52px;height:52px;font-size:1rem}.card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.notif-wrap{margin-right:.4rem;position:relative}.header-bell{position:relative}@keyframes bell-ring{0%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-10deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-6deg)}50%{transform:rotate(4deg)}60%{transform:rotate(0)}to{transform:rotate(0)}}.header-bell--active svg{transform-origin:50% 4px;animation:2.4s ease-in-out 1.5s infinite bell-ring}.notif-badge{background:var(--color-danger,#ef4444);color:#fff;text-align:center;pointer-events:none;border-radius:999px;min-width:16px;height:16px;padding:0 3px;font-size:.6rem;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-5px}.notif-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:200;width:320px;position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.notif-header{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);background:var(--color-bg);padding:.6rem 1rem;font-size:.75rem;font-weight:600}.notif-section{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--color-bg);border-top:1px solid var(--color-border);padding:.35rem 1rem;font-size:.7rem;font-weight:600}.notif-section:first-of-type{border-top:none}.notif-item{color:var(--color-text);border-bottom:1px solid var(--color-border);align-items:flex-start;gap:.65rem;padding:.6rem 1rem;text-decoration:none;transition:background .1s;display:flex}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--color-bg)}.notif-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:.1rem;display:flex}.notif-icon--vorgang{color:#6b5120;background:#c9a84c26}.notif-icon--termin{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.notif-icon--komm{color:#4338ca;background:#6366f11f}.notif-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.notif-title{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.notif-sub{color:var(--color-muted);font-size:.775rem}.notif-empty{color:var(--color-muted);text-align:center;margin:0;padding:1rem;font-size:.875rem}.gr-wrap{gap:1rem;margin-bottom:1rem;display:flex}.gr-grid-area{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex:1;min-width:0;padding:1rem}.gr-grid{gap:4px;display:grid}.gr-cell{cursor:pointer;background:#fff;border:1.5px solid #1a1a1a;border-radius:3px;flex-direction:column;justify-content:space-between;min-height:0;padding:.5rem .6rem;transition:background .12s;display:flex}.gr-cell:hover{background:#fffbeb}.gr-cell--active{background:#f9f0d8;border-width:2px;border-color:#a8883a}.gr-cell--aussen{border-style:dashed}.gr-cell-name{color:var(--color-text);font-size:.78rem;font-weight:600;line-height:1.3}.gr-cell-area{color:var(--color-muted);font-size:.72rem;font-family:var(--font-mono,monospace);margin-top:.25rem}.gr-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;flex-shrink:0;width:220px;padding:1rem;display:flex}.gr-panel-placeholder{color:var(--color-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.gr-panel-title{color:var(--color-text);margin-bottom:.75rem;font-size:.9rem;font-weight:600;line-height:1.4}.gr-detail-list{flex-direction:column;gap:.45rem;display:flex}.gr-detail-row{justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.8rem;display:flex}.gr-detail-row dt{color:var(--color-muted);flex-shrink:0}.gr-detail-row dd{color:var(--color-text);text-align:right;font-weight:500}.gr-divider{border:none;border-top:1px solid var(--color-border);margin:.75rem 0}.gr-kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin-bottom:.5rem;font-size:.72rem;font-weight:600}.hamburger{cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;display:none}.hamburger span{background:var(--color-text);border-radius:2px;height:2px;transition:opacity .15s,transform .2s;display:block}.hamburger:hover{background:var(--color-bg)}.sidebar-overlay{z-index:99;background:#00000073;display:none;position:fixed;inset:0}.sidebar-overlay--visible{display:block}.page-header-left{align-items:center;gap:.75rem;min-width:0;display:flex}@media (width<=768px){.sidebar{z-index:100;height:100dvh;box-shadow:none;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0);box-shadow:4px 0 24px #00000040}.hamburger{display:flex}.app-main{width:100%}.page-header{padding:1rem 1rem 0}.page-content{padding:0 1rem 1.5rem}.db-layout,.tc-grid,.nk-grid,.kanban{grid-template-columns:1fr}.gr-wrap{flex-direction:column}.gr-panel{width:100%}.cal-month-grid,.cal-week-grid{overflow-x:auto}.cal-week-grid{grid-template-columns:repeat(7,minmax(7rem,1fr))}.cal-day{min-height:4rem}}.cal-view-toggle{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;gap:.15rem;margin-left:auto;padding:.2rem;display:flex}.cal-view-btn{color:var(--color-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .85rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.cal-view-btn--active{color:#fff;background:#c9a84c;font-weight:600}.cal-view-btn:hover:not(.cal-view-btn--active){background:var(--color-border);color:var(--color-text)}.cal-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.cal-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.cal-nav{align-items:center;gap:.4rem;display:flex}.cal-nav-btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;width:1.9rem;height:1.9rem;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:flex}.cal-nav-btn:hover{background:var(--color-bg)}.cal-nav-label{text-align:center;min-width:11rem;font-size:.875rem;font-weight:600}.cal-today-btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-muted);padding:.22rem .6rem;font-size:.73rem;transition:all .15s}.cal-today-btn:hover{color:var(--color-text);background:var(--color-bg)}.cal-subview-toggle{gap:.2rem;margin-left:auto;display:flex}.cal-subview-btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-muted);padding:.22rem .65rem;font-size:.73rem;transition:all .15s}.cal-subview-btn--active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.cal-weekdays{border-bottom:1px solid var(--color-border);background:var(--color-bg);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{text-align:center;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;padding:.4rem;font-size:.68rem;font-weight:700}.cal-month-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-day{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:6.5rem;padding:.3rem .35rem;overflow:hidden}.cal-day:nth-child(7n){border-right:none}.cal-day:nth-last-child(-n+7){border-bottom:none}.cal-day--other{background:var(--color-bg)}.cal-day--other .cal-day-num{opacity:.3}.cal-day-num{width:1.4rem;height:1.4rem;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.2rem;font-size:.72rem;font-weight:500;display:flex}.cal-day--today .cal-day-num{background:var(--color-accent);color:#fff;font-weight:700}.cal-event{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-left:2px solid #0000;border-radius:.2rem;margin-bottom:.15rem;padding:.1rem .3rem;font-size:.63rem;font-weight:500;line-height:1.5;text-decoration:none;display:block;overflow:hidden}.cal-event:hover{opacity:.8;filter:brightness(.97)}.cal-event--ubergabe{color:#6b5120;background:#f9f0d8;border-left-color:#c9a84c}.cal-event--besichtigung{color:#1e40af;background:#dbeafe;border-left-color:#3b82f6}.cal-event--wartung{color:#991b1b;background:#fee2e2;border-left-color:#ef4444}.cal-event--gespraech{color:#166534;background:#dcfce7;border-left-color:#22c55e}.cal-event--sonstiges{background:var(--color-bg);color:var(--color-muted);border-left-color:var(--color-border)}.cal-week-grid{grid-template-columns:repeat(7,1fr);min-height:14rem;display:grid}.cal-week-col{border-right:1px solid var(--color-border);padding:.5rem .4rem}.cal-week-col:last-child{border-right:none}.cal-week-col--today{background:#f59e0b0a}.cal-week-header{text-align:center;border-bottom:1px solid var(--color-border);margin-bottom:.4rem;padding-bottom:.5rem}.cal-week-dow{text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);font-size:.62rem;font-weight:700;display:block}.cal-week-date{color:var(--color-text);margin-top:.1rem;font-size:.82rem;font-weight:600;display:block}.cal-week-col--today .cal-week-date{color:var(--color-accent)}.cal-event--block{white-space:normal;flex-direction:column;gap:.05rem;margin-bottom:.3rem;padding:.25rem .35rem}.cal-event-time{opacity:.7;font-size:.58rem;font-weight:400}.cal-event-titel{font-size:.65rem;font-weight:600;line-height:1.3}.cal-week-empty{color:var(--color-muted);text-align:center;opacity:.5;padding-top:.75rem;font-size:.75rem}.cal-legend{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:1rem;padding:.6rem 1rem;display:flex}.cal-legend-item{color:var(--color-muted);align-items:center;gap:.35rem;font-size:.72rem;display:flex}.cal-legend-dot{border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem}.cal-legend-dot--ubergabe{background:#c9a84c}.cal-legend-dot--besichtigung{background:#3b82f6}.cal-legend-dot--wartung{background:#ef4444}.cal-legend-dot--gespraech{background:#22c55e}.cal-legend-dot--sonstiges{background:var(--color-muted)}@media (width<=480px){.page-header{flex-direction:column;align-items:stretch;gap:.75rem}.page-actions{flex-wrap:wrap;justify-content:flex-end}.stat-grid--3{grid-template-columns:1fr}.edit-dialog{width:calc(100% - 2rem);max-height:90vh;margin:auto 1rem;overflow-y:auto}.vg-filter-bar{flex-wrap:wrap;gap:.75rem}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn,.form-actions-right{width:100%}.form-actions-right{flex-direction:column;gap:.5rem;display:flex}.form-actions-right .btn{justify-content:center;width:100%}.tab-bar{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-link{flex-shrink:0}.data-table th,.data-table td{padding:.5rem .6rem;font-size:.8rem}}@media print{.sidebar,.sidebar-overlay,.page-header,.hamburger,.flash,.pagination-wrap,.form-actions,.btn,.tab-bar,.filter-bar,.notif-wrap,.cal-view-toggle{display:none!important}.app-body{display:block}.app-main{width:100%;display:block}.page-content{padding:0}*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:none;color:#000!important}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{border:1px solid #ccc;padding:.3rem .5rem}tr,.card,.form-card{page-break-inside:avoid}}[data-theme=dark]{--color-bg:#1a1a1a;--color-surface:#242424;--color-border:#333;--color-text:#f5f0e8;--color-muted:#9aaa8e;--color-primary:#c9a84c;--color-primary-h:#a8883a;--color-warning:#c9a84c;--color-warning-bg:#3a4a3b;--color-success-bg:#2d3a2e;--color-danger-bg:#3a2d2d}[data-theme=dark] a{color:#c9a84c}[data-theme=dark] a:hover{color:#d4b86a}[data-theme=dark] .btn,[data-theme=dark] .btn:hover,[data-theme=dark] .nav-link,[data-theme=dark] .nav-link:hover,[data-theme=dark] .tab-link,[data-theme=dark] .belegung-row,[data-theme=dark] .termin-row,[data-theme=dark] .vg-row,[data-theme=dark] .tr--clickable,[data-theme=dark] .notif-item,[data-theme=dark] .act-row{color:inherit}[data-theme=dark] .sidebar{background:#222e23}[data-theme=dark] .sidebar-brand-name{color:#f5f0e8}[data-theme=dark] .sidebar-brand-sub{color:#7a8e72}[data-theme=dark] .nav-link{color:#c8d5c2}[data-theme=dark] .nav-link:hover:not(.nav-link--disabled){color:#f5f0e8;background:#1e281f}[data-theme=dark] .nav-section{color:#7a8e72}[data-theme=dark] .nav-divider{background:#3a4a3b}[data-theme=dark] .page-header{background:#3a4a3b;border-bottom-color:#4a5c4b}[data-theme=dark] .card{-webkit-backdrop-filter:blur(10px);background:#242424cc;border:1px solid #ffffff12;box-shadow:0 2px 8px #00000059,0 1px 2px #0003}[data-theme=dark] .data-table thead th{background:#45523c}[data-theme=dark] .data-table tbody tr:hover td{background:#2d3a2e}[data-theme=dark] .tab-bar{border-bottom-color:#4a5c4b}[data-theme=dark] .tab-link{color:#9aaa8e}[data-theme=dark] .tab-link--active{color:#c9a84c;border-bottom-color:#c9a84c}[data-theme=dark] .tab-count{color:#c8d5c2;background:#4a5c4b}[data-theme=dark] .search-input{color:#f5f0e8;background:#2d3a2e;border-color:#4a5c4b}[data-theme=dark] .search-input::placeholder{color:#7a8e72}[data-theme=dark] .form-input,[data-theme=dark] .form-select,[data-theme=dark] .form-textarea{color:#f5f0e8;background:#2d3a2e;border-color:#4a5c4b}[data-theme=dark] .form-input::placeholder,[data-theme=dark] .form-textarea::placeholder{color:#7a8e72}[data-theme=dark] .badge--status-frei{color:#c9a84c;background:#c9a84c2e}[data-theme=dark] .notif-dropdown{background:#3a4a3b;border-color:#4a5c4b}[data-theme=dark] .notif-item:hover{background:#2d3a2e}[data-theme=dark] .notif-header,[data-theme=dark] .notif-section{border-bottom-color:#4a5c4b}[data-theme=dark] .flash--success{background:#33553b;border-color:#15803d}[data-theme=dark] .flash--error{background:#5a4337;border-color:#dc2626}.theme-toggle{border-radius:var(--radius);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.theme-toggle:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-amber)}.icon-theme{display:none}[data-theme-mode=light] .icon-theme--light,[data-theme-mode=dark] .icon-theme--dark,[data-theme-mode=system] .icon-theme--system{display:block}[data-theme=dark] .badge--info,[data-theme=dark] .dok-badge--mietvertrag{color:#93c5fd;background:#93c5fd26}[data-theme=dark] .badge--status-reserviert,[data-theme=dark] .notif-icon--komm{color:#a5b4fc;background:#a5b4fc26}[data-theme=dark] .dok-badge--protokoll{color:#86efac;background:#86efac26}[data-theme=dark] .dok-badge--energieausweis{color:#d8b4fe;background:#d8b4fe26}[data-theme=dark] .dok-badge--grundriss{color:#fdba74;background:#fdba7426}[data-theme=dark] .dok-icon--pdf{color:#fca5a5;background:#fca5a526}[data-theme=dark] .dok-icon--webp{color:#86efac;background:#86efac26}[data-theme=dark] .dok-icon--docx{color:#93c5fd;background:#93c5fd26}[data-theme=dark] .act-icon--blue{color:#d4b86a;background:#c9a84c26}[data-theme=dark] .act-icon--purple{color:#d8b4fe;background:#d8b4fe26}[data-theme=dark] .act-icon--green{color:#86efac;background:#86efac26}[data-theme=dark] .tc-msg-avatar--typ{color:#c8d5c2;background:#4a5c4b}[data-theme=dark] .tc-msg-avatar--eingehend{color:#d4b86a;background:#c9a84c33}[data-theme=dark] .tc-msg-avatar--ausgehend{color:#86efac;background:#86efac26}[data-theme=dark] .tc-msg--unread{background:#45523c}[data-theme=dark] .tc-msg--unread:hover{background:#4b553d}[data-theme=dark] .cal-event--ubergabe{color:#d4b86a;background:#575d3e;border-left-color:#c9a84c}[data-theme=dark] .cal-event--besichtigung{color:#93c5fd;background:#4a605e;border-left-color:#60a5fa}[data-theme=dark] .cal-event--wartung{color:#fca5a5;background:#5d5a4e;border-left-color:#f87171}[data-theme=dark] .cal-event--gespraech{color:#86efac;background:#48684f;border-left-color:#4ade80}[data-theme=dark] .notif-icon--vorgang{color:#d4b86a;background:#c9a84c2e}[data-theme=dark] .icon-btn--danger:hover{background:#dc262633}[data-theme=dark] .btn--outline{color:#c8d5c2;border-color:#4a5c4b}[data-theme=dark] .btn--outline:hover{color:#f5f0e8;background:#4a5c4b}[data-theme=dark] .flash--warning{color:#f5f0e8;background:#545b3e;border-color:#c9a84c}[data-theme=dark] .sidebar-avatar{color:#f5f0e8;background:#545636}[data-theme=dark] .kanban-col-header{background:#2d3a2e}[data-theme=dark] .kanban-col{background:#2d3a2e;border-color:#4a5c4b}[data-theme=dark] .kanban-card{background:#3a4a3b;border-color:#4a5c4b}[data-theme=dark] .vg-filter-btn{color:#c8d5c2;background:#3a4a3b;border-color:#4a5c4b}[data-theme=dark] .vg-filter-btn:hover{background:#4a5c4b}[data-theme=dark] .form-card{background:#3a4a3b;border-color:#4a5c4b}[data-theme=dark] .form-label{color:#c8d5c2}[data-theme=dark] .field-static{color:#f5f0e8;background:#2d3a2e;border-color:#4a5c4b}[data-theme=dark] .pagination-link{color:#c8d5c2;background:#3a4a3b;border-color:#4a5c4b}[data-theme=dark] .pagination-link:hover{background:#4a5c4b}[data-theme=dark] .pagination-link--active{color:#1c1917;background:#c9a84c;border-color:#c9a84c}[data-theme=dark] .pagination-dots{color:#9aaa8e}[data-theme=dark] select option{color:#f5f0e8;background:#3a4a3b}
