:root{font-family:DM Sans,system-ui,sans-serif;color:#25332d;background:#f7f8f5;font-synthesis:none;--green:#1f493a;--muted:#84908a;--border:#e9ede8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #85b89c;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif;letter-spacing:-.04em}h2{font-size:17px;font-weight:800}p{line-height:1.55}.app-shell{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);padding:30px 19px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;color:#243b30;font:800 22px Manrope,sans-serif;letter-spacing:-.08em;text-decoration:none;padding:0 6px}.brand-dot{color:#9bcaa7}.brand-mark{background:#d9ecdc;color:#315d42;border-radius:11px;width:36px;height:36px;display:grid;place-items:center}.sidebar-label,.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:700;color:#9aa69e}.sidebar-label{margin:62px 10px 17px}.navigation{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#89958e;width:100%;display:flex;align-items:center;gap:13px;border-radius:8px;padding:12px 11px;text-align:left;font-size:13px;font-weight:600}.nav-item.active{color:#345d46;background:#edf5ee}.nav-item:hover{background:#f4f7f3}.nav-plus{margin-left:auto;font-size:17px;font-weight:400}.sidebar-bottom{margin-top:auto;background:#f2f7ef;border-radius:12px;padding:16px 14px;color:#3b5f48}.side-illustration{display:grid;place-items:center;background:#dcecdc;border-radius:9px;width:35px;height:35px;margin-bottom:14px}.sidebar-bottom strong{font:700 12px Manrope,sans-serif}.sidebar-bottom p{font-size:11px;color:#8b9b8e;margin-top:6px}.local-note{font-size:10px;color:#a6afa8;padding:22px 4px 0}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#76b98b;margin-right:6px}.main{min-width:0;flex:1}.topbar{height:76px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;background:#ffffff8c}.breadcrumb{font-size:12px;color:#a4aea7}.breadcrumb span{margin:0 10px;color:#d0d6d0}.breadcrumb strong{color:#4d5e54;font-weight:600}.top-right{display:flex;align-items:center;gap:26px}.privacy{font-size:11px;color:#91a096}.button{border:1px solid transparent;border-radius:8px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:700;white-space:nowrap;transition:background .15s}.button-dark{background:#284e3d;color:#fff}.button-dark:hover{background:#193d2d}.button-outline{background:#fff;color:#355343;border-color:#dfe8df}.button-outline:hover{background:#f3f8f2}.content{max-width:1510px;margin:0 auto;padding:43px 5.2% 55px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:40px}.page-heading .eyebrow{margin-bottom:11px;color:#77a584}.page-heading h1{font-size:29px;line-height:1.2;color:#253b2f}.page-heading p{font-size:13px;color:#8b9890;margin-top:9px}.month-picker{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e8eee8;padding:10px 12px;border-radius:8px;color:#64806c}.month-picker input{border:0;color:#52675a;background:transparent;font-size:12px;max-width:140px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:17px}.section-heading h2{margin-top:7px;font-size:20px;text-transform:capitalize}.period-tag,.subtle-pill{font-size:10px;font-weight:600;background:#eff5ed;color:#6b9674;padding:7px 10px;border-radius:6px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:#fff;border:1px solid #edf0eb;border-radius:12px;box-shadow:0 2px 9px #223d2b05}.stat-card{padding:21px 20px 19px;min-height:165px}.stat-top{display:flex;justify-content:space-between;align-items:center}.stat-icon,.icon-tile{width:36px;height:36px;border-radius:9px;background:#eff6ed;color:#719c79;display:grid;place-items:center;flex-shrink:0}.stat-arrow{color:#c6d3c8;font-size:15px}.stat-label{font-size:11px;color:#8c9a90;margin-top:18px}.stat-value{font:800 24px Manrope,sans-serif;letter-spacing:-.04em;margin-top:7px;color:#2f4538}.stat-value span{font:600 11px DM Sans,sans-serif;letter-spacing:0;color:#8d9d91}.stat-detail{font-size:10px;color:#a4afa6;margin-top:7px}.stat-accent{background:#315c45;border-color:#315c45}.stat-accent .stat-icon{background:#47745a;color:#c2dfc6}.stat-accent .stat-arrow,.stat-accent .stat-label,.stat-accent .stat-detail{color:#b4cfb8}.stat-accent .stat-value,.stat-accent .stat-value span{color:#fff}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:16px;margin-top:19px}.chart-card,.bill-card,.comparison-card,.next-card,.history-card{padding:23px}.card-title-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.card-title-row .eyebrow{display:block;margin-bottom:8px}.card-title-row p{font-size:11px;color:#9aa69e;margin-top:5px}.chart-toggle{display:flex;background:#f3f7f1;border-radius:7px;padding:3px;gap:2px}.chart-toggle button{border:0;border-radius:5px;color:#849a89;background:transparent;font-size:10px;font-weight:700;padding:6px 9px}.chart-toggle button.selected{background:#fff;color:#315c45;box-shadow:0 1px 3px #dce5dc}.chart-area{display:flex;height:191px;margin-top:24px}.chart-grid{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:10px;color:#a8b4aa;padding-bottom:24px;width:32px}.bars{margin-left:11px;flex:1;display:flex;justify-content:space-around;gap:8px;background:repeating-linear-gradient(to bottom,#eef2ed 0,#eef2ed 1px,transparent 1px,transparent calc((100% - 24px)/2));background-size:100% calc(100% - 24px);background-repeat:no-repeat}.bar-column{flex:1;max-width:55px;display:flex;align-items:center;flex-direction:column;gap:9px;color:#9aa79d;font-size:10px;text-transform:capitalize}.bar-track{height:calc(100% - 24px);width:100%;display:flex;align-items:end;justify-content:center}.bar-stack{width:65%;max-width:35px;display:flex;flex-direction:column;overflow:hidden;border-radius:4px 4px 0 0}.bar-measured{background:#659b73;min-height:0}.bar-projected{background:#c9e2c9;min-height:0}.chart-legend{display:flex;gap:18px;margin:15px 0 0 42px;color:#87968a;font-size:10px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.green{background:#659b73}.light{background:#c9e2c9}.chart-caption{font-size:10px;color:#a0ada2;margin:13px 0 0 42px}.bill-total{margin-top:20px;padding:18px;background:#f5f8f2;border-radius:9px;display:flex;flex-direction:column}.bill-total span{font-size:10px;color:#8b9e8d}.bill-total strong{font:800 27px Manrope,sans-serif;color:#365c43;margin:6px 0 3px}.bill-total small{font-size:10px;color:#9aaa9b}.bill-lines{display:grid;gap:14px;margin-top:21px}.bill-lines div{display:flex;justify-content:space-between;font-size:11px;color:#93a096}.bill-lines strong{color:#526458;font-weight:700}.bill-foot{border-top:1px solid #eef2ed;margin-top:21px;padding-top:13px;font-size:10px;color:#a3afa5}.bottom-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:16px;margin-top:16px}.comparison-values{display:flex;align-items:center;gap:25px;margin-top:24px}.comparison-values div{display:flex;flex-direction:column;gap:5px}.comparison-values span,.comparison-values small{font-size:10px;color:#9daaa0}.comparison-values strong{font:800 20px Manrope,sans-serif;color:#3a5946}.comparison-arrow{font-size:20px!important;color:#a6bbaa!important}.empty-inline{margin-top:23px;background:#f7f9f6;padding:14px;border-radius:8px;font-size:11px;color:#95a198}.next-card{background:#eaf3e8;border-color:#eaf3e8;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:20px}.next-card .eyebrow{color:#82a58a}.next-card h2{margin-top:8px;color:#365a40}.next-card p{font-size:11px;color:#89a18c;margin-top:8px;max-width:230px}.next-card .button{padding:10px 12px}.warning,.info-box,.coverage-note,.notice{display:flex;align-items:center;gap:13px;background:#fff9e9;border:1px solid #f4eacb;border-radius:9px;padding:14px 16px;margin-bottom:20px;font-size:12px;color:#806a36}.warning p{font-size:11px;color:#a38b57;margin-top:3px}.warning-icon,.info-icon{flex-shrink:0;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#f5e9c5;font-weight:700}.text-link{border:0;background:none;color:#547c5c;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:7px;margin-left:auto;white-space:nowrap}.coverage-note{display:block;margin:16px 0 0;line-height:1.6}.notice{background:#edf6ed;border-color:#dcecdc;color:#477654;justify-content:space-between}.notice button{border:0;background:transparent;color:inherit;font-size:18px}.form-card{padding:26px;max-width:800px}.form-card .card-title-row{margin-bottom:26px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.field{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;color:#61756a}.input-wrap{position:relative;display:flex;align-items:center}.field input{width:100%;border:1px solid #e2eae2;border-radius:7px;background:#fbfcfa;color:#30463a;padding:12px;font-size:13px;min-height:43px}.field input:has(+.suffix){padding-right:62px}.suffix{position:absolute;right:12px;color:#a4b0a5;font-size:11px;font-weight:500;pointer-events:none}.hint{font-size:11px;line-height:1.6;color:#99a69b;margin:22px 0}.form-actions{display:flex;gap:10px}.form-error{color:#a44943;font-size:12px;margin:15px 0}.info-box{max-width:800px;background:#eef6ed;border-color:#e3efe2;color:#65836a;margin:16px 0 0}.info-box .info-icon{background:#d9ead9}.info-box p{font-size:11px}.info-box strong{color:#456c4b}.settings-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,1fr);gap:16px;align-items:start}.settings-layout .form-card{max-width:none}.divider{height:1px;background:#edf1ed;margin:25px 0}.check-row{display:flex;align-items:flex-start;gap:12px;color:#4a6654;font-size:12px}.check-row input{accent-color:#416f50;width:17px;height:17px;flex-shrink:0}.check-row span{display:flex;flex-direction:column;gap:7px}.check-row small{color:#97a59a;font-size:11px;line-height:1.6}.backup-card{padding:24px}.backup-card h2{margin-top:18px}.backup-card p{color:#99a69b;font-size:11px;margin:9px 0 20px}.full-width{width:100%;margin-top:9px}.backup-card .backup-note{font-size:10px;margin-bottom:0}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px;text-align:left;margin-top:24px}th{font-size:10px;color:#a5b0a7;font-weight:600;padding:12px 10px;border-bottom:1px solid #edf1ec}td{font-size:12px;color:#78897c;padding:17px 10px;border-bottom:1px solid #f0f3ef}td strong,.table-date{font-weight:700;color:#4a6050}td small{display:block;font-size:10px;color:#a7b3a9;margin-top:4px}.row-actions{display:flex;gap:5px}.row-actions button{background:transparent;border:0;color:#9aae9e;padding:5px}.row-actions button:hover{color:#315c45}.empty-state{text-align:center;padding:65px 20px}.empty-state .icon-tile{margin:auto}.empty-state h3{margin-top:16px;font-size:16px}.empty-state p{font-size:12px;color:#99a69b;margin:8px 0 20px}footer{border-top:1px solid #eef1ed;padding:20px 5.2%;font-size:10px;color:#b1bdb3}footer span{float:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1050px){.sidebar{width:200px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.bottom-grid,.settings-layout{grid-template-columns:1fr}.backup-card{max-width:none}.stat-card{min-height:150px}.sidebar-bottom{display:none}}@media(max-width:680px){.app-shell{display:block;padding-bottom:70px}.sidebar{height:auto;position:static;width:auto;padding:15px 18px;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:23px}.brand-mark{width:32px;height:32px}.sidebar-label,.local-note{display:none}.navigation{position:fixed;z-index:5;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fff;border-top:1px solid var(--border);padding:7px 4px calc(7px + env(safe-area-inset-bottom))}.nav-item{width:auto;min-width:65px;padding:6px;gap:4px;flex-direction:column;font-size:9px}.nav-plus{display:none}.topbar{height:51px;padding:0 20px}.top-right .privacy,.top-add{display:none}.content{padding:30px 18px 35px}.page-heading{align-items:flex-start;margin-bottom:30px}.page-heading h1{font-size:24px}.page-heading p{font-size:12px}.page-heading>.button{padding:10px;font-size:0}.page-heading>.button svg{width:18px;height:18px}.month-picker{padding:9px}.month-picker input{max-width:115px;font-size:11px}.stats-grid{gap:10px}.stat-card{padding:16px 14px;min-height:146px}.stat-value{font-size:21px}.stat-label{margin-top:14px}.dashboard-grid,.bottom-grid{gap:10px;margin-top:10px}.chart-card,.bill-card,.comparison-card,.next-card,.history-card,.form-card{padding:19px}.chart-area{height:160px}.chart-legend{flex-wrap:wrap;margin-left:20px}.chart-caption{margin-left:20px}.form-grid{grid-template-columns:1fr;gap:15px}.form-spacer{display:none}.info-box,.warning{align-items:flex-start;flex-wrap:wrap}.info-box .text-link,.warning .text-link{margin-left:38px}.comparison-values{gap:15px}.comparison-values strong{font-size:17px}.section-heading h2{font-size:18px}footer{padding:18px}footer span{display:none}}.forecast-note{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;margin-top:16px;background:#edf5ee;border-radius:9px;color:#52785a;font-size:11px}.forecast-note svg{flex-shrink:0}.forecast-note p{color:#7d9881;margin-top:4px}.monthly-comparison{padding:23px;margin-top:16px}.month-name{text-transform:capitalize}.session-link-card{max-width:none;margin-top:16px}.session-link-card .card-title-row{margin-bottom:20px}.session-link-card .card-title-row p{max-width:680px;line-height:1.6}.session-link-card .form-actions{flex-wrap:wrap}.session-link-result{display:flex;align-items:end;gap:10px;margin-top:20px;max-width:800px}.session-link-result .field{flex:1;min-width:0}.session-link-message,.session-link-note{font-size:11px;line-height:1.6}.session-link-message{margin-top:16px;color:#52785a}.session-link-note{border-top:1px solid #edf1ed;margin-top:20px;padding-top:16px;color:#99a69b}@media(max-width:680px){.session-link-result{flex-direction:column;align-items:stretch}.session-link-result .button{align-self:flex-start}}
