@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-opsz-normal-CfYZpDVp.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-opsz-normal-BFQXbQ-f.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-opsz-normal-BmPQvyvo.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-opsz-normal-BM0NlUE_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-opsz-normal-Ci9T9ieq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-opsz-normal-DpK-iCPk.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-opsz-normal-BwkfbSeq.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f4;--surface:#fff;--surface-2:#f4f4f4;--surface-3:#e9e9ec;--border:#e2e2e7;--border-strong:#191c1f;--text:#191c1f;--text-2:#505a63;--muted:#5c5e60;--faint:#8d969e;--accent:#494fdf;--accent-hover:#4f55f1;--accent-press:#3a40c4;--accent-ink:#fff;--accent-soft:#494fdf1a;--accent-text:#3a40c4;--inv-bg:#000;--inv-text:#fff;--good:#006400;--bad:#e23b4a;--bad-soft:#e23b4a1a;--warn:#ec7e00;--warn-soft:#ec7e001f;--warn-ink:#7a4100;--grid:#e2e2e7;--axis:#c9c9cd;--series-1:#494fdf;--series-2:#ec7e00;--series-3:#00a87e;--series-4:#e61e49;--series-5:#007bc2;--series-6:#b09000;--series-other:#c9c9cd;--income:#00a87e;--expense:#494fdf;--nav-bg:#000;--nav-text:#ffffffb8;--nav-active-bg:#fff;--nav-active-text:#000;--r-sm:8px;--r-md:12px;--r-lg:20px;--r-xl:28px;--radius:var(--r-lg);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-glide:cubic-bezier(.65, 0, .35, 1);--ease-overshoot:cubic-bezier(.18, 1.25, .4, 1);font-optical-sizing:auto;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#16181a;--surface-2:#ffffff0f;--surface-3:#ffffff1a;--border:#ffffff1f;--border-strong:#fff;--text:#fff;--text-2:#ffffffb8;--muted:#8d969e;--faint:#5c5e60;--accent:#4f55f1;--accent-hover:#6b70f5;--accent-press:#3a40c4;--accent-soft:#6b70f52e;--accent-text:#a5a8ff;--inv-bg:#fff;--inv-text:#000;--good:#00a87e;--bad:#ff5c6a;--bad-soft:#ff5c6a24;--warn-soft:#ec7e0029;--warn-ink:#ffb35c;--grid:#ffffff14;--axis:#fff3;--series-1:#6b70f5;--series-2:#d97000;--series-3:#00a87e;--series-4:#e61e49;--series-5:#1a8fd6;--series-6:#b09000;--series-other:#3a3d40;--income:#00a87e;--expense:#6b70f5;--nav-bg:#000}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#16181a;--surface-2:#ffffff0f;--surface-3:#ffffff1a;--border:#ffffff1f;--border-strong:#fff;--text:#fff;--text-2:#ffffffb8;--muted:#8d969e;--faint:#5c5e60;--accent:#4f55f1;--accent-hover:#6b70f5;--accent-press:#3a40c4;--accent-soft:#6b70f52e;--accent-text:#a5a8ff;--inv-bg:#fff;--inv-text:#000;--good:#00a87e;--bad:#ff5c6a;--bad-soft:#ff5c6a24;--warn-soft:#ec7e0029;--warn-ink:#ffb35c;--grid:#ffffff14;--axis:#fff3;--series-1:#6b70f5;--series-2:#d97000;--series-3:#00a87e;--series-4:#e61e49;--series-5:#1a8fd6;--series-6:#b09000;--series-other:#3a3d40;--income:#00a87e;--expense:#6b70f5;--nav-bg:#000}*{box-sizing:border-box}html,body{margin:0}html{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);letter-spacing:.01em;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}a{color:var(--accent-text)}::selection{background:var(--accent);color:#fff}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--muted)}.small{font-size:13px}.good{color:var(--good)}.bad{color:var(--bad)}.app{min-height:100vh;display:flex}.sidebar{background:var(--nav-bg);color:#fff;border-right:1px solid #ffffff14;flex-direction:column;flex:none;gap:2px;width:232px;height:100vh;padding:24px 14px;display:flex;position:sticky;top:0}.nav-list{flex-direction:column;gap:2px;display:flex;position:relative}.brand{letter-spacing:-.01em;color:#fff;align-items:center;gap:10px;padding:4px 12px 28px;font-size:18px;font-weight:600;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:999px;place-items:center;width:32px;height:32px;font-size:16px;font-weight:600;display:grid}.nav-pill{background:var(--nav-active-bg);transition:transform .4s var(--ease-glide), width .4s var(--ease-glide), height .4s var(--ease-glide);pointer-events:none;z-index:0;border-radius:999px;position:absolute;top:0;left:0}.nav-btn{z-index:1;cursor:pointer;text-align:left;color:var(--nav-text);background:0 0;border:0;border-radius:999px;align-items:center;gap:12px;padding:11px 16px;font-size:15px;font-weight:600;transition:color .25s;display:flex;position:relative}.nav-btn:hover{color:#fff}.nav-btn.active{color:var(--nav-active-text)}.nav-btn svg{flex:none;width:20px;height:20px}.nav-badge{background:var(--accent);color:#fff;border-radius:999px;margin-left:auto;padding:0 7px;font-size:11px;font-weight:600;line-height:18px}.sidebar-foot{color:#ffffff73;margin-top:auto;padding:0 12px;font-size:12px}.main{flex:1;min-width:0;max-width:1180px;padding:32px 40px 64px}.topbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.topbar .btn{background:var(--surface);border-color:var(--border)}.topbar .btn:hover{background:var(--surface-2)}.topbar h1{letter-spacing:-.02em;flex:1;min-width:0;margin:0;font-size:32px;font-weight:500;line-height:1.19}@media (width<=760px){.sidebar{top:auto;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;border:1px solid #ffffff1a;border-radius:999px;width:auto;height:auto;padding:6px;position:fixed}.nav-list{flex-direction:row;gap:0}.brand,.sidebar-foot{display:none}.nav-btn{letter-spacing:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:7px 2px;font-size:10.5px;font-weight:600}.nav-btn svg{width:22px;height:22px}.nav-badge{margin:0;position:absolute;top:2px;right:calc(50% - 22px)}.main{padding:calc(20px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 112px calc(16px + env(safe-area-inset-left))}.topbar{margin-bottom:16px}.topbar h1{font-size:28px}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.screen>*{animation:rise .55s var(--ease-out) both}.screen>:nth-child(2){animation-delay:50ms}.screen>:nth-child(3){animation-delay:.1s}.screen>:nth-child(4){animation-delay:.15s}.screen>:nth-child(5){animation-delay:.2s}.screen>:nth-child(n+6){animation-delay:.25s}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:0;margin-bottom:16px;padding:24px}.card h2{letter-spacing:-.01em;align-items:center;gap:8px;margin:0 0 16px;font-size:20px;font-weight:500;line-height:1.4;display:flex}.card h2 .spacer{flex:1}.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}@media (width<=760px){.grid-2{grid-template-columns:minmax(0,1fr);gap:0}.grid-3{grid-template-columns:1fr 1fr;gap:8px}.grid-3>:last-child{grid-column:1/-1}.card{border-radius:var(--r-lg);margin-bottom:12px;padding:18px}.card h2{margin-bottom:12px;font-size:18px}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px}.stat-label{color:var(--text-2);font-size:13px}.stat-value{letter-spacing:-.02em;margin-top:4px;font-size:28px;font-weight:500;line-height:1.15}@media (width<=760px){.stat{padding:14px 16px}.stat-value{font-size:22px}}.hero{background:var(--accent);color:#fff;border-radius:var(--r-xl);isolation:isolate;margin-bottom:16px;padding:28px 32px 30px;position:relative;overflow:hidden}.hero:after{content:"";z-index:-1;background:#ffffff14;border-radius:50%;width:420px;height:420px;position:absolute;top:-160px;right:-120px}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.hero-label{color:#ffffffc7;font-size:14px}.hero-number{letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap;margin:6px 0 22px;font-size:64px;font-weight:500;line-height:1}.hero-number .cur{letter-spacing:0;color:#ffffffc7;margin-left:6px;font-size:.55em}.hero-sub{flex-wrap:wrap;gap:12px;display:flex}.hero-pill{color:#fff;cursor:default;background:#ffffff24;border:0;border-radius:999px;align-items:baseline;gap:8px;padding:8px 16px;font-size:14px;display:inline-flex}.hero-pill strong{font-weight:600}button.hero-pill{cursor:pointer;transition:background .2s}button.hero-pill:hover{background:#ffffff38}.hero .month-switch{background:#0000002e;border:0}.hero .month-switch .icon-btn{color:#fff}.hero .month-switch .icon-btn:hover{background:#ffffff29}.hero-body{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.hero-trend{flex:none;align-items:flex-end;gap:8px;height:132px;padding-bottom:22px;display:flex}.hero-bar{cursor:pointer;color:#fff;background:0 0;border:0;flex-direction:column;justify-content:flex-end;align-items:center;width:30px;height:100%;padding:0;display:flex;position:relative}.hero-bar .bar{transform-origin:bottom;width:100%;animation:grow-y .8s var(--ease-out) both;background:#ffffff3d;border-radius:8px 8px 4px 4px;transition:background .2s}.hero-bar:hover .bar{background:#fff6}.hero-bar.current .bar{background:#fff}.hero-bar .m{color:#ffffffb3;font-size:11px;position:absolute;bottom:-22px}.hero-bar.current .m{color:#fff;font-weight:600}@keyframes grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (width<=760px){.hero-body{flex-direction:column;align-items:stretch;gap:0}.hero-trend{order:2;justify-content:space-between;height:72px;margin-bottom:30px;padding-bottom:0}.hero-bar{flex:1;width:auto;max-width:40px}.hero{border-radius:var(--r-lg);padding:20px 20px 22px}.hero-number{margin-bottom:18px;font-size:44px}.hero-top{margin-bottom:14px}.hero-sub{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.hero-sub>button.hero-pill{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:baseline}.hero-pill{border-radius:var(--r-md);color:#ffffffc7;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:10px 12px;font-size:12px}.hero-pill strong{color:#fff;text-overflow:ellipsis;max-width:100%;font-size:14px;overflow:hidden}.topbar .btn .btn-label{display:none}.topbar .btn{width:44px;padding:0}}.btn,.icon-btn,.nav-btn,.hero-pill,.seg button{transition:transform .5s var(--ease-spring), background-color .2s, color .2s, border-color .2s}.btn:active,.icon-btn:active,.nav-btn:active,button.hero-pill:active,.seg button:active{transition:transform 80ms ease-out;transform:scale(.96)}.btn{background:var(--surface-2);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:15px;font-weight:600;display:inline-flex}.card .btn:not(.primary):not(.ghost):not(.accent){background:var(--surface-2)}.btn:hover{background:var(--surface-3)}.btn.primary{background:var(--inv-bg);color:var(--inv-text)}.btn.primary:hover{background:var(--inv-bg);opacity:.86}.btn.accent{background:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-hover)}.btn.on-accent{color:#000;background:#fff}.btn.danger{color:var(--bad)}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.ghost{background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn:disabled{opacity:.45;cursor:default}.btn svg{width:18px;height:18px}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;place-items:center;padding:8px;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn svg{width:18px;height:18px}.input,.select,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-md);min-width:0;min-height:48px;padding:0 14px;transition:border-color .2s,box-shadow .2s}textarea.input{padding:12px 14px;line-height:1.45}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238d969e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:38px}.input:hover,.select:hover{border-color:var(--axis)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.btn:focus-visible,.nav-btn:focus-visible,.icon-btn:focus-visible,.seg button:focus-visible,.hero-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>span{color:var(--text-2);font-size:13px}.seg{background:var(--surface-2);border-radius:999px;gap:2px;padding:4px;display:inline-flex;position:relative}.seg button{z-index:1;cursor:pointer;min-height:36px;color:var(--text-2);background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px;font-weight:600;position:relative}.seg button[aria-checked=true]{color:var(--text)}.seg .seg-pill{background:var(--surface);border:1px solid var(--border);transition:transform .4s var(--ease-glide), width .4s var(--ease-glide);border-radius:999px;position:absolute;top:0;left:0}.month-switch{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.month-switch .label{text-align:center;min-width:136px;font-weight:600;overflow:hidden}.month-switch .label span{animation:month-in .45s var(--ease-out) both;display:inline-block}.month-switch .label span.from-left{animation-name:month-in-left}@keyframes month-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes month-in-left{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}.banner{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);align-items:center;gap:14px;margin-bottom:16px;padding:16px 20px;display:flex}.banner>svg{width:22px;height:22px;color:var(--accent-text);flex:none}.banner.warn{background:var(--warn-soft);color:var(--warn-ink);border-color:#0000}.banner.warn>svg{color:var(--warn)}.banner ul{margin:6px 0 0;padding-left:18px}.banner .grow{flex:1;min-width:0}@media (width<=760px){.banner{flex-wrap:wrap;align-items:flex-start;padding:14px 16px}.banner>.grow{flex-basis:calc(100% - 36px)}.banner>.btn{margin-left:36px}}.list{margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 0;display:flex}.list>li:last-child{border-bottom:0}.list .grow{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dot{border-radius:999px;flex:none;width:10px;height:10px}.cat-row{cursor:pointer;border-radius:var(--r-md);margin:0 -10px;transition:background .2s;padding-left:10px!important;padding-right:10px!important}.cat-row:hover,.cat-row.hot{background:var(--surface-2)}.cat-row{border-bottom-color:#0000!important}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.progress{background:var(--surface-2);border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.progress>div{background:var(--accent);transform-origin:0;height:100%;animation:grow .9s var(--ease-out) .15s both;border-radius:999px}.progress.over>div{background:var(--bad)}.limit-item{padding:12px 0}.limit-item+.limit-item{border-top:1px solid var(--border)}.chip{background:var(--surface-2);color:var(--text-2);white-space:nowrap;letter-spacing:0;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent-text)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.warn{background:var(--warn-soft);color:var(--warn-ink)}.chip svg{width:13px;height:13px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters .input[type=search]{flex:240px}@media (width<=760px){.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.filters .input[type=search],.filters>:last-child:nth-child(2n){grid-column:1/-1}.filters .select{width:100%}}.tx-table{border-collapse:collapse;width:100%}.tx-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);letter-spacing:.02em;padding:8px;font-size:12px;font-weight:600}.tx-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 8px}.tx-table tbody tr{transition:background .15s}.tx-table tbody tr:hover{background:var(--surface-2)}.tx-table tbody tr:last-child td{border-bottom:0}.tx-table tr.excluded td{opacity:.5}.tx-table .amount{text-align:right;font-weight:600}.tx-desc{align-items:center;gap:8px;min-width:0;display:flex}.tx-desc span.text{text-overflow:ellipsis;overflow:hidden}.tx-table .select{background-color:var(--surface-2);border-color:#0000;border-radius:999px;max-width:200px;min-height:36px;padding-left:12px;font-size:14px}.tx-table td.c-act{width:44px;padding-left:0;padding-right:0}@media (width>=761px) and (width<=1000px){.tx-table .select{max-width:150px}.tx-table td,.tx-table th{padding-left:4px;padding-right:4px}}@media (width<=760px){.tx-table thead{display:none}.tx-table,.tx-table tbody,.tx-table tr,.tx-table td{width:100%;display:block}.tx-table tr{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:4px 8px;padding:12px 0;display:grid}.tx-table tbody tr:hover{background:0 0}.tx-table td{padding:0;border:0!important}.tx-table td.c-desc{grid-area:1/1;font-weight:600}.tx-table td.amount{grid-area:1/2}.tx-table td.c-date{color:var(--muted);grid-area:2/1;font-size:13px}.tx-table td.c-act{text-align:right;grid-area:2/2/4;align-self:end;width:auto}.tx-table td.c-cat{grid-area:3/1}.tx-table .select{max-width:100%}}.sub-item{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:start;gap:4px 14px;padding:16px 0;display:grid}.sub-item:last-child{border-bottom:0}.sub-avatar{color:#fff;letter-spacing:0;border-radius:999px;grid-row:1/3;place-items:center;width:44px;height:44px;font-size:17px;font-weight:600;display:grid}.sub-name{flex-wrap:wrap;align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.sub-name input{font-weight:600}.sub-meta{color:var(--text-2);flex-wrap:wrap;grid-column:2;gap:4px 14px;font-size:13px;display:flex}.sub-price{text-align:right;grid-area:1/3/3}.sub-price .big{letter-spacing:-.02em;font-size:20px;font-weight:500}.sub-actions{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:6px;margin-top:6px;display:flex}.editable-name{cursor:text;text-align:left;background:0 0;border:0;border-bottom:1px dashed #0000;padding:0;font-size:16px;font-weight:600}.editable-name:hover{border-bottom-color:var(--muted)}@media (width<=760px){.sub-item{grid-template-columns:auto 1fr auto}.sub-avatar{width:38px;height:38px;font-size:15px}.sub-actions{grid-column:1/-1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.overlay{z-index:50;-webkit-backdrop-filter:blur(2px);background:#00000080;place-items:center;padding:16px;animation:.25s both fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);width:min(480px,100%);max-height:90vh;animation:sheet-in .5s var(--ease-overshoot) both;padding:28px;overflow:auto}.modal h3{letter-spacing:-.01em;margin:0 0 14px;font-size:24px;font-weight:500;line-height:1.33}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}@media (width<=760px){.overlay{place-items:end center;padding:0}.modal{border-radius:var(--r-xl) var(--r-xl) 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));animation:sheet-up .5s var(--ease-out) both;width:100%}.modal:before{content:"";background:var(--surface-3);border-radius:999px;width:40px;height:5px;margin:0 auto 16px;display:block}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%;min-height:48px}}.toast{z-index:60;background:var(--inv-bg);color:var(--inv-text);opacity:0;max-width:calc(100% - 32px);transition:transform .55s var(--ease-overshoot), opacity .3s;border-radius:999px;align-items:center;gap:12px;padding:12px 12px 12px 20px;font-weight:500;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%,140%)scale(.9)}.toast.show{opacity:1;transform:translate(-50%)scale(1)}.toast .icon-btn{color:inherit;opacity:.7}@media (width<=760px){.toast{bottom:calc(92px + env(safe-area-inset-bottom));border-radius:var(--r-lg)}}.empty{text-align:center;padding:48px 20px}.empty h2{justify-content:center;font-size:28px}.drop-zone{border:1.5px dashed var(--axis);border-radius:var(--r-lg);text-align:center;transition:border-color .2s, background .2s, transform .4s var(--ease-spring);padding:36px 20px}.drop-zone.over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;font-size:13px}.chart-tooltip .t{margin-bottom:4px;font-weight:600}.legend{color:var(--text-2);flex-wrap:wrap;gap:16px;margin-bottom:12px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.month-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}@media (width<=1080px){.month-grid{grid-template-columns:minmax(0,1fr);gap:0}}.donut-card{container-type:inline-size}.donut-wrap{grid-template-columns:210px minmax(0,1fr);align-items:center;gap:24px;display:grid}@container (width<=480px){.donut-wrap{grid-template-columns:minmax(0,1fr)}.donut-center{width:100%;max-width:240px;margin:0 auto}}.donut-center{position:relative}.donut-center .label{text-align:center;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}details>summary{cursor:pointer;color:var(--text-2);align-items:center;gap:6px;margin-top:12px;font-size:14px;font-weight:600;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";width:8px;height:8px;transition:transform .35s var(--ease-spring);border-bottom:2px solid;border-right:2px solid;margin:0 4px 0 2px;transform:rotate(-45deg)}details[open]>summary:before{transform:rotate(45deg)}details[open]>summary~*{animation:rise .45s var(--ease-out) both}details.card>summary{margin-top:0}table.plain{border-collapse:collapse;width:100%;margin-top:10px;font-size:14px}table.plain th,table.plain td{border-bottom:1px solid var(--border);text-align:right;padding:8px 6px}table.plain th{color:var(--muted);font-size:12px;font-weight:600}table.plain th:first-child,table.plain td:first-child{text-align:left}@media (width<=760px){.input,.select,textarea.input,.tx-table .select{font-size:16px}}@media (display-mode:standalone) and (width>=761px){.main{padding-top:calc(32px + env(safe-area-inset-top))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
