:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #15131c;--surface: #211e2b;--surface-2: #2d2939;--border: rgba(255, 255, 255, .08);--text: #fbf7f2;--text-muted: #a9a3b8;--accent: #ff7a64;--accent-2: #ffa48f;--on-accent: #1a1420;--highlight: #ffe066;--danger: #ff6b81;--success: #7ee0b5;--radius: 20px;--radius-sm: 14px;--tap: 44px;--cat-good-life: #c08cff;--cat-home: #ffd25e;--cat-personal: #ff8fb8;--cat-transport: #6fc3ff;--cat-payments: #ff9e7a;--cat-in: #7ee0b5;--cat-transfer: #8a84a3;--cat-other: #b9b2c9}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}#app{min-height:100vh;display:flex;flex-direction:column}.tap-target{min-height:var(--tap);min-width:var(--tap)}.top-bar{display:flex;align-items:center;gap:.75rem;padding:calc(.85rem + env(safe-area-inset-top)) 1rem .85rem;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.15rem;letter-spacing:.01em}.content{flex:1;display:flex;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.state{margin:auto;max-width:28rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.state h1{margin:0;font-size:1.35rem}.muted{margin:0;color:var(--text-muted);line-height:1.5}.state-error h1{color:var(--danger)}.button{margin-top:.75rem;padding:0 1.25rem;border:none;border-radius:var(--radius-sm);background:var(--accent);cursor:pointer}a.button{display:inline-flex;align-items:center;justify-content:center;color:var(--text);text-decoration:none;min-height:var(--tap)}.link-as-button{display:inline-flex;align-items:center;justify-content:center;color:var(--text);text-decoration:none}.button:hover,.button:focus-visible{background:var(--accent-2)}.spinner{width:2rem;height:2rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.top-bar{flex-wrap:wrap}.nav{display:flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}.nav-link{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 .75rem;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none}.nav-link.active,.nav-link:hover,.nav-link:focus-visible{color:var(--text);background:var(--surface-2)}.link-button{border:none;background:none;cursor:pointer}.stack{width:100%;max-width:40rem;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.stack.narrow{max-width:24rem;margin:auto}.stack h1{margin:0;font-size:1.35rem}.card{padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card h1,.card h2{margin:0;font-size:1.15rem}.form{display:flex;flex-direction:column;gap:.85rem}.form label{display:flex;flex-direction:column;gap:.35rem;color:var(--text-muted);font-size:.9rem}.form input,.form select{min-height:var(--tap);padding:0 .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:1rem}.form input:focus-visible,.form select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form .button{margin-top:.25rem}.form-error{margin:0;color:var(--danger)}.form-error[hidden]{display:none}.row{display:flex;flex-wrap:wrap;gap:.5rem}.test-sign-in{display:flex;flex-direction:column;gap:.5rem;border-style:dashed}.test-sign-in .button{margin-top:0}.list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.list-item{padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.5rem}.list-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pill{padding:.15rem .6rem;border-radius:999px;background:var(--surface-2);color:var(--accent-2);font-size:.8rem}.pill.on{color:var(--success)}.pill.warn{color:var(--danger)}.stack-tight>*{margin:.15rem 0}details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--accent-2)}.small{font-size:.85rem}.bad{color:var(--danger)}.button.secondary{background:var(--surface-2);border:1px solid var(--border)}.button.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.button.pill.on{color:var(--success)}.form-ok{margin:0;color:var(--success)}.form-ok[hidden]{display:none}code{word-break:break-all;color:var(--text)}.small{margin-top:0}.button.small{padding:0 .85rem}.button:disabled{opacity:.6;cursor:progress}.install-hint{display:flex;flex-direction:column;gap:.5rem}.install-hint .button{margin-top:0}.stack>.state{margin-top:2rem}@media (min-width: 768px){.content{padding:2rem}}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.row-link{color:inherit;text-decoration:none;min-height:var(--tap)}.day-heading{list-style:none;padding:.75rem 0 .25rem;font-size:.85rem;color:var(--text-muted)}select{min-height:var(--tap);font:inherit}.choices{display:grid;gap:.5rem}.button.choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:var(--surface-2);border:1px solid var(--border)}.button.choice.on{border-color:var(--success)}.figures{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;margin:0}.figures dt{color:var(--text-muted)}.figures dd{margin:0;text-align:right}.facts{margin:0;padding-left:1.1rem}textarea{width:100%;font:inherit;box-sizing:border-box}.link-button.small{align-self:flex-start;min-height:var(--tap)}.tabs{position:fixed;left:0;right:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tab{justify-content:center;gap:.35rem;border-radius:0;padding:0 .25rem;font-size:.85rem}.badge{min-width:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--accent-2);color:var(--surface);font-size:.75rem;font-weight:700;text-align:center}.content.with-tabs{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.month-picker{display:grid;grid-template-columns:var(--tap) 1fr var(--tap);align-items:center;text-align:center}.month-picker h1{margin:0;font-size:1.3rem}.month-picker .button{padding:0;justify-content:center}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.tile{display:flex;flex-direction:column;gap:.15rem}.amount.big{font-size:1.35rem}.notice{display:block;color:var(--accent-2)}.bars{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.bar{height:6px;margin-top:.3rem;border-radius:3px;background:var(--accent-2)}.trend{margin:0}.trend svg{width:100%;height:auto}.trend .axis{fill:var(--text-muted);font-size:10px}.series-income{fill:var(--success);background:var(--success)}.series-spending{fill:var(--accent-2);background:var(--accent-2)}.series-saved{fill:#fbbf24;background:#fbbf24}.legend{display:flex;gap:1rem;color:var(--text-muted)}.swatch{display:inline-block;width:.7rem;height:.7rem;margin-right:.3rem;border-radius:2px}.money-field{display:flex;align-items:center;gap:.25rem}.money-input{width:6.5rem;min-height:var(--tap);padding:0 .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;text-align:right;font-variant-numeric:tabular-nums}.line-label{display:flex;flex-direction:column}.budget-line.dropped{opacity:.65}fieldset.choices{border:none;margin:0;padding:0}.button.choice input{margin-right:.4rem}.progress{position:relative;height:8px;border-radius:4px;background:var(--surface-2)}.progress-fill{height:100%;border-radius:4px;background:var(--accent-2)}.progress-fill.over{background:var(--danger)}.progress-fill.ahead{background:#fbbf24}.progress-pace{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text)}.budget-summary h2{margin:0}details.txn>summary{list-style:none;cursor:pointer;display:block;color:inherit}details.txn>summary::-webkit-details-marker{display:none}.details{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:.5rem 0 0}.details dd{margin:0;overflow-wrap:anywhere}.filters input[type=search],.filters select,.filters input[type=date]{width:100%}a.tile{color:inherit;text-decoration:none}h1,.stack h1,.state h1{font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.card h1,.card h2{font-size:1.1rem;font-weight:700}.top-bar{background:transparent;border-bottom:none}.brand{font-weight:800;color:var(--accent)}.card{border:none;border-radius:var(--radius)}.button{border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:700}a.button{color:var(--on-accent)}.button.secondary,a.button.secondary{background:var(--surface-2);color:var(--text);border:none}.button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.button.choice{border-radius:var(--radius-sm);font-weight:500;color:var(--text)}.button.choice.on{border-color:var(--accent)}.pill{border-radius:999px}.pill.on{background:#7ee0b529;color:var(--success)}.badge{background:var(--accent);color:var(--on-accent)}.amount.big{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.amount.in{color:var(--success)}.notice{color:var(--highlight)}details>summary{color:var(--accent-2)}input,select,textarea{border-radius:var(--radius-sm)}.tabs{background:#211e2beb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.tab{flex-direction:column;gap:.15rem;padding:.4rem .1rem;font-size:.72rem;font-weight:600;color:var(--text-muted);position:relative}.tab.active{color:var(--accent);background:transparent}.tab-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tab .badge{position:absolute;top:.2rem;left:calc(50% + 4px)}.hero{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem 0 .5rem;text-align:center}.hero-amount{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.txn-row{display:grid;grid-template-columns:40px 1fr auto;gap:.75rem;align-items:center}.txn-text{min-width:0;display:flex;flex-direction:column;gap:.1rem}.txn-title{font-weight:600;overflow-wrap:anywhere}.avatar{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--on-accent);background:var(--cat-other)}.avatar.cat-good-life{background:var(--cat-good-life)}.avatar.cat-home{background:var(--cat-home)}.avatar.cat-personal{background:var(--cat-personal)}.avatar.cat-transport{background:var(--cat-transport)}.avatar.cat-payments{background:var(--cat-payments)}.avatar.cat-in{background:var(--cat-in)}.avatar.cat-transfer{background:var(--cat-transfer)}.day-heading{padding:1rem 0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.list-item{border-color:var(--border)}.progress,.progress-fill{height:10px;border-radius:999px}.progress-fill{background:var(--accent)}.progress-fill.ahead{background:var(--highlight)}.series-spending{fill:var(--accent);background:var(--accent)}.series-saved{fill:var(--highlight);background:var(--highlight)}.card .list-item{background:transparent;border:none;border-radius:0;padding:.65rem 0}.card .list-item+.list-item{border-top:1px solid var(--border)}a{color:var(--accent-2)}.title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.title-row .button{margin-top:0}.notice{margin:0;color:var(--text-muted)}.chat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.bubble{max-width:88%;padding:.65rem .9rem;border-radius:var(--radius);line-height:1.45;overflow-wrap:anywhere}.bubble p{margin:0}.bubble p+p{margin-top:.4rem}.bubble.mine{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-bottom-right-radius:6px}.bubble.theirs{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:6px}.bubble .used{margin-top:.5rem}.bubble .warn{color:var(--highlight)}.thinking{opacity:.8}.ask-form textarea{min-height:calc(var(--tap) * 1.5);padding:.6rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:1rem;resize:vertical}.ask-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.suggestions{display:flex;flex-wrap:wrap;gap:.5rem}.chip{min-height:var(--tap);padding:0 .9rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:.9rem;cursor:pointer}.earlier .row-link.active{color:var(--accent-2)}
