:root{--bg: #f2f2f7;--card: #ffffff;--raise: #eeeef3;--ink: #000000;--ink2: rgba(60, 60, 67, .6);--sep: rgba(60, 60, 67, .29);--barbg: rgba(249, 249, 249, .94);--tint: #007aff;--green: #248a3d;--red: #d70015;--c-under: #2a78d6;--c-over: #e34948;--grid: rgba(60, 60, 67, .14);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #000000;--card: #1c1c1e;--raise: #2c2c2e;--ink: #ffffff;--ink2: rgba(235, 235, 245, .6);--sep: rgba(84, 84, 88, .65);--barbg: rgba(22, 22, 24, .94);--tint: #0a84ff;--green: #30d158;--red: #ff453a;--c-under: #3987e5;--c-over: #e66767;--grid: rgba(235, 235, 245, .16);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.app{min-height:100dvh;display:flex;flex-direction:column}.page{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:34rem;margin:0 auto;padding:calc(8px + env(safe-area-inset-top)) 0 28px}.largetitle{margin:10px 20px 16px;font-size:34px;font-weight:700;letter-spacing:-.5px}.secthead{margin:28px 20px 7px;font-size:13px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:var(--ink2)}.card{background:var(--card);border-radius:12px;margin:0 16px;overflow:hidden}.foot{margin:7px 20px 0;font-size:13px;line-height:1.4;color:var(--ink2)}.pad{padding:16px}.empty{padding:26px 16px;text-align:center;color:var(--ink2)}.err{color:var(--red)}.muted{color:var(--ink2)}.list>*{position:relative}.list>*:not(:last-child):after{content:"";position:absolute;left:16px;right:0;bottom:0;height:.5px;background:var(--sep)}.row{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:44px;padding:11px 16px}.rk{color:var(--ink);min-width:0}.rv{color:var(--ink2);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rv.pos{color:var(--green)}.rv.neg{color:var(--red)}.row.danger{color:var(--red);background:none;border:0;width:100%;font:inherit;text-align:left;cursor:pointer;display:block}.hero{text-align:center;padding:28px 20px 24px}.big{margin:0;font-size:clamp(42px,13.5vw,56px);font-weight:700;line-height:1;letter-spacing:-1.6px;font-variant-numeric:tabular-nums}.big.pos{color:var(--green)}.big.neg{color:var(--red)}.caption{margin:10px 0 0;font-size:15px;color:var(--ink2)}.caption.spread{display:flex;justify-content:space-between;margin-top:9px}.perday{display:inline-block;margin:15px 0 0;padding:5px 13px;border-radius:99px;background:var(--raise);font-size:14px;font-variant-numeric:tabular-nums}.track{height:8px;background:var(--raise);border-radius:99px;overflow:hidden}.track.big{height:10px}.track i{display:block;height:100%;background:var(--tint);border-radius:0 4px 4px 0}.chartbox{position:relative;padding:14px 8px 6px}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--grid);stroke-width:1}.chart .axis{font-size:9px;fill:var(--ink2);font-variant-numeric:tabular-nums}.chart .axis.end{text-anchor:end}.chart .axis.mid{text-anchor:middle}.chart .bar.under{fill:var(--c-under)}.chart .bar.over{fill:var(--c-over)}.chart .target{stroke:var(--ink2);stroke-width:2;stroke-linecap:round}.tip{position:absolute;top:6px;left:50%;transform:translate(-50%);background:var(--raise);border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.35;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #00000029}.tip strong{font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.tip .dot{width:8px;height:8px;border-radius:99px;flex:none}.tip .dot.under{background:var(--c-under)}.tip .dot.over{background:var(--c-over)}.legendline{margin:6px 0 0;text-align:center;font-size:11px;color:var(--ink2)}.cats{list-style:none;margin:0;padding:8px 16px 14px}.cats li{padding:9px 0}.catrow{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.catname{display:flex;align-items:center;gap:5px;font-size:16px}.catval{font-size:16px;font-variant-numeric:tabular-nums}.cap{font-style:normal;font-size:12px;color:var(--ink2)}.cats .track{margin:8px 0 5px;height:8px}.cats .track i{background:var(--c-under)}.catmeta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink2)}.daygroup{margin-top:18px}.dayhead{display:flex;justify-content:space-between;margin:0 20px 7px;font-size:13px;font-weight:400;color:var(--ink2);font-variant-numeric:tabular-nums}.row.txn{align-items:flex-start}.row.txn .rk{display:flex;flex-direction:column;gap:2px}.tline{display:flex;align-items:center;gap:6px}.row.txn .sub{font-size:13px;line-height:1.35;color:var(--ink2)}.pill{font-style:normal;font-size:11px;color:var(--ink2);background:var(--raise);border-radius:5px;padding:1px 5px}.tabbar{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:var(--barbg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--sep);padding-bottom:env(safe-area-inset-bottom)}.tabitem{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;font:inherit;font-size:10px;font-weight:500;color:var(--ink2)}.tabitem svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.tabitem svg .fill{fill:currentColor;stroke:none}.tabitem.on{color:var(--tint)}.shell{min-height:100dvh;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.shell .card{width:100%;max-width:24rem;margin:0;padding:26px 22px}.title{margin:0 0 20px;font-size:22px;font-weight:700;letter-spacing:-.3px}.label{display:block;margin:0 0 6px;font-size:13px;color:var(--ink2)}.input{width:100%;padding:12px 14px;margin:0 0 14px;background:var(--bg);color:var(--ink);border:1px solid var(--sep);border-radius:10px;font-size:16px}.input:focus{outline:2px solid var(--tint);outline-offset:1px}.btn{width:100%;padding:13px 16px;background:var(--tint);color:#fff;border:0;border-radius:11px;font:inherit;font-weight:600;cursor:pointer}.btn:disabled{opacity:.45;cursor:default}.stamp{text-align:center;color:var(--ink2);font-size:13px;padding:4px 0 2px;font-variant-numeric:tabular-nums}.stamp .link{font-size:inherit}.btn.slim{width:auto;padding:9px 20px;margin-top:14px}
