:root{--bg:#f7f7f8;--panel:#ffffff;--panel-2:#fbfbfc;--chip:#f1f2f4;--line:#e5e6ea;--line-soft:#eff0f3;--fg:#16171a;--fg-2:#3f4147;--muted:#71737c;--faint:#9a9ca5;--accent:#2f5fd8;--accent-sl:#eaf0fe;--ok:#12734a;--ok-sl:#e6f4ec;--warn:#8f5a06;--warn-sl:#fcf1dd;--bad:#b02a20;--bad-sl:#fceceb;--e1:0 1px 2px rgba(21,23,30,.05),0 1px 1px rgba(21,23,30,.03);--e2:0 2px 4px rgba(21,23,30,.05),0 6px 16px -6px rgba(21,23,30,.10);--r-ctl:8px;--r-srf:14px;--t-xs:.72rem;--t-sm:.82rem;--t-md:.935rem;--t-lg:1.06rem;--t-xl:1.35rem;--t-2xl:1.75rem;--t-3xl:2.4rem;--sans:var(--font-geist),-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--mono:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace}@media (prefers-color-scheme:dark){:root{--bg:#0c0d10;--panel:#15161a;--panel-2:#191a1f;--chip:#202229;--line:#282a32;--line-soft:#202229;--fg:#eceef3;--fg-2:#c3c6cf;--muted:#8e919c;--faint:#6b6e79;--accent:#7ba2ff;--accent-sl:#17203a;--ok:#4fc98a;--ok-sl:#10281d;--warn:#e3b357;--warn-sl:#2b2113;--bad:#f08a80;--bad-sl:#2e1715;--e1:0 1px 2px rgba(0,0,0,.35);--e2:0 2px 4px rgba(0,0,0,.35),0 8px 24px -8px rgba(0,0,0,.55)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;padding-bottom:env(safe-area-inset-bottom)}a{color:var(--accent);text-underline-offset:2px}.wrap{max-width:58rem;margin:0 auto;padding:0 18px 80px}header.top{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);padding:22px 0 0;border-bottom:1px solid var(--line)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){header.top{background:var(--bg)}}h1{font-size:var(--t-xl);font-weight:640;letter-spacing:-.021em;margin:0 0 2px}.sub{color:var(--muted);font-size:var(--t-sm);margin:0 0 16px}nav.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}nav.tabs::-webkit-scrollbar{display:none}nav.tabs a{flex:0 0 auto;padding:9px 13px 11px;text-decoration:none;color:var(--muted);font-size:var(--t-sm);font-weight:520;white-space:nowrap;letter-spacing:-.005em;border-bottom:2px solid transparent;border-radius:var(--r-ctl) var(--r-ctl) 0 0;transition:color .13s ease,background .13s ease}nav.tabs a:hover{color:var(--fg-2);background:var(--line-soft)}nav.tabs a[aria-current]{color:var(--fg);font-weight:620;border-bottom-color:var(--accent);background:transparent}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-srf);box-shadow:var(--e1);padding:18px;margin:18px 0}.card h2{font-size:var(--t-md);font-weight:620;letter-spacing:-.008em;margin:0 0 12px;color:var(--fg)}.muted{color:var(--muted)}.kpi{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.kpi div{flex:1 1;min-width:9rem;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:12px;padding:13px 15px 12px}.kpi b{display:block;font-family:var(--mono);font-size:var(--t-2xl);font-weight:560;letter-spacing:-.028em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.12;color:var(--fg)}.kpi span{display:block;margin-top:5px;color:var(--muted);font-size:var(--t-xs);font-weight:560;text-transform:uppercase;letter-spacing:.07em}.kpi div:first-child{flex:1.9 1 17rem}.kpi div:first-child b{font-size:var(--t-3xl);letter-spacing:-.034em;white-space:nowrap;overflow-wrap:normal}@media (max-width:40rem){.kpi div:first-child b{font-size:var(--t-2xl)}}.num{text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.9em;white-space:nowrap}table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}th{text-align:left;color:var(--faint);font-weight:600;font-size:var(--t-xs);letter-spacing:.07em;text-transform:uppercase;padding:7px 8px;border-bottom:1px solid var(--line)}td{padding:10px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--line-soft)}.chip{display:inline-block;padding:2.5px 9px;border-radius:999px;background:var(--chip);color:var(--fg-2);font-size:var(--t-xs);font-weight:600;letter-spacing:.012em;border:1px solid transparent}.chip.ok{color:var(--ok);background:var(--ok-sl);border-color:color-mix(in srgb,var(--ok) 22%,transparent)}.chip.warn{color:var(--warn);background:var(--warn-sl);border-color:color-mix(in srgb,var(--warn) 22%,transparent)}.chip.bad{color:var(--bad);background:var(--bad-sl);border-color:color-mix(in srgb,var(--bad) 22%,transparent)}.brief{font-size:var(--t-md);line-height:1.68;color:var(--fg-2)}.brief>:first-child{margin-top:0}.brief>:last-child{margin-bottom:0}.brief h1,.brief h2,.brief h3{color:var(--fg);font-weight:640;letter-spacing:-.012em;line-height:1.32}.brief h1{font-size:var(--t-lg);margin:22px 0 8px}.brief h2{font-size:var(--t-md);margin:22px 0 9px;padding-top:14px;border-top:1px solid var(--line-soft)}.brief h2:first-child{padding-top:0;border-top:0;margin-top:0}.brief h3{font-size:var(--t-sm);margin:16px 0 5px;color:var(--fg-2)}.brief p{margin:0 0 11px}.brief ol,.brief ul{margin:0 0 12px;padding-left:1.15rem}.brief li{margin:0 0 6px}.brief li::marker{color:var(--faint)}.brief strong{color:var(--fg);font-weight:620}.brief code{font-family:var(--mono);font-size:.88em;background:var(--chip);padding:1.5px 5px;border-radius:5px}.brief a{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}.brief hr{border:0;border-top:1px solid var(--line);margin:18px 0}form.add{display:flex;gap:8px;margin-bottom:16px}input[type=date],input[type=password],input[type=text],textarea{flex:1 1;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--panel);color:var(--fg);font-family:inherit;font-size:16px;transition:border-color .13s ease,box-shadow .13s ease}input.amt:focus,input[type=date]:focus,input[type=password]:focus,input[type=text]:focus,select.cat:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}textarea{width:100%;resize:vertical;line-height:1.6}button{padding:9px 16px;border:1px solid transparent;border-radius:var(--r-ctl);background:var(--accent);color:#fff;font-family:inherit;font-size:var(--t-sm);font-weight:600;letter-spacing:-.004em;cursor:pointer;transition:filter .13s ease,transform .06s ease}button:hover{filter:brightness(1.07)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.ghost{background:var(--panel);color:var(--muted);border-color:var(--line);padding:5px 11px;font-size:var(--t-xs)}button.ghost:hover{color:var(--fg);border-color:var(--faint);filter:none}ul.tasks{list-style:none;padding:0;margin:0}ul.tasks li{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line-soft)}ul.tasks li:last-child{border-bottom:0}ul.tasks .t{flex:1 1;min-width:0}ul.tasks .t small{display:block;color:var(--muted);font-size:var(--t-xs);margin-top:3px}.done .t{text-decoration:line-through;color:var(--faint)}.empty{color:var(--muted);font-size:var(--t-sm);padding:10px 0}.login{display:grid;place-items:center;min-height:100dvh;padding:16px}.login .card{width:100%;max-width:22rem;box-shadow:var(--e2)}.err{color:var(--bad);font-size:var(--t-sm);margin-bottom:10px}.bar{display:flex;height:6px;border-radius:3px;background:var(--chip);overflow:hidden;margin-top:6px}.bar i{display:block;flex:none;height:100%;background:var(--ok)}.bar i.oneoff{background:repeating-linear-gradient(135deg,var(--ok) 0 3px,transparent 3px 6px)}.bar i.oneoff.over{background:repeating-linear-gradient(135deg,var(--bad) 0 3px,transparent 3px 6px)}.bar i.over{background:var(--bad)}input.amt{width:6.5rem;padding:6px 9px;font-size:16px;text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}input.amt,select.cat{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--fg)}select.cat{padding:6px 8px;font-family:inherit;font-size:var(--t-xs);max-width:9.5rem}form.row{display:flex;gap:6px;align-items:center;margin-top:5px}.scroll{overflow-x:auto}.pushbar{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:var(--t-xs);color:var(--muted);margin:0 0 14px}.pushbar button{padding:5px 11px;font-size:var(--t-xs)}.reply{margin-top:10px;padding:11px 13px;border-left:2px solid var(--accent);background:var(--panel-2);border-radius:0 var(--r-ctl) var(--r-ctl) 0}.reply small{display:block;margin:0 0 6px;color:var(--muted);font-size:var(--t-xs)}.choices{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}button.pick{background:var(--panel);color:var(--fg-2);border-color:var(--line);padding:5px 11px;font-size:var(--t-xs);font-weight:520}button.pick:hover{border-color:var(--faint);filter:none}button.pick.best{border-color:var(--accent);color:var(--accent);font-weight:620}.sub1{display:block;color:var(--muted);font-size:var(--t-xs);font-weight:400}.notice{padding:11px 14px;font-size:var(--t-sm)}.notice.ok{border-color:var(--ok);background:var(--ok-sl)}.notice.warn{border-color:var(--warn);background:var(--warn-sl)}.notice.bad{border-color:var(--bad);background:var(--bad-sl);color:var(--bad)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}fieldset.pills{border:0;padding:0;margin:9px 0 0;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.pills label{position:relative}.pills input{position:absolute;opacity:0;width:1px;height:1px;left:50%;bottom:0}.pills span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:var(--t-xs);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--panel);transition:border-color .12s ease,background .12s ease}.pills span:hover{border-color:var(--faint)}.pills span.best{border-color:var(--accent);color:var(--accent);font-weight:620}.pills input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.pills input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.extra{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:9px}.extra input[type=text]{flex:1 1 11rem;min-width:0;padding:7px 10px;font-size:16px}label.tick{display:flex;align-items:center;gap:6px;font-size:var(--t-sm);white-space:nowrap}label.tick input{width:18px;height:18px;accent-color:var(--accent)}div.row{display:flex;gap:6px;align-items:center;margin-top:7px}details.edit{margin-top:5px}details.edit summary{cursor:pointer;color:var(--accent);font-size:var(--t-xs);list-style:none}details.edit summary::-webkit-details-marker{display:none}details.edit[open] summary{margin-bottom:3px}small.note{color:var(--fg)!important;font-style:italic}.subnav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px;margin:18px 0 0}.subnav nav{display:flex;gap:3px;background:var(--chip);border-radius:10px;padding:3px}.subnav nav a{padding:6px 13px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:var(--t-sm);font-weight:520;white-space:nowrap;transition:color .12s ease}.subnav nav a:hover{color:var(--fg-2)}.subnav nav a[aria-current]{background:var(--panel);color:var(--fg);font-weight:600;box-shadow:var(--e1)}.subnav .month{display:flex;align-items:center;gap:11px;font-size:var(--t-md);font-weight:600}.subnav .month a,.subnav .month span.muted{text-decoration:none;font-size:1.1rem;padding:2px 8px}details.group{border-bottom:1px solid var(--line-soft)}details.group:last-child{border-bottom:0}details.group>summary{display:flex;justify-content:space-between;align-items:baseline;gap:11px;padding:12px 0;cursor:pointer;list-style:none}details.group>summary::-webkit-details-marker{display:none}details.group>summary:hover .g-name{color:var(--accent)}details.group>summary .g-name{font-weight:600;transition:color .12s ease}details.group>summary .g-name:before{content:"\25B8";display:inline-block;width:1.1em;color:var(--faint);transition:transform .16s ease}details.group[open]>summary .g-name:before{transform:rotate(90deg)}details.group>summary .g-sum{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;font-size:var(--t-sm)}details.group>summary .g-sum small{color:var(--muted);font-family:var(--sans)}details.group .g-body,details.group ul.tasks{margin:0 0 9px 1.1em}details.group .g-body ul.tasks{margin:0}details.group.cgroup{border-bottom:1px dashed var(--line)}details.group.cgroup>summary{padding:9px 0}details.group.cgroup>summary .g-name{font-weight:500;font-style:italic}a.catlink{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}a.catlink:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}button.linkish{background:none;border:0;color:var(--muted);padding:0 0 0 10px;font-size:var(--t-xs);font-weight:520;text-decoration:underline;cursor:pointer}button.linkish:hover{color:var(--fg);filter:none}details.cash>summary{cursor:pointer;list-style:none;font-size:var(--t-md)}details.cash>summary::-webkit-details-marker{display:none}details.cash[open]>summary{margin-bottom:7px}details.card.cash .g-body{margin:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}