:root{color:#2d2023;font-synthesis:none;background:#fff8f8;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:2px;outline:3px solid #bc3449}.shell{grid-template-columns:258px minmax(0,1fr);min-height:100vh;display:grid}.shell>aside{z-index:7;background:linear-gradient(#fff 0%,#fffafb 100%);border-right:1px solid #eddde0;flex-direction:column;gap:14px;height:100vh;padding:18px 14px 14px;display:flex;position:sticky;top:0}.sidebar-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.brand{color:#922034;align-items:center;gap:10px;font-size:18px;font-weight:800;line-height:1.25;display:flex}.brand svg{color:#ad1e36;background:#fee8ec;border-radius:13px;flex:none;width:42px;height:42px;padding:8px}.sidebar-user{background:#fff7f8;border:1px solid #f0dfe3;border-radius:13px;align-items:center;gap:10px;min-width:0;padding:11px;display:flex}.sidebar-user>span{color:#fff;background:#a81d36;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.sidebar-user>div{gap:2px;min-width:0;display:grid}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.sidebar-user small{color:#8d2337;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:800}.shell>aside nav{overscroll-behavior:contain;scrollbar-width:thin;flex:1;align-content:start;gap:14px;min-height:0;padding-right:2px;display:grid;overflow-y:auto}.nav-group{gap:3px;display:grid}.nav-group>p{color:#9a7a80;letter-spacing:.12em;text-transform:uppercase;margin:0 0 3px;padding:0 11px;font-size:10px;font-weight:800}.shell>aside nav button,.sign-out{color:#554447;text-align:left;background:0 0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-weight:650;display:flex}.shell>aside nav button:hover,.shell>aside nav button.active,.sign-out:hover{color:#a61f37;background:#fee9ec}.shell>aside nav button.active{font-weight:800;box-shadow:inset 3px 0 #b21f3a}.shell>aside nav button svg,.sign-out svg{flex:none;width:18px;height:18px}.sign-out{border-top:1px solid #f0e1e4;border-radius:0;margin-top:auto;padding-top:14px}.nav-close,.nav-toggle,.nav-backdrop{display:none}.shell main{width:100%;min-width:0;max-width:1220px;margin:0 auto;padding:24px 30px 50px}.shell main>header{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff8f8ef;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin:-14px 0 18px;padding:14px 0;display:grid;position:sticky;top:0}.page-heading{min-width:0}.page-heading h1{overflow-wrap:anywhere;margin:0}.page-heading p{color:#745d62;margin:3px 0 0;font-size:13px}.header-bell{color:#952039;background:#fff;border:1px solid #ead8dc;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.header-bell:hover{background:#fee9ec}header small{color:#a61f37;letter-spacing:.08em;font-weight:800}h1,h2,h3{margin:0 0 12px;line-height:1.3}h1{font-size:clamp(22px,3vw,32px)}h2{font-size:20px}h3{margin-top:22px;font-size:16px}p{line-height:1.5}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.card,section,.panel{background:#fff;border:1px solid #efdee2;border-radius:16px;box-shadow:0 2px 12px #8c1d2c0b}.card{align-content:start;gap:9px;min-width:0;padding:18px;display:grid}.card small,.muted{color:#705d61}.card b{overflow-wrap:anywhere;font-size:clamp(21px,2.5vw,29px)}.card.warn b,.due{color:#a62732}.card.ok b{color:#8e2336}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.section-heading h2{margin-bottom:3px}.section-heading p{margin:0}.section-heading>.link{flex:none;margin-top:5px;font-weight:750}.dashboard-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dashboard-actions button{color:#96203a;text-align:left;background:#fff8f9;border:1px solid #ead0d6;border-radius:12px;padding:17px 14px;font-weight:750;transition:background .15s,border-color .15s}.dashboard-actions button:hover{background:#fee9ed;border-color:#d898a5}.notice{color:#76243a;background:#fff1f4;border:1px solid #eac6cf;border-radius:12px;padding:13px 16px}section{min-width:0;margin-bottom:16px;padding:20px;overflow-x:auto}.panel{margin-bottom:14px;padding:0 18px}.panel summary{cursor:pointer;color:#9d1e35;padding:17px 2px;font-weight:700}.panel[open] summary{border-bottom:1px solid #f0e4e7}.panel>section{box-shadow:none;border:0;margin:0;padding:18px 0}.table-scroll{max-width:100%;max-height:310px;overflow:auto}section>.table-scroll{max-height:55vh}table{border-collapse:collapse;width:100%;min-width:460px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #f0e5e7;padding:12px 10px}th{color:#5d4349;font-size:13px}.table-scroll th{z-index:1;background:#fff;position:sticky;top:0}.rent-grid{max-height:540px}.rent-grid table{min-width:690px}.rent-grid th:first-child{min-width:180px}.rent-grid-cell{text-align:center}.rent-check{color:#0000;border:2px solid #c9b6b8;border-radius:7px;place-items:center;width:25px;height:25px;display:inline-grid}.rent-check.paid{color:#fff;background:#198055;border-color:#198055;font-size:18px;font-weight:800}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}label{gap:6px;min-width:0;font-weight:650;display:grid}input,select,textarea{color:#2d2023;background:#fff;border:1px solid #d8c6ca;border-radius:10px;width:100%;min-width:0;padding:11px 12px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#b3223c}.full-width{grid-column:1/-1}.payment-total{background:#fffafb;border:1px solid #ead8dc;border-radius:10px;margin:0;padding:12px 14px}.primary,.danger{border-radius:10px;align-self:end;padding:12px 17px;font-weight:700}.primary{color:#fff;background:#a81d36}.primary:hover{background:#86162b}.danger{color:#a21c33;background:#fff;border:1px solid #bd3b50}.danger:hover:not(:disabled){background:#fff0f2}.link,.tenant-name{color:#981c33;text-underline-offset:3px;text-align:left;background:0 0;padding:2px 0;text-decoration:underline}.link:hover,.tenant-name:hover{color:#6f1022}.tenant-name{font-weight:700}.login{background:linear-gradient(135deg,#a51f37 0%,#fff4f5 82%);place-items:center;min-height:100vh;padding:18px;display:grid}.login-card{background:#fff;border-radius:22px;width:min(440px,100%);padding:30px;box-shadow:0 24px 70px #60172230}.login-card .brand{margin-bottom:25px}.server-status{color:#84243b;background:linear-gradient(110deg,#fff2f4,#fffafd);border:1px solid #f1d9de;border-radius:13px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;padding:12px 14px;font-size:13px;font-weight:650;line-height:1.4;display:flex}.server-status>span{background:#b92e4a;border-radius:50%;flex:none;width:9px;height:9px;animation:2s ease-in-out infinite loading-pulse;box-shadow:0 0 0 4px #f8d9e0}.server-status.ready{color:#226443;background:#f0faf5;border-color:#cde9da}.server-status.ready>span{background:#2d9662;animation:none;box-shadow:0 0 0 4px #cef0dc}.server-status.unavailable{color:#8f2536;background:#fff0f1}.server-status.unavailable>span{background:#ad253d;animation:none;box-shadow:0 0 0 4px #f7ccd4}.server-status button{font-size:13px}.public-vote{width:min(560px,100%)}.public-vote section{box-shadow:none;background:snow;margin:18px 0 14px}.vote-success{color:#198754;width:52px;height:52px;margin:4px 0 18px;display:block}.login form{gap:14px;display:grid}.login p{color:#6c565b}.login-links{border-top:1px solid #efdee2;gap:10px;margin-top:22px;padding-top:18px;display:grid}.login-links .link{text-align:center;background:#fff9fa;border:1px solid #e5cbd1;border-radius:10px;width:100%;padding:10px 12px;font-weight:700;text-decoration:none;display:block}.login-links .link:hover{background:#feecef}.error{color:#9e152c;background:#fff0f1;border:1px solid #f3c9d0;border-radius:10px;margin:10px 0;padding:12px}.owner-notice{color:#76520a;background:#fff8e8;border:1px solid #ecd49b;border-radius:11px;margin:12px 0;padding:12px 14px}.center{place-items:center;min-height:100vh;display:grid}.loading-page,.loading-inline{text-align:center;color:#48272e;flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex}.loading-page{background:radial-gradient(circle at 50% 35%,#fff 0%,#fff2f4 55%,#fce4e9 100%);min-height:100dvh;padding:32px 22px}.loading-inline{background:linear-gradient(145deg,#fff9fa,#fff1f4);border:1px solid #f1dbe0;border-radius:17px;padding:23px 18px}.loading-page strong{font-size:clamp(20px,4vw,27px)}.loading-inline strong{font-size:16px}.loading-page p,.loading-inline p{color:#6e5960;max-width:360px;margin:0;line-height:1.5}.loading-mark{background:linear-gradient(135deg,#fff,#fff0f3);border:1px solid #ebc4cc;border-radius:20px;place-items:center;width:72px;height:72px;margin:5px 0 15px;display:grid;position:relative;box-shadow:0 12px 30px #a81d3620}.loading-mark>svg{color:#a81d36;width:30px;height:30px}.loading-orbit{border:3px solid #b3253f;border-color:#b3253f #e6a3af #0000 #0000;border-radius:50%;animation:1.4s linear infinite loading-rotate;position:absolute;inset:-10px}.loading-cancel{color:#8c1d32;background:#fff;border:1px solid #b3253f;border-radius:10px;margin-top:8px;padding:10px 14px;font-weight:700}.loading-track{background:#f1dbe0;border-radius:10px;width:min(240px,75%);height:5px;margin-top:10px;overflow:hidden}.loading-track span{background:linear-gradient(90deg,#c83651,#922034);border-radius:10px;width:35%;height:100%;animation:1.8s ease-in-out infinite alternate loading-sweep;display:block}.loading-error{color:#8c1d32;background:#fff;border:1px solid #efc5cd;border-radius:12px;max-width:370px;padding:14px}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-sweep{to{transform:translate(190%)}}@keyframes loading-pulse{50%{box-shadow:0 0 0 7px #f8d9e0}}@media (prefers-reduced-motion:reduce){.loading-orbit,.loading-track span,.server-status>span{animation:none}.loading-orbit{border-color:#e6a3af}}.empty{text-align:center;color:#775e63;padding:25px}.empty svg{margin:0 auto 10px;display:block}.empty b{color:#5a2730}.activity-list{gap:12px;display:grid}.activity-list article{border:1px solid #f0e0e4;border-radius:12px;padding:15px}.activity-list.past article{background:snow;padding:13px 15px}.activity-list.past h3{margin:5px 0 3px}.history-meta{color:#5e484d;overflow-wrap:anywhere;margin:6px 0}.vote-summary{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.vote-summary span{color:#7d1c32;background:#fcecef;border-radius:8px;padding:6px 10px}.date{color:#a21c33;font-size:13px;font-weight:800}.poll{gap:8px;margin-top:14px;display:grid}.poll button{text-align:left;background:snow;border:1px solid #d8c6ca;border-radius:10px;padding:11px}.poll button.chosen{background:#fce8ec;border-color:#b3223c}.vote-details{border-top:1px solid #f0e0e4;margin-top:10px;padding-top:12px}.vote-details summary{cursor:pointer;color:#981c33;font-weight:700}.tenant-details{grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:10px 20px;max-width:680px;margin:20px 0;display:grid}.tenant-details dt{color:#5e484d;font-weight:700}.tenant-details dd{overflow-wrap:anywhere;margin:0}.profile-photo{object-fit:cover;border:1px solid #efdee2;border-radius:14px;width:140px;height:140px;margin:14px 0;display:block}.payment-tabs{margin-bottom:14px}.payment-tabs button[aria-pressed=true]{color:#fff;background:#a81d36}.tenant-filters{flex-wrap:wrap;align-items:end;gap:15px;margin:14px 0;display:flex}.csv-download{flex-wrap:wrap;align-items:end;gap:10px;margin:14px 0 18px;display:flex}.csv-download label{width:min(260px,100%)}.tenant-search{width:min(360px,100%)}.checkbox{white-space:nowrap;align-items:center;gap:8px;padding:11px 0;display:flex}.checkbox input{accent-color:#a81d36;width:auto}.year-picker{width:min(260px,100%);margin:10px 0}.profile-actions{border-top:1px solid #efdee2;margin-top:24px;padding-top:20px}.profile-actions p{color:#9d2439}.danger-zone{background:#fff8f8;border:2px solid #c92c43}.danger-zone h2{color:#981c33}.reset-options{background:#fff;border:1px solid #e4c4ca;border-radius:11px;gap:4px;margin:0;padding:12px 14px;display:grid}.reset-options legend{color:#7d1c32;padding:0 6px;font-weight:800}.reset-options .checkbox{white-space:normal;padding:7px 0}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{color:#971b31;background:#fbe8eb;border-radius:8px;padding:9px 13px;font-weight:700}.month-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.month-card{background:snow;border:1px solid #efdee2;border-radius:14px;padding:17px}.month-card-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.month-card-head h3{margin:0}.month-card-head strong{color:#981c33;white-space:nowrap}.progress{background:#efdfe3;border-radius:999px;height:9px;margin:14px 0;overflow:hidden}.progress span{border-radius:inherit;background:#a81d36;height:100%;display:block}.month-card dl{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;margin:14px 0 0;display:grid}.month-card dt{color:#6c565b}.month-card dd{text-align:right;margin:0;font-weight:800}.month-details{border-top:1px solid #efdee2;margin-top:16px;padding-top:12px}.month-details summary{cursor:pointer;color:#981c33;font-weight:800}.month-details ul{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.month-details li{background:#fff;border-radius:8px;justify-content:space-between;gap:12px;padding:8px;display:flex}.month-details li span{overflow-wrap:anywhere}.month-details li strong{text-align:right;color:#6d2734}.hierarchy-page{background:linear-gradient(145deg,#fff 0%,#fff7f8 100%);overflow:visible}.hierarchy-intro{border-bottom:1px solid #efdde1;justify-content:space-between;align-items:center;gap:18px;padding:4px 2px 22px;display:flex}.hierarchy-intro small,.hierarchy-level-heading small{color:#a51f37;letter-spacing:.13em;font-size:10px;font-weight:900}.hierarchy-intro h2{margin:5px 0;font-size:clamp(23px,3vw,32px)}.hierarchy-intro p{color:#705d61;margin:0}.hierarchy-total{color:#fff;background:#9d1d35;border-radius:14px;grid-template-columns:auto auto;align-items:center;gap:0 8px;min-width:145px;padding:13px 16px;display:grid;box-shadow:0 9px 24px #7813282a}.hierarchy-total svg{grid-row:1/3;width:28px}.hierarchy-total b{font-size:25px;line-height:1}.hierarchy-total span{opacity:.88;font-size:11px}.hierarchy-tree{gap:28px;padding:28px 0 4px;display:grid;position:relative}.hierarchy-tree:before{content:"";background:linear-gradient(#8f172e,#f2cbd3);border-radius:3px;width:3px;position:absolute;top:28px;bottom:50px;left:31px}.hierarchy-level{padding-left:74px;position:relative}.hierarchy-level:not(:last-child):after{content:"";background:#e8b6c0;width:3px;height:28px;position:absolute;bottom:-28px;left:31px}.hierarchy-level-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-bottom:13px;display:grid;position:relative}.hierarchy-level-heading>span{color:#fff;background:#a51f37;border:4px solid #fff;border-radius:50%;place-items:center;width:43px;height:43px;display:grid;position:absolute;left:-63px;box-shadow:0 0 0 2px #e6adb8}.hierarchy-level-heading svg{width:19px}.hierarchy-level-heading h3{margin:2px 0;font-size:19px}.hierarchy-level-heading p{color:#705d61;margin:0;font-size:13px}.hierarchy-level-heading>b{color:#8f1b31;background:#f8e4e8;border-radius:999px;place-items:center;min-width:38px;height:30px;display:grid}.hierarchy-people{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.hierarchy-person{background:#fff;border:1px solid #ecdadd;border-radius:13px;align-items:center;gap:11px;min-width:0;padding:13px;display:flex;box-shadow:0 3px 12px #77152a0a}.hierarchy-person:hover{transform:translateY(-1px);box-shadow:0 8px 22px #77152a12}.hierarchy-avatar{color:#8f1a31;background:#f8dfe4;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.hierarchy-person-copy{gap:2px;min-width:0;display:grid}.hierarchy-person-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hierarchy-person-copy span{color:#8f1d33;font-size:12px;font-weight:700}.hierarchy-person-copy small{color:#746166;font-size:11px}.hierarchy-owner .hierarchy-person{background:linear-gradient(135deg,#fff,#fff2f4);border-color:#d99aa7}.hierarchy-owner .hierarchy-avatar{color:#fff;background:#971b32}.hierarchy-tenant_admin .hierarchy-level-heading>span{background:#bc3650}.hierarchy-admin .hierarchy-level-heading>span{background:#d65c72}.hierarchy-tenant .hierarchy-level-heading>span{background:#e58b9b}.hierarchy-empty{color:#7d696d;background:snow;border:1px dashed #dfc1c7;border-radius:12px;margin:0;padding:13px}@media (width<=900px){.shell{grid-template-columns:220px minmax(0,1fr)}.shell main{padding:18px}.cards{gap:10px}.card{padding:14px}.brand{font-size:15px}}@media (width<=720px){.shell{display:block}.shell>aside{width:min(300px,86vw);height:100dvh;transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 35px #54101f28}.shell>aside.nav-open{transform:translate(0)}.nav-close{color:#981c33;background:#fff0f2;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;display:grid}.nav-close svg{width:20px;height:20px}.nav-toggle{color:#952039;background:#fff;border:1px solid #ead8dc;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.nav-backdrop{z-index:6;background:#2d111766;border:0;border-radius:0;display:block;position:fixed;inset:0}.shell>aside nav{white-space:normal;display:grid;overflow:hidden auto}.shell main{padding:16px 12px 32px}.shell main>header{grid-template-columns:auto minmax(0,1fr) auto;margin:-8px -2px 15px;padding:10px 2px}.page-heading h1{font-size:20px}.page-heading p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cards{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.dashboard-actions{grid-template-columns:1fr}.section-heading{flex-wrap:wrap}.grid-form{grid-template-columns:1fr}section{padding:15px}.tenant-details{grid-template-columns:1fr;gap:2px;margin:14px 0}.tenant-details dd{margin-bottom:10px}.hierarchy-intro{align-items:flex-start}.hierarchy-total{min-width:126px;padding:11px}.hierarchy-tree:before{left:21px}.hierarchy-level{padding-left:52px}.hierarchy-level:not(:last-child):after{left:21px}.hierarchy-level-heading>span{width:40px;height:40px;left:-51px}.hierarchy-people{grid-template-columns:1fr}}@media (width<=460px){.hierarchy-intro{display:grid}.hierarchy-total{width:100%}.hierarchy-level-heading{grid-template-columns:minmax(0,1fr) auto}.hierarchy-level-heading>span,.hierarchy-tree:before,.hierarchy-level:not(:last-child):after{display:none}.hierarchy-level{padding-left:0}}.password-field{display:block;position:relative}.password-field input{width:100%;padding-right:3rem}.password-toggle{width:2.35rem;height:2.35rem;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-toggle svg{width:1.15rem;height:1.15rem}.notification-options{flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.notification-options .checkbox{background:#fffafb;border:1px solid #f0dfe3;border-radius:10px;align-items:center;gap:10px;width:100%;min-height:44px;margin:0;padding:10px 12px;line-height:1.35;display:flex}.notification-options .checkbox input{flex:none;width:18px;height:18px;margin:0}.recipient-card{background:#fff;border:1px solid #ead8dc;border-radius:14px;margin-top:1rem;padding:1rem}.recipient-card>div:first-child{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.email-update-list{gap:1rem;margin-top:1rem;display:grid}.email-update-list .recipient-card{margin-top:0}.recipient-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.recipient-heading span{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:.9rem;display:block}.notification-options .disabled-option{color:#8b8083;cursor:not-allowed;background:#f5f2f3}.notification-options .checkbox span{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.notification-options .checkbox span small{color:var(--red);white-space:nowrap;font-weight:700}.past-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;margin:20px 0;display:grid}.past-person{text-align:left;flex-direction:column;align-items:flex-start;gap:7px;min-height:75px;padding:16px;display:flex}.past-person span{color:var(--muted,#685e60);font-size:.9rem}.past-person:disabled{cursor:default;opacity:1}.passkey-signin{gap:.5rem;margin:1.2rem 0;display:grid}.passkey-signin button,.passkey-list button{color:#8f1833;cursor:pointer;background:#fff;border:1px solid #a6203c;border-radius:.65rem;padding:.65rem 1rem}.passkey-list{padding:0;list-style:none}.passkey-list li{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.passkey-list small{color:#777;display:block}.bank-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px}
