:root{--bg:#fbf8f1;--surface:#fff;--ink:#10231c;--muted:#5f6b65;--brand:#0b3a2c;--brand-ink:#fbf8f1;--accent:#c8372d;--line:#e6e1d5;--danger:#b42318;--positive:#1d7a52;--chip:#f1ede3;--shadow:0 8px 24px #0b3a2c2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1a15;--surface:#15261f;--ink:#fbf8f1;--muted:#9aa8a1;--brand:#3fa37f;--brand-ink:#062118;--line:#24382f;--accent:#e0574c;--danger:#f07167;--positive:#5cc99a;--chip:#1c3128;--shadow:0 8px 24px #00000080}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}main{max-width:480px;padding:max(16px, env(safe-area-inset-top)) 16px 120px;margin:0 auto}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.primary{background:var(--brand);color:var(--brand-ink);border:0;border-radius:12px;width:100%;padding:14px 20px;font-weight:600}.primary.small-btn{width:auto;padding:10px 18px}.secondary{background:var(--chip);border:1px solid var(--line);border-radius:12px;padding:10px 16px;font-weight:600}.link{color:var(--muted);background:0 0;border:0;padding:6px 0}.link.danger,.danger-btn{color:var(--danger)}.danger-btn{border:1px solid var(--line);background:0 0;border-radius:12px;padding:14px 20px;font-weight:600}.icon-btn{background:0 0;border:0;border-radius:12px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.icon-btn:hover{background:var(--chip)}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger)}.kbd{background:var(--brand);width:22px;height:22px;color:var(--brand-ink);border-radius:6px;place-items:center;font-weight:700;display:inline-grid}.signin{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding-bottom:32px;display:flex}.signin-logo img{width:min(260px,70vw);height:auto;margin-bottom:4px;display:block}.signin p{color:var(--muted);margin:0 0 16px}.header-logo img{width:auto;height:28px;display:block}.home header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.hero{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.hero .amount{font-variant-numeric:tabular-nums;font-size:40px;font-weight:700}.pair{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.pair>div{background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:16px;padding:16px;font-weight:600}.txn-list{margin-top:24px}.day{color:var(--muted);margin:20px 4px 8px;font-size:13px;font-weight:600}.txn-list ul,.rows{margin:0;padding:0;list-style:none}.txn-list ul{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.txn-list li+li{border-top:1px solid var(--line)}.txn{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.txn:hover{background:var(--chip)}.txn-icon{background:var(--chip);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:22px;display:grid}.txn-main{flex-direction:column;flex:1;min-width:0;display:flex}.txn-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.txn-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.txn-amt{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.txn-amt.in{color:var(--positive)}.empty{text-align:center;color:var(--muted);margin-top:32px}.empty strong{color:var(--ink)}.fab{right:max(20px,50% - 220px);bottom:max(24px, env(safe-area-inset-bottom));background:var(--brand);width:60px;height:60px;color:var(--brand-ink);box-shadow:var(--shadow);z-index:10;border:0;border-radius:20px;font-size:32px;line-height:1;position:fixed}.quickadd{z-index:20;background:var(--bg);overscroll-behavior:contain;padding:max(12px, env(safe-area-inset-top)) max(16px, calc(50% - 240px)) calc(24px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transition:transform .18s ease-out,opacity .18s;position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}.quickadd.open{opacity:1;pointer-events:auto;transform:none}.qa-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.segmented{background:var(--chip);border-radius:12px;margin-bottom:8px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 16px;font-weight:600}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.qa-amount{border-bottom:2px solid var(--brand);align-items:baseline;gap:8px;margin-bottom:12px;padding:4px 0 6px;display:flex}.qa-amount .currency{color:var(--muted);font-size:28px;font-weight:600}.qa-amount input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0;font-size:44px;font-weight:700}.chips{scrollbar-width:none;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 12px;font-size:14px;display:inline-flex;position:relative}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.date-chip input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.qa-note{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;margin-bottom:8px;padding:10px 12px}.qa-error{color:var(--danger);margin:4px 0;font-weight:600}.qa-hint{color:var(--muted);margin:4px 0 10px;font-size:13px}.cat-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.cat{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-height:76px;padding:10px 4px;display:flex}.cat:active{transform:scale(.97)}.cat.selected{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}.cat-icon{font-size:26px;line-height:1.1}.cat-name{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.2;display:-webkit-box;overflow:hidden}.cat.more{color:var(--muted)}.cat-group h3{color:var(--muted);margin:16px 2px 8px;font-size:13px;font-weight:600}.qa-actions{gap:12px;margin-top:20px;display:flex}.qa-actions .primary{flex:1}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:30;background:var(--ink);max-width:min(440px,100vw - 32px);color:var(--bg);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:16px;padding:12px 16px;font-size:14px;display:flex;position:fixed;transform:translate(-50%)}.toast.error{background:var(--danger);color:#fff}.toast button{color:inherit;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.sheet-backdrop{z-index:25;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0}.sheet h2{margin:0 0 4px;font-size:18px}.screen-head{align-items:center;gap:4px;margin-bottom:12px;display:flex}.screen-head h1{margin:0;font-size:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:16px;padding:16px}.card h2{margin:0 0 12px;font-size:16px}.row{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 4px;display:flex}button.row:hover{background:var(--chip)}.row-main{flex:1;min-width:0;font-weight:500}.rows.indent{padding-left:28px}.archived-row{opacity:.6}.cat-block{border-top:1px solid var(--line);padding:4px 0}.add-sub{padding:8px 4px;font-size:14px}.archived{color:var(--muted);margin-top:12px}.archived summary{cursor:pointer;padding:6px 0}.form{background:var(--chip);border-radius:12px;flex-direction:column;gap:10px;margin:6px 0;padding:12px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form input,.form select{color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 10px;font-size:16px}.form-row{gap:10px;display:flex}.form-row>label{flex:1;min-width:0}.form-row .emoji-field{flex:0 0 64px}.emoji-field input{text-align:center;font-size:20px}.form-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.spacer{flex:1}.form p{margin:0}
