:root{--canvas: #f5f1e9;--surface: #fbf8f2;--surface-2: #ece6d9;--sunken: #efeadf;--hairline: #e6dfd1;--border: #dbd3c2;--border-strong: #c9bfa9;--text: #23201a;--text-2: #5c5545;--text-3: #857c68;--text-inv: #fbf8f2;--brand: #2a6350;--brand-hover: #22513f;--brand-on: #ffffff;--accent: #2a6350;--accent-strong: #1b4535;--accent-tint: #e5efea;--pos: #1e7a52;--neg: #be4a31;--warn: #b0781a;--pos-tint: #e3f0e8;--neg-tint: #f7e7e0;--cat-1: #2a6350;--cat-2: #b0803a;--cat-3: #35618e;--cat-4: #be4a31;--cat-5: #79567f;--cat-6: #5b6472;--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(35, 32, 26, .05), 0 1px 3px rgba(35, 32, 26, .04);--shadow-md: 0 4px 14px -2px rgba(35, 32, 26, .1), 0 2px 6px -2px rgba(35, 32, 26, .06);--shadow-lg: 0 14px 34px -6px rgba(35, 32, 26, .16);--focus: 0 0 0 3px rgba(42, 99, 80, .3);--font: "Geist", "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;color-scheme:light}[data-theme=dark]{--canvas: #15120d;--surface: #1d1912;--surface-2: #262019;--sunken: #100e09;--hairline: #302a21;--border: #3d3629;--border-strong: #524836;--text: #f1eadb;--text-2: #b4ac98;--text-3: #837b68;--text-inv: #1d1912;--brand: #4e9e82;--brand-hover: #62b196;--brand-on: #0e1f19;--accent: #4e9e82;--accent-strong: #62b196;--accent-tint: #16352a;--pos: #5ec38c;--neg: #e58366;--warn: #e0ae55;--pos-tint: #133026;--neg-tint: #351e17;--cat-1: #4e9e82;--cat-2: #cf9f52;--cat-3: #7ca6d2;--cat-4: #e58366;--cat-5: #b98fbe;--cat-6: #8a92a3;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 6px 20px -6px rgba(0, 0, 0, .55);--shadow-lg: 0 16px 40px -10px rgba(0, 0, 0, .65);--focus: 0 0 0 3px rgba(78, 158, 130, .35);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:var(--canvas);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;font-feature-settings:"cv05" 1,"cv11" 1,"ss03" 1,"zero" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer}h1,h2,h3{margin:0}.tnum{font-variant-numeric:tabular-nums lining-nums slashed-zero}.muted{color:var(--text-2)}.small{font-size:13px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.splash{display:grid;place-items:center;height:100%;color:var(--text-3)}.app{min-height:100%;display:flex;flex-direction:column}.sidebar{display:none}.content{flex:1;overflow-y:auto;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 92px)}.screen{display:flex;flex-direction:column;gap:18px;max-width:620px;margin:0 auto;width:100%}.screen.center{align-items:center;justify-content:center;min-height:60vh}.page-title{font-size:25px;font-weight:600;letter-spacing:-.02em}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;letter-spacing:-.01em}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--brand);color:var(--brand-on);display:grid;place-items:center}.hero{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.big-number{font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1.02;color:var(--text);font-variant-numeric:tabular-nums lining-nums slashed-zero;margin:6px 0 2px}.big-number .sym{font-size:.56em;color:var(--text-3);vertical-align:.08em;margin-right:1px}.big-number .cents{font-size:.48em;color:var(--text-2);vertical-align:.5em}.delta{font-size:13px;font-weight:500;color:var(--pos)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:16px 18px;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hairline)}.row:last-child{border-bottom:none}.row-main{flex:1;min-width:0}.row-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub{display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:12.5px;margin-top:1px}.row-amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:500;white-space:nowrap}.i-tile{width:38px;height:38px;border-radius:10px;background:var(--surface-2);color:var(--text-2);display:grid;place-items:center;flex:0 0 auto}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.tag{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);background:var(--surface-2);padding:3px 8px;border-radius:var(--r-xs)}.icon-btn{background:none;border:none;color:var(--text-3);padding:6px;border-radius:var(--r-sm);display:grid;place-items:center}.icon-btn:hover{color:var(--neg);background:var(--surface-2)}.link{background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:2px}.bullets{margin:8px 0 0;padding-left:18px;line-height:1.6}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tile{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:16px 8px;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:9px;font-size:12.5px;font-weight:500;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .06s}.tile:hover{border-color:var(--border-strong)}.tile:active{transform:scale(.98)}.tile .i-tile{background:var(--accent-tint);color:var(--accent)}.field{display:flex;flex-direction:column;gap:8px}.field>label,.field-label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.text-input,.pin-input,.inline-field input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--text);padding:12px 13px;font-size:16px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}.text-input:focus,.pin-input:focus{border-color:var(--accent);box-shadow:var(--focus)}.amount-wrap{display:flex;align-items:center;justify-content:center;padding:8px 0 4px}.amount-currency{font-size:30px;font-weight:600;color:var(--text-3);margin-right:2px}.amount-input{font-family:var(--font);font-size:40px;font-weight:600;letter-spacing:-.02em;text-align:center;border:none;background:none;outline:none;color:var(--text);font-variant-numeric:tabular-nums;min-width:1ch}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-pill);color:var(--text);padding:9px 14px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:7px}.chip.sel{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong)}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cat{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--text-3);padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:6px}.cat.sel{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.cat-name{font-size:11px;font-weight:500;color:var(--text);text-align:center}.cat.sel .cat-name{color:var(--accent-strong)}.inline-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.inline-field span{font-size:14px;color:var(--text-2)}.inline-field input{width:140px;font-size:15px}.seg{display:flex;background:var(--sunken);border-radius:var(--r-sm);padding:3px;gap:3px}.seg button{flex:1;background:none;border:none;color:var(--text-2);padding:9px;border-radius:6px;font-size:14px;font-weight:500}.seg button.sel{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.swatches{display:flex;gap:10px;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;outline:1px solid var(--border)}.swatch.sel{border-color:var(--surface);outline:2px solid var(--text)}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--r-sm);padding:12px 16px;font-size:14.5px;font-weight:600;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .06s,background .15s}.btn:active{transform:scale(.99)}.btn.primary{background:var(--brand);color:var(--brand-on);border-color:transparent}.btn.primary:hover{background:var(--brand-hover)}.btn.primary:disabled{opacity:.4}.btn.ghost{background:var(--surface-2);border-color:transparent}.btn.danger{color:var(--neg);background:var(--surface)}.btn.big{padding:15px}.bar{height:6px;background:var(--sunken);border-radius:var(--r-pill);overflow:hidden;margin-top:8px}.bar-fill{height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .4s cubic-bezier(.2,0,0,1)}.cat-row{padding:9px 0;border-bottom:1px solid var(--hairline)}.cat-row:last-child{border-bottom:none}.empty{text-align:center;padding:26px 16px;color:var(--text-2);display:flex;flex-direction:column;align-items:center;gap:12px}.empty .i-tile{width:50px;height:50px;border-radius:14px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--hairline);padding:9px 10px calc(env(safe-area-inset-bottom) + 9px);z-index:20}.tab{background:none;border:none;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;flex:1}.tab.active{color:var(--accent)}.add-tab{background:var(--brand);width:50px;height:50px;border-radius:14px;color:var(--brand-on);flex:0 0 auto;display:grid;place-items:center;box-shadow:var(--shadow-md);border:none;margin-top:-12px}.side-nav{display:flex;flex-direction:column;gap:2px;margin-top:26px}.side-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);color:var(--text-2);background:none;border:none;font-size:14.5px;font-weight:500;text-align:left;width:100%}.side-link:hover{background:var(--surface-2);color:var(--text)}.side-link.active{background:var(--accent-tint);color:var(--accent-strong)}.side-add{margin-top:14px}.lock{display:grid;place-items:center;min-height:100%;padding:24px}.lock-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:32px 26px;width:100%;max-width:360px;text-align:center;box-shadow:var(--shadow-md)}.lock-mark{width:56px;height:56px;border-radius:15px;margin:0 auto 14px;background:var(--brand);color:var(--brand-on);display:grid;place-items:center}.lock h1{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:4px 0}.lock .btn{margin-top:4px}.error{color:var(--neg);font-size:13px}.saved{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--accent-strong);font-size:17px;font-weight:600}.saved .i-tile{width:60px;height:60px;border-radius:16px;background:var(--accent-tint);color:var(--accent)}.stack{display:flex;flex-direction:column;gap:10px}@media(min-width:860px){.app{flex-direction:row}.sidebar{display:flex;flex-direction:column;width:248px;flex:0 0 248px;height:100vh;position:sticky;top:0;padding:26px 16px;border-right:1px solid var(--hairline);background:var(--surface)}.tabbar{display:none}.content{padding:40px 48px 48px}.screen{max-width:760px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.grid-2>*{margin:0}.cat-grid{grid-template-columns:repeat(6,1fr)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}html{-webkit-text-size-adjust:100%}:where(button,a,input,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus)}button:disabled{cursor:not-allowed}button,.tab,.chip,.cat,.tile,.side-link{touch-action:manipulation}.tab,.side-link,.chip,.cat,.tile,.icon-btn,.link{transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .06s ease}.icon-btn{min-width:40px;min-height:40px}.tab,.add-tab,.btn,.chip,.cat,.tile,.side-link,.brand{-webkit-user-select:none;user-select:none}.row-amt.pos{color:var(--pos)}.tabbar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
