.home-page,.du-sheet,.pet-toast-region{--home-ink:#2e5344;--home-ink-soft:#5c7260;--home-muted:#73877a;--home-green:#3e7458;--home-amber:#a97f36;--home-line:#e7ecda;--home-line-2:#d3dfc2;--home-line-strong:#bcd9c4;--home-paper:#fffef9;--home-paper-solid:#fff;--home-stamp:#fffef6cc;--home-speech:#fffdf6f2;--home-speech-solid:#fffdf6;--home-pet-grad:linear-gradient(180deg, #eef5e6 0%, #f4f7ec 58%, #fbfcf4 100%);--home-track:#e8efdb;--home-icon-bg:#eff4e9;--home-btn:#e7efda;--home-btn-soft:#f7f8ed;--home-btn-hover:#e2eacb;--home-btn-disabled:#e4ebdc;--home-tint-2:#f0f7ec;--home-error-ink:#a05f49;--home-error-btn:#fff9ed;--home-error-btn-line:#dfcbb2;--home-error-btn-ink:#8f684b}.home-page{background:var(--bg);color:var(--home-ink);overflow-wrap:anywhere;padding:22px 16px 0}.home-page button{-webkit-tap-highlight-color:transparent}.home-page button:focus-visible,.home-rules summary:focus-visible{outline:3px solid var(--home-green);outline-offset:4px}.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:var(--home-ink-soft);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:var(--home-muted);flex-wrap:wrap;align-items:center;gap:5px 9px;font-size:11px;line-height:1.6;display:flex}.home-date time{color:var(--home-ink-soft);font-weight:500}.home-date>span{border-left:1px solid var(--home-line);padding-left:9px}.home-brand-stamp{border:1px solid var(--home-line-2);background:var(--home-stamp);width:49px;height:60px;color:var(--home-muted);border-radius:20px 20px 15px 15px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;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{border:1px solid var(--home-line);background:var(--home-pet-grad);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:8px;padding:19px 16px 0;display:flex;position:relative}.home-pet-heading .home-eyebrow{letter-spacing:1.5px;font-size:8px}.home-pet-heading h2{letter-spacing:0;background:linear-gradient(transparent 70%, var(--highlighter,#f6e7ae) 70%);border-radius:2px;margin-top:4px;padding:0 2px;font-size:16px;font-weight:700}.home-pet-heading>div:first-child{flex:auto;min-width:0}.home-pet-title-row{align-items:center;gap:4px;width:max-content;max-width:100%;display:flex}.home-pet-title-row .mini-edit{flex-shrink:0;padding:4px 1px;font-size:12px}.home-level-badge{border:1px solid var(--tip-line,#eadfb4);background:var(--tip-bg,#fdf7e3);color:var(--tip-ink,#8a6a2d);border-radius:12px;flex-shrink:0;align-items:center;gap:4px;padding:5px 8px;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;border:1px solid var(--home-line);background:var(--home-speech);width:max-content;max-width:calc(100% - 46px);color:var(--home-ink-soft);text-align:center;border-radius:14px;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:var(--home-speech-solid);border-right:1px solid var(--home-line);border-bottom:1px solid var(--home-line);width:7px;height:7px;position:absolute;bottom:-5px;left:calc(50% - 4px);transform:rotate(45deg)}.home-pet-speech.is-happy{color:var(--home-green)}.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:var(--home-ink-soft);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:var(--home-paper);border-top:1px solid var(--home-line);min-height:83px;padding:15px 19px 17px}.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:var(--home-muted);align-items:center;gap:5px;display:flex}.home-growth-label svg{width:14px;height:14px;color:var(--home-green)}.home-growth-label strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.home-growth-label strong span{color:var(--home-muted);font-size:9px;font-weight:400}.home-progress{background:var(--home-track);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:var(--home-muted);flex-wrap:wrap;justify-content:space-between;gap:4px 7px;margin-top:9px;font-size:10.5px;line-height:1.5;display:flex}.home-growth-note>span{color:var(--home-amber)}.home-growth-wait{color:var(--home-muted);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{background:var(--home-tint-2);color:#9db68a;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:var(--home-muted);font-size:11px}.home-inline-error{color:var(--home-error-ink);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:var(--home-muted);font-size:10px;display:block}.home-inline-error button{border:1px solid var(--home-error-btn-line);background:var(--home-error-btn);color:var(--home-error-btn-ink);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{background:var(--home-btn-disabled);border-color:var(--home-line-2);box-shadow:none;color:var(--home-muted)}.home-add-entry:disabled>span:nth-child(2)>span,.home-add-entry:disabled>svg{color:var(--home-muted)}.home-add-entry:not(:disabled):active{transform:scale(.985)}.home-soft-card{background:var(--home-paper);border:1px solid var(--home-line);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(transparent 70%, var(--highlighter,#f6e7ae) 70%);border-radius:2px;padding:1px 3px;font-size:15px;font-weight:700}.home-section-heading>span{color:var(--home-muted);font-size:10px;line-height:1.5}.home-tasks .home-section-heading>span{background:var(--home-icon-bg);color:var(--home-green);font-variant-numeric:tabular-nums;border-radius:9px;padding:4px 9px;font-weight:600}.home-month .home-section-heading>span{border:1px solid var(--home-line);background:var(--home-paper);color:var(--home-muted);font-variant-numeric:tabular-nums;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 var(--home-line);padding-top:15px}.home-task-icon{color:#7e9c76;background:var(--home-icon-bg);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:var(--tip-ink,#a3803a);background:var(--tip-bg,#f8f0da);border-radius:6px;margin-left:5px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.home-task-copy p{color:var(--home-muted);margin-top:3px;font-size:10.5px;line-height:1.7}.home-task-action,.home-task-done{background:var(--home-btn);border:1px solid var(--home-line-2);min-width:57px;min-height:35px;color:var(--home-green);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:7px 10px;font-size:11px;font-weight:600;display:inline-flex}.home-task-action-subtle{background:var(--home-btn-soft);border-color:var(--home-line);color:var(--home-muted)}.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{border-top:1px solid var(--home-line);color:#9a9a7d;letter-spacing:.2px;padding-top:12px;font-size:10px}.home-tasks-footnote>span{color:#b7a56b;margin-right:4px}.home-ledger-name{color:var(--home-muted);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 var(--home-line);padding-left:17px}.home-month-totals>div>span{color:var(--home-muted);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:var(--home-amber)}.home-month-state{color:var(--home-muted);padding:19px 0 6px;font-size:11px;line-height:1.7}.home-month-loading{color:var(--home-muted);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:var(--home-icon-bg);border-radius:6px;height:19px;animation:1.5s ease-in-out infinite home-soft-pulse}.home-rules{color:var(--home-muted);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:var(--home-muted);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:var(--home-muted);margin-top:21px;font-size:10px}.pet-toast-region{top:calc(var(--tabbar-offset) + 18px + var(--safe-top));left:calc(50% + (var(--safe-left) - var(--safe-right)) / 2);width:calc(100% - 28px - var(--safe-left) - var(--safe-right));max-width:calc(var(--app-width) - 28px - var(--safe-left) - var(--safe-right));max-height:calc(100dvh - var(--tabbar-offset) - var(--safe-top) - var(--safe-bottom) - 36px);overscroll-behavior:contain;z-index:160;pointer-events:none;position:fixed;overflow-y:auto;transform:translate(-50%)}.pet-toast{pointer-events:auto;border:1px solid var(--home-line-2);background:var(--home-paper-solid);color:var(--home-green);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{background:var(--home-icon-bg);color:#b3a254;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:var(--home-muted);margin-top:3px;font-size:10px;display:block}.pet-toast-level-up{background:var(--tip-bg,#fffdf0);border-color:var(--tip-line,#e6dbaa)}.pet-toast-close{width:34px;min-width:34px;height:34px;color:var(--home-muted);border-radius:10px;place-items:center;font-size:21px;display:grid}.pet-toast-close:focus-visible{outline:2px solid var(--home-green);outline-offset:1px}@media (hover:hover){.home-add-entry:not(:disabled):hover{background:linear-gradient(140deg,#437d5c 0%,#366a4e 78%)}.home-task-action:not(:disabled):hover{background:var(--home-btn-hover)}.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:14px;padding-right:14px}.home-pet-heading h2{letter-spacing:0;font-size:15px}.home-level-badge{gap:4px;padding:5px 8px;font-size:11px}.home-dressup-btn{padding:4px 9px}.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:6px;display:flex}.home-dressup-btn{border:1px solid var(--home-line-2);background:var(--home-paper);min-height:32px;color:var(--home-green);border-radius:11px;padding:4px 9px;font-size:12px;font-weight:600}.du-sheet{padding-bottom:calc(16px + var(--safe-bottom))}.du-sheet .du-balance{flex-shrink:0}.du-balance{justify-content:space-between;align-items:baseline;gap:10px;padding:12px 2px 2px;display:flex}.du-coins{color:var(--tip-ink,#8a6a2d);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.du-streak{color:var(--home-muted);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{border-color:var(--home-line-strong);background:var(--home-tint-2)}.du-icon{background:var(--home-paper-solid);border:1px solid var(--home-line);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:var(--home-ink);font-size:14.5px;font-weight:600}.du-slot{color:var(--home-muted);font-size:10.5px}.du-btn{border:1px solid var(--home-line-2);background:var(--home-btn);min-height:34px;color:var(--home-green);border-radius:11px;flex-shrink:0;padding:5px 13px;font-size:12.5px;font-weight:600}.du-btn.own{background:var(--home-btn-soft);border-color:var(--home-line);color:var(--home-muted)}.du-btn:disabled{opacity:.5}.du-card.on .du-btn.own{border-color:var(--home-line-strong);background:var(--home-tint-2);color:var(--home-green)}.du-hint{color:var(--tip-ink,#a3803a);flex-shrink:0;font-size:10.5px}.du-empty{text-align:center;color:var(--home-muted);padding:26px 4px;font-size:13px}:root[data-theme=dark] .home-page,:root[data-theme=dark] .du-sheet,:root[data-theme=dark] .pet-toast-region{--home-ink:#d7e4d0;--home-ink-soft:#a8bfa6;--home-muted:#8ba288;--home-green:#7fc39a;--home-amber:#d8b96a;--home-line:#33402f;--home-line-2:#3c4a36;--home-line-strong:#4e6b52;--home-paper:#1d2620;--home-paper-solid:#232d20;--home-stamp:#263020d9;--home-speech:#26301ff2;--home-speech-solid:#26301f;--home-pet-grad:linear-gradient(180deg, #1a2418 0%, #1d271b 58%, #232e20 100%);--home-track:#26301f;--home-icon-bg:#26301f;--home-btn:#2c3a26;--home-btn-soft:#232d20;--home-btn-hover:#33422c;--home-btn-disabled:#2a3527;--home-tint-2:#22301f;--home-error-ink:#ff9d85;--home-error-btn:#33261c;--home-error-btn-line:#4a3626;--home-error-btn-ink:#d8a988}.pet-chat-float{right:calc(max(0px, (100vw - var(--app-width)) / 2) + var(--safe-right));bottom:calc(var(--dock-bottom) + var(--tabbar-h) + 14px);z-index:42;pointer-events:none;-webkit-user-select:none;user-select:none;width:max-content;position:fixed}.pet-chat-launcher{width:64px;height:74px;box-shadow:none;pointer-events:auto;touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:0 0;border:none;border-radius:18px;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.pet-chat-launcher.is-dragging{cursor:grabbing}.pet-chat-launcher .dumpling-pet{pointer-events:none;flex-shrink:0;width:88px;margin:0}.pet-chat-launcher .pet-breath,.pet-chat-launcher .pet-leaf,.pet-chat-launcher .pet-eyes{animation:none}.pet-chat-launcher:focus-visible,.pet-chat-panel button:focus-visible,.pet-chat-panel textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.pet-chat-layer{top:var(--chat-viewport-top,0px);width:100%;height:var(--chat-viewport-height,100dvh);z-index:44;--chat-bottom-safe:var(--safe-bottom);position:fixed;left:0}.pet-chat-layer[data-keyboard=true]{--chat-bottom-safe:0px}.pet-chat-mask{background:#1f30294d;position:absolute;inset:0}.pet-chat-panel{--chat-paper:#fffef9;--chat-canvas:#f6f9f3;--chat-line:#dfe8d7;--chat-line-2:#cddfc4;--chat-ink:#294b3b;--chat-muted:#738575;--chat-notice-bg:#eef4e6;--chat-user-bubble:#d9edcf;--chat-warn:#886c48;--chat-input-bg:#f9fbf5;top:calc(var(--safe-top) + 8px);bottom:calc(var(--chat-bottom-safe) + 8px);right:calc(var(--safe-right) + 8px);left:calc(var(--safe-left) + 8px);background:var(--chat-canvas);border:1px solid var(--chat-line-2);min-height:0;color:var(--chat-ink);border-radius:24px;flex-direction:column;animation:.16s ease-out pet-chat-in;display:flex;position:absolute;overflow:hidden;box-shadow:0 20px 60px #233c4033}:root[data-theme=dark] .pet-chat-panel{--chat-paper:#1e2a22;--chat-canvas:#17211a;--chat-line:#2e3c31;--chat-line-2:#3a4a3e;--chat-ink:#d9e8dc;--chat-muted:#8fa396;--chat-notice-bg:#223026;--chat-user-bubble:#2b4636;--chat-warn:#d9b48a;--chat-input-bg:#1c2820}.pet-chat-header{background:var(--chat-paper);border-bottom:1px solid var(--chat-line);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.pet-chat-avatar{flex-shrink:0;width:48px}.pet-chat-heading{flex:1;min-width:0}.pet-chat-heading h2{overflow-wrap:anywhere;font-size:16px}.pet-chat-heading p{color:var(--chat-muted);margin-top:3px;font-size:11px}.pet-chat-text-button{border-radius:10px;min-height:44px;padding:0 8px;font-size:13px}.pet-chat-close{border-radius:14px;flex-shrink:0;width:44px;height:44px;font-size:26px}.pet-chat-panel button:disabled{opacity:.45;cursor:default}.pet-chat-notice{color:var(--chat-muted);background:var(--chat-notice-bg);flex-shrink:0;padding:10px 14px;font-size:11px;line-height:1.6}.pet-chat-messages{overscroll-behavior:contain;overflow-anchor:none;flex:1;min-height:0;padding:16px 14px;scroll-padding-block:12px;overflow-y:auto}.pet-chat-empty{text-align:center;max-width:280px;margin:18px auto;line-height:1.7}.pet-chat-empty .dumpling-pet{width:128px;margin:0 auto 10px}.pet-chat-empty h3{margin-bottom:8px;font-size:17px}.pet-chat-empty p{color:var(--chat-muted);font-size:13px}.pet-chat-empty small{color:var(--chat-muted);margin-top:12px;font-size:11px;display:block}.pet-chat-turn+.pet-chat-turn{margin-top:20px}.pet-chat-message{width:fit-content;max-width:92%;font-size:14px;line-height:1.7}.pet-chat-speaker{color:var(--chat-muted);margin-bottom:5px;font-size:11px;display:block}.pet-chat-message>p{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;padding:10px 13px}.pet-chat-user{margin-bottom:14px;margin-left:auto}.pet-chat-user .pet-chat-speaker{text-align:right}.pet-chat-user>p{background:var(--chat-user-bubble);border-top-right-radius:5px}.pet-chat-assistant>p{background:var(--chat-paper);border:1px solid var(--chat-line);border-top-left-radius:5px}.pet-chat-turn-status,.pet-chat-error{color:var(--chat-warn);margin-top:6px;font-size:11px;display:block}.pet-chat-error p{white-space:pre-wrap;overflow-wrap:anywhere}.pet-chat-error small{overflow-wrap:anywhere;display:block}.pet-chat-new{border:1px solid var(--chat-line-2);background:var(--chat-paper);border-radius:20px;flex-shrink:0;align-self:center;min-height:36px;padding:8px 16px;font-size:12px}.pet-chat-status{color:var(--chat-muted);flex-shrink:0;padding:6px 14px;font-size:11px}.pet-chat-composer{border-top:1px solid var(--chat-line);background:var(--chat-paper);flex-shrink:0;padding:10px 12px 12px}.pet-chat-composer textarea{resize:none;border:1px solid var(--chat-line);background:var(--chat-input-bg);width:100%;min-height:56px;max-height:120px;color:var(--chat-ink);font:inherit;border-radius:14px;padding:10px 12px;font-size:16px;line-height:1.5;display:block}.pet-chat-composer textarea::placeholder{color:var(--chat-muted)}.pet-chat-compose-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.pet-chat-compose-actions>span{color:var(--chat-muted);font-size:10px;line-height:1.5}.pet-chat-send{background:var(--primary);color:#fff;border-radius:14px;flex-shrink:0;min-width:66px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:600}.pet-chat-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width>=768px){html:not(.native-app) .pet-chat-panel{width:min(420px, calc(100% - var(--safe-left) - var(--safe-right) - 32px));left:auto;right:calc(var(--safe-right) + 20px);top:calc(var(--safe-top) + 20px);bottom:calc(var(--chat-bottom-safe) + 20px)}}@media (height<=520px){.pet-chat-header{padding-block:2px}.pet-chat-avatar{width:36px}.pet-chat-notice{padding-block:5px;font-size:10px}.pet-chat-composer{padding-block:6px}.pet-chat-composer textarea{height:56px}.pet-chat-compose-actions{margin-top:4px}}@keyframes pet-chat-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.pet-chat-panel,.pet-chat-layer *,.pet-chat-launcher *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.phone-settings{--dock-clearance:calc(24px + var(--safe-bottom))}.page-body-settings{padding-bottom:calc(24px + var(--safe-bottom))}.settings-page{min-width:0;color:var(--text-1)}.settings-header{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:52px;margin-bottom:14px;display:grid}.settings-header h1{color:var(--green-ink);text-align:center;outline:none;font-size:21px;font-weight:700;line-height:1.4}.settings-back,.settings-close{border:1px solid var(--line-strong);background:var(--card);width:44px;height:44px;color:var(--green-mid);border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.settings-back svg,.settings-close svg{width:21px;height:21px}.settings-section{min-width:0;margin:18px 0}.settings-section-title{color:var(--leaf-text);letter-spacing:.04em;margin:0 5px 9px;font-size:12px;font-weight:600;line-height:1.6}.settings-card{background:var(--card);border:1px solid var(--line-strong);border-radius:20px;min-width:0;overflow:hidden}.settings-row{width:100%;min-width:0;height:84px;color:var(--text-1);text-align:left;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.settings-row+.settings-row{border-top:1px solid var(--line)}.settings-row-icon{background:var(--primary-weak);height:38px;color:var(--green-strong);border-radius:13px;flex:0 0 38px;justify-content:center;align-items:center;display:flex}.settings-row-icon svg{width:22px;height:22px}.settings-row-body{flex-direction:column;flex:1;justify-content:center;gap:5px;min-width:0;display:flex}.settings-row-title{color:var(--text-1);font-size:15px;font-weight:600;line-height:1.35;display:block}.settings-row-summary{text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:12px;line-height:1.5;display:block;overflow:hidden}.settings-row-chevron{color:var(--leaf-text-soft);flex:0 0 16px;align-items:center;display:flex}.settings-row-chevron svg{width:16px;height:16px}.settings-row:disabled{opacity:.55;cursor:default}.settings-row-danger .settings-row-title,.settings-row-danger .settings-row-chevron{color:var(--danger-text)}.settings-row-danger .settings-row-icon{color:var(--danger-text);background:var(--danger-weak)}.settings-note{color:var(--leaf-text);overflow-wrap:anywhere;margin:12px 6px;font-size:12px;line-height:1.85}.settings-status{color:var(--green-strong);margin:14px 6px;font-size:13px;line-height:1.7}.settings-status:empty{display:none}.settings-switch{border:1px solid var(--text-3);background:var(--field);border-radius:20px;flex:0 0 44px;align-items:center;height:26px;padding:3px;display:inline-flex}.settings-switch>span{background:var(--text-2);border-radius:50%;width:18px;height:18px;transition:transform .15s}.settings-switch-on{background:var(--primary-weak);border-color:var(--green-strong)}.settings-switch-on>span{background:var(--green-strong);transform:translate(18px)}.settings-avatar{background:var(--primary-weak);height:36px;color:var(--green-strong);border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;font-size:21px;display:inline-flex}.settings-product{background:var(--head-grad-alt);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:9px;padding:22px 12px 24px;display:flex}.settings-product-mark{background:var(--primary-weak);border:1px solid var(--line-strong);width:64px;height:64px;color:var(--green-strong);letter-spacing:-2px;border-radius:21px;justify-content:center;align-items:center;font-size:25px;font-weight:750;display:inline-flex}.settings-product h2{color:var(--green-ink);font-size:19px;font-weight:700}.settings-product p{color:var(--leaf-text);font-size:12px;line-height:1.6}.settings-article{overflow-wrap:anywhere;color:var(--text-1);padding:16px;font-size:13px;line-height:1.95}.settings-article p+p{margin-top:12px}.settings-sheet{width:min(420px, calc(100% - var(--safe-left) - var(--safe-right) - 28px));max-width:none;height:fit-content;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px);border:1px solid var(--line-strong);background:var(--card);color:var(--text-1);overscroll-behavior:contain;box-shadow:var(--sheet-shadow);border-radius:22px;margin:auto;padding:0;position:fixed;inset:0;overflow-y:auto}.settings-sheet::backdrop{background:var(--mask)}.settings-sheet-card{padding:12px 14px 16px}.settings-sheet-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.settings-sheet-header h2{color:var(--green-ink);font-size:17px;line-height:1.5}.settings-close{background:var(--bg-soft);border:0}.settings-option{border:1px solid var(--line);cursor:pointer;border-radius:14px;align-items:center;gap:10px;min-height:70px;padding:12px;display:flex;position:relative}.settings-option+.settings-option{margin-top:8px}.settings-option-selected{border-color:var(--green-strong);background:var(--primary-weak)}.settings-option-body{flex-direction:column;flex:1;gap:5px;min-width:0;font-size:14px;line-height:1.5;display:flex}.settings-option-body small{color:var(--leaf-text);overflow-wrap:anywhere;font-size:12px}.settings-radio{opacity:0;width:1px;height:1px;position:absolute}.settings-option-check{width:20px;height:20px;color:var(--green-strong);flex-shrink:0;justify-content:center;align-items:center;display:flex}.settings-option-check svg{width:20px;height:20px}.settings-avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.settings-avatar-grid button{border:1px solid var(--line);background:var(--bg-soft);border-radius:14px;justify-content:center;align-items:center;min-width:0;height:54px;font-size:27px;display:flex}.settings-avatar-grid button[aria-pressed=true]{border-color:var(--green-strong);background:var(--primary-weak)}.settings-avatar-grid button:disabled{opacity:.55;cursor:default}.settings-avatar-letter{color:var(--green-strong);font-size:22px;font-weight:700}.settings-sheet-note{color:var(--leaf-text);margin:12px 2px 0;font-size:12px;line-height:1.7}.settings-back:focus-visible,.settings-close:focus-visible,.settings-row:focus-visible,.settings-avatar-grid button:focus-visible{outline:2px solid var(--green-strong);outline-offset:-3px}.settings-option:has(.settings-radio:focus-visible){outline:2px solid var(--green-strong);outline-offset:2px}@media (hover:hover){a.settings-row:hover,button.settings-row:not(:disabled):hover,.settings-back:hover,.settings-close:hover{background:var(--primary-weak)}}@media (width<=360px){.settings-row{gap:9px;padding-inline:11px}.settings-row-icon{border-radius:11px;flex-basis:34px;height:34px}.settings-row-title{font-size:14px}.settings-row-summary{font-size:11px}.settings-header h1{font-size:19px}}@media (height<=520px) and (orientation:landscape){.settings-header{min-height:44px;margin-bottom:8px}.settings-section{margin-block:12px}.settings-product{padding-block:16px}.settings-avatar-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.settings-switch>span{transition:none}}: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;--bg-soft:#fafbfc;--field:#eceef1;--green-ink:#244e3c;--green-ink-2:#24533f;--green-strong:#008557;--green-link:#3f9c77;--green-mid:#397259;--green-soft:#47785b;--green-deep:#3d6b58;--green-solid:#3e7756;--green-disabled:#a5ddc6;--leaf-text:#608171;--leaf-text-soft:#7c8e82;--line-strong:#e0ede5;--chip-bg:#e3f3eb;--chip-bg-2:#e0f0e6;--seg-soft:#38685112;--danger-weak:#fdeceb;--danger-text:#b74332;--mask:#141a2273;--primary-grad:linear-gradient(135deg, #00d68f, var(--primary));--head-grad:linear-gradient(172deg, #cfeee0 0%, #e2f4ec 40%, var(--bg) 78%);--head-grad-tall:linear-gradient(168deg, #c9ecdb 0%, #ddf3e9 48%, #f0f7f3 82%, var(--bg) 100%);--head-grad-fade:linear-gradient(170deg, #d2efe2 0%, #e4f4ec 46%, #f6f7f900 100%);--head-grad-alt:linear-gradient(155deg, #d4eee2 0%, #e5f3ec 52%, var(--bg) 100%);--paw-tint:#2f7a6217;--highlighter:#fde38abf;--head-chip:#ffffffa6;--card-border:#234c390f;--card-shadow:0 8px 28px #1f3d2e1a, 0 2px 6px #1f3d2e08;--soft-shadow:0 1px 4px #00000014;--seg-shadow:0 2px 6px #2a634912;--sheet-shadow:0 18px 44px #18281c47;--frame-bg:#e9ebee;--frame-glow:radial-gradient(1200px 800px at 70% -10%, #dcefe5 0%, #e9ebee 55%);--frame-border:#d5dade;--chart-bar:#d7f2e6;--chart-bar-today:#00915f;--report-grad:linear-gradient(115deg, #fffef9, #f0f8f3);--tip-ink:#8a6a2d;--tip-bg:#fdf7e3;--tip-line:#eadfb4;--radius:14px;--tabbar-h:64px;--app-width:100%;--app-min-height:100dvh;--dock-clearance:calc(var(--tabbar-h) + var(--dock-bottom) + 28px);--tabbar-offset:0px;--dock-gap:12px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--dock-bottom:calc(var(--tabbar-offset) + var(--dock-gap) + var(--safe-bottom))}:root[data-theme=dark]{--primary:#00c383;--primary-weak:#12362a;--income:#ffa04d;--danger:#ff6b52;--text-1:#e8ecf2;--text-2:#9aa3b0;--text-3:#5f6875;--bg:#12161c;--card:#1c2129;--line:#2a303a;--bg-soft:#232932;--field:#2a303a;--green-ink:#cfe8db;--green-ink-2:#c9e6d7;--green-strong:#3ecf9a;--green-link:#4ecf9d;--green-mid:#9cc9b3;--green-soft:#a4ccb7;--green-deep:#a7c9b8;--green-solid:#2e6b4e;--green-disabled:#2f5c48;--leaf-text:#93b3a3;--leaf-text-soft:#8fa598;--line-strong:#2c3a33;--chip-bg:#17332a;--chip-bg-2:#1b3a2e;--seg-soft:#ffffff0f;--danger-weak:#3a2422;--danger-text:#ff8d7a;--mask:#0000009e;--primary-grad:linear-gradient(135deg, #00d68f, #009861);--head-grad:linear-gradient(172deg, #14352a 0%, #163a2c 40%, var(--bg) 78%);--head-grad-tall:linear-gradient(168deg, #123027 0%, #16392c 48%, #131a17 82%, var(--bg) 100%);--head-grad-fade:linear-gradient(170deg, #143529 0%, #17392c 46%, #12161c00 100%);--head-grad-alt:linear-gradient(155deg, #14352a 0%, #17392c 52%, var(--bg) 100%);--paw-tint:#ffffff0d;--highlighter:#fde38a57;--head-chip:#ffffff1f;--card-border:#0000004d;--card-shadow:0 8px 28px #00000073, 0 2px 6px #00000059;--soft-shadow:0 1px 4px #0006;--seg-shadow:0 2px 6px #00000059;--sheet-shadow:0 18px 44px #0000008c;--frame-bg:#0d1014;--frame-glow:radial-gradient(1200px 800px at 70% -10%, #10241c 0%, #0d1014 55%);--frame-border:#2a2f37;--chart-bar:#22352d;--chart-bar-today:#00c383;--report-grad:linear-gradient(115deg, #1e2420, #18231d);--tip-ink:#d8b96a;--tip-bg:#2b2415;--tip-line:#4a3f22}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{background:var(--bg);scroll-padding-top:calc(var(--safe-top) + 14px);scroll-padding-bottom:var(--dock-clearance);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;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{width:100%;max-width:var(--app-width);min-height:var(--app-min-height);background:var(--bg);flex-direction:column;margin:0 auto;display:flex;position:relative}.page-body{min-width:0;padding:calc(14px + var(--safe-top)) calc(14px + var(--safe-right)) var(--dock-clearance) calc(14px + var(--safe-left));flex:1}.page-body-home,.page-body-login{padding-top:var(--safe-top);padding-right:var(--safe-right);padding-left:var(--safe-left)}.page-body-login{padding-bottom:var(--safe-bottom);flex-direction:column;display:flex}.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:var(--green-soft);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:var(--green-strong);background:var(--head-chip)}}.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);left:calc(50% + (var(--safe-left) - var(--safe-right)) / 2);width:calc(100% - 32px - var(--safe-left) - var(--safe-right));max-width:calc(var(--app-width) - 32px - var(--safe-left) - var(--safe-right));height:var(--tabbar-h);background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);z-index:40;border-radius:24px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:5px;display:grid;position:fixed;transform:translate(-50%)}.tab{color:var(--leaf-text-soft);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:var(--chart-bar);transition:fill .15s}.dc-bar.has{fill:var(--primary)}.dc-bar.today{fill:var(--chart-bar-today)}.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:var(--bg-soft)}.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{background:var(--mask);z-index:50;position:fixed;inset:0}.add-sheet{bottom:var(--tabbar-offset);width:100%;max-width:var(--app-width);height:92dvh;max-height:calc(100dvh - var(--safe-top) - var(--tabbar-offset) - 8px);background:var(--bg);z-index:51;padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);border-radius:20px 20px 0 0;flex-direction:column;animation:.25s ease-out sheet-up;display:flex;position:fixed;left:50%;overflow:hidden;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:var(--field);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);box-shadow:var(--soft-shadow);font-weight:600}.type-tabs button.active-income{background:var(--card);color:var(--income);box-shadow:var(--soft-shadow);font-weight:600}.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:var(--field);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{background:var(--field);height:36px;color:var(--text-1);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:var(--field)}.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{background:var(--green-disabled);cursor:default}.type-seg{background:var(--field);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);box-shadow:var(--soft-shadow);font-weight:600}.stats-page .page-heading{margin-bottom:14px}.stats-filters{align-items:center;gap:10px;display:flex}.stats-page .stats-period-tabs{flex:3}.stats-page .stats-type-tabs{flex:2}.stats-period-picker{justify-content:space-between;width:100%;max-width:310px;margin:12px auto 0}.stats-period-picker .mp-title{text-align:center;flex:1}.stats-report-card{border:1px solid var(--line-strong);background:var(--report-grad);align-items:center;gap:16px;margin-bottom:16px;padding:16px;display:flex}.stats-report-heading{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.stats-report-icon{background:var(--chip-bg-2);width:42px;height:46px;color:var(--green-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.stats-report-icon svg{width:25px;height:25px}.stats-report-copy{min-width:0}.stats-report-copy h2{color:var(--green-ink);margin:0 0 5px;font-size:15px;line-height:1.5}.stats-report-copy p{color:var(--text-2);margin:0;font-size:12px;line-height:1.6}.stats-report-button{background:var(--green-solid);color:#fff;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-size:13px;font-weight:600;display:flex}.stats-report-button svg{width:15px;height:15px}.stats-report-button:disabled{opacity:.5}@media (width<=480px){.stats-report-card{flex-direction:column;align-items:stretch;gap:12px}.stats-report-button{width:100%}}.stats-summary{margin-bottom:14px}.stats-count{color:var(--text-2);margin-top:8px;font-size:12px}.stats-state{text-align:center;color:var(--text-2);padding:52px 18px}.stats-state-title{color:var(--text-1);margin-bottom:8px;font-size:15px}.stats-state-detail{font-size:13px;line-height:1.7}.stats-retry{background:var(--primary-weak);min-height:36px;color:var(--primary);border-radius:18px;justify-content:center;align-items:center;margin-top:16px;padding:0 18px;display:inline-flex}.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:var(--primary-grad);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:var(--bg-soft)}.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>=768px){:root:not(.native-app){--app-width:440px;--app-min-height:calc(100dvh - 48px);--tabbar-offset:24px;background:var(--frame-bg)}html:not(.native-app) body{background:var(--frame-glow)}html:not(.native-app) .phone{border:1px solid var(--frame-border);border-radius:28px;margin-top:24px;overflow:hidden;box-shadow:0 24px 60px #1f2d3d24}html:not(.native-app) .add-sheet{border-radius:28px 28px 0 0;flex-direction:column}html:not(.native-app) .num-keyboard{width:100%}}@media (height<=520px){:root{--tabbar-h:56px;--dock-gap:8px}.tabbar{max-width:min(528px, calc(var(--app-width) - 32px - var(--safe-left) - var(--safe-right)));border-radius:20px}.tab svg{width:20px;height:20px}.cal-head{margin-bottom:2px}.cal-cell{height:36px}.add-sheet{border-radius:0;flex-direction:row;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:min(42%,292px)}.num-keyboard button{height:clamp(36px,11dvh,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:var(--chip-bg);border-radius:12px;flex-shrink:0;gap:4px;margin:8px 16px 6px;padding:4px;display:flex}.entry-mode-tabs button{min-height:36px;color:var(--leaf-text);border-radius:9px;flex:1;font-size:14px}.entry-mode-tabs button[aria-pressed=true]{background:var(--card);color:var(--green-strong);box-shadow:var(--seg-shadow);font-weight:600}.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:var(--leaf-text-soft);flex-shrink:0;margin:6px 16px;font-size:12px;line-height:1.6}.entry-status-error{color:var(--danger-text)}.entry-status button{color:var(--green-strong);margin-left:8px;padding:3px 6px;text-decoration:underline}.ai-entry-card{background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--seg-shadow);border-radius:18px;flex-shrink:0;margin:12px 16px 20px;padding:18px 16px}.ai-entry-heading{align-items:center;gap:12px;margin-bottom:22px;display:flex}.ai-entry-badge{background:var(--primary-weak);width:42px;height:42px;color:var(--green-strong);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;font-weight:700;display:flex}.ai-entry-heading h2{color:var(--green-ink);font-size:18px;line-height:1.5}.ai-entry-heading p{color:var(--leaf-text-soft);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{border:1px solid var(--line-strong);background:var(--bg-soft);width:100%;min-height:154px;color:var(--text-1);font:inherit;resize:vertical;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:var(--leaf-text-soft)}.ai-entry-text:disabled{opacity:.7}.ai-entry-input-foot{color:var(--leaf-text-soft);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:flex}.ai-entry-example{background:var(--primary-weak);min-height:32px;color:var(--green-strong);border-radius:8px;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:var(--leaf-text-soft)}.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{background:var(--green-disabled);cursor:default}.ai-entry-progress{color:var(--green-mid)}.ai-entry-error{background:var(--danger-weak);color:var(--danger-text);border-radius:10px;padding:10px 12px}.ai-entry-footnote{color:var(--leaf-text-soft);text-align:center}.ai-entry-pending{border:1px solid var(--line-strong);background:var(--primary-weak);color:var(--green-mid);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 var(--line-strong);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{flex:1;min-width:0;padding:48px 22px 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:var(--field);border-radius:12px;width:100%;height:44px;margin-top:10px;padding:0 14px;font-size:15px}.login-input::placeholder{color:var(--text-3)}.login-remember{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin-top:12px;font-size:13px;display:flex}.login-remember input{width:16px;height:16px;accent-color:var(--primary);flex:none;margin:0}.login-error{color:var(--danger);text-align:center;margin-top:10px;font-size:13px}.login-submit{background:var(--primary-grad);color:#fff;border-radius:12px;width:100%;height:46px;margin-top:16px;font-size:16px;font-weight:600}.login-submit:disabled{background:var(--green-disabled)}.login-foot{text-align:center;color:var(--text-3);margin-top:18px;font-size:12px}.mh-avatar{background:var(--primary-grad);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{background:var(--field);height:32px;color:var(--text-1);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:var(--field);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{background:var(--field);height:26px;color:var(--text-2);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:var(--danger-weak)}.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:var(--head-grad-tall);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:var(--paw-tint);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:72px;font-weight:800;position:absolute;top:8px;right:18px}.mine-head .mh-paw{-webkit-user-select:none;user-select:none;pointer-events: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:var(--primary-grad);color:#fff;width:62px;height:62px;box-shadow:0 0 0 3px var(--card), 0 0 0 5px #00b57829;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 10px;font-size:26px;font-weight:700;display:flex}.mine-head .mh-name{color:var(--green-ink-2);font-size:19px;font-weight:700}.mine-head .mh-slogan{color:var(--leaf-text);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:var(--text-1);font-size:23px;font-weight:700}.mh-stat .mhs-label{color:var(--text-2);margin-top:2px;font-size:11px}.section-title{color:var(--green-deep);background:linear-gradient(transparent 60%, var(--highlighter) 60%);border-radius:2px;padding:0 2px;font-size:13px;font-weight:600;display:inline-block}.login-page{background:var(--head-grad)}.ledger-head{background:var(--head-grad-fade);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{background:var(--mask);z-index:90;position:fixed;inset:0}.dialog-card{left:calc(50% + (var(--safe-left) - var(--safe-right)) / 2);top:calc(var(--safe-top) + (100dvh - var(--safe-top) - var(--safe-bottom)) * .42);width:min(82vw, 320px, calc(100% - var(--safe-left) - var(--safe-right) - 32px));max-height:calc((100dvh - var(--safe-top) - var(--safe-bottom)) * .84 - 32px);overscroll-behavior:contain;background:var(--card);z-index:91;border-radius:18px;padding:22px 20px 14px;scroll-padding-block:14px;animation:.18s ease-out dialog-in;position:fixed;overflow-y:auto;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:var(--field);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{background:var(--field);height:40px;color:var(--text-1);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)}.dialog-card.update-dialog{top:calc(var(--safe-top) + (100dvh - var(--safe-top) - var(--safe-bottom)) / 2);width:min(360px, calc(100% - var(--safe-left) - var(--safe-right) - 40px));max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 48px);border:1px solid var(--line-strong);background:linear-gradient(150deg, #eaf8ef 0, #f7fcf8 115px, var(--card) 220px);box-shadow:var(--card-shadow);border-radius:26px;flex-direction:column;padding:24px;display:flex;overflow:hidden}:root[data-theme=dark] .dialog-card.update-dialog{background:linear-gradient(150deg, #16362a 0, #1a2c25 115px, var(--card) 220px)}.update-dialog .dialog-title{text-align:left;color:var(--green-ink);flex-shrink:0;font-size:18px;font-weight:700}.update-dialog .dialog-content{overscroll-behavior:contain;overflow-wrap:anywhere;min-height:0;margin-top:10px;overflow-y:auto}.update-release{justify-content:space-between;align-items:center;gap:16px;padding:0 0 20px;display:flex}.update-version{letter-spacing:-.8px;color:var(--green-strong);font-size:32px;font-weight:750;line-height:1.2}.update-current{color:var(--leaf-text-soft);margin-top:7px;font-size:12px;line-height:1.5}.update-icon{border:1px solid var(--line-strong);background:var(--head-chip);width:54px;height:54px;color:var(--green-strong);border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.update-icon svg{width:32px;height:32px}.update-notes{border:1px solid var(--line-strong);background:var(--bg-soft);border-radius:16px;padding:15px}.update-notes-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.update-notes-heading h3{color:var(--green-ink);font-size:13px;font-weight:650}.update-notes-heading>span{color:var(--leaf-text-soft);flex-shrink:0;font-size:11px}.update-notes ul{list-style:none}.update-notes li{color:var(--text-1);padding-left:13px;font-size:14px;line-height:1.7;position:relative}.update-notes li+li{margin-top:10px}.update-notes li:before{content:"";background:var(--green-strong);border-radius:50%;width:5px;height:5px;position:absolute;top:9px;left:0}.update-hint{color:var(--leaf-text-soft);margin-top:14px;font-size:12px;line-height:1.6}.update-dialog .dialog-actions{flex-shrink:0;gap:10px;margin-top:20px}.update-dialog .dialog-btn{background:var(--field);height:44px;color:var(--leaf-text);border-radius:14px;flex:.85;font-size:14px}.update-dialog .dialog-btn.primary{color:#fff;background:var(--primary);flex:1.4}.update-dialog .dialog-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (height<=520px){.dialog-card.update-dialog{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);padding:18px}.update-release{padding-bottom:14px}.update-version{font-size:28px}.update-dialog .dialog-actions{margin-top:14px}}.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:var(--head-grad-alt);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:var(--green-ink);white-space:nowrap;margin:0;font-size:21px;font-weight:700;line-height:1.4}.page-head .ledger-chip{width:fit-content;max-width:100%;color:var(--leaf-text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:0;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:var(--seg-soft);border-radius:12px;margin-bottom:0;padding:4px}.page-head .type-seg button{height:34px}.page-head .type-seg button.active{color:var(--green-ink-2);box-shadow:var(--seg-shadow)}@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:var(--card);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 #00000040}.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:var(--field);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-settings{background:var(--head-chip);width:40px;height:40px;color:var(--green-ink-2);border-radius:13px;flex-shrink:0;place-items:center;margin-left:auto;transition:transform .15s;display:grid}.mh-settings:active{transform:rotate(30deg)}.mh-settings svg{width:21px;height:21px}.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:var(--field);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.ledger-op:active{transform:scale(.92)}.swipe-delete-row{background:var(--card);position:relative;overflow:hidden}.swipe-delete-front{z-index:1;background:var(--card);transition:transform .2s;position:relative}.swipe-delete-front button,.swipe-delete-front a{touch-action:pan-y}.swipe-delete-front .entry-row,.cell.ledger-row{background:var(--card)}.cell.ledger-row{cursor:pointer}.cell-list .swipe-delete-row .cell.ledger-row{border-bottom:1px solid var(--line)}.swipe-delete-front .entry-row:active{background:var(--bg-soft)}.swipe-delete-row.is-dragging .swipe-delete-front{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.swipe-delete-action{justify-content:center;align-items:center;width:64px;display:flex;position:absolute;inset-block:0}.swipe-delete-left .swipe-delete-action{left:0}.swipe-delete-right .swipe-delete-action{right:0}.swipe-delete-button{background:var(--danger);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.swipe-delete-button:active{background:var(--danger)}.swipe-delete-button:focus-visible{outline:2px solid var(--danger);outline-offset:3px}.swipe-delete-icon{width:21px;height:21px}@media (prefers-reduced-motion:reduce){.swipe-delete-front{transition:none}}.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);max-height:min(84dvh, calc(100dvh - var(--safe-top) - var(--tabbar-offset) - 8px));overscroll-behavior:contain;background:var(--bg);z-index:71;padding:0 calc(18px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(18px + var(--safe-left));border-radius:20px 20px 0 0;flex-direction:column;scroll-padding-block:14px;display:flex;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%)}.cat-sheet .sheet-header{border-bottom:1px solid var(--line);flex-shrink:0;padding:14px 2px 10px}.cat-sheet .type-seg{flex-shrink:0;margin:12px 0 4px}.cs-readonly-tip{color:var(--text-2);padding:18px 4px;font-size:13px}.cs-list{overscroll-behavior:contain;flex:1;min-height:0;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{border:1px dashed var(--green-disabled);background:var(--primary-weak);height:44px;color:var(--primary);border-radius:13px;flex-shrink:0;margin:10px 0 4px;font-size:14px;font-weight:600}.cs-form{overscroll-behavior:contain;flex:1;min-height:0;padding-bottom:6px;scroll-padding-block:14px;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 + var(--safe-bottom))}.filter-sheet>*{flex-shrink:0}.fs-section{padding:14px 2px 2px}.fs-label{color:var(--text-2);margin-bottom:10px;font-size:13px}.fs-seg{background:var(--field);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);box-shadow:var(--soft-shadow);font-weight:600}.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-back{background:var(--head-chip);white-space:nowrap;border-radius:18px;justify-content:center;align-items:center;min-height:36px;padding:0 12px;text-decoration:none;display:inline-flex}.report-period-tabs{width:100%;max-width:220px;margin-top:12px}.report-date-control{color:var(--text-2);align-items:center;gap:10px;margin-top:12px;font-size:13px;display:flex}.report-date-input{border:1px solid var(--line);background:var(--card);min-width:0;max-width:100%;color:var(--text-1);border-radius:8px;padding:7px 10px}.report-image-state{margin-top:20px}.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:var(--green-ink);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:var(--green-link)}.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-preview-mask{background:var(--mask);z-index:60;position:fixed;inset:0}.report-preview{left:calc(50% + (var(--safe-left) - var(--safe-right)) / 2);top:calc(var(--safe-top) + (100dvh - var(--safe-top) - var(--safe-bottom)) / 2);z-index:61;width:min(92vw, 420px, calc(100% - var(--safe-left) - var(--safe-right) - 28px));max-height:min(86dvh, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px));overscroll-behavior:contain;background:var(--card);box-shadow:var(--sheet-shadow);border-radius:20px;padding:14px;scroll-padding-block:14px;position:fixed;overflow-y:auto;transform:translate(-50%,-50%)}.report-preview-img{background:var(--bg);-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:12px;width:100%;display:block}.report-preview-tip{text-align:center;color:var(--tip-ink);background:var(--tip-bg);border:1px solid var(--tip-line);border-radius:10px;margin:12px 2px 2px;padding:8px 10px;font-size:13px}.report-preview-actions{gap:10px;margin-top:12px;display:flex}.report-preview-actions .fs-btn{flex:1}.report-pet-source{pointer-events:none;width:216px;position:absolute;top:0;left:-9999px}.cs-group{border-bottom:1px dashed var(--line)}.cs-group:last-child{border-bottom:none}.cs-sub-row{padding:7px 2px 11px 26px}.cs-sub-row .cs-icon{border-radius:9px;width:30px;height:30px;font-size:16px}.cs-sub-row .cs-name{color:var(--text-2);font-size:14px}.category-grid .cg-children{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.cg-children .fs-chip{padding:7px 13px;font-size:13px}.fs-date-range{margin-top:10px}.fs-date-range .fs-input{flex:1;min-width:0}.theme-options{gap:10px;margin-top:14px;display:grid}.theme-options button{background:var(--field);height:46px;color:var(--text-1);border-radius:14px;justify-content:space-between;align-items:center;padding:0 16px;font-size:15px;display:flex}.theme-options button.on{background:var(--primary-weak);color:var(--green-strong);outline:1px solid var(--primary);font-weight:600}.pw-form{gap:10px;margin-top:12px;display:grid}.pw-hint{color:var(--text-2);text-align:left;font-size:12px;line-height:1.6}.pw-form .login-submit{margin-top:4px}.export-btn{padding:0 13px}.subpage-head{align-items:center;gap:4px;display:flex}.subpage-head .page-title{margin:0}.sp-back{background:var(--head-chip);width:36px;height:36px;color:var(--green-ink-2);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.sp-back svg{width:20px;height:20px}.settings-theme-card{gap:10px;display:grid}.stc-label{color:var(--leaf-text);font-size:13px}.settings-theme-seg button{flex:1}.stc-hint{color:var(--leaf-text-soft);font-size:11.5px;line-height:1.6}.settings-logout{margin-top:16px}.update-progress-block{margin-top:4px}.update-progress{background:var(--field);border-radius:5px;height:8px;overflow:hidden}.update-progress>span{border-radius:inherit;background:linear-gradient(90deg, #00d68f, var(--primary));height:100%;transition:width .2s;display:block}.update-progress-text{color:var(--leaf-text-soft);font-variant-numeric:tabular-nums;margin-top:8px;font-size:12px;line-height:1.6}.update-hint-error{color:var(--danger-text)}
