html,body,#root{min-height:100%;margin:0}body{color:#172033;background:#f4f7fe}.app-shell{min-height:100vh}.app-sider,.app-sider .ant-menu-dark,.app-sider .ant-menu-dark .ant-menu-sub{background:#0d1b3f}.brand{color:#fff;align-items:center;gap:10px;height:64px;padding:18px 20px;font-size:16px;font-weight:700;display:flex}.brand:before{content:"";background:linear-gradient(#ffffffeb,#ffffff7a) 8px 12px/4px 10px no-repeat,linear-gradient(#ffffffeb,#ffffff7a) 14px 8px/4px 14px no-repeat,linear-gradient(#ffffffeb,#ffffff7a) 20px 5px/4px 17px no-repeat,linear-gradient(135deg,#635bff,#2f7cf6);border-radius:8px;width:28px;height:28px;box-shadow:0 10px 24px #4f46e55c}.app-header{background:#fff;border-bottom:1px solid #e7ebf4;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;box-shadow:0 10px 30px #1118270a}.app-content{background:#f4f7fe;min-height:calc(100vh - 64px);padding:24px}.ant-card{border-color:#e7ebf4;border-radius:12px;box-shadow:0 10px 30px #0f172a0a}.dashboard{width:100%}.dashboard.ant-space,.full-width.ant-space{width:100%;display:flex}.dashboard.ant-space>.ant-space-item,.full-width.ant-space>.ant-space-item,.full-width{width:100%}.attachment-file-input{width:min(420px,100%)}.loading-page{background:#f4f7fe;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-page{background:#fff;min-height:100vh;display:block;position:relative;overflow:hidden}.login-forgot-password{height:auto;padding:0}.password-change-page{background:#f3f6fc;place-items:center;min-height:100vh;padding:32px;display:grid}.password-change-card{width:min(480px,100%)}.password-change-actions{justify-content:flex-end;display:flex}.login-clip-defs{width:0;height:0;position:absolute;overflow:hidden}.login-hero-panel{z-index:1;clip-path:url(#loginHeroCurveClip);filter:drop-shadow(28px 0 38px #1f2d4e14);width:62vw;height:100vh;position:absolute;inset:0 auto 0 0;overflow:hidden}.login-hero-panel:after{content:"";pointer-events:none;background:linear-gradient(90deg,#050c1833 0%,#050c180f 42%,#ffffff1a 100%),linear-gradient(#0000000d,#0000 30%,#0000000f);position:absolute;inset:0}.login-hero-image{background:url(/assets/login-hero-mall-Bt8xOly_.jpg) 25%/cover no-repeat;width:100%;height:100%;transform:scale(1.012)}.login-auth-panel{z-index:2;justify-content:center;align-items:center;width:42vw;padding:48px clamp(38px,6.2vw,112px) 48px clamp(28px,4.8vw,86px);display:flex;position:absolute;inset:0 0 0 auto}.login-form-wrap{width:min(390px,100%)}.login-brand-block{flex-direction:row;align-items:center;gap:16px;margin-bottom:54px;display:flex}.login-logo-mark{background:linear-gradient(135deg,#635bff 0%,#4338f2 100%);border-radius:11px;flex:0 0 48px;width:48px;height:48px;position:relative;overflow:hidden;box-shadow:0 12px 24px #4338f23d}.login-logo-mark:before{content:"";border:2px solid #0000;border-color:#0000 #0000 #ffffffdb #ffffffdb;border-radius:0 0 4px 4px;width:55%;height:35%;position:absolute;bottom:27%;left:23%;transform:rotate(-6deg)}.login-logo-mark span{background:#fff;border-radius:3px;width:11%;position:absolute;bottom:30%}.login-logo-mark span:first-child{opacity:.72;height:27%;left:32%}.login-logo-mark span:nth-child(2){opacity:.86;height:41%;left:50%}.login-logo-mark span:nth-child(3){height:55%;left:68%}.login-brand-block h1.ant-typography{color:#1d2433;letter-spacing:0;white-space:nowrap;margin:0;font-size:28px;font-weight:700;line-height:1.2}.login-brand-block .ant-typography{color:#5d6a85;white-space:nowrap;font-size:14px;line-height:1.35}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-form-item-label{padding-bottom:8px;line-height:1.15}.login-form .ant-form-item-label>label{color:#4e5969;font-size:14px;font-weight:500;line-height:1.15}.login-form .ant-input,.login-form .ant-input-affix-wrapper{color:#1d2129;height:44px;min-height:44px;box-shadow:none;background:#fff;border-color:#e5e6eb;border-radius:6px;font-size:15px}.login-form .ant-input::placeholder,.login-form .ant-input-affix-wrapper input::placeholder{color:#a8b0bd}.login-extra-row{color:#4e5969;justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 28px;display:flex}.login-extra-row .ant-checkbox-wrapper,.login-extra-row .ant-typography{font-size:13px}.login-extra-row .ant-checkbox-inner{border-color:#d7dce6;border-radius:3px;width:14px;height:14px}.login-extra-row .ant-typography{color:#2f54eb}.login-submit.ant-btn{background:#3f3cf4;border:0;border-radius:6px;height:46px;font-size:15px;font-weight:600;box-shadow:0 10px 20px #3f3cf43d}.login-submit.ant-btn:hover,.login-submit.ant-btn:focus{background:#4f46ff}.login-copyright.ant-typography{color:#9aa4b5;text-align:left;margin-top:86px;font-size:12px;display:block}@media (width>=521px) and (width<=760px){.login-hero-panel{width:61vw}.login-auth-panel{width:45vw;padding:36px 24px 36px 28px}.login-form-wrap{width:238px}.login-brand-block{gap:10px;margin-bottom:42px}.login-logo-mark{border-radius:10px;flex-basis:40px;width:40px;height:40px}.login-brand-block h1.ant-typography{font-size:20px}.login-brand-block .ant-typography{font-size:11px}.login-form .ant-form-item{margin-bottom:16px}.login-form .ant-input,.login-form .ant-input-affix-wrapper{height:40px;min-height:40px;font-size:13px}.login-extra-row{margin:-2px 0 22px}.login-submit.ant-btn{height:44px}.login-copyright.ant-typography{margin-top:72px;font-size:11px}}@media (width<=520px){.login-hero-panel{opacity:.22;width:100vw}.login-auth-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;width:100vw;padding:36px 24px}.login-form-wrap{width:min(380px,100%)}.login-brand-block h1.ant-typography{font-size:26px}.login-copyright.ant-typography{margin-top:64px}}.page-heading{max-width:920px}.page-heading h2{letter-spacing:0;margin-bottom:6px}.metric-card,.work-card{border-radius:8px}.metric-card .ant-card-body{min-height:136px}.dashboard-toolbar{border-radius:8px}.dashboard-toolbar .ant-card-body{padding:14px 16px}.dashboard-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:end;gap:8px 10px;width:100%;max-width:260px;margin-left:auto;display:grid}.dashboard-toolbar-action{width:100%}.dashboard-toolbar-action-wide{grid-column:1/-1}.notification-filter-actions{width:100%}.notification-filter-actions .ant-space-item{flex:none}.leadership-metric-card{border-radius:8px}.leadership-metric-card[role=button]:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.leadership-metric-card .ant-card-body{min-height:146px}.leadership-metric-card .ant-space,.leadership-metric-card .ant-space-item{width:100%}.leadership-metric-card h3.ant-typography{letter-spacing:0;overflow-wrap:anywhere;max-width:100%;margin:0;font-size:24px;line-height:1.25;display:block}.metric-delta{flex-wrap:wrap;gap:6px;min-height:24px;display:flex}.leadership-results-strip{align-items:stretch}.leadership-result-metric{cursor:pointer;background:#fff;border:1px solid #e3e8f2;border-radius:8px;height:100%;min-height:108px;padding:16px 18px}.leadership-result-metric:hover{border-color:#8fb3ff}.leadership-result-metric:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.leadership-result-metric h4.ant-typography{letter-spacing:0;margin:6px 0 4px;font-size:21px}.leadership-chart{width:100%;height:320px}.timeline-title{max-width:720px}.evidence-link{white-space:normal;text-align:left;max-width:220px;height:auto;padding:0}.phase-item{background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:8px;min-height:44px;padding:10px 12px;display:flex}.payments-table .ant-table-cell{white-space:nowrap}.scope-filter-strip{background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.payment-flow-guidance{margin-bottom:12px}.payment-flow-guidance.ant-alert{flex-wrap:wrap;align-items:flex-start}.payment-flow-guidance .ant-alert-content{flex:360px;min-width:260px}.payment-flow-guidance .ant-alert-description{line-height:1.65}.payment-flow-guidance .ant-alert-action{margin-top:10px;flex:1 0 100%;margin-inline-start:32px}.payment-workbench{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.bill-workbench,.finance-workbench{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.deposit-workbench{grid-template-columns:repeat(5,minmax(0,1fr))}.unit-operation-summary{margin-bottom:12px}.unit-operation-card{color:#344054;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;width:100%;min-height:96px;padding:14px 16px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.unit-operation-card:hover{background:#eff6ff;border-color:#2563eb;box-shadow:0 6px 18px #2563eb1f}.unit-operation-card.is-actionable{background:#f0f9ff;border-color:#7dd3fc}.unit-operation-card.is-actionable strong{color:#0369a1}.unit-operation-card.is-risk{background:#fff1f2;border-color:#fecaca}.unit-operation-card.is-risk strong{color:#be123c}.unit-operation-card span{color:#667085;font-size:13px}.unit-operation-card strong{color:#101828;font-size:22px;line-height:1.2}.unit-operation-card small{color:#98a2b3}.unit-operation-detail{margin-top:8px}.rent-control-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px;display:grid}.rent-control-summary>div{background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;justify-content:center;gap:4px;min-height:82px;padding:12px 14px;display:flex}.rent-control-summary>div.is-risk{background:#fff7ed;border-color:#fed7aa}.rent-control-summary span,.rent-control-unit small{color:#667085}.rent-control-summary strong{color:#101828;font-size:22px;line-height:1.2}.rent-control-summary small{color:#98a2b3}.rent-control-legend{flex-wrap:wrap;gap:6px;margin:-6px 0 16px;display:flex}.rent-control-project{border-top:1px solid #f1f5f9;padding-top:2px}.rent-control-project:first-child{border-top:0}.rent-control-project-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.rent-control-project-header>div{flex-direction:column;gap:2px;min-width:0;display:flex}.rent-control-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.rent-control-unit{color:#101828;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:6px;flex-direction:column;align-items:flex-start;gap:6px;min-height:184px;padding:12px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.rent-control-unit:hover{border-color:#2563eb;transform:translateY(-1px);box-shadow:0 8px 20px #2563eb1f}.rent-control-unit:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.rent-control-unit.is-vacant{border-left-color:#16a34a}.rent-control-unit.is-occupied{border-left-color:#2563eb}.rent-control-unit.is-expiring{background:#fffbeb;border-left-color:#f59e0b}.rent-control-unit.is-arrears{background:#fff7ed;border-left-color:#dc2626}.rent-control-unit.is-risk{background:#fff1f2;border-left-color:#dc2626}.rent-control-unit.is-locked,.rent-control-unit.is-other{border-left-color:#64748b}.rent-control-unit-title{justify-content:space-between;align-items:flex-start;gap:8px;width:100%;display:flex}.rent-control-unit-title strong{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.rent-control-unit-title .ant-space{justify-content:flex-end}.rent-control-unit>span,.rent-control-unit em{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.rent-control-unit>span{font-weight:600}.rent-control-unit em{color:#475467;font-style:normal}.rent-control-unit-metrics{align-items:center;min-height:24px;display:flex}.rent-control-unit-arrears{color:#b42318;font-size:13px;line-height:1.35}.rent-control-unit-actions{width:100%;margin-top:auto;display:flex}.rent-control-unit-actions .ant-btn{width:100%}.bill-workbench-item,.finance-workbench-item,.payment-workbench-item{color:#344054;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-height:74px;padding:12px 14px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.payment-workbench-item:hover,.payment-workbench-item.is-active,.bill-workbench-item:hover,.bill-workbench-item.is-active,.finance-workbench-item:hover,.finance-workbench-item.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 6px 18px #2563eb1f}.bill-workbench-item.is-actionable,.finance-workbench-item.is-actionable,.payment-workbench-item.is-actionable{background:#f0f9ff;border-color:#7dd3fc}.bill-workbench-item.is-actionable strong,.finance-workbench-item.is-actionable strong,.payment-workbench-item.is-actionable strong{color:#0369a1}.bill-workbench-item.is-actionable:hover,.bill-workbench-item.is-actionable.is-active,.finance-workbench-item.is-actionable:hover,.finance-workbench-item.is-actionable.is-active,.payment-workbench-item.is-actionable.is-active,.payment-workbench-item.is-actionable:hover{background:#e0f2fe;border-color:#0284c7}.payment-workbench-item.is-archive{background:#fffbeb;border-color:#fde68a}.payment-workbench-item.is-archive strong{color:#92400e}.payment-workbench-item.is-archive:hover,.payment-workbench-item.is-archive.is-active{background:#fef3c7;border-color:#f59e0b}.bill-workbench-item.is-risk,.finance-workbench-item.is-risk{background:#fff1f2;border-color:#fecaca}.bill-workbench-item.is-risk strong,.finance-workbench-item.is-risk strong{color:#be123c}.bill-workbench-item.is-risk:hover,.bill-workbench-item.is-risk.is-active,.finance-workbench-item.is-risk:hover,.finance-workbench-item.is-risk.is-active{background:#ffe4e6;border-color:#fb7185}.bill-workbench-item span,.finance-workbench-item span,.payment-workbench-item span{color:#667085;font-size:13px}.bill-workbench-item strong,.finance-workbench-item strong,.payment-workbench-item strong{color:#101828;font-size:24px;line-height:1}.bill-workbench-item small,.finance-workbench-item small,.payment-workbench-item small{color:#98a2b3}@media (width<=960px){.bill-workbench,.deposit-workbench,.finance-workbench,.payment-workbench{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.bill-workbench,.deposit-workbench,.finance-workbench,.payment-workbench{grid-template-columns:1fr}.payment-flow-guidance .ant-alert-action{margin-inline-start:0}}.payments-table .payment-row-reversed>td{color:#344054;background:#fffbeb}.payments-table .payment-row-reversed .ant-btn:not(.ant-btn-primary){color:#92400e;background:#fff;border-color:#fde68a}.payments-table .payment-row-reversed .ant-tag{color:#854d0e;background:#fef3c7;border-color:#facc15}.payments-table .payment-row-unapplied>td{background:#f8fbff}.payments-table .payment-row-unapplied>td:first-child{box-shadow:inset 3px 0 #06b6d4}.payments-table .payment-row-unapplied:hover>td{background:#eff6ff!important}.payments-table .payment-row-partial>td{background:#f8faff}.payments-table .payment-row-partial>td:first-child{box-shadow:inset 3px 0 #2563eb}.payments-table .payment-row-partial:hover>td{background:#eef4ff!important}.payments-table .payment-row-reversed>td:first-child{box-shadow:inset 3px 0 #f59e0b}.payments-table .payment-row-reversed:hover>td{background:#fff7ed!important}.payment-next-step-panel{background:linear-gradient(90deg,#eff6ff 0%,#fff 58%);border-color:#bfdbfe;margin:12px 0}.payment-next-step-title{margin:2px 0 4px!important}.payment-allocation-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.payment-allocation-steps span{color:#475467;text-align:center;background:#fff;border:1px solid #d0d5dd;border-radius:6px;justify-content:center;align-items:center;min-height:34px;font-size:13px;font-weight:600;display:flex}.payment-allocation-steps span.is-current{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.payment-allocation-steps span.is-done{color:#166534;background:#f0fdf4;border-color:#86efac}@media (width<=640px){.ant-modal{max-width:calc(100vw - 24px)!important;margin:8px auto!important}.ant-modal-body{overflow-x:auto}.ant-modal-body .ant-row{margin-left:0!important;margin-right:0!important}.ant-modal-body .ant-col{flex:0 0 100%!important;max-width:100%!important;padding-left:0!important;padding-right:0!important}.payment-allocation-steps{grid-template-columns:1fr}}.payments-table .ant-space{white-space:normal}.risk-alerts-table .ant-table-cell{vertical-align:top}.risk-alerts-table .ant-table-thead>tr>th{white-space:nowrap}.risk-alert-project,.risk-alert-type,.risk-alert-title{max-width:100%;display:inline-block}.risk-alert-content{color:#475467;line-height:1.5;margin-bottom:0!important}.risk-alert-actions{min-width:202px}.table-link-ellipsis{text-align:left;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;justify-content:flex-start;max-width:200px;display:inline-flex;overflow:hidden}.table-link-ellipsis>span{text-overflow:ellipsis;overflow:hidden}@media (width<=575px){.app-shell{display:block}.app-shell.ant-layout-has-sider>.ant-layout{min-width:100%;width:100%!important}.app-sider{width:100%!important;min-width:100%!important;max-width:100%!important}.app-sider .ant-menu{max-height:220px;overflow-y:auto}.app-content{padding:16px;overflow-x:auto}.app-header{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:0 16px}.ant-card,.ant-table-wrapper{max-width:calc(100vw - 32px);overflow-x:auto}.dashboard-toolbar-actions{max-width:none}.notification-filter-actions{align-items:stretch}.notification-filter-actions .ant-space-item{flex:calc(50% - 8px);min-width:128px}.notification-filter-actions .ant-btn{width:100%}.leadership-metric-card .ant-card-body{min-height:auto}.leadership-chart{height:260px}.rent-control-summary{grid-template-columns:1fr}.rent-control-project-header{flex-direction:column;align-items:flex-start}.rent-control-grid{grid-template-columns:1fr}}
