@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#20221f;font-synthesis:none;--ink:#20221f;--muted:#6e716b;--line:#dedfd8;--green:#315c47;--pale:#e8eee9;background:#f5f5f1;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #9ab5a5}header{border-bottom:1px solid var(--line);z-index:5;background:#fff;justify-content:space-between;align-items:center;height:68px;padding:0 max(24px,50vw - 560px);display:flex;position:sticky;top:0}.brand{cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;font:700 17px Manrope;display:flex}.brand-mark{width:38px;height:38px;color:var(--green);flex:none}.brand-name{letter-spacing:-.02em;white-space:nowrap;font:800 19px Manrope}.brand-name b{font-weight:inherit;color:#e0a416}.auth-intro .brand,.auth-intro .brand-mark{color:#fff}.auth-intro .brand-name b{color:#f6b92b}.account{align-items:center;gap:12px;font-size:14px;display:flex}.icon{cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px}.icon:hover{background:#eee}main{max-width:1120px;margin:0 auto;padding:48px 24px 80px}h1,h2,h3,h4{margin-top:0;font-family:Manrope,sans-serif}h1{letter-spacing:-.04em;margin-bottom:8px;font-size:clamp(30px,4vw,44px)}h2{letter-spacing:-.025em}.eyebrow{letter-spacing:.15em;color:var(--green);margin:0 0 10px;font-size:11px;font-weight:700}.muted{color:var(--muted);margin-top:0}.page-head,.property-title{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;display:flex}.primary,.secondary{cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-weight:700;display:inline-flex}.primary{background:var(--green);color:#fff}.primary:hover{background:#244b38}.primary.compact{padding:10px 14px}.secondary{background:#ebede7;border:1px solid #d6d9d1}.secondary:hover{background:#e2e5de}.property-list{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.property-row{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:#fff;grid-template-columns:1fr auto 24px;align-items:center;gap:30px;width:100%;padding:24px;display:grid}.property-row:last-child{border:0}.property-row:hover{background:#fafaf7}.property-row h2{margin:9px 0 3px;font-size:20px}.property-row p{color:var(--muted);margin:0}.row-meta{text-align:right;flex-direction:column;display:flex}.row-meta span{color:var(--muted);font-size:13px}.pill{background:#f0f1ed;border-radius:20px;padding:4px 8px;font-size:11px;font-weight:700}.pill.active{color:#28533d;background:#e4eee8}.pill.completed{color:#555;background:#e9e9e6}.back,.link{cursor:pointer;color:var(--green);background:0 0;border:0;padding:0;font-weight:700}.back{align-items:center;gap:6px;margin-bottom:24px;display:flex}.summary{color:#fff;background:#26302a;border-radius:12px;grid-template-columns:2fr 1fr 1fr;margin:30px 0 38px;display:grid}.summary>div{border-right:1px solid #465049;flex-direction:column;gap:7px;padding:24px;display:flex}.summary>div:last-child{border:0}.summary span{color:#c7cec9;font-size:12px}.summary strong{font-size:19px}.track,.mini-track{background:#5a635d;border-radius:5px;height:5px;margin-top:4px;overflow:hidden}.track i,.mini-track i{background:#b9d0c1;height:100%;display:block}.section-title{margin:0 0 14px;font-size:18px}.room-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.room-card{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:1fr auto;align-items:start;min-height:135px;padding:20px;display:grid}.room-card:hover{border-color:#adb5ad}.room-card h3{margin:0 0 4px}.room-card p{color:var(--muted);margin:0}.mini-track{background:#e5e7e1;grid-column:1/-1;margin-top:25px}.mini-track i{background:var(--green)}.activity-action{margin-top:40px}.activity-head{margin-bottom:20px}.activity{border:1px solid var(--line);background:#fff;border-radius:10px;padding:4px 20px}.activity p{border-bottom:1px solid #eee;gap:4px;margin:0;padding:12px 0;font-size:14px;display:flex}.activity p:last-child{border:0}.activity span{color:var(--muted);margin-left:auto}.panel{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:18px;padding:22px}.panel>h2{margin-bottom:18px;font-size:18px}.job{border-top:1px solid #e5e6e1}.job:first-of-type{border-top:0}.job-main{align-items:center;gap:12px;padding:14px 2px;display:flex}.check{cursor:pointer;color:#fff;background:#fff;border:2px solid #aeb2ac;border-radius:6px;place-items:center;width:24px;height:24px;display:grid}.job-done .check{background:var(--green);border-color:var(--green)}.job-name{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:3px;display:flex}.job-name span{color:var(--muted);font-size:12px}.job-done .job-name strong{color:#777;text-decoration:line-through}.job-main select{width:130px}.job-detail{background:#f7f8f4;border-radius:8px;margin-bottom:12px;padding:18px}.cost-fields,.form-row{align-items:end;gap:12px;display:flex}.cost-fields label,.form-row label{flex:1}.job-extras{grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;display:grid}.job-extras h4{margin-bottom:10px}.two-col{grid-template-columns:1fr 1fr;gap:18px;display:grid}label{flex-direction:column;gap:7px;margin-bottom:17px;font-size:13px;font-weight:700;display:flex}input,select{height:42px;color:var(--ink);background:#fff;border:1px solid #cfd2cb;border-radius:7px;padding:0 11px}form>.primary{width:100%;margin-top:5px}.optional{color:var(--muted);font-weight:400}.inline-form{gap:8px;margin-top:15px;display:flex}.inline-form input{flex:1}.comments>div{border-left:2px solid #ccd5cd;margin:12px 0;padding-left:12px}.comments strong{font-size:13px}.comments strong span{color:var(--muted);font-weight:400}.comments p{white-space:pre-wrap;margin:4px 0;font-size:14px}.files{flex-direction:column;display:flex}.files a{color:inherit;border-bottom:1px solid #e7e8e4;align-items:center;gap:9px;padding:10px 0;text-decoration:none;display:flex}.files a:hover strong{text-decoration:underline}.files span{min-width:0}.files strong,.files small{text-overflow:ellipsis;display:block;overflow:hidden}.files small{color:var(--muted);margin-top:2px;font-size:11px}.upload{grid-template-columns:110px 1fr auto;align-items:center;gap:8px;margin-top:15px;display:grid}.upload input[type=file]{padding:8px;font-size:12px}.empty{text-align:center;color:var(--muted);background:#fff;border:1px dashed #cbd0c8;border-radius:12px;padding:55px 20px}.empty h2{color:var(--ink);margin:15px 0 7px;font-size:20px}.modal-back{z-index:20;background:#1c211dd1;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:min(500px,100%);padding:24px;box-shadow:0 22px 70px #0004}.modal>div:first-child{justify-content:space-between;display:flex}.modal h2{font-size:21px}.modal .icon{font-size:25px}.auth-shell{grid-template-columns:1.1fr .9fr;min-height:100vh;display:grid}.auth-intro{color:#fff;background:#26352d;flex-direction:column;justify-content:center;padding:55px max(40px,8vw);display:flex;position:relative}.auth-intro .brand{position:absolute;top:38px}.auth-intro h1{max-width:650px;font-size:clamp(48px,7vw,84px);line-height:1}.auth-intro p{color:#c9d1cc;max-width:450px;font-size:19px}.auth-card{background:#fff;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,120px);display:flex}.auth-card h2{margin-bottom:8px;font-size:30px}.auth-links{justify-content:space-between;margin-top:20px;font-size:13px;display:flex}.error,.success{border-radius:7px;margin-bottom:18px;padding:12px 14px;font-size:14px}.error{color:#8b3026;background:#f8e9e6}.success{color:#285b39;background:#e6f1e9}.center{text-align:center;height:100vh;color:var(--muted);place-content:center;display:grid}.center .loading-mark{width:72px;height:72px;color:var(--green);margin:auto}.loading-mark path{stroke-dasharray:100;animation:2.4s ease-in-out 2 forwards draw}@keyframes draw{0%{stroke-dashoffset:100px}50%{stroke-dashoffset:0}to{stroke-dashoffset:-100px}}@media (width<=760px){header{padding:0 16px}.account>span{display:none}main{padding:30px 16px 60px}.page-head,.property-title{align-items:flex-start}.page-head .primary,.property-title .primary{white-space:nowrap}.property-row{grid-template-columns:1fr 20px;gap:12px}.row-meta{display:none}.summary{grid-template-columns:1fr 1fr}.summary>div:first-child{border-bottom:1px solid #465049;grid-column:1/-1}.summary>div:nth-child(2){border-bottom:0}.room-grid{grid-template-columns:1fr 1fr}.two-col,.job-extras,.upload,.auth-shell{grid-template-columns:1fr}.auth-intro{display:none}.auth-card{min-height:100vh;padding:30px}.activity p{display:block}.activity span{margin:5px 0 0;display:block}.job-main select{width:105px}.cost-fields{flex-direction:column;align-items:stretch}.cost-fields label{width:100%}}@media (width<=480px){.room-grid{grid-template-columns:1fr}.page-head,.property-title{display:block}.page-head .primary,.property-title .primary{margin-top:18px}.summary{grid-template-columns:1fr}.summary>div{border-bottom:1px solid #465049;border-right:0}.summary>div:first-child{grid-column:auto}.form-row{display:block}.job-main{align-items:flex-start}.job-main select{width:96px;font-size:12px}.inline-form{flex-direction:column}}.property-status{color:#28533d;background:#e4eee8;border:0;border-radius:20px;width:auto;height:auto;margin-bottom:9px;padding:4px 24px 4px 8px;font-size:11px;font-weight:700}.title-actions{gap:9px;display:flex}.secondary.compact{padding:9px 13px}.access-panel{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:38px;padding:20px}.access-panel>div:first-child{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.access-panel .section-title{margin:0}.person-row{border-top:1px solid #eee;justify-content:space-between;align-items:center;padding:12px 2px;display:flex}.person-row span,.person-row small{display:block}.person-row small{color:var(--muted);margin-top:3px}.danger{color:#9b3c32}.people-fields{border:1px solid var(--line);border-radius:8px;margin:4px 0 17px;padding:15px}.people-fields legend{padding:0 5px;font-size:13px;font-weight:700}.person-fields{grid-template-columns:1fr 1.25fr 34px;gap:7px;margin-bottom:8px;display:grid}.add-person{align-items:center;gap:5px;margin-top:4px;display:flex}@media (width<=480px){.title-actions{margin-top:18px}.person-fields{grid-template-columns:1fr 34px}.person-fields input:nth-child(2){grid-column:1/2}.person-fields .icon{grid-area:1/2/3}}.property-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:28px;display:grid}.property-main{min-width:0}.visits-panel{border:1px solid var(--line);background:#fff;border-radius:12px;position:sticky;top:92px;overflow:hidden}.visits-head{border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:8px;padding:18px;display:flex}.visits-toggle{text-align:left;pointer-events:none;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:0;font:700 18px Manrope;display:flex}.visits-toggle svg{display:none}.visit-add{align-items:center;gap:4px;font-size:13px;display:flex}.visits-body{padding:0 12px 12px}.visits-empty{margin:14px 6px 3px;font-size:13px}.visit{border-bottom:1px solid #e8e9e5}.visit:last-child{border-bottom:0}.visit.completed,.visit.cancelled{opacity:.68}.visit-summary{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:3px;width:100%;padding:14px 22px 14px 6px;display:flex;position:relative}.visit-summary:hover{background:#fafaf7}.visit-summary strong{font-family:Manrope,sans-serif;font-size:14px;line-height:1.25}.visit-summary>span:last-of-type{color:var(--muted);font-size:12px}.visit-summary svg{color:var(--muted);transition:transform .18s;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.visit.expanded .visit-summary svg{transform:translateY(-50%)rotate(180deg)}.visit-date{text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--green)!important;font-size:11px!important}.visit-detail{padding:2px 6px 16px}.visit-main p{margin:8px 0;font-size:12px}.visit small{color:var(--muted);margin-top:7px;font-size:11px;display:block}.visit-notes{white-space:pre-wrap}.visit-actions{flex-direction:column;gap:8px;margin-top:13px;display:flex}.visit-actions select{width:100%}.quote-upload{flex-direction:column;gap:7px;display:flex}.quote-upload input{width:100%;padding:8px;font-size:11px}.visit-quotes{background:#f7f8f4;border-radius:7px;margin-top:12px;padding:0 9px}.visit-comments{border-top:1px solid #eee;margin-top:13px;padding-top:13px}.visit-comments h4{margin:0 0 8px;font-size:13px}textarea{font:inherit;color:var(--ink);resize:vertical;background:#fff;border:1px solid #cfd2cb;border-radius:7px;padding:10px 11px}textarea:focus-visible{outline-offset:2px;outline:3px solid #9ab5a5}@media (width<=900px){.property-layout{flex-direction:column;gap:24px;display:flex}.property-main,.visits-panel{width:100%}.visits-panel{order:-1;position:static}.visits-head{flex-direction:row;align-items:center;padding:15px 17px}.visits-toggle{pointer-events:auto}.visits-toggle svg{transition:transform .18s;display:block}.panel-open .visits-toggle svg{transform:rotate(180deg)}.visits-body{display:none}.panel-open .visits-body{display:block}.panel-open .visits-head{border-bottom:1px solid var(--line)}.visits-head{border-bottom:0}.visit-add{white-space:nowrap}.visit-summary{padding-left:6px}.visit-actions{margin-top:8px}.visit-quotes,.visit-comments{grid-column:1/-1}.visit-comments .inline-form{flex-direction:row}.visit-comments .inline-form button{align-self:stretch}}@media (width<=480px){.visits-head{align-items:flex-start}.visits-toggle{font-size:16px}.visit-add{font-size:12px}}.success .resend{margin-top:9px;text-decoration:underline;display:block}.auth-links{flex-wrap:wrap;gap:12px}@media (width<=760px){main:has(.property-layout){padding-top:16px}.back:has(+.property-layout){margin-bottom:12px}.property-layout{gap:14px}.property-main .property-title{margin-bottom:14px;display:block}.property-title h1{margin-bottom:2px;font-size:28px}.property-title .muted{margin:0;font-size:14px}.property-title .property-status,.property-title .pill{margin-bottom:6px}.property-title .title-actions{margin-top:10px}.property-title .title-actions button{white-space:nowrap}.visits-head{align-items:center;padding:11px 14px}.property-main .summary{border-radius:10px;grid-template-columns:1fr 1fr;margin:0 0 20px}.property-main .summary>div{border:0;flex-direction:row;align-items:baseline;gap:6px;padding:8px 14px}.property-main .summary>div:first-child{border-bottom:0;flex-wrap:wrap;grid-column:1/-1;padding:12px 14px 6px}.property-main .summary>div:first-child span:after{content:":"}.property-main .summary>div:first-child .track{flex:0 0 100%;margin-top:2px}.property-main .summary>div:nth-child(2){padding-bottom:12px}.property-main .summary>div:last-child{border-left:1px solid #465049;padding-bottom:12px}.property-main .summary strong{font-size:15px}.property-main .summary>div:not(:first-child) strong{font-size:14px}}.progress-strip{color:#fff;background:#26302a;border-radius:10px;margin:0 0 30px;padding:12px 16px}.progress-strip p{align-items:baseline;gap:6px;margin:0;display:flex}.progress-strip span{color:#c7cec9;font-size:12px}.progress-strip strong{font-size:15px}.progress-strip .track{margin-top:8px}@media (width<=760px){.property-main .progress-strip{margin:0 0 20px;padding:10px 14px}}.file-row-actions{border-bottom:1px solid #e7e8e4;align-items:center;display:flex;position:relative}.file-row-actions>a{border-bottom:0;flex:1;min-width:0}.file-row{border-bottom:1px solid #e7e8e4;align-items:center;display:flex;position:relative}.file-row>a{border-bottom:0;flex:1;min-width:0}.file-menu summary{cursor:pointer;border-radius:7px;place-items:center;padding:7px;list-style:none;display:grid}.file-menu summary::-webkit-details-marker{display:none}.file-menu summary:hover{background:#eee}.file-menu>div{z-index:4;border:1px solid var(--line);background:#fff;border-radius:7px;width:110px;padding:4px;position:absolute;top:38px;right:0;box-shadow:0 8px 24px #0002}.file-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;width:100%;padding:8px;display:block}.file-menu button:hover{background:#f0f1ed}.file-rename,.file-confirm{align-items:center;gap:7px;width:100%;padding:7px 0;display:flex}.file-rename input{flex:1;min-width:0}.file-confirm span{flex:1;font-size:13px;font-weight:700}.cost-to-date{border:1px solid var(--line);background:var(--pale);text-align:right;white-space:nowrap;border-radius:10px;margin-left:auto;padding:8px 14px}.cost-to-date span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;display:block}.cost-to-date strong{color:var(--green);font-size:20px;display:block}@media (width>=761px){.upload:has([name=amount]){grid-template-columns:110px 140px 1fr auto}}@media (width<=760px){.property-title .cost-to-date{text-align:left;margin:10px 0 0;padding:6px 12px;display:inline-block}.cost-to-date strong{font-size:17px}}@media (width<=480px){.brand-mark{width:34px;height:34px}.brand-name{font-size:17px}}.auth-logo{cursor:default;border-bottom:3px solid #f6b92b;align-self:flex-start;margin-bottom:34px;padding:0 0 22px}.auth-logo .brand-mark{width:56px;height:56px}.auth-logo .brand-name{font-size:28px}.auth-tagline{color:var(--muted);letter-spacing:.01em;margin:-20px 0 34px;font-size:15px;font-weight:500}@media (width<=760px){.auth-card{justify-content:flex-start;min-height:100svh;padding:clamp(28px,7svh,64px) 24px 32px}.auth-card>*{width:100%;max-width:400px;margin-left:auto;margin-right:auto}.auth-logo{border-bottom:0;align-self:auto;margin-bottom:6px;padding-bottom:0}.auth-logo .brand-mark{width:44px;height:44px;margin-left:-6px}.auth-logo .brand-name{font-size:24px}.auth-tagline{margin-top:0;margin-bottom:22px;font-size:14px}.auth-tagline:after{content:"";background:#f6b92b;border-radius:2px;width:32px;height:3px;margin-top:12px;display:block}.auth-card .eyebrow{margin-bottom:6px}.auth-card h2{margin-bottom:4px;font-size:26px}.auth-card>.muted{margin-bottom:20px}.auth-card label{margin-bottom:12px}.auth-card form>.primary{height:46px;margin-top:4px}.auth-links{justify-content:space-between;align-items:center;margin-top:14px}}.title-edit,.quick-info,.mobile-add{display:none}@media (width<=760px){.property-layout{gap:0}.property-main{display:contents}.visits-panel{order:1;margin-bottom:18px}.property-main>.section-title,.property-main>.room-grid,.property-main>.empty,.access-panel,.activity-action{order:2}.property-main .property-title{align-items:flex-start;gap:6px;margin-bottom:10px;display:flex}.property-title>div:first-child{flex:1;min-width:0}.property-title h1{letter-spacing:-.02em;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0;font-size:21px;line-height:1.25;display:-webkit-box;overflow:hidden}.property-title .muted{margin-top:2px;font-size:13px}.property-title .cost-to-date,.property-title .title-actions,.property-main .progress-strip,.visit-add{display:none}.title-edit{width:40px;height:40px;color:var(--green);flex:none;place-items:center;margin:-8px -8px 0 0;display:grid}.quick-info{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:1fr 1fr;margin-bottom:10px;padding:10px 14px;display:grid}.quick-info p{flex-direction:column;margin:0;display:flex}.quick-info p+p{border-left:1px solid var(--line);padding-left:14px}.quick-info span{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.quick-info strong{font-size:16px}.quick-info p:first-child strong{color:var(--green)}.quick-info .mini-track{height:4px;margin-top:9px}.visits-head{min-height:44px;padding:10px 14px}.visits-toggle{font-size:15px}.property-main>.section-title{margin:0 0 8px;font-size:16px}.room-grid{grid-template-columns:1fr 1fr;gap:6px}.room-card{align-items:center;column-gap:8px;min-width:0;min-height:0;padding:8px 10px 8px 12px}.room-card h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;line-height:1.25;overflow:hidden}.room-card>div{min-width:0}.room-card .done-word{display:none}.room-card p{font-size:12px;line-height:1.3}.room-card>svg{color:var(--muted);grid-area:1/2}.room-card .mini-track{grid-row:2;height:3px;margin-top:6px}.property-main>.empty{padding:28px 16px}.access-panel{margin-top:20px;padding:14px 16px}.activity-action{margin-top:16px}}.people-toggle{font:inherit;color:inherit;text-align:left;pointer-events:none;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.people-toggle svg,.people-count{display:none}@media (width<=760px){.people-toggle{pointer-events:auto;cursor:pointer;min-height:36px}.people-toggle svg{color:var(--muted);transition:transform .18s;display:block}.people-count{color:var(--muted);font-weight:500;display:inline}.people-open .people-toggle svg{transform:rotate(180deg)}.access-panel:not(.people-open)>div:first-child{margin-bottom:0}.access-panel:not(.people-open) .person-row,.access-panel:not(.people-open)>div:first-child>.secondary{display:none}}.job-state,.mobile-status{display:none}.job-main{cursor:pointer}@media (width<=760px){.job-main{align-items:center;gap:10px;padding:10px 2px}.job-main .check{flex:none}.job-name span,.job-main .desktop-status,.save-costs{display:none}.job-state{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:12px;font-style:normal;display:flex}.job-state svg{transition:transform .15s}.job-name[aria-expanded=true]~.job-state svg{transform:rotate(180deg)}.job-detail{margin-bottom:10px;padding:12px}.job-detail .mobile-status{width:100%;margin-bottom:10px;display:block}.job-detail .cost-fields{flex-direction:row;align-items:end;gap:8px}.job-detail .cost-fields label{width:auto;min-width:0;font-size:12px}.job-extras{gap:12px;margin-top:12px}.job-extras h4{margin-bottom:6px}.job-detail .inline-form{flex-direction:row;margin-top:8px}.job-detail .inline-form input{min-width:0}.job-detail .inline-form button{padding:6px 12px}.job-detail .upload{grid-template-columns:90px 1fr auto;gap:6px;margin-top:8px}.job-detail .upload select,.job-detail .upload input{min-width:0;font-size:12px}.job-detail .upload input[name=amount]{order:-1;grid-column:1/-1}.job-detail .upload button{padding:6px 10px}.visits-toggle{color:var(--green)}.property-main>.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.room-grid>.room-card{width:100%}.mobile-add{width:100%;min-height:42px;color:var(--ink);background:#ebede7;border:1px solid #d6d9d1;justify-content:center;display:flex}.mobile-add:hover{background:#e2e5de}.visits-body>.mobile-add{margin-top:10px}.room-add{order:2;margin-top:8px}.access-panel,.activity-action{width:100%}.access-panel{background:#ebede7;border:1px solid #d6d9d1;border-radius:8px;padding:4px 16px}.access-panel.people-open{padding-bottom:12px}.access-panel .section-title,.activity-action .secondary{font-size:15px}.activity-action{margin-top:10px}.activity-action .secondary{justify-content:flex-start;width:100%;min-height:46px;padding:0 16px}}html,body{-webkit-text-size-adjust:100%;max-width:100%;overflow-x:clip}#root,main{width:100%;min-width:0}.property-row{grid-template-columns:minmax(0,1fr) auto 24px}.property-row>div{min-width:0}.property-row h2,.property-row p,.page-head h1{overflow-wrap:anywhere}@media (width<=760px){.page-head>div{min-width:0}.property-row{grid-template-columns:minmax(0,1fr) 20px;padding:12px 14px}.property-row h2{margin:5px 0 1px;font-size:17px;line-height:1.3}.property-row p{font-size:14px;line-height:1.35}.property-row .pill{padding:3px 7px}}.rf-label{display:none}@media (width<=760px){.room-files .rf-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:700;display:block}.room-files .rf-add{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.room-files .files a{padding:12px 0}.room-files .upload{background:#f7f8f4;border-radius:8px;gap:6px;margin-top:8px;padding:10px}.room-files .upload select,.room-files .upload input,.room-files .upload button{height:36px;font-size:13px}.room-files .upload input[type=file]{padding:6px}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.task-files h4{margin:0 0 4px;font-size:13px}.task-files{margin-bottom:12px}.thread{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.thread-empty{margin:0;font-size:13px}.msg{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px}.msg-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.msg-head time{color:var(--muted);white-space:nowrap;font-size:11px}.msg p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;font-size:14px;line-height:1.4}.msg-quote,.reply-bar{border:0;border-left:3px solid var(--green);background:var(--pale);text-align:left;color:inherit;border-radius:6px;font-size:12px}.msg-quote{cursor:pointer;width:100%;margin-top:6px;padding:5px 9px;display:block}.msg-quote strong,.msg-quote span,.reply-bar strong,.reply-bar span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.msg-quote span,.reply-bar span{color:var(--muted)}.msg-reply{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:6px 0 0;font-size:12px;font-weight:600;display:inline-flex}.msg-reply:hover{color:var(--green)}.msg-files,.pending{flex-wrap:wrap;gap:6px;display:flex}.msg-files{margin-top:8px}.pending{padding:4px 2px 6px}.att{border:1px solid var(--line);min-width:0;max-width:100%;color:inherit;background:#f7f8f4;border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:12px;text-decoration:none;display:inline-flex}.att>span{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.att svg{flex:none}a.att:hover span{text-decoration:underline}.att button{cursor:pointer;color:var(--muted);background:0 0;border:0;margin-right:-4px;padding:2px;display:flex}.att-img img{object-fit:cover;border:1px solid var(--line);background:#eee;border-radius:8px;width:88px;height:88px;display:block}.composer{background:#fff;border:1px solid #cfd2cb;border-radius:10px;padding:6px 8px}.composer:focus-within{border-color:var(--green)}.composer textarea{resize:none;background:0 0;border:0;width:100%;padding:6px 4px;font-size:16px;line-height:1.4;display:block}.composer textarea:focus-visible{outline:0}.reply-bar{align-items:center;gap:6px;margin-bottom:4px;padding:3px 3px 3px 9px;display:flex}.reply-bar>div{flex:1;min-width:0}.reply-bar .icon{padding:5px;display:flex}.link-row{gap:6px;padding:2px 0 6px;display:flex}.link-row input{flex:1;min-width:0;height:38px;font-size:16px}.composer-bar{border-top:1px solid #eceee9;align-items:center;gap:2px;padding-top:6px;display:flex}.tool{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:5px;padding:0 9px;font-size:13px;font-weight:600;display:inline-flex}.tool:hover,.tool-on{color:var(--green);background:#f1f2ee}.tool:focus-within{outline:3px solid #9ab5a5}.composer .send{margin-left:auto;padding:8px 14px}.composer .send:disabled{opacity:.7;cursor:default}.composer-error{color:#a33c2b;margin:6px 2px 0;font-size:12px}@media (width<=360px){.tool{padding:0 7px}.tool span{display:none}}.rf-mobile{display:none}@media (width<=760px){.room-files .rf-desktop{display:none}.room-files .rf-mobile{display:block}.room-files{padding:18px 14px}.rf-mobile>h2{margin:0 0 4px;font-size:18px}.mf-count,.mf-empty{color:var(--muted);margin:0 0 12px;font-size:13px}.mf-list{flex-direction:column;gap:10px;display:flex}.mf-card{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:52px minmax(0,1fr) 34px;align-items:start;gap:12px;padding:10px;display:grid;position:relative;box-shadow:0 1px 2px #0000000a}.mf-thumb{width:52px;height:52px;color:var(--muted);background:#f0f1ed;border-radius:8px;align-content:center;place-items:center;text-decoration:none;display:grid;overflow:hidden}.mf-thumb.is-image{background:#e6e7e2}.mf-thumb img{object-fit:cover;width:100%;height:100%;display:block}.mf-thumb.is-pdf{color:#c0392b;background:#fdecea}.mf-thumb b{letter-spacing:.04em;margin-top:2px;font-size:10px;line-height:1}.mf-body{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.mf-name{max-width:100%;color:inherit;overflow-wrap:anywhere;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none}.mf-type{background:var(--pale);color:var(--green);border-radius:99px;padding:2px 7px;font-size:11px;font-weight:700}.mf-body small{color:var(--muted);font-size:12px}.mf-amount{color:var(--green);font-size:15px}.mf-add-amount{color:var(--green);cursor:pointer;background:0 0;border:1px dashed #b7c4bb;border-radius:6px;align-items:center;gap:3px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.mf-card .file-menu summary{padding:6px}.mf-card .file-menu>div{width:130px;top:44px;right:8px}.mf-inline{border-top:1px solid #eee;grid-column:1/-1;align-items:center;gap:7px;padding-top:8px;display:flex}.mf-inline input{flex:1;min-width:0;height:34px;font-size:13px}.mf-inline>span{flex:1;font-size:13px;font-weight:700}.mf-inline .mf-dollar{color:var(--muted);flex:0;font-weight:700}.mf-upload{background:#f7f8f4;border:1.5px dashed #b7c4bb;border-radius:10px;flex-direction:column;gap:10px;margin-top:18px;padding:14px;display:flex}.mf-upload h3{color:var(--green);align-items:center;gap:6px;margin:0;font-size:15px;display:flex}.mf-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:24px;padding:0;display:flex}.mf-field{flex-direction:column;gap:4px;display:flex}.mf-field span{color:var(--muted);font-size:12px;font-weight:700}.mf-field select,.mf-field input{width:100%;height:40px;font-size:14px}.mf-pick{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mf-pick label{cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:6px;height:40px;font-size:13px;font-weight:700;display:flex;position:relative}.mf-pick input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.mf-chosen{border:1px solid var(--line);background:#fff;border-radius:7px;align-items:center;gap:6px;margin:0;padding:7px 9px;font-size:13px;display:flex}.mf-chosen svg{color:var(--green);flex:none}.mf-chosen span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mf-chosen button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:2px;display:grid}.mf-error{color:#b42318;margin:0;font-size:13px}.mf-submit{justify-content:center;align-items:center;gap:6px;width:100%;height:44px;margin:0;display:flex}}.update-notice{left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:30;border:1px solid var(--line);width:max-content;max-width:calc(100vw - 24px);color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:8px 8px 8px 16px;font-size:14px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0002}.update-notice .primary{cursor:pointer;border:0;border-radius:8px;width:auto;height:auto;margin:0;padding:8px 14px;font-size:14px;font-weight:600}.update-notice .primary:disabled{opacity:.7}.update-notice .icon{color:var(--muted);place-items:center;padding:6px;display:grid}.viewer{z-index:100;background:#111;flex-direction:column;display:flex;position:fixed;inset:0}.viewer header{padding:calc(env(safe-area-inset-top) + 8px) 12px 8px;background:#26352d;flex:none}.viewer header button{color:#fff;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 4px;font-size:16px;font-weight:700;display:inline-flex}.viewer-body{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;flex:1;min-height:0;display:flex;overflow:auto}.viewer-body img{object-fit:contain;max-width:100%;max-height:100%;margin:auto}.viewer-body iframe{background:#fff;border:0;flex:1;width:100%}.visit-main p strong{color:var(--muted);margin-bottom:1px;font-size:11px;font-weight:600;display:block}.visit-main p{font-size:13px}.visit-edit{align-items:center;gap:4px;margin-top:6px;padding:0;font-size:12px;display:inline-flex}.visit-comments .inline-form{flex-direction:row!important}.visit-comments .inline-form input{flex:1;min-width:0}.visit-comments .inline-form button{align-self:stretch!important}.avatar{color:#fff;letter-spacing:.03em;vertical-align:middle;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;margin-right:8px;font-size:11px;font-style:normal;font-weight:700;line-height:1;display:inline-grid}.person-row>span{flex:1;min-width:0}.activity p{align-items:center}.activity .avatar{color:#fff;width:24px;height:24px;margin-right:4px;font-size:10px}.msg-head strong,.comments strong{align-items:center;display:inline-flex}.msg-head .avatar,.comments .avatar{width:24px;height:24px;font-size:10px}.visit-main .by{align-items:center;display:flex}.visit-main .avatar{width:22px;height:22px;font-size:9px}@media (width<=760px),(hover:none) and (pointer:coarse){input,select,textarea,input:focus,select:focus,textarea:focus,label input,label select,label textarea{font-size:16px!important}}.auth-shell{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);width:100%;max-width:100%}.auth-card{overflow-wrap:anywhere;width:100%;min-width:0;max-width:100%}.auth-card form,.auth-card input{width:100%;min-width:0;max-width:100%}@media (width<=760px){.auth-shell{grid-template-columns:minmax(0,1fr)}.auth-links{flex-wrap:wrap;min-width:0}.auth-links .link{text-align:left;max-width:100%}}.mf-card{cursor:pointer}.mf-card .mf-inline,.mf-card .file-menu>div{cursor:auto}.mf-thumb img.is-loading,.att-img img.is-loading{opacity:0}:is(.mf-thumb:has(img.is-loading),.att-img:has(img.is-loading)){animation:1.2s ease-in-out infinite thumb-pulse}@keyframes thumb-pulse{50%{opacity:.55}}.thumb-missing{color:#a4553a;background:#f6ece8;align-content:center;place-items:center;width:100%;height:100%;min-height:52px;display:grid}.thumb-missing b{letter-spacing:.03em;margin-top:2px;font-size:9px;line-height:1}.viewer-body{position:relative}.viewer-status{text-align:center;color:#e8ebe6;pointer-events:none;max-width:420px;height:max-content;margin:auto;padding:0 24px;font-weight:600;position:absolute;inset:0}.viewer-status.is-error{color:#fff;pointer-events:auto;line-height:1.5;position:static}.job-menu{cursor:auto;flex:none;position:relative}.job-menu summary{min-width:36px;min-height:36px;color:var(--muted)}.job-menu>div{width:130px;top:40px}.job-edit{flex-wrap:wrap;padding:0 2px 12px 40px}.job-edit input{min-width:160px}@media (width<=480px){.job-edit{padding-left:2px}}.job-people{vertical-align:middle;gap:3px;margin-left:8px;font-style:normal;display:inline-flex}.job-people .avatar{width:22px;height:22px;margin:0;font-size:9px}.assign{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:12px}.assign-toggle{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 12px;display:flex}.assign-toggle span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.assign-toggle strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.assign-toggle svg{color:var(--muted);flex:none;transition:transform .15s}.assign-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.assign-list{border-top:1px solid var(--line);flex-direction:column;padding:2px 12px;display:flex}.assign-list label{cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:row;align-items:center;gap:10px;min-height:36px;margin:0;padding:3px 0;font-size:14px;display:flex}.assign-list input{width:18px;height:18px;accent-color:var(--green);flex:none;margin:0;padding:0}.assign-list .avatar{width:26px;height:26px;margin:0;font-size:10px}:is(html:has(.visit-modal),body:has(.visit-modal)){overscroll-behavior:none;overflow:hidden}.modal-back:has(.visit-modal){overscroll-behavior:contain;overflow:hidden}.modal.visit-modal{flex-direction:column;max-height:calc(100dvh - 40px);padding:0;display:flex;overflow:hidden}.visit-modal>div:first-child{flex:none;align-items:center;padding:20px 24px 12px}.visit-form{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.visit-form-fields{padding:6px 24px 4px}.visit-form input,.visit-form select,.visit-form textarea{width:100%;min-width:0}.visit-form textarea{color:var(--ink);font:inherit;resize:vertical;background:#fff;border:1px solid #cfd2cb;border-radius:7px;padding:10px 11px;font-weight:400}.visit-form-submit{border-top:1px solid var(--line);background:#fff;margin-top:auto;padding:12px 24px 20px;position:sticky;bottom:0}.visit-form-submit .primary{width:100%}@media (width<=760px){.modal-back:has(.visit-modal){place-items:end center;padding:12px 0 0}.modal.visit-modal{border-radius:14px 14px 0 0;width:100%;max-height:calc(100dvh - 12px)}.visit-modal>div:first-child{border-bottom:1px solid var(--line);padding:16px 18px 10px}.visit-form-fields{padding:14px 18px 4px}.visit-form-submit{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 18px #0000000f}}.visit-delete{border-top:1px solid var(--line);margin:22px 0 14px;padding-top:16px}.visit-delete>.link{align-items:center;gap:6px;padding:6px 0;display:inline-flex}.visit-delete-confirm{background:#fbf3f1;border:1px solid #e3c6c1;border-radius:9px;padding:13px}.visit-delete-confirm p{margin:0 0 11px;font-weight:700}.visit-delete-confirm>div{gap:9px;display:flex}.visit-delete-confirm .secondary{flex:1;justify-content:center;width:auto;min-height:42px;padding:9px 13px;display:inline-flex}.visit-delete-confirm .danger{color:#fff;background:#9b3c32;border-color:#9b3c32}.visit-complete-open{justify-content:center;width:100%;margin:2px 0 14px}.visit-complete{border:1px solid var(--line);background:#f7f8f5;border-radius:9px;margin:2px 0 14px;padding:12px}.visit-complete label{margin-bottom:10px}.visit-complete textarea{width:100%}.visit-complete>div{justify-content:flex-end;gap:9px;display:flex}.visit-history{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.visit-history-toggle{justify-content:space-between;align-items:center;width:100%;min-height:40px;display:flex}.visit-history-toggle svg{transition:transform .18s}.history-open .visit-history-toggle svg{transform:rotate(180deg)}.visit-history-search{width:100%;margin:10px 0}.visit-history .visit.completed,.visit-history .visit.cancelled{opacity:1}.account{position:relative}.bell{place-items:center;display:grid;position:relative}.bell-count{color:#fff;text-align:center;background:#c0392b;border-radius:99px;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-style:normal;font-weight:700;line-height:17px;position:absolute;top:1px;right:-1px;box-shadow:0 0 0 2px #fff}.notices-back{z-index:1;position:fixed;inset:0}.notices{z-index:2;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;width:min(380px,100vw - 32px);max-height:min(70vh,560px);display:flex;position:absolute;top:calc(100% + 14px);right:0;overflow:hidden;box-shadow:0 14px 40px #0002}.notices-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.notices-head h2{margin:0;font-size:16px}.notices-head .link{font-size:13px}.notices-empty{margin:0;padding:18px 16px;font-size:14px}.notices-list{overscroll-behavior:contain;overflow-y:auto}.notice{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #eee;align-items:flex-start;width:100%;padding:12px 16px;font-size:13px;line-height:1.4;display:flex}.notice:last-child{border-bottom:0}.notice:hover{background:#f7f8f4}.notice .avatar{width:28px;height:28px;margin-right:10px;font-size:10px}.notice>span{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notice small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.notice time{color:var(--muted);font-size:11px}.notice.is-unread{background:var(--pale);box-shadow:inset 3px 0 0 var(--green)}.notice.is-unread:hover{background:#dfe8e1}.notice.is-read{color:var(--muted)}.notice.is-read .avatar{opacity:.55}.notice.is-read strong{font-weight:600}.room-card{position:relative}.room-dot{background:#c0392b;border-radius:50%;width:9px;height:9px;position:absolute;top:7px;right:7px;box-shadow:0 0 0 2px #fff}[data-focus]{scroll-margin-top:84px}.notice-target{animation:2.2s ease-out notice-flash}@keyframes notice-flash{0%,45%{box-shadow:0 0 0 3px #f6b92b}to{box-shadow:0 0 0 3px #f6b92b00}}.approval-summary{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border-bottom:0;border-left:0;border-right:0;gap:10px}.approval-summary>span{flex:1;min-width:0}.approval-summary svg{color:var(--muted);flex:none;transition:transform .18s}.approval-summary[aria-expanded=true] svg{transform:rotate(180deg)}.approval-form{grid-template-columns:1fr 130px 100px;margin:10px 0}.approval-form input[type=file],.approval-form .approval-actions{grid-column:1/-1}.approval-actions{justify-content:flex-end;gap:8px;display:flex}.approval-actions .primary{width:auto;margin:0}.approval-detail{gap:10px;padding:0 2px 14px;display:grid}.approval-people{gap:6px;margin:0;padding:0;list-style:none;display:grid}.approval-people li{align-items:center;gap:8px;font-size:14px;display:flex}.approval-people span{flex:1}.approval-people em{color:var(--muted);font-size:13px;font-style:normal}.pill.approval-approved,em.approval-approved{color:#28533d}.pill.approval-approved{background:#e4eee8}.pill.approval-rejected,em.approval-rejected{color:#9b3c32}.pill.approval-rejected{background:#f5e6e3}.pill.approval-pending{color:#7a5a10;background:#f6eed8}.approval-error{color:#9b3c32;margin:6px 0;font-size:13px}.approval-empty{margin:6px 0 0;font-size:14px}@media (width<=760px){.approval-form{grid-template-columns:1fr 1fr}.approval-form input[name=title]{grid-column:1/-1}.approvals-panel:not(.people-open)>:not(:first-child){display:none}}.access-panel.approvals-panel.has-pending{background:#f1f8f3;border-color:#d3e6d9}.approvals-panel .people-toggle{font-weight:800}
