@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--n-0: #fdfefe;--n-25: #fbfcfd;--n-50: #f4f5f7;--n-100: #eaebee;--n-200: #d9dbdf;--n-300: #c1c4c9;--n-400: #a1a5ab;--n-500: #83868e;--n-600: #656970;--n-700: #4a4d53;--n-800: #33353b;--n-900: #1f2226;--n-950: #16181c;--n-1000: #0e0f13;--surface-page: var(--n-50);--surface: var(--n-25);--surface-raised: var(--n-0);--surface-sunken: var(--n-100);--surface-hover: var(--n-100);--surface-active: var(--n-200);--surface-chrome: var(--n-100);--surface-chrome-hover: var(--n-200);--text-primary: var(--n-950);--text-secondary: var(--n-700);--text-tertiary: var(--n-600);--text-on-chrome: var(--text-primary);--text-on-chrome-muted: var(--text-tertiary);--text-on-accent: var(--n-0);--border: var(--n-200);--border-soft: var(--n-100);--border-strong: var(--n-300);--purple-700: #5527b8;--purple-600: #6a35d7;--purple-500: #a36bf4;--purple-100: #e9e0ff;--purple-50: #f5f0ff;--accent: var(--purple-600);--accent-text: var(--purple-700);--accent-fill: var(--purple-600);--accent-fill-hover: var(--purple-700);--accent-subtle: var(--purple-50);--accent-subtle-hover: var(--purple-100);--accent-ring: var(--purple-500);--positive: #346b45;--positive-tint: #e8f8ec;--negative: #8f433b;--negative-tint: #ffede9;--warning: #7c550f;--warning-tint: #fef1e0;--info: #3b6186;--info-tint: #e9f5ff;--heat-1: #e5f6ec;--heat-2: #c8ecd6;--heat-3: #fdeebc;--heat-4: #fddfb0;--heat-5: #fbc9d4;--font-sans: "Inter Variable", "Inter", -apple-system, "Segoe UI", system-ui, sans-serif;--weight-normal: 400;--weight-medium: 530;--weight-strong: 680;--text-xs: .778rem;--text-sm: .875rem;--text-base: .984rem;--text-md: 1.107rem;--text-lg: 1.246rem;--text-xl: 1.402rem;--text-2xl: 1.577rem;--text-3xl: 1.775rem;--text-4xl: 1.997rem;--text-5xl: 2.247rem;--leading-tight: 1.05;--leading-display: 1.1;--leading-snug: 1.25;--leading-normal: 1.5;--tracking-xs: .005em;--tracking-body: 0em;--tracking-md: -.006em;--tracking-lg: -.011em;--tracking-xl: -.016em;--tracking-2xl: -.019em;--tracking-3xl: -.022em;--tracking-4xl: -.025em;--tracking-5xl: -.028em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--shadow-color: 220 12% 8%;--shadow-xs: 0 1px 1px hsl(var(--shadow-color) / .04), 0 1px 2px -1px hsl(var(--shadow-color) / .06);--shadow-sm: 0 1px 2px hsl(var(--shadow-color) / .05), 0 2px 6px -2px hsl(var(--shadow-color) / .08);--shadow-md: 0 1px 2px hsl(var(--shadow-color) / .06), 0 4px 10px -3px hsl(var(--shadow-color) / .1);--shadow-lg: 0 1px 2px hsl(var(--shadow-color) / .08), 0 8px 20px -6px hsl(var(--shadow-color) / .14);--shadow-xl: 0 2px 4px hsl(var(--shadow-color) / .08), 0 20px 40px -12px hsl(var(--shadow-color) / .2);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--duration-press: .1s;--duration-fast: .16s;--duration-base: .2s;--duration-slow: .26s;--duration-exit: .14s;--z-base: 0;--z-raised: 10;--z-sticky: 50;--z-overlay: 100;--z-modal: 200;--z-toast: 300;--z-tooltip: 400;color-scheme:light}:root[data-theme=dark]{--surface-page: var(--n-1000);--surface: var(--n-950);--surface-raised: var(--n-900);--surface-sunken: var(--n-1000);--surface-hover: var(--n-900);--surface-active: var(--n-800);--surface-chrome: var(--n-1000);--surface-chrome-hover: var(--n-900);--text-primary: var(--n-50);--text-secondary: var(--n-300);--text-tertiary: var(--n-400);--text-on-chrome: var(--text-primary);--text-on-chrome-muted: var(--text-tertiary);--border: var(--n-800);--border-soft: var(--n-900);--border-strong: var(--n-700);--purple-700: #c3a4f9;--purple-600: #a36bf4;--purple-500: #b184f6;--purple-100: #372163;--purple-50: #281847;--accent-text: var(--purple-600);--accent-fill: var(--purple-600);--accent-fill-hover: var(--purple-500);--accent-subtle: var(--purple-50);--accent-subtle-hover: var(--purple-100);--text-on-accent: var(--n-1000);--heat-1: #1c4231;--heat-2: #2a5a2f;--heat-3: #57511c;--heat-4: #63401a;--heat-5: #5c2030;--positive: #9bcca7;--positive-tint: #172c1d;--negative: #f2a89e;--negative-tint: #3a1d19;--warning: #ddb783;--warning-tint: #33230c;--info: #9fc2e6;--info-tint: #192836;--shadow-color: 220 40% 2%;--shadow-xs: 0 1px 1px hsl(var(--shadow-color) / .4), 0 1px 2px -1px hsl(var(--shadow-color) / .5);--shadow-sm: 0 1px 2px hsl(var(--shadow-color) / .45), 0 2px 6px -2px hsl(var(--shadow-color) / .55);--shadow-md: 0 1px 2px hsl(var(--shadow-color) / .5), 0 4px 10px -3px hsl(var(--shadow-color) / .6);--shadow-lg: 0 1px 2px hsl(var(--shadow-color) / .55), 0 8px 20px -6px hsl(var(--shadow-color) / .7);--shadow-xl: 0 2px 4px hsl(var(--shadow-color) / .6), 0 20px 40px -12px hsl(var(--shadow-color) / .8);color-scheme:dark}@supports (color: oklch(from white l c h)){:root{--accent-text: oklch(from var(--accent) min(l, .52) c h);--accent-fill: oklch(from var(--accent) min(l, .52) c h);--accent-fill-hover: oklch(from var(--accent) min(l, .42) c h);--accent-subtle: oklch(from var(--accent) .965 min(c, .03) h);--accent-subtle-hover: oklch(from var(--accent) .93 min(c, .05) h);--accent-ring: oklch(from var(--accent) clamp(.45, l, .62) c h)}:root[data-theme=dark]{--accent-text: oklch(from var(--accent) max(l, .68) c h);--accent-fill: oklch(from var(--accent) max(l, .68) c h);--accent-fill-hover: oklch(from var(--accent) max(l, .78) c h);--accent-subtle: oklch(from var(--accent) .26 min(c, .06) h);--accent-subtle-hover: oklch(from var(--accent) .32 min(c, .08) h);--accent-ring: oklch(from var(--accent) max(l, .7) c h)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-normal);line-height:var(--leading-normal);letter-spacing:var(--tracking-body);color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums;font-optical-sizing:auto}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--weight-strong);color:var(--text-primary);text-wrap:balance}h1{font-size:var(--text-3xl);line-height:var(--leading-display);letter-spacing:var(--tracking-3xl)}h2{font-size:var(--text-xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-xl)}h3{font-size:var(--text-md);line-height:var(--leading-snug);letter-spacing:var(--tracking-md)}h4{font-size:var(--text-base);line-height:var(--leading-snug);letter-spacing:var(--tracking-body)}p{margin:0;text-wrap:pretty}strong,b{font-weight:var(--weight-strong)}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.2em}button,input,select,textarea{font-family:inherit;font-size:var(--text-sm);font-variant-numeric:inherit;color:var(--text-primary)}::placeholder{color:var(--text-tertiary);opacity:1}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;border-radius:var(--radius-xs)}::selection{background:var(--accent-subtle-hover);color:var(--text-primary)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-property:opacity,color,background-color,border-color,box-shadow,fill,stroke;animation-iteration-count:1!important;scroll-behavior:auto!important}.dash-mod>.card,.stagger>*{animation:none!important}.nav-pill.ready,.toggle .track:after,.ts-knob,.meter span{transition-property:opacity,background-color}.btn:active:not(:disabled),.nav-item:active,.tab:active,.chip button:active,.tag-suggest:active,.modal-x:active,.toast .toast-act:active{transform:none}.skeleton:after{animation:none}}@media(prefers-contrast:more){:root{--border: var(--n-400);--border-soft: var(--n-300);--border-strong: var(--n-600);--text-tertiary: var(--n-700)}:root[data-theme=dark]{--border: var(--n-600);--border-soft: var(--n-700);--border-strong: var(--n-400);--text-tertiary: var(--n-300)}}.muted,.soft{color:var(--text-tertiary)}.strong{font-weight:var(--weight-medium)}.small{font-size:var(--text-xs);letter-spacing:var(--tracking-xs)}.right{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}.row{display:flex;align-items:center;gap:var(--space-2)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack{display:grid;gap:var(--space-4)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.divider{border:0;border-top:1px solid var(--border-soft);margin:var(--space-4) 0}.clickable{cursor:pointer}.pos{color:var(--positive)}.neg{color:var(--negative)}.shell{display:grid;grid-template-columns:15rem 1fr;height:100vh;overflow:hidden;background:var(--surface-chrome)}.main{background:var(--surface-page);border-left:1px solid var(--border);height:100vh;overflow-y:auto;min-width:0}.sidebar{background:transparent;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);position:sticky;top:0;height:100vh;overflow-y:auto}.wordmark{font-size:var(--text-md);font-weight:var(--weight-strong);letter-spacing:var(--tracking-md);color:var(--text-primary)}.wordmark span{color:var(--accent-text)}.side-logo{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-4);margin-bottom:var(--space-3);border-bottom:1px solid var(--border)}.side-logo .wordmark{font-size:var(--text-lg);letter-spacing:var(--tracking-lg)}.nav-section{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.06em;color:var(--text-tertiary);text-transform:uppercase;padding:var(--space-3) var(--space-3) var(--space-1)}.nav-item{position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:2px;min-height:2.25rem;background:transparent;border:1px solid transparent;box-shadow:none;color:var(--text-secondary);font-weight:var(--weight-medium);font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.nav-item:hover{text-decoration:none;color:var(--text-primary);background:var(--surface-chrome-hover)}}.nav-item:active{transform:scale(.97)}.nav-item svg{color:var(--text-tertiary);flex-shrink:0;transition:color var(--duration-fast) var(--ease-out)}.nav-item.active{color:var(--accent-text);background:transparent;font-weight:var(--weight-medium)}.nav-item.active svg{color:var(--accent-text)}.nav-pill{position:absolute;left:var(--space-3);right:var(--space-3);top:0;z-index:0;border-radius:var(--radius-md);background:var(--accent-subtle);pointer-events:none;box-shadow:none}.nav-pill.ready{transition:transform var(--duration-slow) var(--ease-in-out),height var(--duration-base) var(--ease-out)}@media(prefers-reduced-motion:reduce){.nav-item:active{transform:none}.nav-pill.ready{transition:none}}.side-foot{margin-top:0;padding:var(--space-3) var(--space-2) var(--space-1);border-top:1px solid var(--border)}.sidebar .settings-nav{margin-top:auto;margin-bottom:var(--space-2)}.sidebar .side-foot{color:var(--text-secondary)}.sidebar .side-foot .strong{color:var(--text-primary)}.side-balance{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);margin:var(--space-1) 0 var(--space-3)}.side-balance .sb-amount{font-size:var(--text-lg);font-weight:var(--weight-strong);color:var(--text-primary);letter-spacing:var(--tracking-lg);line-height:var(--leading-display)}.side-balance .sb-label{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:var(--weight-medium);letter-spacing:var(--tracking-xs)}.side-balance .sb-delta{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-top:2px}.side-balance .sb-delta.up{color:var(--positive)}.side-balance .sb-delta.down{color:var(--negative)}.side-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3) var(--space-2);margin:var(--space-2) 0}.side-cal .sc-title{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.side-cal .mini-cal{row-gap:2px}.side-cal .mc-day{display:flex;align-items:center;justify-content:center;width:1.5625rem;height:1.5625rem;margin:0 auto;padding:0;border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-secondary);line-height:1}.side-cal .mc-day.out{color:var(--text-tertiary);opacity:1}.side-cal .mc-day.today{background:var(--accent-fill);color:var(--text-on-accent);font-weight:var(--weight-strong)}.side-cal .mc-dot{background:var(--warning);bottom:2px}.side-cal .mc-day.today .mc-dot{background:var(--text-on-accent)}.side-cal .cal-paydays{margin-top:var(--space-2);color:var(--text-tertiary)}.side-cal .cal-paydays .strong{color:var(--text-primary)}.up-status{display:flex;align-items:center;gap:var(--space-2);cursor:default;font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--text-tertiary);padding:0 var(--space-1) var(--space-2)}.up-status .dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--n-400);flex-shrink:0}.up-status .dot.ok{background:var(--positive)}.up-status .dot.bad{background:var(--negative)}.page{max-width:72.5rem;margin:0 auto;padding:var(--space-8) var(--space-8) var(--space-20)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-strong);letter-spacing:var(--tracking-2xl);line-height:var(--leading-display)}.page-sub{color:var(--text-tertiary);margin-top:var(--space-1);font-size:var(--text-sm)}.page-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.topbar{display:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-pad{padding:var(--space-5) var(--space-6)}.card-title{font-size:var(--text-base);font-weight:var(--weight-strong);letter-spacing:var(--tracking-body);line-height:var(--leading-snug);margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.card-title .muted{font-weight:var(--weight-normal);font-size:var(--text-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);position:relative;min-height:2.25rem;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font-weight:var(--weight-medium);font-size:var(--text-sm);line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none!important;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-fill);color:var(--text-on-accent);box-shadow:var(--shadow-xs)}.btn-outline{background:var(--surface);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-xs)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-danger{background:var(--negative-tint);color:var(--negative)}@media(hover:hover)and (pointer:fine){.btn-primary:hover:not(:disabled){background:var(--accent-fill-hover)}.btn-outline:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.btn-danger:hover:not(:disabled){background:var(--negative);color:var(--surface)}}.btn.is-loading{pointer-events:none}.btn.is-loading>*{opacity:0}.btn.is-loading:after{content:"";position:absolute;width:.875rem;height:.875rem;border-radius:var(--radius-full);border:2px solid currentColor;border-top-color:transparent;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-sm{min-height:2rem;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-lg{min-height:2.75rem;padding:var(--space-3) var(--space-6);font-size:var(--text-base);border-radius:var(--radius-lg)}.btn-block{width:100%}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md)}.label{display:block;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-xs);color:var(--text-secondary);margin-bottom:var(--space-1)}.hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.input,.select,.textarea{width:100%;min-height:2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--border-strong)}}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-text);box-shadow:0 0 0 3px var(--accent-subtle)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-sunken);color:var(--text-tertiary);cursor:not-allowed;opacity:1}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--negative)}.input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--negative-tint)}.field-error{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--negative);margin-top:var(--space-1)}.textarea{min-height:5.25rem;resize:vertical}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23656970' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}.field{margin-bottom:var(--space-4)}.input-wrap{position:relative}.input-wrap .prefix{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.input-wrap .input.has-prefix{padding-left:var(--space-8)}.check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.check input{accent-color:var(--accent-fill);width:1rem;height:1rem;cursor:pointer;flex-shrink:0}.check input:disabled{cursor:not-allowed}.check:has(input:disabled){color:var(--text-tertiary);cursor:not-allowed}.toggle{display:inline-flex;align-items:center;gap:var(--space-3);min-height:1.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle .track{width:2.25rem;height:1.3125rem;border-radius:var(--radius-full);background:var(--n-300);position:relative;flex-shrink:0;transition:background-color var(--duration-fast) var(--ease-out)}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:1.0625rem;height:1.0625rem;border-radius:var(--radius-full);background:var(--n-0);box-shadow:var(--shadow-sm);transition:transform var(--duration-fast) var(--ease-out)}.toggle.on .track{background:var(--accent-fill)}.toggle.on .track:after{transform:translate(.9375rem)}.toggle:active .track:after{width:1.25rem}.toggle .tlabel{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.skeleton{background:var(--surface-sunken);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--surface-hover),transparent);transform:translate(-100%);animation:skeleton-sweep 1.4s var(--ease-in-out) infinite}@keyframes skeleton-sweep{to{transform:translate(100%)}}.skeleton-line{height:.875rem}.skeleton-line+.skeleton-line{margin-top:var(--space-2)}.skeleton-value{height:1.75rem;width:7rem}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-xs);line-height:1.4;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap}.badge-gray{background:var(--surface-sunken);color:var(--text-tertiary)}.badge-blue{background:var(--info-tint);color:var(--info)}.badge-purple{background:var(--accent-subtle);color:var(--accent-text)}.badge-green{background:var(--positive-tint);color:var(--positive)}.badge-amber{background:var(--warning-tint);color:var(--warning)}.badge-red{background:var(--negative-tint);color:var(--negative)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--accent-subtle);border:1px solid transparent;color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);border-radius:var(--radius-full)}.chip button{border:0;background:transparent;color:currentColor;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:1.5rem;min-height:1.5rem;margin:calc(var(--space-1) * -1) 0;padding:0;border-radius:var(--radius-full);opacity:.65;transition:opacity var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.chip button:hover{background:var(--accent-subtle-hover);opacity:1}}.chip button:active{transform:scale(.97)}.chip.neutral{background:var(--surface-sunken);border-color:var(--border);color:var(--text-secondary)}.tag-suggest{border:1px dashed var(--border-strong);background:transparent;color:var(--text-tertiary);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.tag-suggest:hover{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-subtle)}}.tag-suggest:active{transform:scale(.97)}.avatar{width:2.125rem;height:2.125rem;border-radius:var(--radius-full);flex-shrink:0;background:var(--accent-subtle);color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;font-weight:var(--weight-strong);font-size:var(--text-xs)}.dash-grid{grid-template-columns:1.35fr 1fr}.donut-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.donut-row>.donut-figure{flex:0 0 auto}@media(max-width:460px){.donut-row{justify-content:center}.donut-row>.grow{flex-basis:100%}}@media(min-width:1680px){.page{max-width:1600px}}.dash-mod{position:relative}.dash-mod .card-title{padding-right:30px}.mod-grip{position:absolute;top:9px;right:9px;z-index:4;width:26px;height:26px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:grab;opacity:0;touch-action:none;transition:opacity .12s,color .12s,border-color .12s}.dash-mod:hover .mod-grip,.mod-grip:focus-visible{opacity:1}.mod-grip:hover{color:var(--accent-text);border-color:var(--accent-text)}.mod-grip:active{cursor:grabbing}.dash-mod.dragging{opacity:.35}.dash-drag-overlay{cursor:grabbing}.dash-drag-overlay .card{box-shadow:var(--shadow-lg)}@media(max-width:960px){.mod-grip{display:none}.dash-mod .card-title{padding-right:0}}.stat.clickable{transition:box-shadow .15s,transform .15s}.stat.clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.legend-click{cursor:pointer;border-radius:var(--radius-sm);padding:3px 5px;margin:-3px -5px;transition:background .1s}.legend-click:hover{background:var(--surface-hover)}.mini-cal-head{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--space-1)}.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}.mc-day{position:relative;text-align:center;font-size:var(--text-xs);padding:var(--space-1) 0 var(--space-2);color:var(--text-secondary);border-radius:var(--radius-md)}.mc-day.out{color:var(--text-tertiary);opacity:1}.mc-day.today{background:var(--accent-fill);color:var(--text-on-accent);font-weight:var(--weight-strong)}.mc-dot{position:absolute;left:50%;transform:translate(-50%);bottom:2px;width:4px;height:4px;border-radius:var(--radius-full);background:var(--warning)}.mc-day.today .mc-dot{background:var(--text-on-accent)}.logo-dark,[data-theme=dark] .logo-light{display:none!important}[data-theme=dark] .logo-dark{display:block!important}.cat-tile{width:34px;height:34px;border-radius:var(--radius-lg);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-md);background:var(--cat-bg, var(--accent-subtle))}.cat-tile.sm{width:28px;height:28px;font-size:var(--text-sm);border-radius:var(--radius-md)}.cat-dot{width:9px;height:9px;border-radius:var(--radius-full);flex-shrink:0;display:inline-block}.tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.tab{border:1px solid transparent;background:transparent;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary);min-height:1.75rem;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.tab:hover{background:var(--surface-hover);color:var(--text-primary)}}.tab:active{transform:scale(.97)}.tab.active{background:var(--text-primary);color:var(--surface)}.tab .count{opacity:.65;font-weight:var(--weight-normal);margin-left:var(--space-1)}.seg{display:inline-flex;background:var(--surface-sunken);border-radius:var(--radius-md);padding:var(--space-1);gap:var(--space-1)}.seg button{border:0;background:transparent;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);min-height:1.75rem;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.seg button:hover:not(.active){color:var(--text-primary)}}.seg button.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-xs)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-soft);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr.hoverable{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.table tbody tr.hoverable:hover{background:var(--surface-hover)}}.table .num{text-align:right}.txn-row{display:grid;grid-template-columns:2.125rem 1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-soft);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.txn-row:hover{background:var(--surface-hover)}}.txn-row:last-child{border-bottom:0}.txn-main{min-width:0}.txn-merchant{font-weight:var(--weight-medium);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2);min-width:0}.txn-merchant .t-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txn-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.txn-amount{font-weight:var(--weight-strong);font-size:var(--text-sm);text-align:right}.txn-sub{font-size:var(--text-xs);color:var(--text-tertiary);text-align:right;margin-top:1px}.split-children{border-left:1px solid var(--border);margin-left:var(--space-8)}.split-children .txn-row{grid-template-columns:1.75rem 1fr auto;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3)}.modal-overlay{position:fixed;inset:0;background:color-mix(in oklab,var(--n-1000) 55%,transparent);display:flex;align-items:flex-start;justify-content:center;padding:7vh var(--space-4) var(--space-4);z-index:var(--z-modal);overflow-y:auto}.modal{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:32.5rem}.modal.wide{max-width:42.5rem}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6) 0}.modal-head h3{font-size:var(--text-md);font-weight:var(--weight-strong);letter-spacing:var(--tracking-md);line-height:var(--leading-snug)}.modal-body{padding:var(--space-4) var(--space-6)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-1) var(--space-6) var(--space-5)}.modal-x{border:0;background:var(--surface-sunken);border-radius:var(--radius-md);width:1.875rem;height:1.875rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-tertiary);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.modal-x:hover{background:var(--surface-active);color:var(--text-primary)}}.modal-x:active{transform:scale(.97)}@keyframes fadeIn{0%{opacity:0}}.menu-anchor{position:relative}.menu{position:absolute;right:0;top:calc(100% + var(--space-2));z-index:var(--z-overlay);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);min-width:13rem;transform-origin:top right;animation:popoverIn var(--duration-fast) var(--ease-out)}@keyframes popoverIn{0%{opacity:0;transform:scale(.96)}}.menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:0;background:transparent;border-radius:var(--radius-sm);min-height:2rem;font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--text-secondary);cursor:pointer;text-align:left;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.menu-item:hover{background:var(--surface-hover);color:var(--text-primary)}.menu-item.danger:hover{background:var(--negative-tint)}}.menu-item.danger{color:var(--negative)}.menu-item svg{color:var(--text-tertiary);flex-shrink:0}.menu-item:hover svg{color:inherit}.menu-sep{border:0;border-top:1px solid var(--border-soft);margin:var(--space-1) var(--space-2)}.tt{position:relative;display:inline-flex}.tooltip{position:absolute;bottom:calc(100% + var(--space-2));left:50%;transform:translate(-50%) scale(.97);transform-origin:bottom center;z-index:var(--z-tooltip);background:var(--n-900);color:var(--n-50);font-size:var(--text-xs);font-weight:var(--weight-normal);line-height:1.4;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);width:max-content;max-width:min(16rem,80vw);pointer-events:none;opacity:0;box-shadow:var(--shadow-md);transition:opacity var(--duration-fast) var(--ease-out) .4s,transform var(--duration-fast) var(--ease-out) .4s}.tt:hover .tooltip,.tt:focus-within .tooltip{opacity:1;transform:translate(-50%) scale(1)}.tt[data-instant] .tooltip{transition-delay:0ms;transition-duration:0ms}[data-theme=dark] .tooltip{background:var(--n-800)}.toast-stack{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.toast{background:var(--n-900);color:var(--n-50);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-normal);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:var(--space-2)}[data-theme=dark] .toast{background:var(--n-800)}.toast svg{color:var(--positive);flex-shrink:0}[data-theme=dark] .toast svg{color:var(--positive)}.toast .toast-act{border:0;cursor:pointer;margin-left:var(--space-1);background:color-mix(in oklab,var(--n-0) 18%,transparent);color:var(--n-0);font-weight:var(--weight-medium);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);transition:background-color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}@media(hover:hover)and (pointer:fine){.toast .toast-act:hover{background:color-mix(in oklab,var(--n-0) 30%,transparent)}}.toast .toast-act:active{transform:scale(.97)}.empty{text-align:center;padding:var(--space-12) var(--space-5)}.empty .eicon{width:3rem;height:3rem;border-radius:var(--radius-lg);margin:0 auto var(--space-4);background:var(--surface-sunken);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center}.empty h3{font-size:var(--text-base);font-weight:var(--weight-strong);letter-spacing:var(--tracking-body)}.empty p{color:var(--text-tertiary);font-size:var(--text-sm);margin:var(--space-1) auto var(--space-4);max-width:34ch}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.stats.five{grid-template-columns:repeat(5,1fr)}.stat{padding:var(--space-4) var(--space-5)}.stats.five .stat{padding:var(--space-4)}.stat .s-label{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-2)}.stat .s-label svg{color:var(--text-tertiary)}.stat .s-value{font-size:var(--text-3xl);font-weight:var(--weight-strong);letter-spacing:var(--tracking-3xl);line-height:var(--leading-display);margin-top:var(--space-2)}.stat .amount-cents{font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--text-tertiary);letter-spacing:var(--tracking-body)}.stat .s-value.pos .amount-cents,.stat .s-value.neg .amount-cents{color:inherit;opacity:.55}.stat .s-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.stat.accent{background:var(--surface);border-color:var(--border-strong)}.stat.accent .s-label{color:var(--text-secondary)}.stat.accent .s-label svg{color:var(--accent-text)}.stat.accent .s-value{color:var(--text-primary)}@media(max-width:1180px){.stats.five .stat .s-value{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl)}.stats.five .stat .amount-cents{font-size:var(--text-base)}}@media(max-width:760px){.stats .stat .s-value,.stats.five .stat .s-value{font-size:var(--text-xl);letter-spacing:var(--tracking-xl)}.stats .stat .amount-cents,.stats.five .stat .amount-cents{font-size:var(--text-sm)}}.chart-wrap{position:relative}.chart-grid{stroke:var(--border-soft)}.chart-label{font-size:var(--text-xs);fill:var(--text-tertiary);font-family:var(--font)}.chart-value{font-size:var(--text-xs);font-weight:var(--weight-medium);fill:var(--text-secondary);font-family:var(--font);font-variant-numeric:tabular-nums}.chart-tip{position:absolute;pointer-events:none;z-index:var(--z-tooltip);background:var(--n-900);color:var(--n-50);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-normal);transform:translate(-50%,calc(-100% - var(--space-2)));white-space:nowrap;box-shadow:var(--shadow-md)}[data-theme=dark] .chart-tip{background:var(--n-800)}.chart-tip .t-label{color:var(--n-300)}.legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--text-secondary)}.legend .l-item{display:inline-flex;align-items:center;gap:6px}.legend .l-val{color:var(--text-tertiary);font-variant-numeric:tabular-nums}.meter{height:7px;border-radius:var(--radius-full);background:var(--border-soft);overflow:hidden}.meter span{display:block;height:100%;width:100%;background:var(--accent-fill);transform-origin:left center;transform:scaleX(var(--fill, 0));transition:transform var(--duration-slow) var(--ease-out)}.meter.lg{height:10px}.meter span.over{background:var(--negative)}.meter span.warn{background:var(--warning)}.meter span.ok{background:var(--positive)}.budget-row{padding:13px 0;border-bottom:1px solid var(--border-soft)}.budget-row:last-child{border-bottom:0;padding-bottom:4px}.budget-row .b-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.budget-row .b-name{display:flex;align-items:center;gap:9px;font-weight:var(--weight-medium);font-size:var(--text-sm);min-width:0}.budget-row .b-nums{font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.budget-row .b-nums strong{color:var(--text-primary);font-weight:var(--weight-strong)}.env-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.env-card{padding:14px 15px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.env-card .e-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}.env-card .e-name{font-weight:var(--weight-medium);font-size:var(--text-sm);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.env-card .e-left{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0 7px}.env-card .e-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:6px}.bucket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.bucket-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.bucket-card .bk-pct{font-size:var(--text-2xl);font-weight:var(--weight-strong);letter-spacing:-.03em}.bucket-card .bk-name{font-size:var(--text-xs);font-weight:var(--weight-strong);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-top:2px}.bucket-card .bk-nums{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:9px;font-variant-numeric:tabular-nums}.suggest-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px dashed var(--accent-subtle-hover);background:var(--accent-subtle);border-radius:var(--radius-lg);padding:12px 15px}[data-theme=dark] .suggest-row{border-color:var(--accent-subtle-hover)}.goal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.goal-card{padding:17px 18px;position:relative}.goal-emoji{width:40px;height:40px;border-radius:var(--radius-lg);font-size:var(--text-lg);display:flex;align-items:center;justify-content:center;background:var(--goal-bg, var(--accent-subtle));margin-bottom:10px}.goal-name{font-weight:var(--weight-strong);font-size:var(--text-base)}.goal-nums{font-size:var(--text-xs);color:var(--text-tertiary);margin:3px 0 9px;font-variant-numeric:tabular-nums}.goal-nums strong{color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-strong)}.goal-eta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:7px}.goal-done{position:absolute;top:14px;right:14px;background:var(--positive-tint);color:var(--positive);border-radius:var(--radius-full);padding:3px 9px;font-size:var(--text-xs);font-weight:var(--weight-strong)}.bill-row{display:grid;grid-template-columns:40px 1fr auto auto;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--border-soft)}.bill-row:last-child{border-bottom:0}.bill-date{width:40px;height:44px;border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-raised)}.bill-date .bd-mon{font-size:var(--text-xs);font-weight:var(--weight-strong);letter-spacing:.06em;text-transform:uppercase;color:var(--negative)}.bill-date .bd-day{font-size:var(--text-md);font-weight:var(--weight-strong);line-height:1.1}.bill-name{font-weight:var(--weight-medium);font-size:var(--text-sm)}.bill-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.cal-head span{font-size:var(--text-xs);font-weight:var(--weight-strong);letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);text-align:center;padding:3px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{min-height:64px;border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:5px 7px;font-size:var(--text-xs);position:relative;background:var(--surface)}.cal-cell.out{opacity:.38}.cal-cell.today{border-color:var(--accent-text);box-shadow:0 0 0 2px var(--accent-subtle-hover)}.cal-cell .c-day{font-weight:var(--weight-medium);color:var(--text-tertiary);font-size:var(--text-xs)}.cal-bill{margin-top:3px;background:var(--accent-subtle);color:var(--accent-text);border-radius:var(--radius-sm);padding:2px 6px;font-size:var(--text-xs);font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.cal-bill.due-soon{background:var(--warning-tint);color:var(--warning)}.cal-bill.overdue{background:var(--negative-tint);color:var(--negative)}.heat-cell{min-height:56px;border-radius:var(--radius-md);padding:5px 7px;font-size:var(--text-xs);border:1px solid var(--border-soft);background:var(--surface);position:relative;cursor:default}.heat-cell .h-amt{position:absolute;bottom:5px;left:7px;right:5px;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heat-0{background:var(--surface)}.heat-1{background:var(--heat-1);border-color:transparent}.heat-2{background:var(--heat-2);border-color:transparent}.heat-3{background:var(--heat-3);border-color:transparent}.heat-4{background:var(--heat-4);border-color:transparent}.heat-5{background:var(--heat-5);border-color:transparent}.heat-legend{display:flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--text-tertiary)}.heat-legend i{width:13px;height:13px;border-radius:var(--radius-xs);display:inline-block}.forecast-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.forecast-cell{border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:12px 14px;background:var(--surface-raised)}.forecast-cell .f-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary);letter-spacing:.02em}.forecast-cell .f-value{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}.forecast-cell .f-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.insight-line{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-sm);display:flex;align-items:flex-start;gap:var(--space-2)}.insight-line svg{flex-shrink:0;margin-top:2px;color:var(--text-tertiary)}.insight-line.good svg{color:var(--positive)}.insight-line.warn svg{color:var(--warning)}.insight-line.bad svg{color:var(--negative)}.goal-card{position:relative}.goal-of{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:var(--weight-medium);margin:-2px 0 8px}.goal-card .meter{margin-bottom:7px}.goal-target-btn{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s,color .12s,border-color .12s}.goal-card:hover .goal-target-btn,.goal-target-btn:focus-visible{opacity:1}.goal-target-btn:hover{color:var(--accent-text);border-color:var(--accent-text)}.holding-row{display:flex;align-items:center;gap:8px;padding:5px 0}.holding-row .input{min-width:0}.worth-breakdown{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-soft);font-size:var(--text-xs);color:var(--text-tertiary)}.worth-breakdown strong{color:var(--text-primary);margin-left:5px;font-variant-numeric:tabular-nums}.worth-breakdown .wb-total{margin-left:auto;color:var(--accent-text);font-weight:var(--weight-medium)}.worth-breakdown .wb-total strong{color:var(--accent-text)}.side-balance .sb-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}a.side-balance{display:block;text-decoration:none}a.side-balance:hover{background:#ffffff29;text-decoration:none}.act-filters{gap:4px;margin-bottom:10px}.act-filters .tab{padding:3px 9px;font-size:var(--text-xs)}.search-stats{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:12px}.ss-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.ss-label{font-size:var(--text-xs);font-weight:var(--weight-strong);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.ss-value{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:-.01em;margin-top:2px;font-variant-numeric:tabular-nums}.insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-3)}.insight-tile{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border)}.it-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.it-emoji{font-size:var(--text-sm);line-height:1;flex-shrink:0}.it-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.it-delta{margin-left:auto;flex-shrink:0;font-size:var(--text-xs);font-weight:var(--weight-medium);padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--text-secondary)}.it-headline{font-size:var(--text-xl);font-weight:var(--weight-strong);letter-spacing:var(--tracking-xl);line-height:var(--leading-display);color:var(--text-primary)}.it-body{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}.it-compare{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-2)}.insight-tile.good .it-delta{background:var(--positive-tint);color:var(--positive)}.insight-tile.warn .it-delta{background:var(--warning-tint);color:var(--warning)}.insight-tile.bad .it-delta{background:var(--negative-tint);color:var(--negative)}.insight-tile.idea .it-delta{background:var(--info-tint);color:var(--info)}.persona-hero{display:flex;align-items:center;gap:16px;background:var(--accent-fill);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);color:var(--text-on-accent)}.persona-hero .p-emoji{font-size:var(--text-5xl)}.persona-hero .p-name{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:-.02em}.persona-hero .p-sub{color:#ffffffc7;font-size:var(--text-sm);margin-top:2px}.trait-row{display:flex;align-items:center;gap:10px;padding:8px 0}.trait-row .t-bar{flex:1}.ach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ach-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;text-align:center;background:var(--surface)}.ach-card.locked{opacity:.55;filter:grayscale(.6)}.ach-card .a-emoji{font-size:var(--text-3xl)}.ach-card .a-name{font-weight:var(--weight-strong);font-size:var(--text-xs);margin-top:6px}.ach-card .a-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.merchant-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-soft)}.merchant-row:last-child{border-bottom:0}.merchant-cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.bell-anchor{position:relative}.bell-btn{position:relative;width:34px;height:34px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.bell-btn:hover{color:var(--accent-text);border-color:var(--accent-text);background:var(--accent-subtle)}.bell-dot{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;background:var(--negative);color:var(--n-0);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-strong);padding:0 4px;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.notif-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transform-origin:top right;animation:popoverIn var(--duration-fast) var(--ease-out)}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px 9px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--surface)}.notif-item{display:flex;gap:11px;padding:11px 15px;border-bottom:1px solid var(--border-soft)}.notif-item:last-child{border-bottom:0}.notif-item.unread{background:var(--accent-subtle)}.notif-icon{width:30px;height:30px;border-radius:var(--radius-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent-subtle-hover);color:var(--accent-text)}.notif-icon.green{background:var(--positive-tint);color:var(--positive)}.notif-icon.amber{background:var(--warning-tint);color:var(--warning)}.notif-icon.red{background:var(--negative-tint);color:var(--negative)}.notif-text{font-size:var(--text-sm);color:var(--text-primary);line-height:1.4}.notif-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px}.attachment-tile{width:108px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:7px;text-align:center;position:relative;background:var(--surface)}.attachment-tile img{width:100%;height:62px;object-fit:cover;border-radius:var(--radius-sm);display:block}.attachment-tile .att-ph{width:100%;height:62px;border-radius:var(--radius-sm);background:var(--accent-subtle);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.attachment-tile .att-name{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-tile .att-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:var(--radius-full);border:0;background:var(--text-primary);color:var(--surface);display:flex;align-items:center;justify-content:center;cursor:pointer}.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius-lg);padding:16px;text-align:center;color:var(--text-tertiary);font-size:var(--text-xs);cursor:pointer;transition:border-color .12s,background .12s}.dropzone:hover,.dropzone.drag{border-color:var(--accent-text);background:var(--accent-subtle);color:var(--accent-text)}.split-row{display:grid;grid-template-columns:1fr 110px 30px;gap:9px;align-items:center;padding:7px 0}.acct-row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-soft)}.acct-row:last-child{border-bottom:0}.acct-icon{width:38px;height:38px;border-radius:var(--radius-lg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-on-accent)}.swatches{display:flex;gap:var(--space-2);flex-wrap:wrap}.swatch{width:2rem;height:2rem;border-radius:var(--radius-full);cursor:pointer;border:2px solid transparent;box-shadow:inset 0 0 0 2px var(--surface)}.swatch.active{border-color:var(--text-primary)}.month-nav{display:inline-flex;align-items:center;gap:4px}.month-nav .m-label{min-width:128px;text-align:center;font-weight:var(--weight-strong);font-size:var(--text-base)}.month-nav button{width:30px;height:30px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .12s,border-color .12s,background .12s}.month-nav button:hover{color:var(--accent-text);border-color:var(--accent-text);background:var(--accent-subtle)}.month-nav button.m-label-btn{width:auto;height:30px;border:1px solid transparent;background:none;color:var(--text-primary);font-weight:var(--weight-strong);font-size:var(--text-base);padding:0 8px}.month-nav button.m-label-btn:hover{border-color:var(--accent-text);background:var(--accent-subtle);color:var(--accent-text)}.month-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:10px;width:216px;animation:fadeIn var(--duration-fast) var(--ease-out)}.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.mp-month{border:0;background:none;padding:8px 0;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer}.mp-month:hover{background:var(--accent-subtle);color:var(--accent-text)}.mp-month.active{background:var(--accent-fill);color:var(--text-on-accent)}.mp-month.today:not(.active){box-shadow:inset 0 0 0 1.5px var(--accent-text)}.mp-nav{border:0;background:none;cursor:pointer;color:var(--text-tertiary);padding:4px;border-radius:var(--radius-sm);display:flex}.mp-nav:hover{background:var(--border-soft);color:var(--text-primary)}.sheet-section{padding:4px 0 10px}.sheet-section+.sheet-section{border-top:1px solid var(--border-soft);margin-top:6px;padding-top:12px}.sheet-head{display:grid;grid-template-columns:20px 1fr 108px 108px 26px;gap:9px;align-items:center;padding:0 2px 4px;font-size:var(--text-xs);font-weight:var(--weight-strong);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary)}.sheet-row{display:grid;grid-template-columns:20px 1fr 108px 108px 26px;gap:9px;align-items:center;padding:3px 2px;border-radius:var(--radius-md)}.cat-mini{font-size:var(--text-sm);line-height:1;cursor:inherit}.cat-toggle{width:1.5rem;height:1.5rem;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:center;justify-self:center;cursor:pointer;color:var(--text-tertiary)}.cat-toggle:disabled{cursor:default}.cat-toggle .ct-chev{display:none;transition:transform var(--duration-fast) var(--ease-out)}.cat-toggle.open .ct-chev{transform:rotate(90deg)}.sheet-row:hover .cat-toggle:not(:disabled) .ct-chev,.cat-toggle:focus-visible .ct-chev{display:block}.sheet-row:hover .cat-toggle:not(:disabled) .ct-marker,.cat-toggle:focus-visible .ct-marker{display:none}.ct-marker{display:flex;align-items:center;justify-content:center}.sheet-entries{grid-column:2 / 5;display:grid;gap:1px;margin:1px 0 5px;padding:3px 0 3px 9px;border-left:2px solid var(--border-soft)}.sheet-entry{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:baseline;font-size:var(--text-xs);padding:2px 6px 2px 2px;border-radius:var(--radius-sm)}.se-date{color:var(--text-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums}.se-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.se-amt{white-space:nowrap;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.sheet-row:hover{background:var(--surface-hover)}.sheet-row .meter{grid-column:2 / 5;margin:1px 0 5px;height:5px}.sheet-input{width:100%;border:1px solid transparent;border-radius:var(--radius-sm);padding:6px 8px;background:transparent;font-size:var(--text-sm);font-weight:var(--weight-normal);transition:border-color .12s,background .12s,box-shadow .12s}.sheet-row:hover .sheet-input{border-color:var(--border);background:var(--surface)}.sheet-input:focus{outline:none;border-color:var(--accent-text);background:var(--surface);box-shadow:0 0 0 3px var(--accent-subtle-hover)}.sheet-input.num{text-align:right;font-variant-numeric:tabular-nums}.sheet-x{width:24px;height:24px;border-radius:var(--radius-sm);border:0;background:transparent;color:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.sheet-row:hover .sheet-x{color:var(--text-tertiary)}.sheet-x:hover{background:var(--negative-tint);color:var(--negative)!important}.sheet-total{display:grid;grid-template-columns:20px 1fr 108px 108px 26px;gap:9px;padding:7px 2px 2px;font-size:var(--text-xs);font-weight:var(--weight-strong);color:var(--text-secondary);border-top:1px solid var(--border-soft);margin-top:4px}.sheet-total .num{text-align:right;font-variant-numeric:tabular-nums;padding-right:8px}.sheet-add{border:1px dashed var(--border);background:transparent;color:var(--text-tertiary);border-radius:var(--radius-md);padding:6px 12px;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;margin-top:6px}.sheet-add:hover{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-subtle)}@media(max-width:760px){.sheet-head{display:none}.sheet-row,.sheet-total{grid-template-columns:18px 1fr 86px 86px 24px;gap:5px}}.spin{animation:spin .9s linear infinite}.demo-note{background:var(--warning-tint);color:var(--warning);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.theme-switch{position:relative;width:46px;height:26px;border-radius:var(--radius-full);flex-shrink:0;padding:0;cursor:pointer;border:1px solid var(--border);background:var(--border-soft);transition:background .25s ease,border-color .25s ease}.theme-switch:hover{border-color:var(--accent-text)}.theme-switch.on{background:var(--accent-subtle-hover);border-color:var(--accent-text)}.theme-switch.floating{position:fixed;top:14px;right:14px;z-index:65;box-shadow:var(--shadow-md)}.ts-knob{position:absolute;left:2px;top:50%;margin-top:-10px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--warning);display:flex;align-items:center;justify-content:center;transition:transform var(--duration-base) var(--ease-out),color var(--duration-fast) var(--ease-out)}.theme-switch.on .ts-knob{transform:translate(20px);color:var(--accent-text)}.ts-knob svg{position:absolute;transition:opacity .2s ease,transform .3s ease}.ts-knob svg:first-child{opacity:1;transform:rotate(0) scale(1)}.ts-knob svg:last-child{opacity:0;transform:rotate(-90deg) scale(.4)}.theme-switch.on .ts-knob svg:first-child{opacity:0;transform:rotate(90deg) scale(.4)}.theme-switch.on .ts-knob svg:last-child{opacity:1;transform:rotate(0) scale(1)}.sidebar .theme-switch{background:var(--surface);border-color:var(--border)}.sidebar .theme-switch:hover{border-color:var(--border-strong)}.sidebar .theme-switch.on{background:var(--surface);border-color:var(--border)}.sidebar .ts-knob{background:var(--surface-raised);color:var(--warning)}.sidebar .theme-switch.on .ts-knob{color:var(--accent-text)}@media(prefers-reduced-motion:reduce){.ts-knob,.ts-knob svg{transition:none}}.link-btn{border:0;background:transparent;color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;display:inline-flex;align-items:center;min-height:1.5rem;padding:0 var(--space-1);margin:0 calc(var(--space-1) * -1)}.link-btn:hover{text-decoration:underline;text-underline-offset:.2em}.auth-page{display:grid;grid-template-columns:.9fr 1.1fr;min-height:100vh}.auth-brand{background:var(--surface-chrome);border-right:1px solid var(--border);color:var(--text-primary);padding:var(--space-12) var(--space-12);display:flex;flex-direction:column;gap:var(--space-6)}.auth-brand .wordmark{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:var(--tracking-lg);color:var(--text-primary)}.auth-brand .wordmark span{color:var(--accent-text)}.auth-brand h1{font-size:var(--text-5xl);line-height:var(--leading-tight);font-weight:var(--weight-strong);letter-spacing:var(--tracking-5xl);margin-top:var(--space-4);max-width:14ch}.auth-points{display:grid;gap:var(--space-3);margin-top:var(--space-1)}.auth-point{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--text-secondary);max-width:44ch}.auth-point svg{flex-shrink:0;margin-top:2px;color:var(--accent-text)}.auth-brand .soft{color:var(--text-tertiary)}.auth-form-side{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5);background:var(--surface-page)}.auth-card{width:100%;max-width:28.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-8)}.auth-title{font-size:var(--text-xl);font-weight:var(--weight-strong);letter-spacing:var(--tracking-xl);line-height:var(--leading-snug);margin-bottom:var(--space-1)}.auth-error{color:var(--negative);font-size:var(--text-xs);font-weight:var(--weight-medium);margin:calc(var(--space-1) * -1) 0 var(--space-3)}.auth-or{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0 var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs)}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--border-soft)}@media(max-width:1020px){.stats,.stats.five{grid-template-columns:repeat(2,1fr)}.stats.five .stat{padding:16px 18px}.stats.five .stat:last-child{grid-column:1 / -1}.grid3,.forecast-grid,.goal-grid,.env-grid,.bucket-grid{grid-template-columns:1fr 1fr}.ach-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}}@media(max-width:760px){.shell{grid-template-columns:1fr;background:var(--surface-page)}.main{border-left:0}.sidebar{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:var(--z-sticky)}.mobile-nav{position:fixed;inset:0;z-index:var(--z-modal);background:var(--surface);padding:var(--space-5);overflow-y:auto;animation:fadeIn var(--duration-fast) var(--ease-out)}.page{padding:var(--space-5) var(--space-4) var(--space-16)}.grid2,.grid3{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.goal-grid,.env-grid,.bucket-grid{grid-template-columns:1fr}.ach-grid,.forecast-grid{grid-template-columns:1fr 1fr}.cal-cell{min-height:46px;padding:3px 5px}.heat-cell{min-height:40px}.heat-cell .h-amt{display:none}.notif-panel{position:fixed;left:12px;right:12px;top:60px;width:auto}}.avatar-lg{width:64px;height:64px;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--accent-subtle-hover);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-strong);font-size:var(--text-lg)}.avatar-lg img{width:100%;height:100%;object-fit:cover;display:block}.avatar-sm{width:1.875rem;height:1.875rem;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--accent-subtle);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-strong);font-size:var(--text-xs)}.avatar-sm img{width:100%;height:100%;object-fit:cover;display:block}.pay-preview{display:flex;align-items:center;gap:8px;background:var(--accent-subtle);border-radius:var(--radius-lg);padding:9px 12px;margin-top:2px}.pay-preview>svg{color:var(--accent-text);flex-shrink:0}.backup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-soft)}.backup-row:last-child{border-bottom:none}.qr-wrap{display:flex;justify-content:center}.qr-wrap img{background:var(--n-0);border-radius:var(--radius-lg);padding:8px;border:1px solid var(--border)}.mc-day.pay{box-shadow:inset 0 0 0 2px var(--pay-color, var(--accent-text));border-radius:var(--radius-md)}.mc-day.today.pay{box-shadow:inset 0 0 0 2px var(--surface)}.pc-block{border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:13px 14px 10px}.pc-dot{display:inline-block;width:9px;height:9px;border-radius:var(--radius-full);flex-shrink:0;vertical-align:baseline}[data-privacy="1"] .money-val,[data-privacy="1"] .s-value,[data-privacy="1"] .txn-amount,[data-privacy="1"] .sb-amount,[data-privacy="1"] .goal-nums,[data-privacy="1"] .sheet-total .num{filter:blur(6px);transition:filter .12s ease}[data-privacy="1"] .money-val:hover,[data-privacy="1"] .s-value:hover,[data-privacy="1"] .txn-amount:hover,[data-privacy="1"] .sb-amount:hover,[data-privacy="1"] .goal-nums:hover,[data-privacy="1"] .sheet-total .num:hover,[data-privacy="1"] .stat:hover .s-value,[data-privacy="1"] .txn-row:hover .txn-amount{filter:none}.suggest-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.suggest-row:last-child{border-bottom:none}.who-chip{width:1.25rem;height:1.25rem;border-radius:var(--radius-full);flex-shrink:0;color:var(--text-on-accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-strong)}.who-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:var(--radius-full);background:var(--info-tint);color:var(--info);font-size:var(--text-xs);font-weight:var(--weight-strong)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;max-width:1080px;margin:0 auto}.settings-grid>.settings-wide{grid-column:1 / -1}@media(max-width:900px){.settings-grid{grid-template-columns:1fr;max-width:680px}}.sg-stack{display:grid;gap:var(--space-4)}.sg-section{scroll-margin-top:var(--space-6)}.sg-row{display:grid;grid-template-columns:9rem 1fr;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border-soft);align-items:baseline}.sg-row:last-child{border-bottom:0}.sg-row-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary)}.sg-row-note{display:block;color:var(--text-tertiary);font-weight:var(--weight-normal);margin-top:2px}.sg-row-items{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.sg-type-row{display:grid;grid-template-columns:3rem 4rem 1fr;gap:var(--space-4);align-items:baseline;padding:var(--space-2) 0}.sg-token{font-size:var(--text-xs);color:var(--text-tertiary)}.sg-tabular{display:grid;gap:2px;font-weight:var(--weight-medium)}.sg-ramp{display:flex;flex-wrap:wrap;gap:var(--space-1)}.sg-ramp.wide{gap:var(--space-3)}.sg-chip{width:2rem;height:2rem;border-radius:var(--radius-sm);border:1px solid var(--border);display:inline-block}.sg-semantic{font-size:var(--text-xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.sg-space{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-1)}.sg-space>span{background:var(--accent-fill);border-radius:2px;display:block}.sg-space em{font-style:normal;font-size:var(--text-xs);color:var(--text-tertiary)}.sg-radius,.sg-shadow{width:3.5rem;height:3.5rem;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface);border:1px solid var(--border)}.sg-shadow{border-radius:var(--radius-md);border-color:transparent}@media(max-width:760px){.sg-row{grid-template-columns:1fr;gap:var(--space-2)}.sg-type-row{grid-template-columns:2.5rem 3.5rem 1fr;gap:var(--space-2)}}@media(prefers-reduced-motion:no-preference){.dash-mod>.card,.stagger>*{animation:rise var(--duration-slow) var(--ease-out) backwards}.dash-mod:nth-child(2)>.card,.stagger>*:nth-child(2){animation-delay:40ms}.dash-mod:nth-child(3)>.card,.stagger>*:nth-child(3){animation-delay:80ms}.dash-mod:nth-child(4)>.card,.stagger>*:nth-child(4){animation-delay:.12s}.dash-mod:nth-child(5)>.card,.stagger>*:nth-child(5){animation-delay:.16s}.dash-mod:nth-child(n+6)>.card,.stagger>*:nth-child(n+6){animation-delay:.2s}.dash-mod.dragging>.card{animation:none}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
