.home-page{--home-ink:#2e5344;--home-muted:#73877a;--home-green:#3e7458;--home-amber:#a97f36;--home-line:#e7ecda;min-height:100dvh;padding:22px 16px calc(var(--tabbar-h) + var(--dock-bottom) + 30px);background:var(--bg);color:var(--home-ink);overflow-wrap:anywhere}.home-page button{-webkit-tap-highlight-color:transparent}.home-page button:focus-visible,.home-rules summary:focus-visible{outline-offset:4px;outline:3px solid #6c9d78}.home-page button:disabled{cursor:default}.home-greeting{justify-content:space-between;align-items:center;gap:14px;margin-bottom:21px;display:flex}.home-greeting-copy{min-width:0}.home-eyebrow{letter-spacing:2px;color:#6f8f76;font-size:10px;line-height:1.6}.home-greeting h1{letter-spacing:-.7px;margin:8px 0 9px;font-size:27px;font-weight:650;line-height:1.3}.home-greeting h1>span:first-child{word-break:break-word}.home-greeting-dot{color:#a7be8f}.home-date{color:#7d8f7c;flex-wrap:wrap;align-items:center;gap:5px 9px;font-size:11px;line-height:1.6;display:flex}.home-date time{color:#5c7260;font-weight:500}.home-date>span{border-left:1px solid #cfdac6;padding-left:9px}.home-brand-stamp{color:#7e9a6e;background:#fffef6cc;border:1px solid #d3dfc2;border-radius:20px 20px 15px 15px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:49px;height:60px;display:flex;transform:rotate(7deg)}.home-brand-stamp svg{width:23px;height:23px}.home-brand-stamp>span{letter-spacing:2px;margin-left:2px;font-size:8px}.home-pet-card{background:linear-gradient(#eef5e6 0%,#f4f7ec 58%,#fbfcf4 100%);border:1px solid #dfe8d2;border-radius:26px;overflow:hidden;box-shadow:0 10px 26px #3a5c4214}.home-pet-heading{z-index:1;justify-content:space-between;align-items:center;gap:10px;padding:19px 20px 0;display:flex;position:relative}.home-pet-heading .home-eyebrow{letter-spacing:1.5px;font-size:8px}.home-pet-heading h2{letter-spacing:.4px;background:linear-gradient(#0000 70%,#f6e7ae 70%);border-radius:2px;margin-top:4px;padding:0 3px;font-size:17px;font-weight:700}.home-level-badge{color:#8a6a2d;background:#fdf7e3;border:1px solid #eadfb4;border-radius:12px;flex-shrink:0;align-items:center;gap:5px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.home-level-badge>span{color:#d8ab3e;font-size:12px}.home-pet-scene{isolation:isolate;height:272px;position:relative}.home-scene-decoration{z-index:-1;width:100%;height:100%;position:absolute;inset:0}.home-pet-speech{z-index:1;color:#6f8066;text-align:center;background:#fffdf6f2;border:1px solid #e2e8d3;border-radius:14px;width:max-content;max-width:calc(100% - 46px);padding:8px 13px;font-size:11px;line-height:1.5;position:absolute;top:17px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #6a82500f}.home-pet-speech:after{content:"";background:#fffdf6;border-bottom:1px solid #e2e8d3;border-right:1px solid #e2e8d3;width:7px;height:7px;position:absolute;bottom:-5px;left:calc(50% - 4px);transform:rotate(45deg)}.home-pet-speech.is-happy{color:#4f7a52}.home-pet-touch{touch-action:manipulation;border-radius:46%;width:264px;max-width:90%;position:absolute;top:42px;left:50%;transform:translate(-50%)}.home-pet-touch>span{display:block}.dumpling-pet{width:100%;height:auto;display:block;overflow:visible}.home-pet-touch-hint{color:#62855f;text-align:center;letter-spacing:1px;pointer-events:none;font-size:9px;position:absolute;bottom:9px;left:0;right:0}.pet-breath{transform-origin:160px 237px;animation:3.8s ease-in-out infinite pet-breathe}.pet-eyes{transform-origin:160px 163px;animation:6.2s ease-in-out infinite pet-blink}.pet-face-happy,.pet-happy-sparkles,.dumpling-pet.is-happy .pet-face-calm{opacity:0}.dumpling-pet.is-happy .pet-face-happy,.dumpling-pet.is-happy .pet-happy-sparkles{opacity:1}.home-pet-bounce{animation:.6s ease-out pet-bounce}.home-growth{background:#fffef8;border-top:1px solid #e3ead3;min-height:83px;padding:15px 19px 14px}.home-growth-label{justify-content:space-between;align-items:center;gap:8px;font-size:11px;line-height:1.5;display:flex}.home-growth-label>span{color:#6d8070;align-items:center;gap:5px;display:flex}.home-growth-label svg{color:#82a371;width:14px;height:14px}.home-growth-label strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.home-growth-label strong span{color:#90a084;font-size:9px;font-weight:400}.home-progress{background:#e8efdb;border-radius:6px;height:9px;margin-top:8px;overflow:hidden}.home-progress>span{border-radius:inherit;background:linear-gradient(90deg,#a8cf85,#5f9e77);height:100%;transition:width .7s;display:block}.home-growth-note{color:#7f9077;flex-wrap:wrap;justify-content:space-between;gap:4px 7px;margin-top:7px;font-size:10.5px;line-height:1.5;display:flex}.home-growth-note>span{color:var(--home-amber)}.home-growth-wait{color:#849176;text-align:center;padding-top:15px;font-size:12px}.home-pet-unavailable{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100%;padding:24px;display:flex}.home-state-leaf{color:#9db68a;background:#fffef1a8;border-radius:45% 55% 48% 52%;place-items:center;width:65px;height:65px;display:grid}.home-state-leaf svg{width:31px;height:31px}.home-pet-unavailable p{font-size:13px}.home-pet-unavailable>span:last-child{color:#7c8d70;font-size:11px}.home-inline-error{color:#a05f49;justify-content:space-between;align-items:center;gap:12px;padding:10px 0 1px;font-size:11px;line-height:1.7;display:flex}.home-inline-error p{min-width:0}.home-inline-error p>span{color:#8b8d76;font-size:10px;display:block}.home-inline-error button{color:#8f684b;background:#fff9ed;border:1px solid #dfcbb2;border-radius:10px;flex-shrink:0;min-height:34px;padding:7px 12px;font-size:11px}.home-inline-error button:disabled{opacity:.5}.home-add-entry{text-align:left;color:#fffdf0;background:linear-gradient(140deg,#4c8a67 0%,#3c7154 78%);border:1px solid #35634a;border-radius:22px;align-items:center;gap:12px;width:100%;margin:17px 0;padding:16px 18px;transition:background .2s,transform .2s;display:flex;box-shadow:0 10px 22px #35604a26}.home-add-symbol{background:#ffffff17;border:1px solid #ffffff20;border-radius:13px;flex-shrink:0;place-items:center;width:37px;height:37px;font-size:26px;font-weight:300;line-height:1;display:grid}.home-add-entry>span:nth-child(2){flex:1;min-width:0}.home-add-entry strong{letter-spacing:.8px;font-size:16.5px;font-weight:600;display:block}.home-add-entry>span:nth-child(2)>span{color:#d7e7cd;margin-top:5px;font-size:10.5px;line-height:1.5;display:block}.home-add-entry>svg{color:#dbe7cf;flex-shrink:0;width:19px;height:19px}.home-add-entry:disabled{box-shadow:none;color:#72836a;background:#e4ebdc;border-color:#d9e1ce}.home-add-entry:disabled>span:nth-child(2)>span,.home-add-entry:disabled>svg{color:#7b8d72}.home-add-entry:not(:disabled):active{transform:scale(.985)}.home-soft-card{border:1px solid var(--home-line);background:#fffef9;border-radius:22px;margin-top:15px;padding:17px 17px 15px;box-shadow:0 4px 14px #3a5c420a}.home-section-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.home-section-heading h2{letter-spacing:.3px;background:linear-gradient(#0000 70%,#f6e7ae 70%);border-radius:2px;padding:1px 3px;font-size:15px;font-weight:700}.home-section-heading>span{color:#8a9880;font-size:10px;line-height:1.5}.home-tasks .home-section-heading>span{color:#5c7a4f;font-variant-numeric:tabular-nums;background:#eaf3e0;border-radius:9px;padding:4px 9px;font-weight:600}.home-month .home-section-heading>span{color:#7d8f7c;font-variant-numeric:tabular-nums;background:#fbfcf3;border:1px solid #e7ecda;border-radius:9px;padding:4px 9px}.home-task{align-items:center;gap:12px;padding:17px 0 15px;display:flex}.home-task+.home-task{border-top:1px dashed #e3e8d8;padding-top:15px}.home-task-icon{color:#7e9c76;background:#eff4e9;border-radius:12px;flex-shrink:0;place-items:center;width:35px;height:38px;display:grid}.home-task-icon svg{width:22px;height:22px}.home-task-icon-sun{color:#b29b54;background:#fbf4db}.home-task-copy{flex:1;min-width:0}.home-task-copy h3{font-size:13px;font-weight:600;line-height:1.7}.home-task-copy h3>span{color:#a3803a;background:#f8f0da;border-radius:6px;margin-left:5px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.home-task-copy p{color:#84927c;margin-top:3px;font-size:10.5px;line-height:1.7}.home-task-action,.home-task-done{color:#4f7a45;background:#e7efda;border:1px solid #d6e2c2;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;min-width:57px;min-height:35px;padding:7px 10px;font-size:11px;font-weight:600;display:inline-flex}.home-task-action-subtle{color:#7c8e6f;background:#f7f8ed;border-color:#e7ebda}.home-task-action:disabled:not(.is-done){opacity:.5}.home-task-action.is-done,.home-task-done{color:#829771;background:0 0;border-color:#0000;padding-right:0}.home-task-action svg,.home-task-done svg{width:14px;height:14px}.home-tasks-footnote{color:#9a9a7d;letter-spacing:.2px;border-top:1px solid #f0f1e7;padding-top:12px;font-size:10px}.home-tasks-footnote>span{color:#b7a56b;margin-right:4px}.home-ledger-name{color:#8b9b83;align-items:center;gap:4px;margin-top:9px;font-size:10.5px;display:flex}.home-ledger-name svg{flex-shrink:0;width:12px;height:12px}.home-ledger-name>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-month-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 0 3px;display:grid}.home-month-totals>div{min-width:0}.home-month-totals>div+div{border-left:1px solid #e9eddc;padding-left:17px}.home-month-totals>div>span{color:#88937d;align-items:center;gap:5px;font-size:10.5px;display:flex}.home-month-totals i{border-radius:50%;width:5px;height:5px}.home-income-dot{background:#67a055}.home-expense-dot{background:#c9a24a}.home-month-totals strong{letter-spacing:-.7px;font-variant-numeric:tabular-nums;word-break:break-all;margin-top:8px;font-size:clamp(19px,5.6vw,24px);font-weight:650;line-height:1.35;display:block}.home-month-totals small{margin-right:4px;font-size:11px;font-weight:500}.home-month-totals>div:last-child strong{color:#8a713d}.home-month-state{color:#7d8e74;padding:19px 0 6px;font-size:11px;line-height:1.7}.home-month-loading{color:#7d8e74;margin-top:16px;font-size:11px}.home-month-loading>div{grid-template-columns:1fr 1fr;gap:32px;margin-top:13px;display:grid}.home-month-loading i{background:#eff2e5;border-radius:6px;height:19px;animation:1.5s ease-in-out infinite home-soft-pulse}.home-rules{color:#7f8f75;margin-top:17px;padding:0 4px}.home-rules summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:39px;font-size:10.5px;list-style:none;display:flex}.home-rules summary::-webkit-details-marker{display:none}.home-rules summary>span:first-child{align-items:center;gap:6px;display:flex}.home-rules summary svg{width:14px;height:14px}.home-rules-chevron{font-size:17px;transition:transform .2s}.home-rules[open] .home-rules-chevron{transform:rotate(180deg)}.home-rules>div{color:#8a9880;padding:8px 2px 3px;font-size:10.5px;line-height:1.95}.home-rules p+p{margin-top:8px}.home-footer{text-align:center;letter-spacing:1.2px;color:#a3ac93;margin-top:21px;font-size:10px}.pet-toast-region{top:calc(18px + env(safe-area-inset-top,0px));width:calc(100% - 28px);max-width:calc(var(--app-width,430px) - 28px);z-index:160;pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.pet-toast{pointer-events:auto;color:#476b4c;background:#fbfff5;border:1px solid #d8e5c9;border-radius:18px;align-items:center;gap:10px;padding:13px 12px;animation:.25s ease-out pet-toast-in;display:flex;box-shadow:0 8px 30px #2d503126}.pet-toast-icon{color:#b3a254;background:#edf2d8;border-radius:12px;flex-shrink:0;place-items:center;width:35px;height:35px;display:grid}.pet-toast-icon svg{width:22px;height:22px}.pet-toast>span:nth-child(2){flex:1;min-width:0}.pet-toast strong{font-size:12px;line-height:1.6;display:block}.pet-toast>span:nth-child(2)>span{color:#7d8d66;margin-top:3px;font-size:10px;display:block}.pet-toast-level-up{background:#fffdf0;border-color:#e6dbaa}.pet-toast-close{color:#8c9c80;border-radius:10px;place-items:center;width:34px;min-width:34px;height:34px;font-size:21px;display:grid}.pet-toast-close:focus-visible{outline-offset:1px;outline:2px solid #6c9d78}@media (hover:hover){.home-add-entry:not(:disabled):hover{background:linear-gradient(140deg,#437d5c 0%,#366a4e 78%)}.home-task-action:not(:disabled):hover{background:#e2eacb}.home-pet-touch:hover .pet-leaf{transform-origin:163px 60px;transform:rotate(4deg)}}@media (width<=359px){.home-page{padding-top:19px;padding-left:13px;padding-right:13px}.home-greeting h1{font-size:24px}.home-greeting{gap:10px;margin-bottom:18px}.home-date{gap:4px 6px;font-size:10px}.home-date>span{padding-left:6px}.home-brand-stamp{width:42px;height:54px}.home-pet-heading{padding-left:16px;padding-right:16px}.home-pet-heading h2{font-size:16px}.home-pet-scene{height:253px}.home-pet-touch{width:244px;top:40px}.home-pet-speech{padding:7px 10px;font-size:10px}.home-growth{padding-left:15px;padding-right:15px}.home-growth-label{font-size:10px}.home-add-entry{gap:10px;padding:15px 13px}.home-add-entry strong{font-size:15px}.home-add-entry>span:nth-child(2)>span{font-size:9.5px}.home-soft-card{padding:16px 13px}.home-task{gap:8px}.home-task-icon{border-radius:10px;width:29px;height:35px}.home-task-copy h3{font-size:12px}.home-task-copy h3>span{margin-left:1px;font-size:9px}.home-task-copy p{font-size:9.5px}.home-task-action,.home-task-done{min-width:48px;padding-left:7px;padding-right:7px;font-size:10px}.home-month-totals>div+div{padding-left:12px}}@media (orientation:landscape) and (height<=540px){.home-page{padding-top:19px}.home-greeting{margin-bottom:16px}.home-pet-scene{height:233px}.home-pet-touch{width:225px;top:40px}.home-pet-speech{top:12px}}@keyframes pet-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.015,1.025)}}@keyframes pet-blink{0%,43%,47%,to{transform:scaleY(1)}45%{transform:scaleY(.08)}}@keyframes pet-bounce{0%,to{transform:translateY(0)scale(1)}22%{transform:translateY(3px)scale(1.04,.96)}52%{transform:translateY(-12px)scale(.98,1.03)}76%{transform:translateY(1px)scale(1.025,.98)}}@keyframes home-soft-pulse{50%{opacity:.5}}@keyframes pet-toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.home-page *,.pet-toast,.pet-toast *{transition:none!important;animation:none!important}}.home-pet-heading-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.home-dressup-btn{color:#58734b;background:#fcfbe9;border:1px solid #d5e2bd;border-radius:11px;min-height:32px;padding:4px 12px;font-size:12px;font-weight:600}.du-sheet{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.du-balance{justify-content:space-between;align-items:baseline;gap:10px;padding:12px 2px 2px;display:flex}.du-coins{color:#8a6a2d;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.du-streak{color:var(--home-muted,#73877a);font-size:10.5px}.du-sheet .cs-seg{margin:10px 0 4px}.du-list{padding:4px 0 0}.du-card{border:1px solid #0000;border-radius:14px;align-items:center;gap:12px;padding:10px;display:flex}.du-card+.du-card{margin-top:6px}.du-card.on{background:#f0f7ec;border-color:#bcd9c4}.du-icon{background:#fff;border:1px solid #e3eadb;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:21px;display:grid}.du-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.du-name{color:#2e5344;font-size:14.5px;font-weight:600}.du-slot{color:var(--home-muted,#73877a);font-size:10.5px}.du-btn{color:#4f7a45;background:#e7efda;border:1px solid #d6e2c2;border-radius:11px;flex-shrink:0;min-height:34px;padding:5px 13px;font-size:12.5px;font-weight:600}.du-btn.own{color:#7c8e6f;background:#f7f8ed;border-color:#e7ebda}.du-btn:disabled{opacity:.5}.du-card.on .du-btn.own{color:#3e7458;background:#e2efe2;border-color:#bcd9c4}.du-hint{color:#a3803a;flex-shrink:0;font-size:10.5px}.du-empty{text-align:center;color:var(--home-muted,#73877a);padding:26px 4px;font-size:13px}:root{--primary:#00b578;--primary-weak:#e6f7f0;--income:#ff8f1f;--danger:#f5533d;--text-1:#1f2430;--text-2:#8a9099;--text-3:#b8bec6;--bg:#f6f7f9;--card:#fff;--line:#f0f1f3;--radius:14px;--tabbar-h:64px;--app-width:430px;--tabbar-offset:0px;--dock-gap:12px;--dock-bottom:calc(var(--tabbar-offset) + var(--dock-gap) + env(safe-area-inset-bottom,0px))}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{color:var(--text-1);-webkit-font-smoothing:antialiased;background:#e9ebee;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input{color:inherit;background:0 0;border:none;outline:none;font-family:inherit}.phone{max-width:var(--app-width);background:var(--bg);border-left:1px solid #dfe3e8;border-right:1px solid #dfe3e8;min-height:100dvh;margin:0 auto;position:relative;box-shadow:0 0 32px #0000000f}.page-body{padding:14px 14px calc(var(--tabbar-h) + var(--dock-bottom) + 28px)}.card{background:var(--card);border-radius:var(--radius);padding:16px}.empty{text-align:center;color:var(--text-3);padding:64px 0}.empty .empty-icon{margin-bottom:10px;font-size:44px;display:block}.month-picker{color:#426b59;align-items:center;display:flex}.month-picker .mp-title{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:88px;font-size:14px;font-weight:600}.month-picker button{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:40px;transition:background .15s,color .15s;display:flex}.month-picker button svg{width:16px;height:16px}@media (hover:hover){.month-picker button:hover{color:#007d53;background:#ffffffa6}}.month-picker button:active{background:#00b5781f}.month-picker button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.cal-card{margin-bottom:12px;padding:10px 8px 8px}.cal-head{text-align:center;color:var(--text-2);grid-template-columns:repeat(7,1fr);margin-bottom:6px;font-size:12px;display:grid}.cal-grid{grid-template-columns:repeat(7,1fr);row-gap:2px;display:grid}.cal-cell{border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;height:48px;font-size:13px;display:flex}.cal-cell.empty{pointer-events:none}.cal-cell .cal-num{line-height:20px}.cal-cell .cal-amt{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;max-width:90%;font-size:9px;line-height:11px;overflow:hidden}.cal-cell.today .cal-num{background:var(--primary);color:#fff;border-radius:50%;width:20px;height:20px}.cal-cell.selected{background:var(--primary-weak)}.cal-cell.selected .cal-amt{color:var(--primary)}.tabbar{bottom:var(--dock-bottom);width:calc(100% - 32px);max-width:calc(var(--app-width) - 32px);height:var(--tabbar-h);background:var(--card);z-index:40;border:1px solid #234c390f;border-radius:24px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:5px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #1f3d2e1a,0 2px 6px #1f3d2e08}.tab{color:#9ba6a0;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;height:100%;font-size:10px;line-height:1.2;text-decoration:none;transition:color .15s;display:flex}.tab svg{width:22px;height:22px}.tab.active{color:var(--primary);font-weight:600}.tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tab-home svg{width:30px;height:25px}.tab-home.active svg{animation:.4s ease-out dock-pet-bounce}@keyframes dock-pet-bounce{50%{transform:translateY(-3px)rotate(-5deg)}}@media (prefers-reduced-motion:reduce){.tab-home.active svg{animation:none}}.month-summary{gap:10px;margin-bottom:12px;display:flex}.month-summary .ms-item{background:var(--card);border-radius:var(--radius);flex:1;padding:12px 16px}.month-summary .ms-label{color:var(--text-2);margin-bottom:4px;font-size:12px}.month-summary .ms-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.month-summary .ms-value.income{color:var(--income)}.daily-chart{margin-bottom:12px;padding:14px 16px 10px}.daily-chart .dc-title{color:var(--text-2);margin-bottom:8px;font-size:12px}.daily-chart svg{width:100%;height:56px;display:block}.dc-bar{fill:#d7f2e6;transition:fill .15s}.dc-bar.has{fill:var(--primary)}.dc-bar.today{fill:#00915f}.day-group{background:var(--card);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.day-group .dg-header{color:var(--text-2);align-items:center;padding:12px 16px 8px;font-size:13px;display:flex}.day-group .dg-header .dg-sub{margin-left:8px;font-size:12px}.day-group .dg-header .dg-today{color:var(--primary);margin-left:6px;font-size:12px}.day-group .dg-header .dg-sum{font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.entry-row{text-align:left;align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex}.entry-row:active{background:#fafbfc}.entry-row .er-icon{background:var(--primary-weak);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.entry-row .er-main{flex:1;min-width:0}.entry-row .er-name{font-size:15px}.entry-row .er-note{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.entry-row .er-amount{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.entry-row .er-amount.income{color:var(--income)}.sheet-mask{z-index:50;background:#0006;position:fixed;inset:0}.add-sheet{bottom:var(--tabbar-offset);width:100%;max-width:var(--app-width);background:var(--bg);z-index:51;height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;flex-direction:column;animation:.25s ease-out sheet-up;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes sheet-up{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.sheet-main{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-header{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.sheet-header .sh-title{color:var(--text-1);font-size:15px}.sheet-header .sh-cancel,.sheet-header .sh-delete{color:var(--text-2);padding:4px 6px;font-size:14px}.sheet-header .sh-delete{color:var(--danger)}.type-tabs{background:#eceef1;border-radius:10px;margin:6px 16px 0;padding:3px;display:flex}.type-tabs button{height:32px;color:var(--text-2);border-radius:8px;flex:1;font-size:14px}.type-tabs button.active-expense{background:var(--card);color:var(--primary);font-weight:600;box-shadow:0 1px 4px #00000014}.type-tabs button.active-income{background:var(--card);color:var(--income);font-weight:600;box-shadow:0 1px 4px #00000014}.amount-line{align-items:center;gap:12px;padding:18px 20px 10px;display:flex}.amount-line .al-icon{background:var(--card);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:21px;display:flex}.amount-line .al-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex:1;min-width:0;font-size:34px;font-weight:700;overflow:hidden}.amount-line .al-amount .caret{background:var(--primary);vertical-align:-4px;width:2px;height:30px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.meta-line{align-items:center;gap:8px;padding:0 20px 10px;display:flex}.meta-line .meta-note{background:#eceef1;border-radius:10px;flex:1;min-width:0;height:36px;padding:0 12px;font-size:14px}.meta-line .meta-note::placeholder{color:var(--text-3)}.meta-line .meta-date{height:36px;color:var(--text-1);background:#eceef1;border-radius:10px;flex-shrink:0;padding:0 10px;font-size:13px}.category-grid{flex:1;padding:6px 12px;overflow-y:auto}.category-grid .cg-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.category-grid .cg-item{color:var(--text-2);border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;font-size:12px;display:flex}.category-grid .cg-item .cgi-icon{background:var(--card);border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;transition:background .15s;display:flex}.category-grid .cg-item.selected{color:var(--primary);font-weight:600}.category-grid .cg-item.selected .cgi-icon{background:var(--primary-weak);outline:2px solid var(--primary)}.num-keyboard{background:var(--card);border-top:1px solid var(--line);background-color:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.num-keyboard button{background:var(--card);height:52px;color:var(--text-1);font-variant-numeric:tabular-nums;font-size:21px;font-weight:500}.num-keyboard button:active{background:#eef0f2}.num-keyboard button.nk-fn{color:var(--text-2);font-size:16px}.num-keyboard button.nk-done{background:var(--primary);color:#fff;font-size:17px;font-weight:600}.num-keyboard button.nk-done:disabled{cursor:default;background:#a5ddc6}.type-seg{background:#eceef1;border-radius:10px;margin-bottom:12px;padding:3px;display:flex}.type-seg button{height:32px;color:var(--text-2);border-radius:8px;flex:1;font-size:14px}.type-seg button.active{background:var(--card);color:var(--text-1);font-weight:600;box-shadow:0 1px 4px #00000014}.stats-hero{text-align:center;padding:20px 16px 6px}.stats-hero .sh-label{color:var(--text-2);margin-bottom:4px;font-size:13px}.stats-hero .sh-value{font-variant-numeric:tabular-nums;font-size:34px;font-weight:700}.stats-hero .sh-value.income{color:var(--income)}.pie-wrap{height:220px;margin:4px 0;position:relative}.pie-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pie-center .pc-label{color:var(--text-2);font-size:12px}.pie-center .pc-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.rank-list{background:var(--card);border-radius:var(--radius);padding:6px 16px}.rank-item{border-bottom:1px solid var(--line);padding:12px 0}.rank-item:last-child{border-bottom:none}.rank-item .ri-top{align-items:center;gap:10px;margin-bottom:7px;display:flex}.rank-item .ri-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.rank-item .ri-name{flex:1;min-width:0;font-size:14px}.rank-item .ri-name .ri-count{color:var(--text-3);margin-left:6px;font-size:12px}.rank-item .ri-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.rank-item .ri-pct{color:var(--text-3);text-align:right;width:40px;margin-left:8px;font-size:12px}.rank-item .ri-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.rank-item .ri-bar i{background:var(--primary);border-radius:2px;height:100%;display:block}.mine-hero{text-align:center;padding:30px 16px 22px}.mine-hero .mh-logo{background:linear-gradient(135deg, #00d68f, var(--primary));color:#fff;letter-spacing:1px;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 10px;font-size:24px;font-weight:700;display:flex;box-shadow:0 8px 18px #00b5784d}.mine-hero .mh-name{font-size:19px;font-weight:700}.mine-hero .mh-slogan{color:var(--text-2);margin-top:4px;font-size:12px}.mine-stats{gap:10px;margin-bottom:12px;display:flex}.mine-stats .ms-item{background:var(--card);border-radius:var(--radius);text-align:center;flex:1;padding:14px}.mine-stats .ms-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.mine-stats .ms-label{color:var(--text-2);margin-top:3px;font-size:12px}.cell-list{background:var(--card);border-radius:var(--radius);overflow:hidden}.cell-list .cell{text-align:left;border-bottom:1px solid var(--line);align-items:center;gap:10px;width:100%;padding:15px 16px;font-size:15px;display:flex}.cell-list .cell:last-child{border-bottom:none}.cell-list .cell:active{background:#fafbfc}.cell-list .cell .cell-icon{font-size:17px}.cell-list .cell .cell-body{flex:1}.cell-list .cell .cell-value{color:var(--text-3);font-size:13px}.cell-list .cell .cell-arrow{color:var(--text-3);font-size:14px}.mine-about{text-align:center;color:var(--text-3);padding:18px 0 4px;font-size:12px;line-height:1.8}@media (width>=431px) and (width<=767px){:root{--app-width:min(94vw, 560px)}}@media (width>=768px){:root{--app-width:440px;--tabbar-offset:24px}body{background:radial-gradient(1200px 800px at 70% -10%,#dcefe5 0%,#e9ebee 55%)}.phone{border:1px solid #d5dade;border-radius:28px;min-height:calc(100dvh - 48px);margin-top:24px;overflow:hidden;box-shadow:0 24px 60px #1f2d3d24}.add-sheet{border-radius:28px 28px 0 0}}@media (height<=520px){:root{--tabbar-h:56px;--tabbar-offset:0px;--dock-gap:8px;--app-width:100%}.phone{min-height:100dvh;box-shadow:none;border:none;border-radius:0;margin-top:0}.tabbar{border-radius:20px;max-width:528px}.tab svg{width:20px;height:20px}.cal-head{margin-bottom:2px}.cal-cell{height:36px}.add-sheet{border-radius:0;flex-direction:row;width:100%;max-width:100%;height:100dvh}.sheet-main{flex:1;min-width:0}.sheet-header{padding:8px 16px 2px}.type-tabs{margin-top:2px}.type-tabs button{height:28px;font-size:13px}.amount-line{padding:8px 20px 4px}.amount-line .al-icon{width:34px;height:34px;font-size:17px}.amount-line .al-amount{font-size:26px}.meta-line{padding:0 20px 4px}.meta-line .meta-note,.meta-line .meta-date{height:30px}.category-grid{padding:4px 12px}.category-grid .cg-grid{grid-template-columns:repeat(8,1fr);gap:4px}.category-grid .cg-item .cgi-icon{width:38px;height:38px;font-size:18px}.num-keyboard{flex-shrink:0;align-self:flex-end;width:292px}.num-keyboard button{height:52px;font-size:19px}.num-keyboard button.nk-done{font-size:15px}}.add-sheet .sheet-main{overscroll-behavior:contain;overflow-y:auto}.add-sheet .sheet-header,.add-sheet .num-keyboard{flex-shrink:0}.entry-mode-tabs{background:#e3f3eb;border-radius:12px;flex-shrink:0;gap:4px;margin:8px 16px 6px;padding:4px;display:flex}.entry-mode-tabs button{color:#608171;border-radius:9px;flex:1;min-height:36px;font-size:14px}.entry-mode-tabs button[aria-pressed=true]{background:var(--card);color:#008557;font-weight:600;box-shadow:0 2px 6px #2a634912}.entry-mode-tabs button:disabled,.ai-entry-example:disabled,.sheet-header .sh-delete:disabled{opacity:.55;cursor:default}.entry-mode-tabs button:focus-visible,.ai-entry-example:focus-visible,.ai-entry-submit:focus-visible,.entry-status button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.entry-fields{border:0;flex-direction:column;flex:1 0 auto;min-inline-size:0;display:flex}.entry-fields-legend{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.entry-fields .category-grid{flex:none;overflow:visible}.entry-status{overflow-wrap:anywhere;color:#748779;flex-shrink:0;margin:6px 16px;font-size:12px;line-height:1.6}.entry-status-error{color:#b74332}.entry-status button{color:#008557;margin-left:8px;padding:3px 6px;text-decoration:underline}.ai-entry-card{background:var(--card);border:1px solid #e0eee6;border-radius:18px;flex-shrink:0;margin:12px 16px 20px;padding:18px 16px;box-shadow:0 4px 14px #33694f0a}.ai-entry-heading{align-items:center;gap:12px;margin-bottom:22px;display:flex}.ai-entry-badge{background:var(--primary-weak);color:#008557;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:17px;font-weight:700;display:flex}.ai-entry-heading h2{color:#28573f;font-size:18px;line-height:1.5}.ai-entry-heading p{color:#7c8e82;margin-top:3px;font-size:12px;line-height:1.6}.ai-entry-label{margin-bottom:9px;font-size:14px;font-weight:600;display:block}.ai-entry-text{width:100%;min-height:154px;color:var(--text-1);font:inherit;resize:vertical;background:#f8fcfa;border:1px solid #dce9e2;border-radius:12px;padding:12px;font-size:15px;line-height:1.7;display:block}.ai-entry-text:focus{border-color:var(--primary);outline:2px solid #00b57824}.ai-entry-text::placeholder{color:#9baaa1}.ai-entry-text:disabled{opacity:.7}.ai-entry-input-foot{color:#8a9c90;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:flex}.ai-entry-example{background:var(--primary-weak);color:#008557;border-radius:8px;min-height:32px;padding:4px 8px;font-size:12px}.ai-entry-privacy,.ai-entry-progress,.ai-entry-error,.ai-entry-footnote{overflow-wrap:anywhere;margin-top:14px;font-size:12px;line-height:1.7}.ai-entry-privacy{color:#7d8c83}.ai-entry-submit{background:var(--primary);color:#fff;border-radius:12px;width:100%;min-height:44px;margin-top:18px;font-size:15px;font-weight:600}.ai-entry-submit:disabled{cursor:default;background:#a5ddc6}.ai-entry-progress{color:#397259}.ai-entry-error{color:#b74332;background:#fff3ee;border-radius:10px;padding:10px 12px}.ai-entry-footnote{color:#8a9c90;text-align:center}.ai-entry-pending{background:var(--primary-weak);color:#397259;border:1px solid #ccebdc;border-radius:12px;padding:12px}.ai-entry-pending h3{font-size:14px}.ai-entry-pending p{margin-top:8px;font-size:12px;line-height:1.7}.ai-entry-pending ul{margin-top:8px;list-style:none}.ai-entry-pending li{border-top:1px solid #ccebdc;justify-content:space-between;gap:12px;padding:8px 0;font-size:12px;line-height:1.6;display:flex}.ai-entry-pending li span{overflow-wrap:anywhere;min-width:0}.ai-entry-pending li strong{flex-shrink:0}@media (width<=360px){.entry-fields .meta-line{flex-wrap:wrap;padding-left:16px;padding-right:16px}.entry-fields .meta-note,.entry-fields .meta-date{flex-basis:100%;width:100%}.entry-fields .al-amount{font-size:29px}.ai-entry-card{margin-left:12px;margin-right:12px;padding:16px 12px}}@media (height<=520px){.add-sheet-ai .sheet-main{width:100%}.add-sheet-ai .ai-entry-card{width:min(100% - 32px,560px);margin-left:auto;margin-right:auto}.entry-fields .cg-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (height<=520px) and (width<=639px){.add-sheet{flex-direction:column}.add-sheet .num-keyboard{width:100%}}.login-page{padding:48px 22px calc(var(--tabbar-h) + 30px)}.login-hero{text-align:center;margin-bottom:26px}.login-hero .mh-logo{margin-bottom:12px}.login-title{font-size:22px;font-weight:700}.login-slogan{color:var(--text-2);margin-top:5px;font-size:12px}.login-card{padding:14px 16px 18px}.login-input{background:#f1f3f5;border-radius:12px;width:100%;height:44px;margin-top:10px;padding:0 14px;font-size:15px}.login-input::placeholder{color:var(--text-3)}.login-error{color:var(--danger);text-align:center;margin-top:10px;font-size:13px}.login-submit{background:linear-gradient(135deg, #00d68f, var(--primary));color:#fff;border-radius:12px;width:100%;height:46px;margin-top:16px;font-size:16px;font-weight:600}.login-submit:disabled{background:#a5ddc6}.login-foot{text-align:center;color:var(--text-3);margin-top:18px;font-size:12px}.mh-avatar{background:linear-gradient(135deg, #00d68f, var(--primary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 10px;font-size:26px;font-weight:700;display:flex}.mh-avatar.sm{flex-shrink:0;width:32px;height:32px;margin:0;font-size:14px}.section-title{color:var(--text-2);margin:16px 2px 8px;font-size:13px}.mine-toast{bottom:calc(var(--tabbar-h) + var(--dock-bottom) + 14px);color:#fff;z-index:60;background:#1f2430e0;border-radius:20px;max-width:80%;padding:8px 18px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.ledger-row.current .cell-body{color:var(--primary);font-weight:600}.ledger-chip{background:var(--primary-weak);color:var(--primary);border-radius:20px;margin:0 2px 10px;padding:3px 10px;font-size:12px;display:inline-block}.entry-row .er-author{color:var(--text-3);margin-left:6px;font-size:11px;font-weight:400}.invite-card{padding:14px 16px}.invite-tip{color:var(--text-2);font-size:12px;line-height:1.6}.invite-code-row{text-align:center;margin:12px 0 4px}.invite-code{letter-spacing:6px;color:var(--primary);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.invite-actions{justify-content:center;gap:8px;margin:10px 0 14px;display:flex}.btn-mini{height:32px;color:var(--text-1);background:#eef1f3;border-radius:16px;padding:0 14px;font-size:13px}.btn-mini.primary{background:var(--primary);color:#fff;font-weight:600}.btn-mini:active{transform:scale(.96)}.join-row{gap:8px;margin-top:10px;display:flex}.join-row .meta-note{background:#eceef1;border-radius:10px;flex:1;height:36px;padding:0 12px;font-size:14px}.join-row .meta-note::placeholder{color:var(--text-3)}.member-row{cursor:default}.role-pill{height:26px;color:var(--text-2);background:#eef1f3;border-radius:13px;flex-shrink:0;padding:0 10px;font-size:12px}.role-pill.on{background:var(--primary-weak);color:var(--primary);font-weight:600}.role-pill.danger{color:var(--danger);background:#fdeceb}.migrate-card{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.cell-list .cell .cell-icon svg{width:18px;height:18px;color:var(--text-2);display:block}.mine-head{background:linear-gradient(168deg, #c9ecdb 0%, #ddf3e9 48%, #f0f7f3 82%, var(--bg) 100%);border-radius:0 0 26px 26px;margin:-14px -14px 4px;padding:30px 20px 22px;position:relative;overflow:hidden}.mine-head .mh-mark{letter-spacing:-2px;color:#2f7a6217;-webkit-user-select:none;user-select:none;font-size:72px;font-weight:800;position:absolute;top:8px;right:18px}.mine-head .mh-paw{-webkit-user-select:none;user-select:none;position:absolute}.mine-head .paw1{opacity:.22;font-size:30px;top:14px;left:14px;transform:rotate(-18deg)}.mine-head .paw2{opacity:.16;font-size:20px;top:44px;left:52px;transform:rotate(14deg)}.mine-head .mh-avatar{background:linear-gradient(135deg, #00d68f, var(--primary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin:0 auto 10px;font-size:26px;font-weight:700;display:flex;box-shadow:0 0 0 3px #fff,0 0 0 5px #00b57829}.mine-head .mh-name{color:#24533f;font-size:19px;font-weight:700}.mine-head .mh-slogan{color:#5e8a78;margin-top:4px;font-size:12px}.mh-stats-row{justify-content:center;gap:44px;margin-top:16px;display:flex}.mh-stat .mhs-num{font-variant-numeric:tabular-nums;color:#1f2430;font-size:23px;font-weight:700}.mh-stat .mhs-label{color:var(--text-2);margin-top:2px;font-size:11px}.section-title{color:#3d6b58;background:linear-gradient(#0000 60%,#fde38abf 60%);border-radius:2px;padding:0 2px;font-size:13px;font-weight:600;display:inline-block}.login-page{padding:48px 22px calc(var(--tabbar-h) + 30px);background:linear-gradient(172deg, #cfeee0 0%, #e2f4ec 40%, var(--bg) 78%);min-height:100dvh;margin:-14px -14px 0}.ledger-head{background:linear-gradient(170deg,#d2efe2 0%,#e4f4ec 46%,#f6f7f900 100%);border-radius:0 0 22px 22px;margin:-14px -14px 0;padding:8px 14px 16px}.ledger-head .month-picker{padding-top:0}.ledger-row .cell-body{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.ledger-row .ri-count{margin-left:0;font-size:11px;display:block}.dialog-mask{z-index:90;background:#141a2273;position:fixed;inset:0}.dialog-card{z-index:91;background:#fff;border-radius:18px;width:min(82vw,320px);padding:22px 20px 14px;animation:.18s ease-out dialog-in;position:fixed;top:42%;left:50%;transform:translate(-50%,-50%)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.dialog-title{color:var(--text-1);text-align:center;white-space:pre-line;font-size:15px;line-height:1.6}.dialog-input{background:#f1f3f5;border-radius:10px;width:100%;height:42px;margin-top:14px;padding:0 12px;font-size:15px}.dialog-input::placeholder{color:var(--text-3)}.dialog-actions{gap:10px;margin-top:16px;display:flex}.dialog-btn{height:40px;color:var(--text-1);background:#f1f3f5;border-radius:20px;flex:1;justify-content:center;align-items:center;font-size:15px;display:flex}.dialog-btn.primary{background:var(--primary);color:#fff;font-weight:600}.dialog-btn.primary.danger{background:var(--danger)}.btn-mini,.role-pill,.login-submit,.type-seg button,.type-tabs button{justify-content:center;align-items:center;line-height:1;display:flex}.page-head{background:linear-gradient(155deg, #d4eee2 0%, #e5f3ec 52%, var(--bg) 100%);margin:-14px -14px 0;padding:18px 14px 20px}.page-heading{justify-content:space-between;align-items:center;gap:12px;min-height:40px;margin-bottom:18px;padding-left:4px;display:flex}.page-heading:last-child{margin-bottom:0}.page-title{color:#244e3c;white-space:nowrap;margin:0;font-size:21px;font-weight:700;line-height:1.4}.page-head .ledger-chip{color:#5e7e6f;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:0;width:fit-content;max-width:100%;margin:-8px 4px 16px;padding:0;line-height:1.5;display:block;overflow:hidden}.page-head .month-summary{margin-bottom:0}.page-head .type-seg{background:#38685112;border-radius:12px;margin-bottom:0;padding:4px}.page-head .type-seg button{height:34px}.page-head .type-seg button.active{color:#24533f;box-shadow:0 2px 6px #1f3d2e0f}@media (width<=360px){.page-heading{gap:6px;padding-left:0}.page-title{font-size:19px}}.mh-avatar-btn{margin:0 auto 10px;display:inline-block;position:relative}.mh-avatar-btn .mh-cam{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex;position:absolute;bottom:-2px;right:-2px;box-shadow:0 1px 4px #0000002e}.mh-name-row{justify-content:center;align-items:center;gap:6px;display:flex}.mine-head .mh-avatar{font-size:30px}.avatar-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px;display:grid}.avatar-grid button{background:#f1f3f5;border-radius:12px;justify-content:center;align-items:center;height:50px;font-size:26px;display:flex}.avatar-grid button.on{background:var(--primary-weak);outline:2px solid var(--primary)}.avatar-grid .avatar-letter{color:var(--primary);font-size:17px;font-weight:700}.mh-user-row{align-items:center;gap:14px;display:flex}.mh-user-row .mh-avatar-btn{flex-shrink:0;margin:0}.mh-user-info{text-align:left;min-width:0}.mh-user-info .mh-name-row{justify-content:flex-start}.mine-head .mh-avatar{width:56px;height:56px;font-size:26px}.mh-stats-row{margin-top:14px}.ledger-row{cursor:pointer}.ledger-ops{flex-shrink:0;gap:4px;display:flex}.ledger-op{background:#f1f3f5;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.ledger-op:active{transform:scale(.92)}.ledger-swipe{position:relative;overflow:hidden}.ledger-del-btn{background:var(--danger);color:#fff;z-index:0;justify-content:center;align-items:center;width:64px;font-size:13px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;right:0}.cell.ledger-row{z-index:1;background:var(--card);touch-action:pan-y;cursor:pointer;transition:transform .2s;position:relative}.ledger-row.swiped{transform:translate(-64px)}.ledger-name-row{align-items:center;display:flex}.mini-edit{opacity:.55;background:0 0;border:none;margin-left:3px;padding:0 1px;font-size:11px;line-height:1}.mh-name-row{gap:2px}.mh-edit{opacity:.55;padding:1px 2px;font-size:11px}.search-bar{gap:10px;padding:12px 0 2px;display:flex}.search-input{background:var(--card);border:1px solid var(--line);min-width:0;height:42px;color:var(--text-2);border-radius:14px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-input input{min-width:0;color:var(--text-1);background:0 0;border:none;flex:1;font-size:14px}.search-input input:focus{outline:none}.si-clear{background:var(--bg);color:var(--text-3);border:none;border-radius:50%;width:20px;height:20px;font-size:11px;line-height:1}.filter-btn{border:1px solid var(--line);background:var(--card);height:42px;color:var(--text-2);border-radius:14px;flex-shrink:0;padding:0 16px;font-size:14px;position:relative}.filter-btn.on{border-color:var(--primary);color:var(--primary);background:var(--primary-weak)}.filter-badge{background:var(--primary);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;line-height:18px;position:absolute;top:-6px;right:-6px}.result-bar{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:4px 0 14px;font-size:13px;display:flex}.result-bar strong{color:var(--text-1);font-variant-numeric:tabular-nums}.rb-limit{color:var(--text-3);font-size:11px}.rb-clear{color:var(--primary);background:0 0;border:none;padding:0 2px;font-size:13px}.empty-clear{margin-left:8px}.month-picker.is-disabled{opacity:.6}.cs-mask{z-index:70}.cat-sheet{bottom:var(--tabbar-offset);width:100%;max-width:var(--app-width);background:var(--bg);z-index:71;max-height:84dvh;padding:0 18px calc(14px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.cat-sheet .sheet-header{border-bottom:1px solid var(--line);padding:14px 2px 10px}.cat-sheet .type-seg{margin:12px 0 4px}.cs-readonly-tip{color:var(--text-2);padding:18px 4px;font-size:13px}.cs-list{flex:1;min-height:120px;overflow-y:auto}.cs-row{border-bottom:1px dashed var(--line);align-items:center;gap:12px;padding:11px 2px;display:flex}.cs-icon{background:var(--card);border:1px solid var(--line);border-radius:11px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:19px;display:grid}.cs-name{min-width:0;color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;overflow:hidden}.cs-tag{color:var(--text-3);border:1px solid var(--line);border-radius:7px;flex-shrink:0;padding:2px 7px;font-size:11px}.cs-ops{flex-shrink:0;gap:10px;display:flex}.cs-ops .mini-edit{opacity:.7;font-size:14px}.cs-add{background:var(--primary-weak);height:44px;color:var(--primary);border:1px dashed #9fd4b8;border-radius:13px;flex-shrink:0;margin:10px 0 4px;font-size:14px;font-weight:600}.cs-form{flex:1;padding-bottom:6px;overflow-y:auto}.cs-form-title{color:var(--text-1);padding:14px 2px 10px;font-size:15px;font-weight:600}.cs-preview{align-items:center;gap:12px;display:flex}.cs-preview .dialog-input{flex:1}.cs-form-label{color:var(--text-2);margin:16px 2px 10px;font-size:13px}.cs-icon-grid{grid-template-columns:repeat(8,1fr);gap:8px}.cs-icon-grid button{aspect-ratio:1;border-radius:11px;width:100%;font-size:20px}.cs-form-actions{gap:10px;padding-top:16px;display:flex}.filter-sheet{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.fs-section{padding:14px 2px 2px}.fs-label{color:var(--text-2);margin-bottom:10px;font-size:13px}.fs-seg{background:#eef1ee;border-radius:12px;gap:4px;padding:4px;display:flex}.fs-seg button{height:34px;color:var(--text-2);background:0 0;border:none;border-radius:9px;flex:1;font-size:13px}.fs-seg button.active{background:var(--card);color:var(--primary);font-weight:600;box-shadow:0 1px 4px #0000000f}.fs-chips{flex-wrap:wrap;gap:8px;display:flex}.fs-chip{border:1px solid var(--line);background:var(--card);color:var(--text-2);border-radius:11px;padding:7px 12px;font-size:13px}.fs-chip.on{border-color:var(--primary);background:var(--primary-weak);color:var(--primary);font-weight:600}.fs-amount{align-items:center;gap:10px;display:flex}.fs-input{border:1px solid var(--line);background:var(--card);min-width:0;height:40px;color:var(--text-1);border-radius:11px;flex:1;padding:0 12px;font-size:14px}.fs-input:focus{border-color:var(--primary);outline:none}.fs-dash{color:var(--text-3)}.fs-footer{gap:10px;padding-top:18px;display:flex}.fs-btn{border:1px solid var(--line);background:var(--card);height:44px;color:var(--text-1);border-radius:13px;flex:1;font-size:15px}.fs-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.fs-btn:disabled{opacity:.6}.ph-right{align-items:center;gap:8px;display:flex}.report-link{height:40px}.report-hero{padding:18px}.rh-title{color:var(--text-2);margin-bottom:12px;font-size:13px}.rh-expense{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.rh-label{color:var(--text-3);font-size:13px}.rh-value{color:#244e3c;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.rh-grid{border-top:1px dashed var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:12px;display:grid}.rh-grid>div{flex-direction:column;gap:4px;display:flex}.rh-grid span{color:var(--text-3);font-size:12px}.rh-grid strong{color:var(--text-1);font-variant-numeric:tabular-nums;font-size:17px}.rh-grid strong.income{color:#3f9c77}.report-section{margin-top:16px}.report-rank{padding:6px 16px}.report-biggest{align-items:center;gap:12px;padding:14px 16px;display:flex}.rb-icon{background:var(--bg);border-radius:12px;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.rb-main{min-width:0;color:var(--text-1);flex:1;font-size:15px}.rb-note{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.report-actions{gap:10px;margin:20px 0 10px;display:flex}.report-tip{text-align:center;color:var(--text-3);padding-bottom:4px;font-size:12px}.report-pet-source{pointer-events:none;width:216px;position:absolute;top:0;left:-9999px}
