:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f3f2ee;--surface:#fcfcfb;--surface-2:#efeee9;--ink:#0b0b0b;--ink-2:#52514e;--muted:#6f6d68;--chart-muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--income:#2a78d6;--expense:#eb6834;--income-text:#1c5cab;--negative:#b42318;--success:#006300;--status-warning:#fab219;--status-critical:#d03b3b;--accent:#0b0b0b;--on-accent:#fff;--radius:16px;--shadow:0 8px 24px #00000024}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#262624;--ink:#fff;--ink-2:#c3c2b7;--muted:#9a988f;--chart-muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--income:#3987e5;--expense:#d95926;--income-text:#86b6ef;--negative:#f97066;--success:#0ca30c;--accent:#fff;--on-accent:#0b0b0b;--shadow:0 8px 24px #00000080}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--page);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:22px}h2{font-size:16px;font-weight:650}p{margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-2)}.small{font-size:13px}.center{text-align:center}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.error{color:var(--negative);font-size:14px}.success{color:var(--success);font-size:14px}.stack{flex-direction:column;gap:12px;display:flex}.splash{min-height:100dvh}.app{max-width:640px;min-height:100dvh;margin:0 auto}.topbar{z-index:10;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:color-mix(in srgb, var(--page) 88%, transparent);-webkit-backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.brand img{border-radius:8px}.content{padding:4px 16px calc(150px + env(safe-area-inset-bottom))}.page{flex-direction:column;gap:14px;transition:opacity .2s;display:flex}.page.refreshing{opacity:.55;transition-delay:.2s}.page-title{margin:4px 0;font-size:24px}.bottomnav{z-index:20;background:var(--surface);border-top:1px solid var(--border);max-width:640px;padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}@media (width>=640px){.bottomnav{border:1px solid var(--border);border-bottom:0;border-radius:16px 16px 0 0}}.bottomnav a{min-height:58px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.bottomnav a.active{color:var(--ink);font-weight:650}.fab{z-index:21;right:max(16px,50vw - 304px);bottom:calc(74px + env(safe-area-inset-bottom));background:var(--accent);width:58px;height:58px;color:var(--on-accent);box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:fixed}.btn{min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:15px;font-weight:650;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.ghost{border-color:var(--border);color:var(--ink);background:0 0}.btn.danger-ghost{border-color:var(--border);color:var(--negative);background:0 0}.btn.small{border-radius:10px;min-height:34px;padding:6px 12px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:default}.icon-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn.small{border-radius:8px;width:32px;height:36px}.icon-btn.danger{color:var(--negative)}.icon-btn:disabled{opacity:.3;cursor:default}.segmented{background:var(--surface-2);scrollbar-width:none;border-radius:999px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.segmented button{min-height:34px;color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1 0 auto;padding:6px 14px;font-size:14px;font-weight:600}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000026}.segmented.kind{display:flex}.segmented.kind button{flex:1;min-height:40px;font-size:15px}.pill{border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:4px;padding:4px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.pill.selected{background:var(--accent);color:var(--on-accent);border-color:#0000}.filter-row{scrollbar-width:none;gap:8px;margin:-4px -16px 0;padding:0 16px 2px;display:flex;overflow-x:auto}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field>span,.field>legend{color:var(--ink-2);margin-bottom:6px;padding:0;font-size:13px;font-weight:600}.field>span{margin-bottom:0}input,select{border:1px solid var(--axis);background:var(--surface);width:100%;min-height:44px;color:var(--ink);font:inherit;border-radius:10px;padding:10px 12px;font-size:16px}input:focus,select:focus{outline:2px solid var(--ink);outline-offset:0;border-color:#0000}.row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=359px){.row-2{grid-template-columns:1fr}}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.inline-form{align-items:center;gap:8px;display:flex}.inline-form input{flex:1;min-width:0}.inline-form.grow{flex:100%}.inline-form .icon-input{text-align:center;flex:0 0 56px;padding:10px 4px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px}.card>h2{margin-bottom:10px}.card>h2:has(+.card-hint){margin-bottom:2px}.card-hint{margin-bottom:8px}.card.stack>h2{margin-bottom:0}.card.error{margin:0}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.card.stack>.card-head{margin-bottom:0}.subcard{border:1px solid var(--border);background:var(--page);border-radius:12px;padding:12px}.subcard.notice{border-color:var(--ink)}.period-nav{grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.period-nav .icon-btn{text-decoration:none}.period-label{text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:18px;font-weight:700;display:flex}.picker{cursor:pointer;border-radius:8px;padding:2px 8px;display:inline-block;position:relative}.picker:hover{background:var(--surface-2)}.picker-input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.totals{flex-direction:column;gap:10px;display:flex}.hero{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:2px;padding:16px;display:flex}.hero-value{letter-spacing:-.02em;font-size:clamp(36px,11vw,52px);font-weight:650;line-height:1.1}.label{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.swatch.expense{background:var(--expense)}.swatch.income{background:var(--income)}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile{border:1px solid var(--border);background:var(--surface);min-width:0;color:inherit;border-radius:14px;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;display:flex}.tile:last-child:nth-child(odd){grid-column:1/-1}@media (width>=560px){.tiles{grid-template-columns:repeat(3,1fr)}.tile:last-child:nth-child(odd){grid-column:auto}}.tile .value{font-size:18px;font-weight:650}.link-tile:hover{background:var(--surface-2)}.value.negative,td.negative{color:var(--negative)}.chart{flex-direction:column;gap:8px;display:flex}.chart-plot{touch-action:pan-y;border-radius:4px;position:relative}.chart-plot:focus-visible{outline-offset:4px}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--grid);stroke-width:1px;shape-rendering:crispedges}.chart .axis{stroke:var(--axis);stroke-width:1px;shape-rendering:crispedges}.chart .tick{fill:var(--chart-muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .bar{transition:opacity .15s}.chart .bar.expense{fill:var(--expense)}.chart .bar.income{fill:var(--income)}.chart g.dim .bar{opacity:.4}.chart .hit{fill:#0000;cursor:pointer}.chart-tip{z-index:5;border:1px solid var(--border);background:var(--surface);min-width:128px;box-shadow:var(--shadow);white-space:nowrap;pointer-events:none;border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;display:flex;position:absolute;top:0;transform:translate(-50%,calc(-100% - 6px))}.chart-tip[hidden]{display:none}.tip-title{color:var(--ink-2);font-size:12px;font-weight:600}.tip-row{color:var(--ink-2);align-items:center;gap:6px;display:flex}.tip-row b{color:var(--ink)}.tip-hint{color:var(--muted);font-size:11px}.line-key{border-radius:1px;width:12px;height:2px;display:inline-block}.line-key.expense{background:var(--expense)}.line-key.income{background:var(--income)}.legend{color:var(--ink-2);gap:14px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.barlist{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.bl-row{width:calc(100% + 20px);color:inherit;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;flex-direction:column;gap:5px;margin:0 -10px;padding:8px 10px;display:flex}button.bl-row{cursor:pointer}button.bl-row:hover{background:var(--surface-2)}.bl-row.selected{background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--ink)}.bl-top{justify-content:space-between;gap:8px;font-size:15px;display:flex}.bl-label{gap:8px;min-width:0;display:flex}.bl-value{white-space:nowrap;font-weight:650}.bl-track{background:var(--surface-2);border-radius:0 4px 4px 0;height:8px}.bl-bar{border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.bl-bar.expense{background:var(--expense)}.bl-bar.income{background:var(--income)}.bl-sub{color:var(--muted);font-size:12px}.table-wrap{margin:0 -4px;overflow-x:auto}.month-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.month-table th,.month-table td{text-align:right;white-space:nowrap;padding:8px 4px}.month-table th:first-child{text-align:left}.month-table thead th{color:var(--ink-2);border-bottom:1px solid var(--axis);font-size:12px;font-weight:600}.month-table tbody th,.month-table tbody td{border-bottom:1px solid var(--grid)}.month-table tbody th a{font-weight:600;text-decoration:none}.month-table .empty-row td{color:var(--muted)}.month-table tfoot th,.month-table tfoot td{font-weight:700}.entries{margin:0;padding:0;list-style:none}.entry{border:0;border-bottom:1px solid var(--grid);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:10px 0;display:flex}.entries li:last-child .entry{border-bottom:0}.entry-icon{background:var(--surface-2);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.entry-main{flex-direction:column;flex:1;min-width:0;display:flex}.entry-title{font-weight:600}.entry-sub{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.entry-amount{white-space:nowrap;font-weight:650}.entry-amount.income{color:var(--income-text)}.empty{color:var(--ink-2);font-size:14px}.day-group+.day-group{margin-top:12px}.day-head{justify-content:space-between;align-items:baseline;gap:8px;padding-top:4px;font-size:14px;display:flex}.day-head a{font-weight:650;text-decoration:none}.day-head .muted{font-size:13px;font-weight:500}dialog.sheet{background:var(--surface);width:100%;max-width:640px;max-height:94dvh;color:var(--ink);overscroll-behavior:contain;border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0;overflow:auto}dialog.sheet::backdrop{background:#00000073}@media (width>=700px){dialog.sheet{border-radius:20px;max-width:520px;margin:auto}}@media (prefers-reduced-motion:no-preference){dialog.sheet[open]{animation:.22s ease-out sheet-in}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.sheet-body{padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.sheet-head{justify-content:space-between;align-items:center;margin-right:-10px;display:flex}.sheet-head h2{font-size:18px}.sheet-head .muted{font-weight:500}.sheet-actions{gap:10px;display:flex}.sheet-actions .btn.primary{flex:1}.amount-field{border-bottom:2px solid var(--ink);align-items:baseline;gap:8px;padding:2px 2px 4px;display:flex}.amount-field .currency{color:var(--ink-2);font-size:22px;font-weight:600}.amount-field input{font-variant-numeric:tabular-nums;background:0 0;border:0;min-height:56px;padding:0;font-size:40px;font-weight:650}.amount-field input:focus{outline:none}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:14px;display:inline-flex}.chip.selected{background:var(--accent);color:var(--on-accent);border-color:#0000}.center-page{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.card.narrow{width:100%;max-width:400px}.login-icon{border-radius:14px}.facts{gap:8px;margin:0;display:grid}.facts div{justify-content:space-between;gap:12px;display:flex}.facts dt{color:var(--ink-2)}.facts dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:600}.settings-list{margin:0;padding:0;list-style:none}.settings-list li{border-bottom:1px solid var(--grid);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.settings-list li:last-child{border-bottom:0}.settings-list li.inactive .sl-title{color:var(--ink-2)}.sl-main{flex-direction:column;flex:140px;min-width:0;display:flex}.sl-title{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.sl-title.editable{flex-wrap:nowrap}.sl-name{min-width:0}.settings-list .sl-actions:has(.icon-btn){gap:2px}.sl-sub{color:var(--ink-2);font-size:13px}.sl-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.badge{background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.meters{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.meter{flex-direction:column;gap:6px;display:flex}.meter-top,.meter-sub{justify-content:space-between;gap:8px;display:flex}.meter-name{font-weight:600}.meter-status{color:var(--ink-2);align-items:center;gap:4px;font-size:14px;font-weight:600;display:inline-flex}.meter.close .meter-status,.meter.over .meter-status{color:var(--ink)}.meter.close .meter-status svg{color:var(--status-warning)}.meter.over .meter-status svg{color:var(--status-critical)}.meter-track{background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.meter-fill{background:var(--ink-2);border-radius:0 5px 5px 0;height:100%;display:block}.meter.close .meter-fill{background:var(--status-warning)}.meter.over .meter-fill{background:var(--status-critical);border-radius:0}.meter-sub{color:var(--ink-2);font-size:13px}.meter-sub span:last-child,.meter-status{white-space:nowrap}.meter-sub b{color:var(--ink)}.meter-sub .negative{color:var(--negative);font-weight:600}.salary-lines{flex-direction:column;flex:100%;align-items:flex-start;gap:8px;display:flex}.salary-lines .subcard{align-self:stretch}.salary-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;width:100%;font-size:14px;display:flex}.check{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex:none;margin:1px 0 0}.sources{border-top:1px solid var(--grid);color:var(--ink-2);flex-direction:column;gap:2px;margin:2px 0 0;padding:6px 0 0;font-size:13px;list-style:none;display:flex}.sources li{justify-content:space-between;gap:8px;display:flex}.card-foot{margin-top:14px}.fixed-list{margin:0;padding:0;list-style:none}.fixed-list li{border-bottom:1px solid var(--grid);align-items:center;gap:12px;padding:8px 0;display:flex}.fixed-list li:last-child{border-bottom:0}.entry-icon.small{border-radius:10px;width:34px;height:34px;font-size:17px}.fixed-main,.fixed-side{flex-direction:column;min-width:0;display:flex}.fixed-main{flex:1}.fixed-side{align-items:flex-end}.fixed-name{font-weight:600}.fixed-sub{color:var(--ink-2);font-size:13px}.fixed-amount{white-space:nowrap;font-weight:650}.fixed-status{color:var(--ink-2);white-space:nowrap;align-items:center;gap:3px;font-size:12px;display:inline-flex}.fixed-list li.paid .fixed-status{color:var(--success)}.fixed-total{color:var(--ink-2);margin-top:8px;font-size:14px}.fixed-total b{color:var(--ink)}.meter-sub.fixed-due{margin-top:-2px}.group-head{color:var(--ink-2);margin:4px 0 0;font-size:14px}.subcard.grow{flex:100%}
