:root{--bg:#f7f6f2;--card:#ffffff;--ink:#2b2a27;--muted:#8a877f;--line:#e8e6df;--accent:#4f7b6f;--accent-soft:#e4efeb;--expense:#b4574e;--income:#4f7b6f;--transfer:#5f7183;--warn:#a07b2a;--warn-soft:#fdf6e3;--warn-line:#e0c36a;--radius:14px}@media (prefers-color-scheme:dark){:root{--bg:#17171a;--card:#202024;--ink:#ece9e2;--muted:#9b978d;--line:#33333a;--accent:#7bb3a2;--accent-soft:#26312e;--expense:#e0857c;--income:#7bb3a2;--transfer:#97a8bb;--warn:#d9be7a;--warn-soft:#2a2620;--warn-line:#6a5a30}}:root[data-theme=light]{--bg:#f7f6f2;--card:#ffffff;--ink:#2b2a27;--muted:#8a877f;--line:#e8e6df;--accent:#4f7b6f;--accent-soft:#e4efeb;--expense:#b4574e;--income:#4f7b6f;--transfer:#5f7183;--warn:#a07b2a;--warn-soft:#fdf6e3;--warn-line:#e0c36a}:root[data-theme=dark]{--bg:#17171a;--card:#202024;--ink:#ece9e2;--muted:#9b978d;--line:#33333a;--accent:#7bb3a2;--accent-soft:#26312e;--expense:#e0857c;--income:#7bb3a2;--transfer:#97a8bb;--warn:#d9be7a;--warn-soft:#2a2620;--warn-line:#6a5a30}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}body,html{background:var(--bg);color:var(--ink);font-family:-apple-system,PingFang SC,Hiragino Sans,Noto Sans CJK SC,Segoe UI,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.container{max-width:560px;margin:0 auto;padding:16px 16px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}h1{font-size:1.25rem}h1,h2{font-weight:600}h2{font-size:.95rem;color:var(--muted);margin-bottom:8px}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:9px 14px;background:var(--accent-soft);color:var(--accent);transition:opacity .15s}button:active{opacity:.7}button.primary{background:var(--accent);color:#fff}button.danger{background:#f7e8e6;color:var(--expense)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;outline:none}input:focus,textarea:focus{border-color:var(--accent)}.muted{color:var(--muted);font-size:.85rem}.amount-expense{color:var(--expense);font-weight:600}.amount-income{color:var(--income);font-weight:600}.amount-transfer{color:var(--transfer);font-weight:600}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:500;line-height:1.5;white-space:nowrap;background:var(--accent-soft);color:var(--accent)}.tag--sm{padding:1px 8px;font-size:.72rem}.tag[data-cat=dining]{background:#fbe9db;color:#a85a2a}.tag[data-cat=daily]{background:#d9efe9;color:#2f7d6c}.tag[data-cat=transit]{background:#dde8f7;color:#3a6299}.tag[data-cat=housing]{background:#e7e1f5;color:#6a52a8}.tag[data-cat=comm]{background:#e0e3f5;color:#4a54a0}.tag[data-cat=fun]{background:#f7dfec;color:#a8467f}.tag[data-cat=medical]{background:#f7dedd;color:#b0514a}.tag[data-cat=study]{background:#dde8f7;color:#4a6fb0}.tag[data-cat=insurance]{background:#e4def7;color:#6a4ab0}.tag[data-cat=invest]{background:#dcefdf;color:#3d8351}.tag[data-cat=fee]{background:#e8e6e0;color:#7a776f}.tag[data-cat=income]{background:#d7efe0;color:#2f8158}.tag[data-cat=other]{background:#e5e8ec;color:#66707c}.tag--advance{background:var(--warn-soft);color:var(--warn)}.tag--business{background:#e7edf5;color:#4a6b8a}@media (prefers-color-scheme:dark){.tag{background:rgba(148,163,184,.16)}.tag[data-cat=dining]{background:rgba(216,138,74,.18);color:#e6a878}.tag[data-cat=daily]{background:rgba(74,200,176,.16);color:#7fd0be}.tag[data-cat=transit]{background:rgba(90,150,230,.18);color:#8fb4e6}.tag[data-cat=housing]{background:rgba(140,110,220,.18);color:#b39ee6}.tag[data-cat=comm]{background:rgba(110,120,220,.18);color:#9aa2e6}.tag[data-cat=fun]{background:rgba(220,110,175,.18);color:#e299c4}.tag[data-cat=medical]{background:rgba(220,110,100,.18);color:#e6968d}.tag[data-cat=study]{background:rgba(100,140,220,.18);color:#8dade6}.tag[data-cat=insurance]{background:rgba(140,110,220,.18);color:#ab8de6}.tag[data-cat=invest]{background:rgba(90,190,120,.16);color:#86cf9c}.tag[data-cat=fee]{background:rgba(160,155,145,.18);color:#bdb8ac}.tag[data-cat=income]{background:rgba(80,190,130,.16);color:#83cfa2}.tag[data-cat=other]{background:rgba(150,160,175,.18);color:#aab4c2}.tag--advance{background:rgba(217,190,122,.15);color:var(--warn)}.tag--business{background:rgba(120,150,190,.16);color:#9db8d6}}:root[data-theme=dark] .tag{background:rgba(148,163,184,.16)}:root[data-theme=light] .tag{background:var(--accent-soft)}.review-wrap{position:relative;overflow:hidden;border-color:var(--accent)}.review-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.review-progress-track{flex:1 1;height:6px;background:var(--line);border-radius:999px;overflow:hidden}.review-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .35s ease}.review-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--muted);font-size:.85rem;min-width:46px;text-align:right}.review-stage{position:relative;min-height:150px}.focus-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;box-shadow:0 6px 22px rgba(0,0,0,.06);position:relative;z-index:2}@media (prefers-color-scheme:dark){.focus-card{box-shadow:0 6px 22px rgba(0,0,0,.35)}}.focus-card.is-low{background:var(--warn-soft);border-color:var(--warn-line)}.stack-peek{position:absolute;left:10px;right:10px;top:12px;height:60px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);opacity:.55;transform:scale(.96);z-index:1}.hero-amount{font-size:2.1rem;font-weight:700;letter-spacing:-.5px;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-sub{color:var(--muted);font-size:.85rem;margin-top:2px}.choice-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}.choice-btn{flex:1 1;min-width:110px;padding:12px 10px;border-radius:12px;background:var(--accent-soft);color:var(--accent);border:1.5px solid transparent;font-weight:600;transition:transform .12s ease,border-color .15s}.choice-btn:active{transform:scale(.97)}.choice-btn.is-active{border-color:var(--accent)}.choice-prompt{color:var(--warn);font-size:.9rem;margin-bottom:2px}.act-row{display:flex;gap:8px;margin-top:16px}.act-confirm{flex:2 1;padding:14px;font-size:1.05rem;font-weight:700}.act-secondary{flex:1 1}.focus-card{transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .28s ease}.focus-card.slide-out-right{transform:translateX(115%) rotate(4deg);opacity:0}.focus-card.slide-out-left{transform:translateX(-115%) rotate(-4deg);opacity:0}.focus-card.slide-in{animation:cardIn .26s ease}@keyframes cardIn{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.done-hero{text-align:center;padding:10px 4px 4px}.done-big{font-size:1.6rem;font-weight:700;margin-bottom:4px}.bar-track{background:var(--line);border-radius:6px;height:10px;overflow:hidden;flex:1 1}.bar-fill{background:var(--accent);height:100%;border-radius:6px;transition:width .3s ease}.bar-fill[data-cat=dining]{background:#d88a4a}.bar-fill[data-cat=daily]{background:#3fae97}.bar-fill[data-cat=transit]{background:#5a96e6}.bar-fill[data-cat=housing]{background:#8c6edc}.bar-fill[data-cat=comm]{background:#6e78dc}.bar-fill[data-cat=fun]{background:#dc6eaf}.bar-fill[data-cat=medical]{background:#dc6e64}.bar-fill[data-cat=study]{background:#648cdc}.bar-fill[data-cat=insurance]{background:#8c64dc}.bar-fill[data-cat=invest]{background:#5abe78}.bar-fill[data-cat=fee]{background:#a09b91}.bar-fill[data-cat=income]{background:#50be82}.bar-fill[data-cat=other]{background:#96a0af}a{color:var(--accent);text-decoration:none}.chip-row{display:flex;gap:6px;margin-bottom:10px}.chip{padding:2px 12px;border-radius:999px;font-size:.78rem;background:transparent;border:1px solid var(--line);color:var(--muted)}.chip--on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chart-scroll{overflow-x:auto}.chart-hairline{stroke:var(--line);stroke-width:1}.chart-axis,.chart-num{font-size:10px;fill:var(--muted)}.bar-inc{fill:var(--income)}.bar-exp{fill:var(--expense)}.chart-legend{display:flex;gap:14px;align-items:center;font-size:.78rem;color:var(--muted);margin-top:2px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.lg-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.donut-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.donut-wrap{flex-shrink:0}.donut-total{font-size:19px;font-weight:700;fill:var(--ink)}.donut-sub{font-size:10px;fill:var(--muted)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-head{text-align:center;font-size:.68rem;color:var(--muted);padding:2px 0}.cal-cell{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0 3px;border-radius:8px;background:transparent;border:1px solid transparent;min-height:46px}.cal-cell--today{border-color:var(--line)}.cal-cell--sel{background:var(--accent-soft);border-color:var(--accent)}.cal-day{font-size:.7rem;color:var(--muted);line-height:1.2}.cal-dot{width:10px;height:10px;border-radius:50%}.cal-dot--zero{width:6px;height:6px;margin:2px 0;background:var(--transfer)}.cal-amt{font-size:.62rem;color:var(--muted);line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-amt--zero{color:transparent}.cal-detail{margin-top:8px;padding-top:6px;border-top:1px solid var(--line)}.sk-label{font-size:11px;fill:var(--ink)}.sk-value{font-size:10px;fill:var(--muted)}.tag--auto{color:var(--accent);cursor:pointer}.autopost-banner,.tag--auto{background:var(--accent-soft)}.autopost-banner{border-color:var(--accent)}.autopost-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:.88rem}.sec-toggle{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}