@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2) format("woff2"),url(/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff");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}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff");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}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff");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}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-ext-700-normal-CI4iH74K.woff2) format("woff2"),url(/assets/outfit-latin-ext-700-normal-fjS8-Gm7.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff) format("woff");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{color-scheme:light;--bg: #f6f4fc;--bg-gradient: radial-gradient(120% 120% at 50% 0%, #ffffff 0%, #f6f4fc 60%, #eee8f8 100%);--surface: rgba(255, 255, 255, .76);--surface-card: rgba(255, 255, 255, .9);--surface-raised: #ffffff;--surface-modal: rgba(255, 255, 255, .96);--ink: #0b1026;--muted: #5b5e70;--violet-strong: #7954dd;--violet: #a77bff;--violet-subtle: rgba(121, 84, 221, .08);--cyan: #65d7ff;--income: #0e704a;--income-subtle: rgba(14, 112, 74, .1);--expense: #b3261e;--expense-subtle: rgba(179, 38, 30, .1);--warning: #944b00;--warning-subtle: rgba(148, 75, 0, .1);--border: rgba(11, 16, 38, .1);--border-strong: rgba(11, 16, 38, .2);--focus-ring: 0 0 0 3px rgba(121, 84, 221, .35);--radius-sm: 12px;--radius-md: 20px;--radius-lg: 28px;--radius-pill: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-family: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: 26px;--font-size-2xl: 32px;--font-size-hero: 40px;--line-height-tight: 1.2;--line-height-normal: 1.5;--shadow-sm: 0 2px 8px rgba(11, 16, 38, .04);--shadow-md: 0 8px 24px rgba(11, 16, 38, .08);--shadow-lg: 0 16px 40px rgba(11, 16, 38, .14)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0d111d;--bg-gradient: radial-gradient(120% 120% at 50% 0%, #151b2e 0%, #0d111d 60%, #070911 100%);--surface: rgba(22, 29, 48, .76);--surface-card: rgba(26, 34, 56, .9);--surface-raised: #1d253d;--surface-modal: rgba(22, 29, 48, .96);--ink: #f0f3fa;--muted: #9aa1b9;--violet-strong: #9670f5;--violet: #bda2ff;--violet-subtle: rgba(150, 112, 245, .15);--cyan: #85e0ff;--income: #3dd69b;--income-subtle: rgba(61, 214, 155, .15);--expense: #ff7f70;--expense-subtle: rgba(255, 127, 112, .15);--warning: #ffb84d;--warning-subtle: rgba(255, 184, 77, .15);--border: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .24);--focus-ring: 0 0 0 3px rgba(150, 112, 245, .45);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0d111d;--bg-gradient: radial-gradient(120% 120% at 50% 0%, #151b2e 0%, #0d111d 60%, #070911 100%);--surface: rgba(22, 29, 48, .76);--surface-card: rgba(26, 34, 56, .9);--surface-raised: #1d253d;--surface-modal: rgba(22, 29, 48, .96);--ink: #f0f3fa;--muted: #9aa1b9;--violet-strong: #9670f5;--violet: #bda2ff;--violet-subtle: rgba(150, 112, 245, .15);--cyan: #85e0ff;--income: #3dd69b;--income-subtle: rgba(61, 214, 155, .15);--expense: #ff7f70;--expense-subtle: rgba(255, 127, 112, .15);--warning: #ffb84d;--warning-subtle: rgba(255, 184, 77, .15);--border: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .24);--focus-ring: 0 0 0 3px rgba(150, 112, 245, .45);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip;scrollbar-gutter:stable;scrollbar-color:var(--border-strong) transparent;background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;width:100%;overflow-x:clip;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--bg-gradient);pointer-events:none}*{scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}button:disabled{cursor:not-allowed;opacity:.6}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tabular-nums{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes spin{to{transform:rotate(360deg)}}.shell{display:flex;min-height:100vh;width:100%}.shell-sidebar{width:240px;flex-shrink:0;background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--space-5);position:sticky;top:0;align-self:flex-start;height:100vh;height:100dvh;overflow-y:auto}.shell-brand{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-lg);font-weight:700;color:var(--violet-strong);margin:calc(-1 * var(--space-2)) 0 var(--space-4)}.shell-nav{display:flex;flex-direction:column;gap:4px;flex:1}.shell-link{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:44px;border-radius:var(--radius-sm);color:var(--muted);font-weight:500;font-size:var(--font-size-sm)}.shell-link[aria-current=page]{color:var(--violet-strong);background:var(--violet-subtle);font-weight:600}.shell-launch{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--violet-strong);color:#fff;font-weight:600}.shell-user{border-top:1px solid var(--border);padding-top:var(--space-4);margin-top:var(--space-4)}.shell-main{flex:1;min-width:0;padding:var(--space-6) var(--space-6) var(--space-7);max-width:1440px;margin:0 auto;width:100%}.shell-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;z-index:90;padding-left:8px;padding-right:8px}.shell-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;min-height:44px;color:var(--muted);font-size:11px}.shell-tab[aria-current=page]{color:var(--violet-strong)}.shell-fab{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-pill);background:var(--violet-strong);color:#fff;box-shadow:var(--shadow-sm)}@media(max-width:767px){.shell-sidebar{display:none}.shell-main{padding:var(--space-4) var(--space-4) calc(64px + env(safe-area-inset-bottom,0px) + var(--space-5))}}@media(min-width:768px){.shell-bottom-nav{display:none}}@media(min-width:768px)and (max-width:1199px){.shell-sidebar{width:208px;padding:var(--space-4)}.shell-main{padding:var(--space-5) var(--space-5) var(--space-7)}}.page{display:flex;flex-direction:column;gap:var(--space-5)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.page-header>*{min-width:0;max-width:100%}.page-title{font-size:var(--font-size-2xl);font-weight:700;line-height:var(--line-height-tight)}.page-sub{color:var(--muted);font-size:var(--font-size-sm);margin-top:4px}.section-title{font-size:var(--font-size-lg);font-weight:600}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.stack-lg{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.row-wrap{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.grow{flex:1;min-width:0}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}@media(max-width:767px){.grid-3{grid-template-columns:1fr}}@media(max-width:479px){.grid-2{grid-template-columns:1fr}}.list-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:12px 16px;min-height:56px;border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border)}.list-row.is-archived{opacity:.6}.list-row.is-child{margin-left:var(--space-5)}.list-main{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:1}.list-title{font-weight:600;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.list-sub{font-size:13px;color:var(--muted);overflow-wrap:break-word}.day-header{font-size:13px;font-weight:600;color:var(--muted);text-transform:capitalize;margin-top:var(--space-2)}.muted{color:var(--muted)}.small{font-size:var(--font-size-sm)}.strong{font-weight:600}.amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;text-align:right}.amount-lg{font-variant-numeric:tabular-nums;font-size:var(--font-size-xl);font-weight:700}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.text-warning{color:var(--warning)}.input{width:100%;padding:10px 14px;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);color:var(--ink);font-size:var(--font-size-base)}textarea.input{min-height:72px;resize:vertical}.field{display:flex;flex-direction:column;gap:6px;width:100%;min-width:0}.field-label{font-size:var(--font-size-sm);font-weight:500}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-sm);color:var(--muted)}.icon-btn:hover{background:var(--violet-subtle);color:var(--ink)}.dot{width:12px;height:12px;border-radius:var(--radius-pill);flex-shrink:0}.avatar{width:36px;height:36px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-weight:700}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;min-height:28px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-raised);font-size:13px;font-weight:500;white-space:nowrap}.chip.is-income{color:var(--income);background:var(--income-subtle);border-color:transparent}.chip.is-expense{color:var(--expense);background:var(--expense-subtle);border-color:transparent}.chip.is-warning{color:var(--warning);background:var(--warning-subtle);border-color:transparent}.chip.is-violet{color:var(--violet-strong);background:var(--violet-subtle);border-color:transparent}.segmented{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--radius-sm);background:var(--violet-subtle)}.segmented button{flex:1;min-height:40px;padding:6px 12px;border-radius:8px;font-weight:600;font-size:var(--font-size-sm);color:var(--muted)}.segmented button[aria-pressed=true]{background:var(--surface-raised);color:var(--violet-strong);box-shadow:var(--shadow-sm)}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:36px;height:36px;border-radius:var(--radius-pill);border:2px solid transparent}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface-raised) inset}.progress{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--border);overflow:hidden}.progress>span{display:block;height:100%;border-radius:var(--radius-pill);background:var(--violet-strong)}.progress.is-warning>span{background:var(--warning)}.progress.is-over>span{background:var(--expense)}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.month-picker{display:inline-flex;align-items:center;gap:4px;font-weight:600;text-transform:capitalize}.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th,.table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{color:var(--muted);font-weight:600}.credit-card{border-radius:var(--radius-md);padding:var(--space-5);color:#fff;display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-md);min-height:170px}.credit-card .progress{background:#ffffff4d}.credit-card .progress>span{background:#fff}.link{color:var(--violet-strong);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overscroll-behavior:contain}.sheet-panel{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:90vh;max-height:90dvh;background:var(--surface-modal);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-shrink:0;padding:var(--space-5) var(--space-5) var(--space-4) var(--space-6)}.sheet-title{font-size:var(--font-size-xl);font-weight:600;line-height:var(--line-height-tight)}.sheet-description{color:var(--muted);font-size:var(--font-size-sm);margin-top:4px}.sheet-body{flex:1;min-height:0;overflow-y:auto;padding:4px var(--space-6) var(--space-6)}@media(max-width:767px){.sheet-backdrop{align-items:flex-end;padding:var(--space-2) 0 0}.sheet-panel{max-width:none;max-height:92vh;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none}.sheet-header{padding:var(--space-4) var(--space-3) var(--space-3) var(--space-4)}.sheet-body{padding:4px var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom,0px))}}.public-theme{position:fixed;top:var(--space-3);right:var(--space-3);z-index:50;border-radius:var(--radius-sm);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}.remember{display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-2) 0;font-size:var(--font-size-sm);cursor:pointer}.remember input{width:20px;height:20px;margin-top:1px;flex-shrink:0;accent-color:var(--violet-strong)}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:10px 20px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);font-size:var(--font-size-base);font-weight:600;text-decoration:none}.google-button:hover{border-color:var(--violet-strong)}.google-button:focus-visible{outline:2px solid var(--violet-strong);outline-offset:2px}.login-divider{display:flex;align-items:center;gap:var(--space-3);color:var(--muted);font-size:var(--font-size-sm)}.login-divider:before,.login-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.period-picker{position:relative;display:inline-flex;align-items:center;gap:2px;max-width:100%}.period-trigger{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-radius:var(--radius-sm);font-weight:600;color:var(--ink);min-width:0}.period-trigger:hover,.period-trigger[aria-expanded=true]{background:var(--violet-subtle)}.period-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.period-label:first-letter{text-transform:uppercase}.period-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:min(300px,calc(100vw - 32px));padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:6px}.period-options{display:flex;flex-direction:column}.period-option{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:8px 12px;border-radius:8px;font-size:var(--font-size-sm);color:var(--ink);text-align:left}.period-option:hover{background:var(--surface)}.period-option[aria-pressed=true]{background:var(--violet-subtle);color:var(--violet-strong);font-weight:600}.period-custom{display:flex;flex-direction:column;gap:var(--space-2);padding:8px 6px 4px;border-top:1px solid var(--border)}.period-custom .grid-2{grid-template-columns:1fr}
