:root{--bg:#f6f6f7;--surface:#fff;--text:#17181c;--muted:#5d636e;--line:#e2e3e7;--accent:#2459d6;--accent-fill:#2459d6;--on-accent:#fff;--negative:#b8332a;--positive:#1b7447;--attention:#955400;--attention-bg:#fdf3e3;--danger-bg:#fbecea;--toast-bg:#1f2126;--toast-text:#f3f3f5;--skeleton:#e9eaee;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--radius-control:8px;--radius-panel:16px;--fs-hero:36px;--fs-title:17px;--fs-body:15px;--fs-small:13px;--tabbar-h:56px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121316;--surface:#1b1d21;--text:#e9e9ec;--muted:#a2a8b3;--line:#2d3036;--accent:#8ab0fa;--accent-fill:#2d5fd0;--on-accent:#fff;--negative:#f08a7b;--positive:#6cc79a;--attention:#f2b766;--attention-bg:#2e2517;--danger-bg:#331d1b;--toast-bg:#e9e9ec;--toast-text:#17181c;--skeleton:#262930;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:var(--fs-body) / 1.5 "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;-webkit-text-size-adjust:100%;margin:0}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100dvh}.main{max-width:720px;padding:var(--space-4) var(--space-4) calc(var(--tabbar-h) + 88px + env(safe-area-inset-bottom));margin:0 auto}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:44px;color:var(--muted);font-size:var(--fs-small);flex:1;justify-content:center;align-items:center;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--accent);font-weight:600}.fab{z-index:21;right:max(var(--space-4), calc((100vw - 720px) / 2 + var(--space-4)));bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-4));background:var(--accent-fill);min-height:48px;color:var(--on-accent);border-radius:24px;align-items:center;padding:0 22px;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;box-shadow:0 4px 12px #0000002e}body.sheet-open .fab{display:none}@media (width>=768px){.tabbar{height:var(--tabbar-h);border-top:none;border-bottom:1px solid var(--line);justify-content:flex-start;gap:var(--space-2);padding:0 calc(50vw - 360px);position:sticky;top:0;bottom:auto}.tabbar a{padding:0 var(--space-4);font-size:var(--fs-body);flex:none}.main{padding-bottom:120px}.fab{bottom:var(--space-5)}}.page{flex-direction:column;display:flex}.page-title{margin:var(--space-2) 0 var(--space-4);font-size:22px}.back-link{min-height:44px;color:var(--accent);align-self:flex-start;align-items:center;text-decoration:none;display:inline-flex}.section{margin-top:var(--space-5)}.section:first-child{margin-top:0}.section-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.section-head h2{font-size:var(--fs-title);margin:0;font-weight:600}h3{font-size:var(--fs-body);margin:var(--space-4) 0 var(--space-2);font-weight:600}.toolbar{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar.wrap{flex-wrap:wrap;justify-content:flex-start}.toolbar select{width:auto}.updating{margin-left:var(--space-2);font-size:var(--fs-small);color:var(--muted);font-weight:400}.is-stale{opacity:.4;transition:opacity .2s ease-out}.hero{gap:var(--space-1);flex-direction:column;display:flex}.hero-label{font-size:var(--fs-small);color:var(--muted)}.hero-sub{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.big-amount{font-size:var(--fs-hero);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600;line-height:1.15;display:block}.big-amount.muted{color:var(--muted)}.big-currency{margin-right:2px;font-size:.6em}.big-decimal{color:var(--muted);font-size:.6em}.figures{gap:var(--space-3);margin:var(--space-2) 0;grid-template-columns:repeat(3,1fr);display:grid}.figure dt{font-size:var(--fs-small);color:var(--muted)}.figure dd{font-size:var(--fs-title);font-variant-numeric:tabular-nums;white-space:nowrap;margin:2px 0 0}.chart{max-width:480px;margin:0}.chart svg{width:100%;height:auto;display:block}.chart-base{stroke:var(--line);stroke-width:1px}.chart-line{stroke:var(--accent);stroke-width:2px;stroke-linecap:round}.chart-dot{fill:var(--accent)}.chart-dot.partial{fill:var(--surface);stroke:var(--attention);stroke-width:1.5px}.chart-axis{margin-top:var(--space-1);font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.share-list h3{justify-content:space-between;display:flex}.share{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.share-bar{background:var(--accent);border-radius:2px;height:4px}.share-bar.liability{background:var(--negative)}.share-text{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.rows{margin:0;padding:0;list-style:none}.rows>li{border-bottom:1px solid var(--line)}.rows>li:last-child{border-bottom:none}.row-link,.row-static{width:100%;min-height:52px;padding:var(--space-2) 0;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;gap:2px;text-decoration:none;display:flex}.row-static{cursor:default}button.row-link{align-items:stretch;padding-left:0;padding-right:0;font-weight:400}.row-link.selected{background:color-mix(in srgb, var(--accent) 10%, transparent)}.rows.compact .row-link{min-height:44px}.row-main{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.row-main>:first-child{overflow-wrap:anywhere;min-width:0}.row-sub{font-size:var(--fs-small);color:var(--muted);display:block}.row-actions{align-items:center;gap:var(--space-2);display:flex}.row-state{font-size:var(--fs-small)}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.negative{color:var(--negative)}.positive{color:var(--positive)}.muted{color:var(--muted)}.hint{font-size:var(--fs-small);color:var(--muted);margin:var(--space-2) 0 0}.attention-text{color:var(--attention)}.danger-text{color:var(--negative)}.tag{border:1px solid var(--line);color:var(--muted);vertical-align:1px;border-radius:4px;margin:0 6px 0 0;padding:0 6px;font-size:12px;line-height:18px;display:inline-block}.row-main .tag:not(:first-child){margin:0 0 0 6px}.tag.income{color:var(--positive);border-color:currentColor}.tag.expense{color:var(--negative);border-color:currentColor}.tag.transfer{color:var(--muted)}.filter-chip{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;font-size:var(--fs-small);color:var(--muted);display:inline-flex}details.closed-list{margin-top:var(--space-5)}details.closed-list summary{cursor:pointer;min-height:44px;color:var(--muted);align-items:center;display:flex}.field{margin-bottom:var(--space-3);display:block}.field-label{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);display:block}.field-error{margin-top:var(--space-1);font-size:var(--fs-small);color:var(--negative);display:block}.field.has-error input,.field.has-error select{border-color:var(--negative)}input,select{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;padding:9px 10px;font-size:16px}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent-fill)}.amount-input{font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.inline-field{align-items:center;gap:var(--space-2);font-size:var(--fs-small);color:var(--muted);white-space:nowrap;display:flex}.inline-field input{width:auto}.check{align-items:center;gap:var(--space-2);min-height:44px;margin-bottom:var(--space-3);display:flex}button,.button{min-height:44px;padding:0 var(--space-4);border:1px solid var(--accent-fill);border-radius:var(--radius-control);background:var(--accent-fill);color:var(--on-accent);font:inherit;font-size:var(--fs-body);cursor:pointer;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.55;cursor:default}button.secondary,.button.secondary{color:var(--accent);border-color:var(--line);background:0 0}button.block{width:100%}button.danger{background:var(--negative);border-color:var(--negative);color:var(--on-accent)}.text-button{min-height:44px;padding:0 var(--space-2);color:var(--accent);background:0 0;border:none;font-weight:400}.text-button.on-dark{color:var(--toast-text);font-weight:600;text-decoration:underline}.text-button.danger-text{color:var(--negative)}.text-link{color:var(--accent);white-space:nowrap;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.icon-button{min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:none;padding:0;font-size:20px;font-weight:400}.danger-button{width:100%;margin-top:var(--space-5);border:1px solid var(--line);color:var(--negative);background:0 0;font-weight:400}.button-row{gap:var(--space-2);justify-content:flex-end;display:flex}.segmented{border-radius:var(--radius-control);background:var(--skeleton);max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.segmented button{min-height:40px;padding:0 var(--space-3);color:var(--text);white-space:nowrap;background:0 0;border:none;font-weight:400}.segmented button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000001f}.sheet .segmented{margin-bottom:var(--space-4);display:flex}.sheet .segmented button{flex:1}.chip-group{margin:0 0 var(--space-3);border:none;min-width:0;padding:0}.chip-group legend{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);padding:0}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{min-height:40px;padding:0 var(--space-3);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:20px;font-weight:400}.chip.active{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}.chip.ghost{color:var(--accent)}.chip.static{align-items:center;gap:2px;min-height:36px;padding-right:0;display:inline-flex}.chip-remove{min-width:36px;min-height:36px;color:var(--muted);background:0 0;border:none;padding:0;font-weight:400}.disclosure{width:100%;margin-bottom:var(--space-3);border:1px solid var(--line);color:var(--text);background:0 0;justify-content:space-between;font-weight:400}.inline-form{align-items:flex-end;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.inline-form .field{flex:140px;margin-bottom:0}.panel{padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-panel);background:var(--surface);border:1px solid var(--line)}.danger-zone{border-color:color-mix(in srgb, var(--negative) 40%, var(--line))}.notice{justify-content:space-between;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);font-size:var(--fs-small);display:flex}.notice.danger{background:var(--danger-bg);color:var(--negative)}.notice.attention{background:var(--attention-bg);color:var(--attention)}.notice .text-button,.notice .text-link{color:inherit;flex:none;font-weight:600}.empty{padding:var(--space-5) 0;color:var(--muted)}.empty p{margin:0 0 var(--space-3)}.toast-region{z-index:40;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 80px);pointer-events:none;padding:0 var(--space-4);justify-content:center;display:flex;position:fixed}.toast{pointer-events:auto;align-items:center;gap:var(--space-3);max-width:560px;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);background:var(--toast-bg);color:var(--toast-text);border-radius:12px;animation:.2s ease-out rise;display:flex;box-shadow:0 6px 20px #00000040}.summary{margin:0 0 var(--space-2);font-size:var(--fs-small);justify-content:space-between;align-items:center;display:flex}.skeleton{gap:var(--space-2);flex-direction:column;display:flex}.sk{background:var(--skeleton);border-radius:6px}.sk-hero{width:70%;height:44px;margin-bottom:var(--space-2)}.sk-line{height:14px}.sheet-backdrop{z-index:30;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{border-radius:var(--radius-panel) var(--radius-panel) 0 0;background:var(--surface);flex-direction:column;width:100%;max-width:720px;max-height:92dvh;animation:.2s ease-out rise;display:flex}.sheet-head{padding:var(--space-2) var(--space-2) 0 var(--space-4);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-size:var(--fs-title);margin:0}.sheet-body{padding:var(--space-3) var(--space-4);overflow-y:auto}.sheet-foot{padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--line)}@media (width>=768px){.sheet-backdrop{align-items:center}.sheet{border-radius:var(--radius-panel);max-height:86dvh}}.onboarding{margin-top:var(--space-5)}.steps{margin:0;padding:0;list-style:none}.step{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex}.step:last-child{border-bottom:none}.step-mark{background:var(--skeleton);width:24px;height:24px;font-size:var(--fs-small);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.step.done .step-mark{background:var(--positive);color:var(--surface)}.step.current .step-mark{background:var(--accent-fill);color:var(--on-accent)}.step.done strong{color:var(--muted);font-weight:400}.step-body{flex:1;min-width:0}.step-form{margin-top:var(--space-3)}.step-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.valuate-row .row-main{align-items:flex-start}.valuate-input{flex-direction:column;flex:none;align-items:flex-end;width:44%;max-width:180px;display:flex}.valuate-input input{text-align:right;font-variant-numeric:tabular-nums}.with-sticky-foot{padding-bottom:120px}.sticky-foot{z-index:22;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:var(--space-2) max(var(--space-4), calc((100vw - 720px) / 2 + var(--space-4)));background:var(--surface);border-top:1px solid var(--line);position:fixed}@media (width>=768px){.sticky-foot{bottom:0}}.main:has(.sticky-foot)~.fab{display:none}.category-group h3{margin-top:var(--space-3)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
