:root{--ink:#16231f;--muted:#65716d;--paper:#f5f7f4;--card:#fff;--line:#dfe5e1;--green:#0d3b32;--mint:#dff1e9;--gold:#e2b34c;--red:#a43737;--blue:#1f6880;--shadow:0 8px 25px #1232 1px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent}header{height:64px;display:flex;align-items:center;justify-content:space-between;max-width:1040px;padding:0 20px;margin:auto}.brand{font-size:20px;font-weight:780;display:flex;align-items:center;gap:9px}.brand-mark{background:var(--green);color:white;width:30px;height:30px;border-radius:10px;display:grid;place-items:center}.muted{color:var(--muted);font-size:13px}.icon{font-size:24px;padding:8px}.hidden{display:none!important}main{max-width:1040px;margin:auto;padding:5px 20px 105px}.view{display:none}.view.active{display:block}.hero{padding:17px 0 12px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:800;color:var(--muted);margin:0 0 6px}.hero h1{font-size:clamp(27px,6vw,43px);letter-spacing:-1.5px;line-height:1.05;margin:0}.hero p{margin:9px 0 0;color:var(--muted);line-height:1.5}.grid{display:grid;gap:14px}.metrics{grid-template-columns:repeat(3,1fr);margin:16px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:0 1px 0 #00000005}.metric small,.label{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:800;color:var(--muted);margin-bottom:7px}.metric strong{font-size:clamp(20px,4vw,30px);letter-spacing:-.9px}.metric .note{font-size:12px;color:var(--muted);display:block;margin-top:5px}.good{color:var(--green)}.bad{color:var(--red)}.section{margin:23px 0}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.section-title h2{font-size:18px;margin:0;letter-spacing:-.3px}.section-title button{color:var(--green);font-size:13px;font-weight:700}.split{grid-template-columns:1.25fr .75fr;align-items:start}.safe{background:var(--green);color:white;border:0}.safe .label{color:#b7d5c9}.safe strong{font-size:34px;letter-spacing:-1px}.safe p{margin:8px 0 0;color:#cbe3d9;font-size:13px}.progress{height:9px;background:#e6ebe8;border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--green);border-radius:99px}.bar-row{display:grid;grid-template-columns:116px 1fr auto;gap:9px;align-items:center;margin:12px 0;font-size:13px}.bar-row .progress>i{background:var(--blue)}.bar-row.over .progress>i{background:var(--red)}.bar-row b{font-size:12px}.list{padding:0;margin:0;list-style:none}.item{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line)}.item:first-child{border-top:0}.bubble{width:36px;height:36px;flex:0 0 auto;background:var(--mint);border-radius:12px;display:grid;place-items:center;font-size:18px}.item .grow{flex:1;min-width:0}.item b{display:block;font-size:14px}.item span{font-size:12px;color:var(--muted)}.amount{font-weight:750;text-align:right;white-space:nowrap}.amount.income{color:var(--green)}.pill{display:inline-block;padding:3px 7px;border-radius:99px;background:#eef2ef;color:#52605a;font-size:11px;font-weight:700}.alert{border-left:4px solid var(--gold);background:#fff9e9;padding:13px 14px;border-radius:7px;font-size:13px;line-height:1.45}.action{background:var(--green);color:#fff;border-radius:12px;padding:12px 16px;font-weight:750}.action.secondary{background:#e6eee9;color:var(--green)}.action.danger{background:#f8e5e4;color:var(--red)}.actions{display:flex;gap:8px;flex-wrap:wrap}.fab{position:fixed;right:20px;bottom:82px;width:56px;height:56px;border-radius:19px;background:var(--green);color:#fff;font-size:28px;box-shadow:var(--shadow);z-index:4}nav{position:fixed;z-index:3;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:center;overflow-x:auto;padding:5px max(8px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom))}nav button{color:var(--muted);min-width:76px;padding:6px 8px;font-size:10px;display:grid;gap:2px;place-items:center;border-radius:10px}nav b{font-size:18px;line-height:19px;font-weight:500}nav button.selected{color:var(--green);font-weight:800;background:var(--mint)}form{display:grid;gap:13px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.full{grid-column:1/-1}label{font-size:12px;font-weight:750;color:#43514b;display:grid;gap:5px}input,select,textarea{width:100%;padding:11px;border:1px solid #cad4cf;border-radius:10px;background:white;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #c9e2d8;border-color:var(--green)}textarea{min-height:72px;resize:vertical}.choices{display:flex;flex-wrap:wrap;gap:7px}.choice{border:1px solid var(--line);border-radius:99px;padding:7px 10px;font-size:12px}.choice.on{border-color:var(--green);background:var(--mint);color:var(--green);font-weight:700}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chart{height:210px;display:flex;align-items:flex-end;gap:6px;padding-top:25px;border-bottom:1px solid var(--line)}.chart i{background:var(--green);border-radius:6px 6px 0 0;flex:1;min-width:8px;position:relative}.chart i span{position:absolute;bottom:-21px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}.projection{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:17px}.projection div{padding:10px 5px;background:#f0f5f2;border-radius:9px;text-align:center}.projection small{display:block;color:var(--muted);font-size:10px}.projection b{font-size:13px}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-top:1px solid var(--line)}.switch-row:first-child{border-top:0}.switch-row p{margin:2px 0 0;color:var(--muted);font-size:12px}.toggle{appearance:none;width:44px;height:25px;border-radius:20px;background:#ccd5d0;position:relative;cursor:pointer}.toggle:checked{background:var(--green)}.toggle:after{content:"";position:absolute;width:19px;height:19px;background:#fff;border-radius:50%;left:3px;top:3px;transition:.15s}.toggle:checked:after{left:22px}dialog{border:0;border-radius:18px;padding:0;max-width:min(530px,calc(100% - 30px));width:100%;box-shadow:0 15px 55px #142a2366}dialog::backdrop{background:#10251a88}.modal-content{padding:22px}.modal-content h2{margin:0 0 8px;letter-spacing:-.5px}.modal-content p{line-height:1.5;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.empty{text-align:center;padding:31px 14px;color:var(--muted)}#toast{position:fixed;z-index:9;left:50%;bottom:84px;transform:translate(-50%,20px);opacity:0;background:#172721;color:white;padding:10px 14px;border-radius:10px;font-size:13px;transition:.25s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}.range-line{display:flex;justify-content:space-between;align-items:center;gap:12px}.range-line output{font-weight:800;color:var(--green);min-width:65px;text-align:right}@media(max-width:650px){header{height:56px;padding:0 14px}.metrics{grid-template-columns:1fr 1fr}.metrics .metric:first-child{grid-column:1/-1}.split,.two{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:100px 1fr auto}main{padding:0 14px 103px}.card{padding:15px}.hero{padding-top:13px}.projection{grid-template-columns:repeat(5,1fr)}.projection b{font-size:11px}nav{justify-content:flex-start}nav button{min-width:68px}.fab{right:16px;bottom:78px}}@media(min-width:651px){.fab{display:none}}
.mobile-quick{margin:4px 0 18px}.pay-progress{display:flex;align-items:baseline;gap:8px;margin:18px 0 10px}.pay-progress strong{font-size:34px}.pay-progress span{color:var(--muted)}.pay-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.pay-summary div{background:#f0f5f2;border-radius:12px;padding:12px}.pay-summary strong{display:block;font-size:21px}.pay-summary span{font-size:11px;color:var(--muted)}.pay-list{margin-top:12px}.pay-action{display:flex;align-items:center;gap:9px}.pay-action .action{padding:9px 11px;font-size:12px}.pay-list .received .bubble{background:var(--green);color:white}.income-plan-form fieldset{border:1px solid var(--line);border-radius:12px;margin:0 0 12px;padding:12px}.income-plan-form legend{font-weight:800;font-size:12px;padding:0 5px}dialog{max-width:min(610px,calc(100% - 30px))}.modal-content{max-height:85vh;overflow:auto}@media(max-width:650px){.mobile-quick .action{flex:1}.pay-summary strong{font-size:17px}.pay-list .item{align-items:flex-start}.pay-action{align-items:flex-end;flex-direction:column}.optional-note{display:none}.modal-actions{position:sticky;bottom:-22px;background:white;padding:10px 0 calc(4px + env(safe-area-inset-bottom));flex-wrap:wrap}}
