@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#20332d;background:#f1f4ef;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}:root{--green:#153f33;--mint:#b9f4d2;--lime:#d8f574;--ink:#20332d;--muted:#718079;--paper:#fbfcf8;--line:#dce3dc}#root{min-height:100vh}.app-shell{width:min(100%,480px);margin:0 auto;min-height:100vh;padding:0 18px 116px;position:relative;background:#f8faf6;box-shadow:0 0 50px #1e372d14}.topbar{display:flex;align-items:center;gap:11px;padding:22px 0 18px}.brand-mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--green);color:var(--mint)}.topbar p,.topbar h1{margin:0}.topbar p{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#789086}.topbar h1{font:700 17px/1.2 Manrope,sans-serif}.topbar .icon-button{margin-left:auto}.icon-button{border:0;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:var(--ink);background:#e9eee8;cursor:pointer}.icon-button.subtle{width:36px;height:36px;background:transparent}.month-nav{border:1px solid var(--line);background:#fff;border-radius:17px;display:flex;align-items:center;justify-content:space-between;padding:8px 9px;margin-bottom:13px}.month-nav div{text-align:center}.month-nav span,.section-title span,.annual-copy span{display:block;font-size:9px;font-weight:800;letter-spacing:1.35px;color:#84928c}.month-nav strong{display:block;font:700 14px Manrope,sans-serif;text-transform:capitalize;margin-top:1px}.hero-card{background:var(--green);color:#fff;border-radius:25px;padding:23px 22px 20px;box-shadow:0 14px 30px #133e3126}.eyebrow{display:flex;align-items:center;gap:7px;color:var(--mint);font-size:10px;font-weight:800;letter-spacing:1.35px}.hero-value{display:flex;align-items:baseline;gap:9px;margin:13px 0 16px}.hero-value strong{font:800 43px/1 Manrope,sans-serif;letter-spacing:-2px}.hero-value span{color:#bed0c9;font-size:14px}.progress{height:7px;border-radius:9px;overflow:hidden;background:#ffffff21}.progress i{display:block;height:100%;border-radius:inherit;background:var(--lime);transition:width .3s}.balance{color:#c5d2cd;font-size:13px;margin-top:13px}.balance b{color:#fff}.balance.positive{color:var(--mint);display:flex;gap:6px;align-items:center}.annual-card{display:flex;align-items:center;gap:12px;background:#edf0dd;border:1px solid #e0e5ce;border-radius:20px;padding:15px;margin-top:12px}.annual-icon{width:42px;height:42px;border-radius:14px;background:#fff;display:grid;place-items:center;color:var(--green)}.annual-copy{flex:1}.annual-copy strong{display:block;margin-top:3px;font:800 18px Manrope,sans-serif}.annual-copy small{font-size:12px;color:#7c887a}.annual-remaining{border-left:1px solid #d4dac8;padding-left:13px;text-align:right}.annual-remaining span{display:block;color:#849084;font-size:10px}.annual-remaining b{display:block;font:800 14px Manrope,sans-serif}.annual-remaining.over b{color:#28865e}.entries-section{margin-top:27px}.section-title{display:flex;justify-content:space-between;align-items:end;margin:0 2px 12px}.section-title h2{margin:2px 0 0;font:800 20px Manrope,sans-serif}.section-title .count{min-width:28px;height:28px;padding:0 8px;border-radius:9px;display:grid;place-items:center;background:#e5ebe4;color:#52645d;font-size:11px}.entries-list{display:grid;gap:9px}.entry{display:flex;align-items:center;min-height:70px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:11px 12px}.date-badge{width:45px;height:46px;flex:0 0 auto;display:grid;place-content:center;text-align:center;border-radius:13px;background:#eff3ed}.date-badge b{font:800 17px/1 Manrope,sans-serif}.date-badge span{color:#75837d;font-size:10px;text-transform:uppercase;margin-top:3px}.entry-copy{min-width:0;flex:1;margin-left:13px}.entry-copy strong,.entry-copy span{display:block}.entry-copy strong{font:800 17px Manrope,sans-serif}.entry-copy span{color:#7b8983;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.delete-button{border:0;background:transparent;color:#a1aca7;width:36px;height:36px;display:grid;place-items:center;cursor:pointer}.delete-button:hover{color:#b64f4f}.empty-state{border:1px dashed #cfd8d0;border-radius:20px;text-align:center;padding:28px 24px;color:var(--muted)}.empty-state div{margin:0 auto 10px;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;color:var(--green);background:#e9efe9}.empty-state h3{margin:0 0 4px;font:700 15px Manrope,sans-serif;color:var(--ink)}.empty-state p{margin:0 auto;font-size:12px;max-width:250px;line-height:1.5}.fab{position:fixed;z-index:5;bottom:max(23px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(calc(100% - 36px),444px);border:0;border-radius:17px;padding:16px;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;background:var(--green);font-weight:800;cursor:pointer;box-shadow:0 14px 25px #133e3140}.backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:flex;align-items:end;justify-content:center;background:#0b191580;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{position:relative;width:min(100%,480px);padding:30px 22px max(24px,env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:var(--paper);animation:rise .2s ease-out}.modal-handle{position:absolute;top:9px;left:50%;width:42px;height:4px;border-radius:5px;transform:translate(-50%);background:#ccd4cd}.modal-close{position:absolute;right:18px;top:22px}.modal form>h2{margin:3px 0 5px;font:800 25px Manrope,sans-serif}.modal form>p{margin:0 50px 22px 0;color:var(--muted);font-size:13px;line-height:1.45}.form-kicker{font-size:9px;font-weight:800;letter-spacing:1.4px;color:#668076}.modal label{display:block;margin-top:13px;font-size:12px;font-weight:700}.modal label small{font-weight:500;color:#8b9792}.modal input{display:block;width:100%;margin-top:6px;padding:14px;border:1px solid #d7ded7;border-radius:13px;outline:none;color:var(--ink);background:#fff}.modal input:focus{border-color:#6b9d89;box-shadow:0 0 0 3px #6b9d8921}.primary-button{width:100%;border:0;border-radius:15px;padding:15px;margin-top:20px;color:#fff;background:var(--green);font-weight:800;cursor:pointer}@keyframes rise{0%{transform:translateY(20px);opacity:.5}}@media(min-width:700px){.app-shell{margin-top:24px;min-height:calc(100vh - 48px);border-radius:28px;overflow:hidden}.fab{bottom:42px}.modal{border-radius:28px;margin-bottom:24px}}.edit-entry{border:0;background:transparent;padding:0;text-align:left;color:var(--ink);cursor:pointer}.edit-button{border:0;background:transparent;color:#a1aca7;width:34px;height:36px;display:grid;place-items:center;cursor:pointer}.edit-button:hover{color:var(--green)}
