@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #000;--panel: #0a0a0c;--panel2: #111114;--inset: #060608;--side: #000;--line: rgba(255, 255, 255, .09);--line2: rgba(255, 255, 255, .18);--text: #f7f7f7;--body: #c9c9d0;--mute: #8e8e97;--dim: #62626b;--accent: #f84fcc;--accent-bg: rgba(248, 79, 204, .12);--on-accent: #0a0a0c;--good: #4ed589;--good-bg: rgba(78, 213, 137, .12);--gold: #e8be62;--gold-bg: rgba(232, 190, 98, .12);--warn: #f2b84b;--bad: #f2736f;--info: #6aa7ff;--r: 2px;--sab: env(safe-area-inset-bottom, 0px);--sat: env(safe-area-inset-top, 0px);--sans: "Geist Variable", Geist, ui-sans-serif, system-ui, -apple-system, Roboto, sans-serif;--mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;font-family:var(--sans);font-feature-settings:"tnum";color-scheme:dark}:root[data-theme=light]{--bg: #fbf9f4;--panel: #fffdf8;--panel2: #f3efe5;--inset: #f3efe5;--side: #fbf9f4;--line: rgba(40, 30, 10, .11);--line2: rgba(40, 30, 10, .22);--text: #1b1a17;--body: #3f3c35;--mute: #6b665a;--dim: #968f7c;--accent: #c2009c;--accent-bg: rgba(194, 0, 156, .08);--on-accent: #fff;--good: #11804a;--good-bg: rgba(17, 128, 74, .1);--gold: #8f6710;--gold-bg: rgba(143, 103, 16, .1);--warn: #a35f00;--bad: #bd3d37;--info: #2f6fcf;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overscroll-behavior:none}h1,h2,h3,p{margin:0}h1,h2,h3,b,strong{color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}.mono{font-family:var(--mono)}.app{display:grid;grid-template-columns:224px 1fr;grid-template-rows:48px 1fr;height:100%}.top{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:var(--sat) 22px 0;height:calc(48px + var(--sat));border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px);position:relative;z-index:30}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.brand svg{width:22px;height:22px}.toplinks{display:flex;gap:22px;align-items:center}.toplinks button{background:none;border:0;padding:0;font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--body)}.toplinks button:hover{color:var(--accent)}.side{border-right:1px solid var(--line);padding:26px 22px 24px;overflow-y:auto;background:var(--side)}.grp{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.grp.dim{color:var(--dim)}.navlist{list-style:none;margin:0 0 24px;padding:0;border-left:1px solid var(--line)}.navbtn{display:block;width:100%;text-align:left;background:none;border:0;border-left:1px solid transparent;margin-left:-1px;padding:6px 12px;font-size:13.5px;color:var(--mute)}.navbtn:hover{color:var(--text)}.navbtn.on{color:var(--text);border-left-color:var(--accent)}.main{overflow-y:auto;padding:34px 44px 80px}.wrap{max-width:980px;margin:0 auto;display:grid;gap:26px}.tabbar,.mobile-only{display:none}.sec{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}.sec .n{color:var(--accent)}.sec .rule{flex:1;height:1px;background:var(--line)}.sec button{background:none;border:0;padding:0;font:inherit;letter-spacing:.08em;text-transform:none;color:var(--mute);font-family:var(--sans);font-size:13.5px}.sec button:hover{color:var(--accent)}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}.head h1{font-size:44px;font-weight:500;letter-spacing:-.035em;line-height:1.08}.head p{color:var(--body);font-size:17px;margin-top:10px;max-width:640px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px}.card h2{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:8px}.card h2 .sub{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:13px;color:var(--mute)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g-main{grid-template-columns:1.1fr 1fr}.stat .label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}.stat .val{font-size:30px;font-weight:500;letter-spacing:-.03em;margin-top:8px;color:var(--text);line-height:1.1}.stat .note{color:var(--mute);font-size:13px;margin-top:6px}.pos{color:var(--good)!important}.neg{color:var(--bad)!important}.warn{color:var(--warn)}.gold{color:var(--gold)!important}.mute{color:var(--mute)}.dim{color:var(--dim)}.btn{border:1px solid var(--line2);background:transparent;border-radius:var(--r);padding:8px 15px;font-weight:500;display:inline-flex;align-items:center;gap:7px;color:var(--text)}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08);color:var(--on-accent)}.btn.ghost{border-color:transparent;color:var(--mute)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.btn.sm{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:disabled:hover{border-color:var(--line2);color:var(--text)}.btn svg{width:15px;height:15px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:14px}input,select,textarea{background:var(--inset);border:1px solid var(--line2);border-radius:var(--r);padding:9px 12px;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}input[type=checkbox]{accent-color:var(--accent)}label.f{display:grid;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}label.f input,label.f select,label.f textarea{font-family:var(--sans);font-size:15px;letter-spacing:0;text-transform:none;color:var(--text)}.fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%238e8e97' stroke-width='2'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.seg{display:inline-flex;border:1px solid var(--line2);border-radius:var(--r)}.seg button{border:0;background:none;padding:6px 15px;color:var(--mute);font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase}.seg button+button{border-left:1px solid var(--line2)}.seg button.on{background:var(--accent-bg);color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r);color:var(--mute);border:1px solid var(--line2);white-space:nowrap}.badge.high{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent);background:color-mix(in srgb,var(--bad) 9%,transparent)}.badge.medium{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 9%,transparent)}.badge.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,transparent);background:var(--good-bg)}.badge.gold{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,transparent);background:var(--gold-bg)}.li{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:14px 0;border-top:1px solid var(--line);align-items:center}.li:first-child{border-top:0;padding-top:0}.li .t{font-weight:500;color:var(--text)}.li .s{color:var(--mute);font-size:13px}.li .r{text-align:right;font-family:var(--mono);font-weight:500;color:var(--text);font-size:14px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.bar{height:4px;background:var(--line);border-radius:0;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}.bar.over>i{background:var(--bad)}.insight{display:grid;grid-template-columns:74px 1fr auto;gap:16px;padding:16px 0;border-top:1px solid var(--line);align-items:start}.insight:first-child{border-top:0;padding-top:0}.insight h3{font-size:15.5px;font-weight:500}.insight p{color:var(--mute);font-size:14px;margin-top:3px}.insight .save{text-align:right;font-family:var(--mono);font-weight:500;color:var(--good);white-space:nowrap;font-size:14px}.insight .save small{display:block;color:var(--dim);font-weight:400;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}.modal-bg{position:fixed;inset:0;background:#000000b8;backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px}:root[data-theme=light] .modal-bg{background:#3c321e59}.modal{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);width:min(580px,100%);max-height:90vh;overflow-y:auto;padding:26px;display:grid;gap:18px}.modal h2{font-size:22px;font-weight:500;letter-spacing:-.02em}.drop{border:1px dashed var(--line2);border-radius:var(--r);padding:38px 20px;text-align:center;color:var(--mute);background:var(--inset)}.drop.hot{border-color:var(--accent);background:var(--accent-bg)}.drop b{color:var(--text)}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-family:var(--mono);color:var(--dim);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.16em;padding:0 10px 10px 0}.table td{padding:10px 10px 10px 0;border-top:1px solid var(--line);vertical-align:middle}.table td.num,.table th.num{text-align:right;font-family:var(--mono)}.table select,.table input{padding:5px 8px;font-size:13px}.center{height:100%;display:flex;overflow-y:auto;padding:calc(28px + var(--sat)) 24px calc(28px + var(--sab))}.center>.auth{margin:auto}.auth{width:min(440px,100%);display:grid;gap:20px}.auth h1{font-size:40px;letter-spacing:-.035em;font-weight:500;line-height:1.1}.auth>svg{width:40px;height:40px}.center>svg{width:40px;height:40px;margin:auto}.recovery{font-family:var(--mono);font-size:16px;letter-spacing:.08em;text-align:center;padding:20px;background:var(--inset);border:1px solid var(--gold);border-radius:var(--r);color:var(--gold);word-break:break-all}.note{font-size:13px;color:var(--mute)}.banner{background:var(--gold-bg);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);color:var(--gold);border-radius:var(--r);padding:9px 14px;font-size:13.5px;display:flex;gap:10px;align-items:center;justify-content:space-between}.err{color:var(--bad);font-size:13.5px}.ring{position:relative;display:grid;place-items:center}.ring .v{position:absolute;text-align:center}.ring .v b{font-size:46px;font-weight:500;letter-spacing:-.04em;display:block;line-height:1}.ring .v span{font-family:var(--mono);color:var(--dim);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.pillar{display:grid;grid-template-columns:92px 1fr auto;gap:12px;align-items:center;padding:8px 0}.pillar b{font-family:var(--mono);font-size:14px;font-weight:500}.pillar .n{font-size:13px;color:var(--mute);grid-column:2 / 4;margin-top:-5px}.chip{border:1px solid var(--line2);background:none;border-radius:var(--r);padding:4px 11px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.chip.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.empty{text-align:center;color:var(--mute);padding:30px 12px}.empty b{color:var(--text);display:block;font-size:18px;font-weight:500;margin-bottom:6px}code,kbd{font-family:var(--mono);background:var(--inset);border:1px solid var(--line);padding:1px 6px;font-size:12.5px}@media (max-width: 860px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.side{display:none}.top{padding:var(--sat) 16px 0}.toplinks{gap:16px}.toplinks .hide-m{display:none}.main{padding:22px 16px 24px}.mobile-only{display:block}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);background:var(--bg);border-top:1px solid var(--line);padding:6px 4px calc(6px + var(--sab))}.tabbar button{background:none;border:0;color:var(--dim);display:grid;justify-items:center;gap:3px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:4px 0}.tabbar button svg{width:21px;height:21px}.tabbar button.on{color:var(--accent)}.g2,.g3,.g4,.g-main{grid-template-columns:1fr}.g4.keep2,.g2.keep2{grid-template-columns:1fr 1fr}.g3:has(>.card>.stat),.g3:has(>.stat){grid-template-columns:1fr 1fr}.g3:has(>.card>.stat)>:last-child:nth-child(odd),.g3:has(>.stat)>:last-child:nth-child(odd){grid-column:1 / -1}.card{padding:16px}.stat .val{font-size:25px}.card .ring{margin:0 auto}.fgrid{grid-template-columns:1fr}.head h1{font-size:32px}.head p{font-size:15.5px}.table .hide-s{display:none}.insight{grid-template-columns:1fr auto}.insight>.badge{grid-column:1 / -1;justify-self:start}.sec .rule{display:none}.sec{justify-content:space-between}}.menu{position:absolute;right:12px;top:calc(48px + var(--sat));width:200px;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);padding:8px 0;z-index:40}.menu .navbtn{padding:9px 16px;margin:0;border:0}.menu .navbtn.on{color:var(--accent)}@media (prefers-reduced-motion: no-preference){.bar>i{transition:width .5s ease}}.dropveil{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(6px);display:grid;place-items:center;pointer-events:none}.dropveil>div{border:1px dashed var(--accent);padding:40px 56px;color:var(--accent);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:13px;background:var(--accent-bg)}.table td.num{white-space:nowrap}.table select{padding-right:26px;background-position:right 8px center;text-overflow:ellipsis;max-width:150px}label.row{flex-wrap:nowrap;align-items:flex-start}label.row>input[type=checkbox]{flex:none;margin-top:4px}.table td .cat-note{margin-top:6px;font-size:12.5px}.only-s{display:none}@media (max-width: 860px){.table .cat-col{display:none}.table select.only-s{display:block;max-width:100%;width:100%;margin-top:6px}}.seg button{white-space:nowrap}@media (max-width: 860px){.card h2{flex-wrap:wrap}}.trend-labels{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:8px}.trend-labels .end{text-align:right}.trend-labels .chg{grid-column:1 / -1;text-align:center}.budget-row{padding:12px 0;border-top:1px solid var(--line);display:grid;gap:8px}.budget-row:first-child{border-top:0;padding-top:0}.budget-top{display:grid;grid-template-columns:1fr auto 120px;gap:12px;align-items:center}.budget-name{font-weight:500;color:var(--text)}.budget-month{font-size:13px;white-space:nowrap}.budget-amt{text-align:right;padding:7px 10px}.budget-row .cat-note{padding:6px 10px;font-size:13px}@media (max-width: 860px){.budget-top{grid-template-columns:1fr 110px}.budget-month{grid-column:1;grid-row:2}.budget-name{grid-column:1}.budget-amt{grid-column:2;grid-row:1 / span 2}}
