:root{--canvas:#f6f5f2;--panel:#fff;--shelf:#f3f2ee;--line:#ebe9e4;--line-strong:#dcd9d2;--ink:#1f1e1c;--ink-2:#5b5953;--ink-3:#8f8c85;--nav-active:#eae8e3;--nav-hover:#efede9;--accent:#ee6a3b;--accent-strong:#dc5a2c;--on-accent:#fff;--positive:#2e8b57;--negative:#d2453a;--positive-soft:#e5f3ea;--negative-soft:#fbe8e5;--focus:#2d8bcb;--chart:#2a93c9;--chart-fill:#2a93c9;--grid:#efede8;--tooltip:#1f1e1c;--on-tooltip:#fff;--g-cash:#3a9d5d;--g-investments:#5cc7ea;--g-real-estate:#8a4fd0;--g-vehicles:#ef6b2f;--g-other-assets:#9a978f;--g-credit-cards:#e0473a;--g-loans:#f2b705;--g-other-liabilities:#b5b1a8;--radius:12px;--shadow:0 1px 2px #1f1e1c0a, 0 1px 1px #1f1e1c05;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--canvas:#121211;--panel:#1b1a18;--shelf:#211f1d;--line:#2a2825;--line-strong:#37342f;--ink:#eeede9;--ink-2:#b1aea7;--ink-3:#7e7b74;--nav-active:#262421;--nav-hover:#201e1c;--accent:#f27b4e;--accent-strong:#f58c63;--positive:#4fb57d;--negative:#ee6b5c;--positive-soft:#183324;--negative-soft:#3a1c18;--chart:#55aede;--chart-fill:#55aede;--grid:#252320;--tooltip:#eeede9;--on-tooltip:#1b1a18;--shadow:none}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--canvas);color:var(--ink);font:15px/1.45 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.money,.num{font-variant-numeric:tabular-nums}.positive{color:var(--positive)}.negative{color:var(--negative)}.dim{color:var(--ink-2)}.faint{color:var(--ink-3)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.button{border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;height:38px;padding:0 14px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.button:hover{background:var(--shelf)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button:disabled{opacity:.6;cursor:progress}.button svg{width:16px;height:16px}.select{align-items:center;display:inline-flex;position:relative}.select select{appearance:none;border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;border-radius:8px;min-width:150px;height:44px;padding:0 40px 0 14px;font-size:15px}.select svg{pointer-events:none;width:16px;height:16px;color:var(--ink-2);position:absolute;right:12px}.segmented{background:var(--shelf);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 14px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:13px;font-weight:600}.field input,.field select{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;height:42px;padding:0 12px;font-size:15px}.field select{appearance:auto}main.narrow{max-width:440px;margin:0 auto;padding:12vh 22px 80px}.masthead{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.wordmark{letter-spacing:-.01em;align-items:center;gap:10px;font-size:17px;font-weight:700;display:inline-flex}.notice{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:24px;display:flex}.notice h1,.notice h2{margin:0;font-size:18px;font-weight:650}.notice p{color:var(--ink-2);margin:0}.notice code{font-family:var(--mono);background:var(--shelf);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:13px}.notice ol{color:var(--ink-2);flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.notice .hint{font-size:13px}.passkey{flex-direction:column;gap:10px;display:flex}.passkey .error{color:var(--negative)}.sign-in-password{flex-direction:column;gap:12px;display:flex}.sign-in-password .error{color:var(--negative);margin:0}.notice .divider{align-items:center;gap:10px;font-size:13px;display:flex}.notice .divider:before,.notice .divider:after{content:"";border-top:1px solid var(--line);flex:1}button.primary:not(.button){background:var(--accent);height:44px;color:var(--on-accent);cursor:pointer;border:0;border-radius:8px;font-weight:600}button.primary:not(.button):disabled{opacity:.6;cursor:progress}.mark{width:30px;height:30px;display:block}.mark .mark-bg{fill:var(--accent)}.mark .mark-glyph{stroke:var(--on-accent);stroke-width:3px;stroke-linecap:round;fill:none}.shell{grid-template-columns:252px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s;display:grid}.shell:has(.sidebar[data-collapsed=true]){grid-template-columns:72px minmax(0,1fr)}.sidebar{flex-direction:column;gap:14px;height:100vh;padding:14px 12px 16px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar .top{justify-content:space-between;align-items:center;height:44px;padding:0 6px;display:flex}.sidebar .icon-button{width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.sidebar .icon-button:hover{background:var(--nav-hover);color:var(--ink)}.sidebar .icon-button svg{width:20px;height:20px}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a,.sidebar .foot a,.sidebar .foot button{height:42px;color:var(--ink);white-space:nowrap;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;padding:0 12px;font-size:15px;display:flex}.sidebar nav a svg,.sidebar .foot svg{width:20px;height:20px;color:var(--ink-2);flex:none}.sidebar nav a:hover,.sidebar .foot a:hover,.sidebar .foot button:hover{background:var(--nav-hover)}.sidebar nav a[aria-current=page],.sidebar .foot a[aria-current=page]{background:var(--nav-active);font-weight:600}.sidebar nav a[aria-current=page] svg,.sidebar .foot a[aria-current=page] svg{color:var(--ink)}.sidebar .foot{flex-direction:column;gap:2px;margin-top:auto;display:flex}.sidebar .foot .household{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;padding:0 12px 6px;font-size:13px;overflow:hidden}.sidebar[data-collapsed=true] .label,.sidebar[data-collapsed=true] .household,.sidebar[data-collapsed=true] .top .mark{display:none}.sidebar[data-collapsed=true] .top{justify-content:center}.main{min-width:0}.page-header{justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 28px;display:flex}.page-header h1{letter-spacing:-.01em;margin:0;font-size:21px;font-weight:650}.page-header .actions{gap:10px;display:flex}.content{max-width:1500px;padding:0 28px 56px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.area-chart{-webkit-user-select:none;user-select:none;touch-action:pan-y;height:330px;margin:26px 0 4px;position:relative}.area-chart svg{width:calc(100% - 64px);height:calc(100% - 28px);position:absolute;top:0;left:64px;overflow:visible}.area-chart .grid line{stroke:var(--grid);stroke-width:1px}.area-chart .y-label{fill:var(--ink-2);text-anchor:end;dominant-baseline:middle;font-size:12px}.area-chart .x-label{fill:var(--ink-2);text-anchor:middle;font-size:12px}.area-chart .line{fill:none;stroke:var(--chart);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.area-chart .area{fill:url(#area-fill)}.area-chart .fill-top{stop-color:var(--chart-fill);stop-opacity:.28}.area-chart .fill-bottom{stop-color:var(--chart-fill);stop-opacity:.02}.area-chart .cursor{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:3 3}.area-chart .dot{fill:var(--panel);stroke:var(--chart);stroke-width:3px}.area-chart .tooltip{background:var(--tooltip);color:var(--on-tooltip);white-space:nowrap;pointer-events:none;border-radius:8px;padding:7px 10px;font-size:13px;line-height:1.35;position:absolute;transform:translate(-50%,calc(-100% - 14px));box-shadow:0 6px 18px #00000024}.area-chart .tooltip .when{opacity:.72;font-size:12px}.area-chart.pending{opacity:.55;transition:opacity .15s}.spark{width:120px;height:34px;display:block;overflow:visible}.spark .spark-line{fill:none;stroke:var(--ink-3);stroke-width:1.6px;stroke-linejoin:round}.spark .spark-base{stroke:var(--line-strong);stroke-width:1.2px;stroke-dasharray:3 3}.avatar{flex:none;width:40px;height:40px;display:block}.avatar text{fill:#fff;font-size:15px;font-weight:650}.change{align-items:center;gap:6px;font-size:15px;display:inline-flex}.change .delta{align-items:center;gap:3px;font-weight:600;display:inline-flex}.change .delta svg{width:15px;height:15px}.change .delta.good{color:var(--positive)}.change .delta.bad{color:var(--negative)}.change .label{color:var(--ink-2)}.net-worth{margin-bottom:20px;padding:22px 26px 16px}.net-worth .head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.net-worth .figure{letter-spacing:-.02em;margin-top:6px;font-size:32px;font-weight:700;line-height:1.15}.net-worth .figure-row{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.net-worth .controls{gap:10px;display:flex}.accounts-layout{grid-template-columns:minmax(0,1fr) 450px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.accounts-layout{grid-template-columns:1fr}}.groups{flex-direction:column;gap:20px;display:flex}.group{transition:box-shadow .16s,border-color .16s;position:relative;overflow:visible}.group.dragging{border-color:var(--chart);box-shadow:0 0 0 1px var(--chart), 0 12px 28px #0000001a;z-index:2}.group-head{align-items:center;gap:10px;height:72px;padding:0 26px 0 18px;display:flex}.group-head .toggle{cursor:pointer;width:30px;height:30px;color:var(--ink-2);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.group-head .toggle:hover{background:var(--shelf)}.group-head .toggle svg{width:18px;height:18px;transition:transform .2s}.group.collapsed .group-head .toggle svg{transform:rotate(-90deg)}.group-head h2{margin:0;font-size:19px;font-weight:650}.group-head .total{margin-left:auto;font-size:19px;font-weight:650}.group-head .grip{width:16px;height:20px;color:var(--ink-3);cursor:grab;opacity:0;background:0 0;border:0;place-items:center;transition:opacity .12s;display:grid;position:absolute;top:26px;left:-2px}.group-head .grip svg{width:14px;height:14px}.group:hover .grip,.group .grip:focus-visible,.group.dragging .grip{opacity:1}.group.dragging .grip{cursor:grabbing}.group-body{grid-template-rows:1fr;transition:grid-template-rows .24s;display:grid}.group.collapsed .group-body{grid-template-rows:0fr}.group-body>ul{margin:0;padding:0;list-style:none;overflow:hidden}.account-row{border-top:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) 120px 180px;align-items:center;gap:16px;padding:14px 26px;display:grid}.account-row .name{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500;overflow:hidden}.account-row .subtype{color:var(--ink-2);font-size:14px}.account-row .balance{text-align:right;font-size:16px;font-weight:500}.account-row .updated{text-align:right;color:var(--ink-2);font-size:14px}@media (max-width:720px){.account-row{grid-template-columns:40px minmax(0,1fr) 130px}.account-row .spark{display:none}}.summary{padding:0;position:sticky;top:16px}.summary-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:72px;padding:0 22px 0 26px;display:flex}.summary-head h2{margin:0;font-size:19px;font-weight:650}.summary-section{padding:22px 26px 24px}.summary-section+.summary-section{border-top:1px solid var(--line)}.summary-section .title{justify-content:space-between;font-size:16px;font-weight:650;display:flex}.stack{background:var(--shelf);border-radius:999px;width:100%;height:10px;margin:16px 0 14px;display:block}.legend{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:10px;font-size:15px;display:flex}.legend li .value{margin-left:auto}.legend .swatch{width:9px;height:9px}.g-cash{fill:var(--g-cash)}.g-investments{fill:var(--g-investments)}.g-real-estate{fill:var(--g-real-estate)}.g-vehicles{fill:var(--g-vehicles)}.g-other-assets{fill:var(--g-other-assets)}.g-credit-cards{fill:var(--g-credit-cards)}.g-loans{fill:var(--g-loans)}.g-other-liabilities{fill:var(--g-other-liabilities)}dialog.sheet{border:1px solid var(--line);background:var(--panel);width:min(480px,100vw - 32px);color:var(--ink);border-radius:16px;padding:0;box-shadow:0 24px 60px #00000038}dialog.sheet::backdrop{background:#1413116b}dialog.sheet[open]{animation:.16s ease-out sheet-in}@keyframes sheet-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}dialog.sheet form{flex-direction:column;gap:16px;padding:22px 24px 24px;display:flex}dialog.sheet .sheet-head{justify-content:space-between;align-items:center;display:flex}dialog.sheet h2{margin:0;font-size:18px;font-weight:650}dialog.sheet .close{cursor:pointer;width:32px;height:32px;color:var(--ink-2);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}dialog.sheet .close:hover{background:var(--shelf)}dialog.sheet .row{grid-template-columns:1fr 1fr;gap:12px;display:grid}dialog.sheet .form-error{color:var(--negative);margin:0;font-size:14px}dialog.sheet .buttons{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.button.active{border-color:var(--ink-3)}.menu[popover]{border:1px solid var(--line);background:var(--panel);min-width:260px;max-width:min(420px,100vw - 24px);max-height:min(70vh,640px);color:var(--ink);border-radius:12px;margin:0;padding:8px;position:fixed;inset:auto;overflow:auto;box-shadow:0 16px 40px #00000029}.menu-list{border-bottom:1px solid var(--line);margin:0;padding:0 0 6px;list-style:none}.menu-list a{border-radius:8px;padding:8px 10px;font-size:15px;display:block}.menu-list a:hover{background:var(--shelf)}.menu-list a[aria-current=true]{background:var(--nav-active);font-weight:650}.menu-form{flex-direction:column;gap:12px;padding:10px 6px 4px;display:flex}.menu-form input[type=search],.menu-form input[type=date]{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;width:100%;height:40px;padding:0 10px}.menu-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.menu-row label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.menu-actions{justify-content:flex-end;gap:8px;display:flex}.menu-form.filters .menu-actions{background:var(--panel);border-top:1px solid var(--line);margin:0 -14px -8px;padding:10px 14px;position:sticky;bottom:-8px}.menu-form fieldset{border:0;margin:0;padding:0}.menu-form legend{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px;font-size:12px;font-weight:650}.choices{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow:auto}.choices.inline{flex-flow:wrap;gap:4px 14px;max-height:none}.choices label{align-items:center;gap:8px;padding:4px 2px;font-size:14px;display:flex}.choice-group-name{color:var(--ink-3);margin:8px 0 2px;font-size:12px}.search-error{color:var(--negative);margin:0 0 12px}.tx-layout{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.tx-layout{grid-template-columns:1fr}}.tx-card{overflow:hidden}.tx-top{justify-content:space-between;gap:12px;padding:14px 18px;display:flex}.tx-top .select select{min-width:200px;height:42px}.tx-day{background:var(--shelf);border-top:1px solid var(--line);justify-content:space-between;align-items:center;height:44px;padding:0 20px;display:flex}.tx-day h2{color:var(--ink-2);margin:0;font-size:15px;font-weight:600}.tx-day .money{color:var(--ink-2);font-size:15px}.tx-list ul{margin:0;padding:0;list-style:none}button.tx-row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0}.tx-row.selected{background:color-mix(in srgb, var(--chart) 9%, transparent)}.tick{border:1.5px solid var(--line-strong);width:22px;height:22px;color:var(--on-accent);border-radius:6px;flex:none;place-items:center;display:grid}.tick.on{background:var(--accent);border-color:var(--accent)}.tick svg{width:14px;height:14px}.tx-top-actions{align-items:center;gap:10px;display:flex}.tx-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr) minmax(0,1.15fr) 128px 18px;align-items:center;gap:12px;height:60px;padding:0 20px;font-size:16px;display:grid}.tx-row:hover{background:color-mix(in srgb, var(--shelf) 55%, transparent)}.tx-row .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tx-merchant,.tx-category,.tx-account{align-items:center;gap:10px;min-width:0;display:flex}.merchant-icon{background:var(--shelf);border:1px solid var(--line);width:24px;height:24px;color:var(--ink-3);border-radius:50%;flex:none;place-items:center;display:grid}.merchant-icon svg{width:13px;height:13px}.tx-account .avatar{width:22px;height:22px}.tx-account .avatar text{font-size:17px}.tx-amount{justify-content:flex-end;align-items:center;gap:10px;font-weight:500;display:flex}.review-dot{background:var(--negative);border-radius:50%;width:8px;height:8px;display:inline-block}.tx-chevron{width:18px;height:18px;color:var(--ink-3)}.tx-more{height:48px;color:var(--ink-3);place-items:center;font-size:14px;display:grid}.tx-empty{text-align:center;color:var(--ink-2);border-top:1px solid var(--line);margin:0;padding:40px 20px}@media (max-width:760px){.tx-row{grid-template-columns:minmax(0,1fr) 120px}.tx-category,.tx-account,.tx-chevron{display:none}}.tx-summary{position:sticky;top:16px}.tx-summary h2{border-bottom:1px solid var(--line);margin:0;padding:22px 24px;font-size:19px;font-weight:650}.tx-summary dl{flex-direction:column;margin:0;padding:14px 24px;display:flex}.tx-summary dl>div{justify-content:space-between;gap:12px;padding:12px 0;font-size:16px;display:flex}.tx-summary dt{color:var(--ink-2)}.tx-summary dd{margin:0}.tx-summary .download{text-align:center;color:var(--chart);border-top:1px solid var(--line);padding:18px 24px 22px;font-weight:600;display:block}dialog.drawer{border:0;border-left:1px solid var(--line);background:var(--panel);width:min(460px,100vw);height:100vh;max-height:100vh;color:var(--ink);margin:0 0 0 auto;padding:0;box-shadow:-18px 0 50px #00000024}dialog.drawer::backdrop{background:#14131147}dialog.drawer[open]{animation:.2s ease-out drawer-in}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:60px;padding:0 16px 0 24px;display:flex}.drawer-head .close{cursor:pointer;width:34px;height:34px;color:var(--ink-2);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.drawer-head .close:hover{background:var(--shelf)}.drawer-status{color:var(--ink-3);font-size:13px}.drawer-loading{color:var(--ink-2);padding:24px}.drawer-body{flex-direction:column;gap:16px;height:calc(100vh - 60px);padding:20px 24px 32px;display:flex;overflow:auto}.drawer-merchant{background:0 0;border:1px solid #0000;border-radius:8px;margin:0 -9px;padding:6px 8px;font-size:22px;font-weight:650}.drawer-merchant:hover,.drawer-merchant:focus{border-color:var(--line-strong)}.drawer-amount{letter-spacing:-.02em;font-size:30px;font-weight:700}.drawer-meta{color:var(--ink-2);margin-top:-10px}.drawer-body textarea{border:1px solid var(--line-strong);background:var(--panel);font:inherit;resize:vertical;border-radius:8px;padding:10px 12px}.switch{cursor:pointer;align-items:center;gap:10px;font-size:15px;display:flex}.switch input{width:18px;height:18px;accent-color:var(--accent)}.drawer-facts{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin:8px 0 0;padding-top:12px;display:flex}.drawer-facts div{flex-direction:column;gap:2px;display:flex}.drawer-facts dt{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:650}.drawer-facts dd{color:var(--ink-2);overflow-wrap:anywhere;margin:0}.tabs{align-items:center;gap:24px;height:100%;display:flex}.tabs-title{margin:0 12px 0 0;font-size:21px;font-weight:650}.tabs a{height:100%;color:var(--ink-2);align-items:center;font-size:17px;font-weight:500;display:flex;position:relative}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{color:var(--accent)}.tabs a[aria-current=page]:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:16px;left:0;right:0}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:20px;display:grid}@media (max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{text-align:center;flex-direction:column;gap:8px;padding:26px 16px 22px;display:flex}.tile-figure{letter-spacing:-.01em;font-size:24px;font-weight:650}.report-card{margin-bottom:20px;padding:22px 26px 26px}.report-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.report-span{margin-top:4px;font-size:20px;font-weight:600}.report-empty{color:var(--ink-2);text-align:center;margin:0;padding:40px 0}.report-below{margin-top:0}.tx-title{align-self:center;margin:0;font-size:19px;font-weight:650}.sankey{height:640px;position:relative}.sankey svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.sankey .band{opacity:.32;transition:opacity .16s}.sankey .band.quiet{opacity:.08}.sankey .node{transition:opacity .16s}.sankey .node.quiet{opacity:.25}.sankey-labels{pointer-events:none}.sankey-labels text{fill:var(--ink);font-size:14px;transition:opacity .16s}.sankey-labels text .figure{font-size:15px;font-weight:650}.sankey-labels text.quiet{opacity:.25}.hue-income{fill:#1f95c4}.hue-savings{fill:#3a9d5d}.hue-shortfall{fill:#d2453a}.hue-yellow{fill:#f2b705}.hue-pink{fill:#d6388f}.hue-blue{fill:#3b5bdb}.hue-red{fill:#e0473a}.hue-teal{fill:#14a3a3}.hue-purple{fill:#7c4dcc}.hue-orange{fill:#ef6b2f}.hue-lime{fill:#82b31b}.hue-indigo{fill:#4c5fd5}.hue-rose{fill:#e0587a}.hue-cyan{fill:#22a6d6}.hue-amber{fill:#d68a0b}.donut-layout{grid-template-columns:340px minmax(0,1fr);align-items:center;gap:48px;display:grid}@media (max-width:900px){.donut-layout{grid-template-columns:1fr}}.donut{width:300px;height:300px;margin:0 auto;position:relative}.donut svg{width:100%;height:100%;overflow:visible}.donut .slice{transform-origin:50px 50px;transform-box:view-box;cursor:pointer;transition:transform .18s,opacity .18s}.donut .slice.lifted{transform:scale(1.045)}.donut .slice.quiet{opacity:.4}.donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:0 70px;display:flex;position:absolute;inset:0}.donut-center .money{font-size:22px;font-weight:700}.donut-center .dim{font-size:14px}.donut-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:1200px){.donut-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.donut-legend li{cursor:default;border-radius:10px;align-items:baseline;gap:10px;padding:8px 10px;font-size:15px;display:flex}.donut-legend li.focused{background:var(--shelf)}.donut-legend .swatch{flex:none;width:10px;height:10px;transform:translateY(1px)}.legend-figure{font-weight:650}.show-all{color:var(--chart);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin:18px auto 0;font-weight:600;display:flex}.dashboard{column-count:2;column-gap:20px}@media (max-width:1000px){.dashboard{column-count:1}}.widget-slot{break-inside:avoid;padding-bottom:20px}.widget{padding:22px 24px 24px}.widget-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.widget-head h2{margin:0;font-size:19px;font-weight:650}.widget-head h2 a:hover{text-underline-offset:3px;text-decoration:underline}.widget-figure{letter-spacing:-.02em;margin-bottom:4px;font-size:28px;font-weight:700}.widget-unit{color:var(--ink-2);letter-spacing:0;font-size:15px;font-weight:500}.widget-chart .area-chart{height:190px;margin-top:18px}.widget-pairs{grid-template-columns:1fr 1fr;gap:16px 24px;margin:8px 0 0;display:grid}.widget-pairs dt{color:var(--ink-2);font-size:14px}.widget-pairs dd{margin:2px 0 0;font-size:22px;font-weight:650}.bars{flex-direction:column;gap:14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.bar-label{justify-content:space-between;gap:12px;margin-bottom:6px;font-size:15px;display:flex}.bar{border-radius:999px;width:100%;height:8px;display:block;overflow:hidden}.bar-track{fill:var(--shelf)}.mini-rows{margin:4px 0 0;padding:0;list-style:none}.mini-rows li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;font-size:15px;display:grid}.mini-rows li:first-child{border-top:0}.mini-rows .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-more{color:var(--chart);margin-top:10px;font-weight:600;display:block}.widget .faint a{color:var(--chart);font-weight:600}.compare-chart{height:200px;margin:18px 0 30px 52px;position:relative}.compare-chart svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.compare-chart polyline{fill:none;stroke-width:2.5px;stroke-linejoin:round}.compare-chart polyline.last{stroke:var(--ink-3)}.compare-chart polyline.this{stroke:var(--accent)}.compare-chart .end{fill:var(--panel);stroke:var(--accent);stroke-width:2.5px}.compare-chart .grid-line{stroke:var(--grid)}.compare-chart .y-label{fill:var(--ink-2);text-anchor:end;dominant-baseline:middle;font-size:12px}.compare-chart .x-label{fill:var(--ink-2);text-anchor:middle;font-size:12px}.compare-legend{color:var(--ink-2);justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.compare-legend .key{border-radius:2px;width:14px;height:3px;margin-left:10px;display:inline-block}.compare-legend .key.last{background:var(--ink-3)}.compare-legend .key.this{background:var(--accent)}.widget-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.widget-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.widget-list li:first-child{border-top:0}.widget-list label{align-items:center;gap:10px;font-size:15px;display:flex}.widget-list input{width:18px;height:18px;accent-color:var(--accent)}.widget-moves{gap:4px;display:flex}.widget-moves .icon{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:32px;height:32px;color:var(--ink-2);border-radius:8px;place-items:center;display:grid}.widget-moves .icon:disabled{opacity:.35;cursor:default}.widget-moves svg{width:15px;height:15px}dialog.sheet .buttons .reset{margin-right:auto}.settings{flex-direction:column;gap:32px;max-width:900px;display:flex}.settings-error{background:var(--negative-soft);color:var(--negative);border-radius:8px;margin:0;padding:10px 14px}.settings-kind-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.settings-kind-head h2{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0;font-size:13px;font-weight:650}.settings-groups{flex-direction:column;gap:14px;display:flex}.cat-group{transition:box-shadow .16s,border-color .16s;position:relative;overflow:hidden}.cat-group.dragging{border-color:var(--chart);box-shadow:0 0 0 1px var(--chart), 0 12px 28px #0000001a;z-index:2;overflow:visible}.cat-group-head{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;height:56px;padding:0 14px 0 8px;display:grid}.cat-group-head h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;font-weight:650;overflow:hidden}.grip{width:20px;height:28px;color:var(--ink-3);cursor:grab;touch-action:none;opacity:.45;background:0 0;border:0;border-radius:6px;place-items:center;transition:opacity .12s;display:grid}.grip svg{width:14px;height:14px}.grip:hover,.grip:focus-visible,.dragging>.grip,.dragging>.cat-group-head>.grip{opacity:1}.dragging .grip{cursor:grabbing}.row-actions{gap:2px;display:flex}.icon-action:disabled{opacity:.5;cursor:progress}.category-list{margin:0;padding:0;list-style:none}.category-row{border-top:1px solid var(--line);background:var(--panel);grid-template-columns:20px 34px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:grid}.category-row.dragging{z-index:2;position:relative;box-shadow:0 8px 20px #0000001f}.category-icon{background:var(--shelf);border-radius:9px;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.category-row .name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.category-row .count{color:var(--ink-3);white-space:nowrap;font-size:13px}.category-row.retired .name,.category-row.retired .category-icon{opacity:.5}.category-empty{border-top:1px solid var(--line);color:var(--ink-3);padding:14px 18px;font-size:14px}@media (max-width:640px){.category-row .count{display:none}.category-row{grid-template-columns:20px 34px minmax(0,1fr) auto}}.settings-card-head{padding:20px 22px 16px}.settings-card-head h2{margin:0 0 6px;font-size:18px;font-weight:650}.settings-card-head p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.5}.device-list{margin:0;padding:0;list-style:none}.device-row{border-top:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 22px;display:grid}.device-icon{background:var(--shelf);width:40px;height:40px;color:var(--ink-2);border-radius:50%;place-items:center;display:grid}.device-icon svg{width:18px;height:18px}.device-row .text{flex-direction:column;gap:3px;min-width:0;display:flex}.device-row .name{font-size:15px;font-weight:600}.device-row .detail{color:var(--ink-2);font-size:13px}.badge{background:var(--positive-soft);color:var(--positive);vertical-align:1px;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.button.danger{background:var(--negative);border-color:var(--negative);color:#fff}.button.danger:hover{background:var(--negative);filter:brightness(.95)}dialog.sheet p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.5}dialog.sheet .hint{color:var(--ink-3);font-size:13px}dialog.sheet .icon-name{grid-template-columns:84px minmax(0,1fr);gap:12px;display:grid}dialog.sheet .icon-name input[name=icon]{text-align:center;font-size:18px}.link-box{gap:8px;display:flex}.link-box input{border:1px solid var(--line-strong);background:var(--shelf);min-width:0;height:38px;font-family:var(--mono);color:var(--ink);border-radius:8px;flex:1;padding:0 10px;font-size:12px}.tag-dot{flex:none;width:9px;height:9px}.tag-chip{border:1px solid var(--line);background:var(--shelf);height:24px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.tag-chip.removable{cursor:pointer}.tag-chip.removable svg:last-child{width:12px;height:12px;color:var(--ink-3)}.tag-chip.removable:hover{border-color:var(--line-strong);color:var(--ink)}.tag-picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.button.small{border-radius:999px;gap:4px;height:26px;padding:0 10px;font-size:12px}.button.small svg{width:13px;height:13px}.field-label{color:var(--ink-2);font-size:13px;font-weight:600}.tag-options{border-bottom:1px solid var(--line);max-height:240px;margin:0;padding:0 0 6px;list-style:none;overflow:auto}.tag-options:empty{display:none}.tag-options button{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.tag-options button:hover{background:var(--shelf)}.menu-form.tag-create{flex-direction:row;align-items:center}.tag-create input{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;flex:1;min-width:0;height:36px;padding:0 10px}.tx-tags{flex-shrink:1;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.tx-tags .tag-chip{height:20px;padding:0 7px;font-size:11px}.tag-list{margin:0;padding:0;list-style:none}.tag-row{border-top:1px solid var(--line);grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px 10px 22px;display:grid}.tag-row .tag-dot{width:12px;height:12px}.tag-row .name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.tag-row .count{color:var(--ink-3);white-space:nowrap;font-size:13px}.settings-card-head.with-action{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.settings-empty{border-top:1px solid var(--line);color:var(--ink-3);margin:0;padding:18px 22px}.swatches{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.swatches legend{color:var(--ink-2);margin-bottom:8px;padding:0;font-size:13px;font-weight:600}.swatch-choice{cursor:pointer;border:2px solid #0000;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:relative}.swatch-choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch-choice .tag-dot{width:20px;height:20px}.swatch-choice:has(input:checked){border-color:var(--ink)}.swatch-choice:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.bulk-tags{border:0;margin:0;padding:0}.bulk-tags legend{color:var(--ink-2);margin-bottom:6px;padding:0;font-size:13px;font-weight:600}.merchant-tools{flex-wrap:wrap;align-items:center;gap:10px;padding:0 22px 16px;display:flex}.merchant-search{flex:1;align-items:center;min-width:200px;display:flex;position:relative}.merchant-search svg{width:16px;height:16px;color:var(--ink-3);pointer-events:none;position:absolute;left:12px}.merchant-search input{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;width:100%;height:44px;padding:0 12px 0 36px;font-size:15px}.merchant-list{margin:0;padding:0;list-style:none}.merchant-row{border-top:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px 10px 22px;display:grid}.merchant-list.selecting .merchant-row{grid-template-columns:18px 40px minmax(0,1fr) auto}.merchant-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.merchant-row .avatar{width:36px;height:36px}.merchant-row .text{flex-direction:column;gap:2px;min-width:0;display:flex}.merchant-row .name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.merchant-row .detail{color:var(--ink-2);font-size:13px}.merchant-row a.detail:hover{color:var(--accent)}.merge-choices{border:0;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.merge-choices legend{color:var(--ink-2);margin-bottom:8px;padding:0;font-size:14px;line-height:1.5}.merge-choices label{border:1px solid var(--line);cursor:pointer;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:center;column-gap:10px;padding:8px 10px;display:grid}.merge-choices label:has(input:checked){border-color:var(--accent);background:var(--shelf)}.merge-choices input{accent-color:var(--accent)}.merge-choices .name{font-weight:600}.merge-choices .detail{color:var(--ink-2);grid-column:2;font-size:13px}.head-actions{flex:none;gap:10px;display:flex}.settings-error.inset{margin:0 22px 16px}.confirm-strip{background:var(--negative-soft);color:var(--ink);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 22px 16px;padding:12px 14px;display:flex}.confirm-strip span{flex:1;min-width:200px}.rule-list{margin:0;padding:0;list-style:none}.rule-row{border-top:1px solid var(--line);background:var(--panel);grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:10px;padding:14px 14px 14px 8px;display:grid}.rule-row.dragging{z-index:2;position:relative;box-shadow:0 8px 20px #0000001f}.rule-row .grip{margin-top:2px}.rule-text{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}@media (max-width:760px){.rule-text{grid-template-columns:1fr}}.rule-part{gap:10px;min-width:0;display:flex}.rule-part ul{flex-direction:column;gap:3px;min-width:0;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.rule-label{background:var(--shelf);letter-spacing:.04em;text-transform:uppercase;width:40px;height:22px;color:var(--ink-2);border-radius:6px;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.rule-label.then{background:var(--positive-soft);color:var(--positive)}dialog.sheet.wide{width:min(920px,100vw - 32px);max-height:calc(100vh - 48px)}.rule-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}@media (max-width:760px){.rule-columns{grid-template-columns:1fr}}.rule-side{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.rule-side legend{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px;padding:0;font-size:12px;font-weight:650}.rule-field{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.rule-field.on{border-color:var(--line-strong)}.rule-toggle{cursor:pointer;align-items:center;gap:10px;font-size:15px;font-weight:500;display:flex}.rule-toggle input{width:17px;height:17px;accent-color:var(--accent)}.rule-field-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.rule-field-body input:not([type=checkbox]),.rule-field-body select{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;min-width:0;height:38px;padding:0 10px;font-size:14px}.text-rows{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.text-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;display:grid}.text-row:has(.or){grid-template-columns:auto auto minmax(0,1fr) auto}.text-row .or{color:var(--ink-3);font-size:12px}.amount-row{flex-wrap:wrap;gap:6px;display:flex}.amount-row input{width:110px}.rule-field .choices{max-height:180px}.rule-preview{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding-top:14px;display:flex}.rule-preview .hint,.rule-field .hint{color:var(--ink-3);margin:0;font-size:13px}.preview-summary{font-size:14px;font-weight:600}.preview-lines{border:1px solid var(--line);border-radius:10px;max-height:220px;margin:0;padding:0;list-style:none;overflow:auto}.preview-lines li{border-top:1px solid var(--line);color:var(--ink-3);grid-template-columns:90px minmax(0,1fr) minmax(0,1fr) 100px;gap:10px;padding:7px 12px;font-size:13px;display:grid}.preview-lines li:first-child{border-top:0}.preview-lines li.changes{color:var(--ink)}.preview-lines .merchant,.preview-lines .category{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-lines .money{text-align:right}.apply-existing{font-size:14px}.button.danger-text{color:var(--negative)}.choices input{accent-color:var(--accent)}.rule-hint{background:var(--shelf);color:var(--ink);border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:600;display:flex}.rule-hint svg{width:15px;height:15px;color:var(--accent);flex:none}.rule-hint:hover{color:var(--accent)}.import-steps{flex-direction:column;gap:18px;max-width:1080px;display:flex}.import-step{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.import-step h2{align-items:center;gap:10px;margin:0;font-size:17px;font-weight:650;display:flex}.import-step h3{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);margin:6px 0 4px;font-size:13px;font-weight:650}.import-step p{margin:0;font-size:14px;line-height:1.5}.step{background:var(--accent);width:26px;height:26px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.file-drop{border:1.5px dashed var(--line-strong);background:var(--shelf);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:22px;font-weight:600;display:flex;position:relative}.file-drop:hover,.file-drop:focus-within{border-color:var(--accent)}.file-drop svg{width:22px;height:22px;color:var(--accent)}.file-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.mapping{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.mapping .field span{color:var(--ink-2);font-size:13px;font-weight:600}.import-options{flex-wrap:wrap;gap:28px;display:flex}.import-options fieldset{border:0;flex-direction:column;gap:6px;margin:0;padding:0;font-size:14px;display:flex}.import-options legend{color:var(--ink-2);margin-bottom:4px;padding:0;font-size:13px;font-weight:600}.import-options label{align-items:center;gap:8px;display:flex}.import-options input{accent-color:var(--accent)}.import-options select,.match-row select{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;height:38px;padding:0 10px;font-size:14px}.preview-table{border:1px solid var(--line);border-radius:10px;overflow-x:auto}.preview-table table{border-collapse:collapse;width:100%;font-size:13px}.preview-table th,.preview-table td{text-align:left;border-top:1px solid var(--line);white-space:nowrap;padding:8px 12px}.preview-table th{background:var(--shelf);color:var(--ink-2);border-top:0;font-weight:600}.preview-table .num{text-align:right}.import-count{font-weight:600}.problems{color:var(--negative);flex-direction:column;gap:2px;margin:0;padding-left:18px;font-size:13px;display:flex}.matches{flex-direction:column;gap:6px;display:flex}.match-row{grid-template-columns:minmax(0,260px) minmax(0,360px);align-items:center;gap:12px;display:grid}.match-row .from{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.totals{flex-direction:column;gap:4px;max-width:420px;margin:0;padding:0;list-style:none;display:flex}.totals li{justify-content:space-between;gap:12px;font-size:14px;display:flex}.import-step .buttons{gap:10px;display:flex}.import-result{background:var(--positive-soft);border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.import-result .done{align-items:center;gap:8px;font-weight:650;display:flex}.import-result .done svg{width:18px;height:18px;color:var(--positive)}.held-banner{background:var(--shelf);border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:14px}.held-banner a{color:var(--accent);font-weight:600}.duplicates-intro{max-width:760px;margin:0 0 16px;line-height:1.5}.held-list{flex-direction:column;gap:12px;max-width:1080px;margin:0;padding:0;list-style:none;display:flex}.held{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 20px;display:grid}@media (max-width:860px){.held{grid-template-columns:1fr}}.held-side{flex-direction:column;gap:3px;min-width:0;display:flex}.held-side .merchant{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.held-side .money{font-weight:600}.held-actions{flex-direction:column;gap:8px;display:flex}.month-nav{align-items:center;gap:8px;display:flex}.month-nav h1{margin-right:14px}.month-label{text-align:center;min-width:150px;font-size:16px;font-weight:600}.icon-link{width:34px;height:34px;color:var(--ink-2);border-radius:8px;place-items:center;display:grid}.icon-link:hover{background:var(--shelf);color:var(--ink)}.icon-link svg{width:18px;height:18px}.budget-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.budget-layout{grid-template-columns:1fr}}.budget-card{overflow:hidden}.budget-section+.budget-section{border-top:8px solid var(--canvas)}.budget-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 130px 120px 130px;align-items:center;gap:12px;padding:10px 20px;display:grid}.budget-row.head{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-top:0;padding-top:16px;padding-bottom:8px;font-size:12px;font-weight:650}.budget-row.head h2{letter-spacing:0;text-transform:none;color:var(--ink);margin:0;font-size:18px}.budget-row.depth-0{background:var(--panel);font-weight:600}.budget-row.depth-1 .budget-name{padding-left:34px}.budget-name{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"toggle icon text gear""bar bar bar bar";align-items:center;gap:6px 8px;min-width:0;display:grid}.budget-name .toggle{cursor:pointer;width:26px;height:26px;color:var(--ink-2);background:0 0;border:0;border-radius:50%;grid-area:toggle;place-items:center;display:grid}.budget-name .toggle svg{width:16px;height:16px;transition:transform .16s}.budget-group.collapsed .toggle svg{transform:rotate(-90deg)}.budget-name .icon{grid-area:icon}.budget-name .text{text-overflow:ellipsis;white-space:nowrap;grid-area:text;overflow:hidden}.budget-name .gear{cursor:pointer;width:26px;height:26px;color:var(--ink-3);opacity:0;background:0 0;border:0;border-radius:6px;grid-area:gear;place-items:center;display:grid}.budget-row:hover .gear,.budget-name .gear:focus-visible{opacity:1}.budget-name .gear svg{width:15px;height:15px}.budget-name .budget-bar{grid-area:bar}.budget-bar{width:100%;height:6px;display:block}.budget-bar .track{fill:var(--grid)}.budget-bar .fill{fill:var(--positive)}.budget-bar.pace .fill{fill:#d9a300}.budget-bar.over .fill{fill:var(--negative)}.budget-bar.income .fill{fill:var(--chart)}.budget-bar.none .fill{fill:#0000}.budget-bar .tick{stroke:var(--ink);stroke-width:6px;vector-effect:non-scaling-stroke}.budget-num{text-align:right;font-size:15px}.budget-row.head .budget-num{font-size:12px}.plan-button{background:var(--shelf);cursor:pointer;font-size:15px;font-weight:inherit;border:1px solid #0000;border-radius:8px;padding:5px 10px}.plan-button:hover,.plan-button:focus-visible{border-color:var(--line-strong)}.remaining{justify-content:flex-end;align-items:center;gap:6px;display:flex}.remaining .money{border-radius:999px;padding:3px 10px}.remaining.under .money{background:var(--positive-soft);color:var(--positive)}.remaining.pace .money{color:#8a6400;background:#fbf1d2}.remaining.over .money{background:var(--negative-soft);color:var(--negative)}.remaining svg{width:14px;height:14px;color:var(--ink-3)}@media (prefers-color-scheme:dark){.remaining.pace .money{color:#e6c35c;background:#3a3014}}.budget-empty{border-top:1px solid var(--line);color:var(--ink-3);margin:0;padding:14px 20px}.plan-panel{width:280px}.plan-panel form{flex-direction:column;gap:10px;padding:6px;display:flex}.plan-panel .field span{color:var(--ink-2);font-size:13px;font-weight:600}.plan-panel input[name=amount]{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;height:40px;padding:0 10px;font-size:16px}.plan-history{color:var(--ink-2);flex-direction:column;gap:3px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.plan-history li{justify-content:space-between;display:flex}.plan-history .average{border-top:1px solid var(--line);color:var(--ink);margin-top:3px;padding-top:5px;font-weight:600}.check{align-items:center;gap:8px;font-size:14px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.budget-summary{flex-direction:column;gap:18px;padding:20px;display:flex;position:sticky;top:16px}.left-to-budget{background:var(--positive-soft);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:14px;display:flex}.left-to-budget .figure{color:var(--positive);font-size:30px;font-weight:700}.left-to-budget h2{color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.left-to-budget.over{background:var(--negative-soft)}.left-to-budget.over .figure{color:var(--negative)}.summary-bar{flex-direction:column;gap:6px;display:flex}.summary-bar-head{justify-content:space-between;gap:10px;font-size:14px;display:flex}.summary-bar-head span:first-child,.summary-bar-head a{font-weight:600}.widget .summary-bar .faint{font-size:13px}.summary-bar .budget-bar{height:8px}.summary-bar.small .summary-bar-head{font-size:13px}.budget-excluded{border-top:1px solid var(--line);padding:12px 20px 16px;font-size:14px}.budget-excluded summary{cursor:pointer;color:var(--ink-2);font-weight:600}.budget-excluded ul{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.budget-excluded li{justify-content:space-between;align-items:center;display:flex}.rollover-fields{flex-direction:column;gap:10px;display:flex}.rollover-fields .row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-choice{border:0;flex-direction:column;gap:10px;margin:0;padding:0;display:flex}.mode-choice legend{color:var(--ink-2);margin-bottom:6px;padding:0;font-size:13px;font-weight:600}.mode-choice label{border:1px solid var(--line);cursor:pointer;border-radius:10px;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:10px 12px;font-size:14px;display:grid}.mode-choice label:has(input:checked){border-color:var(--accent)}.mode-choice strong{display:block}.mode-choice input{accent-color:var(--accent);margin-top:3px}.reset-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.quiet-toggle{border:0;border-top:1px solid var(--line);text-align:left;width:100%;color:var(--ink-3);cursor:pointer;background:0 0;padding:9px 20px 9px 54px;font-size:13px;display:block}.quiet-toggle:hover{color:var(--ink);background:var(--shelf)}.plan-panel{text-align:left;font-weight:400}.plan-panel .check{align-items:flex-start}.plan-panel .check input{flex:none;margin-top:2px}.segmented a{color:var(--ink-2);border-radius:999px;padding:5px 14px;font-size:14px;font-weight:600}.segmented a[aria-current=page]{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.find-message{align-self:center;font-size:13px}.recurring{flex-direction:column;gap:18px;display:flex}.recurring-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.recurring-layout{grid-template-columns:1fr}}.due-section h2,.stream-section h2{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin:0;padding:16px 20px 10px;font-size:13px;font-weight:650}.due-section+.due-section,.stream-section+.stream-section{border-top:8px solid var(--canvas)}.due-empty{margin:0;padding:6px 20px 18px}.due-list{margin:0;padding:0;list-style:none}.due-row{border-top:1px solid var(--line);grid-template-columns:56px 36px minmax(0,1fr) auto 150px;align-items:center;gap:12px;padding:10px 20px;display:grid}.stream-row{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) 120px auto;align-items:center;gap:12px;padding:10px 20px;display:grid}.due-row .avatar,.stream-row .avatar{width:34px;height:34px}.due-day{color:var(--ink-2);font-size:14px;font-weight:600}.due-text{flex-direction:column;gap:2px;min-width:0;display:flex}.due-text .merchant{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.due-text .dim{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.due-amount{text-align:right;flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.due-amount .expected{font-size:12px;font-weight:400}.due-status{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:650}.due-status.paid{background:var(--positive-soft);color:var(--positive)}.due-status.paid-different{color:#8a6400;background:#fbf1d2}.due-status.missed{background:var(--negative-soft);color:var(--negative)}.due-status.upcoming{color:#2b5fa8;background:#e3eefb}@media (prefers-color-scheme:dark){.due-status.paid-different,.calendar-item.paid-different{color:#e6c35c;background:#3a3014}.due-status.upcoming,.calendar-item.upcoming{color:#8db8ea;background:#17283d}}.recurring-summary{padding:18px 20px}.recurring-summary h2{margin:0 0 12px;font-size:16px;font-weight:650}.recurring-summary dl{flex-direction:column;gap:10px;margin:0;display:flex}.recurring-summary dl>div{justify-content:space-between;gap:10px;font-size:14px;display:flex}.recurring-summary dt{color:var(--ink-2)}.recurring-summary dd{margin:0;font-weight:600}.calendar{overflow:hidden}.calendar-head,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-head span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:10px;font-size:12px;font-weight:650}.calendar-day{border-top:1px solid var(--line);border-left:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;min-height:110px;padding:6px;display:flex}.calendar-day:first-child{border-left:0}.calendar-day.outside{background:var(--shelf)}.calendar-day.outside .calendar-date{color:var(--ink-3)}.calendar-date{font-size:12px;font-weight:600}.calendar-day.today .calendar-date{background:var(--accent);width:22px;height:22px;color:var(--on-accent);border-radius:50%;place-items:center;display:inline-grid}.calendar-item{border-radius:6px;flex-direction:column;min-width:0;padding:3px 6px;font-size:11px;line-height:1.3;display:flex}.calendar-item .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.calendar-item.paid{background:var(--positive-soft);color:var(--positive)}.calendar-item.paid-different{color:#8a6400;background:#fbf1d2}.calendar-item.missed{background:var(--negative-soft);color:var(--negative)}.calendar-item.upcoming{color:#2b5fa8;background:#e3eefb}.review-card{border-color:var(--accent);flex-direction:column;gap:8px;padding:18px 20px;display:flex}.review-card summary{cursor:pointer;list-style-position:inside}.review-card .review-title{font-size:16px;font-weight:650}.review-card p{margin:0}.review-list{flex-direction:column;margin:6px 0 0;padding:0;list-style:none;display:flex}.review-list li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.small-button{height:32px;padding:0 12px;font-size:13px}.stream-actions{gap:6px}.goals-layout,.investments-layout,.real-estate-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.goals-layout{grid-template-columns:1fr}}.goal-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.goal-card{color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon name status""figures figures figures""bar bar bar""detail detail detail";gap:8px 10px;padding:16px 18px;display:grid}.goal-card:hover{border-color:var(--line-strong)}.goal-card.archived{opacity:.7}.goal-icon{grid-area:icon;font-size:22px}.goal-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;align-self:center;font-weight:650;overflow:hidden}.goal-status{background:var(--positive-soft);color:var(--positive);white-space:nowrap;border-radius:999px;grid-area:status;place-self:center start;padding:3px 10px;font-size:12px;font-weight:650}.goal-status.at-risk{background:var(--negative-soft);color:var(--negative)}.goal-status.ahead,.goal-status.complete{color:#2b5fa8;background:#e3eefb}.goal-figures{grid-area:figures;font-size:20px;font-weight:650}.goal-figures .dim{font-size:14px;font-weight:400}.goal-figures.big{font-size:30px}.goal-card .budget-bar{grid-area:bar;height:8px}.goal-detail{grid-area:detail;font-size:13px}.archived-goals{margin-top:20px}.archived-goals summary{cursor:pointer;color:var(--ink-2);margin-bottom:12px;font-weight:600}.goal-accounts{padding:18px 20px}.goal-accounts .available{background:var(--shelf);border-radius:12px;flex-direction:column;align-items:center;margin-bottom:12px;padding:14px;display:flex}.goal-accounts .available .money{font-size:26px;font-weight:700}.goal-accounts .available h2{color:var(--ink-2);margin:2px 0 0;font-size:13px;font-weight:600}.goal-accounts ul{margin:0;padding:0;list-style:none}.goal-accounts li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name money""dim money";gap:2px 10px;padding:8px 0;font-size:14px;display:grid}.goal-accounts li .name{grid-area:name;font-weight:600}.goal-accounts li .dim{grid-area:dim;font-size:12px}.goal-accounts li .money{grid-area:money;align-self:center;font-weight:600}.goal-detail{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;display:grid}@media (max-width:1100px){.goal-detail{grid-template-columns:1fr}}.goal-summary{flex-direction:column;gap:10px;padding:20px 22px;display:flex}.goal-summary .goal-status{align-self:flex-start}.goal-summary .budget-bar{height:10px}.goal-summary p{margin:0}.line-chart{height:240px;margin:10px 0 26px 56px;position:relative}.line-chart svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.line-chart .grid-line{stroke:var(--grid);stroke-width:1px}.line-chart .series{fill:none;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.line-chart .series.balance{stroke:var(--positive)}.line-chart .series.projection{stroke:var(--positive);stroke-dasharray:5 5;opacity:.7}.line-chart .series.target{stroke:#7c4dcc;stroke-width:1.5px}.line-chart .y-label{fill:var(--ink-3);text-anchor:end;dominant-baseline:middle;font-size:11px}.line-chart .x-label{fill:var(--ink-3);text-anchor:middle;font-size:11px}.line-chart .x-label.end{text-anchor:end}.line-chart .today-dot{fill:var(--positive)}.chart-key{align-items:center;gap:6px;font-size:12px;display:flex}.chart-key .key{border-radius:2px;width:14px;height:3px;margin-left:8px;display:inline-block}.chart-key .key.balance{background:var(--positive)}.chart-key .key.projection{background:repeating-linear-gradient(90deg, var(--positive) 0 4px, transparent 4px 7px)}.chart-key .key.target{background:#7c4dcc}.goal-moves{padding:0 0 8px}.goal-moves h2{margin:0;padding:16px 20px 8px;font-size:16px;font-weight:650}.goal-moves ul,.debts ul{margin:0;padding:0;list-style:none}.goal-moves li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 14px 10px 20px;display:grid}.goal-moves li .money{font-weight:600}.paydown{flex-direction:column;gap:18px;display:flex}.paydown .tiles{margin-bottom:0}.calculator{flex-direction:column;gap:12px;padding:18px 20px;display:flex}.calculator h2,.debts h2{margin:0;font-size:16px;font-weight:650}.calculator-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.calculator-form .field span{color:var(--ink-2);font-size:13px;font-weight:600}.calculator-form select,.calculator-form input{border:1px solid var(--line-strong);background:var(--panel);border-radius:8px;min-width:150px;height:40px;padding:0 10px}.savings{background:var(--positive-soft);border-radius:10px;margin:0;padding:10px 14px}.debts{padding:0 0 8px}.debts h2{padding:16px 20px 8px}.debts li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 200px 130px auto;align-items:center;gap:12px;padding:10px 20px;display:grid}.debts li.excluded{opacity:.6}.debts li .money{text-align:right;font-weight:600}.debt-payoff{flex-direction:column;font-size:14px;display:flex}.debt-payoff .dim{font-size:12px}dialog.sheet .direction{border:0;flex-direction:row;gap:18px;margin:0;padding:0}.investments-main,.investments-side{flex-direction:column;gap:20px;min-width:0;display:flex}.investments-main .net-worth{margin-bottom:0}.twr{margin:6px 0 0;font-size:14px}.twr strong{color:var(--ink);font-weight:650}.allocation{padding:20px 22px}.allocation .title{justify-content:space-between;align-items:baseline;display:flex}.allocation .title h2{margin:0;font-size:17px;font-weight:650}.investments-layout{grid-template-columns:minmax(0,1fr) 340px}.allocation .legend li{align-items:flex-start}.allocation .legend .swatch{flex:none;margin-top:6px}.allocation .legend .value{flex-direction:column;flex:none;align-items:flex-end;display:flex}.allocation .legend .share{font-size:12px}.investment-accounts{padding:18px 20px}.investment-accounts h2{margin:0 0 6px;font-size:17px;font-weight:650}.investment-accounts ul{margin:0;padding:0;list-style:none}.investment-accounts li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:10px 0;display:grid}.investment-accounts li:first-child{border-top:0}.investment-accounts li .button{grid-column:1/-1;justify-self:start}.investment-accounts .due-text .dim{white-space:normal}.holdings{padding:0 0 8px}.holdings-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.holdings-head h2{margin:0;font-size:19px;font-weight:650}.holdings-head h2 .faint{margin-left:6px;font-size:15px;font-weight:500}.holdings-empty{margin:0;padding:18px 22px}.holding-group-head{color:var(--ink-2);justify-content:space-between;padding:14px 22px 6px;font-size:13px;font-weight:650;display:flex}.holding-group ul{margin:0;padding:0;list-style:none}.holding-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1.3fr) 72px;align-items:center;gap:12px;padding:10px 22px;font-size:15px;display:grid}.holding-row.holding-columns{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;border-top:0;padding-top:12px;padding-bottom:0;font-size:12px;font-weight:600}.holding-row>span{flex-direction:column;gap:2px;min-width:0;display:flex}.holding-row .dim{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.holding-row .symbol{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.holding-row>.holding-quantity,.holding-row>.holding-price,.holding-row>.holding-value{text-align:right;align-items:flex-end}.holding-row .delta{font-size:13px;font-weight:600}.holding-row .delta.good{color:var(--positive)}.holding-row .delta.bad{color:var(--negative)}.holding-row>.holding-actions{flex-direction:row;justify-content:flex-end;gap:2px}.icon-action{width:32px;height:32px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.icon-action:hover{background:var(--shelf);color:var(--ink)}.icon-action svg{width:16px;height:16px}@media (max-width:900px){.holding-row{grid-template-columns:minmax(0,1fr) auto 72px}.holding-row>.holding-quantity,.holding-row>.holding-price{display:none}}.tiles.five{grid-template-columns:repeat(5,minmax(0,1fr))}.property-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.property-card{color:inherit;flex-direction:column;gap:6px;padding:20px 22px;text-decoration:none;display:flex}.property-card:hover{border-color:var(--ink-3)}.property-head{align-items:center;gap:8px;display:flex}.property-name{font-size:18px;font-weight:650}.property-card .widget-pairs dd{font-size:19px}.real-estate-layout{grid-template-columns:minmax(0,1fr) 340px}.real-estate-main,.real-estate-side{flex-direction:column;gap:20px;min-width:0;display:flex}.statement-card,.property-costs,.property-value{padding:18px 20px}.statement-card{overflow-x:auto}.statement-card h2,.property-costs h2,.property-value h2{margin:0 0 10px;font-size:17px;font-weight:650}.statement{border-collapse:collapse;width:100%;font-size:15px}.statement th,.statement td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:9px 10px}.statement th:first-child,.statement td:first-child{text-align:left}.statement thead th{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;border-top:0;font-size:12px;font-weight:600}.statement tbody th{font-weight:600}.property-value dl{grid-template-columns:1fr auto;gap:8px 12px;margin:0 0 12px;display:grid}.property-value dt{color:var(--ink-2)}.property-value dd{text-align:right;margin:0;font-weight:600}.property-value ul{margin:0;padding:0;list-style:none}.property-value li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;display:flex}.account-choices{border:0;flex-direction:column;gap:8px;max-height:320px;margin:0;padding:0;display:flex;overflow-y:auto}.account-choices label{align-items:center;gap:10px;font-size:15px;display:flex}@media (max-width:900px){.tiles.five{grid-template-columns:repeat(2,minmax(0,1fr))}}.warn{color:#b07d10}.bot-spark{width:100%;height:40px;margin-bottom:20px;display:block}.bot-sections{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;margin-bottom:16px;display:grid}.bot-section{padding:18px 20px}.bot-section h2{margin:0 0 10px;font-size:17px;font-weight:650}.bot-rows{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bot-rows>li{border-top:1px solid var(--line);padding:8px 0}.bot-rows>li:first-child{border-top:0}.bot-row{align-items:baseline;gap:8px;font-size:14px;display:flex}.bot-label{flex:none;font-weight:650}.bot-tag{color:var(--ink-2);background:var(--shelf);border-radius:999px;flex:none;padding:1px 8px;font-size:12px;font-weight:600}.bot-text{min-width:0;color:var(--ink-2);flex:1}.bot-row .num{flex:none;font-weight:600}.bot-subhead h3{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;margin:4px 0 0;font-size:12px;font-weight:600}.bot-note{margin:10px 0 0;font-size:13px}.bot-rows .bar{margin-top:6px}@media (prefers-color-scheme:dark){.warn{color:#d9a441}}.rent-payments{margin-top:12px;font-size:13px}.rent-payments th,.rent-payments td{padding:6px 8px}
