:root{--paper:#faf8f4;--card:#fff;--ink:#1a2233;--sec:#5e6574;--ter:#aeb3bd;--line:#ece9e3;--marigold:#f5a623;--marigold-tint:#fff5e1;--marigold-edge:#f5a62359;--sage:#2b8a5f;--sage-tint:#e5f3ec;--coral:#c9472a;--coral-tint:#fcebe5;--sky-1:#f3f7fd;--sky-2:#e4edfa;--serif-num:"Newsreader", "Iowan Old Style", Georgia, serif;--serif-zh:"Noto Serif SC", "Songti SC", serif;--sans:-apple-system, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Helvetica Neue", sans-serif;--shadow:0 1px 2px #1a22330a, 0 10px 28px #1a22330d;--tab-h:66px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--paper);color:var(--ink);margin:0}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--marigold);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}.shell{max-width:480px;min-height:100dvh;padding-top:env(safe-area-inset-top,0px);margin:0 auto;position:relative}.screen{padding:12px max(18px, env(safe-area-inset-left,0px)) calc(var(--tab-h) + 40px + env(safe-area-inset-bottom,0px)) max(18px, env(safe-area-inset-right,0px));flex-direction:column;gap:14px;display:flex}.display{font-family:var(--serif-zh);letter-spacing:.5px;font-weight:700}.num{font-family:var(--serif-num);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-1px;font-weight:400}.tabnum{font-variant-numeric:tabular-nums}.sec{color:var(--sec)}.small{font-size:13px}.tiny{font-size:12px}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:6px;display:flex}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.card{background:var(--card);box-shadow:var(--shadow);border-radius:22px}.list>*+*{border-top:1px solid var(--line)}.hero{isolation:isolate;background:linear-gradient(#fff7e6 0%,#ffefcf 100%);border:1px solid #f5a62347;border-radius:26px;padding:18px 20px 12px;position:relative;overflow:hidden;box-shadow:0 14px 34px #f5a62329}.hero.sky{background:linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 100%);border-color:#2f5da829;box-shadow:0 14px 34px #2f5da81f}.hero .sun{z-index:-1;pointer-events:none;position:absolute}.hero-line{border-top:1px solid #1a223321}.page-head{flex-direction:column;gap:2px;padding:4px 2px 0;display:flex}.page-title{font-family:var(--serif-zh);letter-spacing:.5px;margin:0;font-size:30px;font-weight:700;line-height:1.25}.section-title{font-family:var(--serif-zh);letter-spacing:.5px;margin:0;font-size:19px;font-weight:700}.eyebrow{color:var(--sec);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.chip{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.chip.good{color:var(--sage);background:#fff}.chip.warn{color:var(--coral);background:#fff}.tag-income{color:var(--sage);font-weight:600}.btn{border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:0 18px;font-size:16px;font-weight:700;display:inline-flex}.btn.primary{background:var(--ink);color:#fff}.btn.soft{color:var(--ink);background:#f1eee8;font-weight:600}.btn.brand{background:var(--marigold);color:var(--ink);box-shadow:0 8px 18px #f5a62366}.btn:disabled{opacity:.45;cursor:default}.link-btn{background:0 0;border:none;min-height:36px;padding:6px 0;font-size:14px;font-weight:600}.check{border:2px solid var(--ter);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:background .2s;display:inline-flex}.check.on{background:var(--sage);border-color:var(--sage);animation:.3s pop}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}.play{background:#f4f1eb;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.seg{background:#ece8e1;border-radius:10px;padding:2px;display:inline-flex}.seg button{background:0 0;border:none;border-radius:8px;min-height:30px;padding:0 10px;font-size:13px;font-weight:600}.seg button[aria-pressed=true]{background:#fff;box-shadow:0 1px 3px #0000001f}.input{background:#f4f1eb;border:none;border-radius:14px;outline:none;width:100%;padding:12px 14px;font-size:16px}.input:focus{box-shadow:0 0 0 2px var(--marigold-edge)}label.field{color:var(--sec);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.tabbar{left:50%;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:min(456px,100% - 24px);height:var(--tab-h);-webkit-backdrop-filter:blur(24px)saturate(180%);z-index:30;background:#ffffffc7;border:1px solid #ffffffe6;border-radius:26px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:0 4px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 12px 32px #0000001f,inset 0 1px #ffffff80}.tab{min-height:52px;color:var(--sec);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;display:flex}.tab[aria-current=page]{color:var(--ink)}.tab .dot{background:0 0;border-radius:2px;width:4px;height:4px}.tab[aria-current=page] .dot{background:var(--marigold)}.plus{background:var(--marigold);border:none;border-radius:18px;justify-content:center;justify-self:center;align-items:center;width:50px;height:50px;display:flex;box-shadow:0 8px 18px #f5a62373,inset 0 1px #ffffff73}.sheet-wrap{z-index:50;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{background:#00000052;border:none;animation:.2s fade;position:absolute;inset:0}.sheet{width:min(480px,100%);padding:8px 18px calc(22px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:24px 24px 0 0;flex-direction:column;gap:14px;max-height:90dvh;margin:0 auto;animation:.32s cubic-bezier(.2,.9,.3,1) up;display:flex;position:relative;overflow-y:auto}.sheet .grip{background:#d4d4d0;border-radius:3px;width:38px;height:5px;margin:0 auto}@keyframes up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{top:calc(10px + env(safe-area-inset-top,0px));z-index:70;background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:600;animation:2.6s forwards toast;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0003}@keyframes toast{0%{opacity:0;transform:translate(-50%,-10px)}10%{opacity:1;transform:translate(-50%)}85%{opacity:1}to{opacity:0}}@keyframes wave{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}.empty{text-align:center;color:var(--sec);padding:18px;font-size:14px;line-height:1.6}
