.spinner[data-v-3dde0559]{opacity:.7;border:2px solid;border-right-color:#0000;border-radius:50%;animation:.7s linear infinite spin-3dde0559;display:inline-block}.spinner--sm[data-v-3dde0559]{width:14px;height:14px}.spinner--md[data-v-3dde0559]{width:24px;height:24px}@keyframes spin-3dde0559{to{transform:rotate(360deg)}}.app-button[data-v-ca5635af]{border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.app-button[data-v-ca5635af]:active:not(:disabled){transform:scale(.98)}.app-button[data-v-ca5635af]:disabled{opacity:.6;cursor:not-allowed}.app-button[data-v-ca5635af]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-button--md[data-v-ca5635af]{min-height:44px;padding:0 18px}.app-button--lg[data-v-ca5635af]{border-radius:var(--radius-md);min-height:52px;padding:0 20px;font-size:16px}.app-button--sm[data-v-ca5635af]{min-height:34px;padding:0 12px;font-size:14px}.app-button--icon[data-v-ca5635af]{width:40px;height:40px;padding:0}@media (pointer:coarse){.app-button--md[data-v-ca5635af]{min-height:48px}.app-button--sm[data-v-ca5635af]{min-height:40px}.app-button--icon[data-v-ca5635af]{width:44px;height:44px}}.app-button--block[data-v-ca5635af]{width:100%}.app-button--primary[data-v-ca5635af]{background:var(--color-primary);color:var(--color-on-primary)}.app-button--secondary[data-v-ca5635af]{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.app-button--ghost[data-v-ca5635af]{color:var(--color-text-muted);background:0 0}.app-button--danger[data-v-ca5635af]{background:var(--color-danger-soft);color:var(--color-danger)}@media (hover:hover){.app-button--primary[data-v-ca5635af]:hover:not(:disabled){background:var(--color-primary-hover)}.app-button--secondary[data-v-ca5635af]:hover:not(:disabled){background:var(--color-surface-muted)}.app-button--ghost[data-v-ca5635af]:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.app-button--danger[data-v-ca5635af]:hover:not(:disabled){border-color:var(--color-danger)}}.not-found[data-v-1913833a]{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.not-found__code[data-v-1913833a]{color:var(--color-primary);font-size:48px;font-weight:800;line-height:1}.not-found__title[data-v-1913833a]{font-size:20px}.notification-root[data-v-68cd5dbb]{z-index:100;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:16px;left:16px;right:16px}@media (width<=768px){.notification-root[data-v-68cd5dbb]{top:calc(var(--safe-top) + 12px);right:calc(var(--safe-right) + 12px);bottom:auto;left:calc(var(--safe-left) + 12px);align-items:stretch}}.notification[data-v-68cd5dbb]{align-items:flex-start;gap:12px;width:min(360px,100%);display:flex}@media (width<=768px){.notification[data-v-68cd5dbb]{width:100%}}.notification[data-v-68cd5dbb]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);pointer-events:auto;border-left-width:4px;padding:12px 14px}.notification--success[data-v-68cd5dbb]{border-left-color:var(--color-success)}.notification--error[data-v-68cd5dbb]{border-left-color:var(--color-danger)}.notification--info[data-v-68cd5dbb]{border-left-color:var(--color-primary)}.notification__body[data-v-68cd5dbb]{flex:1;min-width:0}.notification__title[data-v-68cd5dbb]{font-weight:600}.notification__description[data-v-68cd5dbb]{color:var(--color-text-muted);font-size:14px}.notification__close[data-v-68cd5dbb]{min-width:32px;min-height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;margin:-6px -8px -6px 0;padding:0;font-size:20px;line-height:1}.notification-enter-active[data-v-68cd5dbb],.notification-leave-active[data-v-68cd5dbb]{transition:opacity .2s,transform .2s}.notification-enter-from[data-v-68cd5dbb],.notification-leave-to[data-v-68cd5dbb]{opacity:0;transform:translateY(8px)}@media (width<=768px){.notification-enter-from[data-v-68cd5dbb],.notification-leave-to[data-v-68cd5dbb]{transform:translateY(-8px)}}.offline-screen[data-v-f8061203]{min-height:100dvh;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 24px);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.offline-screen__icon[data-v-f8061203]{background:var(--color-surface-muted);width:64px;height:64px;color:var(--color-text-muted);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.offline-screen__title[data-v-f8061203]{font-size:22px;font-weight:700}.offline-screen__text[data-v-f8061203]{max-width:320px;color:var(--color-text-muted);margin-bottom:8px}.pwa-update[data-v-aa4222b0]{z-index:90;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:max-content;max-width:calc(100% - 32px);box-shadow:var(--shadow-md);align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=768px){.pwa-update[data-v-aa4222b0]{right:calc(var(--safe-right) + 12px);bottom:calc(var(--tab-bar-height) + var(--safe-bottom) + 12px);left:calc(var(--safe-left) + 12px);width:auto;max-width:none;transform:none}}.pwa-update__text[data-v-aa4222b0]{flex:1;font-weight:600}.pwa-update__actions[data-v-aa4222b0]{flex:none;gap:4px;display:flex}.pwa-update-enter-active[data-v-aa4222b0],.pwa-update-leave-active[data-v-aa4222b0]{transition:opacity .2s}.pwa-update-enter-from[data-v-aa4222b0],.pwa-update-leave-to[data-v-aa4222b0]{opacity:0}.auth-layout[data-v-9ffa113d]{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;padding:32px 16px;display:flex}.auth-layout__brand[data-v-9ffa113d]{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.auth-layout__logo[data-v-9ffa113d]{border-radius:var(--radius-md);background:var(--color-primary);width:36px;height:36px;color:var(--color-on-primary);place-items:center;display:grid}.auth-layout__card[data-v-9ffa113d]{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(400px,100%);box-shadow:var(--shadow-md);padding:28px}@media (width<=480px){.auth-layout[data-v-9ffa113d]{padding:calc(var(--safe-top) + 32px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 24px) calc(var(--safe-left) + 20px);justify-content:flex-start;gap:32px}.auth-layout__brand[data-v-9ffa113d]{align-self:flex-start}.auth-layout__card[data-v-9ffa113d]{box-shadow:none;background:0 0;border:none;padding:0}}.app-icon[data-v-fe59fb8b]{flex:none}.default-layout[data-v-36e5eaa4]{grid-template-columns:240px minmax(0,1fr);min-height:100dvh;display:grid}.default-layout__content[data-v-36e5eaa4]{width:100%;max-width:1040px;padding:32px}@media (width<=768px){.default-layout[data-v-36e5eaa4]{grid-template-columns:minmax(0,1fr)}.default-layout__content[data-v-36e5eaa4]{padding:calc(var(--safe-top) + 20px) calc(var(--safe-right) + 16px) calc(var(--tab-bar-height) + var(--safe-bottom) + 24px) calc(var(--safe-left) + 16px)}}.sidebar[data-v-36e5eaa4]{border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;gap:24px;height:100dvh;padding:20px 12px;display:flex;position:sticky;top:0}.sidebar__brand[data-v-36e5eaa4]{color:var(--color-text);align-items:center;gap:10px;padding:0 8px;font-weight:700;text-decoration:none;display:flex}.sidebar__logo[data-v-36e5eaa4]{border-radius:var(--radius-sm);background:var(--color-primary);width:30px;height:30px;color:var(--color-on-primary);place-items:center;display:grid}.sidebar__nav[data-v-36e5eaa4]{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__link[data-v-36e5eaa4]{border-radius:var(--radius-sm);color:var(--color-text-muted);align-items:center;gap:10px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.sidebar__link.is-active[data-v-36e5eaa4]{background:var(--color-primary-soft);color:var(--color-primary)}@media (hover:hover){.sidebar__link[data-v-36e5eaa4]:hover:not(.is-active){background:var(--color-surface-muted);color:var(--color-text)}}.sidebar__user[data-v-36e5eaa4]{border-top:1px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:8px;padding:12px 8px 0;display:flex}.sidebar__user-info[data-v-36e5eaa4]{min-width:0;max-width:100%;color:inherit;text-decoration:none}.sidebar__user-name[data-v-36e5eaa4]{font-weight:600}.sidebar__user-email[data-v-36e5eaa4]{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}@media (width<=768px){.sidebar[data-v-36e5eaa4]{display:none}}.tab-bar[data-v-36e5eaa4]{z-index:50;height:calc(var(--tab-bar-height) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(5,1fr);align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}@media (width<=768px){.tab-bar[data-v-36e5eaa4]{display:grid}}.tab-bar__item[data-v-36e5eaa4]{height:var(--tab-bar-height);color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tab-bar__item.is-active[data-v-36e5eaa4]{color:var(--color-primary)}.tab-bar__item:active .tab-bar__icon[data-v-36e5eaa4]{transform:scale(.92)}.tab-bar__icon[data-v-36e5eaa4]{place-items:center;transition:transform .1s;display:grid}.tab-bar__item--primary .tab-bar__icon[data-v-36e5eaa4]{background:var(--color-primary);width:52px;height:52px;box-shadow:var(--shadow-md);color:var(--color-on-primary);border-radius:50%}.tab-bar__item--primary.is-active .tab-bar__icon[data-v-36e5eaa4]{background:var(--color-primary-hover)}.app-boot[data-v-bb328a47]{min-height:100dvh;color:var(--color-primary);place-items:center;display:grid}:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-muted:#f1f3f5;--color-border:#e2e5e9;--color-text:#15191e;--color-text-muted:#636b75;--color-primary:#0f766e;--color-primary-hover:#0d645d;--color-primary-soft:#e3f3f1;--color-on-primary:#fff;--color-danger:#c2410c;--color-danger-soft:#fdeee6;--color-success:#15803d;--color-success-soft:#e6f4ea;--color-income:#15803d;--color-expense:#c2410c;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 8px 24px #1018281a;--font-sans:system-ui, -apple-system, "Segoe UI", roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", menlo, monospace;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--tab-bar-height:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0f1216;--color-surface:#171b21;--color-surface-muted:#1f242b;--color-border:#2a3038;--color-text:#e8ebef;--color-text-muted:#9aa3ad;--color-primary:#2dd4bf;--color-primary-hover:#5eead4;--color-primary-soft:#12322f;--color-on-primary:#04201d;--color-danger:#fb923c;--color-danger-soft:#3a2116;--color-success:#4ade80;--color-success-soft:#14301f;--color-income:#4ade80;--color-expense:#fb923c;--shadow-sm:none;--shadow-md:0 8px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--color-bg:#0f1216;--color-surface:#171b21;--color-surface-muted:#1f242b;--color-border:#2a3038;--color-text:#e8ebef;--color-text-muted:#9aa3ad;--color-primary:#2dd4bf;--color-primary-hover:#5eead4;--color-primary-soft:#12322f;--color-on-primary:#04201d;--color-danger:#fb923c;--color-danger-soft:#3a2116;--color-success:#4ade80;--color-success-soft:#14301f;--color-income:#4ade80;--color-expense:#fb923c;--shadow-sm:none;--shadow-md:0 8px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}a{color:var(--color-primary)}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}a,button,select,label{touch-action:manipulation}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.text-muted{color:var(--color-text-muted)}
