*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #faf9fb;--surface: #ffffff;--border: #e7e2e9;--text: #18151a;--text-dim: #827a87;--accent: #db2777;--green: #15803d;--red: #dc2626;--font: "Inter", -apple-system, system-ui, sans-serif}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:680px;margin:0 auto;padding:0 16px 40px}.header{display:flex;align-items:center;justify-content:space-between;padding:20px 0 16px;margin-bottom:20px}.logo{font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--accent)}.tabs{display:flex;gap:2px;background:var(--border);padding:3px;border-radius:8px}.tab{background:none;border:none;color:var(--text-dim);font:inherit;font-size:13px;font-weight:500;padding:5px 14px;border-radius:6px;cursor:pointer;transition:all .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--text);background:var(--surface)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:12px;box-shadow:0 1px 2px #1f18210d}.card-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.hero-card{border-color:var(--accent);background:linear-gradient(135deg,#f6e9ffb8,#fbcfe8a3 52%,#fff7edc2)}.hero-number{font-size:36px;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:16px}.hero-breakdown{display:flex;gap:16px;flex-wrap:wrap}.hero-pill{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim)}.pill-dot{width:8px;height:8px;border-radius:50%}.pill-dot.cash{background:var(--green)}.pill-dot.crypto{background:#f59e0b}.pill-dot.kiwi{background:var(--accent)}.month-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.month-value{font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.month-value.spent{color:var(--red)}.month-value.received{color:var(--green)}.month-sub{font-size:11px;color:var(--text-dim);margin-top:2px}.row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none;padding-bottom:0}.row:first-of-type{padding-top:0}.row-title{font-weight:500;font-size:13px}.row-sub{font-size:11px;color:var(--text-dim);margin-top:1px}.row-right{text-align:right;flex-shrink:0}.row-value{font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}.row-target{font-size:10px;font-weight:500;margin-top:1px}.row-target.on{color:var(--green)}.row-target.under{color:var(--red)}.card-header-toggle{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-arrow{color:var(--text-dim);font-size:14px}.crypto-classes{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px}.crypto-class-pill{font-size:11px;color:var(--accent);background:#db277714;padding:3px 8px;border-radius:4px;font-weight:500}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filter-group{display:flex;flex-direction:column;gap:3px}.filter-group label{font-size:10px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.filter-group input,.filter-group select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;font-size:13px;padding:6px 10px;min-width:130px}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #db277733}.txn-count{font-size:11px;color:var(--text-dim);margin-bottom:8px}.txn-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.txn-row:last-child{border-bottom:none}.txn-desc{font-weight:500;font-size:13px}.txn-meta{font-size:11px;color:var(--text-dim);display:flex;gap:6px;align-items:center;margin-top:2px}.txn-cat{background:var(--bg);padding:1px 6px;border-radius:3px;font-size:10px;font-weight:500;color:var(--accent)}.txn-acct{font-size:10px}.txn-amount{font-weight:600;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.txn-amount.debit{color:var(--text)}.txn-amount.credit{color:var(--green)}.state-msg{text-align:center;padding:60px 20px;color:var(--text-dim)}.state-msg.error{color:var(--red)}@media(max-width:480px){.header{flex-direction:column;gap:12px;align-items:flex-start}.hero-number{font-size:28px}.hero-breakdown{flex-direction:column;gap:6px}.month-grid{grid-template-columns:1fr 1fr}.filters{flex-direction:column}.filter-group input,.filter-group select{width:100%}}
