:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f7f4;--surface:#fff;--surface-muted:#eef3f0;--text:#1f2421;--muted:#5f6b65;--border:#d8ded8;--primary:#176b5b;--primary-contrast:#fff;--danger:#b42318;--warning:#9a6700;--success:#146c2e}*{box-sizing:border-box}html{overflow-x:hidden}body{background:var(--background);color:var(--text);margin:0;font-family:Arial,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}a{color:inherit}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#f6fffb;background:#153b35;flex-direction:column;height:100vh;padding:24px;display:flex;position:sticky;top:0}.sidebar-title{margin-bottom:24px;font-size:20px;font-weight:700}.sidebar nav{gap:8px;display:grid}.sidebar a{color:#d9ede8;border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:10px 12px;text-decoration:none;display:flex}.sidebar-account{border-top:1px solid #3b625b;gap:10px;margin-top:auto;padding-top:18px;display:grid}.sidebar-account small{color:#ffd8d3}.skip-link{background:var(--surface);z-index:100;padding:10px 14px;position:fixed;top:-60px;left:12px}.skip-link:focus{top:12px}.sidebar a[aria-current=page],.sidebar a:hover{color:#fff;background:#235a50}.main{min-width:0}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:64px;padding:0 24px;display:flex}.content{min-width:0;padding:24px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}.metric-label{color:var(--muted);font-size:14px}.metric-value{overflow-wrap:anywhere;margin-top:8px;font-size:28px;font-weight:700}.metric-hint{color:var(--muted);margin-top:8px;line-height:1.4;display:block}.report-cash-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-top:20px;padding:18px}.rooms-layout{grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:20px;display:grid}.tenants-layout{grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);gap:20px;display:grid}.pricing-layout{grid-template-columns:minmax(360px,1fr) minmax(420px,1fr);gap:20px;display:grid}.utilities-layout{grid-template-columns:minmax(340px,.85fr) minmax(460px,1.15fr);gap:20px;display:grid}.billing-layout{grid-template-columns:minmax(380px,.9fr) minmax(520px,1.1fr);gap:20px;display:grid}.debt-layout,.reports-layout{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.pricing-stack{gap:12px;display:grid}.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.pricing-cell{border:1px solid var(--border);border-radius:8px;gap:8px;padding:12px;display:grid}.pricing-cell small{color:var(--muted)}.invoice-create{border-bottom:1px solid var(--border);gap:12px;margin-bottom:16px;padding-bottom:16px;display:grid}.invoice-facts{margin-top:18px}.invoice-items{gap:10px;margin-top:18px;display:grid}.invoice-document-title{letter-spacing:0;text-align:center;margin:20px 0 0;font-size:20px}.invoice-detail-skeleton{gap:10px;margin-top:18px;display:grid}.invoice-item-row,.debt-row{border:1px solid var(--border);border-radius:8px}.invoice-item-row{grid-template-columns:minmax(0,1fr) minmax(120px,.36fr) minmax(120px,.36fr);align-items:center;gap:12px;padding:12px;display:grid}.invoice-item-row-rent{grid-template-columns:minmax(0,1fr) minmax(120px,.36fr)}.invoice-item-row small{color:var(--muted);margin-top:4px;display:block}.invoice-item-main,.invoice-item-money{gap:4px;min-width:0;display:grid}.invoice-item-money{text-align:right;justify-items:end}.utility-equation{flex-wrap:wrap;align-items:end;gap:6px;margin-top:8px;display:flex}.utility-equation>span:not(.utility-equation-symbol){gap:2px;display:grid}.utility-equation small{margin:0}.utility-equation-symbol{color:var(--muted);padding-bottom:1px}.utility-usage-unavailable{color:var(--warning)!important}.invoice-notes{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.invoice-notes small{color:var(--muted)}.invoice-notes p{margin-bottom:0}.debt-grid{gap:12px;margin-top:18px;display:grid}.debt-row{padding:14px}.debts-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 170px auto}.debt-row-actions{place-items:flex-end end;gap:8px;display:grid}.invoice-select-row{background:var(--surface);color:inherit;cursor:pointer;font:inherit;text-align:left;width:100%}.invoice-select-row[data-active=true],.invoice-select-row:hover{border-color:var(--primary);box-shadow:0 0 0 2px #d5eee8}.report-toolbar{grid-template-columns:minmax(180px,1fr) 140px 140px auto;align-items:end}.report-actions{gap:10px;display:flex}.report-table{gap:8px;margin-top:12px;display:grid}.report-table-head,.report-table-row{grid-template-columns:1.2fr .8fr .8fr .8fr;gap:12px;display:grid}.report-table-head{color:var(--muted);font-size:13px;font-weight:700}.report-table-row{border:1px solid var(--border);border-radius:8px;padding:10px 12px}.report-invoice-cell{gap:4px;display:grid}.report-invoice-cell small{color:var(--muted)}.report-invoice-link{align-items:center;min-height:44px;display:inline-flex}.tenants-toolbar{grid-template-columns:minmax(0,1fr) auto minmax(170px,.6fr) auto}.tenancy-panel{border-top:1px solid var(--border);margin-top:22px;padding-top:18px}.tenancy-actions{grid-template-columns:auto minmax(220px,1fr) repeat(4,auto);align-items:end;gap:12px;margin-top:16px;display:grid}.current-tenancy-card{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;gap:12px;padding:12px;display:grid}.current-tenancy-summary,.member-row{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.tenant-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tenant-facts span{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:4px;padding:10px;display:grid}.tenant-facts small{color:var(--muted)}.tenant-member-list,.tenancy-history{gap:10px;margin-top:12px;display:grid}.member-row small{color:var(--muted);margin-top:4px;display:block}.occupancy-panel{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:14px}.credit-balance-panel,.receipt-dialog-heading{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.credit-balance-panel>span,.receipt-dialog-heading>div:first-child{gap:4px;min-width:0;display:grid}.credit-balance-panel small,.receipt-dialog-heading small,.receipt-allocation-row small,.receipt-history-row small,.receipt-detail p{color:var(--muted)}.receipt-dialog-heading{margin-top:14px}.receipt-view-switch{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex:none;padding:3px;display:flex}.receipt-view-switch button{cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;min-height:44px;padding:8px 12px}.receipt-view-switch button[aria-pressed=true]{background:var(--surface-muted);color:var(--primary);font-weight:700}.receipt-form,.receipt-history,.receipt-void-form{gap:14px;margin-top:14px;display:grid}.receipt-void-actions{justify-content:space-between}.receipt-preview,.receipt-detail{border-top:1px solid var(--border);gap:12px;padding-top:14px;display:grid}.receipt-allocation-list,.receipt-history-list{gap:8px;display:grid}.receipt-allocation-row,.receipt-history-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.receipt-allocation-row>span,.receipt-history-row>span{overflow-wrap:anywhere;gap:4px;min-width:0;display:grid}.receipt-history-row{color:inherit;cursor:pointer;font:inherit;text-align:left;width:100%}.receipt-history-row:hover,.receipt-history-row[data-active=true]{border-color:var(--primary);box-shadow:0 0 0 2px #d5eee8}.receipt-row-end{place-items:flex-end end}.receipt-preview-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.receipt-preview-totals>span{background:var(--surface-muted);border-radius:6px;gap:4px;padding:10px;display:grid}.receipt-preview-totals small,.receipt-empty-note{color:var(--muted)}.section-heading.compact h3{margin:0}.rooms-list,.room-detail{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h1,.section-heading h2{margin:0}.section-heading p{color:var(--muted);margin:4px 0 0}.toolbar{grid-template-columns:minmax(0,1fr) 150px auto;gap:10px;margin:18px 0;display:grid}.toolbar input,.toolbar select,.field select,.field textarea{border:1px solid var(--border);font:inherit;border-radius:6px;min-height:42px;padding:10px 12px}.room-list-stack{gap:10px;display:grid}.room-row{background:var(--surface);border:1px solid var(--border);color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;min-height:70px;padding:12px;display:flex}.room-row[data-active=true],.room-row:hover{border-color:var(--primary);box-shadow:0 0 0 2px #d5eee8}.settlement-row{border:1px solid var(--border);background:var(--surface);min-height:76px;color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.settlement-row:hover,.settlement-row:focus-visible{border-color:var(--primary)}.settlement-row small,.room-row small{color:var(--muted);margin-top:4px;display:block}.skeleton-row{background:linear-gradient(90deg,#eef3f0,#f8faf8,#eef3f0);border-radius:8px;height:70px;animation:1.2s ease-in-out infinite pulse}.empty-state,.notice{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.notice.error{color:var(--danger);background:#fff1f0;border-color:#f4b6b0;margin:12px 0}.notice.warning{color:var(--warning);background:#fff8e8;border-color:#f5d083}.notice.success{color:#0d5a24;background:#e9f7ed;border-color:#8bc89a;margin:12px 0}.field-hint{color:var(--muted)}.read-only-status{background:var(--surface-muted);border:1px solid var(--border);border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:8px 10px;display:flex}.room-form{gap:14px;margin-top:18px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-wide{grid-column:1/-1}.meter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field textarea{resize:vertical;min-height:96px}.field-error{color:var(--danger)}.form-actions{justify-content:flex-end;display:flex}.settlement-preview{border-top:1px solid var(--border);gap:14px;margin-top:20px;padding-top:18px;display:grid}.settlement-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.login-shell{align-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;max-width:420px;margin:0 auto;padding:24px}.field{gap:6px;margin-top:14px;display:grid}.field input{border:1px solid var(--border);font:inherit;border-radius:6px;width:100%;min-width:0;padding:11px 12px}.field select,.field textarea,.toolbar input,.toolbar select{width:100%;min-width:0}.ui-button{cursor:pointer;font:inherit;text-align:center;white-space:normal;border:0;border-radius:6px;justify-content:center;align-items:center;max-width:100%;min-height:42px;padding:10px 14px;font-weight:700;text-decoration:none;display:inline-flex}.room-row>span,.settlement-row>span,.member-row>span,.invoice-item-row>span{overflow-wrap:anywhere;min-width:0}.ui-button-primary{background:var(--primary);color:var(--primary-contrast)}.ui-button-secondary{background:var(--surface-muted);color:var(--text)}.ui-button-danger{background:var(--danger);color:#fff}.ui-status{border-radius:999px;padding:4px 8px;font-size:13px;font-weight:700;display:inline-flex}.ui-status-neutral{color:#3b4540;background:#eef3f0}.ui-status-success{color:var(--success);background:#e7f6ea}.ui-status-warning{color:#684500;background:#ffedb5}.ui-status-danger{color:#8f1710;background:#fbd5d1}.role-actions{flex-wrap:wrap;gap:10px;display:flex}.assignment-panel,.current-room-field{margin-top:12px}.modal-backdrop,.drawer-backdrop{z-index:80;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:8px;width:100%;max-width:680px;max-height:calc(100vh - 40px);padding:20px;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal-context{color:var(--muted);margin:0}.modal-actions{gap:10px}.icon-button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:inline-flex}.action-queue{gap:10px;margin-top:12px;display:grid}.action-row{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.action-row>span:first-child{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-row small{color:var(--muted);flex-basis:100%}.action-row-end{white-space:nowrap;align-items:center;gap:12px;display:flex}.text-link{color:var(--primary);font-weight:700}.mobile-nav,.mobile-drawer,.drawer-backdrop{display:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #67b6a6}@media (width<=1280px){.rooms-layout,.tenants-layout,.pricing-layout,.utilities-layout,.billing-layout{grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{min-height:54px;padding:0 14px}.topbar span{font-size:12px}.content{padding:14px 12px calc(90px + env(safe-area-inset-bottom))}.mobile-nav{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:60;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav-link{color:var(--muted);font:inherit;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:62px;padding:6px 2px;text-decoration:none;display:flex}.mobile-nav-link[aria-current=page],.mobile-nav-link[data-active=true]{color:var(--primary);font-weight:700}.mobile-nav-link small{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:11px;overflow:hidden}.drawer-backdrop{align-items:flex-end;padding:0;display:flex}.mobile-drawer{background:var(--surface);max-height:80vh;padding:18px 16px calc(20px + env(safe-area-inset-bottom));border-radius:8px 8px 0 0;gap:16px;width:100%;display:grid;overflow-y:auto}.mobile-drawer nav{gap:6px;display:grid}.mobile-drawer nav a{border-radius:6px;align-items:center;gap:10px;min-height:48px;padding:10px;text-decoration:none;display:flex}.mobile-drawer nav a[aria-current=page]{background:var(--surface-muted);color:var(--primary)}.metric-grid,.rooms-layout,.tenants-layout,.pricing-layout,.utilities-layout,.billing-layout,.debt-layout,.reports-layout,.toolbar,.debts-toolbar,.report-toolbar,.report-table-head,.report-table-row,.form-grid,.meter-grid,.settlement-grid,.tenant-facts,.tenancy-actions{grid-template-columns:1fr}.rooms-list,.room-detail,.panel{padding:14px}.section-heading{align-items:flex-start}.section-heading h1,.section-heading h2{font-size:24px}.toolbar,.tenants-toolbar,.debts-toolbar,.report-toolbar{grid-template-columns:minmax(0,1fr)}.room-row,.settlement-row,.member-row,.action-row,.action-row-end,.read-only-status{flex-direction:column;align-items:flex-start}.invoice-item-row{grid-template-columns:minmax(0,1fr);align-items:start}.invoice-item-money{text-align:left;justify-items:start}.invoice-print-action,.report-actions,.report-actions .ui-button{width:100%;min-height:44px}.room-row .ui-status,.settlement-row .ui-status{align-self:flex-start}.action-row-end,.action-row-end .ui-button,.role-actions,.role-actions .ui-button,.modal-actions,.modal-actions .ui-button{width:100%}.credit-balance-panel,.receipt-dialog-heading,.receipt-allocation-row,.receipt-history-row{flex-direction:column;align-items:stretch}.credit-balance-panel .text-link,.receipt-view-switch,.receipt-view-switch button,.receipt-preview-totals{width:100%}.receipt-view-switch button{flex:1}.receipt-preview-totals{grid-template-columns:minmax(0,1fr)}.receipt-row-end{place-items:flex-start start}.occupancy-panel .ui-button,.receipt-form .ui-button,.receipt-detail .ui-button,.receipt-void-form .ui-button{min-height:44px}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:8px 8px 0 0;max-height:92vh;padding:16px}.report-table-head{display:none}.report-table-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px;display:grid}.report-table-row>span{overflow-wrap:anywhere;text-align:right;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.report-invoice-cell small{flex-basis:100%}.report-table-row>span:before{color:var(--muted);content:attr(data-label);text-align:left;flex:none;font-size:13px;font-weight:700}}@media print{@page{margin:12mm;size:A4 portrait}body{color:#000;background:#fff}.sidebar,.topbar,.mobile-nav,.mobile-drawer,.drawer-backdrop,.billing-layout>.rooms-list,.invoice-screen-heading,.invoice-payment-form,.invoice-print-action,.invoice-print-error,.skip-link{display:none!important}.app-shell,.main,.content,.billing-layout{min-height:auto;display:block}.content{padding:0}.invoice-detail-panel{border:0;border-radius:0;padding:0}.invoice-document-title{margin-top:0;font-size:18pt}.invoice-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.pricing-cell,.invoice-item-row{break-inside:avoid;border-color:#777}.invoice-items,.invoice-notes,.invoice-facts{break-inside:avoid}.ui-status,.pricing-cell,.invoice-item-row{box-shadow:none!important;color:#000!important;background:#fff!important}}@keyframes pulse{0%,to{opacity:.65}50%{opacity:1}}
