:root{--accent: #1f9d8a;--accent-deep: #0f7a6b;--warn: #c45c26;--radius: 18px;--font-display: "Outfit", "DM Sans", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--safe-extra-top: .35rem;--safe-extra-bottom: .35rem;--nav-height: 0px;--drawer-nav-width: min(18rem, 86vw);--desktop-nav-width: 240px;--content-max: 480px;--chrome-glass-size: 2.5rem;--bg-deep: #d5e0ec;--bg-mid: #e8eef5;--bg-end: #f3f6f9;--bg-soft: #c5d4e4;--wash-teal: rgba(31, 157, 138, .18);--wash-blue: rgba(70, 130, 180, .14);--surface: rgba(255, 255, 255, .94);--surface-solid: #ffffff;--ink: #0b1f33;--ink-muted: #5a6b7d;--line: rgba(11, 31, 51, .12);--shadow: 0 14px 32px rgba(11, 31, 51, .12);--field-bg: #ffffff;--chrome-fg: #0b1f33;--chrome-fg-muted: rgba(11, 31, 51, .62);--chrome-border: rgba(11, 31, 51, .16);--chrome-control-bg: rgba(11, 31, 51, .06);--chrome-control-arrow: rgba(11, 31, 51, .75);--nav-bg: rgba(244, 247, 250, .9);--nav-border: rgba(11, 31, 51, .1);--nav-fg: rgba(11, 31, 51, .55);--nav-fg-active: #0b1f33;--nav-active-bg: rgba(31, 157, 138, .18);--page-error: #9a3412;--chip-bg: rgba(11, 31, 51, .08);--secondary-btn-bg: rgba(15, 47, 36, .08);--bar-track: rgba(15, 47, 36, .08);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg-deep: #071525;--bg-mid: #0b1f33;--bg-end: #10253c;--bg-soft: #14314d;--wash-teal: rgba(31, 157, 138, .28);--wash-blue: rgba(70, 130, 180, .18);--surface: rgba(244, 247, 250, .96);--surface-solid: #f4f7fa;--ink: #0b1f33;--ink-muted: #5a6b7d;--line: rgba(11, 31, 51, .12);--shadow: 0 18px 40px rgba(4, 12, 24, .35);--field-bg: #ffffff;--chrome-fg: #f4f7fa;--chrome-fg-muted: rgba(244, 247, 250, .72);--chrome-border: rgba(244, 247, 250, .28);--chrome-control-bg: rgba(244, 247, 250, .12);--chrome-control-arrow: rgba(244, 247, 250, .85);--nav-bg: rgba(7, 21, 37, .92);--nav-border: rgba(244, 247, 250, .14);--nav-fg: rgba(244, 247, 250, .65);--nav-fg-active: #ffffff;--nav-active-bg: rgba(31, 157, 138, .22);--page-error: #ffb4a2;--chip-bg: rgba(244, 247, 250, .14);--secondary-btn-bg: rgba(15, 47, 36, .08);--bar-track: rgba(15, 47, 36, .08);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{height:100%;height:-webkit-fill-available;overscroll-behavior-y:none}html,body,#root{min-height:100%;min-height:100dvh;min-height:-webkit-fill-available}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1000px 520px at 8% -8%,var(--wash-teal),transparent 55%),radial-gradient(900px 480px at 100% 0%,var(--wash-blue),transparent 50%),linear-gradient(165deg,var(--bg-deep),var(--bg-mid) 48%,var(--bg-end) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;padding:0;background-color:var(--bg-deep);overscroll-behavior-y:none}button,input,select{font:inherit}a{color:inherit}.app-frame{min-height:100dvh;display:flex;flex-direction:column;overscroll-behavior-y:none}.app-main{flex:1;min-width:0}.app-shell{width:min(100%,var(--content-max));margin:0 auto;touch-action:pan-y;padding-top:calc(.85rem + constant(safe-area-inset-top) + var(--safe-extra-top));padding-top:calc(.85rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));padding-right:calc(1rem + constant(safe-area-inset-right));padding-right:calc(1rem + env(safe-area-inset-right,0px));padding-bottom:calc(var(--nav-height) + constant(safe-area-inset-bottom) + 1rem + var(--safe-extra-bottom));padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + 1rem + var(--safe-extra-bottom));padding-left:calc(1rem + constant(safe-area-inset-left));padding-left:calc(1rem + env(safe-area-inset-left,0px))}.app-shell-pull-ready,.app-shell-pulling,body.is-pulling-refresh .app-shell{touch-action:none}.brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;color:var(--chrome-fg);margin:0}.brand-sub{margin:.35rem 0 0;color:var(--chrome-fg-muted);font-size:.95rem}.brand-lockup{display:flex;align-items:center;gap:.85rem}.brand-lockup .brand{font-size:clamp(1.75rem,7vw,2.35rem);line-height:1.05}.brand-text{display:grid;gap:.2rem}.brand-tagline{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.brand-mark{flex-shrink:0;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22))}.page-brand{display:flex;align-items:center;gap:.65rem}.page-brand .brand{font-size:1.45rem}.panel{background:var(--surface);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);animation:rise .42s ease both}.panel-tappable{cursor:pointer;transition:box-shadow .16s ease,transform .16s ease}.panel-tappable:hover{box-shadow:0 16px 36px #0b1f3329}.panel-tappable:focus-visible{outline:2px solid rgba(31,157,138,.55);outline-offset:2px}.card-summary-total{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.02em;margin:.15rem 0 .65rem;font-variant-numeric:tabular-nums}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.rise-1{animation:rise .42s ease both;animation-delay:40ms}.rise-2{animation:rise .42s ease both;animation-delay:.1s}.rise-3{animation:rise .42s ease both;animation-delay:.16s}.rise-4{animation:rise .42s ease both;animation-delay:.22s}.skeleton-stack{display:grid;gap:.65rem}.skeleton{border-radius:10px;background:linear-gradient(90deg,#0b1f330f,#0b1f331f,#0b1f330f 90%);background-size:200% 100%;animation:shimmer 1.35s ease-in-out infinite}.skeleton-hero{height:2.8rem;width:55%;border-radius:12px}.skeleton-line{height:.85rem;width:100%}.skeleton-short{width:62%}.skeleton-title{height:1.6rem;width:10rem;margin:0 auto}@media(prefers-color-scheme:dark){.skeleton{background:linear-gradient(90deg,#f4f7fa14,#f4f7fa29,#f4f7fa14 90%);background-size:200% 100%}}@media(prefers-reduced-motion:reduce){.panel,.rise-1,.rise-2,.rise-3,.rise-4,.hero-total,.skeleton,.settings-route-forward,.settings-route-back{animation:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}.stack{display:grid;gap:.85rem}.field{display:grid;gap:.35rem;min-width:0}.field label{font-size:.85rem;color:var(--ink-muted);font-weight:500}.field input,.field select{width:100%;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem;background:var(--field-bg);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid rgba(31,157,138,.45);border-color:var(--accent)}.btn{border:0;border-radius:12px;padding:.9rem 1.1rem;font-weight:600;cursor:pointer;transition:transform .16s ease,background .16s ease,opacity .16s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-deep);color:#fff}.btn-primary:hover:not(:disabled){background:#0c6559}.btn-secondary{background:var(--secondary-btn-bg);color:var(--ink)}.btn-ghost{background:transparent;color:var(--chrome-fg);border:1px solid var(--chrome-border)}.btn-danger{background:#c45c261f;color:var(--warn)}.btn-apple{background:#000;color:#fff}.btn-apple:hover:not(:disabled){background:#111}.link-btn{border:0;background:transparent;color:var(--accent-deep);font-weight:600;font-size:.9rem;padding:0;text-align:left;cursor:pointer}.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;color:var(--ink-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line)}.error{color:var(--warn);font-size:.9rem;margin:0}.error-on-page,.app-shell>.error{color:var(--page-error);font-size:.9rem;margin:0}.muted{color:var(--ink-muted);font-size:.9rem}.hero-total{font-family:var(--font-display);font-size:clamp(2.4rem,10vw,3.2rem);font-weight:700;letter-spacing:-.03em;margin:.2rem 0;animation:pulse-soft 2.8s ease-in-out 1}.section-title{font-family:var(--font-display);font-size:1.15rem;margin:0 0 .75rem}.list{display:grid;gap:.65rem}.list-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.55rem 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.amount-credit,.sheet-amount.amount-credit{color:var(--accent-deep)}.chrome-glass-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--chrome-glass-size);height:var(--chrome-glass-size);margin:0;padding:0;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:linear-gradient(155deg,#ffffff8c,#ffffff38 45%,#ffffff24);color:var(--chrome-fg);backdrop-filter:saturate(1.55) blur(18px);-webkit-backdrop-filter:saturate(1.55) blur(18px);box-shadow:inset 0 1px #ffffffa6,inset 0 -1px #0b1f330f,0 6px 16px #0b1f331a;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .14s ease,background .16s ease,box-shadow .16s ease}.chrome-glass-btn:hover,.chrome-glass-btn:focus-visible{background:linear-gradient(155deg,#ffffffad,#ffffff4d,#ffffff2e);outline:none}.chrome-glass-btn:active{transform:scale(.96)}.chrome-glass-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.chrome-glass-btn svg{display:block;flex-shrink:0}.nav-menu-btn{position:fixed;z-index:70;top:calc(.85rem + constant(safe-area-inset-top) + var(--safe-extra-top) + (34px - var(--chrome-glass-size)) / 2);top:calc(.85rem + env(safe-area-inset-top,0px) + var(--safe-extra-top) + (34px - var(--chrome-glass-size)) / 2);left:calc(.55rem + constant(safe-area-inset-left));left:calc(.55rem + env(safe-area-inset-left,0px))}.nav-menu-icon{width:1.2rem;height:1.2rem;display:block}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0715256b;opacity:0;pointer-events:none;transition:opacity .22s ease}.nav-backdrop.is-visible{opacity:1;pointer-events:auto}.nav{position:fixed;z-index:60;top:0;left:0;bottom:0;width:var(--drawer-nav-width);display:flex;flex-direction:column;gap:1.25rem;padding-top:calc(1.1rem + constant(safe-area-inset-top) + var(--safe-extra-top));padding-top:calc(1.1rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));padding-right:1rem;padding-bottom:calc(1rem + constant(safe-area-inset-bottom) + var(--safe-extra-bottom));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px) + var(--safe-extra-bottom));padding-left:calc(1rem + constant(safe-area-inset-left));padding-left:calc(1rem + env(safe-area-inset-left,0px));background:var(--nav-bg);backdrop-filter:saturate(1.2) blur(20px);-webkit-backdrop-filter:saturate(1.2) blur(20px);border-right:1px solid var(--nav-border);box-shadow:8px 0 28px #0b1f332e;transform:translate(-105%);transition:transform .24s cubic-bezier(.22,1,.36,1);pointer-events:none;visibility:hidden}.nav.is-open{transform:translate(0);pointer-events:auto;visibility:visible}.nav-brand{display:block;padding:.35rem .35rem .5rem 3rem}.nav-brand .brand-lockup{align-items:flex-start}.nav-brand .brand{font-size:1.25rem}.nav-brand .brand-tagline{font-size:.62rem;letter-spacing:.1em;max-width:11rem;line-height:1.35}.nav-footer{display:block;margin-top:auto;padding-top:1rem;border-top:1px solid var(--nav-border)}.nav-logout{width:100%;color:var(--nav-fg);border-color:var(--nav-border);background:transparent}.nav-logout:hover:not(:disabled){color:var(--nav-fg-active);background:var(--nav-active-bg)}.nav-links{display:grid;grid-template-columns:1fr;gap:.35rem;width:100%;margin:0}.nav a{text-decoration:none;text-align:left;color:var(--nav-fg);font-size:.95rem;font-weight:600;letter-spacing:0;padding:.75rem .85rem;border-radius:12px;min-height:0;display:flex;align-items:center;gap:.7rem;transition:color .16s ease,background .16s ease,transform .16s ease}.nav-icon{width:1.25rem;height:1.25rem;display:block;flex-shrink:0}.nav a.active{color:var(--nav-fg-active);background:var(--nav-active-bg)}.nav a:active{transform:scale(.97)}body.nav-drawer-open{overflow:hidden;touch-action:none}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.75rem;padding-left:3rem;padding-right:3rem}.top-bar-home{position:relative;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;text-align:center}.page-brand-center{justify-content:center}.top-bar-actions{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-shrink:0;gap:.5rem;max-width:100%}.top-bar-home .top-bar-actions{margin-left:0;width:100%}.month-select-wrap{display:inline-flex;align-items:center;min-width:0;max-width:100%}.month-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.5);background:linear-gradient(45deg,transparent 50%,var(--chrome-control-arrow) 50%) calc(100% - .85rem) calc(50% - .18rem) / .4rem .4rem no-repeat,linear-gradient(135deg,var(--chrome-control-arrow) 50%,transparent 50%) calc(100% - .55rem) calc(50% - .18rem) / .4rem .4rem no-repeat,linear-gradient(155deg,#ffffff8c,#ffffff38 45%,#ffffff24);color:var(--chrome-fg);font-family:var(--font-body);font-size:.85rem;font-weight:600;line-height:1.2;padding:.5rem 1.75rem .5rem .9rem;border-radius:999px;max-width:min(12rem,calc(100vw - 5rem));min-height:var(--chrome-glass-size);backdrop-filter:saturate(1.55) blur(18px);-webkit-backdrop-filter:saturate(1.55) blur(18px);box-shadow:inset 0 1px #ffffffa6,inset 0 -1px #0b1f330f,0 6px 16px #0b1f331a;cursor:pointer}.month-select:focus{outline:2px solid rgba(31,157,138,.45);outline-offset:2px}.month-select option{color:var(--ink);background:var(--surface-solid)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.top-bar-actions .btn-ghost{white-space:nowrap;min-height:2.35rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;background:var(--chip-bg);color:var(--chrome-fg);font-size:.8rem;font-weight:600}.filters{display:grid;gap:.65rem;margin-bottom:1rem;min-width:0;max-width:100%}.txn-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.8rem;color:var(--ink-muted)}.date-group{margin:1rem 0 .35rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--chrome-fg-muted)}.auth-wrap{min-height:100dvh;min-height:-webkit-fill-available;display:grid;align-content:center;gap:1.25rem;padding-top:calc(1.5rem + constant(safe-area-inset-top) + var(--safe-extra-top));padding-top:calc(1.5rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));padding-right:calc(1rem + constant(safe-area-inset-right));padding-right:calc(1rem + env(safe-area-inset-right,0px));padding-bottom:calc(2rem + constant(safe-area-inset-bottom) + var(--safe-extra-bottom));padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px) + var(--safe-extra-bottom));padding-left:calc(1rem + constant(safe-area-inset-left));padding-left:calc(1rem + env(safe-area-inset-left,0px));max-width:440px;margin:0 auto;overscroll-behavior-y:none;touch-action:pan-y}.auth-confirm-panel .section-title{line-height:1.25}.loading-screen{box-sizing:border-box;width:100%;min-height:100vh;min-height:100svh;min-height:100dvh;height:100vh;height:100svh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:calc(1rem + constant(safe-area-inset-top) + var(--safe-extra-top));padding-top:calc(1rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));padding-right:calc(1rem + constant(safe-area-inset-right));padding-right:calc(1rem + env(safe-area-inset-right,0px));padding-bottom:calc(1rem + constant(safe-area-inset-bottom) + var(--safe-extra-bottom));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px) + var(--safe-extra-bottom));padding-left:calc(1rem + constant(safe-area-inset-left));padding-left:calc(1rem + env(safe-area-inset-left,0px))}.loading-screen-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;text-align:center;animation:rise .42s ease both}.loading-screen-inner .brand-lockup{justify-content:center;flex-direction:column;gap:.65rem}.loading-screen-inner .brand-text{text-align:center;justify-items:center}.loading-wheel{width:2.75rem;height:2.75rem;margin-top:.15rem}.loading-wheel-svg{width:100%;height:100%;display:block;animation:loading-spin .85s linear infinite}.loading-wheel-track{stroke:#1f9d8a2e}.loading-wheel-arc{stroke:var(--accent-deep);stroke-dasharray:70 113;transform-origin:center}.loading-screen-label{margin:0;color:var(--chrome-fg-muted);font-size:.95rem;font-weight:600;letter-spacing:.02em}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(prefers-color-scheme:dark){.loading-wheel-track{stroke:#f4f7fa29}.loading-wheel-arc{stroke:var(--accent)}}@media(prefers-reduced-motion:reduce){.loading-wheel-svg{animation:none}.loading-wheel-arc{stroke-dasharray:90 113;opacity:.85}}.auth-wrap .brand{font-size:clamp(2.4rem,11vw,3.2rem);line-height:1.05}.invite-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;letter-spacing:.12em;font-weight:700}.empty{text-align:center;padding:1.5rem .5rem;color:var(--ink-muted)}.empty-rich{display:grid;justify-items:center;gap:.45rem;padding:1.35rem .75rem 1.1rem}.empty-mark{color:var(--accent-deep);margin-bottom:.15rem;animation:pulse-soft 2.8s ease-in-out 1}.empty-title{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--ink)}.empty-body{margin:0;max-width:22rem;font-size:.9rem;line-height:1.4;color:var(--ink-muted)}.empty-action{margin-top:.55rem;text-decoration:none}.brand-sub-center{text-align:center;margin:0}body.is-pulling-refresh{user-select:none;-webkit-user-select:none;cursor:grabbing;overscroll-behavior-y:none;touch-action:none}.app-shell-pulling{will-change:transform;transition:none;backface-visibility:hidden}.app-shell-pull-settle{will-change:transform;transition:transform .42s cubic-bezier(.16,1,.3,1)}.app-shell-pull-armed .brand{color:var(--accent-deep)}.pull-overscroll-band{position:fixed;left:50%;top:0;z-index:1500;width:min(100%,var(--content-max));transform:translate(-50%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:1.15rem;padding-top:calc(.55rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));pointer-events:none;box-sizing:border-box;background:linear-gradient(180deg,rgba(15,122,107,.14),rgba(15,122,107,.02) 70%,transparent)}.pull-overscroll-band.is-armed{background:linear-gradient(180deg,rgba(15,122,107,.22),rgba(15,122,107,.04) 70%,transparent)}.pull-overscroll-chevron{width:.85rem;height:.85rem;border-right:2.75px solid var(--accent-deep);border-bottom:2.75px solid var(--accent-deep);transform:rotate(45deg);opacity:.9;margin-top:.55rem;margin-bottom:.45rem;filter:drop-shadow(0 1px 1px rgba(11,31,51,.18))}.pull-overscroll-band.is-armed .pull-overscroll-chevron{opacity:1;transform:rotate(45deg) scale(1.08)}@media(min-width:900px){.pull-overscroll-band{left:calc((100% + var(--desktop-nav-width)) / 2)}}.sync-loading-bar{position:fixed;left:0;right:0;top:0;z-index:2100;height:3px;background:#0f7a6b2e;overflow:hidden;pointer-events:none}.sync-loading-bar-fill{display:block;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-deep),transparent);animation:sync-bar-slide 1.05s ease-in-out infinite}@keyframes sync-bar-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}.sync-bubble{--sync-hold: 1.5s;--sync-drop: .56s;--sync-above-logo: 0px;--sync-bubble-bg: #0f7a6b;position:fixed;left:50%;top:calc(.45rem + env(safe-area-inset-top,0px) + var(--safe-extra-top) + var(--sync-above-logo));z-index:2000;width:max-content;max-width:min(22rem,calc(100vw - 2rem));padding:.7rem 1.25rem;border-radius:999px;font-family:var(--font-body);font-size:.92rem;font-weight:600;letter-spacing:-.01em;text-align:center;background:var(--sync-bubble-bg);background-color:var(--sync-bubble-bg);opacity:1;box-shadow:0 10px 28px #0b1f3347,0 0 0 1px #0f7a6b59;pointer-events:none;color:#f4f7fa;transform:translate3d(-50%,0,0);animation:sync-bubble-in var(--sync-drop) cubic-bezier(.22,.72,.28,1) both;perspective:600px;will-change:transform;isolation:isolate}.sync-bubble-inner{display:inline-block;transform-origin:center}.sync-bubble-prompt{background:var(--sync-bubble-bg);background-color:var(--sync-bubble-bg);color:#f4f7fa;opacity:1}.sync-bubble-syncing,.sync-bubble-drop{background:var(--sync-bubble-bg);background-color:var(--sync-bubble-bg);color:#f4f7fa;animation:sync-bubble-in var(--sync-drop) cubic-bezier(.22,.72,.28,1) both;opacity:1}.sync-bubble-success{background:var(--sync-bubble-bg);background-color:var(--sync-bubble-bg);color:#f4f7fa;opacity:1;animation:sync-bubble-hold-out var(--sync-hold) cubic-bezier(.33,.12,.25,1) both}.sync-bubble-success .sync-bubble-inner,.sync-bubble-flip .sync-bubble-inner{animation:sync-bubble-flip .56s cubic-bezier(.22,.72,.28,1) both}.sync-ellipsis{display:inline-block;overflow:hidden;vertical-align:bottom;width:0;letter-spacing:.02em;animation:sync-ellipsis-grow 1.2s steps(4,end) infinite}@keyframes sync-ellipsis-grow{0%{width:0}to{width:1.15em}}@media(prefers-reduced-motion:reduce){.sync-ellipsis{animation:none;width:1.15em}}.sync-bubble-error{background:var(--warn);color:#fff8f4;animation:sync-bubble-in var(--sync-drop) cubic-bezier(.22,.72,.28,1) both,sync-bubble-hold-out var(--sync-hold) cubic-bezier(.33,.12,.25,1) both}@keyframes sync-bubble-in{0%{opacity:1;transform:translate3d(-50%,-2.1rem,0)}to{opacity:1;transform:translate3d(-50%,0,0)}}@keyframes sync-bubble-flip{0%{transform:rotateX(0);opacity:1}45%{transform:rotateX(90deg);opacity:.35}55%{transform:rotateX(-90deg);opacity:.35}to{transform:rotateX(0);opacity:1}}@keyframes sync-bubble-hold-out{0%,72%{opacity:1;transform:translate3d(-50%,0,0)}to{opacity:0;transform:translate3d(-50%,-1.85rem,0)}}.toast{--toast-duration: 1.5s;position:fixed;left:50%;top:calc(.85rem + constant(safe-area-inset-top) + var(--safe-extra-top));top:calc(.85rem + env(safe-area-inset-top,0px) + var(--safe-extra-top));z-index:2000;width:max-content;max-width:min(22rem,calc(100vw - 2rem));padding:.7rem 1.25rem;border-radius:999px;font-family:var(--font-body);font-size:.92rem;font-weight:600;letter-spacing:-.01em;text-align:center;box-shadow:var(--shadow);pointer-events:none;animation:toast-bubble var(--toast-duration) cubic-bezier(.22,1,.36,1) forwards}.toast-success{background:var(--accent-deep);color:#f4f7fa}.toast-error{background:var(--warn);color:#fff8f4}@keyframes toast-bubble{0%{opacity:0;transform:translate(-50%,-120%)}16%{opacity:1;transform:translate(-50%)}78%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-120%)}}@media(min-width:900px){.toast{left:calc((100% + var(--desktop-nav-width)) / 2);top:.65rem}.sync-bubble{left:calc((100% + var(--desktop-nav-width)) / 2);top:calc(.4rem + var(--sync-above-logo))}.sync-loading-bar{left:var(--desktop-nav-width)}}.status-ok{margin:0 0 .85rem;padding:.7rem .9rem;border-radius:12px;background:#1f9d8a24;color:var(--accent-deep);font-size:.9rem;font-weight:600;animation:rise .32s ease both}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;border-radius:14px;background:#0b1f330f}.segmented-btn{border:0;border-radius:11px;padding:.7rem .85rem;font-weight:600;cursor:pointer;background:transparent;color:var(--ink-muted);transition:background .16s ease,color .16s ease,box-shadow .16s ease}.segmented-btn.active{background:var(--surface-solid);color:var(--ink);box-shadow:0 4px 14px #0b1f331a}.category-add-form{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin:.35rem 0 1rem}.category-add-form .category-rename-input{flex:1 1 12rem}.category-rename-list{display:grid;gap:.85rem;margin-top:.35rem}.category-rename-row{display:grid;gap:.45rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}.category-rename-row:last-child{border-bottom:0;padding-bottom:0}.category-rename-meta{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;font-size:.82rem}.category-rename-source{font-weight:600;color:var(--ink-muted)}.category-rename-controls{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.category-rename-input{flex:1 1 10rem;min-width:0;border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;background:var(--field-bg);color:var(--ink)}.category-rename-input:focus{outline:2px solid rgba(31,157,138,.45);border-color:var(--accent)}.settings-logout{margin-top:.25rem}.settings-logout-btn{width:100%}.empty a,.text-link{color:var(--accent-deep);font-weight:600;text-decoration:none}.text-link.subtle{font-size:.85rem;color:var(--ink-muted)}.hero-panel .text-link{display:inline-block;margin-top:.35rem}.search-shell{margin-bottom:1rem;display:grid;gap:.75rem;min-width:0;max-width:100%;overflow-x:clip}.search-row{position:relative;min-width:0;max-width:100%}.search-input{width:100%;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:14px;padding:.95rem 2.4rem .95rem 1rem;background:var(--field-bg);color:var(--ink);font-size:1rem}.search-input:focus{outline:2px solid rgba(31,157,138,.45);border-color:var(--accent)}.search-clear{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--ink-muted);font-size:1.4rem;line-height:1;width:2rem;height:2rem;cursor:pointer}.preset-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem}.preset-chips,.active-chips,.filter-toolbar{display:flex;flex-wrap:wrap;gap:.45rem}.preset-chips{flex:1 1 0;min-width:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.preset-chips::-webkit-scrollbar{display:none}.preset-chips .chip-btn{flex:0 0 auto}@media(max-width:420px){.preset-row{gap:.35rem}.preset-chips{gap:.3rem}.preset-chips .chip-btn{padding:.35rem .5rem;font-size:.72rem}.filter-funnel-btn{width:2.1rem;height:2.1rem}}.chip-btn,.filter-chip{border:0;border-radius:999px;padding:.4rem .75rem;font-size:.8rem;font-weight:600;background:var(--secondary-btn-bg);color:var(--ink);cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.chip-btn:active{transform:scale(.97)}.chip-btn-active{background:#1f9d8a38;color:var(--accent-deep);box-shadow:inset 0 0 0 1px #0f7a6b59}.filter-funnel-btn{position:relative;flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;padding:0;border:0;border-radius:999px;background:var(--secondary-btn-bg);color:var(--ink);cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.filter-funnel-btn:active{transform:scale(.96)}.filter-funnel-btn-open,.filter-funnel-btn-active{background:#1f9d8a38;color:var(--accent-deep);box-shadow:inset 0 0 0 1px #0f7a6b59}.filter-funnel-count{position:absolute;top:-.15rem;right:-.15rem;min-width:1.05rem;height:1.05rem;padding:0 .25rem;border-radius:999px;background:var(--accent-deep);color:#fff;font-size:.65rem;font-weight:700;line-height:1.05rem;text-align:center}.filter-chip{background:#558b2f24;color:var(--accent-deep);cursor:default}.btn-compact{padding:.55rem .85rem;font-size:.85rem}.filters-expanded,.filters-dropdown{margin:0;padding-top:.25rem;border-top:1px solid var(--line);min-width:0;max-width:100%}.filters-dropdown{width:100%;min-width:0;padding:.85rem 0 .25rem;animation:filter-drop .22s ease}@keyframes filter-drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.filters-dropdown-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.15rem}.filters-dropdown-title{font-size:.85rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-muted)}.filters-clear-link{border:0;background:transparent;padding:.35rem 0;font:inherit;font-size:.9rem;font-weight:600;color:var(--accent-deep);cursor:pointer}.filters-dropdown .field label,.filters-dropdown .field-label{font-size:.85rem;color:var(--ink-muted);font-weight:500}.filters-dropdown .field input,.filters-dropdown .field select{width:100%;min-height:2.85rem;font-size:1rem;touch-action:manipulation}.filters-dropdown .field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%236B7C8F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.4rem}.status-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.25rem;border-radius:14px;background:var(--secondary-btn-bg)}.status-seg-btn{border:0;border-radius:11px;min-height:2.55rem;padding:.55rem .35rem;font-size:.9rem;font-weight:600;background:transparent;color:var(--ink-muted);cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.status-seg-btn:active{transform:scale(.97)}.status-seg-btn-active{background:var(--surface-solid);color:var(--accent-deep);box-shadow:0 1px 3px #0b1f331f}.field-grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;min-width:0;max-width:100%}.field-grid-2>.field{min-width:0}.field-grid-2 input[type=date]{min-width:0;max-width:100%}@media(max-width:360px){.field-grid-2{grid-template-columns:1fr}}@media(max-width:380px){.filters-dropdown .field-grid-2{grid-template-columns:1fr}}.panel-tight{padding:.85rem 1.1rem}.day-group-total{margin-top:.55rem;padding-top:.65rem;border-top:1px solid var(--line)}.day-group-total-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.day-group-total-label-wrap{position:relative;display:inline-flex;align-items:center;gap:.35rem;min-width:0}.day-group-total-label{font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--ink-muted)}.day-group-total-amount{font-variant-numeric:tabular-nums;font-weight:700;font-size:.95rem;color:var(--ink);white-space:nowrap}.day-group-total-amount.amount-credit{color:var(--accent-deep)}.day-total-help-btn{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--secondary-btn-bg);color:var(--ink-muted);font-size:.72rem;font-weight:700;line-height:1;cursor:help;transition:background .16s ease,color .16s ease,border-color .16s ease}.day-total-help-btn:hover,.day-total-help-btn-open{color:var(--accent-deep);border-color:#0f7a6b59;background:#1f9d8a24}.day-total-help{position:absolute;left:0;bottom:calc(100% + .45rem);z-index:5;width:min(16.5rem,72vw);padding:.65rem .75rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-solid);color:var(--ink);font-size:.78rem;font-weight:500;line-height:1.35;box-shadow:0 8px 22px #0b1f3324;animation:day-total-help-in .16s ease}@keyframes day-total-help-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.txn-row{align-items:flex-start}.txn-main{min-width:0}.txn-title{font-weight:600;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.txn-title mark{background:#1f9d8a59;color:inherit;border-radius:3px;padding:0 .1em}.pending-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);background:#c45c261f;border-radius:999px;padding:.15rem .45rem}.month-nav,.month-nav-btn{display:none}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.35rem}.section-head-tight{align-items:center;margin-bottom:.15rem}.section-head .section-title{margin:0}.card-tools{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-radius:10px;background:transparent;color:var(--ink-muted);cursor:pointer;transition:background .16s ease,color .16s ease}.icon-btn:hover,.icon-btn:focus-visible{background:var(--chrome-control-bg);color:var(--ink);outline:none}.icon-btn-active{background:#1f9d8a29;color:var(--accent-deep)}.icon-btn-danger{color:var(--warn);background:#c45c261f}.icon-btn-danger:hover,.icon-btn-danger:focus-visible{color:#fff8f4;background:var(--warn);outline:none}.icon-btn-danger:disabled{opacity:.55}.hero-metric-hint{margin:.15rem 0 .55rem;font-size:.8rem}.pie-dropdown{margin:.65rem 0 .85rem;padding:.75rem .65rem;border-radius:14px;background:#0f2f240a;animation:pie-drop .22s ease}@keyframes pie-drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pie-chart-block{display:flex;flex-direction:column;gap:.65rem;width:100%}.pie-total-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:0 .15rem;font-size:.9rem}.pie-total-label{color:var(--ink-muted);font-weight:600}.pie-total-amount{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}.pie-chart-wrap{display:flex;align-items:flex-start;gap:.85rem;flex-wrap:wrap}.pie-chart{flex-shrink:0;display:block}.pie-slice-pct{fill:#fff;font-size:11px;font-weight:700;font-family:var(--font-body);pointer-events:none;paint-order:stroke fill;stroke:#0b1f3359;stroke-width:2px}.pie-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;min-width:0;flex:1}.pie-legend li{display:flex;align-items:flex-start;gap:.45rem;font-size:.82rem;color:var(--ink);min-width:0}.pie-swatch{width:.65rem;height:.65rem;border-radius:3px;flex-shrink:0;margin-top:.28rem}.pie-legend-main{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.pie-legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.pie-legend-meta{display:flex;justify-content:space-between;gap:.75rem;font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:.78rem}.pie-legend-pct{font-weight:700;color:var(--ink)}.pie-legend-amount{font-weight:600}.pie-empty{padding:.75rem .25rem;text-align:center;font-size:.9rem}.visibility-option{cursor:pointer}.visibility-option-text{display:flex;flex-direction:column;gap:.1rem;min-width:0;text-align:left}.visibility-option-detail{font-size:.8rem;font-variant-numeric:tabular-nums}.visibility-sheet-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.35rem;flex-shrink:0}.list-link{text-decoration:none;color:inherit;display:flex;transition:background .16s ease;border-radius:10px;margin:0 -.35rem;padding-left:.35rem;padding-right:.35rem}.list-link:active{background:#0f2f240d}.bar-block{width:100%}.list-row-top{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.bar-track{margin-top:.35rem;height:6px;border-radius:999px;background:var(--bar-track);overflow:hidden}.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-deep),var(--accent));transition:width .42s ease}.bar-fill-soft{background:linear-gradient(90deg,#0f7a6b,#3db8a4)}.list-link .bar-block+.amount,.list-link>.amount{flex-shrink:0}.list-link.list-row{align-items:center}.plaid-wizard-hero{margin-bottom:1rem}.plaid-wizard-eyebrow{margin:0 0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep)}.plaid-wizard-title{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--ink);line-height:1.2}.plaid-wizard-lead{margin:0 0 1.1rem;max-width:28rem;line-height:1.45}.plaid-wizard-steps{list-style:none;margin:0 0 1.15rem;padding:0;display:grid;gap:.7rem}.plaid-wizard-steps li{display:flex;align-items:flex-start;gap:.7rem;font-size:.92rem;line-height:1.4;color:var(--ink)}.plaid-wizard-step-num{flex-shrink:0;width:1.55rem;height:1.55rem;border-radius:999px;display:grid;place-items:center;font-size:.75rem;font-weight:700;background:#1f9d8a29;color:var(--accent-deep)}.plaid-wizard-cta{margin-top:.25rem}.plaid-wizard-alt{margin:1rem 0 0;font-size:.85rem}.plaid-panel .muted{margin-top:0}.plaid-connect{margin-top:.85rem}.plaid-connect-btn{width:100%;min-height:3rem;font-size:1rem}.plaid-connect-hint{margin:0;font-size:.8rem;line-height:1.4}.mobile-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.mobile-row:last-child{border-bottom:0}.mobile-row-main{min-width:0;flex:1}.mobile-row .amount{flex-shrink:0;padding-top:.1rem}.mobile-row .btn-compact{flex-shrink:0;align-self:center}.migration-banner{margin-bottom:1rem;border:1px solid rgba(196,92,38,.28);background:#c45c2614}.migration-banner-title{margin:0 0 .35rem;font-size:.95rem;font-weight:700;color:var(--page-error)}.migration-banner-body{margin:0;font-size:.85rem;line-height:1.45;word-break:break-word}.cat-accounts-block+.cat-accounts-block{border-top:1px solid var(--line)}.cat-accounts-row{width:100%;margin:0;border:0;border-bottom:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.cat-accounts-row:active{background:#0f2f240d}.cat-accounts-aside{display:flex;align-items:center;gap:.45rem;flex-shrink:0;padding-top:.1rem}.cat-accounts-dash{font-size:.9rem}.cat-accounts-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted);font-size:.75rem;width:.85rem;text-align:center;transform:rotate(0);transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s ease}.cat-accounts-row-open{background:#0f2f240a}.cat-accounts-row-open .cat-accounts-chevron{transform:rotate(90deg);color:var(--accent-deep, var(--accent))}.cat-accounts-reveal{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1)}.cat-accounts-reveal.is-open{grid-template-rows:1fr}.cat-accounts-reveal-inner{overflow:hidden;min-height:0;opacity:0;transform:translateY(-.35rem);transition:opacity .28s cubic-bezier(.22,1,.36,1) .02s,transform .34s cubic-bezier(.22,1,.36,1)}.cat-accounts-reveal.is-open .cat-accounts-reveal-inner{opacity:1;transform:translateY(0)}.cat-accounts-txns{padding:0 0 .65rem .35rem;margin:0 0 .15rem;border-left:2px solid rgba(31,157,138,.28)}.cat-accounts-txn-list{max-height:min(42vh,18rem);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.cat-accounts-empty,.cat-accounts-hint{margin:.45rem 0 .15rem;font-size:.8rem}@media(prefers-reduced-motion:reduce){.cat-accounts-reveal,.cat-accounts-reveal-inner,.cat-accounts-chevron{transition:none}}@media(min-width:900px){:root{--content-max: 1040px;--nav-height: 0px}.app-frame{flex-direction:row;align-items:stretch}.nav-menu-btn,.nav-backdrop{display:none!important}.top-bar{padding-left:0;padding-right:0}.nav{position:sticky;top:0;left:auto;right:auto;bottom:auto;width:var(--desktop-nav-width);min-height:100dvh;flex-shrink:0;display:flex;flex-direction:column;gap:1.5rem;padding:1.75rem 1.1rem;border-top:0;border-right:1px solid var(--nav-border);background:var(--nav-bg);box-shadow:none;transform:none;transition:none;pointer-events:auto;visibility:visible}.nav.is-open{transform:none}.nav-brand{padding:0 .35rem .75rem}.settings-logout-btn{width:auto;min-width:10rem}.app-main{flex:1;min-width:0}.app-shell{width:min(100%,var(--content-max));padding:1.75rem 2rem 2.5rem}.auth-wrap{max-width:460px;padding:3rem 1.5rem}.app-shell:has(.dashboard-canvas){display:block}.app-shell:has(.dashboard-canvas[data-columns="2"]),.app-shell:has(.dashboard-canvas[data-columns="3"]){--content-max: 1120px}.app-shell:has(.dashboard-canvas) .dashboard-canvas{display:grid;grid-template-columns:1fr;gap:1rem;align-items:start}.app-shell:has(.dashboard-canvas) .dashboard-canvas[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell:has(.dashboard-canvas) .dashboard-canvas[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.search-shell{position:sticky;top:1rem;z-index:5}.date-group{margin-top:1.25rem}}@media(min-width:1200px){:root{--content-max: 1120px;--desktop-nav-width: 260px}}.settings-menu-you{margin-bottom:1rem}.settings-menu-list{padding:.15rem .85rem}.settings-menu-row{text-decoration:none;color:inherit;align-items:center;padding:.85rem .15rem;gap:.75rem;-webkit-tap-highlight-color:transparent}.settings-menu-row:active{opacity:.72}.settings-menu-row-text{display:grid;gap:.15rem;min-width:0;flex:1}.settings-menu-row-label{font-weight:600}.settings-menu-row-detail{font-size:.85rem}.settings-menu-chevron{color:var(--ink-muted);display:inline-flex;flex-shrink:0}.top-bar-settings{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.35rem;margin-bottom:1rem}.settings-back{display:inline-flex;align-items:center;gap:.1rem;justify-self:start;margin:0;padding:.35rem .2rem .35rem 0;border:0;background:transparent;color:var(--accent-deep);font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.settings-back:active{opacity:.7}.settings-back-icon{width:1.35rem;height:1.35rem;flex-shrink:0}.settings-subpage-title{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--chrome-fg);text-align:center;justify-self:center;white-space:nowrap}.settings-top-spacer{justify-self:end;width:1px;height:1px}.settings-page-body{display:grid;gap:0}@keyframes settings-push-in{0%{transform:translate(100%);opacity:.92}to{transform:translate(0);opacity:1}}@keyframes settings-pop-in{0%{transform:translate(-28%);opacity:.92}to{transform:translate(0);opacity:1}}@supports not (view-transition-name: none){.settings-route-forward{animation:settings-push-in .32s cubic-bezier(.32,.72,0,1) both}.settings-route-back{animation:settings-pop-in .32s cubic-bezier(.32,.72,0,1) both}}@supports (view-transition-name: none){::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.32,.72,0,1)}html[data-nav-dir=forward]::view-transition-old(root){animation-name:settings-vt-out-left}html[data-nav-dir=forward]::view-transition-new(root){animation-name:settings-vt-in-right}html[data-nav-dir=back]::view-transition-old(root){animation-name:settings-vt-out-right}html[data-nav-dir=back]::view-transition-new(root){animation-name:settings-vt-in-left}}@keyframes settings-vt-out-left{to{transform:translate(-28%);opacity:.85}}@keyframes settings-vt-in-right{0%{transform:translate(100%)}}@keyframes settings-vt-out-right{to{transform:translate(100%)}}@keyframes settings-vt-in-left{0%{transform:translate(-28%);opacity:.85}}.txn-row-btn{width:100%;border:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:10px;margin:0 -.35rem;padding-left:.35rem;padding-right:.35rem;transition:background .16s ease;-webkit-tap-highlight-color:transparent}.txn-row-btn:active{background:#0f2f240f}.txn-category-chip{color:var(--accent-deep);text-decoration:underline;text-decoration-color:#0f7a6b59;text-underline-offset:.15em}.txn-cat-edited{color:var(--ink-muted);text-decoration:none}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;margin:0;background:#07152573;cursor:pointer;animation:sheet-fade-in .18s ease}.sheet-panel{position:relative;z-index:1;width:min(100%,var(--content-max));max-height:min(88vh,640px);display:flex;flex-direction:column;background:var(--surface-solid);color:var(--ink);border-radius:22px 22px 0 0;box-shadow:var(--shadow);padding:.35rem 1rem calc(1rem + env(safe-area-inset-bottom,0px) + var(--safe-extra-bottom));animation:sheet-rise-in .22s cubic-bezier(.22,1,.36,1)}.sheet-handle{width:2.5rem;height:.28rem;border-radius:999px;background:var(--line);margin:.35rem auto .65rem}.sheet-header{flex-shrink:0}.sheet-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.sheet-header-top .sheet-title{flex:1;min-width:0}.sheet-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:-.25rem -.35rem 0 0;padding:0;border:0;border-radius:10px;background:transparent;color:var(--ink-muted);font-size:1.55rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .16s ease,color .16s ease}.sheet-close:hover,.sheet-close:focus-visible{background:var(--chrome-control-bg);color:var(--ink);outline:none}.sheet-close:disabled{opacity:.5;cursor:not-allowed}.sheet-title{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.sheet-subtitle{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;margin:.35rem 0 0;font-size:.95rem}.sheet-merchant{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-amount{font-variant-numeric:tabular-nums;font-weight:700;flex-shrink:0}.sheet-current{margin:.35rem 0 0;font-size:.85rem}.sheet-search{flex-shrink:0;margin:.85rem 0 .5rem}.sheet-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.15rem;padding:.15rem 0 .5rem}.sheet-option{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;border:0;background:transparent;font:inherit;color:inherit;text-align:left;padding:.85rem .65rem;border-radius:12px;cursor:pointer;min-height:2.75rem;-webkit-tap-highlight-color:transparent}.sheet-option:active:not(:disabled){background:#1f9d8a1f}.sheet-option-active{background:#1f9d8a29;font-weight:600}.sheet-check{color:var(--accent-deep);font-weight:700}.sheet-footer{flex-shrink:0;display:grid;gap:.55rem;padding-top:.5rem;border-top:1px solid var(--line)}.sheet-footer .btn{width:100%}.sheet-apply-all{display:flex;align-items:flex-start;gap:.65rem;margin:0;padding:.65rem .7rem;border-radius:12px;background:var(--chrome-control-bg);border:1px solid var(--line);font-size:.9rem;line-height:1.35;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.sheet-apply-all input{flex-shrink:0;width:1.1rem;height:1.1rem;margin:.12rem 0 0;accent-color:var(--accent-deep);cursor:pointer}.sheet-apply-all span{min-width:0}.sheet-apply-all strong{font-weight:650}.sheet-apply-all:has(input:disabled){opacity:.55;cursor:not-allowed}.sheet-hint{margin:0;font-size:.85rem}.sheet-inline-error{margin:.35rem 0 0;font-size:.85rem}.dashboard-canvas{display:grid;grid-template-columns:1fr;gap:1rem;align-items:start}.dashboard-card{min-width:0}.dashboard-card .panel{margin-bottom:0;height:100%}.dashboard-card-editing .panel{outline:1px dashed rgba(31,157,138,.45);outline-offset:2px}.dashboard-card-dragging{cursor:grabbing}.dashboard-card-dragging .panel{box-shadow:var(--shadow);outline-color:var(--accent)}.dashboard-card-edit-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem;padding:0 .15rem}.drag-handle{cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.top-bar.top-bar-edit{position:relative;display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%;margin-bottom:1rem;padding-left:0;padding-right:0}.top-bar-edit-start{position:relative;z-index:1;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:.45rem;min-width:0;flex:0 0 auto;margin:0;padding:0}.top-bar-edit .edit-dashboard-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:max-content;max-width:calc(100% - 9.5rem);text-align:center;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-edit-end{position:relative;z-index:1;display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;margin:0 0 0 auto;padding:0}.home-edit-pencil{position:absolute;top:calc((34px - var(--chrome-glass-size)) / 2);right:0;z-index:2}.home-edit-btn{display:none;white-space:nowrap;min-height:2.35rem}@media(min-width:900px){.home-edit-pencil{display:none}.home-edit-btn{display:inline-flex}}.top-bar-edit-start .chrome-glass-btn+.chrome-glass-btn{margin-left:0}.layout-columns-menu{position:relative}.layout-columns-btn.is-open{box-shadow:inset 0 1px #ffffffa6,inset 0 -1px #0b1f330f,0 0 0 2px #1f9d8a59,0 6px 16px #0b1f331a}.layout-columns-popover{position:absolute;top:calc(100% + .35rem);left:0;z-index:20;min-width:11.5rem;padding:.35rem;border-radius:calc(var(--radius) - 4px);border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.15rem}.layout-columns-option{display:flex;align-items:center;gap:.65rem;width:100%;margin:0;padding:.55rem .65rem;border:0;border-radius:calc(var(--radius) - 8px);background:transparent;color:var(--ink);font:inherit;font-size:.92rem;text-align:left;cursor:pointer}.layout-columns-option:hover,.layout-columns-option:focus-visible{background:var(--chrome-control-bg);outline:none}.layout-columns-option.is-active{background:#1f9d8a1f;color:var(--accent-deep, var(--accent));font-weight:600}.layout-columns-preview{display:grid;gap:2px;width:1.35rem;height:1.1rem;flex-shrink:0}.layout-columns-preview[data-cols="1"]{grid-template-columns:1fr}.layout-columns-preview[data-cols="2"]{grid-template-columns:repeat(2,1fr)}.layout-columns-preview[data-cols="3"]{grid-template-columns:repeat(3,1fr)}.layout-columns-preview span{display:block;border-radius:2px;background:currentColor;opacity:.55}.income-panel .hero-total{color:var(--accent-deep, var(--accent))}.add-card-option:disabled{opacity:.55;cursor:not-allowed}.add-card-action{font-weight:700;font-size:1.15rem;color:var(--accent-deep, var(--accent));flex-shrink:0;width:1.5rem;text-align:center}body.dashboard-editing .nav{pointer-events:none;opacity:.45}body.dashboard-editing .nav-menu-btn{pointer-events:none;visibility:hidden;opacity:0}.app-shell-editing{padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px))}@keyframes sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-rise-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:900px){.sheet-root{align-items:center;padding:1.5rem}.sheet-panel{border-radius:var(--radius);max-height:min(80vh,560px);padding-bottom:1.15rem}}.stacked-spend{display:flex;flex-direction:column;gap:.85rem}.stacked-spend-bar{display:flex;width:100%;height:1.35rem;border-radius:999px;overflow:hidden;background:var(--bar-track)}.stacked-spend-seg{display:block;height:100%;min-width:2px}.stacked-spend-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.stacked-spend-legend-row{display:flex;align-items:center;gap:.55rem;font-size:.9rem}.stacked-spend-swatch{width:.7rem;height:.7rem;border-radius:3px;flex-shrink:0}.stacked-spend-legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stacked-spend-legend-meta{display:flex;align-items:baseline;gap:.45rem;flex-shrink:0}.stacked-spend-total{display:flex;justify-content:space-between;align-items:baseline;margin:.15rem 0 0;padding-top:.55rem;border-top:1px solid var(--line);font-weight:650}.stacked-spend-empty{padding:.85rem 0;text-align:center}.budget-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.budget-total-value{margin:.2rem 0 0;font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.budget-over{color:var(--warn)}.budget-list{gap:.85rem}.budget-row{display:flex;flex-direction:column;gap:.45rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}.budget-row:last-child{border-bottom:0;padding-bottom:0}.budget-row-head{display:flex;justify-content:space-between;gap:.75rem}.budget-progress-track{height:.4rem;border-radius:999px;background:var(--bar-track);overflow:hidden}.budget-progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .22s ease}.budget-progress-fill.is-over{background:var(--warn)}.budget-row-edit{display:flex;align-items:center;gap:.55rem}.budget-amount-field{flex:1;display:flex;align-items:center;gap:.25rem;min-width:0;padding:.45rem .65rem;border-radius:12px;border:1px solid var(--chrome-border);background:var(--field-bg)}.budget-amount-prefix{color:var(--ink-muted);font-weight:600}.budget-amount-input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-variant-numeric:tabular-nums;outline:none;color:var(--ink)}
