*{box-sizing:border-box}
:root{color-scheme:light;--ink:#152c2d;--muted:#4b6260;--dark:#122b2c;--deep:#173c3a;--accent:#096950;--accent-focus:#174c37;--paper:#f2f4ee;--card:#fff;--field:#e9ede6;--soft:#deeee3;--mint:#d5f1df;--space:8px;--radius:12px;font-family:"Inter","DejaVu Sans",system-ui,-apple-system,sans-serif;font-size:16px;background:var(--paper);color:var(--ink)}
body{margin:0;line-height:1.5}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
h1,h2,h3,p,dl,dd{margin:0}
h1,h2,h3{line-height:1.15;overflow-wrap:anywhere}
h1{font-size:clamp(2.25rem,4.5vw,4.25rem);font-weight:750;letter-spacing:-.052em}
h2{font-size:1.3rem;letter-spacing:-.024em}
h3{font-size:1.03rem;margin-top:22px}
p{margin-top:8px}
a{color:var(--accent);text-underline-offset:4px;overflow-wrap:anywhere}
a:hover{color:var(--accent-focus)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;background:#c1e3d0;color:#102e23}
button,input,textarea,select{font:inherit;color:inherit;border:0;border-radius:var(--radius);outline:none}
button,.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;text-align:center;padding:10px 16px;line-height:1.28;font-weight:650;cursor:pointer;border-radius:var(--radius);text-decoration:none;white-space:normal}
button:disabled{cursor:default;background:#e0e6e1;color:#425751}
.primary{background:var(--accent);color:white}
.primary:hover{background:var(--accent-focus);color:white}
.secondary,.quiet{background:var(--soft);color:#174e3f}
.secondary:hover,.quiet:hover{background:#cfe7d6;color:#153c32}
.quiet{background:var(--field)}
.danger{color:#893832}
.danger:hover{color:#6b261e;background:#f2e1da}
input:not([type=checkbox]),select,textarea{width:100%;min-height:46px;padding:10px 12px;background:var(--field);line-height:1.35}
input::placeholder,textarea::placeholder{color:#566d64;opacity:1}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:0}
input[type=file]{max-width:100%;min-width:0}
input:invalid:not(:placeholder-shown):focus{background:#f6e5de}
fieldset{border:0;margin:0;padding:0;min-width:0}
textarea{resize:vertical}
button svg,.button svg{flex:none;width:20px;height:20px}
.topbar{background:var(--dark);color:#f0f7ef}
.navwrap{max-width:1392px;margin:auto;padding:0 40px;min-height:74px;display:flex;gap:32px;align-items:center}
.wordmark{display:flex;align-items:center;gap:10px;white-space:nowrap;font-weight:730;text-decoration:none;letter-spacing:-.027em;color:inherit}
.wordmark:hover{color:var(--mint)}
.wordmark svg{width:34px;height:34px;color:#a8debf}
.navtoggle{display:none;padding:10px;background:var(--deep);color:inherit}
#navigation{display:flex;align-items:center;gap:6px;flex:1}
#navigation a,.logout{color:#e2efe8;text-decoration:none;padding:10px 12px;display:block;border-radius:var(--radius);font-size:.94rem;line-height:1.4}
#navigation a:hover,#navigation a[aria-current],.logout:hover{background:var(--deep);color:#fff}
#navigation a:focus-visible,.logout:focus-visible{background:var(--mint);color:var(--ink)}
.profile{display:flex;align-items:center;gap:4px;margin-left:auto}
.logout{background:transparent}
.shell{max-width:1392px;margin:auto;padding:40px 40px 72px}
.heading,.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.heading .button{flex:none}
.lead{font-size:1.12rem;margin-top:8px}
.muted,.subline{color:var(--muted)}
.small,.subline{font-size:.92rem}
.subline{display:block;margin-top:3px}
.return{display:inline-flex;align-items:center;min-height:40px;margin:-8px 0 8px;padding:0 8px;border-radius:var(--radius);font-weight:650}
.shell>h1:not(:last-child){margin-bottom:22px}
.notice{background:#dceddf;color:#244f3c;padding:14px 18px;border-radius:var(--radius);margin-bottom:20px;overflow-wrap:anywhere}
.notice a+a{margin-left:12px}
.notice.error,.warning{background:#f6e2da;color:#7a342d}
.warning{padding:10px 12px;border-radius:var(--radius);margin:0}
.budgets{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px;margin-bottom:24px}
.budget,.panel{border-radius:16px;padding:24px;background:var(--card);min-width:0}
.budget.whole{background:var(--deep);color:#f4fbf5}
.budget-label,.budget dt{color:var(--muted)}
.budget.whole .budget-label,.budget.whole dt{color:#c8e5d7}
.balance{font-weight:740;letter-spacing:-.05em;font-size:clamp(1.55rem,2.55vw,2.6rem);line-height:1.15;margin-top:17px;font-variant-numeric:tabular-nums;white-space:nowrap}
.balance span{font-size:.72em}
.budget-label{font-size:.94rem;margin-top:5px}
.budget dl{margin-top:9px}
.budget dl div,.keylines div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px;margin-top:5px}
.budget dd,.keylines dd{font-weight:670;font-variant-numeric:tabular-nums}
meter{display:block;margin:20px 0 14px;width:100%;height:8px;appearance:none;border:0;background:#dbe8df;border-radius:20px}
meter::-webkit-meter-bar{background:#dbe8df;border:none;height:8px;border-radius:20px}
meter::-webkit-meter-optimum-value{background:#3d9474;border-radius:20px}
meter::-moz-meter-bar{background:#3d9474;border-radius:20px}
.whole meter,.whole meter::-webkit-meter-bar{background:#3d655e}
.whole meter::-webkit-meter-optimum-value{background:#a8debf}
.whole meter::-moz-meter-bar{background:#a8debf}
.panel>h2{margin-bottom:17px}
.panel>p+form{margin-top:15px}
.panel form+.records,.panel h3+.records{margin-top:12px}
.empty{padding:14px 0;color:var(--muted)}
.filters,.actions{display:flex;align-items:end;flex-wrap:wrap;gap:8px}
.filters select{width:auto;max-width:100%}
.filters .field select{width:100%}
.grow{flex:1 1 16rem;min-width:0}
.stack{display:grid;gap:16px;min-width:0}
.stack>h2{margin-bottom:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.full{grid-column:1/-1}
.field{display:grid;gap:6px;min-width:0;font-weight:650}
.field input,.field textarea,.field select{font-weight:450}
.check{display:flex;min-height:44px;gap:10px;align-items:center;cursor:pointer}
.checks{display:grid;gap:2px}
.check:has(input:focus-visible){background:var(--soft);border-radius:var(--radius)}
.datefield{display:flex;gap:5px;min-width:0}
.datefield input{flex:1;min-width:0}
.date-open{padding:8px 11px;background:var(--soft);color:var(--accent)}
.date-open:hover{background:#c3e1cc}
.upload{margin-top:16px}
.narrow{max-width:700px}
.edit-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr);align-items:start;gap:20px;margin-top:18px}
.summary{position:sticky;top:18px;display:grid;gap:12px}
.summary>h2{margin:0}
.summary p{margin:0}
.summary-total{font-size:clamp(1.6rem,3vw,2.48rem);font-weight:740;letter-spacing:-.045em;line-height:1.2}
.keylines{padding:10px 0}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.summary .num{text-align:left}
.stack-table{width:100%;border-collapse:separate;border-spacing:0 4px;text-align:left}
.stack-table th{color:var(--muted);font-size:.92rem;font-weight:650;padding:8px 10px}
.stack-table td{padding:12px 10px;background:#f0f3ed;overflow-wrap:anywhere}
.stack-table td:first-child{border-radius:9px 0 0 9px}
.stack-table td:last-child{border-radius:0 9px 9px 0}
.record-link{font-weight:700}
.status{display:inline-block;padding:5px 10px;background:#e4e9e0;color:#465844;border-radius:var(--radius);font-weight:650;white-space:nowrap}
.status.ready{background:#d8eddf;color:#204f38}
.details{display:grid;gap:14px}
.details div{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);gap:10px}
.details dt{font-weight:650}
.details dd{overflow-wrap:anywhere;white-space:pre-wrap}
.records{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.records li{background:#f1f3ee;border-radius:9px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;align-items:center;overflow-wrap:anywhere}
.records.compact li{padding:8px 12px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.tabs a{background:#e1e9de;border-radius:var(--radius);padding:10px 13px;color:#254b3e;text-decoration:none;font-weight:650}
.tabs a[aria-current]{background:var(--deep);color:#fff}
.service-line{display:grid;grid-template-columns:minmax(0,1fr) 5rem minmax(6rem,max-content) 44px;align-items:center;gap:10px;background:#f1f3ee;margin-top:8px;padding:10px 10px 10px 13px;border-radius:var(--radius)}
.service-text{min-width:0;overflow-wrap:anywhere}
.service-text label{font-weight:620}
.service-line .qty input{text-align:right}
.line-sum{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:670}
.service-line .remove{min-width:44px;padding:8px}
.enhanced{display:none}
.js .enhanced{display:inline-flex}
.js p.enhanced{display:block}
dialog{border:0;border-radius:16px;background:var(--card);color:var(--ink);padding:24px;max-width:calc(100% - 28px);max-height:calc(100dvh - 32px);overflow:auto}
dialog::backdrop{background:rgba(13,34,31,.56)}
.picker{width:780px}
.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}
.picker-scroll{margin-top:14px;overflow:auto;max-height:56dvh}
.pick-option{width:100%;text-align:left;justify-content:space-between;align-items:center;background:#eff3ec;margin-bottom:6px;font-weight:570}
.pick-option:hover{background:var(--soft)}
.pick-option.chosen{background:#d5eadd}
.pick-option small{color:var(--muted);font-size:.92rem}
.cal-nav,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.cal-nav{grid-template-columns:44px 1fr 44px;text-align:center;align-items:center;margin:9px 0 12px}
.cal-nav button{padding:8px}
.calendar-grid span,.calendar-grid button{text-align:center;min-width:0;padding:5px;border-radius:9px}
.calendar-grid button{min-height:42px;background:#edf3ed}
.calendar-grid button:hover,.calendar-grid button:focus-visible{background:#c2e3d1}
.calendar-grid .weekend{color:#845347}
.calendar-grid .selected{background:var(--accent);color:#fff}
.calendar{width:385px}
.sign-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:stretch}
.sign-intro{background:var(--deep);color:#f1fbf5;padding:clamp(35px,8vw,120px);display:flex;flex-direction:column;justify-content:center;gap:22px}
.sign-intro span{font-size:clamp(1.1rem,2vw,1.55rem);color:#c2e6d2}
.sign-intro h1{font-size:clamp(2.25rem,5.4vw,6rem)}
.sign-form{width:min(100%,500px);align-self:center;padding:50px 52px;margin:0 auto}
.sign-form h2{font-size:2rem;margin:0 0 20px}
.sign-form button{width:100%}
.sign-shell>.panel{grid-column:1/-1;margin:48px;align-self:start}
@media(max-width:1100px){.navwrap,.shell{padding-left:25px;padding-right:25px}.navwrap{gap:16px}.budget,.panel{padding:19px}.budget dl div{display:block}.budget dd{margin-bottom:3px}}
@media(max-width:850px){.navwrap{padding-top:12px;padding-bottom:12px;flex-wrap:wrap;justify-content:space-between;gap:0;min-height:64px}.navtoggle{display:inline-flex}#navigation{display:none;flex-basis:100%;align-items:stretch;gap:4px;padding-top:12px}#navigation.open{display:flex;flex-direction:column}.profile{margin-left:0;justify-content:space-between}.edit-layout{grid-template-columns:1fr}.summary{position:static}.budgets{grid-template-columns:1fr 1fr}.budget.whole{grid-column:1/-1}.budget dl div{display:flex}.balance{font-size:clamp(1.4rem,4.4vw,2.55rem)}.shell{padding-top:27px}.sign-intro{padding:40px}.sign-form{padding:42px 28px}}
@media(max-width:580px){.shell,.navwrap{padding-left:14px;padding-right:14px}.heading,.section-top{flex-wrap:wrap;align-items:start}.heading{gap:12px}.budgets{gap:8px}.budget,.panel{padding:14px}.budget dl div{display:block}.budget-label,.budget dt,.budget dd{font-size:.9rem}.budget h2{font-size:1.12rem}.balance{font-size:clamp(1.15rem,5.4vw,2.05rem);margin-top:12px}.form-grid{grid-template-columns:1fr}.filters .field{flex-basis:100%}.filters select{font-size:.94rem}.stack-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.stack-table,.stack-table tbody,.stack-table tr{display:block}.stack-table tr{background:#f0f3ed;border-radius:12px;margin-bottom:8px;padding:7px 10px}.stack-table td{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;background:transparent}.stack-table td:first-child{display:block;margin-bottom:4px}.stack-table td:nth-child(n+2)::before{content:attr(data-label);color:var(--muted);white-space:normal}.service-line{grid-template-columns:4.8rem 1fr 44px;gap:6px}.service-text{grid-column:1/-1}.details div{grid-template-columns:1fr;gap:3px}.sign-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sign-intro{padding:35px 20px;min-height:215px;gap:10px}.sign-form{padding:26px 18px 40px;align-self:start}.sign-intro h1{font-size:clamp(2.05rem,9vw,3.15rem)}dialog{padding:14px}}

