@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/ffc7b595a48b6846-s.2k_u76ydap2io.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.31_i6ngnt52xa.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/82b67ad56d243b47-s.2p5l8hwveaaiz.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/33ee198db9637ef4-s.1_g-53zz09yvy.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fbb7028efdf70529-s.2gp_y-cmv6-ey.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/82450a180bcad83c-s.p.2ywnh8m32q6p0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.suUhcW_className{font-family:Manrope,Manrope Fallback;font-style:normal}.suUhcW_variable{--font-manrope:"Manrope", "Manrope Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b8ccc630e9b93600-s.00ewlnc1znsu7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1ab3e5abcf77747f-s.0bnyh_2yo1emg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/edb99fec956915f8-s.p.0glcd8n2pdab0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b8ccc630e9b93600-s.00ewlnc1znsu7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1ab3e5abcf77747f-s.0bnyh_2yo1emg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/edb99fec956915f8-s.p.0glcd8n2pdab0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b8ccc630e9b93600-s.00ewlnc1znsu7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1ab3e5abcf77747f-s.0bnyh_2yo1emg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/edb99fec956915f8-s.p.0glcd8n2pdab0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.xf2_zW_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.xf2_zW_variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}
:root{--bg:#faf8f5;--bg-deep:#f1eee9;--surface:#fff;--surface-2:#fbfaf9;--ink:#1a202e;--ink-2:#555c6d;--ink-3:#8b909c;--line:#e6e1db;--line-strong:#d3cdc5;--accent:#1c7856;--accent-ink:#0e4e36;--accent-soft:#e1f4eb;--income:#27865a;--expense:#d84231;--expense-soft:#fceae8;--warn:#e18b09;--warn-soft:#fef2d7;--radius-sm:10px;--radius:16px;--radius-lg:22px;--shadow-sm:0 1px 2px #3d33290f;--shadow:0 1px 2px #3d33290d, 0 8px 24px -12px #40332624;--shadow-lg:0 2px 4px #3d33290d, 0 24px 48px -20px #40332638;--font-sans:var(--font-manrope), system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:var(--font-fraunces), Georgia, serif;--sidebar-w:248px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(1200px 600px at 100% -10%, #e2f3ebb3, transparent 60%), radial-gradient(900px 500px at -10% 110%, #f7ebdeb3, transparent 60%), var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1, "cv11" 1;background-attachment:fixed;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:500;line-height:1.1}.page-title{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:clamp(1.75rem,1.2rem + 1.6vw,2.35rem);font-weight:500;line-height:1.1}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:700}.muted{color:var(--ink-2)}.money{font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.money.pos{color:var(--income)}.money.neg{color:var(--expense)}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfaf8b3;flex-direction:column;gap:28px;height:100dvh;padding:28px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 10px;display:flex}.brand-mark{color:#fff;width:34px;height:34px;font-family:var(--font-display);box-shadow:inset 0 1px 0 #ffffff40, var(--shadow-sm);background:linear-gradient(145deg,#278663,#0f5746);border-radius:10px;place-items:center;font-size:1.15rem;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.35rem}.nav{flex-direction:column;gap:2px;display:flex}.nav-link{color:var(--ink-2);transition:background .2s var(--ease), color .2s var(--ease);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-size:.93rem;font-weight:600;display:flex}.nav-link svg{flex:none;width:19px;height:19px}.nav-link:hover{background:var(--bg-deep);color:var(--ink)}.nav-link[aria-current=page]{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--line)}.sidebar-foot{flex-direction:column;gap:12px;margin-top:auto;display:flex}.tg-hint{border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);padding:14px;font-size:.83rem}.tg-hint strong{color:var(--ink);margin-bottom:2px;display:block}.main{min-width:0;padding:36px clamp(18px,4vw,48px) 64px}.main-inner{max-width:1120px;animation:rise .45s var(--ease) both;flex-direction:column;gap:24px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head p{margin:6px 0 0}.tabbar{display:none}@media (max-width:880px){.shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:22px 16px 104px}.tabbar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-lg), inset 0 0 0 1px var(--line);background:#ffffffdb;border-radius:20px;grid-template-columns:repeat(4,1fr);padding:6px;display:grid;position:fixed;inset:auto 12px 12px}.tabbar .nav-link{text-align:center;flex-direction:column;gap:3px;padding:8px 4px;font-size:.7rem}}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow), inset 0 0 0 1px #eae6e1e6;min-width:0;padding:22px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-title{letter-spacing:-.01em;margin:0;font-size:.98rem;font-weight:700}.grid{gap:18px;display:grid}.grid-stats{grid-template-columns:1.4fr 1fr 1fr}.grid-2{grid-template-columns:1.15fr 1fr}.grid-2-even{grid-template-columns:1fr 1fr}@media (max-width:980px){.grid-stats,.grid-2,.grid-2-even{grid-template-columns:1fr}}.hero-stat{color:#f2f8f5;box-shadow:var(--shadow-lg);background:radial-gradient(500px 220px at 110% -20%,#2eb8738c,#0000 60%),linear-gradient(150deg,#195744,#0d352e);position:relative;overflow:hidden}.hero-stat:after{content:"";mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.08'/></svg>");position:absolute;inset:0}.hero-stat .eyebrow{color:#bddbcc}.stat-value{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:10px 0 6px;font-size:clamp(1.9rem,1.4rem + 1.5vw,2.6rem);line-height:1.05}.stat-sub{color:var(--ink-3);font-size:.85rem}.hero-stat .stat-sub{color:#b9d5c7}.stat-icon{border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.stat-icon.in{background:var(--accent-soft);color:var(--income)}.stat-icon.out{background:var(--expense-soft);color:var(--expense)}.btn{cursor:pointer;white-space:nowrap;height:40px;transition:transform .15s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), opacity .2s;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.9rem;font-weight:700;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:inset 0 1px #ffffff2e,0 6px 16px -8px #19664ab3}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-ghost{color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--ink)}.btn-sm{border-radius:10px;height:32px;padding:0 12px;font-size:.82rem}.icon-btn{width:32px;height:32px;color:var(--ink-3);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:9px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--expense-soft);color:var(--expense)}.icon-btn svg{width:16px;height:16px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--ink-2);font-size:.78rem;font-weight:700}.input,.select{background:var(--surface-2);width:100%;height:40px;box-shadow:inset 0 0 0 1px var(--line-strong);transition:box-shadow .2s var(--ease), background .2s var(--ease);border:0;border-radius:12px;padding:0 12px}.input:hover,.select:hover{background:var(--surface)}.input:focus,.select:focus{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 4px #1f7a591f;outline:none}.form-row{align-items:end;gap:12px;display:grid}.segmented{background:var(--bg-deep);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;padding:3px;display:inline-flex}.segmented a,.segmented label{color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);border-radius:9px;padding:6px 12px;font-size:.82rem;font-weight:700}.segmented a[aria-current=true],.segmented input:checked+label{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented input{opacity:0;pointer-events:none;position:absolute}.chip{background:var(--bg-deep);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.dot{border-radius:50%;flex:none;width:8px;height:8px}.source{color:var(--ink-3);align-items:center;gap:4px;font-size:.72rem;display:inline-flex}.tx-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tx{transition:background .2s var(--ease);border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:11px 6px;display:grid}.tx+.tx{border-top:1px solid var(--line)}.tx:hover{background:var(--surface-2)}.tx-avatar{border-radius:12px;place-items:center;width:40px;height:40px;font-size:.95rem;font-weight:800;display:grid}.tx-main{min-width:0}.tx-desc{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.tx-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;font-size:.8rem;display:flex}.tx-end{align-items:center;gap:6px;display:flex}.tx .icon-btn{opacity:0}.tx:hover .icon-btn,.tx:focus-within .icon-btn{opacity:1}@media (hover:none){.tx .icon-btn{opacity:1}}.cat-select{appearance:none;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:0;font-size:.8rem;font-weight:700}.cat-select:hover{color:var(--accent-ink);text-decoration:underline}.bar{background:var(--bg-deep);border-radius:999px;height:8px;overflow:hidden}.bar>span{border-radius:inherit;background:var(--accent);transform-origin:0;height:100%;animation:grow .8s var(--ease) both;display:block}.bar.warn>span{background:var(--warn)}.bar.over>span{background:var(--expense)}.empty{text-align:center;color:var(--ink-3);padding:28px 12px;font-size:.9rem}.empty strong{color:var(--ink-2);margin-bottom:4px;display:block}.alert{background:var(--warn-soft);color:#714514;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:.88rem;display:flex}.alert.danger{background:var(--expense-soft);color:#832a21}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
