:root{--ink:#223b38;--muted:#637873;--green:#22634f;--line:#dfe7e2;--paper:#f5f7f4;--warm:#eaeedf;--bs-primary:#22634f;--bs-link-color:#22634f;--bs-border-radius:.65rem}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:15px;line-height:1.55}a{color:var(--green);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.btn{min-height:44px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.1rem;font-weight:600}.btn-primary{--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:#184c3d;--bs-btn-hover-border-color:#184c3d;--bs-btn-active-bg:#184c3d}.btn-light{--bs-btn-bg:#f2f5ef;--bs-btn-border-color:#dfe7de;--bs-btn-color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c48b28;outline-offset:3px;box-shadow:none}.layout{display:flex;min-height:100vh}.sidebar{width:246px;flex-shrink:0;background:#fff;border-inline-end:1px solid var(--line);padding:32px 22px 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:23px;font-weight:750;letter-spacing:-.6px;color:var(--ink)}.brand-icon{background:var(--green);color:#fff;border-radius:12px;width:43px;height:43px;display:grid;place-items:center;font-size:32px;font-weight:400}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.1px;color:var(--muted);margin-top:2px}.nav-caption{text-transform:uppercase;letter-spacing:1.4px;font-size:10px;color:var(--muted);margin:42px 14px 13px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;text-decoration:none;color:#546862;border-radius:9px;padding:12px 13px;font-weight:550;min-height:46px;font-size:14px}.sidebar nav a span{font-size:20px;width:21px;text-align:center}.sidebar nav a:hover,.sidebar nav a[aria-current=page]{background:#eaf2eb;color:#1f5e49}.sidebar-foot{margin-top:auto;padding:24px 12px 0;font-size:12px;font-weight:600}.sidebar-foot small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:8px}.status-dot{display:inline-block;width:6px;height:6px;background:#588f60;border-radius:50%;margin-inline-end:7px}.workspace{flex:1;min-width:0}.topbar{min-height:83px;background:#fff;border-bottom:1px solid var(--line);padding:16px 38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-label{font-weight:600;font-size:14px}.topbar-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.language-form{display:flex;align-items:center;gap:6px}.language-form select{width:auto;max-width:125px;border:1px solid var(--line);min-height:44px;padding:6px 9px;background:#fff;border-radius:7px;font-size:13px}.language-form .btn{font-size:12px;padding:7px 9px}.logout{border:0;background:transparent;font-size:12px;color:var(--muted);padding:8px}.environment{padding:10px 38px;font-size:11px;border-bottom:1px solid #e3e8dd;background:#f0f3e8;display:flex;align-items:center;gap:9px;color:#536347}.pill{background:#dbe4ca;color:#425831;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:1px}.environment-note{margin-inline-start:auto}.menu-button{display:none}main{max-width:1500px;margin:auto;padding:38px;outline:none}h1{font-weight:650;letter-spacing:-1px;font-size:32px;line-height:1.22;margin:4px 0 12px}h2{font-size:18px;letter-spacing:-.2px;font-weight:650;margin:0 0 14px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:#7c8d80;margin:0 0 11px}.subtitle{color:var(--muted);font-size:14px;margin-bottom:0;max-width:730px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px}.page-heading>.btn{flex-shrink:0}.panel{padding:25px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:22px;min-width:0}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stat{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);padding:25px 27px}.stat>span{font-size:13px;color:var(--muted);font-weight:550}.stat strong{font-size:43px;font-weight:600;line-height:1.3;margin:9px 0 15px;font-variant-numeric:tabular-nums}.stat small{border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--green)}.stat.accent{background:#eaf0e0;border-color:#dae3cb}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{margin:0}.badge-soft{font-size:10px;padding:4px 9px;border-radius:5px;background:#f0f4ed;color:#546b50;display:inline-block;white-space:normal}.status-pending{background:#fbefd8;color:#845a11}.status-blocked{background:#fbe9e5;color:#993e31}.setup-row{display:flex;align-items:center;gap:12px;padding:22px 0;border-bottom:1px solid #eef1eb}.setup-row:last-child{border:0;padding-bottom:1px}.setup-row>div{flex:1}.setup-row strong,.activity strong{display:block;font-size:13px;font-weight:600}.setup-row small,.activity small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.step-number{width:30px;height:30px;background:#f1f4ed;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:10px;color:#64806a}.text-link{font-size:12px;font-weight:650;display:inline-flex;align-items:center;min-height:44px}.activity{display:flex;gap:10px;padding:18px 0;border-bottom:1px solid #eef1eb}.activity:last-child{border:0}.activity-mark{color:#629176;font-size:26px;line-height:18px}.quiet-note{border:1px dashed #d6dfd1;padding:19px 22px;display:flex;gap:14px;color:var(--muted);font-size:12px;border-radius:10px}.quiet-note p{margin:0}.quiet-note>span{font-size:24px;line-height:1}footer{padding:12px 38px 27px;font-size:10px;color:#829086}footer span{margin:0 8px}.form-panel{max-width:760px}.field{margin-bottom:22px}.field>label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input:not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #cfdad1;border-radius:7px;background:#fff;color:var(--ink);padding:10px 12px;min-height:45px;max-width:100%}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);flex-shrink:0;vertical-align:middle;margin-inline-end:7px}.check-field{display:flex!important;align-items:center;gap:7px;min-height:44px}.field [id=id_roles]>div{margin-bottom:7px}.field [id=id_roles] label{display:flex;align-items:center;min-height:38px}.required{color:#8e4f33}.help{font-size:12px;color:var(--muted);margin-top:7px}.help ul{padding-inline-start:20px}.notice{border:1px solid #bcd8c5;background:#eaf7ee;padding:13px 17px;border-radius:8px;margin-bottom:20px}.notice.error{border-color:#e4b6a6;background:#fff2eb;color:#873923}.notice ul{margin:5px 0 0;padding-inline-start:20px}.field-error{color:#a33e27;font-size:13px;margin-top:6px}.invalid input,.invalid textarea,.invalid select{border-color:#b55032}.form-actions{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}.filters{display:flex;gap:10px;margin-bottom:22px}.filters input{max-width:390px}.filters select{max-width:210px}.filters>.btn{flex-shrink:0}.apartment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.apartment-card{display:block;text-decoration:none;color:var(--ink);padding:22px 25px;transition:border-color .15s}.apartment-card:hover{border-color:#79a18a}.apartment-card>.section-heading:first-child{margin-bottom:28px}.apartment-card h2{font-size:36px;margin:5px 0 24px;overflow-wrap:anywhere}.apartment-card .muted{font-size:12px}.apartment-symbol{font-size:25px;color:#7b9583}.muted{color:var(--muted)}.people-list{padding:0 25px}.person-row{display:flex;align-items:center;gap:17px;padding:23px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.person-row:last-child{border:0}.person-main{flex:1;min-width:0}.person-main strong{font-size:14px;display:block;overflow-wrap:anywhere}.person-main small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#edf1e7;color:#63765a;font-weight:600;flex-shrink:0}.person-roles{font-size:11px;color:var(--muted);display:grid;gap:3px}.membership-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}.membership-row:last-child{border:0}.membership-row>div{flex:1;min-width:170px}.membership-row strong{font-size:14px}.membership-row small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.danger{color:#a44733}.details{display:grid;grid-template-columns:1fr 1fr;gap:22px}.details dt{font-size:12px;color:var(--muted);font-weight:500}.details dd{margin:6px 0 0;font-size:14px;overflow-wrap:anywhere}.empty{padding:30px 12px;color:var(--muted)}.empty h2{color:var(--ink)}.empty-state{text-align:center;max-width:650px;margin:40px auto;padding:50px 35px}.empty-state p{color:var(--muted);margin:20px 0}.empty-symbol{display:block;font-size:50px;color:#859b76;margin-bottom:20px}.audit-row{display:flex;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--line)}.audit-row:last-child{border:0}.audit-row strong{font-size:14px}.audit-row p{font-size:12px;margin:5px 0 0;overflow-wrap:anywhere}.audit-row small{font-size:11px;color:var(--muted);text-align:end;flex-shrink:0}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.skip-link{position:fixed;top:-100px;inset-inline-start:15px;z-index:20;padding:10px;background:#fff}.skip-link:focus{top:10px}.guest .topbar{max-width:none;padding:22px 7%}.guest main{max-width:1200px;padding:65px 40px}.guest .environment{padding-inline:7%}.guest footer{text-align:center}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.login-intro h1{font-size:48px;max-width:430px;line-height:1.1;letter-spacing:-1.5px}.login-intro>p:not(.eyebrow){color:var(--muted);max-width:400px;margin-top:22px;font-size:15px}.login-panel{padding:35px}.login-panel h2{font-size:26px;margin-top:5px}.login-panel .subtitle{margin-bottom:27px;font-size:13px}.full-width{width:100%;justify-content:space-between}.login-links{display:flex;justify-content:space-between;gap:14px;font-size:12px;margin-top:22px}.demo-help{border-top:1px solid var(--line);padding-top:20px;margin-top:24px;margin-bottom:0}.house-art{position:relative;width:204px;height:181px;margin:48px 60px 23px;background:#e1e8d7;border-radius:5px}.roof{position:absolute;width:228px;height:10px;inset-inline-start:-12px;top:-10px;background:#abc0a3;border-radius:5px}.house-windows{padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.house-windows i{height:20px;border:4px solid #b2c4a8;border-radius:2px;background:#edf1e7}.house-windows i:nth-child(5){background:#eac684;border-color:#d4b275}.house-door{width:31px;height:39px;position:absolute;bottom:0;inset-inline-start:calc(50% - 16px);background:#a3b69c;border-radius:7px 7px 0 0}.intro-caption{font-size:12px!important;letter-spacing:1px}.guest .form-panel{margin:auto}.guest .page-heading{max-width:760px;margin:0 auto 25px}@media(min-width:1600px){main{padding:46px 55px}}@media(max-width:1100px){.sidebar{width:214px;padding-inline:15px}.topbar{padding-inline:25px}main{padding:28px}.dashboard-columns{grid-template-columns:1fr}.apartment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{gap:40px}.login-intro h1{font-size:40px}.person-roles{max-width:150px}.environment-note{display:none}}@media(max-width:800px){.sidebar{position:fixed;inset-inline-start:-270px;top:77px;height:calc(100vh - 77px);width:246px;z-index:10;box-shadow:8px 0 24px #152f2415;transition:inset-inline-start .2s}.menu-open .sidebar{inset-inline-start:0}.menu-button{display:inline-flex;border:0;background:#eff3eb;border-radius:8px;padding:9px;gap:6px;align-items:center;font-size:12px;color:var(--ink)}.topbar{padding:12px 18px;min-height:77px;gap:10px}.topbar-label{display:none}.topbar-actions{gap:5px;flex-wrap:nowrap}.environment{padding:9px 18px;font-size:10px}.page-heading{align-items:flex-start;gap:18px}h1{font-size:28px}.stat-grid{gap:12px}.stat{padding:19px}.stat>span{font-size:12px}.stat small{font-size:11px}.guest main{padding:35px 25px}.guest .topbar{padding:15px 25px}.login-layout{grid-template-columns:1fr;max-width:490px;margin:auto;gap:25px}.login-intro h1{font-size:33px;max-width:none}.house-art,.intro-caption,.login-intro>p:not(.eyebrow){display:none}.guest .brand{font-size:20px}.guest .brand-icon{width:33px;height:33px}.login-panel{padding:28px}.filters input{min-width:0}.details{gap:20px}}@media(max-width:520px){main{padding:25px 17px}.page-heading{flex-direction:column;margin-bottom:24px}.page-heading>.btn{align-self:flex-start}.page-heading .subtitle{font-size:13px}h1{font-size:27px}.panel{padding:20px}.stat-grid{grid-template-columns:1fr;gap:0}.stat{display:grid;grid-template-columns:1fr auto;align-items:center;padding:18px 20px;margin-bottom:12px}.stat strong{grid-row:1 / 3;grid-column:2;margin:0;font-size:35px;padding-inline-start:18px}.stat>span{font-size:13px}.stat small{border:0;padding-top:5px}.dashboard-columns{gap:0;margin-top:12px}.setup-row{gap:9px}.setup-row .badge-soft{max-width:75px;text-align:center}.section-heading h2{font-size:16px}.text-link{font-size:11px}.apartment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.apartment-card{padding:16px;margin-bottom:0}.apartment-card>.section-heading:first-child{margin-bottom:18px}.apartment-card .badge-soft{font-size:9px}.apartment-card h2{font-size:29px}.apartment-grid+.panel{margin-top:20px}.filters{flex-wrap:wrap}.filters input{max-width:none;flex:1 1 100%}.filters select{max-width:none;flex:1 1 65%;width:auto}.filters .btn{flex:1}.people-list{padding:0 16px}.person-row{gap:10px;flex-wrap:wrap;padding:18px 0}.person-main{flex-basis:calc(100% - 65px)}.person-roles{margin-inline-start:53px;flex:1;font-size:10px;max-width:none}.person-row>.badge-soft{font-size:10px}.details{grid-template-columns:1fr}.audit-row{flex-direction:column;gap:7px}.audit-row small{text-align:start}.audit-row small br{display:none}.guest main{padding:28px 18px}.guest .topbar{padding:13px 16px}.guest .brand{font-size:18px}.guest .topbar-actions{gap:0}.language-form{gap:4px}.language-form select{font-size:11px;max-width:104px;padding:6px}.language-form .btn{font-size:10px;padding:7px}.logout{font-size:11px;padding:7px}.login-intro h1{font-size:30px}.login-panel{padding:23px}.login-panel h2{font-size:24px}.login-links{font-size:11px}.environment{line-height:1.35}.empty-state{padding:30px 20px;margin:15px 0}footer{padding:8px 18px 23px;font-size:9px}.quiet-note{margin-top:18px}.membership-row>div{min-width:100%;flex-basis:100%}.guest .environment{padding-inline:16px}}

.role-field legend{font-size:13px;font-weight:600;margin-bottom:10px}.role-field label{font-weight:400}.resident-apartments{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:760px}

.section-tabs{display:flex;flex-wrap:wrap;gap:8px 18px;margin:22px 0 26px;border-bottom:1px solid var(--line);padding-bottom:15px}.section-tabs a{padding:5px 0;min-height:36px}.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-block:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.card-grid>.panel{min-width:0}.table-scroll{max-width:100%;overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th,.data-table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:start}.data-table th{font-size:12px;color:var(--muted);font-weight:600}.data-table tbody tr:last-child td{border-bottom:0}.list-row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.list-row:last-child{border:0}.list-row>div{flex:1;min-width:170px}.list-row small{display:block;color:var(--muted);margin-top:5px}.list-row p{margin:6px 0;overflow-wrap:anywhere}.big-money{font-size:30px;font-weight:700;display:block;margin:14px 0;overflow-wrap:anywhere}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px;align-items:end}.filter-grid .field{margin:10px 0}.filter-grid .notice{grid-column:1/-1}.formula{line-height:2.1}.service-card h2{overflow-wrap:anywhere}.stat strong{font-size:clamp(20px,2.6vw,40px);overflow-wrap:anywhere}.data-table bdi,.list-row bdi{white-space:nowrap}.field select[multiple]{min-height:150px}.panel summary{cursor:pointer;min-height:44px;font-weight:600} .sidebar nav{overflow:auto;min-height:0}.sidebar-foot{flex-shrink:0}.form-panel .button-row{margin-top:20px}@media(max-width:520px){.list-row{align-items:flex-start;gap:10px}.list-row>div{flex-basis:100%;min-width:0}.list-row .button-row{flex-basis:100%}.section-tabs{font-size:13px}.big-money{font-size:28px}.stat strong{font-size:27px}.data-table td,.data-table th{padding:12px 10px}}

.notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;color:var(--ink,#234344);text-decoration:none}
#notification-count{position:absolute;inset-block-start:0;inset-inline-end:-3px;background:#b84331;color:white;border-radius:14px;padding:1px 5px;font-size:11px;font-weight:700}
.notification-row.unread{border-inline-start:3px solid #22694f;padding-inline-start:12px}
@media(max-width:400px){.topbar{padding-inline:12px}.topbar-actions{gap:4px}.notification-bell{min-width:32px}.language-form select{max-width:78px}}

.camera-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}
.camera-tile{background:#fff;border:1px solid #dce6df;border-radius:18px;overflow:hidden;min-width:0}
.camera-header,.camera-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;flex-wrap:wrap}
.camera-header h2{font-size:1.1rem;margin:0}.camera-picture{background:#172b30;min-height:200px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column}
.camera-picture img{width:100%;max-height:65vh;object-fit:contain}.camera-status{color:#fff;padding:12px;margin:0;font-size:.85rem}
.camera-tile:fullscreen,.camera-expanded{background:#172b30;color:#fff;display:flex;flex-direction:column;overflow:auto}
.camera-expanded{position:fixed;inset:0;z-index:9999;border-radius:0}.camera-tile:fullscreen .camera-picture,.camera-expanded .camera-picture{flex:1}
.camera-tile:fullscreen img,.camera-expanded img{max-height:75vh}
