*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f7fb;color:#182033;display:flex}aside{width:245px;min-height:100vh;background:#111827;color:white;padding:22px 14px;position:fixed}.brand{font-size:20px;font-weight:800;padding:0 10px 25px}.brand span{display:block;font-size:11px;color:#9ca3af;margin-top:4px;font-weight:500}nav{display:grid;gap:6px}nav button{background:transparent;border:0;color:#cbd5e1;text-align:left;padding:12px 12px;border-radius:9px;font-size:14px;cursor:pointer}nav button:hover,nav button.active{background:#253047;color:#fff}.side-note{position:absolute;bottom:22px;left:22px;right:20px;color:#94a3b8;font-size:11px;line-height:1.6}main{margin-left:245px;width:calc(100% - 245px);padding:26px 32px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}h1{margin:0;font-size:25px}header p{margin:5px 0;color:#64748b}.pill{background:white;border:1px solid #e5e7eb;border-radius:20px;padding:8px 12px;font-size:12px;color:#64748b}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;box-shadow:0 2px 8px #00000008}.label{font-size:11px;color:#64748b}.num{font-size:25px;font-weight:750;margin-top:9px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:14px}.search{width:420px;max-width:60%;padding:11px;border:1px solid #d7dce5;border-radius:8px}.btn{border:0;background:#2563eb;color:#fff;padding:10px 14px;border-radius:8px;cursor:pointer;font-weight:600}.btn.gray{background:#64748b}.btn.red{background:#dc2626}.tablewrap{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 13px;border-bottom:1px solid #edf0f4;text-align:left;font-size:13px;white-space:nowrap}.table th{font-size:11px;text-transform:uppercase;color:#64748b;background:#fafbfc}.link{color:#2563eb;font-weight:650;cursor:pointer}.status{padding:4px 8px;border-radius:14px;font-size:11px}.status.ok{background:#dcfce7;color:#166534}.status.empty{background:#f1f5f9;color:#475569}.modal{position:fixed;inset:0;background:#0007;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modal.hidden{display:none}.modalbox{width:min(900px,95vw);max-height:90vh;overflow:auto;background:white;border-radius:14px;padding:24px;position:relative}.x{position:absolute;right:15px;top:10px;border:0;background:transparent;font-size:28px;cursor:pointer}.detail{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0 25px}.kv{border:1px solid #e7eaf0;border-radius:8px;padding:10px;font-size:13px}.kv b{display:block;color:#64748b;font-size:10px;margin-bottom:5px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field label{display:block;font-size:11px;color:#64748b;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:10px;border:1px solid #d7dce5;border-radius:8px;font:inherit;background:white}.field.full{grid-column:1/-1}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.muted{color:#64748b}.bigempty{padding:35px!important;text-align:center;color:#64748b}hr{border:0;border-top:1px solid #e5e7eb;margin:20px 0}@media(max-width:900px){aside{width:200px}main{margin-left:200px;width:calc(100% - 200px);padding:18px}.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.detail{grid-template-columns:1fr 1fr}}
.not-tenant{opacity:.65}.muted{color:#718096}
/* v10 visual refresh */
body{background:#f3f6fb}
aside{width:270px;background:linear-gradient(180deg,#111827 0%,#172554 100%);padding:24px 16px;box-shadow:4px 0 18px rgba(15,23,42,.12)}
main{margin-left:270px;width:calc(100% - 270px);padding:30px 36px}
.brand{font-size:22px;padding:0 12px 28px}.brand span{font-size:12px}
nav{gap:8px}nav button{padding:14px 15px;border-radius:11px;font-size:15px;font-weight:650;letter-spacing:.05px}nav button:hover{background:#334155;color:#fff;transform:translateX(2px)}nav button.active{background:linear-gradient(90deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 5px 14px rgba(37,99,235,.28)}
h1{font-size:28px}.cards{gap:16px}.card,.panel{border-radius:14px;box-shadow:0 5px 18px rgba(15,23,42,.06);border-color:#e2e8f0}.card{border-top:4px solid #3b82f6}.accent-card{border-top-color:#4f46e5}.num{font-size:28px}.btn{padding:11px 16px;border-radius:9px;font-size:14px;background:linear-gradient(135deg,#2563eb,#4f46e5);box-shadow:0 3px 9px rgba(37,99,235,.2)}.btn.gray{background:#64748b;box-shadow:none}.tablewrap{border-radius:14px;box-shadow:0 4px 16px rgba(15,23,42,.04)}.table th,.table td{padding:14px 14px;font-size:13px}.table th{background:#eef4ff;color:#334155;font-size:11px}.status{padding:5px 9px}.declaration-note{border-left:5px solid #4f46e5;background:#f5f7ff;margin-bottom:16px;line-height:1.65}
@media(max-width:900px){aside{width:220px}main{margin-left:220px;width:calc(100% - 220px);padding:20px}.cards{grid-template-columns:repeat(2,1fr)}}
.header-right{display:flex;align-items:center;gap:12px}.period-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dbe3f0;border-radius:12px;padding:7px 10px;box-shadow:0 3px 10px rgba(15,23,42,.05)}.period-box span{font-size:10px;font-weight:800;color:#64748b;letter-spacing:.5px}.period-box select{border:0;background:#eef4ff;color:#1d4ed8;font-weight:800;font-size:14px;padding:7px 10px;border-radius:8px;cursor:pointer;outline:none}.period-note{background:#eff6ff;border-left:4px solid #2563eb;color:#1e3a8a;padding:11px 14px;border-radius:8px;margin-bottom:14px}.table th select{display:block;margin-top:7px;width:100%;min-width:92px;padding:6px 7px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;font-size:11px;text-transform:none}.table th{vertical-align:top}
/* v12 Excel-style column resizing */
.table.resizable{min-width:100%;table-layout:auto}
.table.resizable th{position:relative}
.col-resizer{position:absolute;right:0;top:0;width:7px;height:100%;cursor:col-resize;user-select:none;z-index:3}
.col-resizer:hover{background:#93c5fd}
.table.resizable th:has(.col-resizer):hover{background:#dbeafe}
/* v13 payment alerts and universal column resizing */
.status.unpaid{background:#fef3c7;color:#92400e;font-weight:800}.status.overdue{background:#fee2e2;color:#991b1b;font-weight:850}.overdue-row td{background:#fff1f2}.dashboard-alert-panel{border-left:5px solid #f59e0b}.overdue-panel{border-left:5px solid #dc2626}.overdue-panel h3{color:#991b1b}
.table.table{table-layout:auto}.table th{min-width:70px}.table th .col-resizer{right:-1px}.table th .col-resizer:hover{background:#60a5fa}.table th:active{user-select:none}
/* v15 robust Excel-style column resizing */
body.resizing-columns{cursor:col-resize!important;user-select:none!important}.table.resizable{width:max-content;min-width:100%;table-layout:auto}.table.resizable th{position:relative;overflow:visible}.table.resizable th .col-resizer{display:block;position:absolute;right:-3px;top:0;width:9px;height:100%;cursor:col-resize;z-index:50}.table.resizable th .col-resizer:hover{background:#2563eb}.table.resizable.resizing th,.table.resizable.resizing td{user-select:none}
/* v16: top navigation for smaller screens */
body{display:block;background:#f3f6fb}
main{margin-left:0;width:100%;padding:0 28px 30px}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid #dbe3ef;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 4px 9px;margin:0 -28px 22px;padding-left:28px;padding-right:28px;box-shadow:0 3px 14px rgba(15,23,42,.07)}
.top-brand{display:flex;align-items:center;gap:22px;min-width:0}.top-brand .brand{color:#111827;font-size:19px;padding:0;white-space:nowrap}.top-brand .brand span{color:#64748b;font-size:10px}.topnav{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.topnav button{background:transparent;border:0;color:#334155;padding:9px 10px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.topnav button:hover,.topnav button.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 3px 9px rgba(37,99,235,.18)}
.top-meta{display:flex;align-items:center;gap:9px;flex-shrink:0}.page-head{margin-bottom:18px}.page-head h1{margin:0;font-size:27px}.page-head p{margin:5px 0;color:#64748b}
/* robust column handles: visible, high priority, do not block cell contents */
.table.resizable th{position:relative;padding-right:16px}.table.resizable th .col-resizer{position:absolute;right:-2px;top:0;width:6px;height:100%;cursor:col-resize;z-index:100;background:transparent}.table.resizable th .col-resizer:hover{background:#2563eb}
@media(max-width:1200px){.topbar{align-items:flex-start}.top-brand{align-items:flex-start}.topnav{max-height:76px;overflow:auto}.top-meta{display:none}}
@media(max-width:760px){main{padding:0 12px 20px}.topbar{margin:0 -12px 18px;padding:8px 12px}.top-brand{width:100%;display:block}.top-brand .brand{margin-bottom:6px}.topnav{max-height:110px}.topnav button{font-size:12px;padding:7px 8px}.page-head h1{font-size:23px}}
/* v18 dashboard and document preview */
.topnav{background:#0f172a;border-radius:12px;padding:5px}.topnav button{color:#cbd5e1}.topnav button:hover{background:#2563eb;color:#fff}.topnav button[data-page="dashboard"]{background:#111827;color:#fff}.topnav button[data-page="dashboard"]:hover,.topnav button[data-page="dashboard"].active{background:#1d4ed8;color:#fff}
.dashboard-active .page-head{background:#0f172a;color:#fff;padding:16px 20px;border-radius:12px}.dashboard-active .page-head p{color:#cbd5e1}.dashboard-active #app{background:#0f172a;border-radius:14px;padding:16px}.dashboard-active #app .panel{background:#fff}.dashboard-active #app .card{background:#fff}
.doc-link{background:transparent;border:0;padding:0;color:#2563eb;font-weight:650;cursor:pointer;font:inherit}.doc-link:hover{text-decoration:underline}
.contract-print{max-width:820px;margin:auto}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:70px;text-align:center}

/* v19 visual consistency + in-app previews */
.page-head{background:#0f172a;color:#fff;padding:16px 20px;border-radius:12px;box-shadow:0 5px 18px rgba(15,23,42,.12)}
.page-head p{color:#cbd5e1!important}
#app{background:#eef2f7;border-radius:14px;padding:16px}
#app .panel,#app .tablewrap,#app .card{background:#fff}
.card-success{border-top:4px solid #16a34a!important}.card-success .num{color:#15803d}
.card-danger{border-top:4px solid #dc2626!important}.card-danger .num{color:#b91c1c}
.cari-explain{background:#eff6ff;border-left:5px solid #2563eb;border-radius:9px;padding:12px 14px;margin:0 0 14px;color:#334155;line-height:1.55}
.contract-toolbar,.document-preview-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.contract-container{background:#f8fafc;border:1px solid #dbe3ef;border-radius:12px;padding:18px}
.document-frame-wrap{height:70vh;border:1px solid #dbe3ef;border-radius:10px;overflow:hidden;background:#f8fafc}.document-frame{width:100%;height:100%;border:0;background:#fff}
@media print{body *{visibility:hidden!important}#modal,#modal *{visibility:visible!important}#modal{position:static!important;background:#fff!important;padding:0!important}.modalbox{max-height:none!important;width:100%!important;box-shadow:none!important;padding:0!important}.x,.contract-toolbar,.document-preview-head{display:none!important}.contract-container{border:0!important;padding:0!important;background:#fff!important}.contract-print{max-width:none!important}}
