:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#202722;background:#f6f2ea;font-synthesis:none;text-rendering:optimizeLegibility;font-weight:400;font-size:14px;font-smooth:always;--green:#075640;--green-dark:#064d3a;--gold:#c99436;--ink:#202722;--muted:#767a73;--line:#e9e4db;--paper:#fff;--canvas:#f6f2ea;--soft:#f3efe7;--radius:20px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{min-width:320px;background:var(--canvas)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4d9275;outline-offset:2px}.pwa-shell{position:relative;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;background:var(--canvas);padding-bottom:calc(76px + env(safe-area-inset-bottom));overflow:hidden;box-shadow:0 0 50px #183b2810}.screen{min-height:calc(100dvh - 76px - env(safe-area-inset-bottom));padding:24px 16px 28px}.home-screen{display:flex;flex-direction:column;gap:20px}.greeting{display:flex;align-items:center;justify-content:space-between;gap:14px}.greeting h1{margin:0 0 4px;font-size:20px;line-height:1.2;font-weight:800}.greeting p{margin:0;color:var(--muted);font-size:12px}.icon-button{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:#39433c;flex-shrink:0}.notification{box-shadow:0 2px 8px #2027220b}.summary-card{padding:20px;border-radius:20px;background:var(--green);color:#fff;display:flex;flex-direction:column;gap:16px;box-shadow:0 12px 24px #07564016}.summary-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#ffffffd4}.summary-card>strong{font-size:36px;line-height:1;font-weight:800;letter-spacing:-.6px}.summary-stats{border-top:1px solid #ffffff2a;padding-top:12px;display:flex;align-items:center}.summary-stats>div{flex:1;display:flex;flex-direction:column;gap:4px}.summary-stats span{font-size:11px;color:#ffffffa8}.summary-stats b{font-size:19px}.summary-stats i{width:1px;height:30px;background:#ffffff42;margin:0 16px}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.quick-actions button,.renter-actions button{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;padding:0;font-size:12px;font-weight:600}.quick-actions button span,.renter-actions button span{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{margin:0;font-size:16px;font-weight:800}.text-button{display:inline-flex;align-items:center;gap:3px;padding:0;border:0;background:transparent;color:var(--green);font-size:12px;font-weight:700}.muted{color:var(--muted);font-size:12px}.todo-list{display:flex;flex-direction:column;gap:10px;margin-top:-6px}.todo-card{width:100%;min-height:80px;position:relative;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 4px 6px #20272208}.todo-card>div{display:flex;align-items:center;gap:7px}.todo-card>div b{font-size:13px}.todo-card p{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.5;padding-right:84px}.todo-card>.badge{position:absolute;right:14px;top:14px}.top-gap{margin-top:0}.recent-rooms{display:flex;flex-direction:column;gap:8px}.recent-room{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border:1px solid var(--line);border-radius:16px;background:#fff}.recent-room>span{width:36px;height:36px;border-radius:12px;background:#eaf2ee;color:var(--green);display:grid;place-items:center}.recent-room>div{flex:1;min-width:0}.recent-room b,.recent-room small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-room b{font-size:12px}.recent-room small{margin-top:4px;color:var(--muted);font-size:11px}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translate(-50%);display:flex;justify-content:space-around;width:min(100%,480px);height:calc(72px + env(safe-area-inset-bottom));padding:11px 5px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fff}.nav-item{flex:1;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;border:0;background:none;color:#7f847e;font-size:10px}.nav-item.active{color:var(--green);font-weight:700}.nav-item.active svg{stroke-width:2.5}.badge{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;background:#eaf3ef;color:var(--green)}.badge.gold{background:#fcf4e5;color:#c1841d}.badge.red{background:#fff0f1;color:#d6404c}.badge.blue{background:#edf5fc;color:#2475ce}.badge.gray{background:#eeeae3;color:#767a73}.badge.light{background:#ffffff24;color:#fff}.gold{color:var(--gold)}.red{color:#e34943}.blue{color:#2580da}.btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 18px;border:1px solid transparent;border-radius:14px;font-weight:700;font-size:14px;transition:transform .15s,background .15s}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--green);color:#fff;box-shadow:0 8px 18px #07564022}.btn.primary:hover{background:var(--green-dark)}.btn.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn.quiet{background:var(--soft);color:var(--muted)}.btn.full{width:100%}.btn.compact{min-height:36px;padding:0 13px;border-radius:20px;font-size:12px}.page-title{display:flex;align-items:center;gap:8px;margin:0 0 18px;min-height:34px}.page-title h1{font-size:22px;line-height:1.2;font-weight:800;margin:0}.page-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.page-title.with-back{margin-bottom:18px}.title-action{margin-left:auto}.card{padding:16px;border-radius:20px;background:var(--paper);box-shadow:0 4px 8px #20272206}.card h2,.card h3{margin:0 0 12px}.card h2{font-size:16px}.card h3{font-size:14px}.list-screen{padding:0 0 24px}.sticky-list-header{position:sticky;top:0;z-index:8;padding:20px 16px 12px;background:#fff;border-bottom:1px solid #f0ece4}.sticky-list-header .page-title{margin:0 0 12px}.search-field{height:40px;display:flex;align-items:center;gap:8px;width:100%;padding:0 12px;border-radius:20px;background:var(--canvas);color:#7a807b}.search-field input{width:100%;height:100%;border:0;outline:none;background:transparent;color:var(--ink);font-size:13px}.project-list{display:flex;flex-direction:column;gap:12px;padding:16px}.project-card{padding:18px;border:1px solid var(--line);box-shadow:none}.project-title,.project-metrics,.occupancy{display:flex;justify-content:space-between;align-items:center;gap:10px}.project-title h2{margin:0 0 4px;font-size:17px}.project-title p{margin:0;color:var(--muted);font-size:12px}.project-metrics{margin-top:14px;font-size:13px}.occupancy{margin-top:16px;color:var(--muted);font-size:11px}.occupancy strong{color:var(--green);font-size:12px}.occupancy>div{height:6px;position:absolute;margin-top:44px;width:calc(100% - 36px);background:#ebe6dc;border-radius:9px;overflow:hidden}.occupancy i{display:block;height:100%;border-radius:inherit;background:var(--green)}.project-card{position:relative;padding-bottom:38px}.project-open{position:absolute;right:16px;bottom:10px;border:0;background:transparent;color:var(--green);font-weight:700;font-size:11px}.empty-state{margin:30px 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--green)}.empty-state p{max-width:300px;margin:0 0 5px;color:var(--muted);font-size:13px;line-height:1.6}.wizard-screen{position:relative;display:flex;flex-direction:column;min-height:100dvh;padding:0 0 calc(86px + env(safe-area-inset-bottom))}.wizard-header{height:56px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px;border-bottom:1px solid var(--line);background:#fff}.wizard-header button{border:0;background:none;color:var(--green);font-weight:600;text-align:left}.wizard-header b{font-size:16px}.wizard-header span{width:40px}.stepper{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;background:#fff;overflow-x:auto;gap:6px}.stepper button{display:flex;align-items:center;gap:5px;border:0;background:none;color:var(--muted);font-size:12px;white-space:nowrap;padding:0}.stepper button>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#e9e4db;font-size:12px;font-weight:700}.stepper button.current{color:var(--green);font-weight:700}.stepper button.current>span,.stepper button.done>span{background:var(--green);color:#fff}.stepper button>i{width:16px;height:1px;background:var(--line);margin-left:2px}.wizard-body{flex:1;padding:16px}.wizard-card{padding:20px}.wizard-card h2{margin:0 0 18px;font-size:16px}.form-field{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}.form-field>span{font-size:13px;font-weight:700}.form-field input,.form-field select,.form-field textarea{width:100%;height:48px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 12px;color:var(--ink);outline:none}.form-field textarea{height:100px;padding:12px;resize:vertical}.form-field input::placeholder{color:#9a9d98}.field-help{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.wizard-footer{position:fixed;z-index:15;bottom:0;left:50%;transform:translate(-50%);width:min(100%,480px);min-height:82px;display:flex;gap:10px;align-items:center;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}.wizard-footer .btn{flex:1;border-radius:26px}.photo-picker{display:flex;flex-wrap:wrap;gap:9px}.photo-picker>input,.gallery-add input,.upload-row input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.photo-picker>label{width:92px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #b8c7bf;border-radius:13px;background:#f6faf8;color:var(--green);font-size:11px;font-weight:700}.photo-thumb{position:relative;width:92px;height:92px;border-radius:12px;overflow:hidden}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb button{position:absolute;top:3px;right:3px;width:21px;height:21px;border:0;border-radius:50%;background:#111b;color:#fff;font-size:17px;line-height:1}.photo-thumb small,.gallery-tile small{position:absolute;bottom:4px;left:4px;border-radius:5px;background:var(--green);color:#fff;font-size:9px;padding:3px 5px}.detail-screen{padding-bottom:100px}.detail-screen>.page-title{margin-bottom:18px}.page-title .icon-button{width:32px;height:32px;border:0;background:none}.room-gallery-card{margin-bottom:14px}.room-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gallery-tile{position:relative;height:96px;border-radius:12px;overflow:hidden;background:var(--soft)}.gallery-tile img{width:100%;height:100%;object-fit:cover}.gallery-add{height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;border:1px dashed #bac7bf;border-radius:12px;color:var(--green);font-size:11px;font-weight:700}.detail-body{display:flex;flex-direction:column;gap:14px}.info-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:30px;color:var(--muted);font-size:12px}.info-row b{color:var(--ink);font-size:13px;text-align:right}.full-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 0;border:0;border-top:1px solid #f0ece4;background:transparent;color:var(--green);font-size:13px;font-weight:700}.full-row span{display:flex;align-items:center;gap:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#12171370}.modal-sheet{width:min(100%,480px);max-height:88dvh;overflow:auto;padding:14px 20px calc(22px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff}.sheet-grab{width:42px;height:4px;margin:0 auto 16px;border-radius:5px;background:#ddd}.modal-sheet h2{margin:0;font-size:18px}.modal-sheet h3{margin:18px 0 9px;font-size:13px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px}.choice-grid label{display:flex;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:12px}.share-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.share-photo-grid label{position:relative;aspect-ratio:1;border:2px solid transparent;border-radius:10px;overflow:hidden}.share-photo-grid label.selected{border-color:var(--green)}.share-photo-grid img{width:100%;height:100%;object-fit:cover}.share-photo-grid input{position:absolute;top:5px;right:5px;accent-color:var(--green)}.modal-sheet>.btn{width:100%}.share-link-result{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;margin:12px 0;border-radius:10px;background:#f5f2ec}.share-link-result code{overflow:hidden;text-overflow:ellipsis;font-size:10px}.tenants-screen{padding:0 0 100px}.tenants-screen>.page-title,.tenants-screen>.search-field,.tenants-screen>.pill-tabs{margin-left:16px;margin-right:16px}.tenants-screen>.page-title{padding-top:24px}.pill-tabs{display:flex;gap:8px;margin-top:14px;margin-bottom:14px;overflow:auto}.pill-tabs button{padding:8px 16px;border:1px solid var(--line);border-radius:20px;background:#fff;font-size:12px;font-weight:600;white-space:nowrap}.pill-tabs button.selected{background:var(--green);border-color:var(--green);color:#fff}.tenant-list{display:flex;flex-direction:column;gap:10px;padding:0 16px}.tenant-card{min-height:68px;width:100%;display:flex;align-items:center;gap:11px;text-align:left;padding:12px 14px;border:0;border-radius:20px;background:#fff;box-shadow:0 4px 10px #20272208}.avatar{flex-shrink:0;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#e5efe9;color:var(--green);font-weight:800;font-size:17px}.avatar-1{background:#f4eadb;color:#96733b}.avatar-2{background:#e8e9f1;color:#575d7a}.avatar-3{background:#f2e3e2;color:#975653}.tenant-main{min-width:70px;flex:1}.tenant-main b,.tenant-main small{display:block}.tenant-main b{font-size:14px}.tenant-main small{margin-top:3px;color:var(--muted);font-size:11px}.tenant-badges{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.sticky-bottom{position:fixed;z-index:14;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(100%,480px);display:flex;gap:10px;padding:12px 16px;background:linear-gradient(0deg,#f6f2ea 75%,#f6f2ea00)}.sticky-bottom .btn{flex:1}.lease-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.lease-head>div{flex:1}.lease-head h2{margin:0 0 4px}.lease-head p{margin:0;color:var(--muted);font-size:12px}.lease-head h2+.badge{margin-left:auto}.lease-head+.card h3{color:var(--muted);font-size:14px}.lease-head~.card{margin-bottom:14px}.document-row{width:100%;display:flex;align-items:center;gap:11px;padding:10px 0;border:0;background:none;text-align:left;color:var(--green)}.document-row>span{flex:1}.document-row b,.document-row small{display:block}.document-row b{font-size:12px;color:var(--ink)}.document-row small{margin-top:4px;color:var(--muted);font-size:11px}.lease-head~.sticky-bottom{bottom:0;background:#fff;border-top:1px solid var(--line);padding-bottom:calc(14px + env(safe-area-inset-bottom))}.lease-head~.sticky-bottom .btn{min-height:44px}.meter-row{width:100%;display:flex;align-items:center;gap:10px;padding:11px 0;border:0;border-top:1px solid #f0ece4;background:#fff;text-align:left}.meter-row>span:nth-child(2){flex:1}.meter-row b,.meter-row small{display:block}.meter-row b{font-size:13px}.meter-row small{margin-top:4px;color:var(--muted);font-size:11px}.icon-tile{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#e9f2ee;color:var(--green)}.blue-tile{background:#eff5fc;color:#2475ce}.upload-row{position:relative;display:flex;align-items:center;gap:10px;min-height:50px;padding:0 12px;border:1px dashed #afc3b8;border-radius:11px;background:#f9fcfa;color:var(--green);font-size:12px;font-weight:700;overflow:hidden}.upload-row input{top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:pointer}.timeline-row{position:relative;display:flex;gap:14px;padding:8px 0 8px 22px;color:#58615a;font-size:12px;line-height:1.5}.timeline-row i{position:absolute;left:3px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--green)}.task-summary{margin-bottom:18px}.task-summary-title{display:flex;align-items:center;gap:11px}.task-summary-title b,.task-summary-title small{display:block}.task-summary-title small{margin-top:4px;color:var(--muted);font-size:11px}.summary-number-row{display:flex;justify-content:space-around;margin-top:17px;padding-top:13px;border-top:1px solid #f0ece4}.summary-number-row>div{display:flex;flex-direction:column;align-items:center;gap:3px}.summary-number-row strong{font-size:22px;color:var(--green)}.summary-number-row span{font-size:11px;color:var(--muted)}.work-screen>.section-heading{margin:4px 0 10px}.task-list{display:flex;flex-direction:column;gap:10px}.task-card{width:100%;display:block;padding:14px;border:0;border-radius:18px;background:#fff;text-align:left}.task-card-top{display:flex;align-items:center;gap:10px}.task-card-top>div{flex:1}.task-card-top b,.task-card-top small{display:block}.task-card-top b{font-size:13px}.task-card-top small{margin-top:4px;color:var(--muted);font-size:11px}.task-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #f0ece4;color:var(--muted);font-size:10px}.task-photo-hint{display:flex;align-items:center;gap:5px;margin:10px 0 0;color:var(--green);font-size:11px}.evidence-card{margin-top:14px}.evidence-card p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.6}.work-screen>.sticky-bottom{bottom:0;background:#fff;border-top:1px solid var(--line);padding-bottom:calc(14px + env(safe-area-inset-bottom))}.team-summary{display:flex;gap:11px;align-items:center;padding:14px;margin-bottom:14px;border-radius:16px;background:#eaf2ee;color:var(--green)}.team-summary>span{width:36px;height:36px;display:grid;place-items:center;background:#fff;border-radius:11px}.team-summary b,.team-summary small{display:block}.team-summary b{font-size:12px}.team-summary small{margin-top:4px;font-size:11px;color:var(--muted)}.member-card{display:flex;align-items:center;gap:11px;margin-bottom:9px}.member-card>div{flex:1}.member-card b,.member-card small{display:block}.member-card b{font-size:13px}.member-card small{margin-top:4px;color:var(--muted);font-size:11px}.profile-card{display:flex;align-items:center;gap:14px;margin:22px 0}.profile-card h2{margin:0 0 5px}.profile-card p{margin:0;color:var(--muted);font-size:12px}.large-avatar{width:60px;height:60px;font-size:22px}.setting-card{padding:0 16px}.setting-row{height:54px;width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid #f1eee8;background:transparent;text-align:left}.setting-row:last-child{border-bottom:0}.setting-row b{font-size:13px}.setting-row span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.version-row{display:flex;justify-content:space-between;margin:18px 12px;color:var(--muted);font-size:11px}.logout-button{width:100%;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #f0dbdb;border-radius:14px;background:#fff;color:#b94343;font-weight:700}.preview-roles{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.preview-roles button{padding:8px 10px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--green);font-size:11px;font-weight:700}.renter-home{display:flex;flex-direction:column;gap:16px}.renter-home .greeting{margin-bottom:4px}.renter-lease{padding:20px}.lease-label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.renter-lease h2{margin:15px 0 8px;font-size:16px}.renter-total{color:var(--green);font-weight:800;font-size:34px}.renter-total small{font-size:12px;color:var(--gold)}.lease-dates{display:flex;align-items:center;justify-content:space-between;padding-top:13px;margin-top:12px;border-top:1px solid #f0ece4;color:var(--muted);font-size:11px}.renter-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.renter-actions button span{width:48px;height:48px}.service-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0ece4}.service-row:last-child{border-bottom:0}.service-row>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#edf4f0;color:var(--green)}.service-row>div{flex:1}.service-row b,.service-row small{display:block}.service-row b{font-size:12px}.service-row small{margin-top:4px;color:var(--muted);font-size:10px}.renter-bill-screen{padding-bottom:100px}.bill-total{margin-bottom:13px;padding:19px}.bill-total h2{margin:13px 0 7px;font-size:17px}.bill-total p{margin:0;font-size:12px;font-weight:700}.bill-total p strong{color:var(--green);font-size:29px}.section-label{margin:10px 0;font-size:14px}.expense-row{padding:5px 0 13px}.expense-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #f0ece4}.expense-title b{font-size:14px}.expense-title small{color:var(--muted);font-size:11px}.reading-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:12px 0}.reading-grid span{display:flex;flex-direction:column;gap:5px}.reading-grid span:nth-child(2){align-items:center}.reading-grid span:last-child{align-items:flex-end}.reading-grid small{color:var(--muted);font-size:10px}.reading-grid b{font-size:12px}.expense-row hr{border:0;border-top:1px solid #f0ece4;margin:8px 0 0}.renter-bill-screen>.sticky-bottom{bottom:0;background:#fff;border-top:1px solid var(--line);padding-bottom:calc(14px + env(safe-area-inset-bottom))}.meter-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}.meter-head>div{flex:1}.meter-head b,.meter-head small{display:block}.meter-head small{margin-top:4px;color:var(--muted);font-size:11px}.error-text{margin:0;color:#ba3939;font-size:12px}.login-page{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:32px 22px calc(32px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 30% 4%,#dfece4 0,transparent 42%),var(--canvas)}.login-brand{padding:10px 4px}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--green);color:#fff;box-shadow:0 10px 20px #07564029}.eyebrow{margin:19px 0 8px;font-size:10px;letter-spacing:2px;color:var(--green);font-weight:800}.login-brand h1{margin:0;font-size:32px;line-height:1.25;letter-spacing:-.5px}.login-brand h1 em{color:var(--green);font-style:normal}.login-brand>.muted{margin:12px 0 0;max-width:280px;line-height:1.7}.login-card{display:flex;flex-direction:column;gap:15px;padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 15px 35px #2027220d}.login-card h2{margin:0 0 2px;font-size:20px}.login-card label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}.login-card input{height:47px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:#fff}.small-link{align-self:center;color:var(--green);font-size:11px;text-decoration:none}.preview-entry{margin-top:3px;padding-top:12px;border-top:1px solid #f0ece4}.preview-heading{display:flex;justify-content:space-between;font-size:11px;font-weight:700}.preview-heading span{color:var(--muted);font-weight:500}.preview-roles button{cursor:pointer}.login-footer{text-align:center;color:#9a9d98;font-size:10px}.public-share{width:100%;max-width:480px;min-height:100dvh;margin:0 auto;padding-bottom:76px;background:var(--canvas)}.public-brand{height:56px;display:flex;align-items:center;gap:9px;padding:0 14px;background:#fff}.public-brand>span{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--green);color:#fff;font-weight:800}.public-brand>div{flex:1}.public-brand b,.public-brand small{display:block}.public-brand b{font-size:12px}.public-brand small{font-size:9px;color:var(--muted)}.public-hero{height:250px;overflow:hidden;background:#e7e2d8}.public-hero>img{width:100%;height:100%;object-fit:cover}.hero-placeholder{height:100%;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;color:#8b928d}.public-content{padding:10px;display:flex;flex-direction:column;gap:10px}.public-price{position:relative}.public-price>strong{color:var(--green);font-size:20px}.public-price>small{color:var(--muted)}.public-price>.badge{position:absolute;right:14px;top:16px}.public-price h1{font-size:17px;margin:12px 0 4px}.public-price p{margin:0;color:var(--muted);font-size:11px}.feature-chips{display:flex;gap:6px;margin-top:10px}.feature-chips span{padding:4px 7px;border-radius:6px;background:#edf4f0;color:var(--green);font-size:10px}.public-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:12px 8px;border-radius:15px;background:#fff}.public-metrics div{text-align:center;color:var(--muted);font-size:10px;border-right:1px solid var(--line)}.public-metrics div:last-child{border:0}.public-metrics b{display:block;margin-top:5px;color:var(--ink);font-size:11px}.public-contact{position:fixed;bottom:0;left:50%;transform:translate(-50%);display:flex;gap:9px;width:min(100%,480px);padding:12px;background:#fff}.public-contact button{flex:1;height:42px;border:1px solid var(--gold);border-radius:22px;background:#fff;color:var(--green);font-weight:700}.public-contact button+button{border-color:var(--green);background:var(--green);color:#fff}.amenities{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.amenities span{padding:9px 5px;text-align:center;border-radius:9px;background:#f4f6f4;font-size:10px}.toast{position:fixed;z-index:100;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100% - 32px);padding:11px 16px;border-radius:12px;background:#202722ed;color:#fff;font-size:12px;box-shadow:0 8px 25px #0002}.loading{padding:25px;text-align:center;color:var(--muted)}.gold,.blue,.red{display:inline-flex;align-items:center;gap:4px}@media(min-width:700px){body{background:#ece9e2}.pwa-shell{min-height:100vh;border-left:1px solid #e6e2da;border-right:1px solid #e6e2da}.screen{min-height:calc(100vh - 72px)}.login-page{max-width:480px;margin:0 auto}.modal-sheet{border-radius:24px 24px 0 0}.public-share{box-shadow:0 0 35px #20332812}}.tenant-open{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:0;border:0;background:transparent;color:inherit;text-align:left}.occupancy{display:grid;grid-template-columns:1fr auto;gap:8px 10px}.occupancy>div{position:relative;grid-column:1/-1;width:100%;margin-top:0}.lease-page-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.lease-add-renter{margin:-8px 0 16px;min-height:24px}.renter-modal-backdrop{z-index:60}.lease-card-heading-button{flex:1;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left}.lease-card-heading-button h2{margin:0;font-size:14px}.lease-card-heading-button .field-help{margin:4px 0 0}.lease-card-heading-button:hover h2{color:var(--green)}.work-type-tabs{display:flex;gap:8px;margin:0 0 14px}.work-type-tabs button{padding:8px 16px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font-size:12px;font-weight:700}.work-type-tabs button.current{border-color:var(--green);background:var(--green);color:#fff}.task-card{padding:0;overflow:hidden}.task-card-open{width:100%;padding:14px;border:0;background:#fff;text-align:left}.task-action-row{display:flex;align-items:center;gap:8px;padding:0 12px 12px}.task-action-row .upload-row{min-width:0;flex:1;min-height:39px;padding:0 8px;font-size:10px}.task-submit{height:39px;padding:0 12px;border:0;border-radius:10px;background:var(--green);color:#fff;font-size:11px;font-weight:700;white-space:nowrap}.work-header-actions{display:flex;gap:8px;margin:-8px 0 14px}.work-header-actions .btn{flex:1;white-space:nowrap}.schedule-form{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.schedule-form .field{margin:11px 0}.schedule-form textarea{min-height:76px}.room-gallery-card .section-heading{margin-bottom:11px}.detail-screen>.card{margin-bottom:14px}.page-title .title-action{margin-left:auto}.tenant-avatar-img{width:40px;height:40px;flex-shrink:0;border-radius:50%;object-fit:cover;background:#e8ede9}.repair-photo-row{display:flex;gap:8px;margin:10px 0 12px}.repair-photo-row img{width:80px;height:80px;border-radius:11px;object-fit:cover}.public-hero{position:relative}.public-carousel-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:6px}.public-carousel-dots button{width:7px;height:7px;padding:0;border:0;border-radius:8px;background:#fff9}.public-carousel-dots button.current{width:16px;background:var(--green)}.gallery-tools{position:absolute;left:3px;right:3px;bottom:3px;display:flex;gap:2px;justify-content:flex-end}.gallery-tools button{height:21px;min-width:21px;display:grid;place-items:center;padding:0 4px;border:0;border-radius:5px;background:#ffffffeb;color:var(--green);font-size:9px;font-weight:700}.room-scope-list{display:flex;flex-direction:column;gap:7px;max-height:190px;overflow:auto;padding:4px 2px}.room-scope-list label,.scope-all{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px;font-weight:500}.room-scope-list input,.scope-all input{width:16px;height:16px;accent-color:var(--green);flex:0 0 auto}.room-scope-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-all{margin:8px 0;color:var(--green);font-weight:700}.connection-banner{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:7px 12px;background:#fff2d7;color:#8a5c12;text-align:center;font-size:11px;font-weight:700}.connection-banner.cached{background:#eaf1fb;color:#355d8a}.connection-banner.hidden{display:none}.login-connection{position:fixed;left:0;right:0}.task-filter,.task-assignee-select{height:32px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:11px}.task-assignee-select{min-width:0;flex:1}.task-action-row .task-submit:disabled{opacity:.45}.finance-screen{padding-bottom:35px}.finance-heading{position:sticky;top:34px;z-index:20;display:flex;align-items:center;gap:10px;margin:-5px -2px 15px;padding:8px 0 11px;background:var(--canvas)}.finance-heading>div{flex:1}.finance-heading h1{margin:0;font-size:20px}.finance-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.finance-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.finance-metrics .card{min-width:0;padding:12px 10px}.finance-metrics small,.finance-metrics b{display:block}.finance-metrics small{color:var(--muted);font-size:10px}.finance-metrics b{margin-top:8px;color:var(--green);font-size:15px;white-space:nowrap}.finance-total{display:flex;justify-content:space-between;margin-bottom:14px;padding:13px}.finance-total>div{display:flex;flex-direction:column;gap:5px}.finance-total span{color:var(--muted);font-size:10px}.finance-total strong{font-size:15px}.finance-toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.finance-toolbar .search-field{width:100%;height:38px;background:#fff}.finance-filters{display:flex;gap:8px}.finance-filters select{height:34px;flex:1;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:11px}.finance-list{display:flex;flex-direction:column;gap:10px}.charge-card{padding:14px}.charge-top{display:flex;align-items:center;gap:9px}.charge-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:#edf4f0;color:var(--green)}.charge-title{flex:1;min-width:0}.charge-title b,.charge-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charge-title b{font-size:13px}.charge-title small{margin-top:4px;color:var(--muted);font-size:10px}.charge-status{padding:5px 7px;border-radius:7px;background:#fff1d6;color:#a36c11;font-size:9px;font-weight:700;white-space:nowrap}.charge-status.paid{background:#e8f4ec;color:#267648}.charge-status.partially_paid{background:#eaf2fb;color:#3a6590}.charge-status.void{background:#f1efec;color:#7c7d78}.charge-detail{display:flex;justify-content:space-between;gap:6px;margin-top:13px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}.charge-detail b{color:var(--ink);font-size:11px}.charge-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px;color:var(--muted);font-size:10px}.confirmed-tag{display:inline-flex;align-items:center;gap:3px;color:var(--green)}.charge-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:11px}.charge-actions .text-button{padding:5px 2px}.mini-action{height:29px;padding:0 9px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;font-size:10px;font-weight:700}.mini-action.quiet{border-color:var(--line);background:#fff;color:var(--ink)}.voucher-upload{position:relative;overflow:hidden;cursor:pointer}.voucher-upload input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.voucher-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.voucher-chips a,.voucher-link{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:7px;background:#f6f4f0;color:var(--green);font-size:10px;text-decoration:none}.finance-modal{max-height:min(85dvh,760px);overflow:auto}.finance-modal .field{display:flex;flex-direction:column;gap:6px;margin:12px 0;color:var(--ink);font-size:11px;font-weight:700}.finance-modal .field input,.finance-modal .field select{height:42px;width:100%;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:500}.finance-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ledger-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.ledger-row span{display:flex;flex-direction:column;gap:4px}.ledger-row small{color:var(--muted);font-size:9px;line-height:1.4}.ledger-row b{color:var(--green);white-space:nowrap}.ledger-row .refund-amount{color:#b14d43}.finance-modal>h3{margin:19px 0 5px;font-size:12px}.voucher-link{margin:5px 0}.voucher-link svg:last-child{margin-left:auto}.notification-row{width:100%;display:flex;align-items:center;gap:10px;padding:13px 3px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.notification-row.read{opacity:.68}.notification-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:#e9f4ed;color:var(--green)}.notification-icon.gold{background:#fff3db;color:#a66e13}.notification-icon.blue{background:#eaf2fb;color:#3c6891}.notification-copy{flex:1;min-width:0}.notification-copy b,.notification-copy small,.notification-copy em{display:block}.notification-copy b{font-size:12px}.notification-copy small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.5}.notification-copy em{margin-top:5px;color:#999;font-size:9px;font-style:normal}.notification-row>i{width:7px;height:7px;border-radius:50%;background:#c99436}.notification-screen{padding-bottom:90px}@media(min-width:700px){.finance-screen,.notification-screen{max-width:780px;margin:0 auto}.finance-metrics{gap:12px}.charge-card{padding:17px}.finance-toolbar{flex-direction:row;align-items:center}.finance-toolbar .search-field{flex:1}.finance-filters select{width:130px}.finance-heading{top:0}}.work-detail-modal{max-height:min(86dvh,760px);overflow:auto}.work-detail-modal>h3{margin:17px 0 8px;font-size:12px}.work-detail-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.work-detail-photos a{min-width:0;color:var(--green);font-size:9px;text-decoration:none}.work-detail-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px;background:#f2f0ec}.work-detail-photos small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.work-history{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.work-history>div{padding:9px 10px;border-left:2px solid var(--green);border-radius:0 8px 8px 0;background:#f5f7f4}.work-history b,.work-history small{display:block}.work-history b{font-size:11px}.work-history small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.setting-row-static{cursor:default}.work-kind-nav{margin:0 0 10px}
