:root{--bg:#f6f5f1;--surface:#fff;--ink:#171915;--muted:#777a72;--line:#e8e6df;--dark:#151813;--gold:#b08a55;--green:#155d46;--green-bg:#cfe5d9;--red:#8f3131;--red-bg:#efd0d0;--yellow:#7a5608;--yellow-bg:#efdda8;--shadow:0 18px 45px rgba(27,29,24,.06);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#171a15,#10120f);color:#fff;padding:26px 18px;display:flex;flex-direction:column}.brand,.login-brand{display:flex;align-items:center;gap:12px}.brand{padding:0 8px 28px}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#d2b07d,#8e6a3e);display:grid;place-items:center;font-weight:800;color:#151813;box-shadow:inset 0 1px rgba(255,255,255,.45)}.brand strong,.login-brand strong{display:block;font-size:16px}.brand span,.login-brand span{display:block;color:#90958a;font-size:11px;margin-top:3px}.sidebar nav{display:flex;flex-direction:column;gap:5px;flex:1}.nav-link{display:flex;align-items:center;gap:12px;color:#aeb3aa;padding:12px 14px;border-radius:12px;font-size:14px;font-weight:600;transition:.18s}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.075);color:#fff}.nav-link.active{box-shadow:inset 3px 0 #c8a26b}.nav-icon{width:22px;text-align:center}.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding:18px 4px 0;display:grid;grid-template-columns:38px 1fr 28px;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#2b3028;display:grid;place-items:center;font-weight:700}.sidebar-footer strong{font-size:13px;display:block}.sidebar-footer span{font-size:11px;color:#8f958b}.logout{color:#8f958b}.main{min-width:0}.topbar{height:112px;padding:28px 36px 18px;display:flex;align-items:center;justify-content:space-between}.eyebrow{display:block;font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--gold);margin-bottom:7px}.topbar h1{margin:0;font-size:27px;letter-spacing:-.04em}.date-chip{background:#fff;border:1px solid var(--line);padding:10px 13px;border-radius:12px;font-size:12px;color:var(--muted)}.content{padding:0 36px 40px;max-width:1600px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;right:-20px;top:-20px;width:70px;height:70px;border-radius:50%;background:#f1eee7}.kpi.success:before{background:var(--green-bg)}.kpi.danger:before{background:var(--red-bg)}.kpi.warning:before{background:var(--yellow-bg)}.kpi span{color:var(--muted);font-size:12px;font-weight:600}.kpi strong{display:block;font-size:28px;letter-spacing:-.04em;margin-top:10px}.kpi small{display:block;color:#999c95;font-size:11px;margin-top:5px}.financial .kpi strong{font-size:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:18px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.card-head h2{font-size:16px;margin:0;letter-spacing:-.02em}.legend{display:flex;gap:15px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.green{background:#1f7a58}.dot.red{background:#b84a4a}.dot.yellow{background:#c2911f}.floor-row{display:grid;grid-template-columns:115px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.floor-label{font-size:13px;font-weight:700;color:#5f625b;padding-top:13px}.unit-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.unit-card{border-radius:16px;padding:15px;border:1px solid;min-height:124px;transition:.2s}.unit-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(20,22,18,.08)}.unit-card.occupied{background:#cfe5d9;border-color:#6f9f89;box-shadow:inset 0 0 0 1px rgba(21,93,70,.05)}.unit-card.vacant{background:#efd0d0;border-color:#c77a7a;box-shadow:inset 0 0 0 1px rgba(143,49,49,.05)}.unit-card.leaving{background:#efdda8;border-color:#c79e3a;box-shadow:inset 0 0 0 1px rgba(122,86,8,.06)}.unit-top{display:flex;justify-content:space-between;align-items:center}.unit-top strong{font-size:18px}.status-pill{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;opacity:1}.unit-card.occupied .status-pill{color:#155d46}.unit-card.vacant .status-pill{color:#8f3131}.unit-card.leaving .status-pill{color:#7a5608}.unit-card h3{font-size:14px;margin:17px 0 3px}.unit-card p{font-size:11px;color:#555b54;margin:0}.unit-card h3{color:#161915}.unit-meta{margin-top:10px;display:flex;justify-content:space-between;color:#4f554e;font-size:10px}.unit-card.occupied .unit-meta{color:#2c634f}.unit-card.vacant .unit-meta{color:#814141}.unit-card.leaving .unit-meta{color:#73570f}.toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px}.search{display:flex;gap:8px;flex:1;max-width:560px}.search input{flex:1}.btn{border:0;border-radius:11px;padding:11px 15px;font:600 12px Inter;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.18s}.btn.primary{background:#1b1e19;color:#fff}.btn.primary:hover{background:#2a2e27;transform:translateY(-1px)}.btn.secondary{background:#fff;border:1px solid var(--line);color:#454842}.btn.warning{background:#fff2ca;color:#7c5a0d}.btn.danger{background:#fae6e3;color:#a64040}.btn.tiny{padding:7px 10px;font-size:10px;background:#20231e;color:#fff}.btn.wide{width:100%}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;align-items:end}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.compact{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#63665f;font-size:11px;font-weight:700}.form-grid .full{grid-column:1/-1}.form-grid .span2{grid-column:span 2}input,select,textarea{width:100%;border:1px solid #deddd7;background:#fbfbf8;border-radius:11px;padding:11px 12px;font:500 13px Inter;color:#252822;outline:0;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#b69a70;box-shadow:0 0 0 3px rgba(176,138,85,.12);background:#fff}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#8a8d85;font-size:9px;text-transform:uppercase;letter-spacing:.09em;padding:11px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #efeee9;vertical-align:middle}td small{display:block;color:#9a9d95;margin-top:4px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.yellow{background:var(--yellow-bg);color:var(--yellow)}.badge.gray{background:#efefeb;color:#6d7069}.link{font-weight:700;color:#7c6038;font-size:11px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.empty{padding:30px;text-align:center;color:var(--muted);font-size:12px}.alert{border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:12px;transition:.3s}.alert.success{background:var(--green-bg);color:var(--green)}.alert.danger{background:var(--red-bg);color:var(--red)}.alert.fade{opacity:0;transform:translateY(-5px)}.profile-hero{background:linear-gradient(135deg,#1c201a,#2b3128);color:#fff;border-radius:22px;padding:26px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.profile-hero h2{font-size:28px;margin:10px 0 4px}.profile-hero p{color:#b9bdb4;margin:0;font-size:12px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-list div{padding:12px;border-radius:12px;background:#faf9f6}.detail-list span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.detail-list strong{font-size:12px}.inline-form{display:flex;gap:8px;margin-top:12px}.member-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.member-row strong{display:block;font-size:12px}.member-row span{font-size:10px;color:var(--muted)}.mini-upload{display:flex;gap:6px;align-items:center}.mini-upload input[type=file]{font-size:9px;padding:6px;max-width:190px}.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.doc-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:#faf9f6;display:flex;flex-direction:column;gap:6px}.doc-card span{font-size:20px}.doc-card strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-card small{font-size:9px;color:var(--muted)}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.permission-item{border:1px solid var(--line);border-radius:13px;padding:12px;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;background:#faf9f6;cursor:pointer}.permission-item input{width:auto}.permission-item strong{display:block;font-size:11px;color:#333}.permission-item small{display:block;font-size:8px;color:#989b94;margin-top:3px}.section-label{font-size:12px;font-weight:800;margin:4px 0 10px}.row-actions{display:flex;gap:5px;align-items:center}.row-actions form{margin:0}.login-body{background:#efeee9;min-height:100vh;display:grid;place-items:center;padding:30px}.login-wrap{width:min(960px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 30px 80px rgba(23,25,21,.13)}.login-panel{background:radial-gradient(circle at 20% 20%,#3a4033 0,#20241d 40%,#11130f 100%);color:#fff;padding:42px;min-height:570px;display:flex;flex-direction:column}.login-brand span{color:#9fa49a}.login-copy{margin:auto 0}.login-copy h1{font-size:42px;line-height:1.04;letter-spacing:-.055em;margin:14px 0 18px}.login-copy p{color:#aeb3aa;line-height:1.7;font-size:13px;max-width:380px}.login-card{padding:60px 46px;display:flex;flex-direction:column;justify-content:center;gap:16px}.login-card h2{font-size:28px;margin:0}.login-card p{color:var(--muted);font-size:12px;margin:0 0 12px}.login-card label{font-size:11px;font-weight:700;color:#64675f}.login-card label input{margin-top:7px}.login-card small{text-align:center;color:#999c95;font-size:10px}@media(max-width:1050px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:24px 12px}.brand>div:not(.brand-mark),.nav-link:not(.active){font-size:0}.nav-link{justify-content:center}.nav-icon{font-size:18px}.sidebar-footer>div:not(.avatar),.logout{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.unit-grid{grid-template-columns:repeat(2,1fr)}.permission-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto;flex-direction:row;overflow:auto;align-items:center;padding:10px}.brand{padding:0 10px 0 0}.brand>div:not(.brand-mark){display:none}.sidebar nav{flex-direction:row}.nav-link{white-space:nowrap;padding:10px}.sidebar-footer{display:none}.topbar{height:auto;padding:22px 18px 14px}.content{padding:0 18px 30px}.kpi-grid,.two-col,.form-grid,.form-grid.three,.permission-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.unit-grid{grid-template-columns:1fr 1fr}.floor-row{grid-template-columns:1fr}.floor-label{padding-top:0}.login-wrap{grid-template-columns:1fr}.login-panel{display:none}.login-card{padding:44px 28px}.doc-grid{grid-template-columns:repeat(2,1fr)}}
/* === DEEP STATUS THEME v4 === */
.unit-card.occupied{
  background:#A8D5BC !important;
  border:2px solid #3F8767 !important;
  box-shadow:0 8px 20px rgba(36,104,76,.10), inset 0 0 0 1px rgba(255,255,255,.22) !important;
}
.unit-card.vacant{
  background:#E9A6A6 !important;
  border:2px solid #B94F4F !important;
  box-shadow:0 8px 20px rgba(150,48,48,.10), inset 0 0 0 1px rgba(255,255,255,.18) !important;
}
.unit-card.leaving{
  background:#E6C05F !important;
  border:2px solid #B48718 !important;
  box-shadow:0 8px 20px rgba(151,108,10,.12), inset 0 0 0 1px rgba(255,255,255,.20) !important;
}
.unit-card.occupied .status-pill{color:#0B4F35 !important}
.unit-card.vacant .status-pill{color:#762323 !important}
.unit-card.leaving .status-pill{color:#684800 !important}
.unit-card.occupied .unit-meta,.unit-card.occupied p{color:#184F3B !important}
.unit-card.vacant .unit-meta,.unit-card.vacant p{color:#6E2E2E !important}
.unit-card.leaving .unit-meta,.unit-card.leaving p{color:#624900 !important}
.unit-card h3,.unit-card .unit-top strong{color:#10130f !important}
.unit-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 16px 34px rgba(20,22,18,.16) !important}
.dot.green{background:#2E8B61 !important}.dot.red{background:#C54848 !important}.dot.yellow{background:#C59217 !important}
.badge.green{background:#A8D5BC !important;color:#0B4F35 !important}
.badge.red{background:#E9A6A6 !important;color:#762323 !important}
.badge.yellow{background:#E6C05F !important;color:#684800 !important}
.kpi.success:before{background:#A8D5BC !important}
.kpi.danger:before{background:#E9A6A6 !important}
.kpi.warning:before{background:#E6C05F !important}

/* === FINAL SETTLEMENT v5 === */
.settlement-launch{margin-top:14px;width:100%}.settlement-panel{display:none;border:1px solid #e0c78c;background:linear-gradient(180deg,#fffdf7,#fff)}.settlement-panel.open{display:block;animation:settleIn .2s ease}@keyframes settleIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.settlement-help{margin:-4px 0 18px;color:var(--muted);font-size:12px;line-height:1.6}.settlement-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.settlement-summary>div{padding:16px;border:1px solid var(--line);border-radius:14px;background:#faf9f6}.settlement-summary span,.settlement-result span,.settlement-mini span{display:block;font-size:10px;color:var(--muted);font-weight:700;margin-bottom:6px}.settlement-summary strong{font-size:20px}.settlement-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.settlement-result>div{padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:#f7f7f4}.settlement-result strong{font-size:24px}.settlement-result>div.active:first-child{background:#d9eee3;border-color:#79ad94;color:#155d46}.settlement-result>div.active:last-child{background:#f3d4d4;border-color:#c97979;color:#8f3131}.settlement-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.settlement-actions span{font-size:10px;color:var(--muted);line-height:1.5}.settled-box{padding:17px;border:1px solid #7eaf98;border-radius:15px;background:#deefe7}.settled-box h3{margin:10px 0 14px;font-size:15px}.settlement-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.settlement-mini>div{background:rgba(255,255,255,.6);border-radius:10px;padding:10px}.settlement-mini strong{font-size:12px}@media(max-width:760px){.settlement-summary,.settlement-result,.settlement-mini{grid-template-columns:1fr}.settlement-actions{align-items:stretch;flex-direction:column}.settlement-actions .btn{width:100%}}

/* Historical dashboard month selector */
.history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;margin-bottom:16px;background:linear-gradient(135deg,#fff,#fbfaf6)}
.history-toolbar h2{font-size:20px;margin:0;letter-spacing:-.03em}.history-toolbar p{margin:5px 0 0;color:var(--muted);font-size:11px}
.month-picker{display:flex;align-items:flex-end;gap:10px}.month-picker label{display:flex;flex-direction:column;gap:6px;color:#6f726a;font-size:10px;font-weight:700}.month-picker select{min-width:175px;background:#fff}
.history-count{font-size:10px;color:var(--muted);background:#f3f1eb;border:1px solid var(--line);padding:7px 9px;border-radius:999px}
@media(max-width:760px){.history-toolbar{align-items:stretch;flex-direction:column}.month-picker{align-items:stretch;flex-direction:column}.month-picker select{min-width:0}}

/* Historical due collection */
.due-collection-card .card-head p,.all-paid-card .card-head p{margin:5px 0 0;color:var(--muted,#777);font-size:13px}
.due-money{color:#9b2525;font-size:15px}
.inline-due-form{display:grid;grid-template-columns:minmax(90px,1fr) 145px 115px auto;gap:8px;align-items:end;min-width:370px}
.inline-due-form label{display:flex;flex-direction:column;gap:4px;margin:0}
.inline-due-form label span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#777}
.inline-due-form input,.inline-due-form select{height:38px;padding:7px 9px;border:1px solid #ddd7ce;border-radius:9px;background:#fff;font:inherit}
.inline-due-form .btn{height:38px;white-space:nowrap;padding:0 13px}
@media(max-width:900px){.inline-due-form{grid-template-columns:1fr 1fr;min-width:300px}.inline-due-form .btn{width:100%}}


/* Custom rent collection confirmation modal */
body.modal-open{overflow:hidden}
.rent-confirm-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}
.rent-confirm-modal.open{display:flex}
.rent-confirm-backdrop{position:absolute;inset:0;background:rgba(17,19,16,.52);backdrop-filter:blur(5px)}
.rent-confirm-dialog{position:relative;width:min(560px,100%);background:#fff;border:1px solid rgba(194,185,167,.7);border-radius:24px;box-shadow:0 30px 80px rgba(14,17,14,.28);padding:26px;animation:rentModalIn .18s ease}
@keyframes rentModalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.rent-confirm-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#172019;color:#fff;font-size:24px;font-weight:800;margin-bottom:16px}
.rent-confirm-copy h2{margin:3px 0 7px;font-size:24px;letter-spacing:-.035em}.rent-confirm-copy p{margin:0 0 18px;color:var(--muted);font-size:12px}
.rent-confirm-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.rent-confirm-details>div{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#faf9f6}
.rent-confirm-details span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#85877f;margin-bottom:5px}
.rent-confirm-details strong{display:block;font-size:13px;color:#151815;word-break:break-word}
.rent-confirm-details>div:nth-child(4){background:#e7f2eb;border-color:#b8d8c6}.rent-confirm-details>div:nth-child(4) strong{font-size:18px;color:#165b42}
.rent-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}
.rent-confirm-actions .btn{min-width:120px}.rent-confirm-actions .btn.primary{min-width:175px}
@media(max-width:600px){.rent-confirm-dialog{padding:20px;border-radius:20px}.rent-confirm-details{grid-template-columns:1fr}.rent-confirm-actions{flex-direction:column-reverse}.rent-confirm-actions .btn{width:100%}}


/* === EXPENSE MANAGEMENT v9 === */
.expense-top-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:16px;margin-bottom:16px}.expense-top-grid>.kpi{height:auto;min-height:155px}.expense-kpi:before{background:#d7b88d!important}.expense-kpi strong,.expense-money{color:#805727}.net-kpi:before{background:#9ccfb4!important}.net-kpi strong{color:#155d46}.expense-breakdown{margin:0}.expense-category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.expense-category-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#faf9f6;font-size:12px}.expense-category-list strong{font-size:13px}.expense-badge{background:#eee3d3;color:#6e4f28}.expense-form{align-items:end}.dashboard-expense-card .card-head{align-items:center}.btn.danger{background:#f6dddd;color:#8f3131;border-color:#e8bcbc}.btn.small{padding:7px 10px;font-size:10px}.financial{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.financial{grid-template-columns:repeat(2,1fr)}.expense-top-grid{grid-template-columns:1fr}}
@media(max-width:760px){.financial,.expense-category-list{grid-template-columns:1fr}}

/* Final settlement month-wise due breakdown */
.due-breakdown{margin:0 0 18px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.due-breakdown-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px 12px;border-bottom:1px solid var(--line);background:#faf9f6}.due-breakdown-head h3{margin:2px 0 0;font-size:15px}.due-breakdown .table-wrap{margin:0}.due-breakdown-table{margin:0}.due-breakdown-table th,.due-breakdown-table td{padding:12px 14px}.due-breakdown-table tbody tr:hover{background:#fff9f7}.due-breakdown-table .due-amount{font-weight:800;color:#a62828}.due-breakdown-table tfoot th{background:#faf4f2;border-top:1px solid #e5c1bd;font-size:12px}.due-clear{margin:12px 16px 16px}@media(max-width:760px){.due-breakdown-head{align-items:flex-start}.due-breakdown-table{min-width:620px}}

/* Final tenant profile refinements */
.tenant-editor{display:grid;gap:18px}
.tenant-editor .card{margin:0}
.optional{font-size:11px;color:#9a9489;font-weight:600;margin-left:6px}
.profile-photo-preview{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e3ded4;border-radius:14px;background:#faf8f4}
.profile-photo-preview img{width:58px;height:58px;object-fit:cover;border-radius:14px;border:1px solid #d7d1c6}
.profile-photo-preview span{font-size:12px;color:#777166}
.tenant-profile-hero{align-items:center}
.tenant-identity{display:flex;align-items:center;gap:18px}
.tenant-photo{width:88px;height:88px;border-radius:24px;background:#efe9df;display:grid;place-items:center;overflow:hidden;border:1px solid #d9d1c3;box-shadow:0 10px 28px rgba(31,35,30,.08)}
.tenant-photo img{width:100%;height:100%;object-fit:cover}
.tenant-photo span{font-size:34px;font-weight:800;color:#675f52}
.profile-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.type-badge{background:#ece7de;color:#5e584f;border:1px solid #d9d1c5}
.bangla-name{font-size:14px;margin:3px 0 4px;color:#69645b}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.detail-grid>div{padding:14px 15px;border-radius:14px;background:#faf8f4;border:1px solid #ece7df;min-height:76px}
.detail-grid>div.wide{grid-column:span 2}
.detail-grid span{display:block;font-size:11px;color:#8a8479;margin-bottom:6px}
.detail-grid strong{font-size:14px;line-height:1.45;word-break:break-word}
.tenant-list-person{display:flex;align-items:center;gap:10px;min-width:220px}
.tenant-list-person>img,.tenant-list-person>span{width:40px;height:40px;border-radius:12px;object-fit:cover;display:grid;place-items:center;background:#eee8df;border:1px solid #ddd5c8;font-weight:800}
.tenant-list-person div{display:flex;flex-direction:column;gap:2px}
.tenant-search{gap:8px;flex-wrap:wrap}
.tenant-search select{min-width:140px}
.date-dmy{font-variant-numeric:tabular-nums}
.hidden-field{display:none}.hidden-field.show{display:flex}
.align-end{align-self:end}
@media(max-width:1000px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid>div.wide{grid-column:span 2}}
@media(max-width:640px){.tenant-identity{align-items:flex-start}.tenant-photo{width:70px;height:70px;border-radius:18px}.detail-grid{grid-template-columns:1fr}.detail-grid>div.wide{grid-column:span 1}}

/* Independent parking rental module */
.parking-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.parking-kpis .kpi:nth-child(2):before{background:#a98ec9}.parking-add-card .card-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.parking-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.parking-collect-form{display:grid;grid-template-columns:90px 110px 95px auto;gap:6px;min-width:390px}.parking-collect-form input,.parking-collect-form select{height:36px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:11px}.parking-collect-form .btn{height:36px}.kpi small{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:600}@media(max-width:1180px){.parking-kpis{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(2,1fr)}.parking-two-col{grid-template-columns:1fr}}@media(max-width:720px){.parking-kpis,.form-grid.four{grid-template-columns:1fr}.parking-collect-form{grid-template-columns:1fr 1fr;min-width:300px}.parking-collect-form .btn{width:100%}}
.parking-dashboard-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.parking-dashboard-summary>div{padding:15px;border:1px solid var(--line);border-radius:13px;background:#faf9f6}.parking-dashboard-summary span{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-bottom:5px}.parking-dashboard-summary strong{font-size:18px}.dashboard-parking-card{background:linear-gradient(135deg,#fff,#fbf8ff)}@media(max-width:900px){.parking-dashboard-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.parking-dashboard-summary{grid-template-columns:1fr}}

/* Clickable dashboard report cards */
.kpi-link{position:relative;text-decoration:none;color:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;padding-bottom:34px}
.kpi-link:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(33,34,29,.11);border-color:#cfb98f}
.kpi-link em{position:absolute;left:20px;bottom:13px;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#8b6d40;opacity:.82}
.kpi-link:hover em{opacity:1}
.report-toolbar-actions{display:flex;align-items:center;gap:8px}.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.report-summary{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 8px 24px rgba(28,30,25,.045)}.report-summary span{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-bottom:7px}.report-summary strong{font-size:21px;letter-spacing:-.04em}.dashboard-detail-report td strong{font-weight:800}
@media(max-width:760px){.report-toolbar-actions{width:100%}.report-toolbar-actions .btn{width:100%}.kpi-link{padding-bottom:34px}}
.doc-uploader{padding:14px;border:1px dashed #d7d3c9;border-radius:14px;background:#faf9f6;margin-bottom:16px}.doc-upload-rows{display:grid;gap:9px}.doc-upload-row{display:grid;grid-template-columns:180px 1fr 1.3fr 44px;gap:8px;align-items:center}.doc-upload-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.rich-doc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rich-doc-card{padding:0;overflow:hidden;background:#fff}.doc-preview{height:130px;background:#f0eee8;display:grid;place-items:center;overflow:hidden}.doc-preview img{width:100%;height:100%;object-fit:cover}.pdf-preview{font-weight:900;letter-spacing:.12em;color:#a64040;font-size:22px}.doc-meta{padding:12px;display:flex;flex-direction:column;gap:6px}.doc-meta strong{font-size:11px;white-space:normal}.doc-meta small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-empty{grid-column:1/-1}.family-doc-upload{display:grid;grid-template-columns:130px 1fr 170px auto;gap:6px;align-items:center;margin-top:9px}.family-doc-upload select,.family-doc-upload input{font-size:10px;padding:7px}.member-doc-row{display:block}.member-info{margin-bottom:6px}.member-doc-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.member-doc-thumbs a{width:46px;height:46px;border-radius:9px;overflow:hidden;border:1px solid var(--line);display:grid;place-items:center;background:#faf9f6}.member-doc-thumbs img{width:100%;height:100%;object-fit:cover}.pdf-mini{font-size:9px;font-weight:900;color:#a64040}@media(max-width:900px){.doc-upload-row,.family-doc-upload{grid-template-columns:1fr}.rich-doc-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.rich-doc-grid{grid-template-columns:1fr}}

/* === Dashboard organization refresh v15 === */
.dashboard-metric-section{margin-bottom:22px}
.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 2px 10px}
.dashboard-section-head h2{font-size:15px;margin:0;letter-spacing:-.025em}
.dashboard-section-head .eyebrow{margin-bottom:4px}
.dashboard-section-head>small{font-size:10px;color:var(--muted);font-weight:600;padding-bottom:2px}
.dashboard-grid{display:grid;gap:14px}
.property-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.income-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.finance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-grid .kpi{min-height:142px;padding:19px 19px 38px;border-radius:17px;box-shadow:0 11px 30px rgba(27,29,24,.045)}
.dashboard-grid .kpi strong{font-size:25px;margin-top:9px}
.dashboard-grid .kpi span{font-size:11px}
.dashboard-grid .kpi small{font-size:9.5px;line-height:1.4}
.dashboard-grid .kpi-link em{left:19px;bottom:12px;font-size:8px}
.dashboard-grid .kpi:before{width:64px;height:64px;right:-18px;top:-19px}
.parking-kpi:before{background:#d9cee9!important}.parking-kpi strong{color:#5d4779}
.combined-kpi{background:linear-gradient(135deg,#fff,#f6faf7)}.combined-kpi:before{background:#b9dcc8!important}.combined-kpi strong{color:#155d46}
.advance-kpi{background:linear-gradient(135deg,#fff,#fbfaf6)}.advance-kpi:before{background:#e7dfd0!important}
.running-rent-grid{margin-top:-4px;margin-bottom:22px;grid-template-columns:repeat(4,minmax(0,1fr))}
.running-rent-grid .kpi{min-height:128px}
.card{box-shadow:0 12px 34px rgba(27,29,24,.045)}
.history-toolbar{border-radius:20px;box-shadow:0 12px 34px rgba(27,29,24,.045);margin-bottom:24px}
@media(max-width:1320px){.property-grid,.income-grid{grid-template-columns:repeat(3,1fr)}.finance-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.property-grid,.income-grid,.finance-grid,.running-rent-grid{grid-template-columns:repeat(2,1fr)}.dashboard-section-head{align-items:flex-start}}
@media(max-width:620px){.property-grid,.income-grid,.finance-grid,.running-rent-grid{grid-template-columns:1fr}.dashboard-section-head{flex-direction:column;gap:4px}.dashboard-grid .kpi{min-height:126px}}


/* === MASTER VILLA premium login v16 === */
.master-login{background:radial-gradient(circle at 15% 15%,#ece4d7 0,#f4f2ed 38%,#e7e4dd 100%)}
.master-login-wrap{width:min(1080px,100%);grid-template-columns:1.22fr .78fr;border:1px solid rgba(255,255,255,.75);box-shadow:0 34px 90px rgba(27,29,24,.16)}
.master-login-panel{position:relative;isolation:isolate;overflow:hidden;min-height:640px;padding:42px;background-image:linear-gradient(180deg,rgba(12,15,12,.22),rgba(12,15,12,.74)),var(--login-photo),radial-gradient(circle at 20% 20%,#394135,#171b15 68%,#0e100d 100%);background-size:cover;background-position:center center;color:#fff}
.master-login-panel:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(10,12,9,.50) 0%,rgba(10,12,9,.14) 55%,rgba(10,12,9,.34) 100%)}
.master-login-panel .login-brand,.master-login-panel .login-copy,.login-photo-note{position:relative;z-index:2}
.master-login-brand .brand-mark{background:linear-gradient(135deg,#e8c992,#b68a4f);box-shadow:0 8px 24px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.55)}
.master-login-brand strong{font-size:18px;letter-spacing:.02em;color:#fff}.master-login-brand span{color:rgba(255,255,255,.70);font-size:10px;text-transform:uppercase;letter-spacing:.11em}
.master-login-copy{margin:auto 0 34px}.master-login-copy .eyebrow{color:#e7c27f}.master-login-copy h1{max-width:560px;font-size:46px;text-shadow:0 2px 20px rgba(0,0,0,.22)}.master-login-copy p{max-width:480px;color:rgba(255,255,255,.78);font-size:13px}
.login-photo-note{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.58);font-weight:700}
.master-login-card{padding:68px 52px;background:linear-gradient(180deg,#fff,#fcfbf8)}.master-login-card h2{font-size:32px;letter-spacing:-.045em}.master-login-card>.eyebrow{margin-bottom:-7px}.master-login-card label{display:block}.master-login-card input{height:48px;background:#fff}.master-login-card .btn{height:48px;margin-top:3px;border-radius:12px;background:linear-gradient(135deg,#191c17,#292e26)}.master-login-card .btn:hover{background:linear-gradient(135deg,#252921,#343a30)}.login-help{margin-top:6px}.login-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:18px}.login-mobile-brand .brand-mark{flex:0 0 auto}.login-mobile-brand strong{display:block;font-size:15px}.login-mobile-brand small{display:block;text-align:left;margin-top:3px;color:var(--muted);font-size:9px}
@media(max-width:760px){.master-login{padding:16px}.master-login-wrap{grid-template-columns:1fr;border-radius:22px}.master-login-panel{display:block!important;min-height:210px;padding:24px;background-position:center 28%}.master-login-panel .login-copy,.master-login-panel .login-photo-note{display:none}.master-login-brand{margin:0}.master-login-card{padding:34px 26px}.login-mobile-brand{display:none}}


/* === MASTER VILLA login image hard fix v19 === */
.master-login-panel{position:relative!important;isolation:isolate!important;overflow:hidden!important;background:#171b15!important}
.master-login-panel .login-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:0;display:block!important}
.master-login-panel .login-panel-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(8,10,8,.60) 0%,rgba(8,10,8,.20) 55%,rgba(8,10,8,.48) 100%);pointer-events:none}
.master-login-panel .master-login-brand,.master-login-panel .master-login-copy,.master-login-panel .login-photo-note{position:relative;z-index:2}
@media(max-width:760px){.master-login-panel .login-hero-photo{object-position:center 30%}}

/* === MASTER VILLA fullscreen glass login v20 === */
.mv-login-page{margin:0;min-height:100vh;overflow:hidden;background:#111;color:#fff;font-family:Inter,system-ui,sans-serif;position:relative}
.mv-login-bg{position:fixed;inset:-16px;z-index:0;overflow:hidden;background:#161814}
.mv-login-bg img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;filter:blur(3px) saturate(.92) brightness(.82);transform:scale(1.025)}
.mv-login-overlay{position:fixed;inset:0;z-index:1;background:linear-gradient(115deg,rgba(8,10,8,.58),rgba(8,10,8,.26) 48%,rgba(8,10,8,.52)),radial-gradient(circle at 68% 42%,rgba(193,151,88,.08),transparent 34%)}
.mv-login-stage{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,76px)}
.mv-login-glass{width:min(520px,92vw);padding:44px 46px 40px;border:1px solid rgba(255,255,255,.22);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.095));box-shadow:0 32px 90px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.2);backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%)}
.mv-login-title{font-family:"Playfair Display",Georgia,serif;font-size:clamp(36px,3.5vw,52px);font-weight:700;line-height:1;letter-spacing:.02em;color:#fff;text-shadow:0 5px 28px rgba(0,0,0,.35);white-space:nowrap;text-align:center}
.mv-login-rule{width:72px;height:2px;margin:20px auto 28px;background:linear-gradient(90deg,#e3bc7b,rgba(227,188,123,.12));border-radius:10px}
.mv-login-glass h1{margin:0 0 26px;font-size:23px;text-align:center;font-weight:600;letter-spacing:-.025em;color:rgba(255,255,255,.94)}
.mv-login-form{display:grid;gap:17px}.mv-login-form label{display:grid;gap:8px;font-size:11px;font-weight:700;color:rgba(255,255,255,.78);letter-spacing:.025em}
.mv-login-form input{height:50px;border:1px solid rgba(255,255,255,.20);border-radius:14px;background:rgba(255,255,255,.12);color:#fff;padding:0 15px;font:500 14px Inter;outline:0;box-shadow:inset 0 1px rgba(255,255,255,.06)}
.mv-login-form input:focus{border-color:rgba(227,188,123,.78);box-shadow:0 0 0 4px rgba(227,188,123,.11);background:rgba(255,255,255,.16)}
.mv-login-button{height:52px;margin-top:4px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:linear-gradient(135deg,#d7aa66,#b7823f);color:#18150f;font:800 13px Inter;letter-spacing:.02em;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.22);transition:transform .18s ease,filter .18s ease}
.mv-login-button:hover{transform:translateY(-1px);filter:brightness(1.05)}
.mv-login-glass .alert{margin:0 0 17px;border-radius:12px;background:rgba(133,38,38,.68);border:1px solid rgba(255,255,255,.16);color:#fff}
@media(max-width:760px){.mv-login-stage{justify-content:center;padding:20px}.mv-login-glass{padding:36px 28px 32px;border-radius:24px}.mv-login-title{text-align:center;font-size:38px}.mv-login-rule{margin:18px auto 26px}.mv-login-glass h1{text-align:center}.mv-login-bg img{object-position:center center;filter:blur(2px) brightness(.68)}}

/* === Site-wide form alignment & tenant editor cleanup v22 === */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:start}
.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid>label,.form-grid>div{min-width:0}
.form-grid label{justify-content:flex-start}
.form-grid input,.form-grid select{min-height:44px}
.form-grid textarea{min-height:82px;resize:vertical;line-height:1.45}
.form-grid input[type=file]{min-height:44px;padding:8px 10px;background:#fff;overflow:hidden}
.form-grid label small{line-height:1.35;color:#979a92;font-weight:500}
.optional{font-size:9px;font-weight:600;color:#a1a39c;margin-left:4px}
.tenant-editor .card{padding:24px 22px}
.tenant-editor .card-head{margin-bottom:16px}
.tenant-profile-grid{max-width:980px;align-items:start}
.tenant-profile-grid .profile-photo-preview{min-height:88px;align-self:stretch}
.tenant-work-grid,.tenant-guardian-grid{align-items:start}
.tenant-work-grid .full,.tenant-guardian-grid .full{grid-column:1/-1}
.tenant-editor .actions{padding-top:4px}

/* Keep utility/action forms compact instead of stretching oddly. */
.inline-form,.search,.mini-upload{align-items:center}
.form-grid>.btn:not(.wide){align-self:end;min-height:44px}

/* Better visual rhythm for cards containing forms. */
.card>.form-grid:last-child{margin-bottom:0}
.card .section-label{margin-bottom:10px}

@media(max-width:1100px){
  .form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.three .full,.form-grid.four .full{grid-column:1/-1}
}
@media(max-width:700px){
  .form-grid,.form-grid.two,.form-grid.three,.form-grid.four{grid-template-columns:1fr}
  .form-grid .full,.form-grid .span2{grid-column:1}
  .tenant-editor .card{padding:18px 15px}
  .tenant-profile-grid{max-width:none}
}
