*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;overscroll-behavior:none}:root{--sidebar-bg: #2d4a35;--sidebar-text: #b8cdb4;--sidebar-active-bg: rgba(255,255,255,.12);--sidebar-active-text: #ffffff;--bg: #f5f3ee;--surface: #ffffff;--border: #e8e4dc;--text: #1a1a2e;--text-muted: #6b7280;--accent: #2d4a35;--accent-hover:#1e3325;--danger: #dc2626;--warning: #d97706;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;overflow-x:hidden}#root{overflow-x:hidden;max-width:100vw}.demo-recorder{position:fixed;right:24px;bottom:24px;z-index:1000;width:min(390px,calc(100vw - 48px));padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#191f1bf5;color:#fff;box-shadow:0 16px 42px #00000047}.demo-recorder-close{position:absolute;top:10px;right:10px;display:grid;width:28px;height:28px;place-items:center;border:0;background:transparent;color:#b8cdb4;cursor:pointer}.demo-recorder-heading{display:flex;align-items:center;gap:10px;padding-right:26px}.demo-recorder-heading div{display:flex;flex-direction:column}.demo-recorder-heading strong{font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:600}.demo-recorder-heading span{color:#b8cdb4;font-size:12px}.demo-recorder-narration{margin:14px 0;color:#f3f4f1;font-size:15px;line-height:1.55}.demo-recorder-error{margin-top:12px;color:#fca5a5;font-size:13px}.demo-recorder-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;min-height:40px;border:0;border-radius:6px;background:#e8c873;color:#172019;font:inherit;font-weight:700;cursor:pointer}.app-shell{display:flex;height:100vh;overflow:hidden;max-width:100vw}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar{width:240px;flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;padding:20px 12px;gap:8px}.sidebar-logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;font-size:15px;padding:4px 8px 16px}.sidebar-logo-icon{width:36px;height:36px;border-radius:8px;background:#ffffff26;display:flex;align-items:center;justify-content:center;color:#fff}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--sidebar-text);text-decoration:none;font-size:13.5px;font-weight:500;transition:background .15s,color .15s}.sidebar-link:hover{background:#ffffff14;color:#fff}.sidebar-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar-separator{height:1px;background:#ffffff1a;margin:8px 12px}.sidebar-footer{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:#fff3;color:#fff;font-weight:600;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-info{flex:1;overflow:hidden}.sidebar-user-name{color:#fff;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{color:var(--sidebar-text);font-size:11px}.sidebar-logout{background:none;border:none;cursor:pointer;color:var(--sidebar-text);padding:4px;border-radius:4px;display:flex;align-items:center}.sidebar-logout:hover{color:#fff}.topbar{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;min-width:0;position:relative;z-index:100}.topbar-title{font-size:14px;font-weight:500;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-search{flex:1;max-width:320px;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:6px 14px;color:var(--text-muted)}.topbar-search input{border:none;background:none;outline:none;font-size:13px;flex:1;color:var(--text)}.topbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.topbar-bell{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:6px;display:flex}.topbar-user{display:flex;align-items:center;gap:8px}.topbar-user-menu{position:relative}.topbar-user-btn{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);color:var(--text);transition:background .15s}.topbar-user-btn:hover{background:var(--bg)}.topbar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;min-width:200px;z-index:200;padding:4px}.topbar-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--text);border-radius:var(--radius-sm);text-align:left;transition:background .15s}.topbar-dropdown button:hover{background:var(--bg)}.topbar-avatar{width:32px;height:32px;border-radius:50%;background:#c9a96e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.topbar-user-name{font-size:13px;font-weight:500}.topbar-user-role{font-size:11px;color:var(--text-muted)}.page-content{flex:1;overflow-y:auto;overflow-x:hidden}.page{padding:28px 32px;max-width:1400px;width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page h1{font-size:24px;font-weight:700}.page-sub{color:var(--text-muted);font-size:13.5px;margin-top:2px}.page-error{color:var(--danger);padding:12px}.page-loading{color:var(--text-muted);padding:12px}.empty-state{color:var(--text-muted);padding:40px;text-align:center}.empty-state-block{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state-icon{font-size:40px;color:var(--accent);margin:0 0 8px;line-height:1}.empty-state-title{font-size:17px;font-weight:600;color:var(--text);margin:0 0 6px}.empty-state-sub{font-size:14px;color:var(--text-muted);margin:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px}.stat-grid--4{grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.stat-card--alert{border-color:#fca5a5;background:#fef2f2}.stat-label{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px}.stat-value{font-size:22px;font-weight:700;line-height:1.2}.stat-sub{font-size:11px;color:var(--text-muted);margin-top:4px}.btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:20px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;gap:6px;background:var(--danger);color:#fff;border:none;border-radius:20px;padding:7px 14px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border-radius:var(--radius);padding:40px;width:100%;max-width:400px;box-shadow:0 4px 24px #00000014}.login-logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;margin-bottom:32px}.login-logo-icon{width:40px;height:40px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.login-heading{font-size:28px;font-weight:700;margin-bottom:4px}.login-sub{color:var(--text-muted);margin-bottom:28px}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:500}.login-field input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;outline:none;transition:border-color .15s}.login-field input:focus{border-color:var(--accent)}.login-error{color:var(--danger);font-size:13px}.login-footer{margin-top:20px;text-align:center;font-size:12px;color:var(--text-muted)}.login-link{background:none;border:none;cursor:pointer;padding:0;color:var(--accent);font-size:12px;text-decoration:underline;font-family:inherit}.login-link:hover{color:var(--accent-hover)}.login-reset-success{text-align:center;padding:16px 0;font-size:14px;color:#16a34a}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.property-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.property-card-image{position:relative;height:180px;background:#e5e7eb;overflow:hidden}.property-card-image img{width:100%;height:100%;object-fit:cover}.property-card-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#d1d5db,#9ca3af)}.property-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);color:#fff}.property-card-overlay h3{font-size:16px;font-weight:600}.property-card-overlay p{font-size:12px;opacity:.85}.property-card-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.property-stat-label{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.property-stat-value{font-size:16px;font-weight:700;margin-top:2px}.property-stat-value--key-system{font-size:13px;font-weight:500;line-height:1.45}.property-card-footer{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);margin-top:auto}.property-keys{font-size:12px;color:var(--text-muted);margin-left:auto}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600}.badge--vacant{background:#fef3c7;color:#92400e;position:absolute;top:10px;right:10px}.badge--tasks{background:#fef3c7;color:#92400e}.filter-row{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--surface);font-size:13px;cursor:pointer;transition:all .15s}.filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-chip:hover:not(.active){border-color:var(--accent)}.data-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table-header{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr 1fr 1fr;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.data-table-row{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr 1fr 1fr;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13.5px;align-items:center}.data-table-row:last-child{border-bottom:none}.data-table-row:hover{background:var(--bg)}.task-title{font-weight:500}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.status-new{background:#f1f5f9;color:#64748b}.status-ongoing{background:#e2e8f0;color:#334155}.status-waiting{background:#f1f5f9;color:#94a3b8}.status-done{background:#f8fafc;color:#94a3b8}.chart-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.chart-section h2{font-size:15px;font-weight:600;margin-bottom:16px}.year-select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;background:var(--surface);cursor:pointer}.btn-secondary{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:20px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-size:13.5px;color:var(--text-muted);cursor:pointer;transition:color .15s}.btn-back:hover{color:var(--accent)}.property-card--clickable{cursor:pointer;transition:box-shadow .15s,transform .1s}.property-card--clickable:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:250;padding:16px}.modal{background:var(--surface);border-radius:var(--radius);padding:28px;width:100%;max-width:480px;box-shadow:0 8px 32px #0000002e;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:18px;font-weight:700}.modal-close{background:none;border:none;cursor:pointer;padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);border-radius:8px;transition:background .15s;flex-shrink:0}.modal-close:hover{background:var(--bg);color:var(--text)}.form-grid{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:5px}.form-field label{font-size:13px;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;outline:none;font-family:inherit;background:var(--surface);color:var(--text);transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.task-form-advanced-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;color:var(--text-muted);cursor:pointer;width:100%;text-align:left}.task-form-advanced-toggle:hover{background:var(--bg);color:var(--text)}.form-error{color:var(--danger);font-size:13px}.form-success{color:#16a34a;font-size:13px}.meeting-minutes-workspace{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);min-height:560px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.meeting-minutes-list{border-right:1px solid var(--border);background:#faf9f6;overflow-y:auto}.meeting-minutes-list-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:16px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.meeting-minutes-list-item:hover{background:var(--surface)}.meeting-minutes-list-item.active{background:var(--surface);box-shadow:inset 3px 0 var(--accent)}.meeting-minutes-list-item strong{font-size:14px}.meeting-minutes-list-item>span:last-child{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-minutes-list-date{display:flex;align-items:center;gap:5px;color:var(--text-muted);font-size:12px}.meeting-minutes-document{min-width:0;padding:32px clamp(24px,5vw,64px)}.meeting-minutes-document-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.meeting-minutes-document-header h2{font-size:21px}.meeting-minutes-document-date{color:var(--text-muted);font-size:13px;margin-bottom:4px}.meeting-minutes-actions{display:flex;gap:6px}.meeting-minutes-icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);cursor:pointer}.meeting-minutes-icon-button:hover{color:var(--accent);border-color:var(--accent)}.meeting-minutes-icon-button.danger:hover{color:var(--danger);border-color:var(--danger)}.meeting-minutes-participants{padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--border);color:var(--text-muted)}.meeting-minutes-participants strong{color:var(--text)}.meeting-minutes-content{max-width:78ch;white-space:pre-wrap;line-height:1.75}.meeting-minutes-form{display:flex;flex-direction:column;gap:16px}.meeting-minutes-content-field textarea{min-height:320px;line-height:1.65}.meeting-minutes-error{margin-bottom:16px;color:var(--danger)}.meeting-minutes-page .empty-state-block .btn-primary{margin-top:18px}@media(max-width:767px){.meeting-minutes-page{padding-bottom:88px}.meeting-minutes-workspace{display:flex;flex-direction:column;min-height:0;overflow:visible}.meeting-minutes-list{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.meeting-minutes-list-item{min-width:210px;max-width:240px;border-bottom:0;border-right:1px solid var(--border)}.meeting-minutes-list-item.active{box-shadow:inset 0 -3px var(--accent)}.meeting-minutes-document{padding:24px 18px}.meeting-minutes-document .form-row{grid-template-columns:1fr}.meeting-minutes-content-field textarea{min-height:280px}}.detail-back{margin-bottom:16px}.detail-info-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.detail-info-item{display:flex;flex-direction:column;gap:3px}.detail-info-label{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.detail-info-value{font-size:14px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h2{font-size:16px;font-weight:700}.apt-table-header,.apt-table-row{display:grid;grid-template-columns:1fr 80px 100px 80px 160px 2fr;padding:10px 16px;gap:12px;align-items:center}.apt-table-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.apt-table-row{border-bottom:1px solid var(--border);font-size:13.5px}.apt-table-row:last-child{border-bottom:none}.apt-table-row:hover{background:var(--bg)}.apt-unit{font-weight:600}.apt-notes{color:var(--text-muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.splash{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted)}.apt-table-header--8col,.apt-table-row--8col{grid-template-columns:110px 60px 80px 55px 140px 1.5fr 100px 1fr}.apt-table-row--8col>span:nth-child(6),.apt-table-row--8col>span:nth-child(8){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apt-actions{display:flex;align-items:center;justify-content:space-between}.apt-delete{flex-shrink:0;padding:4px 8px;border-radius:6px}.apt-delete:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.apt-table-header--7col,.apt-table-row--7col{grid-template-columns:110px 80px 80px 55px 130px 1.5fr 100px}.apt-table-row--7col>span:nth-child(6){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apartments-filter{position:relative}.apartments-filter select{width:100%}.apartments-filter>svg{display:none}.apt-row-clickable{color:inherit;cursor:pointer;text-decoration:none}.apt-row-clickable:hover{background:#f0fdf4}.apt-row-clickable:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.apt-status-uthyrd{background:#f0fdf4;color:#15803d}.apt-status-vakant{background:#fefce8;color:#a16207}.apt-status-renovering{background:var(--bg);color:var(--text-muted)}.apt-status-atgard{background:#fff7ed;color:#c2410c}.apt-unit-type{background:var(--bg);color:var(--text-muted)}.contract-badge--aktiv{background:#dcfce7;color:#166534}.contract-badge--avslutad{background:#f1f5f9;color:#64748b}.contract-badge--uppsagd{background:#fff7ed;color:#c2410c}.contract-table-header,.contract-table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 120px;padding:10px 16px;gap:12px;align-items:center}.contract-table-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.contract-table-row{border-bottom:1px solid var(--border);font-size:13.5px}.contract-table-row:last-child{border-bottom:none}.contract-table-row:hover{background:var(--bg)}.cost-table-header,.cost-table-row{display:grid;grid-template-columns:100px 1.5fr 120px 2fr 1fr 100px;padding:10px 16px;gap:12px;align-items:center}.cost-table-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.cost-table-row{border-bottom:1px solid var(--border);font-size:13.5px}.cost-table-row:last-child{border-bottom:none}.cost-table-row:hover{background:var(--bg)}.cost-table-total{background:var(--bg);border-top:2px solid var(--border)}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#e0f2fe;color:#0369a1}.key-table-header,.key-table-row{display:grid;grid-template-columns:1.5fr 120px 120px 1.5fr 100px 180px;padding:10px 16px;gap:12px;align-items:center}.key-table-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.key-table-row{border-bottom:1px solid var(--border);font-size:13.5px}.key-table-row:last-child{border-bottom:none}.key-table-row:hover{background:var(--bg)}.key-status-cell{display:flex;align-items:center;gap:8px}.badge--green{background:#dcfce7;color:#166534}.badge--gray{background:#f1f5f9;color:#64748b}.btn-sm{padding:3px 10px!important;font-size:12px!important}.report-prop-header,.report-prop-row{display:grid;grid-template-columns:1.5fr 2fr 60px 80px 110px 130px 70px;padding:10px 16px;gap:12px;align-items:center}.report-prop-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.report-prop-row{border-bottom:1px solid var(--border);font-size:13.5px}.report-prop-row:last-child{border-bottom:none}.report-prop-row:hover{background:var(--bg)}.report-cost-header,.report-cost-row{display:grid;grid-template-columns:2fr 120px 160px;padding:10px 16px;gap:12px;align-items:center}.report-cost-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.report-cost-row{border-bottom:1px solid var(--border);font-size:13.5px}.report-cost-row:last-child{border-bottom:none}.report-cost-row:hover{background:var(--bg)}.report-total-row{background:var(--bg);border-top:2px solid var(--border)!important}.report-muted{color:var(--text-muted)}.text-right{text-align:right}.docs-placeholder-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:560px}.docs-placeholder-icon{color:var(--text-muted);margin-bottom:4px}.docs-placeholder-card h2{font-size:17px;font-weight:700}.docs-placeholder-card p{color:var(--text-muted);font-size:14px;line-height:1.6}.feedback-page{display:flex;flex-direction:column;gap:28px;max-width:760px}.feedback-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:6px}.feedback-title{font-size:24px;font-weight:700;margin-bottom:6px}.feedback-desc{color:var(--text-muted);font-size:14px;line-height:1.6}.feedback-form-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.feedback-form{display:flex;flex-direction:column;gap:14px}.feedback-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.feedback-img-btn{display:flex;align-items:center;gap:6px}.feedback-previews{display:flex;gap:10px;flex-wrap:wrap}.feedback-preview-item{position:relative;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.feedback-preview-item img{width:100%;height:100%;object-fit:cover}.feedback-preview-remove{position:absolute;top:3px;right:3px;background:#0000008c;border:none;border-radius:50%;width:18px;height:18px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;padding:0}.feedback-list-section{display:flex;flex-direction:column;gap:16px}.feedback-list-header h3{font-size:16px;font-weight:700;margin-bottom:4px}.feedback-list-sub{font-size:13px;color:var(--text-muted)}.feedback-empty{color:var(--text-muted);font-size:14px}.feedback-list{display:flex;flex-direction:column;gap:14px}.feedback-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px}.feedback-card--fixed{border-color:#bbf7d0;background:#f0fdf4}.feedback-card-meta{display:flex;align-items:center;gap:10px}.feedback-card-author{font-size:13px;font-weight:600}.feedback-card-date{font-size:12px;color:var(--text-muted)}.feedback-card-message{font-size:14px;line-height:1.65;white-space:pre-wrap}.feedback-card-images{display:flex;gap:8px;flex-wrap:wrap}.feedback-thumb{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.feedback-fixed-badge{background:#dcfce7;border:1px solid #86efac;border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.feedback-fixed-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#15803d}.feedback-fixed-date{font-size:11px;color:#166534;margin-left:auto}.feedback-fixed-note{font-size:13px;color:#166534;line-height:1.5}.feedback-fix-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:7px 12px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s;font-family:inherit;align-self:flex-start}.feedback-fix-btn:hover{border-color:#16a34a;color:#16a34a}.feedback-fix-form{display:flex;flex-direction:column;gap:8px}.feedback-fix-actions{display:flex;gap:8px}.tasks-page{max-width:1200px}.tasks-stat-grid{grid-template-columns:repeat(2,1fr)}@media(min-width:640px){.tasks-stat-grid{grid-template-columns:repeat(4,1fr)}}.tasks-new-btn-desktop{display:none}@media(min-width:640px){.tasks-new-btn-desktop{display:inline-flex}}.tasks-filter-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:20px;width:100%;max-width:100%}.tasks-filter-scroll::-webkit-scrollbar{display:none}.tasks-filter-row{flex-wrap:nowrap;white-space:nowrap;margin-bottom:0;padding-bottom:2px}.filter-chip-count{display:inline-flex;align-items:center;justify-content:center;background:var(--danger);color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;margin-left:4px}.filter-chip.active .filter-chip-count{background:#ffffff59}.tasks-table-desktop{display:none}@media(min-width:768px){.tasks-table-desktop{display:block}.tasks-table-desktop .data-table-header{grid-template-columns:2.5fr 1.5fr 1fr 1fr .8fr 1fr 40px}.tasks-table-desktop .data-table-row{grid-template-columns:2.5fr 1.5fr 1fr 1fr .8fr 1fr 40px;cursor:pointer}}.tasks-row--overdue{border-left:3px solid var(--danger)}.tasks-cards-mobile{display:flex;flex-direction:column;gap:10px}@media(min-width:768px){.tasks-cards-mobile{display:none}}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:box-shadow .15s;-webkit-tap-highlight-color:transparent}.task-card:active{box-shadow:0 0 0 2px var(--accent)}.task-card--overdue{border-left:3px solid var(--danger)}.task-card-top{display:flex;align-items:center;gap:8px}.task-card-status{font-family:inherit;cursor:pointer;border:none;-webkit-tap-highlight-color:transparent}.task-card-arrow{margin-left:auto;color:var(--text-muted);flex-shrink:0}.task-overdue-icon{color:var(--danger)}.task-card-title{font-size:15px;font-weight:600;line-height:1.4}.task-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-card-prop{font-size:12px;color:var(--text-muted);background:var(--bg);border-radius:6px;padding:2px 7px}.task-card-assignee{font-size:12px;color:var(--text-muted)}.task-card-due{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.task-card-desc{font-size:13px;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-due--overdue{color:var(--danger);font-weight:600}.task-due--soon{color:#d97706;font-weight:600}.prio-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.prio-low,.prio-normal{background:#f1f5f9;color:#94a3b8}.prio-high{background:#fff7ed;color:#c2410c;font-weight:700}.prio-urgent{background:#fef2f2;color:#dc2626;font-weight:700}.tasks-fab{display:flex;align-items:center;justify-content:center;position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;box-shadow:0 4px 16px #00000040;cursor:pointer;z-index:50;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent}.tasks-fab:active{transform:scale(.94)}@media(min-width:640px){.tasks-fab{display:none}}.tasks-fab{display:none!important}.topbar-menu-btn{display:none;background:none;border:none;cursor:pointer;color:var(--text);padding:4px;border-radius:6px;align-items:center;justify-content:center;flex-shrink:0}.topbar-menu-btn:hover{background:var(--bg)}.sidebar-overlay{display:none}@media(max-width:767px){.app-shell{position:fixed;top:0;left:0;right:0;bottom:0;height:auto}.sidebar{position:fixed;top:0;left:-260px;bottom:0;z-index:300;transition:left .25s cubic-bezier(.4,0,.2,1);width:240px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:299}.nav-open .sidebar{left:0}.nav-open .sidebar-overlay{display:block}.topbar-menu-btn{display:flex}.topbar-search--desktop{display:none}input,select,textarea{font-size:16px!important}.page{padding:16px;max-width:100%}.page-header{margin-bottom:16px}.topbar{padding:10px 16px;gap:10px}.topbar-title{font-size:15px;font-weight:600;color:var(--text);flex:1}.topbar-user-btn>div:last-child{display:none}.page h1,.page-sub{display:none}.page-content{padding-bottom:72px}.modal-overlay{padding:0;align-items:stretch}.modal{max-width:100%;max-height:100%;height:100%;border-radius:0;padding:20px 16px 0;padding-top:max(20px,env(safe-area-inset-top,20px));display:flex;flex-direction:column}.modal .form-grid{flex:1;overflow-y:auto;padding-bottom:16px}.modal .form-row{grid-template-columns:1fr}.modal .form-actions{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 0;padding-bottom:max(16px,env(safe-area-inset-bottom,16px));display:flex;flex-direction:column-reverse;gap:8px;margin-top:0}.modal .form-actions .btn-primary{width:100%;min-height:52px;font-size:15px;border-radius:10px}.modal .form-actions .btn-secondary{width:100%;min-height:44px;text-align:center}.modal .form-actions>div{display:none}}.bottom-nav{display:none}@media(max-width:767px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border);z-index:200;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:10px;font-weight:500;text-decoration:none;background:none;border:none;cursor:pointer;padding:6px 4px;transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active,.bottom-nav-item:active{color:var(--accent)}.bottom-nav-new-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;margin-bottom:-2px}.bottom-nav-new,.bottom-nav-new:active{color:var(--text-muted)}}.properties-stat-grid{grid-template-columns:repeat(5,1fr);margin-bottom:24px}@media(max-width:900px){.properties-stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.properties-stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-sub--warn{color:#d97706}.property-card-badges{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-top:1px solid var(--border)}.prop-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:3px 8px;border-radius:6px;border:1px solid}.prop-badge--tasks{background:#fffbeb;color:#92400e;border-color:#fde68a}.prop-badge--muted{background:var(--bg);color:var(--text-muted);border-color:var(--border)}.property-card-footer{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border)}.property-card-btn{padding:6px 12px;font-size:12px;border-radius:8px}.property-detail-stat-grid{grid-template-columns:repeat(5,1fr);margin-bottom:28px}@media(max-width:900px){.property-detail-stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.property-detail-stat-grid{grid-template-columns:repeat(2,1fr)}}.property-hero{position:relative;height:260px;border-radius:16px;overflow:hidden;margin-bottom:28px;background:#1a2035;background-size:cover;background-position:center}.property-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.18) 60%,transparent 100%)}.property-hero-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:space-between;padding:24px 28px;gap:16px}.property-hero-info h1{font-size:28px;font-weight:700;color:#fff;margin:0 0 4px}.property-hero-info p{font-size:14px;color:#fffc;margin:0 0 4px}.property-hero-company{display:flex;flex-direction:column;gap:3px;margin:8px 0 12px;color:#fff;font-size:16px;font-weight:700}.property-hero-company div{display:flex;flex-wrap:wrap;gap:14px}.property-hero-badges{display:flex;gap:8px;flex-wrap:wrap}.hero-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.hero-badge--green{background:#16a34a;color:#fff}.hero-badge--dark{background:#ffffff2e;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.property-hero-actions{display:flex;gap:10px;flex-shrink:0;align-self:flex-end}.property-hero-upload{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.property-hero-upload:hover:not(:disabled){background:#000000a6}.property-hero-upload:disabled{opacity:.6;cursor:default}.reg-doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}@media(max-width:700px){.reg-doc-grid{grid-template-columns:1fr}}.reg-doc-card{display:flex;flex-direction:column;gap:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.reg-doc-heading{display:flex;flex-direction:column;gap:2px}.reg-doc-label{font-size:14px;font-weight:600;color:var(--text)}.reg-doc-desc{font-size:11px;color:var(--text-muted)}.reg-doc-save{align-self:flex-end;min-width:90px;justify-content:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s;text-decoration:none}.btn-icon:hover:not(:disabled){background:var(--bg)}.btn-icon:disabled{opacity:.5;cursor:default}.btn-icon--danger:hover:not(:disabled){background:#fee2e2;color:#991b1b;border-color:#fca5a5}.doc-viewer-modal{background:var(--surface);border-radius:16px;width:min(900px,95vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #00000040}.doc-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);gap:12px}.doc-viewer-title{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-viewer-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:#f8f8f8;padding:8px}.reg-doc-renewal{font-size:11px;font-weight:500}.reg-doc-renewal--expired{color:#dc2626}.reg-doc-renewal--soon{color:#d97706}.equipment-table-header,.equipment-table-row{display:grid;grid-template-columns:1.4fr 1.6fr 100px 60px 120px 1.2fr 76px;gap:0 12px;align-items:center;padding:10px 16px}.equipment-table-header{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.equipment-table-row{font-size:13.5px;border-bottom:1px solid var(--border)}.equipment-table-row:last-child{border-bottom:none}.equipment-table-row:hover{background:#f9fafb}.equipment-print-heading{display:none}.equipment-filters{margin-bottom:20px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.equipment-filter-title{display:flex;align-items:center;gap:7px;margin-bottom:14px;font-size:13px;font-weight:700}.equipment-filter-grid{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1.2fr) minmax(210px,1.5fr) minmax(190px,1.2fr) minmax(190px,1.2fr);gap:12px;align-items:end}.equipment-filter-grid .form-field{gap:5px}.equipment-filter-grid .form-field>span:first-child,.equipment-range-filter legend{font-size:11px;font-weight:600;color:var(--text-muted)}.equipment-filter-grid select,.equipment-filter-grid input{width:100%;min-width:0;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;background:var(--surface);color:var(--text);outline:none}.equipment-filter-grid select:focus,.equipment-filter-grid input:focus{border-color:var(--accent)}.equipment-search-input{position:relative;display:block}.equipment-search-input svg{position:absolute;left:10px;top:13px;color:var(--text-muted);pointer-events:none}.equipment-search-input input{padding-left:32px}.equipment-range-filter{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px;min-width:0;padding:0;border:0}.equipment-range-filter legend{grid-column:1 / -1;margin-bottom:5px}.equipment-range-filter span{color:var(--text-muted)}.equipment-filter-footer{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px}.equipment-reset-button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.equipment-overview-header,.equipment-overview-row{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(150px,1.4fr) 70px 70px 55px minmax(130px,1.2fr) 75px minmax(130px,1.2fr);gap:12px;align-items:center;min-width:1050px;padding:10px 16px}.equipment-overview-header{border-bottom:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:10px;font-weight:600;text-transform:uppercase}.equipment-overview-row{border-bottom:1px solid var(--border);font-size:13px}.equipment-overview-row:last-child{border-bottom:0}.equipment-overview-row:hover{background:var(--bg)}.equipment-overview-type{font-weight:600}.equipment-overview-row a{color:var(--accent);font-weight:600}.parking-edit-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:28px}@media(max-width:767px){.data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.property-hero{display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;height:auto;border-radius:12px;padding-top:44px}.property-hero-overlay{background:linear-gradient(to bottom,#0006,#000000a6)}.property-hero-content{position:relative;z-index:1;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:12px 16px 16px;gap:10px}.property-hero-info h1{font-size:20px}.property-hero-info p{font-size:13px}.property-hero-company{font-size:14px;margin:6px 0 8px}.hero-badge{font-size:11px;padding:3px 10px}.property-hero-actions{width:100%;flex-direction:row;flex-wrap:wrap;gap:8px;align-self:auto}.property-hero-actions>button{flex:1;min-width:120px;justify-content:center}.property-hero-upload{top:10px;right:10px;font-size:11px;padding:4px 10px}.properties-stat-grid,.property-detail-stat-grid{grid-template-columns:repeat(2,1fr)!important}.apt-table-header,.apt-table-header--8col,.apt-table-header--7col{display:none}.apt-table-row,.apt-table-row--8col,.apt-table-row--7col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px;border-bottom:1px solid var(--border);text-align:left}.apt-table-row .apt-unit{font-size:15px;font-weight:700}.apt-table-row--8col{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}.apt-table-row--8col .apt-unit{grid-column:1;grid-row:1}.apt-table-row--8col .apt-status{grid-column:2;grid-row:1;justify-self:end}.apt-table-row--8col .apt-secondary-number{grid-column:1 / -1;grid-row:2}.apt-table-row--8col .apt-tenant{grid-column:1;grid-row:3;min-width:0}.apt-table-row--8col .apt-rent{grid-column:2;grid-row:3;text-align:right;white-space:nowrap}.apt-table-row--8col .apt-actions{display:flex;grid-column:1 / -1;grid-row:4;justify-content:flex-end;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}.apt-table-row--8col .apt-delete{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0}.apt-table-row--8col .apt-tenant:before,.apt-table-row--8col .apt-rent:before{display:block;color:var(--text-muted);font-size:11px;font-weight:600}.apt-table-row--8col .apt-tenant:before{content:"Hyresgäst"}.apt-table-row--8col .apt-rent:before{content:"Hyra/mån"}.apt-table-row--7col{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}.apt-table-row--7col .apt-unit{grid-column:1;grid-row:1}.apt-table-row--7col .apt-status{grid-column:2;grid-row:1;justify-self:end}.apt-table-row--7col .apt-property{grid-column:1 / -1;grid-row:2;min-width:0;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.apt-table-row--7col .apt-secondary-number{grid-column:1 / -1;grid-row:3}.apt-table-row--7col .apt-tenant{grid-column:1;grid-row:4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apt-table-row--7col .apt-rent{grid-column:2;grid-row:4;text-align:right;white-space:nowrap}.apt-table-row--7col .apt-property:before,.apt-table-row--7col .apt-tenant:before,.apt-table-row--7col .apt-rent:before{display:block;color:var(--text-muted);font-size:11px;font-weight:600}.apt-table-row--7col .apt-property:before{content:"Fastighet"}.apt-table-row--7col .apt-tenant:before{content:"Hyresgäst"}.apt-table-row--7col .apt-rent:before{content:"Hyra/mån"}.apartments-filter{min-width:0}.apartments-filter select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-inline:32px;text-align:center;text-align-last:center}.apartments-filter>svg{display:block;position:absolute;top:50%;right:10px;color:var(--text);pointer-events:none;transform:translateY(-50%)}.apt-table-row--8col .apt-area,.apt-table-row--8col .apt-rooms,.apt-table-row--8col .apt-notes,.apt-table-row--7col .apt-area{display:none}.apt-secondary-number:before{content:"Lgh-nr ";color:var(--text-muted);font-size:11px;font-weight:600}.equipment-table-header{display:none}.equipment-table-row{display:grid;grid-template-columns:1fr 1fr auto;gap:4px 8px;padding:10px 16px}.equipment-table-row>span:nth-child(3),.equipment-table-row>span:nth-child(4),.equipment-table-row>span:nth-child(5){display:none}.contract-table-header{display:none}.contract-table-row{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13.5px}.reg-doc-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.parking-edit-card .form-row{flex-direction:column;gap:0}.detail-info-grid{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:8px}}@media(max-width:767px){.sidebar-link--desktop-only{display:none}}@media(max-width:767px){.key-table-header{display:none}.key-table-row{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13.5px}.key-table-row>span:first-child{font-weight:600}.key-status-cell{display:flex;align-items:center;gap:8px;margin-top:4px}.cost-table-header{display:none}.cost-table-row{display:grid;grid-template-columns:1fr auto auto;gap:4px 8px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:13.5px;align-items:center}.cost-table-row>span:nth-child(2),.cost-table-row>span:nth-child(3),.cost-table-row>span:nth-child(5){display:none}.cost-table-row>span:nth-child(1){grid-column:1;color:var(--text-muted);font-size:12px}.cost-table-row>span:nth-child(4){grid-column:1;font-weight:500}.cost-table-row>span:nth-child(6){grid-column:2;font-weight:600;text-align:right}.cost-table-row>span:nth-child(7){grid-column:3}.cost-table-total>span:nth-child(5){display:block!important;grid-column:1 / -2}.parking-edit-card .form-row,.form-row{flex-direction:column}.detail-info-grid[style*=flex]{grid-template-columns:1fr 1fr}.equipment-table-row>span:last-child{display:flex;justify-content:flex-end}.equipment-page-header{justify-content:flex-end}.equipment-filter-grid{grid-template-columns:1fr}.equipment-filter-footer{align-items:flex-start;gap:8px}.equipment-overview-header{display:none}.equipment-overview-table{overflow-x:visible}.equipment-overview-row{min-width:0;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 16px}.equipment-overview-row>span:nth-child(1),.equipment-overview-row>span:nth-child(2),.equipment-overview-row>span:nth-child(6){grid-column:1}.equipment-overview-row>span:nth-child(3),.equipment-overview-row>span:nth-child(4),.equipment-overview-row>span:nth-child(5),.equipment-overview-row>span:nth-child(8){display:none}.equipment-overview-row>span:nth-child(7){grid-column:2;grid-row:1}}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff;color:#000}.sidebar,.sidebar-overlay,.topbar,.bottom-nav,.equipment-page-header,.equipment-filters{display:none!important}.app-shell,.main-content,.page-content{display:block;position:static;height:auto;overflow:visible;padding:0}.equipment-page{max-width:none;padding:0}.equipment-print-heading{display:block;margin-bottom:14px}.equipment-print-heading h1{display:block;font-size:20px;margin-bottom:3px}.equipment-print-heading p{color:#444;font-size:11px}.equipment-overview-table{border-color:#aaa;border-radius:0;overflow:visible}.equipment-overview-header,.equipment-overview-row{display:grid;min-width:0;grid-template-columns:1.05fr 1.25fr 55px 55px 45px 1.1fr 60px 1.1fr;gap:8px;padding:7px 8px}.equipment-overview-header{background:#eee!important;color:#000;font-size:8px}.equipment-overview-row{break-inside:avoid;font-size:9px}.equipment-overview-row>span{display:block!important}.equipment-overview-row a{color:#000;text-decoration:none}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:32px}.gallery-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.gallery-img-wrap{position:relative;height:160px;cursor:pointer;overflow:hidden;background:#e5e7eb}.gallery-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.gallery-img-wrap:hover img{transform:scale(1.04)}.gallery-overlay{position:absolute;top:8px;left:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gallery-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600}.gallery-badge--public{background:#16a34a;color:#fff}.gallery-badge--private{background:#00000073;color:#fff}.gallery-badge--cover{background:#fff;color:#1a1a1a}.gallery-card-footer{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 12px;gap:8px}.gallery-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}.gallery-category{font-size:12px;font-weight:600;text-transform:capitalize;color:var(--text)}.gallery-caption{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-card-actions{display:flex;gap:4px;flex-shrink:0}.gallery-cover-button{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer}.gallery-cover-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.gallery-cover-button.active{border-color:var(--accent);background:var(--accent);color:#fff}.gallery-cover-button:disabled{cursor:default;opacity:.75}.apartment-photo-section{margin-bottom:32px}.apartment-photo-header{align-items:flex-end}.apartment-photo-header>div{display:flex;flex-direction:column;gap:4px}.apartment-photo-private{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);font-size:12px}.apartment-photo-groups{display:flex;flex-direction:column;gap:24px}.apartment-photo-group{display:flex;flex-direction:column;gap:10px}.apartment-photo-group-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.apartment-photo-group-header strong{color:var(--text);font-size:14px}.apartment-photo-group-header span{color:var(--text-muted);font-size:12px;text-align:right}.apartment-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.apartment-photo-card{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:8px}.apartment-photo-image-button{display:flex;align-items:center;justify-content:center;width:100%;height:180px;padding:0;border:0;background:#e5e7eb;color:var(--text-muted);cursor:pointer;overflow:hidden}.apartment-photo-image-button img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.apartment-photo-image-button:hover img{transform:scale(1.03)}.apartment-photo-image-button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.apartment-photo-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:78px;padding:12px}.apartment-photo-meta>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.apartment-photo-meta strong{font-size:14px;color:var(--text)}.apartment-photo-meta span{overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.apartment-photo-meta time{color:var(--text-muted);font-size:11px}.apartment-photo-actions{display:flex;gap:4px;flex-shrink:0}.apartment-photo-touch{min-width:44px;min-height:44px;justify-content:center}.apartment-photo-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);text-align:center}.apartment-photo-empty strong{color:var(--text);font-size:14px}.apartment-photo-empty span{font-size:13px}.apartment-photo-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:var(--danger);font-size:13px}.apartment-photo-skeleton{height:260px;border-radius:8px;background:#e5e7eb;animation:pulse 1.5s ease-in-out infinite}.apartment-photo-modal{max-width:520px}.apartment-photo-preview{overflow:hidden;height:250px;border-radius:8px;background:#e5e7eb}.apartment-photo-preview img{width:100%;height:100%;object-fit:contain}.apartment-photo-change{align-self:flex-start}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:24px}.lightbox-content{position:relative;max-width:min(900px,95vw);max-height:90vh;display:flex;flex-direction:column;gap:12px}.lightbox-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px}.lightbox-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;cursor:pointer;display:flex;padding:4px}.lightbox-caption{color:#ffffffd9;font-size:14px;text-align:center}@media(max-width:767px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}.gallery-img-wrap{height:120px}.apartment-photo-header{align-items:stretch}.apartment-photo-add{width:100%;min-height:48px;justify-content:center}.apartment-photo-group-header{align-items:flex-start;flex-direction:column;gap:3px}.apartment-photo-group-header span{text-align:left}.apartment-photo-grid{grid-template-columns:1fr;gap:12px}.apartment-photo-image-button{height:220px}.apartment-photo-preview{height:min(42vh,320px)}.apartment-photo-error{align-items:stretch;flex-direction:column}}.prop-doc-list{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}.prop-doc-group-label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;padding:12px 0 4px}.prop-doc-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.prop-doc-name{flex:1;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-doc-date{font-size:12px;color:var(--text-muted);flex-shrink:0}.docs-property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.docs-property-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:box-shadow .15s}.docs-property-card:hover{box-shadow:0 4px 16px #0000001a}.docs-property-img{height:140px;overflow:hidden;background:#e5e7eb}.docs-property-img img{width:100%;height:100%;object-fit:cover}.docs-property-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.docs-property-body{padding:14px 16px}.docs-property-body h3{font-size:15px;font-weight:600;margin:0 0 4px}.docs-property-body p{font-size:13px;color:var(--text-muted);margin:0 0 10px}.docs-property-counts{display:flex;gap:16px;font-size:13px;color:var(--text-muted)}.docs-property-counts span{display:flex;align-items:center;gap:5px}.topbar-icon-btn{background:none;border:none;cursor:pointer;color:var(--topbar-icon);display:flex;align-items:center;padding:6px;border-radius:8px;transition:background .15s;position:relative}.topbar-icon-btn:hover{background:#ffffff1a}.notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 3px;background:#dc2626;color:#fff;border-radius:8px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:480px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #00000026;overflow:hidden;z-index:500;display:flex;flex-direction:column}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600}.notif-count-label{font-size:12px;font-weight:500;color:var(--text-muted)}.notif-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:14px}.notif-list{overflow-y:auto;max-height:400px}.notif-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--bg)}.notif-item-icon{flex-shrink:0;margin-top:1px}.notif-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-item-title{font-size:13.5px;font-weight:500;color:var(--text)}.notif-item-desc{font-size:12px;color:var(--text-muted)}.notif-item-date{font-size:11px;font-weight:600}.notif-dashboard{margin-top:32px}.notif-dashboard h2{font-size:16px;font-weight:700;margin:0 0 12px}.notif-dashboard-list{display:flex;flex-direction:column;gap:8px}.notif-dashboard-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:background .1s}.notif-dashboard-item:hover{background:var(--bg)}.notif-dashboard-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-dashboard-title{font-size:13.5px;font-weight:500;color:var(--text)}.notif-dashboard-desc{font-size:12px;color:var(--text-muted)}.notif-dashboard-date{font-size:12px;font-weight:600;flex-shrink:0}.features-content{max-width:800px}.features-h1{font-size:22px;font-weight:700;margin:0 0 4px}.features-h2{font-size:16px;font-weight:700;color:var(--text);margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.features-li{font-size:14px;color:var(--text);line-height:1.6;margin-left:20px;margin-bottom:4px}.features-p{font-size:14px;color:var(--text-muted);margin:0 0 6px}.features-spacer{height:4px}.import-dropzone{border:2px dashed var(--border);border-radius:12px;padding:32px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;display:flex;flex-direction:column;align-items:center}.import-dropzone:hover{border-color:var(--primary);background:#f0f9ff}.import-success{display:flex;align-items:center;gap:10px;background:#f0fdf4;border:1px solid #86efac;border-radius:10px;padding:14px 18px;margin-bottom:24px;font-size:14px;font-weight:500}.import-summary-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.import-chip{font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}.import-chip--purple{background:#ede9fe;color:#7c3aed}.import-chip--blue{background:#dbeafe;color:#1d4ed8}.import-chip--green{background:#dcfce7;color:#166534}.import-chip--gray{background:#f3f4f6;color:#6b7280}.import-table-header,.import-table-row{display:grid;grid-template-columns:60px 1fr 80px 120px 1fr 90px 160px;gap:12px;align-items:center;padding:10px 16px}.import-table-header{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.import-table-row{border-bottom:1px solid var(--border);font-size:13px}@media(max-width:700px){.import-table-header{display:none}.import-table-row{grid-template-columns:1fr 1fr}}.settings-user-header,.settings-user-row{display:grid;grid-template-columns:1.5fr 2fr 100px 130px 72px;gap:0 12px;align-items:center;padding:10px 16px}.settings-user-header{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.settings-user-row{font-size:13.5px;border-bottom:1px solid var(--border)}.settings-user-row:last-child{border-bottom:none}.settings-user-row:hover{background:var(--bg)}@media(max-width:640px){.settings-user-header{display:none}.settings-user-row{grid-template-columns:1fr auto;grid-template-rows:auto auto;row-gap:2px;padding:12px 16px}.settings-user-row>span:nth-child(1){grid-column:1;grid-row:1;font-weight:600}.settings-user-row>span:nth-child(5){grid-column:2;grid-row:1 / 3;align-self:center}.settings-user-row>span:nth-child(2){grid-column:1;grid-row:2;font-size:12px;color:var(--text-muted)}.settings-user-row>span:nth-child(3){display:none}.settings-user-row>span:nth-child(4){display:none}}.subtask-row{background:#fafafa;border-left:3px solid var(--border)}.subtask-row:hover{background:#f0f0f0}.subtask-title{padding-left:12px;color:var(--text-muted);font-size:13px}.subtask-badge{display:inline-flex;align-items:center;gap:3px;margin-left:8px;padding:2px 7px;border-radius:10px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:600;cursor:pointer}.subtask-badge:hover{background:#bae6fd}.task-card,.subtask-badge,.tasks-table-row,.subtask-row,.apt-row-clickable,.property-card--clickable,.docs-property-card{cursor:pointer}.task-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.task-card-title-row .task-card-title{margin:0}.task-card-title-row .prio-badge{flex-shrink:0;align-self:center}.task-card-actions{margin-top:10px}.time-bank-controls{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px}.time-bank-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.time-bank-header-actions .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;text-decoration:none;white-space:nowrap}.time-bank-add-button{min-height:44px}.time-bank-month-control{display:flex;align-items:center;height:44px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.time-bank-period-control{display:flex;align-items:flex-end;gap:8px}.time-bank-custom-range{display:flex;gap:8px}.time-bank-custom-range input{min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.time-bank-range-toggle{min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-weight:600;cursor:pointer}.time-bank-month-control button,.time-bank-icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.time-bank-month-control button:hover,.time-bank-icon-button:hover{color:var(--accent);background:var(--bg)}.time-bank-month-control input{height:44px;border:0;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 12px;font:inherit;color:var(--text);background:var(--surface)}.time-bank-type-filter{width:220px}.time-bank-type-filter select{min-height:44px}.time-bank-filter-note{display:block;margin-top:5px;color:var(--text-muted);font-size:11px}.time-bank-summary{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,3fr);gap:12px;margin-bottom:18px}.time-bank-summary-total,.time-bank-owner-summary>div{display:flex;flex-direction:column;justify-content:center;min-height:74px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.time-bank-summary span{color:var(--text-muted);font-size:12px}.time-bank-summary strong{font-size:20px;font-variant-numeric:tabular-nums}.time-bank-summary small{display:block;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.time-bank-summary-total small{margin-top:2px}.time-bank-owner-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px}.time-bank-owner-summary strong{font-size:17px}.time-bank-owner-summary>div{gap:2px}.time-bank-section{margin-top:28px}.time-bank-section .section-header{margin-bottom:10px}.time-bank-section-empty{padding:20px;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);text-align:center}.time-bank-table-wrap{max-width:100%;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.time-bank-table{width:100%;min-width:max-content;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.time-bank-table th,.time-bank-table td{min-width:112px;padding:11px 14px;text-align:right;border-bottom:1px solid var(--border);background:var(--surface);white-space:nowrap}.time-bank-table thead th{position:sticky;top:0;z-index:3;color:var(--text-muted);background:var(--bg);font-size:11px;font-weight:600}.time-bank-table thead th>span{display:block}.time-bank-table .time-bank-column-amount{margin-bottom:2px;color:var(--text);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.time-bank-table th:first-child,.time-bank-table td:first-child{position:sticky;left:0;z-index:2;min-width:105px;text-align:left}.time-bank-table th:nth-child(2),.time-bank-table td:nth-child(2){position:sticky;left:105px;z-index:2;min-width:210px;text-align:left;border-right:1px solid var(--border)}.time-bank-table thead th:first-child,.time-bank-table thead th:nth-child(2){z-index:4;background:var(--bg)}.time-bank-table tbody tr:hover th,.time-bank-table tbody tr:hover td{background:var(--bg)}.time-bank-table tbody tr:last-child th,.time-bank-table tbody tr:last-child td{border-bottom:0}.time-bank-table-summary th,.time-bank-table-summary td{background:var(--bg);font-weight:700}.time-bank-table th:last-child,.time-bank-table td:last-child{min-width:60px;padding:0 8px}.time-bank-mobile-list{display:none}.time-bank-hours-fieldset{border:0;min-width:0}.time-bank-hours-fieldset legend{font-size:13px;font-weight:600;margin-bottom:8px}.time-bank-hours-grid{display:grid;gap:12px}.time-bank-person-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 44px;align-items:end;gap:10px}.time-bank-hours-input{position:relative}.time-bank-hours-input input{width:100%;padding-right:32px;font-variant-numeric:tabular-nums}.time-bank-hours-input span{position:absolute;top:10px;right:12px;color:var(--text-muted)}.time-bank-remove-person{width:44px;height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--danger);display:inline-flex;align-items:center;justify-content:center}.time-bank-add-person{margin-top:12px}.time-bank-modal{max-width:620px}.time-bank-modal .form-actions button,.time-bank-delete-modal .form-actions button{min-height:44px}.time-bank-modal-delete{margin-right:auto}.time-bank-delete-modal p{margin-bottom:18px}.time-bank-message{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;background:var(--surface);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger)}.time-bank-amount-help{margin-top:5px;color:var(--text-muted);font-size:12px}.time-bank-negative{color:var(--danger)!important}.time-bank-expense-table-wrap,.balance-overview-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.time-bank-expense-table,.balance-overview-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.time-bank-expense-table th,.time-bank-expense-table td,.balance-overview-table th,.balance-overview-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left}.time-bank-expense-table th,.balance-overview-table th{color:var(--text-muted);background:var(--bg);font-size:11px;font-weight:600}.time-bank-expense-table td:nth-child(4),.time-bank-expense-table th:nth-child(4),.balance-overview-table td:not(:first-child),.balance-overview-table th:not(:first-child){text-align:right}.time-bank-expense-table td:last-child,.time-bank-expense-table th:last-child{width:60px;padding:0 8px}.time-bank-expense-table tbody tr:last-child td,.balance-overview-table tbody tr:last-child td,.balance-overview-table tbody tr:last-child th{border-bottom:0}.time-bank-expense-mobile-list,.balance-overview-cards{display:none}.balance-overview-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.balance-overview-toolbar .form-field{width:min(320px,100%)}.balance-overview-toolbar select{min-height:44px}.balance-overview-total{display:flex;flex-direction:column;align-items:flex-end}.balance-overview-total span{color:var(--text-muted);font-size:12px}.balance-overview-total strong{font-size:24px;font-variant-numeric:tabular-nums}.balance-overview-section{margin-top:28px}.balance-overview-section .section-header{margin-bottom:10px}.balance-overview-table td:last-child strong{display:block;font-size:15px}.balance-overview-table td:last-child small{display:block;color:var(--danger);font-size:10px}.balance-history-list{border-top:1px solid var(--border)}.balance-history-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:68px;padding:12px 4px;border-bottom:1px solid var(--border)}.balance-history-icon{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent)}.balance-history-main{display:flex;flex-direction:column;min-width:0}.balance-history-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-history-main span,.balance-history-amount span{color:var(--text-muted);font-size:12px}.balance-history-amount{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}.balance-overview-page button:focus-visible,.balance-overview-page select:focus-visible,.balance-overview-page a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.time-bank-page .empty-state-block .btn-primary{margin-top:18px}.time-bank-page button:focus-visible,.time-bank-page input:focus-visible,.time-bank-page select:focus-visible,.time-bank-page summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:767px){.time-bank-page{padding-bottom:150px}.time-bank-page .page-header,.balance-overview-page .page-header{justify-content:space-between;margin-bottom:14px}.time-bank-page h1,.balance-overview-page h1{display:block;font-size:22px}.time-bank-page .page-sub,.balance-overview-page .page-sub{display:block}.time-bank-header-actions{position:fixed;z-index:90;right:0;bottom:66px;left:0;display:grid;grid-template-columns:1fr 1fr;padding:10px 16px max(10px,env(safe-area-inset-bottom,10px));border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -4px 16px #00000014}.time-bank-header-actions>a.btn-secondary{display:none}.time-bank-header-actions button{width:100%;justify-content:center;padding-inline:10px}.time-bank-controls{align-items:stretch;flex-direction:column;gap:10px}.time-bank-period-control{align-items:stretch;flex-direction:column}.time-bank-month-control{width:100%}.time-bank-month-control input{flex:1;min-width:0}.time-bank-type-filter,.time-bank-custom-range{width:100%}.time-bank-custom-range .form-field{flex:1;min-width:0}.time-bank-custom-range input{width:100%;min-width:0}.time-bank-summary{display:flex;flex-direction:column}.time-bank-summary-total{min-height:78px}.time-bank-owner-summary{display:flex;flex-direction:column;gap:8px}.time-bank-owner-summary>div{min-height:82px}.time-bank-table-wrap{display:none}.time-bank-mobile-list{display:flex;flex-direction:column;gap:10px}.time-bank-mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.time-bank-mobile-card>button{width:100%;min-height:44px;padding:14px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.time-bank-mobile-card-heading,.time-bank-mobile-card-total,.time-bank-mobile-card-owners>span{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.time-bank-mobile-card-heading>span{color:var(--text-muted);font-size:12px}.time-bank-mobile-card-owners{display:flex;flex-direction:column;gap:5px;margin:12px 0}.time-bank-mobile-card-owners span{color:var(--text-muted);font-size:12px}.time-bank-mobile-card-owners strong{color:var(--text);font-variant-numeric:tabular-nums}.time-bank-mobile-card-total{padding-top:10px;border-top:1px solid var(--border)}.time-bank-mobile-card-total span{color:var(--text-muted);font-size:12px}.time-bank-person-row{grid-template-columns:minmax(0,1fr) 100px 44px}.time-bank-modal .form-actions{margin-top:auto}.time-bank-modal-delete{width:100%;min-height:44px;justify-content:center}.time-bank-message{align-items:stretch;flex-direction:column}.time-bank-page .page-loading{color:var(--text)}.time-bank-expense-table-wrap,.balance-overview-table-wrap{display:none}.time-bank-expense-mobile-list,.balance-overview-cards{display:flex;flex-direction:column;gap:10px}.time-bank-expense-card,.balance-overview-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.time-bank-expense-card>button{display:flex;width:100%;min-height:44px;flex-direction:column;gap:8px;padding:14px;border:0;background:transparent;color:var(--text);text-align:left}.time-bank-expense-description{color:var(--text-muted)}.balance-overview-page{padding-bottom:88px}.balance-overview-toolbar{align-items:stretch;flex-direction:column}.balance-overview-toolbar .form-field{width:100%}.balance-overview-total{align-items:flex-start}.balance-overview-card{display:flex;flex-direction:column;padding:14px}.balance-overview-card>span{color:var(--text-muted);font-size:12px}.balance-overview-card>strong{margin:2px 0 6px;font-size:18px;font-variant-numeric:tabular-nums}.balance-overview-card>small{margin-bottom:6px;color:var(--danger)}.balance-overview-card p{color:var(--text-muted);font-size:12px}.balance-history-row{grid-template-columns:36px minmax(0,1fr);align-items:start}.balance-history-main strong{white-space:normal}.balance-history-amount{grid-column:2;align-items:flex-start}}.task-card-done-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;min-height:48px;-webkit-tap-highlight-color:transparent}.task-card-done-btn:active{background:var(--accent-hover)}.task-time-group{margin-bottom:8px}.task-time-group-header{display:flex;align-items:center;gap:8px;padding:6px 0 4px;margin-bottom:6px;border-bottom:1px solid var(--border)}.task-time-group-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.task-time-group-count{font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;background:var(--border);color:var(--text-muted)}.tg-overdue .task-time-group-label{color:var(--danger)}.tg-overdue .task-time-group-count{background:#fef2f2;color:var(--danger)}.tg-overdue .task-time-group-header{border-bottom-color:#fca5a5}.tg-today .task-time-group-label{color:var(--warning)}.tg-today .task-time-group-count{background:#fffbeb;color:var(--warning)}.tg-done .task-time-group-label{color:#9ca3af}.tg-done .task-time-group-count{background:#f3f4f6;color:#9ca3af}.recurring-tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:32px}.recurring-season-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.recurring-season-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.recurring-season-title{display:flex;align-items:center;gap:8px;font-size:14px}.recurring-season-period{font-size:11px;color:var(--text-muted);font-weight:400}.season-summer{border-left:3px solid #d97706}.season-summer .recurring-season-title svg{color:#d97706}.season-winter{border-left:3px solid #3b82f6}.season-winter .recurring-season-title svg{color:#3b82f6}.season-year{border-left:3px solid var(--accent)}.season-year .recurring-season-title svg{color:var(--accent)}.recurring-add-btn{font-size:12px;padding:4px 10px}.recurring-empty{color:var(--text-muted);font-size:13px;padding:16px;margin:0}.recurring-task-list{display:flex;flex-direction:column}.recurring-task-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.recurring-task-row:last-child{border-bottom:none}.recurring-task-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.recurring-task-title{font-size:14px;font-weight:500}.recurring-task-meta{font-size:12px;color:var(--text-muted)}.recurring-task-notes{font-style:italic}.recurring-task-reminder{font-size:11px;color:var(--text-muted);white-space:nowrap;padding-top:2px;flex-shrink:0}.recurring-task-actions{display:flex;gap:4px;flex-shrink:0}.maint-topbar{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:24px}.maint-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.maint-filters select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;background:var(--surface);color:var(--text)}.maint-year-group{margin-bottom:24px}.maint-year-header{display:flex;align-items:center;justify-content:space-between;padding:10px 0 8px;border-bottom:2px solid var(--accent);margin-bottom:8px}.maint-year-label{font-size:20px;font-weight:700;color:var(--accent)}.maint-year-budget{font-size:15px;font-weight:600;color:var(--text-muted)}.maint-table-header,.maint-table-row{display:grid;grid-template-columns:1.5fr 2.5fr 120px 120px 80px;padding:10px 16px;gap:12px;align-items:center}.maint-table-header{background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.maint-table-row{border-bottom:1px solid var(--border);font-size:13.5px}.maint-table-row:last-child{border-bottom:none}.maint-table-row:hover{background:var(--bg)}.maint-row--done{opacity:.55}.maint-property{font-weight:500}.maint-title{display:flex;flex-direction:column;gap:2px}.maint-notes{font-size:12px;color:var(--text-muted)}.maint-budget{font-weight:600}.maint-status-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;border:none;cursor:pointer;font-family:inherit}.maint-status-btn.planned{background:#f1f5f9;color:#64748b}.maint-status-btn.done{background:#f0fdf4;color:#15803d}.maint-actions{display:flex;gap:4px}@media(max-width:767px){.maint-table-header{display:none}.maint-table-row{grid-template-columns:1fr;gap:6px}.maint-topbar{flex-direction:column}}.view-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-toggle-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--surface);border:none;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.view-toggle-btn:hover{background:var(--bg);color:var(--text)}.view-toggle-btn.active{background:var(--accent);color:#fff}.view-toggle-btn:first-child{border-right:1px solid var(--border)}.task-calendar{margin-bottom:24px}.task-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.task-cal-nav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);transition:background .15s}.task-cal-nav-btn:hover{background:var(--bg)}.task-cal-title{font-size:17px;font-weight:700}.task-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden}.task-cal-day-header{background:var(--bg);text-align:center;padding:6px 4px;font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.04em}.task-cal-cell{background:var(--surface);min-height:52px;padding:6px 4px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border:none;cursor:pointer;transition:background .12s;position:relative}.task-cal-cell:hover{background:var(--bg)}.task-cal-cell--empty{cursor:default;background:var(--bg);opacity:.4}.task-cal-cell--today .task-cal-day-num{background:var(--accent);color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.task-cal-cell--selected{background:#f0f9f4;outline:2px solid var(--accent);outline-offset:-2px}.task-cal-day-num{font-size:14px;font-weight:500;min-width:26px;text-align:center}.task-cal-dot{width:7px;height:7px;border-radius:50%}.task-cal-dot--overdue{background:var(--danger)}.task-cal-dot--pending{background:var(--accent)}.task-cal-dot--done{background:#9ca3af}.task-cal-day-tasks{margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.task-cal-day-label{display:flex;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;border-bottom:1px solid var(--border);color:var(--text-muted);margin:0}.task-cal-task-row{display:flex;align-items:center;gap:10px;padding:12px 16px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;min-height:48px}.task-cal-task-row:last-child{border-bottom:none}.task-cal-task-row:hover{background:var(--bg)}.task-cal-task-row--done{opacity:.55}.task-cal-task-title{flex:1;font-size:14px;font-weight:500}.task-cal-task-meta{font-size:12px;color:var(--text-muted)}@media(max-width:480px){.task-cal-day-num{font-size:12px}.task-cal-cell{min-height:44px}}.task-cal-banners{display:flex;flex-direction:column;gap:2px;width:100%;padding:0 2px 2px}.task-cal-banner{display:flex;align-items:center;gap:3px;background:#2d4a351f;border-radius:3px;padding:1px 3px;min-height:18px;overflow:hidden}.task-cal-banner--assigned{background:var(--assignee-tint)}.task-cal-banner--overdue{background:#dc26261f}.task-cal-banner--done{background:#9ca3af26;opacity:.65}.task-cal-banner-title{flex:1;font-size:10px;font-weight:500;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.task-cal-banner--overdue .task-cal-banner-title{color:var(--danger)}.task-cal-banner--done .task-cal-banner-title{color:#6b7280}.task-cal-banner-initials{flex-shrink:0;font-size:9px;font-weight:700;color:#fff;background:var(--assignee-color, var(--accent));border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;line-height:1}.task-cal-banner-more{font-size:10px;color:var(--text-muted);font-weight:600;padding-left:2px}@media(max-width:600px){.task-cal-banner-title{display:none}.task-cal-banner{padding:1px 2px;justify-content:center}.task-cal-banner-initials{width:18px;height:18px;font-size:10px}}.settings-login-header,.settings-login-row{grid-template-columns:1fr 1fr 130px minmax(180px,1fr);column-gap:24px}.settings-login-row>span:nth-child(3),.settings-login-row>span:nth-child(4){white-space:nowrap}@media(max-width:640px){.settings-login-header{display:none}.settings-login-row{grid-template-columns:1fr auto!important;grid-template-rows:auto auto;row-gap:2px}.settings-login-row>span:nth-child(1){grid-column:1;grid-row:1}.settings-login-row>span:nth-child(4){display:block;grid-column:1;grid-row:2;font-size:11px;color:var(--text-muted)}.settings-login-row>span:nth-child(2){grid-column:2;grid-row:1}.settings-login-row>span:nth-child(3){display:none}}.agreements-toolbar{display:flex;gap:12px;margin-bottom:28px}.agreements-toolbar select,.agreements-search{min-height:42px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.agreements-toolbar select{min-width:220px;padding:0 12px;color:var(--text)}.agreements-search{display:flex;align-items:center;gap:8px;width:min(420px,100%);padding:0 12px;color:var(--text-muted)}.agreements-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.agreements-company{margin-bottom:30px}.agreements-company-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}.agreements-company-heading h2{margin:0 0 2px;font-size:17px}.agreements-company-heading span{color:var(--text-muted);font-size:12px}.agreements-company-heading>strong{color:var(--text-muted);font-size:12px;font-weight:600}.agreements-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.agreements-table-header,.agreements-table-row{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(110px,.8fr) minmax(110px,.8fr) minmax(180px,1fr) 100px 110px 72px;gap:12px;align-items:center;min-width:980px;padding:11px 14px}.agreements-table-header{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase}.agreements-table-row{border-bottom:1px solid var(--border);font-size:13px}.agreements-table-row:last-child{border-bottom:0}.agreements-table-row:hover{background:var(--bg)}.agreements-counterparty{display:flex;flex-direction:column;min-width:0}.agreements-counterparty strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agreements-counterparty small{color:var(--text-muted)}.agreements-actions{display:flex;justify-content:flex-end;gap:4px}.agreement-status{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:650;white-space:nowrap}.agreement-status.status-active{background:#dcfce7;color:#166534}.agreement-status.status-expiring{background:#fef3c7;color:#92400e}.agreement-status.status-expired{background:#fee2e2;color:#991b1b}.agreements-modal{max-width:760px}.agreements-modal .form-field>span{font-size:13px;font-weight:500}.agreements-date-row,.agreements-contact-row{grid-template-columns:repeat(3,1fr);align-items:flex-end}.agreement-renewal{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.agreement-renewal input{width:17px;height:17px;accent-color:var(--accent)}@media(max-width:700px){.agreements-toolbar{flex-direction:column}.agreements-toolbar select,.agreements-search{width:100%}.agreements-company-heading{align-items:flex-start}.agreements-table-wrap{overflow:visible;border:0;background:transparent}.agreements-table-header{display:none}.agreements-table-row{grid-template-columns:1fr auto;min-width:0;gap:7px 12px;margin-bottom:8px;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.agreements-table-row>span:nth-child(1){grid-column:1;grid-row:1}.agreements-table-row>span:nth-child(6){grid-column:2;grid-row:1}.agreements-table-row>span:nth-child(2){grid-column:1;grid-row:2;color:var(--text-muted)}.agreements-table-row>span:nth-child(4){grid-column:1 / 3;grid-row:3;color:var(--text-muted)}.agreements-table-row>span:nth-child(7){grid-column:2;grid-row:2}.agreements-table-row>span:nth-child(3),.agreements-table-row>span:nth-child(5){display:none}.agreements-date-row,.agreements-contact-row{flex-direction:column;align-items:stretch}}.technical-demo{--tech-ink: #17201b;--tech-forest: #234c38;--tech-leaf: #3d7555;--tech-paper: #f6f3ea;--tech-yellow: #edc75f;--tech-blue: #4d7fa6;--tech-coral: #ce684e;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;grid-template-rows:76px minmax(0,1fr);overflow:hidden;background-color:var(--tech-paper);background-image:linear-gradient(rgba(35,76,56,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(35,76,56,.045) 1px,transparent 1px);background-size:32px 32px;color:var(--tech-ink);font-family:Avenir,Avenir Next,Helvetica,sans-serif}.technical-demo:after{position:absolute;right:-18vw;bottom:-42vh;width:76vw;height:76vw;border:1px solid rgba(35,76,56,.12);border-radius:50%;content:"";pointer-events:none}.technical-demo-header{position:relative;z-index:2;display:grid;grid-template-columns:280px minmax(260px,560px) 100px;align-items:center;justify-content:space-between;gap:36px;padding:0 48px;border-bottom:1px solid rgba(23,32,27,.14);background:#f6f3eaf0}.technical-brand{display:flex;align-items:baseline;gap:5px;color:var(--tech-forest)}.technical-brand span{font-family:Georgia,serif;font-size:23px;font-weight:700}.technical-brand strong{font-size:13px;font-weight:600}.technical-brand em{margin-left:10px;padding-left:10px;border-left:1px solid rgba(23,32,27,.24);color:#6e746f;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.13em}.technical-progress{display:grid;grid-template-columns:repeat(var(--scene-count),1fr);gap:5px}.technical-progress span{height:3px;background:#d9d8d0;transition:background .3s ease}.technical-progress span.active{background:var(--tech-forest)}.technical-scene-count{justify-self:end;color:#70756f;font-family:Menlo,Monaco,monospace;font-size:12px}.technical-demo-stage{position:relative;z-index:1;display:grid;grid-template-columns:minmax(360px,.8fr) minmax(620px,1.45fr);align-items:center;gap:clamp(48px,7vw,112px);width:min(1344px,calc(100vw - 96px));height:100%;margin:0 auto;padding:36px 0 72px}.technical-demo-copy{animation:technical-copy-in .55s ease both}.technical-eyebrow{display:block;margin-bottom:18px;color:var(--tech-coral);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.technical-demo-copy h1{max-width:570px;color:var(--tech-ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(40px,4.1vw,62px);font-weight:500;line-height:1.04;letter-spacing:0}.technical-demo-copy p{max-width:570px;margin-top:26px;color:#59625c;font-size:clamp(15px,1.2vw,18px);line-height:1.68}.technical-demo-visual{display:grid;min-width:0;min-height:520px;place-items:center;animation:technical-visual-in .62s .08s ease both}.technical-node{display:flex;min-width:150px;min-height:134px;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:20px;border:1px solid rgba(23,32,27,.14);border-radius:8px;background:#fffefa;box-shadow:0 14px 38px #1f2d2314}.technical-node-icon{display:grid;width:36px;height:36px;margin-bottom:6px;place-items:center;border-radius:6px;background:#17201b14}.technical-node strong{font-size:14px}.technical-node small{color:#68716b;font-size:10px;line-height:1.4}.technical-node--green{border-color:#234c3852;background:#e8f0e9}.technical-node--yellow{border-color:#ac821552;background:#fbf2cf}.technical-node--blue{border-color:#4d7fa652;background:#e8f1f7}.technical-node--coral{border-color:#ce684e52;background:#fae9e4}.technical-node--active{outline:3px solid var(--tech-yellow);outline-offset:4px;transform:translateY(-4px)}.technical-flow,.technical-architecture-flow{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}.technical-flow-arrow{flex:0 0 auto;color:#7e877f}.technical-architecture-map{width:min(100%,730px)}.technical-architecture-flow .technical-node{flex:1}.technical-platform-band{display:grid;grid-template-columns:34px 1fr 34px 1.15fr;align-items:center;gap:12px;margin-top:32px;padding:18px 22px;border:1px solid rgba(35,76,56,.22);border-radius:7px;background:#fffefacc}.technical-platform-band>svg{color:var(--tech-coral)}.technical-platform-band div{display:flex;flex-direction:column;gap:3px}.technical-platform-band strong{font-size:12px}.technical-platform-band span{color:#737a74;font-size:9px}.technical-platform-band--active{outline:3px solid var(--tech-yellow);outline-offset:4px}.technical-overview-visual,.technical-summary-visual{width:min(100%,730px)}.technical-control-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.technical-control-rail span{display:flex;min-height:52px;align-items:center;justify-content:center;gap:8px;border-bottom:3px solid var(--tech-yellow);background:#fffefab8;color:var(--tech-forest);font-size:10px;font-weight:800}.technical-control-rail svg{width:16px}.technical-harness-flow{display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;gap:24px;width:min(100%,750px)}.technical-harness-control{position:relative;display:flex;min-width:0;min-height:154px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 9px;border:1px solid rgba(35,76,56,.2);border-radius:7px;background:#fffefa;text-align:center;animation:technical-step-in .42s calc(var(--step) * .09s) ease both}.technical-harness-control>span{display:grid;width:38px;height:38px;place-items:center;border-radius:6px;background:#e8f0e9;color:var(--tech-forest)}.technical-harness-control strong{font-size:11px;line-height:1.25}.technical-harness-control small{color:#737a74;font-size:8px;line-height:1.4}.technical-harness-control .technical-flow-arrow{position:absolute;top:50%;right:-24px;width:24px;transform:translateY(-50%)}.technical-harness-flow .technical-human-gate{grid-column:2 / 5;margin-top:18px}.technical-workflow{width:min(100%,730px)}.technical-workflow-line{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.technical-workflow-line:before{position:absolute;top:33px;right:8%;left:8%;height:2px;background:#aeb7b0;content:""}.technical-workflow-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;animation:technical-step-in .42s calc(var(--step) * .09s) ease both}.technical-workflow-step>span{z-index:1;display:grid;width:66px;height:66px;place-items:center;border:1px solid var(--tech-forest);border-radius:50%;background:#e8f0e9;color:var(--tech-forest)}.technical-workflow-step strong{font-size:11px}.technical-workflow-step small{max-width:110px;color:#747c76;font-size:8px;line-height:1.4}.technical-human-gate,.technical-summary-person{display:flex;width:max-content;max-width:100%;margin:48px auto 0;align-items:center;gap:12px;padding:14px 20px;border-bottom:3px solid var(--tech-yellow);background:#fffefa}.technical-human-gate{display:grid;grid-template-columns:34px auto}.technical-human-gate svg{grid-row:1 / 3;color:var(--tech-coral)}.technical-human-gate strong{font-family:Georgia,serif;font-size:17px}.technical-human-gate span{color:#737a74;font-size:10px}.technical-security-view{width:min(100%,730px)}.technical-security-view .technical-architecture-flow .technical-node{min-height:112px}.technical-security-view .technical-platform-band{display:none}.technical-security-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:34px}.technical-security-controls>span{display:grid;grid-template-columns:26px 1fr;align-items:center;min-height:68px;padding:10px 12px;border:1px solid #d8d8d0;border-radius:6px;background:#fffefa}.technical-security-controls svg{grid-row:1 / 3;color:var(--tech-forest)}.technical-security-controls strong{font-size:11px}.technical-security-controls small{color:#737a74;font-size:8px}.technical-verification{width:min(100%,700px)}.technical-verification-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.technical-verification-grid>div{position:relative;display:grid;grid-template-columns:44px 1fr;align-items:center;min-height:112px;padding:18px;border:1px solid rgba(35,76,56,.2);border-radius:7px;background:#fffefa;animation:technical-step-in .42s calc(var(--step) * .1s) ease both}.technical-verification-grid span{grid-row:1 / 3;color:var(--tech-coral)}.technical-verification-grid strong{font-size:14px}.technical-verification-grid small{color:#737a74;font-size:10px}.technical-verification-grid>div>svg:last-child{position:absolute;top:12px;right:12px;width:17px;color:var(--tech-leaf)}.technical-verification>p{display:flex;justify-content:center;gap:9px;margin-top:26px;color:#68716b;font-size:11px}.technical-verification>p svg{width:17px;color:var(--tech-forest)}.technical-sms-flow{width:min(100%,750px)}.technical-sms-flow .technical-node{min-width:125px;min-height:140px}.technical-summary-person svg{color:var(--tech-coral)}.technical-summary-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:14px}.technical-summary-controls span{display:flex;min-height:44px;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(35,76,56,.2);background:#e8f0e9;color:var(--tech-forest);font-size:9px;font-weight:800;animation:technical-step-in .4s calc(var(--step) * .07s) ease both}.technical-summary-controls svg{width:13px}.technical-summary-person{margin-top:22px;font-family:Georgia,serif;font-size:16px}.technical-demo-controls{position:fixed;z-index:2100;right:32px;bottom:24px;display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#17201bf2;box-shadow:0 16px 38px #17201b3d}.technical-demo-controls button,.technical-stop-button{display:inline-flex;min-width:42px;min-height:42px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;background:#ffffff1a;color:#fff;font:inherit;cursor:pointer}.technical-demo-controls button:disabled{opacity:.35;cursor:default}.technical-demo-controls .technical-record-button{padding:0 18px;background:var(--tech-yellow);color:var(--tech-ink);font-weight:800}.technical-demo-controls .technical-voice-button{color:var(--tech-yellow)}.technical-voice-casting{position:absolute;right:0;bottom:calc(100% + 10px);display:grid;width:310px;gap:4px;padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#17201b;color:#fff;box-shadow:0 16px 38px #17201b3d}.technical-voice-casting>strong{font-family:Georgia,serif;font-size:16px}.technical-voice-casting>span{color:#aeb8b1;font-size:10px}.technical-voice-casting>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.technical-demo-controls .technical-voice-casting button{min-width:0;min-height:36px;border:1px solid rgba(255,255,255,.16);font-size:10px}.technical-demo-error{position:absolute;right:0;bottom:calc(100% + 8px);width:360px;padding:10px 12px;border-radius:5px;background:#8f3328;color:#fff;font-size:11px}.technical-stop-button{position:fixed;z-index:2100;right:18px;bottom:18px;width:38px;min-width:38px;height:38px;min-height:38px;border:1px solid rgba(255,255,255,.24);background:#17201bb3}.technical-demo-unavailable{display:grid;min-height:100%;place-content:center;gap:10px;padding:32px;color:var(--text);text-align:center}.technical-demo-unavailable svg{margin:0 auto;color:var(--accent)}.technical-demo-unavailable p{color:var(--text-muted)}@keyframes technical-copy-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes technical-visual-in{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes technical-step-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes technical-layer-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@media(max-width:1000px){.technical-demo-header{grid-template-columns:1fr auto;padding:0 24px}.technical-progress{display:none}.technical-demo-stage{grid-template-columns:1fr;align-content:start;gap:24px;width:min(760px,calc(100vw - 40px));padding:30px 0 100px;overflow-y:auto}.technical-demo-copy h1{font-size:38px}.technical-demo-copy p{margin-top:16px;font-size:15px}.technical-demo-visual{min-height:430px;transform-origin:top center}}@media(max-width:680px){.technical-demo{grid-template-rows:64px minmax(0,1fr)}.technical-demo-header{padding:0 16px}.technical-brand em{display:none}.technical-demo-stage{width:calc(100vw - 28px)}.technical-demo-copy h1{font-size:32px}.technical-demo-copy p{font-size:13px;line-height:1.6}.technical-demo-visual{min-height:300px;overflow:hidden;place-items:start}.technical-demo-visual>*{min-width:700px;transform:scale(.5);transform-origin:top left}.technical-harness-flow{min-width:700px}.technical-verification{min-width:600px}.technical-demo-controls{right:14px;bottom:12px;left:14px;justify-content:center}}@media(prefers-reduced-motion:reduce){.technical-demo *,.technical-demo *:before,.technical-demo *:after{animation-duration:.01ms!important;animation-delay:0ms!important}}
