@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500&family=Inter:wght@400;500;600&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Instrument+Serif&family=DM+Sans:wght@400;500;600&family=DM+Serif+Display&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap";:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", Arial;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-serif:"Fraunces", "Times New Roman", serif;--serif-tracking:-.02em;--serif-weight:500;--sans-feat:"ss01", "cv11";--paper:#f7f5f0;--paper-2:#fffdf8;--paper-3:#efebe2;--line:#1414131a;--line-2:#1414132e;--ink:#141413;--ink-2:#3d3b36;--ink-3:#6b6960;--ink-4:#989489;--credit:oklch(50% .11 155);--credit-soft:oklch(94% .04 155);--credit-line:oklch(78% .08 155);--credit-strong:oklch(42% .13 155);--debit:oklch(50% .15 28);--debit-soft:oklch(95% .03 30);--debit-line:oklch(80% .09 28);--debit-strong:oklch(42% .16 28);--info:oklch(46% .15 250);--info-soft:oklch(94% .04 250);--warn:oklch(55% .13 70);--warn-soft:oklch(94% .05 75);--focus-ring:oklch(55% .16 250/.55);--radius:14px;--radius-sm:8px;--row-pad:16px;--card-pad:24px;--shell-pad-x:28px;--shell-max:1240px;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px}[data-fontset=editorial]{--font-sans:"Geist", ui-sans-serif, system-ui;--font-serif:"Instrument Serif", "Times New Roman", serif;--serif-tracking:-.01em;--serif-weight:400}[data-fontset=warm]{--font-sans:"DM Sans", ui-sans-serif, system-ui;--font-serif:"DM Serif Display", "Times New Roman", serif;--serif-weight:400}[data-fontset=confident]{--font-sans:"Plus Jakarta Sans", ui-sans-serif, system-ui;--font-serif:"Newsreader", "Times New Roman", serif;--serif-weight:500}[data-density=compact]{--row-pad:10px;--card-pad:18px}[data-theme=ink]{--paper:#131312;--paper-2:#1c1c1a;--paper-3:#232321;--line:#fffaf01a;--line-2:#fffaf02e;--ink:#f4efe3;--ink-2:#d5cfbf;--ink-3:#9c9789;--ink-4:#6b6759;--credit:oklch(78% .13 155);--credit-soft:oklch(30% .06 155);--credit-line:oklch(42% .09 155);--credit-strong:oklch(84% .13 155);--debit:oklch(74% .15 28);--debit-soft:oklch(30% .07 28);--debit-line:oklch(42% .1 28);--debit-strong:oklch(80% .16 28);--info:oklch(74% .13 250);--info-soft:oklch(30% .07 250);--warn:oklch(78% .13 75);--warn-soft:oklch(30% .07 75);--focus-ring:oklch(74% .16 250/.55)}*{box-sizing:border-box}html,body,#root{height:100%}html{scrollbar-gutter:stable;overflow-y:scroll}body{font-family:var(--font-sans);font-feature-settings:var(--sans-feat);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:inherit}.skip-link{background:var(--ink);color:var(--paper);z-index:1000;border-radius:0 0 8px;padding:10px 16px;font-size:13px;font-weight:500;position:absolute;top:0;left:-9999px}.skip-link:focus{outline:3px solid var(--focus-ring);left:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:6px}.btn:focus-visible,.chip:focus-visible{outline-offset:3px;border-radius:999px}.input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.num,.mono{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.fig{font-variant-numeric:tabular-nums}.serif{font-family:var(--font-serif);font-weight:var(--serif-weight);letter-spacing:var(--serif-tracking);font-optical-sizing:auto}.kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--ink-2);background:var(--paper-2);border-radius:4px;padding:2px 6px;font-size:11px}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:11px}.divider{background:var(--line);height:1px}.dotted-divider{background-image:linear-gradient(to right, var(--line-2) 50%, transparent 50%);background-repeat:repeat-x;background-size:6px 1px;height:1px}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius)}.btn{border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink);border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:10px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:background .14s,border-color .14s,transform .14s;display:inline-flex}.btn:hover{background:var(--paper);border-color:var(--ink-3)}.btn:active{transform:translateY(.5px)}.btn[data-variant=primary]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn[data-variant=primary]:hover{background:#000;border-color:#000}.btn[data-variant=ghost]{background:0 0;border-color:#0000}.btn[data-variant=ghost]:hover{background:var(--paper);border-color:var(--line)}.btn[data-variant=danger]{background:var(--debit);color:var(--paper-2);border-color:var(--debit)}.btn:disabled{opacity:.5;cursor:not-allowed}.chip{border:1px solid var(--line);background:var(--paper-2);color:var(--ink-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 12px;font-size:12px;display:inline-flex}.chip[data-active=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.input{background:var(--paper-2);border:1px solid var(--line-2);width:100%;color:var(--ink);border-radius:10px;min-height:44px;padding:12px 14px;font-size:16px;transition:border-color .14s,box-shadow .14s}@media (width>=768px){.input{font-size:14px}}.input:focus{border-color:var(--ink-2);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input::placeholder{color:var(--ink-3)}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}.scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.auth-grid{background:var(--paper);grid-template-columns:minmax(0,1fr);min-height:100vh;display:grid}.auth-aside{display:none}.auth-mobile-header{padding:24px var(--shell-pad-x) 0;color:var(--ink);align-items:center;gap:12px;width:100%;max-width:560px;margin:0 auto;text-decoration:none;display:flex}.auth-mobile-header__mark{background:var(--ink);width:30px;height:30px;color:var(--paper);font-family:var(--font-serif);border-radius:8px;justify-content:center;align-items:center;font-size:19px;line-height:1;display:flex}.auth-mobile-header__text{min-width:0;line-height:1.2}.auth-mobile-header__name{font-size:14px;font-weight:500}.auth-main{padding:32px var(--shell-pad-x) 40px;justify-content:center;align-items:center;display:flex}.auth-main__inner{width:100%;max-width:440px}@media (width>=1024px){.auth-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.auth-aside{background:var(--paper-3);border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;padding:40px 48px;display:flex}.auth-mobile-header{display:none}.auth-main{padding:40px 24px}.auth-main__inner{max-width:400px}}@media (width>=1440px){.auth-grid{grid-template-columns:1.1fr 1fr}.auth-main__inner{max-width:480px}}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.range-chips{scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;display:flex;overflow-x:auto}.range-chips::-webkit-scrollbar{display:none}.range-chips>*{scroll-snap-align:start;flex-shrink:0}@media (width>=768px){.range-chips{flex-wrap:wrap;overflow-x:visible}}.forecast-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=480px){.forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.forecast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.hero-ctas{flex-wrap:wrap;gap:8px;display:none}@media (width>=768px){.hero-ctas{display:flex}}.member-row{grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;gap:6px 12px;display:grid}.member-row__name{grid-column:1/-1;align-items:center;gap:10px;min-width:0;display:flex}.member-row__amount{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width>=640px){.member-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}.member-row__name{grid-column:auto}}.profile-more{display:block}@media (width>=768px){.profile-more{display:none}}.profile-more__list{border-top:1px solid var(--line);flex-direction:column;display:flex}.profile-more__item{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:12px;padding:14px 0;font-size:14px;text-decoration:none;display:flex}.profile-more__item-arrow{color:var(--ink-3);margin-left:auto}.profile-more__badge{background:var(--debit);min-width:18px;height:18px;color:var(--paper);border-radius:9px;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-size:11px;display:inline-flex}@keyframes pageIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-in{animation:.26s both pageIn}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-stack{left:50%;top:calc(12px + env(safe-area-inset-top));z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);pointer-events:auto;border-radius:999px;max-width:100%;padding:10px 16px;font-size:13px;font-weight:500;animation:.26s both toastIn;box-shadow:0 12px 40px #0000002e}.modal-backdrop{background:color-mix(in oklch, var(--ink) 35%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-backdrop-inner{z-index:60;justify-content:center;display:flex;position:fixed;inset:0}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.modal{overscroll-behavior:contain;max-height:calc(100dvh - 32px);animation:.22s both modalIn;overflow-y:auto}.modal-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.modal-header__title{margin:6px 0 0;line-height:1.1}.modal-footer{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.modal-footer .btn{min-height:44px}.form-field{margin-top:20px}.form-field>label{margin-bottom:8px;display:block}.form-grid-2{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:20px;display:grid}.txn-row{padding:14px var(--card-pad);border-bottom:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto auto;grid-template-areas:"avatar content amount actions";align-items:center;column-gap:12px;min-width:0;transition:background .15s;display:grid}.txn-row[role=button]{cursor:pointer}.txn-row[role=button]:hover{background:var(--paper-3)}.txn-row[role=button]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px;border-radius:4px}.txn-row__avatar{grid-area:avatar}.txn-row__content{grid-area:content;min-width:0}.txn-row__amount{grid-area:amount}.txn-row__actions{flex-shrink:0;grid-area:actions;align-items:center;gap:4px;display:flex}.txn-row__actions:empty{display:none}.txn-row__action-btn{color:var(--ink-3);min-height:32px!important;padding:6px 8px!important}.txn-row__action-btn:hover{color:var(--debit)}.list-row{padding:12px var(--card-pad);grid-template-columns:40px minmax(0,1fr);grid-template-areas:"avatar content""avatar actions";align-items:center;gap:6px 12px;min-width:0;display:grid}.list-row__avatar{grid-area:avatar;align-self:start}.list-row__content{grid-area:content;min-width:0}.list-row__actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;justify-self:end;gap:4px;display:flex}.txn-row__meta{color:var(--ink-3);flex-direction:column;align-items:flex-start;gap:2px;min-width:0;margin-top:4px;font-size:12px;display:flex}.txn-row__meta-cat{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.txn-row__meta-sep{display:none}.txn-row__meta-trail{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;display:inline-flex}.txn-row__meta-who{text-overflow:ellipsis;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.txn-row__meta-date{white-space:nowrap;flex-shrink:0}.txn-row__meta-dot{background:var(--ink-4);border-radius:999px;flex-shrink:0;width:3px;height:3px}.modal--form{padding-bottom:0}.modal--form .modal-footer{background:var(--paper-2);border-top:1px solid var(--line);padding:16px 0 0;padding-bottom:calc(16px + env(keyboard-inset-height,env(safe-area-inset-bottom)));margin-top:24px;position:sticky;bottom:0}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.action-sheet-backdrop{z-index:70;background:color-mix(in oklch, var(--ink) 35%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.action-sheet{background:var(--paper-2);border-top:1px solid var(--line);width:100%;padding:20px 20px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;flex-direction:column;gap:10px;animation:.22s cubic-bezier(.2,.7,.2,1) both sheetIn;display:flex}.action-sheet__handle{background:var(--line-2);border-radius:999px;align-self:center;width:36px;height:4px;margin-bottom:10px}.action-sheet__btn{justify-content:center;width:100%;min-height:56px;font-size:15px}@keyframes barFill{0%{width:0}to{width:var(--target)}}.bar-fill{animation:.9s cubic-bezier(.2,.7,.2,1) both barFill}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.bar-grow{transition:opacity .2s;animation:.55s cubic-bezier(.2,.7,.2,1) both barGrow}@media (prefers-reduced-motion:reduce){.bar-grow{animation:none}}.avatar{font-family:var(--font-mono);background:var(--paper);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.app-shell{max-width:var(--shell-max);padding:24px var(--shell-pad-x) 80px;grid-template-columns:210px 1fr;gap:28px;margin:0 auto;display:grid}.nav-item{min-height:40px;color:var(--ink-2);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:13px;font-weight:500;transition:background .14s,color .14s,border-color .14s;display:flex}.nav-item:hover{background:var(--paper-2)}.nav-item[data-active=true]{background:var(--paper-2);color:var(--ink);border-color:var(--line-2)}:root{--shell-pad-x:16px;--card-pad:18px}.app-shell{grid-template-columns:minmax(0,1fr);gap:18px;padding-bottom:92px}.sidebar-desktop{flex-direction:column;gap:4px;display:none}.header-search,.header-user-name{display:none}.mobile-tabs{z-index:50;background:color-mix(in oklch, var(--paper-2) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom)) 6px;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tabs button{min-width:0;color:var(--ink-3);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:8px 6px;font-size:10px;font-weight:500;display:flex;position:relative}.mobile-tabs button[aria-current=page]{color:var(--ink)}.mobile-tabs__plus{align-self:center;width:56px;height:56px;margin-top:-14px;box-shadow:0 6px 14px #00000038,0 1px 2px #0000002e;background:var(--ink)!important;color:var(--paper)!important;border-radius:999px!important;flex:none!important;min-height:56px!important}.mobile-tabs__plus:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}.mobile-tabs__badge{background:var(--debit);min-width:16px;height:16px;color:var(--paper);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex;position:absolute;top:6px;right:18px}.dash-grid,.kpi-grid{grid-template-columns:minmax(0,1fr);display:grid}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}.modal{border-radius:18px 18px 0 0;align-self:flex-end;width:100%;max-width:none;max-height:92dvh;margin:auto 0 0}.modal-backdrop-inner{align-items:flex-end;padding:0}.hero-amount{font-size:clamp(28px,7vw,56px)}.category-sheet-backdrop{z-index:80;background:color-mix(in oklch, var(--ink) 35%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.category-sheet{background:var(--paper-2);border-top:1px solid var(--line);border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-height:92dvh;animation:.22s cubic-bezier(.2,.7,.2,1) both sheetIn;display:flex;overflow:hidden}.category-sheet__search{z-index:1;background:var(--paper-2);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 16px;display:flex;position:sticky;top:0}.category-sheet__list{overscroll-behavior:contain;padding:6px 0 calc(6px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.category-sheet__group{background:var(--paper-2);z-index:1;padding:8px 16px 4px;position:sticky;top:0}.category-sheet__row{width:100%;min-height:56px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:14px;display:flex}.category-sheet__row[data-active=true]{background:var(--paper)}@media (width>=480px){:root{--shell-pad-x:20px}}@media (width>=768px){:root{--shell-pad-x:24px;--card-pad:22px}.app-shell{grid-template-columns:210px 1fr;gap:28px;padding-bottom:80px}.sidebar-desktop{display:flex}.header-user-name{display:block}.mobile-tabs{display:none}.toast-stack{top:auto;bottom:calc(24px + env(safe-area-inset-bottom))}.toast{animation-name:toastInUp}.modal{border-radius:var(--radius);align-self:center;width:auto;max-width:480px;max-height:calc(100dvh - 32px);margin:0}.modal-backdrop-inner{align-items:center;padding:20px}.modal-footer{flex-direction:row}.modal-footer .btn{width:auto}.form-grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.category-sheet-backdrop{display:none}.list-row{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"avatar content actions";row-gap:0}.list-row__avatar{align-self:center}.list-row__actions{flex-wrap:nowrap}.txn-row__meta{white-space:nowrap;flex-direction:row;align-items:center;gap:6px}.txn-row__meta-cat{flex-shrink:1;min-width:0}.txn-row__meta-sep{flex-shrink:0;display:inline}.txn-row__meta-trail{flex-shrink:0}.hero-amount{font-size:clamp(40px,6vw,56px)}}@media (width>=1024px){:root{--shell-pad-x:32px;--card-pad:24px}.dash-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (width>=1280px){:root{--shell-pad-x:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-reduce-motion=true] *,[data-reduce-motion=true] :before,[data-reduce-motion=true] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-privacy=on] .privacy-mask,[data-privacy=on] .num{filter:blur(8px)saturate(.4);-webkit-user-select:none;user-select:none;cursor:default}@media (forced-colors:active){.btn,.chip,.card,.input{border-color:canvastext}.btn[data-variant=primary]{color:canvas;background:canvastext}}
