@charset "UTF-8";.spinner{display:flex;align-items:center;justify-content:center}.spinner--sm .spinner__circle{width:1rem;height:1rem;border-width:2px}.spinner--md .spinner__circle{width:2rem;height:2rem;border-width:3px}.spinner--lg .spinner__circle{width:3rem;height:3rem;border-width:4px}.spinner__circle{border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary-600);border-radius:var(--radius-full);animation:spinner-rotate .7s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.lang-switcher{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-text);font-size:.75rem;font-weight:600;cursor:pointer;transition:background-color .15s,border-color .15s;letter-spacing:.02em}.lang-switcher:hover{background:var(--color-neutral-100);border-color:var(--color-neutral-300)}.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);padding:var(--space-md)}.auth-layout__card{width:100%;max-width:420px;background-color:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-2xl)}.auth-layout__logo{text-align:center;font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary-600);margin-bottom:var(--space-xl);letter-spacing:-.02em}.sync-status{display:inline-flex;align-items:center;justify-content:center;cursor:default}.sync-status__dot{width:8px;height:8px;border-radius:var(--radius-full);transition:background-color .3s ease}.sync-status--connected .sync-status__dot{background-color:var(--color-success-500)}.sync-status--connecting .sync-status__dot,.sync-status--reconnecting .sync-status__dot{background-color:var(--color-warning-500);animation:sync-pulse 1.5s ease-in-out infinite}.sync-status--disconnected .sync-status__dot{background-color:var(--color-danger-500)}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.3}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:1.25rem;cursor:pointer;transition:background-color .15s}.theme-toggle:hover{background:var(--color-bg-input)}.theme-toggle:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.search-bar{position:relative}.search-bar__trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:1.1rem;cursor:pointer;transition:background-color .15s}.search-bar__trigger:hover{background:var(--color-bg-input)}.search-bar__expanded{position:relative;display:flex;align-items:center}@media(max-width:768px){.search-bar__expanded{position:fixed;top:0;left:0;right:0;z-index:200;padding:var(--space-sm);background:var(--color-bg)}}.search-bar__input{width:260px;padding:var(--space-xs) var(--space-sm);padding-right:var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family);outline:none}.search-bar__input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-100)}@media(max-width:768px){.search-bar__input{width:100%}}.search-bar__clear{position:absolute;right:var(--space-xs);top:50%;transform:translateY(-50%);border:none;background:none;color:var(--color-text-muted);font-size:1.2rem;cursor:pointer;padding:4px}@media(max-width:768px){.search-bar__clear{right:calc(var(--space-sm) + var(--space-xs))}}.search-bar__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-xs);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:400px;overflow-y:auto;z-index:210}@media(max-width:768px){.search-bar__dropdown{left:var(--space-sm);right:var(--space-sm)}}.search-bar__loading,.search-bar__empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.search-bar__group-label{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.search-bar__item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-sm);border:none;background:none;color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;text-align:left}.search-bar__item:hover{background:var(--color-neutral-50)}.search-bar__item-icon{flex-shrink:0;width:20px;text-align:center}.search-bar__item-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-bar__item-meta{flex-shrink:0;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.search-bar__item-meta--type{font-family:var(--font-family);text-transform:lowercase}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-md);z-index:100}.header__left{display:flex;align-items:center;gap:var(--space-sm)}.header__menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:none;border-radius:var(--radius-md);cursor:pointer}.header__menu-btn:hover{background-color:var(--color-neutral-100)}.header__menu-icon{display:block;width:20px;height:2px;background-color:var(--color-text);position:relative}.header__menu-icon:before,.header__menu-icon:after{content:"";position:absolute;left:0;width:100%;height:2px;background-color:var(--color-text)}.header__menu-icon:before{top:-6px}.header__menu-icon:after{top:6px}.header__brand{font-weight:700;font-size:var(--font-size-lg);color:var(--color-primary-600);letter-spacing:-.02em}.header__right{position:relative;display:flex;align-items:center;gap:var(--space-xs)}.header__notify-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-lg);opacity:.7;transition:opacity .15s}.header__notify-btn:hover{background-color:var(--color-neutral-100);opacity:1}.header__notify-btn:disabled{opacity:.4;cursor:default}.header__user-btn{display:flex;align-items:center;gap:var(--space-sm);border:none;background:none;cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md)}.header__user-btn:hover{background-color:var(--color-neutral-100)}.header__avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--color-primary-600);color:#fff;font-weight:600;font-size:var(--font-size-sm)}.header__user-name{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}@media(max-width:640px){.header__user-name{display:none}}.header__dropdown{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:200px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-sm);z-index:110}.header__dropdown-info{padding:var(--space-sm);display:flex;flex-direction:column}.header__dropdown-name{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text)}.header__dropdown-email{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.header__dropdown-divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-xs) 0}.header__dropdown-item{display:block;width:100%;text-align:left;padding:var(--space-sm);border:none;background:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;min-height:44px}.header__dropdown-item:hover{background-color:var(--color-neutral-100)}@media(max-width:640px){.header{padding:0 var(--space-sm)}.header__brand{font-size:var(--font-size-base)}}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;z-index:49;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.sidebar-overlay--visible{opacity:1;pointer-events:auto}}.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);background-color:var(--color-bg-sidebar);padding:var(--space-md) var(--space-sm);overflow-y:auto;z-index:50;transition:transform var(--transition-base)}@media(max-width:768px){.sidebar{transform:translate(0)}.sidebar--collapsed{transform:translate(-100%)}}@media(min-width:769px){.sidebar--collapsed{width:var(--sidebar-collapsed-width)}.sidebar--collapsed .sidebar__label{display:none}.sidebar--collapsed .sidebar__link{justify-content:center;padding:var(--space-sm)}}.sidebar__nav{display:flex;flex-direction:column;gap:var(--space-xs)}.sidebar__link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-neutral-400);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar__link:hover{background-color:#ffffff14;color:var(--color-text)}.sidebar__link--active{background-color:var(--color-primary-600);color:#fff}.sidebar__link--active:hover{background-color:var(--color-primary-700);color:#fff}[data-theme=dark] .sidebar__link--active{background-color:#afa2ff26;color:#afa2ff}[data-theme=dark] .sidebar__link--active:hover{background-color:#afa2ff38;color:#afa2ff}.sidebar__icon{font-size:var(--font-size-lg);width:24px;text-align:center;flex-shrink:0}.sidebar__label{white-space:nowrap}@media(max-width:640px){.sidebar__link{min-height:44px}}.install-prompt{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);z-index:1000;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;padding:var(--space-md);display:flex;align-items:center;gap:var(--space-md);max-width:420px;width:calc(100% - var(--space-lg) * 2);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.install-prompt__content{display:flex;align-items:center;gap:var(--space-sm);flex:1}.install-prompt__icon{width:40px;height:40px;border-radius:var(--radius-md);flex-shrink:0}.install-prompt__text{display:flex;flex-direction:column;gap:2px;font-size:var(--font-sm)}.install-prompt__text strong{font-weight:600}.install-prompt__text span{color:var(--color-text-secondary);font-size:var(--font-xs)}.install-prompt__actions{display:flex;gap:var(--space-xs);flex-shrink:0}.install-prompt__btn{border:none;border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:background-color .15s}.install-prompt__btn--dismiss{background:transparent;color:var(--color-text-secondary)}.install-prompt__btn--dismiss:hover{background:var(--color-bg-secondary)}.install-prompt__btn--install{background:var(--color-primary-500);color:#fff}.install-prompt__btn--install:hover{background:var(--color-primary-600)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:1100;background:var(--color-neutral-800);color:#fff;padding:var(--space-xs) var(--space-md);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--font-sm);animation:slideDown .2s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.offline-banner--syncing{background:var(--color-warning-600, #d97706)}.offline-banner__content{display:flex;align-items:center;gap:var(--space-xs)}.offline-banner__icon{font-size:var(--font-base)}.offline-banner__text{font-weight:500}.offline-banner__retry{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:var(--radius-sm);padding:2px var(--space-sm);font-size:var(--font-xs);cursor:pointer;transition:background-color .15s}.offline-banner__retry:hover{background:#ffffff4d}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-md)}@media(max-width:640px){.modal-overlay{padding:var(--space-sm);align-items:flex-end}}.modal{background-color:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-lg) 0}.modal__title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text)}.modal__close{background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xs);line-height:1;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.modal__close:hover{color:var(--color-text)}.modal__body{padding:var(--space-lg)}@media(max-width:640px){.modal{max-height:85vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal__header{padding:var(--space-md) var(--space-md) 0}.modal__title{font-size:var(--font-size-lg)}.modal__body{padding:var(--space-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-family);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);position:relative}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.btn--sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm)}.btn--md{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base)}.btn--lg{padding:var(--space-md) var(--space-lg);font-size:var(--font-size-lg)}.btn--primary{background-color:var(--color-primary-600);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-700)}.btn--secondary{background-color:var(--color-neutral-100);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-neutral-200)}.btn--outline{background-color:transparent;color:var(--color-primary-600);border-color:var(--color-primary-600)}.btn--outline:hover:not(:disabled){background-color:var(--color-primary-50)}.btn--danger{background-color:var(--color-expense-600);color:#fff}.btn--danger:hover:not(:disabled){background-color:var(--color-expense-700)}.btn--ghost{background-color:transparent;color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-neutral-100);color:var(--color-text)}.btn--full{width:100%}.btn--loading{cursor:wait}.btn__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite;position:absolute}.btn__text--hidden{visibility:hidden}@keyframes btn-spin{to{transform:rotate(360deg)}}.conflict-modal{padding:var(--space-md)}.conflict-modal__title{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-xs)}.conflict-modal__desc{font-size:var(--font-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.conflict-modal__table-wrap{overflow-x:auto;margin-bottom:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.conflict-modal__table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.conflict-modal__table th,.conflict-modal__table td{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border)}.conflict-modal__table th{background:var(--color-bg-secondary);font-weight:600;font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.5px}.conflict-modal__table tr:last-child td{border-bottom:none}.conflict-modal__row--diff{background:#ef44440f}.conflict-modal__row--diff td{font-weight:500}.conflict-modal__label{color:var(--color-text-secondary);white-space:nowrap}.conflict-modal__value{word-break:break-word}.conflict-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.app-layout{min-height:100vh}.app-layout__main{margin-top:var(--header-height);margin-left:var(--sidebar-width);padding:var(--space-lg);transition:margin-left var(--transition-base);min-height:calc(100vh - var(--header-height))}@media(max-width:768px){.app-layout__main{margin-left:0}}@media(min-width:769px){.app-layout--collapsed .app-layout__main{margin-left:var(--sidebar-collapsed-width)}}.input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.input-group--full{width:100%}.input-group__label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}.input-group__input{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg-input);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input-group__input::placeholder{color:var(--color-text-muted)}.input-group__input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.input-group__input--error{border-color:var(--color-expense-500)}.input-group__input--error:focus{box-shadow:0 0 0 3px var(--color-expense-100)}.input-group__error{font-size:var(--font-size-xs);color:var(--color-expense-600)}.login-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-xs)}.login-page__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.login-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.login-page__alert-close{background:none;border:none;color:var(--color-expense-700);font-size:var(--font-size-lg);cursor:pointer;padding:0 var(--space-xs)}.login-page__form{display:flex;flex-direction:column;gap:var(--space-md)}.login-page__footer{text-align:center;margin-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.login-page__footer a{color:var(--color-primary-600);text-decoration:none;font-weight:500}.login-page__footer a:hover{text-decoration:underline}.register-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-xs)}.register-page__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.register-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.register-page__alert-close{background:none;border:none;color:var(--color-expense-700);font-size:var(--font-size-lg);cursor:pointer;padding:0 var(--space-xs)}.register-page__form{display:flex;flex-direction:column;gap:var(--space-md)}.register-page__footer{text-align:center;margin-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.register-page__footer a{color:var(--color-primary-600);text-decoration:none;font-weight:500}.register-page__footer a:hover{text-decoration:underline}.calc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:300}@media(min-width:768px){.calc-overlay{display:none}}.calc-overlay__panel{width:100%;max-width:420px;background-color:var(--color-bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px))}.calc-overlay__display{background-color:var(--color-bg-input);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);min-height:56px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end}.calc-overlay__expression{font-size:var(--font-size-xl);font-family:var(--font-mono);font-weight:600;color:var(--color-text);word-break:break-all}.calc-overlay__preview{font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--color-primary-600);margin-top:2px}.calc-overlay__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs);margin-bottom:var(--space-sm)}.calc-overlay__key{height:52px;border:none;border-radius:var(--radius-md);background-color:var(--color-neutral-100);color:var(--color-text);font-size:var(--font-size-lg);font-family:var(--font-mono);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast);-webkit-tap-highlight-color:transparent}.calc-overlay__key:active{background-color:var(--color-neutral-200)}.calc-overlay__key--op{background-color:var(--color-primary-100);color:var(--color-primary-600)}.calc-overlay__key--op:active{background-color:var(--color-primary-200)}.calc-overlay__key--fn{background-color:var(--color-neutral-200);color:var(--color-text-secondary)}.calc-overlay__key--fn:active{background-color:var(--color-neutral-300)}.calc-overlay__key--equals{background-color:var(--color-primary-500);color:#fff}.calc-overlay__key--equals:active{background-color:var(--color-primary-600)}.calc-overlay__done{width:100%;padding:var(--space-sm);border:none;border-radius:var(--radius-md);background-color:var(--color-income-500);color:#fff;font-size:var(--font-size-base);font-weight:600;font-family:var(--font-family);cursor:pointer}.calc-overlay__done:active{background-color:var(--color-income-600)}.calc-input{position:relative}.calc-input__row{display:flex;align-items:flex-end;gap:var(--space-xs)}.calc-input__row .input-group{flex:1}.calc-input__calc-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:background-color var(--transition-fast)}.calc-input__calc-btn:hover{background-color:var(--color-neutral-100);color:var(--color-text)}@media(min-width:768px){.calc-input__calc-btn{display:none}}.calc-input__preview{display:block;margin-top:2px;margin-bottom:var(--space-xs);font-size:var(--font-size-xs);font-family:JetBrains Mono,monospace;color:var(--color-primary-600);padding-left:var(--space-sm)}.cat-tree-select{position:relative;width:100%}.cat-tree-select__trigger{display:flex;align-items:center;width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);text-align:left;gap:var(--space-xs);min-height:40px}.cat-tree-select__trigger:hover{border-color:var(--color-primary-400)}.cat-tree-select__trigger--disabled{opacity:.6;cursor:not-allowed}.cat-tree-select__trigger--disabled:hover{border-color:var(--color-border)}.cat-tree-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-tree-select__placeholder{color:var(--color-text-muted)}.cat-tree-select__clear{font-size:var(--font-size-lg);color:var(--color-text-muted);cursor:pointer;padding:0 var(--space-xs);line-height:1}.cat-tree-select__clear:hover{color:var(--color-text)}.cat-tree-select__arrow{font-size:var(--font-size-xs);color:var(--color-text-muted)}.cat-tree-select__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;max-height:300px;display:flex;flex-direction:column}.cat-tree-select__search{padding:var(--space-sm) var(--space-md);border:none;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);outline:none;background-color:transparent;color:var(--color-text)}.cat-tree-select__search::placeholder{color:var(--color-text-muted)}.cat-tree-select__list{overflow-y:auto;max-height:250px;padding:var(--space-xs) 0}.cat-tree-select__option{padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);transition:background-color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-tree-select__option:hover{background-color:var(--color-primary-50)}.cat-tree-select__option--selected{background-color:var(--color-primary-100);font-weight:500}.cat-tree-select__indent{color:var(--color-text-muted);margin-right:2px}.cat-tree-select__icon{margin-right:var(--space-xs)}.cat-tree-select__empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.cat-badge{display:inline-flex;align-items:center;gap:3px;font-size:var(--font-size-sm)}.cat-badge--empty{color:var(--color-text-muted)}.cat-badge__icon{font-size:var(--font-size-base)}.cat-badge__parent{color:var(--color-text-muted);font-size:var(--font-size-xs)}.cat-badge__sep{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0 1px}.cat-badge__name{color:var(--color-text);font-weight:500}.online-members{display:flex;align-items:center;gap:var(--space-sm)}.online-members__label{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.online-members__avatars{display:flex;align-items:center;gap:2px}.online-members__avatar{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background-color:var(--color-success-500);color:#fff;font-size:11px;font-weight:600;cursor:default;border:2px solid var(--color-bg-card);margin-left:-4px}.online-members__avatar:first-child{margin-left:0}.dash{min-height:calc(100vh - var(--header-height, 56px));margin:calc(-1 * var(--space-lg, 1.5rem));padding:2rem 2.5rem;background:#0c0e18;color:#edecfd;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;--color-bg: #0c0e18;--color-bg-card: rgba(28, 31, 46, .4)}.dash .modal{--color-bg-card: #1c1f2e}.dash{--color-text: #edecfd;--color-text-secondary: #a9aab9;--color-text-muted: #737483;--color-border: rgba(70, 71, 84, .15);--color-primary-500: #afa2ff;--color-primary-400: #afa2ff;--color-primary-600: #7459f7}.dash *{border-color:#464754}.dash--loading{display:flex;align-items:center;justify-content:center}@media(max-width:768px){.dash{padding:1rem 1rem 5rem}}.dash__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}@media(max-width:768px){.dash__header{margin-bottom:1rem}}.dash__title{font-size:1.75rem;font-weight:700;color:#fff;letter-spacing:-.02em;margin:0}@media(max-width:768px){.dash__title{font-size:1.25rem}}.dash__subtitle{font-size:.85rem;color:#a9aab9;margin:.25rem 0 0}@media(max-width:768px){.dash__subtitle{display:none}}.dash__hero{display:none}@media(max-width:768px){.dash__hero{display:flex;flex-direction:column;align-items:flex-start;padding:1.5rem 1.25rem;margin-bottom:1rem;background:#10131f;border-radius:1.5rem;box-shadow:0 20px 40px #0003;position:relative}.dash__hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1.5rem;padding:1.5px;background:linear-gradient(135deg,#afa2ff80,#7459f74d,#afa2ff26);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}}.dash__hero-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#a9aab9;position:relative;z-index:1}.dash__hero-value{font-size:2.75rem;font-weight:800;color:#fff;letter-spacing:-.03em;margin:.5rem 0 1.25rem;position:relative;z-index:1}.dash__hero-row{display:flex;gap:3rem;width:100%;position:relative;z-index:1}.dash__hero-stat{display:flex;flex-direction:column;gap:.25rem}.dash__hero-stat-label{display:flex;align-items:center;gap:.3rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:#737483}.dash__hero-stat-label svg{flex-shrink:0}.dash__hero-stat-value{font-size:1.2rem;font-weight:700}.dash__hero-stat-value--income{color:#62fae3}.dash__hero-stat-value--expense{color:#ff8796}.dash__accounts-scroll-wrap{display:none}@media(max-width:768px){.dash__accounts-scroll-wrap{display:block;margin-bottom:1rem}}.dash__accounts-scroll{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.dash__accounts-scroll::-webkit-scrollbar{display:none}.dash__account-card{flex:0 0 140px;scroll-snap-align:start;background:#1c1f2e66;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1rem;display:flex;flex-direction:column;gap:.35rem;cursor:pointer;transition:border-color .2s}.dash__account-card:hover,.dash__account-card:active{border-color:#afa2ff4d}.dash__account-card-icon{font-size:1.5rem;margin-bottom:.25rem}.dash__account-card-name{font-size:.75rem;color:#a9aab9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash__account-card-bal{font-size:1rem;font-weight:700;color:#fff}.dash__account-card-bal--neg{color:#ff8796}.dash__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}@media(max-width:1024px){.dash__stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dash__stats{display:none}}.dash__kpi{background:#1c1f2e66;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.3rem;box-shadow:0 20px 40px #0003;position:relative;overflow:hidden}.dash__kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:1.5rem 1.5rem 0 0}.dash__kpi:after{content:"";position:absolute;top:0;left:0;right:0;height:60px;pointer-events:none;border-radius:1.5rem 1.5rem 0 0}.dash__kpi--balance:before{background:#62fae3}.dash__kpi--balance:after{background:linear-gradient(180deg,rgba(98,250,227,.08) 0%,transparent 100%)}.dash__kpi--income:before{background:#62fae3}.dash__kpi--income:after{background:linear-gradient(180deg,rgba(98,250,227,.06) 0%,transparent 100%)}.dash__kpi--expense:before{background:#ff8796}.dash__kpi--expense:after{background:linear-gradient(180deg,rgba(255,135,150,.06) 0%,transparent 100%)}.dash__kpi--savings:before{background:#afa2ff}.dash__kpi--savings:after{background:linear-gradient(180deg,rgba(175,162,255,.08) 0%,transparent 100%)}.dash__kpi-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.dash__kpi-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#a9aab9;position:relative;z-index:1}.dash__kpi-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px}.dash__kpi-icon--balance,.dash__kpi-icon--income{background:#62fae31a;color:#62fae3}.dash__kpi-icon--expense{background:#ff87961a;color:#ff8796}.dash__kpi-icon--savings{background:#afa2ff1a;color:#afa2ff}.dash__kpi-value{font-size:1.75rem;font-weight:700;color:#fff;letter-spacing:-.02em;position:relative;z-index:1}.dash__kpi-sub{font-size:.75rem;color:#737483;position:relative;z-index:1}.dash__change{font-size:.8rem;font-weight:600;position:relative;z-index:1;display:inline-flex;align-items:center;gap:.25rem}.dash__change--up{color:#62fae3}.dash__change--down{color:#ff8796}.dash__change-arrow{flex-shrink:0}.dash__chart-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.dash__chart-header .dash__widget-title{margin-bottom:.15rem}.dash__chart-subtitle{font-size:.75rem;color:#737483}.dash__glass{background:#1c1f2e66;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1.25rem 1.5rem;box-shadow:0 20px 40px #0003;border-top-color:#282b3d4d;border-left-color:#282b3d4d}.dash__glass--wide{flex:1.5;min-width:0}.dash__glass--full{width:100%}@media(max-width:768px){.dash__glass{padding:1rem 1.15rem;border-radius:.75rem}}.dash__widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dash__widget-title{font-size:.95rem;font-weight:600;color:#fff;margin:0 0 .75rem;letter-spacing:-.01em}.dash__widget-header .dash__widget-title{margin-bottom:0}.dash__link{background:none;border:none;color:#afa2ff;font-size:.8rem;cursor:pointer;padding:0;font-weight:500;font-family:inherit}.dash__link:hover{text-decoration:underline}.dash__empty{color:#737483;font-size:.85rem;text-align:center;padding:2rem 0}.dash__row-2{display:flex;gap:1rem;margin-bottom:1rem}.dash__row-2>*{flex:1;min-width:0}@media(max-width:768px){.dash__row-2{flex-direction:column}}.dash__row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}@media(max-width:1024px){.dash__row-3{grid-template-columns:1fr 1fr}}@media(max-width:768px){.dash__row-3{grid-template-columns:1fr}.dash__row-3>.dash__glass:first-child{display:none}}.dash__stack{display:flex;flex-direction:column;gap:1rem}.dash__cat-layout{display:flex;align-items:center;gap:1.5rem}@media(max-width:640px){.dash__cat-layout{flex-direction:column}}.dash__cat-chart{position:relative;flex-shrink:0;width:200px}.dash__cat-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.dash__cat-center-label{display:block;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#737483}.dash__cat-center-value{display:block;font-size:1.1rem;font-weight:700;color:#fff}.dash__cat-legend{flex:1;display:flex;flex-direction:column;gap:.6rem;width:100%}@media(max-width:640px){.dash__cat-legend{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}}.dash__cat-legend-row{display:flex;align-items:center;gap:.5rem}.dash__cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dash__cat-name{flex:1;font-size:.85rem;color:#edecfd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash__cat-values{text-align:right;white-space:nowrap}.dash__cat-amount{display:block;font-size:.85rem;font-weight:600;color:#edecfd}.dash__cat-pct{display:block;font-size:.7rem;color:#737483}.dash__glass--insights{border-left:3px solid #7459f7}.dash__insights{display:flex;flex-direction:column;gap:.75rem}.dash__insight{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.dash__insight-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash__insight-circle--up{background:#ff87961f;color:#ff8796}.dash__insight-circle--down{background:#62fae31f;color:#62fae3}.dash__insight-circle--info{background:#afa2ff1f;color:#afa2ff}.dash__insight-circle--neutral{background:#ffffff0f;color:#a9aab9}.dash__insight-icon{font-size:1rem;width:1.5rem;text-align:center;flex-shrink:0}.dash__insight-text{font-size:.85rem;color:#a9aab9;line-height:1.45}.dash__insight-badges{display:flex;gap:.75rem;margin-top:1rem}@media(max-width:640px){.dash__insight-badges{flex-direction:column}}.dash__insight-badge{flex:1;padding:.75rem 1rem;border-radius:.75rem;border-left:3px solid}.dash__insight-badge--warning{background:#f59e0b14;border-left-color:#f59e0b}.dash__insight-badge--danger{background:#ff6e8414;border-left-color:#ff8796}.dash__insight-badge-label{display:block;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.dash__insight-badge--warning .dash__insight-badge-label{color:#f59e0b}.dash__insight-badge--danger .dash__insight-badge-label{color:#ff8796}.dash__insight-badge-text{font-size:.8rem;font-weight:600;color:#edecfd}.dash__budgets{display:flex;flex-direction:column;gap:.85rem}.dash__budget-item{display:flex;flex-direction:column;gap:.3rem}.dash__budget-top{display:flex;justify-content:space-between;align-items:center}.dash__budget-name{font-size:.85rem;font-weight:500;color:#edecfd}.dash__budget-pct{font-size:.8rem;font-weight:600;color:#a9aab9}.dash__budget-amounts{font-size:.75rem;color:#737483}.dash__progress{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.dash__progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.dash__progress-fill--good{background:#62fae3}.dash__progress-fill--caution{background:#f59e0b}.dash__progress-fill--warning{background:#f97316}.dash__progress-fill--exceeded{background:#ff8796}.dash__progress-fill--goal{background:#afa2ff}.dash__tags{display:flex;flex-wrap:wrap;gap:.5rem}.dash__tag-chip{background:#afa2ff14;border:1px solid rgba(175,162,255,.2);color:#edecfd;padding:.35rem .85rem;border-radius:999px;cursor:pointer;transition:all .2s;font-family:inherit}.dash__tag-chip:hover{background:#afa2ff2e;border-color:#afa2ff;box-shadow:0 0 16px #afa2ff26}.dash__debts-list{display:flex;flex-direction:column;gap:1rem}.dash__debt-row{display:flex;flex-direction:column;gap:.5rem}.dash__debt-row-top{display:flex;align-items:center;justify-content:space-between}.dash__debt-row-left{display:flex;align-items:center;gap:.6rem}.dash__debt-type-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.85rem;flex-shrink:0}.dash__debt-type-icon--lent{background:#62fae31a;color:#62fae3}.dash__debt-type-icon--borrowed{background:#3aa2ff1a;color:#3aa2ff}.dash__debt-counterparty{display:block;font-size:.85rem;font-weight:600;color:#edecfd}.dash__debt-due{display:block;font-size:.7rem;color:#737483}.dash__debt-row-amount{font-size:1rem;font-weight:700;color:#edecfd}.dash__debt-progress-row{display:flex;align-items:center;gap:.75rem}.dash__debt-progress-row .dash__progress{flex:1}.dash__debt-progress-label,.dash__debt-progress-amount{font-size:.7rem;color:#737483;white-space:nowrap}.dash__debt-net{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid #464754}.dash__debt-net-label{font-size:.8rem;color:#737483}.dash__debt-net-value{font-size:.85rem;font-weight:700}.dash__debt-net-value--positive{color:#62fae3}.dash__debt-net-value--negative{color:#ff8796}.dash__goals-cards{display:flex;gap:.75rem;overflow-x:auto;scrollbar-width:none}.dash__goals-cards::-webkit-scrollbar{display:none}.dash__goal-card{flex:0 0 140px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem .75rem;border-radius:1.5rem;background:#ffffff08;gap:.35rem}.dash__goal-card--add{justify-content:center;cursor:pointer;border:1px dashed #464754;background:transparent;gap:.5rem;transition:border-color .2s}.dash__goal-card--add:hover{border-color:#afa2ff}.dash__goal-ring{position:relative;width:88px;height:88px;margin-bottom:.25rem}.dash__goal-ring-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem}.dash__goal-add-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#737483;border-radius:50%;background:#ffffff0a}.dash__goal-card-name{font-size:.8rem;font-weight:600;color:#edecfd}.dash__goal-card-amounts{font-size:.7rem;color:#737483}.dash__goal-card-days{font-size:.65rem;font-weight:600;color:#afa2ff;padding:.15rem .5rem;border-radius:999px;background:#afa2ff1a}.dash__goal-card-days--overdue{color:#ff8796;background:#ff87961a}.dash__tx-list{display:flex;flex-direction:column}.dash__tx-row{display:flex;align-items:center;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid rgba(70,71,84,.1)}.dash__tx-row:last-child{border-bottom:none}.dash__tx-left{display:flex;align-items:center;gap:.75rem;min-width:0}.dash__tx-icon{font-size:1.15rem;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:#1c1f2e;border-radius:.75rem;flex-shrink:0}.dash__tx-info{display:flex;flex-direction:column;min-width:0}.dash__tx-cat{font-size:.85rem;font-weight:500;color:#edecfd}.dash__tx-date{font-size:.7rem;color:#737483}.dash__tx-amount{font-weight:600;font-size:.9rem;white-space:nowrap}.dash__tx-amount--income{color:#62fae3}.dash__tx-amount--expense{color:#ff8796}.dash__tx-amount--transfer{color:#afa2ff}.dash__account-list{display:flex;flex-direction:column}.dash__account-group{margin-bottom:.25rem}.dash__account-group-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 0;background:none;border:none;color:#edecfd;cursor:pointer;font-family:inherit;font-size:.85rem}.dash__group-arrow{font-size:.55rem;color:#737483;width:1rem}.dash__group-label{font-weight:600;text-transform:uppercase;font-size:.65rem;letter-spacing:.06em;color:#a9aab9}.dash__group-total{margin-left:auto;font-size:.8rem;color:#737483}.dash__account-row{display:flex;align-items:center;justify-content:space-between;padding:.45rem 0 .45rem 1.5rem;cursor:pointer;border-radius:.75rem;transition:background .15s}.dash__account-row:hover{background:#ffffff0a}.dash__account-left{display:flex;align-items:center;gap:.5rem}.dash__account-icon{font-size:1rem}.dash__account-name{font-size:.85rem;color:#edecfd}.dash__account-bal{font-size:.85rem;font-weight:600;color:#edecfd}.dash__account-bal--neg{color:#ff8796}.dash__currency-totals{display:flex;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #464754}.dash__currency-total{font-size:.8rem;color:#737483;font-weight:500}.dash__balance-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.dash__balance-meta{display:flex;align-items:baseline;gap:.5rem;margin-top:.25rem}.dash__balance-total{font-size:1.5rem;font-weight:700;color:#fff}.dash__balance-change{font-size:.8rem;font-weight:600}.dash__balance-change--up{color:#62fae3}.dash__balance-change--down{color:#ff8796}.dash__period-tabs{display:flex;gap:.25rem;background:#ffffff0a;border-radius:999px;padding:.2rem}.dash__period-tab{padding:.3rem .75rem;font-size:.7rem;font-weight:600;color:#737483;border-radius:999px;cursor:pointer;transition:all .15s}.dash__period-tab:hover{color:#edecfd}.dash__period-tab--active{background:#afa2ff;color:#0c0e18}.dash ::-webkit-scrollbar{width:6px}.dash ::-webkit-scrollbar-track{background:transparent}.dash ::-webkit-scrollbar-thumb{background:#464754;border-radius:10px}.dash ::-webkit-scrollbar-thumb:hover{background:#737483}.dash__hero-top{display:flex;justify-content:space-between;align-items:center;width:100%;position:relative;z-index:1}.dash__hero-diff{font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:999px}.dash__hero-diff--up{color:#62fae3;background:#62fae31a}.dash__hero-diff--down{color:#ff8796;background:#ff87961a}.dash__quick-pills{display:none}@media(max-width:768px){.dash__quick-pills{display:flex;gap:.5rem;margin-bottom:1rem}}.dash__pill{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.65rem .75rem;border-radius:999px;border:1px solid;background:transparent;font-size:.8rem;font-weight:600;white-space:nowrap;min-height:40px;cursor:pointer;font-family:inherit;transition:background .15s}.dash__pill--expense{color:#ff8796;border-color:#ff87964d}.dash__pill--expense:hover,.dash__pill--expense:active{background:#ff87961a}.dash__pill--income{color:#62fae3;border-color:#62fae34d}.dash__pill--income:hover,.dash__pill--income:active{background:#62fae31a}.dash__pill--transfer{color:#afa2ff;border-color:#afa2ff4d}.dash__pill--transfer:hover,.dash__pill--transfer:active{background:#afa2ff1a}.dash__mob-budget-alerts{display:none}@media(max-width:768px){.dash__mob-budget-alerts{display:block;background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:1.5rem;padding:1rem 1.15rem;margin-bottom:1rem}}.dash__mob-budget-alerts-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.dash__mob-budget-alerts-icon{font-size:1rem;color:#f59e0b}.dash__mob-budget-alerts-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f59e0b}.dash__mob-budget-row{margin-bottom:.6rem}.dash__mob-budget-row:last-child{margin-bottom:0}.dash__mob-budget-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.dash__mob-budget-name{font-size:.85rem;font-weight:500;color:#edecfd}.dash__mob-budget-left{font-size:.8rem;font-weight:600;color:#a9aab9}.dash__mob-debt{display:none}@media(max-width:768px){.dash__mob-debt{display:block;background:#1c1f2e66;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1rem 1.15rem;margin-bottom:1rem}}.dash__mob-debt-top{display:flex;justify-content:space-between;align-items:center}.dash__mob-debt-label{display:block;font-size:.75rem;font-weight:600;color:#a9aab9;margin-bottom:.2rem}.dash__mob-debt-value{display:block;font-size:1.5rem;font-weight:700;color:#fff}.dash__mob-debt-breakdown{display:flex;gap:1rem}.dash__mob-debt-item{text-align:center}.dash__mob-debt-item-label{display:block;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem}.dash__mob-debt-item--borrowed .dash__mob-debt-item-label{color:#ff8796}.dash__mob-debt-item--lent .dash__mob-debt-item-label{color:#62fae3}.dash__mob-debt-item-value{display:block;font-size:.85rem;font-weight:600}.dash__mob-debt-item--borrowed .dash__mob-debt-item-value{color:#ff8796}.dash__mob-debt-item--lent .dash__mob-debt-item-value{color:#62fae3}.dash__mob-members{display:none}@media(max-width:768px){.dash__mob-members{display:flex;justify-content:center;gap:1rem;padding:1rem 0;margin-bottom:4.5rem}}.dash__mob-member-badge{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#a9aab9}.dash__mob-member-dot{width:6px;height:6px;border-radius:50%;background:#62fae3}.dash__bottom-nav{display:none}@media(max-width:768px){.dash__bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:#1c1f2e;border-top:1px solid rgba(70,71,84,.15);z-index:50;padding:0 .5rem;justify-content:space-around;align-items:center}}.dash__bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .5rem;background:none;border:none;color:#737483;font-size:.6rem;font-weight:500;font-family:inherit;cursor:pointer;min-width:52px;transition:color .15s}.dash__bottom-nav-item--active{color:#afa2ff}.dash__bottom-nav-item:hover{color:#edecfd}.dash__bottom-nav-item span{white-space:nowrap}.dash__fab{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;border-radius:50%;background:#afa2ff;border:none;color:#0c0e18;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #afa2ff59,0 4px 8px #0003;transition:transform .2s,box-shadow .2s;z-index:40}.dash__fab:hover{transform:scale(1.08);box-shadow:0 12px 32px #afa2ff73,0 6px 12px #00000040}.dash__fab:active{transform:scale(.95)}@media(max-width:768px){.dash__fab{display:none}}.dash__quick-add-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:dashFadeIn .15s ease-out}@keyframes dashFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dashSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dash__quick-add{background:#1c1f2e;border:1px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:2rem;min-width:320px;max-width:90vw;box-shadow:0 24px 48px #0006;animation:dashSlideUp .2s ease-out}.dash__quick-add-title{font-size:1.1rem;font-weight:600;color:#fff;margin:0 0 1.5rem;text-align:center}.dash__quick-add-options{display:flex;gap:1rem}@media(max-width:640px){.dash__quick-add-options{flex-direction:column}}.dash__quick-add-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1rem;border:1px solid rgba(70,71,84,.15);border-radius:.75rem;background:#ffffff08;cursor:pointer;transition:all .2s;font-family:inherit}.dash__quick-add-btn:hover{background:#ffffff0f;transform:translateY(-2px)}.dash__quick-add-btn--income{color:#62fae3}.dash__quick-add-btn--income:hover{border-color:#62fae34d}.dash__quick-add-btn--expense{color:#ff8796}.dash__quick-add-btn--expense:hover{border-color:#ff87964d}.dash__quick-add-btn--transfer{color:#afa2ff}.dash__quick-add-btn--transfer:hover{border-color:#afa2ff4d}.dash__quick-add-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}.dash__quick-add-btn--income .dash__quick-add-icon{background:#62fae31a}.dash__quick-add-btn--expense .dash__quick-add-icon{background:#ff87961a}.dash__quick-add-btn--transfer .dash__quick-add-icon{background:#afa2ff1a}.dash__quick-add-label{font-size:.85rem;font-weight:600}.accounts-page__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.accounts-page__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md)}.accounts-page__header-actions{display:flex;gap:var(--space-sm)}.accounts-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.accounts-page__total{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.accounts-page__total-amount{font-weight:600;color:var(--color-text)}.accounts-page__currency-breakdown{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-top:2px}.accounts-page__inactive-toggle{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md);cursor:pointer}.accounts-page__inactive-toggle input{accent-color:var(--color-primary-500)}.accounts-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.accounts-page__alert button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer}.accounts-page__group{margin-bottom:var(--space-xl)}.accounts-page__group-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.accounts-page__collapse-btn{background:none;border:none;cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-muted);padding:2px var(--space-xs);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.accounts-page__collapse-btn:hover{color:var(--color-text)}.accounts-page__group-icon{font-size:var(--font-size-lg)}.accounts-page__group-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);flex:1}.accounts-page__group-title--clickable{cursor:pointer}.accounts-page__group-title--clickable:hover{color:var(--color-primary-600)}.accounts-page__group-total{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary)}.accounts-page__group-actions{display:flex;gap:var(--space-xs);margin-left:var(--space-sm)}.accounts-page__grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.accounts-page__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.accounts-page__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.accounts-page__empty p{margin-bottom:var(--space-md)}.accounts-page__confirm-text{margin-bottom:var(--space-lg);color:var(--color-text)}.accounts-page__confirm-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}@media(max-width:640px){.accounts-page__header{flex-direction:column;align-items:flex-start}.accounts-page__header-actions{width:100%}.accounts-page__group-header{flex-wrap:wrap}.accounts-page__group-actions{margin-left:0}}.account-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow var(--transition-fast)}.account-card:hover{box-shadow:var(--shadow-md)}.account-card--inactive{opacity:.6}.account-card__color-bar{height:4px}.account-card__body{padding:var(--space-md)}.account-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.account-card__name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.account-card__type-icon{margin-right:var(--space-xs)}.account-card__type{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.account-card__badges{display:flex;align-items:center;gap:var(--space-xs)}.account-card__owner-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background-color:var(--color-primary-100);color:var(--color-primary-700);font-size:var(--font-size-xs);font-weight:600}.account-card__badge{font-size:var(--font-size-xs);padding:2px var(--space-sm);background-color:var(--color-neutral-100);color:var(--color-text-secondary);border-radius:var(--radius-full)}.account-card__balance{font-size:var(--font-size-xl);font-weight:700;margin:var(--space-sm) 0 var(--space-xs)}.account-card__balance--positive{color:var(--color-balance-positive)}.account-card__balance--negative{color:var(--color-balance-negative)}.account-card__currency{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-md)}.account-card__actions{display:flex;gap:var(--space-sm);border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.account-card__btn{background:none;border:none;font-size:var(--font-size-sm);color:var(--color-primary-600);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.account-card__btn:hover{background-color:var(--color-primary-50)}.account-card__btn--danger{color:var(--color-expense-600)}.account-card__btn--danger:hover{background-color:var(--color-expense-50)}.account-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.account-form__fields{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.account-form__colors{display:flex;gap:var(--space-sm);flex-wrap:wrap}.account-form__color-option{cursor:pointer}.account-form__color-swatch{display:block;width:36px;height:36px;border-radius:var(--radius-full);border:2px solid transparent;transition:border-color var(--transition-fast)}.account-form__color-swatch--active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-bg-card),0 0 0 4px currentColor}.account-form__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.categories-page__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.categories-page__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.categories-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.categories-page__tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-xs)}.categories-page__tab{padding:var(--space-sm) var(--space-md);border:none;background:none;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:color var(--transition-fast),background-color var(--transition-fast)}.categories-page__tab:hover{color:var(--color-text);background-color:var(--color-neutral-100)}.categories-page__tab--active{color:var(--color-primary-600);border-bottom:2px solid var(--color-primary-600)}.categories-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.categories-page__alert button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer}.categories-page__tree-container{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-sm) 0}.categories-page__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.categories-page__empty p{margin-bottom:var(--space-md)}.categories-page__confirm-text{margin-bottom:var(--space-lg);color:var(--color-text)}.categories-page__confirm-warning{color:var(--color-expense-600);font-weight:500}.categories-page__confirm-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.cat-tree{list-style:none;margin:0;padding:0}.cat-tree__item{border-bottom:1px solid var(--color-neutral-100)}.cat-tree__item:last-child{border-bottom:none}.cat-tree__row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);transition:background-color var(--transition-fast)}.cat-tree__row:hover{background-color:var(--color-neutral-50)}.cat-tree__row:hover .cat-tree__actions{opacity:1}.cat-tree__expand{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-muted);flex-shrink:0}.cat-tree__expand:disabled{cursor:default;visibility:hidden}.cat-tree__icon{font-size:var(--font-size-lg);flex-shrink:0}.cat-tree__name{flex:1;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}.cat-tree__actions{display:flex;gap:var(--space-xs);opacity:0;transition:opacity var(--transition-fast)}.cat-tree__btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cat-tree__btn:hover{background-color:var(--color-neutral-200);color:var(--color-text)}.cat-tree__btn--danger:hover{background-color:var(--color-expense-100);color:var(--color-expense-600)}.category-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.category-form__fields{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.category-form__icons{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.category-form__icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:2px solid transparent;background:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-lg)}.category-form__icon-btn:hover{background-color:var(--color-neutral-100)}.category-form__icon-btn--active{border-color:var(--color-primary-500);background-color:var(--color-primary-50)}.category-form__colors{display:flex;gap:var(--space-sm);flex-wrap:wrap}.category-form__color-option{cursor:pointer}.category-form__color-swatch{display:block;width:28px;height:28px;border-radius:var(--radius-full);border:2px solid transparent;transition:border-color var(--transition-fast)}.category-form__color-swatch--active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-bg-card),0 0 0 4px currentColor}.category-form__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.multi-select{position:relative;min-width:140px}.multi-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast)}.multi-select__trigger:hover{border-color:var(--color-neutral-400)}.multi-select__trigger--open{border-color:var(--color-border-focus);box-shadow:0 0 0 2px #3b82f626}.multi-select__trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select__trigger-arrow{flex-shrink:0;font-size:.7rem;color:var(--color-text-muted)}.multi-select__dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:100%;max-width:320px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.multi-select__search{display:block;width:100%;padding:.5rem .75rem;border:none;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);background:transparent;color:var(--color-text);outline:none}.multi-select__search::placeholder{color:var(--color-text-muted)}.multi-select__actions{display:flex;gap:var(--space-sm);padding:.375rem .75rem;border-bottom:1px solid var(--color-border)}.multi-select__action-btn{padding:0;border:none;background:none;color:var(--color-primary-600);font-size:var(--font-size-xs);cursor:pointer}.multi-select__action-btn:hover{text-decoration:underline}.multi-select__list{max-height:240px;overflow-y:auto;padding:var(--space-xs) 0}.multi-select__option{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;cursor:pointer;font-size:var(--font-size-sm);transition:background var(--transition-fast)}.multi-select__option:hover{background:var(--color-neutral-50)}.multi-select__checkbox{flex-shrink:0;width:14px;height:14px;accent-color:var(--color-primary-500);cursor:pointer}.multi-select__option-icon{flex-shrink:0}.multi-select__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select__empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.period-selector{display:flex;flex-direction:column;gap:var(--space-sm)}.period-selector__pills{display:flex;gap:2px;background:var(--color-neutral-100);border-radius:var(--radius-md);padding:2px;width:fit-content}.period-selector__pill{padding:.3rem .6rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.period-selector__pill:hover{color:var(--color-text)}.period-selector__pill--active{background:var(--color-bg-card);color:var(--color-primary-600);box-shadow:var(--shadow-sm)}.period-selector__nav{display:flex;align-items:center;gap:var(--space-sm)}.period-selector__arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text);font-size:1.1rem;cursor:pointer;transition:all var(--transition-fast)}.period-selector__arrow:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-400)}.period-selector__label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);min-width:120px;text-align:center}.period-selector__today{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-primary-600);font-size:var(--font-size-xs);cursor:pointer}.period-selector__today:hover{background:var(--color-primary-50)}.period-selector__custom{display:flex;align-items:center;gap:var(--space-sm)}.period-selector__date-input{padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg-input)}.period-selector__separator{color:var(--color-text-muted)}.txp{min-height:calc(100vh - var(--header-height, 56px));margin:calc(-1 * var(--space-lg, 1.5rem));padding:2rem 2.5rem;background:#0c0e18;color:#edecfd;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;--color-bg: #0c0e18;--color-bg-card: rgba(28, 31, 46, .4);--color-text: #edecfd;--color-text-secondary: #a9aab9;--color-text-muted: #737483;--color-border: rgba(70, 71, 84, .15);--color-primary-500: #afa2ff;--color-primary-400: #afa2ff;--color-primary-600: #7459f7}.txp .modal{--color-bg-card: #1c1f2e}.txp *{border-color:#464754}@media(max-width:768px){.txp{padding:1rem 1rem 5rem}}.txp .period-selector{margin-bottom:1rem}.txp .period-selector__pills{gap:.5rem;background:none;padding:0;border-radius:0}.txp .period-selector__pill{border:1px solid #464754;border-radius:9999px;padding:.5rem 1rem;font-size:.8rem;font-family:inherit;color:#737483;background:transparent;transition:all .2s}.txp .period-selector__pill:hover{color:#a9aab9;border-color:#afa2ff4d;background:#afa2ff0d}.txp .period-selector__pill--active{background:#afa2ff1f;color:#edecfd;border-color:#afa2ff66;box-shadow:none}.txp .period-selector__arrow{border-color:#464754;background:transparent;color:#edecfd;border-radius:9999px}.txp .period-selector__arrow:hover{background:#afa2ff14;border-color:#afa2ff4d}.txp .period-selector__label{color:#edecfd}.txp .period-selector__today{border-color:#464754;background:transparent;color:#afa2ff;border-radius:9999px}.txp .period-selector__today:hover{background:#afa2ff14}.txp .period-selector__date-input{background:#161926;border-color:#464754;color:#edecfd;border-radius:9999px}.txp__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.75rem}.txp__title{font-size:1.75rem;font-weight:700;color:#fff;letter-spacing:-.02em;margin:0}@media(max-width:768px){.txp__title{font-size:1.25rem}}.txp__actions{display:flex;gap:.5rem}@media(max-width:640px){.txp__actions{display:none}}.txp__action-btn{padding:.5rem 1rem;border-radius:9999px;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;border:1.5px solid}.txp__action-btn--income{background:transparent;color:#62fae3;border-color:#62fae366}.txp__action-btn--income:hover{background:#62fae31a;border-color:#62fae3}.txp__action-btn--expense{background:#ff8796;color:#0c0e18;border-color:#ff8796}.txp__action-btn--expense:hover{background:#ffa1ac}.txp__action-btn--transfer{display:inline-flex;align-items:center;gap:.35rem;background:transparent;color:#4f8ef7;border-color:#4f8ef766}.txp__action-btn--transfer svg{flex-shrink:0}.txp__action-btn--transfer:hover{background:#4f8ef71a;border-color:#4f8ef7}.txp__breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem}.txp__breadcrumb-link{background:none;border:none;color:#afa2ff;cursor:pointer;font-family:inherit;font-size:.8rem;padding:0}.txp__breadcrumb-link:hover{text-decoration:underline}.txp__breadcrumb-sep{color:#737483}.txp__breadcrumb-current{color:#edecfd;font-weight:500}.txp__hero{display:none}@media(max-width:640px){.txp__hero{display:flex;flex-direction:column;padding:1rem;margin-bottom:1rem;background:#10131f;border-radius:1.5rem;box-shadow:0 20px 40px #0003;position:relative}.txp__hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1.5rem;padding:1.5px;background:linear-gradient(135deg,#afa2ff80,#7459f74d,#afa2ff26);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}}.txp__hero-stats{display:flex;gap:1rem;width:100%;justify-content:space-around;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(70,71,84,.3)}.txp__hero-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.txp__hero-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:#737483}.txp__hero-value{font-size:.95rem;font-weight:700;font-family:JetBrains Mono,monospace}.txp__hero-value--income{color:#62fae3}.txp__hero-value--expense{color:#ff8796}.txp__hero-count{font-size:.65rem;color:#737483;text-align:center;margin-top:.5rem}.txp__quick-actions{display:none}@media(max-width:640px){.txp__quick-actions{display:flex;gap:.5rem;margin-bottom:1rem}}.txp__quick-btn{flex:1;padding:.6rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;border:1.5px solid;background:transparent;min-height:44px;transition:all .2s}.txp__quick-btn--expense{color:#ff8796;border-color:#ff879659}.txp__quick-btn--income{color:#62fae3;border-color:#62fae359}.txp__quick-btn--transfer{color:#4f8ef7;border-color:#4f8ef759}.txp__quick-btn:active{transform:scale(.96)}.txp__kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}@media(max-width:1024px){.txp__kpi-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.txp__kpi-row{display:none}}.txp__kpi{background:#1c1f2e66;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1.25rem;display:flex;align-items:center;gap:1rem;position:relative;overflow:hidden}.txp__kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.txp__kpi--income:before{background:#62fae3;box-shadow:0 0 12px #62fae34d}.txp__kpi--income .txp__kpi-icon{color:#62fae3;background:#62fae31a}.txp__kpi--income .txp__kpi-value{color:#62fae3}.txp__kpi--expense:before{background:#ff8796;box-shadow:0 0 12px #ff87964d}.txp__kpi--expense .txp__kpi-icon{color:#ff8796;background:#ff87961a}.txp__kpi--expense .txp__kpi-value{color:#ff8796}.txp__kpi--balance:before{background:#afa2ff;box-shadow:0 0 12px #afa2ff4d}.txp__kpi--balance .txp__kpi-icon{color:#afa2ff;background:#afa2ff1a}.txp__kpi--balance .txp__kpi-value{color:#afa2ff}.txp__kpi--count:before{background:#4f8ef7;box-shadow:0 0 12px #4f8ef74d}.txp__kpi--count .txp__kpi-icon{color:#4f8ef7;background:#4f8ef71a}.txp__kpi--count .txp__kpi-value{color:#fff}.txp__kpi-icon{width:40px;height:40px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.txp__kpi-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.txp__kpi-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#737483}.txp__kpi-value{font-size:1.35rem;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:-.02em}.txp__controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.txp__view-modes{display:inline-flex;gap:2px;background:#10131f;border:1px solid rgba(70,71,84,.15);border-radius:9999px;padding:4px}@media(max-width:640px){.txp__view-modes{overflow-x:auto;-webkit-overflow-scrolling:touch}.txp__view-modes::-webkit-scrollbar{display:none}}.txp__view-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border:none;border-radius:9999px;background:transparent;font-size:.8rem;font-family:inherit;font-weight:500;color:#737483;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.txp__view-btn svg{flex-shrink:0;opacity:.6}.txp__view-btn:hover{color:#a9aab9;background:#ffffff08}.txp__view-btn--active{background:#222535;color:#afa2ff;box-shadow:0 2px 6px #0003}.txp__view-btn--active svg{opacity:1;color:#afa2ff}@media(max-width:640px){.txp__view-btn{padding:.4rem .85rem;font-size:.75rem}}@media(max-width:400px){.txp__view-btn-label{display:none}}.txp__filters{display:flex;gap:.6rem;flex-wrap:wrap}.txp__filters .multi-select{flex-shrink:0}.txp__filters .multi-select__dropdown{background:#1c1f2e;border-color:#464754;box-shadow:0 8px 32px #00000073}.txp__filters .multi-select__search{background:#161926;color:#edecfd;border-color:#464754}.txp__filters .multi-select__search::placeholder{color:#737483}.txp__filters .multi-select__option:hover{background:#ffffff0d}.txp__filters .multi-select__trigger{border-radius:9999px;border:1px solid #464754;background:transparent;padding:.5rem 1rem;font-size:.8rem;color:#737483;transition:all .2s;min-height:unset;gap:.4rem}.txp__filters .multi-select__trigger:hover{border-color:#afa2ff4d;background:#afa2ff0d}.txp__filters .multi-select__trigger--open{border-color:#afa2ff66;background:#afa2ff14;color:#edecfd}@media(max-width:640px){.txp__filters{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}.txp__filters::-webkit-scrollbar{display:none}.txp__filters .multi-select__trigger{padding:.4rem .85rem;font-size:.75rem}}.txp__chart-card{background:#1c1f2e66;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid rgba(70,71,84,.15);border-radius:1.5rem;padding:1.25rem;margin-bottom:1.5rem}@media(max-width:640px){.txp__chart-card{display:none}}.txp__alert{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#ff6e841a;color:#ff6e84;border:1px solid rgba(255,110,132,.3);border-radius:.75rem;margin-bottom:1rem;font-size:.85rem}.txp__alert button{background:none;border:none;color:inherit;font-size:1.1rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.txp__loading{display:flex;justify-content:center;padding:4rem}.txp__empty{text-align:center;padding:4rem 2rem;color:#737483}.txp__empty p{margin-bottom:1rem}.txp__table-card{background:#1c1f2e66;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid rgba(70,71,84,.15);border-radius:1.5rem;overflow:hidden}@media(max-width:640px){.txp__table-card{display:none}}.txp-table{width:100%;border-collapse:collapse}.txp-table th{text-align:left;padding:.75rem 1rem;font-size:.65rem;font-weight:600;color:#737483;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #464754;white-space:nowrap}.txp-table td{padding:.65rem 1rem;font-size:.8rem;color:#edecfd;border-bottom:1px solid rgba(70,71,84,.3);white-space:nowrap}.txp-table__right{text-align:right}.txp-table__row{transition:background-color .15s}.txp-table__row:hover{background:#ffffff05}.txp-table__row--clickable{cursor:pointer}.txp-table__row--clickable:hover{background:#ffffff0a}.txp-table__date{color:#737483}.txp-table__category{display:flex;align-items:center;gap:.35rem}.txp-table__desc{max-width:200px;overflow:hidden;text-overflow:ellipsis}.txp-table__muted{color:#737483}.txp-table__member{font-size:.7rem;color:#a9aab9}.txp-table__tags{display:inline-flex;gap:.25rem;margin-left:.35rem}.txp-table__tag{font-size:.6rem;padding:1px 6px;background:#afa2ff1f;color:#afa2ff;border-radius:9999px}.txp-table__account-dot{display:inline-block;width:8px;height:8px;border-radius:9999px;margin-right:.35rem;vertical-align:middle}.txp-table__amount{font-weight:600;font-family:JetBrains Mono,monospace}.txp-table__amount--expense{color:#ff8796}.txp-table__amount--income{color:#62fae3}.txp-table__amount--transfer{color:#4f8ef7}.txp-table__actions{display:flex;gap:.25rem;justify-content:flex-end}.txp-table__btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:.375rem;cursor:pointer;font-size:.8rem;color:#737483;opacity:0;transition:all .15s}.txp-table__row:hover .txp-table__btn{opacity:1}.txp-table__btn:hover{background:#ffffff0d;color:#edecfd}.txp-table__btn--danger:hover{background:#ff6e841a;color:#ff6e84}.txp__converted{font-weight:400;font-size:.7rem;color:#737483;margin-left:.35rem}.txp-badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:.65rem;font-weight:600;letter-spacing:.02em}.txp-badge--expense{background:#ff87961f;color:#ff8796}.txp-badge--income{background:#62fae31f;color:#62fae3}.txp-badge--transfer{background:#4f8ef71f;color:#4f8ef7}.txp-groups{display:flex;flex-direction:column;gap:.75rem}.txp-group{background:#1c1f2e66;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid rgba(70,71,84,.15);border-radius:1.5rem;overflow:hidden}.txp-group__header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;border:none;background:none;cursor:pointer;font-family:inherit;color:#edecfd;transition:background .15s}.txp-group__header:hover{background:#ffffff05}@media(max-width:640px){.txp-group__header{flex-wrap:wrap;gap:.25rem;padding:.6rem .75rem}}.txp-group__left{display:flex;align-items:center;gap:.5rem;min-width:0}.txp-group__chevron{display:inline-block;font-size:1.1rem;color:#737483;transition:transform .2s}.txp-group__chevron--open{transform:rotate(90deg)}.txp-group__icon{font-size:.9rem}.txp-group__label{font-size:.85rem;font-weight:600;color:#edecfd}.txp-group__count{font-size:.65rem;color:#737483;background:#46475466;padding:1px 6px;border-radius:9999px}.txp-group__totals{display:flex;align-items:center;gap:.75rem}.txp-group__total{font-size:.7rem;font-weight:600;font-family:JetBrains Mono,monospace}.txp-group__total--income{color:#62fae3}.txp-group__total--expense{color:#ff8796}.txp-group__body{border-top:1px solid rgba(70,71,84,.3);overflow-x:auto}.txp__pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.25rem 0}.txp__page-btn{padding:.5rem 1rem;border:1px solid #464754;border-radius:9999px;background:transparent;color:#a9aab9;font-size:.75rem;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s}.txp__page-btn:hover:not(:disabled){background:#afa2ff1a;border-color:#afa2ff;color:#afa2ff}.txp__page-btn:disabled{opacity:.3;cursor:not-allowed}.txp__page-info{font-size:.75rem;color:#737483}.txp-mobile{display:none}@media(max-width:640px){.txp-mobile{display:flex;flex-direction:column;gap:.75rem;padding-bottom:80px}}.txp-mobile--hidden{display:none!important}.txp-mobile__group{display:flex;flex-direction:column}.txp-mobile__date-header{display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem;margin-bottom:.35rem}.txp-mobile__date{font-size:.7rem;font-weight:600;color:#a9aab9;text-transform:uppercase;letter-spacing:.05em}.txp-mobile__day-total{font-size:.7rem;font-weight:600;font-family:JetBrains Mono,monospace}.txp-mobile__day-total--pos{color:#62fae3}.txp-mobile__day-total--neg{color:#ff8796}.txp-mobile__card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#1c1f2e66;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid rgba(70,71,84,.15);border-radius:.75rem;margin-bottom:.35rem;cursor:pointer;transition:background .15s;min-height:56px}.txp-mobile__card:active{background:#ffffff08}.txp-mobile__icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:.75rem;background:#161926;font-size:1.1rem}.txp-mobile__info{flex:1;min-width:0}.txp-mobile__title{font-size:.85rem;font-weight:500;color:#edecfd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txp-mobile__meta{display:flex;align-items:center;gap:.35rem;margin-top:2px;font-size:.65rem;color:#737483}.txp-mobile__cat:after{content:"·";margin-left:.35rem}.txp-mobile__account{color:#a9aab9}.txp-mobile__user:before{content:"·";margin-right:.35rem;color:#737483}.txp-mobile__amount{flex-shrink:0;text-align:right;font-weight:600;font-family:JetBrains Mono,monospace;font-size:.85rem}.txp-mobile__amount--expense{color:#ff8796}.txp-mobile__amount--income{color:#62fae3}.txp-mobile__amount--transfer{color:#4f8ef7}.txp-mobile__conv{font-weight:400;font-size:.6rem;color:#737483}.txp__cashflow{width:100%}.txp__cashflow-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.txp__cashflow-title{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:#edecfd;margin:0}.txp__cashflow-title svg{color:#afa2ff}@media(max-width:640px){.txp__cashflow-title{font-size:.75rem}}.txp__cashflow-legend{display:flex;align-items:center;gap:.35rem;font-size:.7rem;color:#737483}.txp__cashflow-dot{display:inline-block;width:8px;height:8px;border-radius:9999px;background:#afa2ff}.txp__cashflow-body{position:relative}.txp__cashflow-overlay{position:absolute;top:0;left:12px;right:12px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}.txp__cashflow-chart{width:100%}.txp__cashflow-marker{display:flex;flex-direction:column;gap:.1rem}.txp__cashflow-marker--start{align-items:flex-start}.txp__cashflow-marker--end{align-items:flex-end}.txp__cashflow-marker-label{font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;color:#737483}@media(max-width:640px){.txp__cashflow-marker-label{font-size:.5rem}}.txp__cashflow-marker-value{font-size:.85rem;font-weight:700;font-family:JetBrains Mono,monospace;color:#edecfd;text-shadow:0 1px 4px rgba(0,0,0,.5)}@media(max-width:640px){.txp__cashflow-marker-value{font-size:.75rem}}.txp__cashflow-delta{font-size:.65rem;font-weight:600;font-family:JetBrains Mono,monospace}.txp__cashflow-delta--pos{color:#62fae3}.txp__cashflow-delta--neg{color:#ff8796}.txp__fab{display:none}@media(max-width:640px){.txp__fab{display:flex;align-items:center;justify-content:center;position:fixed;bottom:80px;right:20px;width:56px;height:56px;border-radius:9999px;border:none;background:#afa2ff;color:#0c0e18;font-size:28px;font-weight:300;box-shadow:0 4px 20px #afa2ff66;cursor:pointer;z-index:100;transition:transform .15s,box-shadow .15s}.txp__fab:active{transform:scale(.92);box-shadow:0 2px 12px #afa2ff4d}}.txp__confirm-text{margin-bottom:1.25rem;color:#edecfd}.txp__confirm-warning{color:#ff6e84;font-weight:500}.txp__confirm-actions{display:flex;gap:.5rem;justify-content:flex-end}.txp .tx-form__error{background:#ff6e841a;color:#ff6e84;border:none}.txp .tx-form__fields{gap:1rem}.family-page__header{margin-bottom:var(--space-lg)}.family-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.family-page__subtitle{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-md)}.family-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.family-page__alert button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer}.family-page__invite{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);margin-bottom:var(--space-lg)}.family-page__invite-code{display:flex;align-items:center;gap:var(--space-sm)}.family-page__code{font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:700;letter-spacing:.1em;color:var(--color-primary-600);background-color:var(--color-primary-50);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md)}.family-page__members{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);margin-bottom:var(--space-lg)}.family-page__loading{display:flex;justify-content:center;padding:var(--space-xl)}.family-page__member-list{display:flex;flex-direction:column;gap:var(--space-sm)}.family-page__member{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border)}.family-page__member:hover{background-color:var(--color-neutral-50)}.family-page__member-info{display:flex;align-items:center;gap:var(--space-sm)}.family-page__avatar{width:36px;height:36px;border-radius:var(--radius-full);background-color:var(--color-primary-500);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-sm)}.family-page__member-details{display:flex;flex-direction:column}.family-page__member-name{font-weight:500;color:var(--color-text)}.family-page__you{font-weight:400;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.family-page__member-email{font-size:var(--font-size-xs);color:var(--color-text-muted)}.family-page__member-actions{display:flex;align-items:center;gap:var(--space-sm)}.family-page__role-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-input)}.family-page__role-badge{padding:2px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500}.family-page__role-badge--owner{background-color:var(--color-primary-50);color:var(--color-primary-700)}.family-page__role-badge--admin{background-color:var(--color-warning-50);color:var(--color-warning-700)}.family-page__role-badge--member{background-color:var(--color-neutral-100);color:var(--color-text-secondary)}.family-page__currencies{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);margin-bottom:var(--space-lg)}.family-page__currency-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.family-page__currency-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.family-page__currency-code{font-weight:600;color:var(--color-text);min-width:60px}.family-page__currency-name{flex:1;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.family-page__currency-add{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-md)}.family-page__currency-rates{display:flex;align-items:center;gap:var(--space-md)}.family-page__rates-message{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.family-page__info{font-size:var(--font-size-sm);color:var(--color-text-muted)}.family-page__onboarding{max-width:480px;margin:var(--space-xl) auto 0;display:flex;flex-direction:column;gap:var(--space-lg)}.family-page__onboarding-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.family-page__onboarding-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.family-page__onboarding-divider{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);position:relative}.family-page__onboarding-divider:before,.family-page__onboarding-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 24px);height:1px;background-color:var(--color-border)}.family-page__onboarding-divider:before{left:0}.family-page__onboarding-divider:after{right:0}.family-page__join-row{display:flex;gap:var(--space-sm)}.family-page__join-input{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-input)}.family-page__join-input:focus{outline:none;border-color:var(--color-border-focus)}@media(max-width:640px){.family-page__join-row{flex-direction:column}.family-page__join-input{min-height:44px}}.budgets-page__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.budgets-page__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md)}.budgets-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.budgets-page__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs);display:flex;align-items:center;gap:var(--space-sm)}.budgets-page__exceeded-badge{display:inline-block;padding:2px var(--space-sm);background-color:var(--color-expense-50);color:var(--color-expense-700);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.budgets-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.budgets-page__alert button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer}.budgets-page__list{display:flex;flex-direction:column;gap:var(--space-md)}.budgets-page__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.budgets-page__empty p{margin-bottom:var(--space-md)}.budgets-page__confirm-text{margin-bottom:var(--space-lg);color:var(--color-text)}.budgets-page__confirm-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.budgets-page__toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-md)}.budgets-page__history-toggle{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-primary-600);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;transition:background-color var(--transition-fast)}.budgets-page__history-toggle:hover{background-color:var(--color-primary-50)}.budgets-page__history-toggle--active{background-color:var(--color-primary-50);border-color:var(--color-primary-300)}.budgets-page__history{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);margin-bottom:var(--space-lg)}.budgets-page__history-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);margin-bottom:var(--space-md)}.budgets-page__history-table-wrap{overflow-x:auto}.budgets-page__history-table{width:100%;border-collapse:collapse}.budgets-page__history-table th{text-align:left;padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap}.budgets-page__history-table td{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text);border-bottom:1px solid var(--color-neutral-100);white-space:nowrap}.budgets-page__history-pct{display:inline-block;font-weight:600;font-size:var(--font-size-xs);padding:1px 6px;border-radius:var(--radius-full);margin-right:var(--space-xs)}.budgets-page__history-pct--good{background-color:var(--color-income-50);color:var(--color-income-700)}.budgets-page__history-pct--caution,.budgets-page__history-pct--warning{background-color:var(--color-warning-100);color:var(--color-warning-600)}.budgets-page__history-pct--exceeded{background-color:var(--color-expense-50);color:var(--color-expense-700)}.budgets-page__history-amounts{font-size:var(--font-size-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.budgets-page__history-empty{color:var(--color-text-muted)}.budgets-page__children{padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.budgets-page__expand{width:20px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-shrink:0;cursor:pointer}@media(max-width:640px){.budgets-page__header,.budgets-page__subtitle{flex-direction:column;align-items:flex-start}.budgets-page__history{padding:var(--space-md)}.budgets-page__children{padding-left:var(--space-md)}}.budget-item{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-md) var(--space-lg)}@media(max-width:640px){.budget-item{padding:var(--space-md)}}.budget-item--aggregated{background-color:var(--color-neutral-50);border:1px solid var(--color-border);box-shadow:none}.budget-item__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.budget-item__category{display:flex;align-items:center;gap:var(--space-sm)}.budget-item__icon{font-size:var(--font-size-xl)}.budget-item__name{display:block;font-weight:600;color:var(--color-text);font-size:var(--font-size-base)}.budget-item__period{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted)}.budget-item__period--aggregated{font-style:italic;color:var(--color-text-secondary)}.budget-item__amounts{text-align:right}.budget-item__spent{font-weight:700;font-family:var(--font-mono);color:var(--color-text)}.budget-item__limit{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-left:var(--space-xs)}.budget-item__bar{height:8px;background-color:var(--color-neutral-100);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-sm)}.budget-item__bar-fill{height:100%;border-radius:var(--radius-full);transition:width .4s ease}.budget-item__bar-fill--good{background-color:var(--color-income-500)}.budget-item__bar-fill--caution{background-color:var(--color-warning-500)}.budget-item__bar-fill--warning{background-color:var(--color-warning-600)}.budget-item__bar-fill--exceeded{background-color:var(--color-expense-500)}.budget-item__footer{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.budget-item__status{font-size:var(--font-size-sm);font-weight:500}.budget-item__status--good{color:var(--color-income-600)}.budget-item__status--caution{color:var(--color-warning-500)}.budget-item__status--warning{color:var(--color-warning-600)}.budget-item__status--exceeded{color:var(--color-expense-600);font-weight:700}.budget-item__remaining{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.budget-item__actions{display:flex;gap:var(--space-sm);border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.budget-item__btn{background:none;border:none;font-size:var(--font-size-sm);color:var(--color-primary-600);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.budget-item__btn:hover{background-color:var(--color-primary-50)}.budget-item__btn--danger{color:var(--color-expense-600)}.budget-item__btn--danger:hover{background-color:var(--color-expense-50)}.budget-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.budget-form__fields{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.budget-form__hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:calc(-1 * var(--space-xs)) 0 0}.budget-form__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.reports__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md);flex-wrap:wrap}.reports__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.reports__filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.reports__month-picker{display:flex;gap:var(--space-sm)}.reports__picker-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family)}.reports__tabs{display:flex;gap:var(--space-xs);border-bottom:2px solid var(--color-border);margin-bottom:var(--space-lg);overflow-x:auto}.reports__tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-family);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.reports__tab:hover{color:var(--color-text)}.reports__tab--active{color:var(--color-primary-600);border-bottom-color:var(--color-primary-600)}.reports__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.reports__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-muted)}.reports__tab-content{display:flex;flex-direction:column;gap:var(--space-lg)}.reports__export-row{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-md)}.reports__total-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-right:auto}.reports__chart-row{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:768px){.reports__chart-row{grid-template-columns:1fr 1fr}}.reports__chart-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.reports__chart-card--full{width:100%}.reports__chart-subtitle{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.reports__table-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow-x:auto}.reports__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.reports__table th{text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:2px solid var(--color-border);font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em}.reports__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-neutral-100);color:var(--color-text)}.reports__table tr:last-child td{border-bottom:none}.reports__right{text-align:right}.reports__cat-dot{display:inline-block;width:10px;height:10px;border-radius:var(--radius-full);margin-right:var(--space-xs)}.reports__table-parent td{font-weight:500}.reports__income{color:var(--color-income-600);font-weight:600;font-family:var(--font-mono)}.reports__expense{color:var(--color-expense-600);font-weight:600;font-family:var(--font-mono)}.reports__role-badge{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.reports__role-badge--owner{background-color:var(--color-primary-100);color:var(--color-primary-700)}.reports__role-badge--admin{background-color:var(--color-warning-100);color:var(--color-warning-600)}.reports__role-badge--member{background-color:var(--color-neutral-100);color:var(--color-text-secondary)}.reports__pnl{display:flex;flex-direction:column;gap:var(--space-lg)}.reports__pnl-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:768px){.reports__pnl-grid{grid-template-columns:1fr 1fr}}.reports__pnl-section{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-md)}.reports__pnl-heading{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.reports__pnl-total-row{font-weight:700}.reports__pnl-total-row td{border-top:2px solid var(--color-border);padding-top:var(--space-sm)}.reports__pnl-net{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);font-weight:700;font-size:var(--font-size-lg)}.reports__pnl-net--positive{background-color:var(--color-income-50);color:var(--color-income-700)}.reports__pnl-net--negative{background-color:var(--color-expense-50);color:var(--color-expense-700)}.reports__pnl-net-value{font-family:var(--font-mono);font-size:var(--font-size-xl)}.reports__amount--income{color:var(--color-income-600)}.reports__amount--expense{color:var(--color-expense-600)}.reports__empty-sm{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-sm)}.reports__comparison-controls{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.reports__comparison-presets{display:flex;gap:var(--space-sm)}.reports__comparison-preset{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-primary-600);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;transition:background-color var(--transition-fast)}.reports__comparison-preset:hover{background-color:var(--color-primary-50)}.reports__comparison-periods{display:flex;gap:var(--space-lg);flex-wrap:wrap}.reports__comparison-period{display:flex;align-items:center;gap:var(--space-xs)}.reports__comparison-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;min-width:64px}.reports__comparison-date{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-input)}.reports__comparison-date:focus{outline:none;border-color:var(--color-border-focus)}.reports__comparison-sep{color:var(--color-text-muted)}.reports__comparison-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.reports__comparison-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.reports__comparison-card-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.reports__comparison-card-row{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-weight:700;font-size:var(--font-size-md)}.reports__comparison-arrow{color:var(--color-text-muted);font-weight:400}.reports__change{font-size:var(--font-size-xs);font-weight:600}.reports__change--up{color:var(--color-expense-600)}.reports__change--down{color:var(--color-income-600)}.reports__annual-year-selector{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.reports__annual-year-btn{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-md);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast);min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}.reports__annual-year-btn:hover:not(:disabled){background-color:var(--color-primary-50)}.reports__annual-year-btn:disabled{opacity:.4;cursor:not-allowed}.reports__annual-year-label{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);min-width:60px;text-align:center}.reports__annual-export{margin-left:auto}.reports__annual-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}@media(min-width:768px){.reports__annual-cards{grid-template-columns:repeat(4,1fr)}}.reports__annual-card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.reports__annual-card-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.reports__annual-card-value{font-size:var(--font-size-xl);font-weight:700;font-family:var(--font-mono)}.reports__annual-yoy{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.reports__annual-yoy-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-top:var(--space-sm)}.reports__annual-yoy-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.reports__annual-yoy-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.reports__annual-yoy-value{font-size:var(--font-size-lg);font-weight:700;font-family:var(--font-mono)}@media(max-width:640px){.reports__header{flex-direction:column;align-items:flex-start}.reports__filters{flex-direction:column;width:100%}.reports__month-picker{width:100%}.reports__picker-select{flex:1;min-height:44px}.reports__tab{min-height:44px;padding:var(--space-sm);font-size:var(--font-size-xs)}.reports__export-row{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.reports__chart-card{padding:var(--space-md)}.reports__annual-cards{grid-template-columns:1fr 1fr}.reports__annual-yoy-cards{grid-template-columns:1fr}.reports__annual-card-value{font-size:var(--font-size-md)}.reports__pnl-net{flex-direction:column;text-align:center;gap:var(--space-sm);padding:var(--space-md)}.reports__comparison-periods{flex-direction:column;gap:var(--space-sm)}.reports__comparison-period{flex-wrap:wrap}.reports__comparison-date{min-height:44px}.reports__comparison-summary{grid-template-columns:1fr}.reports__comparison-card-row{font-size:var(--font-size-sm)}.reports__comparison-presets{flex-wrap:wrap}.reports__comparison-preset{min-height:44px}}.recurring-page__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.recurring-page__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md)}.recurring-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.recurring-page__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.recurring-page__alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border:1px solid var(--color-expense-300);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.recurring-page__alert button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer}.recurring-page__list{display:flex;flex-direction:column;gap:var(--space-md)}.recurring-page__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.recurring-page__empty p{margin-bottom:var(--space-md)}.recurring-page__confirm-text{margin-bottom:var(--space-lg);color:var(--color-text)}.recurring-page__confirm-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.recurring-item{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-md)}.recurring-item--inactive{opacity:.6}.recurring-item__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.recurring-item__info{display:flex;align-items:center;gap:var(--space-sm)}.recurring-item__icon{font-size:var(--font-size-xl)}.recurring-item__name{display:block;font-weight:600;color:var(--color-text)}.recurring-item__account{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted)}.recurring-item__amounts{text-align:right}.recurring-item__amount{display:block;font-size:var(--font-size-lg);font-weight:700}.recurring-item__amount--expense{color:var(--color-expense-600)}.recurring-item__amount--income{color:var(--color-income-600)}.recurring-item__pattern{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.recurring-item__footer{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recurring-item__next{font-weight:500}.recurring-item__desc{color:var(--color-text-muted)}.recurring-item__actions{display:flex;gap:var(--space-sm);border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.recurring-item__btn{background:none;border:none;font-size:var(--font-size-sm);color:var(--color-primary-600);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.recurring-item__btn:hover{background-color:var(--color-primary-50)}.recurring-item__btn--danger{color:var(--color-expense-600)}.recurring-item__btn--danger:hover{background-color:var(--color-expense-50)}.recurring-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-expense-50);color:var(--color-expense-700);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.recurring-form__fields{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.recurring-form__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.debts-page{padding:var(--space-lg)}.debts-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.debts-page__title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-xs)}.debts-page__summary{display:flex;gap:var(--space-lg);font-size:var(--font-size-sm)}.debts-page__summary-item{font-weight:500}.debts-page__summary-item--lent{color:var(--color-success-600)}.debts-page__summary-item--borrowed{color:var(--color-danger-600)}.debts-page__toolbar{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-lg);padding:var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.debts-page__search{flex:1;min-width:160px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg)}.debts-page__toolbar-controls{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.debts-page__select{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-bg)}.debts-page__icon-btn{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;font-size:var(--font-size-sm);line-height:1}.debts-page__icon-btn:hover{background:var(--color-bg-tertiary)}.debts-page__toggle{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);cursor:pointer;-webkit-user-select:none;user-select:none}.debts-page__toggle input{cursor:pointer}.debts-page__loading,.debts-page__empty{text-align:center;color:var(--color-text-secondary);padding:var(--space-xl)}.debts-page__section{margin-bottom:var(--space-lg)}.debts-page__section-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.debts-page__section-title{font-size:var(--font-size-md);font-weight:600;margin:0}.debts-page__section-count{font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:1px 8px;border-radius:10px}.debts-page__section-subtotal{margin-left:auto;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary)}.debts-page__list{display:flex;flex-direction:column;gap:var(--space-sm)}.debts-page__card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);border-left:4px solid var(--color-border);background:var(--color-bg)}.debts-page__card--lent{border-left-color:var(--color-success-400)}.debts-page__card--borrowed{border-left-color:var(--color-danger-400)}.debts-page__card-row{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.debts-page__avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm);flex-shrink:0;color:#fff}.debts-page__avatar--lent{background:var(--color-success-500)}.debts-page__avatar--borrowed{background:var(--color-danger-500)}.debts-page__card-info{flex:1;min-width:0}.debts-page__card-top{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:2px}.debts-page__counterparty{font-size:var(--font-size-md)}.debts-page__category-badge{font-size:var(--font-size-xs);padding:1px 6px;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.debts-page__card-meta{display:flex;gap:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-secondary);flex-wrap:wrap}.debts-page__card-amounts{text-align:right;flex-shrink:0}.debts-page__remaining{font-size:var(--font-size-lg);font-weight:700;line-height:1.2}.debts-page__remaining--lent{color:var(--color-success-600)}.debts-page__remaining--borrowed{color:var(--color-danger-600)}.debts-page__original{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.debts-page__interest{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.debts-page__star{background:none;border:none;cursor:pointer;font-size:20px;color:var(--color-text-secondary);padding:0;line-height:1;flex-shrink:0}.debts-page__star--active,.debts-page__star:hover{color:var(--color-warning-500)}.debts-page__status{font-size:var(--font-size-xs);padding:1px 6px;border-radius:var(--radius-sm)}.debts-page__status--active{background:var(--color-primary-100);color:var(--color-primary-700)}.debts-page__status--settled{background:var(--color-success-100);color:var(--color-success-700)}.debts-page__status--cancelled{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.debts-page__progress{height:6px;background:var(--color-bg-tertiary);border-radius:3px;position:relative;margin-bottom:var(--space-sm)}.debts-page__progress-fill{height:100%;background:var(--color-primary-500);border-radius:3px;transition:width .3s}.debts-page__progress-text{position:absolute;right:0;top:-16px;font-size:10px;color:var(--color-text-secondary)}.debts-page__card-row--clickable{cursor:pointer}.debts-page__card-row--clickable:hover{opacity:.9}.debts-page__card--expanded{box-shadow:0 2px 8px #0000001a}.debts-page__detail{padding-top:var(--space-sm);border-top:1px solid var(--color-border);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:600px}}.debts-page__detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-xs) var(--space-md);margin-bottom:var(--space-md)}.debts-page__detail-item{display:flex;flex-direction:column;font-size:var(--font-size-sm)}.debts-page__detail-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:2px}.debts-page__detail-payments{margin-bottom:var(--space-md)}.debts-page__detail-subtitle{font-size:var(--font-size-sm);font-weight:600;margin:0 0 var(--space-xs)}.debts-page__payment-table{width:100%;font-size:var(--font-size-xs);border-collapse:collapse}.debts-page__payment-table th,.debts-page__payment-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--color-border)}.debts-page__payment-table th{font-weight:600;color:var(--color-text-secondary)}.debts-page__payment-actions{white-space:nowrap;text-align:right}.debts-page__payment-tag{font-size:10px;padding:1px 4px;border-radius:3px;background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.debts-page__notes{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic;margin-bottom:var(--space-xs)}.debts-page__payments{margin-bottom:var(--space-sm);font-size:var(--font-size-xs)}.debts-page__payments summary{cursor:pointer;color:var(--color-primary-600)}.debts-page__payments ul{list-style:none;padding:var(--space-xs) 0 0 var(--space-md)}.debts-page__payments li{padding:2px 0}.debts-page__card-actions{display:flex;gap:var(--space-xs);align-items:center}.debts-page__btn{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);color:var(--color-text-secondary);min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.debts-page__btn:hover{background:var(--color-bg-tertiary)}.debts-page__btn--danger:hover{color:var(--color-danger-600)}@media(max-width:640px){.debts-page{padding:var(--space-md)}.debts-page__header{flex-direction:column;gap:var(--space-sm)}.debts-page__summary{flex-direction:column;gap:var(--space-xs)}.debts-page__toolbar{flex-direction:column}.debts-page__search{min-width:0;width:100%;min-height:44px}.debts-page__select{min-height:44px;width:100%}.debts-page__icon-btn{min-height:44px;min-width:44px}.debts-page__toggle{min-height:44px}.debts-page__toggle input{width:20px;height:20px}.debts-page__card-row{flex-wrap:wrap}.debts-page__card-amounts{text-align:left;width:100%;margin-top:var(--space-xs)}.debts-page__detail-grid{grid-template-columns:1fr 1fr}.debts-page__payment-table{display:block;overflow-x:auto}.debts-page__star{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}}.debt-form__tabs{display:flex;margin-bottom:var(--space-md);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.debt-form__tab{flex:1;padding:10px;text-align:center;background:var(--color-bg);border:none;cursor:pointer;font-weight:500;font-size:var(--font-size-sm);transition:background .2s,color .2s}.debt-form__tab:hover{background:var(--color-bg-tertiary)}.debt-form__tab--active{color:#fff}.debt-form__tab--borrow{background:var(--color-danger-500)}.debt-form__tab--lend{background:var(--color-success-500)}.debt-form__row{display:flex;gap:var(--space-sm)}.debt-form__row-main{flex:2}.debt-form__row-side{flex:1}@media(max-width:640px){.debt-form__row{flex-direction:column}}.debt-form__computed{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.debt-form__favorite-toggle{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;padding:6px 0}.debt-form__favorite-toggle input{display:none}.debt-form__favorite-toggle input:checked+.debt-form__star{color:var(--color-warning-500)}.debt-form__star{font-size:24px;color:var(--color-text-secondary);transition:color .2s}.debt-form__star:hover{color:var(--color-warning-500)}.goals--loading{display:flex;justify-content:center;padding:var(--space-2xl)}.goals__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.goals__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.goals__error{background-color:var(--color-expense-50, #fef2f2);color:var(--color-expense-600);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.goals__tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg)}.goals__tab{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.goals__tab:hover{border-color:var(--color-primary-300)}.goals__tab--active{background:var(--color-primary-500);color:#fff;border-color:var(--color-primary-500)}.goals__empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-muted);background:var(--color-bg-card);border-radius:var(--radius-lg)}.goals__grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:768px){.goals__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.goals__grid{grid-template-columns:repeat(3,1fr)}}.goals__card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg);border-top:3px solid var(--color-primary-500);display:flex;flex-direction:column;gap:var(--space-md)}.goals__card--reached{opacity:.85}.goals__card--cancelled{opacity:.6}.goals__card-header{display:flex;align-items:flex-start;gap:var(--space-sm)}.goals__card-icon{font-size:var(--font-size-xl);line-height:1;flex-shrink:0}.goals__card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.goals__card-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goals__card-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goals__card-badge{font-size:var(--font-size-xs);font-weight:500;padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.goals__card-badge--active{background:var(--color-primary-100, #e0e7ff);color:var(--color-primary-700, #4338ca)}.goals__card-badge--reached{background:var(--color-success-100, #dcfce7);color:var(--color-success-700, #15803d)}.goals__card-badge--cancelled{background:var(--color-neutral-100);color:var(--color-text-muted)}.goals__progress{display:flex;flex-direction:column;gap:var(--space-xs)}.goals__progress-bar{height:8px;background-color:var(--color-neutral-100);border-radius:var(--radius-full);overflow:hidden}.goals__progress-fill{height:100%;border-radius:var(--radius-full);transition:width .4s ease}.goals__progress-info{display:flex;justify-content:space-between;align-items:center}.goals__progress-amount{font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--color-text);font-weight:500}.goals__progress-pct{font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-mono);color:var(--color-text-secondary)}.goals__card-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.goals__meta-item{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.goals__meta-item--overdue{color:var(--color-expense-600);font-weight:500}.goals__card-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.goals__action{padding:var(--space-xs) var(--space-sm);min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);cursor:pointer;transition:all .15s ease}.goals__action:hover{border-color:var(--color-primary-300);color:var(--color-text)}.goals__action--deposit{color:var(--color-success-600);border-color:var(--color-success-200)}.goals__action--deposit:hover{background:var(--color-success-50, #f0fdf4)}.goals__action--withdraw{color:var(--color-warning-600, #d97706);border-color:var(--color-warning-200, #fde68a)}.goals__action--withdraw:hover{background:var(--color-warning-50, #fffbeb)}.goals__action--complete{color:var(--color-success-600)}.goals__action--complete:hover{background:var(--color-success-50, #f0fdf4)}.goals__action--cancel,.goals__action--delete{color:var(--color-expense-500);border-color:var(--color-expense-200, #fecaca)}.goals__action--cancel:hover,.goals__action--delete:hover{background:var(--color-expense-50, #fef2f2)}.goals__action--reactivate{color:var(--color-primary-500)}.goals__action--reactivate:hover{background:var(--color-primary-50, #eef2ff)}.goals__tx-modal{display:flex;flex-direction:column;gap:var(--space-md)}.goals__tx-modal-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-mono)}.goals__detail{border-top:1px solid var(--color-border);padding-top:var(--space-md);animation:goalSlideDown .2s ease}.goals__detail-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm)}.goals__detail-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.goals__tx-table-wrap{overflow-x:auto}.goals__tx-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.goals__tx-table th{text-align:left;font-weight:600;color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.goals__tx-table td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-neutral-100);color:var(--color-text)}.goals__tx-table tr:last-child td{border-bottom:none}.goals__tx-type{font-size:var(--font-size-xs);font-weight:500;padding:1px 6px;border-radius:var(--radius-sm)}.goals__tx-type--deposit{background:var(--color-success-100, #dcfce7);color:var(--color-success-700, #15803d)}.goals__tx-type--withdraw{background:var(--color-expense-50, #fef2f2);color:var(--color-expense-600)}.goals__tx-amount{font-family:var(--font-mono);font-weight:500}.goals__tx-amount--deposit{color:var(--color-success-600)}.goals__tx-amount--withdraw{color:var(--color-expense-600)}.goals__tx-account{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.goals__tx-note{color:var(--color-text-muted);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goals__tx-actions{white-space:nowrap;display:flex;gap:var(--space-xs)}@media(max-width:640px){.goals__header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.goals__tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.goals__tab{min-height:44px;white-space:nowrap}.goals__card{padding:var(--space-md)}.goals__card-actions{flex-wrap:wrap}}@keyframes goalSlideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.goal-form__error{background-color:var(--color-expense-50, #fef2f2);color:var(--color-expense-600);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.goal-form__fields{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.goal-form__row--two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.goal-form__icons{display:flex;flex-wrap:wrap;gap:4px}.goal-form__icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);cursor:pointer;font-size:16px;transition:all .15s ease}.goal-form__icon-btn:hover{border-color:var(--color-primary-300)}.goal-form__icon-btn--active{border-color:var(--color-primary-500);background:var(--color-primary-50, #eef2ff);box-shadow:0 0 0 1px var(--color-primary-500)}.goal-form__color-input{width:48px;height:36px;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);cursor:pointer}.goal-form__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}@media(max-width:640px){.goal-form__row--two{grid-template-columns:1fr}.goal-form__icon-btn{width:44px;height:44px}.goal-form__actions{flex-direction:column}.goal-form__actions button{width:100%}}.activity-page{padding:var(--space-lg);max-width:900px;margin:0 auto}.activity-page__header{margin-bottom:var(--space-lg)}.activity-page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.activity-page__filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.activity-page__select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-input);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family)}.activity-page__loading{display:flex;justify-content:center;padding:var(--space-2xl)}.activity-page__empty{color:var(--color-text-muted);text-align:center;padding:var(--space-2xl)}.activity-page__list{display:flex;flex-direction:column;gap:var(--space-xs)}.activity-page__item{display:flex;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-bg-card);border-radius:var(--radius-md);border-left:3px solid var(--color-border)}.activity-page__item--create{border-left-color:var(--color-income-500)}.activity-page__item--update{border-left-color:var(--color-primary-500)}.activity-page__item--delete{border-left-color:var(--color-expense-500)}.activity-page__icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--color-neutral-100);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-shrink:0}.activity-page__content{flex:1;min-width:0}.activity-page__summary{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.activity-page__user{font-weight:600;color:var(--color-text)}.activity-page__action{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.activity-page__entity{font-size:var(--font-size-sm);color:var(--color-primary-600);font-weight:500}.activity-page__changes{margin-top:var(--space-xs);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-all}.activity-page__time{margin-top:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-muted)}.activity-page__pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg)}.activity-page__page-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:640px){.activity-page{padding:var(--space-md)}.activity-page__filters{flex-direction:column}.activity-page__select{width:100%;min-height:44px}.activity-page__item{gap:var(--space-sm);padding:var(--space-sm)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-income-50: #f0fdf4;--color-income-100: #dcfce7;--color-income-300: #86efac;--color-income-500: #22c55e;--color-income-600: #16a34a;--color-income-700: #15803d;--color-expense-50: #fef2f2;--color-expense-100: #fee2e2;--color-expense-300: #fca5a5;--color-expense-500: #ef4444;--color-expense-600: #dc2626;--color-expense-700: #b91c1c;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-bg: var(--color-neutral-50);--color-bg-card: #ffffff;--color-bg-sidebar: var(--color-neutral-900);--color-bg-input: #ffffff;--color-bg-tertiary: var(--color-neutral-50);--color-text: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-500);--color-text-muted: var(--color-neutral-400);--color-text-inverse: #ffffff;--color-border: var(--color-neutral-200);--color-border-focus: var(--color-primary-500);--color-success-50: var(--color-income-50);--color-success-100: var(--color-income-100);--color-success-200: var(--color-income-300);--color-success-400: var(--color-income-500);--color-success-500: var(--color-income-500);--color-success-600: var(--color-income-600);--color-success-700: var(--color-income-700);--color-danger-400: var(--color-expense-300);--color-danger-500: var(--color-expense-500);--color-danger-600: var(--color-expense-600);--color-danger-700: var(--color-expense-700);--color-balance-positive: var(--color-income-600);--color-balance-negative: var(--color-expense-600);--color-budget-ok: var(--color-income-500);--color-budget-warning: var(--color-warning-500);--color-budget-exceeded: var(--color-expense-500);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-card: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--header-height: 56px}[data-theme=dark]{--color-bg: #0b1120;--color-bg-card: #111827;--color-bg-sidebar: #070d1a;--color-bg-input: #1e293b;--color-bg-tertiary: #162031;--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-inverse: #0f172a;--color-border: #1e293b;--color-border-focus: var(--color-primary-400);--color-neutral-50: #162031;--color-neutral-100: #1a2740;--color-neutral-200: #253550;--color-neutral-300: #334766;--color-neutral-400: #5a7194;--color-neutral-500: #7a8eaa;--color-neutral-600: #94a3b8;--color-neutral-700: #334155;--color-neutral-800: #111827;--color-neutral-900: #0b1120;--color-primary-50: #0c1a36;--color-primary-100: #0f2350;--color-primary-200: #1a3570;--color-primary-300: #3b6fc7;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #60a5fa;--color-primary-700: #93c5fd;--color-income-50: #071f12;--color-income-100: #0b2d1a;--color-income-300: #34d399;--color-income-500: #22c55e;--color-income-600: #4ade80;--color-income-700: #86efac;--color-expense-50: #200a0a;--color-expense-100: #2d1215;--color-expense-300: #f87171;--color-expense-500: #ef4444;--color-expense-600: #f87171;--color-expense-700: #fca5a5;--color-warning-50: #1c1506;--color-warning-100: #2d220a;--color-warning-500: #f59e0b;--color-warning-600: #fbbf24;--color-balance-positive: var(--color-income-500);--color-balance-negative: var(--color-expense-500);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6);--shadow-card: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}small{font-size:var(--font-size-sm);color:var(--color-text-secondary)}code{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--color-neutral-100);padding:.125rem .375rem;border-radius:var(--radius-sm)}[data-theme=dark] code{background:var(--color-neutral-700)}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--transition-base),color var(--transition-base)}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--color-neutral-600)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}[data-theme=dark] .recharts-tooltip-wrapper .recharts-default-tooltip{background-color:var(--color-bg-card)!important;border-color:var(--color-border)!important;color:var(--color-text)!important}[data-theme=dark] .recharts-tooltip-item{color:inherit!important}
