:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f2;--surface:#fff;--surface-2:#f1f0ec;--border:#e6e4de;--ink:#1f2328;--ink-2:#5b6068;--ink-3:#8a8f97;--accent:#6d5bd0;--accent-ink:#fff;--accent-soft:#ece8fb;--danger:#c2413b;--danger-soft:#fbe4e2;--income:#2f8a5b;--shadow:0 1px 2px #1f23280d, 0 4px 16px #1f23280a;--radius-card:18px;--radius-field:12px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161618;--surface:#1f1f22;--surface-2:#2a2a2e;--border:#34343a;--ink:#ececec;--ink-2:#b4b4bb;--ink-3:#85858d;--accent:#a99cf0;--accent-ink:#1a1830;--accent-soft:#2e2a45;--danger:#f08a84;--danger-soft:#3a2324;--income:#6fcf97;--shadow:none}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}main{max-width:980px;margin:0 auto;padding:16px 16px 48px}h1,h2,h3{letter-spacing:-.01em;line-height:1.25}h2{margin:28px 0 12px;font-size:22px;font-weight:650}h3{color:var(--ink-2);margin:20px 0 8px;font-size:16px;font-weight:600}p{margin:8px 0}small{color:var(--ink-3)}a{color:var(--accent)}.app-header{justify-content:space-between;align-items:center;gap:12px;padding:4px 0 12px;display:flex}.app-header h1{margin:0;font-size:24px;font-weight:700}.app-user{color:var(--ink-2);align-items:center;gap:10px;display:flex}.app-nav{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);scrollbar-width:none;border-radius:999px;gap:6px;padding:4px;display:flex;overflow-x:auto}.app-nav::-webkit-scrollbar{display:none}.app-nav button{color:var(--ink-2);background:0 0;border-color:#0000;flex:none}.app-nav button[aria-pressed=true]{background:var(--accent-soft);color:var(--ink);font-weight:600}button{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;line-height:1.2;transition:background .15s,border-color .15s,transform .1s}button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button[type=submit],button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button[type=submit]:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.07)}button.danger{color:var(--danger);border-color:var(--danger-soft)}button.danger:hover:not(:disabled){background:var(--danger-soft)}input:not([type=checkbox]):not([type=file]),select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-field);max-width:100%;min-height:38px;padding:8px 12px;font-size:14px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);margin:0}input[type=file]{font:inherit;max-width:100%;font-size:14px}input[type=file]::file-selector-button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;margin-right:10px;padding:8px 16px}label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:13px;display:inline-flex}label:has(>input[type=checkbox]){color:var(--ink);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-size:14px}form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:12px 0;display:flex}form>p{flex-basis:100%}fieldset{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 16px;padding:14px 16px;display:flex}legend{float:left;text-transform:uppercase;letter-spacing:.06em;width:100%;color:var(--ink-3);margin-bottom:2px;font-size:12px;font-weight:600}section ul:not(.bento){gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}section ul:not(.bento)>li{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}section ul:not(.bento)>li>button:first-of-type{margin-left:auto}section ul:not(.bento)>li>article,section ul:not(.bento)>li>form{flex:100%;margin:0}.page-action{margin-bottom:12px}.pager{color:var(--ink-2);justify-content:center;align-items:center;gap:12px;margin:0 0 16px;font-size:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>button:first-of-type{margin-left:auto}[role=alert]{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-field);padding:10px 14px}[role=status]{background:var(--accent-soft);border-radius:var(--radius-field);padding:10px 14px}[role=status] h3{margin-top:4px}@media (prefers-color-scheme:dark){.bento-card{filter:saturate(.85)brightness(.92)}}section ul.totals{flex-wrap:wrap;align-items:baseline;gap:4px 24px;margin:0 0 16px;display:flex}section ul.totals>li{box-shadow:none;color:var(--ink-2);letter-spacing:-.02em;font-variant-numeric:tabular-nums;background:0 0;border:none;padding:0;font-size:22px;font-weight:650}section ul.totals>li:first-child{color:var(--ink);font-size:40px;font-weight:700}.month-picker{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;margin:0 0 12px;padding:4px;display:inline-flex}.month-picker span{text-align:center;min-width:128px;font-weight:600}.month-picker button{border-color:#0000;width:36px;padding:0;font-size:18px}.spend-total{color:var(--ink-2)}.spend-total strong{color:var(--ink);font-size:18px}.tx{grid-template-columns:1fr auto;align-items:center;gap:4px 12px;display:grid}.tx-title{overflow-wrap:anywhere;font-weight:600}.tx-meta{color:var(--ink-3);font-size:13px}.tx-amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;grid-area:1/2/span 2;font-weight:650}.tx-amount.income{color:var(--income)}.tx-amount.transfer{color:var(--ink-3)}.badge{background:var(--surface-2);color:var(--ink-2);border-radius:999px;align-items:center;padding:6px 12px;font-size:13px;display:inline-flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:inline-flex}.suggestions{background:var(--accent-soft);border-radius:var(--radius-card);margin:0 0 16px;padding:12px 16px}.suggestions summary{cursor:pointer;font-weight:600}.suggestions ul{margin:12px 0 0}.suggestion{gap:2px;min-width:0;display:grid}.pair-chooser{border-top:1px solid var(--border);flex-wrap:wrap;flex:100%;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.pair-chooser p{color:var(--ink-2);flex-basis:100%;margin:0}.credit{gap:2px;min-width:0;display:grid}.credit-debt{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:650}section ul:not(.bento)>li>.credit-debt+button{margin-left:0}.credit-debt.due{color:var(--danger)}.transfers-note{color:var(--ink-3);font-size:14px}.tx-amount small{font-weight:400;display:block}.tx-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;margin-top:6px;display:flex}.tx-actions button{margin-top:0}.dropzone{border:2px dashed var(--border);border-radius:var(--radius-card);background:var(--surface);padding:24px;transition:border-color .15s,background .15s}.dropzone[data-dragging=true]{border-color:var(--accent);background:var(--accent-soft)}.login{background:var(--surface);border:1px solid var(--border);max-width:400px;box-shadow:var(--shadow);border-radius:24px;gap:12px;margin:12vh auto 0;padding:28px;display:grid}.login h1{margin:0}.login .google{background:var(--accent);color:var(--accent-ink);border-radius:999px;justify-content:center;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}@media (width<=600px){main{padding:12px 12px 40px}h2{font-size:20px}section ul.totals>li:first-child{font-size:32px}fieldset,form{flex-direction:column;align-items:stretch}fieldset label,form label,fieldset select,fieldset input:not([type=checkbox]),form select,form input:not([type=checkbox]):not([type=file]){width:100%}button{min-height:40px}}.bento{--bento-ink:#1f2328;--bento-ink-secondary:#4f535a;width:calc(100% + 8px);margin:0 -4px 24px;padding:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;list-style:none;position:relative}.bento-tile{box-sizing:border-box;padding:4px;position:absolute}.bento-card{box-sizing:border-box;height:100%;color:var(--bento-ink);background:linear-gradient(145deg, var(--bento-from), var(--bento-to));border-radius:18px;flex-direction:column;justify-content:space-between;gap:4px;padding:12px 14px;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:inset 0 1px #fff9,0 1px 2px #1f23280f}button.bento-card{width:100%;min-height:0;font:inherit;text-align:left;cursor:pointer;border:none;margin:0}button.bento-card:hover:not(:disabled){background:linear-gradient(145deg, var(--bento-from), var(--bento-to))}button.bento-card:focus-visible{outline:2px solid var(--bento-ink);outline-offset:2px}.bento-card:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff9,0 6px 16px #1f23281f}.bento-label{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.bento-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:20px;font-weight:650;display:block}.bento-value-block{min-width:0}.bento-sub{text-overflow:ellipsis;color:var(--bento-ink-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.bento-tile[data-size=l] .bento-value{font-size:28px}.bento-tile[data-size=m] .bento-sub{display:none}.bento-tile[data-size=s] .bento-card{border-radius:12px;padding:8px 10px}.bento-tile[data-size=s] .bento-value{font-size:14px}.bento-tile[data-size=s] .bento-sub{display:none}.bento-tile[data-size=xs] .bento-card{border-radius:8px;padding:0}.bento-tile[data-size=xs] .bento-label,.bento-tile[data-size=xs] .bento-value,.bento-tile[data-size=xs] .bento-sub{display:none}
