:root{--primary:#ff9b39;--primary-hover:#f08b28;--primary-soft:#ffe4c7;--primary-tint:#fff2e3;--primary-text:#a85110;--on-primary:#3a2c22;--success:#457f44;--success-soft:#e3efe2;--danger:#c2610f;--danger-soft:#fbe4d3;--warning:#b8860b;--accent-berry:#b674a8;--accent-mint:#a8c7a5;--accent-lilac:#d5cbe4;--accent-sky:#5d76b8;--bg:#fff8f0;--surface:#fff;--surface-2:#fff4e8;--border:#f0e2d4;--border-strong:#e2cdb9;--text:#3a2c22;--text-muted:#8c7a6b;--text-faint:#b5a494;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:22px;--r-xl:28px;--r-full:999px;--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--shadow-xs:0 1px 2px #7a55350d;--shadow-sm:0 1px 2px #7a55350f, 0 1px 3px #7a55350a;--shadow-md:0 2px 6px #7a553514, 0 6px 16px #7a55350f;--shadow-lg:0 8px 24px #7a55351f, 0 2px 8px #7a55350f;--shadow-sheet:0 -8px 32px #7a553529;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--font:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;--font-num:"SF Pro Rounded", "Segoe UI Variable", var(--font);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-h:62px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--primary:#ffb865;--primary-hover:#ffc980;--primary-soft:#4a331f;--primary-tint:#342519;--primary-text:#ffb865;--on-primary:#241c17;--success:#8fc48d;--success-soft:#263425;--danger:#ffad7a;--danger-soft:#3a2620;--accent-berry:#d99fcc;--accent-mint:#a8c7a5;--accent-lilac:#4a3f56;--accent-sky:#93a9dd;--bg:#241c17;--surface:#2f251e;--surface-2:#3a2e25;--border:#443528;--border-strong:#543;--text:#f5eadd;--text-muted:#b8a696;--text-faint:#8a7663;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 10px 28px #0000008c;--shadow-sheet:0 -8px 32px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}h1,h2,h3,h4,p,figure{margin:0}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:0;outline:none;font-size:max(16px,1em)}a{color:var(--primary-text);text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-xs)}::selection{background:var(--primary-soft);color:var(--text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full)}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page{padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) var(--sp-8);max-width:560px;margin:0 auto}.page--center{min-height:60vh;color:var(--text-muted);font-size:var(--fs-sm);place-items:center;display:grid}.page__head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.page__title{font-size:var(--fs-xl);letter-spacing:-.01em;margin:0;font-weight:700}.page__count{font-size:var(--fs-xs);color:var(--text-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.boot{place-items:center;gap:var(--sp-4);background:var(--bg);text-align:center;min-height:100dvh;padding:var(--sp-6);display:grid}.boot__text{color:var(--text-muted);font-size:var(--fs-sm)}.boot__err{color:var(--danger);font-size:var(--fs-xs);max-width:30ch;line-height:1.5}.shell{background:var(--bg);min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.shell__main{min-height:calc(100dvh - var(--tabbar-h))}.offline-bar{z-index:60;padding:6px var(--sp-3);background:color-mix(in srgb, var(--danger) 92%, black);color:#fff;font-size:var(--fs-xs);text-align:center;animation:.24s lulu-slide-down;position:fixed;top:0;left:0;right:0}@keyframes lulu-slide-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.home__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.home__greet{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.home__title{font-size:var(--fs-xl);letter-spacing:-.02em;margin:2px 0 0;font-weight:800}.home__book{border-radius:var(--r-full);background:var(--surface);max-width:34%;box-shadow:var(--shadow-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:none;padding:5px 11px;font-size:11px;font-weight:600;overflow:hidden}.home__hero{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.home__hero-main{flex-direction:column;gap:2px;min-width:0;display:flex}.home__hero-sub{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.home__hero-lulu{align-items:center;gap:var(--sp-2);flex:none;display:flex}.home__empty{text-align:center;flex-direction:column;align-items:center;gap:3px;display:flex}.home__empty-title{font-size:var(--fs-md);margin:0;font-weight:700}.home__empty-sub{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.home__stats{gap:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.home__list{background:var(--surface);border-radius:var(--r-md);padding:2px var(--sp-3);box-shadow:var(--shadow-xs)}.home__list-empty{padding:var(--sp-4);text-align:center;font-size:var(--fs-xs);color:var(--text-faint);margin:0}.stat{padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs);flex-direction:column;gap:4px;min-width:0;display:flex}.stat__label{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.stat__value{font-size:var(--fs-md);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.stat__value--cat{align-items:center;gap:5px;display:flex}.stat__value--cat i{border-radius:50%;flex:none;width:8px;height:8px}.ring{flex:none;overflow:visible}.spark{gap:var(--sp-2);flex-direction:column;display:flex}.spark__bars{align-items:flex-end;gap:6px;height:56px;display:flex}.spark__col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.spark__bar{background:color-mix(in srgb, var(--primary) 42%, var(--surface));border-radius:4px 4px 2px 2px;width:100%;min-height:3px;transition:height .3s}.spark__bar--now{background:var(--primary)}.spark__label{color:var(--text-faint);font-size:10px}.field{flex-direction:column;gap:6px;display:flex}.field__label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.field__input{width:100%;padding:13px var(--sp-4);border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.field__input::placeholder{color:var(--text-faint)}.field__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);outline:none}.field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.onboard{gap:var(--sp-4);min-height:100dvh;padding:calc(var(--sp-8) + env(safe-area-inset-top)) var(--sp-5) var(--sp-6);flex-direction:column;max-width:480px;margin:0 auto;display:flex}.onboard__hero{padding:var(--sp-4) 0 var(--sp-2);place-items:center;display:grid}.onboard__title{text-align:center;letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.onboard__sub{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);margin:0;line-height:1.6}.onboard__card{gap:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.onboard__actions{gap:var(--sp-3);margin-top:var(--sp-2);flex-direction:column;display:flex}.txrow{align-items:center;gap:var(--sp-3);text-align:left;width:100%;color:inherit;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;padding:11px 4px;font-family:inherit;transition:background .12s;display:flex}.txrow:active{background:var(--surface-2)}.txrow__dot{border-radius:50%;flex:none;width:9px;height:9px;margin-left:2px}.txrow__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.txrow__title{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-weight:600;display:flex;overflow:hidden}.txrow__who{background:var(--surface-2);color:var(--text-muted);border-radius:999px;flex:none;padding:1px 5px;font-size:10px;font-weight:600}.txrow__sub{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.txrow__amount{text-align:right;flex:none}.filters{padding-bottom:var(--sp-2);scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;border-radius:999px;flex:none;padding:7px 14px;font-family:inherit;font-weight:600;transition:all .14s}.chip--active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 16%, var(--surface));color:var(--primary-text)}.search{margin-bottom:var(--sp-3);position:relative}.search input{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:999px;padding:11px 14px 11px 36px;font-family:inherit;font-size:16px}.search input:focus{border-color:var(--primary);outline:none}.search:before{content:"🔍";opacity:.5;pointer-events:none;font-size:12px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.daygroup{margin-bottom:var(--sp-4)}.daygroup__head{background:var(--bg);z-index:1;justify-content:space-between;align-items:baseline;padding:6px 4px;display:flex;position:sticky;top:0}.daygroup__head span:first-child{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700}.daygroup__total{font-size:var(--fs-xs);color:var(--text-faint)}.daygroup__head--btn{background:var(--bg);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;appearance:none;border:0}.daygroup__head--btn:active{opacity:.6}.daygroup__head--btn .daygroup__total{margin-left:auto}.daygroup__more{font-size:var(--fs-xs);color:var(--text-faint);margin-left:var(--sp-2)}.daygroup__list{background:var(--surface);border-radius:var(--r-md);padding:2px var(--sp-3);box-shadow:var(--shadow-xs)}.daydetail{gap:var(--sp-3);flex-direction:column;display:flex}.daydetail__sum{align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 2px;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.daydetail__sumitem{font-size:var(--fs-sm);color:var(--text-muted)}.daydetail__sumitem--count{font-size:var(--fs-xs);color:var(--text-faint);margin-left:auto}.daydetail__list{background:var(--surface);border-radius:var(--r-md);padding:2px var(--sp-3);box-shadow:var(--shadow-xs)}.daydetail__empty{text-align:center;color:var(--text-faint);font-size:var(--fs-sm);padding:var(--sp-5) 0}.detail{gap:var(--sp-4);flex-direction:column;display:flex}.detail__amount{align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;flex-direction:column;display:flex}.detail__note{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;margin:0;line-height:1.5}.detail__rows{flex-direction:column;margin:0;display:flex}.detail__row{justify-content:space-between;gap:var(--sp-4);border-bottom:1px solid var(--border);padding:12px 2px;display:flex}.detail__row:last-child{border-bottom:0}.detail__row dt{font-size:var(--fs-sm);color:var(--text-muted)}.detail__row dd{font-size:var(--fs-sm);text-align:right;word-break:break-all;margin:0;font-weight:600}.detail__actions{gap:var(--sp-2);padding-top:var(--sp-2);flex-direction:column;display:flex}.monthpick{background:var(--surface);box-shadow:var(--shadow-xs);border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex}.monthpick button{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-family:inherit;font-size:16px;line-height:1}.monthpick button:active{background:var(--surface-2)}.monthpick span{font-size:var(--fs-sm);text-align:center;min-width:72px;font-weight:700}.report__total{flex-direction:column;gap:2px;display:flex}.report__total-label{font-size:var(--fs-xs);color:var(--text-muted)}.report__pie{margin:0 auto}.catlist{margin:var(--sp-2) 0 0;flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.catlist__row{align-items:center;gap:var(--sp-2);grid-template-columns:10px 1fr auto auto;display:grid}.catlist__dot{border-radius:50%;width:10px;height:10px}.catlist__name{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.catlist__ratio{font-size:var(--fs-xs);color:var(--text-faint);text-align:right;min-width:30px}.settings{gap:var(--sp-3);flex-direction:column;display:flex}.settings__profile{align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);display:flex}.settings__avatar{background:color-mix(in srgb, var(--primary) 18%, var(--surface));border-radius:50%;flex:none;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.settings__name{font-size:var(--fs-md);margin:0;font-weight:700}.settings__meta{font-size:var(--fs-xs);color:var(--text-muted);margin:2px 0 0}.settings__row{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);padding:13px 2px;display:flex}.settings__row:last-child{border-bottom:0}.settings__row-label{color:var(--text-muted)}.settings__row-value{text-align:right;word-break:break-all;font-weight:600}.settings__row-value--url{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--text-muted);max-width:62%;font-weight:500}.settings__tag{margin-left:var(--sp-1);border-radius:var(--r-xs);background:var(--primary-tint);color:var(--primary-text);font-family:var(--font-body);letter-spacing:.04em;vertical-align:1px;padding:1px 6px;font-size:10px;font-style:normal;display:inline-block}.settings__error{margin:var(--sp-2) 0 var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:color-mix(in srgb, var(--danger) 8%, transparent);border:1px solid color-mix(in srgb, var(--danger) 22%, transparent)}.settings__error-msg{font-size:var(--fs-xs);color:var(--danger);word-break:break-all;margin:0;line-height:1.5}.settings__error-advice{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}.settings__sync-actions{gap:var(--sp-2);padding-top:var(--sp-3);display:flex}.settings__sync-actions>*{flex:1}.settings__linkbtn{width:100%;margin-top:var(--sp-2);padding:var(--sp-2);color:var(--primary-text);font-size:var(--fs-sm);text-align:center;cursor:pointer;background:0 0;border:0;font-family:inherit;display:block}.settings__linkbtn:active{opacity:.6}.settings__invite{gap:var(--sp-3);padding:var(--sp-2) 0;flex-direction:column;align-items:center;display:flex}.settings__field{gap:var(--sp-2);padding:var(--sp-3) 2px var(--sp-2);flex-direction:column;display:flex}.settings__code{letter-spacing:.16em;color:var(--primary-text);font-size:26px;font-weight:800}.settings__invite-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.settings__hint{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;margin:0;line-height:1.6}.settings__version{text-align:center;font-size:var(--fs-xs);color:var(--text-faint);padding:var(--sp-4) 0}.shell__main--sub{padding-bottom:calc(var(--sp-6) + var(--safe-bottom))}.backbtn{border-radius:var(--r-full);background:var(--surface-2);width:34px;height:34px;color:var(--text);cursor:pointer;border:none;flex:none;place-items:center;padding-bottom:3px;font-size:22px;line-height:1;transition:background .15s;display:grid}.backbtn:hover{background:var(--primary-tint)}.page__bottom{padding-top:var(--sp-4)}.bfield{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.bfield--row{flex-direction:row;justify-content:space-between;align-items:center}.bfield__label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.bfield__hint{font-size:var(--fs-xs);color:var(--text-faint);margin:0;line-height:1.6}.amountin{align-items:baseline;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);display:flex}.amountin__sym{font-size:var(--fs-lg);color:var(--text-muted)}.amountin__input{min-width:0;font-family:var(--font-num);font-size:var(--fs-xl);color:var(--text);background:0 0;border:none;outline:none;flex:1;font-weight:700}.amountin__input::placeholder{color:var(--text-faint)}.switch{appearance:none;background:var(--border-strong);border-radius:var(--r-full);cursor:pointer;width:46px;height:27px;transition:background .18s;position:relative}.switch:after{content:"";width:21px;height:21px;box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;transition:transform .18s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--primary)}.switch:checked:after{transform:translate(19px)}.sheet__extra{padding-top:var(--sp-3);justify-content:center;display:flex}.budget__alert{background:var(--danger-soft);border-color:#0000;flex-direction:column;gap:2px;display:flex}.budget__alert-text{font-size:var(--fs-md);color:var(--danger);font-weight:700}.budget__alert-sub{font-size:var(--fs-xs);color:var(--text-muted)}.budget__list{gap:var(--sp-3);flex-direction:column;display:flex}.budget{gap:var(--sp-2);flex-direction:column;display:flex}.budget--over{border-color:var(--danger)}.budget__head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.budget__name{align-items:center;gap:var(--sp-2);font-size:var(--fs-md);color:var(--text);font-weight:700;display:inline-flex}.budget__dot{border-radius:50%;flex:none;width:9px;height:9px}.budget__more{color:var(--text-faint);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;padding:2px 4px}.budget__more:hover{color:var(--primary-text)}.budget__nums{align-items:baseline;gap:4px;display:flex}.budget__spent{font-weight:700}.budget__of{font-size:var(--fs-sm);color:var(--text-faint)}.budget__bar{border-radius:var(--r-full);background:var(--surface-2);height:8px;overflow:hidden}.budget__bar>i{border-radius:inherit;background:var(--primary);height:100%;transition:width .4s;display:block}.budget--over .budget__bar>i{background:var(--danger)}.budget--warn .budget__bar>i{background:var(--warning)}.budget__foot{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.budget__left{color:var(--text-muted);font-variant-numeric:tabular-nums}.budget__left--over{color:var(--danger);font-weight:700}.budget__tag{border-radius:var(--r-full);background:var(--primary-tint);color:var(--primary-text);padding:1px 7px;font-size:11px}.budget__pct{margin-left:auto}.budget__actions{padding-top:var(--sp-4)}.bstrip{gap:var(--sp-2);flex-direction:column;display:flex}.bstrip__row{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);display:flex}.bstrip__name{text-overflow:ellipsis;white-space:nowrap;max-width:72px;color:var(--text-muted);flex:none;overflow:hidden}.bstrip__bar{border-radius:var(--r-full);background:var(--surface-2);flex:1;height:6px;overflow:hidden}.bstrip__bar>i{border-radius:inherit;height:100%;transition:width .4s;display:block}.bstrip__num{color:var(--text-faint);flex:none}.rec__list{gap:var(--sp-3);flex-direction:column;display:flex}.rec{gap:var(--sp-2);flex-direction:column;display:flex}.rec--due{border-color:var(--primary);background:var(--primary-tint)}.rec--off{opacity:.62}.rec__head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.rec__name{font-size:var(--fs-md);color:var(--text);font-weight:700}.rec__meta{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.rec__actions{gap:var(--sp-2);padding-top:var(--sp-1);display:flex}.rcbadge{justify-content:space-between;align-items:center;gap:var(--sp-2);background:var(--primary-tint);border-color:#0000;display:flex}.rcbadge__text{font-size:var(--fs-sm);color:var(--primary-text);font-weight:600}.rcbadge__go{font-size:var(--fs-xs);color:var(--primary-text)}.worth{gap:var(--sp-1);flex-direction:column;display:flex}.worth__label{font-size:var(--fs-xs);color:var(--text-muted)}.worth__split{gap:var(--sp-4);padding-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.acclist{gap:var(--sp-2);flex-direction:column;display:flex}.acc{align-items:center;gap:var(--sp-3);display:flex}.acc__ico{border-radius:var(--r-sm);width:38px;height:38px;font-size:var(--fs-md);flex:none;place-items:center;font-weight:700;display:grid}.acc__main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.acc__name{font-size:var(--fs-md);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.acc__meta{font-size:var(--fs-xs);color:var(--text-faint)}.acc__right{align-items:center;gap:var(--sp-2);flex:none;display:flex}.acc__del{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.acc__del:hover{color:var(--danger)}.settings__nav{justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-3) 0;border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;font-family:inherit;display:flex}.settings__nav:last-child{border-bottom:none}.settings__nav-label{font-size:var(--fs-md);color:var(--text)}.settings__nav-value{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);display:inline-flex}.settings__nav-value>i{color:var(--text-faint);font-style:normal}.memberspend{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.memberspend__row{align-items:center;gap:var(--sp-3);display:flex}.memberspend__avatar{border-radius:var(--r-full);flex:none;place-items:center;width:32px;height:32px;font-size:17px;line-height:1;display:grid}.memberspend__main{flex-direction:column;flex:auto;gap:5px;min-width:0;display:flex}.memberspend__name{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.memberspend__bar{border-radius:var(--r-full);background:var(--surface-2);height:6px;display:block;overflow:hidden}.memberspend__bar>i{border-radius:var(--r-full);height:100%;transition:width .3s;display:block}.memberspend__right{flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.memberspend__count{font-size:var(--fs-xs);color:var(--text-faint)}.field__input--code{text-align:center;font-family:var(--font-num);font-size:var(--fs-lg);letter-spacing:.24em;text-transform:uppercase}.settings__family{gap:var(--sp-3);padding:var(--sp-2) 2px var(--sp-3);flex-direction:column;display:flex}.family{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.family__person{padding:var(--sp-3) var(--sp-2);border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);flex-direction:column;align-items:center;gap:6px;display:flex}.family__person--me{border-color:var(--primary);background:var(--primary-tint)}.family__avatar{border-radius:var(--r-full);place-items:center;width:44px;height:44px;font-size:24px;line-height:1;display:grid}.family__name{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.family__tag{color:var(--primary-text);background:color-mix(in srgb, var(--primary) 18%, transparent);border-radius:var(--r-full);padding:1px 8px;font-size:10px}.family__actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.settings__note{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.6}.trash__hint{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--primary-tint);color:var(--primary-text);font-size:var(--fs-xs);line-height:1.6}.trash__list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.trash__row{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-xs);display:flex}.trash__main{flex:1;min-width:0}.trash__title{font-size:var(--fs-md);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.trash__sub{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;overflow:hidden}.trash__right{align-items:center;gap:var(--sp-3);flex:none;display:flex}.trash__restore{padding:4px var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--r-full);color:var(--primary-text);font-size:var(--fs-xs);cursor:pointer;background:0 0;font-weight:600;transition:background .16s}.trash__restore:active{background:var(--primary-tint)}.trash__restore:disabled{opacity:.5;cursor:default}@media (prefers-color-scheme:dark){.trash__restore{border-color:color-mix(in srgb, var(--primary) 42%, transparent)}}.lulu{shape-rendering:geometricprecision;display:block}.lulu--animated{animation:3.6s ease-in-out infinite lulu-breathe}@keyframes lulu-breathe{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.025)translateY(-2px)}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-full);white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:600;line-height:1;transition:background-color .16s,transform .1s,box-shadow .16s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--block{width:100%;display:flex}.btn--sm{height:34px;padding:0 var(--sp-3);font-size:13px}.btn--md{height:44px;padding:0 var(--sp-5);font-size:15px}.btn--lg{height:52px;padding:0 var(--sp-6);font-size:16px}.btn--primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md)}.btn--secondary{background:var(--primary-tint);color:var(--primary-text);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--primary-soft)}.btn--ghost{color:var(--text-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--danger{background:var(--danger-soft);color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger);color:#fff8f0}.btn__label{align-items:center;gap:var(--sp-2);display:inline-flex}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite btn-spin}.btn--loading .btn__label{opacity:.72}@keyframes btn-spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.card--none{padding:0}.card--sm{padding:var(--sp-3)}.card--md{padding:var(--sp-4)}.card--interactive{cursor:pointer;transition:box-shadow .16s,transform .1s}.card--interactive:hover{box-shadow:var(--shadow-md)}.card--interactive:active{transform:scale(.99)}.section-label{letter-spacing:.04em;color:var(--text-muted);padding:var(--sp-4) var(--sp-1) var(--sp-2);text-transform:none;font-size:12px;font-weight:600}.sheet-root{z-index:100;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#3a2c2261;border:0;animation:.18s sheet-fade;position:absolute;inset:0}.sheet{background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-sheet);max-height:92vh;padding-bottom:var(--safe-bottom);flex-direction:column;animation:.24s cubic-bezier(.22,.9,.3,1) sheet-up;display:flex;position:relative}.sheet--full{height:92vh}.sheet__grab{border-radius:var(--r-full);background:var(--border-strong);width:38px;height:4px;margin:var(--sp-3) auto var(--sp-1);flex:none}.sheet__head{padding:var(--sp-2) var(--sp-4) var(--sp-3);flex:none;justify-content:space-between;align-items:center;display:flex}.sheet__title{font-size:17px;font-weight:700}.sheet__close{border-radius:var(--r-full);width:32px;height:32px;color:var(--text-muted);background:var(--surface-2);place-items:center;font-size:15px;display:grid}.sheet__close:hover{color:var(--text)}.sheet__body{padding:0 var(--sp-4) var(--sp-4);-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}.sheet__foot{padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--border);background:var(--surface);flex:none}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.empty{text-align:center;padding:var(--sp-8) var(--sp-5);align-items:center;gap:var(--sp-3);flex-direction:column;display:flex}.empty__title{color:var(--text);font-size:15px;font-weight:700}.empty__desc{color:var(--text-muted);max-width:260px;font-size:13px;line-height:1.6}.empty__action{margin-top:var(--sp-2)}.toast-stack{left:50%;bottom:calc(var(--tabbar-h) + var(--sp-6) + var(--safe-bottom));z-index:200;gap:var(--sp-2);pointer-events:none;flex-direction:column;align-items:center;width:max-content;max-width:86vw;display:flex;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--r-full);box-shadow:var(--shadow-lg);text-align:center;padding:10px 18px;font-size:14px;font-weight:600;animation:.2s toast-in}.toast--info{background:var(--text);color:var(--bg)}.toast--success{background:var(--success);color:#fff8f0}.toast--error{background:var(--danger);color:#fff8f0}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.money{letter-spacing:-.01em;font-weight:600}.money__sym{opacity:.72;margin-right:1px;font-size:.78em}.money--income{color:var(--success)}.money--expense{color:var(--text)}.money--muted{color:var(--text-muted)}.onboard__note{text-align:center;color:var(--text-faint);font-size:var(--fs-xs);margin:0;line-height:1.6}.onboard__note--faint{color:color-mix(in srgb, var(--text-faint) 70%, transparent)}.roles{gap:var(--sp-3);flex-direction:column;display:flex}.rolecard{--role-color:var(--primary);align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-4) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-xs);text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.rolecard:active:not(:disabled){transform:scale(.985)}.rolecard:disabled{opacity:.6;cursor:default}@media (hover:hover){.rolecard:hover:not(:disabled){border-color:var(--role-color);box-shadow:var(--shadow-sm)}}.rolecard__avatar{border-radius:var(--r-full);background:color-mix(in srgb, var(--role-color) 22%, var(--surface));flex:none;place-items:center;width:54px;height:54px;font-size:28px;line-height:1;display:grid}.rolecard__main{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.rolecard__label{font-size:var(--fs-lg);color:var(--text);font-weight:700}.rolecard__hint{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.45}.rolecard__go{color:var(--text-faint);font-size:var(--fs-xl);flex:none;line-height:1}.migrate{gap:var(--sp-4);min-height:100dvh;padding:calc(var(--sp-6) + env(safe-area-inset-top)) var(--sp-5) var(--sp-6);flex-direction:column;max-width:480px;margin:0 auto;display:flex}.migrate__hero{padding:var(--sp-3) 0 0;place-items:center;display:grid}.migrate__title{text-align:center;letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.migrate__sub{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);margin:0;line-height:1.6}.migrate__card{gap:var(--sp-3);flex-direction:column;display:flex}.migrate__row{align-items:flex-start;gap:var(--sp-3);display:flex}.migrate__role{border-radius:var(--r-full);background:var(--surface-2);flex:none;place-items:center;width:40px;height:40px;font-size:22px;line-height:1;display:grid}.migrate__rowmain{flex:auto;min-width:0}.migrate__rowtitle{font-size:var(--fs-md);color:var(--text);margin:0 0 4px;font-weight:700}.migrate__rowsub{font-size:var(--fs-xs);color:var(--text-muted);margin:0;line-height:1.6}.migrate__hint{padding:var(--sp-3);border-radius:var(--r-sm);background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--danger);font-size:var(--fs-xs);margin:0;line-height:1.6}.tabbar{height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-top:1px solid var(--border);z-index:50;grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar__item{color:var(--text-faint);flex-direction:column;justify-content:center;align-items:center;gap:3px;height:100%;font-size:11px;font-weight:600;transition:color .15s;display:flex}.tabbar__item--active{color:var(--primary-text)}.tabbar__add{border-radius:var(--r-full);background:var(--primary);width:56px;height:56px;color:var(--on-primary);box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 45%, transparent), var(--shadow-md);justify-self:center;place-items:center;margin-top:-22px;transition:transform .12s,box-shadow .16s;display:grid}.tabbar__add:active{transform:scale(.92)}.segmented{background:var(--surface-2);border-radius:999px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.segmented__btn{color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:9px 0;font-family:inherit;font-weight:600;transition:all .14s}.segmented__btn--active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.amountbox{padding:var(--sp-4) 0 var(--sp-3);justify-content:center;align-items:baseline;gap:4px;display:flex}.amountbox__sym{color:var(--text-muted);font-size:22px;font-weight:600}.amountbox__num{letter-spacing:-.02em;font-size:38px;font-weight:800;line-height:1.1}.amountbox__num--ph{color:var(--text-faint)}.catgrid{gap:var(--sp-2);padding:var(--sp-1) 0 var(--sp-2);scrollbar-width:none;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));max-height:168px;display:grid;overflow-y:auto}.catgrid::-webkit-scrollbar{display:none}.catgrid__item{border-radius:var(--r-md);cursor:pointer;background:0 0;border:1.5px solid #0000;flex-direction:column;align-items:center;gap:5px;padding:8px 2px;font-family:inherit;transition:all .14s;display:flex}.catgrid__item--active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent)}.catgrid__ico{border-radius:50%;place-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:grid}.catgrid__label{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.catgrid__item--active .catgrid__label{color:var(--primary-text);font-weight:600}.transfer{padding:var(--sp-2) 0;flex-direction:column;gap:4px;display:flex}.transfer__leg{flex-direction:column;gap:6px;display:flex}.transfer__arrow{text-align:center;color:var(--primary-text);font-size:15px;line-height:1}.pill:disabled{opacity:.35;cursor:not-allowed}.picks{padding:var(--sp-1) 0;flex-direction:column;gap:6px;display:flex}.picks__label{color:var(--text-muted);font-size:11px;font-weight:600}.picks__row{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.picks__row::-webkit-scrollbar{display:none}.pill{border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:7px 13px;font-family:inherit;font-weight:600;transition:all .14s}.pill--active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 16%, var(--surface));color:var(--primary-text)}.noteinput{border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);padding:11px 14px;font-family:inherit;font-size:16px}.noteinput::placeholder{color:var(--text-faint)}.noteinput:focus{border-color:var(--primary);outline:none}.numpad{padding-top:var(--sp-2);grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.numpad__key{border-radius:var(--r-md);background:var(--surface-2);height:48px;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;font-family:inherit;font-size:20px;font-weight:600;transition:transform 80ms,background .12s}.numpad__key:active{background:color-mix(in srgb, var(--primary) 22%, var(--surface-2));transform:scale(.96)}.numpad__key--fn{color:var(--text-muted);font-size:17px}.scanbtn{justify-content:center;align-items:center;gap:var(--sp-2);width:100%;margin-bottom:var(--sp-3);padding:10px var(--sp-3);border:1.5px dashed var(--border-strong);border-radius:var(--r-md);background:var(--primary-tint);color:var(--primary-text);font-size:var(--fs-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;font-weight:600;transition:background .12s;display:flex}.scanbtn:active{background:color-mix(in srgb, var(--primary) 18%, var(--surface))}.scanbtn__ico{font-size:16px;line-height:1}.scanbtn__loading{align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted);text-align:center;flex-direction:column;margin:0;display:flex}.edit{gap:var(--sp-3);flex-direction:column;display:flex}.edit__hint{border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-muted);margin:0;padding:10px 12px;line-height:1.5}.edit__date{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.edit__date-input{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-variant-numeric:tabular-nums;flex:none;padding:8px 12px;font-family:inherit;font-size:16px}.edit__actions{gap:var(--sp-2);padding-top:var(--sp-2);grid-template-columns:1fr 1.6fr;display:grid}.import__intro{margin:0 0 var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);line-height:1.6}.import__pick{margin-bottom:var(--sp-4)}.import__file{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted);text-align:center;word-break:break-all}.import__error{font-size:var(--fs-sm);color:var(--danger);margin:0;line-height:1.55}.import__error-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}.import__done{margin:0 0 var(--sp-3);font-size:var(--fs-md);color:var(--text)}.import__stats{gap:var(--sp-2);text-align:center;grid-template-columns:repeat(4,1fr);display:grid}.import__stat{flex-direction:column;gap:2px;display:flex}.import__stat-value{font-family:var(--font-num);font-size:var(--fs-lg);color:var(--text);font-weight:700}.import__stat-value--primary{color:var(--primary-text)}.import__stat-label{font-size:var(--fs-xs);color:var(--text-muted)}.import__src{margin:var(--sp-3) 0 0;padding-top:var(--sp-2);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.import__accounts{gap:var(--sp-2);flex-wrap:wrap;display:flex}.import__hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}.import__hint--center{text-align:center}.import__rejected{font-size:var(--fs-xs);color:var(--danger);flex-direction:column;gap:6px;margin:0;padding:0;line-height:1.5;list-style:none;display:flex}.import__list{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.import__row{align-items:center;gap:var(--sp-2);padding:10px var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border);display:flex}.import__row:first-child{border-top-left-radius:var(--r-md);border-top-right-radius:var(--r-md)}.import__row:last-child{border-bottom-left-radius:var(--r-md);border-bottom-right-radius:var(--r-md);border-bottom:none}.import__row--dup{background:var(--surface-2);opacity:.62}.import__row--off{opacity:.42}.import__row--off .import__row-title{text-decoration:line-through}.import__row-main{text-align:left;cursor:pointer;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.import__row-main:disabled{cursor:default}.import__row-title{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import__row-sub{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import__row-amount{font-size:var(--fs-sm);color:var(--text);flex:none;font-weight:600}.import__row-amount--in{color:var(--success)}
