@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}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;min-height:48px;padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--radius-md);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:.01em;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:active:not(:disabled){transform:scale(.98)}.btn--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 88%,var(--color-bg))}.btn--ghost{background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text)}.btn--ghost:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-3)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.field{margin-bottom:var(--sp-4)}.field label{display:block;margin-bottom:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--color-text-muted)}.field input,.field select{width:100%;min-height:48px;padding:0 var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font:inherit;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.field input:focus,.field select:focus{outline:none;border-color:var(--color-border-strong);background:var(--color-surface-3)}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.field input[aria-invalid=true]{border-color:var(--color-negative)}.field-error{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--color-negative)}.checkbox{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;margin-bottom:var(--sp-4);font-size:var(--fs-sm);cursor:pointer}.checkbox input{width:20px;height:20px;accent-color:var(--color-primary)}.alert{padding:var(--sp-3);border:1px solid;border-radius:var(--radius-md);margin-bottom:var(--sp-4);font-size:var(--fs-sm);animation:alert-in var(--dur-base) var(--ease-out)}@keyframes alert-in{0%{opacity:0;transform:translateY(-4px)}}.alert--error{border-color:color-mix(in srgb,var(--color-negative) 45%,transparent);background:color-mix(in srgb,var(--color-negative) 12%,transparent);color:var(--color-negative)}.alert--success{border-color:color-mix(in srgb,var(--color-positive) 45%,transparent);background:color-mix(in srgb,var(--color-positive) 12%,transparent);color:var(--color-positive)}.alert--info{border-color:var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-6)}.content .card{animation:card-in var(--dur-base) var(--ease-out) both}.content .card:nth-child(1){animation-delay:0ms}.content .card:nth-child(2){animation-delay:40ms}.content .card:nth-child(3){animation-delay:80ms}.content .card:nth-child(4){animation-delay:.12s}.content .card:nth-child(n+5){animation-delay:.16s}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spinner--lg{width:28px;height:28px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.fullpage-spinner{min-height:100dvh;display:grid;place-items:center;gap:var(--sp-4);color:var(--color-text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.content .card,.alert{animation:none}}@media(max-width:640px){.card{padding:var(--sp-4);border-radius:var(--radius-md)}}.orbe-lockup{display:inline-flex;align-items:center;gap:var(--sp-3)}.orbe-mark{display:block;color:var(--color-text);flex:none}.orbe-wordmark{font-size:var(--fs-lg);font-weight:var(--fw-regular);letter-spacing:var(--track-tight);color:var(--color-text)}.orbe-dot-orbit{transform-origin:24px 24px}.orbe-mark.is-spinning .orbe-dot-orbit{animation:orbe-orbit 1.4s linear infinite}@keyframes orbe-orbit{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.orbe-mark.is-spinning .orbe-dot-orbit{animation:none}}.auth-shell{position:relative;min-height:100dvh;display:grid;place-items:center;padding:var(--sp-4);background:radial-gradient(620px 420px at 50% -10%,color-mix(in srgb,var(--color-text) 7%,transparent),transparent 70%),var(--color-bg)}.auth-theme{position:fixed;top:calc(var(--sp-2) + env(safe-area-inset-top));right:var(--sp-2);z-index:10}.auth-box{width:100%;max-width:400px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-8)}.auth-tagline{margin:0;font-size:var(--fs-xs);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--color-text-faint)}.auth-title{font-size:var(--fs-xl);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin-bottom:var(--sp-2)}.auth-sub{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0 0 var(--sp-6);line-height:1.6}.auth-form{margin-top:var(--sp-2)}.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4);font-size:var(--fs-sm)}.auth-footer{text-align:center;margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--color-text-muted)}.auth-link{color:var(--color-text);text-decoration:none;font-weight:var(--fw-medium);border-bottom:1px solid var(--color-border-strong);padding-bottom:1px}.auth-link:hover{border-bottom-color:var(--color-text)}.center-shell{min-height:100dvh;display:grid;place-items:center;padding:var(--sp-4)}.center-box{width:100%;max-width:440px}.onb-title{font-size:var(--fs-xl);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin-bottom:var(--sp-2)}.onb-sub{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0 0 var(--sp-6);line-height:1.6}.onb-choices{display:flex;flex-direction:column;gap:var(--sp-3)}.onb-note{color:var(--color-text-muted);font-size:var(--fs-xs);margin:var(--sp-4) 0 0;line-height:1.6}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-4)}.stat-grid .card{container-type:inline-size}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-3)}.stat-label{margin:0;font-size:var(--fs-sm);color:var(--color-text-muted)}.stat-value{display:block;margin:0;font-size:clamp(1.6rem,7cqi,var(--fs-2xl));font-weight:var(--fw-semibold);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums;white-space:nowrap}.stat-value.is-negative{color:var(--color-negative)}.stat-foot{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--color-border)}.stat-badge{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text-muted)}.stat-hint{margin:0;font-size:var(--fs-xs);color:var(--color-text-muted);line-height:1.5}.card-h2{font-size:var(--fs-md);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.content>.card,.content>.stat-grid{margin-bottom:var(--sp-4)}.content>.card:last-child{margin-bottom:0}.cat-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-4)}.cat-count{font-size:var(--fs-sm);color:var(--color-text-muted)}.cat-group-label{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-xs);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--color-text-faint)}.cat-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip{padding:4px 12px;border-radius:var(--radius-pill);font-size:var(--fs-sm);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)}.chip--receita{color:var(--color-positive);border-color:color-mix(in srgb,var(--color-positive) 30%,var(--color-border))}.chip--despesa{color:var(--color-negative);border-color:color-mix(in srgb,var(--color-negative) 30%,var(--color-border))}.donut-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-8);margin-top:var(--sp-6)}.donut-figure{position:relative;width:190px;height:190px;flex:none}.donut{width:100%;height:100%;transform:rotate(-90deg)}.donut-ring{fill:none;stroke:var(--color-surface-3);stroke-width:4.5}.donut-seg{fill:none;stroke-width:4.5;stroke-linecap:butt;transition:stroke-dasharray var(--dur-slow) var(--ease-out)}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;text-align:center;padding:0 var(--sp-8)}.donut-center-label{font-size:var(--fs-xs);color:var(--color-text-muted);letter-spacing:var(--track-wide);text-transform:uppercase}.donut-center-value{font-size:var(--fs-md);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;letter-spacing:var(--track-tight)}.donut-legend{list-style:none;margin:0;padding:0;flex:1;min-width:220px;font-size:var(--fs-sm)}.donut-legend li{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-border)}.donut-legend li:last-child{border-bottom:none}.donut-key{width:10px;height:10px;border-radius:var(--radius-pill);flex:none}.donut-label{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--color-text)}.donut-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--fw-medium)}.donut-pct{display:inline-block;min-width:34px;text-align:right;color:var(--color-text-faint);font-weight:var(--fw-regular)}@media(max-width:640px){.donut-wrap{gap:var(--sp-4);justify-content:center}.donut-figure{width:168px;height:168px}.donut-legend{min-width:100%}}@media(prefers-reduced-motion:reduce){.donut-seg{transition:none}}.member-list{list-style:none;margin:var(--sp-4) 0;padding:0}.member-list li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-border)}.member-list li:last-child{border-bottom:none}.member-name{font-weight:var(--fw-medium)}.member-role{font-size:var(--fs-xs);color:var(--color-text-muted)}.invite-box{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--color-border)}.invite-code{margin:var(--sp-3) 0;padding:var(--sp-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);text-align:center;font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:all;user-select:all}.invite-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-bottom:var(--sp-3)}.invite-actions .btn{width:auto}.acc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.acc-head .btn{width:auto}.acc-empty{margin:0;color:var(--color-text-muted);font-size:var(--fs-sm)}.acc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.acc-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--color-border)}.acc-row:last-child{border-bottom:none}.acc-row>div{min-width:0}.acc-name{display:block;font-weight:var(--fw-medium);overflow-wrap:anywhere}.acc-type{display:block;font-size:var(--fs-xs);color:var(--color-text-muted)}.acc-balance{font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.acc-balance.is-negative{color:var(--color-negative)}.form-hint{margin:calc(-1 * var(--sp-2)) 0 var(--sp-4);font-size:var(--fs-xs);color:var(--color-text-muted)}.form-actions{display:flex;gap:var(--sp-3)}.form-actions .btn{width:auto;flex:1}.edit{margin:var(--sp-3) 0 var(--sp-4);padding:var(--sp-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}.edit-history-toggle{margin-top:var(--sp-3)}.hist{list-style:none;margin:var(--sp-3) 0 0;padding:0;counter-reset:none}.hist-item{padding:var(--sp-3) 0;border-top:1px solid var(--color-border)}.hist-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-2);margin:0;font-size:var(--fs-sm)}.hist-meta{font-size:var(--fs-xs);color:var(--color-text-muted)}.hist-changes{list-style:none;margin:var(--sp-2) 0 0;padding:0;font-size:var(--fs-sm)}.hist-changes li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2);padding:2px 0;font-variant-numeric:tabular-nums}.hist-label{min-width:84px;color:var(--color-text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em}.hist-from{color:var(--color-text-muted);text-decoration:line-through}.hist-to{font-weight:var(--fw-medium)}.hist-simple{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--color-text-muted)}.txn-kind{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4)}.txn-kind-btn{flex:1;padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font:inherit;font-weight:var(--fw-medium);cursor:pointer;transition:all .15s ease}.txn-kind-btn:hover{border-color:var(--color-focus)}.txn-kind-btn.is-active.is-despesa{border-color:var(--color-negative);color:var(--color-negative);background:color-mix(in srgb,var(--color-negative) 10%,transparent)}.txn-kind-btn.is-active.is-shared{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.field-label-static{display:block;margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.txn-kind-btn.is-active.is-receita{border-color:var(--color-positive);color:var(--color-positive);background:color-mix(in srgb,var(--color-positive) 10%,transparent)}.txn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.txn-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--color-border)}.txn-row:last-child{border-bottom:none}.txn-main{min-width:0}.txn-desc{display:block;font-weight:var(--fw-medium);overflow-wrap:anywhere}.txn-meta{display:block;font-size:var(--fs-xs);color:var(--color-text-muted)}.txn-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-1)}.txn-amount{font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.txn-amount--receita,.txn-amount--ajuste{color:var(--color-positive)}.txn-amount--despesa{color:var(--color-negative)}.txn-row-actions{display:flex;gap:var(--sp-3)}.txn-del{border:none;background:none;padding:0;font:inherit;font-size:var(--fs-xs);color:var(--color-text-muted);text-decoration:underline;cursor:pointer}.txn-del:hover:not(:disabled){color:var(--color-negative)}.txn-del:disabled{opacity:.5;cursor:default}.goal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-6)}.goal-row.is-inactive{opacity:.6}.goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.goal-id{min-width:0}.goal-name{display:block;font-weight:var(--fw-medium);overflow-wrap:anywhere}.goal-meta{display:block;font-size:var(--fs-xs);color:var(--color-text-muted)}.goal-values{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;white-space:nowrap}.goal-target{font-size:var(--fs-xs);color:var(--color-text-muted)}.goal-bar{height:8px;border-radius:999px;background:var(--color-border);overflow:hidden}.goal-bar-fill{height:100%;border-radius:999px;background:var(--color-primary);transition:width .4s ease}.goal-bar-fill.is-done{background:var(--color-positive)}.goal-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--color-text-muted)}.goal-actions{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-2)}.goal-contrib{margin-top:var(--sp-3)}@media(prefers-reduced-motion:reduce){.goal-bar-fill{transition:none}}.bud-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-4)}.bud-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.bud-name{font-weight:var(--fw-medium);min-width:0;overflow-wrap:anywhere}.bud-values{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--fw-medium)}.bud-values.is-over,.bud-hint .is-over{color:var(--color-negative)}.bud-limit{font-weight:var(--fw-regular);color:var(--color-text-muted)}.bud-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--color-text-muted)}.bud-total{margin:var(--sp-6) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--color-border);font-size:var(--fs-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.goal-bar-fill.is-near{background:var(--color-warning)}.goal-bar-fill.is-over{background:var(--color-negative)}.filter-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.chip-btn{padding:4px 12px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip-btn:hover{color:var(--color-text);border-color:var(--color-focus)}.chip-btn.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast);font-weight:var(--fw-medium)}.chip-btn:focus-visible,.nav-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.filter-period{margin-bottom:var(--sp-4)}.filter-nav{display:flex;align-items:center;gap:var(--sp-3)}.nav-btn{width:28px;height:28px;flex:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:var(--fs-lg);line-height:1;cursor:pointer}.nav-btn:hover:not(:disabled){border-color:var(--color-focus)}.nav-btn:disabled{opacity:.35;cursor:default}.filter-label{font-weight:var(--fw-medium);text-transform:capitalize}.voice{margin-bottom:var(--sp-4);padding-bottom:var(--sp-4);border-bottom:1px dashed var(--color-border)}.voice-row{display:flex;gap:var(--sp-2)}.voice-input{flex:1;min-width:0;min-height:48px;padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font:inherit}.voice-input:focus-visible,.voice-mic:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.voice-mic{flex:none;width:48px;min-height:48px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);font-size:var(--fs-lg);line-height:1}.voice-mic.is-on{border-color:var(--color-negative);color:var(--color-negative);animation:voice-pulse 1s ease-in-out infinite}@keyframes voice-pulse{50%{opacity:.45}}.voice-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--color-text-muted)}.voice-preview{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}.voice-preview-title{margin:0 0 var(--sp-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.voice-facts{list-style:none;margin:0 0 var(--sp-3);padding:0;font-size:var(--fs-sm)}.voice-facts li{display:flex;justify-content:space-between;gap:var(--sp-3);padding:2px 0}.voice-facts span{color:var(--color-text-muted)}.voice-facts .is-missing{color:var(--color-warning);font-weight:var(--fw-regular)}.voice-preview .btn{width:100%}.qa{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--color-border)}.qa-amount-label,.qa-label{display:block;margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.qa-amount-label{margin-top:0}.qa-amount{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);transition:border-color .15s ease}.qa-amount:focus-within{border-color:var(--color-focus)}.qa-amount.is-spend:focus-within{border-color:var(--color-negative)}.qa-amount.is-income:focus-within{border-color:var(--color-positive)}.qa-currency{font-size:var(--fs-lg);color:var(--color-text-muted)}.qa-amount-input{flex:1;min-width:0;border:none;background:none;padding:0;color:var(--color-text);font:inherit;font-size:2rem;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.qa-amount-input:focus{outline:none}.qa-preview{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.qa-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.qa-chip{min-height:40px;padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-2);color:var(--color-text);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease}.qa-chip:hover{border-color:var(--color-focus)}.qa-chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast);font-weight:var(--fw-medium)}.qa-chip:focus-visible,.qa-date:focus-visible,.qa-desc:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.qa-date{min-height:40px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-2);color:var(--color-text);font:inherit;font-size:var(--fs-sm)}.qa-desc{width:100%;margin-top:var(--sp-4);padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font:inherit}.qa-actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-6)}.qa-actions .btn{flex:1;min-height:48px}.qa-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--color-text-muted);text-align:center}.flow-total{display:flex;flex-direction:column;gap:var(--sp-1);margin:var(--sp-4) 0 0}.flow-total-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.flow-total-value.is-spend{color:var(--color-negative)}.flow-total-value.is-income{color:var(--color-positive)}.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 var(--sp-4);margin-top:var(--sp-4)}.calc-presets{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-6)}.calc-presets .stat-label{margin:0}.calc-presets .btn{width:auto;padding:4px 12px;font-size:var(--fs-sm)}.calc-result{padding:var(--sp-4);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border)}.calc-breakdown{list-style:none;margin:var(--sp-4) 0 0;padding:0;font-size:var(--fs-sm)}.calc-breakdown li{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-border);font-variant-numeric:tabular-nums}.calc-breakdown li:last-child{border-bottom:none}.calc-final{font-weight:var(--fw-semibold);font-size:var(--fs-md)}.calc-target{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--color-border)}.calc-target-answer{margin:calc(-1 * var(--sp-2)) 0 0;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.calc-chart{margin-top:var(--sp-6)}.calc-chart svg{width:100%;height:120px;display:block}.calc-area{fill:color-mix(in srgb,var(--color-primary) 18%,transparent)}.calc-line{fill:none;stroke:var(--color-primary);stroke-width:2;stroke-linejoin:round}.calc-axis{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:var(--sp-1)}.shell{min-height:100dvh;background:var(--color-bg)}.side{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);padding-top:calc(var(--sp-3) + env(safe-area-inset-top));background:color-mix(in srgb,var(--color-bg) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border)}.topbar-title{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.topbar-h1{font-size:var(--fs-lg);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{display:flex;align-items:center;gap:var(--sp-2)}.avatar{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-surface-3);border:1px solid var(--color-border);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:var(--track-wide)}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.icon-btn:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.4}.content{padding:var(--sp-4) var(--sp-4) calc(96px + env(safe-area-inset-bottom));max-width:1180px;margin:0 auto;animation:content-in var(--dur-base) var(--ease-out)}@keyframes content-in{0%{opacity:0;transform:translateY(8px)}}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2) calc(var(--sp-2) + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--color-surface) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--color-border)}.bottom-item{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:none;color:var(--color-text-faint);font:inherit;font-size:11px;border-radius:var(--radius-md);transition:color var(--dur-fast) var(--ease-out)}.bottom-item.is-active{color:var(--color-text)}.bottom-icon{display:grid;place-items:center;height:24px;transition:transform var(--dur-base) var(--ease-spring)}.bottom-item.is-active .bottom-icon{transform:translateY(-1px) scale(1.06)}.bottom-item:active .bottom-icon{transform:scale(.9)}.bottom-label{letter-spacing:.01em}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;animation:fade-in var(--dur-fast) var(--ease-out)}.sheet{width:100%;background:var(--color-surface);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:1px solid var(--color-border);padding:var(--sp-3) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));animation:sheet-up var(--dur-base) var(--ease-out)}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.sheet-handle{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--color-border-strong);margin-inline:auto;transform:translate(22px)}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:var(--sp-2)}.sheet-item{min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-muted);font:inherit;font-size:var(--fs-xs);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.sheet-item:active{transform:scale(.97)}.sheet-item.is-active{color:var(--color-text);border-color:var(--color-border-strong);background:var(--color-surface-3)}@media(min-width:1024px){.shell{display:grid;grid-template-columns:264px 1fr}.side{display:flex;flex-direction:column;gap:var(--sp-6);height:100dvh;position:sticky;top:0;padding:var(--sp-6) var(--sp-4);border-right:1px solid var(--color-border);background:var(--color-bg)}.side-brand{padding:0 var(--sp-2)}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}.side-item{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;padding:0 var(--sp-3);border:1px solid transparent;border-radius:var(--radius-md);background:none;color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);text-align:left;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.side-item:hover{background:var(--color-surface-2);color:var(--color-text)}.side-item.is-active{background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text);font-weight:var(--fw-medium)}.side-icon{display:grid;place-items:center;color:inherit}.side-foot{padding:var(--sp-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.side-house{margin:0 0 var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.side-quote{margin:0;font-size:var(--fs-xs);color:var(--color-text-muted);line-height:1.5}.bottom,.topbar-mobile-brand{display:none}.content{padding:var(--sp-6) var(--sp-8) var(--sp-12)}.topbar{padding:var(--sp-4) var(--sp-8)}}@media(prefers-reduced-motion:reduce){.content,.sheet,.sheet-scrim{animation:none}}:root{--font-sans: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.75rem;--fs-2xl: 2.25rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--track-tight: -.02em;--track-normal: 0;--track-wide: .08em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-12: 3rem;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px;--dur-fast: .14s;--dur-base: .22s;--dur-slow: .32s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .5);--icon-sm: 16px;--icon-md: 20px;--icon-lg: 24px;--color-bg: #08080a;--color-surface: #101013;--color-surface-2: #17171b;--color-surface-3: #1e1e23;--color-border: #26262c;--color-border-strong: #34343c;--color-text: #f7f7f8;--color-text-muted: #8e8e97;--color-text-faint: #5c5c66;--color-primary: #f7f7f8;--color-primary-contrast: #08080a;--color-positive: #4ade80;--color-negative: #f87171;--color-warning: #fbbf24;--color-focus: #a5a5b0;--chart-1: #8b8bf5;--chart-2: #38bdf8;--chart-3: #fbbf24;--chart-4: #fb7185;--chart-5: #4ade80;--chart-6: #c084fc;--chart-7: #fb923c;--chart-8: #2dd4bf;--scrim: rgba(0, 0, 0, .6)}[data-theme=light]{--color-bg: #f6f6f7;--color-surface: #ffffff;--color-surface-2: #f2f2f4;--color-surface-3: #e9e9ec;--color-border: #e2e2e6;--color-border-strong: #cfcfd6;--color-text: #0d0d10;--color-text-muted: #63636e;--color-text-faint: #8b8b96;--color-primary: #0d0d10;--color-primary-contrast: #ffffff;--color-positive: #15803d;--color-negative: #b91c1c;--color-warning: #b45309;--color-focus: #4b4b57;--chart-1: #6366f1;--chart-2: #0284c7;--chart-3: #ca8a04;--chart-4: #e11d48;--chart-5: #15803d;--chart-6: #9333ea;--chart-7: #ea580c;--chart-8: #0d9488;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 50px rgba(15, 23, 42, .12);--scrim: rgba(15, 23, 42, .45)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.55;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}h1,h2,h3{line-height:1.25;letter-spacing:var(--track-tight);font-weight:var(--fw-medium);margin:0}[class*=amount],[class*=value],[class*=balance],[class*=total]{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}button{font-family:inherit;cursor:pointer}input,select,textarea{font-size:max(16px,1rem)}body{overflow-x:hidden}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
