@font-face{font-family:Onest;src:url(./assets/fonts/onest-variable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Unbounded;src:url(./assets/fonts/unbounded-variable.woff2) format("woff2");font-weight:200 900;font-display:swap}:root{color-scheme:light;--bg: #f3f5ef;--ink: #24312b;--muted: #596653;--forest: #315f40;--lime: #c8f394;--line: #e3e9de;--red: #a22f3f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 Onest,sans-serif}::selection{background:var(--lime);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--forest);text-underline-offset:4px}button{border:0;background:none}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid var(--forest);outline-offset:3px}input,select,textarea{width:100%;min-height:48px;border:1px solid #a5b39d;background:#fff;border-radius:12px;padding:11px 14px;caret-color:var(--forest)}input::placeholder{color:#667361}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--forest)}label{display:block;font-weight:550}label input,label select,label textarea{margin-top:6px}h1,h2,h3,p{margin:0}h1{font-family:Unbounded,Onest,sans-serif;font-size:clamp(24px,3vw,36px);font-weight:450;letter-spacing:-.035em;line-height:1.3;text-wrap:balance}h2{font-size:21px;line-height:1.4;font-weight:550}h3{font-size:16px}p{max-width:70ch}.muted,small{color:var(--muted)}.brand{font:500 21px Unbounded,sans-serif;letter-spacing:-.04em;color:var(--ink);text-decoration:none;white-space:nowrap}.brand span{color:var(--forest)}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 19px;border-radius:12px;font-weight:550;gap:8px;text-decoration:none}.primary{background:var(--forest);color:#fff}.primary:hover{background:#244b31}.secondary{background:#edf2e8;color:var(--forest)}.secondary:hover{background:#e0ead7}.danger{color:var(--red);background:#fcebee}.text-button{text-decoration:underline;text-underline-offset:4px;color:var(--forest);padding:8px}.stack{display:grid;gap:20px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.panel{background:#fff;border-radius:30px;padding:28px}.panel h2{margin-bottom:18px}.panel p+p{margin-top:12px}.note{padding:14px 18px;background:#edf2e8;border-radius:12px}.error{color:var(--red);background:#fff0f0;padding:14px 18px;border-radius:12px}.error:empty{display:none}.notice{background:var(--lime);padding:14px 20px;border-radius:14px}.badge{display:inline-block;background:#edf2e8;padding:3px 10px;border-radius:8px;font-size:13px;color:var(--forest)}.badge.demo{background:#f8ebc9;color:#695221}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(300px,1fr) minmax(360px,1fr);padding:28px;gap:28px}.auth-story{background:var(--lime);border-radius:32px;padding:44px;display:flex;flex-direction:column;justify-content:space-between;min-height:620px}.auth-story h1{font-size:clamp(32px,4.4vw,62px);max-width:11ch;margin:60px 0 28px}.auth-story .story-bottom{border-top:1px solid #90b976;padding-top:24px;display:grid;gap:8px}.auth-form{display:flex;align-items:center;justify-content:center;padding:32px}.auth-form>section{width:100%;max-width:420px}.auth-form h2{font-size:28px;margin-bottom:12px}.auth-form form{margin-top:28px}.auth-form .primary{width:100%}.auth-form .muted{margin-top:12px}.otp{font-size:26px;letter-spacing:.2em;font-variant-numeric:tabular-nums}.shell{max-width:1500px;margin:auto;padding:28px 36px 64px}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 26px}.identity{text-align:right}.identity strong{display:block}.nav{display:flex;gap:7px;flex-wrap:wrap;padding:9px;background:#fff;border-radius:22px;margin-bottom:28px}.nav a{padding:10px 14px;border-radius:13px;text-decoration:none;color:var(--muted);font-weight:500}.nav a[aria-current=page]{background:var(--forest);color:#fff}.nav a:hover{background:#e8f0e1;color:var(--ink)}.context{margin-bottom:24px}.context select{width:auto;max-width:100%}.title-row{margin:32px 0 26px}.title-row p{margin-top:10px}.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:24px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.stat{background:var(--lime);padding:26px;border-radius:28px}.stat strong{display:block;font-size:clamp(24px,3vw,40px);font-weight:500;letter-spacing:-.035em;line-height:1.3;margin-top:20px;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto;scrollbar-color:#9eb590 var(--bg)}table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}th,td{padding:15px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:13px;color:var(--muted);font-weight:500}td{overflow-wrap:anywhere}td:first-child,th:first-child{padding-left:0}tr:last-child td{border-bottom:0}.empty{padding:30px 0}.empty h3{font-size:23px;font-weight:500;margin-bottom:12px}.empty p{color:var(--muted);margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .full{grid-column:1/-1}.checkboxes{display:grid;gap:8px}.checkboxes label{display:flex;align-items:center;gap:10px}.checkboxes input{margin:0}.list{list-style:none;margin:0;padding:0}.list li{padding:18px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.loading{padding:60px;text-align:center}.skip{position:absolute;left:16px;top:-80px;z-index:99;background:#fff;padding:12px}.skip:focus{top:12px}.secret{overflow-wrap:anywhere;font-family:monospace;background:var(--bg);padding:12px;border-radius:10px;user-select:all}.qr{display:block;width:320px;max-width:100%;height:auto;margin:20px auto;background:#fff;image-rendering:pixelated}#enrollment details{margin-top:16px}#enrollment summary{cursor:pointer;color:var(--forest)}#enrollment details p{margin-top:12px}.footer{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.section-content{animation:arrive .2s ease-out}@keyframes arrive{0%{transform:translateY(5px)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.section-content{animation:none}}@media(max-width:850px){.auth{grid-template-columns:1fr;padding:16px}.auth-story{min-height:auto;padding:26px}.auth-story h1{font-size:32px;max-width:19ch;margin:30px 0 16px}.auth-story .story-bottom{display:none}.auth-form{padding:24px 12px}.shell{padding:20px 18px 40px}.grid{grid-template-columns:1fr}.stats{gap:12px}.stat{padding:20px}.nav{gap:2px}.nav a{padding:9px 11px;font-size:14px}.panel{padding:22px}}@media(max-width:520px){.header{align-items:flex-start;flex-wrap:wrap;gap:12px}.identity{text-align:left;font-size:13px}.header .secondary{min-height:38px;padding:6px 12px}.stats{grid-template-columns:1fr}.stat{display:flex;justify-content:space-between;align-items:center;gap:16px}.stat strong{margin:0;font-size:27px}.form-grid{grid-template-columns:1fr}.title-row{margin-top:24px}.panel{border-radius:24px}.auth-story h1{font-size:28px}.auth-form{padding-top:8px}.brand{font-size:19px}}[hidden]{display:none!important}.table-wrap table{min-width:640px}.table-wrap{overscroll-behavior-inline:contain}.table-hint{margin:0 0 10px;font-size:13px}.notice:not(:empty),.error:not(:empty){margin-bottom:20px}.stack{grid-template-columns:minmax(0,1fr);min-width:0}.panel{min-width:0}.shell{max-width:1568px;padding:0 48px 40px}.header{min-height:106px;padding:18px 0;border-bottom:1px solid #e0e5da}.header .brand{white-space:nowrap;font-size:23px;display:flex;align-items:center;gap:9px}.brand-mark{width:28px;height:29px;border:5px solid var(--forest);border-bottom:0;display:inline-block;position:relative}.brand-mark:after{content:"";width:7px;height:14px;background:var(--forest);position:absolute;bottom:0;left:6px}.header .nav{margin:0;padding:5px;border-radius:30px;flex-wrap:nowrap;font-size:14px;gap:2px}.nav a,.nav-more summary{padding:10px 14px;border-radius:24px;white-space:nowrap}.nav a[aria-current=page],.nav-more .selected{background:var(--lime);color:var(--ink)}.nav-more{position:relative}.nav-more summary{cursor:pointer;list-style:none}.nav-more summary:after{content:"\2304";margin-left:8px}.nav-dropdown{position:absolute;top:calc(100% + 12px);right:0;z-index:10;background:#fff;border:1px solid var(--line);box-shadow:0 12px 28px #24312b18;border-radius:18px;padding:8px;min-width:210px;display:grid}.identity{font-size:12px}.role-admin{background:#e3eadf;color:var(--forest);padding:8px 12px;border-radius:10px;border:1px solid #b4c3ac}.context{margin:22px 0 0;color:var(--muted);font-size:13px}.title-row{margin:24px 0 28px}.title-row h1{font-size:clamp(25px,2.3vw,32px)}.title-row p{margin-top:8px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:20px}.dashboard-grid>.panel{min-width:0;padding:28px}.dashboard-grid h2{font-family:Onest,sans-serif;font-size:20px;letter-spacing:-.02em;margin:0;font-weight:550}.dashboard-grid h3{font-size:16px;font-weight:550}.dashboard-grid p{font-size:13px}.dashboard-grid .row+p{margin-top:8px}.dashboard-grid .full{grid-column:1/-1}.hero-number{font-family:Unbounded,sans-serif;font-weight:400;font-size:clamp(28px,3.4vw,48px);letter-spacing:-.035em;line-height:1.25;margin:26px 0 9px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.chart-panel .hero-number{color:#23734e}.hero-number>span{font-size:.7em}.period-label,.source-label{font-size:13px;color:var(--muted)}.summary-panel{background:var(--lime);display:flex;flex-direction:column}.summary-panel p{color:#3f5837}.summary-panel .hero-number{font-size:clamp(27px,2.6vw,40px)}.breakdown{margin:24px 0;font-size:14px}.breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0}.breakdown dd{margin:0;font-weight:550;text-align:right;font-variant-numeric:tabular-nums}.summary-total{display:flex;justify-content:space-between;border-top:1px solid #a6cd85;padding:20px 0}.dashboard-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;min-height:44px;font-weight:550;text-decoration:none}.dashboard-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.summary-panel>.dashboard-link{margin-top:auto;padding-top:16px}.chart-empty{min-height:232px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;max-width:440px}.chart-empty strong{font-size:20px;font-weight:500}.chart-empty p{color:var(--muted)}.point-overview{margin-top:24px}.point-overview>div{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.point-overview>div:last-child{border:0}.compact-label{font-size:11px;color:var(--muted);font-weight:400}.compact-label select{margin-top:3px;min-height:40px;font-size:13px;padding:7px 30px 7px 12px;background:var(--bg);border:1px solid var(--line);max-width:240px}.point-legend{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.point-label{display:inline-block;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:550}.tone-0{background:#e3f0d5;color:#36522d}.tone-1{background:#e3eaf9;color:#3c5079}.tone-2{background:#f8e8d2;color:#785020}.tone-3{background:#efe4f3;color:#6b4276}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{padding:0 0 10px;color:var(--muted);font-size:12px;text-align:center}.calendar-day{min-height:72px;background:#f6f8f3;border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:4px;text-align:left;min-width:0;border:1px solid transparent}.calendar-day:hover{background:#edf2e8}.calendar-day[aria-pressed=true]{border-color:var(--forest);background:#edf4e7}.day-number{font-size:12px;line-height:23px;width:23px;text-align:center}.is-today .day-number{background:var(--forest);color:#fff;border-radius:50%}.calendar-shift{display:block;border-radius:5px;padding:3px 4px;font-size:9px;width:100%}.calendar-shift>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-shift small{display:block;font-size:9px;white-space:nowrap}.agenda-heading{display:flex;align-items:center;gap:12px;margin:20px 0 12px}.agenda-heading h3:first-letter{text-transform:uppercase}.agenda-shift{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:12px 0;border-top:1px solid var(--line)}.agenda-shift strong{font-size:13px;font-weight:500}.agenda-shift p{flex-basis:100%;color:var(--muted)}.conflict{color:#845016;background:#fff1d8;padding:10px;border-radius:8px}.salary-panel{justify-content:space-between}.salary-explanation{max-width:38ch}.salary-forecast{margin-top:30px;border-top:1px solid #a6cd85;padding-top:24px}.salary-forecast>span{font-size:14px}.salary-forecast strong{display:block;font-family:Unbounded,sans-serif;font-size:27px;font-weight:400;margin:10px 0}.rating-value{margin:24px 0 12px;font-family:Unbounded,sans-serif;font-size:38px;font-weight:400;color:var(--forest)}.rating-value span{font-family:Onest,sans-serif;font-size:18px;color:var(--muted)}.rating-panel p+p{margin-top:8px}.dashboard-list{list-style:none;margin:18px 0 10px;padding:0}.dashboard-list li{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.dashboard-list li:last-child{border-bottom:0}.dashboard-list strong{font-weight:500}.dashboard-list small{display:block;color:var(--muted);margin-top:4px}.dashboard-list b{white-space:nowrap;font-weight:500}.negative{color:var(--red)}.metric-switch{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}.metric-switch button{min-height:40px;padding:8px 15px;border-radius:24px;font-size:13px;background:var(--bg)}.metric-switch button[aria-pressed=true]{background:var(--forest);color:#fff}.metric-switch button:hover{box-shadow:inset 0 0 0 1px var(--forest)}.growth-chart{width:100%;height:auto;margin-top:20px;overflow:visible}.growth-chart line{stroke:var(--line);stroke-width:1}.growth-chart path{fill:none;stroke:#23734e;stroke-width:2.5;stroke-linejoin:round}.growth-chart circle{fill:#23734e}.growth-chart text{fill:var(--muted);font-family:Onest,sans-serif;font-size:12px}.chart-data{font-size:12px;margin:10px 0}.chart-data summary{cursor:pointer;min-height:30px;color:var(--forest)}.chart-footnote{margin-top:14px}.service-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 20px}.service-stats strong{display:block;font-family:Unbounded,sans-serif;font-size:30px;font-weight:400}.service-stats span{font-size:13px;color:var(--muted)}.demo-toolbar{margin:16px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px;border-radius:12px;background:#f8ebc9;color:#695221;font-size:13px}.demo-toolbar select{width:auto;min-height:36px;padding:4px 12px;background:#fffaf0}@media(max-width:1200px){.header{flex-wrap:wrap;gap:14px}.header>.nav{order:3;width:100%;justify-content:center}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}.shell{padding:0 28px 30px}.calendar-shift small{display:none}}@media(max-width:850px){.dashboard-grid{grid-template-columns:1fr}.calendar-shift small{display:block}.salary-panel{gap:0}.salary-forecast{margin-top:22px}.dashboard-grid .full{grid-column:auto}}@media(max-width:520px){.shell{padding:0 16px 24px}.header{min-height:90px;padding:18px 0}.header .brand{font-size:19px}.header>.row{gap:8px}.identity{font-size:10px;max-width:120px}.identity .muted{display:none}.header #logout{padding:8px 10px;min-height:40px;font-size:12px}.header>.nav{justify-content:flex-start;overflow:visible;border-radius:16px;gap:0}.header .nav>a,.nav-more summary{padding:9px 6px;font-size:11px;min-height:44px}.nav-dropdown a{padding:10px 14px;font-size:14px}.title-row{margin:22px 0}.dashboard-grid>.panel{padding:20px;border-radius:26px}.dashboard-grid{gap:16px}.dashboard-grid h2{font-size:19px}.calendar-panel>.row{align-items:flex-start}.compact-label{width:100%}.compact-label select{max-width:100%}.point-legend{gap:6px;margin:14px 0}.point-label{font-size:10px}.month-grid,.weekdays{gap:3px}.calendar-day{padding:3px;min-height:60px;border-radius:7px}.calendar-shift{padding:3px 2px;font-size:8px}.calendar-shift small{display:none}.day-number{font-size:11px}.point-overview>div{grid-template-columns:1fr auto;gap:6px}.point-overview .muted{grid-column:1;font-size:12px}.point-overview b{grid-column:2;grid-row:auto}.service-stats{gap:12px}.service-stats strong{font-size:26px}.service-stats span{font-size:11px}}.chart-data table{min-width:0}@media(max-width:520px){.growth-chart text{font-size:25px}}.nav-more summary:after{content:none!important}.nav-chevron{width:18px;height:18px;margin-left:7px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}.nav-more[open] .nav-chevron{transform:rotate(180deg)}.owner-onboarding{min-height:490px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:48px 24px!important}.owner-onboarding h2{font-size:clamp(25px,3vw,38px);letter-spacing:-1px;margin:14px 0}.owner-onboarding p,.points-empty p{color:#62695f;line-height:1.7}.onboarding-art{width:200px;margin-bottom:12px}.onboarding-art svg{width:100%;fill:none;stroke:#315f40;stroke-width:3;stroke-linejoin:round}.onboarding-art circle{fill:#c8f394}.onboarding-action{display:inline-flex;align-items:center;gap:20px;margin:16px 0 18px;text-decoration:none}.onboarding-action svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}.onboarding-note{font-size:13px}.points-empty{text-align:center;padding:65px 20px}.points-empty h3{font-size:27px;margin:14px 0}.owner-point-list{margin-top:24px}.owner-point{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #e1e5db;padding:26px 0}.owner-point:last-child{padding-bottom:0}.owner-point h3{font-size:22px;margin:8px 0}.owner-point p{margin:8px 0}.collection-status{font-size:13px;color:#576b40;display:flex;align-items:center;gap:8px}.collection-status svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.3}.point-expenses{display:flex;align-items:flex-end;flex-direction:column;gap:8px;text-align:right}.point-expenses>span,.point-expenses small{font-size:13px;color:#62695f}.point-expenses strong{font-size:25px;letter-spacing:-.7px}.point-expenses button{margin-top:8px}.point-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 40px);border:1px solid #d8ded0;border-radius:26px;padding:28px;color:#222c20;background:#fff;box-shadow:0 25px 100px #18251e40;overflow:auto}.point-dialog::backdrop{background:#16251d77;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.dialog-heading h2{margin:7px 0 0;font-size:26px}.dialog-close{font-size:24px;min-width:42px;padding:5px!important}.point-dialog .form-grid{grid-template-columns:1fr 1fr;gap:14px}.point-dialog .muted{font-size:13px;line-height:1.55;margin:0}.expense-heading{margin:22px 0 16px;border-top:1px solid #e1e5db;padding-top:20px}.expense-heading h3{margin:0 0 6px;font-size:19px}.custom-expense{display:grid;grid-template-columns:minmax(0,1fr) 135px 42px;align-items:end;gap:10px;margin:16px 0}.custom-expense button{padding:10px!important}.expense-total{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #e1e5db;margin-top:24px;padding-top:20px}.expense-total strong{font-size:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.demo-data-notice{background:#eaf2e0;border-radius:10px;padding:8px 14px;font-size:13px;color:#465c39;margin:0 0 20px}.owner-profit-chart{width:100%;margin:24px 0 10px;overflow:visible}.owner-profit-chart line{stroke:#e2e7dc}.owner-profit-chart text{font:11px Onest,sans-serif;fill:#65705f}.owner-profit-chart path{stroke:#315f40;stroke-width:3;fill:none}.owner-profit-chart circle{fill:#315f40}.owner-profit-chart.chart-mobile{display:none}@media(max-width:650px){.owner-onboarding{min-height:450px;padding:30px 16px!important}.owner-points>.row{align-items:flex-start;gap:16px;flex-direction:column}.owner-point{flex-direction:column;gap:14px}.point-expenses{align-items:flex-start;text-align:left}.point-dialog{padding:20px 16px;border-radius:20px;max-height:calc(100dvh - 24px)}.point-dialog .form-grid{grid-template-columns:1fr}.custom-expense{grid-template-columns:minmax(0,1fr) 44px;gap:10px}.custom-expense label:first-child{grid-column:1/-1}.custom-expense label{font-size:13px}.custom-expense input{padding:10px;min-width:0}.dialog-actions{position:sticky;bottom:-20px;background:#fff;padding:12px 0 20px;border-top:1px solid #e1e5db;z-index:1}.dialog-actions button{flex:1;padding:12px 10px}.dialog-heading h2{font-size:23px}.expense-total{align-items:center}.expense-total strong{font-size:20px}.owner-profit-chart.chart-desktop{display:none}.owner-profit-chart.chart-mobile{display:block}.owner-profit-chart text{font-size:14px}}
