@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600&family=Noto+Serif+SC:wght@500;600&display=swap";:root{font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#24312c;background:#eceee8;font-synthesis:none;--accent: #285c4b;--paper: #f8f7f2;--muted: #929a93;--line: #ecece5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.45}h1,h2,h3,p{margin:0}.stage{min-height:100vh;display:grid;place-items:center;padding:28px;background-image:radial-gradient(#a6b1a52e 1px,transparent 1px);background-size:18px 18px}.phone{width:390px;height:812px;position:relative;overflow:hidden;background:var(--paper);border:7px solid #26332e;border-radius:44px;box-shadow:0 24px 65px #1d332c26}.status{height:34px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;font-size:11px;font-weight:600}.header{display:flex;align-items:center;justify-content:space-between;padding:14px 22px 16px}.eyebrow{font-size:11px;color:#849087;margin-bottom:5px}.header h1{font-family:"Noto Serif SC",serif;font-size:23px;letter-spacing:1px;font-weight:600}.icon-button{position:relative;border:0;background:#eeeee7;color:inherit;width:39px;height:39px;border-radius:50%;display:grid;place-items:center}.notice{position:absolute;width:5px;height:5px;background:#d78257;border-radius:50%;top:8px;right:9px}.main{height:627px;overflow-y:auto;padding:0 20px 25px;scrollbar-width:none}.balance,.asset{color:#f7fbf3;background:var(--accent);border-radius:26px;padding:19px 20px 20px;position:relative;overflow:hidden;box-shadow:0 8px 20px #285c4b24}.balance:after{content:"";position:absolute;width:175px;height:175px;border:1px solid #ffffff15;border-radius:50%;top:-102px;right:-60px;box-shadow:0 0 0 24px #ffffff08,0 0 0 49px #ffffff05;pointer-events:none}.month{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#d9e4d9}.balance>p{font-size:12px;margin-top:17px;color:#d9e4d9}.balance>p span{opacity:.6;font-size:10px}.total{font-family:Georgia,serif;font-size:40px;line-height:1.35;font-variant-numeric:tabular-nums}.total span{font-size:25px}.balance-foot{display:flex;gap:27px;font-size:10px;color:#b9cec0;margin:6px 0 20px}.balance-foot b{color:#f7fbf3;font-weight:500;margin-left:5px}.budget-label{display:flex;justify-content:space-between;font-size:10px;color:#d9e4d9;margin-bottom:8px}.budget{height:4px;background:#ffffff25;border-radius:3px;overflow:hidden}.budget span{display:block;height:100%;background:#d8e4b2;border-radius:3px}.section{margin-top:23px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-title h2{font-size:15px;font-weight:600}.section-title button{display:flex;align-items:center;gap:2px;font-size:10px;background:transparent;border:0;color:#879188;padding:7px 0 7px 8px}.section-title>small{font-size:10px;color:var(--muted)}.transaction{display:flex;align-items:center;text-align:left;width:100%;gap:11px;min-height:64px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit}.category{flex:0 0 auto;width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#e9eee0;color:#607348}.category-交通{background:#e3edeb;color:#4a7774}.category-购物{background:#f2e7dc;color:#a67b52}.category-居家{background:#ede5e4;color:#9b6b65}.transaction-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.transaction-copy b{font-size:13px;font-weight:500;overflow-wrap:anywhere}.transaction-copy small{font-size:10px;color:var(--muted)}.transaction strong{font-family:Georgia,serif;font-weight:400;font-size:15px;font-variant-numeric:tabular-nums}.transaction strong.income{color:var(--accent)}.empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#7f8e80;text-align:center}.empty h3{font-family:"Noto Serif SC",serif;font-size:16px;color:#42564a}.empty p{font-size:11px;line-height:1.8}.empty button{border:0;border-radius:20px;background:#e4eade;color:var(--accent);padding:10px 20px;font-size:11px}.nav{position:absolute;bottom:0;left:0;right:0;height:76px;padding:9px 13px 10px;display:grid;grid-template-columns:repeat(5,1fr);background:#fdfcf9f5;border-top:1px solid #e8e8e0;z-index:4}.nav>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#99a097;background:transparent;border:0;font-size:9px;padding:0}.nav>button.active{color:var(--accent)}.nav .add{position:relative;justify-content:flex-start;gap:5px;color:var(--accent)}.add>span{width:46px;height:46px;margin-top:-23px;border-radius:17px;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:0 6px 15px #285c4b38;border:4px solid var(--paper)}.period{display:flex;align-items:center;gap:3px;margin-bottom:20px}.period button,.filter-row button{border:0;background:transparent;color:inherit;padding:9px 13px;border-radius:9px;font-size:11px}.period button.active,.filter-row button.active{background:#e5eae0;color:var(--accent)}.period>span{margin-left:auto;font-size:11px;display:flex;align-items:center;gap:2px}.stat-hero>p{font-size:11px;color:#879188}.stat-hero>div{font-family:Georgia,serif;font-size:33px;margin:5px 0 8px}.stat-hero small{font-family:Noto Sans SC,sans-serif;font-size:11px}.stat-hero>span{display:flex;align-items:center;gap:4px;color:#66825e;font-size:10px}.chart-section{margin:24px 0}.rank{display:grid;grid-template-columns:1fr auto 34px;align-items:center;gap:10px;padding:12px 0;font-size:11px;border-bottom:1px solid var(--line)}.rank>span{display:flex;align-items:center;gap:7px}.rank i{width:12px;height:12px;border-radius:4px}.rank b{font-family:Georgia,serif;font-weight:400}.rank small{text-align:right;color:var(--muted)}.insight{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--line);padding:20px 2px;color:#6b7f6b}.insight h3{font-family:"Noto Serif SC",serif;font-size:14px;font-weight:500}.insight p{margin-top:6px;font-size:11px;line-height:1.8;color:var(--muted)}.filter-row{display:flex;gap:8px}.filter-row button:last-child{margin-left:auto;padding:6px}.ledger-summary{display:flex;flex-direction:column;gap:7px;padding:20px 1px 13px;font-size:11px;color:#879188}.ledger-summary b{color:#34433b;font-weight:500}.profile{display:flex;align-items:center;gap:13px;padding:8px 1px 23px}.avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:#e5e8dc;color:var(--accent);font-family:"Noto Serif SC",serif;font-size:23px;flex:0 0 auto}.profile>div{flex:1}.profile h2{font-size:17px;margin-bottom:5px}.profile p{display:flex;align-items:center;gap:4px;font-size:10px;color:#758d71}.asset{display:flex;flex-direction:column;gap:10px}.asset p{color:#d9e4d9;font-size:11px}.asset strong{font-family:Georgia,serif;font-size:29px;font-weight:400}.asset span{color:#b9cec0;font-size:10px}.menu{margin-top:20px}.menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:49px;padding:12px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;font-size:12px;text-align:left}.menu button>svg:first-child{color:#788e71}.menu button span{flex:1}.menu button small{font-size:10px;color:var(--muted)}.menu button>svg:last-child{color:var(--muted)}.motto{font-family:"Noto Serif SC",serif;font-size:11px;letter-spacing:3px;color:#a0a79e;text-align:center;margin-top:28px}.sheet-backdrop{position:absolute;inset:0;background:#17261c70;z-index:8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{position:absolute;bottom:0;left:0;right:0;background:#fbfaf6;border-radius:26px 26px 37px 37px;padding:9px 20px 17px;z-index:9;box-shadow:0 -10px 30px #1e34251a;animation:rise .25s ease-out;max-height:90%;overflow-y:auto}.sheet-handle{width:33px;height:4px;background:#dbddd4;border-radius:5px;margin:0 auto 8px}.sheet-title{display:flex;justify-content:space-between;align-items:center}.sheet-title h2{font-size:15px}.sheet-title button{border:0;background:transparent;color:var(--muted);padding:8px}.type-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#eeeee7;border-radius:10px;padding:3px;margin-top:10px}.type-tabs button{border:0;background:transparent;color:#89928a;border-radius:8px;padding:8px;font-size:11px}.type-tabs button.active{background:#fff;color:var(--accent);box-shadow:0 1px 4px #00000009}.amount{display:flex;align-items:center;justify-content:flex-end;height:71px;gap:8px}.amount span{font-family:Georgia,serif;font-size:23px}.amount output{font-family:Georgia,serif;font-size:39px;font-variant-numeric:tabular-nums;max-width:270px;overflow-x:auto}.amount i{height:29px;width:1px;background:var(--accent)}.category-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 6px;padding:4px 0 16px}.category-picker button{border:0;background:transparent;color:#6d786f;display:flex;align-items:center;flex-direction:column;gap:5px;font-size:9px;padding:0}.category-picker button>span{display:grid;place-items:center;width:37px;height:37px;border-radius:13px;background:#eeeee7}.category-picker button.active{color:var(--accent)}.category-picker button.active>span{background:var(--accent);color:#fff}.entry-meta{display:flex;gap:12px;padding:12px 0;border-top:1px solid #e9e9e1}.entry-meta label{display:flex;align-items:center;gap:4px;color:#7d887f;font-size:10px;min-width:0}.entry-meta select,.entry-meta input{border:0;background:transparent;color:inherit;font-size:10px;min-width:0;width:90px}.entry-meta input{width:100px}.transfer-to{display:flex;gap:15px;align-items:center;padding:10px 0;font-size:11px}.transfer-to select{padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.keypad button{min-height:42px;border:0;border-radius:9px;background:#eeeee7;color:inherit;font-family:Georgia,serif;font-size:17px;display:grid;place-items:center}.keypad .key-action{background:transparent}.keypad button:last-child{background:var(--accent);color:#fff;font-family:Noto Sans SC,sans-serif;font-size:12px}.error{color:#a24935;background:#f5e7e1;padding:9px 11px;border-radius:9px;font-size:11px;line-height:1.6;margin:8px 0 12px;overflow-wrap:anywhere}.delete-entry{display:block;margin:12px auto 0;padding:8px;border:0;background:transparent;color:#a35c4c;font-size:11px}.toast{position:absolute;z-index:10;top:83px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;white-space:nowrap;background:#263a30;color:#f4f8f3;padding:10px 15px;border-radius:25px;font-size:11px;box-shadow:0 5px 15px #0002}.member-sheet{padding-bottom:28px}.member{display:flex;align-items:center;gap:12px;padding:22px 0 17px}.member>div{flex:1;display:flex;flex-direction:column;gap:5px}.member b{font-size:14px}.member small{font-size:10px;color:var(--muted)}.member>span:last-child{font-size:11px;color:#72866c}.member-hint{font-size:12px;line-height:1.9;color:#78837a}.primary-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border:0;border-radius:13px;padding:13px;background:var(--accent);color:#fff;font-size:12px;margin:18px 0}.invite-code{display:flex;align-items:center;flex-direction:column;gap:13px;background:#eaf0e4;padding:18px;border-radius:18px;margin:18px 0}.invite-code small{color:#75836f}.invite-code strong{font-family:Georgia,serif;letter-spacing:10px;font-size:35px;padding-left:10px;color:var(--accent)}.invite-code button{display:flex;gap:5px;align-items:center;border:0;background:transparent;color:var(--accent);font-size:11px}.join{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.join h3{font-size:13px;margin-bottom:12px}.join>div{display:flex;gap:9px}.join input{min-width:0;flex:1;border:1px solid #dfe3d8;border-radius:10px;background:#fff;padding:11px;font-size:16px}.join button{border:0;border-radius:10px;padding:0 18px;background:var(--accent);color:#fff;font-size:12px}.sync-note{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);margin-top:20px;line-height:1.8}.loading{height:100vh;display:grid;place-content:center;justify-items:center;gap:15px;color:var(--accent)}.loading span{display:grid;place-items:center;width:64px;height:64px;background:var(--accent);color:#fff;border-radius:20px;font-family:"Noto Serif SC",serif;font-size:28px}.loading p{font-size:12px}.auth-panel{margin:0 0 18px}.auth-status{display:flex;align-items:center;gap:6px;font-size:11px;color:#6c7f6d;line-height:1.8;margin-bottom:10px}.auth-field{display:flex;align-items:center;gap:8px;border:1px solid #dfe3d8;border-radius:11px;background:#fff;padding:11px 12px;margin-bottom:10px;color:#7d887f}.auth-field input{flex:1;min-width:0;border:0;background:transparent;font-size:13px;color:inherit}.auth-panel .primary-button{margin:4px 0 8px}.auth-secondary{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#78876f;font-size:11px;padding:6px 0}.auth-message{font-size:11px;color:#58765a;line-height:1.8}.sync-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#78876f;margin:-8px 0 14px}.sync-bar button{border:0;background:#e5eae0;color:var(--accent);border-radius:12px;padding:5px 12px;font-size:10px}.ledger-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;color:inherit;text-align:left;margin-top:10px}.ledger-item.active{border-color:var(--accent);background:#f0f4ec}.ledger-item>svg:first-child{color:#788e71}.ledger-item>div{flex:1;display:flex;flex-direction:column;gap:4px}.ledger-item b{font-size:13px;font-weight:500}.ledger-item small{font-size:10px;color:var(--muted)}.ledger-item>svg:last-child{color:var(--accent)}.ledger-tag{font-size:9px;color:#6c7f6d;background:#e7ece0;padding:3px 8px;border-radius:8px}.ledger-tag.shared{color:#7a6a4f;background:#f0e8d8}.ledger-rename{border:0;background:transparent;color:#87947f;font-size:10px;padding:4px 6px}.swipe-row{position:relative;overflow:hidden}.swipe-actions{position:absolute;inset:0 0 0 auto;display:flex}.swipe-actions button{width:68px;border:0;color:#fff;background:#768d75;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px}.swipe-actions button:last-child{background:#ad6c58}.swipe-row .transaction{position:relative;background:var(--paper);transition:transform .18s ease;touch-action:pan-y}.date{display:flex;justify-content:space-between;color:#8a948b;font-size:10px;padding:16px 1px 4px}.load-more{display:block;margin:18px auto;border:0;background:transparent;color:#788b79;font-size:11px;padding:10px}.filter-row select{flex:1;min-width:0;border:1px solid #e3e6dd;border-radius:9px;background:transparent;padding:7px;color:#5d6e61;font-size:11px}.filter-row button:last-child{display:flex;gap:3px;align-items:center;color:var(--accent);margin-left:0}.account-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.account-cards button{border:1px solid #e7e9e0;border-radius:16px;background:#fdfcf9;padding:12px;color:inherit;text-align:left;display:flex;flex-direction:column;gap:6px}.account-cards button.active{border-color:var(--accent)}.account-cards span{font-size:11px;color:#7b897c}.account-cards b{font-family:Georgia,serif;font-size:19px;font-weight:400}.account-cards small{display:flex;align-items:center;font-size:9px;color:#90988f}.entry-sheet{position:absolute;inset:10px 0 0;background:#fbfaf6;z-index:9;border-radius:27px 27px 37px 37px;overflow-y:auto;padding:12px 20px 15px}.sheet-heading{display:flex;justify-content:space-between;align-items:center}.sheet-heading h2{font-family:"Noto Serif SC",serif;font-size:17px}.sheet-heading button{background:transparent;border:0;color:#7f8b80;padding:8px}.entry-type{display:grid;grid-template-columns:repeat(3,1fr);background:#eeeee7;border-radius:10px;padding:3px;margin:14px 0}.entry-type button{border:0;background:transparent;padding:8px;border-radius:8px;color:#89928a;font-size:12px}.entry-type button.active{background:#fff;color:var(--accent)}.entry-amount{display:flex;align-items:center;justify-content:flex-end;height:68px;gap:8px}.entry-amount span{font-family:Georgia,serif;font-size:23px}.entry-amount output{font-family:Georgia,serif;font-size:39px;max-width:280px;overflow-x:auto}.entry-amount i{width:1px;height:29px;background:var(--accent)}.category-link{display:grid;grid-template-columns:1fr 1fr;gap:9px}.category-link:has(label:only-child){grid-template-columns:1fr}.category-link label{font-size:10px;color:#8b948b;display:flex;flex-direction:column;gap:6px}.category-link select{border:1px solid #e1e5db;border-radius:10px;padding:10px;color:#405248;background:#fff;font-size:12px}.entry-selects{display:flex;justify-content:space-between;gap:10px;margin:12px 0}.entry-selects label,.entry-note{display:flex;align-items:center;gap:7px;color:#79867b;min-width:0}.entry-selects select,.entry-selects input{min-width:0;max-width:145px;border:0;background:transparent;color:inherit;font-size:11px}.entry-note{border-bottom:1px solid #e8e9e2;padding:10px 0}.entry-note input{flex:1;min-width:0;border:0;background:transparent;font-size:12px;color:inherit}.entry-sheet .keypad{grid-template-columns:repeat(4,1fr);margin-top:13px}.entry-sheet .keypad button{min-height:43px}.entry-sheet .keypad .key-done{grid-row:span 2;background:#e3e9dc;color:var(--accent)}.entry-sheet .save-entry{grid-column:1 / -1;background:var(--accent);color:#fff;font-family:inherit;font-size:12px}.manager-sheet{position:absolute;bottom:0;left:0;right:0;max-height:87%;overflow-y:auto;background:#fbfaf6;border-radius:26px 26px 37px 37px;padding:12px 20px 22px;z-index:9}.manager-form{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.manager-form input,.manager-form select{min-width:0;border:1px solid #e0e5da;border-radius:9px;background:#fff;padding:10px;font-size:11px;flex:1}.manager-form input:first-child{flex:2}.manager-form button{display:flex;align-items:center;gap:4px;border:0;border-radius:9px;background:var(--accent);color:#fff;padding:0 13px;font-size:11px}.manager-tip{font-size:11px;color:#7b897d;line-height:1.8;margin-top:12px}.manager-item{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.manager-item>span{color:#788e71}.manager-item>button:nth-child(2){flex:1;text-align:left;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;gap:4px}.manager-item b{font-size:12px;font-weight:500}.manager-item small{font-size:10px;color:var(--muted)}.manager-item>button{border:0;background:transparent;color:#758772;font-size:10px;padding:8px}.manager-item.child{padding-left:18px}.global-error{position:absolute;bottom:85px;left:15px;right:15px;z-index:20;display:flex;justify-content:space-between}.global-error button{border:0;background:transparent;color:inherit}.ledger-item>button:first-child{flex:1;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:inherit;text-align:left}@keyframes rise{0%{transform:translateY(40px);opacity:.5}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.stage{padding:0}.phone{width:100%;height:100dvh;min-height:650px;border:0;border-radius:0}.main{height:calc(100dvh - 185px);min-height:465px}.sheet{border-radius:26px 26px 0 0}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}
