@charset "UTF-8";
:root{--bg:#f6f7f3;--paper:#fff;--ink:#24362d;--muted:#7a847b;--green:#244b3d;--green-hover:#183b2e;--line:#e4e8df;--soft:#eef2e9;--accent:#d9e8bc;--amber:#9b6925;--amber-bg:#faf4e7;--red:#a34439;--radius:18px;--shadow:0 3px 16px #24362d03;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a{touch-action:manipulation}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #9cbe7b;outline-offset:4px}button .icon{flex-shrink:0}.icon{width:19px;height:19px;display:inline-block;vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:38px;font-weight:620;letter-spacing:-1.2px;line-height:1.18}h2{font-size:18px;font-weight:600;letter-spacing:-.3px}h3{font-size:16px;font-weight:600;letter-spacing:-.2px}.muted,.help{color:var(--muted)}.help{font-size:12px;line-height:1.7}.centered{text-align:center}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.header{height:102px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;max-width:1280px;padding:0 48px;margin:auto}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:20px;font-weight:650;letter-spacing:-.6px;line-height:1.2}.brand-icon{display:grid;place-items:center;background:var(--green);color:#edf3df;width:44px;height:44px;border-radius:13px;font-family:Georgia,serif;font-size:30px;font-weight:400;letter-spacing:-4px;padding-right:4px;padding-bottom:5px}.brand-sub{display:block;font-size:11px;font-weight:450;letter-spacing:.1px;color:var(--muted);margin-top:5px}.header nav{margin-left:auto;display:flex;gap:6px;padding:5px;background:#ecefe7;border-radius:11px}.nav-item{border:0;background:transparent;color:#737e73;border-radius:8px;padding:10px 21px;font-size:13px;font-weight:550;transition:background .15s,color .15s}.nav-item:hover{color:var(--green)}.nav-item.active{background:#fff;color:var(--green);box-shadow:0 1px 4px #24362d10}.settings-button,.icon-button{background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;width:36px;height:36px}.settings-button{width:36px;height:36px;border:1px solid var(--line);margin-left:3px}.settings-button svg{width:22px}.icon-button:hover,.settings-button:hover{background:var(--soft)}
main{max-width:1280px;padding:48px 48px 35px;margin:auto;min-height:calc(100vh - 182px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:35px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.7px;text-transform:uppercase;color:#819176;margin-bottom:13px}.page-description{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.65}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:9px;border:1px solid transparent;padding:12px 17px;line-height:1.25;font-size:13px;font-weight:550;text-decoration:none;white-space:nowrap;transition:background .15s,transform .15s}.button:active{transform:translateY(1px)}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-hover)}.secondary{background:transparent;border-color:#d8ded2;color:var(--green)}.secondary:hover{background:#eaf0e4}.small{padding:9px 12px;font-size:12px}.small .icon{width:15px;height:15px}.wide{width:100%}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.text-button{background:none;border:0;padding:3px 0;color:var(--green);display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:550}.text-button:hover{text-decoration:underline}.text-button .icon{width:14px;height:14px}
.payment-layout{display:grid;grid-template-columns:minmax(300px, .85fr) minmax(400px,1.15fr);gap:34px;align-items:start}.entry-column{max-width:500px}.reading-card{padding:29px 28px 23px}.section-title{display:flex;align-items:center;gap:11px}.step{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf2e7;color:#729257;font-size:10px;font-weight:650}.reading-card .section-title{margin-bottom:28px}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:550;line-height:1.5;color:#4e5e50}.field input,.field select,.field textarea,.search-label input,.year-label select{border:1px solid #dce2d5;background:#fff;border-radius:9px;min-height:47px;padding:12px 13px;color:var(--ink);width:100%;min-width:0;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.search-label input:focus,.year-label select:focus{border-color:#769b60;box-shadow:0 0 0 3px #d7e6c755}.field input::placeholder{color:#a3ada0;font-weight:400}.field input:read-only{background:var(--bg)}.date-field{max-width:100%}.date-field input{font-size:14px;font-weight:450}.period-hint{display:flex;gap:7px;align-items:center;font-size:11px;color:#8b9685;margin-top:10px;margin-bottom:25px}.period-hint .icon{width:13px;height:13px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.input-unit{position:relative;display:flex;align-items:center}.input-unit input{font-size:21px;letter-spacing:-.5px;font-weight:500;min-height:64px;padding:15px 60px 15px 13px}.input-unit>span{position:absolute;right:12px;color:#9ca695;font-size:11px;font-weight:400}.field small{font-size:11px;color:#97a08f;font-weight:400}.field small strong{font-weight:500;color:#68785f}.optional-field{margin-top:25px}.optional-field summary{font-size:12px;color:#798c70;cursor:pointer;list-style-position:inside;line-height:1.6}.optional-field .field{margin-top:15px}.optional-field .help{margin-top:7px}.save-reading{margin-top:27px;min-height:48px;justify-content:space-between;padding-left:17px;padding-right:17px}.reading-card>.help{margin-top:12px}.reference-card{display:flex;align-items:center;gap:14px;padding:23px 9px 18px}.reference-icon{width:37px;height:37px;border-radius:11px;background:#eaf0e3;color:#7e9569;display:grid;place-items:center}.reference-card>div:last-child{display:grid;grid-template-columns:1fr auto;gap:5px 20px;flex:1;font-size:11px}.reference-card strong{font-size:12px;font-weight:550;grid-column:1;grid-row:2}.reference-card>div:last-child>span:last-child{grid-column:2;grid-row:2;color:#96a08f}.quiet-note{display:flex;align-items:flex-start;gap:10px;color:#8a9980;font-size:11px;line-height:1.7;margin:12px 10px}.quiet-note .icon{width:16px;height:16px;margin-top:2px}.result-heading{padding:3px 2px 18px}.result-heading h2{font-size:16px}.preview-badge{margin-left:auto;background:#ecf0e6;color:#8b9a7d;font-size:10px;font-weight:500;border-radius:5px;padding:5px 8px}
.bill-card{padding:25px 27px 0;overflow:hidden}.bill-heading{display:flex;align-items:center;gap:11px}.bill-icon{display:grid;place-items:center;background:#eff3e6;color:#6f8c3e;width:34px;height:34px;border-radius:10px;flex-shrink:0}.bill-icon .icon{width:18px;height:18px}.bill-icon.leaf{background:#eff3ed;color:#709480}.amount-line{display:flex;align-items:center;justify-content:space-between}.bill-amount{font-size:39px;letter-spacing:-1.6px;font-weight:550;margin-top:19px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}.bill-amount span{font-size:27px;font-weight:400;letter-spacing:0;color:#9ca693}.copy-amount{margin-top:20px;color:#9da88f}.bill-breakdown{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);padding-bottom:20px;display:grid;gap:12px}.bill-breakdown>div{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#87917f;line-height:1.55}.bill-breakdown strong{font-weight:500;color:#4a5b43}.bill-breakdown>div>span>strong{font-weight:450}.comment-block{background:#f7f8f4;border-top:1px solid #e8ebdf;margin:0 -27px;padding:16px 27px 20px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.label-row>span{font-size:10px;letter-spacing:.2px;color:#91a082}.comment-block p{font-size:11px;color:#697962;line-height:1.8;overflow-wrap:anywhere}.comment-block .text-button{font-size:10px;color:#738e5d}.dues-card{margin-top:18px}.dues-card .bill-amount{font-size:33px;margin-top:19px}.bill-period{font-size:11px;line-height:1.7;margin:10px 0 20px}.total-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:21px 6px 12px;font-size:13px;color:#839074}.total-row strong{font-size:22px;color:var(--green);font-weight:600;letter-spacing:-.5px;white-space:nowrap}.blank-bill{padding-bottom:0}.blank-bill>.muted{font-size:12px;margin-top:12px}.blank-bill .bill-amount{font-size:44px;color:#c1c9b6}.blank-bill .bill-breakdown{margin-top:24px}.dues-preview{padding:21px 24px;margin-top:17px}.dues-preview .bill-heading>div{flex:1}.dues-preview h3{font-size:13px}.dues-preview .muted{font-size:10px;display:block;margin-top:4px}.dues-preview strong{font-size:20px;letter-spacing:-.6px;white-space:nowrap;font-weight:550}.dues-preview strong span{color:#9caa8b;font-size:16px}.preview-footnote{font-size:11px;color:#9aa58f;padding:18px 6px;text-align:center}.form-error{padding:12px 14px;border-radius:8px;background:#fcf1ee;color:var(--red);font-size:12px;line-height:1.7;margin-top:16px}.warning{padding:15px 18px;border:1px solid #ede3c6;background:var(--amber-bg);color:var(--amber);border-radius:10px;font-size:12px;line-height:1.75;margin-top:15px}.info-box{padding:15px 18px;background:var(--soft);border-radius:10px;font-size:12px;line-height:1.8;color:#75816b}
.invoice-meta{display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin-bottom:24px;font-size:12px;color:#8b9682}.invoice-meta strong{color:#526347;font-weight:550}.source-label{margin-left:auto;font-size:11px}.invoice-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.invoice-grid .dues-card{margin:0}.invoice-grid .bill-heading h3{font-size:15px}.status{font-size:10px;display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:4px 7px;line-height:1.3;white-space:nowrap;font-weight:450}.status .icon{width:12px;height:12px}.status.paid{background:#edf4e6;color:#6d8e4e}.status.pending{background:#fbf2df;color:#a57c38}.status.unknown{background:#f2f3ef;color:#9ca591}.bill-heading>.status{margin-left:auto}.bill-actions{margin:0 -27px;padding:15px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.paid-date{font-size:11px;color:#92a180}.bottom-actions{display:flex;justify-content:space-between;margin-top:30px}.danger{color:var(--red)}.destructive{background:#a34d40;color:white}.destructive:hover{background:#8c3b30}.import-notes{border:1px solid var(--line);border-radius:10px;padding:15px 18px;margin:20px 0;color:#8c956e;font-size:12px;line-height:1.75}.import-notes summary{cursor:pointer}.import-notes ul{padding-left:19px;margin-bottom:0;max-height:280px;overflow:auto}.import-notes li+li{margin-top:9px}.invoice-grid+.help,.import-notes+.help{margin-top:20px}
.heading-actions{display:flex;gap:10px}.history-summary{display:flex;align-items:center;gap:35px;margin-bottom:24px;color:#859378;font-size:12px}.history-summary strong{font-size:17px;color:#4e6740;margin-left:7px;font-weight:550}.history-summary>.help{margin-left:auto;font-size:11px}.history-card{overflow:hidden}.table-toolbar{padding:20px 24px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.search-label{max-width:330px;width:100%}.search-label input,.year-label select{min-height:39px;padding:9px 12px;font-size:12px;background:#fbfcf9}.year-label{margin-left:auto}.year-label select{min-width:120px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;white-space:nowrap}thead th{font-size:10px;font-weight:500;color:#8f9b83;background:#fafbf7;padding:15px 24px;border-bottom:1px solid var(--line)}thead th span{display:block;margin-top:4px;color:#a6b09c;font-size:10px}tbody td{padding:19px 24px;border-bottom:1px solid #edf0e7;font-size:13px;vertical-align:middle}tbody tr:last-child td{border:0}tbody tr:hover{background:#fcfdf9}tbody td:last-child{padding-left:0;width:45px}.record-link{border:0;background:none;color:#3e5831;padding:0;font-size:13px;font-weight:550;text-align:left}.record-link:hover{text-decoration:underline}.table-sub{display:block;font-size:10px;color:#9aa58f;margin-top:6px;line-height:1.6}.consumption{font-variant-numeric:tabular-nums}.consumption span{color:#9eaa91}td>strong{display:block;font-size:13px;font-weight:550;margin-bottom:7px;font-variant-numeric:tabular-nums}.table-empty{padding:65px;text-align:center;color:var(--muted)}
.tariffs-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:25px;align-items:start}.tariff-card{overflow:hidden}.tariff-card-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px}.tariff-card-header h2{font-size:16px}.tariff-list{padding:0 24px}.tariff-row{display:flex;align-items:center;gap:14px;padding:21px 0;border-top:1px solid var(--line)}.tariff-row>div:first-child{flex:1}.tariff-row>div>strong{font-size:12px;font-weight:550}.tariff-values{display:flex;gap:15px;font-size:11px;color:#9aa68c;white-space:nowrap}.tariff-values strong{color:#526b3f;font-size:13px;font-weight:550}.tariff-note{padding:0 24px 24px;margin-top:4px}.tariff-explanation{max-width:720px;margin-top:26px}.tariff-card .icon-button{width:25px;height:25px}.tariff-card .icon-button .icon{width:14px;height:14px}
footer{max-width:1280px;padding:22px 48px 29px;margin:auto;border-top:1px solid var(--line);color:#a1ab96;display:flex;gap:20px;justify-content:space-between;font-size:10px;line-height:1.6}footer a{text-decoration:none}footer a:hover{text-decoration:underline}.toast{position:fixed;bottom:28px;left:50%;max-width:calc(100vw - 30px);transform:translate(-50%,15px);background:#244b3df5;color:#fff;padding:13px 21px;border-radius:11px;box-shadow:0 8px 30px #244b3d20;font-size:13px;opacity:0;transition:opacity .16s,transform .16s;pointer-events:none;z-index:5}.toast.visible{opacity:1;transform:translate(-50%,0)}.loading{padding:80px 20px;text-align:center;color:var(--muted)}.empty-card{text-align:center;padding:70px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.empty-card p{line-height:1.8;color:var(--muted);margin:14px 0 24px}.empty-icon{background:var(--soft);border-radius:50%;width:60px;height:60px;display:grid;place-items:center;margin:0 auto 24px;color:#87a56b}.empty-icon .icon{width:27px;height:27px}
dialog{border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);padding:28px;width:490px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 35px);box-shadow:0 30px 100px #20342625;overflow:auto}dialog::backdrop{background:#223b2d55;backdrop-filter:blur(3px)}.modal-head{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;margin-bottom:25px}.modal-head h2{font-size:21px}.modal-head p{font-size:12px;line-height:1.7;margin-top:9px}.modal-head .icon-button{margin:-5px -7px 0 0;flex-shrink:0}.modal-head+form{display:grid;gap:18px}.modal-head+form .form-error{margin:0}.modal-head+form>.button{margin-top:5px;min-height:45px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.modal-head+p{font-size:13px;line-height:1.8;color:var(--muted)}.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.import-summary strong{font-size:28px;font-weight:550;display:block;color:var(--green)}.import-summary span{color:var(--muted);font-size:11px;line-height:1.7}.import-summary+p{font-size:12px;color:var(--muted);margin-bottom:16px}.info-box~.wide,.warning~.wide{margin-top:22px}.copy-fallback{width:100%;padding:14px;border:1px solid var(--line);border-radius:9px;min-height:110px;resize:vertical;line-height:1.8;font-size:13px}.copy-fallback+.help{margin-top:12px}
@media(min-width:1400px){main{padding-top:57px}.header{height:108px}.payment-layout{gap:50px}.reading-card{padding:32px}.bill-card{padding-left:30px;padding-right:30px}.comment-block,.bill-actions{margin-left:-30px;margin-right:-30px}.comment-block{padding-left:30px;padding-right:30px}.bill-heading{gap:13px}}
@media(max-width:1100px){.header,main,footer{padding-left:28px;padding-right:28px}.payment-layout{gap:23px;grid-template-columns:minmax(290px,.9fr) minmax(350px,1.1fr)}h1{font-size:33px}.page-heading{gap:18px}.reading-card{padding:25px 22px}.bill-card{padding-left:22px;padding-right:22px}.comment-block,.bill-actions{margin-left:-22px;margin-right:-22px}.comment-block{padding-left:22px;padding-right:22px}.tariffs-grid{grid-template-columns:1fr}.history-summary{gap:25px;flex-wrap:wrap}.history-summary>.help{margin-left:0}.bill-heading>.status{font-size:9px;padding:4px}.invoice-grid{gap:20px}.invoice-grid .bill-heading{flex-wrap:wrap}.invoice-grid .bill-heading>.status{margin-left:45px;margin-top:-5px}.reference-card>div:last-child{display:flex;flex-direction:column;gap:5px}.tariff-values{gap:20px}}
@media(max-width:760px){.header{height:auto;min-height:120px;padding:20px;gap:12px;flex-wrap:wrap}.brand{font-size:18px}.brand-icon{width:38px;height:38px;font-size:27px}.brand-sub{font-size:10px}.header nav{order:3;width:100%;justify-content:stretch;gap:5px;margin-top:5px}.nav-item{flex:1;padding:10px 15px}.settings-button{margin-left:auto}.page-heading{align-items:flex-start;margin-bottom:27px;gap:17px;flex-direction:column}.page-heading>.button{font-size:11px;padding:10px 13px}.eyebrow{font-size:9px;margin-bottom:10px}h1{font-size:31px}.page-description{font-size:12px;margin-top:11px;line-height:1.8}main{padding:30px 18px 27px;min-height:calc(100dvh - 240px)}.payment-layout{display:flex;flex-direction:column;gap:20px}.entry-column,.result-column{width:100%;max-width:100%}.reading-card{padding:24px}.reference-card{padding-top:19px;padding-bottom:0}.reference-card>div:last-child{display:grid;grid-template-columns:1fr auto}.quiet-note{font-size:10px;margin-top:14px}.result-heading{padding-top:10px}.bill-card{padding-left:24px;padding-right:24px}.comment-block,.bill-actions{margin-left:-24px;margin-right:-24px}.comment-block{padding-left:24px;padding-right:24px}.bill-amount{font-size:37px}.bill-breakdown>div{font-size:11px}.dues-preview{padding:20px}.dues-preview strong{font-size:18px}.dues-preview h3{font-size:12px}.label-row>span{font-size:10px}.comment-block .text-button{font-size:10px}.invoice-grid{grid-template-columns:1fr}.invoice-grid .bill-heading{flex-wrap:nowrap}.invoice-grid .bill-heading>.status{margin-left:auto;margin-top:0}.invoice-meta{gap:10px 22px;font-size:11px}.source-label{width:100%;margin-left:0;margin-top:5px}.bill-actions{padding:15px 20px}.bill-actions .help,.paid-date{font-size:10px}.tariff-card-header{padding:21px 18px}.tariff-card-header h2{font-size:14px}.tariff-list{padding:0 18px}.tariff-values{gap:13px}.tariff-values strong{font-size:12px}.tariff-row>div>strong{font-size:11px}.tariff-row .table-sub{font-size:9px}.tariff-card-header .button{padding:8px 10px;font-size:11px}.tariff-note{padding-left:18px;padding-right:18px}.tariff-row{gap:10px}.tariff-explanation{margin-left:0;margin-right:0}.history-summary{gap:10px 25px;font-size:11px;margin-top:-4px}.history-summary strong{font-size:15px}.history-summary>.help{width:100%;font-size:10px}.table-toolbar{padding:15px;gap:10px}.search-label{min-width:0}.search-label input,.year-label select{font-size:11px}.year-label select{min-width:95px}thead th{padding:13px 17px}tbody td{padding:17px;font-size:12px}.record-link{font-size:12px}.table-sub{font-size:9px}td>strong{font-size:12px}.heading-actions .button{font-size:11px;padding:10px 12px}footer{padding:22px 20px;flex-direction:column;gap:8px;font-size:10px}.total-row{font-size:12px}.total-row strong{font-size:21px}dialog{padding:24px}.modal-head h2{font-size:20px}.import-summary{gap:12px}.import-summary span{font-size:10px}}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,440px);min-height:0;padding:42px 32px;text-align:center}.login-card .brand-icon{margin:0 auto 30px}.login-card form{margin:30px 0 20px}.login-card .help{line-height:1.8}.login-card .warning{margin-top:24px}footer .text-button{font-size:10px;padding:0}[hidden]{display:none!important}
.login-install{margin-top:22px;font-size:12px}.pwa-install-dialog h3{font-size:14px;margin:0 0 10px}.pwa-install-dialog section{padding:18px 20px;background:var(--soft);border-radius:12px;margin-top:16px}.pwa-install-dialog ol{padding-left:18px;margin:0;color:var(--muted);font-size:13px;line-height:1.8}.pwa-install-dialog li+li{margin-top:7px}.pwa-install-dialog>.help{margin:20px 0 0;line-height:1.8}.pwa-install-dialog .icon-button{font-size:25px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
