input,select{height:var(--input-height);padding:0 var(--space-md);font-size:var(--text-sm);font-family:inherit;background:var(--bg-white);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2372b358' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;padding-right:calc(var(--space-md) + 16px);cursor:pointer}input:focus,select:focus{outline:none;border-color:var(--brand-green)}[data-theme=dark]{--bg-light: #111215;--bg-white: #1a1c20;--border-color: #2a2d33;--text-dark: #f0f0f0;--text-primary: #d1d5db;--text-secondary: #9ca3af;--text-muted: #6b7280;--hover-bg: #22252a;--brand-green: #72b358;--brand-green-dark: #609d45;--brand-green-10: rgba(114, 179, 88, .12);--color-success: var(--brand-green);--color-success-bg: var(--brand-green-10);--color-warning: #fbbf24;--color-warning-bg: rgba(251, 191, 36, .12);--color-error: #f87171;--color-error-bg: rgba(248, 113, 113, .12);--color-error-light: rgba(255, 59, 48, .1);--color-success-light: rgba(5, 150, 105, .1);--color-info-light: rgba(2, 132, 199, .1);--color-warning-light: rgba(217, 119, 6, .1);--red: #f87171;--orange: #fbbf24;--green: var(--brand-green)}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}[data-theme=dark] input[type=date]{color-scheme:dark}body{font-family:var(--font-body);font-size:var(--text-sm);background:var(--bg-light);color:var(--text-primary)}.loading-overlay{position:fixed;inset:0;background:var(--bg-light);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-overlay.hidden{display:none}.error-display{position:absolute;bottom:40px;left:var(--space-lg);right:var(--space-lg);font-size:var(--text-sm);color:var(--color-error);text-align:center}.sidebar{width:var(--sidebar-width);background:var(--bg-white);border-right:1px solid var(--border-color);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.sidebar-logo{font-weight:600;font-size:var(--text-base);padding:0 var(--space-md) var(--space-lg)}.sidebar-section{margin-bottom:var(--space-lg)}.sidebar-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 var(--space-md);margin-bottom:var(--space-sm)}.sidebar-nav{flex:1;padding:var(--space-md)}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);cursor:pointer;color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);margin-bottom:var(--space-xs)}.nav-item:hover{background:var(--bg-light);color:var(--text-primary)}.nav-item.active{background:var(--brand-green-10);color:var(--brand-green);font-weight:500}.nav-item svg{width:18px;height:18px}.sidebar-spacer{flex:1}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-color)}.user-name{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs)}.sign-out{font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;background:none;border:none;padding:0;font-family:inherit}.sign-out:hover{color:var(--color-error)}.main{flex:1;margin-left:var(--sidebar-width);padding:var(--space-lg) var(--space-xl);height:100vh;display:flex;flex-direction:column;overflow:hidden}.main-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);flex-wrap:wrap;gap:var(--space-md)}.title-lg{font-size:var(--text-xl);font-weight:600}.title-md{font-size:var(--text-lg);font-weight:600}.title-sm{font-size:var(--text-base);font-weight:600}.page-header{margin-bottom:var(--space-lg)}.page-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);flex-wrap:wrap;gap:var(--space-md)}.dashboard-header h1{font-size:var(--text-2xl);font-weight:700;color:var(--text-dark)}.user-info{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.user-email{font-size:var(--text-sm);color:var(--text-secondary)}.dashboard-content{background:var(--bg-white);border:2px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-2xl) var(--space-xl)}.dashboard-placeholder{text-align:center;color:var(--text-secondary);font-size:var(--text-base)}.filter-bar{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:center}.filter-input{height:var(--input-height);padding:0 var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--text-sm);font-family:inherit;background:var(--bg-white);color:var(--text-primary)}.filter-input:focus{outline:none;border-color:var(--brand-green)}input.filter-input{flex:1;min-width:200px;max-width:300px}select.filter-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2372b358' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center;padding-right:calc(var(--space-sm) + 16px);cursor:pointer}.filter-toggles{display:flex;gap:var(--space-xs);height:var(--input-height);padding:var(--space-xs)}.filter-toggle{height:100%;padding:0 var(--space-md);font-size:var(--text-sm);border-radius:var(--border-radius-sm);cursor:pointer;border:none;background:transparent;font-family:inherit;color:var(--text-secondary)}.filter-toggle:hover{background:var(--bg-light)}.filter-toggle.active{background:var(--brand-green-10);color:var(--brand-green);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--btn-height);padding:0 var(--space-lg);font-weight:600;font-size:var(--text-sm);font-family:inherit;cursor:pointer;border-radius:var(--border-radius-sm)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-light);transform:none}.btn-primary{background:var(--brand-green-10);color:var(--brand-green);border:1px solid var(--brand-green)}.btn-primary:hover{background:var(--brand-green-20);transform:none}.btn-primary:disabled{background:var(--bg-light);color:var(--text-muted);border-color:var(--border-color);cursor:not-allowed}.btn-danger{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.btn-danger:hover{background:var(--color-error-20);transform:none}.btn-sm{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.btn-icon{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--border-radius-sm);color:var(--text-muted);background:transparent;border:1px solid var(--border-color)}.btn-icon:hover{background:var(--bg-light);color:var(--text-primary)}.btn-accent{background:var(--text-primary);color:var(--bg-white);border:1px solid var(--text-primary)}.btn-accent:hover{opacity:.85;transform:none}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;padding:0 var(--space-sm);height:auto}.btn-ghost:hover{background:var(--hover-bg);color:var(--text-primary)}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.portal-card{background:var(--bg-white);border:2px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-2xl) var(--space-xl);text-align:center;max-width:var(--container-xs);margin:0 auto}.portal-card h1{font-size:var(--text-2xl);font-weight:700;color:var(--text-dark);margin-bottom:var(--space-sm)}.portal-card .helper-text{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-xl)}.portal-section{padding:var(--space-3xl) 0;background:var(--bg-light);min-height:100vh;display:flex;align-items:center}.portal-card .btn{width:100%}.form-group{margin-bottom:var(--space-1-5)}.form-group label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.form-group input,.form-group select,.form-group textarea{width:100%;font-size:var(--text-sm);font-family:inherit;background-color:var(--bg-light);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.form-group input,.form-group select{height:var(--input-height);padding:0 var(--space-md)}.form-group select{background-position:right var(--space-md) center}.form-group textarea{padding:var(--space-md);resize:vertical;min-height:80px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brand-green)}.form-group input:invalid:not(:placeholder-shown),.form-group .field-error{border-color:var(--color-error)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.label-hint{color:var(--text-muted);font-weight:400}.message{padding:var(--space-md);border-radius:var(--border-radius-sm);margin-bottom:var(--space-lg);font-size:var(--text-sm);text-align:center}.message-success{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success-border)}.message-error{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error-border)}.error-details{margin-top:var(--space-sm);font-size:var(--text-xs);color:var(--text-muted);text-align:left}.error-details summary{cursor:pointer;color:var(--text-muted);font-size:var(--text-xs);user-select:none}.error-details summary:hover{color:var(--text-secondary)}.error-details pre{margin:var(--space-xs) 0 0;padding:var(--space-xs) var(--space-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-2xs);color:var(--text-muted);background:var(--bg-light);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);white-space:pre-wrap;overflow-wrap:anywhere}.message-info{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info-border)}.balance-section{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:var(--space-lg);margin-bottom:var(--space-lg);display:flex;justify-content:space-between;align-items:center}.balance-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs)}.balance-amount{font-size:var(--text-3xl);font-weight:600}.balance-amount.negative{color:var(--color-warning)}.balance-due{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-xs)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1-5);font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.card-header a{color:var(--brand-green);text-decoration:none;font-weight:500}.card-header a:hover{text-decoration:underline}.card{background:var(--bg-white);border:1px solid var(--border-color);box-shadow:none}.card-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md)}.card-title{font-weight:500;margin-bottom:var(--space-xs)}.card-sub{font-size:var(--text-caption);color:var(--text-secondary)}.table-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:visible}.table-card table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-card th{padding:14px 20px;text-align:left;font-size:var(--text-2xs);font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.table-card td{padding:14px 20px;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.table-card tbody tr:last-child td{border-bottom:none}.table-card tbody tr:hover{background:var(--hover-bg)}.table-card tbody tr.clickable{cursor:pointer}.table-empty{text-align:center;padding:var(--space-lg)}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--text-muted)}:root{--bg-card: var(--bg-white);--bg-header: var(--bg-light)}.table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:auto;flex:1;min-height:0}.table-wrap table{display:grid;width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-wrap thead,.table-wrap tbody,.table-wrap tr{display:contents}.table-wrap th,.table-wrap td{height:var(--input-height);padding:0 var(--space-md);text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.table-wrap th:last-child,.table-wrap td:last-child{border-right:none}.table-wrap th{display:flex;align-items:center;background:var(--bg-header);font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1;user-select:none}.table-wrap th:first-child{border-top-left-radius:calc(var(--border-radius-sm) - 1px)}.table-wrap th:last-child{border-top-right-radius:calc(var(--border-radius-sm) - 1px)}.table-wrap td{display:flex;align-items:center;cursor:default;min-width:0}.table-wrap td>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}th.text-right,td.text-right{text-align:right;justify-content:flex-end}.type-payment,.type-income{color:var(--brand-green)}.type-charge{color:var(--color-warning)}.type-expense{color:var(--color-info)}.status-open{color:var(--color-warning)}.status-in_progress{color:var(--color-info)}.status-complete{color:var(--brand-green)}.table-wrap td[data-col-type=select]{padding:0;overflow:visible}.select-wrap{width:100%;height:100%;display:grid;grid-template-areas:"select";align-items:center;min-width:0}.select-wrap:after{content:"";grid-area:select;justify-self:end;width:12px;height:12px;margin-right:var(--space-sm);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;pointer-events:none}.select-wrap select{grid-area:select;appearance:none;-webkit-appearance:none;-moz-appearance:none;background:transparent;border:none;padding:0 calc(var(--space-md) + 16px) 0 var(--space-md);margin:0;width:100%;height:100%;font-family:inherit;font-size:var(--text-sm);cursor:pointer;overflow:hidden;text-overflow:ellipsis;outline:none}.select-wrap select.type-payment{color:var(--brand-green)}.select-wrap select.type-charge{color:var(--color-warning)}.select-wrap select.type-expense{color:var(--color-info)}.select-wrap select.status-open{color:var(--color-warning)}.select-wrap select.status-in_progress{color:var(--color-info)}.select-wrap select.status-complete{color:var(--brand-green)}.select-wrap select::-ms-expand{display:none}.table-wrap td.selected,.table-wrap td[data-col-type=select].selected{outline:2px solid var(--brand-green);outline-offset:-2px}.table-wrap td.editing{padding:0;outline:2px solid var(--brand-green);outline-offset:-2px;position:relative;overflow:visible}.table-wrap td.editing input{width:100%;height:100%;padding:0 var(--space-md);border:none;background-color:var(--bg-card);color:var(--text-primary);font:inherit;outline:none}.table-wrap tbody tr.clickable td{cursor:pointer;transition:background .15s}.table-wrap tbody tr.clickable:hover td{background:var(--brand-green-10)}.table-wrap tbody tr.clickable:active td{background:var(--brand-green-20)}.resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize}.resize-handle:hover,.resize-handle.active{background:var(--brand-green)}body.resizing{user-select:none;cursor:col-resize}.row-actions{justify-content:center;opacity:0;transition:opacity .2s}.table-wrap tr:hover .row-actions{opacity:1}.btn-delete-row{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-xs)}.btn-delete-row:hover{color:var(--color-error)}.ledger-table{display:table;width:100%;font-size:var(--text-sm)}.ledger-table thead,.ledger-table tbody,.ledger-table tr{display:table-row}.ledger-table th,.ledger-table td{display:table-cell;height:auto;border-right:none}.ledger-table th{text-align:left;padding:var(--space-sm);font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:transparent}.ledger-table td{padding:var(--space-sm);border-bottom:1px solid var(--border-color)}.ledger-table tr:last-child td{border-bottom:none}.ledger-table .debit{color:var(--color-warning)}.ledger-table .credit{color:var(--brand-green)}.ledger-summary{display:flex;justify-content:space-between;padding:var(--space-md);background:var(--bg-light);border-radius:var(--border-radius-sm);margin-top:var(--space-md);font-size:var(--text-sm)}.ledger-summary-item{text-align:center}.ledger-summary-label{color:var(--text-secondary);margin-bottom:var(--space-xs)}.ledger-summary-value{font-weight:600}.ledger-summary-value.debit{color:var(--color-warning)}.ledger-summary-value.credit{color:var(--brand-green)}.party-tenant{background:var(--brand-green-10);color:var(--brand-green);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);font-size:var(--text-xs)}.party-owner{background:var(--color-info-light);color:var(--color-info);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);font-size:var(--text-xs)}@keyframes panelSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);display:none;z-index:100}.panel-overlay.open{display:block;animation:overlayIn .3s ease both}.panel{position:fixed;top:0;right:0;bottom:0;width:var(--panel-width);background:var(--bg-white);padding:var(--space-lg);overflow-y:auto;box-shadow:var(--shadow-lg);animation:panelSlideIn .3s cubic-bezier(.16,1,.3,1) both}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.panel-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.panel-close{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--text-muted);line-height:1}.panel-close:hover{color:var(--text-primary)}.panel-section{margin-bottom:var(--space-lg)}.panel-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm);display:flex;justify-content:space-between;align-items:center}.panel-label-link{font-size:var(--text-xs);color:var(--brand-green);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500}.panel-card{background:var(--bg-light);border-radius:var(--border-radius-sm);padding:var(--space-sm);font-size:var(--text-sm)}.panel-card-text{white-space:pre-wrap}.kv-row{display:flex;justify-content:space-between;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.kv-label{color:var(--text-secondary)}.kv-value{color:var(--text-primary);display:flex;align-items:center;gap:var(--space-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.panel-doc{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);border-bottom:1px solid var(--border-color)}.panel-doc:last-child{border-bottom:none}.panel-doc-name{color:var(--brand-green);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.panel-doc-date{color:var(--text-muted);font-size:var(--text-sm);flex-shrink:0;margin-left:var(--space-md)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:200}.modal-overlay.open{display:flex;animation:overlayIn .3s ease both}.modal{background:var(--bg-white);border-radius:var(--border-radius-md);width:100%;max-width:var(--panel-width);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:modalIn .4s cubic-bezier(.16,1,.3,1) both;box-shadow:0 16px 48px #0003}.modal-header{padding:var(--space-md);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2,.modal-header .modal-title{font-size:var(--text-base);font-weight:600}.modal-close{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--text-muted);line-height:1}.modal-body{padding:var(--space-md);overflow-y:auto}.modal-footer{padding:var(--space-md);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--space-sm);border-radius:0 0 var(--border-radius-md) var(--border-radius-md)}.toast{position:fixed;bottom:var(--space-lg);right:var(--space-lg);background:var(--text-primary);color:var(--white);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-sm);font-size:var(--text-sm);z-index:300;display:none}.toast.show{display:block}.toast.error{background:var(--color-error)}.toast.success{background:var(--brand-green)}.error-container{text-align:center;padding:var(--space-3xl) var(--space-lg)}.error-container h2{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.error-container p{color:var(--text-secondary);margin-bottom:var(--space-lg)}.error-container a{color:var(--brand-green)}.detail-section{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:hidden}.detail-row{display:flex;justify-content:space-between;align-items:center;height:var(--input-height);padding:0 var(--space-md);font-size:var(--text-sm);border-bottom:1px solid var(--border-color);min-width:0}.detail-row:last-child{border-bottom:none}.detail-row .doc-name{color:var(--brand-green);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.detail-row .doc-date{color:var(--text-muted);flex-shrink:0;margin-left:var(--space-md)}.checkbox-label{display:inline-flex;align-items:center;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.checkbox-label span{margin-left:var(--space-0-75);vertical-align:middle}input[type=checkbox]{width:16px;height:16px;padding:0;margin:0;vertical-align:middle;accent-color:var(--brand-green);flex-shrink:0}.hidden{display:none}.muted{color:var(--text-muted)}.property-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:hidden;transition:border-color .15s}.property-card:hover{border-color:var(--brand-green)}.property-card-photo{height:160px;background:var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--text-caption);background-size:cover;background-position:center;position:relative}.property-card-photo img{width:100%;height:100%;object-fit:cover}.property-card-photo-overlay{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;cursor:pointer;color:#fff;font-size:var(--text-sm);gap:6px}.property-card-photo:hover .property-card-photo-overlay{opacity:1}.property-card-body{padding:var(--space-md);cursor:pointer}.property-card-address{font-weight:500;color:var(--text-dark);margin-bottom:var(--space-xs)}.property-card-city{font-size:var(--text-caption);color:var(--text-muted);margin-bottom:12px}.property-card-meta{display:flex;justify-content:space-between;align-items:center}#contact-info-table td:first-child{color:var(--text-secondary);width:80px}#contact-info-table td:last-child{text-align:right;width:50px}#contact-info-table .contact-value{overflow-wrap:break-word}#contact-info-table .contact-editing{display:flex;align-items:center;gap:var(--space-sm)}#contact-info-table .contact-editing input{flex:1;height:32px;padding:0 var(--space-sm);font-size:var(--text-sm);border:1px solid var(--border-color);font-family:inherit;background:var(--bg-light)}#contact-info-table .contact-editing input:focus{outline:none;border-color:var(--text-primary)}@media(max-width:768px){.sidebar{display:none}.main{margin-left:0;padding:var(--space-lg)}.portal-card{padding:var(--space-xl) var(--space-lg);margin:0 var(--space-md)}.portal-card h1{font-size:var(--text-2xl)}.btn{padding:0 var(--space-xl);width:100%}.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-content{padding:var(--space-lg) var(--space-md)}.balance-section{flex-direction:column;text-align:center;gap:var(--space-md)}.form-row{grid-template-columns:1fr}.panel{width:100%}.checklist-trigger,.checklist-popover{right:16px}}.context-menu{position:fixed;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-lg);z-index:1000;display:none;min-width:120px;overflow:hidden}.context-menu.open{display:block}.context-menu-item{padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:var(--text-sm)}.context-menu-item:hover{background:var(--bg-light)}.context-menu-item.danger{color:var(--color-error)}.context-menu-item.danger:hover{background:var(--color-error-light)}.attachment-cell{position:relative;overflow:visible}.table-card td.attachment-cell{position:relative;overflow:visible;padding:0}.attachment-trigger{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--border-radius-sm)}.attachment-trigger:hover{background:var(--gray-100);color:var(--gray-700)}.attachment-count{font-size:var(--text-xs);font-weight:500;min-width:16px;padding:0 var(--space-xs);background:var(--brand-green);color:#fff;border-radius:var(--border-radius-full)}.attachment-count.hidden{display:none}.attachment-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:1000;min-width:240px;background:var(--bg-white);border:var(--border-width-sm) solid var(--gray-200);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg)}.attachment-list{max-height:200px;overflow-y:auto;padding:var(--space-sm) 0}.attachment-empty{padding:var(--space-md);text-align:center;color:var(--gray-500);font-size:var(--text-sm)}.attachment-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md)}.attachment-item:hover{background:var(--gray-50)}.attachment-link{flex:1;display:flex;align-items:center;gap:var(--space-sm);color:var(--gray-900);text-decoration:none;overflow:hidden;min-width:0}.attachment-link:hover{color:var(--brand-green)}.attachment-name{font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-delete{width:24px;height:24px;border:none;background:transparent;color:var(--gray-400);cursor:pointer;border-radius:var(--border-radius-sm);opacity:0}.attachment-item:hover .attachment-delete{opacity:1}.attachment-delete:hover{background:var(--color-error-light);color:var(--color-error)}.attachment-upload{padding:var(--space-sm) var(--space-md);border-top:var(--border-width-sm) solid var(--gray-200)}.attachment-upload-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-sm);border:var(--border-width-sm) dashed var(--gray-300);border-radius:var(--border-radius-sm);background:transparent;color:var(--gray-500);font-size:var(--text-sm);cursor:pointer}.attachment-upload-btn:hover{border-color:var(--brand-green);color:var(--brand-green)}.attachment-visibility{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);color:var(--gray-500)}.notification-bell-wrap{position:relative;padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-xs)}.notification-bell{background:none;border:none;cursor:pointer;position:relative;padding:var(--space-xs);color:var(--text-muted);display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);font-family:inherit}.notification-bell:hover{color:var(--text-primary)}.notification-badge{position:absolute;top:-2px;left:16px;min-width:16px;height:16px;padding:0 var(--space-xs);background:var(--color-error);color:var(--white);font-size:var(--text-2xs);font-weight:600;line-height:16px;text-align:center;border-radius:var(--border-radius-full)}.notification-badge.hidden{display:none}.notification-dropdown{position:absolute;bottom:100%;left:0;width:340px;max-height:420px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column}.notification-dropdown.hidden{display:none}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);font-size:var(--text-sm);font-weight:500}.notification-mark-all{background:none;border:none;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;font-family:inherit;padding:0}.notification-mark-all:hover{color:var(--brand-green)}.notification-list{overflow-y:auto;max-height:360px}.notification-item{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);cursor:pointer}.notification-item:last-child{border-bottom:none}.notification-item.unread{background:var(--brand-green-10);cursor:pointer}.notification-title{font-size:var(--text-sm);font-weight:500;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-body{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item.expanded .notification-body{white-space:normal;overflow:visible;text-overflow:unset}.notification-time{font-size:var(--text-xs);color:var(--text-muted)}.notification-empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.preferences-table{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.preferences-header{display:grid;grid-template-columns:1fr 60px 60px;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.preferences-header span:not(:first-child){text-align:center}.preferences-row{display:grid;grid-template-columns:1fr 60px 60px;gap:var(--space-sm);align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color)}.preferences-row:last-child{border-bottom:none}.preferences-name{font-size:var(--text-sm);font-weight:500;margin-bottom:2px}.preferences-desc{font-size:var(--text-xs);color:var(--text-secondary)}.toggle-wrap{display:flex;justify-content:center;cursor:pointer}.toggle-wrap input{position:absolute;opacity:0;width:0;height:0}.toggle-track{width:36px;height:20px;background:var(--border-color);border-radius:var(--border-radius-full);position:relative;transition:background .2s}.toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--white);border-radius:50%;transition:transform .2s}.toggle-wrap input:checked+.toggle-track{background:var(--brand-green)}.toggle-wrap input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.preferences-saved{text-align:center;padding:var(--space-sm);font-size:var(--text-xs);color:var(--brand-green);margin-top:var(--space-sm)}.preferences-saved.hidden{display:none}.table-scroll{max-height:480px;overflow-y:auto}.table-scroll table thead th{position:sticky;top:0;background:var(--bg-white);z-index:1}.autopay-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:4px;line-height:1.4}.autopay-active{background:var(--brand-green-10);color:var(--brand-green-dark)}.autopay-past-due{background:var(--color-error-light, rgba(255, 59, 48, .1));color:var(--color-error)}.cancel-autopay-link{font-size:var(--text-xs);color:var(--text-muted);text-decoration:underline;cursor:pointer}.cancel-autopay-link:hover{color:var(--text-secondary)}.autopay-status-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap}.autopay-status-row.hidden{display:none}.balance-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.checklist-trigger{position:fixed;bottom:12px;right:12px;z-index:150;width:48px;height:48px;background:var(--text-dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0003;transition:transform .15s}.checklist-trigger:hover{transform:scale(1.05)}.checklist-trigger svg{color:var(--white);transition:transform .2s}.checklist-trigger.open svg{transform:rotate(45deg)}.checklist-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;background:var(--color-error);color:var(--white);font-size:var(--text-2xs);font-weight:700;font-family:inherit;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg-light)}.checklist-popover{position:fixed;bottom:72px;right:12px;z-index:149;width:280px;background:var(--bg-white);border:1px solid var(--border-color);box-shadow:0 8px 32px #0000001f;display:none;flex-direction:column;max-height:420px}.checklist-popover.open{display:flex;animation:checklistPopIn .2s ease-out}@keyframes checklistPopIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes checklistPopOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}.checklist-header{position:relative;padding:14px 16px 10px;border-bottom:1px solid var(--border-color)}.checklist-close-btn{position:absolute;top:10px;right:10px;background:none;border:none;font-size:18px;line-height:1;color:var(--text-muted);cursor:pointer;padding:2px 6px}.checklist-close-btn:hover{color:var(--text-primary)}.checklist-title{font-size:var(--text-caption);font-weight:600;color:var(--text-dark);margin-bottom:var(--space-sm)}.checklist-progress{display:flex;align-items:center;gap:var(--space-sm)}.checklist-progress-bar{flex:1;height:3px;background:var(--border-color);overflow:hidden}.checklist-progress-fill{height:100%;background:var(--text-dark);transition:width .4s ease}.checklist-progress-text{font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap}.checklist-tasks{overflow-y:auto;flex:1}.checklist-task{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border-color)}.checklist-task:last-child{border-bottom:none}.checklist-task:hover{background:var(--bg-light)}.checklist-task.completed{opacity:.35}.checklist-task.completed .checklist-task-title{text-decoration:line-through}.checklist-check{width:16px;height:16px;border:1.5px solid var(--text-muted);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.checklist-check svg{width:10px;height:10px;opacity:0;transform:scale(.5);transition:all .15s}.checklist-task.completed .checklist-check{background:var(--text-dark);border-color:var(--text-dark)}.checklist-task.completed .checklist-check svg{opacity:1;transform:scale(1)}.checklist-task-text{flex:1;min-width:0}.checklist-task-title{font-size:var(--text-caption);font-weight:500;color:var(--text-dark);line-height:1.3}.checklist-task-desc{font-size:var(--text-2xs);color:var(--text-muted);line-height:1.3}.checklist-task-arrow{color:var(--text-muted);flex-shrink:0;opacity:0;transition:opacity .1s}.checklist-task:hover .checklist-task-arrow{opacity:.6}.checklist-task.completed .checklist-task-arrow{display:none}.checklist-complete{display:none;text-align:center;padding:28px 20px}.checklist-complete svg{color:var(--text-dark);margin-bottom:10px}.checklist-complete h3{font-size:var(--text-caption);font-weight:600;color:var(--text-dark);margin-bottom:2px}.checklist-complete p{font-size:var(--text-xs);color:var(--text-muted)}.checklist-footer{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border-color);font-size:var(--text-2xs);color:var(--text-muted)}.checklist-footer a{color:var(--brand-green);text-decoration:none;font-weight:600}.checklist-footer a:hover{text-decoration:underline}
