:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f1f8;--surface:#fbf8ff;--surface-high:#e9e7ef;--text:#1b1b21;--muted:#5b5e68;--border:#c5c6d0;--primary:#1e5bb8;--on-primary:#fff;--primary-container:#d8e2ff;--on-primary-container:#001a41;--danger:#ba1a1a;--row-line:#1b1b211f;--series-in:#1e5bb8;--series-out:#c8691a;--grid:#e3e1ea;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e13;--surface:#111318;--surface-high:#282a2f;--text:#e3e1e9;--muted:#b0b2bc;--border:#44474f;--primary:#aac7ff;--on-primary:#002f65;--primary-container:#17427f;--on-primary-container:#d8e2ff;--danger:#ffb4ab;--row-line:#e3e1e91f;--series-in:#4d8ce8;--series-out:#d47a28;--grid:#2c2e34}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e13;--surface:#111318;--surface-high:#282a2f;--text:#e3e1e9;--muted:#b0b2bc;--border:#44474f;--primary:#aac7ff;--on-primary:#002f65;--primary-container:#17427f;--on-primary-container:#d8e2ff;--danger:#ffb4ab;--row-line:#e3e1e91f;--series-in:#4d8ce8;--series-out:#d47a28;--grid:#2c2e34}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0}h1,h2,p{margin:0}h1{font-size:1.5rem}h2{font-size:1.05rem}ul{margin:0;padding:0;list-style:none}small{font-size:.8rem}button,select,textarea,input{font:inherit;color:inherit}button{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 12px}button:hover:not(:disabled){background:var(--surface-high)}button:disabled{opacity:.5;cursor:default}button:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}button.danger{color:var(--danger);border-color:var(--danger)}button.link{color:var(--primary);text-align:left;background:0 0;border:0;padding:8px 4px}.muted{color:var(--muted)}.spacer{flex:1}.empty{padding:16px 4px}.right{text-align:right}.center{place-items:center;min-height:100%;padding:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:12px;width:min(420px,100%);padding:24px;display:grid}.signin{text-align:center}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.app{flex-direction:column;height:100%;display:flex}.bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:6px 12px;padding:8px 16px;display:flex}.brand{background:0 0;border:0;padding:4px 0;font-size:1.15rem;font-weight:700}.brand:hover:not(:disabled){color:var(--primary);background:0 0}.status{color:var(--muted);font-size:.87rem}.notice{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex:none;margin:12px 16px 0;padding:12px}.layout{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.side{flex-direction:column;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.pane{background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;container:pane/inline-size}.pane-empty{text-align:center;place-items:center;padding:32px;display:grid}.app:not(.wallet-open) .pane-empty,.app.wallet-open .side{display:none}@media (width>=900px){.layout{grid-template-columns:360px minmax(0,1fr)}.app .side,.app.wallet-open .side{border-right:1px solid var(--border);display:flex}.app:not(.wallet-open) .pane-empty{display:grid}.back{display:none}}@media (width>=1500px){.layout{grid-template-columns:420px minmax(0,1fr)}}.total-card{background:var(--primary-container);color:var(--on-primary-container);border-radius:14px;gap:4px;padding:16px;display:grid}.total-amount{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.total-spent{font-variant-numeric:tabular-nums;margin-top:4px;font-size:.9rem}.cards{gap:8px;display:grid}.card-item{align-items:stretch;gap:6px;display:flex}.card-item.sortable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.card-item.sortable>.wallet-card{width:100%}.card-item.dragging{z-index:5}.card-item.dragging .wallet-card{border-color:var(--primary);box-shadow:0 8px 22px #00000059}body.reordering{-webkit-user-select:none;user-select:none;cursor:grabbing}body.reordering .wallet-card{cursor:grabbing}.wallet-card{text-align:left;border-radius:12px;flex:1;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.wallet-card.selected{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.wallet-card-text{gap:1px;min-width:0;display:grid}.wallet-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.wallet-balance{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:600}.wallet-last{color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.avatar{color:#fff;object-fit:cover;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-weight:600;display:grid}.avatar.large{width:48px;height:48px}.pane-header{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px 12px;padding:12px 16px;display:flex}.pane-title{min-width:0}.pane-title h2{overflow-wrap:anywhere;font-weight:500}.pane-balance{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600}.columns,.tx{grid-template-columns:150px minmax(0,1fr) minmax(130px,auto);column-gap:14px;display:grid}.columns{color:var(--muted);border-bottom:1px solid var(--border);flex:none;padding:5px 16px;font-size:.8rem}.table{flex:1;min-height:0;overflow-y:auto}.group{text-align:left;font-variant-numeric:tabular-nums;border:0;border-radius:0;grid-template-columns:16px minmax(130px,1fr) 150px 180px 250px 70px;align-items:baseline;column-gap:14px;width:100%;padding:8px 16px;display:grid}.group:hover:not(:disabled){filter:brightness(.97)}.group small{opacity:.8}.group.year{background:var(--primary-container);color:var(--on-primary-container)}.group.year:hover:not(:disabled){background:var(--primary-container)}.group.year .group-title{font-size:1.2rem;font-weight:700}.group.month{z-index:2;color:var(--text);box-shadow:0 1px 0 var(--row-line);position:sticky;top:0}.group.month .group-title{font-weight:600}.group-figure{text-align:right;white-space:nowrap}.group-count{text-align:right;opacity:.85;white-space:nowrap;font-size:.8rem}@container pane (width<=860px){.group{flex-wrap:wrap;gap:1px 12px;padding:7px 12px;display:flex}.group-title{flex:calc(100% - 120px);min-width:0}.group-count{order:1}.group-figure{order:2;font-size:.87rem}.group-balance{text-align:left;flex-basis:100%;order:3}}.tx{border:0;border-bottom:1px solid var(--row-line);text-align:left;background:0 0;border-radius:0;align-items:center;width:100%;padding:7px 16px}.tx:hover:not(:disabled){filter:brightness(.97);background:0 0}.tx-date{font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:flex}.tx-date small{color:var(--muted)}.tx-note{flex-wrap:wrap;align-items:center;gap:2px 10px;min-width:0;display:flex}.tx-note-text{overflow-wrap:anywhere;min-width:0}.tx-amount{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;align-items:center;gap:7px;font-weight:600;display:flex}.swatch{border-radius:2px;flex:none;width:10px;height:10px}.chip{border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;max-width:100%;padding:0 6px;font-size:.78rem;overflow:hidden}.tx.checker{outline:2px solid var(--primary);outline-offset:-2px}.checker-dot{background:var(--primary);border-radius:50%;flex:none;width:9px;height:9px}.tx.flash{animation:.44s ease-in-out 2 blink}@keyframes blink{50%{box-shadow:inset 0 0 0 100px color-mix(in srgb, var(--primary) 35%, transparent)}}@media (prefers-reduced-motion:reduce){.tx.flash{animation:none}}@media (width<=640px){.status{flex-basis:100%;order:5}.columns,.tx{grid-template-columns:82px minmax(0,1fr) auto;column-gap:8px;padding-left:12px;padding-right:12px}.tx-date{flex-wrap:wrap;gap:0 4px}.tx-date small{flex-basis:100%}.tx-note{flex-direction:column;align-items:flex-start}}.backdrop{z-index:10;background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;gap:12px;width:min(520px,100%);max-height:100%;padding:20px;display:grid;overflow-y:auto}.modal:focus{outline:none}.details-amount{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}.details-note{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}textarea,input:not([type=checkbox]){background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;padding:8px}[aria-invalid=true]{border-color:var(--danger)}.field{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;display:flex}select{background:var(--bg);border:1px solid var(--border);border-radius:8px;max-width:100%;padding:6px 8px}.settings-account{border-top:1px solid var(--border);overflow-wrap:anywhere;gap:2px;padding-top:10px;display:grid}@media (width<=640px){.backdrop{place-items:end stretch;padding:0}.modal{border-width:1px 0 0;border-radius:16px 16px 0 0;width:100%;max-height:90%}}.modal.wide{width:min(640px,100%)}.form{gap:14px;min-width:0;display:grid}.form-header{align-items:center;gap:10px;display:flex}.form-header h2{font-size:1.1rem}.stack{gap:4px;min-width:0;display:grid}.stack>label,.stack>span{color:var(--muted);font-size:.87rem}.row-fields{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.grow{flex:200px}.time-field{flex:0 110px}.with-suffix{align-items:center;gap:8px;display:flex;position:relative}.with-suffix>input{flex:1;min-width:0}.amount-input{font-variant-numeric:tabular-nums;font-size:1.35rem}.field-error{color:var(--danger);font-size:.87rem}.segmented{grid-template-columns:1fr 1fr;display:grid}.segmented button{border-radius:0}.segmented button:first-child{border-right-width:0;border-radius:8px 0 0 8px}.segmented button:last-child{border-radius:0 8px 8px 0}.segmented button.on,.segmented button.on:hover:not(:disabled){background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary);font-weight:600}.hidden-date{opacity:0;pointer-events:none;height:1px;position:absolute;bottom:0;right:0;border:0!important;width:1px!important;padding:0!important}.hidden-file{display:none}.category-picker{gap:6px;min-width:0;display:grid}.category-picker>label{color:var(--muted);font-size:.87rem}.suggestions,.currency-list{border:1px solid var(--border);border-radius:8px;gap:2px;padding:4px;display:grid}.currency-list{max-height:45dvh;overflow-y:auto}.suggestion{text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:7px 8px;display:flex}.suggestion.active{background:var(--surface-high)}.quick-chips{flex-wrap:wrap;gap:6px;display:flex}.quick-chip{border-radius:8px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.quick-chip.on,.quick-chip.on:hover:not(:disabled){background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.selected-category{justify-content:space-between;align-items:center;gap:8px;min-height:32px;display:flex}.selected-category .none{font-style:italic}.selected-category .link{padding:2px 4px}.image-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.currency-value{flex:1;min-width:0;padding:8px 0}.swatches{flex-wrap:wrap;gap:10px;padding:4px 0;display:flex}.color-dot{border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0}.color-dot:hover:not(:disabled){filter:brightness(1.1)}.color-dot.on{outline:3px solid var(--primary);outline-offset:2px}.new-wallet{width:100%}.snackbar{z-index:20;background:var(--text);color:var(--surface);border-radius:10px;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:10px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000059}.snackbar .link{color:var(--surface);padding:2px 4px;font-weight:600}.snackbar .link:hover:not(:disabled){background:0 0;text-decoration:underline}@media (width<=640px){.modal.wide{border-width:0;border-radius:0;align-content:start;height:100%;max-height:100%}.backdrop:has(>.modal.wide){padding:0}}.main-nav{flex-wrap:wrap;gap:4px;display:flex}.main-nav button{background:0 0;border-color:#0000;padding:5px 10px}.main-nav button[aria-current=page]{background:var(--primary-container);color:var(--on-primary-container)}.danger-text{color:var(--danger)}.strong{font-weight:600}@media (width<=640px){.main-nav{flex-basis:100%;order:4}.main-nav button{padding:4px 8px;font-size:.9rem}}.menu{position:relative}.menu-list{z-index:6;background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:190px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 6px 20px #00000040}.menu-list button{text-align:left;background:0 0;border:0;padding:8px 10px}@media (width<=640px){.menu-list{left:0;right:auto}}.page{background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto;container:pane/inline-size}.search-page{overflow:hidden}.page-header{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px 16px;padding:14px 16px;display:flex}.page-header h1{font-size:1.25rem}.page-scroll{padding:12px 16px 24px}.chips{flex-wrap:wrap;gap:6px;display:flex}.filters{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:10px 16px;display:flex}.filters input,.filters select{width:auto}.filters .filter-query{flex:240px;width:100%;min-width:0}.filters .filter-small{flex:0 112px;width:112px;min-width:76px}.filter-area{flex:none}.filter-chips{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:8px 16px;display:flex}.filter-chip{border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:2px 3px 2px 9px;font-size:.9rem;display:inline-flex}.filter-chip>span:nth-child(2){overflow-wrap:anywhere;min-width:0}.filter-chip button{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:6px;flex:none;padding:0;font-size:.75rem}.summary{background:var(--surface-high);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;flex-wrap:wrap;flex:none;gap:2px 16px;padding:9px 16px;display:flex}.category-choice{gap:2px;max-height:55dvh;display:grid;overflow-y:auto}.category-choice label{cursor:pointer;align-items:center;gap:8px;padding:5px 2px;display:flex}.category-choice .indented{padding-left:24px}.stats-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stats-grid{grid-template-columns:minmax(0,1fr);gap:14px;padding:14px 16px 6px;display:grid}@container pane (width>=1000px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card{background:var(--bg);border:1px solid var(--border);border-radius:14px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.stats-note{padding:6px 16px 20px;font-size:.85rem}.plot{--axis-width:44px;grid-template-columns:auto minmax(0,1fr);gap:8px;margin-top:8px;display:grid}.plot-axis{width:var(--axis-width);height:180px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem;line-height:1;position:relative}.plot-axis>span{position:absolute;right:0;transform:translateY(50%)}.plot-area{min-width:0;position:relative}.grid-line{background:var(--grid);pointer-events:none;height:1px;position:absolute;left:0;right:0}.plot-columns{align-items:stretch;height:200px;display:flex;position:relative}.plot-canvas{pointer-events:none;height:180px;position:absolute;top:0;left:0;right:0}.average-line{border-top:2px solid var(--text);z-index:1;pointer-events:none;height:0;position:absolute;left:0;right:0}.average-label{color:var(--muted);font-size:.72rem;position:absolute;bottom:3px;right:0}.column{cursor:default;background:0 0;border:0;border-radius:0;flex-direction:column;flex:1 1 0;align-items:center;min-width:0;padding:0;display:flex;position:relative}button.column{cursor:pointer}.column:hover:not(:disabled),.column:focus-visible{background:color-mix(in srgb, var(--text) 6%, transparent)}.column.dim .chart-bar{opacity:.35}.bars{flex:none;justify-content:center;align-items:flex-end;gap:2px;width:100%;height:180px;padding:0 12%;display:flex}.chart-bar{border-radius:4px 4px 0 0;flex:1 1 0;min-width:1px;max-width:24px}.series-in{background:var(--series-in)}.series-out{background:var(--series-out)}.col-label{height:20px;color:var(--muted);white-space:nowrap;flex:none;align-items:flex-end;font-size:.72rem;display:flex}.label-narrow{display:none}@container pane (width<=560px){.label-wide{display:none}.label-narrow{display:inline}}.tip{z-index:3;background:var(--text);width:max-content;max-width:220px;color:var(--surface);text-align:left;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:8px;padding:6px 9px;font-size:.8rem;font-weight:400;line-height:1.35;display:none;position:absolute;bottom:calc(100% - 24px);left:50%;transform:translate(-50%)}.column:hover .tip,.column:focus-visible .tip{display:block}.column:first-child .tip,.column:nth-child(2) .tip{left:0;transform:none}.column:last-child .tip,.column:nth-last-child(2) .tip{left:auto;right:0;transform:none}.legend{gap:16px;font-size:.87rem;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.legend-mark{border-radius:3px;width:12px;height:12px}.month-table summary{cursor:pointer;color:var(--primary)}.table-scroll{margin-top:8px;overflow-x:auto}.month-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.month-table th,.month-table td{text-align:right;border-bottom:1px solid var(--row-line);white-space:nowrap;padding:4px 8px}.month-table th:first-child,.month-table td:first-child{text-align:left}.category-totals{display:grid}.category-total{border-bottom:1px solid var(--row-line);align-items:center;gap:10px;padding:7px 0;display:flex}.category-total-main{flex:1;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;min-width:0;display:grid}.plain-link{text-align:left;background:0 0;border:0;padding:0;font-weight:600}.plain-link:hover:not(:disabled){background:0 0;text-decoration:underline}.category-amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.92rem}.share-track{background:var(--grid);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.share-fill{background:var(--muted);border-radius:3px;height:100%;display:block}.category-subs{gap:2px;padding:6px 0 8px 20px;display:grid}.category-sub{align-items:center;gap:8px;display:flex}.grow-text{overflow-wrap:anywhere;flex:1;min-width:0}.category-total .link,.category-sub .link{padding:2px 4px}.top-list{margin:0;padding:0;list-style:none;display:grid}.top-list li{border-bottom:1px solid var(--row-line);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.top-text{overflow-wrap:anywhere;min-width:0;display:grid}.tabs{border-bottom:1px solid var(--border);flex:none;gap:2px;padding:0 16px;display:flex}.tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;padding:10px 14px}.tabs button.on{border-bottom-color:var(--primary);font-weight:600}.category-list{display:grid}.category-row{border-bottom:1px solid var(--row-line);align-items:center;gap:10px;display:flex}.category-row.indented{padding-left:28px}.category-open{text-align:left;background:0 0;border:0;border-radius:6px;flex:1;align-items:center;gap:10px;min-width:0;padding:9px 4px;display:flex}.category-text{overflow-wrap:anywhere;min-width:0;display:grid}.quick-toggle{cursor:pointer;flex:none;align-items:center;gap:5px;padding:0 6px;font-size:.87rem;display:inline-flex}.color-dot.none{border:1px solid var(--border);color:var(--muted);background:0 0}.month-preview{border-radius:6px;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;display:grid;overflow:hidden}.month-preview>span{display:grid}.month-preview>span>span{height:12px;display:block}.fee-note{background:var(--bg);margin:0 0 12px;font-size:.9rem}.fee-list{gap:8px;display:grid}@container pane (width>=900px){.fee-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.fee-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;align-items:center;gap:8px;min-width:0;display:flex}.fee-open{text-align:left;overflow-wrap:anywhere;background:0 0;border:0;border-radius:12px;flex:1;gap:1px;min-width:0;padding:12px;display:grid}.month-stepper{justify-content:space-between;align-items:center;gap:12px;max-width:320px;display:flex}
