:root{--navy:#092f3f;--deep:#051e2a;--teal:#0f766e;--sage:#7ca78f;--gold:#c99a3b;--ivory:#fbf8f1;--line:#e7dfd2;--muted:#6b7b88;--danger:#b42318;--blue:#4c8fad}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:var(--deep);background:var(--ivory)}a{color:var(--teal);text-decoration:none}.btn,button{border:0;border-radius:12px;background:var(--navy);color:#fff;padding:11px 16px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.secondary{background:#e8f3f0;color:var(--teal)}.btn.gold{background:var(--gold);color:#fff}.btn.danger{background:var(--danger)}.btn.small{padding:7px 10px;font-size:13px}.btn.full{width:100%}.landing header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6%}.logo{display:flex;gap:12px;align-items:center}.mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--navy),var(--teal));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:900}.logo b{font-family:Georgia,serif;font-size:28px}.landing nav{display:flex;gap:24px;align-items:center}.hero{padding:6%;min-height:560px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;background:linear-gradient(180deg,#fff,#f6efe4)}.hero h1{font-family:Georgia,serif;font-size:66px;line-height:1.02;margin:0}.hero h1 span{color:#2d6e58}.hero p{font-size:19px;line-height:1.65}.mock,.card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 18px 50px rgba(9,47,63,.08);padding:24px}.grid{display:grid;gap:16px}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;padding:30px 6%}.feature{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.loginwrap{min-height:100vh;display:grid;grid-template-columns:1fr 460px;gap:44px;align-items:center;padding:6%;background:radial-gradient(circle at top left,#eaf5f1,#fff 42%,#fbf8f1)}.loginbrand h1{font-family:Georgia,serif;font-size:64px;margin:10px 0}.loginbox{background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 18px 60px rgba(9,47,63,.08)}.portal-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.portal-tabs a{padding:14px;border:1px solid var(--line);border-radius:14px;text-align:center;font-weight:900;color:var(--deep)}.portal-tabs a.active{background:var(--navy);color:#fff}.alert{padding:13px 15px;border-radius:14px;background:#fde8e8;color:#941b1b;margin:12px 0}.success{background:#e6f8ee;color:#075b3c}.app-body{min-height:100vh;display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;width:330px;background:linear-gradient(180deg,#12262e,#203b43 55%,#13252d);color:#fff;overflow:auto}.sidebrand{padding:18px 22px;display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)}.sidebrand b{font-family:Georgia,serif;font-size:24px}.side-title{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8fb3bd;padding:14px 22px 8px}.navitem,.tree-link{display:flex;gap:12px;align-items:center;padding:12px 22px;color:#dff0f3!important;font-weight:750}.navitem:hover,.navitem.active,.tree-link:hover,.tree-link.active{background:rgba(255,255,255,.10);border-left:5px solid var(--blue);padding-left:17px}.tree-head{background:rgba(0,0,0,.08)}.corp-link{padding-left:34px;color:#fff!important;background:rgba(0,0,0,.14)}.location-link{padding-left:58px;color:#a9d1db!important;white-space:normal}.add-link{color:#d6ecf2!important}.ico{width:22px;text-align:center}.chev{margin-left:auto}.main{margin-left:330px;width:calc(100% - 330px);min-height:100vh}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:0 34px}.topbar input{width:min(700px,48vw)}.pagehead{padding:34px 42px 10px}.pagehead h1{margin:0;font-family:Georgia,serif;font-size:42px}.pagehead p{color:var(--muted);font-size:18px}.main>.card,.main>.kpis,.twocol,.threecol{margin:20px 42px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.kpis .card{margin:0}.kpis b{font-size:30px;display:block}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:20px}.threecol{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cardhead{display:flex;align-items:center;justify-content:space-between;gap:16px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:#f8faf9;color:#34596a}.pill{display:inline-flex;border-radius:999px;padding:6px 10px;background:#e9f5f2;color:var(--teal);font-weight:850;font-size:12px}.pill.gold{background:#fff4df;color:#946200}.pill.red{background:#fde8e8;color:#941b1b}.formgrid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:16px;align-items:end}.formgrid.three{grid-template-columns:repeat(3,minmax(180px,1fr))}label{font-weight:850}input,select,textarea{width:100%;border:1px solid #d9e2e6;border-radius:12px;background:#fff;padding:12px 13px;font:inherit;margin-top:5px}.req{color:var(--danger)}.actions{display:flex;gap:8px;flex-wrap:nowrap;align-items:center}.actions form{display:inline}.profilehead{margin:20px 42px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;display:flex;gap:18px;align-items:center}.avatar{width:44px;height:44px;border-radius:50%;background:#e5f4f0;color:var(--teal);font-weight:900;display:inline-flex;align-items:center;justify-content:center}.avatar.big{width:78px;height:78px;font-size:24px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:9px 12px;border-radius:999px;background:#eef6f3;font-weight:800;color:var(--teal)}.notice{background:#fff8e7;border:1px solid #f2d697;padding:14px;border-radius:14px;color:#6b4a00}.errorpage{max-width:900px;margin:80px auto;background:#fff;padding:30px;border-radius:20px;border:1px solid var(--line)}@media(max-width:980px){.sidebar{position:relative;width:100%;height:auto}.app-body{display:block}.main{margin-left:0;width:100%}.hero,.loginwrap,.twocol,.threecol,.formgrid,.formgrid.three{grid-template-columns:1fr}.topbar{position:relative}.topbar input{width:100%}.hero h1{font-size:44px}}

/* v8.1 layout hardening: fixed enterprise tree alignment and form/table stability */
.sidebar{width:330px;max-width:330px;min-width:330px;overflow-x:hidden;box-shadow:10px 0 30px rgba(0,0,0,.08)}
.sidebrand,.navitem,.tree-link{width:100%;min-width:0;max-width:100%}
.navitem,.tree-link{
  position:relative;
  border-left:5px solid transparent;
  padding-left:17px;
  padding-right:16px;
  min-height:44px;
  line-height:1.25;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.navitem:hover,.navitem.active,.tree-link:hover,.tree-link.active{
  background:rgba(255,255,255,.10);
  border-left-color:var(--blue);
  padding-left:17px;
}
.tree-link .ico,.navitem .ico{flex:0 0 22px;width:22px;min-width:22px;text-align:center}
.tree-link .chev,.navitem .chev{flex:0 0 auto;margin-left:auto;opacity:.8}
.tree-link span:not(.ico):not(.chev),.navitem span:not(.ico):not(.chev){min-width:0;overflow:hidden;text-overflow:ellipsis}
.tree-head{padding-left:17px;background:rgba(0,0,0,.08)}
.corp-link{padding-left:34px;background:rgba(0,0,0,.14);font-size:14px}
.corp-link:hover,.corp-link.active{padding-left:34px}
.location-link{padding-left:58px;font-size:13px;color:#a9d1db!important;align-items:flex-start;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.location-link:hover,.location-link.active{padding-left:58px}
.add-link{font-size:13px;color:#d6ecf2!important}

.main{min-width:0;overflow-x:hidden}.topbar{left:0}.main>.card,.main>.kpis,.twocol,.threecol,.profilehead{max-width:calc(100% - 84px)}
.card{overflow:hidden}.tablewrap{width:100%;max-width:100%;overflow-x:auto}.tablewrap table{white-space:nowrap}.tablewrap td,.tablewrap th{max-width:260px}.tablewrap td.wrap{white-space:normal}.actions{white-space:nowrap}.actions .btn{flex:0 0 auto}
.formgrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.formgrid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.formgrid .fullrow{grid-column:1/-1}
input,select,textarea{min-height:46px}.btn{min-height:42px}.btn.small{min-height:32px}
@media(max-width:1200px){.sidebar{width:300px;min-width:300px;max-width:300px}.main{margin-left:300px;width:calc(100% - 300px)}.location-link{padding-left:46px}.location-link:hover,.location-link.active{padding-left:46px}.main>.card,.main>.kpis,.twocol,.threecol,.profilehead{margin-left:24px;margin-right:24px;max-width:calc(100% - 48px)}.pagehead{padding-left:24px;padding-right:24px}}
@media(max-width:980px){.sidebar{position:relative;width:100%;min-width:0;max-width:none}.main{margin-left:0;width:100%}.main>.card,.main>.kpis,.twocol,.threecol,.profilehead{max-width:calc(100% - 32px);margin-left:16px;margin-right:16px}.pagehead{padding-left:16px;padding-right:16px}.location-link{padding-left:36px}.location-link:hover,.location-link.active{padding-left:36px}}

/* v8.3 house dashboard layout based on observed OT-style house page */
.house-hero{display:flex;justify-content:space-between;align-items:center;margin:20px 42px!important;background:linear-gradient(135deg,#fff,#f6fbf8);overflow:visible}
.house-hero h2{font-family:Georgia,serif;font-size:30px;margin:0 0 6px}.occ-ring{width:118px;height:118px;border-radius:50%;border:12px solid #dbece5;border-top-color:var(--teal);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 118px}.occ-ring b{font-size:26px}.occ-ring span{font-size:12px;color:var(--muted)}
.house-kpis{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.house-kpis .card{padding:18px}.house-kpis b{font-size:26px}.house-grid{margin:20px 42px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.85fr);gap:20px;align-items:start}.house-grid .card{margin:0!important}.panel{padding:0;overflow:hidden}.panel h2{margin:0;font-size:18px}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-top:4px solid var(--teal);border-bottom:1px solid var(--line)}.panel-top.orange{border-top-color:#e79a18}.panel-top.blue{border-top-color:#4c8fad}.panel-top.green{border-top-color:#13a35f}.incident-panel{grid-column:1/2}.staff-panel{grid-column:2/3;grid-row:1/span 3}.drug-panel{grid-column:1/2}.residents-panel{grid-column:1/2}.drug-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:26px 16px;text-align:center}.drug-metrics b{display:block;font-size:22px;color:var(--teal)}.drug-metrics span{font-size:12px;color:var(--muted)}.centered{text-align:center}.muted{color:var(--muted)}.warn{color:#b7791f;font-weight:850}.ok{color:#157347;font-weight:850}.house-grid table{min-width:650px}.staff-panel table{min-width:720px}.residents-panel table{min-width:760px}.panel .tablewrap{max-height:520px;overflow:auto}.incident-panel .tablewrap,.drug-panel .tablewrap{max-height:260px}.residents-panel .avatar,.staff-panel .avatar{width:54px;height:54px;font-size:16px}.panel th,.panel td{padding:12px 14px}.panel td.wrap{white-space:normal;min-width:180px}
@media(max-width:1300px){.house-grid{grid-template-columns:1fr}.staff-panel,.incident-panel,.drug-panel,.residents-panel{grid-column:auto;grid-row:auto}.house-hero{margin-left:24px!important;margin-right:24px!important}.house-grid{margin-left:24px;margin-right:24px}.drug-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.house-hero{flex-direction:column;align-items:flex-start}.occ-ring{width:98px;height:98px;flex-basis:98px}.drug-metrics{grid-template-columns:1fr}.house-grid{margin-left:16px;margin-right:16px}.house-hero{margin-left:16px!important;margin-right:16px!important}}

/* v8.4 one-house polish: full house dashboard tabs, filters, and compact action dropdowns */
.action-menu{position:relative;display:inline-block;white-space:nowrap;text-align:left;z-index:5}.action-menu summary{list-style:none;cursor:pointer;background:var(--navy);color:#fff;border-radius:10px;padding:8px 12px;font-weight:900;font-size:13px;display:inline-flex;align-items:center;gap:8px}.action-menu summary::-webkit-details-marker{display:none}.action-menu summary:after{content:'▾';font-size:11px;opacity:.85}.action-menu[open] summary{background:var(--teal)}.action-menu>div{position:absolute;right:0;top:calc(100% + 6px);min-width:170px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(2,29,41,.18);padding:8px;z-index:50}.action-menu a,.action-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--deep)!important;padding:9px 10px;border-radius:10px;font:inherit;font-weight:850;cursor:pointer}.action-menu a:hover,.action-menu button:hover{background:#eef6f3}.action-menu button{color:#b42318!important}.filterbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line);background:#fbfdfb}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dce9e4;background:#fff;color:var(--teal);border-radius:999px;padding:8px 12px;font-weight:900;font-size:13px}.chip.active,.chip:hover{background:#e9f5f2;border-color:#bddbd1}.house-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}.house-grid .panel{scroll-margin-top:90px}.residents-panel{grid-column:1/2}.staff-panel{grid-column:2/3;grid-row:1/span 2}.incident-panel{grid-column:1/2}.drug-panel{grid-column:1/2}.panel h2{padding:16px 18px}.panel .panel-top h2{padding:0}.panel>p{padding:0 18px}.panel .btn{margin-bottom:8px}.tabs .tab{white-space:nowrap}.tabs{margin-top:12px}.house-kpis .card span{min-height:32px;display:block}.residents-panel table th:last-child,.residents-panel table td:last-child{min-width:120px}.tablewrap{overflow:visible}.panel .tablewrap{overflow:auto}.panel .tablewrap .action-menu>div{right:0}.main>.card .filterbar{margin:0 0 14px 0;padding-left:0;background:transparent;border-bottom:0}.resident-directory-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.resident-directory-toolbar form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.resident-directory-toolbar input{min-width:260px}.status-dismissed{background:#f5e7e2;color:#9a3412}.status-active{background:#e6f8ee;color:#075b3c}.status-pending{background:#fff4df;color:#946200}
@media(max-width:1300px){.house-grid{grid-template-columns:1fr}.staff-panel,.incident-panel,.drug-panel,.residents-panel{grid-column:auto;grid-row:auto}.action-menu>div{left:0;right:auto}}

/* v8.5 dropdown overlay fix: prevent action menus from rendering behind rows/cards */
.action-menu{position:relative;display:inline-block;isolation:isolate;z-index:20}
.action-menu[open]{z-index:999999}
.action-menu>div{
  position:fixed!important;
  z-index:999999!important;
  min-width:190px;
  max-width:260px;
  overflow:visible!important;
}
.tablewrap,.panel .tablewrap,.card,.panel,td,th,tr,tbody,table{overflow:visible}
.residents-panel .tablewrap,.staff-panel .tablewrap,.incident-panel .tablewrap,.drug-panel .tablewrap{overflow:visible;max-height:none}
.panel .tablewrap{max-height:none}
td:last-child,th:last-child{position:relative;z-index:30}
.action-menu a,.action-menu button{white-space:nowrap}
/* v8.6 resident chart polish */
.resident-chart{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.resident-side{position:sticky;top:18px}.resident-side .huge{width:112px;height:112px;font-size:34px;margin:auto}.demo-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:14px 0}.demo-list p{display:flex;justify-content:space-between;gap:12px;margin:8px 0}.account-box{border-top:4px solid var(--teal);background:#fffaf0;border-radius:16px;padding:14px;margin:16px 0}.account-box>div{display:flex;justify-content:space-between}.account-box h3{margin:8px 0}.pastdue{color:#b56b11}.quick-actions{display:grid;gap:9px}.resident-main{min-width:0}.chart-top{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px 18px;margin-bottom:16px}.profile-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.profile-tab{border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:var(--navy);background:#fbfaf6;font-weight:800}.profile-tab:hover{background:#e9f7f4}.timeline-item{border-left:5px solid var(--teal);background:#fbfaf6;border-radius:14px;padding:12px 14px;margin:10px 0}.timeline-item.payment{border-color:#1aa862}.timeline-item.charge{border-color:#c9972c}.timeline-item.incident{border-color:#c9291b}.timeline-item.note{border-color:#6b8f7a}.timeline-item>div{display:flex;align-items:center;gap:8px}.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0 18px}.finance-summary div{background:#fbfaf6;border:1px solid var(--line);border-radius:16px;padding:13px}.finance-summary span{display:block;color:var(--muted);font-weight:700}.finance-summary b{font-size:24px}.inline-form{background:#f7fbfa;border:1px solid var(--line);border-radius:16px;padding:12px;margin:12px 0}.inline-form form,.compact-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;align-items:end}.note-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:12px}.note-form textarea{min-height:70px}.formgrid.mini{grid-template-columns:repeat(4,minmax(130px,1fr)) auto}.hidden{display:none!important}.btn.gold{background:#d59a29;color:#09283a}.btn.green{background:#10a865;color:white}.centered{text-align:center}.wrap{white-space:normal}@media(max-width:980px){.resident-chart{grid-template-columns:1fr}.resident-side{position:relative}.inline-form form,.compact-form,.formgrid.mini,.finance-summary{grid-template-columns:1fr}}

/* v8.7 hard fix: action menus render in a body-level overlay, never behind table rows */
.floating-action-menu{position:fixed!important;z-index:2147483647!important;min-width:210px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 28px 80px rgba(2,29,41,.35);padding:10px;isolation:isolate}.floating-action-menu a,.floating-action-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--deep)!important;padding:11px 12px;border-radius:11px;font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}.floating-action-menu a:hover,.floating-action-menu button:hover{background:#eef6f3}.floating-action-menu button{color:#b42318!important}.action-menu{isolation:isolate}.action-menu[open] summary{background:var(--teal)}

/* v9.1 photo, cleanup and Stripe foundation */
.profile-photo{object-fit:cover;border-radius:50%;border:4px solid #e5f4f0;background:#fff;box-shadow:0 8px 24px rgba(9,47,63,.12)}
.profile-photo.huge{width:112px;height:112px;display:block;margin:auto}.photo-form{margin:12px 0;padding:10px;border:1px dashed #cfe0d9;border-radius:14px;background:#fbfdfb}.photo-form label{font-size:13px}.photo-form input{padding:8px;background:#fff}.inline-photo{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline-photo label{min-width:240px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.feature{color:inherit}.feature:hover{transform:translateY(-1px);box-shadow:0 8px 26px rgba(9,47,63,.06)}
/* v9.2 house-scoped navigation and business-format fixes */
.house-node{border-left:1px solid rgba(255,255,255,.08);margin-left:28px}
.house-node>.location-link{padding-left:22px!important;border-left:0!important;background:transparent}
.house-node>.location-link:hover,.house-node>.location-link.active{padding-left:22px!important;background:rgba(255,255,255,.10);border-left:0!important}
.house-modules{display:grid;grid-template-columns:1fr;gap:0;margin:0 0 8px 0;padding:0 0 0 46px}
.house-module{display:block;color:#9dc3cd!important;font-size:12px;font-weight:800;padding:5px 10px;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.house-module:hover{background:rgba(255,255,255,.08);color:#fff!important}
.nav-separator{height:1px;background:rgba(255,255,255,.10);margin:10px 18px}.tablewrap{max-width:100%}.main table td{line-height:1.4}.main table td b{font-weight:900}.feature{display:block;color:var(--deep)}

/* v9.3 collapsible sidebar: enterprise -> house -> internal house modules */
.sidebar details{display:block;margin:0;padding:0}
.sidebar summary{list-style:none;cursor:pointer}
.sidebar summary::-webkit-details-marker{display:none}
.tree-root>.tree-head{margin:0;border-left:5px solid transparent}
.tree-root[open]>.tree-head{background:rgba(255,255,255,.10);border-left-color:var(--blue)}
.enterprise-details{margin:0 0 2px 0}
.enterprise-details:not([open]) .enterprise-children{display:none}
.enterprise-details>.corp-link{padding-left:34px!important;border-left:5px solid transparent!important;background:rgba(0,0,0,.12)}
.enterprise-details[open]>.corp-link{background:rgba(0,0,0,.22);border-left-color:var(--blue)!important}
.enterprise-children{padding:3px 0 6px 0;background:rgba(0,0,0,.07)}
.house-details{margin-left:28px;border-left:1px solid rgba(255,255,255,.10)}
.house-details>.location-link{padding-left:18px!important;border-left:5px solid transparent!important;background:transparent!important}
.house-details[open]>.location-link,.house-details>.location-link:hover{background:rgba(255,255,255,.10)!important;border-left-color:transparent!important}
.house-modules{display:none!important;padding-left:48px!important;margin:0 0 8px 0!important;background:rgba(0,0,0,.06);border-radius:0 0 10px 10px}
.house-details[open]>.house-modules{display:grid!important}
.tree-text{color:inherit!important;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;line-height:1.25}
.tree-text:hover{color:#fff!important;text-decoration:none}
.sidebar .chev{transition:transform .15s ease}
.sidebar details[open]>summary .chev{transform:rotate(180deg)}
.muted-link{opacity:.75}
.house-module{padding:8px 10px!important;border-left:3px solid transparent}
.house-module:hover{border-left-color:var(--blue)}
@media(max-width:1200px){.house-modules{padding-left:34px!important}.house-details{margin-left:20px}}

/* v9.4 photo/list, reports and persistent tree polish */
.avatar-img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:3px solid #e5f4f0;background:#fff;display:inline-block;vertical-align:middle;box-shadow:0 8px 24px rgba(9,47,63,.10)}
.avatar-img.big{width:78px;height:78px}.avatar-img.huge{width:112px;height:112px}
.formgrid.two{grid-template-columns:repeat(2,minmax(180px,1fr))}.report-card b{display:block;margin-bottom:6px}.report-card p{min-height:50px;color:var(--muted)}
.sidebar details[data-nav-key] summary{user-select:none}.sidebar .house-modules{transition:none}.main .feature.report-card{min-height:150px}
@media(max-width:900px){.formgrid.two{grid-template-columns:1fr}}


/* v9.5 data integrity + report layout + payment request hardening */
.report-table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch}
.report-table{min-width:1200px;width:max-content;max-width:none;table-layout:auto}
.report-table th,.report-table td{white-space:nowrap;max-width:none;overflow:visible}
.report-table td:nth-child(2),.report-table td:nth-child(3),.report-table th:nth-child(2),.report-table th:nth-child(3){max-width:340px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.payment-link-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.payment-link-form input{width:150px;min-width:130px;margin:0;padding:8px 10px}
@media(max-width:900px){.report-table{min-width:980px}.payment-link-form{align-items:stretch}.payment-link-form input{width:100%}}
/* v9.6 Stripe payment-link UX */
.copy-link-input{min-width:340px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:#f8faf9;color:var(--deep);margin:0}
.notice.success{background:#e6f8ee;border-color:#b7e3ca;color:#075b3c}
.notice.danger{background:#fde8e8;border-color:#efb8b8;color:#941b1b}
#finances .tablewrap{overflow-x:auto}
#finances .tablewrap table{min-width:900px}
@media(max-width:980px){.copy-link-input{min-width:240px}}

/* v9.7 payment-to-charge allocation, audit trail and link lifecycle */
.payment-request-builder{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fbfdfa}
.payment-request-builder h3{margin-top:0}.payment-charge-list{display:grid;gap:9px;margin:12px 0 16px;max-height:330px;overflow:auto;padding-right:4px}
.payment-charge-option{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}
.payment-charge-option:hover{border-color:#8fcfc2;background:#f4fbf8}.payment-charge-option input{width:auto;margin-top:4px}.payment-charge-option span{display:grid;gap:3px}.payment-charge-option small{color:var(--muted)}
.linked-bill{display:grid;gap:2px;padding:5px 0;border-bottom:1px solid #edf1ef}.linked-bill:last-child{border-bottom:0}.linked-bill span{font-size:12px;color:var(--muted)}
#finances td small{display:block;margin-top:4px;color:var(--muted)}

/* =========================================================
   SoberVista v10 — Serene horizontal navigation redesign
   ========================================================= */
:root{
  --navy:#34545c;
  --deep:#27434a;
  --teal:#5f8f82;
  --sage:#8fb2a4;
  --sage-soft:#eaf3ef;
  --lavender:#a99dbd;
  --clay:#c99079;
  --sand:#f7f3ed;
  --ivory:#fbfaf7;
  --line:#e5e2dc;
  --muted:#75838a;
  --danger:#b96b62;
  --blue:#7c9fb0;
  --gold:#c5a46e;
}
html{scroll-behavior:smooth}
body{font-size:14px;line-height:1.52;background:linear-gradient(180deg,#fbfaf7,#f4f7f4);color:var(--deep)}
body,.app-shell{min-height:100vh}
h1,h2,h3,.pagehead h1,.house-hero h2,.loginbrand h1,.hero h1{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;letter-spacing:-.025em}
h1,.pagehead h1{font-size:32px;font-weight:750}.pagehead p{font-size:15px}.house-hero h2{font-size:24px}.kpis b{font-size:25px}
.btn,button{font-weight:750;border-radius:10px;padding:9px 13px;min-height:38px;background:var(--navy)}
.btn.secondary{background:var(--sage-soft);color:var(--deep)}
.btn.danger{background:var(--danger)}
.card{border-radius:18px;box-shadow:0 12px 34px rgba(52,84,92,.055);padding:20px}
.pagehead{padding:28px 34px 8px}.main>.card,.main>.kpis,.twocol,.threecol,.profilehead{margin:16px 34px;max-width:calc(100% - 68px)}

/* horizontal shell */
.app-body,.sidebar{display:none!important}
.app-shell{min-height:100vh}.horizontal-main,.main{margin-left:0!important;width:100%!important;overflow-x:hidden}
.app-header{position:sticky;top:0;z-index:5000;display:grid;grid-template-columns:auto minmax(520px,1fr) minmax(230px,340px) auto;align-items:center;gap:18px;min-height:70px;padding:10px 28px;background:rgba(252,251,248,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);box-shadow:0 7px 28px rgba(52,84,92,.05)}
.brand-lockup{display:flex;align-items:center;gap:10px;color:var(--deep)}.brand-lockup .mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--teal),var(--lavender))}.brand-lockup span:last-child{display:grid}.brand-lockup b{font-size:17px}.brand-lockup small{font-size:10px;color:var(--muted);white-space:nowrap}
.primary-nav{display:flex;align-items:center;gap:4px;min-width:0}.top-link,.menu-main{border:0;background:transparent;color:var(--deep);padding:9px 10px;border-radius:9px;font-size:13px;font-weight:700;min-height:auto;white-space:nowrap}.top-link:hover,.top-link.active,.menu-main:hover{background:var(--sage-soft);color:var(--deep)}
.menu-group{position:relative}.mega-menu{display:none;position:absolute;left:0;top:calc(100% + 8px);min-width:290px;max-width:440px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(39,67,74,.16);z-index:5100}.menu-group:hover>.mega-menu,.menu-group:focus-within>.mega-menu{display:block}.enterprise-mega{min-width:360px;max-height:70vh;overflow:auto}.mega-menu .menu-group{border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}.mega-menu .menu-group>.menu-main{display:block;width:100%;text-align:left}.mega-menu .mega-menu{position:static;display:grid!important;border:0;box-shadow:none;padding:3px 6px 8px;min-width:0;background:transparent}.mega-menu a{display:grid;padding:9px 10px;border-radius:10px;color:var(--deep)}.mega-menu a:hover{background:var(--sage-soft)}.mega-menu a small{color:var(--muted);font-size:11px}.menu-add{color:var(--teal)!important;font-weight:750}.menu-empty{padding:9px;color:var(--muted)}
.header-search input{margin:0;min-height:38px;background:#f5f7f5;border-color:#e5e9e5;font-size:13px}.user-menu{display:grid;justify-items:end;line-height:1.2}.user-menu span{font-size:13px;font-weight:750}.user-menu small{color:var(--muted);font-size:10px}.user-menu a{font-size:11px;margin-top:4px}
.house-context{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;padding:9px 28px;background:rgba(235,244,239,.96);backdrop-filter:blur(14px);border-bottom:1px solid #dce8e1}.house-context>div{min-width:230px;display:grid}.house-context b{font-size:13px}.house-context small{font-size:10px;color:var(--muted)}.house-context nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.house-context nav a{white-space:nowrap;padding:7px 9px;border-radius:8px;color:var(--deep);font-size:12px;font-weight:650}.house-context nav a:hover{background:#fff}

/* relaxed house presentation */
.house-title-banner{margin:22px 34px 14px;display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:0 12px 34px rgba(52,84,92,.05)}
.house-title-banner img,.house-edit-photo{width:100%;height:150px;object-fit:cover;border-radius:14px;background:#edf3ef}.house-title-banner h1{font-size:30px;margin:4px 0}.house-title-banner p{color:var(--muted);margin:5px 0 10px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800;color:var(--teal)}.house-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eaf3ef,#eee8f2);color:var(--teal);font-size:44px;border-radius:14px;min-height:150px}.house-fallback.large{height:150px}.button-row{display:flex;gap:8px;flex-wrap:wrap}
.house-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(52,84,92,.055)}.house-card>img{width:100%;height:160px;object-fit:cover}.house-card-body{padding:16px}.house-card h3{margin:0 0 5px;font-size:18px}.house-card p{color:var(--muted);margin:6px 0}
.house-hero{background:linear-gradient(135deg,#fbfdfb,#f5f0f8)!important}.occ-ring{border-color:#e0ebe5;border-top-color:var(--sage)}
.house-grid{gap:16px}.panel-top.orange{border-color:var(--clay)}.panel-top.green{border-color:var(--sage)}.panel-top.blue{border-color:var(--blue)}

/* resident chart */
.resident-chart{grid-template-columns:290px minmax(0,1fr)}.resident-side{top:136px}.profile-tabs{gap:6px}.profile-tab{font-size:12px;padding:7px 10px;background:#f6f8f6;border-color:#e4e9e5}.profile-tab:hover{background:var(--sage-soft)}
.finance-summary b{font-size:21px}.timeline-item{border-left-width:4px;background:#fafbf9}
.document-upload{display:grid;grid-template-columns:2fr 1fr 2fr auto;gap:10px;align-items:end;padding:14px;margin:12px 0 16px;border:1px solid var(--line);border-radius:14px;background:#f8fbf9}

/* permissions */
.permission-location-picker{display:flex;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8faf8}.check-card{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:650}.check-card input{width:auto;margin:0;min-height:auto}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:14px}.permission-group{border:1px solid var(--line);border-radius:14px;background:#fbfcfa;padding:12px}.permission-group h3{font-size:14px;margin:0 0 8px;color:var(--teal)}.permission-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf0ed}.permission-row:last-child{border-bottom:0}.permission-row span{display:grid}.permission-row small{font-size:10px;color:var(--muted)}.permission-row input{width:18px;height:18px;margin:0;min-height:auto}

/* typography and tables */
table{font-size:13px}th,td{padding:11px 12px}th{font-size:10px}.pill{font-size:10px;padding:5px 8px}.notice{font-size:13px}.formgrid{gap:12px}label{font-size:12px;font-weight:700}input,select,textarea{font-size:13px;padding:10px 11px;min-height:40px;border-radius:10px}

@media(max-width:1180px){.app-header{grid-template-columns:auto 1fr auto}.header-search{display:none}.primary-nav{overflow-x:auto}.brand-lockup small{display:none}.permission-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:860px){.app-header{grid-template-columns:1fr auto;gap:10px}.primary-nav{grid-column:1/-1;order:3;padding-top:4px}.user-menu{display:none}.house-context{top:0;display:block}.house-context>div{margin-bottom:6px}.house-title-banner{grid-template-columns:1fr;margin-left:16px;margin-right:16px}.house-title-banner img{height:200px}.pagehead{padding-left:16px;padding-right:16px}.main>.card,.main>.kpis,.twocol,.threecol,.profilehead{margin-left:16px;margin-right:16px;max-width:calc(100% - 32px)}.document-upload{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.resident-chart{grid-template-columns:1fr}.resident-side{position:relative;top:auto}}

/* =========================================================
   SoberVista v10.1 — Enterprise tree hierarchy correction
   ========================================================= */
.nav-tree-root{position:relative}
.nav-tree-root>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px}
.nav-tree-root>summary::-webkit-details-marker,.tree-enterprise>summary::-webkit-details-marker,.tree-house>summary::-webkit-details-marker{display:none}
.enterprise-tree-panel{position:absolute;left:0;top:calc(100% + 10px);width:min(560px,86vw);max-height:76vh;overflow:auto;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 28px 70px rgba(39,67,74,.18);z-index:7000}
.nav-tree-root:not([open]) .enterprise-tree-panel{display:none}
.enterprise-tree{display:grid;gap:8px}
.tree-enterprise,.tree-house{border:1px solid #e8ece8;border-radius:13px;background:#fbfcfa;overflow:hidden}
.tree-enterprise>summary,.tree-house>summary{display:flex;align-items:center;gap:9px;cursor:pointer;padding:10px 12px;color:var(--deep);user-select:none}
.tree-enterprise>summary{font-weight:800;background:#f1f6f3}
.tree-house{margin:7px 0;background:#fff}
.tree-house>summary{align-items:flex-start;font-weight:700}
.tree-icon{flex:0 0 20px;color:var(--teal);text-align:center}
.tree-label{display:grid;min-width:0;flex:1}.tree-label b{font-size:13px}.tree-label small{font-size:10px;color:var(--muted);font-weight:500;white-space:normal}
.tree-chevron{margin-left:auto;transition:transform .16s ease;color:var(--muted)}
.tree-enterprise[open]>summary .tree-chevron,.tree-house[open]>summary .tree-chevron{transform:rotate(90deg)}
.tree-children{padding:8px 10px 10px 28px}.tree-overview-link,.tree-add-link,.tree-add-enterprise{display:block;padding:8px 10px;border-radius:9px;font-size:12px;font-weight:700;color:var(--teal)}
.tree-overview-link:hover,.tree-add-link:hover,.tree-add-enterprise:hover{background:var(--sage-soft)}
.tree-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:0 8px 9px 36px}
.tree-modules a{padding:7px 8px;border-radius:8px;color:var(--deep);font-size:11px;font-weight:650}
.tree-modules a:hover{background:var(--sage-soft)}
.tree-add-enterprise{margin-top:8px;border-top:1px solid var(--line);padding-top:12px}
.subtle{display:block;color:var(--muted);font-size:10px;margin-top:3px}
@media(max-width:760px){.enterprise-tree-panel{position:fixed;left:12px;right:12px;top:112px;width:auto}.tree-modules{grid-template-columns:1fr}}

/* =========================================================
   SoberVista v11.2 — Multi-house dashboard, resident portal, help center
   ========================================================= */
.help-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start;max-width:1500px;margin:0 auto;padding:0 26px 40px}
.help-sidebar{position:sticky;top:92px;margin:0!important;max-width:none!important}.help-sidebar a{display:block;padding:10px 8px;border-radius:9px;color:var(--deep);font-size:12px;font-weight:700}.help-sidebar a:hover{background:var(--sage-soft)}
.help-content{display:grid;gap:18px}.help-content>.card{margin:0!important;max-width:none!important}.help-article{border:1px solid var(--line);border-radius:14px;background:#fff;margin:10px 0;overflow:hidden}.help-article summary{cursor:pointer;list-style:none;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;font-weight:750;color:var(--deep)}.help-article summary::-webkit-details-marker{display:none}.help-article[open] summary{background:var(--sage-soft)}.help-body{padding:0 18px 16px;color:var(--muted);line-height:1.65}
.house-card{overflow:hidden}.house-card .house-hero{width:100%;height:190px;object-fit:cover;border-radius:14px;margin-bottom:14px}.kpis.compact{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.kpis.compact>div{background:var(--sage-soft);border-radius:12px;padding:10px}.kpis.compact span{display:block;font-size:10px;color:var(--muted)}.kpis.compact b{font-size:17px;color:var(--deep)}
.resident-shell .maincontent{max-width:1500px;margin:0 auto;padding:32px 24px 60px}.resident-shell .topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.resident-shell .topbar nav{display:flex;gap:18px}.resident-shell .topbar nav a{font-size:12px;font-weight:700;color:var(--deep)}
.actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions-row form{margin:0}
@media(max-width:900px){.help-layout{grid-template-columns:1fr;padding:0 16px 30px}.help-sidebar{position:relative;top:auto}.kpis.compact{grid-template-columns:1fr}.resident-shell .topbar{align-items:flex-start;gap:12px;flex-direction:column}.resident-shell .topbar nav{flex-wrap:wrap}}

/* =========================================================
   SoberVista v11.6 — Purple on white (final direction)
   Light backgrounds throughout, a single confident purple accent.
   Also adds: password show/hide toggle, web messaging UI.
   ========================================================= */
:root{
  --navy:#3B1F3D;
  --deep:#28152A;
  --teal:#5C3A61;
  --sage:#F2E9F2;
  --sage-soft:#F8F3F8;
  --gold:#5C3A61;
  --clay:#3B1F3D;
  --ivory:#FAF9FC;
  --line:#E8DEE8;
  --muted:#6B6478;
  --danger:#D64545;
  --blue:#5B7FBF;
}
h1,h2,h3,.pagehead h1,.house-hero h2,.loginbrand h1,.hero h1,.brand-lockup b{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--deep);
}
.hero h1 span{color:var(--teal)}

/* ---- Login: light canvas, white card, purple accents ---- */
.loginwrap{
  background:radial-gradient(circle at 12% 15%,#f3eefc,transparent 46%),radial-gradient(circle at 90% 85%,#faf7ff,transparent 50%),linear-gradient(180deg,#fdfcfb,#f7f5f9);
}
.loginbrand{color:var(--deep)}
.loginbrand h1{font-size:52px;margin:14px 0 6px}
.loginbrand p{color:var(--muted);font-size:17px}
.loginbrand .mark{background:var(--navy);color:#fff;box-shadow:0 10px 26px rgba(59,31,61,.25)}
.loginbrand .notice{background:var(--sage-soft);border:1px solid var(--line);color:#5B2E86}
.loginbrand a{color:var(--teal)}
.loginbox{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 64px rgba(59,7,100,.08);padding:36px}
.portal-tabs{background:var(--sage-soft);border-radius:14px;padding:4px;gap:4px}
.portal-tabs a{border:none;border-radius:11px;color:var(--deep);font-weight:700}
.portal-tabs a.active{background:var(--navy);color:#fff}
.loginbox input{border-radius:11px;border:1.5px solid var(--line);padding:13px 14px;background:#fcfbfd}
.loginbox input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(92,58,97,.15)}
.loginbox .btn.full{border-radius:12px;background:var(--navy);color:#fff;font-weight:700;font-size:15px;box-shadow:0 12px 24px rgba(59,31,61,.25)}
.loginbox .btn.full:hover{background:var(--teal)}
.loginbox a{color:var(--navy);font-weight:600}

/* ---- App shell / header (light, purple accents) ---- */
.app-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:0 6px 20px rgba(59,7,100,.04)}
.brand-lockup .mark{background:var(--navy)}
.top-link,.menu-main{border-radius:9px;font-weight:600}
.top-link:hover,.top-link.active,.menu-main:hover{background:var(--sage-soft);color:var(--navy)}
.mega-menu{border-radius:16px;box-shadow:0 20px 50px rgba(59,7,100,.14)}
.mega-menu a:hover{background:var(--sage-soft)}
.menu-add{color:var(--teal)!important;font-weight:800}
.house-context{background:var(--sage-soft);border-bottom-color:var(--line)}
.btn,button{border-radius:11px;font-weight:700}
.btn.gold{background:var(--navy);color:#fff}
.pill{font-weight:700}

/* ---- Password show/hide toggle ---- */
.pw-field{position:relative}
.pw-field input{padding-right:64px!important}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent!important;color:var(--navy)!important;font-size:12px;font-weight:700;padding:6px 10px!important;min-height:auto!important;box-shadow:none}
.pw-toggle:hover{background:var(--sage-soft)!important}

/* ---- Messaging (web) ---- */
.msg-list{display:grid;gap:2px}
.msg-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line);color:var(--deep)}
.msg-row:last-child{border-bottom:none}
.msg-row:hover{background:var(--sage-soft)}
.msg-row div{display:grid;gap:2px}
.msg-row b{font-size:15px}
.msg-row span{font-size:13px;color:var(--muted)}
.msg-row small{color:var(--muted);white-space:nowrap}
.contact-list{display:grid;gap:2px}
.contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);margin:0}
.contact-row:last-child{border-bottom:none}
.contact-row span{display:grid;gap:2px}
.contact-row small{color:var(--muted);text-transform:capitalize}
.chat-thread{display:flex;flex-direction:column;height:65vh;padding:0;overflow:hidden}
.chat-scroll{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}
.chat-bubble-row{display:flex}
.chat-bubble-row.mine{justify-content:flex-end}
.chat-bubble{max-width:70%;background:var(--sage-soft);border-radius:14px;padding:10px 14px}
.chat-bubble b{display:block;font-size:11px;color:var(--muted);margin-bottom:2px;font-weight:700}
.chat-bubble p{margin:0;font-size:14px;line-height:1.4;color:var(--deep)}
.chat-bubble.mine{background:var(--navy)}
.chat-bubble.mine p{color:#fff}
.chat-input-row{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line);background:#fff}
.chat-input-row textarea{resize:none;min-height:44px;max-height:100px;border-radius:12px}
.chat-input-row .btn{align-self:flex-end}

/* =========================================================
   SoberVista v11.7 — Unread message badges & alerts
   ========================================================= */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#D64545;color:#fff;font-size:11px;font-weight:800;line-height:18px;margin-left:2px;vertical-align:top}
.msg-row-right{display:flex;align-items:center;gap:8px}
.unread-dot{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#D64545;color:#fff;font-size:11px;font-weight:800}
.msg-row{align-items:center}
.message-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#FBEAEA;border:1px solid #F3C9C9;color:#7A2020}
.message-alert-banner b{color:#7A2020}

/* =========================================================
   SoberVista v12.0 — Recurring charges, dashboard celebrations
   ========================================================= */
.celebration-list{display:grid;gap:8px;margin-top:8px}
.celebration-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--sage-soft);border-radius:10px;font-size:14px}
.celebration-row b{color:var(--deep)}
.celebration-row span{color:var(--muted);font-size:12px;margin-left:auto}
.checkbox-row{display:flex;align-items:center;gap:8px;font-weight:400}
.checkbox-row input{width:auto}
.pill.gray{background:#E8DEE8;color:var(--muted)}

/* =========================================================
   SoberVista v12.1 — Icon rail + secondary panel navigation
   Replaces the horizontal mega-menu. Scales better as more
   portfolios/communities are added (research-backed pattern).
   ========================================================= */
.rail-shell{display:flex;min-height:100vh;background:var(--ivory)}
.icon-rail{
  width:76px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;padding:16px 6px;gap:4px;
  position:sticky;top:0;height:100vh;z-index:20;
}
.rail-brand{width:40px;height:40px;border-radius:12px;background:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.rail-brand .mark{color:#fff;font-weight:700;font-size:13px}
.rail-item{
  position:relative;width:100%;padding:8px 4px 6px;border-radius:12px;border:none;background:transparent;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;text-decoration:none;
}
.rail-item .rail-icon{font-size:19px;line-height:1}
.rail-item .rail-label{font-size:9.5px;font-weight:700;color:var(--muted);letter-spacing:.01em;text-align:center;line-height:1.1}
.rail-item:hover{background:var(--sage-soft)}
.rail-item.active{background:var(--sage-soft)}
.rail-item.active .rail-label{color:var(--navy)}
.rail-badge{position:absolute;top:2px;right:8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#D64545;color:#fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}
.rail-spacer{flex:1}
.secondary-panel{
  width:280px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);
  padding:16px;overflow-y:auto;height:100vh;position:sticky;top:0;z-index:15;
  transition:margin-left .15s ease,opacity .1s ease;
}
.secondary-panel-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.secondary-panel-head b{font-size:15px;color:var(--deep);flex:1}
.btn-mini{font-size:12px;font-weight:700;color:var(--navy);background:var(--sage-soft);padding:4px 10px;border-radius:8px;text-decoration:none}
.panel-collapse{background:transparent;border:1px solid var(--line);border-radius:8px;width:26px;height:26px;color:var(--muted);cursor:pointer}
.rail-shell.panel-collapsed .secondary-panel{margin-left:-280px;opacity:0;pointer-events:none}
.rail-content{flex:1;min-width:0;display:flex;flex-direction:column}
.content-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line);background:#fff}
.content-topbar .header-search input{width:320px}
.portfolio-tree .tree-enterprise{margin-bottom:4px}

/* =========================================================
   SoberVista v12.2 — Dashboard: recovery milestones, needs attention
   ========================================================= */
.threecol{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:1100px){.threecol{grid-template-columns:1fr}}
.attention-row{cursor:pointer;text-decoration:none;color:inherit;transition:background .1s}
.attention-row:hover{background:#FBEAEA}

/* =========================================================
   SoberVista v12.3 — Testing tool, Bill Management, File Library,
   Custom Export
   ========================================================= */
.randomize-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.randomize-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.btn.blue{background:var(--blue);color:#fff}
.btn.green{background:var(--success,#2E7D5B);color:#fff}
.card.green{border-left:4px solid #2E7D5B}
.card.red{border-left:4px solid var(--danger)}
.file-library-layout{align-items:start}
.file-lib-link{display:block;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--deep);text-decoration:none}
.file-lib-link:hover,.file-lib-link.active{background:var(--sage-soft);color:var(--navy);font-weight:700}
.inline-form-row{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}

/* =========================================================
   SoberVista v12.5 — Real month-grid calendar
   ========================================================= */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.calendar-toolbar h2{margin:0;font-size:18px}
.calendar-nav{display:flex;gap:6px}
.calendar-grid{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--sage-soft)}
.cal-dow{padding:8px;text-align:center;font-size:12px;font-weight:700;color:var(--muted)}
.cal-body-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:100px}
.cal-cell{border-top:1px solid var(--line);border-right:1px solid var(--line);padding:6px;overflow:hidden;display:flex;flex-direction:column}
.cal-cell:nth-child(7n){border-right:none}
.cal-cell.muted{background:#FAFAF9;color:var(--muted)}
.cal-cell.today{background:var(--sage-soft)}
.cal-cell-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700}
.cal-cell-head a{color:var(--navy);text-decoration:none;font-weight:800;opacity:.4}
.cal-cell:hover .cal-cell-head a{opacity:1}
.cal-cell-body{display:flex;flex-direction:column;gap:2px;margin-top:4px;overflow:hidden}
.cal-event{font-size:10px;background:var(--navy);color:#fff;border-radius:4px;padding:1px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-event.house_meeting{background:var(--blue)}
.cal-event.curfew{background:var(--danger)}
.cal-event.appointment{background:#5B7FBF}
.cal-event.outing{background:#2E7D5B}
.cal-more{font-size:10px;color:var(--muted)}
@media(max-width:900px){.cal-body-grid{grid-auto-rows:70px}.cal-event{display:none}.cal-more{display:block}}

/* =========================================================
   SoberVista v12.6 — Resident portal: pay rent, chat, demographics
   ========================================================= */
.resident-mobile-first{display:flex;flex-direction:column;gap:16px}
.resident-pay-card{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;flex-wrap:wrap;gap:14px}
.resident-pay-card h2{color:#fff;margin:2px 0;font-size:32px}
.resident-pay-card p{color:rgba(255,255,255,.75);margin:0}
.resident-pay-card.paid-up{background:#2E7D5B}
.pay-now-btn{background:#fff;color:var(--navy);font-size:16px;padding:14px 24px;border-radius:14px;font-weight:800}
.resident-chat-card{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:inherit}
.resident-chat-card h2{font-size:17px;margin:0 0 2px;display:flex;align-items:center;gap:8px}
.resident-chat-card p{margin:0;color:var(--muted);font-size:13px}
.resident-chat-card .chevron{font-size:24px;color:var(--muted)}
.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.demo-row{display:flex;flex-direction:column;gap:2px}
.demo-row span{font-size:12px;color:var(--muted);font-weight:700}
.demo-row b{font-size:14px}
@media(max-width:640px){.demo-grid{grid-template-columns:1fr}.resident-pay-card{flex-direction:column;align-items:flex-start}.pay-now-btn{width:100%}}

/* =========================================================
   SoberVista v12.7 — Public pricing section
   ========================================================= */
.pricing-section{padding:70px 6% 90px;text-align:center;background:linear-gradient(180deg,#fff,var(--ivory))}
.pricing-section h2{font-size:36px;margin-bottom:6px}
.pricing-sub{color:var(--muted);margin-bottom:40px;font-size:16px}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1080px;margin:0 auto}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}}
.pricing-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px 26px;text-align:left;display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(59,7,100,.05)}
.pricing-card.featured{border-color:var(--navy);box-shadow:0 20px 50px rgba(59,7,100,.15);transform:translateY(-8px)}
.pricing-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:11px;font-weight:800;padding:4px 14px;border-radius:999px;letter-spacing:.03em}
.tier-name{font-size:20px;color:var(--deep);display:block;margin-bottom:14px}
.pricing-card ul{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px;flex:1}
.pricing-card li{font-size:14px;color:var(--text,#333);padding-left:22px;position:relative}
.pricing-card li::before{content:"✓";position:absolute;left:0;color:var(--navy);font-weight:800}
.price{font-size:34px;font-weight:800;color:var(--deep);margin-bottom:18px}
.price span{font-size:14px;font-weight:500;color:var(--muted)}
.pricing-footnote{max-width:600px;margin:36px auto 0;color:var(--muted);font-size:13px}

/* =========================================================
   SoberVista v12.8 — Calendar detail view, expanded marketing page
   ========================================================= */
.benefits-section,.security-section,.features-detail{padding:70px 6%;text-align:center}
.benefits-section{background:var(--ivory)}
.benefits-section h2,.security-section h2,.features-detail h2{font-size:32px;margin-bottom:6px;color:var(--deep)}
.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1080px;margin:40px auto 0;text-align:left}
@media(max-width:900px){.benefits-grid{grid-template-columns:1fr}}
.benefit-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px}
.benefit-icon{font-size:28px;display:block;margin-bottom:10px}
.benefit-card h3{font-size:16px;margin:0 0 8px;color:var(--deep)}
.benefit-card p{font-size:14px;color:var(--muted);line-height:1.5;margin:0}
.features-detail .features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1000px;margin:36px auto 0}
@media(max-width:900px){.features-detail .features{grid-template-columns:1fr}}
.features-detail .feature{background:var(--ivory);border-radius:14px;padding:20px;text-align:left}
.features-detail .feature b{display:block;color:var(--deep);margin-bottom:4px}
.features-detail .feature p{margin:0;font-size:13px;color:var(--muted)}
.security-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:900px;margin:36px auto 0;text-align:left}
@media(max-width:900px){.security-grid{grid-template-columns:1fr}}
.security-grid h3{font-size:15px;color:var(--deep);margin:0 0 6px}
.security-grid p{font-size:13px;color:var(--muted);margin:0}
.landing-footer{padding:36px 6%;text-align:center;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.landing-footer div{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;font-weight:700;color:var(--deep)}
.landing-footer .mark{width:26px;height:26px;border-radius:8px;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}

/* =========================================================
   SoberVista v12.9 — One-click calendar card
   ========================================================= */
.calendar-summary-link{display:block;text-decoration:none;color:inherit;transition:box-shadow .15s}
.calendar-summary-link:hover{box-shadow:0 8px 20px rgba(59,7,100,.1)}
.calendar-summary-link h2{color:var(--deep)}

/* =========================================================
   SoberVista v12.10 — Portfolio overview: calendar + celebrations
   with photos
   ========================================================= */
.celebration-row .avatar,.celebration-row .avatar-img{width:32px;height:32px;font-size:12px;flex-shrink:0}
.portfolio-house-picker{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.portfolio-house-picker select{width:auto;min-width:220px}

/* =========================================================
   SoberVista v12.11 — Calendar toolbar row for Add Event button
   ========================================================= */
.calendar-toolbar-row{display:flex;justify-content:flex-end;margin-bottom:10px}

/* =========================================================
   SoberVista v13.5 — Clear test data diagnostics
   ========================================================= */
.error-card{border-left:4px solid var(--danger);background:#FBEAEA}
.error-detail{display:block;font-size:10px;color:var(--danger);margin-top:4px;word-break:break-word;font-weight:400}

/* =========================================================
   SoberVista v14.0 — Real search, manual payment reconciliation
   ========================================================= */
.header-search{position:relative;display:flex}
.header-search input{padding-right:38px}
.search-icon-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:transparent;border:none;font-size:14px;cursor:pointer;padding:6px;min-height:auto!important;box-shadow:none}
