:root{--bg:#f4f6f3;--card:#fff;--ink:#17201c;--muted:#69736e;--line:#e3e8e4;--brand:#0f766e;--brand-soft:#e0f2ef;--pos:#2b8a3e;--neg:#c92a2a;--warn:#f08c00;--radius:16px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0f1412;--card:#18201d;--ink:#e8eeea;--muted:#96a29c;--line:#26302c;--brand:#2dd4bf;--brand-soft:#123a35;--pos:#51cf66;--neg:#ff6b6b}}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0}h3{margin-bottom:12px;font-size:1rem}.app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:5;background:var(--bg);padding:calc(10px + env(safe-area-inset-top)) 18px 10px;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--brand-soft);color:var(--brand);border-radius:99px;padding:3px 7px;font-size:.68rem;font-weight:700}.sync-pill{border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;border-radius:99px;padding:5px 11px;font-size:.78rem;font-weight:600}.sync-pill.synced{color:var(--pos)}.sync-pill.error{color:var(--neg);border-color:var(--neg)}.notice.error{background:color-mix(in srgb, var(--neg) 14%, transparent)}.brand{align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex}.logo{background:var(--brand);color:#fff;border-radius:9px;place-items:center;width:30px;height:30px;font-weight:800;display:grid}@media (prefers-color-scheme:dark){.logo{color:#062420}}.content{padding:4px 14px calc(96px + env(safe-area-inset-bottom));flex:1}.stack{flex-direction:column;gap:12px;display:flex}.tabbar{z-index:10;background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:130px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:.72rem;display:flex}.tabbar button.active{color:var(--brand);background:var(--brand-soft)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card.tight{padding:4px 12px}.card-head{justify-content:space-between;align-items:baseline;display:flex}.hero{background:var(--brand);color:#fff;border:0}@media (prefers-color-scheme:dark){.hero{color:#062420}}.hero .label{opacity:.85;font-size:.85rem}.hero .big{letter-spacing:-.02em;margin:2px 0 10px;font-size:2.1rem;font-weight:800}.hero-row{opacity:.95;flex-wrap:wrap;gap:14px;font-size:.82rem;display:flex}.hero-row b{font-size:1rem;display:block}.hero .pos,.hero .neg{color:inherit}.budget{margin-top:14px}.budget-text{opacity:.9;margin-top:6px;font-size:.8rem}.hero .bar{background:#ffffff40}.hero .fill{background:#fff}.hero .fill.warn{background:#ffd43b}.hero .fill.over{background:#ffa8a8}.bar{background:var(--line);border-radius:99px;height:8px;overflow:hidden}.bar.thin{height:6px;margin-top:6px}.fill{background:var(--brand);border-radius:99px;height:100%;transition:width .3s}.month-switch{justify-content:space-between;align-items:center;display:flex}.month-switch h2{font-size:1.05rem}.month-switch button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;width:38px;height:38px;font-size:1.3rem}.month-switch button:disabled{opacity:.35}.daily{width:100%;height:70px;display:block}.daily rect{fill:var(--brand);opacity:.55}.daily rect.today{opacity:1}.axis{color:var(--muted);justify-content:space-between;margin-top:4px;font-size:.7rem;display:flex}.cats{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.cat-line{justify-content:space-between;gap:8px;font-size:.9rem;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px;margin-right:6px;display:inline-block}.list{flex-direction:column;display:flex}.txn{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:11px 0;display:flex}.txn:last-child{border-bottom:0}.txn-main{flex-direction:column;flex:1;min-width:0;display:flex}.txn-merchant{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.txn-meta{color:var(--muted);font-size:.78rem}.txn-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.txn-amount.income{color:var(--pos)}.txn-amount.transfer{color:var(--muted)}.day-head{justify-content:space-between;padding:4px 4px 6px;font-size:.82rem;font-weight:600;display:flex}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 12px;display:flex}.empty h1{letter-spacing:-.02em;font-size:1.6rem}.empty p{color:var(--muted);max-width:34ch;margin:0}.empty button{width:100%;max-width:320px}button.primary,button.ghost,button.danger{cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:46px;padding:12px 16px;font-weight:600}button.primary{background:var(--brand);color:#fff}@media (prefers-color-scheme:dark){button.primary{color:#062420}}button.ghost{background:var(--card);border-color:var(--line)}button.danger{background:var(--neg);color:#fff}.danger-text{color:var(--neg)}button:disabled{opacity:.45;cursor:default}button.link{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.row{gap:10px;margin-top:12px;display:flex}.row>*{flex:1}.segmented{background:var(--line);border-radius:12px;gap:3px;padding:3px;display:flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;padding:9px;font-weight:600}.segmented button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014}.segmented.small button{padding:7px;font-size:.88rem}textarea,input,select{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;padding:11px 12px;font-size:16px}textarea{resize:vertical;margin-top:4px}textarea:focus,input:focus,select:focus{outline:2px solid var(--brand);outline-offset:-1px}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.form label.inline{color:var(--ink);flex-direction:row;align-items:center;gap:8px}.form label.inline input{width:auto}.two{gap:10px;display:flex}.two>*{flex:1;min-width:0}.review{margin:0;padding:0;list-style:none}.review li{border-bottom:1px solid var(--line);gap:10px;padding:10px 0;display:flex}.review li.off{opacity:.45}.check input{width:20px;height:20px;margin-top:2px}.review-main{flex:1;min-width:0}.review-top{justify-content:space-between;gap:8px;display:flex}.review-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;font-size:.8rem;display:flex}.review-meta select{border-radius:8px;width:auto;padding:4px 8px;font-size:.8rem}.failed{color:var(--muted);margin-top:12px;font-size:.85rem}.failed ul{padding-left:18px}.failed li{word-break:break-word;margin:6px 0}.filters{gap:8px;display:flex}.filters input{flex:1;min-width:0}.filters select{flex:none;width:auto;max-width:52%}.notice{background:var(--brand-soft);color:var(--ink);border-radius:12px;margin:10px 0 0;padding:10px 12px;font-size:.9rem}.muted{color:var(--muted)}.small{font-size:.85rem}.fine{font-size:.78rem}.center{text-align:center}.pos{color:var(--pos)}.neg{color:var(--neg)}.sheet-backdrop{z-index:20;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;max-height:92dvh;padding:10px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.2s ease-out up;overflow-y:auto}.sheet-handle{background:var(--line);border-radius:4px;width:40px;height:4px;margin:0 auto 14px}@keyframes up{0%{opacity:0;transform:translateY(30px)}}
