@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff)format("woff")}:root,[data-theme=light]{--page:#e8ebef;--bg:#f5f6f8;--surface:#fff;--surface2:#eff1f4;--text:#151a22;--text2:#5a6371;--text3:#848d9a;--line:#e5e8ec;--primary:#18212e;--on-primary:#fff;--inc:#13845a;--inc-bg:#e3f3ea;--exp:#c8443b;--exp-bg:#fbe9e7;--inv:#2d6ad6;--inv-bg:#e6eefc;--warn:#94600f;--warn-bg:#fcf1dc;--shadow:0 1px 2px #141a220a, 0 4px 16px #141a220f;--scrim:#0e12186b;--r-8:8px;--r-12:12px;--r-14:14px;--r-16:16px;--r-20:20px;--r-24:24px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px}[data-theme=dark]{--page:#05070a;--bg:#0e1116;--surface:#171b22;--surface2:#222831;--text:#eceff3;--text2:#a6aeba;--text3:#7a8390;--line:#262c35;--primary:#e9edf2;--on-primary:#10151c;--inc:#46c28c;--inc-bg:#46c28c24;--exp:#f27d71;--exp-bg:#f27d7124;--inv:#76a2f5;--inv-bg:#76a2f526;--warn:#e8b45a;--warn-bg:#e8b45a21;--shadow:0 1px 2px #0000004d;--scrim:#0009}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;background:var(--page);color:var(--text);font-family:Be Vietnam Pro,system-ui,sans-serif}button{color:inherit;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}.app{background:var(--bg);flex-direction:column;width:100%;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=481px){.app{box-shadow:var(--shadow)}}.app__main{min-height:0;padding:var(--s-4);flex:1;overflow-y:auto}.screen__title{margin:0 0 var(--s-2);font-size:24px;font-weight:700}.screen__hint{color:var(--text2);margin:0;font-size:13px}.nav{height:calc(78px + env(safe-area-inset-bottom));padding:6px 6px env(safe-area-inset-bottom);z-index:5;background:var(--surface);border-top:1px solid var(--line);flex:none;grid-template-columns:1fr 1fr 80px 1fr 1fr;align-items:start;display:grid;position:relative}.nav__item{height:56px;color:var(--text3);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.nav__item[aria-current=page]{color:var(--text);font-weight:700}.nav__pill{border-radius:var(--r-14);place-items:center;width:52px;height:28px;display:grid}.nav__item[aria-current=page] .nav__pill{background:var(--surface2)}.nav__fab-wrap{justify-content:center;display:flex}.fab{border-radius:var(--r-20);background:var(--primary);width:60px;height:60px;color:var(--on-primary);place-items:center;margin-top:-22px;display:grid;box-shadow:0 8px 20px #141a2247}.segmented{gap:var(--s-2);margin-top:var(--s-4);display:flex}.segmented button{min-height:48px;padding:0 var(--s-4);border-radius:var(--r-14);background:var(--surface2);font-size:14px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--primary);color:var(--on-primary);font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.amt__cur{color:var(--text3);font-size:.56em;font-weight:600}.sr-date{opacity:0;border:0;width:1px;height:1px;padding:0;position:absolute;bottom:0;right:16px}.iconbtn{border-radius:var(--r-14);width:48px;height:48px;color:var(--text2);place-items:center;display:grid}.roundbtn{background:var(--surface);width:48px;height:48px;box-shadow:var(--shadow);border-radius:24px;place-items:center;display:grid}.linkbtn{align-items:center;gap:2px;height:32px;font-size:13px;font-weight:600;display:inline-flex}.btn{border-radius:var(--r-16);justify-content:center;align-items:center;gap:8px;height:52px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--on-primary);font-weight:700}.btn--outline{border:1px solid var(--line)}.btn--ghost{background:var(--surface2)}.btn--danger{background:var(--exp);color:#fff;font-weight:700}.btn--pill{border-radius:24px;height:48px;padding:0 22px}.btn--xl{width:100%;height:56px;font-size:16px}.chip{border:1px solid var(--line);background:var(--surface);height:40px;color:var(--text);white-space:nowrap;border-radius:20px;flex:none;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.chip--lg{border-radius:22px;height:44px;padding:0 18px}.chip--icon{padding:0 14px}.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.hscroll{scrollbar-width:none;gap:8px;padding:0 16px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.hscroll--bleed{margin:0 -16px}.card{background:var(--surface);border-radius:var(--r-20);box-shadow:var(--shadow);padding:var(--s-5)}.card--list{border-radius:var(--r-16);padding:0;overflow:hidden}.divider{background:var(--line);height:1px}.input{border-radius:var(--r-14);border:1px solid var(--line);background:var(--surface2);outline:none;width:100%;height:48px;padding:0 14px;font-size:15px}.input:focus-visible{border-color:var(--primary)}.input--time{background:var(--surface);height:52px;font-size:18px;font-weight:600}.seg{gap:4px;display:grid}.seg button{color:var(--text2);font-weight:500}.seg--type{border-radius:var(--r-14);background:var(--surface2);grid-template-columns:repeat(3,1fr);padding:4px}.seg--type button{border-radius:10px;justify-content:center;align-items:center;gap:6px;height:44px;font-size:15px;display:flex}.seg--dir{border-radius:var(--r-12);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);padding:3px}.seg--dir button{border-radius:9px;height:36px;font-size:13px}.seg--dir button[aria-pressed=true]{background:var(--surface2);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000024}.overlay{z-index:40;position:absolute;inset:0}.overlay__scrim{background:var(--scrim);animation:.2s fadeIn;position:absolute;inset:0}.overlay--center{z-index:60;place-items:center;padding:0 24px;display:grid}.dialog{background:var(--surface);border-radius:var(--r-24);gap:8px;width:100%;padding:24px 20px 20px;animation:.2s fadeIn;display:grid;position:relative}.dialog__title{margin:0;font-size:18px;font-weight:700}.dialog__body{color:var(--text2);margin:0;font-size:14px;line-height:1.5}.dialog__actions{grid-template-columns:1fr 1fr;gap:8px;padding-top:12px;display:grid}.sheet{background:var(--surface);border-radius:var(--r-24) var(--r-24) 0 0;flex-direction:column;animation:.3s cubic-bezier(.2,.8,.2,1) slideUp;display:flex;position:absolute;inset:34px 0 0;overflow:hidden}.sheet__grab{background:var(--line);border-radius:2px;flex:none;width:36px;height:4px;margin:8px auto 0}.sheet__head{flex:none;align-items:center;gap:4px;height:52px;padding:0 8px;display:flex}.sheet__title{text-align:center;flex:1;font-size:16px;font-weight:700}.sheet__seg{flex:none;gap:8px;padding:0 16px;display:grid}.sheet__amount{flex:none;justify-content:center;align-items:center;gap:8px;height:68px;padding:0 16px;display:flex}.sheet__amount-text{letter-spacing:-.02em;white-space:nowrap;font-size:38px;font-weight:700}.sheet__clear{background:var(--surface2);width:32px;height:32px;color:var(--text2);border-radius:16px;place-items:center;display:grid}.sheet__scroll{scrollbar-width:none;flex-direction:column;flex:1;gap:14px;min-height:0;padding:4px 0 12px;display:flex;overflow-y:auto}.sheet__foot{padding:8px 12px calc(0px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex:none}.sheet__actions{grid-template-columns:1fr 1.3fr;gap:8px;padding:10px 0 16px;display:grid}.field{gap:8px;display:grid}.field__row{justify-content:space-between;align-items:center;padding:0 16px;display:flex}.field__label{color:var(--text2);font-size:13px;font-weight:600}.field__pad{padding:0 16px}.tile{border-radius:var(--r-14);background:var(--surface2);flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;width:80px;height:80px;padding:4px;display:flex}.tile span{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.2;display:-webkit-box;overflow:hidden}.keypad{grid-template-rows:repeat(4,46px);grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.key{border-radius:var(--r-12);background:var(--surface2);place-items:center;font-size:22px;font-weight:500;display:grid}.key--sm{font-size:20px}.key:active{filter:brightness(.94)}.key--accent{flex-direction:column;grid-row:span 2;justify-content:center;align-items:center;font-size:15px;font-weight:700;line-height:1.25;display:flex}.key--accent small{font-size:11px;font-weight:500}.picker{z-index:2;background:var(--surface);flex-direction:column;animation:.18s fadeIn;display:flex;position:absolute;inset:0}.picker__head{flex:none;align-items:center;gap:4px;height:64px;padding:12px 8px 0;display:flex}.picker__title{flex:1;font-size:17px;font-weight:700}.picker__body{scrollbar-width:none;flex-direction:column;flex:1;gap:18px;padding:8px 16px 24px;display:flex;overflow-y:auto}.picker__group{gap:10px;display:grid}.picker__parent{border-radius:var(--r-14);text-align:left;align-items:center;gap:12px;min-height:52px;padding:6px 12px 6px 6px;display:flex}.picker__parent:disabled{cursor:default}.picker__ico{border-radius:var(--r-12);flex:none;place-items:center;width:40px;height:40px;display:grid}.picker__name{flex:1;font-size:15px;font-weight:600}.picker__kids{flex-wrap:wrap;gap:8px;padding-left:12px;display:flex}.picker__kid{background:var(--surface2);border-radius:22px;align-items:center;gap:8px;height:44px;padding:0 14px 0 10px;font-size:14px;font-weight:500;display:flex}.toast{left:16px;right:16px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:70;background:var(--primary);color:var(--on-primary);border-radius:var(--r-14);align-items:center;gap:8px;min-height:48px;padding:4px 4px 4px 16px;animation:.25s toastIn;display:flex;position:absolute;box-shadow:0 8px 20px #141a2247}.toast--top{top:44px;bottom:auto}.toast--update{bottom:calc(148px + env(safe-area-inset-bottom))}.toast__msg{flex:1;font-size:14px;font-weight:500;line-height:1.35}.toast__undo{height:44px;color:inherit;text-underline-offset:3px;padding:0 14px;font-size:14px;font-weight:700;text-decoration:underline}.app__loading{flex:1}.home{flex-direction:column;gap:16px;padding-bottom:28px;display:flex}.home__bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.home__month{align-items:center;display:flex}.home__monthlabel{letter-spacing:-.01em;text-align:center;min-width:124px;font-size:18px;font-weight:700}.summary{flex-direction:column;gap:16px;display:flex}.summary__label{color:var(--text2);margin-bottom:4px;font-size:13px;font-weight:500}.summary__net{letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1.15}.sline{align-items:flex-start;gap:12px;display:flex}.sline__ico{border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.sline__label{color:var(--text2);flex:1;align-self:center;font-size:14px}.sline__hint{color:var(--text3);font-size:12px}.sline__note{color:var(--text3);margin-top:2px;font-size:12px}.sline__value{align-self:center;font-size:16px;font-weight:600}.home__list{flex-direction:column;gap:16px;display:flex}.home__listhead{justify-content:space-between;align-items:baseline;padding:0 4px;display:flex}.home__listtitle{font-size:16px;font-weight:700}.home__listhint{color:var(--text3);font-size:12px}.daygroup{flex-direction:column;gap:8px;display:flex}.daygroup__head{justify-content:space-between;padding:0 4px;font-size:13px;display:flex}.daygroup__label{color:var(--text2);font-weight:600}.daygroup__total{color:var(--text3)}.txrow{background:var(--surface);position:relative;overflow:hidden}.txrow+.txrow{border-top:1px solid var(--line)}.txrow__actions{width:144px;display:flex;position:absolute;top:0;bottom:0;right:0}.txrow__act{background:var(--surface2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.txrow__act--del{background:var(--exp);color:#fff}.txrow__main{z-index:1;background:var(--surface);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:12px;min-height:68px;padding:12px 16px;display:flex;position:relative}.txrow__ico{border-radius:var(--r-12);flex:none;place-items:center;width:40px;height:40px;display:grid}.txrow__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.txrow__title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.txrow__sub{align-items:center;gap:6px;min-width:0;display:flex}.txrow__member{background:var(--surface2);color:var(--text2);border-radius:6px;flex:none;padding:2px 8px;font-size:11px;font-weight:600}.txrow__note{color:var(--text2);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.txrow__right{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.txrow__amt{font-size:15px;font-weight:700}.txrow__tag{color:var(--inv);background:var(--inv-bg);border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600}.empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:28px 20px;display:flex}.empty--plain{gap:8px;padding:32px 16px}.empty__ico{border-radius:var(--r-20);background:var(--surface2);width:64px;height:64px;color:var(--text2);place-items:center;display:grid}.empty__title{margin-bottom:6px;font-size:17px;font-weight:700}.empty--plain .empty__title{margin:0;font-size:15px;font-weight:600}.empty__body{color:var(--text2);font-size:14px;line-height:1.5}.empty__hint{color:var(--text3);font-size:13px}.sk{background:var(--surface2);border-radius:8px;animation:1.2s ease-in-out infinite pulse}.sk--bar{width:160px;height:22px;margin:11px 0}.sk__card{flex-direction:column;gap:14px;height:212px;display:flex}.sk__row{align-items:center;gap:12px;padding:14px 16px;display:flex}.sk__row+.sk__row{border-top:1px solid var(--line)}.onb{padding:16px 24px calc(28px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:24px;display:flex;overflow-y:auto}.onb__top{flex:none;justify-content:space-between;align-items:center;height:48px;display:flex}.onb__dots{gap:6px;display:flex}.onb__dot{background:var(--line);border-radius:4px;width:8px;height:8px;transition:width .25s}.onb__dot--on{background:var(--primary);width:24px}.onb__skip{height:48px;color:var(--text2);padding:0 8px;font-size:15px;font-weight:500}.onb__body{flex-direction:column;flex:1;gap:24px;padding-top:24px;display:flex}.onb__logo{background:var(--primary);width:72px;height:72px;color:var(--on-primary);border-radius:22px;place-items:center;display:grid}.onb__logo--warn{background:var(--warn-bg);color:var(--warn)}.onb__text h1{letter-spacing:-.02em;text-wrap:pretty;margin:0 0 12px;font-size:30px;font-weight:700;line-height:1.2}.onb__text p{color:var(--text2);text-wrap:pretty;margin:0;font-size:16px;line-height:1.55}.onb__features{flex-direction:column;gap:16px;padding-top:8px;display:flex}.onb__feature{align-items:center;gap:14px;font-size:15px;line-height:1.45;display:flex}.onb__feature b{font-weight:600}.onb__feature span{color:var(--text2)}.onb__fico{border-radius:var(--r-14);flex:none;place-items:center;width:44px;height:44px;display:grid}.onb__form{flex-direction:column;gap:12px;display:flex}.onb__week,.weekgrid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.onb__week .chip{border-radius:var(--r-12);justify-content:center;height:44px;padding:0;font-weight:600}.screen__title--tall{letter-spacing:-.01em;height:48px;padding:8px 4px 0}.searchrow{gap:8px;display:flex}.searchbox{border-radius:var(--r-14);background:var(--surface);min-width:0;height:48px;box-shadow:var(--shadow);color:var(--text3);flex:1;align-items:center;gap:10px;padding:0 6px 0 14px;display:flex}.searchbox input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:15px}.searchbox input::-webkit-search-cancel-button{display:none}.roundbtn--sq{border-radius:var(--r-14);flex:none;position:relative}.iconbtn--sm{width:36px;height:36px}.badge{background:var(--primary);min-width:18px;height:18px;color:var(--on-primary);border-radius:9px;place-items:center;font-size:11px;font-weight:700;display:grid;position:absolute;top:5px;right:5px}.wrap{flex-wrap:wrap;gap:8px;display:flex}.chip--active{background:var(--primary);height:36px;color:var(--on-primary);border-color:var(--primary);border-radius:18px;padding:0 10px 0 14px;font-size:13px;font-weight:600}.histsum{justify-content:space-between;align-items:center;gap:8px;padding:0 4px;font-size:13px;display:flex}.histsum__count{color:var(--text2);font-weight:600}.histsum__totals{gap:12px;font-weight:600;display:flex}.empty--tall{gap:12px;padding:40px 16px}.empty__ico--sm{background:var(--surface2);width:56px;height:56px;color:var(--text3);border-radius:18px;place-items:center;display:grid}.linkbtn--lg{height:44px;color:var(--text2);padding:0 8px;font-size:14px}.daygroup__total{gap:10px;display:flex}.daygroup__thu{color:var(--inc)}.drawer{scrollbar-width:none;background:var(--surface);border-radius:var(--r-24) var(--r-24) 0 0;max-height:88%;padding:8px 16px calc(20px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;animation:.3s cubic-bezier(.2,.8,.2,1) slideUp;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.drawer__head{justify-content:space-between;align-items:center;display:flex}.drawer__title{font-size:18px;font-weight:700}.seg--period{border-radius:var(--r-14);background:var(--surface2);grid-template-columns:repeat(3,1fr);padding:4px}.seg--period button{border-radius:10px;height:40px;font-size:14px}.seg--period button[aria-pressed=true],.seg--mini button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000024}.seg--mini{background:var(--surface2);border-radius:10px;flex:none;grid-template-columns:1fr 1fr;gap:2px;padding:3px}.seg--mini button{border-radius:8px;height:34px;padding:0 14px;font-size:13px}.periodnav{justify-content:space-between;align-items:center;display:flex}.periodnav__label{font-size:17px;font-weight:700}.tabs{border-bottom:1px solid var(--line);gap:24px;padding:0 4px;display:flex}.tabs button{height:44px;color:var(--text3);font-size:15px;font-weight:600}.tabs button[aria-selected=true]{color:var(--text);box-shadow:inset 0 -2px 0 var(--primary)}.card--rows{border-radius:var(--r-16);padding:4px 16px}.trow{align-items:center;gap:12px;min-height:60px;display:flex}.trow+.trow,.channel{border-top:1px solid var(--line)}.trow__ico{border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.trow__label{color:var(--text2);flex:1;font-size:14px}.trow__right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.trow__value{font-size:16px;font-weight:700}.trow__delta{color:var(--text3);font-size:12px}.chart{border-radius:var(--r-16);flex-direction:column;gap:12px;padding:16px;display:flex}.chart__head{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.chart__head--base{align-items:baseline;min-height:0}.chart__title{font-size:16px;font-weight:700}.chart__title--pad{padding:8px 4px}.card--rows .chart__title--pad{padding:8px 0}.chart__sub{color:var(--text3);font-size:12px}.chart__info{color:var(--text2);min-height:18px;font-size:13px}.backbtn{align-items:center;gap:4px;height:40px;margin-left:-6px;font-size:16px;font-weight:700;display:flex}.donutwrap{justify-content:center;display:flex}.donut{position:relative}.donut__center{text-align:center;pointer-events:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:0 6px;display:flex;position:absolute;inset:30px}.donut__label{color:var(--text2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:500;overflow:hidden}.donut__value{font-size:17px;font-weight:700}.donut__cur{color:var(--text3);font-size:12px}.legend{flex-direction:column;display:flex}.legend__row{text-align:left;align-items:center;gap:12px;min-height:52px;display:flex}.legend__row:disabled{cursor:default}.legend__row+.legend__row{border-top:1px solid var(--line)}.legend__bar{border-radius:3px;flex:none;width:6px;height:28px}.legend__ico{border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.legend__name{flex:1;min-width:0;font-size:14px;font-weight:500}.legend__pct{text-align:right;width:40px;color:var(--text3);font-size:13px}.legend__amt{text-align:right;min-width:92px;font-size:14px;font-weight:600}.legend__chev{width:16px;color:var(--text3);flex:none}.nodata{text-align:center;color:var(--text2);padding:24px 0;font-size:14px}.bars{width:100%;height:auto;display:block}.bars__tick{fill:var(--text3);font-size:9px}.bars__x{fill:var(--text3);font-size:10px}.mtable__row{border-top:1px solid var(--line);grid-template-columns:1fr 1.2fr 1.2fr;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:500;display:grid}.mtable__row span:nth-child(n+2){text-align:right}.mtable__row--head{min-height:0;color:var(--text3);border-top:0;padding:6px 0;font-size:12px;font-weight:600}.mtable__row--total{border-top-color:var(--text3);font-weight:700}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile2{border-radius:var(--r-16);flex-direction:column;gap:6px;padding:14px;display:flex}.tile2__label{color:var(--text2);font-size:13px;font-weight:500}.tile2__value{color:var(--inv);font-size:17px;font-weight:700}.tile2__sub{color:var(--text3);font-size:12px}.channel{align-items:center;gap:12px;padding:12px 0;display:flex}.channel:first-of-type{border-top:0}.channel__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.channel__name{font-size:15px;font-weight:600}.channel__grid{color:var(--text2);grid-template-columns:repeat(3,1fr);gap:6px;font-size:12px;display:grid}.channel__grid b{color:var(--text);font-weight:600}.invrow{text-align:left;background:var(--surface);align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 16px;display:flex}.invrow+.invrow{border-top:1px solid var(--line)}.setlabel{color:var(--text2);padding:8px 4px 0;font-size:13px;font-weight:600}.setcard{flex-direction:column;gap:14px;padding:16px;display:flex}.setcard__title{font-size:14px;font-weight:500}.setcard__hint{color:var(--text3);font-size:12px;line-height:1.45}.setcard__muted{color:var(--text2);font-size:14px}.setcard__strong{font-size:14px;font-weight:600}.setcard__row{justify-content:space-between;align-items:center;gap:12px;display:flex}.setcard__duo{grid-template-columns:1fr 1fr;gap:8px;display:grid}.setcard .btn{border-radius:var(--r-14);height:48px;font-size:14px}.btn--block{width:100%}.btn--sm{height:40px;padding:0 14px;font-size:14px}.setcard .btn--sm{height:40px}.input--inline{background:var(--surface2);width:auto;height:44px;padding:0 12px;font-size:16px}.weekgrid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.weekgrid .chip{border-radius:var(--r-12);justify-content:center;height:44px;padding:0;font-size:13px;font-weight:600}.warnbox{background:var(--warn-bg);border-radius:var(--r-12);color:var(--warn);align-items:flex-start;gap:10px;padding:12px;font-size:13px;line-height:1.45;display:flex}.warnbox>div{color:var(--text);text-wrap:pretty}.warnbox svg{flex:none}.setfoot{color:var(--text3);text-align:center;padding-top:12px;font-size:12px;line-height:1.5}.seg--theme{border-radius:var(--r-14);background:var(--surface2);grid-template-columns:1fr 1fr 1.4fr;padding:4px}.seg--theme button{border-radius:10px;height:44px;font-size:14px}.seg--theme button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000024}.memrow{min-height:56px;color:var(--text3);align-items:center;gap:12px;display:flex}.memrow+.memrow{border-top:1px solid var(--line)}.memrow__input{min-width:0;height:44px;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:15px;font-weight:500}.memrow__input:focus-visible{box-shadow:inset 0 -2px 0 var(--primary)}.listrow{text-align:left;background:var(--surface);width:100%;min-height:56px;color:var(--text2);align-items:center;gap:12px;padding:0 16px;display:flex}.listrow+.listrow{border-top:1px solid var(--line)}.listrow span{color:var(--text);flex:1;font-size:15px;font-weight:500}.listrow svg:last-child{color:var(--text3)}.switch{background:var(--line);border-radius:16px;flex:none;width:52px;height:32px;transition:background .2s;position:relative}.switch[aria-checked=true]{background:var(--inc)}.switch__knob{background:#fff;border-radius:13px;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch[aria-checked=true] .switch__knob{transform:translate(20px)}.banner{background:var(--warn-bg);border-radius:var(--r-16);align-items:flex-start;gap:12px;padding:14px 8px 14px 14px;display:flex}.banner__ico{background:var(--surface);width:36px;height:36px;color:var(--warn);border-radius:10px;flex:none;place-items:center;display:grid}.banner__body{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.banner__text{text-wrap:pretty;font-size:14px;font-weight:600;line-height:1.4}.banner__sub{color:var(--text2);font-size:13px;line-height:1.4}.banner__cta{background:var(--primary);height:40px;color:var(--on-primary);border-radius:20px;align-self:flex-start;padding:0 18px;font-size:14px;font-weight:600}.banner__close{width:40px;height:40px;color:var(--text2);flex:none;place-items:center;display:grid}.cathead{align-items:center;gap:4px;height:56px;display:flex}.cathead .iconbtn{margin-left:-12px}.cathead__title{flex:1;margin:0;font-size:22px;font-weight:700}.catrow{background:var(--surface);align-items:center;min-height:64px;padding-right:4px;display:flex}.catrow+.catrow{border-top:1px solid var(--line)}.catrow--child{min-height:52px;padding-left:16px}.catrow__main{text-align:left;min-width:0;min-height:inherit;flex:1;align-items:center;gap:12px;padding:10px 8px 10px 16px;display:flex}.catrow--hidden .catrow__ico,.catrow--hidden .catrow__text{opacity:.45}.catrow__ico{border-radius:var(--r-12);flex:none;place-items:center;width:40px;height:40px;display:grid}.catrow--child .catrow__ico{border-radius:10px;width:32px;height:32px}.catrow__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.catrow__name{font-size:15px;font-weight:600}.catrow--child .catrow__name{font-size:14px;font-weight:500}.catrow__sub{color:var(--text3);font-size:12px}.catrow__tag{color:var(--text2);background:var(--surface2);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.addchild{border-top:1px solid var(--line);background:var(--surface);align-items:center;gap:10px;width:100%;min-height:48px;padding:0 16px 0 32px;font-size:14px;font-weight:600;display:flex}.catedit__head{align-items:center;gap:12px;display:flex}.catedit__ico{border-radius:var(--r-16);flex:none;place-items:center;width:52px;height:52px;display:grid}.catedit__name{flex:1;min-width:0;height:52px;font-size:16px}.catedit__note{color:var(--text2);font-size:13px}.catedit__note b{color:var(--text);font-weight:600}.swatches{grid-template-columns:repeat(5,1fr);justify-items:center;gap:12px;display:grid}.swatch{border-radius:20px;width:40px;height:40px}.icongrid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.icongrid__btn{border-radius:var(--r-12);background:var(--surface2);height:48px;color:var(--text2);place-items:center;display:grid}.catedit__hide{justify-content:space-between;align-items:center;gap:12px;display:flex}.catedit__hide-title{font-size:14px;font-weight:500}.catedit__hide-hint{color:var(--text3);font-size:12px;line-height:1.45}.catedit__del{gap:6px;display:grid}.catedit__hint{color:var(--text3);text-align:center;font-size:12px}.catedit__actions{grid-template-columns:1fr 1.3fr;gap:8px;display:grid}.btn--danger-outline{border:1px solid var(--exp);color:var(--exp);width:100%}.drawer .catedit__actions{bottom:calc(-20px - env(safe-area-inset-bottom));background:var(--surface);padding:8px 0 calc(20px + env(safe-area-inset-bottom));margin-bottom:calc(-20px - env(safe-area-inset-bottom));position:sticky}
