@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_2fe1ab3d-module__-T-KAq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_2fe1ab3d-module__-T-KAq__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:26px;--font-sans:var(--font-inter,"Inter"), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1)}:root,:root[data-theme=dark]{--bg:#13181d;--surface:#1a1f24;--surface-2:#23282e;--border:#2d343a;--border-strong:#3c434b;--text:#e4e8eb;--muted:#8a949b;--faint:#5c656b;--accent:#68cecd;--accent-hover:#7fdddd;--accent-contrast:#0a161b;--income:#5dcd9d;--expense:#ef7e80;--danger:var(--expense);--warning:#e8a95c;--caution:#dac46d;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000073;--overlay:#0000008c;--select-chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2397a1b1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root,:root[data-theme=dark]{--bg:lab(7.76338% -1.10374 -4.19984);--surface:lab(11.2401% -1.24634 -4.55935);--surface-2:lab(15.8795% -1.36098 -4.91775);--border:lab(21.099% -1.47648 -5.27673);--border-strong:lab(28.0588% -1.59785 -5.63849);--text:lab(91.8897% -.985682 -1.98157);--muted:lab(60.5821% -2.55561 -5.24503);--faint:lab(42.0196% -2.3734 -4.90611);--accent:lab(76.6495% -31.048 -9.41695);--accent-hover:lab(82.3977% -29.4053 -8.94365);--accent-contrast:lab(6.24543% -3.11935 -5.41724);--income:lab(74.983% -42.0491 13.769);--expense:lab(66.069% 44.7325 19.8882);--warning:lab(74.3036% 18.1365 48.7377);--caution:lab(79.5869% .159711 46.058)}}:root[data-theme=light]{--bg:#f2f5f7;--surface:#fcfdfe;--surface-2:#e8edf0;--border:#d6dce0;--border-strong:#bdc5cb;--text:#1a2027;--muted:#57626b;--faint:#848d95;--accent:#00757a;--accent-hover:#006368;--accent-contrast:#fbfcfd;--income:#008058;--expense:#b63b39;--danger:var(--expense);--warning:#a16500;--caution:#90790f;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #1018281f;--overlay:#10182859;--select-chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6b7d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--bg:lab(96.2961% -.82311 -1.65221);--surface:lab(99.1913% -.330836 -.66179);--surface-2:lab(93.3992% -1.14828 -2.31081);--border:lab(87.2541% -1.47021 -2.96763);--border-strong:lab(79.1381% -1.94642 -3.94926);--text:lab(11.8126% -1.47823 -5.58989);--muted:lab(40.8386% -2.56482 -6.80881);--faint:lab(58.2425% -2.12327 -5.48072);--accent:lab(44.0744% -29.6752 -12.1628);--accent-hover:lab(37.1554% -31.124 -12.7253);--accent-contrast:lab(98.8433% -.330776 -.661802);--income:lab(47.1294% -42.8851 13.9089);--expense:lab(43.8781% 50.4764 30.3052);--warning:lab(48.6671% 20.721 58.8967);--caution:lab(51.6632% 1.89164 53.6776)}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}::selection{background:color-mix(in oklab, var(--accent) 30%, transparent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:224px;height:100vh;padding:var(--space-5) var(--space-3) var(--space-3);z-index:100;flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar nav{flex:1}.sidebar .logo{padding:var(--space-1) var(--space-2) var(--space-5);color:var(--text);align-items:center;gap:10px;display:flex}.sidebar .logo .wordmark{letter-spacing:-.02em;font-size:17px;font-weight:650}.sidebar nav a{padding:8px var(--space-2);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);transition:background .15s var(--ease-out), color .15s var(--ease-out);align-items:center;gap:10px;margin-bottom:1px;font-weight:500;display:flex}.sidebar nav a svg{opacity:.75;flex-shrink:0}.sidebar nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar nav a.active{background:color-mix(in oklab, var(--accent) 13%, transparent);color:var(--text);font-weight:600}.sidebar nav a.active svg{opacity:1;color:var(--accent)}.price-widget{border-top:1px solid var(--border);padding:var(--space-3) var(--space-2) 0;font-size:var(--text-xs);color:var(--muted)}.price-widget .pw-row{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.price-widget .pw-label{color:var(--text);font-weight:600}.price-widget .pw-val{font-variant-numeric:tabular-nums}.price-widget .pw-change{font-variant-numeric:tabular-nums;margin-left:4px;font-size:11px}.price-widget .pw-change.up{color:var(--income)}.price-widget .pw-change.down{color:var(--expense)}.price-widget .pw-ts{text-align:right;color:var(--faint);margin-top:2px;margin-bottom:6px;font-size:10px}.theme-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:var(--space-3);gap:2px;padding:2px;display:flex}.theme-toggle button{color:var(--muted);box-shadow:none;background:0 0;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:6px 0;display:flex}.theme-toggle button:hover{color:var(--text);background:0 0}.theme-toggle button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main{height:100vh;padding:var(--space-8) 40px var(--space-8);flex:1;margin-left:224px;overflow:hidden auto}h1{font-size:var(--text-2xl);letter-spacing:-.02em;margin-bottom:var(--space-5);font-weight:650}h2{font-size:var(--text-lg);letter-spacing:-.01em;margin:var(--space-6) 0 var(--space-3);font-weight:600}p.muted,.help{color:var(--muted);font-size:var(--text-sm);max-width:72ch}.stat-strip{gap:var(--space-5) var(--space-8);padding:var(--space-4) 0 var(--space-6);flex-wrap:wrap;display:flex}.stat-strip .stat .label{color:var(--muted);font-size:var(--text-xs);margin-bottom:2px}.stat-strip .stat .value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.stat-strip .stat .value.income{color:var(--income)}.stat-strip .stat .value.expense{color:var(--expense)}.stat-strip .stat .sub{font-size:var(--text-xs);color:var(--faint);margin-top:2px}.cards-row{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.stat-card .label{color:var(--muted);font-size:var(--text-sm);margin-bottom:var(--space-1)}.stat-card .value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:650}.stat-card .value.income{color:var(--income)}.stat-card .value.expense{color:var(--expense)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-5)}.panel>h2:first-child,.panel h2{margin-top:0}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:11px;font-weight:600}td{padding:10px var(--space-3);border-bottom:1px solid color-mix(in oklab, var(--border) 55%, transparent);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}tbody tr{transition:background .12s var(--ease-out)}tbody tr:hover{background:color-mix(in oklab, var(--surface-2) 55%, transparent)}.amount.income{color:var(--income);font-weight:600}.amount.expense{color:var(--expense);font-weight:600}button,.btn{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius-sm);padding:8px var(--space-4);font-size:var(--text-sm);cursor:pointer;transition:background .15s var(--ease-out), color .15s var(--ease-out), border-color .15s var(--ease-out), opacity .15s var(--ease-out);border:none;font-family:inherit;font-weight:600}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{color:var(--muted);border:1px solid var(--border);background:0 0}button.ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}button.danger{color:var(--danger);padding:5px var(--space-2);font-size:var(--text-sm);background:0 0;border:1px solid #0000}button.danger:hover{background:color-mix(in oklab, var(--danger) 12%, transparent)}button.row-action{color:var(--faint);padding:4px var(--space-2);font-size:var(--text-xs);background:0 0;border:none;font-weight:600}button.row-action:hover{background:var(--surface-2);color:var(--text)}button.row-action.danger-action:hover{background:color-mix(in oklab, var(--danger) 12%, transparent);color:var(--danger)}.msg-copy{opacity:.5;transition:opacity .15s}.msg-row:hover .msg-copy,.msg-copy:focus-visible{opacity:1}@media (hover:none){.msg-copy{opacity:.75}}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px var(--space-3);font-size:var(--text-sm);width:100%;transition:border-color .15s var(--ease-out), box-shadow .15s var(--ease-out);font-family:inherit}input::placeholder,textarea::placeholder{color:var(--faint)}select{appearance:none;background-image:var(--select-chevron);cursor:pointer;background-position:right 9px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:30px}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 22%, transparent);outline:none}.form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;display:grid}.form-grid label{display:block}.form-grid .label-text{color:var(--muted);font-size:var(--text-xs);margin-bottom:var(--space-1);font-weight:500;display:block}.month-nav{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.month-nav span{text-align:center;min-width:110px;font-weight:600;font-size:var(--text-base)}.month-nav button.ghost{padding:5px 10px;line-height:1}.bar-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.bar-row .bar-label{width:180px;font-size:var(--text-sm);color:var(--muted);flex-shrink:0}.bar-row .bar-track{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.bar-row .bar-fill{background:var(--accent);height:100%;transition:width .3s var(--ease-out);border-radius:999px}.bar-row .bar-value{text-align:right;width:110px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-shrink:0}.muted{color:var(--muted);font-size:var(--text-sm)}.error{color:var(--danger);margin-top:var(--space-2);font-size:var(--text-sm)}.success{color:var(--income);margin-top:var(--space-2);font-size:var(--text-sm)}.due-alert{align-items:flex-start;gap:var(--space-3);background:color-mix(in oklab, var(--warning) 12%, var(--surface));border:1px solid color-mix(in oklab, var(--warning) 40%, transparent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);font-size:var(--text-sm);display:flex}.due-alert-body{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.due-alert-body p{margin:0}.due-alert-body a{color:var(--accent);font-weight:600}.due-alert-close{color:var(--muted);font-size:var(--text-lg);padding:0 var(--space-1);cursor:pointer;background:0 0;border:none;width:auto;line-height:1}.due-alert-close:hover{color:var(--text);background:0 0}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.ok{background:color-mix(in oklab, var(--income) 14%, transparent);color:var(--income)}.badge.warn{background:color-mix(in oklab, var(--warning) 16%, transparent);color:var(--warning)}.badge.bad{background:color-mix(in oklab, var(--danger) 14%, transparent);color:var(--danger)}.badge.accent{background:color-mix(in oklab, var(--accent) 14%, transparent);color:var(--accent)}.dot{vertical-align:1px;border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.ok{background:var(--income)}.dot.warn{background:var(--warning)}.dot.bad{background:var(--danger)}.empty{text-align:center;padding:var(--space-8) var(--space-6);color:var(--muted)}.empty .empty-icon{color:var(--faint);margin-bottom:var(--space-3)}.empty .empty-title{color:var(--text);margin-bottom:var(--space-1);font-weight:600}.empty .empty-hint{font-size:var(--text-sm);max-width:46ch;margin:0 auto}.pagination-bar{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.pagination-left{align-items:center;gap:var(--space-3);display:flex}.pagination-left label{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:6px;margin:0;display:flex}.pagination-left select{width:auto;font-size:var(--text-sm);background-position:right 8px center;padding:5px 28px 5px 10px}.pagination-right{align-items:center;gap:var(--space-3);display:flex}.pagination-right .info{font-size:var(--text-sm);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.pagination-right button{padding:6px var(--space-3);font-size:var(--text-sm)}.pagination-right button:disabled{opacity:.4;cursor:not-allowed}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-overlay{background:var(--overlay);z-index:200;padding:var(--space-6);animation:modal-fade .15s var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-lg);animation:modal-rise .18s var(--ease-out);overflow-y:auto}.modal-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.modal-header h2{color:var(--text);margin:0}.modal.wide{max-width:900px}.modal.dialog{max-width:400px}.dialog h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.dialog .dialog-message{color:var(--muted);font-size:var(--text-sm);margin:0 0 var(--space-4);overflow-wrap:anywhere}.dialog .label-text{color:var(--muted);font-size:var(--text-xs);margin-bottom:var(--space-1);font-weight:500;display:block}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);display:flex}button.danger-solid{background:var(--danger);color:var(--accent-contrast)}button.danger-solid:hover{background:color-mix(in oklab, var(--danger) 86%, var(--text))}.selectbox{width:100%;position:relative}.selectbox.compact{width:auto;display:inline-block}.combobox{width:100%;position:relative}.selectbox-btn{text-align:left;background-color:var(--surface-2);background-image:var(--select-chevron);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:8px 30px 8px var(--space-3);font-size:var(--text-sm);transition:border-color .15s var(--ease-out), box-shadow .15s var(--ease-out);background-position:right 9px center;background-repeat:no-repeat;background-size:14px 14px;font-weight:400;display:block}.selectbox-btn:hover{background-color:var(--surface-2)}.selectbox-btn:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 22%, transparent);outline:none}.selectbox.compact .selectbox-btn{background-position:right 7px center;padding:4px 26px 4px 8px;font-size:13px}.selectbox-value{text-overflow:ellipsis;white-space:nowrap;min-height:1.5em;display:block;overflow:hidden}.selectbox-list{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:100%;max-height:280px;box-shadow:var(--shadow-lg);animation:modal-rise .14s var(--ease-out);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.selectbox-list li{font-size:var(--text-sm);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 12px 6px 6px;display:flex}.selectbox-list.align-right{left:auto;right:0}.selectbox-list li.active{background:var(--surface-2)}.selectbox-list li[aria-selected=true]{color:var(--accent);font-weight:600}.selectbox-check{width:16px;color:var(--accent);flex-shrink:0;justify-content:center;display:inline-flex}.datefield{position:relative}.datefield input{padding-right:34px}.datefield .datefield-btn{color:var(--faint);background:0 0;border-radius:6px;padding:4px 6px;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.datefield .datefield-btn:hover{color:var(--text);background:0 0}.datepicker{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:264px;box-shadow:var(--shadow-lg);padding:var(--space-3);animation:modal-rise .16s var(--ease-out);position:absolute;top:calc(100% + 6px);left:0}.datepicker.align-right{left:auto;right:0}.datepicker-head{margin-bottom:var(--space-2);padding-left:var(--space-1);justify-content:space-between;align-items:center;display:flex}.datepicker-title{font-size:var(--text-sm);font-weight:600}.datepicker-nav{gap:2px;display:flex}.datepicker button.nav-btn{color:var(--muted);background:0 0;border-radius:6px;padding:4px;display:inline-flex}.datepicker button.nav-btn:hover{background:var(--surface-2);color:var(--text)}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-dow{text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:4px 0;font-size:10px;font-weight:600}.datepicker button.day{color:var(--text);font-weight:500;font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:0 0;border-radius:6px;height:30px;padding:0}.datepicker button.day:hover{background:var(--surface-2)}.datepicker button.day.outside{color:var(--faint)}.datepicker button.day.today{color:var(--accent);font-weight:700}.datepicker button.day.selected{background:var(--accent);color:var(--accent-contrast);font-weight:650}.datepicker button.day.selected:hover{background:var(--accent-hover)}.datepicker-foot{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border);justify-content:space-between;display:flex}.datepicker-foot button{color:var(--accent);font-size:var(--text-xs);background:0 0;border-radius:6px;padding:4px 8px;font-weight:600}.datepicker-foot button:hover{background:color-mix(in oklab, var(--accent) 12%, transparent);color:var(--accent)}.login-wrap{background:radial-gradient(48rem 32rem at 50% -10%, color-mix(in oklab, var(--accent) 7%, transparent), transparent 70%), var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);width:360px;box-shadow:var(--shadow-md)}.login-box .login-logo{margin-bottom:var(--space-5);justify-content:center;align-items:center;gap:10px;display:flex}.login-box .login-logo .wordmark{letter-spacing:-.02em;font-size:20px;font-weight:650}.login-box input{margin:var(--space-3) 0 0}.login-box button[type=submit]{width:100%;margin-top:var(--space-4)}.login-subtitle{text-align:center;color:var(--muted);font-size:var(--text-sm);margin-top:-12px;margin-bottom:var(--space-2)}.login-alt{text-align:center;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--muted)}.login-alt a{color:var(--accent)}.lp{min-height:100vh}.lp .sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lp-night{--lpn-bg:#061b22;--lpn-surface:#0d272d;--lpn-surface-2:#153136;--lpn-border:#233d41;--lpn-text:#e6efef;--lpn-muted:#96adaf;--accent:#65d2d2;--accent-hover:#7ce1e1;--accent-contrast:#03171d;--income:#65cfa1;--expense:#f28788;background:radial-gradient(70rem 44rem at 78% -12%, color-mix(in oklab, var(--accent) 10%, transparent), transparent 65%), var(--lpn-bg);color:var(--lpn-text)}@supports (color:lab(0% 0 0)){.lp-night{--lpn-bg:lab(8.5158% -6.79873 -7.11479);--lpn-surface:lab(13.803% -8.69316 -6.86178);--lpn-surface-2:lab(18.4904% -9.83107 -6.54782);--lpn-border:lab(23.698% -9.33756 -6.20446);--lpn-text:lab(93.7197% -3.16551 -1.32865);--lpn-muted:lab(68.9061% -7.58717 -4.05619);--accent:lab(77.8621% -32.6855 -9.90378);--accent-hover:lab(83.6105% -31.0422 -9.43211);--accent-contrast:lab(6.32516% -5.50977 -6.86309);--income:lab(76.078% -40.2825 13.2038);--expense:lab(68.4972% 41.51 18.3262)}}.lp-btn{border-radius:var(--radius-sm);transition:background .15s var(--ease-out), color .15s var(--ease-out), border-color .15s var(--ease-out);justify-content:center;align-items:center;padding:11px 20px;font-size:15px;font-weight:600;display:inline-flex}.lp-btn.primary{background:var(--accent);color:var(--accent-contrast)}.lp-btn.primary:hover{background:var(--accent-hover);color:var(--accent-contrast)}.lp-night .lp-btn.ghost{color:var(--lpn-text);border:1px solid var(--lpn-border)}.lp-night .lp-btn.ghost:hover{background:var(--lpn-surface);color:var(--lpn-text);border-color:#3b585d;border-color:lab(35.3308% -10.2014 -6.21719)}.lp-topbar{justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:22px clamp(20px,4.5vw,48px) 0;display:flex}.lp-brand{color:inherit;align-items:center;gap:10px;display:inline-flex}.lp-brand .wordmark{letter-spacing:-.02em;font-size:18px;font-weight:650}.lp-topnav{align-items:center;gap:clamp(14px,2.5vw,28px);display:flex}.lp-topnav a{color:var(--lpn-muted);font-size:var(--text-sm);font-weight:500}.lp-topnav a:hover{color:var(--lpn-text)}.lp-topnav .lp-btn{padding:8px 16px}.lp-hero{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:clamp(36px,6vw,80px);max-width:1120px;margin:0 auto;padding:clamp(56px,9vw,112px) clamp(20px,4.5vw,48px) clamp(64px,9vw,120px);display:grid}@keyframes lp-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.lp-hero-copy>*{animation:lp-rise .7s var(--ease-out) backwards}.lp-hero-copy>:nth-child(2){animation-delay:90ms}.lp-hero-copy>:nth-child(3){animation-delay:.18s}.lp-hero-copy>:nth-child(4){animation-delay:.27s}.lp-flag{font-size:var(--text-sm);color:var(--lpn-muted);border:1px solid var(--lpn-border);margin-bottom:var(--space-6);border-radius:999px;align-items:center;gap:8px;padding:5px 14px;font-weight:500;display:inline-flex}.lp-flag-dot{background:var(--accent);border-radius:999px;width:7px;height:7px}.lp-hero h1{letter-spacing:-.033em;margin-bottom:var(--space-5);font-size:clamp(2.5rem,5.6vw,4.15rem);font-weight:730;line-height:1.08}.lp-hero h1 .lp-quote{color:var(--accent);display:block}.lp-lead{color:var(--lpn-muted);max-width:54ch;margin-bottom:var(--space-8);font-size:clamp(1rem,1.6vw,1.17rem);line-height:1.65}.lp-cta-row{gap:var(--space-3);flex-wrap:wrap;display:flex}@keyframes lp-pop{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.lp-chat{background:var(--lpn-surface);border:1px solid var(--lpn-border);width:100%;max-width:420px;animation:lp-rise .7s var(--ease-out) .2s backwards;border-radius:20px;justify-self:end;overflow:hidden;box-shadow:0 24px 64px #00000073}.lp-chat-head{border-bottom:1px solid var(--lpn-border);align-items:center;gap:10px;padding:12px 16px;display:flex}.lp-chat-avatar{display:inline-flex}.lp-chat-id{flex-direction:column;line-height:1.25;display:flex}.lp-chat-id strong{font-size:var(--text-sm);font-weight:650}.lp-chat-id span{font-size:var(--text-xs);color:var(--accent)}.lp-chat-body{flex-direction:column;gap:10px;padding:18px 16px 20px;display:flex}.lp-msg{max-width:84%;font-size:var(--text-sm);animation:lp-pop .45s var(--ease-out) backwards;border-radius:14px;padding:9px 52px 9px 13px;line-height:1.45;position:relative}.lp-msg time{color:var(--lpn-muted);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;bottom:7px;right:10px}.lp-msg.out{background:color-mix(in oklab, var(--accent) 26%, var(--lpn-surface));border-bottom-right-radius:4px;align-self:flex-end}.lp-msg.in{background:var(--lpn-surface-2);border-bottom-left-radius:4px;align-self:flex-start}.lp-msg.in.lp-rich{gap:9px;display:flex}.lp-msg-check{background:color-mix(in oklab, var(--accent) 18%, transparent);width:22px;height:22px;color:var(--accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.lp-msg-tx{flex-direction:column;display:flex}.lp-msg-tx strong{font-variant-numeric:tabular-nums;font-weight:650}.lp-msg-meta{font-size:var(--text-xs);color:var(--lpn-muted)}.lp-msg.lp-voice{color:var(--lpn-text);font-variant-numeric:tabular-nums;align-items:center;gap:9px;display:flex}.lp-wave{align-items:center;gap:2px;display:inline-flex}.lp-wave i{background:color-mix(in oklab, var(--lpn-text) 75%, transparent);border-radius:999px;width:3px;display:inline-block}.lp-steps{max-width:1120px;margin:0 auto;padding:clamp(64px,9vw,120px) clamp(20px,4.5vw,48px) 0}.lp-steps h2{letter-spacing:-.025em;margin:0 0 clamp(32px,4.5vw,56px);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700}.lp-steps-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(28px,4vw,56px);display:grid}.lp-step-n{letter-spacing:-.03em;color:var(--faint);font-variant-numeric:tabular-nums;margin-bottom:var(--space-2);font-size:44px;font-weight:720;display:block}.lp-step h3{font-size:var(--text-lg);margin-bottom:var(--space-2);font-weight:650}.lp-step p{color:var(--muted);font-size:var(--text-base);max-width:38ch;line-height:1.6}.lp-features{flex-direction:column;gap:clamp(64px,9vw,128px);max-width:1120px;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(20px,4.5vw,48px);display:flex}.lp-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,88px);display:grid}.lp-feature.rev .lp-feature-media{order:-1}.lp-feature-copy h2{letter-spacing:-.022em;margin:0 0 var(--space-3);font-size:clamp(1.45rem,2.6vw,1.95rem);font-weight:700}.lp-feature-copy p{color:var(--muted);max-width:46ch;font-size:15px;line-height:1.65}.lp-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5) var(--space-5) var(--space-4);justify-self:center;width:100%;max-width:420px}.lp-panel-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.lp-panel-head strong{font-size:var(--text-base);font-weight:650}.lp-panel-head span:not(.badge){font-size:var(--text-xs);color:var(--faint)}.lp-panel-note{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-3)}.lp-line{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-bottom:1px solid color-mix(in oklab, var(--border) 55%, transparent);font-size:var(--text-sm);padding:8px 0;display:flex}.lp-line:last-child{border-bottom:none}.lp-line-total{border-top:1px solid var(--border);font-weight:600}.lp-num{font-variant-numeric:tabular-nums;font-weight:600}.lp-num.income{color:var(--income)}.lp-num.expense{color:var(--expense)}.lp-num.warn{color:var(--warning)}.lp-budget{padding:7px 0}.lp-budget-top{font-size:var(--text-sm);justify-content:space-between;margin-bottom:6px;display:flex}.lp-track{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.lp-track i{background:var(--accent);border-radius:999px;height:100%;display:block}.lp-track i.warn{background:var(--warning)}.lp-budget-sub{font-size:var(--text-xs);color:var(--faint)}.lp-score{margin-bottom:var(--space-3);align-items:baseline;gap:6px;display:flex}.lp-score-n{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:46px;font-weight:720;line-height:1}.lp-score-max{color:var(--faint);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.lp-proj-top{justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.lp-proj-cell{flex-direction:column;gap:2px;display:flex}.lp-proj-cell.right{text-align:right}.lp-proj-k{font-size:var(--text-xs);color:var(--faint)}.lp-proj-v{font-size:var(--text-lg);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:700}.lp-proj-v.income{color:var(--income)}.lp-proj-v em{font-style:normal;font-size:var(--text-xs);color:var(--faint);font-weight:500}.lp-proj-chart{width:100%;height:92px;margin-bottom:var(--space-3);display:block;overflow:visible}.lp-proj-area{fill:color-mix(in oklab, var(--accent) 14%, transparent);stroke:none}.lp-proj-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.lp-proj-goal{stroke:var(--income);stroke-width:1.5px;stroke-dasharray:4 4;opacity:.85;vector-effect:non-scaling-stroke}.lp-proj-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2.5px;vector-effect:non-scaling-stroke}.lp-more{align-items:baseline;gap:var(--space-6);max-width:1120px;margin:0 auto;padding:0 clamp(20px,4.5vw,48px) clamp(72px,10vw,128px);display:flex}.lp-more-title{font-size:var(--text-sm);color:var(--faint);white-space:nowrap;font-weight:650}.lp-more ul{gap:10px var(--space-3);flex-wrap:wrap;list-style:none;display:flex}.lp-more li{font-size:var(--text-sm);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 14px}.lp-end{text-align:center;padding:clamp(72px,10vw,128px) clamp(20px,4.5vw,48px)}.lp-end h2{letter-spacing:-.03em;margin:0 0 var(--space-4);font-size:clamp(1.9rem,4vw,2.9rem);font-weight:720}.lp-end p{color:var(--lpn-muted);max-width:52ch;margin:0 auto var(--space-8);font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.65}.lp-end .lp-cta-row{justify-content:center}.lp-wl-hint{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--lpn-muted)}.lp-wl-hint a{color:var(--accent);font-weight:600}.lp-wl-hint a:hover{text-decoration:underline}.lp-wl-block{border-top:1px solid var(--lpn-border);max-width:620px;margin:clamp(48px,7vw,80px) auto 0;padding-top:clamp(36px,5vw,56px)}.lp-wl-block h3{letter-spacing:-.02em;margin:0 0 var(--space-2);font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:700}.lp-wl-block>p{color:var(--lpn-muted);font-size:var(--text-sm);margin:0 auto var(--space-6)}.lp-wl{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lp-wl input{border-radius:var(--radius-sm);min-width:0;color:var(--lpn-text);background:var(--lpn-surface);border:1px solid var(--lpn-border);transition:border-color .15s var(--ease-out);flex:180px;padding:11px 16px;font-size:15px}.lp-wl input::placeholder{color:var(--lpn-muted)}.lp-wl input:focus{border-color:var(--accent);outline:none}.lp-wl .lp-btn{flex-shrink:0}.lp-wl-error{color:var(--danger);font-size:var(--text-sm);flex-basis:100%;margin:0}.lp-wl-done{color:var(--lpn-text);font-size:var(--text-base);max-width:46ch;margin:0 auto;line-height:1.6}.lp-wl-done strong{color:var(--accent)}.lp-wl-confirm-text{color:var(--muted);font-size:var(--text-sm);margin:0 0 var(--space-4);line-height:1.6}.lp-footer{align-items:center;gap:var(--space-5);max-width:1120px;margin:0 auto;padding:clamp(32px,5vw,48px) clamp(20px,4.5vw,48px);display:flex}.lp-footer .lp-brand .wordmark{font-size:15px}.lp-footer p{color:var(--faint);font-size:var(--text-sm);flex:1}.lp-footer p a{color:var(--muted);font-weight:600}.lp-footer p a:hover{color:var(--text)}.lp-footer nav{gap:var(--space-5);display:flex}.lp-footer nav a{font-size:var(--text-sm);color:var(--muted)}.lp-footer nav a:hover{color:var(--text)}@media (max-width:900px){.lp-hero{grid-template-columns:1fr;padding-top:clamp(40px,8vw,72px)}.lp-chat{justify-self:start}.lp-feature{gap:var(--space-6);grid-template-columns:1fr}.lp-feature.rev .lp-feature-media{order:0}.lp-panel{justify-self:start}.lp-more{gap:var(--space-3);flex-direction:column}.lp-topnav a:not(.lp-btn){display:none}}@media (max-width:480px){.lp-footer{flex-wrap:wrap}.lp-footer p{flex-basis:100%;order:3}}.md{line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 var(--space-3)}.md h1,.md h2,.md h3,.md h4{margin:var(--space-4) 0 var(--space-2);font-weight:600;line-height:1.3}.md h1{font-size:1.25em}.md h2{font-size:1.15em}.md h3{font-size:1.05em}.md h4{font-size:1em}.md ul,.md ol{margin:0 0 var(--space-3);padding-left:1.35em}.md li{margin:2px 0}.md li>p{margin:0}.md a{text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:underline}.md code{background:color-mix(in oklab, var(--text) 8%, transparent);border-radius:5px;padding:1px 5px;font-size:.9em}.md pre{background:color-mix(in oklab, var(--text) 8%, transparent);padding:var(--space-3);margin:0 0 var(--space-3);border-radius:8px;overflow-x:auto}.md pre code{background:0 0;padding:0}.md blockquote{margin:0 0 var(--space-3);padding-left:var(--space-3);border-left:3px solid var(--border);color:var(--muted)}.md table{border-collapse:collapse;margin:0 0 var(--space-3);display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md hr{border:none;border-top:1px solid var(--border);margin:var(--space-3) 0}
