*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:#89909f;color:#0f172a}.hidden{display:none!important}button,input,select,textarea{font:inherit}.login-page{min-height:100vh;background:#121818;display:flex;align-items:center;justify-content:center;padding:30px;overflow:hidden}.login-shell{width:min(1060px,94vw);min-height:620px;background:#68a998;border-radius:24px;position:relative;display:flex;justify-content:center;align-items:center;box-shadow:0 40px 110px #0007;animation:floatIn .7s ease}.auth-card{width:390px;background:white;z-index:2;padding:34px;border-radius:0;box-shadow:0 20px 70px #0002;min-height:480px}.auth-panel{display:none;animation:slideSoft .4s ease}.auth-panel.active{display:block}.auth-panel h1{font-size:43px;margin:0 0 10px}.sub{color:#64748b;margin:0 0 25px;line-height:1.5}.auth-panel label{display:block;margin-top:16px;font-weight:800;color:#3D3D3D}.auth-panel input{width:100%;border:0;background:#f2f2f2;box-shadow:0 2px 2px #d6d6d6;padding:12px;border-radius:5px;margin-top:7px}.primary{width:100%;background:#33a192;color:white;border:0;border-radius:6px;padding:14px;margin-top:28px;font-weight:900;letter-spacing:.05em;cursor:pointer;transition:.25s}.primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px #33a19266}.linkBtn{background:transparent;border:0;margin-top:22px;font-size:18px;cursor:pointer;color:#111}.image-panel{width:430px;height:620px;overflow:hidden;margin-left:-80px;box-shadow:0 18px 60px #0002}.image-panel img{width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.05);animation:kenburns 18s infinite alternate ease-in-out}@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.12)}}@keyframes floatIn{from{opacity:0;transform:translateY(20px) scale(.98)}}@keyframes slideSoft{from{opacity:0;transform:translateX(20px)}}
.site-wrap{display:grid;grid-template-columns:280px 1fr;min-height:100vh;padding:3rem 0 0 3rem;background:#89909f}.site-nav{background:#0b121b;color:white;border-top-left-radius:2rem;display:flex;flex-direction:column;min-height:calc(100vh - 3rem);overflow:hidden}.brand{display:flex;gap:12px;align-items:center;padding:30px 28px 20px}.brand-icon{width:36px;height:36px;background:linear-gradient(135deg,#34d399,#60a5fa);border-radius:12px;display:grid;place-items:center}.brand small{display:block;color:#94a3b8;margin-top:4px}.site-nav ul{list-style:none;margin:8px 0 0;padding:0;overflow:auto}.site-nav li button{width:100%;text-align:left;background:transparent;color:#cbd5e1;border:0;padding:12px 26px;cursor:pointer;position:relative}.site-nav li button:hover,.site-nav li.active button{color:white;background:linear-gradient(90deg,#101b2d,transparent)}.site-nav li.active button:before{content:"";position:absolute;left:0;top:0;height:100%;width:5px;background:#33a192;border-radius:0 5px 5px 0}.note{margin:auto 24px 20px;background:#171c26;border-radius:16px;padding:18px}.note h3{margin:0 0 8px}.note p{color:#94a3b8;line-height:1.45}.logout{margin:0 24px 22px;border:1px solid #334155;background:#111827;color:white;border-radius:12px;padding:11px;cursor:pointer}main{background:#ebecee;border-top-left-radius:2rem;margin-left:-2rem;min-height:calc(100vh - 3rem);overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;padding:42px 42px 8px}.breadcrumbs{color:#64748b;font-weight:700}.topbar h1{font-size:38px;margin:9px 0}.userPill{background:white;border:1px solid #e2e8f0;border-radius:999px;padding:10px 16px;box-shadow:0 8px 30px #0000000d}.content{padding:24px 42px 48px}.stats{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px;margin-bottom:22px}.stat{background:white;border-radius:22px;padding:18px;box-shadow:0 10px 30px #0000000d;position:relative;overflow:hidden;animation:pop .35s ease}.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:100px;height:100px;background:#33a19216;border-radius:999px}.stat b{display:block;font-size:28px}.stat span{color:#64748b;font-weight:800}.panel,.tablePanel{background:white;border-radius:22px;box-shadow:0 12px 40px #0000000e;padding:22px;margin-bottom:20px;animation:pop .3s ease}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 16px}.toolbar input,.toolbar select{border:1px solid #cbd5e1;background:#f8fafc;border-radius:12px;padding:11px 12px;min-width:160px}.btn{border:0;border-radius:12px;padding:11px 14px;background:#0f172a;color:white;cursor:pointer;font-weight:800}.btn.teal{background:#0f766e}.btn.red{background:#dc2626}.btn.light{background:#e2e8f0;color:#0f172a}.btn.orange{background:#ea580c}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tableWrap{overflow:auto;border-radius:16px;border:1px solid #e2e8f0}table{width:100%;border-collapse:collapse;background:white}th{background:#0f172a;color:white;text-align:left;padding:12px;white-space:nowrap}td{padding:12px;border-bottom:1px solid #e2e8f0;vertical-align:top}tr:hover td{background:#f8fafc}.status{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:900;font-size:12px;background:#e2e8f0}.status.Open,.status.Unpaid,.status.Pending{background:#fee2e2;color:#991b1b}.status.Paid,.status.Active,.status.Approved,.status.Completed,.status.Closed{background:#dcfce7;color:#166534}.status.Draft{background:#fef3c7;color:#92400e}.alertList{display:grid;gap:10px}.alertItem{border-left:5px solid #ef4444;background:#fff7ed;padding:13px;border-radius:12px}.modal{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal-box{width:min(900px,96vw);max-height:90vh;overflow:auto;background:white;border-radius:24px;padding:26px;box-shadow:0 30px 120px #0009;position:relative;animation:pop .22s ease}.x{position:absolute;right:18px;top:14px;background:#f1f5f9;border:0;border-radius:999px;font-size:25px;width:40px;height:40px;cursor:pointer}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.formGrid .full{grid-column:1/-1}.field label{display:block;font-weight:900;margin-bottom:6px;color:#334155}.field input,.field textarea,.field select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:11px;background:#f8fafc}.field textarea{min-height:90px}.toast{position:fixed;right:25px;bottom:25px;background:#0f172a;color:white;padding:15px 18px;border-radius:14px;box-shadow:0 20px 60px #0004;z-index:100}.invoiceItems{display:grid;gap:8px}.invoiceLine{display:grid;grid-template-columns:1fr 90px 130px 40px;gap:8px}.reportHeader{display:flex;justify-content:space-between;gap:14px;align-items:center}.printArea{background:white}.mini{font-size:12px;color:#64748b}@keyframes pop{from{opacity:0;transform:translateY(8px)}}@media(max-width:1000px){.site-wrap{grid-template-columns:1fr;padding:0}.site-nav{border-radius:0;min-height:auto}.site-nav ul{display:flex;overflow:auto}.site-nav li button{white-space:nowrap}.note,.logout{display:none}main{margin-left:0;border-radius:0}.stats,.grid3{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.login-shell{flex-direction:column}.image-panel{margin-left:0;width:390px;height:260px}.auth-card{width:390px}}@media(max-width:640px){.stats,.grid3,.formGrid{grid-template-columns:1fr}.content,.topbar{padding-left:18px;padding-right:18px}.auth-card,.image-panel{width:94vw}.login-page{padding:12px}.invoiceLine{grid-template-columns:1fr}}@media print{.site-nav,.topbar,.toolbar,.btn,.modal,.toast{display:none!important}.site-wrap{display:block;padding:0;background:white}main{margin:0;border-radius:0}.content{padding:0}.panel,.tablePanel{box-shadow:none;border-radius:0}.printArea{display:block!important}}
/* v5 tenant calendar, tenant file vault, and settings audit additions */
.rentCalendar{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin-top:14px}.rentMonth{border-radius:16px;padding:14px;min-height:92px;display:flex;flex-direction:column;gap:5px;box-shadow:0 10px 25px #0000000d;border:1px solid #e2e8f0}.rentMonth b{font-size:18px}.rentMonth span{font-weight:900}.rentMonth small{font-size:11px;color:#475569}.rentMonth.paid{background:linear-gradient(135deg,#dcfce7,#f0fdf4);border-color:#86efac;color:#166534}.rentMonth.unpaid{background:linear-gradient(135deg,#fee2e2,#fff7ed);border-color:#fca5a5;color:#991b1b}.detailTile{margin-bottom:0}.tenantFiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px}.tenantFile{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px}.tenantFile img{width:100%;height:130px;object-fit:cover;border-radius:12px;border:1px solid #e2e8f0}.tenantFile span{font-size:12px;color:#64748b;font-weight:800}.fullSettings{grid-column:1/-1}.tablePanel input[id^="search-"]{min-width:300px}.modal-box{width:min(980px,96vw)}
@media(max-width:800px){.rentCalendar{grid-template-columns:repeat(2,1fr)}.tablePanel input[id^="search-"]{min-width:100%}}

.botResult{margin-top:18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:14px;max-height:420px;overflow:auto}
.botResult ul{padding-left:18px;line-height:1.7}.botResult h4{margin:14px 0 6px}.rentMonth.paid{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-color:#22c55e}.rentMonth.unpaid{background:linear-gradient(135deg,#fee2e2,#fecaca);border-color:#ef4444}

/* v7 responsive details, wide report modals, professional report layout */
.modal{align-items:center;justify-content:center;padding:18px}
.modal-box{width:min(1280px,98vw);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;padding:0;border-radius:26px}
.modal-box .x{z-index:3}
#modalBody{padding:28px;overflow:auto;max-height:92vh}
#modalBody>.grid2{grid-template-columns:repeat(2,minmax(260px,1fr));max-height:60vh;overflow:auto;padding-right:8px}
#modalBody>.grid2 .detailTile{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.detailTable,.wideTable{overflow:auto;max-width:100%}
.detailTable table,.wideTable table{min-width:980px}
.panel,.tablePanel,.stat,.alertItem,.tenantFile,.rentMonth{min-width:0;overflow-wrap:anywhere}
.stats.responsiveStats,.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.reportHero{position:relative;overflow:hidden;border:1px solid #e2e8f0;background:linear-gradient(135deg,#ffffff,#f8fafc)}
.reportHero:after{content:"";position:absolute;right:-80px;top:-90px;width:240px;height:240px;border-radius:999px;background:#0f766e14}
.reportActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;z-index:1}
.reportBranding{border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fafc,#eef6ff)}
.reportGrid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}
.wideScrollPanel{overflow:hidden}
.wideScrollPanel .tableWrap{max-height:60vh;overflow:auto}
.tableWrap{max-width:100%}
td,th{max-width:420px;overflow-wrap:anywhere}
.formGrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.formGrid .full{grid-column:1/-1}
@media(max-width:1100px){.reportGrid{grid-template-columns:1fr}.modal-box{width:98vw}.topbar h1{font-size:30px}.content{padding:20px}.topbar{padding:28px 20px 8px}}
@media(max-width:760px){#modalBody>.grid2{grid-template-columns:1fr;max-height:58vh}.modal{padding:8px}.modal-box{width:100vw;max-height:96vh;border-radius:18px}.reportActions{justify-content:flex-start}.toolbar input,.toolbar select{min-width:100%;width:100%}.btn{width:auto}.stats.responsiveStats,.stats{grid-template-columns:1fr}.rentCalendar{grid-template-columns:1fr}.site-wrap{padding:0}.content{padding:14px}.topbar{padding:20px 14px 4px;flex-direction:column}.userPill{align-self:flex-end}}
@media print{.reportBranding{display:none!important}.reportHero{border:0}.reportGrid{display:block}.wideScrollPanel .tableWrap,.tableWrap{overflow:visible;max-height:none}.wideTable table,.detailTable table{min-width:0}}

/* v8 dashboard overdue card, new-company reset, and document preview/download improvements */
.stat.dangerStat{background:linear-gradient(135deg,#fee2e2,#fff7ed);border:1px solid #fca5a5;color:#7f1d1d}
.stat.dangerStat:after{background:#ef44442b}.stat.dangerStat span{color:#991b1b}.stat.dangerStat b{color:#dc2626}.dangerPanel{border:1px solid #fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}.redAlert{border-left-color:#dc2626;background:#fff1f2}.fileActions{display:flex;gap:6px;flex-wrap:wrap}.fileActions .btn{padding:8px 10px;text-align:center;text-decoration:none}.fileIcon{height:130px;border:1px dashed #94a3b8;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8fafc;color:#475569;font-size:36px;cursor:pointer;text-align:center;padding:10px}.fileIcon span{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tenantFile img{cursor:pointer}.filePreview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;min-height:60vh;display:flex;align-items:center;justify-content:center;overflow:auto}.filePreview img{max-width:100%;max-height:78vh;border-radius:14px;box-shadow:0 18px 50px #0002}.filePreview iframe{width:100%;height:78vh;border:0;background:white;border-radius:14px}.tenantFiles{align-items:start}.fullSettings .tableWrap{max-height:520px}.panel.dangerPanel .btn.red{box-shadow:0 10px 30px #dc262633}
@media(max-width:760px){.filePreview{min-height:45vh}.filePreview iframe{height:60vh}.filePreview img{max-height:60vh}.fileActions .btn{flex:1}}

/* v9: document upload areas inside edit forms and professional individual reports */
.docUploadBox{margin-top:22px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#ffffff,#f8fafc)}
.docUploadBox h3{margin:0 0 6px}
.fileIcon{width:76px;height:76px;border-radius:18px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-size:34px;border:1px solid #dbeafe}
.fileThumb{width:76px;height:76px;object-fit:cover;border-radius:18px;border:1px solid #dbeafe;background:white}
.fileCard{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:14px;margin-top:12px;box-shadow:0 8px 26px rgba(15,23,42,.05);overflow-wrap:anywhere}
.fileCard .btn{margin-top:8px;margin-right:4px}
.entityReportPanel{margin-top:22px}
.entityReportPanel .toolbar{align-items:center;flex-wrap:wrap}
.entityReportPanel select,.entityReportPanel input{min-width:220px}
@media(max-width:900px){.fileCard{align-items:flex-start}.entityReportPanel .toolbar>*{width:100%}.entityReportPanel .toolbar a,.entityReportPanel .toolbar button{width:auto}}

/* v10: fixed left navigation, right-side scrolling only, wider audit/report workspace, startup welcome, calendar */
html,body{height:100%;overflow:hidden}.site-wrap{height:100vh;min-height:0;overflow:hidden}.site-nav{height:calc(100vh - 3rem);min-height:0;overflow:hidden;position:sticky;top:3rem}.site-nav ul{overflow:visible;flex:0 0 auto}.note{flex:0 0 auto;margin-top:auto}main{height:calc(100vh - 3rem);min-height:0;overflow-y:auto;overflow-x:hidden}.content{min-width:0}.tablePanel,.panel{max-width:100%}.detailGridWide{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;max-height:58vh;overflow:auto;padding-right:8px}.detailGridWide .detailTile{overflow-wrap:anywhere;min-width:0}.calendarHero{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#ffffff,#ecfeff);border:1px solid #ccfbf1}.calendarList{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.calendarItem{border:1px solid #e2e8f0;border-left:5px solid #0f766e;border-radius:16px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:5px}.calendarItem b{color:#0f766e}.calendarItem span{font-weight:900}.calendarItem small{color:#64748b}.audit .content,.page-audit .content{padding-bottom:80px}.entityReportPanel{width:100%;overflow:visible}.entityReportPanel .wideTable{max-height:520px;overflow:auto}.reportGrid{align-items:start}.modal-box{max-width:1320px}.welcomeToday{font-size:15px;color:#475569}.status.Scheduled{background:#dbeafe;color:#1d4ed8}.status.Cancelled,.status.No{background:#fee2e2;color:#991b1b}
@media(max-width:1000px){html,body{overflow:auto}.site-wrap{height:auto;overflow:visible}.site-nav{position:relative;top:auto;height:auto}.site-nav ul{overflow:auto}.site-nav li button{white-space:nowrap}main{height:auto;overflow:visible}.calendarHero{flex-direction:column;align-items:flex-start}}


/* v11 Tenant Portal + QuickBooks Desktop support */
.tenantBtn{margin-top:10px;display:block;width:100%;background:linear-gradient(135deg,#0f172a,#2563eb);color:white;border:0;border-radius:12px;padding:13px 18px;font-weight:900;letter-spacing:.04em;cursor:pointer;box-shadow:0 14px 38px #1d4ed833}.tenant-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,#ecfeff,#e0f2fe 35%,#0f172a 36%,#020617);padding:20px}.tenant-login-card{width:min(430px,94vw);background:white;border-radius:28px;padding:32px;box-shadow:0 30px 90px #0005;animation:pop .35s ease}.tenant-login-card h1{font-size:38px;margin:0 0 8px;color:#0f172a}.tenant-login-card label{display:block;font-weight:900;color:#334155;margin-top:16px}.tenant-login-card input{width:100%;box-sizing:border-box;border:1px solid #dbe4ef;border-radius:12px;padding:13px;background:#f8fafc;margin-top:6px}.tenant-portal{min-height:100vh;background:#eef2f7;padding:24px;overflow:auto}.tenant-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#0f766e,#0f172a);color:white;border-radius:28px;padding:28px;box-shadow:0 26px 80px #0f172a33}.tenant-hero h1{font-size:38px;margin:0}.tenant-hero p{margin:8px 0 0;color:#ccfbf1;font-weight:700}.tenantPortalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.tenantPaymentCard{border:1px solid #e2e8f0;border-radius:18px;padding:16px;margin:12px 0;background:#f8fafc;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:14px;align-items:start}.tenantPaymentCard b{display:block;font-size:18px;color:#0f172a}.tenantPaymentCard span{display:block;font-size:22px;font-weight:900;color:#0f766e;margin-top:4px}.tenantPaymentCard small{color:#64748b}.tenantPaymentCard.late,.tenantPaymentCard.open{background:linear-gradient(135deg,#fff,#f8fafc)}.payIntent{display:grid;gap:8px}.payIntent label{font-weight:900;color:#334155}.payIntent select,.payIntent input{border:1px solid #dbe4ef;border-radius:12px;padding:10px;background:white}.panel .mini + label{margin-top:10px}.panel input[type=file]#qbFile{margin:8px 0 12px}.tenant-portal .tableWrap{max-height:360px;overflow:auto}
@media(max-width:900px){.tenantPortalGrid{grid-template-columns:1fr}.tenantPaymentCard{grid-template-columns:1fr}.tenant-hero{align-items:flex-start;flex-direction:column}.tenant-portal{padding:12px}.tenant-hero h1{font-size:30px}}

/* v12 Tenant Portal ticket editing, communication notes, issue photos, exports */
.tenantHeroActions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.tenantHeroActions .btn{background:#ffffff;color:#0f172a;text-decoration:none}.tenantTicketsPanel{grid-column:span 1}.pillMini{display:inline-block;padding:4px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:900;font-size:11px}.ticketPhotoPreview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:14px;margin-top:14px}.ticketPhotoPreview img{max-width:100%;max-height:340px;object-fit:contain;border-radius:14px;display:block;margin:auto;box-shadow:0 12px 35px #0001}.ticketNoteList{display:grid;gap:10px;max-height:280px;overflow:auto;padding-right:6px}.ticketNote{border:1px solid #e2e8f0;border-left:5px solid #0f766e;border-radius:14px;background:#fff;padding:12px}.ticketNote b{color:#0f172a}.ticketNote span{float:right;color:#64748b;font-size:12px}.ticketNote p{margin:8px 0;color:#334155}.ticketNote small{color:#0f766e;font-weight:800}.tenant-portal label{display:block;margin-top:10px;margin-bottom:5px;font-weight:900;color:#334155}.tenant-portal input[type=file]{background:#fff;border:1px dashed #94a3b8;border-radius:12px;padding:10px;width:100%;box-sizing:border-box}.tenant-portal textarea{width:100%;min-height:90px;border:1px solid #dbe4ef;border-radius:12px;padding:12px;box-sizing:border-box;background:#fff}.tenant-portal input,.tenant-portal select{max-width:100%}.tenant-portal .tableWrap table{min-width:760px}@media(max-width:900px){.tenantHeroActions{justify-content:flex-start}.tenantHeroActions .btn{flex:1;text-align:center}.tenantTicketsPanel{grid-column:1}.tenant-portal .tableWrap{overflow-x:auto}}
